Python の poll.modify(fd, eventmask) の説明

翻訳で困ると言うよりは…

原文がよくない、なんてのは、いくら「ドキュメント品質が高い」言うてもあるさ、そりゃ。

ふと「poll.modify(fd, eventmask)」の説明がヒドイことに気付いた。というよりか、Python ドキュメントの一つの特徴として、「システムコールとかへの単なる薄いラッパー」のドキュメントが割と全体的に「ぶっきらぼう」なのね。

まぁ…、こんなのを必要とする人たちは「newbies」(衣料用洗剤ではない)なんかではないから、別に誰も困らないんだろうけどね。今の場合何が困るって、

  1. 原文は何一つ間違ったことを結果的に言ってない
  2. けれど「ん?」と立ち止まって悩む程度には「クリアではない」
  3. 翻訳は少々誤訳ちっくだが原文同様「結果的に何も間違ってない」

まぁどうでもいいんだろうねぇ。まず What’s New で書かれた紹介はこう:

modify method was added to the existing poll objects; pollobj.modify(fd, eventmask) takes a file descriptor or file object and an event mask, modifying the recorded event mask for that file.

ここではつまり modify は「イベントマスクを修正する」と言っている。まぁこれは素直な言い回しだね。これが 2.6 (2.7) のリファレンスではこう:

Modifies an already registered fd. …(省略)…

つまりファイル記述子ちゃんを修正する、と言う。翻訳は「登録されているファイル記述子 fd を変更する」。翻訳者が「fd 値を書き換える」と捉えていたのなら「誤訳」である。そうだとすれば事実と違う。この翻訳はそう読めなくもない。

だけれども「ただの読みにくい英語/日本語」だとすればこれは誤訳でもない。言葉足らずなだけ、と言えるので。これがすることは「対象 fd の監視イベントを変える」ことである。これが「事実」。だから、英文が舌足らずでも翻訳だけはわかりやすく、と思うなら単に「を」を「について」に書き換えるだけでいい。「登録されているファイル記述子 fd について変更する」と。これでも本当の目的「eventmask の変更」ということを伝えていないのでまだクリアとも言えないが、最初よりはマシだ。

では。なんでこれでもなお「誤訳とは言えない」となるのか。これはたとえば「ご飯を食べる」が「箸を使って食べる」のかそうでないのかを伝えるのかそうでないのかについて、とやかく言うのと似ている。要するに「変更する」その変更内容を伝えていないだけだ、と言い切れば全く誤訳なんかではないし、原文も同じ。原文も「どう変更する」か言っていないだけなのだ、というわけだ。

そして…、じゃあどうすんのよ、ってなったときに、「これ読むの元のシステムコールを知らないユーザじゃないんだから、どーでもいいんじゃね?」兼「間違ってねーし」となるのがね、痒いつうかなんつうか。