Desarrollar un plugin en varios idiomas para WordPress

Una opción interesante mientras se desarrolla un plugin a medida para WordPress es que sea multi-idioma, es decir, hacer un plugin que soporte varios idiomas.

En este entrada se explica cómo hacer para que un plugin de WordPress hecho a medida desde cero sea traducible en todos los idiomas que necesites.

El código usado para el ejemplo se encuentra al final del todo.

Punto de partida del ejemplo

  • El plugin se llama MULTI, por lo que su carpeta se va a llamar «multi»

  • Utilizaremos el plugin Loco Translate para traducir las cadenas de texto

  • Almacenaremos las traducciones en la carpeta /languages/

  • El «text domain» será la palabra «multi».

  • Cargaremos los ficheros de traducción con load_plugin_textdomain

  • Los strings de texto a traducir en PHP serán similares a este: esc_html__('Este texto sale en varios idiomas', 'multi');

  • En los ficheros de JavaScript se pueden traer las funciones i18n de WordPress const { __, _x, _n, _nx } = wp.i18n;

    De esta manera, una cadena traducible en un fichero js podría ser __("mi texto a traducir", "multi");

Crear plantilla de traducción

Lo primero de todo es generar la plantilla de traducción.

Para ello, acudimos a Loco Translate > Plugins y hacemos clic sobre el plugin que hemos creado (MULTI en el caso de este ejemplo).

Observa que no sale nada acerca de ningún idioma, de hecho indica que «no se han encontrado ficheros para multi». En la parte intermedia aparecen las opciones de «Nuevo idioma» y «Crear plantilla» (que son ahora las opciones que nos interesan).

Al pinchar en «Nuevo idioma» aparece un mensaje indicando que primero hay que crear una plantilla (el fichero .pot).

Pulsamos el botón de «Crear plantilla» para ir a la pantalla de la siguiente imagen.

Aparece el mensaje de que se va a crear una plantilla y, nuevamente, debemos el botón de «Crear plantilla.»

La plantilla (el fichero .pot) ha leido nuestro código y ha identificado los textos que se pueden traducir.

Crear ficheros de traducción

Una vez creada la plantilla se podrán añadir idiomas para convertir nuestro plugin de WordPress en un plugin multi-idioma.

Nos vamos hasta la opción de «Nuevo idioma» y seleccionamos el idioma deseado, en este caso, Español, pero podría ser inglés, francés, alemán, etc.

Indicamos que queremos guardar las traducciones dentro de la carpeta «languages» de nuestro plugin hecho a medida (la tercera opción) y pulsamos en «Comenzar a traducir».

Ahora queda traducir todas frases encontradas y salvar las traducciones.

Una vez has traducido todos los textos puede añadir tantos idiomas como necesites.

Si tienes dudas acerca de usar Loco Translate, en esta otra entrada te explico más en detalle cómo traduje otro plugin con Loco Translate.

Añadiendo nuevas cadenas de traducción

Suponer que a nuestro plugin le hemos ampliado funcionalidades y hemos añadido nuevas frases y textos que deben ser traducidos.

Lo que habría que hacer sería regenerar nuevamente el fichero .pot, para ello ve a Loco Translate > Plugins y selecciona tu plugin y pulsa en «Editar plantilla».

Como se tienen que leer los ficheros que contienen las traducciones debemos pulsar en «Sincronizar».

El caso de este ejemplo, aparece el mensaje de que se ha añadido una nueva cadena de texto.

Pulsa en «guardar» para así tener la plantilla actualizada.

Ahora, hay que actualizar los idiomas, volvemos al idioma español de nuestro plugin y saltará un aviso, indicando que «las traducciones no coinciden con la plantilla» (se ha descubierto una nueva frase a traducir).

Pulsa el botón de «Sincronizar» y así se añadirán las nuevas traducciones que se encuentren.

En el caso del ejemplo, se ha añadido una nueva cadena de texto.

Traduce las cadenas correspondientes y listo, tendrás tu plugin actualizado.

Código del plugin

Para documentar esta entrada he creado un plugin muy sencillo, el código es el siguiente:

Copiar

Si quieres que «funcione» o cacharrear con el multi-idioma crea dentro de la ruta wp-content/plugins/ una carpera de nombre «multi» y crea dentro de ella un fichero de nombre multi.php y pega dentro este código.

¡Valora este artículo y ayúdame a mejorar la calidad del blog, si no te ha servido, déjame un comentario para revisarlo!
(Votos: 1 Promedio: 5)