このところ、使用しているプラグインをいそいそと日本語化にしている。
「Google Analytics Dashboard for WP」「BackWPup」「WordPress SEO by Yoast」などなど、気が付けば日本語化したプラグインは10を超えました。そんなわけで、今回はプラグインを日本語化する手順をご紹介したいと思います。
Poeditで日本語化
1.インストール
日本語化するにはまず、Poeditという翻訳編集ソフトが必要になります。ここではインストールの手順は割愛させていただきます。ネットで検索すれば、インストール手順はたくさん紹介されているでしょう!
以下からインストールをしてください。
Poeditの公式ページ:http://sourceforge.jp/projects/sfnet_poedit/
インストール対象ファイル:Windows 「 poedit-1.5.7-setup.exe 」
(※2013/9/28日現在のバージョンです。環境に合わせて対象ファイルを選択してください)
2.翻訳したいプラグインの前準備
「 Lightbox Plus ColorBox 」を参考例として説明したいと思います。
まず、WordPress公式から対象プラグインをローカル環境にダウンロードします。「 Lightbox Plus ColorBox 」にはすでに「potファイル」がありますが、今回は無いものとして解説を進めます。
使用するプラグイン:Lightbox Plus ColorBox プラグイン
前準備で重要な点は以下の2つ
- 「Lightbox Plus ColorBox」フォルダの直下に「 languages 」ファイルを作成する
- フォルダ直下にある「lightboxplus.php」ファイルに以下のコードを挿入する(必ずルートディレクトリ直下のphpファイルに記述すること)
「 load_plugin_textdomain( ‘ lightboxplus ‘, false, dirname( plugin_basename( __FILE__ ) ) . ‘ /languages ‘ ); 」
- 任意のドメイン名は何でもOKですが、分かりやすくプラグインのファイル名にしときましょう。
- 返り値は「false」又は「空白」にしてください。(翻訳ファイルをロードできたかどうかの返り値)
- プラグインの相対パスは「 dirname( plugin_basename( __FILE__ ) ) 」と記述。
- 翻訳格納ファイルは「poファイル / moファイル」の保存場所です。(ファイル名は何でもOKですが、「languages」がベスト)
翻訳可能コードに置き換える
翻訳対象のための関数は以下のようなものが使用できます。
また、「 _e 」「 __ (アンダーバー2つ)」以外にも使用できます。
詳しくはCodexを参照してください。
- 例1: echo _e(‘ Base Settings Options ‘ , ‘ lightboxplus ‘);
- 例2: echo __(‘ Removed old Lightbox Plus ColorBox styles ‘ , ‘ lightboxplus ‘);
- 例3: echo __( ‘ <strong style=”color:#900;”>Lightbox custom styles initialization failed.</strong> ‘ , ‘ lightboxplus ‘ );
- ※翻訳対象文字列にはHTMLコード(<strong>,<a herf=”xxxxx”>,<br/>など)を含めることもできます。
- ※まれに文章の中に「, (カンマ)」を使用しているものがありますが、カンマは使用しないでください。(ドメイン名の前に1つのみ記述すること)
- ※プラグインによっては翻訳対象文字列は膨大になり、様々なphpファイルを修正しなければいけません。
コードを翻訳可能関数を用いて書き換える サンプル1
※「__」や「_e」を使用し、翻訳対象文字列とドメイン名をカンマで区切ります。
コードを翻訳可能関数を用いて連結する サンプル2
※複数行にまたがっている場合は、アポストロフィーで連結し、最後に「 echo 」 で出力させることもできる。
poファイルの抽出
全てのphpファイルの中の翻訳可能文字列を修正したら、Poeditを使用して「poファイル」と「moファイル」を抽出します。ここで、大切なのはPoeditで設定する「パス」です。
ここさえ間違わなければ「poファイル・moファイル」は問題なく作成できます。
翻訳情報の設定
- ※「プロジェクトの名前」「翻訳チーム」「言語」の入力は必須ではありません。空白でもOKです。
- ※「文字符号化法」「ソースコードの文字符号化法」は必ず「 UTF-8 」に設定してください。
- ※複数形には「 nplurals = 1; plural = 0; 」と入力してください。
- ※複数形の詳細についてはこちらから参照。
ソースの検索パス
- ※ベースのパスは「 . (ドット1つ)」のみです。デフォルトで設定されています。
- ※追加のパスは「 .. (ドット2つ)」です。languagesフォルダの階層を表しています。
- ※入力内容を確定させるために、必ず「 Enter キー 」を押してください。確定せずに次に進めると入力ないようが反映されない恐れがあります。
ソース中のキーワード
- ※php内の翻訳対象文字列に適用した翻訳関数を入力します。
- ※通常は「 __ 関数 」(アンダーバー2つ) や「 _e 関数」を追加すればOKです。
- ※入力内容を確定させるために、必ず「 Enter キー 」を押してください。確定せずに次に進めると入力ないようが反映されない恐れがあります。
poファイルを languagesファイル に保存する
- ※ファイル名は「default.po」でもOKですが、「 ドメイン名 + -ja .po 」でもOKです。
- ※最終的には「 ドメイン名 + -ja .po 」のファイル名になります。
以上でエラーが出なければ、Poeditでの「poファイルの抽出」が終了です。
エラーが出るならば、上記の手順を再度見直して挑戦してみてください。
「 moファイル 」ですが、翻訳したのち、Poedit上部の「保存」を押せば、自動的に「moファイル」が「 / languages」の中に保存されます。
「 moファイル 」と「 load_plugin_textdomain を追加したphp ファイル 」をサーバーにアップして完了です。