Noob: HOWTO Externalize Strings ?

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: # load the strings file : 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 ?