Guía

Qué es WordPress i18n y por qué es importante: Esto es todo lo que necesita saber

Merve Alsan
Redactado por
Merve Alsan
Merve Alsan
Redactado por
Merve Alsan
Revisado
Revisado por
Qué es WordPress i18n y por qué es importante: Esto es todo lo que necesita saber

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.

Acrónimo de 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.

Conceptos básicos del proceso de localización i18n

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:

  • Añada una etiqueta 'text domain' a los encabezados de sus páginas.
  • Cargar un archivo de idioma utilizando algunas funciones dedicadas de WordPress.
  • 'Marcar' cadenas de texto utilizando funciones 'gettext' (hablaremos de esto en unos momentos).
  • Genere un archivo Portable Object Template(POT) para su tema o plugin e inclúyalo.
  • Es posible que desee crear un archivo Cascading StyleSheets (CSS) para el habla de derecha a izquierda (RTL).

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.

Breve introducción a la herramienta gettext

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:

  • ArchivosPOT. Esta es la plantilla para sus esfuerzos i18n, y es lo que el traductor utiliza para poner en marcha su parte del proceso.
  • Ficheros de objetos portátiles (PO). A efectos prácticos, no hay ninguna diferencia real entre los archivos POT y PO. Durante la traducción, el fichero PO contendrá cadenas de texto tanto en la lengua nativa como en la traducida.
  • Archivos Machine Object (MO). Considere los archivos MO como la versión amigable para el código WordPress de un archivo PO. Vivirán dentro del directorio del tema o plugin de su instalación y servirán las traducciones cuando WordPress las necesite.

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.

Antes de empezar a llevar a cabo el proceso i18n de WordPress

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:

  • Haz una copia de seguridad completa de tu sitio. Esto debería ser un hecho porque una copia de seguridad completa es la única manera de proteger su sitio si necesita empezar de nuevo.
  • Realice una auditoría de plugins. Es una buena idea echar un vistazo a todos los plugins que tiene su sitio, y considerar dos preguntas: ¿Hay alguna actualización disponible y necesito el plugin?

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.

Cómo llevar a cabo el proceso i18n de WordPress con sus temas y plugins

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.

Cómo crear un tema de WordPress traducible

El primer paso es actualizar la cabecera del tema para incluir un dominio de texto y una ruta de dominio. En pocas palabras:

  • El dominio de texto ayuda a WordPress a entender qué cadenas 'pertenecen' al tema. Debe coincidir con el slug de tu tema (y plugin).
  • La ruta del dominio es la carpeta dentro de los archivos de tu tema donde 'vivirán' los archivos de traducción. El directorio /languages/ es el nombre típico y por defecto, pero puedes usar otro si lo necesitas.

Para ello, basta con añadir unas palabras al archivo de cabecera del tema:

/*
Nombre del Tema: Mi Tema Personalizado
Autor: Weglot Translate
Text Dominio: my-theme
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:

  • __(). Incluye un guión bajo doble (o 'dunder') y devuelve una cadena traducida.
  • _e(). Esto hace eco (o imprime) la cadena traducida tal como se presenta.

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:

Crear un nuevo archivo en Poedit

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

Extraer fuentes en Poedit

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:

Pestaña de propiedades de traducción en Poedit

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:

Ruta de fuentes en Poedit

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

Palabras clave de las fuentes en Poedit

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.

Cómo crear un plugin de WordPress traducible

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: My Custom Plugin
Plugin URI: https://weglot.com
Descripción: Un plugin personalizado para mostrar traducción e i18n.
Autor: Weglot Translate
Versión: 1.0
URI del autor: https://weglot.com
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

Cuáles son las limitaciones de WordPress i18n


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 hay que tener en cuenta 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 rápidamente, detecta todas las partes traducibles de un sitio y es compatible con casi todos los temas y plugins. Todo ello con independencia de si esos temas y plugins están preparados para traducir.

Además, Weglot utiliza los elementos de tema, plugin y contenido principal de la página HTML principal y los hace traducibles. Por lo tanto, no hay archivos .pot y .po, y el método gettext tampoco es necesario.

Cómo Weglot es compatible con WordPress i18n

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:

  • Los bonitos permalinks que usas.
  • Metadatos de entradas y páginas.
  • Medios, como imágenes, vídeos, GIF, iconos, etc., incluyendo también los metadatos asociados.

Si utiliza el comercio electrónico, también hay que tener en cuenta muchas cosas. Por ejemplo, debes asegurarte de que la pantalla de pago ofrezca una traducción completa de todos los elementos, especialmente los campos de divisa e impuestos:

Cámara Nikon - Versión francesa

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.

Página de pago de productos Nikon

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:

Lista de traducciones en un sitio web WordPress

Esto puede ser suficiente para sus necesidades, pero Weglot puede ayudarle a ir un paso más allá. Podrá incorporar traducciones profesionales, editar las traducciones existentes y mucho más. Esto le da toda la flexibilidad que necesita para llevar a cabo una localización completa de su sitio.

Conclusión

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 muchas plataformas y tecnologías diferentes y funciona de maravilla 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.

En esta guía, veremos lo siguiente:

Más información sobre cómo trabajar con Weglot

Probar gratis