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) {
|
private void langSpinner(String key) {
|
||||||
final ListPreference pref = (ListPreference)findPreference(key);
|
final ListPreference pref = (ListPreference)findPreference(key);
|
||||||
final String[] langValues = getResources().getStringArray(R.array.languageValues);
|
final String[] langValues = getResources().getStringArray(R.array.languageValues);
|
||||||
String[] langNames = new String[langValues.length];
|
String[] langNames = new String[langValues.length];
|
||||||
langNames[0] = getString(R.string.pref_language_default);
|
langNames[0] = getString(R.string.pref_language_default);
|
||||||
for (int i = 1; i < langValues.length; i++) {
|
for (int i = 1; i < langValues.length; i++) {
|
||||||
final Locale appLoc = Utils.getLocaleFromAndroidLangTag(langValues[i]);
|
Locale locale = Utils.getLocaleFromAndroidLangTag(langValues[i]);
|
||||||
langNames[i] = appLoc == null ? langValues[i] : appLoc.getDisplayName(appLoc);
|
langNames[i] = localeDisplayName(locale, langValues[i]);
|
||||||
}
|
}
|
||||||
pref.setEntries(langNames);
|
pref.setEntries(langNames);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user