From b4c2bee078fc0f38fe3931b0d9f66c89a287954d Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Tue, 18 Nov 2025 17:02:00 +0100 Subject: [PATCH] Handle maintainer import path for translations --- .../etc/cont-init.d/81-modifications.sh | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/birdnet-pi/rootfs/etc/cont-init.d/81-modifications.sh b/birdnet-pi/rootfs/etc/cont-init.d/81-modifications.sh index 0048b501c..97b670ee1 100755 --- a/birdnet-pi/rootfs/etc/cont-init.d/81-modifications.sh +++ b/birdnet-pi/rootfs/etc/cont-init.d/81-modifications.sh @@ -55,15 +55,33 @@ sed -i 's/"\.\$updatediv\.\"//g' "$HOME"/BirdNET-Pi/homepage/views.php echo "... adapting labels according to birdnet.conf" if export "$(grep "^DATABASE_LANG" /config/birdnet.conf)"; then bashio::log.info "Setting language to ${DATABASE_LANG:-en}" - python3 - <<'PY' + + if [[ -f "$HOME/BirdNET-Pi/scripts/utils/maintainer.py" ]]; then + PYTHONPATH="$HOME/BirdNET-Pi:$HOME/BirdNET-Pi/scripts:$HOME/BirdNET-Pi/scripts/utils:${PYTHONPATH:-}" \ + python3 - <<'PY' +import importlib.util import os +import sys + +home = os.environ.get("HOME", "/home/pi") +birdnet_root = os.path.join(home, "BirdNET-Pi") +for path in (birdnet_root, os.path.join(birdnet_root, "scripts"), os.path.join(birdnet_root, "scripts", "utils")): + if path not in sys.path: + sys.path.insert(0, path) + +if importlib.util.find_spec("scripts.utils.maintainer") is None: + print("Language maintainer module not found; skipping translation generation.") + raise SystemExit(0) + from scripts.utils.maintainer import create_language database_lang = os.environ.get("DATABASE_LANG", "en") - print(f"Creating translations for {database_lang}") create_language(database_lang) PY + else + bashio::log.warning "Language maintainer script not found; skipping translation generation." + fi else bashio::log.warning "DATABASE_LANG not found in configuration. Using default labels." fi