Tôi googled cho ví dụ GAE + jinja i18n nhưng không thể tìm thấy nó. Bất cứ ai có thể cung cấp một liên kết hoặc ví dụ làm việc?i18n với jinja2 + GAE
Nỗ lực của tôi sử dụng bản dịch django và tôi không biết đây có phải là cách đề xuất để thực hiện hay không.
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)
Cảm ơn bạn đã gợi ý hoặc tư vấn. Tôi cũng sử dụng một trình xử lý yêu cầu tùy chỉnh cho i18n: bài
from django.utils import translation
class I18NHandler(webapp2.RequestHandler):
def render_template(self, file, template_args):
path = os.path.join(os.path.dirname(__file__), 'templates',
file)
self.response.out.write(template.render(path, template_args))
def initialize(self, request, response):
webapp2.RequestHandler.initialize(self, request, response)
self.request.COOKIES = Cookies(self)
self.request.META = os.environ
self.reset_language()
def reset_language(self):
# Decide the language from Cookies/Headers
language = translation.get_language_from_request(self.request)
translation.activate(language)
self.request.LANGUAGE_CODE = translation.get_language()
# Set headers in response
self.response.headers['Content-Language'] = str(translation.get_language())
jinja2 dành cho python (thử nghiệm) mới 2.7, chưa ổn định. dJango 1.2 chạy trên python2.5. Bạn đã googled 'django i18n ví dụ'? Rất nhiều trang trợ giúp [mẫu] (http://www.djangobook.com/en/1.0/chapter18/)? –