3

完全な表示名を使用して cultureInfo オブジェクトのインスタンスを作成する方法はありますか:

CultureInfo userCulture = new CultureInfo("Japanese (Japan)");

または完全な表示名をカルチャ コードに変換します。

toCultureCode("Japanese (Japan)"); 

戻るだろう "ja-JP"

4

2 に答える 2

3

英語名でカルチャを取得するための組み込みのメソッドはないため、次のように記述できます。

public static CultureInfo getCultureByEnglishName(String englishName)
{
    // create an array of CultureInfo to hold all the cultures found, 
    // these include the users local culture, and all the
    // cultures installed with the .Net Framework
    CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures);
    // get culture by it's english name 
    var culture = cultures.FirstOrDefault(c => 
        c.EnglishName.Equals(englishName, StringComparison.InvariantCultureIgnoreCase));
    return culture;
}

デモ

toCultureCodeToString:_

String name = "Japanese (Japan)";
CultureInfo japanCulture = getCultureByEnglishName(name);
Console.Write(japanCulture.ToString()); // -> "ja-JP"
于 2012-12-18T14:15:23.713 に答える
2

あなたはLinqを使うことができます

using System.Linq;

CultureInfo culture = CultureInfo.GetCultures(CultureTypes.AllCultures).FirstOrDefault(c => c.DisplayName == "Japanese (Japan)");
于 2012-12-18T14:19:41.097 に答える