вы не можете установить язык системы по умолчанию. Если вы хотите указать несколько языков. Затем из Locale вы можете установить язык. По умолчанию это английский, если вы изменили, сделайте его таким, как этот. Пожалуйста, проверьте ниже код.
Выбор языка и сохранение значения языка в SharedPreferences. После каждого запуска приложения проверяйте значение языковых настроек, а затем выбирайте их.
Убедитесь, что все строки должны быть добавлены в папку значений в виде этого.
Для английского по умолчанию поместите все строки в values. Для хинди вам нужно установить values-hi. То же самое произойдет и для другого языка, поместите свою строку с кодом страны. Для кода страны перейдите здесь.
SharedPreferences sharedPreferences = getSharedPreferences(Common.MYPREFERENCE_LANGUAGE, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
if (parent.getSelectedItem().equals("English")) {
Utils.updateLanguage(activity, "en");
editor.putString("language", "en");
} else {
Utils.updateLanguage(activity, "hi");
editor.putString("language", "hi");
}
editor.apply();
public static void updateLanguage (контекстный контекст, язык строки) {
String mlanguage = getlanguage(lang);
PurplkiteLogs.logError("", " language update " + mlanguage);
Locale locale = null;
Configuration config;
try {
if (mlanguage.equals("en")) {
locale = Locale.ENGLISH;
} else if (mlanguage.equals("hi")) {
locale = setLocale(context,"hi");
} else {
locale = new Locale(mlanguage);
}
Locale.setDefault(locale);
config = new Configuration();
config.locale = locale;
context.getResources().updateConfiguration(config,
context.getResources().getDisplayMetrics());
} catch (Exception e) {
} finally {
mlanguage = null;
config = null;
locale = null;
context = null;
}
}
private static String getlanguage(String lang) {
String mlang = null;
if (lang != null) {
if (lang.trim().equalsIgnoreCase("hi")) {
mlang = "hi";
} else {
mlang = "en";
}
}
return mlang;
}
public static Locale setLocale(Context context ,String lang ) {
Locale myLocale = new Locale(lang);
Resources res = context.getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
return conf.locale;
}
Спасибо, надеюсь, это поможет вам решить вашу проблему и прояснить вашу концепцию.
person
Saveen
schedule
20.09.2016