Skip to content

Commit

Permalink
Merge pull request #470 from gburgett/patch-1
Browse files Browse the repository at this point in the history
I18n::Backend::Chain#translations should merge from all backends
  • Loading branch information
radar authored Mar 10, 2019
2 parents 529b83a + b7e5195 commit 7bfc725
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
10 changes: 7 additions & 3 deletions lib/i18n/backend/chain.rb
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,13 @@ def init_translations
end

def translations
backends.first.instance_eval do
init_translations unless initialized?
translations
backends.reverse.each_with_object({}) do |backend, memo|
partial_translations = backend.instance_eval do
init_translations unless initialized?
translations
end

memo.deep_merge!(partial_translations)
end
end

Expand Down
9 changes: 6 additions & 3 deletions test/backend/chain_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -107,16 +107,19 @@ def setup
assert @second.initialized?
end

test 'should be able to get all translations of the first backend' do
test 'should be able to get all translations of all backends merged together' do
assert_equal I18n.backend.send(:translations),
en: {
foo: 'Foo',
bar: 'Bar',
formats: {
short: 'short',
subformats: { short: 'short' }
long: 'long',
subformats: { short: 'short', long: 'long' }
},
plural_1: { one: "%{count}" },
dates: { a: 'A' }
plural_2: { one: 'one' },
dates: { a: 'A', b: 'B' }
}
end

Expand Down

0 comments on commit 7bfc725

Please sign in to comment.