WordPressで自作プラグインを多言語化する方法【Mac】

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_USja_JP など)に基づいて、適切な翻訳ファイルを探します。そのため、en.po のようにロケールを指定しないと、正しく読み込まれません。

Poeditでの手順

  1. translations.pot を Poedit で開く
  2. 言語を「English (United States)」に設定
  3. en_US.po として保存
  4. [カタログ] > [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 にしているか?
.molanguages フォルダに正しく配置しているか?
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プラグインを安全に多言語対応できます! 🚀