[Checkins] SVN: megrok.jinja/trunk/src/megrok/jinja/ i18nExtension now it's able to use (only using the `_` function) the same parameters as the translate method defined in
Santiago Videla
santiago.videla at gmail.com
Tue Apr 21 19:54:23 EDT 2009
Log message for revision 99354:
i18nExtension now it's able to use (only using the `_` function) the same parameters as the translate method defined in
zope.i18n.interfaces.ITranslationDomain.
Changed:
U megrok.jinja/trunk/src/megrok/jinja/extensions.py
U megrok.jinja/trunk/src/megrok/jinja/ftests/i18n/test_i18n.py
A megrok.jinja/trunk/src/megrok/jinja/ftests/i18n/test_i18n_templates/usingparams.jinja
U megrok.jinja/trunk/src/megrok/jinja/ftests/locales/po/es/test_domain.po
-=-
Modified: megrok.jinja/trunk/src/megrok/jinja/extensions.py
===================================================================
--- megrok.jinja/trunk/src/megrok/jinja/extensions.py 2009-04-21 20:10:24 UTC (rev 99353)
+++ megrok.jinja/trunk/src/megrok/jinja/extensions.py 2009-04-21 23:54:22 UTC (rev 99354)
@@ -28,9 +28,12 @@
Use {% set i18n_domain='your-domain' %} in the top of your template."""
@contextfunction
-def _translator_alias(context, string):
- return context.resolve('gettext')(context, string)
+def _translator_alias(context, msgid, domain=None, mapping=None, ctx=None,
+ target_language=None, default=None):
+ return context.resolve('gettext')(context, msgid, domain, mapping, ctx,
+ target_language, default)
+
class i18nExtension(InternationalizationExtension):
"""
Jinja2 extension based on the `InternationalizationExtension`
@@ -66,14 +69,19 @@
return getUtility(ITranslationDomain, domain)
@contextfunction
- def translator(self, context, msg):
- request = context.resolve('view').request
- domain = context.resolve('i18n_domain')
+ def translator(self, context, msg, domain=None, mapping=None, ctx=None,
+ target_language=None, default=None):
+
+ ctx = ctx or context.resolve('view').request
+ domain = domain or context.resolve('i18n_domain')
if not domain:
raise DomainNotDefined
return self.trans_domain(domain).translate(msg,
- context=request)
+ mapping=mapping,
+ context=ctx,
+ target_language=target_language,
+ default=default)
def _make_node(self, singular, plural, variables, plural_expr):
"""
Modified: megrok.jinja/trunk/src/megrok/jinja/ftests/i18n/test_i18n.py
===================================================================
--- megrok.jinja/trunk/src/megrok/jinja/ftests/i18n/test_i18n.py 2009-04-21 20:10:24 UTC (rev 99353)
+++ megrok.jinja/trunk/src/megrok/jinja/ftests/i18n/test_i18n.py 2009-04-21 23:54:22 UTC (rev 99354)
@@ -60,6 +60,13 @@
DomainNotDefined:
Domain translations it's required.
Use {% set i18n_domain='your-domain' %} in the top of your template.
+
+When using `_` alias translator, we could use all the parameters in
+zope.i18n.interfaces.ITranslationDomain.translate
+
+ >>> view = getMultiAdapter((context, request), name='usingparams')
+ >>> print view()
+ Probando el mapeo con algo
"""
@@ -80,3 +87,11 @@
class NoDomain(View):
context(Context)
+
+class UsingParams(View):
+ context(Context)
+
+ def update(self):
+ self.domain = 'test_domain'
+ self.mapping = {'something' : 'algo'}
+
Added: megrok.jinja/trunk/src/megrok/jinja/ftests/i18n/test_i18n_templates/usingparams.jinja
===================================================================
--- megrok.jinja/trunk/src/megrok/jinja/ftests/i18n/test_i18n_templates/usingparams.jinja (rev 0)
+++ megrok.jinja/trunk/src/megrok/jinja/ftests/i18n/test_i18n_templates/usingparams.jinja 2009-04-21 23:54:22 UTC (rev 99354)
@@ -0,0 +1 @@
+{{ _('Testing mapping with ${somthing}', domain=view.domain, mapping=view.mapping)}}
Modified: megrok.jinja/trunk/src/megrok/jinja/ftests/locales/po/es/test_domain.po
===================================================================
--- megrok.jinja/trunk/src/megrok/jinja/ftests/locales/po/es/test_domain.po 2009-04-21 20:10:24 UTC (rev 99353)
+++ megrok.jinja/trunk/src/megrok/jinja/ftests/locales/po/es/test_domain.po 2009-04-21 23:54:22 UTC (rev 99354)
@@ -25,3 +25,6 @@
msgid "testing-underscore"
msgstr "Probando la extension i18n en megrok.jinja usando la funcion `_`"
+
+msgid "Testing mapping with ${somthing}"
+msgstr "Probando el mapeo con ${something}"
More information about the Checkins
mailing list