沒有一點點防備的開端
某年某月的某一天铸敏,翻譯返回了多語言 xliff 文件之后带污,我就像往常一樣稀疏平常地導(dǎo)入到 Xcode 中闰蛔,編譯...痕钢,就在起身準(zhǔn)備去茶水間倒水的時候,馬德序六,什毛任连,編譯報錯了,趕緊放下手中的保溫杯打開日志看了下編譯報錯的原因例诀。
WTF
What随抠?這是什么鬼?不就是正常的多語言文案導(dǎo)入嘛繁涂?我的操作沒錯呀 ...
陷入僵菊
第一步:確定是否是導(dǎo)入流程中的操作出錯了
這對多語言文案導(dǎo)入工程師來說這當(dāng)然是不可能的暮刃,在 Git 中 Discard 掉所有的 Changes,并且爆土,和組內(nèi)其它 iOS 開發(fā)小伙伴們都確認(rèn)過眼神椭懊,是對的操作流程,之后,我又重新導(dǎo)入了一遍氧猬,But, Xcode build failed again ...
說明不是導(dǎo)入流程出錯
第二步:查
請教了公司諸多的大牛背犯,他們紛紛表示沒有碰到過如此神奇的畫面,而后我又轉(zhuǎn)戰(zhàn) Google盅抚,找到了類似的情況漠魏, .strings 文件中某一行分號忘記寫了的文章,于是打開了報錯的該 .strings 文件妄均,用搜索分號一行一行地用我的鈦合金寫輪眼掃描過去 ...
但是發(fā)現(xiàn)分號也是一行不落的柱锹。
第三步:排除法
排除了以上所有的問題產(chǎn)生可能,我仔細(xì)地再思考了這個問題的本質(zhì)之后丰包,我發(fā)現(xiàn)了以下很有趣的畫面:
- 別種語言的 .strings 文件沒問題禁熏,就英文的翻譯有問題。
- 把英文 .strings 文件里的內(nèi)容清空之后編譯是沒有問題的邑彪。
所以瞧毙,可以得出的結(jié)論就是:問題出現(xiàn)在返回的英文譯文上。
所以我采用了最笨寄症、花費時間最長但是卻最有效的方法:排除法宙彪。
我一行一行譯文地注釋,我就不信了有巧,抓不著你 ...
I got you
释漆。。篮迎。
無 Fuck 可說男图。。柑潦。
返回的譯文中包含了雙引號,雙引號中出現(xiàn)未轉(zhuǎn)譯的雙引號就會導(dǎo)致編譯報錯峻凫。
解決方案
1, 把雙引號中的 " 全部使用 \" 替換渗鬼。
2, 和負(fù)責(zé)多語言文案翻譯的同學(xué)同步此情況,之后如果譯文中包含雙引號記得在前面加個反斜杠荧琼,返回譯文之前自己先多 Check 下譬胎。
3, 同步給公司內(nèi)其它 iOS 開發(fā)小伙伴這個奇葩問題的前世今生。
4, 寫成 MarkDown 分享給更多 iOS 同行命锄。
終于編譯成功了堰乔,科科~
THE END
謝謝收看!脐恩!