且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何指定自定义文化?

更新时间:2023-02-26 21:48:17

我有完全相同的问题。当我注册的自定义文化我不能设置在web.config中新的文化。另外开关在code的不工作 - 应用程序是使用默认文化。当我清理溶液中取出bin和OBJ文件夹,这是解决手动。

BTW。请仔细检查是否有新的文化真的装即,在IE浏览器:工具 - > Internet选项 - >语言

I have a web project which will be used by multiple clients. I'd like to specify string in resource files so the text on the pages can be dynamic depending on which client the deployment is configured for.

For instance, I wanted to set the globalization element's uiCulture attribute in the Web.config set to "Client1" or "Client2" depending on the deployment.

Then, I would have these resource files:

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

Etc., etc. However, it appears that uiCulture has to be an actual/real culture. I don't want to fake it and pretend that "Client1" is "en-US" and "Client2" is "es-MX" or something like that.

How can I load resources for a specific "mode"?

Update The specific issue I'm having is that when I specify a custom UI Culture (Client1 or en-US-Client1), the resource files in my project don't seem to be compiled correctly. E.g. I end up with two classes name "MySite". Additionally, it doesn't looks like a custom culture can be provided in the Web.config (<globalization uiCulture="en-US-Client1"/>); I get the following error:

The tag contains an invalid value for the 'uiCulture' attribute.

I had exactly the same problem. When I registered custom cultures I couldn't setup the new culture in the web.config. Also switching it in the code wasn't working - application was using default culture. This was resolved when I cleaned up the solution and manually removed bin and obj folders.

BTW. Please double check that you have the new cultures really installed i.e. in IE browser: Tools -> Internet Options -> Languages