将翻译添加到你的 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
的语言字符串。