Je développe une application qui permet à l'utilisateur de changer la langue dans les paramètres de l'application. Mais tant que certains pays ont deux langues ou plus et que certaines langues sont utilisées dans plus d'un pays, je dois utiliser le format xx-XX. Par exemple, les utilisateurs de Belgique peuvent sélectionner le français ou le néerlandais.android - Changer la langue et le pays par programme
J'utilise l'extrait de code suivant pour changer la langue:
protected void setLocale() {
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
Locale locale = new Locale(dataManager.getLocale().toLowerCase());
Locale.setDefault(locale);
conf.locale = locale;
res.updateConfiguration(conf, dm);
}
dataManager.getLocale()
retours String
comme "fr-BE" ou "nl-BE".
J'ai des fichiers de ressources suivants:
values-fr/strings.xml
values-fr-rBE/strings.xml
values-nl/strings.xml
values-nl-rBE/strings.xml
Mais même si je mets locale à nl-BE
, il utilise les chaînes de values-nl
répertoire, mais pas de values-nl-rBE
. Donc, ma question est: "Comment puis-je faire en sorte que mon application utilise des ressources pour certaines langues et certaines régions dans l'exécution?"
Savez-vous que l'application locale d'être sélectionné automatiquement en fonction locale de l'appareil. –
@RahulTiwari Je sais, mais toutes mes activités invoquent la méthode 'setLocale()' dans 'onResume()'. Et cela fonctionne, il utilise la chaîne pour le bon langage, mais il n'utilise pas d'informations sur la région. –