Google Docsのスプレッドシートで多言語対訳表が簡単に作れるよ

対訳表を作るのが面倒

 システム設計をする時に、データベース名や変数名や表示名などを決めるのが面倒だ。一般的には英字文字列で作るのだけど、ローマ字で「kokyaku」とか付けるのはダサいし、いちいち辞書を引いていくのは億劫。

 多言語対応のために表示名をフランス語にするみたいな要件もでてくるが、これらの作業の下準備を実現する手段として、Google Docsのスプレッドシート(表計算ソフト)の翻訳関数を利用する方法が考えられる。

=IF($A2<>"", GOOGLETRANSLATE($A2,"ja","en"),"")

 指定セルの内容を翻訳するには「GOOGLETRANSLATE(値,ソース言語,ターゲット言語)」関数を入力する。例えばセルの計算式に上記式を入力すると「A2セルの内容がある場合にA2セルの値を日本語から英語に翻訳する」という意味になる。

スプレッドシートで多言語対訳表を作る

 ソース言語やターゲット言語を指定するには、以下の様な言語コードが利用できる。言語コードは「ISO 639-2」で定義されていますが、どの組み合わせが翻訳可能であるのかはヘルプに明記されていないため試して見る必要がある。

言語コード 言語名
ja 日本語
en 英語
fr フランス語
it イタリア語
de ドイツ語
zh 中国語
ko 韓国語

 Google Docs のスプレッドシートはExcelと同様に「$」をつけない参照セル指定をコピーすると参照先セルが相対的に自動変換されるので、以下のような関数を作ってコピーしておけば捗る。

=IF($A2<>"", GOOGLETRANSLATE($A2,$A$1,B$1),"")

 上記関数は、A1の言語から同じ列の1行目の言語に翻訳するという意味になるので、1行目に言語コードを展開させて、関数をコピーしていけば以下のような多言語対訳シートが作成できる。

 セルをダブルクリックすると元にしているセルが強調される。この例では、「年代」という言葉を「ja(日本語)」から「fr(フランス語)」に翻訳しようとしている。複数セルにあらかじめ関数を展開しておけば項目の追加も簡単。

 クーゲルシュライバー! 機械翻訳の結果が正確とは限らないのでレビューをしたり、してもらう必要性はあるが、いちいち翻訳ソフトに入力していくのに比べたら格段と楽になる。

Excelだけでは出来ないことができる

 Google DocsのスプレッドシートではSQLっぽいクエリが使えたり、リアルタイム共同編集や、Excelだけでは物足りなかった処理を担わせることができる。今のところはExcelに比べたら遅いとか安定性が悪いとかもあるが、Google Docsの利用もなかなか便利だと感じた。