Nuxt.js はユニバーサルな Vue.js アプリケーションを構築するためのフレームワーク。Next.js は React.js をサーバーサイドレンダリングするが、こちらは Vue.js をサーバーサイドレンダリングする。もうすぐバージョン 1.0 がリリースされそう。
- Nuxt.js - Universal Vue.js Applications
- nuxt/nuxt.js: Framework for server-rendered Vue.js applications.
その Nuxt.js の公式ドキュメントの翻訳にちょうど 1週間前に着手した。
前回のエントリー で書いたように @kenchan くんさん主催の @t_wada さんを囲む会で相談などしつつ、だいたい翻訳スタイルが固まってきたので、翻訳プロジェクトの一例として参考になればと思い、紹介する。
どのように翻訳していっているか
実際にどのような感じなのかはプルリクエストを見てもらうのが一番だと思うが、ポイントを説明していく。
(1) Vue.js 公式サイト日本語翻訳ガイドに準拠
Nuxt.js は Vue.js コミュニティのものなので、ある程度 Vue.js 本体のドキュメントと合わせておいたほうが読みやすいだろうと判断し、基本的に Vue.js 公式サイト日本語翻訳ガイド に準拠するようにした。「翻訳スタイル」とか「翻訳のゆらぎ&トーン」とか。
(2) 日本語としての読みやすさ優先
Vue.js 公式サイト日本語翻訳は、
原則、一語一句翻訳、ただ日本語として分かりにくい場合は読みやすさを優先
という方針。今回の Nuxt.js もはじめは原則、一語一句翻訳で訳し始めたんだけど、どうもしっくり来ない(= 日本語として読みにくい)箇所が多々でてきてしまって。それは一文が長いことと、語順の違いに起因していると判断した。
一旦 足を止めて「原文に忠実であること」と「日本語として読みやすいこと」のどちらを優先させるべきか考えてみた。両立させることが最も良いのは明白で、問題はどちらかのほうに倒さなければならない場面があったときに、どちらに倒すかである。
そうして考えてみたときに、そもそも翻訳をする理由は、原文で読むときよりも、読んで理解するスピードを上げられるようにするためである。そうすると、日本語として読みづらくて、理解するのに時間がかかってしまっては本末転倒である。そう考えて「日本語として読みやすいこと」を優先させるようにした。
(3)「英語 -> 日本語への変換」と「読みにくい日本語 -> 読みやすい日本語への変換」のコミットを分ける
とはいえ、原文から離れてしまって、その際に意味まで変わってしまうリスクがあるので、正確さを担保するために次のようなステップを踏むようにした。
- まずは日本語としての分かりやすさは横に置いて、原文に忠実に訳す。原文に忠実な訳をコミットする(git の commit)
- 読みにくい日本語を読みやすい日本語に書き換える作業は別のコミットにする
こうすることで何が良いかというと、
- 翻訳する人にとって「英語 -> 日本語への変換」と「読みにくい日本語 -> 読みやすい日本語への変換」を頭を切り換えて行うことができる
- 翻訳をチェックする人にとっても、主に「英語 -> 日本語への変換」を見れば、意味が逸脱せずに訳されているかが把握できるのでチェックしやすい
「読みにくい日本語 -> 読みやすい日本語への変換」では、具体的には下記のようなことをやっている。
- 一文を読みやすい単位に適宜分割する(英語では後ろから修飾する場合が多いので、無理に一文に収めるよりも、一旦、文を切ってしまったほうが読みやすくなる場合が多い)
- 直訳すると意味が通じにくい箇所を、適当な日本語に置き換える。その際に原文に書いてないことを補足する必要がある場合は「訳注」として追加する
(4) 原文をコメントアウトして残す
以前 Vuex の公式ドキュメントを翻訳した ときに感じたのは「レビューしづらいな」ということ。
原文と照らし合わせて読むのに、GitHub の Files changed と英語の公式ドキュメント をブラウザでそれぞれ開いて、ウィンドウを左右に並べて読んでいたんだけど、ひとつのウィンドウに情報がまとまっていたほうが読みやすいと考えた。大きなディスプレイで読むときもそうだけど、ノート PC で読むときは特に。
そこで原文をコメントアウトして残すようにして、訳を一文一文の隙き間に挿入するようにした。訳すときに多少面倒くささが増すが、Emacs で原文を選択してキーボードショートカットでコメントアウトしている。訳が適当か確認する作業の効率は格段に上がった。
@t_wada さんが『プログラマが知るべき97のこと』や『SQL アンチパターン』を監訳したときも、原文をコメントアウトして、段落ごとに訳を挿入する方法をとったらしい。
進捗 -「ガイド」の翻訳が一段落した
上のようなスタイルで作業を進めていって、1週間かけてやっと「ガイド」の翻訳が一段落したので、リンクを貼っておく。Nuxt.js の概要を把握するには役に立つと思う。
明日から「API」を訳していく。
一緒にやりませんか?
Nuxt.js 興味ある、一緒にやろう!という方がいらっしゃったら、ぜひ Slack の vuejs-jp にジョインして声かけてもらえたらと思う(よろしくお願いします!)