29

我正在尝试包括我的应用程序的国际化,并且仅出于测试目的,我在文件 Localizable.string 中添加了一个简单的行。

这是我的整个文件:

"测试语言环境" = "测试语言环境"

当我尝试运行我的应用程序时,我收到了这个错误:

Localizable.strings:0:错误:验证失败:数据已损坏,无法读取。

我尝试将“文本编码”更改为 UTF-16,但没有解决任何问题。

4

6 回答 6

57

如果这是您的整个文件,请在末尾添加分号。将其更改为:

"测试语言环境" = "测试语言环境" ;

于 2012-04-16T20:51:51.830 回答
44

要获取更多详细信息,您可以从命令行使用 Property List 实用程序:

plutil -lint <your_strings_file>.strings

-lint开关用于检查语法。如果您遇到错误,您将获得行号和更多信息,以及如何解决问题的更好指导。

于 2015-09-04T10:51:30.330 回答
7

您可以使用此脚本验证您的 Localizable.strings 文件:

https://github.com/dcordero/Rubustrings

于 2014-10-05T01:20:13.600 回答
4

就我而言,它是这样的:

/* Comment for Very Long Sentence */
"Very Long Sentence Very Long Sentence Very Long Sentence Very Long Sentence " =;
"Very Long Sentence Very Long Sentence Very Long Sentence Very Long Sentence ";

(注意第一行末尾的' = ; ' 而不是 ' = ')

于 2012-07-17T11:19:21.937 回答
1

在我的例子中,它是字符串中的括号——我需要在 \" 之前添加斜杠。

于 2013-09-26T16:43:20.490 回答
0

我制作了一个小脚本来使用 plutil 检查整个文件夹 .strings 文件。

https://github.com/CarlesEstevadeordal/check_strings

于 2015-10-05T16:59:16.957 回答