多个可本地化的字符串,指向公共共享字符串

时间:2013-05-30 18:56:49

标签: ios

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

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

显然这不起作用,我将其用于说明我想做的事情。 资源是否可能引用较早的资源?

2 个答案:

答案 0 :(得分: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")];

答案 1 :(得分:0)

有一种方法可以帮助您。这不是100%纯粹的资源,但它是你最接近你想要做的事情。

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

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

    如果您使用表名,那么您可以为共享字符串创建另一个字符串文件,或者稍后对其进行单独更改,例如:如果我NSLocalizedStringFromTable(@"string", @"SharedStrings", @"comment");然后将我的字符串放在SharedStrings.strings文件中,它将使用它。

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

    祝你好运!