2009-06-05 6 views

答えて

6

いいえ、APIにこのようなメソッドがあるとは限りません。しかし、LocalesLocale.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); 
} 
1

私はこれを一回行いました。各JVM実装でロケールの名前が異なる可能性があるため、常に動作するとは限りません。あなたが望むものを見つけるまで、ロケールをループします。

3

表示言語はどの言語ですか?

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

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

+0

いいえ!それを複雑にしないでください!それは素敵で、簡単な問題でした。そして、それに沿って来て、それを台無しにしなければなりません。 :( –

0

あなたは、Apacheのコモンズ-LANGを使用することができます。投稿する前にAPIに見えたため

org.apache.commons.lang.LocaleUtils.toLocale(localeStr); 
+0

この言語と国コードでのみ動作しません – Strinder

関連する問題