Ruby On Rails: pluralize for other languages

让人想犯罪 __ 提交于 2019-12-03 12:31:22
Christian Lescuyer

Add your rules to an inflections.rb file in config/initializers. See the API documentation:

ActiveSupport::Inflector.inflections do |inflect|
  inflect.plural 'boek', 'boeken'
end

Perhaps won't help you because you want Dutch language, but for Spanish, French, Kazakh, Turkish or Norwegian, there is this:

https://github.com/davidcelis/inflections

This is not answering the question specifically, but if a language has too much irregularities one can disable the inflector according to the discussion.

ActiveRecord::Base.pluralize_table_names = false

In addition, as far as views are concerned my preferred way of dealing with pluralizing foreign strings is i18n pluralization. Take a look at a straightforward example below.

# config/locales/en.yml

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

Then in view you can do

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

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

Check official documentation.
Hope that helps!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!