Rails 3 и словенский плюрализм - PullRequest
1 голос
/ 04 августа 2011

Я хотел бы использовать t('errors', :count => 2) со словенским переводом в Rails 3.0.9 и хочу, чтобы он возвращал "2 напаки", который является специальной формой множественного числа для словенского языка.

Я создал locales /sl.yml и иметь этот код:

sl:
  error:
    one: %{count} napaka
    two: %{count} napaki
    other: %{count} napak

Но, похоже, это не работает.

1 Ответ

1 голос
/ 04 августа 2011

Убедитесь, что вы поместили свои переводы в config / locales / sl.yml.Вам также нужно будет создать файл config / locales / mults.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, ...

Вы также можете взглянуть на эту суть , которая делает именно то, что вы просите.

...