<STATUS> stat: DP ppkg: util-linux page: getopt.1 date: 2020/04/05 mail: cyoic****@maple***** name: Chonan Yoichi </STATUS> これも佐藤さんとの共訳にさせていただきます。 訳文を決め兼ねているところをいくつか。 ○ まず、「説明」の冒頭。 getopt is used to break up (parse) options in command lines for easy parsing by shell procedures, and to check for valid options. It uses the GNU getopt(3) routines to do this. getopt を使えば、コマンドラインのオプションを分解 (構文解析) して、 シェル上の処理による解析作業を容易にしたり、 オプションが有効かどうかを チェックしたりすることができる。 getopt は、そうしたことのために GNU getopt(3) のルーティンを使用している。 この "parse" を「構文解析」と言ってよいのかどうか。「解析」にとどめる べきなのか。Wikipedia によれば、自然言語の構文解析は、「おもに文節間の 係り受け構造を発見することである」そうですから、オプションとそのオプション 引き数、それ以外のパラメータを判別する getopt の動作も、構文解析と言える のではないかと思うのですが。 "shell procedures" の訳にも迷っています。プロシージャと言うと、 プログラミング関係では、関数とかサブルーティンとかとほぼ同じ意味で 使うこともあるんでしょう。 ○ 「説明」の最後のパラグラフ。 Traditional implementations of getopt(1) are unable to cope with white‐ space and other (shell-specific) special characters in arguments and non-option parameters. 従来の getopt(1) の実装では、引き数などのオプションではないパラメータの 中に、ホワイトスペース (訳注: 空白、タブ、改行など) や (シェル固有の) 特殊文字などがあると、それに対処することができなかった。 この "special characters" というのは、具体的には何のことなんでしょう。 "*, ?" のような、いわゆるワイルドカード? それとも "$*, $@, $#" のような、 スペシャルパラメータ? それとも "\a, \t, \n" のようなエスケープシーケンス? そして、どういう風に使う場合を想定しているんでしょう。 ○ 「構文解析」セクションの最初のパラグラフ。 長くなるので、引用は省略します。この部分は、シェル関数が唐突に出てきて、 原文が説明不足な気がします (もっと前に、getopt はシェル関数や スクリプトで使うのが普通だと言っておくべきです)。それに、原文の過去形を どう理解すればよいかも難しい。私は補足説明を訳文に組み込んだ上で、 さらに長い訳注を付けてしまいました。原文は大体こういうことを言いたい のだろうと思います。 補足説明や長い訳注を付けたということは、自分は原文をこんな風に理解して いますと言い訳をしているわけで、言い換えれば、原文の理解や日本語化に 自信がないということでもあります。もっとスッキリした解釈があれば、 うかがいたいと思います。 ○ 「互換性」セクション。 This version of getopt(1) is written to be as compatible as possible to other versions. Usually you can just replace them with this version without any modifications, and with some advantages. このバージョンの getopt(1) は、できるだけ他のバージョンと互換性があるよ うに書かれている。 たいていの場合、他のバージョンの getopt をこのバー ジョンで置き換えるだけでよく、 既存のシェルスクリプトなどに手を入れる必要は ない。さらに、いくつかの利点もある。 "without any modifications" というのは、こういうことだと思いますが、 この getopt(1) のソースに手を入れる必要はないということなんでしょうか。 ○ 「バグ」セクション。 ここも引用は省略しますが、長い訳注を付けてしまいました。 要するに、getopt(1) コマンドの動作が、getopt(3) 関数の動作と 微妙に違う点をバグと言っているのではないかと思います。バグと言っても、 不具合ということではなく、関数とは違う独自の仕様ぐらいの意味でしょうが。 getopt(1) コマンドの実際の動作からすると、「空の任意引き数を、引き数が 存在しないかのように」と言うより、「引き数が存在しない場合も、空の任意引き数が あるかのように」と言った方が正確ではないかと思います。原文はそうなって いませんけれど。 添付ファイルの構成は、次のようなものです。 $ tar tzf getopt-2.34.tar.gz getopt-2.34/ getopt-2.34/po4a/ getopt-2.34/po4a/man1/ getopt-2.34/po4a/man1/getopt.po getopt-2.34/po4a/man1/getopt.patch getopt-2.34/original/ getopt-2.34/original/man1/ getopt-2.34/original/man1/getopt.1 getopt-2.34/draft/ getopt-2.34/draft/man1/ getopt-2.34/draft/man1/getopt.1 なお、この getopt.po は、po4a-translate を実行するとき、以下のように "-o unknown_macros=untranslated" オプションを付けてやる必要があります。 $ po4a-translate -f man -m ../../original/man1/getopt.1 -p getopt.po \ -l getopt.1 -o unknown_macros=untranslated -- 長南洋一 -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: getopt-2.34.tar.gz 型: application/octet-stream サイズ: 28806 バイト 説明: 無し URL: <https://lists.osdn.me/mailman/archives/linuxjm-discuss/attachments/20200405/5a7d5456/attachment-0001.obj>