0

我已经阅读了很多关于本地化的 MSDN,但我仍然想知道我应该如何组织我的 resx 文件。

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

ScreenXXX_ControlXXX_DisableButtonText = Disable
ScreenYYY_ControlYYY_DisableButtonText = Disable
...

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

DisableFeatureButtonText = Disable

所以问题是:

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

谢谢

4

2 回答 2

1

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

于 2013-10-13T15:36:19.977 回答
1

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

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

我真的不认为有一个约定,我通常用我命名变量的方式命名我的键。

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

我喜欢将 resx 文件想象成数据库表。您可以将 resx 键/值填充到一个表中并拥有一个长的非规范化表,或者您可以将 resx 键/值拆分为较小的表。我更喜欢后者,因为它可以在未来提供更好的可扩展性。

于 2013-10-13T20:19:41.077 回答