Helmドキュメントのローカライズ

このガイドでは、Helmドキュメントをローカライズする方法について説明します。

はじめに

翻訳の貢献は、ドキュメントの貢献と同じプロセスを使用します。翻訳は、プルリクエストを通じてhelm-www gitリポジトリに提供され、プルリクエストはウェブサイトを管理するチームによってレビューされます。

2文字の言語コード

ドキュメントは、言語コードのISO 639-1規格に従って編成されています。たとえば、韓国語の2文字コードはkoです。

コンテンツと設定では、言語コードが使用されています。ここでは3つの例を示します。

  • contentディレクトリでは、言語コードがサブディレクトリになっており、各ディレクトリにその言語のローカライズされたコンテンツが含まれています。主に各言語コードディレクトリのdocsサブディレクトリにあります。
  • i18nディレクトリには、ウェブサイトで使用されるフレーズを含む、各言語の設定ファイルが含まれています。ファイル名は[LANG].tomlのパターンで、[LANG]は2文字の言語コードです。
  • トップレベルのconfig.tomlファイルには、言語コード別に編成されたナビゲーションなどの設定が含まれています。

言語コードがenの英語は、デフォルトの言語であり、翻訳のソースです。

フォーク、ブランチ、変更、プルリクエスト

翻訳に貢献するには、まずGitHubでhelm-wwwリポジトリフォークを作成します。変更はまず自分のフォークにコミットします。

デフォルトでは、フォークはmainと呼ばれるデフォルトブランチで動作するように設定されています。変更の開発とプルリクエストの作成には、ブランチを使用してください。ブランチに慣れていない場合は、GitHubのドキュメントでブランチについて読むことができます。

ブランチを作成したら、翻訳を追加し、コンテンツを言語にローカライズするための変更を行います。

Helmは開発者原産地証明書を使用していることに注意してください。すべてのコミットは署名が必要です。コミットを行う際には、-sまたは--signoffフラグを使用して、Gitで設定された名前とメールアドレスでコミットに署名することができます。詳細は、CONTRIBUTING.mdファイルを参照してください。

準備ができたら、翻訳を含むプルリクエストをhelm-wwwリポジトリに作成します。

プルリクエストが作成されると、メンテナの1人がそれをレビューします。そのプロセスの詳細は、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ファイルで、言語ナビゲーションが設定されています。

新しい言語を追加するには、上記で定義した2文字の言語コードを使用して、新しいパラメータセットを追加します。例:

# 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ドキュメントを参照してください。