Google 翻訳を IE の右クリックに登録

Google AJAX Language API
Google AJAX Language API を使用すると簡単に翻訳処理をHTMLページに
実装する事ができますが、こちら を利用すると、
IE に翻訳機能を組み込んだようになります。

翻訳したい文字列をブラウザ上で選択状態にして、右クリックのポップアップメニューで
「Google 翻訳」を選択します。
言語を自動的に判断して、日本語に翻訳します。
日本語の場合は英語に翻訳されます。


実装コード
以下のコードは、ユーザの Templates ディレクトリに a2j.js としてコピーされます
<html>
<head>
<title>Google 翻訳</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
body {
	font-family: "MS Pゴシック";
	font-size: 14px;
}
</style>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">

	var parentwin = external.menuArguments;
	var doc = parentwin.document;
	var sel = doc.selection;
	var rng = sel.createRange();
	var text = rng.text;
	var lang;

	google.load("language", "1");

	function initialize() {
      google.language.detect(text, function(result) {
        if (!result.error && result.language) {
           lang = result.language;
           if ( result.language == "ja" ) {
              google.language.translate(text, result.language, "en",
                                    function(result) {
                   var translated = document.getElementById("translation");
                   if (result.translation) {
                      translated.innerHTML = result.translation;
                      try {
                         document.getElementById("type").innerHTML = "日本語 => 英語";
                      } catch(e){}
                   }
              });
           }
           if ( result.language != "ja" ) {
              google.language.translate(text, result.language, "ja",
                                    function(result) {
                   var translated = document.getElementById("translation");
                   if (result.translation) {
                      translated.innerHTML = (result.translation).replace(/。/mg,"。<br><br>");
                      try {
                         document.getElementById("type").innerHTML = lang + " => 日本語";
                      } catch(e){}
                   }
              });
           }
        }
        else {
           var translated = document.getElementById("translation");
           translated.innerHTML = result.error;
        }
      });
    }

	google.setOnLoadCallback(initialize);

</script>
</head>
<body style='padding:20px;'>
<H5 id="type">言語変換タイプ自動決定</H5>
<div id="translation"><b>Google AJAX Language API で翻訳中です。しばらくお待ち下さい....</b>
<br>( ※ あまり長い文章は結果が表示されない場合があります )</div>
</body>
</html>