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

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

Constant Summary

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

- (Object) available_locales

Get available locales from the translations hash



39
40
41
42
43
44
45
# File 'lib/i18n/backend/simple.rb', line 39

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

- (Boolean) initialized?

Returns:

  • (Boolean)


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

def initialized?
  @initialized ||= false
end

- (Object) reload!

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



48
49
50
51
52
# File 'lib/i18n/backend/simple.rb', line 48

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

- (Object) store_translations(locale, data, options = {})

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
# File 'lib/i18n/backend/simple.rb', line 31

def store_translations(locale, data, options = {})
  locale = locale.to_sym
  translations[locale] ||= {}
  data = data.deep_symbolize_keys
  translations[locale].deep_merge!(data)
end