叫びが投稿された時刻を表示する拡張機能があります。次に例を示します。
1日前
この文字列は私のように私のヘルパーで生成されます:
$num . ' ' . JText::_('SHOUT_TIME') . ' ' . JText::_('SHOUT_AGO')
言語定数は次のとおりです。
SHOUT_TIME="day"
SHOUT_AGO="ago"
さて、英語ではこれで十分ですが、たとえばドイツ語では、ago
はvor
に変換されます。
この結果は1 tag vor
、ただしすべきであることvor 1 tag
。
SHOUT_TIME
、次のいずれかになります。
したがって、これは別個の言語文字列である必要があります。
では、ヘルパーで条件ステートメントを使用せずに、文字列を切り替えて他の言語に対応するにはどうすればよいですか?
さらに抽象化を追加します。
JText::sprintf('COM_MYCOMPONENT_DATETIME_AGO', $num, JText::_('SHOUT_TIME'), JText::_('SHOUT_AGO'));
英語
COM_MYCOMPONENT_DATETIME_AGO="%1$s %2$s %3$s"
ドイツ語
COM_MYCOMPONENT_DATETIME_AGO="%3$s %1$s %2$s"