2015-04-22 27 views
2

我需要修改設計的錯誤消息。我想將消息「無效」更改爲「Esinválido」。問題是我必須去改變這些消息在寶石中。我可以在模型用戶如何在設計中編輯錯誤消息

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 

回答

5

制定的清單生成一個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" 
+0

Cyzanfar如果我需要改變」電子郵件不能爲空「,以」我不應該添加到電子郵件的埃爾電子郵件沒有puede estar vacio「 .yml –

+1

Cyzanfar它完美的作品 –

3

這不是制定特定的。您可以在您的config/locales/*.yml文件中本地化任何ActiveRecord錯誤消息。

在這種情況下,你可以在config/local/es.yml,添加類似以下內容:

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

Rails的定位是非常配置the guides中有更多信息。

+0

我使用的設計(1.1.5)與軌道meagar 3.0.1 –

+0

感謝Meagar我現在明白了 –

+0

Meagar如果我需要改變「的電子郵件不能爲空「到」El電子郵件沒有puede estar vacio「該行我應該添加到es.yml –

0

您可以使用您的配置的 devise.es.yml做制訂具體的翻譯/區域設置文件夾

所有不同的翻譯在這裏給出的official devise wiki