diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-06-02 13:55:46 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-06-02 13:55:46 +0200 |
commit | 0e12d62b0c66a33c5a873090395d390523d6ce56 (patch) | |
tree | 2ffc18b3029e8f658979f2f2af999fc1ef9b83ef /i18nfix.py | |
parent | d15e4218e8afa4c646aee6db27e32e536ea85d45 (diff) | |
download | www-0e12d62b0c66a33c5a873090395d390523d6ce56.tar.gz www-0e12d62b0c66a33c5a873090395d390523d6ce56.tar.bz2 www-0e12d62b0c66a33c5a873090395d390523d6ce56.zip |
fix i18n whitespace normalization
Diffstat (limited to 'i18nfix.py')
-rw-r--r-- | i18nfix.py | 21 |
1 files changed, 18 insertions, 3 deletions
@@ -10,11 +10,26 @@ 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) + print("extracting", repr(message)) yield lineno, funcname, message, comments + +def wrap_gettext(f): + """ + Call gettext with whitespace normalized. + """ + def wrapper(message): + message = normalize(message) + print("translating", repr(message)) + return f(message) + return wrapper |