将CultureInfo设置为国家/地区未知的语言

时间:2016-07-28 13:02:46

标签: c# globalization cultureinfo

我正在尝试根据提供给我的settingFile来设置我的应用程序的CultureInfo(我无法更改它的内容)。

在我的settingFile我只能访问我应该显示的语言名称(没有关于国家/地区的信息),例如GermanFrenchEnglish。< / p>

我设法使用

获取了CultureInfo
CultureInfo cultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures)
                              .Where(c => c.EnglishName == languageName).FirstOrDefault();

我的问题是我现在应该这样做:

Thread.CurrentThread.CurrentCulture = new CultureInfo({LANG-COUNTRY});

但我只有语言(通过cultureInfo.Name),所以我无法创建我的文化信息。

尝试做

Thread.CurrentThread.CurrentCulture = cultureInfo;

也不起作用。

我想过做

new CulltureInfo({cultureInfo.Name+"-"+cultureInfo.Name.ToUpper()});

但它不适用于英语......

有没有办法将CultureInfo设置为与我的语言相关的最常见的国家/地区? 我知道它不是一个完美的解决方案(例如en-UK和en-US之间最常见的...)但我认为我不能做得更好,不知道我的用户所在的国家。< / p>

1 个答案:

答案 0 :(得分:1)

var en = CultureInfo.GetCultures (CultureTypes.AllCultures).First(x=>x.Name=="en");会为您的语言提供基础CultureInfo(示例中为en)。如果您要检查“en-GB”,“en-US”比您看到的都Parent等于“en”。