2011-08-28 10 views

Odpowiedz

3

Obawiam się, że nie ma stałych dla wszystkich języków. Masz kilka predefiniowanych ustawień regionalnych, takich jak Locale.UKLocale.US itd. Każde ustawienie narodowe ma kod języka, który można uzyskać za pomocą metody getLanguage().

Aby uzyskać wszystkie kod języka obsługiwanego przez bazowego wykorzystania JVM getISOLanguages()

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

Więcej szczegółów: http://download.oracle.com/javase/1.4.2/docs/api/java/util/Locale.html

0

Yup .. Użyj Locale.COUNTRY-NAME

+2

To nie to samo. Martin szuka kodów * języka *, a nie * kodów krajów *. Nie muszą mapować siebie nawzajem 1: 1. –

+0

@Michael: Masz rację. –

+3

możesz użyć ustawień regionalnych, aby uzyskać taki język, jak w przypadku 'Locale local = Locale.ENGLISH; local.getLanguage(); ' –

4

Kody językowe 2-literowe są zdefiniowane przez normy ISO 639-1. Klasa java.util.Locale nie zawiera wszystkich, ale tylko ustawienia narodowe obsługiwane przez maszynę wirtualną (zgodnie z Locale.getAvailableLocales()).

Najprostszym sposobem uzyskania dostępu do wszystkich kodów językowych ISO 639-1 w Javie jest poleganie na projekcie International Components for Unicode (ICU4J) — rozbudowanej, szeroko stosowanej i aktywnie rozwijanej bibliotece i18n firmy IBM. Możesz uzyskać listę wszystkich języków z klasy ULOCALE: com.ibm.icu.util.ULocale.getISOLanguages().

+0

To jest ISO 639-1, a nie 639-2. W przeciwnym razie +1. – Henning

Powiązane problemy