TranslatePDF

英文のPDFを手軽に翻訳したいと考え、いま手に入るものでどうにかできないかと考案いたしました。

翻訳の機能については、自前で何とかできるぐらいなら、そもそも翻訳ソフトなんか必要じゃないと思いますので、Googleの翻訳を利用させていただくこととしました。
また、改造も含め手軽にソースを見ていただくことも考え、今回はAppleScriptを使って実現しました。

TranslatePDF

AppleScriptで作成されています。MacOS専用です。
一応OS X 10.6.6から動くはずですが、試していません。

開発は、MacOS 10.14およびMacOS 10.15で行いました。
スクリプトエディタ.appでソースを開くことができます。

Size: 0.68MB
Version: 1.0.1

仕様

  • 翻訳機能はGoogleの翻訳機能を利用する
  • GoogleのApps Scriptを使い、翻訳のAPIとする
  • AppleScriptでテキストのコピーから表示までを制御する
  • できるだけ汎用性を持たす

翻訳の手順

  1. 翻訳をしたいテキストを選択する
  2. 翻訳ボタンを押す
  3. 選択されたテキストをクリップボードにコピー
  4. コピーしたテキストをURLエンコードする
  5. サファリを使い、Google Apps ScriptにURLを送信
  6. サファリに翻訳された文字をコピーする
  7. 翻訳文を表示する

まずはGoogleのApps Scriptについて
Googleが提供する無償のサービスで、Google スプレッドなどで利用することができます。
そのほかURLを叩くだけでAPIとして色々な活用ができます。
翻訳の詳細につきましては以下のサイトを参照させていただきました。

3 分で作る無料の翻訳 API with Google Apps Script
https://qiita.com/tanabee/items/c79c5c28ba0537112922

こちらはGoogleより提供されているものですので、未来永劫このままで利用できると言う保証はありません。ご理解の上ご利用ください。
またTranslatePDFに使われているGoogle Apps Scriptは筆者のアカウントで設置されたものです。何の気まぐれで消してしまうこともあり得ることをご了承ください。

また、アプリケーションはスクリプトエディタ.appでソースを開くことができます。自由にカスタマイズすることができます。
Google App Scriptなどもご自身で作成したものに変更していただいても結構です。
ただし、再保存をされた時点でオリジナルとは違うアプリケーションとなりますので、配布に関してはAppleからの公証を受けていただくことが必要となります。

ではスクリプトの全容を紹介いたします。(シンタックスコードカラーが変になっているのはご愛嬌ということでお願いします。直す方法を現在模索中です。)

だらだらと長ったらしく綴りましたが、翻訳の部分は数行です。
選択したテキストをクリップボードにコピーし、URLエンコードを施したのちSafariでGoogle App Scriptに渡し、帰ってきた翻訳文をダイアログに表示します。

残りは初期設定ファイルの読み書きと、初期設定のGUI部分です。
実は、propertyで初期設定値は自動で保存されるはずなのですが、長いことAppleScriptでアプリケーションを作成していなかったため、(部分的な機能をAppleScriptを使い、全体の構成はXojoで作っていた)アプリケーションにした時にpropertyが効かないことを知らずに手間を食ってしまった。
preferencesフォルダに初期設定ファイルを書き込むことで対処しました。