Flask-Babel локализованные строки в JS
Я довольно новичок в Python и Flask (с Jinja2 в качестве движка шаблонов), и я не уверен, что делаю это правильно. Я использую расширение Flask-Babel для добавления поддержки i18n в мое веб-приложение. Я хочу получить локализованные строки из моего кода JS, например:
var helloWorld = gettext('Hello, world');
console.log(helloWorld); //should log a localized hello world message
Для этого я настроил babel (babel.cfg):
[python: **/**.py]
[jinja2: **/**.html]
extensions=jinja2.ext.autoescape,jinja2.ext.with_
[javascript: **/**.js]
encoding = utf-8
И его инициализация (импорт опущен для простоты):
#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 идентифицирует эту строку при построении файлов языка POT / PO, но, похоже, я не могу получить доступ к этим локализованным строкам из кода js, так как функция gettext не определена. Кажется, что Jinja2 игнорирует эту часть.
Есть намеки?