We can't just drop the file because Rails 3.2 requires it directly, so we keep it around even though it is just empty, since we won't support Ruby 1.8 anymore. This should allow Rails 3.2 users under Ruby 1.9 to update to the newest I18n without problem.
There are two failures related to translating truthy / falsy values that we need to take care of.
was left in by mistake - was used to inspect the state of I18n.config but not needed anymore once we found what the problem was.
Previously it would fail tests when ran with a certain seed value, due to I18n.backend containing too many useable translations. For this test to run with certainty the backend should be re-initialized to an empty one at the beginning.
Currently when requesting a namespace it would give you a union of the top level keys, but would let nested keys override each other. As an effect of this, you would be losing translations coming from a lower-level backend if at least one subkey is "overridden" in a backend that has higher priority. This fix ensures that you instead get a "deep union" of all the translation keys and the merges do indeed get performed correctly not only at the top level of the namespace but all the way down.
Previously this would blow up if you asked for a key that wasn't in the original hash. This is consistent with Rails' version of Hash#slice.
So that the list gets properly updated when setting a new locale/default_locale. Related to #275.