If you would like to internationalize your javascript/css files the same way you do in the rest of application... then this is for you.
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
.gitignore
Gemfile
Gemfile.lock
LICENSE
README.rdoc
Rakefile
asset_pipeline_i18n.gemspec
changelog.txt

README.rdoc

AssetPipelineI18n

Shortly: asset-pipeline + i18n

Some additional words: you would like to internationalize your javascript/css files the same way you do in the rest of application. For example you would like to write something like:

app/assets/file.js.erb

alert(<%= I18n.t('javascript.key.name') %>)

That works OK in development mode but with asset pipeline you have only one precompiled and (cached) application.js file translated with the default language. What you would need is a collection of language specific application.js files, like application-en.js, application-it.js, etc. This gem is exactly for that!

Usage

If not already done, define all locales your application uses in an initializer:

I18n.available_locales = %w(de it en fr)

Add the gem to your Gemfile:

gem 'asset_pipeline_i18n'

In your application.rb add:

config.localized_assets = ["application-%{locale}.js"]

Now define all the application-xx.js files for every locale like that:

//= require application

And of course, in your layout, you also have to use something like:

javascript_include_tag "application-#{I18n.locale}"

Finally:

rake assets:precompile

Known problems

Remove “require_tree .”

It is no more possible to write

//= require_tree .

in application.js because this will create a circular dependency now. One easy workaround is to move all the js files in a subdirectory (e.g. lib) and then:

//= require_tree ./lib

No proper i18n in development environment

This gem is intended for compiling translated assets for production environment. Unfortunately it does not provide proper translations when running in development environment due to assets caching.

Versioning

The idea is to use the same version number of the Rails version the gem is compatible with. So asset_pipeline_i18n version 3.2.5 is for Rails 3.2.5 and so on. If the gem is broken and we have to release a fix, then we will use a forth level number, like 3.2.5.1 To keep things easy, the dependency of the gem if of the form ~> x.x.x, so we assume that it works also with new versions of Rails, until proved otherwise :)

Contacts

Home page: github.com/simplificator/asset_pipeline_i18n