Make sure locale display names are capitalized
This commit is contained in:
parent
c4699df82a
commit
77306e85e7
@ -272,14 +272,27 @@ public class PreferencesFragment extends PreferenceFragment
|
||||
});
|
||||
}
|
||||
|
||||
private String localeDisplayName(Locale locale, String defName) {
|
||||
if (locale == null) {
|
||||
return defName;
|
||||
}
|
||||
String name = locale.getDisplayName(locale);
|
||||
if (name.length() < 2) {
|
||||
return name;
|
||||
}
|
||||
// In some cases (e.g. "català" or "français") the display name isn't
|
||||
// capitalized, so make sure it is.
|
||||
return Character.toUpperCase(name.charAt(0)) + name.substring(1);
|
||||
}
|
||||
|
||||
private void langSpinner(String key) {
|
||||
final ListPreference pref = (ListPreference)findPreference(key);
|
||||
final String[] langValues = getResources().getStringArray(R.array.languageValues);
|
||||
String[] langNames = new String[langValues.length];
|
||||
langNames[0] = getString(R.string.pref_language_default);
|
||||
for (int i = 1; i < langValues.length; i++) {
|
||||
final Locale appLoc = Utils.getLocaleFromAndroidLangTag(langValues[i]);
|
||||
langNames[i] = appLoc == null ? langValues[i] : appLoc.getDisplayName(appLoc);
|
||||
Locale locale = Utils.getLocaleFromAndroidLangTag(langValues[i]);
|
||||
langNames[i] = localeDisplayName(locale, langValues[i]);
|
||||
}
|
||||
pref.setEntries(langNames);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user