本地化 Helm 文档

本指南解释如何本地化 Helm 文档。

入门

翻译贡献使用与文档贡献相同的流程。翻译通过 拉取请求 提供给 helm-www git 仓库,并由管理网站的团队审核。

双字母语言代码

文档按 ISO 639-1 标准 组织语言代码。例如,韩语的双字母代码是 ko

在内容和配置中,你会发现语言代码正在使用。以下 3 个示例

  • content 目录中,语言代码是子目录,每个目录中都包含该语言的本地化内容。主要是在每个语言代码目录的 docs 子目录中。
  • i18n 目录包含每个语言的配置文件,其中包含网站上使用的短语。文件以 [LANG].toml 的模式命名,其中 [LANG] 是双字母语言代码。
  • 在顶层 config.toml 文件中,导航和其他细节的配置按语言代码组织。

英语(语言代码为 en)是默认语言和翻译源。

分叉、分支、更改、拉取请求

要贡献翻译,首先需要 创建一个分叉helm-www 仓库 在 GitHub 上。你将从将更改提交到你的分叉开始。

默认情况下,你的分叉将被设置为在称为 main 的默认分支上工作。请使用分支来开发你的更改并创建拉取请求。如果你不熟悉分支,你可以 阅读 GitHub 文档中的相关内容

一旦你有了分支,就可以进行更改以添加翻译并将内容本地化为一种语言。

注意,Helm 使用 开发者来源证书。所有提交都需要签署。在进行提交时,你可以使用 -s--signoff 标志使用你的 Git 配置的姓名和电子邮件地址来签署提交。更多详细信息可以在 CONTRIBUTING.md 文件中找到。

准备就绪后,创建一个 拉取请求 将翻译传回 helm-www 仓库。

拉取请求创建后,维护者之一将审核它。该流程的详细信息在 CONTRIBUTING.md 文件中。

翻译内容

本地化所有 Helm 内容是一项庞大的任务。从小处着手是可以的。翻译可以在以后扩展。

开始使用新语言

在开始使用新语言时,需要一些最少内容。这包括

  • 添加一个包含 _index.md 文件的 content/[LANG]/docs 目录。这是顶级的文档登陆页面。
  • 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
  • 内部页面链接需要修复

对于不存在的内部页面(或者尚未翻译),在进行修正之前,网站将无法构建。作为备用方案,URL 可以指向存在该内容的其他语言,如下所示

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

有关更多信息,请参见 Hugo 文档中关于语言间交叉引用 的内容。