我希望Rails能像表单标签一样自动翻译占位符文本。我该怎么做?
表单标签自动翻译如下:
= f.text_field :first_name此助手使用区域设置文件:
en:
active_model:
models:
user:
attributes:
first_name: Your name,它输出此HTML
<label for="first_name">Your name</label>我怎么做才能翻译占位符呢?我是否必须像这样键入整个范围:
= f.text_field :first_name,
placeholder: t('.first_name', scope: 'active_model.models.user.attributes.first_name')有更简单的方法吗?
发布于 2016-01-25 22:20:23
如果使用Rails 4.2,则可以将占位符属性设置为true:
= f.text_field :first_name, placeholder: true并在区域设置文件中指定占位符文本,如下所示:
en:
helpers:
placeholder:
user:
first_name: "Your name"发布于 2016-08-27 07:10:47
使用Rails >= 4.2,您可以将占位符属性设置为true。
= f.text_field :first_name, placeholder: true
并且在本地文件(例如en.yml)中:
ru:
activerecord:
attributes:
user:
first_name: Your name否则(Rails >= 3.0),我认为您可以编写如下内容:
= f.text_field :attr,
placeholder: "#{I18n.t 'activerecord.attributes.user.first_name'}"发布于 2014-09-05 01:56:33
您可以在http://rubydoc.info/docs/rails/ActionView/Helpers/Tags/Label上查看呈现源,以查看Rails是如何实现的。它可能不会比你好多少,但是如果你有很多事情要做的话,你可能可以滑动一些铁路的逻辑,并把它放在一个助手里。或者,您可以考虑使用自定义表单生成器来删除整个表单中的一些重复,而不仅仅是占位符。
https://stackoverflow.com/questions/25677031
复制相似问题