HTML5 placeholder attribute and i18n proposal

This was filed as:
…and Aditya Sanghi suggsted I post to the list about it

Currently, Rails' I18n system automatically looks up localized text for <label> tags. It would be nice if it did something similar for the HTML5 placeholder attribute.

Your en.yml file would like this:

   first_name: "John"
   last_name: "Doe"

Your ERB would look the same:
<%= f.text_field :first_name %>

Your HTML would look like this:
<input id="person_first_name" name="person[first_name]" placeholder="John" type="text" />

Currently, you have to clutter up your markup like so:
<%= f.text_field :first_name, :placeholder => t('helpers.placeholder.person.first_name') %>


Should be fairly trivial to add this yourself:

  • alias the to_input_field_tag from Rails to to_input_field_tag_old (it’s in the InstanceTagMethods module of Rails if I recall correctly)

  • define your own to_input_field_tag

  • all that method needs to do is merge the I18n.t(“helpers.placeholder.#{object_name}.#{method_name}”) value into the options hash as :placeholder and then call the aliassed to_input_field_tag_old

Best regards

Peter De Berdt

I would encourage you to implement it and submit a patch following the
processes outlined in the contributors guide:

It seems a good idea to me and creating a ticket and a patch for the
feature is the best way to get the Rails Core team to consider it in


P.S. - plus if it gets accepted, you have a nice little bragging right
for "I have contributed to the source code for Rails"

Thanks for the pointer.

I submitted a patch to to_input_field_tag and attached it to the