Ruby on rails 在I18n消息上使用a/an

Ruby on rails 在I18n消息上使用a/an,ruby-on-rails,internationalization,rails-i18n,Ruby On Rails,Internationalization,Rails I18n,我的en.yml文件中有以下错误消息: 无效的\u转换:“无法%{action}a%{state}时间表” 问题是,有时状态可以是已批准的,而有时状态可以是已拒绝的 这样,错误可能会被错误地称为“无法提交已批准的时间表”,而不是“已批准的时间表” Rails在I18n中是否提供了这种灵活性?我认为,对于您的问题,最简单的答案是将正确的不定冠词一起传递给整个州 有一个。一个简单的答案是,有一颗宝石可以做到这一点 然后,您的翻译变成: invalid_transition: "Cannot %{ac

我的
en.yml
文件中有以下错误消息:

无效的\u转换:“无法%{action}a%{state}时间表”

问题是,有时状态可以是
已批准的
,而有时状态可以是
已拒绝的

这样,错误可能会被错误地称为“无法提交已批准的时间表”,而不是“已批准的时间表”


Rails在I18n中是否提供了这种灵活性?

我认为,对于您的问题,最简单的答案是将正确的不定冠词一起传递给整个州

有一个。一个简单的答案是,有一颗宝石可以做到这一点

然后,您的翻译变成:

invalid_transition: "Cannot %{action} %{state_with_article} timesheet"
然后调用
I18n.t
并将“a拒绝”或“a批准”作为变量传递以进行插值

然而,如果你想让你的手更脏一点,你可以使用宝石和它的伴星宝石。对于许多语言来说,不定冠词的选择比英语复杂,因为不同的性别和时态影响不定冠词的选择。(免责声明:我没有使用这些宝石中的任何一个,但它们看起来可以帮助您解决问题)