作成したWordPressテーマの国際化(i18n)対応方法

もっとも簡単な方法をメモ

普通に調べるとコマンドラインがどうたらこうたらとか難しい話が出てきたり、Poeditのバージョンが上がってUIが少し変わっていて戸惑ったので忘れないようにメモ。

※以下、WordPressテーマは"ki-orion"という名称を例にしています。

国際化手順

0 Poeditのインストールとベースになるpotファイルのダウンロード

コマンドラインとかはまだ使えないんでGUIツールを使います。
Poeditのダウンロード
有料版の方がWordPress対応が優れているそうですが、手間をかければ無料版でも使えます。本記事は無料版での手順になります。
The fastest and most convenient way to translate interfaces — Poedit
インストール手順は省きます。普通にやれば普通にインストールされますので。

WordPressのpotファイルのダウンロード
GitHub - fxbenard/Blank-WordPress-Pot: Blank-WordPress-Pot is the starter pot file to include in your language folder
緑の「clone or download」のボタンでzipファイルをダウンロード、ローカルで展開。

参考:WordPress プラグイン・テーマ翻訳: Poedit 無料版で新規 POT ファイルを作成する – Naoko Takano

1 テーマのディレクトリに languages というディレクトリを作り、potファイルを設置。
  1. 作成したテーマのテーマフォルダ直下に"languages"という名前のディレクトリを作成。
  2. このディレクトリに先ほどダウンロードした「Blank-WordPress.pot」ファイルを複製。
  3. 複製したBlank-WordPress.potの名前をテキストドメインの名前に変更。

プラグインの場合は、プラグインディレクトリの中にlanguagesというディレクトリがあるはず。なければ作る)

今回のテーマの場合、Blank-WordPress.pot を ki-orion.pot に変更。

2 functions.phpに翻訳ファイルを読み込むコードを記載する
add_action('after_setup_theme', 'my_language');
function my_language(){
    load_theme_textdomain('ki-orion', get_template_directory() . '/languages');
}
3 テーマのstyle.css/プラグインのコメントヘッダーにテキストドメインの情報を書く。

テーマの場合

Theme name: ki-orion
 (中略)
Text Domain: ki-orion

テキストドメインはテーマ名と同じにする方がよいらしいです。
また、テーマの名前は他の人が作って公開しているテーマと重複していないか、公式ディレクトリで検索して確認しておくことが必要。

4 テーマの日本語部分をすべて国際化関数に変更する。

Poeditは翻訳用コードを抽出して辞書ファイルを作るので、テーマやプラグインは翻訳以外は完成している必要があります。

国際化関数の書き方(テキストドメインがki-orionの場合を例に)
翻訳結果を出力する場合: <?php esc_html_e('words','ki-orion');?>
変数に入れる、関数内で使用する場合: <?php esc_html__('words','ki-orion');?>
※単に <?php _e('words','ki-orion');> や <?php __('words','ki-orion');> でもOKだが、セキュリティ強化のためエスケープをかけておく。

5 potファイルの設定変更

potファイルを開く。

メニューの「カタログ」→「設定」を選択。

「プロジェクト名とバージョン」、「翻訳チーム」、「翻訳チームのメールアドレス」を適宜変更。プロジェクト名はテーマのドメイン名(テーマ名)にする。
文字コードは「UTF-8」。これはデフォルトで選択されているはず。
「更新する」ボタンをクリック。
ソーステキストが検索され、表示される。
「保存」ボタンで保存。

6 ja.poファイルの作成

メニューの「ファイル」→「名前を付けて保存」をクリック。
保存画面でファイル名を「ja.po」に変更して保存。(ファイルの種類ではpotしか選択できないように見えるが無視する。)
テーマの翻訳ファイルの場合は言語コード、もしくは言語_国コードのみのファイル名とする。(ja.poやen_US.poなど)
プラグインの翻訳ファイルの場合は、これらの前にハイフンを付けてプラグインのテキストドメインを追加する。(plugin-ja.poなど)

7 ja.poファイルの編集

一旦Poeditを終了し、再度立ち上げ。

「翻訳言語がソース言語と同一です。」のアラートが出るので、「言語を修正」ボタンをクリックして言語を「日本語」に修正する。
複数形の項目は「この言語のデフォルトルールを使う」を選択。
日本語はスクロールバーを一番下までもっていくと出てくる。
「OK」ボタンを押すと翻訳が可能になる。

右ペインに表示される「翻訳の提案:」に適当なものがあればそれをクリック。

無ければ「翻訳」欄に自分で入力する。

翻訳の際には、
View Glossary < GlotPress — WordPress.orgの標準訳に沿って行う。


もしも「未確定」ボタンが有効になっていた場合、

「未確定」ボタンを押して未確定状態を解除する。(翻訳が確定していないと反映されない)

8 ja.moファイルの作成

デフォルトの設定ならこのまま「保存」を押すとmoファイルが自動的に生成される。
メニューの「ファイル」→「MOにコンパイル」をクリックしても生成することができる。