3 步驟輸出 Android 專案的多國語言字串成試算表

直接擁有一個昨天就應該內建在 IDE 裡頭的功能

Ray Yuan Liou
4 min readAug 22, 2019
「OMG 好快⋯⋯ 已經進入下班模式?」

在 Android 專案處理多國語系只要遵循 strings.xml 語言設定,基本上都能快速無痛的搭建起來。 Android Studio 在 2.X 時期新增了 Translations Editor,方便開發者在一個分頁之中,全攬所有的語言設定,處理起多語言更加地有效率。
Translations Editor 提供一個類似於試算表軟體的介面,編輯特定文句的翻譯很方便。但不適合團隊中非開發人員使用,畢竟請非開發人員安裝 Android Studio 再怎麼說也怪怪的。最近公司專案就遇到類似的問題,為了加入更多的語言,需要與更多翻譯人員合作開發專案。

Translations Editor 省下開發人員許多心力

當下第一個念頭是將語言檔案製作成試算表,做成共同編輯文件。
在網路上找解決方案一段時間,發現大部分的作法都已經失效 ,只剩下在 Translations Editor 之中按 Ctrl + C 複製後貼到試算表上。在 800 多行的 xml 檔案之中做手工藝活,恐怕會影響身心。

自動化轉換

android-lang-tool 就是為了解決問題而出現的—— 自動將每個語言的 strings.xml 設定整合並產生試算表檔案的工具。
在使用之前,請先確認你的電腦已經安裝了 Java。☕️

興高采烈地進去 GitHub Repo 發現,要自己編譯⋯⋯
快別管那麼多了,我編譯好了,點擊這裡下載。🚀

  1. 先將下載的(或你編譯的) langtool.jar 放置於 Android 專案的目錄
  2. 開啟終端機 (Terminal),切換至該專案目錄
  3. 下指令 (讓他可以存取到專案的 res資料夾)
$java -jar langtool.jar -e ./app/src/main
處理的過程中,android-lang-tool 會提醒沒有翻譯的 key

4. 會在相同目錄下產生一個 xls 檔案

輸出結果 sample
缺少的翻譯會自動填上底色

結果看起來明確清晰,各個 Key 依照不同的翻譯一字排開。android-lang-tool 也會將翻譯字串之中缺少翻譯的 key 用紅色底色標記,而 plurals、array 等特殊的翻譯會留下註解。

自行編譯 lang-tool.jar

如果想要自行編譯 lang-tool.jar ,可以自行從 android-lang-tool repo clone 下專案。
編譯之前需要安裝 Maven,在 macOS 系統上可以透過 homebrew 安裝。

$brew install maven

Maven 安裝好後,接著切換至剛剛 clone 下來的 android-lang-tool 目錄。
輸入以下指令

$mvn package

如果編譯成功,編譯後的 jar 檔案會在

lang-tool/target/langtool-1.0-SNAPSHOT-jar-with-dependencies.jar

使用這個 jar 檔案,即可照著第一段的流程,輸出多國語言字串試算表。

疑難排解

Q. 編譯過程之中出現:source option 5 is no longer supported. use 7 or later. 並且編譯失敗該怎麼做?

A. 你目前用的 Java 版本太新了,試著降至 Java 8 再編譯一次。

--

--