[WP Theme Dev] Poedit を利用した WordPress 自作テーマの多言語翻訳

自作テーマやプラグインを多言語翻訳対応するための情報。

Contents

翻訳ファイル(POT, PO, MO)

基本的にはテンプレートである POT ファイルから、PO ファイルと MO ファイルを作成する流れとなります。

WordPress のテンプレートファイルに仕込んだ __( $text, $domain ) のような翻訳関数と対応付けた設定を POT に持たせます。

POT ファイルは Underscores のようなスターターキットを利用すれば雛形が用意されているので楽ができます。

翻訳についてはスタイルガイドも用意されており、公式に配布する場合には留意が必要そうです。

Poedit の導入

PO ファイルと MO ファイルの作成には Poedit を利用する方法が良さそうです。
公式サイトからダウンロードできます。

brew install も可能でした。

% brew cask install poedit

Poedit の具体的な導入方法と翻訳関数については、下記が大変参考になりました。
ありがとうございます。

Poedit のライセンス種別

Poedit には、Free と Pro, Pro+ の有料版のライセンスが用意されています。
Pro は現行バージョン v2 の買い切り、Pro+ は年払いのサブスクリプションです。

Pro, Pro+ には翻訳の提案機能が用意されていますので、非英語話者にとってのメリットは大きいと思います。

なお Pro, Pro+ の違いですが DeepL に日本語が対応していませんので、日本人にとっては機械翻訳に Microsoft Translator を利用するか Google Translate を利用するかという点だけになります。

(違っていたら申し訳ないですが)多少翻訳がマシかなくらいの差だと思いますので、私は買い切りライセンスを所有しています。

Gutenberg 部分の翻訳について

Gutenberg のブロックを自作した場合などは、翻訳ファイルを別途用意する必要があるようです(未検証)。

フロントエンドではバイナリの mo ファイルではなく Jed と呼ばれる形式の JSON ファイルを用います。この JSON ファイルを @wordpress/i18n のライブラリで読み込むことで、フロントエンドでも翻訳を適用することができます。

@wordpress/babel-plugin-makepot で pot ファイル(翻訳テンプレート)を抽出する – Qiita