From 7c1cf98d345dab879d900485d1aa0e09c1d7b0e9 Mon Sep 17 00:00:00 2001 From: Stefan Allius Date: Fri, 18 Apr 2025 20:48:02 +0200 Subject: [PATCH] build and install translation files --- Makefile | 5 +++-- app/Makefile | 24 +++++++++++++++++++++--- ha_addons/Makefile | 12 +++++++++++- 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 49be846..a6549e2 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,13 @@ -.PHONY: build clean addon-dev addon-debug addon-rc addon-rel debug dev preview rc rel check-docker-compose install +.PHONY: build babel clean addon-dev addon-debug addon-rc addon-rel debug dev preview rc rel check-docker-compose install -debug dev preview rc rel: +babel debug dev preview rc rel: $(MAKE) -C app $@ clean build: $(MAKE) -C ha_addons $@ addon-dev addon-debug addon-rc addon-rel: + $(MAKE) -C app babel $(MAKE) -C ha_addons $(patsubst addon-%,%,$@) check-docker-compose: diff --git a/app/Makefile b/app/Makefile index dff4631..f380714 100644 --- a/app/Makefile +++ b/app/Makefile @@ -6,10 +6,16 @@ IMAGE = tsun-gen3-proxy # Folders -SRC=. +APP=. +SRC=$(APP)/src +# Folders for Babel translation +BABEL_INPUT_JINJA=$(SRC)/web/templates +BABEL_INPUT= $(foreach dir,$(BABEL_INPUT_JINJA),$(wildcard $(dir)/*.html)) \ + +BABEL_TRANSLATIONS=$(APP)/translations export BUILD_DATE := ${shell date -Iminutes} -VERSION := $(shell cat $(SRC)/.version) +VERSION := $(shell cat $(APP)/.version) export MAJOR := $(shell echo $(VERSION) | cut -f1 -d.) PUBLIC_URL := $(shell echo $(PUBLIC_CONTAINER_REGISTRY) | cut -f1 -d/) @@ -39,5 +45,17 @@ preview rel: export IMAGE=$(PUBLIC_CONTAINER_REGISTRY)$(IMAGE) && \ docker buildx bake -f docker-bake.hcl $@ +babel: $(BABEL_TRANSLATIONS)/de/LC_MESSAGES/messages.mo $(BABEL_TRANSLATIONS)/de/LC_MESSAGES/messages.po $(BABEL_TRANSLATIONS)/messages.pot -.PHONY: debug dev preview rc rel +$(BABEL_TRANSLATIONS)/%.pot : $(SRC)/.babel.cfg $(BABEL_INPUT) + @mkdir -p $(@D) + @pybabel extract -F $< --project=$(IMAGE) --version=$(VERSION) -o $@ $(SRC) + +$(BABEL_TRANSLATIONS)/%/LC_MESSAGES/messages.po : $(BABEL_TRANSLATIONS)/messages.pot + @mkdir -p $(@D) + @pybabel update --init-missing -i $< -d $(BABEL_TRANSLATIONS) -l $* + +$(BABEL_TRANSLATIONS)/%/LC_MESSAGES/messages.mo : $(BABEL_TRANSLATIONS)/%/LC_MESSAGES/messages.po + @pybabel compile -d $(BABEL_TRANSLATIONS) -l $* + +.PHONY: babel debug dev preview rc rel diff --git a/ha_addons/Makefile b/ha_addons/Makefile index 33f0c86..505db46 100644 --- a/ha_addons/Makefile +++ b/ha_addons/Makefile @@ -12,11 +12,14 @@ IMAGE = tsun-gen3-addon SRC=../app SRC_PROXY=$(SRC)/src CNF_PROXY=$(SRC)/config +TRANSLATION_PROXY=$(SRC)/translations # Target folders for building the local add-on and the docker container ADDON_PATH = ha_addon DST=$(ADDON_PATH)/rootfs DST_PROXY=$(DST)/home/proxy +DST_TRANSLATION=$(DST)/home/translations + # base director of the add-on repro for installing the add-on git repros INST_BASE=../../ha-addons @@ -92,12 +95,14 @@ SRC_FILES := $(wildcard $(SRC_PROXY)/*.py)\ $(wildcard $(SRC_PROXY)/web/static/images/*) CNF_FILES := $(wildcard $(CNF_PROXY)/*.toml) +MO_FILES := $(wildcard $(TRANSLATION_PROXY)/de/LC_MESSAGES/*.mo) # determine destination files TARGET_FILES = $(SRC_FILES:$(SRC_PROXY)/%=$(DST_PROXY)/%) CONFIG_FILES = $(CNF_FILES:$(CNF_PROXY)/%=$(DST_PROXY)/%) +TRANSLATION_FILES = $(MO_FILES:$(TRANSLATION_PROXY)/%=$(DST_TRANSLATION)/%) -rootfs: $(TARGET_FILES) $(CONFIG_FILES) $(DST)/requirements.txt +rootfs: $(TARGET_FILES) $(CONFIG_FILES) $(TRANSLATION_FILES) $(DST)/requirements.txt $(CONFIG_FILES): $(DST_PROXY)/% : $(CNF_PROXY)/% @echo Copy $< to $@ @@ -109,6 +114,11 @@ $(TARGET_FILES): $(DST_PROXY)/% : $(SRC_PROXY)/% @mkdir -p $(@D) @cp $< $@ +$(TRANSLATION_FILES): $(DST_TRANSLATION)/% : $(TRANSLATION_PROXY)/% + @echo Copy $< to $@ + @mkdir -p $(@D) + @cp $< $@ + $(DST)/requirements.txt : $(SRC)/requirements.txt @echo Copy $< to $@ @cp $< $@