RegionInfo:CurrentUICulture翻译的DisplayName

RegionInfo: DisplayName translated by CurrentUICulture

有没有办法通过自定义 CultureInfo 翻译 RegionInfo?

我尝试了以下但它不起作用:

/* Change culture of current thread to german*/
CultureInfo de = new CultureInfo("de");
Thread.CurrentThread.CurrentCulture = de;
Thread.CurrentThread.CurrentUICulture = de;
RegionInfo regionInfoDe = new RegionInfo("de");
regionInfoDe.DisplayName.Should().Be("Deutschland");

/* Change culture of current thread to englisch */
CultureInfo en = new CultureInfo("en");
Thread.CurrentThread.CurrentCulture = en;
Thread.CurrentThread.CurrentUICulture = en;
RegionInfo regionInfoEn = new RegionInfo("de");
regionInfoEn.DisplayName.Should().Be("Germany");

如果当前文化是德语,我想从 RegionInfo("de") 中获取 "Deutschland"。如果当前文化是英语,则应该是"Germany"。

您不能为此使用 RegionInfo - 此 class 只允许您以 .NET 安装的语言(通常是英语)或本机名称(以所选区域)。

您应该为此使用资源文件(例如 Res.resx: "de" "Germany"; Res.de.resx: "de" "Deutschland"; Res.pl.resx: "de" "Niemcy"...) 那么在代码中,会从对应的resx中取出Res.de的值你的 CurrentThread.CurrentUICulture.