Make組ブログ

Python、Webサービスや製品開発、ライブラリー開発についてhirokikyが書きます

翻訳してて「訳がわからないよ」ってなったとこ3点

最近ちょこちょこ翻訳やり始めたので、その中で躓いた文章を3つほど載せときます。

1. 文構造が分からない

Unladen Swallow adds a just-in-time (JIT) compiler to CPython, allowing for the compilation of selected Python code to optimized machine code.

PEP 3146 -- Merging Unladen Swallow into CPython | Python.org

問題は "allowing" 以下です。特に "to optimized machine code" の "to"。
構造が理解できてないのが痛いです。
理解できるのは、JITコンパイラを追加する利点が "allowing" 以下で書かれているってことくらいです。
結果的には、なんとなくで

Unloaden SwallowはCPythonにjust-in-time(JIT)コンパイラを加え、選ばれたPythonコードを最適化された機械語コンパイルできる。

と訳しました。
今思えば少し表現を変えたいですが、まぁ良いでしょう。

  • 解決法:前後の文から、何となく。
  • 反省点:文の構造が理解できてない。
追記(2011_07_17)

@shibukawaさんと@ymotongpooさんにアドバイスをいただけました。ありがとうございます。
まず、お二人の訳を見てみましょう。それからポイントを紹介します。

@shibukawaさん

Unladen SwallowはCPythonにJITコンパイラを追加します。このコンパイラは一部のPythonコードを最適化された機械語コンパイルします

@ymotongpooさん

Unladen SwallowはCPythonにJITコンパイラを追加したものです。それによってPythonコードが機械語に最適化された形でコンパイルされます。

ポイント

  • 文は適度に区切る。英文は始めに言いたいことを言う、whichやカンマを続けて長くなる。
  • 日本人だけでなく、理系は文章書くのが下手。ネイティブが書いてるとも限らない。
  • IT系の文章は受身形に注意。誰が何をしてるの?
  • 代名詞を名詞に置き換えると、理解しやすい文になることも
  • イメージとしては、ITに強いけど横文字ばっかり使う人の言葉を、ITに弱い人に伝えるイメージ。

感動です。私の訳と比較して気づいた点を書いておきます

  • 文を2つに分ける

この文で1番言いたいことは「JITコンパイラを加える」ってことなんですね、そこから allowing 以下に伸びています。そこで文を区切ってやると日本語として違和感が無くなるんですね。

  • allowing を「〜できる」と訳さない

文として「〜できる」と表現していないのですが、意味合いは伝わってきます。

  • Unladen Swallowの正体が明確

UnladenSwallowはPythonの実装の1つです、CPythonの高速化を目的としたプロジェクトです。
私の文は「UnladenSwallow」が何者か分かりにくい。理解が足りていなかったように思います。

追記は以上です

2. 慣用句の知識不足

この文の続きも

Unladen Swallow's JIT compiler takes advantage of data collected at runtime to make checked assumptions about code behaviour, allowing the production of faster machine code.

PEP 3146 -- Merging Unladen Swallow into CPython | Python.org

"to make checked ~ behaviour" がどこに修飾しているか分かりませんでした。
最初は "at runtime" にかかっているものとばかり思ってました。
ですので、「コードの振る舞いについてのチェックされた前提を作る実行時間」ってなんだよ、と思ってました。
しかし、文の動詞に注目してみると "take advantage of ~ to... " の形だと分かります。
ですので 「"data collected at runtime" を活かして "make checked assumptions ~ behaviour" する」という文になります。
"allowing" 以下は、それ以前にかかっています。何ができるのかを説明していますね。

Unladen SwallowのJITコンパイラは実行時に集められたデータを活かし中間コードを作るので、機械語をより早く作ることができる。

正直言って、「中間コード」と訳すのは適切ではないです。
こちらも解決していきたいです。

  • 解決法:慣用句を見つけれた
  • 反省点:単語だけ調べてもダメ

3. 1文づつ訳しすぎている

最後はアッサリ系でいきましょう。

We use a combined 'release and feature branches' methodology

http://docs.fabfile.org/en/1.1.1/development.html
疑問なのが "'release and feature branches' methodology" です。
しかも "combined" って一体何と何が一体化されてるんでしょう。
一体どんな方法論なのかと思いましたが、後ろの文で詳細が書かれていたので分かりました。

私たちは 'リリースブランチとフィーチャーブランチ' の2つで開発をすすめています

まぁこんなとこです。
しかしこれを "'release and feature branches' methodology" と呼ぶのでしょうか。ググってもでてきません。
造語みたいなものかなーと解釈しています。
数十分ググり続けたのがあまりに馬鹿らしかったので紹介します。

  • 解決法:後ろの文章を読む
  • 反省点:一文づつ翻訳しようとしすぎていた

おわりに

なぜこの記事を書いたかというと、タイトルが言いたかったからです。
記事にしようとして過去の自分の翻訳をみると、その下手さに驚きました。と言っても、翻訳したのは少しだけです。ドキュメント1つ翻訳しきったこともありません。座学で英語を勉強するよりも、実際に翻訳してみると学ぶことが多いようです。
これからも翻訳していくと思います。おかしなとこがあったら半笑いでdisってくれると嬉しいです。

翻訳してます!