证美赞臣(Meadjohnson卡塔 尔(英语:State of Qatar)(Karicare卡塔尔国下

 

Active Record
验证扶助方法的暗中认可错误音讯都以意国语,为了巩固顾客体验,有时候大家平常会被须求按一定的文本浮现错误信息。那个时候有三种完结方式。

  1. 平素在:message添Gavin案

    class User < ActiveRecord::Base  validates :email,

             presence:   { message: '邮箱不能为空!' },
             uniqueness: { message: '邮箱 %{value} 已存在!' }
    

    validates :name,

             presence: { message: '姓名不能为空!' },
             length:   { maximum: 255, too_long: '姓名最多为255个字符' }
    

    end

证实一下:

user = User.new
user.valid?
user.errors.messages
#=> { :email=>["邮箱不能为空!"], :name=>["姓名不能为空!"]} 
  1. 使用 rails国际化API

在config/locales文件下生龙活虎度存在三个默许的en.yml文件,我们能够再添加多个 zh-CN.yml
文件作为中文的翻译

class ApplicationController < ActionController::Base
  before_action :set_locale
  def set_locale
     I18n.locale = user_locale
    # after store current locale
    cookies[:locale] = params[:locale] if params[:locale]
  rescue I18n::InvalidLocale
    I18n.locale = I18n.default_locale
  end

  protected
  def user_locale
    params[:locale] || cookies[:locale] || http_head_locale || I18n.default_locale
  end

  def http_head_locale
    request.env['HTTP_ACCEPT_LANGUAGE']
  end

end

设置每一种key对应的翻译值

zh-CN:
  activerecord:
    attributes:
      taken: '已占用'
      blank: '不能为空'
      user:
        email: '邮箱'
        password: '密码'
        name: '姓名'
        mobile: '手机号'
    models:
      user: '用户'
    errors:
      messages:
        record_invalid: "%{errors}"
        taken: '已占用'
        blank: '不能为空'
      attributes:
        version: '版本'
  actions:
    create: '新增'
    update: '修改'
    destroy: '删除'

证实一下:

class User < ActiveRecord::Base
  validates :mobile,
            presence:   true,
            uniqueness: true,
end

user = User.new
user.valid?
user.errors.messages  #=> { :mobile=>["不能为空", "已占用"] } 
user.errors.full_messages  #=> [ "手机号 不能为空", "手机号 已占用"]

参考:

管理验证错误

Active Record
模型的翻译

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website