首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rails 4中翻译占位符文本?

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

Stack Overflow用户
提问于 2014-09-05 00:40:26
回答 3查看 5.4K关注 0票数 8

我希望Rails能像表单标签一样自动翻译占位符文本。我该怎么做?

表单标签自动翻译如下:

代码语言:javascript
复制
= f.text_field :first_name

此助手使用区域设置文件:

代码语言:javascript
复制
en:
  active_model:
    models:
      user:
        attributes:
          first_name: Your name

,它输出此HTML

代码语言:javascript
复制
<label for="first_name">Your name</label>

我怎么做才能翻译占位符呢?我是否必须像这样键入整个范围:

代码语言:javascript
复制
= f.text_field :first_name,
    placeholder: t('.first_name', scope: 'active_model.models.user.attributes.first_name')

有更简单的方法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-25 22:20:23

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

代码语言:javascript
复制
= f.text_field :first_name, placeholder: true

并在区域设置文件中指定占位符文本,如下所示:

代码语言:javascript
复制
en:
  helpers:
    placeholder:
      user:
        first_name: "Your name"
票数 20
EN

Stack Overflow用户

发布于 2016-08-27 07:10:47

使用Rails >= 4.2,您可以将占位符属性设置为true。

= f.text_field :first_name, placeholder: true

并且在本地文件(例如en.yml)中:

代码语言:javascript
复制
ru:
  activerecord:
    attributes:
      user:
        first_name: Your name

否则(Rails >= 3.0),我认为您可以编写如下内容:

代码语言:javascript
复制
= f.text_field :attr,
    placeholder: "#{I18n.t 'activerecord.attributes.user.first_name'}"
票数 1
EN

Stack Overflow用户

发布于 2014-09-05 01:56:33

您可以在http://rubydoc.info/docs/rails/ActionView/Helpers/Tags/Label上查看呈现源,以查看Rails是如何实现的。它可能不会比你好多少,但是如果你有很多事情要做的话,你可能可以滑动一些铁路的逻辑,并把它放在一个助手里。或者,您可以考虑使用自定义表单生成器来删除整个表单中的一些重复,而不仅仅是占位符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25677031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档