该网站上有很多相关问题 如何访问 ASP.NET MVC 应用程序中的 RESX 文件,以及 最佳实践 使用它们。

然而,在阅读之后(我可能是第一次添加) 有关资源的 MSDN 文章 我想知道使用 RESX 文件是否有任何优势,因为我不会使用服务器控件。有很多关于“隐式”和“显式”本地化的讨论,但我不会从 MVC 中受益。

最终,我的应用程序将需要用于按钮和菜单项的字符串资源,以及用于较长杂项内容的更长的 HTML 项目。我想对较长的项目使用 CMS,因为我很确定我不想将它们粘贴到 RESX 文件中。

是否有任何令人信服的理由在应用程序中使用或不使用 ASP.NET 资源? 新的 应用。我假设任何未来的 MVC 增强功能或 RESX 增强功能都将协同工作,但目前我所看到的只是一个美化的 IDictionary。

我应该继续使用 RESX 还是寻找其他地方?我是否应该考虑为 RESX 设计的资源类型使用 CMS?

任何吸取的教训将不胜感激。

有帮助吗?

解决方案

RESX 基础设施有几个优点:

  • 您不必加载适当的每种语言资源。一旦建立了线程的区域设置,CLr 就会负责查找适当的程序集并加载资源。
  • 将用于本地化的特定于语言环境的资源移交给第三方是很容易的。
  • 对于非本地化资源有一个默认的后备机制。

RESX 方法还有一个特别的缺点:

  • 很难支持用户为您翻译资源的翻译模型。

我想详细说明最后一点。以 Facebook 翻译模型为例。Facebook 有相当简单的方法供人们提供各种资源的翻译并对其进行投票。如果它们存储在数据库中,则可以在正确的编辑过程后使用它们,而无需重建和重新部署应用程序。使用RESX模型,资源组件将必须重建和重新部署,这可能具有足够高的成本,具体取决于部署过程。

因此,在决定使用哪种本地化流程之前,我会考虑由谁来进行本地化,以及在部署主应用程序后本地化资源的部署流程是什么。

编辑: 我忘了提及,这些考虑因素与 ASP.NET 框架选择(MVC 或 WebForms)是正交的。

其他提示

我想说“是”,resx 文件对于新应用程序来说仍然是一个不错的选择。我不认为 ASP.NET MVC 特别改变了存储字符串的任何内容。

使用资源的好处是

  • 它们很容易管理
  • 与没有资源相比,本地化您的网站是一项容易得多的任务(我强调 很多 更轻松)
  • 您可以随时替换资源存储,因为资源使用提供者模型。您可以切换数据库条目的 resx 文件,而无需更改站点的实现。

我建议“站点字符串”的资源文件,这些文件与您可能经常编辑的大数据块不同。因此,对于完整的推荐,我建议使用资源文件(resx 启动)作为按钮、标签等,并使用 CMS 来处理丰富的内容。

如果您要使用Resx并且不像使用MVC那样使用服务器控件,为什么不扩展MVC Helper方法以便您可以创建本地化标签和文本?然后只需在辅助方法中调用资源中的文本。

e.g。 '<!> lt;%= Html.CultureLabel(<!> quot; ResouceId <!> quot;)%<!> gt;'

或 '<!> lt;%= Html.CultureButton(<!> quot; Name <!> quot;,<!> quot; ResouceId <!> quot;,HtmlButtonType.Button)%<!> gt;'

只是一个想法。

使用resx可以更轻松地管理网站的全球化。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top