2016-09-27 19 views
5

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):

enter image description here

+0

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) –

+0

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

+0

Tôi phải làm gì? @NeilLocketz –

Trả lời

2

Từ quan sát của tôi, hành vi kỳ lạ đã ảnh hưởng đến chỉ tiêu đề hoạt động, và tôi thấy rằng tôi là thiết lập bản dịch tiêu đề hoạt động trong tệp kê khai. Chỉ những bản dịch này là không đúng. Tất cả các bản dịch được thiết lập động khác đều hoạt động tốt. Vì vậy, để khắc phục vấn đề, tôi loại bỏ tất cả các nhãn hoạt động từ tập tin Manifest, tiêu đề hoạt động sau đó thiết lập trong onCreate phương pháp như sau:

getSupportActionBar().setTitle(R.string.title_activity_followers); 

Vấn đề giải quyết.

Các vấn đề liên quan