こんにちは,
今回ローカライズする拡張はこれまで連載の中で何度か取りあえげてきたSBMカウンタをベースとして使用します。SBMという略称は
i18nとl10n
i18nはInternationalization
chrome.i18n.getMessage
早速,
am ar bg bn ca cs da de el en en_GB en_US es es_419 et fi fil fr gu he hi hr hu id it ja kn ko lt lv ml mr nb nl or pl pt pt_BR pt_PT ro ru sk sl sr sv sw ta te th tr uk vi zh zh_CN zh_TW
なお,
図1 i18nのフォルダ構成
どの言語が使用されるかは,
さて,
messages.
{
"options": {
"message": "設定"
}
}
このmessageをchrome.
chrome.
var options = chrome.i18n.getMessage('options');
console.log(options); // 設定
さらに,
messages.
{
"options": {
"message": "設定"
},
"append": {
"message": "$name$に追加",
"placeholders": {
"name": {
"content": "$1",
"example": "delicious"
}
}
}
}
chrome.
var append = chrome.i18n.getMessage('append',service.name);
console.log(append); // はてなブックマークに追加
さて,
manifest.
"name": "__MSG_extName__",
"description": "__MSG_extDescription__",
そして,
manifest用フィールドの追加
"extName": {
"message": "ソーシャルカウンター"
},
"extDescription": {
"message": "ソーシャルサービスでのブックマーク数などをカウントします"
},
manifest.
ちなみに,
コンソールでJSONをコピー
copy(JSON.stringify({name:"sample",version:"1.1"},null,2));
chrome.i18n.getAcceptLanguages
getAcceptLanguagesは,
日本語である "ja" が含まれている場合だけ,
日本語圏向けのメッセージを表示
chrome.i18n.getAcceptLanguages(function(langs){
if (langs.indexOf('ja') >= 0){
document.querySelector('#japan').style.display='block';
}
});