обслуживание i18n js с использованием babel, django, & jinja2

Использование django, с jinja2 для рендеринга & babel для извлечения сообщений

У меня есть некоторые файлы js, которые должны быть интернационализированы. Я не смог понять синтаксис для извлечения сообщений из них, которые также позволяли бы jinja2 визуализировать их. Либо jinja2 должен научиться читать извлекаемый синтаксис, либо мне нужно извлечь из чего-то, что может сделать рендеринг jinja2. (Или, сделайте это по-другому)

экстрагирование

Если я отмечаю сообщения в js с помощью

gettext('message') 

Он извлекает просто отлично.

Rendering

Но jinja2 не заменит вызовы gettext в js (я возвращаю js-шаблоны с jinja2 перед их возвратом) – ему нужно что-то вроде

 {% trans %}message{% endtrans %} 

Но этот синтаксис не может использоваться для извлечения сообщений.

Babel использует функцию extract_javascript из babel.messages для извлечения сообщений, которые не выглядят equipeed для обработки этого типа тега.

One Solution collect form web for “обслуживание i18n js с использованием babel, django, & jinja2”

Ну, похоже, я могу просто сделать:

 {{gettext("message")}} 

(без определения gettext)

в JS и Babel выдержит, и jinja2 заменит его в порядке.

Тем не менее, следите за цитатами. Вы не можете:

 '{{gettext("message")}}' 

потому что extract_javascript не прочитает его. Но вы можете просто положить кавычки внутрь, пока вы делаете их безопасно:

 {{gettext("'message'")|safe}} 

Так что ваши переводчики обязательно оставляют котировки везде, где они находят их в оригинале.

  • Jinja2 и Flask: передать переменную в родительский шаблон, не передавая ее детям
  • Проверьте, существует ли ключ в типе Python в шаблонах Jinja2
  • Есть ли у языка программирования Jinja2 понятие «здесь» (текущий каталог)?
  • Сортировка списка объектов с Jinja2 и Flask в зависимости от нажатого поля
  • Рендеринг шаблона Jinja в Flask после ответа ajax
  • Flask-WTForms: как проверить, требуется ли поле?
  • Справочная шаблонная переменная в выражении Jinja
  • Создание динамических аргументов для url_for в Flask
  •  
    Interesting Posts for Van-Lav

    Как установить TensorFlow на малину Pi 2

    удалить все ключи, кроме одного словаря

    Python возвращает неправильную длину строки при использовании специальных символов

    Как получить ценность между двумя разными тегами, используя красивый суп?

    Ось метки на силовом стержне

    Как эффективно сравнивать два неупорядоченных списка (не множества) в Python?

    Построение чередующегося буфера для pyopengl и numpy

    Рекурсивное чтение данных Python

    Как заставить весь пакет использовать директиву __future__?

    тип shelve db не может быть определен, whichdb не распознает gdb

    Ошибка импорта hashlib с python 2.7, но не с 2.6

    Как установить права доступа к папке в Plone?

    Как заставить импорт Python работать с dlib (используя cmake и osx)

    Как проверить, запущен ли какой-либо процесс в диспетчере задач с помощью python

    Пилинт говорит, что модуль «строка» устарел. Каков новый способ получить диапазон символов нижнего регистра?

    Python - лучший язык программирования в мире.