iOS開(kāi)發(fā)多語(yǔ)言,翻譯過(guò)后的文字很多行有些總是會(huì)有各種各樣的問(wèn)題。導(dǎo)致運(yùn)行失敗,如何能快速找出出錯(cuò)的位置呢。
運(yùn)行報(bào)錯(cuò),這是Localizable.strings文件里內(nèi)容格式不正確
validation failed: Couldn't parse property list because the input data was in an invalid format
有兩種快速查找錯(cuò)誤的方法:
第一種:plutil工具
1.終端進(jìn)入 Localizable.strings 所在的目錄,因?yàn)槭侵С侄鄧?guó)語(yǔ)言所以會(huì)有多個(gè)Localizable.strings文件,比如在en.lproj/目錄下或者zh-Hans.lproj目錄下。
2.輸入plutil -lint Localizable.strings
如果文檔格式正確會(huì)出現(xiàn)
Localizable.strings: OK
否則出錯(cuò)一般會(huì)出現(xiàn)
tcdeMacBook-Pro en.lproj % plutil Localizable.strings Localizable.strings: Unexpected character " at line 1
這種方法不太好用,他總是報(bào)這個(gè)錯(cuò) 其實(shí)錯(cuò)誤是在其它行。推薦第二種方法
第二種:pl
1.和上面一樣,先進(jìn)入對(duì)應(yīng)目錄下
2.輸入pl < Localizable.strings
會(huì)定位到準(zhǔn)確的某一行
tc@tcdeMacBook-Pro en.lproj % pl < Localizable.strings 2022-06-02 17:24:57.577 pl[10493:269738] *** Exception parsing ASCII property list: NSParseErrorException Error Domain=NSCocoaErrorDomain Code=3840 "Unexpected character " at line 1" UserInfo={NSDebugDescription=Unexpected character " at line 1, kCFPropertyListOldStyleParsingError=Error Domain=NSCocoaErrorDomain Code=3840 "Expected ';' or '=' after key at line 58" UserInfo={NSDebugDescription=Expected ';' or '=' after key at line 58}}
我的就是第58行的=寫(xiě)成+了 害的我找了半天。??
順便說(shuō)一句正確格式是這樣式的
"產(chǎn)品營(yíng)銷(xiāo)" = "Product Marketing";
"婚慶" = "Wedding";
"邀請(qǐng)函" = "Invitation Letter";
"節(jié)日祝福" = "Holiday Wishes";
"生日祝福" = "Birthday Wishes";
"品牌宣傳" = "Brand Promotion";
不要因?yàn)槭莝wift就不帶分號(hào),記錄一下自己遇到的問(wèn)題