diff --git a/app/tools/check-string-format.py b/app/tools/check-string-format.py index dcb4cadef..00395e118 100755 --- a/app/tools/check-string-format.py +++ b/app/tools/check-string-format.py @@ -11,6 +11,7 @@ from xml.etree import ElementTree formatRe = re.compile(r'(%%|%[^%](\$.)?)') validFormatRe = re.compile(r'^(%%|%[sd]|%[0-9]\$[sd])$') +oddQuotingRe = re.compile(r'^"\s*(.+?)\s*"$') projectdir = os.path.join(os.path.dirname(__file__), '..') @@ -22,6 +23,9 @@ for d in sorted(glob.glob(os.path.join(projectdir, 'src', 'main', 'res', 'values if not os.path.exists(str_path): continue + with open(str_path, encoding='utf-8') as fp: + fulltext = fp.read() + tree = ElementTree.parse(str_path) root = tree.getroot() @@ -36,6 +40,18 @@ for d in sorted(glob.glob(os.path.join(projectdir, 'src', 'main', 'res', 'values count += 1 print('%s: Invalid format "%s" in "%s"' % (str_path, s, e.text)) + m = oddQuotingRe.search(e.text) + if m: + print('%s: odd quoting in %s' % (str_path, e.tag)) + print('found', fulltext.rfind(e.text)) + fulltext = fulltext.replace(e.text, m.group(1)) + count += 1 + if e.text != m.group(1): + print(e.text, '-=<' + m.group(1) + '>=-') + + with open(str_path, 'w', encoding='utf-8') as fp: + fp.write(fulltext) + if count > 0: print("%d misformatted strings found!" % count) sys.exit(1)