En mi publicación anterior repasé los problemas que estaba enfrentando al intentar hacer un plan para configurar un sitio multi idioma únicamente con el núcleo de WordPress. Dado que no me gustó la experiencia administrativa de seguir dicha ejecución, tuve que comenzar a buscar una soluciones alternativas usando un plugin disponible en el ecosistema de WordPress.
En los últimos proyectos que he trabajado usualmente me han brindado un conjunto de “plugins” (extensiones) para arrancar el proceso de desarrollo y dado que esto era parte de de lo que el cliente pagó (como parte de las negociaciones con las agencias con las que he trabajado), nunca tuve la necesidad de investigar opciones disponibles.
Esto es lo que logré encontrar tras una búsqueda rápida:
- WeGlot: Versión gratuita para sitios pequeños y con una traducción, de lo contrario hay que empezar a pagar. Dado que estamos intentando lograr esto sin “gastos extra” voy a descartar esta opción por el momento. Podrá ser efectiva para manejar costos como mencionan pero ahora estoy tratando de que solo se vea afectado mi tiempo. Tal vez en un futuro evalue esta opción.
- WPML: Este lo he usado en varios proyectos, pero usualmente ya me lo han brindado como parte del código del proyecto. Siempre pensé que era gratuito y fue una sorpresa darme cuenta de que no lo es y como parece ser la moda, tiene una subscripción anual. También tiene traducciones automáticas comprando créditos así que tal vez la evalue en un futuro.
- Translate Press: Similar a WPML, es una subscripción anual para continuar recibiendo actualizaciones. Menciona traducciones automáticas pero no indica como funciona.
- Polylang: Este es gratuito con un conjunto limitado de características, pero viendo esta lista parece ser la opción que podemos utilizar.
A pesar de que podría ser útil en otros escenarios, no crearé una tabla comparativa de características, en su mayor parte porque estoy buscando algo gratuito, Así que la opción por ahora es Polylang.
El proceso para configurarlo es bastante directo. Instale el plugin desde la página administrativa, configure el idioma por defecto y luego comience a agregar traducciones para cada página.
Sin embargo, hay una serie de inconvenientes con la versión gratuita:
- Duplicado de Categories y Etiquetas: Si tengo una etiqueta digamos “Lunes” no puedo tan solo traducir su nombre y mantener la misma categoría compartida entre los idiomas. De hecho tengo que crear una categoría en inglés “Mondays” y luego tengo que etiquetar en cada idioma a la etiqueta duplicada. Si agrego más idiomas entonces estoy agregando (en mi opinión) contenido innecesario que tan solo ensucia la interfaz administrativa.
- No puedo reutilizar el slug para diferentes idiomas: Para ser justos, esto estaba descrito en la página de características. Pero se siete como algo forzado que esta característica tan básica y necesaria este en la versión pro. El problema aquí es que la sección del blog. Blog se dice igual en español e inglés, así que no puedo reutilizar rl slug
blog
para mostrar la lista de posts. Es por eso que usoblog
para inglés yel-blog
para español. - Más trabajo para crear una traducción: A diferencia de otros sistemas (y tal vez esto sea culpa de Guttember, no estoy seguro todavía) básicamente debo replicar toda la estructura de forma manual. Así que invertir este tiempo extra es molesto.
- Soporte para ACF, pero no en la versión gratuita: Bueno, no sé si voy a utilizar ACF en este sitio. Básicamente, Advanced Custom fields es un plugin que permite agregar contenido estructurado en el contenido. Es un plugin bastante “chiva” que hace que WordPress se parezca más a Drupal. Tienen una versión gratuita y una versión pro. De caulquier manera, parece que Polylang requiere pago para activar esta funcionalidad.
Al final, con esto configurato fui capaz de crear este blog. Los menus fueron sencillos de configurar. Creo que me encontraré con otros problemas cuando empiece a hacer cosas más complicadas. Sin embargo, es algo triste (y puede deberse a mi falta de familiaridad con el ecosistema) ver que, de paquete, sitios multi idioma no son sencillos de configurar y que de hecho hay que presupuestar costos para ver que va a funcionar. Dejando eso de lado, como mencioné en el título de este post, puedo vivir con eso por el momento. Estoy feliz porque sé que voy a poder hacer esto en Drupal como parte del proceso de instalación y no voy a tener que generar contenido duplicado.