Files
nairobi/config/initializers/i18n_pluralize.rb
voodoorai2000 be80973e44 Avoid InvalidPluralizationData exception when missing translations
We work with many languages using Crowdin[1]

Sometimes translators forget to fill in all the necessary plural forms of a translation (zero, one, other) and in those cases we were seing the exception InvalidPluralizationData being raised

There are a number of approches to fix this... from being more strict when approving translations, to automatically extrapolating what those plural forms should be

For now, we've gone for a simple approach to display the actual count(0,1,2,3,4, etc) instead of the whole translation

So, if the plural form of "1 comment" is missing, just a "1" will be displayed and no exceptions raised

Note: The first two specs, test what is really Rails' functionalities. However as we are monkey patching the pluralize method, I thought it was appropriate to doble check it

[1]https://crowdin.com/project/consul
2018-10-05 12:26:07 +02:00

19 lines
542 B
Ruby

### From official I18n::Backend::Base
### https://github.com/svenfuchs/i18n/blob/f35b839693c5ecc7ea0ff0f57c5cbf6db1dd73f9/lib/i18n/backend/base.rb#L155
### Just changed one line to return `count` instead of raising the exception `InvalidPluralizationData`
module I18n
module Backend
module Base
def pluralize(locale, entry, count)
return entry unless entry.is_a?(Hash) && count
key = pluralization_key(entry, count)
return count unless entry.has_key?(key)
entry[key]
end
end
end
end