Add rest languages to language selector

pull/27/head
DerGoogler 3 years ago
parent 0f6264b15e
commit d70dcdad49

@ -70,7 +70,6 @@ public class CompatActivity extends AppCompatActivity {
private CompatActivity.OnBackPressedCallback onBackPressedCallback; private CompatActivity.OnBackPressedCallback onBackPressedCallback;
private MenuItem.OnMenuItemClickListener menuClickListener; private MenuItem.OnMenuItemClickListener menuClickListener;
private CharSequence menuContentDescription; private CharSequence menuContentDescription;
private SharedPreferences mSharedPreferences;
@StyleRes @StyleRes
private int setThemeDynamic = 0; private int setThemeDynamic = 0;
private boolean onCreateCalledOnce = false; private boolean onCreateCalledOnce = false;
@ -551,8 +550,8 @@ public class CompatActivity extends AppCompatActivity {
@Override @Override
protected void attachBaseContext(Context newBase) { protected void attachBaseContext(Context newBase) {
mSharedPreferences= PreferenceManager.getDefaultSharedPreferences(newBase); SharedPreferences mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(newBase);
Locale locale = new Locale(mSharedPreferences.getString("user_preferred_language", "en")); Locale locale = new Locale(mSharedPreferences.getString("user_preferred_country", "en"));
Context context = CompatWrapper.setLocale(newBase, locale); Context context = CompatWrapper.setLocale(newBase, locale);
super.attachBaseContext(context); super.attachBaseContext(context);
} }

@ -99,19 +99,34 @@ public class SettingsActivity extends CompatActivity {
}); });
// This is the locale that you wanna your app to launch with. // This is the locale that you wanna your app to launch with.
Locale firstLaunchLocale = new Locale("en"); String firstLaunchLocale = "en";
HashSet<Locale> supportedLocales = new HashSet<>(); // Warning! Locales that are't exist will crash the app
supportedLocales.add(Locale.US); HashSet<String> supportedLocales = new HashSet<>();
supportedLocales.add(Locale.CHINA); supportedLocales.add("cs");
supportedLocales.add(Locale.GERMAN); supportedLocales.add("de");
supportedLocales.add("es-rMX");
supportedLocales.add("et");
supportedLocales.add("fr");
supportedLocales.add("id");
supportedLocales.add("ja");
supportedLocales.add("nb-rNO");
supportedLocales.add("pl");
supportedLocales.add("pt-rBR");
supportedLocales.add("ro");
supportedLocales.add("ru");
supportedLocales.add("sk");
supportedLocales.add("tr");
supportedLocales.add("vi");
supportedLocales.add("zh-rCH");
supportedLocales.add("zh-rTW");
supportedLocales.add(firstLaunchLocale); supportedLocales.add(firstLaunchLocale);
Preference languageSelector = findPreference("pref_language_selector"); Preference languageSelector = findPreference("pref_language_selector");
languageSelector.setOnPreferenceClickListener(preference -> { languageSelector.setOnPreferenceClickListener(preference -> {
LanguageSwitcher ls = new LanguageSwitcher(getActivity(), firstLaunchLocale); LanguageSwitcher ls = new LanguageSwitcher(getActivity(), new Locale(firstLaunchLocale));
ls.showChangeLanguageDialog(getActivity()); ls.showChangeLanguageDialog(getActivity());
ls.setSupportedLocales(supportedLocales); ls.setSupportedStringLocales(supportedLocales);
return true; return true;
}); });

Loading…
Cancel
Save