Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Building on #470, if using fnando/i18n-js and some translations are present in a Simple backend, and some in an ActiveRecord backend, the current
deep_merge!
done in the chain backend will override a valid translation with a nil value if a previously chained backend yields nil.This patch updates the
Hash#deep_merge!
implementation to match the activesupport one, and provides a block to prevent nil values from affecting translations yielded by a chained backend.Use case:
I'm using a chain backend of (Simple, ActiveRecord). The simple backend has an empty or partial YAML, like this:
The activerecord backend has a record that overrides it:
I think the nil YAML value shouldn't prevent the other backend from yielding its value, that's how
I18n::Backend::Chain#translate
works, after all.Thanks for reviewing this!