= How to translate = LDP man-pages では、翻訳に po4a を利用しています。 roff ファイルと po4a ファイルの変換には、LDP man-pages のフランス語翻訳チームが 公開している perkamon を利用しています。 perkamon を git submodule として利用しているため、手順が少し複雑になっています。 (0) 前準備 git repository の top directory で以下のコマンドを実行します。 cd $JM_REPO_TOP git submodule update --init po4a 環境を用意します。 cd manual/LDP_man-pages make jm-setup これで po4a で作業して draft に反映する準備が整いました。 (1) 翻訳と draft への変換 (1-1) ja.po と man page の関係 一つの po ファイルは、LDP_man-pages の複数の man page に対応しています。 man page に対応する po ファイルを特定するには、以下のようにします。 $ grep -l strptime.3 perkamon/po4a/*/*.cfg perkamon/po4a/time/time.cfg 上記の場合、strptime.3 が含まれる po ファイル (ja.po) は time 以下にあります。 po4a/time/po/ja.po を翻訳することになります。 $ find po4a/time/ po4a/time/ po4a/time/po po4a/time/po/ja.po po4a/time/po/time.pot (1-2) 翻訳 上記で特定した ja.po を翻訳します。 エディタは po ファイルに対応しているものが便利です。 (1-3) draft page の生成 make または make translate を実行すると、ja.po から draft を生成します。 全ての ja.po が変換対象になるので、時間がかかります。 どのファイルが更新されたかは git status で確認して下さい。 特定のディレクトリ以下のみを変換したい場合は以下のようにします。 make translate-time デフォルトでは、翻訳率が 100% の page のみが生成されます。 翻訳中のページなどで状況を確認したい場合は、 以下のように THRESH=70 のように翻訳率を指定して下さい。 make translate-time THRESH=70 make THRESH=70 (1-4) 翻訳状況の確認 make stats を実行すると、LDP_man-pages 以下の全ての po の翻訳状況が表示されます。 (2) リリース make release を実行すると、ja.po から release ファイルが生成されます。 行っていることは draft の生成と同じですが、 翻訳率の閾値が 80% になっている点が異なります。 更新後は通常のリリース手順と同じです。 * release ファイルを git add -u → git commit * (必要に応じて) www/index.m4, www/news/index.m4 を更新 80% にしているのは、ある程度翻訳されているページは公開してしまおうという 意図からです。draft の方は翻訳できていないページを検知する意味で、 100% の閾値にしています。 (3) 課題 以下の点が po4a 移行後の課題です。 * レビューをどのようにして行うか? * translation-list の更新が手動になっている * 複数のファイルが一つの ja.po の変更で更新されることがあり、管理が面倒 = How to update original = (1) original を取得する wget http://www.kernel.org/pub/linux/docs/man-pages/man-pages-3.40.tar.xz (2) 展開する。tmp 以下に展開するものとする。 mkdir tmp cd tmp tar xJf man-pages-3.40.tar.xz (3) original 以下にコピーする cd man-pages-3.40 ../../../../admin/JM-orig-upd.sh ../../original cp README man-pages-* Changes* ../../original (4) COLOPHON 以下を削除する。 translation_list を更新するため、変更点のみを抽出するため。 cd ../../original sh ../tmp/man-pages-3.40/scripts/remove_COLOPHON.sh man?/*.[1-8] (5) original 以下を git で stage する。 (original 以下で作業する。基本的に original 以下の変更は全部取り込む) git add -u git add . (6) translation_list の更新 cd .. (LDP_man-pages の直下に移動する) git status . | ../../admin/git2upd > upd.txt vi upd.txt (不要な行の削除を行う) ../../admin/upd_tl.perl translation_list upd.txt 3.40 mv translation_list.3.40 translation_list (7) Git commit git add translation_list git commit -m "LDP: Update original to LDP v3.40." (8) POT の更新 (ここで Git Repo 以下はきれいな状態にしておく) make clean-setup make jm-setup cd perkamon make print-new-files (何か表示されたら、po4a/*/*.cfg に追加) make disable-removed (何かないか確認) git status (更新があれば git commit) cd .. make translate FLAGS="--no-translations -v --force" (これで POT と ja.po が更新される。 タイムスタンプを気にしなくてよいので --force を付けた方がよい。) git add -u po4a/ git commit -m "LDP: Update POT and ja.po to LDP v3.40." (9) 単純な fuzzy の更新 COLOPHON が更新されているので、fuzzy が少なくとも一つできるので、 ja.po を更新する。 make translate