85 lines
2.2 KiB
Plaintext
85 lines
2.2 KiB
Plaintext
|
= 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.
|