【问题标题】:Languages changing menu for changing different language [closed]用于更改不同语言的语言更改菜单[关闭]
【发布时间】:2011-07-12 08:03:07
【问题描述】:

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

【问题讨论】:

  • 你的意思是如何实现一个菜单让用户可以切换语言?预先选择的语言(用户已经在他/她的手机中设置的语言)有什么问题?

标签: android localization internationalization


【解决方案1】:

公共静态字体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 中玩印地语文本。

【讨论】:

    【解决方案2】:

    在您的 res 文件夹中,您应该有一个名为 values 的文件夹。在该文件夹中,放置一个 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 中创建额外的 values 文件夹,其中还包含一个 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 1970-01-01
      相关资源
      最近更新 更多