__MSG_***__ プレースホルダの使用

Chrome拡張機能の国際化(i18n)において、__MSG_***__ プレースホルダは、多言語対応を行うための重要な仕組みです。このプレースホルダは、拡張機能内のHTMLやマニフェストファイルで、表示する文字列を言語ファイル(_locales ディレクトリ以下)から動的に読み込むために使用されます。


基本構造

1. プレースホルダの形式

__MSG_キー名__

この形式で記述された箇所は、拡張機能の実行時に、現在のブラウザの言語設定に応じて _locales ディレクトリ内の対応するメッセージファイル(messages.json)から文字列に置き換えられます。

2. プレースホルダの使用場所

  • manifest.json

  • HTMLファイル(popup.html, options.html など)


使用例

1. _locales/ja/messages.json

json
{ "appName": { "message": "私の拡張機能" }, "greeting": { "message": "こんにちは、ユーザーさん" } }

2. manifest.json

json
{ "name": "__MSG_appName__", "description": "__MSG_greeting__", "version": "1.0", "manifest_version": 3, ... }

3. popup.html

html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>__MSG_appName__</title> </head> <body> <h1 id="greeting">__MSG_greeting__</h1> </body> </html>

4. JavaScriptでの動的置換(HTML内)

HTMLファイル中の __MSG_***__ は自動では置き換わらないため、JavaScriptで次のように置換する必要があります:

javascript
document.addEventListener('DOMContentLoaded', () => { document.body.innerHTML = document.body.innerHTML.replace(/__MSG_(\w+)__/g, (match, key) => { return chrome.i18n.getMessage(key) || match; }); });

注意点

  • manifest.json では __MSG_***__ は自動で置換されます(Chromeによって)。

  • HTMLでは自動では置換されないため、スクリプトによる明示的な処理が必要です。

  • _locales フォルダ内に各言語ごとのサブフォルダ(例:en, ja)を作成し、それぞれに messages.json を配置する必要があります。

  • messages.jsonmessage キーは必須であり、description はオプションです。


まとめ

__MSG_***__ プレースホルダは、Chrome拡張機能の国際化対応において、ユーザーの言語環境に応じた文字列を表示するための強力な仕組みです。正しく設定すれば、多言語に対応した柔軟なUIを提供できます。

生成日:2025/05/18