Kubernetes Dashboard Japanese i18n Team
=======================================

はじめに
--------

このページは、Kubernetes Dashboard の和訳に関する情報です。

貢献の種類
----------

* [和訳への貢献](#和訳への貢献)
  本ディレクトリにある[和訳ファイル](./messages.ja.xlf)を編集して Pull Request を提出します。あるいは、これをレビューします。
* [原文修正](#原文修正)
  翻訳元の原文がおかしい、元の html ファイルを修正する必要がある場合に、`kubernetes/dashboard` リポジトリに修正を提案します。
* [翻訳関連ツールへの貢献](#翻訳関連ツールへの貢献)
  新規画面追加や原文修正が行われた場合に、AngularJS の i18n 関連ツールによって、[原文辞書ファイル](../messages.xlf)や[和訳ファイル](./messages.ja.xlf)が更新されます。これらのツールやワークフローの改善を行います。
* [その他の貢献](#その他の貢献)
  外部ツールや和訳チーム内のガバナンスの整備、`kubernetes/dashboard` リポジトリとの作業調整などを行います。

貢献の方法
----------

### 和訳への貢献

本ディレクトリにある[和訳ファイル](./messages.ja.xlf)を編集して Pull Request を提出します。あるいは、これをレビューします。

Kubernetes Dashboard の和訳を実施するにあたって、下記の配慮が必要です。
おおよそ、クラウドプロバイダーの WebUI やドキュメントに倣った翻訳方法としています。

#### 和訳一般

* 用語の統一性に配慮します。
* 「ですます」調の使用を基本とします。
  ただし、用語集は「である」調を使用する。
* 翻訳方針として以下の優先順位とします。
  + 広く使われている用語を使う。
  + できるだけ日本語（漢字、ひらがな）にする。
  + カタカナを使う。
  + 英語のままにする。(例: 翻訳不可能な固有名詞や外部サイトの引用文など)
* 外来語のカタカナ表記は、原則として語尾に長音表記をつけます。
  + (例) -er/or 系 : アーキテクチャー、ユーザー、セレクター
  + (例) -y 系 : セキュリティー、バイナリー、ユーティリティー
  + 一語の途中についても、長音表記を使います (例: インターフェース)。
  + 通信学会、電機業界を中心として長音なしが一般的ですが、最近のデスクトップ系は標準は長音表記であり、採用が広まっているので長音表記にします。
  + **混乱の元なので例外は作りません。**
* リソース名などの固有名詞として使われている用語も、`service` などの一般用語やその組み合わせのものは和訳します。
* 句読点は「、。」を使用し、「，．」は句読点として使用しません。
* 中黒（・）は使用しません。
  + (例) ○ カスタムスクリプト
  + (例) × カスタム・スクリプト
* 英単語と日本語の間には半角スペースを入れます。
  + (例) ○ `これは English word です。`
  + (例) × `これはEnglish wordです。`
  + ただし、文頭、句読点の直前直後、では、半角スペースを挿入しません。
  + (例) ○ `これは English、Chinese、French です。`
  + (例) × `これは English 、 Chinese 、 French です。`
* 数字は、漢数字、ギリシャ数字や全角アラビア数字を使用せず、半角アラビア数字を使用します。
  + ただし、「一部」、「一方」、「四捨五入」のような熟語の場合には漢数字を使用します。
* コロン (:)、スラッシュ (/)、ハイフン (-) などの記号やカッコ類は全角ではなく半角を使用します。
  + ただし、強調や引用のための " " (ダブルクォート) は、原則として「」に置き換えます。
  + (例) Push the "OK" button. → 「OK」ボタンを押してください。
* 「～ください」のかな漢字表記は、「○○を下さい」と「○○してください」のように使用します。
  + (例) ○ ボタンを押下してください
  + (例) × ボタンを押下ください
  + [参考](http://www.koho.or.jp/useful/qa/hyouki/hyouki06.html)
* 「〜なし」「〜のため」「〜すること」もひらがなで記載します。「〜無し」「〜の為」「〜する事」などは避けます。

#### Dashboard 特有

* UI のレイアウトに配慮します。
  レイアウトを崩してしまうような和訳は用語を再考します。レイアウト優先を原則とし、省略語も検討します。
  + 左側のメニューで単語が長くなり、スペースを無駄にしてしまう場合。(例) カスタムリソースデフィニション → カスタムリソース定義
  + 表の中の文字列で幅を取ってしまう場合。
* 原文が変数やタグを含む場合は、それらを壊さないように注意します。和訳にあたって、変数の順番を変更する必要がある場合は、必ずタグをまるごと移動します。
  ```
  <source>
    Are you sure you want to delete
    <x id="INTERPOLATION" equiv-text="{{data.displayName}}"/>
    <x id="INTERPOLATION_1" equiv-text="{{data.objectMeta.name}}"/>
    in namespace
    <x id="INTERPOLATION_2" equiv-text="{{data.objectMeta.namespace}}"/>
    ?
  </source>
  <target>
    ネームスペース
    <x id="INTERPOLATION_2" equiv-text="{{data.objectMeta.namespace}}"/>
    の
    <x id="INTERPOLATION" equiv-text="{{data.displayName}}"/>
    <x id="INTERPOLATION_1" equiv-text="{{data.objectMeta.name}}"/>
    を本当に削除しますか？
  </target>
  ```
* 体言止めの動詞 (例: "Confirm") の場合、使用箇所によって判断します。
  + 説明やダイアログなど、エンドユーザーに語りかける場面で使われている場合には、文章として翻訳します。(例: 「確認してください」)
  + ボタンやメニューなど、エンドユーザーの選択として使われている場合には、体言止めの動詞として翻訳します。(例: 「確認」)
* 原文がおかしい場合は、[原文修正](#原文修正)の項を参照して、原文の修正と同時に和訳の修正を行います。

#### 問題の報告

[コミュニケーション](#コミュニケーション)の項を参照して、Issue を登録します。

#### 和訳やその修正方法

* [開発者ドキュメントの `Getting started`](../../docs/developer/getting-started.md)を参照して、動作確認環境をセットアップします。
* [i18n ドキュメント](../../docs/developer/internationalization.md)を参照して、翻訳方法を確認します。
* **[和訳ファイル](./messages.ja.xlf)の `<target>` タグの中身を和訳／修正します。
  原文は `<source>` タグで、これにあたる和訳／修正を実施します。
  その際、翻訳済みである印として、`<target>` タグ内に `state="new"` の属性があれば、この属性を削除します。**
* `npm run start:prod` を実行して Kubernetes Dashboard をビルド、実行して、和訳／修正した結果をブラウザから確認します。
* Pull Request を `kubernetes/dashboard` リポジトリに提出します。
* 新たに翻訳すべき原文の追加や修正が発生しているかは、[`kubernetes/dashboard` リポジトリの`language/ja` ラベルが付いた Pull Request](https://github.com/kubernetes/dashboard/pulls?utf8=%E2%9C%93&q=is%3Apr+label%3Alanguage%2Fja) を監視することで行います。

### 原文修正

翻訳元の原文がおかしい、元の html ファイルを修正する必要がある場合に、`kubernetes/dashboard` リポジトリに修正を提案します。

#### 問題の報告

[コミュニケーション](#コミュニケーション)の項目を参照して、Issue を登録します。

#### 修正方法

* [開発者ドキュメント](../../docs/developer/)を参照して、開発環境をセットアップします。
* 修正したい原文は、[和訳ファイル](./messages.ja.xlf)の `<context context-type="sourcefile">` タグの内容から見つけられます。
  [フロントエンド](../../src/app/frontend/)の html テンプレートファイルが修正対象です。
* 原文を修正した場合は、`npm run start` で Kubernetes Dashboard を起動してブラウザで表示し、和訳表示だけでなく、原文表示でも画面のレイアウトが崩れないことを必ず確認します。
* [開発者ドキュメント](../../docs/developer/)通りにセットアップした環境で原文修正していれば、`git commit` 時に[原文辞書ファイル](../messages.xlf)や[和訳ファイル](./messages.ja.xlf)などの各言語ファイル (`/i18n/fr/messages.fr.xlf` など) も更新されます。
  あるいは、`npm run fix:i18n` を実行して、明示的に[原文辞書ファイル](../messages.xlf)や各言語ファイルを更新します。
* 和訳／修正も[和訳やその修正方法](#和訳やその修正方法)の項を参照して同時に実施します。
* Pull Request に、修正した html ファイルだけでなく、[原文辞書ファイル](../messages.xlf)や各言語ファイルが含まれていることを確認して、提出します。

### 翻訳関連ツールへの貢献

新規画面追加や原文修正が行われた場合に、AngularJS の i18n 関連ツールによって、[原文辞書ファイル](../messages.xlf)や[和訳ファイル](./messages.ja.xlf)が更新されます。これらのツールやワークフローの改善を行います。

* `kubernetes/dashboard` リポジトリへの貢献です。
* 翻訳チームの規模に見合った共同で翻訳作業ができるツールを探しています。
  + `XLIFF` 形式のファイルに対応していること。
  + WebUI があり、複数人で共同作業できること。
  + 原文には変数を代入するための html タグなどを含むため、タグも表示/編集可能なこと。
  + Kubernetes Dashboard のツールとして、あるいは、Kubernetes コミュニティ全体規模で使えそうなツール。
  + ツールのコミュニティ内での整備を推進できる方、大歓迎！！

### その他の貢献

和訳チーム内のガバナンスの整備、`kubernetes/dashboard` リポジトリとの作業調整などを行います。

* 和訳の方針を改善する。
* 翻訳用語集を整備する。

コミュニケーション
------------------

Github の Issue で行います。
現状、Kubernetes Dashboard の和訳チーム専用の Slack チャンネルやメーリングリストなどは整備されていませんが、[OWNERS ファイル](./OWNERS)に記載の貢献者は Slack の Kubernetes ワークスペースの `#sig-ui` チャンネルで見つけられます。

### Issue 登録

`kubernetes/dashboard` リポジトリの Issue に登録します。**その際、タイトルは必ず英語で記述します。**
* (例) Which translation is appropriate for "Container", "コンテナ" or "コンテナー" ?

#### 和訳などの和訳チーム内で議論すべき事項に関するもの

`language/ja` のラベルをつけます。このラベルの Issue 内では、日本語での議論が可能です。

#### 原文修正やツールなどの `kubernetes/dashboard` リポジトリメンバーも関与すべき事項に関するもの

ラベルはつけません。`kubernetes/dashboard` リポジトリのメンバーも参加するので、英語での議論になります。

和訳チームについて
------------------

本ディレクトリ配下のリソースに関する更新は、本ディレクトリにある [OWNERS ファイル](./OWNERS)、あるいは [`kubernetes/dashboard` リポジトリの `OWNERS_ALIASES` ファイル](../../OWNERS_ALIASES)に記載のメンバー（github アカウント、あるいは kubernetes org のグループ）によって承認されますが、基本的に本ディレクトリ配下の管理は、本ディレクトリにある [OWNERS ファイル](./OWNERS)のメンバーによって運営されます。
