我正在为非英语用户构建应用程序。现在,我使用英语名词命名我的模型,但我更喜欢使用原生荷兰语。由于约定使用了表的多个类名,我假设它是Rails中的复数方法(它所在的位置,我不知道)。如何更改复数方法及其位置?这会破坏Rails吗?
我正在使用Rails 2.3.5和Ruby 1.8.7
实施例: Book类现在变为书籍。 我的Boek课程变得 boeks ,但使用 boeken
在语法上是正确的答案 0 :(得分:13)
将规则添加到config / initializers中的 inflections.rb 文件中。请参阅API documentation:
ActiveSupport::Inflector.inflections do |inflect|
inflect.plural 'boek', 'boeken'
end
答案 1 :(得分:2)
也许不会帮助你,因为你想要荷兰语,但对于西班牙语,法语,哈萨克语,土耳其语或挪威语,有这样的:
答案 2 :(得分:1)
这并没有具体回答这个问题,但是如果一种语言有太多不规则,可以根据discussion禁用变形器。
ActiveRecord::Base.pluralize_table_names = false
答案 3 :(得分:0)
另外,就观点而言,我处理复数外来字符串的首选方法是 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) %>
检查official documentation。
希望有所帮助!