Ios 引用公共共享字符串的多个可本地化字符串

Ios 引用公共共享字符串的多个可本地化字符串,ios,Ios,在我的GUI中有几个地方使用了相同的字符串,但是为了让翻译人员和测试人员更容易参考,也为了允许将来字符串可能在不同的地方发生变化,我想在本地化文件中执行以下操作: "SHARED_DIALOG_TEXT" = "Shared in several places"; "DIALOG_A" = "SHARED_DIALOG_TEXT"; "DIALOG_B" = "SHARED_DIALOG_TEXT"; "DIALOG_C" = "SHARED_DIALOG_TEXT"; 显然,这是行不通的,我

在我的GUI中有几个地方使用了相同的字符串,但是为了让翻译人员和测试人员更容易参考,也为了允许将来字符串可能在不同的地方发生变化,我想在本地化文件中执行以下操作:

"SHARED_DIALOG_TEXT" = "Shared in several places";
"DIALOG_A" = "SHARED_DIALOG_TEXT";
"DIALOG_B" = "SHARED_DIALOG_TEXT";
"DIALOG_C" = "SHARED_DIALOG_TEXT";
显然,这是行不通的,我用它来说明我想做什么。
资源是否可能引用以前的资源?

您可以这样做:

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

NSString *string = [NSString stringWithFormat:NSLocalizedString(@"DIALOG_C"), NSLocalizedString(@"SHARED_DIALOG_TEXT")];

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

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

  • 要本地化的字符串
  • 表名,它只是一个文件名
  • 注释,就像在
    NSLocalizedString()中一样
  • 如果使用表名,则可以为共享字符串创建另一个字符串文件,或为以后的更改创建单独的字符串文件,例如,如果我使用
    NSLocalizedStringFromTable(@“字符串”,“SharedStrings”,“comment”)SharedStrings.strings
    文件,它将使用该文件

    然后,如果您稍后重写翻译,只需在需要时为重写使用不同的“表”文件即可<代码>NSLocalizedStringFromTable(@“字符串”、“新覆盖”、“注释”)


    祝你的项目好运

    谢谢,但如果对话框C文本要更改,这将意味着代码更改,而不仅仅是资源文件更改。是否有任何资源文件专用解决方案?