Home > user javascript

user javascript Archive

スポンサーサイト

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

Google AJAX Language APIで翻訳する 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と少ししか送れない。

参考にしたページ

Aonaware Web Services DictServiceの WordNet英英辞書で調べる User JavaScript

aonawaredictservice_wordnetdictionary.js

Karafuto Blog: Aonaware Web Services DictServiceで調べたDictServiceを使って、英英辞書の User JavaScriptを作ってみた。

Operaのコンテキストメニューから User JavaScriptを呼び出し、Aonaware Web Services DictServiceからデータを取得して表示する。DictServiceは XMLを返すから、BadgerFishを利用して、JSONPに変換する。

Continue reading

イースト辞書Webサービスで英語を調べる User JavaScript

イースト英和辞典 User JavaScriptを実行

イースト和英辞典 User JavaScriptを実行

イースト辞書Webサービスは英和辞典、和英辞典、ウィキペディア日本語版を調べることができる。イースト辞書Webサービスを利用した Operaの User JavaScriptを作ってみた。

イースト辞書Webサービスは XMLを返すので、Yahoo! Pipes を利用して、JSONPを返すようにした。Operaのコンテキストメニューから User JavaScriptを呼び出し、データを取得して表示する。

イースト辞書Webサービス

イースト辞書Webサービスは単語を検索して、データを XML 形式で返す。辞書は「EJDIC英和辞典」「EDICT和英辞典」「ウィキペディア日本語版」がある。が、「ウィキペディア日本語版」の返すデータは少し複雑なので、「EJDIC英和辞典」「EDICT和英辞典」の 2つを使った。

SOAP版APIREST版API がある。今回は REST版APIを使用した。

メソッドは「検索メソッド」と「内容取得メソッド」がある。検索メソッドで調べたい単語の辞書項目のIDを取得して、内容取得メソッドでその辞書項目のIDの内容を取ってくる。

Continue reading

livedoor クリップのクリップするページにはてなブックマークのタグを表示する User JavaScript (2)

User JavaScriptを適用したクリップするページ

livedoor クリップのクリップするページが少し変更されたため、前に作った livedoor クリップのクリップするページにはてなブックマークのタグを表示する User JavaScriptが動かなくなったから、修正した。

スクリプトの内容

  • 「隠されている過去に入力したタグ」の下にはてなブックマークに付けられたタグを表示する。
  • タグは 15まで多い順に表示する。2桁は赤、3以上は青、2以下は灰色。
  • livedoor クリップのユーザ数の右にはてなブックマークのユーザ数を表示する。

ダウンロード

ldc_show_hbtags2.js


livedoor クリップの変更について

livedoor クリップはクリップするページ以外もちょこちょこと変更があるようで、コメントを重視していくという感じなのかな。見る分には良いけど、利用するとなると良いことばかりじゃない。

クリップするページに他人のコメントが表示されるんだけど、すでにクリップすることに決めているのに、読む人はいるの?コメントは下のほうにあって邪魔にならないからまだいいけど、コメントを記入する左にプロフィール画像が表示される。これが場所を取る(60x60)。クリップするページなんだから自分のコメントということは分かっているし、プロフィール画像を設定してない人にとっては意味がない。

Yahoo! Pipesで英語を翻訳する User JavaScript

User JavaScriptで翻訳された日本語

Yahoo! Pipesで英語を翻訳するパイプを作った。Yahoo! Pipesはフィードだけでなく、JSONや JSONPでもデータを返してくれるので、そのパイプから JSONPデータを受け取る User JavaScriptを作成して、Operaのコンテキストメニューからスクリプトを呼び出すようにしてみた。

Yahoo! Pipesで英語を日本語に翻訳するパイプ

英語を日本語に翻訳するパイプ

  1. 「Text Input」モジュールで英語を入力する。
  2. 「Translate」モジュールで文字列を日本語に翻訳する。
  3. 「Item Builder」モジュールでフィードを作成する。'title'を「Text Input」モジュールと、'description'を「Translate」モジュールとつなぐ。

作成した英語を日本語に翻訳するパイプ

英語を日本語に翻訳するパイプの JSONPの URL

http://pipes.yahoo.com/pipes/pipe.run?_id=FidANf8t3RGDU4Kvjtzu1g&_render=json&textinput1=(英語)&_callback=(関数名)

JSONPデータ
(関数名)({
    "count":1,
    "value":{
        "title":"\u82f1\u8a9e\u3092\u65e5\u672c\u8a9e\u306b\u7ffb\u8a33\u3059\u308b"(英語を日本語に翻訳する),
        "description":"Pipes Output",
        "link":"http:\/\/pipes.yahoo.com\/pipes\/pipe.info?_id=FidANf8t3RGDU4Kvjtzu1g",
        "pubDate":"(日時)",
        "generator":"http:\/\/pipes.yahoo.com\/pipes\/",
        "callback":"(関数名)",
        "items":[
            {"title":"(英語)","description":"(Unicodeエスケープされた翻訳した日本語)"}
        ]
    }
})

Yahoo! Pipesで英語を翻訳する User JavaScript

選択した英語の文字列を作成したパイプに渡し、パイプから返ってきた JSONPの中の翻訳した日本語を表示する。

  1. 文字列が選択されていなければ、何もしないで終わり。
  2. パイプから空のデータしか返ってこなければ、「翻訳に失敗しました」と表示して、終わり。
  3. パイプからデータが返ってくれば(必ずしも翻訳に成功したとは限らない)、左上に表示する。
  4. マウスを少し動かすと、表示を消す。

パイプに送る英語の文字数を 2000語までにした。それ以上選択していても、先頭から 2000語で切る。パイプで改行が削除されてしまうので、2000語でも見づらいぐらいだ。

ダウンロード

yahoopipes_translate_englishintojapanese.js

Operaのコンテキストメニューから User JavaScriptを呼び出す

上のUser JavaScriptをダウンロードして、User JavaScriptを保存するフォルダにコピーする。

Operaのメニューファイルの[Hotclick Popup Menu]に以下を追加すれば、右クリックメニューから Yahoo! Pipesで英語を翻訳できるようになる。

Item, "Yahoo! Pipes翻訳(英日)" = "Go to page, "javascript:opera.yahooPipesTranslate()""

注意:Yahoo! Pipesのサービスに頼っているので、Yahoo! Pipesに障害などが出て、スクリプトが思うように動かないこともありえます。翻訳の精度の方はあれです。

参考にしたページ

Home > user javascript

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

Page Top

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