我正在尝试包括我的应用程序的国际化,并且仅出于测试目的,我在文件 Localizable.string 中添加了一个简单的行。
这是我的整个文件:
"测试语言环境" = "测试语言环境"
当我尝试运行我的应用程序时,我收到了这个错误:
Localizable.strings:0:错误:验证失败:数据已损坏,无法读取。
我尝试将“文本编码”更改为 UTF-16,但没有解决任何问题。
我正在尝试包括我的应用程序的国际化,并且仅出于测试目的,我在文件 Localizable.string 中添加了一个简单的行。
这是我的整个文件:
"测试语言环境" = "测试语言环境"
当我尝试运行我的应用程序时,我收到了这个错误:
Localizable.strings:0:错误:验证失败:数据已损坏,无法读取。
我尝试将“文本编码”更改为 UTF-16,但没有解决任何问题。
如果这是您的整个文件,请在末尾添加分号。将其更改为:
"测试语言环境" = "测试语言环境" ;
要获取更多详细信息,您可以从命令行使用 Property List 实用程序:
plutil -lint <your_strings_file>.strings
该 -lint
开关用于检查语法。如果您遇到错误,您将获得行号和更多信息,以及如何解决问题的更好指导。
您可以使用此脚本验证您的 Localizable.strings 文件:
就我而言,它是这样的:
/* 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 ";
(注意第一行末尾的' = ; ' 而不是 ' = ')
在我的例子中,它是字符串中的括号——我需要在 \" 之前添加斜杠。
我制作了一个小脚本来使用 plutil 检查整个文件夹 .strings 文件。