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

Unified Diff: build/android/gyp/package_resources.py

Issue 2615753004: Android: Stop including unsupport locales in resources.arsc (Closed)
Patch Set: Make monochrome include all locales Created 3 years, 11 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 | « base/android/java/src/org/chromium/base/LocaleUtils.java ('k') | build/config/android/internal_rules.gni » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/gyp/package_resources.py
diff --git a/build/android/gyp/package_resources.py b/build/android/gyp/package_resources.py
index 53ba92c3c6da58701ec71663dd4c09320bf11b76..e5e91c909149447c9dd4b755cf8631b793292632 100755
--- a/build/android/gyp/package_resources.py
+++ b/build/android/gyp/package_resources.py
@@ -23,6 +23,22 @@ import zipfile
from util import build_utils
+# A variation of this lists also exists in:
+# //base/android/java/src/org/chromium/base/LocaleUtils.java
+_CHROME_TO_ANDROID_LOCALE_MAP = {
+ 'en-GB': 'en-rGB',
+ 'en-US': 'en-rUS',
+ 'es-419': 'es-rUS',
+ 'fin': 'tl',
+ 'he': 'iw',
+ 'id': 'in',
+ 'pt-PT': 'pt-rPT',
+ 'pt-BR': 'pt-rBR',
+ 'yi': 'ji',
+ 'zh-CN': 'zh-rCN',
+ 'zh-TW': 'zh-rTW',
+}
+
# List is generated from the chrome_apk.apk_intermediates.ap_ via:
# unzip -l $FILE_AP_ | cut -c31- | grep res/draw | cut -d'/' -f 2 | sort \
# | uniq | grep -- -tvdpi- | cut -c10-
@@ -113,7 +129,12 @@ def _ParseArgs(args):
help='Enables density splits')
parser.add_option('--language-splits',
default='[]',
- help='GYP list of languages to create splits for')
+ help='GN list of languages to create splits for')
+ parser.add_option('--locale-whitelist',
+ default='[]',
+ help='GN list of languages to include. All other language '
+ 'configs will be stripped out. List may include '
+ 'a combination of Android locales or Chrome locales.')
parser.add_option('--apk-path',
help='Path to output (partial) apk.')
@@ -132,9 +153,26 @@ def _ParseArgs(args):
options.resource_zips = build_utils.ParseGnList(options.resource_zips)
options.language_splits = build_utils.ParseGnList(options.language_splits)
+ options.locale_whitelist = build_utils.ParseGnList(options.locale_whitelist)
return options
+def _ToAaptLocales(locale_whitelist):
+ """Converts the list of Chrome locales to aapt config locales."""
+ ret = set()
+ for locale in locale_whitelist:
+ locale = _CHROME_TO_ANDROID_LOCALE_MAP.get(locale, locale)
+ if locale is None or ('-' in locale and '-r' not in locale):
+ raise Exception('_CHROME_TO_ANDROID_LOCALE_MAP needs updating.'
+ ' Found: %s' % locale)
+ ret.add(locale)
+ # Always keep non-regional fall-backs.
+ language = locale.split('-')[0]
+ ret.add(language)
+
+ return sorted(ret)
+
+
def MoveImagesToNonMdpiFolders(res_root):
"""Move images from drawable-*-mdpi-* folders to drawable-* folders.
@@ -257,6 +295,10 @@ def _ConstructMostAaptArgs(options):
if 'Debug' in options.configuration_name:
package_command += ['--debug-mode']
+ if options.locale_whitelist:
+ aapt_locales = _ToAaptLocales(options.locale_whitelist)
+ package_command += ['-c', ','.join(aapt_locales)]
+
return package_command
« no previous file with comments | « base/android/java/src/org/chromium/base/LocaleUtils.java ('k') | build/config/android/internal_rules.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698