Skip to content

docs: 翻訳作業についてのドキュメントとPRテンプレートを修正 #1016

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
## 翻訳・修正

- [ ] 変更内容は[CONTRIBUTING.md](https://github.com/angular/angular-ja/blob/main/CONTRIBUTING.md) に記載されたワークフローに従っています
変更内容は[CONTRIBUTING.md](https://github.com/angular/angular-ja/blob/main/CONTRIBUTING.md) に記載されたワークフローに従っていることを確認してください。

- [ ] [翻訳のガイドライン](CONTRIBUTING.md#%E7%BF%BB%E8%A8%B3%E3%81%AE%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3)を確認しました。
- [ ] 原文ファイルと翻訳ファイルの改行数が一致しています。

## 関連Issue

Expand Down
5 changes: 3 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,14 @@ https://github.com/angular/angular/tree/main/adev

## 翻訳の追加

> [!NOTE]
> まとまった量のテキストの翻訳を省力化するため、Googleの[Gemini API](https://ai.google.dev/gemini-api?hl=ja)を使ったAI翻訳を導入しています。詳細は[TRANSLATION_WITH_AI.md](./docs/TRANSLATION_WITH_AI.md)を参照してください。

未翻訳のドキュメントをあらたに翻訳するには、翻訳時点での原文を `xxx.en.md` ファイルとして保存し、`xxx.md` を翻訳します。以下のステップで翻訳を進めてください。

- `xxx.md` ファイルをコピーして `xxx.en.md` ファイルを作成する
- `xxx.md` ファイルを翻訳する

まとまった量のテキストの翻訳を省力化するため、Googleの[Gemini API](https://ai.google.dev/gemini-api?hl=ja)を使ったAI翻訳を導入しています。詳細は[TRANSLATION_WITH_AI.md](./docs/TRANSLATION_WITH_AI.md)を参照してください。


## ローカル環境のセットアップ

Expand Down
21 changes: 12 additions & 9 deletions docs/TRANSLATION_WITH_AI.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,12 @@

## 使い方

翻訳翻訳スクリプトは `tools/translate.ts` に書かれています。以下の手順で翻訳を行います
AI翻訳スクリプトの実装は `tools/translator` に配置されています。AI翻訳は以下の手順で実行します

```
$ yarn translate <翻訳元ファイル・ディレクトリ> [--write]
```

ディレクトリが指定された場合、そのディレクトリのファイルがリストアップされ、どのファイルを翻訳するかを選択できます。

`--write` オプションを指定すると、確認なしに翻訳結果をファイルに書き出します。指定しない場合は、翻訳結果が標準出力に表示されたうえで、保存するかどうかを確認します。

例えば、以下のように実行します。
Expand All @@ -30,13 +28,18 @@ Gemini APIを利用するためには、APIキーが必要です。APIキーは[
- 「APIキーを作成」をクリックします。
- 任意のGoogle Cloudプロジェクトと紐づけて、APIキーを作成します。

APIキーはを環境変数 `GOOGLE_API_KEY` に設定した上で、`tools/translate.ts` を実行すると、APIキーが利用されます。
APIキーはを環境変数 `GOOGLE_API_KEY` に設定した上で、`tools/translate.ts` を実行すると、APIキーが利用されます。レポジトリルートに `.env` ファイルを作成し、以下のように設定してください。`.env` ファイルは `.gitignore` に含まれているため、APIキーがリポジトリに含まれることはありません。

```
GOOGLE_API_KEY=<APIキー>
```


> [!TIP]
> `translate.ts` で利用しているモデルは "[Gemini 1.5 Flash][]" です。このモデルは無料で利用できる使用量上限がありますが、ふつうに翻訳しているだけであれば無料枠で十分です。しかし、原理的には従量課金されうることを了承のうえで利用してください。また、発行したAPIキーが漏れないように注意してください。
> [!WARNING]
> `translate.ts` で利用しているモデルは "[Gemini 2.0 Flash][]" です。このモデルは無料で利用できる使用量上限がありますが、ふつうに翻訳しているだけであれば無料枠で十分です。しかし、原理的には従量課金されうることを了承のうえで利用してください。また、発行したAPIキーが漏れないように注意してください。


[Gemini 1.5 Flash]: https://ai.google.dev/gemini-api/docs/models/gemini?hl=ja
[Gemini 2.0 Flash]: https://ai.google.dev/gemini-api/docs/models/gemini?hl=ja

## 注意

Expand All @@ -46,8 +49,8 @@ APIキーはを環境変数 `GOOGLE_API_KEY` に設定した上で、`tools/tran

### 大きなファイルの翻訳

Gemini APIの出力トークン上限の都合上、大きなファイルを一度に翻訳することができません。入力されたファイルの文字数が一定数を超える場合、対話的にいくつかの断片ごとに結果を出力したあとに結合しています。分割もAIに行わせているため、接合部分に不自然な切れ目が生じることがあります。手で修正してください
Gemini APIの出力トークン上限の都合上、大きなファイルを一度に翻訳することができません。そのため、いくつかの断片ごとに結果を出力したあとに結合しています。接合部分に不自然な切れ目が生じることがありますので、その場合は修正してください

### プロンプトの改善

もし、翻訳結果を確認するためのプロンプトを改善したい場合は、`tools/translate.ts` を修正するプルリクエストを送ってください。
もし、翻訳結果を確認するためのプロンプトを改善したい場合は、`tools/translator` を修正するプルリクエストを送ってください。