

Para los que no lo sepan, WordPress es la base de casi el 43% de los sitios web del mundo. Además, el sistema de gestión de contenidos (CMS) está disponible en 205 idiomas diferentes. Dado que la plataforma es una entidad global, la localización es importante. El proceso i18n de WordPress es clave para ello.
La idea principal de i18n es que es una forma de preparar el código de tus temas y plugins para la traducción. A partir de ahí, puedes aplicar traducciones precisas a otros idiomas, alinearte con otras culturas y locales, y cosechar los beneficios.
En esta entrada, vamos a hablar de WordPress i18n con más detalle y te mostraremos cómo aplicarlo. Aunque tendrás que tener algunos conocimientos de programación, también explicaremos los pasos en detalle, así como qué es (y qué hace) WordPress i18n.
Producto de una época pasada, el "lenguaje de principiantes" sigue vivo en los círculos de desarrollo web. Aunque no verás mucho "l33t" y "n00b", sí verás muchos numerónimos: a11y cuando se habla de accesibilidad, por ejemplo.
De hecho, i18n es otro numeral. Significa "internacionalización" y consiste en la primera y la última letra combinadas con un número que indica cuántas letras hay entre ellas. También encontrarás que la localización tiene su propio numeral: l10n. También hay otros numerónimos, como globalización (g11n), europeización (e13n), y muchos más.
Aquí vamos a ocuparnos específicamente de la internacionalización. El informe oficial del Consorcio World Wide Web (W3C ) señala que el diseño y el desarrollo permiten una localización sencilla para usuarios de distintas culturas, localidades, idiomas y otros.
Es importante tener en cuenta que la internacionalización es sólo un primer paso en el proceso de traducción. A partir de ahí, llevarás a cabo la localización utilizando una solución de traducción adecuada.
Para el proceso de i18n en sí, hay una serie de pasos que el desarrollador de WordPress tomará antes de entregar al traductor. En pocas palabras, el proceso de localización es el siguiente:
El traductor tomará el archivo .pot y lo utilizará para llevar a cabo la localización, por lo que es una parte importante del procedimiento.
Para los que no lo sepan, los archivos POT son un ejemplo de los que se generan con la herramienta GNU gettext. Se trata de tecnología y software de la década de 1980 que sigue ofreciendo un inmenso valor para quienes realizan i18n hoy en día.
Saber exactamente qué es esto no es necesario para llevar a cabo WordPress i18n, pero es útil entender lo que hace en un sentido general, y lo que genera. Considere gettext como un framework que ayuda a WordPress a producir mensajes multilingües.
A menudo verás varios archivos asociados a gettext:
Con todo esto en mente, ya casi puedes empezar el proceso de i18n. En primer lugar, es bueno preparar tu sitio WordPress para el trabajo que tienes por delante.
Como con cualquier proyecto relacionado con los archivos del núcleo de WordPress, querrás asegurarte de que tu instalación está "limpia" antes de empezar. También querrás asegurarte de que puedes revertir cualquier cambio que hagas, en caso de que ocurra lo peor y necesites restaurar.
Por ello, hay dos "pasos previos" casi innegociables antes del proceso i18n:
En este último caso, le aconsejamos que actualice los plugins que desee conservar y elimine los que no sean necesarios.
Una vez más, vamos a trabajar con los archivos del núcleo de WordPress, por lo que es conveniente que conozcas su funcionamiento y su contenido. Algunos de los conceptos de los que hablaremos en el tutorial no tendrán necesariamente una explicación, aunque los pasos sí la tendrán.
Una vez completados todos estos puntos, puede empezar a trabajar en el proceso i18n.
A lo largo de las siguientes secciones, te mostraremos cómo llevar a cabo la i18n de WordPress con tus temas y plugins. Aunque cada sección puede tener mucho código y ser técnica en algunas partes, vamos a explicar todo lo más detalladamente posible, y enlazaremos a cualquier recurso adicional que puedas necesitar.
Empezaremos por cómo internacionalizar tus temas.
El primer paso es actualizar la cabecera del tema para incluir un dominio de texto y una ruta de dominio. En pocas palabras:
Para ello, basta con añadir unas palabras al archivo de cabecera del tema:
/*
Nombre del Tema: Mi Tema Personalizado
Autor: Weglot Translate
Dominio del Texto: mi-tema
Ruta del Dominio: /idiomas/
*/
Luego, necesitas cargar ese dominio de texto usando una 'acción' y una 'función':
add_action( 'after_setup_theme', 'my_theme_setup' );
function my_theme_setup() {
load_theme_textdomain( 'my-theme', get_template_directory() . '/languages' );
}
Este conjunto de código debe estar en el archivo functions.php de tu tema, en lugar de en el de tu sitio. Una vez hecho esto, puede empezar a realizar una "auditoría de cadenas". Esto requiere que envuelva todas las cadenas de texto dentro de su tema en funciones de traducción. Hay dos funciones que utilizará a menudo:
Estas funciones requieren dos argumentos: la cadena de texto y el dominio de texto. Por ejemplo:
__()
$welcome = __( '¡Hola! Bienvenido al panel de control!', 'mi-tema' );
_e( '¡Hola de nuevo!', 'mi-tema' );
Aunque los entresijos de las distintas funciones de traducción quedan fuera del alcance de este artículo, el Manual para desarrolladores de temas de WordPress contiene casi toda la información necesaria para realizar el trabajo.
En este punto, puede crear un archivo POT. Hay muchas soluciones para hacerlo, pero WordPress recomienda Poedit, una solución gratuita y de código abierto.
Una vez descargado e instalado Poedit, dirígete a Archivo > Nuevo en la barra de herramientas:

