关于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文件了。

posted @ 2012-06-03 20:00  TW-刘夏  阅读(476)  评论(0编辑  收藏  举报