2011-12-07 71 views
5

假設我有兩個strings.xml文件 - 一個用於英文,一個用於丹麥語。有沒有辦法在res/values中覆蓋strings.xml?

雖然大多數用戶可能會對丹麥語翻譯感到滿意,但有些人更喜歡英文翻譯的可能性不大。

有沒有辦法覆蓋Android的字符串資源的默認選擇?我很想有一個設置讓用戶忽略任何特定於語言的字符串資源,並且默認回到英文。

回答

5

設置默認LocaleEnglish

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

非常感謝!我會看看這個和其他類似的解決方案,看看我的情況最好:) –

1

一個辦法是改變你的應用程序中的語言環境

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

非常感謝!我會看看這個和其他類似的解決方案,並看看我的情況最好的辦法:) –

相關問題