web-dev-qa-db-ja.com

JText-多言語文字列の順序

叫びが投稿された時刻を表示する拡張機能があります。次に例を示します。

1日前

この文字列は私のように私のヘルパーで生成されます:

$num . ' ' . JText::_('SHOUT_TIME') . ' ' . JText::_('SHOUT_AGO')

言語定数は次のとおりです。

SHOUT_TIME="day"
SHOUT_AGO="ago"

さて、英語ではこれで十分ですが、たとえばドイツ語では、agovorに変換されます。

この結果は1 tag vor、ただしすべきであることvor 1 tag

SHOUT_TIME、次のいずれかになります。

  • 二番目
  • 時間

したがって、これは別個の言語文字列である必要があります。


では、ヘルパーで条件ステートメントを使用せずに、文字列を切り替えて他の言語に対応するにはどうすればよいですか?

2
Lodder

さらに抽象化を追加します。

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"
6
Nagarjun