resx 文件中的重复值:组织资源文件条目的最佳方法是什么

本文关键字:源文件 资源 最佳 是什么 方法 文件 resx | 更新日期: 2023-09-27 18:35:03

我已经了解了MSDN关于本地化的大部分内容,但我仍然想知道应该如何组织我的resx文件。

我通常遇到具有多个具有相同值的键的 resx 文件,这对我来说似乎是错误的。通常,当每个屏幕/用户控件显示相同文本的不同键时,会发生这种情况。在这种情况下,resx 文件如下所示:

ScreenXXX_ControlXXX_DisableButtonText = Disable
ScreenYYY_ControlYYY_DisableButtonText = Disable
...

有些人可能会争辩说,这带来了灵活性,让您在不影响其他文本的情况下更改特定文本,但显然,在所有屏幕上更改"禁用"将是一种痛苦。我觉得拥有一个表达"禁用功能"概念并由多个控件共享的唯一键更有意义。像这样:

DisableFeatureButtonText = Disable

所以问题是:

  • 创建资源条目的推荐方法是什么?我应该创建一个"上下文"(= 与其在 UI 中的位置相关(还是"语义"的条目?
  • 在哪些情况下,resx 文件中有重复的值被认为是正常的?
  • 更一般地说,是否有关于这些问题的公约或准则?

谢谢

resx 文件中的重复值:组织资源文件条目的最佳方法是什么

我面临着与您非常相似的情况,因为我有多个屏幕,并且在许多情况下,控件状态,文本等在屏幕上重复。 最初,我打算按屏幕拆分resx文件并具有重复的键/值对,但是当您真正考虑它时,它们今天是相同的,但这并不意味着一个键/值对将来可能意味着两件不同的事情。 无论如何,这是我会做的:

我会有一个通用的 resx 文件,其中包含所有屏幕等通用的键。然后我会有一个屏幕独有的 resx 文件,但这些 resx 文件也可能包含公共 resx 中的键,然后你可以有一个方法来检查特定 resx 中是否有值,如果它找到它,它会使用它,否则, 它使用公共 resx 文件中的值。

真的不认为有约定,我通常以与命名变量相同的方式命名我的键。

我认为如果将来这些键可能意味着其他东西或需要具有不同的值,那么拥有重复的键是可以的。

我喜欢将resx文件视为数据库表。您可以将 resx 键/值填充到一个表中并拥有一个长去规范化表,也可以将 resx 键/值拆分为较小的表。我更喜欢后者,因为它允许将来更好的可扩展性。

您可以将全局 Default.resx 文件用于在多个位置使用的所有资源。你想放什么取决于你。我认为没有一般规则。但是像保存、禁用等东西肯定值得放在那里。