Soporte » Guías – Resolución de problemas » Traducción del correo de confirmación de cambio contraseña

  • xavigort

    (@xavigort)


    Hola,

    Tengo un entorno wp 4.9.8 + woo traducido en 2 idiomas (EN / ES) pero no logro conseguir que cuando un usuario cambia su contraseña, reciba el correo en el idioma que le corresponde, siempre se reciben en inglés.

    He revisado los ficheros .po y he visto que la traducción de este correo viene de la siguiente manera:

    msgid «»
    «Hi ###USERNAME###,\n»
    «\n»
    «This notice confirms that your password was changed on ###SITENAME###.\n»
    «\n»
    «If you did not change your password, please contact the Site Administrator at\n»
    «###ADMIN_EMAIL###\n»
    «\n»
    «This email has been sent to ###EMAIL###\n»
    «\n»
    «Regards,\n»
    «All at ###SITENAME###\n»
    «###SITEURL###»
    msgstr «»
    «Hola ###USERNAME###,\n»
    » \n»
    «\n»
    «Este aviso confirma que tu contraseña ha cambiado en ###SITENAME###.\n»
    » \n»
    «\n»
    «Si no has cambiado la contraseña, contacta con el administrador del sitio en\n»
    «###ADMIN_EMAIL###\n»
    » \n»
    «\n»
    «Este correo ha sido enviado a ###EMAIL###\n»
    » \n»
    «\n»
    «Saludos,\n»
    «El equipo de ###SITENAME###\n»
    «###SITEURL###»

    No sé si esto puede generar algún problema al no reconocerse bien las cadenas, de manera que lo he cargado todo en un solo string:

    msgid «Hi ###USERNAME###,\n\nThis notice confirms that your password was changed on ###SITENAME###.\n\nIf you did not change your password, please contact the Site Administrator at\n###ADMIN_EMAIL###\n\nThis email has been sent to ###EMAIL###\n\nRegards,\nAll at ###SITENAME###\n###SITEURL###»
    msgstr «Hola ###USERNAME###,\n\n\nEste aviso confirma que tu contraseña ha cambiado en ###SITENAME###.\n\n\nSi no has cambiado la contraseña, contacta con el administrador del sitio en\n###ADMIN_EMAIL###\n\n\nEste correo ha sido enviado a ###EMAIL###\n\n\nSaludos,\nEl equipo de ###SITENAME###\n###SITEURL###»

    He subido el .po y el .mo correspondiente, y en este caso al actualizar la contraseña sí que he recibido el correo en ES, pero solo la primera vez. Si en ese momento vuelvo a actualizar la contraseña, sin cambiar ficheros, recibo el correo de nuevo en EN.

    He vuelto a subir los ficheros con mi cambio y nuevamente he recibido el correo en ES, pero solo la primera vez…

    Alguna idea de qué puede estar pasando?

    gracias!

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • Moderador kallookoo

    (@kallookoo)

    Hola,
    Lo primero, nunca edites los archivos del core aunque sean los de las traducciones.

    Este mail contractamente lo manda WordPress cuando cambias la contraseña y el idioma sera el que tenga especificado el usuario o el predeterminado en la instalacion del WordPress.

    El idioma se configura en el perfil de cada usuario o podrias de mirar de hacerlo on fly pero no lo recomiendo para este caso. Ya que si un usuario es Aleman por y configura el idioma del WordPress al Aleman tu se lo cambias por el que decistes ese dia.

    Iniciador del debate xavigort

    (@xavigort)

    Gracias por tu respuesta @kallookoo

    Probé con la edición de los ficheros .mo y .po (en /wp-content/languages/, nunca en el core) al ver que esto fallaba. La instalación de wp es en inglés, luego instalé el WPML y finalmente he cargado los ficheros de traducción de ES, en esa misma carpeta /wp-content/languages).

    El usuario (que en este caso es perfil admin) tiene asignado el idioma ES y la interfaz de admin me sale correctamente en ES. Sihago el cambio de contraseña desde «mi perfil», en el área de administrador el problema es, como comentaba, es que los correos se reciben en EN.

    Si hago este ajuste en los ficheros .mo y .po en el primer envío de prueba si me llega en ES, pero si lo vuelvo a probar después me lo vuelve a enviar en EN.

    Pensé que quizá había algún conflicto con mi theme pero lo he probado con el tema por defecto y también me pasa.

    Alguna idea? Gracias!

    Moderador kallookoo

    (@kallookoo)

    Hola @xavigort,
    Para mi wp-content/languages es el core ya que el mismo WordPress es quien lo gestiona, pero solo fue un comentario – sugerencia.

    Lo que no entiendo es porque cargastes los ES ya que el mismo WordPress cuando cambias el idioma en un perfil o globalmente los descarga automaticamente tanto para el core, themes y plugins.

    Sobre el WPML creo el problema viene de hay ya que el usa ciertos hooks para cambiar el idioma y como en esa seccion concretamente no hay un hook directo no pueda cambiarlo, mi recomiendon es que desactives temporalmente el WPML y el idioma del usuario lo especifiques en el perfil y luego actives otra vez el WPML.
    Lo de activar y desactivarlo es para prevenir cualquier interferencia, aunque no deberia.

    Si sabes algo de PHP puedes revisar el archivo https://core.trac.wordpress.org/browser/tags/5.1.1/src/wp-includes/user.php#L1954 y seguir las functions para que veas de que hablo.

    Otra opcion es recurrir al foro del WPML y comentarle la situacion porque no creo que seas el unico con ese problema, si estoy en lo cierto y el causante es el WPML.

    Iniciador del debate xavigort

    (@xavigort)

    gracias @kallookoo,

    probablemente tenga que ver con WPML. Sigo por aquí.

    saludos,

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • El debate ‘Traducción del correo de confirmación de cambio contraseña’ está cerrado a nuevas respuestas.