语言更改菜单以更改不同的语言

时间:2011-07-12 08:03:08

标签: android localization internationalization

我们如何根据语言菜单中的选择更改语言。

2 个答案:

答案 0 :(得分:3)

public static Typeface hindiTypeface;

public static Typeface getTypeface(Context mContext) {

    int languageOptionValue = 0;
    if (WelcomeActivity.userSettings != null) {
        languageOptionValue = WelcomeActivity.userSettings.getInt(
                "language", 0);
    }

    if (languageOptionValue == 1) {
        if (hindiTypeface == null)
            hindiTypeface = initHindiFont(mContext);
        return hindiTypeface;
    } else {
        return Typeface.DEFAULT;
    }
}

public static Typeface initHindiFont(Context mContext) {

    AssetManager assetManagerHindi = mContext.getAssets();
    try {
        assetManagerHindi.open("droid_hindi.ttf");
    } catch (IOException e) {
        e.printStackTrace();
    }
    return Typeface.createFromAsset(assetManagerHindi, "droid_hindi.ttf");

}

这些用于在api级别4中播放印地文文本。

答案 1 :(得分:2)

res 文件夹中,您应该有一个名为的文件夹。在该文件夹中,放置一个 strings.xml 文件。

strings.xml 文件应包含类似

的内容
<resources>
    <string name="app_name">My App Name</string>
    <string name="someText">someText in default language</string>
    <string name="nonTranslatedText">someText only in default language</string>
</resources>

如果您想支持其他语言,只需在res中创建其他文件夹,同时包含包含翻译的string.xml文件。

因此,如果您想支持荷兰语,请在 values-nl 文件夹中创建一个strings.xml,其中包含:

<resources>
    <string name="app_name">My App Name in Dutch</string>
    <string name="someText">someText in Dutch</string>
</resources>

当用户切换语言时,Android会自动选择翻译。如果找不到给定语言的翻译(例如:nonTranslatedText字符串),则默认为 res / values / strings.xml 中的翻译。

您可以在布局中引用这些字符串,如下所示:

<Button android:id="@+id/someId" style="@style/someStyle" android:text="@string/someText"/> 

或者像这样的java对象:

context.getString(R.string.someText);