將翻譯新增到你的 Android 應用

你必須為每種新語言建立不同的 strings.xml 檔案。

  1. 右鍵單擊 res 資料夾
  2. 選擇新建值資原始檔
  3. 從可用限定符中選擇區域設定
  4. 單擊“ 下一步” 按鈕(>>)
  5. 選擇一種語言
  6. 將檔案命名為 strings.xml

strings.xml 中

<resources>
    <string name="app_name">Testing Application</string>
    <string name="hello">Hello World</string>
</resources>

strings.xml(HI)

<resources>
    <string name="app_name">परीक्षण आवेदन</string>
    <string name="hello">नमस्ते दुनिया</string>
</resources>

以程式設計方式設定語言:

public void setLocale(String locale) // Pass "en","hi", etc.
{
    myLocale = new Locale(locale);
    // Saving selected locale to session - SharedPreferences.
    saveLocale(locale);
    // Changing locale.
    Locale.setDefault(myLocale);
    android.content.res.Configuration config = new android.content.res.Configuration();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        config.setLocale(myLocale);
    } else {
        config.locale = myLocale;
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
        getBaseContext().createConfigurationContext(config);
    } else {
        getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
    }
}

上面的函式將更改從 strings.xml 引用的文字欄位。例如,假設你有以下兩個文字檢視:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:text="@string/app_name"/>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:text="@string/hello"/>

然後,在更改區域設定之後,將相應地更改具有 ids app_namehello 的語言字串。