Helm 文件本地化

本指南說明如何將 Helm 文件本地化。

開始使用

翻譯的貢獻流程與文件的貢獻流程相同。翻譯透過 拉取請求 提供給 helm-www git 儲存庫,拉取請求由管理網站的團隊審查。

雙字母語言代碼

文件依據語言代碼的 ISO 639-1 標準 進行組織。例如,韓文的雙字母代碼是 ko

在內容和設定中,您會發現正在使用的語言代碼。以下是 3 個範例

  • content 目錄中,語言代碼是子目錄,每種語言的本地化內容都在每個目錄中。主要是在每個語言代碼目錄的 docs 子目錄中。
  • i18n 目錄包含每種語言的設定檔,其中包含網站上使用的片語。檔案名稱的模式為 [LANG].toml,其中 [LANG] 是雙字母語言代碼。
  • 在頂層 config.toml 檔案中,有導覽和其他詳細資訊的設定,這些設定依據語言代碼進行組織。

英文的語言代碼為 en,是預設語言和翻譯來源。

Fork、分支、變更、拉取請求

要貢獻翻譯,請先在 GitHub 上 建立 helm-www 儲存庫 的分支。您將首先將變更提交到您的分支。

根據預設,您的分支將設定為在稱為 main 的預設分支上工作。請使用分支來開發您的變更並建立拉取請求。如果您不熟悉分支,可以在 GitHub 文件中閱讀相關資訊

建立分支後,進行變更以新增翻譯並將內容本地化為一種語言。

請注意,Helm 使用 開發人員原始碼認證。所有提交都需要簽名。進行提交時,您可以使用 -s--signoff 旗標來使用您設定的 Git 姓名和電子郵件地址在提交上簽名。更多詳細資訊可在 CONTRIBUTING.md 檔案中找到。

準備好後,使用翻譯建立 拉取請求 回 helm-www 儲存庫。

建立拉取請求後,其中一位維護人員將會審查它。有關該流程的詳細資訊,請參閱 CONTRIBUTING.md 檔案。

翻譯內容

本地化所有 Helm 內容是一項龐大的任務。可以先從小處著手。翻譯可以隨著時間推移而擴展。

開始使用新語言

開始使用新語言時,有一些最低限度的需求。這包括

  • 新增 content/[LANG]/docs 目錄,其中包含 _index.md 檔案。這是頂層文件登陸頁面。
  • i18n 目錄中建立 [LANG].toml 檔案。最初,您可以複製 en.toml 檔案作為起點。
  • 將語言區段新增到 config.toml 檔案,以公開新語言。現有的語言區段可以作為起點。

翻譯

翻譯後的內容需要位於 content/[LANG]/docs 目錄中。它應該與英文來源具有相同的 URL。例如,要將簡介翻譯成韓文,複製英文來源可能會很有用,例如

mkdir -p content/ko/docs/intro
cp content/en/docs/intro/install.md content/ko/docs/intro/install.md

然後可以將新檔案中的內容翻譯成其他語言。

請勿將未翻譯的英文檔案副本新增到 content/[LANG]/。網站上存在某種語言後,任何未翻譯的頁面都會自動重新導向至英文頁面。翻譯需要時間,您始終希望翻譯最新版本的文件,而不是過時的版本。

請確保您從標題區段中刪除了所有 aliases 行。像 aliases: ["/docs/using_helm/"] 這樣的行不屬於翻譯。這些是舊連結的重新導向,而新頁面不存在這些連結。

請注意,翻譯工具可以協助您完成此過程。這包括機器產生的翻譯。機器產生的翻譯應在發布前由母語人士編輯或以其他方式審閱語法和含義。

Screen Shot 2020-05-11 at 11 24 22AM

網站全域 config.toml 檔案是設定語言導覽的位置。

要新增語言,請使用上面定義的 雙字母語言代碼 新增一組新的參數。範例

# Korean
[languages.ko]
title = "Helm"
description = "Helm - The Kubernetes Package Manager."
contentDir = "content/ko"
languageName = "한국어 Korean"
weight = 1

翻譯後的內容有時會包含指向僅存在於其他語言的頁面的連結。這將導致網站 建置錯誤。範例

12:45:31 PM: htmltest started at 12:45:30 on app
12:45:31 PM: ========================================================================
12:45:31 PM: ko/docs/chart_template_guide/accessing_files/index.html
12:45:31 PM:   hash does not exist --- ko/docs/chart_template_guide/accessing_files/index.html --> #basic-example
12:45:31 PM: ✘✘✘ failed in 197.566561ms
12:45:31 PM: 1 error in 212 documents

要解決此問題,您需要檢查內容中的內部連結。

  • 錨點連結需要反映翻譯後的 id
  • 需要修復內部頁面連結

對於不存在 (或尚未翻譯) 的內部頁面,網站將無法建置,直到進行更正為止。作為後備方案,網址可以指向存在該內容的其他語言,如下所示

< relref path="/docs/topics/library_charts.md" lang="en" >

有關更多資訊,請參閱 Hugo 文件中關於語言之間交叉引用的說明