.Net的资源查找机制重复其本地化变得相对简单(有空时在做介绍吧),但在运行本地化.Net软件的时候,一个经常出现的问题便是会有一些本不该翻译的资源被误翻译,从而导致系统无法正常运行。这种错误一般很难查找它出现的原因,因为开发人员的操作系统往往是与本地化版本的语言环境不同的,这样一来在调试时调用的资源将是操作系统语言所对应的资源文件。无法调用期望的资源文件,当然无法找到错误原因。
当然我们可以通过改变操作系统语言改达到我们的目的,但这无疑是笨拙的,因为通过代码来设置当然的语言环境非常简单,只需要在适当的地方(如Main函数的第一行)加上下面的语句就可以了——
System.Threading.Thread.CurrentThread.CurrentUICulture =
System.Globalization.CultureInfo.CreateSpecificCulture("zh-CN");
关于Thread.CurrentUICulture,MSDN给出的介绍是“获取或设置资源管理器使用的当前区域性以便在运行时查找区域性特定的资源。(Gets or sets the current culture used by the Resource Manager to look up culture-specific resources at run time.)”
对了,在此之前,需要把本地化资源包放到对应的目录里,即调用该包的exe或者dll所在的目录。例如,假定程序EXE所在目录为D:/ EXE/bin/Debug,则其中语言包应为一个名为zh-CN的文件夹,其中包含EXE.resources.dll,把该文件夹拷贝到Debug目录下即可。
最后,附赠设置当然运行环境的语言环境的语句。它可以用调整时间、目录等的显示格式等等。
System.Threading.Thread.CurrentThread.CurrentCulture =
System.Globalization.CultureInfo.CreateSpecificCulture("zh-CN");
和上一句很像是吧,呵呵。
在.Net环境中,本地化资源管理虽然方便,但有时会出现非预期的翻译问题,影响程序运行。通过更改操作系统语言来调试并不理想。本文介绍了如何在C#代码中,特别是Main函数中,使用`System.Threading.Thread.CurrentThread.CurrentUICulture`设置当前用户界面文化为`zh-CN`,以解决本地化资源加载错误。同时,确保将本地化资源文件放在正确目录下,如程序EXE或DLL所在的Debug目录,并创建对应的语言文件夹,如`zh-CN`,包含相应的资源文件。此外,还提供了设置系统当前文化,影响时间、目录等格式的代码。
4万+

被折叠的 条评论
为什么被折叠?



