c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programming に分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡)

音樂は SoundCloud に公開中です。

考察は現在は主に Scrapbox で公表中です。

Programming は GitHub で開發中です。

AzureaWinで、tweetを翻訳する拡張 #js #AzureaScript

Azurea for Windowsで、ちょっと前のbetaからJavaScriptを使った拡張が出来る様に成ってますね!
其所で、tweetの翻訳scriptを書いてみました。
あーまーAzurea自体に右クリックから翻訳機能が付いてたの、作ってから気が付きましたけどね。んもう! でもショートカットキー欲しいじゃないですか!! (←恥ずかしい


G、或いはコンテキストメニューの、[Extends]->[日本語へ翻訳]から使えます。以下のscriptを、AzureaWinインストールフォルダのScriptsフォルダへ、.js拡張子で保存して下さい。
Google Translate API Keyは、各自取得の事。


Google Translate APIのドキュメントは、此ちら。
Developer's Guide (v2): Using REST - Google Translate API - Google Code http://code.google.com/intl/ja-JP/apis/language/translate/v2/using_rest.html#key
Azurea for Windowsの拡張スクリプトドキュメントは、Azurea for Windowsのダウンロードzipに同梱されています。


此所では、Azurea for Windows 1.3.2 Beta7を使っています。

// @author = http://c4se.sakura.ne.jp/profile/ne.html
// @date = 2011-01-27


(function() {

var TRANSLATE_API_KEY = '阿方のGoogle翻訳API Keyを入れないと死ぬ';


function translateStatus(status_id) {
    var status_text = TwitterService.status.get(status_id).text,
        response, result = {};
    
    try {
        response = Http.sendRequest('https://www.googleapis.com/language/translate/v2?key=' +
                                    TRANSLATE_API_KEY +
                                    '&q=' +
                                    encodeURI(status_text) +
                                    '&target=ja',
                                    false);
        if (response.statusCode !== 200) {
            throw Error('Google Translate API Error. statusCode is ' + response.statusCode + '.');
        }
    } catch (e) {
        throw e;
    }
    result.text = response.body.match(/"translatedText"\s*:\s*"(.*)"/)[1];
    result.language = response.body.match(/"detectedSourceLanguage"\s*:\s*"(.*)"/)[1];
    return result;
}


function showTranslateMessage(status_id) {
    var translate_rusult = translateStatus(status_id);
    
    System.showMessage(translate_rusult.text,
                       translate_rusult.language + '-> ja',
                       0);
}


System.addKeyBindingHandler(0x47, // VK_G
                            0,
                            showTranslateMessage);
System.addContextMenuHandler('日本語へ翻訳',
                             0,
                             showTranslateMessage);

})();

cf.

AzureaWinのOAuthを通す - c4se記:さっちゃんですよ☆ http://d.hatena.ne.jp/Kureduki_Maari/20101212/1292156649