【问题标题】:How to localize MVC with database backed resources如何使用数据库支持的资源本地化 MVC
【发布时间】:2011-04-03 01:40:52
【问题描述】:

我已经阅读了 Google 和 SO 提供的大部分文献(如果我遗漏了什么,请纠正我)。

我想要做的是使用资源本地化 MVC 站点,我想要compiletime safety of strongly typed resource files (ResX)ASP.NET 2.0 Resource-Provider Model 的灵活性,或类似的东西。我不介意做一些工作,但似乎我研究过的所有路径都走向了死胡同。

为了在视图中显示本地化文本,我可以 hack together a helper to pull resources from HttpContext.Get(Global|Local)ResourceObject 但这让我无处可去 model validation and scaffolding,我想我可以子类化属性并提供数据,但因为这意味着从 HttpContext 中提取东西我怀疑这是可用的在属性被激活时。

由于 MVC 中的本地化方向似乎是针对 ResX 文件而不是 2.0 Resource-Provider 模型,我可以尝试将自己注入到由 ResXFileCodeGenerator with a custom ResXFileCodeGenerator 生成的类中以提供我自己的 ResourceProvider 但那太骇人听闻了涉及自定义 Visual Studio 插件和代码生成。

所以我的问题基本上是,灵活的 MVC 本地化的故事是什么

参考文献如下:

【问题讨论】:

    标签: database model-view-controller asp.net-mvc-2 resources resx


    【解决方案1】:

    资源提供者应该可以正常工作(即http://msdn.microsoft.com/en-us/library/aa905797.aspx)。我一直在一些带有 SQL Server 支持的提供程序的项目中使用它,工作正常。它允许您使用所有 ASP.NET 本地化功能以及所有使用资源的验证属性翻译。

    【讨论】:

    • 对不起,我的回复晚了,我在使用资源提供者模型时遇到的问题是它迫使我使用资源表达式和 HttpContext.Get(Global|Local)ResourceObject 方法来获取资源.例如,我希望能够说 。如果我使用后一种方法,它根本不会调用自定义资源提供程序(通过查看 resx 文件的生成代码很清楚)。如果我必须构建自己的 HtmlHelper 方法和自己的验证器属性,那么框架的意义何在?
    【解决方案2】:

    请尝试使用专用的 NuGet 包来本地化具有数据库资源的 MVC 应用程序: Globsite.Globalization.Mvc

    它建立在原生 ASP.NET 资源提供者模型之上,因此它可以像标准 ResX 资源一样以类似的方式与您的应用程序集成。
    此外,如果需要,该库允许您只需单击一下即可生成强类型资源。

    更多细节的项目网站:
    globsite.net/GlobsiteGlobalizationLibrary

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多