3

Google では、Java でサポートされているすべてのロケールを見つけるための多くの資料を見つけることができます。しかし、それはすべて混乱しています。

たとえば、[http://sanjaal.com/java/tag/java-locale-tutorial/] は 210 ロケールの出力を表示します。しかし、同じプログラムを実行すると、155 しか得られません。たとえば、ta_IN は得られません。si_LK はどのプログラムからも出力されません。

誰か空気をきれいにしてくれませんか?

JDK/JRE 1.7 を使用しています

http://www.oracle.com/technetwork/java/javase/javase7locales-334809.htmlには 111 のエントリがあります。

i18n をサポートする Spring アプリケーションがあり、顧客は独自のローカライズを行うことができます。私がやろうとしているのは、すべてのロケールのリストを提供して、それらから選択できるようにすることです。

おー!これは紛らわしいです。Local.getISOCountries() は LK を国として提供し、Locale.getISOLanguages(); si を言語として提供する .... しかし、Locale.getAvailableLocales(); で有効なロケールである si_LK が指定されていません。

4

3 に答える 3

3
    Locale loc = new Locale("ta", "IN"); // ta_IN, si_LK
    System.out.printf("Name: %s%n"
            + "Country: %s; %s - %s%n"
            + "Language: %s; %s - %s%n"
            + "Script: %s - %s%n",
            loc.getDisplayName(Locale.ENGLISH),
            loc.getCountry(), loc.getISO3Country(), loc.getDisplayCountry(Locale.ENGLISH),
            loc.getLanguage(), loc.getISO3Language(), loc.getDisplayLanguage(Locale.ENGLISH),
            loc.getScript(), loc.getDisplayScript(Locale.ENGLISH));

Name: Tamil (India)
Country: IN; IND - India
Language: ta; tam - Tamil
Script:  - 

Name: Sinhalese (Sri Lanka)
Country: LK; LKA - Sri Lanka
Language: si; sin - Sinhalese
Script:  - 

また、独自のロケールのサポートを提供することも可能です (Java 7 以降)。エスペラント用に作成しましたが、実行可能です (LocaleProvider)。しかし、あなたの場合、すべてがそこにあるかもしれません。


    SimpleDateFormat f = new SimpleDateFormat("EEEE", loc);
    System.out.println("Weekday: " + f.format(new Date()));

残念ながら「火曜日」と表示されるので、言語フォーマットなどを実装する必要があります。serbo-croatian/bosnianのプロジェクトを見つけました。

于 2013-06-25T08:54:36.327 に答える