__() の使い方|説明・引数・注意点

説明

__() は、文字列を翻訳して、値として返す関数です。テーマやプラグインの、翻訳できる文字列に使います。出力する関数は _e()。

基本構文

__( string $text, string $domain = 'default' ): string

引数

  • $text:翻訳する文字列(原文)
  • $domain:テキストドメイン(翻訳ファイルの識別名)

戻り値

翻訳された文字列。翻訳がないときは、原文を返します。

使い方(サンプル)

$label = __( '送信する', 'my-plugin' );
echo esc_html( $label );

注意点

  • 出力しません。値を返すだけです。
  • エスケープは、行われません。HTMLに出力するときは、esc_html__() や、esc_html() を通します。
  • テキストドメインは、変数ではなく、文字列で直接書きます。

実務での使いどころ

  • 翻訳できる形で、ボタンの文字や、見出しを、変数に入れて使うとき。
  • sprintf() と組み合わせて、数値を含む文を、翻訳するとき。

よくあるミスと対処

  • エスケープせずに、そのまま出力している。
  • テキストドメインや原文を、変数にしている。翻訳ファイルを作るときに、文字列を抽出できない。
  • 翻訳する文を、連結で作っている。1つの文として、書く。

NG例

echo __( $label, $domain ); // 変数で、翻訳を抽出できない。エスケープもない

OK例

echo esc_html( __( '送信する', 'my-plugin' ) );
// 数値を含む文: sprintf( __( '%d件の結果', 'my-plugin' ), $count )

使い分け早見表

関数 役割
__() 翻訳して、値を返す
_e() 翻訳して、出力する
esc_html__() 翻訳して、エスケープして、値を返す
_x() 文脈つきで、翻訳して、値を返す

関連項目

_e()、esc_html_e()、_x()、_n()

公式リファレンス:__() | WordPress Developer Resources

コメント

タイトルとURLをコピーしました