aboutsummaryrefslogtreecommitdiff
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.
10import jinja2.ext 10import jinja2.ext
11import re 11import re
12 12
13r = re.compile(r"\n[ \t]+") 13def normalize(message):
14 message = message.strip()
15 # collapse whitespaces (including newlines) into one space.
16 message = re.sub("\s+", " ", message)
17 return message
18
14 19
15def babel_extract(fileobj, keywords, comment_tags, options): 20def babel_extract(fileobj, keywords, comment_tags, options):
16 res = jinja2.ext.babel_extract(fileobj, keywords, comment_tags, options) 21 res = jinja2.ext.babel_extract(fileobj, keywords, comment_tags, options)
17 for lineno, funcname, message, comments in res: 22 for lineno, funcname, message, comments in res:
18 message = message.lstrip() 23 message = normalize(message)
19 message = r.sub("\n", message)
20 yield lineno, funcname, message, comments 24 yield lineno, funcname, message, comments
25
26def wrap_gettext(f):
27 """
28 Call gettext with whitespace normalized.
29 """
30 def wrapper(message):
31 message = normalize(message)
32 return f(message)
33 return wrapper