.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");
和上一句很像是吧,呵呵。