May 5, 2011

Googleの検索結果に言語を変更するためのリンクを追加するChrome Extension

Googleの検索設定では、たとえば表示言語を日本語に設定していると、英語だけの検索結果がほしいとき、優先する検索言語を英語“のみ”にすることが出来ません。たぶん。そこで、検索言語を変更するためのリンクをGoogleのサイドバーに追加するChromeの拡張機能を作ってみました。

インストールは以下のページから。
Language Links for Google - Chrome Web Store


(以前にも、Greasemonkeyで似たようなものを幾つか作りました。今は動くかわかりません。)
使い方。

インストールしてGoogleで検索するとアドレスバーにアイコンが表示されます。これをクリックするとオプションページに飛びます。


オプションページで追加する言語を選択し保存します。


サイドバーに選択した言語での検索結果へのリンクが追加されます。


リンクをクリックすると該当する言語で検索を行います。
(まだうまく動かない時もあります…。)


以下、開発メモ。

Instantへの対応

function addLink() {
...
}

document.addEventListener('DOMNodeInserted', addLink, false);
ページ要素が変化するたびにリンク先を変更。割と力技。もっと効率のよいやり方があるような。

Page actionの表示

background.html
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    if (request.method == "getLang") {
        sendResponse({lang: JSON.parse(localStorage.getItem("lang"))});
        chrome.pageAction.show(sender.tab.id);
    }
Page Actions - Google Chrome Extensions - Google CodeのExamplesから…

Content scriptでlocalstorageを使用

Chrome extension accessing localstorage in content script - Stack Overflow

複数言語への対応

国際化 Chrome Extensions API リファレンス