プラグインを日本語化するには幾つか方法があります。
日本の WordPress ユーザーが問題なく快適に利用でき、オリジナルプラグインのバージョンアップにもすぐに対応できるならどの方法を選択しても問題ないと思います。でも、せっかく本家チームで各国の言語に対応するようにコアの設計がなされているので、スキルのある方は是非3番目の方法で日本語化を行ってほしいと思います。
イキナリでは少し難しいとは思いますが、ここでは日本の WordPress ユーザーも多く利用されている wp-amazon を例にとって簡単に解説させていただきます。日本語化した wp-amazon はこちらからダウンロード出来ますので参考にしてください。
1) wp-includes/wp-l10n.php を見てみる
function load_plugin_textdomain($domain) { $locale = get_locale(); $mofile = ABSPATH . "wp-content/plugins/$domain-$locale.mo"; load_textdomain($domain, $mofile); }
この関数で、プラグインをどの言語ファイルでローカライズするかを指定しています。
$locale には wp-config.php で指定した WPLANG の値がそのまま入ります。1.5ME では、ja_EUC ですね ? $domain には独自に命名した値が入ります。サンプルでは wpj_amazon としています。
では、そのまま値を当てはめて言語ファイルまでのパスを書いてみましょう
wp-content/plugins/wpj_amazon-ja_EUC.mo
上記のことから、プラグインを日本語化するための第一歩としてプラグイン用の言語ファイルを作成しなければならない。また、ja_EUC.mo を利用しているユーザーは wpj_amazon-ja_EUC.mo を利用し、ja_UTF.mo を利用しているユーザーは wpj_amazon-ja_UTF.mo を利用するということが理解できると思います。さらに、言語ファイルはプラグインと同じく wp-content/plugins ディレクトリに置かなければならないことも読み取れますね。
2) wp-amazon.php を編集する
まずはローカライズする文字列を __( ) 関数で括ってからパラメーター ($domain)
を付けます。
たとえば、All Products という文字列を wpj_amazon-ja_UTF.mo を利用して日本語に変換する場合は
__("All Products", "wpj_amazon");
となります。その他の変換したい文字列もすべてこのように編集してください。
次に、作成した mo ファイルが利用できるように呪文をかけます
この呪文は、wp-l10n.php が読み込まれた後でなければなりません。
load_plugin_textdomain('wpj_amazon');
基本的な作業はこれで完了です。
3) mo ファイルを作成する
__( ) 関数で括った文字列を抜き出して po ファイルを作成し、それを元に mo
ファイルを作成します。
UTF-8エンコードの mo ファイルは poEdit で簡単に作成することができます。
EUC-JPエンコードの mo ファイル作成は Cygwin 等を利用されると良いでしょう。
po ファイルのヘッダーは以下のフォーマットを利用してください。
# LANGUAGE (LOCALE) translation for WordPress. # Copyright (C) YEAR WordPress contributors. # This file is distributed under the same license as the WordPress package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: WordPress VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-27 17:11-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n"
4) その他補足
サンプルとして紹介した wp-amazon では他にも手を加えた箇所があります。
ご存知のとおり、このプラグインでは UTF-8 の画面からしか検索が出来ませんので、EUC-JP
にて WordPress を運営されている方のためにコードを追記してあります。
最初に
header ("Content-Type: text/html; charset=UTF-8");
とした後、メタタグも UTF-8 に決め打ちします
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
最後に強制的に $locale を UTF-8 に指定して UTF-8 の mo ファイルを読み込ませます
if ($locale = 'ja_EUC') { $locale = 'ja_UTF'; }
こんな感じでプラグインの日本語化を行います(む、難しいかな・・・)
(C) 2003-2006 WPJ : Valid XHTML1.0 and Valid CSS !