【问题标题】:CultureInfo and (resx) Resource FilesCultureInfo 和 (resx) 资源文件
【发布时间】:2011-11-15 14:56:07
【问题描述】:

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

这就是它目前的样子(这工作正常)

布鲁塞尔资源

  • brussels.en-GB.resx
  • brussels.ja-JP.resx
  • brussels.fr-FR.resx
  • 布鲁塞尔.resx

巴黎

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

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

布鲁塞尔和巴黎资源

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

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

MyResourceManager.Header

而不是

布鲁塞尔.Header

paris.Header

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

【问题讨论】:

  • 您能否提供一个您想要的结果的具体示例? (当布鲁塞尔和巴黎资源集都有特定于文化的资源时,如果说您不想考虑文化,这似乎有点奇怪。)
  • 你有很多这些事情要做,还是只有一个?
  • @NicoleCalinoiu 你能澄清一下“很多这些”是什么意思吗?
  • 您是否有多次重复相同的场景,或者这对于城市(或布鲁塞尔和巴黎所代表的任何地方)来说是一次性的?我试图弄清楚您是否需要通用实施或特定于您的城市案例的东西。
  • 仅适用于巴黎(英语、日语、法语)和布鲁塞尔(英语、日语、法语)。我实现了两个单独的资源管理器,它们完成了任务并根据我的路由信息​​加载它们。

标签: c# model-view-controller resx


【解决方案1】:

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

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

【讨论】:

  • 感谢您的评论。我希望能够做到这一点,而无需在我们的服务器或其他开发人员机器上安装它。我想这是不可能的(除非我编写了一个自定义工具(我认为这不是一个好主意))然后我仍然有加载正确文件的问题,因为 CurrentUICulture 将不再工作。
  • 开始认为有两个单独的资源管理器是可以的,也许问题只是试图调用我想要的而不是 if 语句,因为这仍然可以实现我不必锻炼的目标打电话给哪个。
  • 你在做格式和内容吗? IE。如果数字或日期格式因一种文化而异,则您的资源管理器可能无法解决该解决方案,因为资源管理器与内容的正确检索密切相关,而不是格式。
猜你喜欢
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多