1

有没有办法让自定义 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”。如果当前的文化是英语,应该是“德国”。

4

1 回答 1

1

您不能为此使用 RegionInfo - 此类仅允许您以 .NET 安装的语言(通常为英语)或本地名称(以所选区域的语言)获取名称。

您应该为此使用资源文件(例如 Res.resx: "de" "Germany"; Res.de.resx: "de" "Deutschland"; Res.pl.resx: "de" "Niemcy"...)然后,在代码中,Res.de的值将取自您的 CurrentThread.CurrentUICulture 对应的 resx。

于 2016-12-08T05:31:10.847 回答