自作テーマを多言語対応させる


出オチですいません。結局うまくいってません…。

自作のテーマを Theme-Check でテストしたところ翻訳関係のところでずらずらと「推奨」「情報」が出力されたので消せないもんかな?とやってみました。

WordPress のテーマとかプラグインをみてると「__( )」とか「_e( )」で囲まれたところが目につきます。かっこの内側には英語でメッセージが書かれていて、実際に表示されるときは日本語で表示されるのでここが翻訳されるんだな、ということはなんとなく分かります。

となると __() と _e() との使い分けが気になるんですがこれは直接表示するものが _e() で __() が一度プログラムへ渡すものなんだそうです。基本形は __() で echo __() の短縮形みたいなものが _e() ってことでしょうか。

たとえば <p> タグでくくって「こんにちは!」と表示するなら _e() で、テンプレートタグのオプションとして渡すなら __() でよさそうです。

しかしもちろん勝手に翻訳してくれるわけではありませんから、対応表のようなものを作る必要があります。しかも「対応表」はプラグインやテーマそれぞれが別のものを使うので識別名のようなものが必要です。

なのでほんとうは __() の中は訳語と識別名(textdomain と言うらしいです)をカンマで区切って記述するものなのだとか。さらに textdomain を functions.php で対応表の場所と一緒に登録して有効化しなきゃいけないそうです。

いやぁ、とりあえず動いてくれる WordPress ってステキ。

だったらちゃんと対応表つくって textdomain も有効化してやってみよう、と対応表から作ってみます。

そもそもこの翻訳の仕組みは gettext というものらしくて WordPress 独自のものではないらしいです。ということで対応表(メッセージカタログと言うらしい)を作るためには専用のツールを使います。

Poedit

このツールを使って .po ファイルというのをつくって作業を行い、保存したときに生成される .mo というファイルを実際に使用します。

まずは Poedit をダウンロードしてきてインストールします。初回起動時に日本語を選択してウインドウが開いたらファイルメニューから新規カタログを選択します。

あとは翻訳したいファイルの位置を指定してキーワードに _e を追加して ok を押せば .po ファイルが作られる…はずなんですがエラーで進みません。

お約束のエラーメッセージでググる、もヒットしないし、テスト用にファイルを作ってみたりしてもダメなので完全にはまってます。なんだかなぁ。

というわけでここで終了です。ホント、出オチでごめんなさい。


コメントを残す

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