WordPressの英語プラグインを日本語に翻訳する
WordPressのプラグインの翻訳は、以前bbpressの翻訳の際に、poeditで実施しました。
プラグインを追加していくうちに、言語設定ファイルが用意されていない英語のプラグインがいくつかあったため、
翻訳をしてみることにしました。
事前準備
Poeditのインストールと、プラグインで使用しているPHPファイルを、自分のPCにダウンロード。
複数PHPファイルがある場合には、フォルダーごとダウンロードしてもOKです。
ちなみにWordpress4.6以上だと、翻訳プロジェクトがあり、こちらで翻訳されているものは、個別にプラグイン側で読み込みを作らなくても翻訳してくれるようです。
Poeditを使用してプラグインの翻訳
1. Poeditで新規作成
poeditを開き、「ファイル」→ 「新規」 → 翻訳言語で「日本語(日本)」を選択
ファイルを一旦保存(保存しないと次のステップで保存するようにいわれます)
2. カタログの設定
poeditの画面の以下の「ソースから抽出」を選択。(または、「カタログ」→「プロパティ」→「ソースの検索パス」を選択。)
「ソースの検索パス」タブで以下の赤い丸で囲っている「+」ボタンを選択し、プラグインのソースがあるディレクトリーまたは、ファイルを選択します。
選択すると、上のベースパスの部分に、パスが記載されます。右端の⇒をクリックするとディレクトリーを参照できます。
ソースのパスを選択したら、右隣の「ソースのキーワード」タブを選択し、ソースからの抽出キーワード(翻訳するテキストの関数)を記載します。
例えば、プラグインの中で、以下のような_e関数を使用している記載がある場合、青字部分が翻訳されるテキスト(翻訳前は英語表示になっているテキスト)になります。
<?php _e( 'Some text to translate and display.', 'textdomain' ); ?>
プラグインで使用されている関数だけキーワードに指定してもいいですが、ここでは一応関連しそうな関数をキーワードとして登録しておきます。
設定したソースキーワード
- __
- _n
- _x
- _ex
- _nx
- esc_attr__
- esc_attr_e
- esc_attr_x
- esc_html__
- esc_html_e
- esc_html_x
- _n_noop
- _nx_noop
- translate_nooped_plural()
上記のキーワードを、入力していきます。「+」をクリックすると、下に入力可能なエリアが出てくるので、そこに上記のキーワードを入力します。
3.翻訳
ソースキーワードの入力後、「OK」を選択すると、カタログから抽出が自動的に始まり、完了すると翻訳を記入する以下の画面が表示されます。
各文章に対して、下に記入ボックスがあるため、そちらに日本語訳を記入し、完了後、保存します。
プラグインで言語ファイルの読み込みを設定
プラグインで言語ファイルを読み込みます。
add_action( ‘init’, ‘myplugin_load_textdomain’ ); function myplugin_load_textdomain() { load_plugin_textdomain( ‘my-plugin’); }
load_plugin_textdomainは、言語ファイルのパスも指定できますが、デフォルトの以下のようなパスに配置していれば、指定は不要です。
上記のように関数を追加した場合、以下のように翻訳済みのMOファイルを配置すれば、読み込むことになります。(my-pluginはプラグイン名に変更ください。)
/wp-content/languages/plugins/my-plugin-jp.mo