Comment obtenir de la langue (paramètres régionaux) actuellement Android app affiche?
Comment faire apprendre la langue (paramètres régionaux) actuellement Android app utilise pour afficher du texte à l'utilisateur?
Je sais que je peux utiliser Locale.getDefault()
pour obtenir de l'OS par défaut, les paramètres régionaux. Mais elle peut différer de paramètres régionaux utilisés par l'application pour l'affichage du texte et d'autres ressources, si ce lieu n'est pas pris en charge par l'app.
J'ai besoin de déterminer la langue (paramètres régionaux) affichée par l'application, donc l'application peut passer la langue sur le serveur, de sorte qu'il peut localiser les résultats retournés.
Vous devez vous connecter pour publier un commentaire.
Ma propre solution consiste à ajouter à
strings.xml
paire clé-valeurlocale=<locale code>
, ainsicontext.getResources().getString(R.string.locale)
sera de retour code de paramètres régionaux spécifiques pour les paramètres régionaux.C'est sur votre configuration de l'application, de sorte que vous pouvez l'obtenir avec :
ce qui est différent de
et montre les paramètres Régionaux que l'application utilise qui peuvent être différentes.
Il peut être différente, parce que le développeur peut modifier par la mise à jour de la configuration de l'application,
vérifier : Les ressources.updateConfiguration
Locale
(première ligne de code). Mais il est faux qu'il existe une différence:Locale.getDefault()
est équivalent au premier exemple. Si vous souhaitez obtenir le code de langue, vous devez appelergetLanguage()
.getResources().getConfiguration().locale
retourne fr_fr, bien que l'affichage des chaînes en anglais (à partir devalues/strings.xml
).Le code suivant fonctionne pour moi:
Remarque: Il y a un léger changement sur la façon dont vous devriez obtenir les paramètres régionaux sur Construire.VERSION_CODES.N. Pour N et au-dessus, le code devrait ressembler le bloc de code ci-dessous; cependant, je viens de le faire pour M et au-dessous, comme dans le code ci-dessus bloc et il est compatible pour N et au-dessus aussi.
J'ai obtenu de la façon suivante sur les langues nationales je soutiens:
Il y a une liste de méthodes qui donnent la même information locale dans différents formats:
getDefault()
méthode surLocale
Vous pouvez utiliser le code ci-dessous.
Par exemple, les fonctions présentées ci-dessous peuvent être placés à l'intérieur de la classe a étendu l'Application de la classe.
Puis partout dans le code principal, nous pouvons écrire:
Dans votre cas, vous, dans peu de temps, peut utiliser
getAppLanguage()
et de vérifier ensuite la variable publiqueAPP_LANG
pour obtenir ce que la langue est actuellement utilisé.Utiliser cette méthode.