Как я могу создать многоязычное приложение для Android? - PullRequest
23 голосов
/ 23 ноября 2010

Я хотел бы создать многоязычное приложение для Android.

Есть ли способ определить, какой язык предпочитает пользователь?

Есть ли рекомендуемый способ управления несколькими языками на Android или следуетЯ заново изобрел колесо?

Ответы [ 3 ]

25 голосов
/ 23 ноября 2010

Да, есть рекомендуемый способ управления несколькими языками

Поддержка мультиязычности легко сделать для Android. Создайте новый каталог значений для языка с суффиксом языкового кода. Для немецкого: values-de или french: values-fr, чем скопировать туда файл string.xml и перевести каждую запись. Вот и все, что вам нужно.

Поддерживает ли android несколько языков?

При условии, что вы следуете рекомендациям, автоматически определяется язык, который предпочитает пользователь.

Прочитайте это:

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

4 голосов
/ 23 ноября 2016

В файле Activity

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>
0 голосов
/ 31 января 2019

Знайте, что это поздний пост, подумал о совместном использовании демонстрационного приложения, поэтому оно будет полезно для некоторых людей.

Многоязычное приложение с использованием общих настроек

Эта демонстрация демонстрирует следующие два сценария:

  • Выбор языка из выпадающего списка.
  • Выбор языка из дизайна нижнего листа

Выбранный языкхранится в общих настройках.Поэтому в следующий раз, когда приложение откроется, предпочтительный язык будет выбран автоматически.

Исходный код - https://github.com/anurajr1/Multi-language_App

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...