__()
関数には2番目の引数があります。プラグインまたはテーマに使用しているドメインに設定する必要があります。以下の例では、を使用します'text_domain'
。ドメイン文字列は一意である必要があります。他のドメイン文字列と一致してはなりません。テキストドメイン引数を使用しない場合、デフォルト'default'
でWordPressドメイン名が使用されます。詳細については、リンクを参照してください。
常に文字列('text_domain'
)を使用します。文字列を含む変数、関数、または定数を使用しないでください。ほとんどの(すべて?)翻訳プログラムは、そこに文字列がないと表示されません。
あなたのコード:
echo __( 'Hello ' . $first . ' you own me money.' );
文字列に変数を含めないでください。
より良い方法:
echo sprintf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
あるいは単に:
printf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
%s
プレースホルダ文字列がそこで起こっていることを人間の翻訳者に伝えます。%d
数字に使用します。他のプレースホルダーもあります。
(この文は文法的に正しくない英語です。どちらを使用するか、'Hello %s, you owe me money.'
または'Hello %s, you own my money.'
意図していた意味に応じて使用してください。)
あなたのコード:
$html = '<div><p>Top: ' . $t_margin . '</p>' . <p>Bottom: ' . $b_margin . '</p></div>';
HTMLを翻訳しないでください。どの言語でも同じです。
より良い方法:
$html = sprintf( '<div><p>%s</p><p>%s</p></div>', __( 'Top: ', 'text_domain' ) . $t_margin, __( 'Bottom: ', 'text_domain' ) . $b_margin );
または、複数行に分割します。
$html = sprintf(
'<div><p>%s</p><p>%s</p></div>',
__( 'Top: ', 'text_domain' ) . $t_margin,
__( 'Bottom: ', 'text_domain' ) . $b_margin
);
それが明らかでない場合はどのようなトップとボトム、あなたが使用する可能性がありますされている_x()
これらの用語の内容を説明します。
他の翻訳事例はここで見つけることができます:国際化:あなたはおそらくそれを間違っているのでしょう