一个关于在Rails i18n API中使用Yaml翻译文件中复数形式的示例

5

请问有人能够提供一个使用Yaml翻译文件中复数形式的示例,用于Rails i18n API。基本上,这是关于从基于gettext的应用程序转移到Rails的问题。

Rails中的a18n复数形式在这里有文档记录:http://guides.rubyonrails.org/i18n.html#pluralization,但细节有限。

例如,假设我有一个gettext .po文件的示例,其中使用了复数形式:

msgid "found %d fatal error"
msgid_plural "found %d fatal errors"
msgstr[0] "s'ha trobat %d error fatal"
msgstr[1] "s'han trobat %d errors fatals"

如何在Rails i18n API的.yml文件中编写该内容?我了解Rails i18n使用唯一的ID键而不是消息本身作为翻译键,那么假设上面的复数消息的键是found_x_fatal_error。
另一个问题是复数形式选择公式,它在.yml文件中放在哪里,并且是什么样子 - 例如,我们有一个来自gettext .po文件头部的选择公式:
Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;

这个在YAML文件中会是什么样子呢?


我认为这个线程可能会对你有所帮助:https://dev59.com/ym025IYBdhLWcg3wLitX - Frost
1个回答

15

您可以配置更多选项:

error_msg:
  zero: none
  one: 1 error
  other: %{count} errors

t('error_msg', :count => 15)
=> 15 errors

根据 I18n 版本,yml 文件中可能会是 {{count}} 或 %{count}。可以在这里找到更多解释:http://guides.rubyonrails.org/i18n.html#pluralization

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接