diff options
Diffstat (limited to 'i18nfix.py')
-rw-r--r-- | i18nfix.py | 19 |
1 files changed, 16 insertions, 3 deletions
@@ -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 |