concrete5 逆引きリファレンス

文字を翻訳して出力する t()

2021/05/20 23:06
文字列がもし翻訳ファイルの対象であれば翻訳して出力します。

t()関数がGeneral Helperの一つで文字列が翻訳ファイルの中に対象文字列があれば、今のページの言語に翻訳して出力してくれます。

echo t('Save');
echo t('Cancel'); 

それぞれ、保存、キャンセルと日本語で出力されます。

またprintf()などを使わなくても代入が可能です。

echo t('Edit %s', 'Privacy statement');

Privacy statement を編集

と出力されます。

複数と単数で違う翻訳を表示するt2()もあります。

echo t2('%d page', '%d pages', $pages);

日本語では、どちらもページですが。$pagesが1の場合は 1page、2以上の場合は 3 pagesと表示されます。

一つの単語で、違う意味を持っている場合に文脈で翻訳を使い分けたい場合はtc()を使います。

翻訳ファイルにもそれを追記します。

例えば、bankには銀行と、川の土手という2つの意味が同じ綴りでありますので

echo tc('bank of a river', 'bank'); //川の土手
echo tc('deposit money', 'bank'); //お金を預ける

という、contextをつけて翻訳を出力しわけます。