Automator でテキストを Google 翻訳に送るサービスを作る

最近ちょっと英語のマニュアルを読むことが増えてきたので、選択したテキストをダイレクトに Google 翻訳に飛ばせるサービスを作ってみました。

内容はこんな感じ。


Google 翻訳(英→日)はこの URL の後に翻訳したい文章を入れるだけです。

http://translate.google.co.jp/#en/ja/

ただ、そのまま入れてしまうと変換が必要な文字があった場合にブラウザで #en の部分も一緒に変換されてしまうのでテキストを正しい形にエンコードしなくてはいけません。


そこで、Perl さんにサクッとエンコードしてもらいます。

/usr/bin/perl(stdin)
while (<>) {
    use URI::Escape;
    $str = uri_escape($_);
    print $str;
}


サンプルの文章。

Barack Hussein Obama was sworn in as the 44th president of the United States on Jan. 20, 2009. The son of a black man from Kenya and a white woman from Kansas, he was the first African-American to ascend to the highest office in the land.

On Nov. 6, 2012, Mr. Obama was re-elected, defeating his Republican opponent, Mitt Romney, after a long, hard-fought campaign that centered on who would heal the battered economy and on what role government should play in the 21st century.

http://topics.nytimes.com/top/reference/timestopics/people/o/barack_obama/index.html?8qa


変換されるとこうなります。

Barack%20Hussein%20Obama%20was%20sworn%20in%20as%20the%2044th%20president%20of%20the%20United%20States%20on%20Jan.%2020%2C%202009.%20The%20son%20of%20a%20black%20man%20from%20Kenya%20and%20a%20white%20woman%20from%20Kansas%2C%20he%20was%20the%20first%20African-American%20to%20ascend%20to%20the%20highest%20office%20in%20the%20land.%0A%0AOn%20Nov.%206%2C%202012%2C%20Mr.%20Obama%20was%20re-elected%2C%20defeating%20his%20Republican%20opponent%2C%20Mitt%20Romney%2C%20after%20a%20long%2C%20hard-fought%20campaign%20that%20centered%20on%20who%20would%20heal%20the%20battered%20economy%20and%20on%20what%20role%20government%20should%20play%20in%20the%2021st%20century.


あとはこれを bash にポイっと投げて先程の URL を追加したら open コマンドで開きます。アプリケーションの指定をしない場合はデフォルトのブラウザが使われます。

/bin/bash(args)
open "http://translate.google.co.jp/#en/ja/$*"


これを適当に「テキストをGoogle翻訳(英→日)」とか名前を付けて保存します。あとは適当にテキストを選択して右クリックなどからサービスを実行すればOK。

Google Chrome 内であればブラウザの翻訳機能が使えるのであまり必要ありませんが、こちらのサービスの場合はテキストエディタなどでも使えます。


サンプルはいつものところに置いておきます。Perl 素人なのでなんか間違ってるかも。

http://code.google.com/p/mattintosh4-devel/downloads/list


Perl で open コマンド使いたいけど書き方わからん…。

Trackback