【问题标题】:ASP.NET MVC 3: Change resource file texts in web frontendASP.NET MVC 3:在 Web 前端更改资源文件文本
【发布时间】:2013-03-01 16:37:30
【问题描述】:

我面临以下情况:

  • 具有多个项目的复杂 MVC 应用程序
  • 应该能够处理多种语言(并非每种语言都已定义)
  • 资源键将始终可用,只是值是 因语言而异
  • 服务层和Web层需要资源
  • 资源在自己的项目中 资源是公开的,具有构建操作嵌入式资源和自定义工具 PublicResXFileCodeGenerator

游戏规则改变者:

  • 每种语言的资源文本应可在 Web 前端进行编辑,并且应随时可用

这就是问题所在。在前端读取和显示每个资源的内容是没有问题的。

代表集合 CultureInfo 读取本地化资源文件:

var resourceSet = ResourceFile.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, false);

是否可以更改资源文件?另一种方法是什么?数据库方式?

我发现this 方法。但它可能无法在我们的环境中工作,因为我们有一个单独的资源项目并且在多个项目中需要它们。

我对数据库方式的(简单)想法:

  • 每个 ViewModel 所需的每个字符串都将在 ViewModelBase 中定义 >:/
  • 控制器获取每个视图所需的字符串并从存储库中设置区域设置并将它们设置到 ViewModel 中
  • View 将访问每个 ViewModel.Key 的资源

有什么想法吗?

谢谢!

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-3 localization resources


    【解决方案1】:

    是否可以更改资源文件?

    不,不是资源文件。您可以编写 custom resource provider 并将它们存储在另一个存储中,例如数据库。

    【讨论】:

    • 这仍然是首选方式吗? (.net 2.0..)自定义资源提供程序与 MVC 的任何最佳实践?
    【解决方案2】:

    迟到的答案:我们将所有资源存储在数据库中,并编写了自定义资源提供程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      相关资源
      最近更新 更多