diff --git a/F-Droid/tools/remove-partial-arrays.py b/F-Droid/tools/remove-partial-arrays.py new file mode 100755 index 000000000..97254fc1e --- /dev/null +++ b/F-Droid/tools/remove-partial-arrays.py @@ -0,0 +1,36 @@ +#!/bin/env python2 + +# Remove translated arrays that are missing elements + +import glob +import os +import re +from xml.etree import ElementTree + +number = dict() + +for e in ElementTree.parse(os.path.join('res', 'values', 'array.xml')).getroot().findall('.//string-array'): + name = e.attrib['name'] + count = len(e.findall('item')) + number[name] = count + +for d in glob.glob(os.path.join('res', 'values-*')): + + arr_path = os.path.join(d, 'array.xml') + if os.path.exists(arr_path): + tree = ElementTree.parse(arr_path) + root = tree.getroot() + + elems = root.findall('.//string-array') + for e in elems: + name = e.attrib['name'] + count = len(e.findall('item')) + if count != number[name]: + root.remove(e) + + result = re.sub(r' />', r'/>', ElementTree.tostring(root, encoding='utf-8')) + + with open(arr_path, 'w+') as f: + f.write('\n') + f.write(result) + f.write('\n')