前回はGAS スクリプトのLanguageApp.translate 関数を使い、回数制限に引っかかってしまったので、別の方法を考えてみた。それはスプレッドシートにコメントを貼り付けて、その横にTranslate関数をコピーしていくという方法だ。何度か試してみたら、回数制限に引っかからなさそうだ。
処理がうまくきいきそうなので、Webページから処理できるようにした。
ローカルフォルダからファイルをドラッグ&ドロップすると読み込まれてスプレッドシートにコピーしていく。そしてTranslate関数を貼り付けていく。
ドラッグ&ドロップはHTML5のFILE APIがそのまま使用できる。スプレッドシートへコピーはGASへデータを渡し、スプレッドシートへコピーする流れだ。
しかし、Translateが全て終わったかどうかがわからないのが問題だ。実際にスプレッドシートを見ると処理中はLoading…と表示される。これをどうやったらプログラムで判定させればよいのだろう。全然わからなかった。
(サンプルのような数なら、すぐ終わるが、何千・何万項目あると、時間がかかる。)
本当は、一気にコメントファイル出力までやりたかった。しかし、今回はあきらめて別々に処理することに。半自動でやることにした。
手順は以下の通り
- ファイルをマウスでドラッグし、Webのテキストボックスの上で離す。
- 変換ボタンを押してスプレッドシートへデータを送り、翻訳処理を開始
- スプレッドシートを見て翻訳が終わったことを確認
- Webページへコメントをコピー
- CSVに整形してCSVファイルへ出力する
このような流れにした。自分で使うからこれでいいだろう。
今回は1〜3を作成した。