A continuación, cree un nuevo catálogo. Puede hacer clic en el enlace Extraer de fuentes de la pantalla principal:

A continuación, rellene los campos correspondientes al nombre del proyecto, el equipo lingüístico y la lengua principal en la pestaña Propiedades de traducción:

Si el archivo es nuevo, querrás guardarlo aquí (el nombre del archivo debe ser el mismo que el de tu tema). A continuación, selecciona la pestaña Sources Paths y localiza la carpeta /languages/ en tu ordenador:

La pestaña final Palabras clave de las fuentes será una lista de las funciones de traducción que ha utilizado en su tema:

Conviene añadirlas aquí, aunque puede resultar difícil encontrar las palabras clave adecuadas. Para empezar, puede utilizar la siguiente lista:
__
_e
_x
_ex
_n
_nx
_n_noop
_nx_noop
translate_nooped_plural
number_format_i18n
date_i18n
esc_html__
esc_html__
esc_html_x
esc_attr__
esc_attr_e
esc_attr_x
Una vez que haga clic para confirmar, guarde los cambios y compruebe sus nuevos archivos: verá archivos MO y PO en su ordenador. Si duplicas el archivo PO, puedes añadir la extensión POT, y a partir de aquí, puedes pasar a la localización.
Su tarea inicial aquí es similar a la de un tema: primero, actualice los campos de dominio de texto y ruta de dominio del plugin en la cabecera:
/*
Nombre del Plugin: Mi plugin personalizado
URI del plugin:weglot
Descripción: Un plugin personalizado para mostrar la traducción y la i18n.
Autor: Weglot Translate
Versión: 1.0
URI del autor:weglot
Dominio del texto: my-plugin
Ruta del dominio: /idiomas/
*/
Recomendamos crear una carpeta /languages/ para la ruta del dominio y establecerla como ruta del dominio. A partir de ahí, puede cargar el dominio de texto para el plugin, pero esta vez se puede añadir la siguiente función a su código, en lugar de a través de functions.php:
load_plugin_textdomain( $domain, $abs_rel_path, $plugin_rel_path );
Sin embargo, esto sólo permite a WordPress saber que hay un archivo de traducción disponible. Para cargarlo, tendrá que envolver la función en una acción:
add_action( 'plugins_loaded', 'plugin_load_td' );function plugin_load_td() {
load_plugin_textdomain( 'my-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
Gran parte de la auditoría de cadenas será similar a la i18n de temas. El paso final es generar un archivo POT usando el mismo proceso que antes; el archivo generado terminará en el directorio de trabajo actual
A estas alturas, entenderás lo increíble que puede ser WordPress i18n. Es genial si desarrollas temas o plugins y quieres que estén listos para traducir. Sin embargo, como todas las grandes cosas, también hay algunos inconvenientes.
Por ejemplo, si un plugin contiene contenido generado por el usuario, éste no formará parte de la traducción i18n.
El proceso i18n habilitará traducciones para los elementos estáticos que codifiques, como el texto de los botones. Sin embargo, si el usuario quiere introducir una frase específica para un campo, crear etiquetas únicas y otros elementos "del lado del cliente", no podrás tenerlos en cuenta. De hecho, podría hacerlo, pero es una tarea compleja que queda fuera del alcance de este artículo.
Además, si no eres desarrollador, i18n no te ayudará a traducir tu sitio. Para ello, necesitarás un plugin, y puede que quieras pasar a la siguiente sección para encontrar una opción adecuada.
También vale la pena señalar que, aunque los plugins de traducción pueden ayudar de muchas maneras, un sitio necesitará una media de cinco plugins para ser multilingüe en su totalidad. En cambio, una solución como Weglot funciona con rapidez, es capaz de detectar todas las partes traducibles de un sitio y es compatible con casi cualquier tema y plugin. Esto, independientemente de si esos temas y plugins están preparados para traducir.
Es más, Weglot utiliza los elementos de tema, plugin y contenido principal de la página HTML frontal y los hace traducibles. Por tanto, no hay archivos .pot y .po, y el método gettext tampoco es necesario.
En términos técnicos, vamos a hablar ahora de la localización de sus contenidos: el proceso de traducción directa.
Una buena estrategia de traducción no es fácil. Es un trabajo duro y requiere mucha planificación para asegurarse de que su contenido llega a diferentes culturas, lugares e idiomas de la manera correcta. No se trata sólo del texto traducido en el cuerpo del contenido. También hay que tener en cuenta todo lo siguiente:
Si utilizas el comercio electrónico, también hay una serie de aspectos que debes tener en cuenta. Por ejemplo, debes asegurarte de que la pantalla de pago ofrezca una traducción completa de todos los elementos, especialmente los campos de moneda e impuestos:

Además, la información sobre el envío es un aspecto clave que debe traducirse íntegramente y con calidad. Querrá que los clientes no tengan excusa para pulsar el botón Comprar, independientemente del idioma que utilicen.

Weglot realiza gran parte del trabajo pesado en tu nombre. Es un valioso aliado para tus esfuerzos de i18n en WordPress porque detecta todos los aspectos de tu sitio que puedes traducir. A partir de ahí, llevará a cabo una primera capa de traducción automática por ti:

Esto puede ser suficiente para tus necesidades, pero Weglot puede ayudarte a ir un paso más allá. Puedes incorporar traducciones profesionales, editar las traducciones existentes y mucho más. Esto te da toda la flexibilidad que necesitas para llevar a cabo una localización completa de tu sitio.
WordPress está disponible en casi todo el mundo. Como tal, los temas y plugins internacionalizados ayudarán a la hora de traducirlos a otros idiomas. WordPress i18n es un engranaje vital para los desarrolladores que trabajan con la plataforma.
Si puedes internacionalizar tu tema para ayudar a los usuarios a crear traducciones sin modificar el código fuente, estás en una buena posición. Sin embargo, que apliques conceptos de i18n no significa que tu tema o plugin esté traducido.
Para llevar a cabo este paso, querrás confiar en una solución como Weglot. Es compatible con un montón de plataformas y tecnologías diferentes y funciona fantásticamente con WordPress. Una vez completada la parte i18n de tu flujo de trabajo, puedes recurrir a Weglot para generar traducciones precisas y fáciles de implementar en casi cualquier idioma.
Para comprobarlo por ti mismo, Weglot ofrece una prueba gratuita de 10 días sin obligación de compra.