前言
首次接触iOS国际化,创建了Localizable.strings 文件之后,就开始在Localizable.strings(English)中添加项目内容。由于项目庞大,前期没有做国际化处理,导致现在很头疼。
等到兴冲冲都添加完了,编译报出如下错误:
Users/sun/Desktop/ProjectName/Resource/en.lproj/Localizable.strings:-1: read failed: Couldn't parse property list because the input data was in an invalid format
填坑
-
可能的❌1
首先检查一下代码格式,是否是这样的。
正确的文本格式如下:
而不是这样:
可能的❌2
Google 或者 Baidu 检索前辈经验,几乎全部提到的是如下解决方案:
某行末尾缺少英文分号 ";"
然后开始慢慢检查道路。
所谓懒人有懒人的方法,800多行的文字眼睛容易瞎。
那么一个快速的方法迅速萌生,在Localizable.strings(English)文件中用Command+F
进行快捷检索";
,这样符合条件的都会有阴影,之后一行行的瞄下来,很容易发现没有添加;
的位置。嗯,暗自欣喜,有点飘~
- 可能的❌3
空格缩进的格式问题
例如借图:
我是直接从Word文档中复制直接粘贴到string文件的,不知道哪个步骤多出了空格导致了这种错误。
我看有些教程说Localizable.strings 文件每一行使用 Tab 缩进,我测试了一下,不使用 Tab 缩进也是可以的,只要保持每一行格式一致即可。