SHARE
TWEET

Untitled




Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
- i18n with jinja2 GAE
- 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())
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.