【问题标题】:Tricky problem with ASP.NET web forms resources and localizationASP.NET Web 表单资源和本地化的棘手问题
【发布时间】:2009-05-07 14:35:43
【问题描述】:

我有以下非标准设置(VS2008,.NET 3.5 SP1):

有一个名为 MainSite 的主 Web 项目,并且有几个不同名称的“插件”Web 项目。

在构建这些插件时,我有一个调用aspnet_compiler.exeaspnet_merge.exe 的自定义构建步骤。这会产生两个 .DLL 文件 - plugin_name.dll 和 plugin_name_deploy.dll。第一个包含代码隐藏类,第二个包含从 .ascx 文件生成的代码。

然后将这些插件 .DLL 复制到 /MainSite/bin/Plugins/ 文件夹。在运行时(应用程序启动),MainSite 应用程序在此文件夹中查找并动态加载那里的所有 .DLL 文件。

我所有的表单都在插件中,在 .ascx 文件中。主应用程序只是一个框架,它根据需要加载这些 .ascx 用户控件。

现在需要本地化。理想情况下,我希望拥有以下内容:

  • 在 Visual Studio 中制作资源时,每个表单都应该有一个单独的资源文件(.ascx 文件),以便人们更轻松地并行本地化表单。
  • .ascx 文件中漂亮的meta:resourcekey 方法非常适合本地化控件;
  • .NET 中的自动资源语言/文化回退机制应该可用;
  • 编译的结果应该是所有插件的文件都可以复制到/MainSite/bin/Plugins/文件夹。如果每种语言/文化都有一个 .DLL 文件,并且必须将它们放在某些特定的子文件夹中 - 只要来自不同插件的 .DLL 没有冲突的名称,那很好。

关于如何实现这一点的任何想法?

【问题讨论】:

    标签: asp.net localization webforms globalization aspnet-merge


    【解决方案1】:

    显然可以在 .NET 中实现自定义资源提供程序。 Here 是一篇文章,其中包含解释整个过程的各种其他文章的链接。实际上,您从meta:resourcekey 获取值并从您想要的任何地方获取值。例如,上面的文章将所有本地化信息存储在数据库中。

    【讨论】:

      猜你喜欢
      • 2019-01-13
      • 1970-01-01
      • 2013-02-08
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      相关资源
      最近更新 更多