いろいろあって解説出来ずすみませんが、happ.meの翻訳と為替機能について
happ.me - ¥£$, Happy Amazon Price Please Me, 世界のAmazonをまとめて検索 の話題です。
解説するぜとか言って、全然してなくて、ほんとすいますいません。その、個人的にいろいろあるのと、実は次に作るものを決めたりしていたら、こちらが後回しになりました。それで、ちょっと次にしなけりゃならないことが出来たので、そちらを優先します。フルクト村のノエルさんとか、ほんとすいません。
さくらのVPS の設定とか、Django の設定とか、あと Amazon の PAAPI とかの問合せとかは、そんなにたいしたことでもないし、説明がもっと巧みな人がいるので、まあ、そちらをご覧下さい。Django の Document を邦訳してくれたひととか、本当に有り難いです。最高です。かっこいいです。
でも、翻訳のところだけちょっと面白いので書きます。
Amazon PAAPI と 翻訳
翻訳の種明かしですけど、実は Google の Translate API を叩いています。
もともと自分用に、攻殻機動隊のDVDを英国のAmazonで買うとリージョン2だけど映像方式がPALなので、MacやPCや
XBox 360では再生出来て、国内のPS3とか普通の機器では再生出来なくて、でも安いらっしいってなったときに、どうやら、日本作品のDVDなら概ね安いということがわかりました。ちなみにアニメが真っ先に…でしょうが、北野武の映画のDVDとかも安いです。
で、攻殻機動隊は、Ghost in the shell で、すぐわかるから、OKだけど、その他の作品は果たして… となったときに、代わりにドラえも〜んみたいな感じでやってくれたらいいですよね。
私はなんとなく、Google は 4次元ポケットのようなものだと思っていて、ファンクショナルなところは本当にすごくて、想像力の組み合わせである機能を実現すると、本当にとんでもないクオリティで出てくる。だけど、ソーシャルはちょっと苦手みたいなところがあると思っています。
それで、Google の Translate API ですが、使うのは結構簡単で、http://code.google.com/intl/ja-JP/apis/language/translate/v2/getting_started.html 詳しくはこちらにあります。で、長文とか投げたり、英語を日本語にすると、とても愉快な天然芸人みたいなリアクションが返ってきますが(笑)、決め打ちみたいなタイトルだと、恐らくそれようの辞書をもっているのか、かなりきちんと返ってきます。
そうじゃなかったら、紅の豚で検索したときに、
翻訳結果: 紅の豚 »» Porco Rosso
-- happ.me - ¥£$, Happy Amazon Price Please Me, 世界のAmazonをまとめて検索
こうはならないよね。
なので、まあ恩田陸さんを翻訳すると愉快に陸を land とかで返して来てくれた訳です。
お手軽な使い方
Google Translate API は JSON で返してくれるのですが、このサイトの場合はある程度、要素も決まっているし、一度どうしても、Amazon を 3カ国見に行かなければならないので、AJAXしたほうが体感遅いような感じになるかなというし、キャッシュとか集計とかできるならしようとかがあったのと、なによりJavaScript の技術不足…orzとかもあって、それで、一度サーバ間でレスポンスをとっています。
あと、Google API の Translate API は文字数でAPI制限があるので、それも節約したかったので。
で、詳しくは割愛しますが、
https://www.googleapis.com/language/translate/v2?key=(あなたのKey)&q=(urlquoteした元キーワード)&source=(元の言語:日本語ならjaを指定)&target=(翻訳先の言語:英語ならenを指定)
上記でアクセスすれば大丈夫です。Google アカウントで有効にして、Key取得してくださいね。
なので、付属モジュールだけを使ったMacでもそのまま動く簡単なデモを書くとですね、仮にtrans.py とでもしますと、
# -*- coding: utf-8 -*- import urllib,urllib2 import json def create_url(text): source = "ja" target = "en" url_base = 'https://www.googleapis.com/language/translate/v2?key=(あなたのkey)' return url_base + "&q="+urllib.quote_plus(text.encode('utf8'))+"&source="+source+"&target="+target+"" opener = urllib2.build_opener() result = opener.open(create_url(u"紅の豚")).read() trans = json.loads(result) translatedText = trans["data"]["translations"][0]["translatedText"] print translatedText
これで、
$python trans.py
Porco Rosso
とか、返ってくる訳ですね。なので、引数をとったりなんかしたりすると、めでたしめでたしみたいになります。
simplejson がなくても、json が同梱されたりするあたりが、時代の趨勢を物語ってますね。これは、こないだ、清水川さんのツイートで見かけるまでまじで知らなかった、あたしって、ほんとバカ…
それで、
- 入力された日本語キーワード=>そのまま、Amazon.co.jp に問合せ
- 翻訳された英語キーワード=>Amazon.co.uk Amazon.com に問合せ
という、横串がさせるわけだったのですね。
日本語も、英語も、あるんだよ みたいな感じです。あ、ちなみに魔まマみてないのに、タイトルだけネタにしてすいません。魔法少女よりうちのこどものほうがかわいいです。
で、この翻訳とAmazon への問合せっぷりが、まほつかいにりゅうけんみたいで、結構好きだったんです。
ついでに為替
為替の方も、1日に回数制限があるのですが、Currency converter | Xurrency っていうサイトがあって、アクセス制限があるのですが、http://xurrency.com/api/gbp/jpy/1 とかやると、1ポンドが何円みたいなのをJSONで愉快に返してくれます。
APIにも対応した通貨換算サイト『Xurrency』 | 100SHIKI
2007年の百式 田口さんの記事に助けられるとは、思いませんでした。この助言くれたのも田口さんだったんですけどね…w*1
と、そんなわけで、円に対して一時のポンド安は一服しましたが、ドル安はもうすこし続きそうですね。ドル安はいいんだけど、Amazon.com 発送がアレなのがねぇ…とかはありますが。
というわけで、世界は広いし、日本でちまちま書いたコードがGoogle さんと Amazon さんの力を借りて世界一周して、価格比較出来るとか面白い世の中だと思っています。
では、よい買い物で良い人生を