class I18n::Env::Config

Constants

VARS

Order is important

VERSION

Public Instance Methods

locale() click to toggle source
Calls superclass method
# File lib/i18n/env/config.rb, line 11
def locale
  @locale ||= find_user_locale || super
end

Private Instance Methods

find_primary() click to toggle source
# File lib/i18n/env/config.rb, line 21
def find_primary
  locales.find { |l| I18n.locale_available?(l) }
end
find_secondary() click to toggle source
# File lib/i18n/env/config.rb, line 25
def find_secondary
  tag = nil

  locales.each do |l|
    tag = I18n::Locale::Tag.tag(l).parents.map(&:to_sym).find { |parent| I18n.locale_available?(parent) }
    break if tag
  end

  tag
end
find_user_locale() click to toggle source
# File lib/i18n/env/config.rb, line 17
def find_user_locale
  find_primary || find_secondary
end
locales() click to toggle source
# File lib/i18n/env/config.rb, line 36
def locales
  @locales ||= VARS.reject { |name| !ENV[name] || ENV[name] == "C" }.flat_map do |name|
    # LANGUAGE's value can be delimited by ":"
    ENV[name].split(":").map { |l| normalize(l) }
  end
end
normalize(lang) click to toggle source
# File lib/i18n/env/config.rb, line 43
def normalize(lang)
  # Remove encoding
  lang = lang.split(".").first
  lang.tr!("_", "-")
  lang.to_sym
end