Ruby On Rails:用于其他语言的复数形式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby On Rails:用于其他语言的复数形式相关的知识,希望对你有一定的参考价值。
我正在为非英语用户构建应用程序。现在,我使用英语名词命名我的模型,但我更喜欢使用原生荷兰语。由于约定使用了表的多个类名,我假设它是Rails中的复数方法(它所在的位置,我不知道)。如何更改复数方法及其位置?这会破坏Rails吗?
我使用的是Rails 2.3.5和Ruby 1.8.7
示例:Book类现在成为书籍。我的Boek课程变得很神圣,但使用boeken在语法上是正确的
将规则添加到config / initializers中的inflections.rb文件中。见API documentation:
ActiveSupport::Inflector.inflections do |inflect|
inflect.plural 'boek', 'boeken'
end
也许不会帮助你,因为你想要荷兰语,但对于西班牙语,法语,哈萨克语,土耳其语或挪威语,有这样的:
https://github.com/davidcelis/inflections
这不是具体回答问题,但如果一种语言有太多的不规则性,可以根据discussion禁用变形器。
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) %>
检查official documentation。 希望有所帮助!
以上是关于Ruby On Rails:用于其他语言的复数形式的主要内容,如果未能解决你的问题,请参考以下文章
Ruby on Rails - ActiveRecord 关联问题:查询未正确进行(单数与复数?)
在 Ruby on Rails 中测试一个单词是单数还是复数