module I18n

Public Class Methods

exists?(key, locale = config.locale) click to toggle source
# File lib/mova-i18n.rb, line 66
def exists?(key, locale = config.locale)
  locale_with_fallbacks = fallbacks[locale]
  result = mova.translator.get([key], locale_with_fallbacks, default: "")
  Mova.presence(result)
end
fallbacks() click to toggle source
# File lib/mova-i18n.rb, line 15
def self.fallbacks
  @fallbacks ||= Hash.new { |h,k| h[k] = [k] }
end
mova() click to toggle source
# File lib/mova-i18n.rb, line 8
def self.mova
  Mova::I18nConfig
end
reload!() click to toggle source
Calls superclass method
# File lib/mova-i18n.rb, line 72
def reload!
  super
  mova.transfer_translations!
end
t(key, options = nil)
Alias for: translate
translate(key, options = nil) click to toggle source
# File lib/mova-i18n.rb, line 21
def translate(key, options = nil)
  options = options && options.dup || {}

  locale = options[:locale] || config.locale
  locale_with_fallbacks =
    if options[:fallback]
      # suppress locale fallbacks (inverted due to I18n fallbacks implementation)
      [locale]
    else
      fallbacks[locale]
    end

  if (default = options[:default]) && !default.is_a?(Hash)
    defaults = Array(default)
    options[:default] = defaults.last.is_a?(String) ? defaults.pop : nil
    key = Array(key).concat(defaults)
  end

  if (count = options[:count])
    zero_plural_key = :zero if count == 0
    plural_key = mova.pluralizer(locale).call(count)
    key = Array(key).each_with_object([]) do |key, memo|
      memo << Mova::Scope.join(key, zero_plural_key) if zero_plural_key
      memo << Mova::Scope.join(key, plural_key)
      memo << key
    end
  end

  if (scope = options[:scope])
    scope = Array(scope)
    key = Array(key).map do |key|
      Mova::Scope.join(scope + [key])
    end
  end

  result = mova.translator.get(key, locale_with_fallbacks, options)

  if result.is_a?(String) && !(interpolation_keys = options.keys - RESERVED_KEYS).empty?
    mova.interpolator.call(result, options)
  else
    result
  end
end
Also aliased as: t