From 3df626aed106d23a5a2090659141cb00dbf81dc8 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 10 May 2017 11:12:48 +0200 Subject: [PATCH] sync up translation scripts to use the same code To keep these scripts simple and readible, it makes sense to keep them as separate scripts. But they should use the same approach as much as possible. --- tools/check-format-strings.py | 4 +- tools/remove-unused-and-blank-translations.py | 43 ++++++++++--------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/tools/check-format-strings.py b/tools/check-format-strings.py index 00395e118..feb9af199 100755 --- a/tools/check-format-strings.py +++ b/tools/check-format-strings.py @@ -13,11 +13,11 @@ 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__), '..') +resdir = os.path.join(os.path.dirname(__file__), '..', 'app', 'src', 'main', 'res') count = 0 -for d in sorted(glob.glob(os.path.join(projectdir, 'src', 'main', 'res', 'values-*'))): +for d in sorted(glob.glob(os.path.join(resdir, 'values-*'))): str_path = os.path.join(d, 'strings.xml') if not os.path.exists(str_path): diff --git a/tools/remove-unused-and-blank-translations.py b/tools/remove-unused-and-blank-translations.py index d623d7f56..3ef71036d 100755 --- a/tools/remove-unused-and-blank-translations.py +++ b/tools/remove-unused-and-blank-translations.py @@ -10,34 +10,35 @@ import re from xml.etree import ElementTree resdir = os.path.join(os.path.dirname(__file__), '..', 'app', 'src', 'main', 'res') +sourcepath = os.path.join(resdir, 'values', 'strings.xml') strings = set() - -for e in ElementTree.parse(os.path.join(resdir, 'values', 'strings.xml')).getroot().findall('.//string'): +for e in ElementTree.parse(sourcepath).getroot().findall('.//string'): name = e.attrib['name'] strings.add(name) -for d in glob.glob(os.path.join(resdir, 'values-*')): +for d in sorted(glob.glob(os.path.join(resdir, 'values-*'))): str_path = os.path.join(d, 'strings.xml') - if os.path.exists(str_path): - header = '' - with open(str_path, 'r') as f: - header = f.readline() - tree = ElementTree.parse(str_path) - root = tree.getroot() + if not os.path.exists(str_path): + continue - elems = root.findall('.//string') - for e in elems: - name = e.attrib['name'] - if name not in strings: - root.remove(e) - if not e.text: - root.remove(e) + header = '' + with open(str_path, 'r') as f: + header = f.readline() + tree = ElementTree.parse(str_path) + root = tree.getroot() - result = re.sub(r' />', r'/>', ElementTree.tostring(root, encoding='utf-8').decode('utf-8')) + for e in root.findall('.//string'): + name = e.attrib['name'] + if name not in strings: + root.remove(e) + if not e.text: + root.remove(e) - with open(str_path, 'w+') as f: - f.write(header) - f.write(result) - f.write('\n') + result = re.sub(r' />', r'/>', ElementTree.tostring(root, encoding='utf-8').decode('utf-8')) + + with open(str_path, 'w+') as f: + f.write(header) + f.write(result) + f.write('\n')