[JM:02091] Re: po4a cfg 使いませんか?

アーカイブの一覧に戻る
長南洋一 cyoic****@maple*****
2021年 3月 18日 (木) 08:53:48 JST


長南です。

いろいろと御提案してくださって、ありがとうございます。私のやることを
ご覧になっていて、歯がゆくてたまらなくなられたのでしょう。

po4a cfg を使うことについては、私は 1 マニュアル 1 PO ファイル主義ですから、
po4a-gettxize, po4a-translate, po4a-updatepo で十分用が足ります。
それに、その方が、po4a を初めて使う人にとっても、使い方が単純だし、
自分が今何をやっているかもはっきりして、受け入れやすいのではないかと思います。
もともと、こうしたコマンドは、一般ユーザが po4a を気軽に使えるようにと、
作られたインターフェースなのでしょう。

もっとも、そんなことが言えるのも、マニュアルがたかだか 100 個ぐらいしかなく、
しかも、一つ一つ訳しているからで、LDP man pages のように、マニュアルが
1000 個もあったら、やっていられないのは分かります。ですから、そういう場合は、
うまく行くやり方があるのならば、それを使えばよいと思います。

根本的に JM にとって重要なのは、original 以下の原文から release 以下の
翻訳 roff を作ることです。どうやってそうするかは、翻訳者の自由にまかせて
良いのではないでしょうか。翻訳 roff を作る上で、注意事項があるのなら、
README でも作って、書いておけば十分だと思います。

と、こう書いてきて気がつくのですが、1000 個ものマニュアル群を訳した方と、
数個程度のマニュアル群を訳してきたものでは、考え方が違ってくるのですね。
でも、大部分の人にとって、一度に訳すマニュアルは、1 個か 2 個、多くても
数個なのではないでしょうか。LDP man pages というのは、かなり特殊です。

> ## po4a-translate のコマンドライン
>
> 変換時の追加オプションを指定していますが、どのファイルをどのオプションで変換したかは
> よくわかりません。README にはたぶん他のファイルにも必要でしょうと書かれているだけ。

元木さんは、-o で渡す追加オプションがいろいろあることをご存知だから、かえって
混乱なさったのだと思います。私は、「manpage によっては、po4a-translate
だけでなく、po4a-gettextize や po4a-updatepo をするときにも
-o unknown_macros=untranslated というオプションが必要なものがある。
それは以下に列挙するものだ」という意味のことを書いただけです。今のところ、
他の追加オプションが必要な例には出会っていません。

ちょっと嫌味かもしれませんが、念のため、私の書いた文を、一部省略して引用して
おきます。この README.po4a は、po4a-translate などについて読者に
ある程度の知識があることを前提にしているので、そのへんの説明は省いています。

    ---- 以下引用 ----

  一般に aaa.1 などの翻訳マニュアルは、

  $ po4a-translate -f man -m ../../original/man1/aaa.1 -p aaa.po -l aaa.1 -v
  $ patch -p0 <aaa.patch

  とすれば作れるが、以下の例外がある。

  ○ getopt.1
     getopt.1 では、po4a-translate するとき、-o unknown_macros=untranslated
     というオプションを付ける必要があった。つまり、以下のようにする。
     
     $ po4a-translate -f man -m ../../original/man1/getopt.1 \ 
     -p getopt-ja.po -l ./getopt.1 -o unknown_macros=untranslated -v
     $ patch -p0 <getopt-ja.patch

        ---- (中略) ---

  以下の manpage でも po4a-translate に -o unknown_macros=untranslated
  が必要である (たぶん po4a-gettextize などでも必要)。

  ○ fdisk.8
  ○ partx.8
  ○ last.1
  ○ scriptreplay.1
  ○ scriptlive.1
  ○ logger.1
  ○ dmesg.1

    ---- 引用終了 ----

> (a) addenda の活用
> (b) 訳注の扱い

patch を使うことについてですから、これは一緒に論じます。

私も sudo の翻訳では、addenda を使いました。しかし、find を翻訳している
ときから、patch を使うようになりました。

私のようにかなり長い訳注を何箇所にも入れたい場合、addenda では複数のファイルが
必要になります。訳注なんて改訂するたびに、いらなくなったり、増えたりするものです。
そもそも、addenda ファイルが複数ある事自体煩わしいことですし、増えたり減ったり
したら、addenda ファイルの名前と内容が混乱してきます。それは望ましくありません。
他人の作ったものだったら、扱いに困ると思います。patch なら 1 個ですみます。

もう一つ都合が悪いのは、addenda では、内容を追加することは出来ても、
内容を変更することが出来ないことです。ところが、たとえば、AUTHOR や
AVAILABILITY の中などに man2html では解釈できない groff の書式が
があったりして、そういうところは Web ブラウザで見ると、消えてしまったり、
余計な文字が入ってしまったりするわけです。そういうのは、roff としては
間違っていないのですから、PO ファイルの中で書き換えるよりも、patch で
書き換えた方が、後々のためになるのではないかと思いました。

長い訳注を PO ファイル中に書くのも、試してみました。でも、それだと、
二行目以下の字下げが出来ないでしょう。訳注と本文との区別が一目で
わからないので、諦めたのだと思います。

> util-linux のフォルダーで、 draft 以下や original 以下はどのような管理に
> なっているかよく分からなかったです。
> draft 以下は po4a を使っているときには、無視されている?
> original 以下がどうなっているか分からなかったのは、cal-ja.po だとオリジナルが
> cal.man になっていて、たぶん別の場所から来ているのだと思いました。

オリジナルファイルの拡張子を man にしていると、"#: cal.man" になるんですね。
全然気が付きませんでした。私は、jm 以下とは別の作業ディレクトリで作業をして
いるのですが、そこに、原文と翻訳中の (po から変換した)  roff ファイル、
さらに佐藤さん訳の roff ファイルが混在しています。紛らわしいので、原文の拡張子を
man にしたのだと思います。原文の出所は、この場合なら、翻訳版の cal.1 の
翻訳履歴を見ていただけば、

Updated & Modified (util-linux 2.34) Tue Mar  3 11:18:32 JST 2020

などとなっているはずです。開発元にあった util-linux-2.34.tar.xz から
取り出したもので、original にあるものと同じことを確認しています。

今試してみたのですが、po4a-updatepo で cal.1 のバージョンを 2.34 から
2.36 に上げてみましたが、問題なく PO ファイルを更新できました。cal.man に
なっていても、害はないようです。

なお、original にある大部分のファイルは、バージョン 2.34 のもので、
佐藤さんが投稿なさったときに、白方さんが登録してくださったものです
(翻訳が 2.35.2 や 2.36 のものに対応する原文ファイルは、そのバージョンを
翻訳したとき、私が登録したもの)。draft にあるのも、白方さんの登録で、
佐藤さんが投稿なさった原稿です。po4a を使う場合、原文と訳文を並列した
ファイルは作らないので、draft ディレクトリは使っていません。

せっかく、いろいろと提案してくださったのに、みんな「ヤダ」ですませて
しまって、恐縮です。お気を悪くなさらないように。

-- 
長南洋一



linuxjm-discuss メーリングリストの案内
アーカイブの一覧に戻る