【问题标题】:How can I create a multilingual android application?如何创建多语言安卓应用程序?
【发布时间】:2011-05-14 15:12:41
【问题描述】:

我想创建一个多语言的 android 应用程序。

有没有办法检测用户喜欢什么语言?

有没有推荐的方法来管理 Android 上的多种语言,还是我应该重新发明轮子?

【问题讨论】:

    标签: android internationalization


    【解决方案1】:

    是的,有一种管理多种语言的推荐方法

    多语言支持很容易为 android 完成。使用语言代码的后缀为该语言创建一个新的值目录。对于德语:values-de 或法语:values-fr,而不是将您的 string.xml 复制到其中并翻译每个条目。这就是你所需要的。

    Do android support multiple languages?

    如果您遵循建议,则自动检测用户喜欢哪种语言。

    读一读:

    http://developer.android.com/guide/topics/resources/localization.html

    【讨论】:

    • 谢谢!你知道是否可以从自定义 xml 文件链接到这些字符串?
    • 我不确定,抱歉。如果您将其作为一个新问题提出,其他人可能知道答案。
    • 我期待一个复杂的解决方案。但我得到了从未如此简单的东西。非常感谢,Colin 和 Clamp。 :-)
    【解决方案2】:

    在活动文件中

    public boolean onOptionsItemSelected(MenuItem item)
    {
        String languageToLoad="en";
    
        switch (item.getItemId()) {
            case R.id.eng:
                 languageToLoad = "en";
                break;
            case R.id.hn:
                languageToLoad = "hi";
                break;
    
            case R.id.te:
                languageToLoad = "te";
                break;
    
            case R.id.ta:
                languageToLoad = "ta";
                break;
    
            case R.id.ka:
                languageToLoad = "kan";
                break;
    
            case R.id.ml:
                languageToLoad = "ml";
                break;
    
            case R.id.mr:
                languageToLoad = "mr";
                break;
    
            default:
                break;
        }
    
             Locale locale = new Locale(languageToLoad);
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
        getResources().updateConfiguration(config,getResources().getDisplayMetrics());
    
    
    }
    

    在 res\menu\menus.xml 中

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.connect.OrderProcess">
            <item
                android:title="Language"
                app:showAsAction="never">
                <menu>
                    <item
                        android:id="@+id/eng"
                        android:title="English"/>
                    <item
                        android:id="@+id/hn"
                        android:title="Hindi"/>
                    <item
                        android:id="@+id/te"
                        android:title="Telugu"/>
                    <item
                        android:id="@+id/ta"
                        android:title="Tamil"/>
                    <item
                        android:id="@+id/ka"
                        android:title="Kannada"/>
                    <item
                        android:id="@+id/ml"
                        android:title="Malayalam"/>
                    <item
                        android:id="@+id/mr"
                        android:title="Marathi"/>
                </menu>
            </item>
       </menu>
    

    AND 创建文件夹和文件

    res\values\string.xml(英文)

    res\values-hi\string.xml(印地语)

    res\values-kan\string.xml(卡纳达语)

    res\values-te\string.xml(泰卢固语)

    res\values-ta\string.xml(泰米尔语)

    res\values-ml\string.xml(马拉雅拉姆语)

    res\values-mr\string.xml (马拉地语)

    在 string.xml 中(印地语)

     <resources> 
    <string name="email">ईमेल</string>
    <string name="password">पासवर्ड </string>
     </resources>
    

    【讨论】:

      【解决方案3】:

      知道这是一篇迟到的帖子,想分享一个演示应用程序,所以对某些人会有所帮助。

      使用共享偏好的多语言应用

      这个演示展示了以下两个场景,

      • 从下拉列表中选择语言。
      • 从底页设计中选择语言

      所选语言存储在共享首选项中。所以下次打开应用程序时,会自动选择首选语言。

      源代码-https://github.com/anurajr1/Multi-language_App

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-11
        • 1970-01-01
        • 1970-01-01
        • 2017-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多