i18n: fix "% inside _()" problems
Before this patch, "contrib/check-code.py" can't detect these
problems, because the regexp pattern to detect "% inside _()" doesn't
suppose the case that the format string and "%" aren't placed in the
same line.
This patch replaces "\s" in that regexp pattern with "[ \t\n]" to
detect "% inside _()" problems in such case.
"[\s\n]" can't be used in this purpose, because "\s" is automatically
replaced with "[ \t]" by "_preparepats()" and "\s" in "[]" causes
nested "[]" unexpectedly.
#!/usr/bin/python
import sys, os, re
IGNORE = ['.css', '.py']
oldre = re.compile('#([\w\|%]+)#')
def rewrite(fn):
f = open(fn)
new = open(fn + '.new', 'wb')
for ln in f:
new.write(oldre.sub('{\\1}', ln))
new.close()
f.close()
os.rename(new.name, f.name)
if __name__ == '__main__':
if len(sys.argv) < 2:
print 'usage: python tmplrewrite.py [file [file [file]]]'
for fn in sys.argv[1:]:
if os.path.splitext(fn) in IGNORE:
continue
print 'rewriting %s...' % fn
rewrite(fn)