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')