web-dev-qa-db-fra.com

Comment créer une application Android multilingue?

Je souhaite créer une application Android multilingue.

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

Existe-t-il un moyen recommandé de gérer plusieurs langues sur Android ou dois-je réinventer la roue?

23
clamp

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 l'allemand: values-de ou french: values-fr que copier votre string.xml dans cela et traduire chaque entrée. C'est tout ce dont vous avez besoin.

Android prend en charge plusieurs langues?

Dans la mesure où vous suivez les recommandations, la détection de la langue préférée par l'utilisateur est automatique.

Ayez une lecture de ceci:

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

25
Colin Pickard

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\values ​​\ string.xml (anglais)

res\values-hi\string.xml (hindi)

res\values-kan\string.xml (Kannada)

res\values-te\string.xml (Telugu)

res\values-ta\string.xml (tamoul)

res\values-ml\string.xml (malayalam)

res\values-mr\string.xml (marathi)

Dans string.xml (Hindi) 

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

Sachez que c'est un message tardif, que vous pensez partager une application de démonstration, ce qui sera utile pour certaines personnes.

Application multilingue utilisant les préférences partagées

Cette démo présente les deux scénarios suivants, 

  • Sélectionnez la langue dans la liste déroulante.
  • Choisissez la langue de la conception de la feuille inférieure

La langue sélectionnée est stockée dans les préférences partagées. Ainsi, la prochaine fois que l'application sera ouverte, la langue préférée sera automatiquement choisie.

Code source - https://github.com/anurajr1/Multi-language_App

0
Anuraj R