Rails - 文を複数形にする方法は?[重複]
-
23-12-2019 - |
質問
Rails では複数化機能を使用して単語を複数形にできることは知っています。
pluralize (3, 'cat')
=> 3 cats
しかし、私がやろうとしているのは、複数の単語を複数形にする必要がある文を複数形にすることです。
There are <%= Cat.count %> cats
問題は、猫が1匹しかいない場合です。それは戻ってくるだろう
There are 1 cats
それは文法的に意味がありません。
それは言うべきです
There are x cats (if x is not 1)
There is 1 cat (if there is only 1)
問題は、ここには 2 つの引数 (is と cat) があるため、これを複数形にする方法がわからないことです。
助けていただければ幸いです。
たぶんこんな感じでしょうか?
if Cat.count == 1
puts "There is 1 cat"
else
puts "There are #{Cat.count} cats"
end
解決
を利用できます。 複数化機能 の I18n
翻訳キーにカウント値を定義することでライブラリを作成します(つまり、 config/locales/en.yml
):
en:
cats:
one: 'There is one cat.'
other: 'There are %{count} cats.'
次に、コード内 (またはビュー、または他の場所) I18n
世界中で利用可能です)
3.times{|i|
puts I18n.t('cats', count: i)
}
出力します
There are 0 cats.
There is one cat.
There are 2 cats.
所属していません StackOverflow