5

つまり、「English (United States)」がある場合、「en-US」または適切なjava.util.Locale. APIは一方通行のように見えますが、適切な場所を探していない可能性があります。前もって感謝します。

4

4 に答える 4

7

いいえ、API にそのようなメソッドがあるようには見えません。Localesただし、返されたLocale.getAvailableLocales();を使用してキャッシュを作成できます。次に、このキャッシュで表示名を検索するだけです。

private static Map<String, Locale> displayNames = new HashMap<String, Locale>();
static {
    for (Locale l : Locale.getAvailableLocales()) {
        displayNames.put(l.getDisplayName(), l);
    }
}

public static Locale getLocale(String displayName) {
    return displayNames.get(displayName);
}
于 2009-06-05T21:16:14.950 に答える
3

どの言語で名前を表示しますか?

Locale[] locales = Locale.getAvailableLocales();
for (Locale current : locales) {
  for (Locale test : locales) {
    System.out
        .print(test.getDisplayName(current) + " ");
  }
  System.out.println();
}

ロケールを扱う場合は、複数の言語を処理する必要があると思います。

于 2009-06-05T23:46:18.283 に答える
1

私はこれを 1 回行いましたが、JVM 実装ごとにロケールの名前が異なる可能性があるため、常に機能するとは限りません。必要なロケールが見つかるまで、ロケールをループします。

于 2009-06-05T21:16:04.547 に答える