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?
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.
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
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>
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,
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