読者です 読者をやめる 読者になる 読者になる

モーリーのメモ

プログラミングやCG作成等、アプリ開発を中心に情報を収集中!

翻訳サイトから翻訳結果を取ってくる!:Googleスプレッドシート

 私は英語の文章を読むときは、翻訳サイトにたよりまくりです。
 翻訳サイトの精度は以前より良くなっていると感じますが、それでも変な日本語になるケース少なくないです。
 なので、何個かの翻訳サイトの訳を見比べて、意味の通るように訳すことが多いです。
 この何個かの翻訳サイトの訳を集める作業が面倒くさいので、自動化します。
 
 こんな感じにします。
 ↓訳したい英文をスプレッドシートに貼り付けます。
f:id:mmorley:20161112231831p:plain:w450
 ↓翻訳サイトから翻訳結果を取得し、下図のように並べて表示します。
f:id:mmorley:20161113001036p:plain:w500 
 翻訳結果を参考にして、『訳』の行に自分の訳を書きます。
 
 ちなみに、翻訳サイトの仕様が変わると使えなくなります。
 あしからず。

使用環境

 私が使用している環境です。

翻訳サイトについて

翻訳サイトのリスト

 私がよく使う翻訳サイトは、下記の3つです。

 他にもいっぱいあります。

使用する翻訳サイトの条件

 この中で、今回の自動化に使うのは下記のものです。

  • 無料で使用できる
  • ログインが必要ない
  • URLに原文(訳したい英文)を送って、翻訳結果のページが得られる
  • 翻訳結果のページから翻訳部分だけテキストの検索で抽出できる

 これに該当したのは、下記の3つです。

翻訳サイトの仕様

 使用する翻訳サイトで、英語から日本語に訳す場合の仕様です。
 URLの形式と、翻訳結果のページ内で翻訳を表示している部分のタグを調べました。
 原文(訳したい英文)は、URLに使えない文字を変換(半角スペースを%20にする等)する必要があります。
 下記は『This is a pen.』を翻訳する際の例です。

Weblio 翻訳
URL http://translate.weblio.jp/?lp=EJ&lpf=EJ&originalText=This%20is%20a%20pen.
翻訳部分 <div class=transResultMain ID=transResultMainLn><ol><li class=translatedTextAreaLn><span>これは、ペンです。</span>

 翻訳結果が複数の場合、1つ目だけ使用します。
 <ol>の部分が<ul>になる場合がありました。

Excite 翻訳
URL http://www.excite.co.jp/world/english/?before=This%20is%20a%20pen.&wb_lp=ENJA
翻訳部分 <textarea id="after" class="resizable" cols="37" rows="13" name="after">これはペンである。</textarea>
Dictionary.com 翻訳
URL http://translate.reference.com/translate?src=en&dst=ja&query=This%20is%20a%20pen.
翻訳部分 <textarea class="form-control targetArea" id="clipboard-text" rows="1" cols="26" placeholder="Translation" readonly>これはペンです。</textarea>

スプレッドシートで作成

 以上を踏まえて、冒頭で書いた機能を作ります。
 ちなみに、Googleスプレッドシートは、無料で使えるオンラインの表計算Excelみたいな)アプリです。
 利用するにはGoogleアカウントが必要です。

2.新しいスプレッドシートを作成

  1. 画面右下の赤い『+』をクリック
    f:id:mmorley:20160511135546p:plain
    『無題のスプレッドシート』が開きます。
  2. 名前を変更
    名前は何でも構いません。(『翻訳支援』など)
    f:id:mmorley:20160511140418p:plain:w500

3.スクリプトエディタを開く

  1. 『ツール』-『スクリプトエディタ』をクリック
    f:id:mmorley:20161018224209p:plain:w500
    スクリプトエディタで『無題のプロジェクト』が開きます。

4.コードをコピペする

  1. スクリプトエディタの『コード.gs』にあるコードを全て削除
  2. 下記のコードをコピーして、『コード.gs』に貼り付ける
    (右下の『view raw』を別窓で開くと、全選択しやすいです。)

5.コードを保存

  1. 『保存』ボタンをクリック
    f:id:mmorley:20160511155732p:plain:w300
  2. プロジェクト名を入力して『OK』をクリック
    名前は何でも構いません。(『翻訳支援』など)
    f:id:mmorley:20161104094625p:plain:w400

6.スプレッドシートにメニューを追加

 『翻訳』メニューを追加します。

  1. 『実行』-『onOpen』をクリック
    f:id:mmorley:20161114104205p:plain:w300
  2. 『許可を確認』をクリック
    f:id:mmorley:20161113225118p:plain:w350
  3. 『許可』をクリック
    f:id:mmorley:20161113230637p:plain:w350

 スプレッドシートに戻ると、メニューに『翻訳』が追加されています。
f:id:mmorley:20161114104217p:plain:w500
 設定は以上です。

使い方

 スプレッドシートの最初のシートに、訳したい英文を貼り付けます。
 1行が長すぎるときは、文の区切りに改行を挿れたほうが作業しやすいかもしれません。
f:id:mmorley:20161114104913p:plain:w300
 *空行は翻訳の際に無視されます。
 メニューの『翻訳』-『翻訳を実行』をクリックします。
f:id:mmorley:20161114105419p:plain:w500
 しばらくすると、下図のように各翻訳サイトの訳が表示されます。
 時間はそれなりにかかります。
f:id:mmorley:20161114111746p:plain:w400
 翻訳サイトの訳を参考にして、『訳』の行に自分の訳を書きます。
f:id:mmorley:20161114110809p:plain:w400
 メニューの『翻訳』-『訳の行だけ別窓に表示』をクリックします。
f:id:mmorley:20161114111149p:plain:w500
 下図のように、表示されます。
 訳文だけを選択できます。
f:id:mmorley:20161114111438p:plain:w500

あとがき

 翻訳サイトについて調べている時に、他と比べて、Google翻訳がちゃんとした訳になってると感じることがありました。
 と思ってたら、Google翻訳の翻訳精度が向上したとのニュースが話題になっているのを発見。
 なるほどな〜と思いましたが、Google 翻訳は今回の方法だと訳を抽出できなかったサイトです。
 Googleは翻訳のAPIを提供していますが、こちらは有料です。さすがです。
 大本命が使えないのは残念ですが、Google翻訳といえど、まだまだ完璧ではないので、比較しながら翻訳するのもまだ意味がある、、はずです。
 Google翻訳だけで、すべて事足りるようになれば、それはそれで便利ですし。