chrome extension で JQUERY.I18N.PROPERTIES を利用する方法

chrome extension で国際化対応をする際は Internationalization (i18n) - Google Chrome Extensions を利用すると思います。ただし、 chromei18nchrome(ブラウザ) の locale を参照するため、 chrome extension 単位で言語を切り替えることが出来ません。そのような場合は JQUERY.I18N.PROPERTIES を利用することで、chrome extension 単位で言語を指定することができます。

chrome extension で JQUERY.I18N.PROPERTIES を利用する方法ですが、初期化時の path を chrome.extension.getURL 関数経由で取得するようにします。こうすることで chrome extension 内の properties ファイルを利用することができます。

jQuery.i18n.properties({
    name : 'Messages',
    path : chrome.extension.getURL('bundle/'),
    mode : 'map',
    language : 'ja'
});

前述の指定だと、 chrome extension のベースディレクトリ直下の bundle ディレクトリ内にある Message_ja.properties がロードされることになります。実際に渡されるURLは以下みたいな感じになります。

chrome-extension://kobghppoominfenkoajjmdpcehnhichc/bundle/Messages_ja.properties

jQuery.i18n.properties の内部では properties ファイルの取得処理を loadAndParseFile 関数内で ajax 関数を利用して行なっているのですが、 chrome extension 内のリソースも普通に取得できるみたいです。


仕事で調査したことをブログにいつも書こうといいつつ書けていなかったので、まずはこんな感じでちょこちょこ書こうかと思います。