從國際化開始

有個專案,並想要將其翻譯為幾種語言?這個指南會幫您進行。幾種典型的情況展示出來,而多數範例是通用的,並且也可以用於其它情景。

翻譯任何軟體前,應先瞭解世界各地的語言差異很大,不應只依自身經驗做出假設。對多數語言而言,將翻譯片段串接成句子會顯得不自然。也必須妥善處理複數形式,因為許多語言的規則相當複雜,所採用的國際化框架應支援這些規則。

最後,有時需要為待翻譯字串提供情境。假設譯者收到 Sun 這個字串;沒有情境時,多數人會翻成離我們最近的恆星,但它實際上也可能是 Sunday 的縮寫。

選擇國際化框架

選擇您的平台上任何標準化的,嘗試通過建立自己的框架來處理在地化,來避免重新發明輪子。 Weblate 支援大多數廣泛使用的框架,更多資訊請參閱 在地化檔案格式 (特別是 翻譯類型功能 )。

我們對一些平台的個人建議在下面的表格中。這基於我們的經驗,但這無法覆寫所有的使用情況,因此做選擇時總是要考慮您的環境。

一些格式更具體的工作流程在後面的章節中描述:

教導開發者正確理解國際化

軟體國際化不只是讓字串可翻譯,也要讓整套軟體對其他國家的使用者而言自然易用。這還包括日期與數字格式、貨幣顯示,以及依正確方向輸入文字等。多數軟體框架已妥善支援這些功能,請遵循其相關說明。

字串翻譯也可能不是一項簡單的任務,在面對標題或按鈕標籤等短字串時尤其如此。不同語言有不同規則,不能合理地預期同一字串永遠使用相同翻譯。許多情況下,翻譯方式並不明確,甚至難以判斷字詞是動詞還是名詞。

所有開發者都應理解這一點,並為不同使用範圍的字串提供唯一辨識。例如,表示「沒有使用者」的 None,可能與表示「沒有項目」的 None 採用不同翻譯。請使用不同的鍵或情境,協助譯者區分這些詞彙。也可以在 Weblate 提供 螢幕擷圖和視覺化情境解釋 等額外情境。

技術面只是工作的一部分。譯者也會注意專案圍繞字串、發行與溝通所採用的工作流程。下列做法可讓協作順利許多:

  • 回覆譯者的問題與留言,並確認對外公布的聯絡管道確實有人查看。

  • 避免不必要地反覆變更來源字串。若沒有使用者可見的理由,改寫或取代現有字串只會增加可避免的翻譯工作。

  • 提供足夠情境,讓譯者理解簡短或含糊的字串。避免以片段串接句子;請使用可重新排序的預留位置,並採用內建的複數形式處理。

  • 定期發佈翻譯,避免完成的成果長期留在 Weblate 而未獲使用。

  • 主動說明工作流程或政策變更,並確保小型語言團隊的貢獻要求切合實際。

  • 如果一個專案不再被維護,請在翻譯流程中反映出這一點,而不是無限期開放元件翻譯。

Weblate 可以對這些問題中的一些提供幫助。尤其是 Weblate 的定期自動提交讓翻譯過程在原始碼歷史記錄中可見並降低已完成的工作在版本釋出前被遺忘的風險。自動化選項見 持續在地化

也參考