0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CursorにHAProxyのマニュアルを翻訳してもらう

Posted at

CursorにHAProxyのマニュアルを翻訳してもらう

HAProxyの設定マニュアルを、Cursorに日本語翻訳してもらいました。

背景

お仕事でHAProxyを使うことにしたので、設定マニュアルを探したら33万行のHTMLファイルが見つかりました。長い……。

英語が不自由なので、LLMに日本語翻訳してもらおうと思います。

作業には Cursor を利用します。このところは、Java開発、Typescript開発、Python開発、文書作成をCursorで片付けています。技術領域ごとにProfileを分け、拡張やMCPを分けると混乱が少なくて便利です。Proプランを契約していますが、十二分に元が取れています。Github Copilotも年間契約していますが、素のVSCodeはほとんど使わなくなりました。

方針

当然、この膨大なドキュメントはLLMのコンテキストに収まりません。分割して作業してもらいます。

まず分割ツールを作成してもらい、入力ファイルを分割します。

分割したファイル毎に翻訳作業をLLMに依頼し、章、節毎にMarkdownファイルに出力してもらいます。

最後にMarkdownファイルを結合したら出来上がりです。

この手順では、他の文書との相関や整合性は考慮できません。項目ごとに独立した技術文書だから成立する手法かも知れません。

分割ツール開発

以下のような requirements.md を作成します。

自分で考えたのは、この区切りを識別する正規表現くらいです。

# 要求

## 機能要求

- 1つのHTMLファイルを `/" href="#([0-9][0-9]*\.*[0-9]*)"/` という正規表現のキーワードがある行を境に、複数のHTMLに分割する
- 分割したファイルは、元のファイル名に正規表現中の `([0-9][0-9]*\.*[0-9]*)"` の部分を付加したファイル名のHTMLファイルに出力する
- ファイル先頭から最初のキーワードの行が現れるまでは `.0` を付加したHTMLファイルに出力する
- 分割したファイルは HTML としてのバリデーションは行わず、単純に行単位で分割する

## 非機能要件

- Spring bootアプリケーションとして実装する
- AppricationRunnerとして作成し、引数でファイル名を指定する

## サンプルデータ

- data/configuration.html

74ファイルに分割される想定

Cursorにチャットから以下のように依頼します。

@requirements.md を確認してアプリケーションを作成してください。

数分でプログラムが作成されます。簡単なプログラムなので直すところもありません。

このプログラムでHTMLファイルを74分割しました。

翻訳作業

各章の先頭ファイルについて、Cursorに以下のように依頼します。

@configuration.1.html このファイルの内容を日本語に翻訳し、Markdown形式で configuration-ja.xx.00.md に出力してください。xの部分はファイル名末尾の数字をゼロサプレスしない2桁で作成してください。先頭行の見出しは ## x. に続けて章タイトルを出力してください。省タイトルの数字はゼロサプレスしてください。要約せず、すべての内容を翻訳してください。である調で統一してください。元のHTML文書が100行を超える場合は、100行ごとに分割して読み取り、訳文を追記していってください。

configuration-ja.01.00.md というファイルを作ってくれました。

続いて、各節のファイルについて、Cursorに以下のように依頼します。

@configuration.1.1.html @configuration.1.2.html @configuration.1.3.html @configuration.1.4.html これらのファイルの内容を日本語に翻訳し、Markdown形式で configuration-ja.xx.xx.md に出力してください。xx.xxの部分はファイル名末尾の数字をゼロサプレスしない2桁で作成してください。先頭行の見出しは ### x.x に続けて章タイトルを出力してください。省タイトルの数字はゼロサプレスしてください。要約せず、すべての内容を翻訳してください。である調で統一してください。元のHTML文書が100行を超える場合は、100行ごとに分割して読み取り、訳文を追記していってください。

configuration-ja.01.01.md configuration-ja.01.02.md configuration-ja.01.03.md configuration-ja.01.04.md というファイルを作ってくれました。ゼロサプレスしないよう指示しているのは後のCATで手抜きするためです。

作業結果に間違いがないか確認しながら、14章まで繰り返します。各作業は独立しているので、チャットも分ければ負荷が減ります。

結合

Markdown形式はネスト構造がないので、単純に結合するだけで完成します。

> cat configuration-ja.*.md > configuration-ja.md

HAProxyのプロジェクトはGNU v2ライセンスなので、先頭にその旨のライセンス標記をつけたら完成です。半日で完了しました。

成果物

まとめ

‐ 技術マニュアルは内容の独立性が高く、章ごとに分割しても整合性は高いので、大きなファイルでも分割してLLMに翻訳させられます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?