覆盖程序集中特定资源文件的中性语言

时间:2010-02-20 14:42:04

标签: .net localization assemblies resources

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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