1

数字に基づいてテキストを複数形にする必要があります。私の翻訳ファイルにはこれがあり、

   en:
     people:
       one: %{count} People
       other: %{count} Peoples

問題は、数字を太字にする必要があることです。だから私の見解では、私はこれを持っています、

 raw t(.people, count: content_tag(:strong, 4)) 

私は content_tag を含めているので、これは文字列を「カウント」<strong> 4 </strong>して翻訳に渡し、常に「人」を返しますか?

または、これを行うためのより良い方法があります。

ありがとう

4

1 に答える 1

1

1 つのオプションは、生の i18n 出力を使用し、HTML を i18n に入れることです。

en:
 people:
   one: <strong>%{count}</strong> People
   other: <strong>%{count}</strong> Peoples

次に、翻訳で次を使用します。

<%= raw t(:people, count: 4) %>

理想的ではありませんが、これが最適なソリューションであるユースケースは十分に単純かもしれません。

もう 1 つは、2 つの異なる翻訳を使用してそれらをネストする方法です。1 つは強力なタグで数字をラップするためのもので、もう 1 つはリンクを作成するのと同様に、強力な HTML を渡して単語を複数形にするためのものです。

text_with_anchor: This is a link. %{href} to click it!

t(:text_with_anchor, href: link_to(t(:another_translation), some_path))
于 2013-11-11T19:42:02.257 に答える