summaryrefslogtreecommitdiff
path: root/i18nfix.py
diff options
context:
space:
mode:
Diffstat (limited to 'i18nfix.py')
-rw-r--r--i18nfix.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/i18nfix.py b/i18nfix.py
index b0395507..331706af 100644
--- a/i18nfix.py
+++ b/i18nfix.py
@@ -10,11 +10,24 @@ Extract translations from a Jinja2 template, stripping leading newlines.
import jinja2.ext
import re
-r = re.compile(r"\n[ \t]+")
+def normalize(message):
+ message = message.strip()
+ # collapse whitespaces (including newlines) into one space.
+ message = re.sub("\s+", " ", message)
+ return message
+
def babel_extract(fileobj, keywords, comment_tags, options):
res = jinja2.ext.babel_extract(fileobj, keywords, comment_tags, options)
for lineno, funcname, message, comments in res:
- message = message.lstrip()
- message = r.sub("\n", message)
+ message = normalize(message)
yield lineno, funcname, message, comments
+
+def wrap_gettext(f):
+ """
+ Call gettext with whitespace normalized.
+ """
+ def wrapper(message):
+ message = normalize(message)
+ return f(message)
+ return wrapper