2

J'ai besoin de modifier les messages d'erreur de concevoir. Je veux changer le message "est invalide" en "Es inválido". Le problème est que je dois aller changer ces messages dans la gemme. Puis-je remplacer ces messages dans le modèle utilisateurComment éditer les messages d'erreur dans le programme

console 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 > 

modèle utilisateur

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 

Répondre

5

Devise génère un fichier devise.en.yml dans config/locales/ Si vous avez besoin de vos messages d'erreur pour être dans une autre langue comme l'espagnol, remplacer votre devise.en.yml avec ce fichier:

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' 

MISE À JOUR

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

Cyzanfar si je dois changer" Email ne peut pas être vide "à" El email pas puede estar vacio "cette ligne je devrais ajouter à es .yml –

+1

Cyzanfar Fonctionne parfaitement –

3

Ce n'est pas spécifique Concevoir. Vous pouvez localiser n'importe lequel de vos messages d'erreur ActiveRecord dans vos fichiers config/locales/*.yml.

Dans ce cas, vous pourriez, en config/local/es.yml, ajouter quelque chose comme ce qui suit:

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

Rails de localisation est de extrêmement configurable. Il y a beaucoup plus d'informations dans the guides.

+0

meagar J'utilise concevoir (1.1.5) avec des rails 3.0.1 –

+0

Merci Meagar Je comprends maintenant –

+0

Meagar si je dois changer « Email ne peut pas être vide "à" El email pas puede estar vacio "cette ligne je devrais ajouter à es.yml –

0

Vous pouvez faire le legs des traductions spécifiques en utilisant la devise.es.yml dans votre config/locales dossier

Liste de toutes les différentes traductions est donnée ici à official devise wiki