как i18n переводчик с помощью Jinja2


Я учусь в Jinja2 и что важно в данном случае не скорость вовсе, но как i18n перевод и функциональности. С помощью Python 2.7, Jinja2 и не Джанго, кажется, предпочтительный способ идти, так что я перепишу большую часть моего проекта использование шаблонов Jinja2. У нас уже было много переводов .и МО .po-файлы и хотела продолжать использовать эти и мы также хотим использовать пакет перевод Джанго. Я нашел способ использовать библиотеки перевод Джанго с Jinja2.

Не могли бы вы рассмотреть этот код и комментарий, если я могу использовать его таким образом? Мой SDK-это приложение Google двигателя.

import jinja2
from django.utils import translation
from django.utils.translation import gettext, ngettext, ugettext, ungettext, get_language, activate
class DjangoTranslator(object):

    def __init__(self):
        self.gettext = gettext
        self.ngettext = ngettext
        self.ugettext = ugettext
        self.ungettext = ungettext
from jinja2 import Environment, FileSystemLoader
class DjangoEnvironment(jinja2.Environment):

    def get_translator(self, context):
        return DjangoTranslator()

jinja_environment = DjangoEnvironment(
    loader=jinja2.FileSystemLoader(os.path.dirname(__file__)), extensions=['jinja2.ext.i18n'])
jinja_environment.install_gettext_translations(translation)


Комментарии
1 ответ

Я не знаю Джимма, но я могу дать несколько универсальных указателей на Python:


  1. Как правило, ее считают лучше ставить всего импорта в верхней части файла не рассредоточены

  2. А затем импортировать кучу вещей, чтобы использовать один раз, использовать самостоятельно.то gettext = перевод.с текстом и т. д

  3. Почему пустые строки после занятий, но нигде? Я бы, но пустую строку перед началом класса, а не внутри.

3
ответ дан 2 ноября 2011 в 08:11 Источник Поделиться