Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import glob
- import xml.etree.ElementTree as ET
- import os
- import sys
- def parse_strings(xml_file):
- tree = ET.parse(xml_file)
- root = tree.getroot()
- all_strings = {}
- for child in root:
- name = child.get('name')
- if name in all_strings:
- print 'WARNING! duplicate key %s in %s' % (name, xml_file)
- all_strings[name] = child.text
- return all_strings
- def print_missing(missing_set, default_strings):
- for key in missing_set:
- print '<string name="%s">%s</string>' % (key, default_strings[key])
- path_to_default = '../res/values/strings.xml'
- default_strings = parse_strings(path_to_default)
- all_keys = set(default_strings)
- values_folders = glob.glob('../res/values-[A-Za-z][A-Za-z]')
- for values_folder in values_folders:
- try:
- with open(os.path.join(values_folder, 'strings.xml')) as strings_file:
- translated = parse_strings(strings_file)
- shared = set(translated).intersection(all_keys)
- missing = all_keys - shared
- if missing:
- print >> sys.stderr, 'Missing in %s:' % os.path.abspath(strings_file.name)
- print_missing(missing, default_strings)
- print
- except IOError:
- print "Ignoring %s as it's not an i18n folder" % values_folder
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement