2

我有一个将被多个客户使用的网络项目。我想在资源文件中指定字符串,以便页面上的文本可以是动态的,具体取决于为哪个客户端配置了部署。

例如,我想根据部署将 Web.config 中的globalization元素uiCulture属性设置为“Client1”或“Client2”。

然后,我将拥有这些资源文件:

  • App_GlobalResources\MySite.Client1.resx
  • App_GlobalResources\MySite.Client2.resx
  • App_LocalResources\Default.aspx.Client1.resx
  • App_LocalResources\Default.aspx.Client2.resx

等等,等等。但是,它似乎uiCulture必须是一种实际/真实的文化。我不想伪造它并假装“Client1”是“en-US”而“Client2”是“es-MX”或类似的东西。

如何加载特定“模式”的资源?

更新 我遇到的具体问题是,当我指定自定义 UI 文化(Client1 或 en-US-Client1)时,我的项目中的资源文件似乎没有正确编译。例如,我最终得到两个类名称“MySite”。此外,看起来不能在 Web.config ( <globalization uiCulture="en-US-Client1"/>) 中提供自定义文化;我收到以下错误:

标记包含“uiCulture”属性的无效值。

4

1 回答 1

0

我有完全相同的问题。当我注册自定义文化时,我无法在 web.config 中设置新文化。在代码中切换它也不起作用 - 应用程序正在使用默认文化。当我清理解决方案并手动删除 bin 和 obj 文件夹时,此问题已解决。

顺便提一句。请仔细检查您是否在 IE 浏览器中真正安装了新的文化:工具 -> Internet 选项 -> 语言

于 2013-07-24T18:15:35.617 回答