[JM:03905] po4a で ja.po に既訳を取り込むには?

Back to archive index
長南洋一 cyoic****@maple*****
2022年 10月 26日 (水) 21:18:27 JST


長南です。質問があります。

私としては、1 manpage 1 po ファイルの方が、考え方が単純で好みです。
手数がかかっても、操作が原始的なほど、素人にはわかりやすいものですし、
何よりも、原文の内容が手に負えなそうだったり、やりたくないものだったり
した場合に、そういった manpage にかかわらないで済むのがよいと思います。

しかし、JM のリポジトリの manual/kmod 以下には、複数の manpage を
一つにまとめた po4a/man5/ja.po や po4a/man8/ja.po が存在しています。
こうしたファイルの日本語訳は、私の訳とは随分違っていますから、そのまま
残しておくと、将来改訂する人にとって、前回の翻訳が二種類あることになって、
紛らわしいことでしょう。

そうかと言って、せっかく作ってくださったものをスッパリ消してしまうのも、
もったいない気がします。また、make 一発で作業完了になるのは、たしかに
便利です (もっとも、何をやっているのかよくわからないまま、make を実行
するのは、気持ちが悪いものですけれど)。そこで、自分がやった翻訳ついても、
複数の manpage を一つにまとめた ja.po を作って、現在の ja.po を
上書きしておいた方が、よいのではないかと考えました。

各 manpage について、翻訳した roff ファイルはすでにあるわけです。
それをすべて取り込んだ po ファイルを作るには、どうしたらよいのでしょうか。

po4a-gettextize を使うやり方なら、知っています。man5 の場合なら、
draft/man5/*.5 から ヘッダ中の "This file was generated with po4a.
Translate the source file." という行や、Copyright や翻訳履歴など、
自分で追加した部分を取り除いて、

  $ po4a-gettextize -f man -m original/man5/depmod.d.5 \
                           -m original/man5/modprobe.d.5 \
			   -m original/man5/modules.dep.5 \
			   -l draft/man5/depmod.d.5 \
                           -l draft/man5/modprobe.d.5 \
                           -l draft/man5/modules.dep.5 \
			   -p po4a/man5/ja.po -o groff_code=verbatim -v

こんなふうにすればよいのでしょう。あとは、出来上がった ja.po の
charset の設定を変えて、fuzzy の指定を消去すればよい。ああ、それから、
同じ原文のパラグラフについて違った翻訳をした部分があるなら、それを統一する
必要もありますね。

しかし、-m や -l の引き数が多くなると、このやり方は面倒ですし、いかにも
野暮ったい。

po4a コマンドを使って、もっと簡単に出来ないものかと思ったのですが、
draft/man5 に新しい翻訳を入れて、普通に po4a を実行しても、翻訳入りの
ja.po は出来ないようです。msgstr がすべて空文字列 "" になった
ja.po が出来てしまいます。

もっとも、man po4a を読むと、次のようなことが書いてあります
(私が使っている po4a は、ちょっと古く、バージョン 0.55 です。
web にあるマニュアルも調べてみたのですが、そちらには、このくだりが
ありませんでした)。

  The dataflow cannot be reversed in this tool, --- (中略) ---
  As a matter of fact, this tool cannot be used to convert
  existing translations to the po4a system. For that task,
  please refer to po4a-gettextize(1).

ですから、po4a コマンドでは、私の期待するような、翻訳した roff ファイルの
取り込みは出来ないのかもしれません (最新のバージョンでは、出来るようになった
のでしょうか)。しかし、それではあまりにも不便でしょう。上の例のように roff
ファイルが二つや三つならともかく、十も二十もあったら、gettextize では
やっていられないと思います (もちろん、-m や -l の引数をファイルから読み込む
手はありますけれど)。また、ファイルが百以上になった場合でも、結果は信用出来る
のでしょうか。そんなわけで、man po4a に上のように書いてあっても、po4a
コマンドを使って、既訳ファイルを取り込む方法があるのではないか、なければ
おかしいとも思うわけです。どなたか、そういう方法をご存知ないでしょうか。

あるいは、1 manpage ごとに作った翻訳済みの po ファイルをひとつにまとめる方法
でも構いません。どちらかをご存知だったら、教えていただきたいと思います。

-- 
長南洋一



linuxjm-discuss メーリングリストの案内
Back to archive index