如何在Rails 4中翻译占位符文本?

Jum*_*ton 7 ruby-on-rails internationalization rails-i18n

我希望Rails像表单标签一样自动翻译占位符文本.我怎样才能做到这一点?

表单标签会自动翻译,如下所示:

= f.text_field :first_name
Run Code Online (Sandbox Code Playgroud)

此帮助程序使用区域设置文件:

en:
  active_model:
    models:
      user:
        attributes:
          first_name: Your name
Run Code Online (Sandbox Code Playgroud)

哪个输出这个HTML

<label for="first_name">Your name</label>
Run Code Online (Sandbox Code Playgroud)

如何才能使占位符翻译?我是否必须输入如下所示的完整范围:

= f.text_field :first_name,
    placeholder: t('.first_name', scope: 'active_model.models.user.attributes.first_name')
Run Code Online (Sandbox Code Playgroud)

有更简单的方法吗?

cwe*_*ton 15

如果使用Rails 4.2,则可以将占位符属性设置为true:

= f.text_field :first_name, placeholder: true
Run Code Online (Sandbox Code Playgroud)

并在语言环境文件中指定占位符文本,如下所示:

en:
  helpers:
    placeholder:
      user:
        first_name: "Your name"
Run Code Online (Sandbox Code Playgroud)