結果の文字列に変数値を挿入し、文字列に複数形を尊重させる必要がある状況でZend_translateを使用しようとしています。ビュースクリプトで通常の(複数形ではない)ビューヘルパー$ this-> translate()を使用すると、文字列に変数を挿入できます。
$this->translate('You have %1$s questions to answer', 3)
// would result in "You have 3 questions to answer" being output
しかし、Zendが複数形の現代的な方法と呼んでいるものを使用する場合、これをどのように行うのですか?どうやら$this->translate()ビューヘルパー自体は複数形表記をサポートしていないようですが、代わりに呼び出す必要があります
$this->translate()->getTranslator()->translate(
array('You have %1$s question to answer',
'You have %1$s questions to answer', $someNr )
)
しかし、その時点では、変数プレースホルダーを持つ複数形の文字列しかなく、値が挿入された文字列はありません。言い換えれば、私が得ているのは次のとおりです。
答える%1$sの質問があります
私が欲しいのは
答える質問が2つあります
だから問題は、Zend_Translateはどういうわけか複数形を使用するこの方法をサポートしていますか?つまり、複数形の文字列に変数値を挿入しますか?または、複数形の前後で文字列を分割し、それぞれを個別に翻訳してから、出力で連結する必要がありますか?