MDCの日本語版と英語版を切り替えるFirefox拡張機能を作成する (その4)
前回に引き続き、MDCの日本語版と英語版を切り替えるFirefox拡張機能を作成する。
今回は、メニュー表記をローカライズする。これでメニュー表示の英語/日本語の切り換えができるようになるはずだ。
参考にしたページは以下。
作成したファイル
今回新たに作成したファイル/ディレクトリは以下の通り。
locale/
-- en-US/ |
`-- switch_page_locale.dtd |
ファイルの内容
作成したファイルの内容は以下の通り。はっきり言って今回の作業は簡単なので、適当にFirefox 3ではじめる拡張機能開発を真似しただけだ。
en-US/switch_page_locale.dtd
<!ENTITY switchPageLocaleMenu.label "Switch Page Locale">
ja/switch_page_locale.dtd
<!ENTITY switchPageLocaleMenu.label "ページのロケールを変更する">
chrome.manifest
content switch_page_locale chrome/content/ # ここを追加 locale switch_page_locale en-US locale/en-US/ locale switch_page_locale ja locale/ja/ overlay chrome://browser/content/browser.xul chrome://switch_page_locale/content/overlay.xul
overlay.xul
<!-- ファイルの上の方に追加 --> <!DOCTYPE overlay SYSTEM "chrome://switch_page_locale/locale/switch_page_locale.dtd"> <!-- 途中省略 --> <popup id="contentAreaContextMenu"> <menuitem id="switchPageLocale-menu" label="&switchPageLocaleMenu.label;" accesskey="s" oncommand="SwitchPageLocale.switchLocaleCurrenTab();" /> </popup>
簡単に説明しておくと、まず *.dtd ファイルでロケールパッケージ(en-USなど)ごとの文言を定義する。これらのファイルは別にどこに置いても良い。今回はlocale/en-US, locale/ja の下に作った。
そして、chrome.manifestでロケールパッケージ名とdtdファイルの場所の対応を記述する。そうすると、DOCTYPE宣言をしたXULファイル内で"&switchPageLocaleMenu.label;"みたいな感じで文言を参照できるようになる。