我有以下句子需要本地化:
你有U未读消息/ s和N新消息
示例本地化
U 0 N 1
“你有1条新消息”
U 1 N 1
“您有1条未读消息和1条新消息”
U 1 N 0
“你有1条未读信息”
U 2 N 0
“你有1条未读消息”
我可以轻松地开始使用这个混乱
unread_only:
one: you have 1 unread message
other: you have {{count}} unread messages
new_only:
one: you have 1 new message
other: you have {{count}} new messages
......此时我被困了
# how do I pass two counts in?
new_and_unread:
我知道Rails中的i18n不是ICU MessageFormat,但是,有一些理智的方式用我们的工具本地化这个吗?你能将2个计数传递给本地化开关吗?
答案 0 :(得分:5)
我的第一个想法是使用类似的东西:
unread:
one: 1 unread message
other:{{count}} unread messages
new:
one: 1 new message
other: {{count}} new messages
I18n.t('you_have') << [msg1,msg2].map(&:presence).compact.join(I18n.t('and'))
但这可能不适用于所有语言。只是西方人。
以下是更多信息: http://guides.rubyonrails.org/i18n.html#passing-variables-to-translations
new_and_unread: "You have %{new} new, and %{unread} unread messages"
<%=t 'new_and_unread', :new => 1, :unread => 3 %>