Ответ 1
вы не можете установить системный язык по умолчанию. Если вы хотите предоставить несколько языков. Затем из Локаль вы можете установить язык. По умолчанию его английский, если вы изменили, сделайте так, как это. Пожалуйста, проверьте код ниже.
Выбор языка и сохранение значения языка в SharedPreferences. После запуска приложения проверьте значение языковых предпочтений, затем выберите его.
Убедитесь, что все строки должны быть добавлены в папку значений в форме этого.
По умолчанию английский, затем поместите все строки внутри значений. Для хинди вам нужно установить 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 (контекст контекста, строка lang) {
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;
}
Спасибо, надеюсь, это поможет вам решить вашу проблему и очистить вашу концепцию.