It's of little use to have a website in several languages if the order confirmation email reaches the customer in Spanish. WP-Translate closes that gap: it translates your WordPress emails into the language of each recipient, without you having to touch templates or write code. I'll show you step by step.
To the point: WP-Translate detects the language of each person (when registering or buying), intercepts the WordPress send and translates the email into that language. It works with WordPress emails, WooCommerce, Contact Form 7 and any plugin that uses wp_mail().
1. Translate your website's emails too
Registrations, password recovery, order confirmations, invoices, shipping notices… All these emails come out of WordPress as text. By activating the automatic email string detection, WP-Translate recognizes them and prepares them for translation like any other text on the website.

2. In each person's language
The plugin saves each user's preferred language at the moment they logs in, registers or places an order. When WordPress is about to send an email, WP-Translate intercepts the sending, detects the recipient's language, and looks for the translation. This way, each customer receives the email in their language, not yours.
3. Compatible with WooCommerce and more
Interception works with native WordPress emails and, in addition, with WooCommerce (order confirmation, invoice, shipping), Contact Form 7 and any plugin that sends mail through the standard function wp_mail(). There's no need to integrate anything manually.
4. Scan and translate them
The flow is simple: you click "Scan email templates" for WP-Translate to collect the strings, and then you translate them in the tab Translations filtering by origin email. Once translated, they are applied automatically with each send.
5. Lo que cambió en la versión 2.9.1
Merece la pena contarlo, porque si probaste esto antes de septiembre puede que no te funcionara.
El plugin guardaba las frases de los correos con una etiqueta y luego, al enviar, las buscaba con otra. Traducción guardada había; el envío no la encontraba nunca. El resultado era el peor posible de cara a quien lo montaba: todo parecía bien configurado y los correos seguían saliendo en el idioma de la tienda.
Había un segundo motivo, y este es más de fondo. Cuando WooCommerce prepara un correo lo hace en el idioma de la tienda. En una tienda española viaja «Resumen del pedido», no «Order summary». Pero la memoria del plugin se había llenado leyendo las plantillas originales en inglés. Dos mundos que no se tocaban.
Desde la 2.9.1 el buscador prueba todas las etiquetas de correo antes de rendirse, y si una frase no está en la memoria se traduce en el momento y se guarda ya con el texto real que ha viajado. Es decir: se aprende del envío, no de la plantilla. El primer correo abre camino y los siguientes salen de memoria, sin llamar a nadie.
6. Los importes y los datos del cliente no salen de tu web
Un correo de pedido es medio texto y medio datos. Y con los datos, un traductor automático hace dos cosas que no quieres.
La primera es reformatear cifras: «58,40 EUR» vuelve como «58.40 EUR». En un correo de pedido eso cambia el importe que el cliente cree haber pagado. Por eso los importes, las fechas, los números de pedido y los teléfonos se apartan antes de traducir y se reponen tal cual estaban; y si aun así alguna cifra hubiera cambiado, esa frase se manda sin traducir en lugar de mandarla mal.
La segunda es más seria: el nombre y la dirección postal del cliente no se envían al motor de traducción. Tampoco su correo electrónico. No hay nada que traducir ahí, y son datos personales.
7. Cómo comprobar que en tu tienda funciona
No te fíes de que la casilla esté marcada. Es una comprobación de diez minutos y te ahorra enterarte por un cliente:
- Crea un usuario de prueba con un correo tuyo y entra con él navegando en el idioma que quieras probar. Ese es el momento en que el plugin apunta el idioma de esa persona.
- Haz un pedido de prueba con ese usuario, sin salir de ese idioma.
- Mira el correo que llega: asunto y cuerpo. El asunto es el que más se olvida.
- Check that the importe y el número de pedido son exactamente los del pedido, con el mismo formato.
- Haz un segundo pedido igual. Este debe llegar traducido al instante: si el primero abrió camino, el segundo ya sale de memoria.
Si el correo llega sin traducir, mira en este orden: que el módulo de correos esté activado, que el idioma del destinatario esté detectado (no vale un usuario que nunca ha navegado en ese idioma) y que el motor de traducción tenga su clave puesta y responda.
8. Los avisos de tu tienda siguen llegándote a ti en tu idioma
Es una decisión deliberada y conviene saberla: los correos que WooCommerce te manda a ti —«nuevo pedido», avisos de administración— no se traducen. Quien lleva la tienda sigue leyendo sus notificaciones en su idioma. Lo que se traduce es lo que sale hacia el cliente.
Availability
La traducción de correos va con la licencia: no está en la versión gratuita de WordPress.org. Es una función pensada para quien vende, y ahí es donde se paga sola.
Para que funcione hacen falta tres cosas, y las tres se ven en la misma pantalla: la licencia activa, el módulo de correos encendido (viene apagado de fábrica) y un motor de traducción configurado. Los planes están en wptranslate.es.
Quick questions
What if an email has no translation? You can choose to send it in the original language (recommended option) or in the site's default language.
Does it work with my gateway / forms plugin? If you send the email with wp_mail() —the usual in WordPress— yes.
Do I have to translate each email manually? Only once. Afterwards, each send automatically reuses the translation.