访问不同的培养资源文件

时间:2012-11-29 16:19:37

标签: asp.net asp.net-mvc-3 satellite-assembly

我有以这种格式的各种语言资源文件:MyApplication\Resources\MyForm\Index.resx

我可以访问当前培养的资源文件。但是,如果我想找到一个不同的文化资源文件(比如Index.de.resx),我很难找到一种方法来实现它。

ci = new System.Globalization.CultureInfo("de");
rm = new ResourceManager("MyApplication.Resources.MyForm", Assembly.GetExecutingAssembly());
lg = rm.GetString("Lang", ci);      

我得到的错误说:

  

无法找到适合指定文化或中性文化的任何资源。确保在编译时将“MyApplication.Resources.MyForm”正确嵌入或链接到程序集“BallotApplication”中,或者所有所需的附属程序集都是可加载和完全签名的。

我的资源文件是公共的,构建操作是“嵌入式资源”。

1 个答案:

答案 0 :(得分:2)

您的资源文件已正确命名,但是,您没有设置完整且正确的CultureInfo

它必须是全名I.E de-DE

完整代码分解为语言(de)部分和国家/地区(DE)部分,由-连字符分隔。

ci = new System.Globalization.CultureInfo("de");

应该是

ci = new System.Globalization.CultureInfo("de-DE");

其他例子如下:

  1. en-US =英文US
  2. en-CA =英语加拿大
  3. en-GB =英国英国
  4. fr-CA =法国加拿大
  5. fr-FR =法国法国
  6. 有关CultureInfo的更多信息。