Duplicata possible:
Changer la langue par programme dans Android
Je suis nouveau sur Android. Dans mon application, l'utilisateur peut sélectionner une langue parmi trois langues. En fonction de la langue sélectionnée par l'utilisateur, la langue de l'application entière doit être modifiée. Comment puis-je faire ceci?
Utilisez ceci pour changer la langue par programme:
Locale locale = new Locale("en_US");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
context.getApplicationContext().getResources().updateConfiguration(config, null);
Écrivez le code du pays de la langue à la place de "en_US"
pour la langue de votre choix. Par exemple, pour le japonais, ja_JP
; pour l'arabe, ar
. Vérifiez ce lien pour une liste.
Et créez un dossier dans res/values-ja
pour le japonais ou res/values-ar
pour l'arabe ..
Et faites un string.xml
fichier, et mettez toutes les langues que vous voulez sur votre mise en page. Il récupérera la langue par défaut du dossier de valeurs, sinon si vous le souhaitez manuellement, il récupérera de votre dossier externe values-ar
, etc.
Un exemple de res/values-ar
pour l'arabe:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="label">حسب</string>
<string name="name">بحث</string>
<string name="search">بحث :</string>
</resource>
Vous pouvez définir les paramètres régionaux.
Resources res = context.getResources();
// Change locale settings in the app.
DisplayMetrics dm = res.getDisplayMetrics();
Android.content.res.Configuration conf = res.getConfiguration();
conf.locale = new Locale(language_code.toLowerCase());
res.updateConfiguration(conf, dm);
Si vous avez un contenu spécifique à une langue, vous pouvez modifier cette base en fonction du paramètre. pour plus de détails, vous pouvez voir Locale et cela aussi