I18n for model-specific Rails submit button
10,228
Solution 1
Those labels can be customized using I18n under the +helpers.submit+ key
and using %{model} for translation interpolation:
en:
helpers:
submit:
create: "Create a %{model}"
update: "Confirm changes to %{model}"
It also searches for a key specific to the given object:
en:
helpers:
submit:
post:
create: "Add %{model}"
Source @ actionview/lib/action_view/helpers/form_helper.rb
Solution 2
If you use the i18n-debug gem, the rails server will print translations look-up attempts to the console, like:
[i18n-debug] en.helpers.submit.post.create => nil
Author by
Matt Huggins
Currently developing with Ruby (Rails) and Javascript (React/Redux). Variety of past & present experience includes mobile development (React Native, Android, Cordova), SQL, Java, PHP, C/C++, etc.
Updated on June 05, 2022Comments
-
Matt Huggins about 2 years
I've found that Rails allows for generic i18n of submit buttons via the following in
config/locales/en.yml
:en: helpers: submit: create: "Create %{model}" submit: "Save %{model}" update: "Update %{model}"
However, I'm looking to update the
create
value only for one specific model. I'd like the text to read as "Upload %{model}" or just "Upload". How can I make this change for just one model (e.g.: aPhoto
model)? -
DannyB almost 9 yearsThe rails-18n-debug gem this answer links to is nice, but deprecated and the author now recommends to use the alternative gem at github.com/fphilipe/i18n-debug