rfc-translater

開発者向け

要求定義

要件定義

動作環境

Python 3.12 + Claude Code on Windows / MacOS / Ubuntu

requests, lxml, beautifulsoup4, Mako, xml2rfcなどのライブラリが実行に必要のためインストールしてください。Windowsの場合は、py -m pip に読み替えてください。

pip3 install -r requirements.txt

翻訳の流れ

RFCの取得とHTMLの生成は main.py が行い、翻訳は Claude が行います。

工程 担当 内容
取得 main.py --fetch RFCを取得して段落に分割する (rfcNXXX.json)
翻訳 Claude のサブエージェント rfc-translator AGENTS.md の翻訳スタイルガイドに従って段落を翻訳する
検証 main.py --trans-import と tools/lint_translation.py 訳文の形式と、規範キーワード・識別子の表記を機械的に検証する
生成 main.py --make 対訳HTMLを生成する (rfcNXXX.html)

この一連の作業は Claude Code のスキル translate-new-rfc にまとめてあります。

実行コマンド例

生成物:

ファイルパス 説明 生成元プログラム
html/data-rfc-list.json 廃止RFC・WG・発行年月の一覧 fetch_status.py (取得)
html/data-rfc-title.json 全RFCの日本語タイトル一覧 make_title_json.py (生成)
data/N000/rfcNXXX.json 段落区切りの文書 fetch_rfc.py(取得)
data/N000/rfcNXXX-midway.json 翻訳の作業ファイル(確定時に削除) trans_rfc.py(翻訳の補助)
data/N000/rfcNXXX-trans.json 各文章の翻訳を付与した情報 trans_rfc.py(翻訳の補助)
data/N000/rfcNXXX-summary.json RFCの要約 Claude(作成)、check_summary.py(検証)
html/rfcNXXX.html 原文と翻訳を並べて表示するHTML make_html.py(生成)
html/index.html トップページの生成 make_index.py (生成)
data/draft/draft-*.json 段落区切りの文書 fetch_rfc.py(取得)
data/draft/draft-*-trans.json 各文章の翻訳を付与した情報 trans_rfc.py(翻訳の補助)
html/draft/draft-*.html RFCドラフトの原文と翻訳を並べて表示するHTML make_html.py(生成)
html/draft/index.html RFCドラフト一覧のトップページHTML make_html.py(生成)

翻訳結果確認

ローカルで成果物の確認:

python3 -m http.server
# localhost:8000/htmlにアクセス

単体テスト

python3 -m unittest discover -s tests -p "test_*.py"

特定のテストのみ実施したい場合

python3 -m unittest tests.test_fetch_rfc.TestFetchRfcSectionTitle.test_section_title

Draft版の全RFCのHTMLを再作成する

find data/draft -name '*' -type f -exec /bin/bash -c '/opt/homebrew/bin/python3 main.py --draft $(basename {} -trans.json) --make' \;
python main.py --make-index-draft

その他

図表・ソースコードをJSONへ変換する

RFCを解析した結果、本来プログラムとして解釈すべき部分を文章として解釈してしまった場合、プログラムのインデントを削除してJSON化するツール: https://tex2e.github.io/rfc-translater/html/format.html