太陽がまぶしかったから

C'etait a cause du soleil.

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

f:id:bulldra:20150702081058p:plain

対訳表を作るのが面倒

 システム設計をする時に、データベース名や変数名や表示名などを決めるのが面倒です。一般的には英字文字列で作るのですが、ローマ字で「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行目に言語コードを展開させて、関数をコピーしていけば以下のような多言語対訳シートが作成できます。

f:id:bulldra:20150702081058p:plain

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

f:id:bulldra:20150702084634j:plain

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

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

 Google DocsスプレッドシートではSQLっぽいクエリが使えたり、リアルタイム共同編集や、Excelだけでは物足りなかった処理を担わせることができます。Excelに比べたら遅いとか安定性が悪いとかもあるのですが、Google Docsの利用を検討してみてはいかがでしょうか。最終結果はExcelにもコピーできますよ。