HTML5 placeholder attribute and i18n proposal

This was filed as: <#6080 I18n support for HTML5 placeholder attribute - Ruby on Rails - rails; …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:

helpers: placeholder:   person:    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') %>

Paul

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:

https://rails.lighthouseapp.com/projects/8994/sending-patches

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 detail.

Cheers, Walter

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 ticket: <Tickets - Ruby on Rails - rails 6080>

Paul