如何在I18n.translate中传递参数

Leo*_*Leo 7 ruby-on-rails rails-i18n

I18n.translate可以翻译error.messages,如下所示:

I18n.translate('error.messages.taken')
-> has already been taken
Run Code Online (Sandbox Code Playgroud)

但是有一些错误消息包含如下参数:

I18n.translate('error.messages.greater_than_or_equal_to')
-> must be greater than or equal to %{count}"
Run Code Online (Sandbox Code Playgroud)

是否可以在I18n.translate中传递参数'count'?

Dee*_*ale 12

您可以在钥匙后传递参数

I18n.translate('error.messages.greater_than_or_equal_to', count: 2)
Run Code Online (Sandbox Code Playgroud)


小智 6

对于多个参数,它可能是:

I18n.translate('error.messages.greater_than_or_equal_to', {
  count: 2,
  foo: 'bar'
})
Run Code Online (Sandbox Code Playgroud)


Dat*_*att 5

如果需要传递散列(动态)参数,可以使用 double splat 运算符**。

values = { count: 2, name: 'John' }
I18n.t('error.messages.greater_than_or_equal_to', **values)

Run Code Online (Sandbox Code Playgroud)