繁体   English   中英

如何在设计中编辑错误消息

[英]How to edit error messages in devise

我需要修改设计的错误消息。 我想将消息“is Invalid”更改为“Esinválido”。 问题是我必须在gem中更改这些消息。 我可以在模型用户中覆盖这些消息吗?

Rails控制台

1.9.3-p547 :014 > user.save
 => false 
1.9.3-p547 :015 > user.errors
 => {:email=>["is invalid"], :password=>["is too short (minimum is 6 characters)"]} 
1.9.3-p547 :016 > 

用户模型

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable, :lockable and :timeoutable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me
end

设计在config / locales /中生成devise.en.yml文件如果您需要使用其他语言(如西班牙语),请将devise.en.yml替换为此文件:

devise.es.yml

es:
  errors:
    messages:
      expired: "ha expirado, por favor pide una nueva"
      not_found: "no encontrado"
      already_confirmed: "ya fue confirmada. Intenta ingresar."
      not_locked: "no ha sido bloqueada"
      not_saved:
        one: "Ha habido 1 error:"
        other: "Han habido %{count} errores:"

  devise:
    failure:
      already_authenticated: 'Ya iniciaste sesión.'
      unauthenticated: 'Tienes que registrarte o iniciar sesión antes de continuar.'
      unconfirmed: 'Tienes que confirmar tu cuenta antes de continuar.'
      locked: 'Tu cuente está bloqueada.'
      invalid: 'Email o contraseña inválidos.'
      invalid_token: 'Token de autentificación inválido.'
      timeout: 'Tu sesión ha expirado. Inicia sesión nuevamente.'
      inactive: 'Tu cuenta aun no ha sido activada.'
    sessions:
      signed_in: 'Iniciaste sesión correctamente.'
      signed_out: 'Cerraste sesión correctamente.'
    passwords:
      send_instructions: 'Recibirás un email con instrucciones para reiniciar tu contraseña en unos minutos.'
      updated: 'Tu contraseña fue cambiada correctamente. Has iniciado sesión.'
      updated_not_active: 'Tu contraseña fue cambiada correctamente.'
      send_paranoid_instructions: "Si tu email existe en el sistema, recibirás instrucciones para recuperar tu contraseña en él"
    confirmations:
      send_instructions: 'Recibirás instrucciones para confirmar tu cuenta en tu email en unos minutos.'
      send_paranoid_instructions: 'Si tu email existe en el sistema, recibirás instrucciones para confirmar tu cuenta en tu email en unos minutos.'
      confirmed: 'Tu cuenta fue confirmada. Has iniciado sesión.'
    registrations:
      signed_up: 'Bienvenido! Te has registrado correctamente.'
      signed_up_but_unconfirmed: 'Te hemos enviado un email con instrucciones para que confirmes tu cuenta.'
      signed_up_but_inactive: 'Te has registrado correctamente, pero tu cuenta aun no ha sido activada.'
      signed_up_but_locked: 'Te has registrado correctamente, pero tu cuenta está bloqueada.'
      updated: 'Actualizaste tu cuenta correctamente.'
      update_needs_confirmation: "Actualizaste tu cuenta correctamente, pero tenemos que revalidar tu email. Revisa tu correo para confirmar la dirección."
      destroyed: 'Adiós, tu cuenta ha sido eliminada. Esperamos verte de vuelta pronto!'
    unlocks:
      send_instructions: 'Recibirás un email con instrucciones para desbloquear tu cuenta en unos minutos'
      unlocked: 'Tu cuenta ha sido desbloqueada. Inicia sesión para continuar.'
      send_paranoid_instructions: 'Si tu cuenta existe, recibirás instrucciones para desbloquear tu cuenta en unos minutos'
    omniauth_callbacks:
      success: 'Te autentificaste correctamente con tu cuenta de %{kind}.'
      failure: 'No pudimos autentificar tu cuenta de %{kind} por la siguiente razón: %{reason}.'
    mailer:
      confirmation_instructions:
        subject: 'Instrucciones de confirmación'
      reset_password_instructions:
        subject: 'Instrucciones de cambio de contraseña'
      unlock_instructions:
        subject: 'Instrucciones de desbloqueo'

UPDATE

es:
  activerecord:
    errors:
      models:
        user:
          attributes:
            email:
              blank: "El email no puede estar vacio"

这不是特定于Devise的。 您可以在config/locales/*.yml文件中本地化任何ActiveRecord错误消息。

在这种情况下,您可以在config/local/es.yml中添加如下内容:

es:
  activerecord:
    errors
      models
        user
          attributes:
            email:
              invalid: "Es inválido"

Rails的本地化是非常可配置的。 有一个更多的信息导向

您可以使用config / locales文件夹中的devise.es.yml进行设计特定翻译

所有不同翻译的列表在官方设计维基中给出

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM