ワードプレスのプラグインやテーマに含まれる__(や_e(というコードは何をしているのかについて解説いたします。
__(や_e(の処理について
この処理はワードプレスの組み込みの処理で、簡単に申し上げますと、文字列の翻訳を行うための命令です。
_e(は翻訳を出力します。__(は翻訳を出力しませんので、自前で出力するコードを書く形になります。
↓2つの関数は下記のような書き方となっています。
_e( '翻訳したいテキスト', 'テキストドメイン' ); //← 勝手に出力される echo __( '翻訳したいテキスト', 'テキストドメイン' ); //← echoなどをつけて出力させる必要がある
テキストドメインとは?
テキストドメインとは、翻訳するための言語ファイル名のことで、テーマやプラグインのlangageフォルダに入っていたり、wp-content/languageフォルダに格納されています。
テキストドメイン.po というファイルがそれにあたります。
このファイルは、翻訳前の文章と翻訳後の文章が羅列されているデータベースファイルで、このファイルから、_e(関数で翻訳を引っ張ってきて表示している形になります。
__(や_e(の翻訳を変更するには?
この為には翻訳ファイルの元データ(.mo拡張子)を編集し、コンパイルして.poという拡張子の翻訳ファイルを作り直して、置き換える方法はございますが、ここでは、もっと簡単に一部だけを翻訳部分を直接置き換えてしまう方法をご紹介いたします。
↓この翻訳がおかしい部分だとします。
echo __( 'translate text', 'textdomain' );
↓下記のように直接置き換えてしまいます。
echo '正しい翻訳';
_e(の場合は下記のように出力の処理も加えます
_e( 'translate text', 'textdomain' );
↓下記のように直接置き換えてしまいます。
echo '正しい翻訳';
ただこの方法では、多言語のサイト表示ができなくなりますので、ワードプレスの言語設定が固定で一つの言語のみのサイトの場合のみ利用されてください。
WordPress ワードプレスのプラグインやテーマのバグの修正、移行、カスタマイズのご依頼・ご相談はWPドクターまでお気軽にお送りください