2012-06-07 35 views
6

ứng dụng của tôi hỗ trợ 4 ngôn ngữ. người dùng chọn ngôn ngữ của anh ấy/cô ấy. Nhưng tôi không thể làm taht cho tiếng Nga.Nội địa hóa cho tiếng Nga trong Android

if (dil.equals("eng")){ 
     Configuration c = new Configuration(context.getResources().getConfiguration()); 
     c.locale = Locale.ENGLISH; 
     context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics()); 

    } 
    else if (dil.equals("ger")){ 
     Configuration c = new Configuration(context.getResources().getConfiguration()); 
     c.locale = Locale.GERMAN; 
     context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics()); 

    } 
    else if (dil.equals("rus")){ 
     Configuration c = new Configuration(context.getResources().getConfiguration()); 
     c.locale = Locale.????????; 
     context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics()); 

    } 
    else 
    { 
     Configuration c = new Configuration(context.getResources().getConfiguration()); 
     c.locale = Locale.getDefault(); 
     context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics()); 

    } 

Tôi không biết tiền đồng cho tiếng Nga;

c.locale = Locale.????????; 

Trả lời

17

Sử dụng này constructor bạn có thể thiết lập miền địa phương của bạn sang tiếng Nga như thế này:

Locale myLocale = new Locale("ru","RU"); 

Dưới đây là danh sách các supported locales bằng Java. Bạn có thể thấy rằng "ru" được hỗ trợ, nhưng không được kiểm tra.

Các tài liệu cũng cho biết một số lần nó tốt hơn để cung cấp cho nội địa hóa cơ sở và quốc tế vì vậy tôi thay đổi nội dung từ

Locale myLocale = new Locale("ru") 

để

Locale myLocale = new Locale("ru","RU") 
+0

Nó làm việc. Cảm ơn bạn rất nhiều! – enginar

0

Theo Android documentation for Locale

Lớp này nhà xây dựng không làm kiểm tra lỗi. Bạn có thể tạo Ngôn ngữ cho các ngôn ngữ và quốc gia không tồn tại và bạn có thể tạo các trường hợp cho các kết hợp không tồn tại (chẳng hạn như "de_US" cho "tiếng Đức được nói ở Hoa Kỳ"). Lưu ý rằng dữ liệu miền địa phương không nhất thiết có sẵn cho bất kỳ ngôn ngữ nào được định nghĩa trước là hằng số trong lớp này ngoại trừ en_US, đó là ngôn ngữ duy nhất mà Java đảm bảo luôn sẵn sàng.

Cũng là một sai lầm khi giả định rằng tất cả các thiết bị đều có cùng một ngôn ngữ. Một thiết bị được bán ở Hoa Kỳ gần như chắc chắn sẽ hỗ trợ en_US và es_US, nhưng không nhất thiết phải có bất kỳ ngôn ngữ nào có cùng ngôn ngữ nhưng các quốc gia khác nhau (chẳng hạn như en_GB hoặc es_ES) hoặc bất kỳ ngôn ngữ nào cho các ngôn ngữ khác (chẳng hạn như de_DE). Điều ngược lại cũng có thể đúng đối với một thiết bị được bán ở châu Âu.

Ngoài ra tài liệu không liệt kê một ngôn ngữ địa phương cho tiếng Nga, có vẻ như bạn phải tạo một miền. Cũng chú ý đến đoạn thứ ba của báo giá trên. Vì vậy, có lẽ nó là tốt hơn để cung cấp của riêng bạn.

Kiểm tra this SO post cũng có một số lời khuyên hữu ích cho Locale

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