Module: I18n::Backend::Simple::Implementation

Includes:
Base
Included in:
I18n::Backend::Simple
Defined in:
lib/i18n/backend/simple.rb

Constant Summary

Constants included from Transliterator

Transliterator::DEFAULT_REPLACEMENT_CHAR

Instance Method Summary collapse

Methods included from Base

#exists?, #load_translations, #localize, #translate

Methods included from Transliterator

get, #transliterate

Instance Method Details

#available_localesObject

Get available locales from the translations hash



44
45
46
47
48
49
50
# File 'lib/i18n/backend/simple.rb', line 44

def available_locales
  init_translations unless initialized?
  translations.inject([]) do |locales, (locale, data)|
    locales << locale unless (data.keys - [:i18n]).empty?
    locales
  end
end

#initialized?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/i18n/backend/simple.rb', line 23

def initialized?
  @initialized ||= false
end

#reload!Object

Clean up translations hash and set initialized to false on reload!



53
54
55
56
57
# File 'lib/i18n/backend/simple.rb', line 53

def reload!
  @initialized = false
  @translations = nil
  super
end

#store_translations(locale, data, options = {}) ⇒ 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.



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/i18n/backend/simple.rb', line 31

def store_translations(locale, data, options = {})
  if 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