[svn] reversed -> reverse
authorArmin Ronacher <armin.ronacher@active-4.com>
Mon, 5 Mar 2007 17:03:32 +0000 (18:03 +0100)
committerArmin Ronacher <armin.ronacher@active-4.com>
Mon, 5 Mar 2007 17:03:32 +0000 (18:03 +0100)
--HG--
branch : trunk

jinja/filters.py
jinja/parser.py
jinja/utils.py

index d548d5a1f8d851472c41fe32d9a08711ec16f7ba..6a0bf33691ed20435bfdf46d7c45c939478ed3df 100644 (file)
@@ -190,14 +190,14 @@ def do_count():
     return wrapped
 
 
-def do_reversed():
+def do_reverse():
     """
     Return a reversed list of the sequence filtered. You can use this
     for example for reverse iteration:
 
     .. sourcecode:: jinja
 
-        {% for item in seq|reversed %}
+        {% for item in seq|reverse %}
             {{ item|e }}
         {% endfor %}
     """
@@ -307,7 +307,7 @@ FILTERS = {
     'default':              do_default,
     'join':                 do_join,
     'count':                do_count,
-    'reversed':             do_reversed,
+    'reverse':              do_reverse,
     'center':               do_center,
     'title':                do_title,
     'capitalize':           do_capitalize,
index a95dda89464eb0fedfa0d96b7a4636d461b1079c..1bcd0b2707840d7c2d1fdab5b42467df697a7cc0 100644 (file)
@@ -342,9 +342,7 @@ class Parser(object):
                         break
                 # normal data
                 else:
-                    if replacements:
-                        data = data.replace('%', '%%')
-                    buf.append(data)
+                    buf.append(data.replace('%', '%%'))
 
         except StopIteration:
             raise TemplateSyntaxError('unexpected end of translation section',
index 44b8dc92509f2d41ad9b8aa8f33c584adc7f068e..7cbf77eca57ba88c84c7e904226e210116c6d7d6 100644 (file)
@@ -9,6 +9,7 @@
     :license: BSD, see LICENSE for more details.
 """
 import re
+from jinja.nodes import Trans
 from jinja.datastructure import safe_types, Markup
 
 
@@ -24,6 +25,7 @@ _escape_res = (
     re.compile('(&|<|>)')
 )
 
+
 def escape(x, attribute=False):
     """
     Escape an object x which is converted to unicode first.
@@ -32,3 +34,18 @@ def escape(x, attribute=False):
         return x
     return Markup(_escape_res[not attribute].sub(lambda m:
                   _escape_pairs[m.group()], unicode(x)))
+
+
+
+def find_translations(environment, source):
+    """
+    Find all translatable strings in a template and yield
+    them as (lineno, singular, plural) tuples. If a plural
+    section does not exist it will be None.
+    """
+    queue = [environment.parse(source)]
+    while queue:
+        node = queue.pop()
+        if node.__class__ is Trans:
+            yield node.lineno, node.singular, node.plural
+        queue.extend(node.getChildNodes())