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()) 
+1

jinja2是爲新的(實驗)python 2.7,尚不穩定。 dJango 1.2在python2.5上運行。你是否搜索過'django i18n example'?很多[樣本](http://www.djangobook.com/en/1.0/chapter18/)幫助頁面? –

回答