我想在Rails 3.0.9中使用t('errors', :count => 2)
斯洛文尼亚语翻译,并希望它返回“2 napaki”,这是一种特殊的复数形式的斯洛文尼亚语。
我创建了locales / sl.yml并拥有以下代码:
sl:
error:
one: %{count} napaka
two: %{count} napaki
other: %{count} napak
但这似乎不起作用。
答案 0 :(得分:1)
确保将您的翻译放在config / locales / sl.yml中。您还需要创建一个文件config / locales / plurals.rb并将以下代码放在其中:
# More rules in this file: https://github.com/svenfuchs/i18n/blob/master/test/test_data/locales/plurals.rb
I18n::Backend::Simple.send(:include, I18n::Backend::Pluralization)
{
:'sl' => { :i18n => { :plural => { :rule => lambda { |n| [1].include?(n % 100) && ![11].include?(n % 100) ? :one : [2].include?(n % 100) && ![12].include?(n % 100) ? :two : [3, 4].include?(n % 100) && ![13, 14].include?(n % 100) ? :few : :other }}}}
}
在您的application.rb中,确保设置默认语言环境:
class Application < Rails::Application
...
config.i18n.default_locale = :sl
...
end
确保在进行这些更改后重新启动服务器。除了:one, :two, :other
,您还可以使用:few
来表示3,4,......
您也可以have a look at this gist完全按照您的要求行事。