一般我们都要模型内使用validates_xxx_of 这样的确认信息。而这些信息是英文的,我们用三种方法来中文化它。
一、覆写:message:
validates_format_of :image_url,:with => %r{.(gif|jpg|png)$}i,:message => "必须是 GIF,JPG或PNG图片!!!"
使用这种方式时,我们就损失了一些通用信息的方便性。让我们看看第二种方式。
二、修改environment.rb文件:
在其中加入这些语句:
ActiveRecord::Errors.default_error_messages[:inclusion] = " 字段没有包括在列表内!" ActiveRecord::Errors.default_error_messages[:exclusion] = " 字段已被保存过了!" ActiveRecord::Errors.default_error_messages[:invalid] = " 字段是无效的!" ActiveRecord::Errors.default_error_messages[:confirmation] = " 字段不匹配的信息!" ActiveRecord::Errors.default_error_messages[:accepted] = " 字段必须接受此选项!" ActiveRecord::Errors.default_error_messages[:empty] = " 字段不能为空!" ActiveRecord::Errors.default_error_messages[:blank] = " 字段不能为空!" ActiveRecord::Errors.default_error_messages[:too_long] = " 字段太长了(最大是 %d 个英文字符)!" ActiveRecord::Errors.default_error_messages[:too_short] = " 字段太短了(最小是 %d 个英文字符)!" ActiveRecord::Errors.default_error_messages[:wrong_length] = " 字段长度有错误(应该是 %d 个英文字符)!" ActiveRecord::Errors.default_error_messages[:taken] = " 字段已经选择过了!" ActiveRecord::Errors.default_error_messages[:not_a_number] = " 字段不是个数字!"
这样,你就获得了通用信息的方便性,即使你没有使用:message来覆写中文信息,你的view中显示的也是中文。
但是我发现它有两个不便之处:一是修改时要重启WEBrick才能生效。二是在测试时会提示出错的。我用了第三种方式。
三、修改application_help.rb文件:
在该文件中加入下面语句:
ActiveRecord::Errors.default_error_messages = {:inclusion => " 字段没有包括在列表内!" ,:exclusion => " 字段已被保存过了!" ,:invalid => " 字段是无效的!" ,:confirmation => " 字段不匹配的信息!" ,:accepted => " 字段必须接受此选项!" ,:empty => " 字段不能为空!" ,:blank => " 字段不能为空!" ,:too_long => " 字段太长了(最大是 %d 个英文字符)!" ,:too_short => " 字段太短了(最小是 %d 个英文字符)!" ,:wrong_length => " 字段长度有错误(应该是 %d 个英文字符)!" ,:taken => " 字段已经选择过了!" ,:not_a_number => " 字段不是个数字!" ,}
怎么样!看到熟悉的汉字了吗?
当然了,如何你进一步操作,比如:哈希表中文信息,覆写error_message_for方法的话,你就可以彻底地中文化view了。我就不写了,网上的资料也不少。 |