此站点上有许多与如何访问 ASP.NET MVC应用程序中的RESX文件有关的问题,以及使用它们的最佳实践.
但是在阅读(我第一次可能添加)关于资源的MSDN文章后,我想知道使用RESX文件是否有任何优势,因为我不打算使用服务器控件.所有这些关于"隐式"和"明确"本地化的讨论,但我不会从MVC中获益.
最终,我的应用程序将需要按钮和菜单项的字符串资源,以及更长的HTML项目,以获得更长的杂项内容.我想使用CMS来处理更长的项目,因为我很确定我不想将它们粘贴到RESX文件中.
是否有任何令人信服的理由在新应用程序中使用或不使用ASP.NET资源.我将假设任何未来的MVC增强功能或RESX增强功能将协调一致,但就目前而言,我只是得到一个荣耀的IDictionary.
我应该继续使用RESX还是寻找其他地方?我是否应该考虑使用CMS来获取RESX专为此类资源设计的资源?
任何经验教训将不胜感激.
RESX基础架构有几个优点:
您不必加载适当的每种语言资源.一旦建立了线程的语言环境,CLr就会负责查找适当的程序集并加载资源.
可以轻松地将特定于语言环境的资源移交给第三方进行本地化.
非本地化资源有一个默认的回退机制.
RESX方法还有一个特别的缺点:
很难支持用户为您翻译资源的翻译模型.
我想详细说明最后一点.以Facebook翻译模型为例.Facebook有相当简单的方式让人们提供各种资源的翻译和投票.如果这些存储在数据库中,则可以在正确的编辑过程之后使用它们,而无需重新构建和重新部署应用程序.使用RESX模型,必须重建和重新部署资源程序集,这可能具有足够高的成本,具体取决于部署过程.
因此,在决定使用什么本地化过程之前,我会考虑谁将要进行本地化的决定以及在已经部署主应用程序之后本地化资源的部署过程.
编辑:我忘了提到这些考虑因素与ASP.NET框架选择(MVC或WebForms)是正交的.