Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(243)

Unified Diff: components/cronet/tools/generate_accept_languages.py

Issue 2665703002: [cronet] Make getAcceptLanguages index a static table instead of the application bundle. (Closed)
Patch Set: move accept_languages header generation script to more appropriate location Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/cronet/ios/test/start_cronet.mm ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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()
« no previous file with comments | « components/cronet/ios/test/start_cronet.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698