Hi all,
I’m totally new to Rails and was wondering how to externalize message
strings in a file so I can use them throughout my application. Is
there something already provided with Rails ?
Thanks
Thogra
Hi all,
I’m totally new to Rails and was wondering how to externalize message
strings in a file so I can use them throughout my application. Is
there something already provided with Rails ?
Thanks
Thogra
Thogra
I’m totally new to Rails and was wondering how to externalize
message
strings in a file
In environment.rb:
APP_TEXT = YAML::load(File.open("#{RAILS_ROOT}/config/messages.yml"))
rescue {}
In config/message.yml:
db_save:
success: Success
failure: Failure
In views/controller: example:
…
flash[:notice] = tx_(‘db_save/success’)
…
In application.rb
def dev?
@is_dev||=(ENV[‘RAILS_ENV’]==‘development’)
end
def tx_(key)
a,b = key.split(’/’)
APP_TEXT[a][b]+(dev? ? ‘°’ : ‘’)
end
helper_method :tx_, :dev?
Note: this version adds a little ° after externalized string when in
dev mode => you can see what’s hardcoded, and what’s externalized.
Alain
Thanks Alain, this helped me a lot !!
I was excpecting the ‘tx_(key)’ method to be available in functional
test as well if defined in application.rb. But it isn’t.
Do I have to duplicate the method(s) ? If, what would be the right
place for it ? test_helper.rb ?
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs