Home > スポンサー広告 > Google AJAX Language APIで翻訳する User JavaScript

スポンサーサイト

スポンサー広告

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Comments:-

小野(東京都港区) URL 2009-05-06 (水) 15:08

google翻訳API(Google AJAX Language API)でちょっと作ってみました。
http://www11.atpages.jp/chk1/h.php?Item&%e8%a3%bd&hits=4&chg=ar

http://www11.atpages.jp/chk1/h.php?Item&%e8%a3%bd&hits=4&chg=en

edvakf URL 2009-05-06 (水) 22:13

とても素晴しいです!

> 表示されたものは、マウスを動かすと消える。

これがちょっと微妙かなと思いました。誤って消しちゃうことが何度も。。。ポップアップ要素を消すボタンが付いてたらいいかなと。

karafuto URL 2009-05-14 (木) 10:42

こんにちは、小野さん。
お役に立ったのなら幸いです


こんにちは、edvakfさん。

> これがちょっと微妙かなと思いました。誤って消しちゃうことが何度も。。。ポップアップ要素を消すボタンが付いてたらいいかなと。

確かに翻訳をポップアップ表示するスクリプトを調べてみると、ボタンで消すようなものが多いんですよね。私はすぐに消えるほうが好きなんでこうしたんですが…。
考えておきます。

Comment Form

Trackback+Pingback:-

TrackBack URL for this entry
http://karafuto50.blog117.fc2.com/tb.php/195-58885317
Listed below are links to weblogs that reference
スポンサーサイト from Karafuto Blog

Home > スポンサー広告 > Google AJAX Language APIで翻訳する User JavaScript

Home > user javascript > Google AJAX Language APIで翻訳する User JavaScript

Google AJAX Language APIで翻訳する User JavaScript

user javascript

googleajaxlanguageapi_translate.js

googleajaxlanguageapi_translate.js

Google AJAX Language APIを利用して翻訳する User JavaScriptを作ってみた。Operaのコンテキストメニューから User JavaScriptを実行して、Google AJAX Language APIから翻訳した文字列を受け取り、表示する。

Google AJAX Language API

Google AJAX Language APIで日本語に翻訳できそうな言語の種類は、Supported Language Translation Pairsあたりに書いてある。(日本語を含めて41言語あるが、ごく一部しか試していない。なんかどんどん増えているようだ。)

Google AJAX Language APIは、文字列の言語(翻訳元言語)を指定しなくても、言語を自動的に判別して、翻訳することができる。

Google AJAX Language APIは、RESTful形式が用意されている。RESTful形式の JSONPは、外部ライブラリーを読みこむより簡単に利用できる。

JSONPリクエスト URL
http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=(文字列)&langpair=(文字列の言語)%7C(翻訳先言語)&callback=(関数名)&context=(関数に渡される第一引数)

パラメータの「文字列の言語」(翻訳元の言語)を省略した時は、Google AJAX Language APIが文字列の言語を自動的に特定する。パラメータの「context」は、自分が設定した値をコールバック関数に渡すことができる。contextは省略可能。

http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=let%20it%20be&langpair=%7Cja&callback=func
JSONPデータ
(関数名)({
    "responseData": {
        "translatedText":(翻訳した文字列),
        "detectedSourceLanguage":(特定した文字列の言語。文字列の言語を指定した時は存在しない。)
    },
     "responseDetails": (エラーメッセージ、成功は null),
     "responseStatus": (ステータスコード、成功は 200)
})
パラメータに contextをつけた例
http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=i%20am%20not%20good&langpair=%7Cja&callback=func&context=argument
JSONPデータ
(関数名)((contextの値),
{
    "translatedText":(翻訳した文字列)
    ,"detectedSourceLanguage":(特定した文字列の言語。文字列の言語の指定がない場合だけ。)
},
 (ステータスコード),
 (エラーメッセージ),
 200(?)
)

Google AJAX Language APIで翻訳する User JavaScript

選択した文字列を Google AJAX Language APIに送り、返ってきた指定した言語に翻訳した文字列を受け取り、表示する。

  1. 文字列が選択されていなければ、何もしないで終わり。
  2. Google AJAX Language APIから空のデータしか返ってこなければ、「翻訳に失敗しました」と表示して、終わり。
  3. Google AJAX Language APIからデータが返ってくれば、左上に表示する。
  4. マウスを動かすと、表示を消す。
operaオブジェクトの GoogleAJAXTranslateメソッド

opera.GoogleAJAXTranslate(翻訳先言語, 文字列の言語, 原文表示)

  • 第一引数の翻訳先言語を省略した時は日本語(ja)に設定する。
  • 第二引数の文字列の言語(翻訳元言語)を省略した時は、Google AJAX Language APIが文字列の言語を自動的に判別する。
  • 第三引数の原文表示を省略した時は、原文(元の文章)を表示しない。原文を表示したい時は、1を設定する。

Google AJAX Language APIに指定する言語のパラメータは Languages Enum に書いてある。すべての言語が翻訳できるわけではない。日本語に翻訳できそうな言語は、Supported Language Translation Pairsあたりに書いてある。

日本語に翻訳
opera.GoogleAJAXTranslate('ja')
英語から日本語に翻訳
opera.GoogleAJAXTranslate('ja', 'en')
日本語に翻訳、原文表示
opera.GoogleAJAXTranslate('ja', '', 1)
ダウンロード

googleajaxlanguageapi_translate.js

使い方

上のスクリプト(googleajaxlanguageapi_translate.js)をダウンロードして、User JavaScriptを保存するフォルダにコピーする。

Operaのメニューファイルの[Hotclick Popup Menu]に下のように書き足す。(Operaを再起動。)

Item, "Google AJAXで日本語に翻訳" = "Go to page, "javascript:opera.GoogleAJAXTranslate('ja')""
Item, "Google AJAXで英語に翻訳" = "Go to page, "javascript:opera.GoogleAJAXTranslate('en')""

Item, "Google AJAXで英語から日本語に翻訳" = "Go to page, "javascript:opera.GoogleAJAXTranslate('ja','en')""
Item, "Google AJAXで中国語から日本語に翻訳" = "Go to page, "javascript:opera.GoogleAJAXTranslate('ja','zh')""

Item, "Google AJAXで日本語に翻訳(原文表示)" = "Go to page, "javascript:opera.GoogleAJAXTranslate('ja','',1)""
Item, "Google AJAXで英語から日本語に翻訳(原文表示)" = "Go to page, "javascript:opera.GoogleAJAXTranslate('ja','en',1)""

翻訳したい文字列を選択して、Operaのコンテキストメニューから上に書いたものを選べば、User JavaScriptが呼び出されて、翻訳した結果が左上に表示される。表示されたものは、マウスを動かすと消える。

注意

翻訳の精度が低い...。

Google AJAX Language APIに送る文字数が長いとエラーになるから、送る文字数を 1000語までにした。それ以上選択していても、先頭から 1000語で切る。2バイト文字の場合は URIエンコードする必要があるため、それよりずっと短くしなければならない。URIエンコードした文字列を約 1900語以下にしている。そのため、元の文字数は 200と少ししか送れない。

参考にしたページ

Comments:3

小野(東京都港区) URL 2009-05-06 (水) 15:08

google翻訳API(Google AJAX Language API)でちょっと作ってみました。
http://www11.atpages.jp/chk1/h.php?Item&%e8%a3%bd&hits=4&chg=ar

http://www11.atpages.jp/chk1/h.php?Item&%e8%a3%bd&hits=4&chg=en

edvakf URL 2009-05-06 (水) 22:13

とても素晴しいです!

> 表示されたものは、マウスを動かすと消える。

これがちょっと微妙かなと思いました。誤って消しちゃうことが何度も。。。ポップアップ要素を消すボタンが付いてたらいいかなと。

karafuto URL 2009-05-14 (木) 10:42

こんにちは、小野さん。
お役に立ったのなら幸いです


こんにちは、edvakfさん。

> これがちょっと微妙かなと思いました。誤って消しちゃうことが何度も。。。ポップアップ要素を消すボタンが付いてたらいいかなと。

確かに翻訳をポップアップ表示するスクリプトを調べてみると、ボタンで消すようなものが多いんですよね。私はすぐに消えるほうが好きなんでこうしたんですが…。
考えておきます。

Comment Form

Trackback+Pingback:0

TrackBack URL for this entry
http://karafuto50.blog117.fc2.com/tb.php/195-58885317
Listed below are links to weblogs that reference
Google AJAX Language APIで翻訳する User JavaScript from Karafuto Blog

Home > user javascript > Google AJAX Language APIで翻訳する User JavaScript

おまかせリンク(R)
全記事表示リンク
Search
Meta
Feeds

Page Top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。