Module: I18n::Backend::Simple::Implementation
Constant Summary
Constants included from Transliterator
Transliterator::DEFAULT_REPLACEMENT_CHAR
Instance Method Summary collapse
-
#available_locales ⇒ Object
Get available locales from the translations hash.
- #initialized? ⇒ Boolean
-
#reload! ⇒ Object
Clean up translations hash and set initialized to false on reload!.
-
#store_translations(locale, data, options = EMPTY_HASH) ⇒ Object
Stores translations for the given locale in memory.
Methods included from Base
#exists?, #load_translations, #localize, #translate
Methods included from Transliterator
Instance Method Details
#available_locales ⇒ Object
Get available locales from the translations hash
47 48 49 50 51 52 53 |
# File 'lib/i18n/backend/simple.rb', line 47 def available_locales init_translations unless initialized? translations.inject([]) do |locales, (locale, data)| locales << locale unless data.size <= 1 && (data.empty? || data.has_key?(:i18n)) locales end end |
#initialized? ⇒ Boolean
25 26 27 |
# File 'lib/i18n/backend/simple.rb', line 25 def initialized? @initialized ||= false end |
#reload! ⇒ Object
Clean up translations hash and set initialized to false on reload!
56 57 58 59 60 |
# File 'lib/i18n/backend/simple.rb', line 56 def reload! @initialized = false @translations = nil super end |
#store_translations(locale, data, options = EMPTY_HASH) ⇒ Object
Stores translations for the given locale in memory. This uses a deep merge for the translations hash, so existing translations will be overwritten by new ones only at the deepest level of the hash.
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/i18n/backend/simple.rb', line 33 def store_translations(locale, data, = EMPTY_HASH) if I18n.enforce_available_locales && I18n.available_locales_initialized? && !I18n.available_locales.include?(locale.to_sym) && !I18n.available_locales.include?(locale.to_s) return data end locale = locale.to_sym translations[locale] ||= {} data = data.deep_symbolize_keys translations[locale].deep_merge!(data) end |