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