Ruby On Rails: множественное число для других языков - PullRequest
9 голосов
/ 08 июня 2010

Я создаю приложения для неанглийской аудитории.Прямо сейчас я использую английские существительные, чтобы назвать свои модели, но я предпочитаю использовать родные голландские.Поскольку соглашение использует множественное число имени класса для таблиц, я предполагаю, что это метод множественного числа внутри Rails (где он находится, я бы не знал).Как я могу изменить метод множественного числа и где он находится?Это сломало бы Rails?

Я использую Rails 2.3.5 и Ruby 1.8.7

Пример: класс Book теперь становится books .Мой класс Boek становится boeks , но грамматически правильно использовать boeken

Ответы [ 4 ]

14 голосов
/ 08 июня 2010

Добавьте ваши правила в файл inflections.rb в config / initializer. См. документацию API :

ActiveSupport::Inflector.inflections do |inflect|
  inflect.plural 'boek', 'boeken'
end
2 голосов
/ 04 августа 2015

Возможно, вам не поможет, потому что вы хотите голландский язык, но для испанского, французского, казахского, турецкого или норвежского есть следующее:

https://github.com/davidcelis/inflections

1 голос
/ 29 июня 2011

Это не дает конкретного ответа на вопрос, но если в языке слишком много нарушений, можно отключить инфлектор в соответствии с обсуждением .

ActiveRecord::Base.pluralize_table_names = false

0 голосов
/ 17 декабря 2017

Кроме того, что касается представлений, мой предпочтительный способ работы с множественными множителями иностранных строк - это i18n множественное число .Взгляните на простой пример ниже.

# config/locales/en.yml

en:
  message:
    one: You have 1 message #Your foreign string
    other: You have %{count} messages #Your foreign string

Затем вы можете сделать

# app/views/messages/index.html.erb

<%= t("message", count: current_user.messages.count) %>

Проверить официальную документацию .
Надеюсь, что это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...