0

我正在构建一个应用程序,使用I18n来显示不同的语言。在这一刻,以这种方式显示验证消息。使用I18n与Rails ActiveRecord增强消息

连接

USERNAME CAN'T BE BLANK 

ZH-CN

USERNAME 不能为空字符 

我想属性USERNAME转化为其他字符串。所以我遵循Rails Guide中的说明并在我的区域设置文件中添加了以下几行。

en: 
    activerecord: 
    attributes: 
     user: 
     username: "User Name" 


zh-CN: 
    activerecord: 
    attributes: 
     user: 
     username: "用户名" 

当我运行human_attribute_name命令时,它可以被翻译。

ruby-1.9.2-p290 :001 > User.human_attribute_name("username") 
=> "Username" 

但在验证消息中,它只是大写了属性名称的所有字符。

CURRENT_PASSWORD 不能为空字符 

我错过了什么吗?我该如何解决它?

谢谢大家。 :)

回答

1

我想你可能需要

en: 
    activerecord: 
    errors: 
     models: 
     user: 
      attributes: 
      username: "User Name" 
+0

谢谢@chrispanda。我试过你的方法,但问题不是固定的。我更新了这个问题。你有什么建议吗? –

+0

重读您的问题并调整答案... – chrispanda

+0

感谢哥们。我刚刚发现我使用了一个重写验证消息设置的帮助器方法。我为此感到抱歉。 –

0

我犯了一个错误。我添加了一个自定义助手来处理验证消息。有关I18n的翻译是正确的。我可以使用human_attribute_name来翻译arribute。