Chrome拡張機能の国際化で文字列を簡単に取得する

Chrome Extension APIの国際化では、言語ごとに下記のようなmessage.jsonを_locales/<言語>フォルダに用意して、chrome.i18n.getMessage(key)とやるわけですが、いちいち書いてたら面倒なのと、messages.jsonに該当キーがないときにエラーになって開発の妨げになるので、存在しないときはkeyをそのまま返すようにしました。

ソースコード

messages.json

{
"title" : { "message": "日本語のタイトル", "description": "" },
"description" : { "message": "日本語の説明", "description": "" }
}

JavaScript

function i18n(key) {
  var n = chrome.i18n.getMessage(key);
  return n ? n : key;
}

ちなみにmanifest.jsonでは__MSG_key__とかいう感じで各言語の翻訳をもってこれますが、popup.htmlなどのHTMLではこれは使えないので、多国語対応したいHTML要素はすべてJavaScriptで文字列を翻訳してあげる必要があります。

参考

chrome.i18n – Google Chrome

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です