どこにも需要はない気がするけど,試しに英語と日本語でChrome拡張の国際化をやってみた.
Chrome拡張ではパッケージ内に_locals/言語の種類/messages.jsonというファイルを作ると国際化することができる.
この時manifest.jsonに"default_locale"の指定が必須となる.
messages.json内のテキストは,JavaScriptからはchrome.i18n.getMessage("メッセージ名"),manifest.jsonやCSSからは__MSG_メッセージ名__の形で取得できる.
ただしhtmlファイルの中身は自動で置換してくれないため,JavaScriptによる置換が必要となる.
今回は国際化が必要な要素にdata属性(data-i18n)でメッセージ名を指定し,以下のように置換を行った.
$('[data-i18n]').each(function() { var t = $(this); t.text(chrome.i18n.getMessage(t.data('i18n'))); });
国際化をやってみてなにより英語力が足りないことがわかりました.