Tôi đã tạo nhiều ngôn ngữ (tiếng Anh, tiếng Nga, tiếng Uzbek). Tôi đặt 4 chuỗi resoureses trong 4 thư mục (giá trị, giá trị-en, giá trị-ru, giá trị-uz) là docs. Khi tôi thay đổi ứng dụng cập nhật ngôn ngữ resourses cấu hình trong App điều khiển như dưới đây:làm cho ứng dụng đa ngôn ngữ android
Settings.LANGUAGE = prefs.getString(User.LANG, Settings.RUSSIAN);
Locale locale = new Locale(Settings.LANGUAGE);
Locale.setDefault(locale);
Configuration configuration = new Configuration();
configuration.locale = locale;
getBaseContext().getResources().updateConfiguration(configuration,
getBaseContext().getResources().getDisplayMetrics());
Sau đó khởi động lại ứng dụng bằng cách gọi phương pháp ứng dụng điều khiển của như dưới đây:
public void reStart() {
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
Sau đó Nó hoạt động tốt hầu hết các devises. Nhưng trên Samsung Galaxy S6 (SM-G920F), nó hoạt động như điên. Một số từ được viết bằng tiếng Anh và những từ khác có trong tiếng Uzbek và ets. Vì vậy, Cách khắc phục lỗi này? không phải là khái niệm "Hỗ trợ các ngôn ngữ khác nhau" được hỗ trợ bởi (áp dụng cho) tất cả các devises? Bằng cách này tôi đã kiểm tra rằng tất cả các resourses được đưa ra trong ngôn ngữ tương ứng (như thể hiện trong hình ảnh đính kèm):
Samsung thích làm điều đó ....: [Tôi nhận thấy rằng họ không phải lúc nào cũng tuân theo các tiêu chuẩn (đối với một số điều) –
Bạn có gặp vấn đề tương tự khi thay đổi ngôn ngữ thiết bị thay vì theo chương trình như cái đó? – DeeV
Tôi phải làm gì? @NeilLocketz –