我有一個UILabel,其文本在故事板中設置爲「屬性」。當我生成Main.strings文件以翻譯成其他語言時,此標籤的文本不會出現。使用屬性字符串從故事板中定位UILabel
我試圖通過複製對象ID手動添加到Main.strings文件中的條目。我嘗試設置「text」屬性和「屬性文字」屬性,但是當我運行應用程序時,翻譯後的字符串不被使用。
那麼,如何將UILabel集合本地化爲故事板上的「歸因」?
我有一個UILabel,其文本在故事板中設置爲「屬性」。當我生成Main.strings文件以翻譯成其他語言時,此標籤的文本不會出現。使用屬性字符串從故事板中定位UILabel
我試圖通過複製對象ID手動添加到Main.strings文件中的條目。我嘗試設置「text」屬性和「屬性文字」屬性,但是當我運行應用程序時,翻譯後的字符串不被使用。
那麼,如何將UILabel集合本地化爲故事板上的「歸因」?
我最終用故事板和代碼的組合來解決這個問題,使用this answer作爲參考。
首先,我在故事板上使用的屬性字符串僅對整個字符串應用了1.5行距,因此在保留故事板標籤格式的代碼上設置文本更爲容易。
故事板包含一個UILabel,其文本屬性設置爲Attributed和1.5行高度倍數。
在我的視圖控制器代碼我有一個setupUI方法和該UILabel插座。
@interface MyClass()
@property (weak, nonatomic) IBOutlet UILabel *aLabel;
@end
@implementation MyClass
- (void)setupUI {
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithAttributedString:self.aLabel.attributedText];
[attributedString.mutableString setString:NSLocalizedString(@"This is the label text which should be localisable.", "")];
self.aLabel.attributedText = attributedString;
}
@end
與上面的代碼中,變量attributedString存儲所有格式上的腳本設置,所以當我改變attributedString文字我沒有重新設置格式。當然,當我執行「導出本地化」命令時,標籤文本出現在Localizable.strings中。
如果對於其內部的子字符串,其屬性字符串的格式不同,這種方法將無法正常工作。在這種情況下,格式化必須在代碼上手動設置(或使用由Jelly發表的評論中所提供的答案所建議的rtf文件)。
完美答案。謝謝。 – mtb
看看這個:http://stackoverflow.com/questions/14459860/localizing-attributed-uitextview-from-storyboard – Jelly
嗨果凍!有沒有從故事板做到這一點,而不必使用代碼加載標籤的文本? –
不幸的是我不認爲這是可能的。你必須從代碼中完成。 – Jelly