WSR Contact Form とプラグインの日本語化


以前から「置かなきゃいけないなー」と思いつつも放置してたメールフォームを設置しました。サイドバーのページのところにある「管理人へメール」をクリックすればフォームからメールを送信できます。

使ったのは WSR Contact Form というプラグイン。素直に WP-ContactForm 使えばいいのに、と自分でも思ってしまいますが、ほかのものに手を出してみました。基本の機能としてはフォームからメールを送信するというものなので大差はありません。おまけ機能(?)としては特定の文字列をフォームへのリンクに置換できるようです。こんなCFLink感じ。そしてコレがこのプラグインのウリだと思われます。ただ、この置換は対象がすべてのポスト/ページなので負荷がちょっと気になるところ。クエリが記事の数だけきっちり増えてるし。

この手のツールというかメール関係でいちばんコワイのは文字化けですが、とりあえずインストールしてテストしてみたところでは問題なし。差出人の名前が文字化けしてますが本文は問題ないので、たぶん UTF の文字をそのままヘッダへ流してるんじゃないかと予想。差出人の名前は本文中にも表示されるので困ることはありません。

そんなわけで設置自体は「いつもどおり」の作業で終了したわけですが、今回はせっかくなので(?)設定画面に表示されるメッセージを日本語へ変更してみました。プラグインファイルを開いて英語で書かれている部分を日本語に書き換えて…じゃ力ずく過ぎるので公式ページで紹介されているプラグインの日本語化手順に挑戦してみます。

正確な記述とかはほかのページを参照していただくとして(!?)やらなきゃいけないことを列挙するとこんな感じになります。

  • 翻訳したいメッセージを囲む
  • 言語ファイルを作る
  • 言語ファイルの場所をプラグインのなかに書き込む

順番はどれからでもいいんですが、この順番がよさげ。まずはプラグインファイルのなかから翻訳したいメッセージを探します。見つけたら __( ) か _e( ) でかこんで「ココを言語ファイルを使って差し替える」と指定します。カッコのなかはオリジナル(英語)のメッセージと言語ファイルにつけたドメイン名をそれぞれクオーテーションで囲み、コンマで区切って指定します。言語ファイルにつけるドメイン名は勝手に決めて OK みたいです。最初は – を入れちゃダメかと思ってたんですが、そうでもない様子。しかし少なくともどのプラグインの言語ファイルかわかる名前にしておいたほうが無難だと思います。今回わたしは「wsr_contact_form」にしました。なんのヒネリもありません。

言語ファイルは最終的に .mo というバイナリファイルが必要なんですが、そのファイルは .po というテキストファイルから生成するらしいです。ソースファイルをコンパイルするようなイメージでしょうか。書式は

msgid "Just in case!"
msgstr "念のためですよ!"

という対をずらずらと書き連ねるらしいです。必要なヘッダも先出の日本語化手順紹介ページに例示されていますのでテキストエディタでカリカリ作ってみました。できあがったところで .mo ファイルへ変換しようとpoEdit をインストールしてみたところ…どうやら最初からコレで作業するのが本道だったようです。詳しくは poEdit 取扱説明書 でどうぞ。ちなみにテキストエディタで作業が終わってる場合は一度読み込んで即保存すれば自動で .mo ファイルができあがります。正確には設定によりますが、デフォルトでは作ってくれるはず。そしてココでも引っかかってしまったんですが、プロジェクトチーム名などはちゃんと設定しましょう。デフォルトのままにしてたら保存するとき怒られました。

ココまで終わればあとはプラグインファイルに言語ファイルを読み込むように書き込めば完成です。今回の場合はプラグインファイルの冒頭に

load_plugin_textdomain(‘言語ファイルのドメイン名’);

を追加すればOKです。ただしこれはプラグインファイルと言語ファイルを plugins ディレクトリへ直接ほうり込んだ場合。plugins ディレクトリがゴチャゴチャするのがいやなのでプラグインごとにフォルダを作る場合は

load_plugin_textdomain(‘言語ファイルのドメイン名’,’wp-content/plugins/プラグインごとのフォルダ’);

 とパスを指定します。プラグイン自体は plugins ディレクトリ直下でなくても WordPress 本体から認識されるらしいです。だったら言語ファイルも探してクレよ…というかカレントにならないの?という気もしますがぜいたくは言いませんです。

そんなこんなで設定画面は変な日本語が表示されるようになりました。一件落着。ですがコンタクトフォームのほうは英語のまま。Name(required) って感じです。ココってどうなんでしょうか。もちろん囲んで訳語を設定すれば日本語表示は出来るはずですが、それだとテーマのコメントフォームとずれが生じる可能性があるわけで。というか本体の言語ファイルから引っ張ってくるのがスジってものだと思うわけです。でも、デフォルトのテーマを見てもコメントフォームについては直書きされてる様子。単に漏れてるとかってわけじゃ…ないよなぁ。謎だ。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です