我刚刚在我的Xcode项目中本地化了Localizable.strings文件,以便将我的应用程序本地化为几种不同的语言。但是,在以标准“key = value”格式编辑每个文件后,我收到以下解析错误,该错误未指定文件,因此很难找到它所指的内容。
CFPropertyListCreateFromXMLData():旧式plist解析器:第10行的字典中缺少分号。解析将被放弃。打破_CFPropertyListMissingSemicolon进行调试。
我查看了每个* .strings文件,特别是第10行,我发现没有任何兴趣或问题导致问题。请你告诉我我哪里出错了。
以下是我项目中Localizable.strings文件的示例。所有其他文件都采用相同的格式。
"Enter URL" = "Voer adres in"
"Headers" = "Koppen"
"Key" = "sleutel"
"Value" = "waarde"
"Parameters" = "Parameters"
"Tap to add a new line" = "Tik om een nieuwe lijn toe te voegen"
"Perform request" = "Verzoek Uitvoeren"
"Response" = "Antwoord"
"Received Headers" = "Ontvangen Koppen"
"Error" = "Fout"
"Loading" = "Verzoek aan het versturen"
然后我使用NSLocalizedString()
提供翻译后的字符串。
答案 0 :(得分:29)
如错误消息中所述,您在每行末尾都缺少分号。
"foo" = "bar";
格式正确
答案 1 :(得分:1)
此消息也可能是由于在行尾使用:(冒号)而不是;(分号)。请确保在每一行都有分号(;),也没有冒号(:)。
答案 2 :(得分:1)
"Enter URL" = "Voer adres in";
"Headers" = "Koppen";
"Key" = "sleutel";
"Value" = "waarde";
"Parameters" = "Parameters";
"Tap to add a new line" = "Tik om een nieuwe lijn toe te voegen";
"Perform request" = "Verzoek Uitvoeren";
"Response" = "Antwoord";
"Received Headers" = "Ontvangen Koppen";
"Error" = "Fout";
"Loading" = "Verzoek aan het versturen";
这是正确的公式
答案 3 :(得分:0)
确保适用于Localizable.strings的所有Apps文件都不会超过一页
并将此扩展程序放入您的应用程序
extension String {
var localizedLized: String {
return NSLocalizedString(self, comment: "")
}
}