Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b2e7adc authored by Mihai Nita's avatar Mihai Nita
Browse files

Use DisplayNameWithDialect only for some locales

Although DisplayNameWithDialect seems to return friendlier, more
"casual" names (e.g. "American English"), the result was inconsistent,
and (at times) debatable. And since this setting affects not only
the language of the translation, but a locale, names like "Flemish"
kind of lost the whole "locale / location" idea.

So we revert to use DisplayName for all but a few selected locales
(that we verified are better with the "dialect" form).

Bug: 27704583
Change-Id: I587081da1293cccac3cdabcd188a9b8160c233ea
parent ffdaae00
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -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);
    }

    /**