我正在进行动态本地化。我从服务器端获取所有本地化字符串。在响应的基础上我创建动态的localization.string文件。例如:
"By Venue"="Par Lieu";
"Invitee Name"="Invité Nom";
"Email suffix:"="Email suffixe:";
"METRICS"="MESURES";
"MD - Moldova"="MD - Moldavie";
"Name:"="Nom:";
"Approval Manager"="Gestionnaire de Approbation";
"Last login on:"="Dernière connexion sur:";
但是在此响应中还包含一些HTML标记。例如:
"<b ljsid-1="">Note:</b> You can send this email manually once every 24 hours."="<b ljsid-1="">Remarque:</b> Vous pouvez envoyer cet e-mail manuellement une fois toutes les 24 heures.";
如果我从动态创建的本地化文件中删除此标记,那么我可以进行loclaization。否则我无法进行定位。
所以请建议我,如何处理这个HTML标签。提前致谢
答案 0 :(得分:0)
要从HTML中获取文本,您可以在项目中使用Kanna。在以下代码段中,test.txt
只是一个以HTML字符串为源的文件。
override func viewDidLoad() {
super.viewDidLoad()
do {
let path = NSBundle.mainBundle().pathForResource("test", ofType: "txt")
let str = try String(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
// Use Kanna framework to get HTML text
if let doc = HTML(html: str, encoding: NSUTF8StringEncoding) {
let text = doc.text
print(text)
let file = "/output.txt"
if let dirs : [String] = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) {
var path = dirs[0] //documents directory
path.appendContentsOf(file)
//writing
try text!.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding);
//reading
let text2 = try String(contentsOfFile: path, encoding: NSUTF8StringEncoding)
print(text2)
}
}
}
catch let error as NSError {
print(error.localizedDescription)
}
}
输出结果为:
Optional("\"Note: You can send this email manually once every 24 hours.\"=\"Remarque: Vous pouvez envoyer cet e-mail manuellement une fois toutes les 24 heures.\"")
"Note: You can send this email manually once every 24 hours."="Remarque: Vous pouvez envoyer cet e-mail manuellement une fois toutes les 24 heures."