It is called https://github.com/fnando/i18n-js
I was following the instructions but a couple of things did not work. Both in application.rb
In the instructions it says to add the following line:
But in my case it did not work. I searched and found this alternative:
I had to change this line
config.assets.initialize_on_precompile = false
and set it to true
config.assets.initialize_on_precompile = true
3. Inform js of the current locale
Another important thing I had to do was to add a couple of lines to the application.html.erb
I18n.defaultLocale = "";
I18n.locale = "";
And then it started working nicely.
As an example, in the .js file I put
var alertMsg = I18n.t('posts.alert');
And that corresponds to
alert: "Alert message"
How this works internally I am not sure. I have realised that the key file is translations.js that is automatically created under public/assets
Translations.js gets automatically updated, and you can also update it manually with:
$ rake i18n:js:export
I have also evidenced that the Rails cache can spoil the party. So if you notice erratic behaviour do clear the cache:
rake tmp:clear (I have had similar issues in the past…)
Hope it helped! Thanks to Nando Vieira for the amazing work!