关于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 @   TW-刘夏  阅读(578)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示