我在hindi中设置了我的应用程序的默认语言(即系统默认语言除外)并使用google的api(PlaceAutocomplete,GoogleSignIn)。
两者都显示英文文本(系统默认语言),而不是印地语或应用程序的默认语言。
有什么办法,我可以强制它们加载应用程序的默认语言,或者我可以传递我的默认应用程序的语言。
感谢。这真的很有帮助。寻找任何更新。
答案 0 :(得分:-1)
您无法设置系统默认语言。如果您想提供多种语言。然后从区域设置您可以设置语言。如果您更改了默认的英语,那么请将其设置为这个。请检查下面的代码。
选择语言并在 SharedPreferences 中保存语言价值。每当启动应用程序检查语言首选项的值,然后选择它们。
确保每个字符串都应以此形式添加到value文件夹中。
对于默认的英语,然后将所有字符串放在值中。对于印地语,您需要设置 values-hi 。对于其他语言,将其字符串与国家/地区代码相同。对于国家/地区代码,请从here开始。
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(Context context,String 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;
}
谢谢,希望这可以帮助您解决问题并清除您的概念。