| Index: components/cronet/tools/generate_accept_languages.py
|
| diff --git a/components/cronet/tools/generate_accept_languages.py b/components/cronet/tools/generate_accept_languages.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f192058d8d14844cede82221ab617e55124ac2a1
|
| --- /dev/null
|
| +++ b/components/cronet/tools/generate_accept_languages.py
|
| @@ -0,0 +1,45 @@
|
| +# Copyright 2017 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +# This script generates a header containing a dictionary from locales to
|
| +# accept language strings from chromium's .xtb files. It is not very
|
| +# robust at the moment, and makes some assumptions about the format of
|
| +# the files, including at least the following:
|
| +# * assumes necessary data is contained only with files of the form
|
| +# components/strings/components_locale_settings_${LANG}.xtb
|
| +# * assumes ${LANG} is identified in the lang attribute of the root
|
| +# element of the file's xml data
|
| +# * assumes that there is only one relevant element with the
|
| +# IDS_ACCEPT_LANGUAGES attribute
|
| +
|
| +import os, re, sys
|
| +from xml.etree import ElementTree
|
| +
|
| +STRINGS_DIR = sys.argv[2] + 'components/strings/'
|
| +
|
| +def extract_accept_langs(filename):
|
| + tree = ElementTree.parse(STRINGS_DIR + filename).getroot()
|
| + for child in tree:
|
| + if child.get('id') == 'IDS_ACCEPT_LANGUAGES':
|
| + return tree.get('lang'), child.text
|
| +
|
| +def gen_accept_langs_table():
|
| + return dict(filter(None, (extract_accept_langs(filename)
|
| + for filename in os.listdir(STRINGS_DIR)
|
| + if re.match(r'components_locale_settings_\S+.xtb', filename))))
|
| +
|
| +HEADER = "NSDictionary* acceptLangs = @{"
|
| +def LINE(locale, accept_langs):
|
| + return ' @"' + locale + '" : @"' + accept_langs + '",'
|
| +FOOTER = "};"
|
| +
|
| +def main():
|
| + with open(sys.argv[1] + "/accept_languages_table.h", "w+") as f:
|
| + print >>f, HEADER
|
| + for (locale, accept_langs) in gen_accept_langs_table().items():
|
| + print >>f, LINE(locale, accept_langs)
|
| + print >>f, FOOTER
|
| +
|
| +if __name__ == "__main__":
|
| + main()
|
|
|