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.
This commit is contained in:
Hans-Christoph Steiner 2017-05-10 11:12:48 +02:00
parent 082b6091fc
commit 3df626aed1
2 changed files with 24 additions and 23 deletions

View File

@ -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):

View File

@ -10,25 +10,26 @@ 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):
if not os.path.exists(str_path):
continue
header = ''
with open(str_path, 'r') as f:
header = f.readline()
tree = ElementTree.parse(str_path)
root = tree.getroot()
elems = root.findall('.//string')
for e in elems:
for e in root.findall('.//string'):
name = e.attrib['name']
if name not in strings:
root.remove(e)