元木です。 このところ LDP man-pages の管理方法の議論や JM での po4a の使い方などを見て、 po4a cfg を使った方法を理解の共通点にするといいのかなと思いました。 JM の活動は、今は個人の活動が中心ですが、複数人が関わるプロジェクトであることは 違いないので、最低限以下のような点を考慮する必要があると思います。 (これだけではありませんが単純化のため) ・再現性:誰が実行しても基本的に同じになる。コマンドの編集などはない方がよい。 ・簡単さ:これはいろんな面があると思います。 翻訳時に実行するコマンドの簡単さ、仕組みのわかりやすさ、など po4a cfg はこれらをある程度緩和してくれると思いますし、 いまの LDP man-pages の管理方法を理解する助けにもなると思います。 util-linux の管理をみて思ったことと po4a cfg を使うとこうなるよ、というのを挙げてみます。 (util-linux を選んだのに他意はありません) ## po4a-translate のコマンドライン 変換時の追加オプションを指定していますが、どのファイルをどのオプションで変換したかは よくわかりません。README にはたぶん他のファイルにも必要でしょうと書かれているだけ。 po4a cfg だと [1] のようなファイルを用意しておけば、 po4a po4a/man1/getopt.cfg を実行するだけで、POT/PO の更新、翻訳ファイルの生成までやってくれます。 オプションが必要であれば、LDP man-pages の例ですが [2] のように書いておくことで コマンドラインで指定する必要がなくなりますし、他の人が実行するときも迷うことはありません。 (副作用として POT が必ず生成されます) po4a cfg を用意するメリットはあると思います。 [1] https://github.com/amotoki/jm/blob/84f70e56b580bc751949d3283628fc5a7f04346a/manual/util-linux/po4a/man1/getopt.cfg [2] https://github.com/amotoki/jm/blob/84f70e56b580bc751949d3283628fc5a7f04346a/manual/LDP_man-pages/perkamon/po4a/time/time.cfg#L232 ## もう少しするなら ここからは util-linux の状況を見て、 もう少し楽になるかなと思った点をコメントしておきます。 patch を使うと、翻訳が少し変化しただけで patch 適用ができなくなってしまうので、 考慮の余地はあると思います。仕方ないときは patch を使えばいいと思います。 (a) addenda の活用 patch ファイルを用意して、copyright や 読者へのご注意 への注意を挿入していますが、 po4a の addenda の機能を使うと、追加のコンテンツを挿入できます。 po4a cfg は [3] のような感じで、 [4] のようなファイルを用意します。 挿入場所は [4] の先頭にある PO4A-HEADER で指定します。 正規表現ベースなのであまり柔軟な指定はできませんが。 詳細は po4a(1) と po4a(7) の add_$(lang) と addenda の説明を見る必要があります。 [3] https://github.com/amotoki/jm/blob/1311a6cfd602ab7a0c97d461b148a2e8122e8f3c/manual/util-linux/po4a/man1/cal.cfg#L7-L8 [4] https://github.com/amotoki/jm/blob/1311a6cfd602ab7a0c97d461b148a2e8122e8f3c/manual/util-linux/po4a/man1/add_ja/cal.1.notice (b) 訳注の扱い cal.1 などを見ると、訳注を patch で適用していますが、 簡単な訳注(段落を分ける程度のもの)なら、[5] のように ja.po に含めてしまうと 分かりやすいと思います。(これは po4a cfg とは関係ないですね) ただし、あまり複雑な訳注はかけません。 getopt-ja.patch の [6] のように長い部分は無理やり[7] のように ja.po に書くことも できますが、 roff の directive は使えないので、物足りないかもしれません。 [5] https://github.com/amotoki/jm/commit/67dd168292ae573521d57bcd8c241a56ee0cd7a0#diff-3337d638b68f0781216e9411bed04905c7f2125210d67beba7dd6c141441c542 [6] https://github.com/amotoki/jm/blob/84f70e56b580bc751949d3283628fc5a7f04346a/manual/util-linux/po4a/man1/getopt-ja.patch#L81-L102 [7] https://github.com/amotoki/jm/blob/67dd168292ae573521d57bcd8c241a56ee0cd7a0/manual/util-linux/po4a/man1/getopt-ja.po#L410-L432 ## おまけ util-linux のフォルダーで、 draft 以下や original 以下はどのような管理に なっているかよく分からなかったです。 draft 以下は po4a を使っているときには、無視されている? original 以下がどうなっているか分からなかったのは、cal-ja.po だとオリジナルが cal.man になっていて、たぶん別の場所から来ているのだと思いました。 私が試しに cal.1 と getopt.1 に po4a cfg を導入してみた変更内容は 個人レポジトリにおいてあります。[8] util-linux の事実上の管理者は長南さんなので、長南さんの判断に従いたいと思います。 [8] https://github.com/amotoki/jm/compare/po4a-cfg-util-linux