読者です 読者をやめる 読者になる 読者になる

MDCの日本語版と英語版を切り替えるFirefox拡張機能を作成する (その1)

Firefox 連載 連載第1回

Firefox拡張機能を作成する準備は十分整ったので、ちゃんと役に立つ拡張機能の作成を始めることにする。まず今回でどんな拡張機能を作成するかを決めることにする。

今困っていること

Firefox拡張機能を作成する時はMDCその日本語版がとても参考になる。

MDCとはMozilla Developer Centerのことで、Firefox拡張機能作成のチュートリアル、JavaScriptのリファレンスなど、開発の役に立つ情報が満載のサイトだ。

せっかく日本語版ページがあるので、なるべく日本語で読みたいと思う。しかし中には翻訳が間に合っていないページもあって、英語版で読まなければならないこともある。そんなときは「English」というリンクから英語版ページに移動すれば良いのだが、微妙に面倒くさい。もっと簡単に、ショートカットとかですぐに移動したい。

そんなわけでMDCの日本語版と英語版を切り替えるFirefox拡張機能を作成することにする。

この拡張でできるようにしたいこと

最終的にこの拡張機能でできるようにしたいことは、以下の通り。

  • MDC日本語版ページを開いているときに、CTRL-MとかのキーボードショートカットでMDC英語版ページに移動できる
  • 逆に英語版ページから日本語版ページに移動できる
  • キーボードショートカット以外に、マウス右クリックからのメニュー、ツールバーのボタンからも同様に移動可能にする

ゆくゆくはWikipediaGoogle検索なんかにも応用したいが、とりあえずは考えないことにする。

実装方法

この機能を実現するためには、日本語ページを見ている状態で英語ページのURL(またはその逆)が取得できなければならない。その実装法方として、以下の2つが考えられる。

  1. 日本語ページのURL文字列のjaをenに置き換えたものを英語ページのURLとする
  2. 日本語ページの「English」というa要素(リンク)から英語ページのURLを取得する

どちらを採用するか検討してみる。

1つ目については、例えば、拡張機能のパッケージングというページのURLはhttp://developer.mozilla.org/ja/docs/Extension_Packagingで、その英語版ページのURLはhttp://developer.mozilla.org/en/docs/Extension_Packagingとなっている。見ての通り、jaをenに変更すると英語ページになる。

この方法の長所は、何より楽なことだ(まだ作ってないけど)。単純に置き換えるだけなので、変なところで悩まなくてもよくなる。

もし日本語版と英語版でページ名(Extension_Packagingの部分)が違っていたら困ってしまうところだったが、そんなことはなかったのでラッキーだ。以下の通り、MDC日本語版ページにも「英語版と同じページ名を利用する」と書いてある。

なお、MDC 日本語版では、MDC 英語版の翻訳により作成する記事については、MDC 英語版とまったく同じページ名を利用する方針を採用しています。

Mozilla Developer Network

それに比べると、2つ目の方法はHTMLのソース自体を解析しなければならない分、ややこしくなる。そんなに難しくはならないと思うが、間違ったURLを取り出さないように注意しなければならない。そんな訳で、1つ目の方法を採用することにする。

しかし2つ目の方法がまったく無意味かというと、そうでもない。例えばWikipediaの各ページ名は言語ごとに異なるため、同様のことを行うには2つ目の方法でなければならない。それについてはまた機会があったら考えることにする。

終わりに

ここまでで、とりあえず何を作るかは決まった。具体的なコーディングは次回以降に行う。

次へ >

この連載の一覧