public
Description: Localization plugin
Homepage: http://rubyonrails.org
Clone URL: git://github.com/rails/localization.git
commit  62015a83cfa070de7affd28708d636d0653ab071
tree    3c2610139a4eb53944d4aa637b0c972cbd019c03
parent  38143a10f8a3b832764d0f6d096084e2c6868608
name age message
file CHANGELOG Loading commit data...
file README
file init.rb
file localization.rb Sat Oct 29 09:04:06 -0700 2005 Use lib/ style [dhh]
README
= Localization Plugin for Rails

This plugin provides a simple, gettext-like method to
provide localizations.

== Features

 * Any number of languages or locales
 * Simple method to defines singluar/plural translations
 * Can use lambdas to provide Ruby-code based dynamic translations
 * Customizable for different instances of the application

== Usage

If the localization plugin is installed, it is used automatically.

You need to create a /lang dir in your RAILS_ROOT.

The recommended way to use it is to create files that are named
like the languages you define in them (but you can put everything in
one big file too.)

For instance-customizable strings, add overrides in files you
put in /lang/custom.

=== Simple example:

Create a file /lang/translations.rb:
  
  Localization.define('de') do |l|
    l.store 'yes', 'Ja'
    l.store 'no', 'Nein'
  end
  
  Localization.define('fr') do |l|
    l.store 'yes', 'oui'
    l.store 'no', 'non'
  end
  
In your controller or application.rb:

  Localization.lang = 'de' # or 'fr'
  
In your view:

  <%=_ 'yes' %>
  <%=_ 'no' %>
  
Because the _ method is simply an extension to Object, you
can use it anywhere (models/controllers/views/libs).
  
=== Extended example:

Create a file /lang/default.rb with following contents:
  
  Localization.define do |l|
    l.store '(time)', lambda { |t| t.strftime('%I:%M%p') }
  end

Create a file /lang/de_DE.rb with following contents:
  
  Localization.define('de_DE') do |l|
    l.store '%d entries', ['Ein Eintrag', '%d Einträge']
    l.store '(time)', lambda { |t| t.strftime('%H:%M') }
  end
  
In your controller or application.rb:
  
  Localization.lang = 'de_DE'

In your view:

  <%=_ '%d entries', 1 %>     # singular variant is chosen 
  <%=_ '%d entries', 4 %>     # plural variant is chosen
  <%=_ '(time)', Time.now %>  # call the block with a parameter
  
== Translation file guesstimation

You can generate a guesstimation of all strings needed to be
translated in your views by first adding the _('blah') syntax
everywhere and then calling:

  puts Localization.generate_l10n_file
  
in the Rails console.