changeset 785:64bf70856f02

Fix for #250: ignore expressions in attribute values when inside `i18n:msg` elements.
author cmlenz
date Thu, 31 Jul 2008 14:18:25 +0000
parents 6dc1a751804d
children d30a27266b45
files ChangeLog genshi/filters/i18n.py genshi/filters/tests/i18n.py
diffstat 3 files changed, 22 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,14 @@
  * Support for Python 2.3 has been dropped.
 
 
+Version 0.5.2
+http://svn.edgewall.org/repos/genshi/tags/0.5.2/
+(???, from branches/stable/0.5.x)
+
+ * Fix problem with I18n filter that would get confused by expressions in
+   attribute values when inside an `i18n:msg` block (ticket #250).
+
+
 Version 0.5.1
 http://svn.edgewall.org/repos/genshi/tags/0.5.1/
 (Jul 9 2008, from branches/stable/0.5.x)
--- a/genshi/filters/i18n.py
+++ b/genshi/filters/i18n.py
@@ -163,7 +163,7 @@
                             newval = self.translate(value)
                     else:
                         newval = list(self(_ensure(value), ctxt,
-                            search_text=False, msgbuf=msgbuf)
+                            search_text=False)
                         )
                     if newval != value:
                         value = newval
--- a/genshi/filters/tests/i18n.py
+++ b/genshi/filters/tests/i18n.py
@@ -301,6 +301,19 @@
           <p>Jim, sei gegrüßt!</p>
         </html>""", tmpl.generate(user=dict(name='Jim')).render())
 
+    def test_translate_i18n_msg_with_attribute_param(self):
+        tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
+            xmlns:i18n="http://genshi.edgewall.org/i18n">
+          <p i18n:msg="">
+            Hello, <a href="#${anchor}">dude</a>!
+          </p>
+        </html>""")
+        gettext = lambda s: u"Sei gegrüßt, [1:Alter]!"
+        tmpl.filters.insert(0, Translator(gettext))
+        self.assertEqual("""<html>
+          <p>Sei gegrüßt, <a href="#42">Alter</a>!</p>
+        </html>""", tmpl.generate(anchor='42').render())
+
     def test_extract_i18n_msg_with_two_params(self):
         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
             xmlns:i18n="http://genshi.edgewall.org/i18n">
Copyright (C) 2012-2017 Edgewall Software