关于CultureInfo的两个问题
第一个问题:CurrentCulture和CurrentUICulture有什么区别
参考资料:
(1) http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/ff0fd2c8-e2ef-4f8c-b812-da65bd203c51/
(2) http://blogs.msdn.com/b/snippets/archive/2008/11/10/what-we-should-know-about-currentculture-and-currentuiculture.aspx
(3) http://blogs.msdn.com/b/michkap/archive/2007/01/11/1449754.aspx
一句话解释:
CurrentCulture 用于数字,日期时间,货币,百分比的显示的格式化。
CurrentUICulture 用户资源的本地化。即和 ResourceManager 相关的资源 Loading。
第二个问题:ResourceManager在Load资源的时候会如何匹配资源文件
由于 CultureInfo 有 NeutralCultures 和 SpecificCultures 的区别,但是不要指望 ResourceManager 会在找不到相应 SpecificCulture 的情况下为咱们匹配 NeutralCulture。
例如,当前的 CurrentUICulture 是 en-GB,但是却没有相应的 ResourceXxx.en-GB.resx 定义,只有 ResourceXxx.en.resx。那么 ResourceManager 会匹配 ResourceXxx.resx 文件而不为我们匹配 ResourceXxx.en.resx。
这一定程度上造成了麻烦。例如 zh-CN, zh-Hans 就 Resource 的内容而言可能是一样的。那么只有自己搞定这些映射啦,显式的指定 CurrentUICulture(例如指定为推荐的 zh-Hans),这样就不需要定义多个内容一模一样的 Resource.(loc).resx文件了。
TAG: