Loading res/values/arrays.xml +13 −0 Original line number Diff line number Diff line Loading @@ -255,4 +255,17 @@ <item>2</item> </string-array> <!-- Locales in this list are displayed with the corresponding name from special_locale_names instead of using the name from Locale.getDisplayName(). --> <string-array translatable="false" name="special_locale_codes"> <item>zh_CN</item> <item>zh_TW</item> </string-array> <string-array translatable="false" name="special_locale_names"> <item>中文(简体)</item> <item>中文 (繁體)</item> </string-array> </resources> src/com/android/settings/LocalePicker.java +21 −6 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ public class LocalePicker extends ListActivity { private static final String TAG = "LocalePicker"; Loc[] mLocales; String[] mSpecialLocaleCodes; String[] mSpecialLocaleNames; private static class Loc implements Comparable { static Collator sCollator = Collator.getInstance(); Loading Loading @@ -70,6 +72,9 @@ public class LocalePicker extends ListActivity { super.onCreate(icicle); setContentView(getContentView()); mSpecialLocaleCodes = getResources().getStringArray(R.array.special_locale_codes); mSpecialLocaleNames = getResources().getStringArray(R.array.special_locale_names); String[] locales = getAssets().getLocales(); Arrays.sort(locales); Loading Loading @@ -98,15 +103,13 @@ public class LocalePicker extends ListActivity { language)) { Log.v(TAG, "backing up and fixing "+ preprocess[finalSize-1].label+" to "+ preprocess[finalSize-1].locale. getDisplayName(l)); getDisplayName(preprocess[finalSize-1].locale)); preprocess[finalSize-1].label = toTitleCase( preprocess[finalSize-1]. locale.getDisplayName(l)); getDisplayName(preprocess[finalSize-1].locale)); Log.v(TAG, " and adding "+ toTitleCase(l.getDisplayName(l))); toTitleCase(getDisplayName(l))); preprocess[finalSize++] = new Loc(toTitleCase(l.getDisplayName(l)), l); new Loc(toTitleCase(getDisplayName(l)), l); } else { String displayName; if (s.equals("zz_ZZ")) { Loading Loading @@ -140,6 +143,18 @@ public class LocalePicker extends ListActivity { return Character.toUpperCase(s.charAt(0)) + s.substring(1); } private String getDisplayName(Locale l) { String code = l.toString(); for (int i = 0; i < mSpecialLocaleCodes.length; i++) { if (mSpecialLocaleCodes[i].equals(code)) { return mSpecialLocaleNames[i]; } } return l.getDisplayName(l); } @Override public void onResume() { super.onResume(); Loading Loading
res/values/arrays.xml +13 −0 Original line number Diff line number Diff line Loading @@ -255,4 +255,17 @@ <item>2</item> </string-array> <!-- Locales in this list are displayed with the corresponding name from special_locale_names instead of using the name from Locale.getDisplayName(). --> <string-array translatable="false" name="special_locale_codes"> <item>zh_CN</item> <item>zh_TW</item> </string-array> <string-array translatable="false" name="special_locale_names"> <item>中文(简体)</item> <item>中文 (繁體)</item> </string-array> </resources>
src/com/android/settings/LocalePicker.java +21 −6 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ public class LocalePicker extends ListActivity { private static final String TAG = "LocalePicker"; Loc[] mLocales; String[] mSpecialLocaleCodes; String[] mSpecialLocaleNames; private static class Loc implements Comparable { static Collator sCollator = Collator.getInstance(); Loading Loading @@ -70,6 +72,9 @@ public class LocalePicker extends ListActivity { super.onCreate(icicle); setContentView(getContentView()); mSpecialLocaleCodes = getResources().getStringArray(R.array.special_locale_codes); mSpecialLocaleNames = getResources().getStringArray(R.array.special_locale_names); String[] locales = getAssets().getLocales(); Arrays.sort(locales); Loading Loading @@ -98,15 +103,13 @@ public class LocalePicker extends ListActivity { language)) { Log.v(TAG, "backing up and fixing "+ preprocess[finalSize-1].label+" to "+ preprocess[finalSize-1].locale. getDisplayName(l)); getDisplayName(preprocess[finalSize-1].locale)); preprocess[finalSize-1].label = toTitleCase( preprocess[finalSize-1]. locale.getDisplayName(l)); getDisplayName(preprocess[finalSize-1].locale)); Log.v(TAG, " and adding "+ toTitleCase(l.getDisplayName(l))); toTitleCase(getDisplayName(l))); preprocess[finalSize++] = new Loc(toTitleCase(l.getDisplayName(l)), l); new Loc(toTitleCase(getDisplayName(l)), l); } else { String displayName; if (s.equals("zz_ZZ")) { Loading Loading @@ -140,6 +143,18 @@ public class LocalePicker extends ListActivity { return Character.toUpperCase(s.charAt(0)) + s.substring(1); } private String getDisplayName(Locale l) { String code = l.toString(); for (int i = 0; i < mSpecialLocaleCodes.length; i++) { if (mSpecialLocaleCodes[i].equals(code)) { return mSpecialLocaleNames[i]; } } return l.getDisplayName(l); } @Override public void onResume() { super.onResume(); Loading