คุณไม่สามารถตั้งค่าภาษาเริ่มต้นของระบบได้ หากคุณต้องการให้หลายภาษา จากนั้นจาก 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();
โมฆะสาธารณะคงที่ updateLanguage (บริบทบริบท, 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;
}
ขอบคุณ หวังว่านี่จะช่วยคุณแก้ปัญหาและล้างแนวคิดของคุณ
person
Saveen
schedule
20.09.2016