6
我搜索了一个GAE + jinja i18n例子,但是找不到它。任何人都可以提供链接或工作示例吗?i18n与jinja2 + GAE
我的努力使用django翻译,我不知道这是否是推荐的做法。
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)
感谢您的任何提示或建议。我还使用了自定义的请求处理程序国际化:
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是为新的(实验)python 2.7,尚不稳定。 dJango 1.2在python2.5上运行。你是否搜索过'django i18n example'?很多[样本](http://www.djangobook.com/en/1.0/chapter18/)帮助页面? –