0

我的 GUI 中有几个地方使用了相同的字符串,但是为了让翻译人员和测试人员更容易参考,并且还考虑到将来字符串可能会在不同的地方发生变化,我想做类似的事情本地化文件中的以下内容:

"SHARED_DIALOG_TEXT" = "Shared in several places";
"DIALOG_A" = "SHARED_DIALOG_TEXT";
"DIALOG_B" = "SHARED_DIALOG_TEXT";
"DIALOG_C" = "SHARED_DIALOG_TEXT";

显然这行不通,我用它来说明我想做的事情。引用较早资源的资源是否可能?

4

2 回答 2

0

有一种方法可以为您工作。它不是 100% 基于纯资源的,但它是您最接近您想要做的事情。

使用本地化宏NSLocalizedStringFromTable()。这需要三个参数:

  1. 要本地化的字符串
  2. 表名,只是一个文件名
  3. 评论,就像在NSLocalizedString()

如果您使用表名,那么您可以使用另一个字符串文件来共享字符串或单独的字符串文件以供以后更改,例如,如果我这样做了,NSLocalizedStringFromTable(@"string", @"SharedStrings", @"comment");那么将我的字符串放在一个SharedStrings.strings文件中,它将使用它。

然后,如果您稍后覆盖翻译,只需在需要时使用不同的“表”文件进行覆盖。NSLocalizedStringFromTable(@"string", @"NewOverride", @"comment");

祝你的项目好运!

于 2013-05-30T19:10:41.603 回答
0

你可以这样做:

"SHARED_DIALOG_TEXT" = "Shared in several places";
"DIALOG_A" = "%@";
"DIALOG_B" = "%@";
"DIALOG_C" = "%@";

NSString *string = [NSString stringWithFormat:NSLocalizedString(@"DIALOG_C"), NSLocalizedString(@"SHARED_DIALOG_TEXT")];
于 2013-05-30T19:02:10.147 回答