Google spreadsheet でたくさんの単語を一括翻訳しながら英語を勉強する話
ボキャブラリー不足…!
日頃、社員のみんなと英語で会話していて、ある程度聞き取れていてもボキャブラリーの不足により知らない単語の部分が「ぺらぺーらぺーら」と聴こえてしまいます。やはりボキャブラリーが不足していると思い知る日々…!
そのように思い知ってから、会話していて、ドキュメントを読んでいて、小説を読んでいて、分からなかった単語を spreadsheet にまとめて、復習するようにしています。ただ、実施にあたって一点問題がありました。
手作業で翻訳すんのめんどくせー!
んですよ。というのも「英語→日本語→脳内イメージ」ではなくて、「英語→脳内イメージ」ができるようにしたいという目論見があるので、一語に対して、以下のような項目を用意しようとしていたのです。
- わかんなかった単語
- わかんなかった文脈
- 英英辞書での要約
- 英英辞書への詳細リンク
- 日本語訳(どうしても思い出せないとき用)
一列やってみて、「あ、めんどくさ。もうやめたい^^」と思いました。めんどくさいことは、人の手でやるべきではないですね。
自動的に複数単語をまとめて翻訳
しましょうー。
まず、APIで取ってきたいものをリスティングし、それぞれイーカンジのAPIを探します。検討した結果以下がよさそうでした。
- 自分で入力するところ
- わかんなかった単語
- わかんなかった文脈
- APIで取ってくるところ
- 英英辞書での要約
- 英英辞書への詳細リンク
- 日本語訳
英英辞書での要約
spreadsheetのimportxml関数で直接インポートしたいので、登録がいらなくて、無料で、GETで叩けて、xmlでデータが出力できるAPIを選びたい。しかし、Google Dictionary API が Google Translate API に代替わりして有料化してしまったので、辞書のAPIは Glosbe を使うことにします。
Glosbe のデータインポートは以下のような式でやっています。xmlデータにIDが無いので XPath の通し方が強引になっていてつらい。
=importxml("https://glosbe.com/gapi/translate?from=en&dest=eng&format=xml&phrase="&B2&"&pretty=true", "string(//string[text()='meanings']/following-sibling::list/map/entry/string[2])")
英英辞書への詳細リンク
これは簡単。URL繋げてるだけ。
="http://dictionary.cambridge.org/dictionary/british/"&B2
日本語訳
これは、感動しました。素晴らしいことに spreadsheet には、GOOGLETRANSLATE関数があるので、言語ペアを指定してあげるだけです。
=GOOGLETRANSLATE(B2, "en", "ja")
完成!
それでは、出来たものがこちらになります。B列に単語を入れると、Loading と表示された後に関連セルが翻訳で埋まります。
Bulk translation - Google スプレッドシート
上記ファイルは編集できないようにしているので、使いたい場合は「ファイル->コピーを作成」でコピーして、お手元でご利用ください。
なにかしらコードを書くかと思っていたけど、spreadsheet 関数で完結してしまいました。ふぁー、これで翻訳にかける時間が100分の1くらいになって幸せになれるはずです。
日々の積み上げは裏切らないはず。みなさんも良い英語ライフを。