【问题标题】:Override the neutral language of a specific resource file within an assembly覆盖程序集中特定资源文件的中性语言
【发布时间】:2010-02-20 14:42:03
【问题描述】:

我有一个包含多个资源文件的程序集。他们中的大多数都有中性语言'nl'(荷兰语,在程序集中指定为中性语言),所以我没有在他们的文件名中指定'nl'。

但是,我将英文字符串放在其他一些资源文件中(它们是内部错误消息),我永远不会提供它们的荷兰语翻译。

如果我将这些资源文件命名为“Errors.en.resx”,则不会生成设计器类(破坏构建),因为没有“Errors.resx”。这很烦人,因为现在我必须将 'en' 字符串放入一个 'nl' 隐含的资源文件中,而我真的不想将这些字符串转换为 'nl' 或提供空字符串以满足编译器的要求。

有没有办法覆盖特定资源文件上的中性语言,或者以某种方式让“Errors.en.resx”构建设计器类?

【问题讨论】:

  • 如果不翻译,为什么不在静态类中使用常量?
  • 好点,我会考虑,虽然我会失去 VS 中资源编辑器的舒适性。
  • 我没有给你答案,但你的英语比我的一些朋友好。这是一个 cookie。
  • 谢谢,非常感谢。

标签: .net localization assemblies resources


【解决方案1】:

如果不翻译字符串,考虑在静态类中使用常量(如果它们没有被其他程序集引用)。

如果字符串在多个程序集中重复使用,请考虑将它们指定为static readonly,因为这将允许其他程序集加载新版本的字符串而无需重新构建它们。对于这种情况,您甚至可以更进一步,仅使用 get 访问器指定一个公共静态属性,而该访问器又使用 private static readonly 字段。

【讨论】:

    猜你喜欢
    • 2011-08-27
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    相关资源
    最近更新 更多