module Shimmer::Localizable

Public Class Methods

debug?() click to toggle source
# File lib/shimmer/utils/localizable.rb, line 53
def debug?
  debug
end
old_translate(key, options = {})
Alias for: translate
t(key, options = {})
Alias for: translate
translate(key, options = {}) click to toggle source
# File lib/shimmer/utils/localizable.rb, line 40
def translate(key, options = {})
  untranslated_scopes = ["number", "transliterate", "date", "datetime", "errors", "helpers", "support", "time", "faker"].map { |k| "#{k}." }
  key = key.to_s.downcase
  untranslated = untranslated_scopes.any? { |e| key.include? e }
  key_name = [options[:scope], key].flatten.compact.join(".")
  option_names = options.except(:count, :default, :raise, :scope).map { |k, v| "#{k}=#{v}" }.join(", ")
  return "#{key_name} #{option_names}" if I18n.debug && !untranslated

  options.reverse_merge!(default: old_translate(key, **options.merge(locale: :de))) if untranslated
  old_translate(key, **options)
end
Also aliased as: old_translate, t

Public Instance Methods

check_locale() click to toggle source
# File lib/shimmer/utils/localizable.rb, line 25
def check_locale
  redirect_to url_for(locale: I18n.locale) if params[:locale].blank? && request.get? && request.format.html?
end
default_url_options(options = {}) click to toggle source
# File lib/shimmer/utils/localizable.rb, line 10
def default_url_options(options = {})
  options = {locale: I18n.locale}.merge options
  options[:debug] = true if I18n.debug?
  options
end
request_locale() click to toggle source
# File lib/shimmer/utils/localizable.rb, line 16
def request_locale
  request.env["HTTP_ACCEPT_LANGUAGE"].to_s[0..1].downcase.presence&.then { |e| e if I18n.available_locales.include?(e.to_sym) }
end
set_locale() click to toggle source
# File lib/shimmer/utils/localizable.rb, line 20
def set_locale
  I18n.locale = url_locale || request_locale || I18n.default_locale
  I18n.debug = params.key?(:debug)
end
url_locale() click to toggle source
# File lib/shimmer/utils/localizable.rb, line 29
def url_locale
  params[:locale]
end