FIX: Extra-locale merging didn't account for fallbacks (#17128)

Regressed in #17027
This commit is contained in:
Jarek Radosz 2022-06-17 19:34:08 +02:00 committed by GitHub
parent 84b0a6414d
commit 2eeb50dfc1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -202,8 +202,9 @@ module JsLocaleHelper
def self.output_extra_locales(bundle, locale)
translations = translations_for(locale)
locales = translations.keys
translations.keys.each do |l|
locales.each do |l|
translations[l].keys.each do |k|
bundle_translations = translations[l].delete(k)
translations[l].deep_merge!(bundle_translations) if k == bundle
@ -212,17 +213,15 @@ module JsLocaleHelper
return "" if translations.blank?
<<~JS
if (!I18n.extras) {
I18n.extras = {}
}
output = +"if (!I18n.extras) { I18n.extras = {}; }"
locales.each do |l|
output << <<~JS
if (!I18n.extras["#{l}"]) { I18n.extras["#{l}"] = {}; }
Object.assign(I18n.extras["#{l}"], #{translations[l].to_json});
JS
end
if (!I18n.extras["#{locale}"]) {
I18n.extras["#{locale}"] = {};
}
Object.assign(I18n.extras["#{locale}"], #{translations[locale].to_json});
JS
output
end
MOMENT_LOCALE_MAPPING ||= {