1

我正在为 Ruby on Rails 中的特定网页实现视图计数功能。我使用haml列表来达到我的目的。(JavaScript 库获取列表并将其呈现为下拉列表。)

这是代码片段:

%li.action
  = link_to t(question.views_count.to_s + ' views')

我的问题是视图中的 V 在输出中大写,即使对于 0 和 1 个视图,视图也是复数形式。有什么办法可以解决这些问题吗?

4

2 回答 2

1

请参阅此链接以获取复数 http://apidock.com/rails/ActionView/Helpers/TextHelper/pluralize

试试你consolefor example

1.9.3p125 :028 > pluralize(2, 'View')
 => "2 Views"

更新

在您的控制台中尝试并使用大写

"view".capitalize 
于 2012-11-06T07:07:06.497 回答
1

你做错了,你应该让 I18N 系统(即t方法)自己处理复数。正确的复数处理非常复杂,不要尝试自己使用字符串操作。您正在使用该t方法,但它可以为您做更多的事情。

来自I18N 指南

插值变量有一个特殊的:count作用,它既被插值到翻译中,又用于根据 CLDR 定义的复数规则从翻译中选择复数:

I18n.backend.store_translations :en, :inbox => {
  :one => '1 message',
  :other => '%{count} messages'
}

I18n.translate :inbox, :count => 2
# => '2 messages'

因此,假设您正确设置了消息数据库,那么您将执行以下操作:

t(:views, :count => question.views_count)

你的英文翻译文件会是这样的:

views:
  one: "1 view"
  other: "%{count} views"
于 2012-11-06T08:12:32.223 回答