2011-08-28 28 views

Respuesta

3

Me temo que no hay constantes para todos los idiomas. Tiene varias configuraciones regionales predefinidas como Locale.UKLocale.US, etc. Cada configuración regional tiene un código de idioma que se puede obtener a través del método getLanguage().

Para obtener todo el código de lenguaje soportado por el uso de JVM subyacente getISOLanguages()

for(String lang : Locale.getISOLanguages()) { 
    System.out.println(lang); 
} 

Más detalles: http://download.oracle.com/javase/1.4.2/docs/api/java/util/Locale.html

0

Sip .. Use Locale.COUNTRY-NAME

+2

No es lo mismo. Martin está buscando códigos * language *, no códigos * country *. No necesariamente mapean 1: 1 el uno al otro. –

+0

@Michael: tienes razón. –

+3

puede usar la configuración regional para obtener un lenguaje como 'Locale local = Locale.ENGLISH; local.getLanguage(); ' –

4

Los códigos de idioma de 2 letras están definidos por la norma ISO 639-1. La clase java.util.Locale no las contiene todas, pero solo las configuraciones regionales admitidas por la VM (según Locale.getAvailableLocales()).

La manera más fácil de acceder a todos los códigos de idioma ISO 639-1 en Java es confiar en el proyecto International Components for Unicode (ICU4J) — una biblioteca i18n extensa, ampliamente utilizada y desarrollada activamente de IBM. Puede obtener la lista de todos los idiomas de la clase ULocale: com.ibm.icu.util.ULocale.getISOLanguages().

+0

Es ISO 639-1, no 639-2. De lo contrario, +1. – Henning

Cuestiones relacionadas