Ruby On Rails:用于其他语言的复数forms

我正在为非英语用户构建应用程序。 现在,我使用英语名词命名我的模型,但我更喜欢使用原生荷兰语。 由于约定使用了表的多个类名,我假设它是Rails中的复数方法(它所在的位置,我不知道)。 如何更改复数方法及其位置? 这会破坏Rails吗?

我使用的是Rails 2.3.5和Ruby 1.8.7

示例:Book类现在成为书籍 。 我的Boek课程变得很神圣 ,但使用boeken在语法上是正确的

将规则添加到config / initializers中的inflections.rb文件中。 请参阅API文档 :

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

也许不会帮助你,因为你想要荷兰语,但对于西class牙语,法语,哈萨克语,土耳其语或挪威语,有这样的:

https://github.com/davidcelis/inflections

这并没有具体回答这个问题,但如果一种语言有太多的不规则性,可以根据讨论禁用变形器。

ActiveRecord::Base.pluralize_table_names = false

另外,就视图而言,我处理复数外来字符串的首选方法是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) %> 

查看官方文档 。
希望有所帮助!