iPadで選択した文字列を翻訳するブックマークレットを作りました
昨日はSmiley Hackathon#10 : ATNDに行ってきました。
HackathonではFacebookアプリをつくっていたのですがそれはおいておいて、iPadで選択した文字列を翻訳できるブックマークレットを作ったのでそちらを紹介したいと思います。
作ったきっかけ
iPadでゴロゴロしながら英語のサイトを見たりしたいなーと思ってたのですが、
いざ読んでみると単語を調べる時にアプリを切り替えないといけないので、読むのがつらくなってきました。
iPadのSafariでは拡張機能がまだないそうなので、ブックマークレットを作ってみることにしました。
作り方
ブックマークレットの作成はHatena::Letを使い、
翻訳APIはMicrosoft Translatorを使いました。
(Google Translate APIはもうすぐDuplicateになるようです)
コード
/* * @title translate selected text * @description translate selected text * @include http://* * @license MIT License * @require jQuery * @private */ var appId = 'Bing APIのAppID'; var getText = function() { var range = window.getSelection().getRangeAt(0); if (range.toString()) { var str = range.toString(); $.ajax({ type: "GET", url: "http://api.microsofttranslator.com/V2/Ajax.svc/Translate", dataType: "jsonp", data: { appId: appId, text: str, from: "en", to: "ja" }, jsonp: "oncomplete", success: function (data, dataType) { var fragment = document.createDocumentFragment(); var span = fragment.appendChild(document.createElement('span')); span.style.cssText = "background-color:#FFCACA"; span.appendChild(document.createTextNode(range.toString() + "[" + data + "]")); range.deleteContents(); range.insertNode(fragment); } }); } } document.addEventListener( 'mouseup', getText, false ); document.addEventListener( 'touchend', getText, false );