346 votes

Android récupère la localité actuelle et non celle par défaut

Comment obtenir le Locale actuel de l'utilisateur dans Android ?

Je peux obtenir celui par défaut, mais il se peut qu'il ne soit pas le plus récent, n'est-ce pas ?

En fait, je veux le code de langue à deux lettres de la locale actuelle. Pas le code par défaut. Il n'y a pas de Locale.current()

1 votes

default() est une valeur sûre, mais ne l'utilisez pas pour le traitement (comme le dit la documentation).

1 votes

@A--C l'utiliser pour le traitement ?

0 votes

Ouais, voir ce que le docs dites : Certaines régions utilisent ',' comme point décimal et '.' pour le regroupement des chiffres. donc des trucs comme parseInt() peuvent échouer. Notez qu'ils recommandent toujours d'utiliser default() mais pas pour les choses qui peuvent casser le code.

4voto

Rakshit Soni Points 534

Selon le fonctionnaire documentation ConfigurationCompat est déprécié dans les bibliothèques de support

Vous pouvez envisager d'utiliser

LocaleListCompat.getDefault()[0].toLanguageTag() La 0e position sera le lieu préféré de l'utilisateur

Pour obtenir la locale par défaut à la 0ème position, il faudrait LocaleListCompat.getAdjustedDefault()

2voto

fvaldivia Points 396

J'ai utilisé ça :

String currentLanguage = Locale.getDefault().getDisplayLanguage();
if (currentLanguage.toLowerCase().contains("en")) {
   //do something
}

2voto

Alif Hasnain Points 735

Pour l'instant, nous pouvons utiliser ConfigurationCompat pour éviter les avertissements et les modèles inutiles.

Locale current = ConfigurationCompat.getLocales(getResources().getConfiguration()).get(0);

0voto

farhad.kargaran Points 24

J'ai utilisé ce code simple :

if(getResources().getConfiguration().locale.getLanguage().equalsIgnoreCase("en"))
{
   //do something
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X