まとまった量のテキストの翻訳を省力化するため、GoogleのGemini APIを使ったAI翻訳を導入しています。主に未翻訳のガイドの最初の翻訳に利用しています。
翻訳翻訳スクリプトは tools/translate.ts
に書かれています。以下の手順で翻訳を行います。
$ yarn translate <翻訳元ファイル・ディレクトリ> [--write]
ディレクトリが指定された場合、そのディレクトリのファイルがリストアップされ、どのファイルを翻訳するかを選択できます。
--write
オプションを指定すると、確認なしに翻訳結果をファイルに書き出します。指定しない場合は、翻訳結果が標準出力に表示されたうえで、保存するかどうかを確認します。
例えば、以下のように実行します。
$ yarn translate adev-ja/src/content/guide/components/content-projection.en.md
入力されたファイルが *.en.md
である場合、出力されるファイルは *.md
になります。すでにファイルがある場合は上書きされます。翻訳元ファイルが *.md
である場合、出力は同じファイルになります。
Gemini APIを利用するためには、APIキーが必要です。APIキーはGoogle AI Studioで取得できます。
- Google AI Studioにログインします。
- 「APIキーを作成」をクリックします。
- 任意のGoogle Cloudプロジェクトと紐づけて、APIキーを作成します。
APIキーはを環境変数 GOOGLE_API_KEY
に設定した上で、tools/translate.ts
を実行すると、APIキーが利用されます。
Tip
translate.ts
で利用しているモデルは "Gemini 1.5 Flash" です。このモデルは無料で利用できる使用量上限がありますが、ふつうに翻訳しているだけであれば無料枠で十分です。しかし、原理的には従量課金されうることを了承のうえで利用してください。また、発行したAPIキーが漏れないように注意してください。
生成AIによる翻訳は、同じ入力に対して毎回同じ結果が得られるわけではありません。textlintでも修正できない表記揺れが含まれることもあるため、翻訳結果をそのまま採用せず、目視で確認して修正してください。
Gemini APIの出力トークン上限の都合上、大きなファイルを一度に翻訳することができません。入力されたファイルの文字数が一定数を超える場合、対話的にいくつかの断片ごとに結果を出力したあとに結合しています。分割もAIに行わせているため、接合部分に不自然な切れ目が生じることがあります。手で修正してください。
もし、翻訳結果を確認するためのプロンプトを改善したい場合は、tools/translate.ts
を修正するプルリクエストを送ってください。