diff options
| author | Mihai Niță <mnita@google.com> | 2016-04-12 04:56:04 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-04-12 04:56:05 +0000 |
| commit | e544d408c06fe3e6bc3b237f718b56f03f079f29 (patch) | |
| tree | a777e00a6591dbe56434bcd14e248de485fe8440 /core/java | |
| parent | 6b34b31059fbe21ed947c0213df56e04f6098f59 (diff) | |
| parent | 1b2e7adc8821a6de2cfc2ce23b0c555c1bb7f1fa (diff) | |
Merge "Use DisplayNameWithDialect only for some locales" into nyc-dev
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/com/android/internal/app/LocaleHelper.java | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/core/java/com/android/internal/app/LocaleHelper.java b/core/java/com/android/internal/app/LocaleHelper.java index a9d51132cdcc..7e9587adaf26 100644 --- a/core/java/com/android/internal/app/LocaleHelper.java +++ b/core/java/com/android/internal/app/LocaleHelper.java @@ -90,6 +90,15 @@ public class LocaleHelper { return str.toUpperCase(); } + // For some locales we want to use a "dialect" form, for instance + // "Dari" instead of "Persian (Afghanistan)", or "Moldavian" instead of "Romanian (Moldova)" + private static boolean shouldUseDialectName(Locale locale) { + final String lang = locale.getLanguage(); + return "fa".equals(lang) // Persian + || "ro".equals(lang) // Romanian + || "zh".equals(lang); // Chinese + } + /** * Returns the locale localized for display in the provided locale. * @@ -99,8 +108,10 @@ public class LocaleHelper { * @return the localized name of the locale. */ public static String getDisplayName(Locale locale, Locale displayLocale, boolean sentenceCase) { - String result = ULocale.getDisplayNameWithDialect(locale.toLanguageTag(), - ULocale.forLocale(displayLocale)); + final ULocale displayULocale = ULocale.forLocale(displayLocale); + String result = shouldUseDialectName(locale) + ? ULocale.getDisplayNameWithDialect(locale.toLanguageTag(), displayULocale) + : ULocale.getDisplayName(locale.toLanguageTag(), displayULocale); return sentenceCase ? toSentenceCase(result, displayLocale) : result; } @@ -112,9 +123,7 @@ public class LocaleHelper { * @return the localized name of the locale. */ public static String getDisplayName(Locale locale, boolean sentenceCase) { - String result = ULocale.getDisplayNameWithDialect(locale.toLanguageTag(), - ULocale.getDefault()); - return sentenceCase ? toSentenceCase(result, Locale.getDefault()) : result; + return getDisplayName(locale, Locale.getDefault(), sentenceCase); } /** |
