Implement our own matching algorithm rather than trying to patch the http_accept_language one and make sure everything is using it in a consistent way. Fixes #1125
45 lines
1.1 KiB
Ruby
45 lines
1.1 KiB
Ruby
module I18n
|
|
module Backend
|
|
module PluralizationFallback
|
|
def pluralize(locale, entry, count)
|
|
super
|
|
rescue InvalidPluralizationData => ex
|
|
raise ex unless ex.entry.key?(:other)
|
|
ex.entry[:other]
|
|
end
|
|
end
|
|
|
|
class Simple
|
|
def store_translations_with_normalisation(locale, data, options = {})
|
|
locale = I18n::Locale::Tag::Rfc4646.tag(locale).to_s
|
|
|
|
store_translations_without_normalisation(locale, data, options)
|
|
end
|
|
|
|
alias_method_chain :store_translations, :normalisation
|
|
end
|
|
end
|
|
|
|
module JS
|
|
class FallbackLocales
|
|
def default_fallbacks_with_validation
|
|
default_fallbacks_without_validation.select do |locale|
|
|
::I18n.available_locales.include?(locale)
|
|
end
|
|
end
|
|
|
|
alias_method_chain :default_fallbacks, :validation
|
|
end
|
|
end
|
|
end
|
|
|
|
I18n::Backend::Simple.include(I18n::Backend::PluralizationFallback)
|
|
I18n::Backend::Simple.include(I18n::Backend::Fallbacks)
|
|
|
|
I18n.fallbacks.map("no" => "nb")
|
|
|
|
I18n.enforce_available_locales = false
|
|
|
|
Rails.configuration.after_initialize do
|
|
I18n.available_locales
|
|
end
|