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