Conseguir un sitio multilingüe ha sido uno de los problemas históricos de WordPress. En el principio de los tiempos se hacía diferenciando los idiomas por categorías, luego empezaron a aparecer plugins; por fin apareció uno completo, fiable y estable, y al poco tiempo se volvió de pago (aunque no dejó de ser una buena opción). La alternativa siempre ha sido crear una instalación independiente para cada idioma, lo cual solía ser un infierno a nivel de mantenimiento; desde la versión 3.0 de WordPress y la integración estable de la estructura multisite esta posibilidad se democratizó y dejó de crear héroes. Tras leer Build a multilingual site with WordPress, y haber probado previamente las opciones que acabo de comentar, he llegado a la conclusión de que la opción multisite para conseguir un sitio multilingüe es ventajosa.
A continuación enumero y desarrollo todos los pasos necesarios para, partiendo de una instalación convencional de WordPress, conseguir un sitio multilingüe.
- Convertir una instalación convencional de WordPress en un multisite. Una vez hecho esto, hay que crear cada uno de los sitios en My Sites :: Network Admin :: Sites.
- Configurar el idioma para cada sitio creado del multisite, para que los paneles de administración estén en el idioma correcto. Para ello hay que conseguir los archivos de regionalización
.mo
y.po
correspondientes; podemos encontrarlos dentro del paquete WordPress de dicho idioma, en la carpetawp-content/languages/
, así que basta descargar el paquete de wordpress.org. Luego los subimos a nuestro servidor, a la carpetawp-content/languages
y en cada sitio de la red, seleccionamos el idioma deseado en Settings :: General. - Instalar el plugin Multisite Language Switcher. El plugin hay que configurarlo en cada uno de los sitios. Esto puedo parecer tedioso pero en realidad proporciona flexibilidad a costa de un trabajo extra relativamente escaso.El selector de idiomas se puede incorporar a la página mediante un widget o mediante el siguiente código, que permite mayor personalización:
if ( function_exists( 'the_msls' )) the_msls();
Para relacionar contenido –páginas, posts, e incluso las categorías y las etiquetas bajo las que los clasificamos– entre los diferentes sitios, de manera que se pueda saltar entre diferentes traducciones del mismo contenido, el plugin añade una columna en las listas de posts, de páginas y de categorías que nos permitirá hacerlo de manera sencilla e intuitiva.
- Regionalizar un tema. Lo preparamos para que sea traducible sencillamente mediante la edición de un archivo que contenga las cadenas a traducir.
- Crear un child theme en WordPress. Este paso no es extrictamente necesario, pero puede ser muy útil para aligerar el mantenimiento de los diferentes sitios. Al ser cada sitio una traducción, es lógico pensar que todos usarán el mismo theme, aunque quizás necesitemos mínimas diferencias entre ellos (colores por motivos culturales, archivos de configuración por motivos de programación…). Un parent theme y child themes para cada sitio nos permitirá gestionar estas diferencias sin necesidad de duplicar temas, código y mantenimiento.