此站点上有许多与ASP.NET MVC应用程序中的how to access RESX文件相关的问题,以及best practices使用它们的问题。
然而,在阅读之后(我可能会第一次添加)MSDN article on resources我想知道使用RESX文件是否有任何优势,因为我不打算使用服务器控件。所有这些都是关于“隐式”和“明确”本地化的讨论,但我不会从MVC那里受益。
最终,我的应用程序将需要用于按钮和菜单项的字符串资源,以及用于更长杂项内容的更长HTML项目。我想使用CMS来处理更长的项目,因为我很确定我不想将它们粘贴到RESX文件中。
是否有任何令人信服的理由在新应用程序中使用或不使用ASP.NET资源。我将假设任何未来的MVC增强功能或RESX增强功能将协调一致,但就目前而言,我只是得到了一个美化的IDictionary。我想看到。
我应该继续使用RESX还是寻找其他地方?我是否应该考虑使用CMS来获取RESX专为此类资源设计的资源?
任何经验教训都会受到赞赏。
答案 0 :(得分:9)
RESX基础设施有几个优点:
RESX方法也有一个特别的缺点:
我想详细说明最后一点。以Facebook翻译模型为例。 Facebook有相当简单的方式让人们提供各种资源的翻译和投票。如果这些存储在数据库中,则可以在正确的编辑过程之后使用它们,而无需重新构建和重新部署应用程序。使用RESX模型,必须重建和重新部署资源程序集,这可能具有足够高的成本,具体取决于部署过程。
因此,在决定使用何种本地化流程之前,我会考虑谁将要进行本地化的决定以及在部署主应用程序之后本地化资源的部署过程将是什么。
编辑:我忘了提到这些注意事项与ASP.NET框架选择(MVC或WebForms)是正交的。
答案 1 :(得分:4)
我说“是”,resx文件仍然是新应用程序的一个很好的选择。我不认为ASP.NET MVC会改变存储字符串的任何内容。
使用资源有什么好处
我建议“站点字符串”的资源文件与您可能经常编辑的大型数据块不同。因此,对于完整的推荐,我会说使用资源文件(resx开始)用于按钮,标签等,以及CMS用于丰富的内容。
答案 2 :(得分:3)
如果您要使用Resx并且不像使用MVC那样使用服务器控件,为什么不扩展MVC Helper方法以便您可以创建本地化标签和文本?然后只需在辅助方法中调用资源中的文本。
e.g。 '<%= Html.CultureLabel(“ResouceId”)%>'
或 '<%= Html.CultureButton(“Name”,“ResouceId”,HtmlButtonType.Button)%>'
只是一个想法。
使用resx可以更轻松地管理网站的全球化。