Existe-t-il un moyen élégant de convertir les codes de langue ISO 639-2 (3 lettres) en Java Locales?
E. g. eng, spa, ita, ger
J'ai pu effectuer une itération, tous les paramètres régionaux et de comparer les codes, mais je me demande si il n'y a plus d'élégance & performant moyen d'y parvenir....
Merci beaucoup pour tous les conseils 🙂
source d'informationauteur PeterP
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas si il y a un moyen facile de convertir le 3-lettre à l'2-lettre de versions, mais dans le pire scénario, vous pouvez créer une Carte d'entre eux, comme suit:
Maintenant, vous pouvez vérifier les paramètres régionaux en utilisant des choses comme
localeMap.get("eng")
;Edit: modification de la façon dont la carte est créée. Maintenant, il doit être un objet par le langage.
Edit 2: Ça fait un moment, mais a modifié le code pour utiliser la longueur réelle de la baie de langues lors de l'initialisation de la Carte.
Vous pouvez utiliser le constructeur
Locale(String language)
où la langue est la 2 la lettre de la norme ISO-639-1 du code. Je pense que le meilleur moyen de convertir des ISO-639-2 de la norme ISO-639-1 serait de créerHashMap<String,String>
constante.Modifié le code de mon projet, qui a une exigence semblable. Nous avons notre propre histoire fuseau horaire format on ne peut donc pas utiliser les bibliothèques standard.
On pourrait dire qu'il serait mieux d'avoir la carte de configuration plutôt que le code - peut-être dans un fichier de propriétés. C'est peut-être vrai - mais rappelez-vous la Pragmatique Programmeurs "règle", Votre ne va pas de besoin".