Flask-Babel lokalisierte Strings innerhalb von js
Ich bin ziemlich neu in Python und Flask (mit Jinja2 als Template-Engine) und ich bin nicht sicher, ob ich es richtig mache. Ich verwende die Flask-Babel-Erweiterung, um meiner Webanwendung i18n-Unterstützung hinzuzufügen. Ich möchte lokalisierte Zeichenfolgen aus meinem js-Code erhalten, zum Beispiel:
var helloWorld = gettext('Hello, world');
console.log(helloWorld); //should log a localized hello world message
Dafür habe ich babel (babel.cfg) konfiguriert:
[python: **/**.py]
[jinja2: **/**.html]
extensions=jinja2.ext.autoescape,jinja2.ext.with_
[javascript: **/**.js]
encoding = utf-8
Und seine Initialisierung ist (Importe der Einfachheit halber weggelassen):
#main Flask app
app = Flask(__name__)
#localization
babel = Babel(app)
LANGUAGES = {
'ca': 'Catalan',
'en': 'English',
'de': 'Deutsch',
'es': 'Español',
'fi': 'Finnish',
'it': 'Italian'
}
@babel.localeselector
def get_locale():
return request.accept_languages.best_match(LANGUAGES.keys())
#some more stuff...
Babel identifiziert diese Zeichenfolge beim Erstellen der POT / PO-Sprachdateien, aber es scheint, dass ich über js-Code nicht auf diese lokalisierten Zeichenfolgen zugreifen kann, da die gettext-Funktion nicht definiert ist. Es scheint, als würde Jinja2 diesen Teil ignorieren.
Irgendwelche Hinweise?