R18n Rails API

Rails I18n compatibility for R18n:

  • filters to work with named variables in Rails translation format;

  • R18n loader for Rails I18n translation format;

  • R18n backend.

How To

Variables

After require-ing r18n-rails-api you can use named variables in all translations:

greeting: "Hi, %{name}"
users: !!pl
  1: One user
  n: %{count} users

require 'r18n-rails-api'

i18n.greeting(:name => 'John') #=> "Hi, John"
i18n.users(:count => 5) #=> "5 users"

Rails Translations

You can use R18n::Loader::Rails to load translations from I18n.load_path:

i18n/en.yml:

en:
  posts:
    one: One post
    many: %{count} posts

example.rb:

require 'r18n-rails-api'

I18n.load_path = ['i18n/en.yml']
i18n = R18n::I18n.new('en', R18n::Loader::Rails)

i18n.posts(:count => 5) #=> "5 posts"

Backend

You can use R18n as a backend for Rails I18n:

require 'r18n-rails-api'

R18n.set R18n::I18n.new('en', 'path/to/translation')
I18n.backend = R18n::Backend

I18n.l Time.now, :format => :full #=> "6th of December, 2009 22:44"
I18n.t :greeting, :name => 'John' #=> "Hi, John"
I18n.t :users, :count => 5        #=> "5 users"

R18n Features

  • Nice Ruby-style syntax.

  • Filters.

  • Flexible locales.

  • Custom translations loaders.

  • Translation support for any classes.

  • Time and number localization.

  • Several user languages support.

License

R18n is licensed under the GNU Lesser General Public License version 3. You can read it in LICENSE file or in www.gnu.org/licenses/lgpl.html.

Author

Andrey “A.I.” Sitnik <[email protected]>