翻訳について

【翻訳】Rustにおけるパフォーマンスの落とし穴 - $ Read \overset{\mbox{me}}{\rightarrow} Blog$

以下、上のやつを翻訳している時考えたことを思いつくまま羅列する。まともな英語教育を自分に施していないので、こういう書き方をしていいものかと悩んだ。

日本語として意味の通る文章を書くようかなり注意を払ったつもりだが、翻訳に対する姿勢が間違っている、公開をやめるべき、英語日本語を勉強し直せ、等の意見ありましたらコメントなどにて指摘していただけると幸いです。

冗長な訳・原文の改変

原文これ。

so here’s a handy list of some things that may bite you and how you can speed them up.

訳文これ。

ここでは、あなたを困らせるかもしれないいくつかの点をリストにして、それについてどのようにしたら速度を改善できるかを示す。

直訳調「ここにはあなたに噛みつくかもしれないものと、それをスピードアップする方法の手軽なリストがある」。

分かりづらいと思ったので適当に語を変えたり入れ替えたり付け加えたりして日本語っぽくした。

自分が翻訳するとき、こういう操作を至る所で施しているのだが、これは翻訳と呼べるものなのだろうか。

意訳

原文これ。

Rust gives us a good number of tools to avoid needless allocations. It however also gives us tools to do them if we’re so inclined.

訳文これ。

Rustは、不要なアロケーションを避けるためのツールを多く提供している。しかしながら、それは我々が不要なアロケーションを避けたいと強く望まないことには得難いものである。

二文目である。訳に自信がない。if we’re so inclinedに着目すると、これはツールを使いたいと強く思わない限りは使えるようにならないよ、ということを言っているのだと感じた。後に続く文はborrowチェッカーと意見が合わなかった時安易にcloneするとパフォーマンスを損ねるよ、なので意味は通っている(と信じたい)。

用語の変更

「自作のハッシュ法を使う」という節の原文はMaking a Hash of itなのだが、よく分からなかったのと、Hashだけだと暗号的なアレと区別がつかなかったので変えた。

原文の切り落とし

原文これ。

I won’t give an example here, as the operations are too diverse to hope covering even the most popular cases.

訳文これ。

このテクニックはあまりに広く使われているので、ここで実例を挙げることはしない。

直訳調にすると「私はここでは実例を与えない、もっとも有名なケースでもカバーするにはあまりにも操作が多様すぎるからだ」だと思う(怪しい)。特に意味のあることを言っていると思わなかったので雑に語を落とした。

訳語の不統一

allocationの訳語は「アロケーション」なのだが、「メモリ上に割り当て」と訳している箇所がある。

原文これ。

Also regarding iterators, if you use FromIterator::collect(), be aware that you incur allocation for a new collection and force evaluation for each iteration step.

訳文これ。

同じくイテレータに関して、もしFromIterator::collect()を使っているなら、それが新しいコレクションをメモリ上に割り当て、それぞれのイテレーションステップごとに評価を強制していることに注意してもらいたい。

incur allocation for new collection and …を「新しいコレクションのためにアロケーションを負担させ…」と訳したくなかったのでこうなった。

内容が理解できていない

これは本当によろしくない。記事後半の「不要なアロケーションを避ける」のCowを使えという部分と、「不要な仕事を避ける」のクロージャの部分が何を言っているのかよく分からなかった。わかるまで調べて書くべきなのだがもう少しで公開できると思っていたので魔が差した。