[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