2011-08-28 13 views

答えて

0

ような、より合理化された何かうん... Locale.COUNTRY-NAME

を使用して探しています
+2

同じことではありません。 Martinは* country *コードではなく* language *コードを探しています。必ずしも1対1をお互いにマップしているわけではありません。 –

+0

@Michael:そうです。 –

+3

あなたは 'locale local = Locale.ENGLISH;のように言語を取得するためにlocaleを使うことができます。 local.getLanguage(); ' –

4

2文字の言語コードはISO 639-1規格で定義されています。

getISOLanguages()

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

詳細基本的なJVMの使用がサポートするすべての言語コードを取得します。 java.util.Localeクラスにはすべてが含まれているのではなく、VMでサポートされているロケール(Locale.getAvailableLocales())のみが含まれています。

JavaのすべてのISO 639-1言語コードにアクセスする最も簡単な方法は、International Components for Unicodeプロジェクト(ICU4J)—にあり、IBMの幅広く広く使用されており、積極的に開発されたi18nライブラリに依存することです。すべての言語のリストをULocaleクラスcom.ibm.icu.util.ULocale.getISOLanguages()から得ることができます。

+0

639-2ではなく、ISO 639-1です。そうでなければ、+1。 – Henning

関連する問題