From eb9dbf485f65ac68e730f52977be6af04f1e708b Mon Sep 17 00:00:00 2001 From: Paarth Madan Date: Wed, 2 Feb 2022 19:47:05 -0500 Subject: [PATCH] Yield loaded translations to block in #load_translations This makes introspecting the translations loaded by a file easier. Maintains backwards compatability as the block is optional. --- lib/i18n/backend/base.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/i18n/backend/base.rb b/lib/i18n/backend/base.rb index b78a6af1..77e832c0 100644 --- a/lib/i18n/backend/base.rb +++ b/lib/i18n/backend/base.rb @@ -13,7 +13,10 @@ module Base # for details. def load_translations(*filenames) filenames = I18n.load_path if filenames.empty? - filenames.flatten.each { |filename| load_file(filename) } + filenames.flatten.each do |filename| + loaded_translations = load_file(filename) + yield filename, loaded_translations if block_given? + end end # This method receives a locale, a data hash and options for storing translations. @@ -226,6 +229,8 @@ def load_file(filename) raise InvalidLocaleData.new(filename, 'expects it to return a hash, but does not') end data.each { |locale, d| store_translations(locale, d || {}, skip_symbolize_keys: keys_symbolized) } + + data end # Loads a plain Ruby translations file. eval'ing the file must yield