2014-05-23 19 views
6

Tôi đã tạo một ứng dụng bằng hai ngôn ngữ. Ngôn ngữ thứ hai (tiếng Anh), được sử dụng khi ngôn ngữ hệ thống mặc định của người dùng là tiếng Anh. Nếu không, thì cái đầu tiên được sử dụng.Làm cách nào để đặt ngôn ngữ mặc định cho ứng dụng Android?

Tôi muốn đặt ngôn ngữ thứ hai (đó là tiếng Anh) thành ngôn ngữ DEFAULT, có nghĩa là khi người dùng mở ứng dụng của tôi và ngôn ngữ hệ thống của anh ấy không phải là ngôn ngữ đầu tiên. một.

tôi đã cố gắng:

Locale locale = new Locale("en_US"); 
    Locale.setDefault(locale); 
    Configuration config = new Configuration(); 
    config.locale = locale; 
    context.getApplicationContext.getResources().updateConfiguration(config, null); 

Nhưng có "bối cảnh không thể giải quyết" lỗi mọi .. Là đoạn mã này đúng hay ..?

+3

Bạn không cần phải làm điều đó. Bất kỳ tài nguyên nào bạn đưa vào thư mục "cơ sở" (ví dụ: giá trị so với giá trị es) sẽ được sử dụng khi ngôn ngữ không khớp với bất kỳ lựa chọn thay thế nào được cung cấp. – matiash

Trả lời

0

Bạn nên xác định tất cả ngôn ngữ bạn hỗ trợ bằng cách sử dụng thư mục res, ví dụ: res/values, res/values-en, res/values-fr. Hệ thống sẽ xử lý mọi thứ khác, bạn không cần bất kỳ mã nào.

0

Nếu bạn đang ở trong một hoạt động bạn có thể làm:

this.getApplicationContext().getResources().updateConfiguration(config, null);

... để sửa chữa lỗi lầm của mình. Nếu không, bạn cần phải vượt qua trong ngữ cảnh.

Đảm bảo bạn thêm dấu ngoặc đơn vào cuối getApplicationContext(). Bạn đã không làm như vậy trong mã của bạn.

4

Okay,

để làm cho mọi thứ rõ ràng, tôi nhận ra res/values là một thư mục mặc định và những người khác chỉ là "trong trường hợp của ngôn ngữ". Vì vậy, tất cả mọi thứ tôi phải làm là chuyển đổi tiếng Anh sang/res/values ​​và ngôn ngữ khác chuyển đến res/values-es

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