Module: I18n::Backend::Chain::Implementation
- Includes:
- Base
- Included in:
- I18n::Backend::Chain
- Defined in:
- lib/i18n/backend/chain.rb
Constant Summary
Constant Summary
Transliterator::DEFAULT_REPLACEMENT_CHAR
Instance Attribute Summary (collapse)
Instance Method Summary
(collapse)
Methods included from Base
#load_translations
get, #transliterate
Instance Attribute Details
- (Object) backends
Returns the value of attribute backends
21
22
23
|
# File 'lib/i18n/backend/chain.rb', line 21
def backends
@backends
end
|
Instance Method Details
- (Object) available_locales
35
36
37
|
# File 'lib/i18n/backend/chain.rb', line 35
def available_locales
backends.map { |backend| backend.available_locales }.flatten.uniq
end
|
- (Object) initialize(*backends)
23
24
25
|
# File 'lib/i18n/backend/chain.rb', line 23
def initialize(*backends)
self.backends = backends
end
|
- (Object) localize(locale, object, format = :default, options = {})
59
60
61
62
63
64
65
66
|
# File 'lib/i18n/backend/chain.rb', line 59
def localize(locale, object, format = :default, options = {})
backends.each do |backend|
catch(:exception) do
result = backend.localize(locale, object, format, options) and return result
end
end
throw(:exception, I18n::MissingTranslation.new(locale, format, options))
end
|
- (Object) reload!
27
28
29
|
# File 'lib/i18n/backend/chain.rb', line 27
def reload!
backends.each { |backend| backend.reload! }
end
|
- (Object) store_translations(locale, data, options = {})
31
32
33
|
# File 'lib/i18n/backend/chain.rb', line 31
def store_translations(locale, data, options = {})
backends.first.store_translations(locale, data, options)
end
|
- (Object) translate(locale, key, default_options = {})
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/i18n/backend/chain.rb', line 39
def translate(locale, key, default_options = {})
namespace = nil
options = default_options.except(:default)
backends.each do |backend|
catch(:exception) do
options = default_options if backend == backends.last
translation = backend.translate(locale, key, options)
if namespace_lookup?(translation, options)
namespace = translation.merge(namespace || {})
elsif !translation.nil?
return translation
end
end
end
return namespace if namespace
throw(:exception, I18n::MissingTranslation.new(locale, key, options))
end
|