日本語を英語、英語を日本語に翻訳する
どんなことに使えるかは謎だけど変換する。
PerlからGoogleのAjax Language APIを使って変換する。Ajaxではないけど、Flashやその他環境からもWeb APIが使える。
詳しくはGoogle Translate API — Google DevelopersのFlash and other Non-Javascript Environmentsの章を参照。規約が多いので本格的に使うときは気をつけてください。
use utf8; use strict; use Encode; use JSON::Syck; use LWP::UserAgent; use URI::Escape qw(uri_escape_utf8); binmode(STDOUT, ':encoding(ms932)'); # MS-CMD TEST:{ my $referer = 'http://d.hatena.ne.jp/ultraist/'; print ja2en($referer, "君達の基地は、全てCATSがいただいた。"), "\n"; print en2ja($referer, "Do you know Haruhi?"), "\n"; } sub ja2en { my ($referer, $ja) = @_; return translate($referer, 'ja', 'en', $ja); } sub en2ja { my ($referer, $en) = @_; return translate($referer, 'en', 'ja', $en); } sub translate { my($referer, $from, $to, $text) = @_; my $result = undef; my $ua = new LWP::UserAgent(); my $req = new HTTP::Request( GET => sprintf("%s&langpair=%s%7C%s&q=%s", AJAX_LANGUAGE_API_1_0(), $from, $to, uri_escape_utf8($text)) ); $req->referer($referer); my $response = $ua->request($req); if ($response->is_success) { my $data = JSON::Syck::Load($response->content); if ($data->{responseStatus} eq '200') { $result = $data->{responseData}->{translatedText}; Encode::_utf8_on($result); } } return $result; } sub AJAX_LANGUAGE_API_1_0 { 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0'; }
>perl translate.pl You are our base, all of us CATS. 涼宮はご存じですか?
これはひどい翻訳。でも「yuki」は「結城」と訳したのでセーフ。