WordPressで自作プラグインを多言語化する方法【Mac】
- 10 Feb, 2025
プラグインを多言語化する方法【Mac】
WordPressのプラグインを多言語対応させる方法を解説します。特に、Mac環境での作業にフォーカスし、つまずきやすいポイントを押さえながら進めていきます。
1. 多言語化の基本
WordPressの多言語対応には、以下の3つのファイルが必要です。
- POTファイル(翻訳のテンプレート)
- POファイル(翻訳データを編集するためのファイル)
- MOファイル(WordPressが読み込む翻訳ファイル)
翻訳対象の文字列は、__() や _e() などの関数を使って記述します。
<p><?php echo __("これはテストです。POT用のテキストです。", "my-snow-monkey") ;?></p>
この例では、テキストドメインとしてmy-snow-monkeyを指定しています。
2. POTファイルの作成
Macでは、xgettext コマンドを使ってPOTファイルを作成できます。まず、gettext がインストールされていない場合は、以下のコマンドでインストールします。
brew install gettext
次に、POTファイルを生成します。
find ./my-snow-monkey -name "*.php" | xargs xgettext -o translations.pot --language=PHP --from-code=UTF-8 --keyword=__ --keyword=_e
このコマンドは、my-snow-monkey ディレクトリ内のPHPファイルから翻訳可能な文字列を抽出し、translations.pot に保存します。
3. POファイルとMOファイルの作成
POTファイルができたら、Poeditなどの翻訳ツールを使って翻訳ファイルを作成します。ここで重要なのが、ファイル名のルールです。
⚠ 注意点:POファイルの命名規則
en.poは間違い ❌en_US.poが正しい ⭕
なぜか?
WordPressは、サイトの言語設定(en_US、ja_JP など)に基づいて、適切な翻訳ファイルを探します。そのため、en.po のようにロケールを指定しないと、正しく読み込まれません。
Poeditでの手順
translations.potを Poedit で開く- 言語を「English (United States)」に設定
en_US.poとして保存- [カタログ] > [MOファイルを保存] をクリックし、
en_US.moを生成
4. プラグインで翻訳を適用する
生成した翻訳ファイルを languages フォルダに配置します。
/wp-content/plugins/my-snow-monkey/languages/my-snow-monkey-en_US.mo
そして、プラグインのメインファイル (my-snow-monkey.php) に以下のコードを追加します。
function my_plugin_load_textdomain() {
load_plugin_textdomain( 'my-snow-monkey', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action('plugins_loaded', 'my_plugin_load_textdomain');
ここで、テキストドメインは __() で指定したものと同じにすることが重要です!
⚠ 注意点:テキストドメインの一致
<p><?php echo __("これはテストです。POT用のテキストです。", "my-snow-monkey") ;?></p>
⬇ load_plugin_textdomain() でも、同じ my-snow-monkey を指定すること!
load_plugin_textdomain( 'my-snow-monkey', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
テキストドメインが一致しないと、翻訳が適用されません。
5. 翻訳が適用されない場合のチェックリスト
✅ en.po ではなく、en_US.po にしているか?
✅ .mo を languages フォルダに正しく配置しているか?
✅ load_plugin_textdomain() でテキストドメインが正しく指定されているか?
✅ WordPressの言語設定が English (United States) になっているか?
✅ キャッシュプラグインを使用している場合、一度キャッシュを削除して試してみる
6. Pogo を使ってSEO対応と言語の切り替えを実装
今回は Poedit を使いましたが、WordPressのプラグイン「Pogo」 を使って、SEO面の多言語対応と言語の切り替え も実装しました。
Pogoを使うと、検索エンジンに最適化された形で翻訳を適用でき、訪問者の言語に応じたページ表示が可能になります。
Pogoの主な特徴:
- 言語ごとに適切なURLを設定(例: /en/ や /ja/)
- SEOに適したhreflangタグを自動挿入
- シンプルなインターフェースで簡単に多言語管理
Pogoを活用することで、多言語サイトのUXを向上させ、SEOの評価も高めることができます。
まとめ
🎯 POTファイルを作成し、POファイルを en_US.po 形式で保存する
🎯 プラグインのコードで __() や _e() を使う
🎯 load_plugin_textdomain() のテキストドメインと __() の引数を一致させる
🎯 翻訳ファイルを /languages/ に配置する
🎯 Pogo を使ってSEO面の多言語対応と言語の切り替えを実装
この方法を使えば、WordPressプラグインを安全に多言語対応できます! 🚀