Localization support.
Example
locale_en = {
'See you' => 'See you',
:long_paragraph => 'The best new books, up to 30% reduced price',
:price => 'Price: %d %s',
:proc_price => proc { |value, cur| "Price: #{value} #{cur}" }
}
locale_de = {
'See you' => 'Auf wieder sehen',
:long_paragraph => 'Die besten neuer buecher, bis zu 30% reduziert',
...
}
Localization.add(:en => locale_en, :de => locale_de)
lc = Localization.get lc[‘See you’] -> See you lc[:price, 100, ‘euro’] -> Price: 100 euro lc = Localization.get[:de] lc[‘See you’] -> Auf wiedersehen
To make localization even more easier, a LocalizationAspect is provide provided. Additional transformation macros are provided if you require ‘nitro/compiler/localization‘
Methods
Attributes
| [RW] | locales | A hash of the available locales. |
Public Class methods
[ show source ]
# File lib/raw/util/localization.rb, line 90
90: def add(map = {})
91: for key, locale in map
92: if locale.is_a?(String)
93: # this is the name of the localization file.
94: locale = YAML.load(File.read(locale))
95: end
96: @locales[key.to_s] = Locale.new(locale)
97: end
98: end
Return the localization hash for the given locale.
[ show source ]
# File lib/raw/util/localization.rb, line 104
104: def get(locale = :en)
105: locale ||= 'en'
106: @locales[locale.to_s]
107: end