52 votes

Quelle est la différence entre la création d'une locale pour en-US et en_US ?

J'ai toutes mes valeurs ResourceBundle dans un tableau et formaté selon les exigences. Je dois changer les langues sur le site en fonction de la sélection de l'utilisateur dans un menu déroulant en haut de la page.

Si j'utilise un code de langue tel que en_US, alors cela fonctionne bien. Si j'utilise en-US comme code de langue, alors cela ne fonctionne pas. Quel pourrait être le problème ? Quelle est la bonne façon de le faire ?

35voto

Naved Points 3330

"en" est le code de langue spécifié par la norme ISO 639, tandis que "US" est le code de pays spécifié par la norme 3166.
En Java, l'objet Locale reconnaît la langue comme languageCode_countryCode (par exemple en_US) et non comme languageCode-countryCode.

7voto

user3763100 Points 11698

Ou vous pouvez utiliser Locale us = Locale.forLanguageTag("en-US") et us.toLanguageTag(), et cela fera la conversion pour vous sans avoir à créer votre propre implémentation sujette aux erreurs.

4voto

Sai Chaitanya Points 51

À partir de Java8, l'initialisation de la locale doit être effectuée à l'aide de la balise de langue en-US Locale.forLanguageTag("en-US").toString(); renvoie la sortie : en_US

Où comme Locale.forLanguageTag("en_US") ne crée pas la locale requise. La valeur par défaut sera la locale du système. Locale.forLanguageTag("en_US").toString() renvoie null

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