將翻譯新增到你的 Android 應用
你必須為每種新語言建立不同的 strings.xml
檔案。
- 右鍵單擊 res 資料夾
- 選擇新建 → 值資原始檔
- 從可用限定符中選擇區域設定
- 單擊“ 下一步” 按鈕(>>)
- 選擇一種語言
- 將檔案命名為 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_name
和 hello
的語言字串。