Localizable.strings导致plist解析错误

时间:2013-03-26 21:46:09

标签: ios objective-c localization nsstring plist

我刚刚在我的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()提供翻译后的字符串。

4 个答案:

答案 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)

雨燕4

确保适用于Localizable.strings的所有Apps文件都不会超过一页

local.string英语“ hi” =“ hi”;

local.string阿拉伯语“ hi” =“هاي”;

使用

并将此扩展程序放入您的应用程序

extension String {
    var localizedLized: String {
        return NSLocalizedString(self, comment: "")
    }
}