summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/build/config/locales.gni
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/build/config/locales.gni')
-rw-r--r--third_party/libwebrtc/build/config/locales.gni251
1 files changed, 251 insertions, 0 deletions
diff --git a/third_party/libwebrtc/build/config/locales.gni b/third_party/libwebrtc/build/config/locales.gni
new file mode 100644
index 0000000000..1d57b877dc
--- /dev/null
+++ b/third_party/libwebrtc/build/config/locales.gni
@@ -0,0 +1,251 @@
+# Copyright 2014 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.
+
+import("//build/config/chromeos/ui_mode.gni")
+
+# This file creates the |locales| which is the set of current
+# locales based on the current platform. Locales in this list are formated
+# based on what .pak files expect.
+# The |locales| variable *may* contain pseudolocales, depending on the
+# |enable_pseudolocales| flag.
+# If you specifically want to have the locales variable with or without
+# pseudolocales, then use |locales_with_pseudolocales| or
+# |locales_without_pseudolocales|.
+
+# The following additional platform specific lists are created:
+# - |android_bundle_locales_as_resources| locales formatted for XML output names
+# - |locales_as_mac_outputs| formated for mac output bundles
+# - |ios_packed_locales| subset for iOS
+# - |ios_packed_locales_as_mac_outputs| subset for iOS output
+
+# Chrome on iOS only ships with a subset of the locales supported by other
+# version of Chrome as the corresponding locales are not supported by the
+# operating system (but for simplicity, the corresponding .pak files are
+# still generated).
+ios_unsupported_locales = [
+ "am",
+ "bn",
+ "et",
+ "fil",
+ "gu",
+ "kn",
+ "lv",
+ "ml",
+ "mr",
+ "sl",
+ "sw",
+ "ta",
+ "te",
+]
+
+# These list are defined even when not building for Android or iOS for the
+# sake of build/locale_tool.py. Ensure that GN doesn't complain about them
+# being unused.
+not_needed([ "ios_unsupported_locales" ])
+
+# Superset of all locales used in Chrome with platform specific changes noted.
+all_chrome_locales = [
+ "af",
+ "am",
+ "ar",
+ "as",
+ "az",
+ "be",
+ "bg",
+ "bn",
+ "bs",
+ "ca",
+ "cs",
+ "da",
+ "de",
+ "el",
+ "en-GB",
+ "en-US",
+ "es",
+ "es-419", # "es-MX" in iOS (Mexico vs Latin America) "es-US" on Android
+ "et",
+ "eu",
+ "fa",
+ "fi",
+ "fil", # "tl" in .xml but "fil" in TC and .pak
+ "fr",
+ "fr-CA",
+ "gl",
+ "gu",
+ "he", # "iw" in .xml and TC but "he" in .pak
+ "hi",
+ "hr",
+ "hu",
+ "hy",
+ "id", # "in" in .xml but "id" in TC and .pak
+ "is",
+ "it",
+ "ja",
+ "ka",
+ "kk",
+ "km",
+ "kn",
+ "ko",
+ "ky",
+ "lo",
+ "lt",
+ "lv",
+ "mk",
+ "ml",
+ "mn",
+ "mr",
+ "ms",
+ "my",
+ "nb", # "no" in TC but "nb" in .xml and .pak
+ "ne",
+ "nl",
+ "or",
+ "pa",
+ "pl",
+ "pt-BR", # just "pt" in iOS
+ "pt-PT",
+ "ro",
+ "ru",
+ "si",
+ "sk",
+ "sl",
+ "sq",
+ "sr",
+ "sr-Latn", # -b+sr+Latn in .xml
+ "sv",
+ "sw",
+ "ta",
+ "te",
+ "th",
+ "tr",
+ "uk",
+ "ur",
+ "uz",
+ "vi",
+ "zh-CN",
+ "zh-HK",
+ "zh-TW",
+ "zu",
+]
+
+# New locales added to Chrome Android bundle builds.
+android_bundle_only_locales = [
+ "af",
+ "as",
+ "az",
+ "be",
+ "bs",
+ "eu",
+ "fr-CA",
+ "gl",
+ "hy",
+ "is",
+ "ka",
+ "kk",
+ "km",
+ "ky",
+ "lo",
+ "mk",
+ "mn",
+ "my",
+ "ne",
+ "or",
+ "pa",
+ "si",
+ "sq",
+ "sr-Latn",
+ "ur",
+ "uz",
+ "zh-HK",
+ "zu",
+]
+
+# New locales added to ChromeOS builds.
+chromeos_only_locales = [ "is" ]
+
+if (is_android) {
+ locales = all_chrome_locales
+
+ # List for Android locale names in .xml exports. Note: needs to stay in sync
+ # with |ToAndroidLocaleName| in build/android/gyp/util/resource_utils.py.
+ # - add r: (e.g. zh-HK -> zh-rHK )
+ android_bundle_locales_as_resources = []
+ foreach(_locale, locales) {
+ android_bundle_locales_as_resources +=
+ [ string_replace(_locale, "-", "-r") ]
+ }
+
+ # - remove en-US
+ # - swap: (he, id, en-419, fil) -> (iw, in, es-rUS, tl)
+ # - sr-rLatn -> -b+sr+Latn
+ android_bundle_locales_as_resources -= [
+ "en-rUS",
+ "es-r419",
+ "fil",
+ "he",
+ "id",
+ "sr-rLatn",
+ ]
+ android_bundle_locales_as_resources += [
+ "b+sr+Latn",
+ "es-rUS",
+ "in",
+ "iw",
+ "tl",
+ ]
+} else if (is_chromeos_ash || is_chromeos_lacros) {
+ # In ChromeOS we support a few more locales than standard Chrome.
+ locales =
+ all_chrome_locales - android_bundle_only_locales + chromeos_only_locales
+} else {
+ # Change if other platforms support more locales.
+ locales = all_chrome_locales - android_bundle_only_locales
+}
+
+# Chrome on iOS uses different names for "es-419" and "pt-BR" (called
+# respectively "es-MX" and "pt" on iOS).
+if (is_ios) {
+ locales -= [
+ "es-419",
+ "pt-BR",
+ ]
+ locales += [
+ "es-MX",
+ "pt",
+ ]
+}
+
+pseudolocales = [
+ "ar-XB",
+ "en-XA",
+]
+locales_without_pseudolocales = locales
+locales_with_pseudolocales = locales + pseudolocales
+
+declare_args() {
+ # We want to give pseudolocales to everyone except end-users (devs & QA).
+ enable_pseudolocales = !is_official_build
+}
+
+if (enable_pseudolocales) {
+ # Note that this only packages the locales in, and doesn't add the ui to enable them.
+ locales += pseudolocales
+}
+
+# Same as the locales list but in the format Mac expects for output files:
+# it uses underscores instead of hyphens, and "en" instead of "en-US".
+locales_as_mac_outputs = []
+foreach(locale, locales) {
+ if (locale == "en-US") {
+ locales_as_mac_outputs += [ "en" ]
+ } else {
+ locales_as_mac_outputs += [ string_replace(locale, "-", "_") ]
+ }
+}
+
+if (is_ios) {
+ ios_packed_locales = locales - ios_unsupported_locales
+ ios_packed_locales_as_mac_outputs =
+ locales_as_mac_outputs - ios_unsupported_locales
+}