善用 Swift 的字串擷取功能簡化 I18n 流程

撰文原由 在 威注音 2.1.0 SP1 的更新日誌 下看到了這麼一段話: Interface Builder 給每個標籤的命名都是隨機的,手動改起來又低效又容易改壞,對多語言本地化而言簡直是天災。 事實上在 WWDC21 中,Apple 就為 Xcode 推出了一項可以解決這項痛點的新功能:「使用編譯器擷取字串」。與早期透過從 Swift 原始碼拉取可翻譯字串,經常漏掉一些字串的方式不同——這個功能會先編譯原始碼,然後從編譯出的檔案中判斷可以翻譯的字串。 啟用功能 這項功能在新專案是預設啟用的,但舊專案可以 opt-in:點開專案設定,進入 “Build Settings”,展開所有功能(All),尋找 “Swift” 然後找到 Localization 的 “Use Compiler to Extract Swift Strings”,將其設定為 Yes 即可。 匯出字串 開啟之後的國際化與本地化方式,跟先前會不太一樣。以往需要手動改 strings 檔案,現在可以先到 “Product” > “Export Localization…” 匯出編譯器擷取出的所有字串: 接下來指定匯出的路徑,然後等待 Swift 完成編譯並擷取字串。若是從舊專案 opt-in,擷取字串的過程中可能會拋出一些錯誤,這個時候就得修正(如果只是警告的話也可以忽略): 翻譯流程 接下來就可以進入選擇好的資料夾,使用 Xcode 點開對應語系的 xcloc 檔案: ...

August 27, 2022 · pan93412

淺談翻譯弊病 (1)

「Install this software to your computer.」 這句話你會怎麼翻?一些保守翻譯者會翻成「安裝此軟體至您的電腦。」,但我覺得這樣翻不好,為什麼? 翻譯是給人看的 拘泥於逐字翻譯,會使翻譯不近人情。就以我上面提的翻譯來說,你平常說話並不會說成這樣,即便是書寫,也不會這樣寫。 這就算是典型的翻譯腔 - 你沒翻錯,但很怪。一個優秀的翻譯,不會讓人覺得突兀,就像是母語使用者說的。 就我自己的翻譯習慣,我會先念一遍翻譯,並尋找奇怪的地方。就以開頭那句,我會翻成「將軟體安裝進您的電腦」,更好讀但又不會太口語化。 如果有興趣可以看看這篇翻譯腔相關的文章。 翻譯一點都不簡單 也因此,要翻出一個好的翻譯其實不是個簡單的事情。如果翻譯只會逐字翻,那我大可可以直接用 Google 翻譯或 DeepL 之類的服務。翻譯更需要的是理解後,在不破壞原意的情況下的重新表達。這需要的不僅僅是翻譯員的語文能力,以及翻譯的經驗。

October 16, 2020 · pan93412