如何创建多语言Android应用程序?

时间:2010-11-23 17:49:58

标签: android internationalization

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

有没有办法检测用户喜欢哪种语言?

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

3 个答案:

答案 0 :(得分:25)

是的,推荐使用多种语言进行管理

  

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

     

Do android support multiple languages?

提供您遵循建议,检测用户喜欢的语言是自动的。

读一读:

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

答案 1 :(得分:4)

在活动文件

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(Kannada)

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

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

RES \值毫升\ string.xml(马来亚)

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

在string.xml(印地语)

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

答案 2 :(得分:0)

知道这是一个较晚的帖子,考虑到共享演示应用程序,因此对某些人会有所帮助。

使用共享首选项的多语言应用

此演示展示了以下两种情况

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

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

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