Comment puis-je créer une application Android multilingue?

Je voudrais créer une application Android multilingue.

Existe-t-il un moyen de détecter la langue que l'utilisateur préfère?

Est-il recommandé de gérer plusieurs langues sur Android ou devrais-je réinventer la roue?

23
demandé sur John 2010-11-23 20:49:58

2 réponses

Oui, il existe un moyen recommandé de gérer plusieurs langues

Le support multilingue est facile à faire pour android. Créez un nouveau répertoire de valeurs pour la langue avec le suffixe du code de langue. Pour allemand: valeurs-de ou français: valeurs-fr Que copier votre chaîne.xml en cela et traduire chaque entrée. C'est tout ce dont vous avez besoin.

Ne Android en charge plusieurs langues?

Si vous suivez les recommandations, en détectant quelle langue l'utilisateur préfère est automatique.

Avoir une lecture de ceci:

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

25
répondu Colin Pickard 2017-05-23 12:00:35

Dans le fichier d'Activité

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


}

Dans 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>

Et créer un dossier et un fichier

Res \ valeurs \ chaîne.xml (anglais)

Res\valeurs-hi\string.xml (Hindi)

Res\valeurs-kan\string.xml (Kannada)

Res\valeurs-te\string.xml (Telugu)

Res\valeurs-ta\string.xml (Tamoul)

Res\valeurs-ml\string.xml (Malayalam)

Res\valeurs-m.\string.xml (Marathi)

Dans la chaîne.xml (Hindi)

 <resources> 
<string name="email">ईमेल</string>
<string name="password">पासवर्ड </string>
 </resources>
3
répondu Kishor N R 2016-11-23 08:13:46