C'est possible. Vous pouvez définir la locale. Cependant, je ne le recommande pas. Nous l'avons essayé à des stades précoces, cela revient à se battre contre le système.
Nous avons la même exigence de changer la langue mais nous avons décidé de nous contenter du fait que l'interface utilisateur doit être la même que celle du téléphone. Cela fonctionnait via le réglage de la locale mais c'était trop bogué. D'après mon expérience, vous devez le définir à chaque fois que vous entrez dans une activité (chaque activité). Voici un code si vous en avez encore besoin (encore une fois, je ne le recommande pas)
Resources res = context.getResources();
// Change locale settings in the app.
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.setLocale(new Locale(language_code.toLowerCase())); // API 17+ only.
// Use conf.locale = new Locale(...) if targeting lower versions
res.updateConfiguration(conf, dm);
Si vous avez un contenu spécifique à une langue, vous pouvez le modifier en fonction des paramètres.
mise à jour le 26 mars 2020
public static void setLocale(Activity activity, String languageCode) {
Locale locale = new Locale(languageCode);
Locale.setDefault(locale);
Resources resources = activity.getResources();
Configuration config = resources.getConfiguration();
config.setLocale(locale);
resources.updateConfiguration(config, resources.getDisplayMetrics());
}
- NOTES : Le code de la langue ne peut pas être '-' et doit être composé de 2 lettres minuscules seulement.
4 votes
Vous pouvez utiliser la bibliothèque suivante, qui fournit la liste des langues, la préférence pour votre écran de configuration et remplace la langue dans votre application : github.com/delight-im/Android-Languages
0 votes
@MarcoW. Savez-vous si Android-Languages fonctionne avec Android 5.0 Lollipop ?
1 votes
@neu242 Oui, il fonctionne sous Android 5.0 sans aucun problème.
0 votes
J'ai déjà répondu à cette question dans un autre fil, regardez ici : stackoverflow.com/a/33079919/2612536
2 votes
Vous pouvez utiliser la bibliothèque suivante : github.com/zeugma-solutions/locale-helper-Android
1 votes
@josue.0 cette bibliothèque est vraiment la solution la plus propre pour cela.
0 votes
@hpique Si nous avons changé la langue de l'application, alors si nous avons une option de recherche dans l'application, et si nous effectuons une recherche dans cette langue, comment l'application affichera-t-elle les données, devons-nous développer une base de données différente pour chaque langue ou un paramètre du code Android pour que l'application puisse afficher les données en fonction de la recherche ?
0 votes
Suivez ce lien. developine.com/
0 votes
La fonctionnalité de langue par application vient d'être ajoutée à l'API 33 (actuellement en aperçu pour les développeurs). Voir ma réponse stackoverflow.com/a/71151685/5038317