class Stringex::Localization::Backend::I18n

Constants

LOAD_PATH_BASE

Public Class Methods

default_locale() click to toggle source
# File lib/stringex/localization/backend/i18n.rb, line 22
def default_locale
  ::I18n.default_locale
end
default_locale=(new_locale) click to toggle source
# File lib/stringex/localization/backend/i18n.rb, line 26
def default_locale=(new_locale)
  ::I18n.default_locale = new_locale
end
ensure_locales_enforced_or_not() click to toggle source
# File lib/stringex/localization/backend/i18n.rb, line 64
def ensure_locales_enforced_or_not
  return unless ::I18n.respond_to?(:enforce_available_locales)
  # Allow users to have set this to false manually but default to true
  return unless ::I18n.enforce_available_locales == nil
  ::I18n.enforce_available_locales = ::I18n.available_locales != []
end
i18n_translations_for(locale) click to toggle source
# File lib/stringex/localization/backend/i18n.rb, line 55
def i18n_translations_for(locale)
  ensure_locales_enforced_or_not
  ::I18n.translate("stringex", locale: locale, default: {})
end
initial_translation(scope, key, locale) click to toggle source
# File lib/stringex/localization/backend/i18n.rb, line 44
def initial_translation(scope, key, locale)
  translations[locale][scope][key.to_sym]
end
load_translations(locale = nil) click to toggle source
# File lib/stringex/localization/backend/i18n.rb, line 48
def load_translations(locale = nil)
  locale ||= self.locale
  ::I18n.load_path |= Dir[File.join(LOAD_PATH_BASE, "#{locale}.yml")]
  ::I18n.backend.load_translations
  reset_translations_cache
end
locale() click to toggle source
# File lib/stringex/localization/backend/i18n.rb, line 14
def locale
  @locale || ::I18n.locale
end
locale=(new_locale) click to toggle source
# File lib/stringex/localization/backend/i18n.rb, line 18
def locale=(new_locale)
  @locale = new_locale
end
reset!() click to toggle source
# File lib/stringex/localization/backend/i18n.rb, line 8
def reset!
  super
  @locale = nil
  ::I18n.reload! if defined?(::I18n) && ::I18n.respond_to?(:reload!)
end
reset_translations_cache() click to toggle source
# File lib/stringex/localization/backend/i18n.rb, line 60
def reset_translations_cache
  @translations = nil
end
store_translations(locale, scope, data) click to toggle source
# File lib/stringex/localization/backend/i18n.rb, line 34
def store_translations(locale, scope, data)
  ::I18n.backend.store_translations(locale, {stringex: {scope => data}})
  reset_translations_cache
end
translations() click to toggle source
# File lib/stringex/localization/backend/i18n.rb, line 39
def translations
  # Set up hash like translations[:en][:transliterations]["é"]
  @translations ||= Hash.new { |hsh, locale| hsh[locale] = Hash.new({}).merge(i18n_translations_for(locale)) }
end
with_locale(new_locale, &block) click to toggle source
# File lib/stringex/localization/backend/i18n.rb, line 30
def with_locale(new_locale, &block)
  ::I18n.with_locale new_locale, &block
end