18

我刚刚在我的 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

5 回答 5

42

如错误消息中所述,您在每行末尾缺少分号。

"foo" = "bar";

格式是否正确

于 2013-03-26T21:47:47.303 回答
3
"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";

这是正确的公式

于 2014-02-05T21:24:42.830 回答
1

由于在行尾使用 :(colon) 而不是 ;(semicolon) 也可能会出现此消息。请确保在每一行的末尾都有分号(;),并且也没有冒号(:)。

于 2013-12-23T19:47:53.687 回答
0

斯威夫特 4

确保 Localizable.strings 的所有应用程序文件的一个不超过一页只有一页

local.string 英文 "hi" = "hi";

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

使用

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

extension String {
    var localizedLized: String {
        return NSLocalizedString(self, comment: "")
    }
}
于 2019-12-02T17:22:51.983 回答
0

在我的情况下,错误是由缺少引号引起的。

"CFBundleDisplayName" = myTestApp";
于 2021-09-29T15:43:22.510 回答