コンテンツにスキップ

Chrome 拡張機能で多言語に対応する

chrome.i18n  |  API  |  Chrome for Developers

やり方

文字列リソースを作成する。

1
2
3
4
5
6
7
8
9
.
├── README.md
├── _locales
│   ├── en
│   │   └── messages.json
│   └── ja
│       └── messages.json
└── src
     ├── (以下略)
_locales/en/messages.json
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
{
  "applicationName": {
    "message": "Extension name"
  },
  "description": {
    "message": "Extension description"
  },
  "english": {
    "message": "English"
  },
  "japanese": {
    "message": "Japanese"
  }
}
_locales/ja/messages.json
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
{
  "applicationName": {
    "message": "拡張機能の名前"
  },
  "description": {
    "message": "拡張機能の説明"
  },
  "english": {
    "message": "英語"
  },
  "japanese": {
    "message": "日本語"
  }
}

manifest.jsonに以下をマージする。

manifest.json
1
2
3
{
  "default_locale": "ja"
}

JavaScript からchrome.i18n.getMessage("english")などで文字列リソースを取得することができる。

manifest.jsonを多言語化する

manifest.jsonxxxxxxxxの文字列を参照したい場合、__MSG_xxxxxxxx__のように記載する。

manifest.json
1
2
3
4
{
  "name": "__MSG_applicationName__",
  "description": "__MSG_description__"
}