2013-05-30 61 views
0

在我的GUI中,有幾個地方使用相同的字符串,但是爲了使翻譯人員和測試人員更容易參考,並且還考慮到將來字符串的可能性在不同的地方的變化,我想這樣做的本地化文件執行以下操作:引用共同共享字符串的多個可本地化字符串

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

顯然,這是行不通的,我使用它的想什麼,我做說明目的。 資源是否可能引用較早的資源?

回答

0

有一種方法可以做到這一點,可以爲你工作。這不是100%純粹的資源基礎,但它是最接近你想要做的。

使用本地化宏NSLocalizedStringFromTable()。這需要三個參數:

  1. 字符串如果使用表名本地化
  2. 表名,這僅僅是一個文件名
  3. 的評論,就像在NSLocalizedString()

那麼你可以有另一個字符串文件用於共享字符串或單獨的用於稍後的更改,例如如果我做NSLocalizedStringFromTable(@"string", @"SharedStrings", @"comment");然後把我的字符串在一個SharedStrings.strings文件它將使用它。

然後,如果稍後重寫翻譯,則在需要時使用不同的「表格」文件進行重寫。 NSLocalizedStringFromTable(@"string", @"NewOverride", @"comment");

好運與您的項目!

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")]; 
+0

謝謝,但是如果DIALOG_C文本發生改變,這將意味着代碼更改,而不僅僅是資源文件更改。有沒有資源文件的唯一解決方案? – Gruntcakes

+0

恐怕不是。 –