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