Avoid using the zero key for pluralisation in English
This makes it impossible to translate to other languages that use the `zero:` key, e.g. for other numbers that end in zero. An alternative approach would be possible in future, when ruby-i18n and rails and translatewiki all have full support for `0:` and `1:` keys. Fixes #3997
This commit is contained in:
parent
e66d0d232f
commit
d58cae6ff6
4 changed files with 33 additions and 4 deletions
|
@ -69,6 +69,15 @@ class I18nTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
# We should avoid using the key `zero:` in English, since that key
|
||||
# is used for "numbers ending in zero" in other languages.
|
||||
def test_en_for_zero_key
|
||||
en = YAML.load_file(Rails.root.join("config/locales/en.yml"))
|
||||
assert_nothing_raised do
|
||||
check_keys_for_zero(en)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def translation_keys(scope = nil)
|
||||
|
@ -116,4 +125,14 @@ class I18nTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
def check_keys_for_zero(hash)
|
||||
hash.each_pair do |k, v|
|
||||
if v.is_a? Hash
|
||||
check_keys_for_zero(v)
|
||||
else
|
||||
raise "Avoid using 'zero' key in '#{k}: #{v}'" if k.to_s == "zero"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue