Module: I18n::Backend::Chain::Implementation
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
#backends ⇒ Object
Returns the value of attribute backends.
23
24
25
|
# File 'lib/i18n/backend/chain.rb', line 23
def backends
@backends
end
|
Instance Method Details
#available_locales ⇒ Object
37
38
39
|
# File 'lib/i18n/backend/chain.rb', line 37
def available_locales
backends.map { |backend| backend.available_locales }.flatten.uniq
end
|
#exists?(locale, key) ⇒ Boolean
61
62
63
64
65
|
# File 'lib/i18n/backend/chain.rb', line 61
def exists?(locale, key)
backends.any? do |backend|
backend.exists?(locale, key)
end
end
|
#initialize(*backends) ⇒ Object
25
26
27
|
# File 'lib/i18n/backend/chain.rb', line 25
def initialize(*backends)
self.backends = backends
end
|
#localize(locale, object, format = :default, options = EMPTY_HASH) ⇒ Object
67
68
69
70
71
72
73
74
|
# File 'lib/i18n/backend/chain.rb', line 67
def localize(locale, object, format = :default, options = EMPTY_HASH)
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
|
#reload! ⇒ Object
29
30
31
|
# File 'lib/i18n/backend/chain.rb', line 29
def reload!
backends.each { |backend| backend.reload! }
end
|
#store_translations(locale, data, options = EMPTY_HASH) ⇒ Object
33
34
35
|
# File 'lib/i18n/backend/chain.rb', line 33
def store_translations(locale, data, options = EMPTY_HASH)
backends.first.store_translations(locale, data, options)
end
|
#translate(locale, key, default_options = EMPTY_HASH) ⇒ Object
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/i18n/backend/chain.rb', line 41
def translate(locale, key, default_options = EMPTY_HASH)
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 = _deep_merge(translation, namespace || {})
elsif !translation.nil? || (options.key?(:default) && options[:default].nil?)
return translation
end
end
end
return namespace if namespace
throw(:exception, I18n::MissingTranslation.new(locale, key, options))
end
|