From c5d369ccebd75a5fa734ab02392097e720442ca0 Mon Sep 17 00:00:00 2001 From: Stefan Allius Date: Fri, 18 Apr 2025 20:47:33 +0200 Subject: [PATCH] add quart-babel --- app/requirements.txt | 3 ++- app/src/.babel.cfg | 2 ++ app/src/server.py | 14 +++++++++++- app/src/web/templates/index.html | 2 +- app/translations/de/LC_MESSAGES/messages.po | 25 +++++++++++++++++++++ 5 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 app/src/.babel.cfg create mode 100644 app/translations/de/LC_MESSAGES/messages.po diff --git a/app/requirements.txt b/app/requirements.txt index 9d636fc..c26f354 100644 --- a/app/requirements.txt +++ b/app/requirements.txt @@ -1,4 +1,5 @@ aiomqtt==2.3.2 schema==0.7.7 aiocron==2.1 - quart==0.20 \ No newline at end of file + quart==0.20 + quart-babel==1.0.7 \ No newline at end of file diff --git a/app/src/.babel.cfg b/app/src/.babel.cfg new file mode 100644 index 0000000..cfaa201 --- /dev/null +++ b/app/src/.babel.cfg @@ -0,0 +1,2 @@ +[python: **.py] +[jinja2: web/templates/**.html] \ No newline at end of file diff --git a/app/src/server.py b/app/src/server.py index e3fcdc1..80fc096 100644 --- a/app/src/server.py +++ b/app/src/server.py @@ -4,7 +4,8 @@ import logging.handlers import os import argparse from asyncio import StreamReader, StreamWriter -from quart import Quart, Response +from quart import Quart, Response, request +from quart_babel import Babel from logging import config # noqa F401 from proxy import Proxy from inverter_ifc import InverterIfc @@ -31,9 +32,20 @@ class ProxyState: ProxyState._is_up = value +def get_locale(): + # hass.selectedLanguage + logging.info("get_locale(%s)", request.accept_languages) + return request.accept_languages.best_match( + ['de', 'en'] + ) + + app = Quart(__name__, template_folder='web/templates', static_folder='web/static') +babel = Babel(app, + locale_selector=get_locale, + default_translation_directories='../translations') app.register_blueprint(web_routes) diff --git a/app/src/web/templates/index.html b/app/src/web/templates/index.html index e7de164..806c68a 100644 --- a/app/src/web/templates/index.html +++ b/app/src/web/templates/index.html @@ -2,7 +2,7 @@ {% block title %} TSUN Proxy - Dashboard {% endblock title%} {% block menu1_class %}w3-blue{% endblock %} -{% block headline %} My Dashboard{% endblock headline %} +{% block headline %} {{_('My Dashboard')}}{% endblock headline %} {% block content %}
diff --git a/app/translations/de/LC_MESSAGES/messages.po b/app/translations/de/LC_MESSAGES/messages.po new file mode 100644 index 0000000..d76f60d --- /dev/null +++ b/app/translations/de/LC_MESSAGES/messages.po @@ -0,0 +1,25 @@ +# German translations for tsun-gen3-proxy. +# Copyright (C) 2025 ORGANIZATION +# This file is distributed under the same license as the tsun-gen3-proxy +# project. +# FIRST AUTHOR , 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: tsun-gen3-proxy 0.14.0\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2025-04-18 20:46+0200\n" +"PO-Revision-Date: 2025-04-18 16:24+0200\n" +"Last-Translator: FULL NAME \n" +"Language: de\n" +"Language-Team: de \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.17.0\n" + +#: src/web/templates/index.html:5 +msgid "My Dashboard" +msgstr "Mein Dashboard" +