如何用.NET语言包测试不同语言的.NET资源?
How to test .NET resources in different languages with .NET language packs?
希望实现异常消息翻译,如 Exception messages in English? 所示,我想要进行单元测试,因此这需要能够以不同的语言生成消息。但这不太奏效;代码如
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-DE");
Console.WriteLine(DirectoryNotFoundException().Message);
始终生成英文版本“试图访问不在磁盘上的路径。”。
发现我遗漏了一些东西并遵循 instructions 我安装了德语 .NET Framework 4.7.2 语言包以在 TargetFrameworkVersion=v4.7.2 Visual Studio 2017 的应用程序中对此进行测试,没有改变。
想在 Visual Studio 2022 年尝试相同的应用程序,但目标是 v4.8,我还尝试安装德语 .NET Framework 4.8 语言包,但该安装程序未完成。翻译后的消息是(几乎具有讽刺意味的是,安装程序 UI 完全是德语)“这台计算机上已经安装了 .NET Framework 4.8 (Deutsch) 或更高版本。”
我是不是做错了什么?我的意思是我可以编写针对不同框架版本的应用程序,所以我假设存在语言包的先决条件?我是否需要安装其他东西,或者以不同的方式安装?
有没有办法在代码中找出为什么 GetCultureInfo
调用不是 return 一种文化,例如它去哪里寻找资源文件,是否有办法纠正它?
看起来要让它工作,OS 需要有所需的语言(感谢@PMS 的提示):安装德语 (Start->Add a language to this device
) 解决了它,即使没有安装单独的语言包或任何东西。
And is there a way to figure out in code or otherwise why the GetCultureInfo call doesn't return a culture, e.g. where does it go looking for resource files
虽然这仍然没有得到答复,但我现在不再需要它了。
希望实现异常消息翻译,如 Exception messages in English? 所示,我想要进行单元测试,因此这需要能够以不同的语言生成消息。但这不太奏效;代码如
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-DE");
Console.WriteLine(DirectoryNotFoundException().Message);
始终生成英文版本“试图访问不在磁盘上的路径。”。
发现我遗漏了一些东西并遵循 instructions 我安装了德语 .NET Framework 4.7.2 语言包以在 TargetFrameworkVersion=v4.7.2 Visual Studio 2017 的应用程序中对此进行测试,没有改变。
想在 Visual Studio 2022 年尝试相同的应用程序,但目标是 v4.8,我还尝试安装德语 .NET Framework 4.8 语言包,但该安装程序未完成。翻译后的消息是(几乎具有讽刺意味的是,安装程序 UI 完全是德语)“这台计算机上已经安装了 .NET Framework 4.8 (Deutsch) 或更高版本。”
我是不是做错了什么?我的意思是我可以编写针对不同框架版本的应用程序,所以我假设存在语言包的先决条件?我是否需要安装其他东西,或者以不同的方式安装?
有没有办法在代码中找出为什么 GetCultureInfo
调用不是 return 一种文化,例如它去哪里寻找资源文件,是否有办法纠正它?
看起来要让它工作,OS 需要有所需的语言(感谢@PMS 的提示):安装德语 (Start->Add a language to this device
) 解决了它,即使没有安装单独的语言包或任何东西。
And is there a way to figure out in code or otherwise why the GetCultureInfo call doesn't return a culture, e.g. where does it go looking for resource files
虽然这仍然没有得到答复,但我现在不再需要它了。