我注意到在我的新Rails 3.0应用程序中,所有德语i18n字符串都转换为小写字母(第一个字母除外)。
当有这样的字符串时:
de:
email: "E-Mail"
输出总是像“电子邮件”。与所有其他字符串相同的故事 - 句子中的大写字母会自动转换为小写字母。
这是我必须禁用的默认行为,还是有任何其他问题?我已经成功地正确设置了语言环境,因为这些字符串实际上可以正常工作。
感谢您的帮助
·阿尔
答案 0 :(得分:13)
作为国际化流程的一部分,您不应对指定的内容进行任何修改。听起来好像在输出之前在字符串上调用humanize
。我相信一些标准的Rails表单辅助方法可以做到这一点。如果您只是使用t('email')
输出翻译,则应该正确看到“电子邮件”。
更新: 从您的评论看来,它似乎是导致问题的标签。如果您明确指定标签的文本而不是依赖于默认行为,则将完全按照您的指定获得翻译。所以,
<%= f.label(:email, t('email')) %>
应该从翻译中生成正确的标签。
然而,这并不理想。我认为您可能还会遇到生成的验证错误消息的问题。
答案 1 :(得分:2)
遇到同样的问题。通过将_html
后缀添加到I18n转换键来解决它。似乎使用此后缀会抑制humanize
用法。