kubotaの日記: RFC025?
RFC025の和訳でしょうか。今回はちょっと添削風にいってみます。
-
RFC025: Operators: Multiway comparisons
RFCの025番: 演算子: 比較の多くの方法
題名だけど、これだけだとさすがに分からないけど、内容を読んだ後なら、 複数の比較演算子を用いた比較表現についての内容なので、 意訳モードで「複数演算子による比較」とか、 「複合比較」などと呼んでおけばいいかも。 -
This RFC propose that expressions involving multiple chained
comparisons should act like mathematician would expect.
この RFC は多様の鎖でつないだ比較が巻き込む表現が数学者の 予期したようにふるまうことを提案する。
「この RFC は...提案する」という全体構成は OK。 「多様の鎖でつないだ比較が巻き込む表現」が「数学者の予期した」 ように「ふるまう」、というのが提案の内容。事実の描写ではなく、 こうあるべき、ということを提案しているのだから、should を きちんと訳しましょう。で、問題は「多様の鎖でつないだ比較が巻き込む表現」 とは何ぞや、ということです。じつは、この訳、ほとんど間違ってないんです。 「多様の」→「複数の」、「鎖でつないだ」→「連続した」と変えると、 「複数の連続した比較」となり、これだと意味が通じるでしょう? 「巻き込む」だけど、じつはここでひとつだけ誤訳があり、 「比較が」じゃなくて「比較を」です。「比較」は 「involve」の 目的語だから。「比較を含む表現」ってところかな。
-
That is, if you say this: 0 <= $x < 10 it really means
something like: 0 <= $x && $x < 10
それは、次のように言う: 0 <= $x < 10 (変数 $x は 0 以上 10 未満である) それは、他の何かと似たような意味である: 0 <= $x && $x < 10 (変数 $x は 0 以上であり、 かつ、変数 $x は 10 未満である)
さて、なぜ上記の範囲をひとまとめにしたかというと、 これでひとつの文だからです。よ~く見てみましょう。 「it really means...」は小文字で始まっていますね。 でも、その次の文 (「The $x would...」) は大文字で始まっています。次に内容ですが、まず「That is,」は「すなわち」とか「つまり」という意味です。 これは慣用句ですので覚えるしかありません。残りの実質的な内容ですが、 「if」を忘れてはいけません。前半は 「もしあなたが 0 <= $x < 10 と言うならば」ですね。
後半ですが、まず、「something like」が「他の何かと似たような意味」 というのはまちがい。 「like」が「似たような」というのは正しいですが、何に似たようなかと 言うと、その後の式 (0 <= $x && $x < 10) に似たような、 という意味です。「~に似た何か」で、「~のようなもの」 「だいたい~」というふうな意味です。
-
The $x would only be evaluated once, however.
この (スカラー変数) $x はしかしながら、たった一度評価される。
まったく正しいです。ただ、この文脈では「評価」は専門用語だ、 ということに注意。そういう意味では、この分野の日本語文を 正しく読めない人にはこの文は正しく翻訳できない、 と言えるかもしれません。 -
(This is very much like the rewrite rule we use to explain
assignment operators such as $x += 3.)
(これは $x += 3 というような演算子に割り当てられた仕事の説明を用い る再書き込みの決まりにとてもよく似ている。)
まず、なにが言いたいかを先に説明しちゃうと、 $x = $x + 3 と $x += 3 というのはほとんど同じ意味だけど、 前者は $x が 2 回評価されるのに対し、後者は 1 回だ、 という違いがあるわけです。それと同じことが、今回の、 0 <= $x && $x < 10 と 0 <= $x < 10 についても言えるわけです。で、翻訳に移ると、「これは~にとてもよく似ている」という 全体構造は OK です。問題は「~」の部分です。 assignment operator が「演算子に割り当てられた仕事」になっていますが、 辞書で「assignment」を引いて「割り当てられた仕事」という訳を見たとき、 「assignment なになに」で「なになにに割り当てられた仕事」 という意味になる例文は載っていないと思います。 このように、名詞ふたつが並んでいるときは、 前の名詞が形容詞のような役割になって後の名詞を修飾する、 というのが基本です。だから、「assignment operator」は、 「演算子の割り当て」「演算子への割り当て」ではなく、 「割り当ての演算子」と訳すほうが正しいです。で、 「割り当ての演算子」って何? というと、「代入演算子」のことです。 たぶん、この文脈では assignment は術語で 「代入」としか訳せないのではないかと思います。
今回の総合的な注意点は、
- 術語・専門用語は知らないと訳せない。ので、 その分野の日本語にまず親しんでおきましょう。
- 単語ひとつひとつの意味も重要だけど、 それらの単語がどういうふうにつながっているか、 それらの単語どうしの関係はどうか、 ということが極めて重要です。そこに神経を払ってください。
- 英語の単語と日本語の単語は、決して一対一に対応するものではありません。 単語を辞書で調べたときに与えられる訳語は、 翻訳ではなく意味を説明したものなのです。 ですから、辞書に与えられている例文を読んで、 その訳語がほんとはどういう意味合いで使われるものなのかを 確認するようにしましょう。
というくらいでしょうか。