2013-07-08 38 views
0

我有一個需要本地化的HTML字符串;唯一的問題是它有這樣的參數:如何顯示帶參數的HTML本地化字符串?

NSString *htmlString = [NSString stringWithFormat:NSLocalizedString(@"<html><head>" 
         "<style type=\"text/css\"> body {font-family: \"Verdana\"; font-size: 12;} </style></head>" 
         "<body><h2>%@ %@</h2><p>email: %@<p>phone: %@<p>services: %@<p><img src=\"%@\"/>" 
         "</body></html>",nil), 
         client.aClientFirstName, 
         client.aClientLastName, 
         client.aClientEMail, 
         client.aClientPrimaryPhone, 
         appt.aServices, 
         fileURL]; 

問題是「鍵」從不包含相同的數據,因此永遠不會匹配。這在使用'en'時很好(因爲它默認爲無法找到匹配項),但所有其他語言在UIPopover中顯示時都會失敗。問題是:有沒有一種方法可以對此進行編碼,因此無論「客戶端」信息如何,它都會針對每個本地化進行正確顯示?

回答

1

在您的Localizable.strings文件,你應該創建一個單獨的固定鍵,把HTML模板包含的參數佔位符的值,例如:

"HTML_STRING" = "<html><head><style type=\"text/css\"> body {font-family: \"Verdana\"; font-size: 12;} </style></head><body><h2>%@ %@</h2><p>email: %@<p>phone: %@<p>services: %@<p><img src=\"%@\"/></body></html>"; 

,然後使用的關鍵你的代碼,例如:

NSString *htmlString = [NSString stringWithFormat:NSLocalizedString(@"HTML_STRING",nil), 
        client.aClientFirstName, 
        client.aClientLastName, 
        client.aClientEMail, 
        client.aClientPrimaryPhone, 
        appt.aServices, 
        fileURL]; 

這裏你的htmlString變量會給你帶有參數的字符串的本地化版本。

+0

非常感謝你......像冠軍!那是我沒有想到的一件事... – SpokaneDude