長南です。 このコマンドは面白いですね。列の右寄せ指定もできますから、端末に簡単な表を 表示したいときに、重宝すると思います。 ほぼ全てについてコメントを付けることになったので、ものすごく長いメールに なってしまいました。たぶん、投稿なさった訳文の二倍ぐらいあります。 我ながら、あきれています。お読みになるのも、大変なことでしょう。 ○ DESCRIPTION The column utility formats its input into multiple columns. The util support three modes: column ユーティリティは、入力を複数カラムに分けて整形する。 このユー ティリティは 3 つのモードをサポートする。 のっけからなんですが、この言い方だと、「入力行を複数カラムに分けて」と 取られかねないのではないでしょうか。それは "-t" のときだけで、たとえば、 次のようなファイルがあったとします。 $ cat list.dat aomori ringo 200 3 ehime mikan 100 2 ibaragi nasi 300 2 tochigi ichigo 250 1 yamanasi budo 300 1 オプションなしで column を実行すると、こんなふうになります。 $ column list.dat aomori ringo 200 3 ibaragi nasi 300 2 yamanasi budo 300 1 ehime mikan 100 2 tochigi ichigo 250 1 訳は、「入力行を複数カラムに分けて」ではなく、「入力を複数カラムに分けて」 ですから、間違いとは言えません。でも、厳密に言うと、上の例の場合、column は、 入力をカラムに分けているわけではなく、一列の表示を複数列にしているだけです。 ですから、「入力を複数カラムに整形する」の方が素直だし、紛らわしくないと思います。 いっそのこと、「入力を複数列形式にする」とか「入力を複数列形式で表示する」は どうでしょうか。「入力を整形して、1 行複数列の形式で表示する」もあるかも しれません。このコマンドで便利なのは "-t" オプションですから、ついその場合を 中心に考えてしまいますけれど、"-t" 以外のモードもあるのですし。 それから、ここだけ「カラム」になっていて、ほかは「列」です。訳語を統一するか、 あるいは、混在させるのならば、もう一箇所ぐらい「カラム」にした方がよいのでは ないかと思います。混在させるにしても、できるだけ一貫性のある使い分けをするべき でしょう。「列」より「カラム」の方が縦に揃っている感じがするので、「カラム」を 使いたくなるのはわかります。 ○ columns are filled before rows This is the default mode (required by backward compatibility). 行より先に列を埋める。 これがデフォルトのモードである (後方互換のため必要である)。 「(後方互換のために必要である)」の部分が、本文とどうつながっているのか よくわかりません。 "required" の主語は何なんでしょう? 言い換えれば、何が後方互換によって 必要とされているのでしょう? "This"、つまり、「行より先に列を埋める」 ことでしょうか。それとも、「これがデフォルトのモードである」ということ でしょうか。「行より先に列を埋める」というのは、あるべき動作の一つですから、 それが後方互換によって要求されているというのは、何か変です。ですから、 私は後者だろうと思います。「後方互換によってそう (つまり、これがデフォルトで あることが) 要求されている」ということ。「後方互換のためにそうなっている」 ぐらいが、わかりやすいのではないでしょうか。 それから、"fill" のもっと直感的にわかりやすい訳語はないものでしょうか。 私自身、思いつかずに、「埋める」で仕方がないのかなあと思っていますけれど。 ○ rows are filled before columns This mode is enabled by option -x, --fillrows 列より先に行を埋める。 このモードはオプション -x, --fillrows で有効にされる。 細かいですが、「有効になる」と能動態がよいのでは。 それから、見出しの「テーブル」に句点がついていませんから、見出しは、ここも、 「行より先に列を埋める」も、「。」がない方が、形が揃うのではないでしょうか。 ○ table Determine the number of columns the input contains and create a table. This mode is enabled by option -t, --table and columns formatting is possible to modify by --table-* options. Use this mode if not sure. 入力が含まれる列数を決めて、テーブルを作成する。 このモードは オプション -t, --table で有効にされ、 列のフォーマットは --table-* オプションで修正できる。 使い方が良く分からない場合、このモード を使うこと。 「入力が含まれる」は、「入力に含まれる」のタイポですか。 ここの "determine" は、ユーザが意志的に決定するわけではなく、column が ファイルを読み込み、各入力行を調べて、最大の列の数を知ることですから、 「決定する、決心する (decide)」ではなく、「(推理・観察などをして) 確かめる, 確認する (ascertain)」(ランダムハウス英和大辞典) に当たるのでは ないでしょうか。「決める」というよりも、「判断する、判定する、特定する、 算定する、推定する、確定する、割り出す、見定める、見積もる、突き止める、 はっきりさせる」という感じです。「調べて」でもよいかもしれません。 「入力に列がいくつあるかを確かめて、入力にある列の数を押さえて」なんてのも ありそうです。 「テーブル」は「表」の方がよい気がします。いや、それだと見出しが一文字に なってしまうから「テーブル」になさったのか。それなら、わからないことも ありません。「表 (table)、表モード、表形式」という手もありますけれど。 ここの「有効にされ」についても。「列より先に行を埋める」と同じで、能動態でも よさそうです。 "--table-*" オプションは、表をどんなものにするかを (かなり、細かく) 指定するものですから、「修正」というより、「変更、調整」などではありませんか。 「列の (「表の」でもよさそう) 書式を変更することができる」ぐらい。 「使い方が良く分からない場合」は、うまい訳だと思います。ただし「場合は」 と「は」を入れた方が、自然な気がします。それから、「使うこと」は、 少し語調が強すぎるような。「このモードを使うとよい」ぐらいでは。 ○ The argument columns for --table-* options is comma separated list of the column names as defined by --table-columns or it's column number in order as specified by input. It's possible to mix names and numbers. --table-* オプションの引数 columns は カンマ区切りで、--table-columns で定義される列名リスト、 または入力で指定された列番号のリストである。 列名と列番号を混ぜて使うこともできる。 原文の "it's" は "its" のタイポでしょうか。それとも、"it is" の省略 でしょうか。どちらにしろ、"(a list of) numbers" と複数でないとおかしい のではないかと思うのですが。 内容的には、ほぼ間違えていませんが、何故か読みにくい。まず、「カンマ区切りで」 で切るのが、不安定なんだと思います。「列名リスト」は「列名のリスト」と 「の」を入れた方がよいでしょう (「の」を入れないと複合名詞になってしまいます。 もちろん、それでよい場合も多いのですが)。また、列番号を「入力で指定」するという ことはありません。結果的にそうなる。つまり、「列番号は、入力の順で決まる (すなわち、各行における列の順番だ)」ということ。訳例を挙げると、 --table-* オプションに対する引き数 columns は、列の名前、または 列の番号をコンマで区切ったリストである。列の名前は、--table-columns オプションで定義 (or 指定) したものであり、列の番号は、入力における 列の順番だ。列の名前と列の番号を混ぜて使うこともできる。 あるいは、 --table-* オプションの引き数 columuns は、--table-columns オプションで定義された列の名前、または入力における列の順番の、コンマで 区切ったリストである。列の名前と、順番を混ぜることもできる。 ○ -J, --json Use JSON output format to print the table, the option --ta‐ ble-columns is required and the option --table-name is recom‐ mended. テーブルの表示に、JSON 出力フォーマットを使う。 オプション --ta‐ ble-columns が必要で、 オプション --table-name が推奨される。 上でも言いましたが、「... で」で切るのは、どこか座りが悪いと思います。 「必要であり、必要である。必要。」で切った方が、よいのではないでしょうか。 好みの問題かもしれませんが。 好みの問題だろうかと思っていましたが、今思いつきました。もしかすると、 「で」で切るのは、話し言葉的な語法なのではないでしょうか。「であり」まで 言うのは、書き言葉的な行儀のよい語法。だとしたら、これは文体の選択の問題だ と思います。マニュアルらしいちょっと硬い文体にするか、くだけた文体にするかという。 「必要」でもよいですが、この "required" は「必須」に近いようです。 "recommended" は「... も使用した方がよい」と柔らかく訳してもよいと 思います。 肝心なことを言い忘れていました。このオプションは、「表」といってイメージする ような表を表示しないことです。ですから、「テーブルの表示に、JSON 出力 フォーマットを使う」は、言葉の上からは、全く正しいのですが、なんかしっくり しません。「JSON フォーマットを使用して、表 (or テーブル) の出力をする」 と語順を逆にし、「表示」を消してしえば、まだマシかもしれません。あるいは、 「表示」を「出力」にして、「テーブルの出力に JSON ファーマットを使う」とか。 もっとうまい言い方があればよいのですが。 ○ -c, --output-width width Output is formatted to a width specified as number of charac‐ ters. The original name of this option is --columns; this name is deprecated since v2.30. Note that input longer than width is not truncated by default. 指定した文字数の幅で出力をフォーマットする。 このオプションの元 の名前は、--columns であった。 この名前は v2.30 から廃止された。 width より長い入力はデフォルトでは切り詰められる点に注意すること。 "deprecated" は、「廃止」ではなく、「非推奨」です。実際、このバージョン 2.34 でも "--columns" が使えます。 細かいことですが、"The original name ...; this name ..." のような ときの "this" は、「この」よりも「その」の方が自然だと思います。 「このオプションの元の名前は --columns だったが、v2.30 以降その名前は 非推奨になった」。 "Note that ... is not truncated" の "not" の訳が抜けているので、 意味が逆になっています。なお、"trancate" を「切り詰める」と訳す方が 多いようですが、たいていの場合、「短縮する」のほうがふさわしいとと思います。 なお、「デフォルトでは短縮されない」という、このデフォルトの意味が曖昧です。 デフォルトのモードのことなのか、それとも三つのモードそれぞれのデフォルトの ことなのか (もちろん、"-c" オプションは付けるんでしょうが)。実際には、 後者なのですから、「(なお)、width より長い入力があった場合、3 つのモードの どれでも、デフォルトでは短縮が行われないことに注意してほしい」と補うべきかも しれません。 ○ -d, --table-noheadings Do not print header. This option allows to use logical column names on command line, but keep the header hidden when print the table. ヘッダを表示しない。 このオプションは、コマンドラインでは論理的 な列名を使い、 テーブルの表示時にはヘッダを隠すことができる。 「このオプションは ... 隠すことができる」は、主語と述語 (と言ってよいのかな) の呼応が変です。「このオプションを使用すれば、コマンドラインでは ... 使っておいて、... 表示するときには隠すことができる (or 見せないといった ことができる)」の方が、自然でしょう。 「論理的な名前」って何でしょうか。「リーダーズ英和辞典」には、"logical" の 訳語に、ハッカー用語として「便宜的な」が載っていました。これでしょうね。 「適当な」でもよさそう。 ハッカー用語だと言うので、ついでに "The Jargon File" を覗いてみたら、 語源についてこんなことが書いてありました。 from the technical term logical device, wherein a physical device is referred to by an arbitrary 'logical' name. ○ -s, --separator separators Specify the possible input item delimiters (default is white‐ space). 入力アイテムの区切り文字を指定する (デフォルトは空白である)。 「アイテム」というカタカナ語を使うまでもなく、「項目」でよいと思います。 それから、デリミタは複数指定可能ですから、そのへんを匂わすためにも、 "possible" を省略せず、「入力項目間の区切りに使える (or なりうる) 文字」 と言っった方がよいのではないでしょうか。いや、全然匂っていないか。 一つ上の "-o" オプションでは、「スペース」と言い、ここでは「空白」と言って、 "space" と "whitespace" を区別しようとなさっているのはわかりますが、 「スペース」と「空白」では読者に区別がわからないのではないでしょうか。 ここが whitespace の初出ですし、「ホワイトスペース (スペースやタブ)」 と注付きで言ってしまった方がよいと思います。もっとも、この場合、改行は デリミタにならないようですけれど。 ホワイトスペースは、「空白文字、空白類」と訳しているのを見たことがあります。 それから、これは、"-t" オプションを使ったときの話ですね。デフォルトや "-x" のモードでは関係がない。それならば、「"-t" オプションを使った ときの」とか、「表 (テーブル) モードのときに」とか補足したほうが、 紛らわしくないのではないかと思います。 ○ -t, --table Determine the number of columns the input contains and create a table. Columns are delimited with whitespace, by default, or with the characters supplied using the --output-separator option. Table output is useful for pretty-printing. 入力が含まれる列数を決めて、テーブルを作成する。 デフォルトでは 列は空白で区切られる。 --output-separator オプションを使って、 指定した文字で区切ることもできる。 テーブル出力は綺麗に表示する のに便利である。 最初の文は、「説明」の「テーブル」と同文で、問題も同じです。つまり、 「入力が」の「が」と determine の訳し方に問題がある。 ここは、原文の用語が混乱しています。"--output-separator" の説明では、 出力の列の区切りは、「デフォルトは space 2 個だ」と言っているのに、 ここでは、出力の区切りが「デフォルトでは whitespace」となっています。 まあ、space も whitespace の一つですから、間違いではありませんが、 翻訳では、"whitespace" という原文を無視して、用語を一貫させた方が よいと思います。"--output-separator" で「スペース」を使うのなら、 ここも「スペース」。ここで「空白」をつかうのなら、"--output-separator" でも「空白」。もちろん、"space" と "whitespace" の訳語は別のものに するべきです。 実のところ、「用語の混乱」というより、原文の文章そのものが混乱しているのだと 思います。「入力に含まれる列の数を見定めて ...」と言っているのですから、 次の文に出てくる "Columns" は、文脈から言って、「入力中の列」と考えるのが 自然です。そして、それならば、「デフォルトでは "whitespace" で区切られる」 というのは、正しいわけです。それから「--separator を使って指定した文字で 区切ることもできる」と続けば、全く問題がありません。ところが、この原文は、 "using the --outputp-separator" と書くことで、"Columns are" 以下を 入力の話から、出力の話へと捻じ曲げてしまっています。そのために、"space" と "whitespace" の使い分けがおかしくなっているわけです。文章が混乱していると 言わずにはいられません。 ちなみに、FreeBSD の "man column" ではこうなっています。 -t Determine the number of columns the input contains and create a table. Columns are delimited with whitespace, by default, or with the characters supplied using the -s option. Useful for pretty-printing displays. これを意識して、というか、これから離れようとして、文章がおかしくなったので しょうか。こういうときは、原文通りに訳したら、辻褄が合わないのですから、 訳者の判断で whitespace を space に読み替えるぐらいのことは、やっても 構わないと思います。"-o" を "-s" に変える方は、その方が文章の筋は 通るのですが、「うーん、どうかな。度胸がいるな」と思いますけれど。 "pretty-print" は「リーダーズ英和辞典」に「vt.【電算】《字下げ・改行 などを適切に用いて》 <プログラムなど> の書式を整える [整えて印字する]」 と出ていました。「電算用語か、それならば」と "The Jargon File" を 見てみたら、 prettyprint (alt. pretty-print): 1. To generate ‘pretty’ human-readable output from a hairy internal representation; esp. used for the process of grinding (sense 1) program code, and most esp. for LISP code. 2. To format in some particularly slick and nontrivial way. "human-readable" がキモなんですね。「表出力は、出力を見やすく整形するのに 便利である」「表出力は、表示を見やすいものにするのに便利である」といった ところでしょうか。 ○ -N, --table-columns names Specify the columns names by comma separated list of names. The names are used for the table header or to address column in option arguments. 列名をカンマ区切りの名前のリストで指定する。 この名前はテーブル ヘッダに使われたり、オプション引数の列を 示すために使われる。 「列名」は「列の名前」の方がよいかもしれません。 後半の訳は、ちょっと混乱しているようです。「オプション引数の列を示すため」 ではなく、「オプション引き数中でその (オプションの) 対象になる列を特定 (or 指定) するために使われたりする」ということです。 ついでに言うと、"The names are used ..." と複数ですから、「この名前」 より「そうした名前 (列の名前)」の方がよいでしょう。 ○ -R, --table-right columns Right align text in the specified columns. 指定した列を右詰めテキストにする。 「指定した列でテキストを右詰めにする (右揃えにする、右寄せにする)」 の方が、素直では。 ○ -T, --table-truncate columns Specify columns where is allowed to truncate text when neces‐ sary, otherwise very long table entries may be printed on multi‐ ple lines. 指定した列について、必要な場合は切り詰めを許可する。 指定しない 場合、とても長いテーブルのエントリは、 複数行に表示される。 「指定した列について」という訳し方は、うまい行き方かもしれません。 意図的なのかもしれませんが、"text" の訳が抜けています。それから 「とても」という副詞は話し言葉的なので、文書中では軽すぎる感じが することがあります。試訳を付けてみると、 必要ならテキストの短縮が認められる列を指定する。このオプションを指定 しないと、表の中の非常に長い項目は、何行かにまたがって表示されるかも しれない。 「テキスト」では日本語としてピンとこないということなら、「内容」か 「セルの内容」にすればよいでしょう。 ○ -E, --table-noextreme columns Specify columns where is possible to ignore unusually long (longer than average) cells when calculate column width. The option has impact to the width calculation and table formatting, but the printed text is not affected. 列幅を計算する際に、通常ではなく長い (平均より長い) セルとして、 無視可能な列を指定する。 このオプションは、幅の計算とテーブルの 整形に影響するが、 表示されるテキストには影響しない。 無視するのは「列」ではなく、「長すぎるセル」です。ですから、ここは、 「列の幅を計算するとき、並外れて長い (平均より長い) セルは無視できる列」。 誤解を避けるために、もう少しくどい言い方をすると、「並外れて長いセルが あった場合に、それを無視できる列」。 ここで念のため、用語を確認しておきます。セルというのは、列を構成する マス目ひとつひとつのことですね。そのマス目に入っている内容が長すぎる場合、 列の幅を計算するとき、そのマス目の長さを計算に入れないということです。 (ですから、「セル」は「マス目」と訳せるのですが、表計算を使っている人なら、 「セル」の方がわかりやすいと思います。) 真ん中へんの列に長過ぎるセルがあっても、このオプションを使うと、表の列が きちんと揃います (このオプションを使わないと、列が揃わなくなる)。しかし、 長すぎるセルは短縮されず、二行以上に渡って続けて表示されます (つまり、 「表示されるテキストには影響しない)。なお、"-T" や "-W" オプションを 使った方が、もっときれいな表示ができます。 "unusually long" の "unusually" ですが、「通常ではなく」は、 あまり使わない表現ではないでしょうか。「並外れて、異常に、尋常ならず、 あまりにも」ぐらいでは。 ○ "-E" の続きの部分。 The option is used for the last visible column by default. このオプションは、デフォルトでは、最後の (訳注: 一番右の) 表示列 に使われる。 間違いではないのですが、「表示列」という言い方は、意味が取りにくいと思います。 "-H" オプションによって、列の表示、不表示を指定できる。この "visible" は、その表示する列のことを言っているわけでしょう。「このオプションの動作は、 デフォルトでは、表示する最後の列に使用される (or 適用される)」ぐらいに しないと、読者に分かってもらえないのではないでしょうか。ここで言う 「デフォルト」は、"-E" オプションを指定しない場合のことです。 ○ -H, --table-hide columns Don't print specified columns. The special placeholder '-' may be used to hide all unnamed columns (see --table-columns). 指定した列を表示しない。 名前のない列をすべて隠す場合、特別な代 用文字 '-' を使うことができる。 (see --table-columns) の訳が抜けています。unnamed は、「名前のない」 というより、「名前のついていない」の方がわかりやすいかもしれません。 placeholder の訳には、いつも苦労しますが、「代用文字」というのは、ちょっと 無理だと思います。適切な訳語が見つからないなら、placeholder という言葉に こだわらず、「特別な引き数 (or 値)」ぐらいですませてよいのではないでしょうか。 あるいは、「名前のついていない列をすべて隠すには、列の名前や番号の代わりに '-' という特別な引き数を使えばよい」という手もあります。 ○ -r, --tree column Specify column to use tree-like output. Note that the circular dependencies and another anomalies in child and parent relation are silently ignored. ツリー状の出力に使う列を指定する。 親子関係における循環依存やそ の他の例外は、暗黙のうちに無視される。 「循環依存」というのは、忠実な訳ですが、かえってわかりにくいと思います。 「循環」だけでよいのではないでしょうか。"anomalies" は、ここでは 「例外」というより、「変則的なこと、異常なこと」でしょう。こんな感じです。 ツリー状の出力にする列を指定する。親子関係の循環といった異常なことが あっても (or 異常な指定があっても)、警告を出さずに無視することに 注意していただきたい。 "Note" を省略するのは、ここでは問題ないと思います。「なお」と頭に置いても よいでしょうが。 ○ EXAMPLES Print fstab with header line and align number to the right: fstab をヘッダ行付けて、数値を右詰めで表示する。 「ヘッダ行付けて」は、「を」が抜けています。 「列」というセクション名は、一文字で見づらい、というか紛らわしいので、 「用例」のように二文字にしたほうがよいと思います。 ○ Print fstab and hide unnamed columns: 名前なしの列は隠して、fstab を表示する。 問題ありませんが、「名前のない列」の方が自然。 ○ BUGS Version 2.23 changed the -s option to be non-greedy, for example: バージョン 2.23 で -s オプションの動作を、欲張りでなくした (non-greedy) (訳注: 値が指定されない場合に、後続の値を利用しないようにした)。 例: 訳注があるので分かりやすくなっていて、これは結構です。 ただし、「例:」が行末になってしまっているので、見やすくするために、 「例を挙げる:」などとした方がよいと思います (':' は '。' でもよい)。 ○ Historical versions of this tool indicated that "rows are filled before columns" by default, and that the -x option reverses this. This wording did not reflect the actual behavior, and it has since been corrected (see above). Other implementations of column may continue to use the older documentation, but the behavior should be identical in any case. このツールの歴史的なバージョンでは、デフォルトでは 「列より先に行を埋め る」ことになっており、 -x オプションで動作を逆にすることになっている。 しかし、この言葉は実際の動作を反映していなかったので、 修正を行った (上 記を参照)。 他の column 実装は古いドキュメントを使い続けているかもしれ ないが、 動作はどの場合でも同じである。 "historical" をいつも「歴史的」と訳すのは、感心しません。 ここなら、「従来の、旧来の」でしょう。 "indicate" は、普通「指示する、指摘する」ですが、ここでは「簡潔に述べる、 state briefly (COD)」が一番近いと思います。 "reflect" は、「正しく反映する」と「正しく」を補って、もう少し意味を 強めたほうがよさそうです。「示す、表す」もあります。 "wording" は「言葉遣い、言い方、言い回し」ですが、ここでは要するに 「説明」です。 "documentation" は、コンピュータ関係で使われた場合、「リーダーズ英和辞典」 によれば、 1 【電算】 a ドキュメンテーション, 文書化 《コンピューターのソフトウェア[ハードウェア] などに対し目的・内容・フローチャートなどをまとめて文書化しておくこと》. b 【電算】 コンピューターのソフトウェア[ハードウェア]の説明書[手引書], マニュアル. だそうです。私は、たいていの場合、「文書、関係文書」と言っておけばすむと 思っていますが、ここでは「文書化」に当たるのではないかと思います。くだいて 言えば、「説明、解説」で、これが一番ピッタリではないでしょうか。 つまり、他の実装でもオプションが増えたりして、マニュアルが改訂されている かもしれないが、この部分の文書化 (説明) は古いままかもしれないということです。 それから、"since" の訳が抜けています。 いろいろ指摘したので、試訳を挙げておきます。 このツールの従来のバージョンでは、「デフォルトでは、列よりも先に行を 埋める。-x オプションはこの動作を逆にする」と述べていた。しかし、 この説明は、実際の動作を正しく反映していなかったので、その後訂正されて いる (上記参照)。column の他の実装では、古い説明を今でも使っている かもしれないが、いずれにせよ、動作はこのバージョンと同じはずである。 私は、"in any case" を "may continue to use the older documentation" と呼応していると考えましたが、佐藤さんのように "Other implementations of column" を意味していると取る手も、確かにあると 思います。それから、"should" は、動作が違う場合もあるかもしれないことを 考慮に入れている表現ですから、訳出するべきだと思います。 それから、「引き数」「引数」の表記ですが、JM ではセクション名については、 「引き数」が推奨されています。本文も準じるんでしょうね。私としては、 マニュアル中 (マニュアル群中) で一貫しているかぎり、どちらでもよいと 思っていますが、それでも manpage では「引き数」を使いました (info では 「引数」にしましたが)。 https://ja.osdn.net/projects/linuxjm/wiki/TranslationGuideline -- 長南洋一