123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- # 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 |platform_pak_locales| which is the set of packed locales
- # based on the current platform. Locales in this list are formatted based on
- # what .pak files expect. The |platform_pak_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:
- # - |extended_locales| list of locales not shipped on desktop builds
- # - |android_bundle_locales_as_resources| locales formatted for XML output names
- # - |locales_as_apple_outputs| formatted for mac output bundles
- pseudolocales = [
- "ar-XB",
- "en-XA",
- ]
- # 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",
- "cy",
- "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",
- ] + pseudolocales
- if (is_ios) {
- # Chrome on iOS uses "es-MX" and "pt" for "es-419" and "pt-BR".
- all_chrome_locales -= [
- "es-419",
- "pt-BR",
- ]
- all_chrome_locales += [
- "es-MX",
- "pt",
- ]
- }
- # Chrome locales not on Windows, Mac, or Linux.
- # This list is used for all platforms except Android. On Android, this list is
- # modified to exclude locales that are not used on Android, so
- # `platform_pak_locales - extended_locales` works as expected.
- extended_locales = [
- "as",
- "az",
- "be",
- "bs",
- "cy",
- "eu",
- "fr-CA",
- "gl",
- "hy",
- "is",
- "ka",
- "kk",
- "km",
- "ky",
- "lo",
- "mk",
- "mn",
- "my",
- "ne",
- "or",
- "pa",
- "si",
- "sq",
- "sr-Latn",
- "uz",
- "zh-HK",
- "zu",
- ]
- # Chrome locales not on Android.
- # These locales have not yet been tested yet. Specifically, AOSP has not been
- # translated to Welsh at the time of writing (April 2022):
- # https://cs.android.com/android/platform/superproject/+/master:build/make/target/product/languages_default.mk
- # Due to this, the only way a user could see Welsh strings - assuming they were
- # built - would be to manually switch their "Chrome language" in Chrome's
- # language settings to Welsh, so Welsh usage would probably be very low.
- _non_android_locales = [ "cy" ]
- # Setup |platform_pak_locales| for each platform.
- platform_pak_locales = all_chrome_locales
- if (is_android) {
- platform_pak_locales -= _non_android_locales
- extended_locales -= _non_android_locales
- } else {
- platform_pak_locales -= extended_locales
- }
- # The base list for all platforms except Android excludes the extended locales.
- # Add or subtract platform specific locales below.
- if (is_chromeos) {
- platform_pak_locales += [
- "cy",
- "eu",
- "gl",
- "is",
- "zu",
- ]
- platform_pak_locales -= [ "ur" ]
- } else if (is_ios) {
- platform_pak_locales -= [
- "af",
- "am",
- "bn",
- "et",
- "fil",
- "gu",
- "kn",
- "lv",
- "ml",
- "mr",
- "sl",
- "sw",
- "ta",
- "te",
- "ur",
- ]
- }
- # List for Android locale names in .xml exports. Note: needs to stay in sync
- # with |ToAndroidLocaleName| in build/android/gyp/util/resource_utils.py.
- if (is_android) {
- # - add r: (e.g. zh-HK -> zh-rHK )
- android_bundle_locales_as_resources = []
- foreach(_locale, platform_pak_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",
- ]
- }
- locales_without_pseudolocales = platform_pak_locales - pseudolocales
- locales_with_pseudolocales = platform_pak_locales
- declare_args() {
- # We want to give pseudolocales to everyone except end-users (devs & QA).
- # Note that this only packages the locales in, and doesn't add the ui to enable them.
- enable_pseudolocales = !is_official_build
- }
- if (!enable_pseudolocales) {
- platform_pak_locales -= pseudolocales
- }
- if (is_apple) {
- # 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_apple_outputs = []
- foreach(locale, platform_pak_locales) {
- if (locale == "en-US") {
- locales_as_apple_outputs += [ "en" ]
- } else {
- locales_as_apple_outputs += [ string_replace(locale, "-", "_") ]
- }
- }
- }
|