我寫這篇文章,因爲這個問題是讓我瘋了。
我有同樣的問題,嘗試打印的UILabel使用NSLocalizedString與參數相同的文本(左像波斯右)。 我的代碼如下所示:
NSLocalizedString參數在右到左的語言(如波斯語)
label.text = [NSString stringWithFormat:NSLocalizedString(@"The trick belongs to %@",nil),user];
在我的字符串文件中的波斯語我嘗試使用這個
"The trick belongs to %@" = " %@ میز را ترک کرد";
"The trick belongs to %@" = "%@ برنده کارت ها شد";
"The trick belongs to %@" = "@% برنده کارت ها شد";
"The trick belongs to %@" = "برنده کارت ها شد @%";
"The trick belongs to %@" = "برنده کارت ها شد %@";
而這一切類型的表單總是打印:
「 Mariaبرندهکارتهاشد「但必須顯示像」برندهکار تهاشد瑪麗亞」
提前感謝
就像一個點,你總是可以做這樣的事情'[的NSString stringWithFormat:@ 「%@%@」,NSLocalizedString(@ 「訣竅屬於」 無),用戶]' - 只要'用戶'將始終在字符串的末尾。 – Doc
@Doc - 在Yoda中不起作用。 –
您需要確保「%」和「@」字符按照NSString字符順序(由「characterAtIndex」提取)按順序出現,而不是按從右到左的文本出現的順序。而且你需要小心以確保這些值不會在你可能做的任何字符集轉換中出現亂碼。 (我懷疑你的問題的一部分可能是你沒有正確地重建字符串文件,每個上述審判編輯。) –