Rails i18n字符串自动小写?

时间:2010-09-14 15:14:40

标签: ruby-on-rails internationalization ruby-on-rails-3

我注意到在我的新Rails 3.0应用程序中,所有德语i18n字符串都转换为小写字母(第一个字母除外)。

当有这样的字符串时:

de:
  email: "E-Mail"

输出总是像“电子邮件”。与所有其他字符串相同的故事 - 句子中的大写字母会自动转换为小写字母。

这是我必须禁用的默认行为,还是有任何其他问题?我已经成功地正确设置了语言环境,因为这些字符串实际上可以正常工作。

感谢您的帮助

·阿尔

2 个答案:

答案 0 :(得分:13)

作为国际化流程的一部分,您不应对指定的内容进行任何修改。听起来好像在输出之前在字符串上调用humanize。我相信一些标准的Rails表单辅助方法可以做到这一点。如果您只是使用t('email')输出翻译,则应该正确看到“电子邮件”。

更新: 从您的评论看来,它似乎是导致问题的标签。如果您明确指定标签的文本而不是依赖于默认行为,则将完全按照您的指定获得翻译。所以,

<%= f.label(:email, t('email')) %>

应该从翻译中生成正确的标签。

然而,这并不理想。我认为您可能还会遇到生成的验证错误消息的问题。

答案 1 :(得分:2)

遇到同样的问题。通过将_html后缀添加到I18n转换键来解决它。似乎使用此后缀会抑制humanize用法。