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

C# 将CultureInfo设置为国家/地区未知的语言,c#,globalization,cultureinfo,C#,Globalization,Cultureinfo,我正试图根据提供给我的设置文件设置应用程序的CultureInfo(我无法更改其内容) 在我的设置文件中我只能访问我应该显示的语言名称(没有国家信息),例如德语,法语,英语 我设法用计算机获取了我的文化信息 CultureInfo cultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures) .Where(c => c.EnglishName == language

我正试图根据提供给我的
设置文件
设置应用程序的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设置为与我的语言相关的最常见国家/地区?

我知道这不是一个完美的解决方案(例如,英国和美国之间最常见的是什么…),但我不知道我的用户的国家/地区,我认为我做得更好。

This
var en=CultureInfo.GetCultures(CultureTypes.AllCultures)。首先(x=>x.Name==“en”)
将为您的语言(示例中为英语)提供一个基本
CultureInfo
。如果你检查“en-GB”、“en-US”,你会发现两者的父项都等于“en”。

也许我误解了你的解释,但是
var-en=CultureInfo.GetCultures(cultureType.AllCultures)。首先(x=>x.Name==“en”)的作用与
CultureInfo CultureInfo=CultureInfo.GetCultures(CultureTypes.AllCultures)完全相同。其中(c=>c.EnglishName==“English”).FirstOrDefault()
和我仍然有同样的问题,无法知道这种语言可能的国家(或最流行的国家),因此无法创建我的
新的CultureInfo({LANG-COUNTRY})
可能的国家(文化),您可以先使用过滤器(x=>x.Parent.Name==“en”)而不是名称。最受欢迎的不是节目,而是人口统计。我的例子给出了没有区域集的cultore。第一个变体给出了CultureType中性,第二个国家特定。哦,对了,我认为我不能在查询中使用父级,我现在确实可以检索lang+国家,谢谢。