【问题标题】:How to specify a custom culture?如何指定自定义文化?
【发布时间】:2013-06-20 15:00:08
【问题描述】:

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

例如,我想根据部署将 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”的无效值 属性。

【问题讨论】:

  • 我不知道这个问题是否与我正在链接的问题重复(我认为不是)-但这可能是相关的:stackoverflow.com/questions/5583529/…
  • @Renan - 谢谢。我希望使用内置的文化自动选择机制,我只想提供一个自定义文化字符串。
  • 这篇文章是相关的,但没有可靠的答案,只是“是的,这很正常”,但现在该怎么做:stackoverflow.com/questions/1059677/…
  • 我收藏了这个问题,因为我遇到了同样的问题。所以我会尽快设置赏金。

标签: asp.net resources translation webforms


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    相关资源
    最近更新 更多