Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails i18n and routes in javascript

Sometimes it would be really handy to have the Rails localization files available in JavaScript. Same is true for for the routes helpers.

I found these two plugins which are exactly doing this:

  • Exposing i18n to JavaScript: http://github.com/fnando/i18n-js
  • Rails Routes in JavaScript: http://tore.darell.no/pages/javascript_routes

My questions:

  1. Are there any other plugins / gems doing similar things like the two above?
  2. What's the right approach in Rails? Meta tag? Additional data- attributes?

Thanks for any input!

like image 572
StefanS Avatar asked May 18 '10 19:05

StefanS


1 Answers

I use the first plugin you listed (i18n-js) and recommend it highly. It does exactly what you are asking -- make localizations available to javascript -- with very little fuss.

At its core it does two things:

  • autogenerates a messages.js file from your localization files
  • provides a Javascript API very similar to the Rails I18n API.

You include a <script> tag for messages.js and then in your other .js files you can just write I18n.t('some.i18n.path', {interpolation_key: "value", ...}), which will return the translated string.

It also provides some formatting helpers, like for adding commas to numerals. And the author is very responsive to questions and bug reports.

I'm not sure what you are getting at with meta tags or data- attributes. I haven't needed those for internationalization.

like image 178
John Avatar answered Sep 23 '22 15:09

John