PoeditでWordPressテーマを国際化する
- 入手先: Poedit
目次
要望
- 自作した小規模サイト用のテーマを国際化したい。
(今回はソーステキストの言語を日本語、翻訳の言語を英語とする) - ソースコード内で翻訳すべき箇所を自動で抽出してほしい。
- 簡単に翻訳ファイルを作成・管理したい。
翻訳ファイルを手作業でテキストエディタを使って書くこともできます。
公式で勧められているように、SVNでi18n tools
をチェックアウトしてmakepot.php
を実行することもできます。
しかし、Poeditを使うのが一番楽だと思います。
(公式: I18n for WordPress Developers - WordPress Codex 日本語版)
環境
準備: ソースコード内の文章を翻訳可能文字列にする
下記のように、ソースコード内で直接記述されている文章を__()
または_e()
で囲みます。
修正前
<?php the_content('詳しく') ?> <?php else : ?> 記事はありません <?php endif ?>
修正後
<?php the_content(__('詳しく')) ?> <?php else : ?> <?php _e('記事はありません') ?> <?php endif ?>
POTファイルを作る
Poeditを起動し、メニューからファイル > 新規カタログ
を選びます。
翻訳の言語を英語
にします。
ここでいったん保存します。
テーマフォルダの直下にlanguages
というフォルダを作り、そこに.pot
という拡張子で保存します。
ダイアログでは.po
でしか保存できなさそうに見えますが、かまわず保存します。
メニューからカタログ > 設定
を選びます。
下の画像の赤枠で囲んだ項目を必ず設定してください。
メニューからカタログ > ソースから更新
を選びます。
ソースコード内の翻訳可能文字列が抽出されてソース テキスト
の欄に表示されます。
確認後、保存してください。
en.po
ファイルを作る
先ほど作成したPOTファイルをPoeditで開き、メニューからファイル > 名前をつけて保存
を選びます。
ファイル名はen.po
です。
※ ここで、もしも下の画像のように翻訳プロジェクトを新規作成する
というボタンが表示されていたら、en.po
を改めて開いてください。
ソーステキストに対する翻訳を入力していきます。
画面の右側に翻訳の提案
が表示されている場合は、それを選択するだけで翻訳ができあがるのでとてもお手軽です。
ソースコードを編集したら
ソースコードを編集して翻訳可能文字列に変化があった場合は、Poeditのメニューからカタログ > ソースから更新
を選びます。
POTファイルとen.po
それぞれで実行してください。
テーマを公開するなら英語に直すべき
今回は翻訳可能文字列を日本語のままにしていますが、もしもテーマを公開するのならば英語に直すべきだと思います。
その場合は、POTの翻訳の言語を日本語
にして、翻訳ファイルとしてja.po
を作成してください。
修正前
<?php the_content('詳しく') ?> <?php else : ?> 記事はありません <?php endif ?>
修正後
<?php the_content(__('More')) ?> <?php else : ?> <?php _e('Nothing to read') ?> <?php endif ?>