Este es el título de la ponencia que hice en la WordCamp Barcelona 2023. Mi objetivo durante la charla era dar un punto de partida a todas las personas que estuvieran considerando crear un sitio web multilingüe con WordPress pero no tuvieran muy claro por dónde empezar ni todo lo que implica.
Puedes descargar las diapositivas de la charla (en catalán), o bien ver la presentación en WordPress.tv (también en catalán). ¡Espero que te gusten! Si, por el contrario, prefieres leer el contenido, lo tienes a continuación.
Introducción
Como he dicho anteriormente, mi objetivo era ayudar a aquellas personas que tienen un sitio web y se plantean añadir idiomas adicionales o que bien dudan si hacerlo multilingüe o no. Utilizando WordPress, por supuesto.
La primera pregunta que nos podemos hacer es si, hoy en día, tienen sentido los sitios web multilingües. ¿El motivo de la pregunta? La existencia de herramientas como Google que nos permiten traducir el sitio web de forma automática a prácticamente cualquier idioma. Evidentemente, esto ahorra costes y trabajo, pero… ¿Es lo que queremos?
El principal problema que tenemos si optamos por esta opción es que perdemos el control del mensaje que recibe nuestro cliente o target. No solo eso, sino que las herramientas de traducción automática, aunque hacen un gran trabajo, no son perfectas. Más de una vez hay errores de traducción. Y, aun si no los hay, no podemos elegir las palabras más adecuadas para comunicarnos con el receptor del mensaje.
Por lo tanto, aunque pienso que, por regla general, nos interesará controlar el mensaje, cada uno es libre de hacer lo que crea más adecuado en su contexto. Evidentemente, lo que diré a continuación deja de tener sentido si queremos que el sitio web se traduzca automáticamente.
Primer problema: ¡WordPress no es multilingüe!
Vamos a asumir que queremos un sitio web multilingüe donde controlemos el mensaje que llega a nuestro target. Y que tenemos un sitio web (o queremos tenerlo) en WordPress. La primera dificultad que encontramos es que el núcleo de WordPress solo permite tener un solo idioma. Es decir, podemos elegir qué idioma queremos de entre todos los disponibles, y podemos tener diferentes de ellos instalados que permitan cambiar el idioma del back-end según la configuración de cada usuario, pero el sitio web en sí tendrá uno solo.
¿Podemos solucionarlo? Sí. ¿Cómo? Con plugins (o extensiones) de terceros.
Solución: Plugins para crear sitios web multilingües
La siguiente decisión que debemos tomar es qué plugin elegir. Los más conocidos son los siguientes:
Lo que ocurre es que muchos de estos plugins (WPML, WeGlot y MultilingualPress) son de pago y no tienen una versión gratuita en el directorio de WordPress, o la versión gratuita es bastante limitada. Estoy asumiendo que, cuando se empieza, los recursos son limitados, y por tanto, interesa optar por versiones gratuitas de plugins aunque tengan sus limitaciones.
Por lo tanto, de todos estos, nos quedan dos. Polylang y TranslatePress.
Polylang vs TranslatePress
Aunque los dos plugins nos permiten llegar al mismo resultado, también tienen una serie de diferencias. A continuación examinaremos los puntos en común y entraremos en detalle en las diferencias.
Similitudes
Como puntos en común principales, Polylang y TranslatePress tienen lo siguiente:
- Siguen un modelo freemium. Es decir, hay una versión disponible de forma gratuita en el repositorio de WordPress con una serie de funcionalidades básicas; para funcionalidades más avanzadas, se requiere optar por la versión de pago.
- Ambos permiten tener un sitio web en varios idiomas de forma gratuita.
Diferencias
Aquí es donde el tema comienza a ser interesante. Los dos plugins son muy diferentes entre sí, y optar por uno u otro dependerá de las necesidades que tengamos. Empecemos.
Número de idiomas
La versión gratuita de TranslatePress solo nos permite tener un idioma adicional. En cambio, Polylang no pone límites en el número de idiomas en su versión gratuita.
Idioma base
Se puede decir que los dos plugins funcionan con un idioma base, o idioma por defecto. Sin embargo, las implicaciones de esto son completamente diferentes en ambos casos.
Polylang permite generar contenido en cualquiera de los idiomas que tengamos instalados, y no tiene ninguna limitación al respecto. Si tenemos el sitio web en catalán, español e inglés, podemos crear un contenido que esté únicamente en inglés y que no tenga traducción, aunque el idioma base sea el español (ejemplo real de este sitio web). Esto nos da mucha flexibilidad y libertad a la hora de crear contenido.
Con TranslatePress la historia cambia. Es necesario crear el contenido en el idioma base, y luego se puede agregar, si se desea, la traducción. No se puede crear contenido que no esté en el idioma base. El motivo es que, internamente, las traducciones de TranslatePress funcionan como un diccionario. Si tenemos el sitio web en inglés y español, y el inglés es el idioma base, lo que hará TranslatePress cuando accedamos al contenido en español es buscar la traducción de cada uno de los textos, partiendo del inglés. Evidentemente, si no hay versión en inglés, no podemos buscar la traducción.
Una consecuencia de esto es que si cambiamos los textos en el idioma base en TranslatePress, se pierde también la traducción. Se puede recuperar fácilmente porque sigue guardada, pero es necesario volver a agregarla (aunque sea reutilizando la existente) manualmente.
El precio de la flexibilidad
La flexibilidad de Polylang no es «gratuita». A nivel de backend (o de gestión), abruma mucho. Cada vez que creamos un contenido, por ejemplo una página o una entrada del blog, nos permite asignarle un idioma. Si tenemos tres idiomas, y lo generamos en esos tres, significa que veremos tres páginas o tres entradas de blog. Por lo tanto, el volumen de contenido crece rápidamente.
En cambio, en el caso de TranslatePress, solo vemos una página o una entrada de blog, independientemente de los idiomas adicionales que tengamos (aprovecho para recordar que la versión gratuita solo permite un idioma extra). Por lo tanto, a nivel de gestión es mucho más limpio.
Hay que tener en cuenta, sin embargo, que a la hora de decidirse por uno u otro plugin, deberían pesar mucho más las limitaciones a nivel de cambios de textos, por ejemplo, que esto.
Maquetación del contenido
Otra consecuencia de estas diferentes formas de funcionar es a nivel de maquetación del contenido. En el caso de Polylang, como ya mencioné, un contenido para el blog en tres idiomas es, en realidad, tres entradas. Esto hace que a la hora de crear y maquetar el contenido, tengamos libertad completa y absoluta. Incluso podríamos escribir contenido diferente en cada idioma y vincularlo como si fuera el mismo.
En cambio, TranslatePress nos obliga a respetar la maquetación y estructura del texto, aunque permite cambiar las imágenes en función del idioma.
Metadatos de las imágenes y SEO
Polylang nos ofrece la opción de traducir los metadatos de las imágenes. Los metadatos son información relativa a la imagen que puede ser útil, por ejemplo, para personas con diversidad funcional o si la página tarda en cargar. Por ejemplo, es una buena práctica que todas las imágenes tengan un atributo «alt» porque es la información que se mostrará si la imagen no carga o si la persona es ciega. Además, la inclusión de estos metadatos puede ayudar a posicionar la web y las imágenes en los buscadores. Por tanto, es bueno traducir estos metadatos (aunque es un rollo y una tarea laboriosa, no os engañaré).
En cuanto al SEO, aunque en un principio Polylang no incluye ninguna herramienta para ayudar en el posicionamiento, se integra perfectamente con Yoast SEO, y la versión gratuita de ambos plugins nos permite configurar palabras clave, previsualizaciones, etc. para cada idioma.
TranslatePress, por otro lado, no ofrece ninguna de estas opciones en su versión gratuita. No obstante, si se opta por su versión de pago, sí las ofrece.
Creación de un e-commerce con WooCommerce
Y aquí es donde cambia la cosa. Si con lo que hemos visto hasta ahora parecía que la versión gratuita de Polylang ofrecía más funcionalidades, aquí cambian las tornas. Con Polylang, si queremos tener una tienda en varios idiomas mediante WooCommerce, hay que optar por la versión de pago.
En cambio, la versión gratuita de TranslatePress permitirá traducir sin problemas toda la información de los productos y los correos que se envían.
Incorporación de herramientas de traducción automática
La versión gratuita de TranslatePress permite introducir una clave API para poder utilizar herramientas automáticas de traducción como DeepL o Google Translate. Eso sí, habrá que pagar por el uso que se haga de estas herramientas, pero es un coste externo a TranslatePress. Con el fin de minimizar este coste, TranslatePress descarga la traducción solo una vez y luego permite editarla.
Polylang no ofrece este tipo de integración.
Resumen de TranslatePress vs Polylang
Aunque yo tengo mis preferencias personales, creo que la decisión de utilizar un plugin u otro depende más de las necesidades del proyecto. Suponiendo que no se dispone de presupuesto para invertir en las versiones de pago, a modo de resumen se podrían hacer las siguientes recomendaciones:
Característica | Plugin |
---|---|
Más de un idioma adicional (es decir, mínimo 3 idiomas contando el idioma base) | Polylang |
E-commerce (WooCommerce) | TranslatePress |
Flexibilidad en la maquetación del contenido independientemente del idioma | Polylang |
SEO y metadatos de las imágenes | Polylang |
Interfaz más sencilla / agradable | TranslatePress |
Integración de herramientas de traducción automática | TranslatePress |
Compatibilidad con otros plugins y temas
Otro aspecto a considerar es la compatibilidad de Polylang y TranslatePress con otros plugins y temas. En general, suelen funcionar bien, pero hay algunas cosas que hay que tener en cuenta. Hay que tener en cuenta que lo que explicaré a continuación se basa en mi propia experiencia y no he realizado comprobaciones exhaustivas. Por tanto, podría ser que en otras situaciones los resultados sean diferentes.
Polylang y plugins
Como he mencionado anteriormente, en general no he tenido muchos problemas al utilizar Polylang con otros plugins. Sin embargo, la excepción más notable es el caso de WP-Portfolio. En su momento, investigué mucho y parecía ser uno de los mejores plugins para crear portafolios (de cualquier tipo) en el sitio web.
Sin embargo, con un sitio web multilingüe, es un desastre. No filtra correctamente según el idioma y se mezclan los proyectos en diferentes idiomas. Aunque encontré una solución temporal, decidí renunciar a utilizarlo porque no era la forma correcta de hacer las cosas, y a largo plazo habría causado problemas.
Polylang y temas
Personalmente, me gustan mucho los temas genéricos como Astra, OceanWP, Kadence y GeneratePress, que son muy configurables desde el back-end de WordPress sin necesidad de tocar código, y que sirven para cualquier tipo de web.
Cuando estaba creando esta web, en un primer momento decidí utilizar OceanWP. Mi sorpresa fue enorme cuando vi un aumento muy grande del tiempo de carga de la web en el momento en que le añadí Polylang. Lamentablemenete me vi obligada a cambiar de tema.
Con el resto de temas, los tiempos eran mucho más razonables. En la tabla que aparece a continuación se ven los tiempos, obtenidos con el plugin CodeProfiler. Los plugins probados en cada caso eran exactamente los mismos, lo único que cambia es el tema.
Tema | Tiempo de carga |
---|---|
GeneratePress (+Polylang) | 0,2989 s |
Kadence (+Polylang) | 0,7835 s |
Astra (+Polylang) | 1,1736 s |
OceanWP (+Polylang) | 3,1888 s |
HelloElementor (+Polylang) | 0,2680 s |
TranslatePress y temas
Al tener que hacer esta ponencia en la WordCamp BCN 2023, decidí hacer pruebas también con TranslatePress y los temas mencionados anteriormente. A diferencia de Polylang, no hubo problemas significativos con ninguno de ellos y, en general, los tiempos fueron mejores. De hecho, las diferencias entre los temas son mucho menores que con Polylang.
Cabe mencionar, sin embargo, que las condiciones de prueba no fueron las mismas que en el caso de Polylang, ya que las realicé en otro sitio web, por lo que no puedo afirmar categóricamente que TranslatePress sea más rápido.
Tema | Tiempo de carga |
---|---|
GeneratePress (+TranslatePress) | 0,3648 s |
Kadence (+TranslatePress) | 0,4052 s |
OceanWP (+TranslatePress) | 0,3960 s |
Astra (+TranslatePress) | 0,4306 s |
HelloElementor (+TranslatePress) | 0,3922 s |
TranslatePress y plugins
Mi experiencia con TranslatePress es mucho más limitada que con Polylang. No he encontrado problemas con ningún plugin, pero por otro lado tampoco es demasiado significativo, ya que solo he trabajado con un sitio web corporativo que no tenía demasiadas complicaciones.
El proceso de traducción
Ahora que hemos visto los detalles de los dos plugins gratuitos, me gustaría compartir el proceso de traducción que sigo cuando quiero publicar contenido en este sitio web, que está en catalán, español e inglés. Tened en cuenta que este proceso se basa en el uso de Polylang, y que no siempre sigo al 100% el orden mencionado (aunque sí realizo todas las tareas descritas).
- Redacción del texto en un Google Doc, en inglés. Comienzo por la versión en inglés porque me resulta más fácil empezar en inglés y luego lograr que el texto suene natural en catalán y español, que al revés.
- Traducción del texto al catalán y español mediante Google Translate. Como Google Translate está integrado en Google Docs, obtengo la traducción con un par de clics.
- Revisión manual de las traducciones, para asegurarme de que el mensaje se transmita correctamente, no haya errores y suene natural.
- Maquetación del texto en uno de los idiomas (por ejemplo: inglés), y búsqueda de fotos.
- Traducción de los metadatos de las imágenes seleccionadas. Esta parte es muy aburrida y pesada, no os voy a mentir.
- Duplicación del contenido maquetado con un plugin, como por ejemplo Yoast Duplicate Post. De esta manera tengo la maquetación hecha.
- Cambio del idioma de este duplicado.
- Sustitución del texto por la traducción.
- Sustitución de las imágenes. Aquí realmente no cambio la imagen, sino que me aseguro de que se referencien los metadatos adecuados según el idioma.
- Enlazado de las traducciones, para garantizar que si un usuario desea cambiar el idioma del sitio web, lo lleve a la versión correcta del texto.
Evidentemente, los pasos 6-9 se deben repetir para cada idioma. Por si no queda claro, como se puede ver es casi duplicar o triplicar el trabajo que supone tener un sitio web en un solo idioma.
Por otro lado, yo normalmente opto por publicar los contenidos cuando los tengo en los tres idiomas. Con Polylang, sin embargo, no hay nada que impida publicarlos primero en un idioma y luego en los demás. Con la versión gratuita de TranslatePress esto no es posible. Cuando se publica, se publica todo.
Herramientas del políglota
A continuación quiero compartir con vosotros una serie de herramientas que os pueden ser útiles si decidís tener un sitio web multilingüe.
- Plugin de traducción. Como hemos visto, si queremos un sitio web multilingüe en WordPress, debemos empezar eligiendo un plugin de traducción.
- Traductor. Además de Google Translate, tenemos otras opciones como DeepL, ChatGPT, Apertium, etc.
- Duplicador de contenidos, como Yoast Duplicate Post.
- LocoTranslate. De esta herramienta no he hablado, y también es muy útil. Vale la pena comentarla con más detalle, cosa que haré a continuación.
Y sobre todo, lo más importante… ¡Hace falta mucha paciencia y dedicación!
LocoTranslate
LocoTranslate es un plugin que permite editar las traducciones de los plugins y los temas. Es muy útil cuando nos encontramos con plugins o temas que no están traducidos en el idioma de nuestro sitio web, o que lo están pero no nos gusta la traducción realizada. Además, tiene la ventaja de no sobrescribir las traducciones existentes, sino que funciona con un sistema de prioridades:
- Primero verifica si hay una traducción realizada por nosotros del texto en cuestión. En caso de que exista, la utiliza.
- Si no existe, busca la traducción propia del plugin o tema.
Por lo tanto, aparte de beneficiarnos de las traducciones existentes, cuando se actualicen las traducciones del complemento o tema, no afectará a las traducciones que hayamos realizado. Si se editara directamente la traducción del plugin o tema, se perdería en el momento en que se actualizara la traducción «oficial».
Conclusiones
Viendo todo esto, ¿vale la pena tener un sitio web multilingüe? Pues como todo en esta vida (o casi todo), depende… A continuación, hago una valoración de diferentes aspectos que se deben tener en cuenta.
En primer lugar, se requiere una gran dedicación. Como ya he mencionado, un sitio web multilingüe implica mucho trabajo. Aunque la idea sobre la que escribir solo se piensa una vez, la redacción y maquetación de los textos suponen casi multiplicar el tiempo de dedicación de un sitio web monolingüe por el número de idiomas.
Y aquí es donde entra en juego el factor que considero clave: la MOTIVACIÓN. Es necesario tener muy claro el por qué queremos un sitio web multilingüe. Si no lo tenemos claro, es probable que perdamos las ganas a medio proceso. La motivación puede ser económica, de marketing, intrínseca o personal, entre otras.
En mi caso, decidí tener un sitio web en tres idiomas principalmente por un motivo personal. El catalán es mi lengua materna y sentiría que no me representa si no lo tuviera en este idioma. Lo tengo en castellano porque vivo en una región bilingüe y me permite llegar no solo al resto de España, sino también a Latinoamérica. Por último, considero importante tenerlo en inglés, ya que no solo me abre potencialmente al mercado, sino que también dice muchas cosas sobre mí:
- Mi compromiso con los idiomas
- Mi nivel o capacidad para hablarlos
- Es un reflejo de mi dedicación
Otro aspecto a considerar es que no es necesario traducirlo todo, sobre todo si se utiliza la versión gratuita de Polylang, que no nos obliga a nada. Una forma «fácil» de tener un sitio web multilingüe es traducir la información de las páginas o la información estática (sobre nosotros, página principal, servicios, contacto, etc.) y tener el blog en un solo idioma. De esta manera, se realiza el trabajo de traducción al principio y ya está.
Finalmente, también hay que recordar que aunque podemos comenzar con un sitio web multilingüe sin tener que pagar por los complementos de traducción, a medio-largo plazo es posible que esta situación cambie y, por lo tanto, haya un posible coste económico adicional. Por ejemplo, si optamos por TranslatePress, si en algún momento queremos agregar un tercer idioma, deberemos optar por la versión de pago del complemento. Lo mismo ocurre si utilizamos Polylang y queremos agregar una tienda.