CultureInfo和(resx)资源文件

时间:2011-11-15 14:56:07

标签: c# model-view-controller resx

我一直在使用C#s(Visual Studios)资源机制,并且它工作得很好。我需要能够使用资源,而不是使用CultureInfo作为决定者使用其他东西。这是我目前的设置工作正常,但我必须锻炼资源管理器使用。无论是布鲁塞尔还是巴黎。然后,资源管理器确定要在布鲁塞尔或巴黎使用哪个资源来调用。我想要的是两者的一个资源管理器,所以我不需要决定使用哪个资源管理器。部分问题是 PublicResXFileCodeGenerator 自定义工具为您生成代码(如果您使用标准方法,这是非常好的)

这就是它目前的样子(这很好)

  

布鲁塞尔资源

     
      
  • brussels.en-GB.resx
  •   
  • brussels.ja-JP.resx
  •   
  • brussels.fr-FR.resx
  •   
  • brussels.resx
  •   
     

巴黎

     
      
  • paris.en-GB.resx
  •   
  • paris.ja-JP.resx
  •   
  • paris.fr-FR.resx
  •   
  • paris.resx
  •   

我不想使用CultureInfo,而是指定我自己的resx标识符。有没有办法使用resx文件?

布鲁塞尔和巴黎资源

  
      
  • MyResourceManager.brussels烯GB.resx
  •   
  • MyResourceManager.brussels-JA-JP.resx
  •   
  • MyResourceManager.brussels-FR-FR.resx
  •   
  • MyResourceManager.paris烯GB.resx
  •   
  • MyResourceManager.paris-JA-JP.resx
  •   
  • MyResourceManager.paris-FR-FR.resx
  •   
  • MyResourceManager.resx
  •   

编辑: 我想如何使用它(或类似的东西)的一个例子

  

MyResourceManager.Header

而不是

  

brussels.Header

     

paris.Header

可以在此处找到类似问题但通过Custom Cultures解决的示例。 How to load different RESX files based on some parameter 我不想这样做,因为在不同的机器上安装文化不是一种选择。

1 个答案:

答案 0 :(得分:1)

使用CultureInfo确定要加载的资源集,因为它集成到Thread.CurrentUICulture中会更容易。

如果您的文化不是开箱即用的文化,请使用CultureAndRegionInfoBuilder构建您需要的任何其他文化。见http://msdn.microsoft.com/en-us/library/system.globalization.cultureandregioninfobuilder.aspx。应该有足够的StackOverflow使用此API的示例,即Create custom culture in ASP.NET