2011-12-07 6 views
5

Giả sử tôi có hai tệp strings.xml - một cho tiếng Anh và một cho tiếng Đan Mạch.Có cách nào để ghi đè strings.xml trong res/values?

Trong khi hầu hết người dùng có thể sẽ hài lòng với bản dịch tiếng Đan Mạch, không có khả năng một số người thích bản dịch tiếng Anh.

Có cách nào để ghi đè lựa chọn mặc định của tài nguyên chuỗi của Android không? Tôi rất muốn có một cài đặt cho phép người dùng bỏ qua bất kỳ tài nguyên chuỗi ngôn ngữ cụ thể nào và chỉ mặc định trở lại tiếng Anh.

Trả lời

5

Đặt mặc định của bạn Locale-English:

public class MyApplication extends Application 
{ 
    private Locale locale = null; 

    @Override 
    public void onConfigurationChanged(Configuration newConfig) 
    { 
     super.onConfigurationChanged(newConfig); 
     if (locale != null) 
     { 
      newConfig.locale = locale; 
      Locale.setDefault(locale); 
      getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics()); 
     } 
    } 

    @Override 
    public void onCreate() 
    { 
     super.onCreate(); 

     Configuration config = getBaseContext().getResources().getConfiguration(); 

     locale = new Locale("en-US"); 
     Locale.setDefault(locale); 
     config.locale = locale; 
     getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); 

    } 
} 
+0

Cảm ơn rất nhiều! Tôi sẽ xem xét cả giải pháp này và giải pháp tương tự khác, và xem giải pháp nào hoạt động tốt nhất trong trường hợp của tôi :) –

1

Một lựa chọn sẽ được thay đổi vị trí trong phạm vi ứng dụng của bạn

Changing Locale within the app itself

Locale appLoc = new Locale("en"); 
Locale.setDefault(appLoc); 
Configuration appConfig = new Configuration(); 
appConfig.locale = appLoc; 
getBaseContext().getResources().updateConfiguration(appConfig, 
     getBaseContext().getResources().getDisplayMetrics()); 
+0

Cảm ơn rất nhiều! Tôi sẽ xem xét cả giải pháp này và giải pháp tương tự khác, và xem giải pháp nào hoạt động tốt nhất trong trường hợp của tôi :) –