You are here: Home » php » 仕事でwordpressthemeを作るなら__();と_e( );使う…でもいらないかも?

仕事でwordpressthemeを作るなら__();と_e( );使う…でもいらないかも?

egg-1364869_640

wordpressの国際化に対応するためにある__();と_e();ですが、どちらも翻訳用のタグですが若干違いますのでその辺の説明を残しておきます。

スポンサーリンク

__();とは、()内に記述した文字が単語で翻訳されます。しかし出力はされない

例えばtwentysixteenのheader.phpに以下の記述がある場合、

コンテンツにスキップ

Skip to contentがコンテンツにスキップに翻訳されて出力されます。

しかし、__();単体では出力機能がないので、echo();で出力してあげる必要があります。

 

ほとんどの場合、functions.phpに記述してあることが多いかもしれません。

外観⇒メニュー⇒位置の管理の項目の

メニュー、ソーシャルメニュー

メインメニューがPrimary Menuで

ソーシャルメニューがSocial Links Menuで翻訳されてます。

つまり、functions.phpなどの関数ファイルで使うことが多いのでecho();で呼び出したりすることは少ないと思います。

 

_e();は翻訳をすぐに出力したい時に使うタグです。

__();とは違い、_e();はすぐに変換と出力を同時にしてくれます。ですので、header.phpやindex.phpのような表示用ファイルに記述して

こんな感じで記述することが多いと思います。_e();のeはechoと思ってもいいかもしれません。

 

<?php _e( ‘Skip to content’, ‘twentysixteen’ ); ?></a>のSkip to contentは翻訳する文言の記述です。「Skip to content」が日本語翻訳で.opファイルで「コンテンツにスキップ」に翻訳されてます。

 

twentysixteenは目印で翻訳テキストを取得するドメインで、twentytwentysixteen-ja.moという翻訳ファイルから取得しろと言う意味です。

twentysixteenの404.phpファイルにも

Oops! That page can&rsquo;t be found.とありますが、これが404.phpをブラウザで表示させると

なにもにつかりませんでした

「何もみつかりませんでした」になってます。

スポンサーリンク

しかし、一般のユーザーには関係ないかもしれない。

日本人や海外の人でもその国の言葉以外はあんまり得意ではないはずです。日本人なら日本語のわかる人のみ、アメリカなら英語のわかる人のみに発信するはずなので、わざわざ_e();や__();を使って翻訳しようとしても本文が日本語だけなら、はっきり言って意味ないタグです。

仕事でテーマを開発するなら必須だと思いますが、個人レベルで使うか使わないか悩んでもメリットはあまりないでしょう。

スポンサーリンク

コメントを残す