この記事でわかること!
- Googleスライドの日本語文章をGoogle Apps Scriptで一括翻訳する方法がわかる。(複数言語対応)
Google Slide (Googleスライド)を無料で自動翻訳したい。
Google Apps Scriptを使えばGoogleスライドを無料で翻訳することができます。
GCPのTranslate APIは課金が必要ですが、GASの翻訳関数を使えば無料で翻訳可能です。
GASで自動翻訳スクリプトを作ってみよう!
今回は下記のスライドを使用します。10ページあります。日本語で作成したファイルです。
ファイル内の日本語⇒英語に一発翻訳してみたいと思います。
テスト用 Googleスライド
https://docs.google.com/presentation/d/1wB3tES3WvSbrMY6YXDIYsIEUCwrgGLf7jDGSPEHnKRo/edit?usp=sharing
このサンプルファイルを試す場合は、ダウンロードしてご自分のGoogle Driveに保存して使用してください。
スライドファイルを特定するためにスライドのファイルIDを確認しておきましょう。
ファイルIDはスライドのURLから確認することができます。スライドをブラウザで開きブラウザのアドレスバーに表示されるURLを確認します。上図の例ですとd/
の後ろから/
の手前までがファイルIDです。これをコピーしておきましょう。次の項でスクリプトに張り付けて使用します。
▲スクリプトの作成方法はこちらの記事で解説しています。
今回書いたスクリプトはこちら↓です。
//Googleフォームを翻訳します。 //翻訳ツールはGoogleトランスレーターです。 //元ファイルを直接変換してしまいます。運用の際はファイルをコピーしてから翻訳してね。 const SLIDE_ID = "SLIDE_IDをペーストしてね" function myFunction() { var p = SlidesApp.getActivePresentation(); var p = SlidesApp.openById(SLIDE_ID) Logger.log(p.getName()); var slides = p.getSlides(); var shapes; var slide1 = p.getSlides()[0]; var shape1 = slide1.getShapes()[0]; var textBefore ; var textAfter; slides.forEach(function(slide){ shapes = slide.getShapes(); shapes.forEach(function(shape){ rangeA = shape.getText(); textBefore = rangeA.asString(); //第2引数:翻訳前言語、第3引数:翻訳後言語を指定します。 textAfter = LanguageApp.translate(textBefore, "ja", "en"); rangeA.setText(textAfter); }) }) }
▲コピペしたGASコードはこのままでは使用できません。先ほどコピーしたファイルIDを上図の部分にペーストして差し替えます。
スクリプトを実行してみましょう。スクリプトを実行したらスライドを開いてみましょう。翻訳されているはずです。
スクリプトでの翻訳実行結果と翻訳精度
-
おまえは今まで食ったパンの枚数をおぼえているのか?
実行結果
Do you remember how many breads you have ever eaten? -
▼
だが断る
この岸辺露伴が
最も好きな事のひとつは
自分で強いと思ってるやつに「NO」と
断ってやることだ…実行結果
But one of the things I like most about Rohan Kishibe is to say “NO” to the guy who thinks he’s strong … -
▼
大切なのは『真実に向かおうとする意思』だと思っている。
向かおうとする意志さえあればいつかはたどり着くだろう?
向かっているわけだからな…。違うかい?実行結果
I think the important thing is “the will to go to the truth.” If you have the will to go, will you reach it someday? Because I’m heading … Is it different?
岸辺露伴がきちんと”Kishibe Rohan”と読めているのすごくない?
GASのポイント解説
LanguageApp関数の使い方
翻訳の処理は下記のようにLanguageApp関数を使っています。
//第2引数:翻訳前言語、第3引数:翻訳後言語を指定します。 textAfter = LanguageApp.translate(textBefore, "ja", "en");
コード内ではja(日本語)からen(英語)に翻訳しています。逆に英語を日本語に翻訳する場合はLanguageApp.translate(textBefore, "en", "ja");
とします。
他にもかなりの数の言語に対応しています。対応言語は下記の言語コードをご覧ください。
言語コード一覧
https://cloud.google.com/translate/docs/languages
翻訳精度はどうなのか?
翻訳精度についてですが今のところ特に問題があるようには思えませんでした。
試しにLanguageApp関数で翻訳した文章を、翻訳精度に定評のあるDeepL翻訳を使って日本語に再翻訳してみました。10個程の文章をテストしてみましたがすべて意味が通りました。
注意点
先にもお伝えしましたが、実際の運用では元のスライドファイルを直接スクリプトで編集してしまうと取り返しがつかないので、スクリプトの処理の中でスライドファイルのコピーをしてから翻訳した方がいいかと思います。
需要があるようでしたら、そちらのバージョンのスクリプトも公開しようかと思います。
関連記事
まとめ
Googleスライドを自動翻訳してみました。
このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!
▲Google Apps Scriptの入門書として間違いのない一冊です。ノンプログラマーの方にもわかりやすく解説されています。V8ランライム対応版にアップデート済みため情報も新しいです。
▲こちらGoogle Apps Scriptの本ではないですが、Google Workspace(旧G Suite)を自動化したりアプリ化するには、Google AppSheetという選択肢もあります。Google AppSheetはノーコードでアプリを作成できます。
▲Google for Educationの使い方にとどまらず実際の運用ででてくる問題への対処方法などもかかれていて面白いです。教師の方達の共著なので現実的な内容となっています。