我已经浏览了很多关于本地化的MSDN,但我仍然想知道如何组织我的resx文件。
我经常遇到具有多个具有相同值的密钥的resx文件,这对我来说似乎是错误的。通常,当每个屏幕/用户控件显示相同文本时有不同的键时会发生这种情况。在这种情况下,resx文件如下所示:
ScreenXXX_ControlXXX_DisableButtonText = Disable
ScreenYYY_ControlYYY_DisableButtonText = Disable
...
有些人可能会争辩说,这会让您在不影响对方的情况下更改特定文本而带来灵活性,但显然,在所有屏幕上更改“禁用”将会很痛苦。我觉得拥有一个能够表达“禁用功能”概念并且由多个控件共享的唯一键更有意义。类似的东西:
DisableFeatureButtonText = Disable
所以问题是:
由于
答案 0 :(得分:1)
您可以将全局Default.resx文件用于您在多个位置使用的所有资源。你想要放在那里取决于你。我认为没有一般规则。但是保存,禁用等等肯定值得投入使用。
答案 1 :(得分:1)
我面临的情况与你的情况非常相似,因为我有多个屏幕,在很多情况下,控制状态,文本等在屏幕上都是重复的。最初,我只是按屏幕分割resx
文件并具有重复的键/值对,但是当你真正考虑它时,它们今天是相同的,但这并不意味着一个键/价值对可能意味着未来两件事。无论如何,这就是我要做的事情:
我会有一个通用的resx文件,其中包含所有屏幕共有的键等。 然后我会有一个屏幕独有的resx文件,但这些resx文件也可以包含公共resx中的键,然后你可以有一个方法来检查它们是否是特定resx中的值,如果它找到它,它使用它,否则,它使用公共resx文件中的值。
我真的不认为有一个约定,我通常用命名变量的方式命名我的键。
我认为拥有重复密钥是可以的,如果将来这些密钥可能意味着其他东西或需要具有不同的值。
我喜欢考虑像数据库表这样的resx文件。您可以将resx键/值填充到一个表中并拥有一个长的denormonalized表,或者您可以将resx键/值拆分为更小的表。我更喜欢后者,因为它可以在将来提供更好的可扩展性。