すたらブログ

文系Webプログラマの備忘録

PoeditでWordPressテーマを国際化する

目次


要望

  • 自作した小規模サイト用のテーマを国際化したい。
    (今回はソーステキストの言語を日本語、翻訳の言語を英語とする)
  • ソースコード内で翻訳すべき箇所を自動で抽出してほしい。
  • 簡単に翻訳ファイルを作成・管理したい。

翻訳ファイルを手作業でテキストエディタを使って書くこともできます。
公式で勧められているように、SVNi18n 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 ?>