Hacer una web multi-idioma sin plugins es posible. El gestor de contenidos Joomla está pensado para eso.
Cuando creas contenidos o cuando añades extensiones de terceros, todo está pensado para que hagas una web en varios idiomas sin conflictos.
Existen múltiples formas de realizar un sitio web en varios idiomas con Joomla. En este artículo explico la forma nativa, es decir, sin el uso de extensiones de terceros, utilizando las herramientas que ya tenemos disponibles justo después de instalar este gestor de contenidos web.
¿Cuánto cuesta tener una web en varios idiomas?
Debemos ser conscientes que hacer un sitio web en varios idiomas supone un esfuerzo extra. No es exactamente el doble porque hay elementos comunes, como el diseño y las funcionalidades, pero en cuanto a textos o contenidos sí lo es.
El precio depende básicamente de dos factores: el número de idiomas y la cantidad de traducciones que haya que hacer.
Preparar la web es bastante sencillo como te enseño a continuación.
Si lo que quieres es que tu sitio se traduzca a otros idiomas con herramientas automáticas, tienes extensiones en el JED para realizarlo. En este artículo te hablo de tener un sitio en el que puedes elegir qué tipos de contenidos quieres mostrar en cada idioma o incluso localización.
Sigue estos pasos para crear tu web en varios idiomas
Desde el propio proceso de instalación de Joomla puedes configurar un sitio web en varios idiomas.
También puedes hacerlo luego, es decir, instalarlo en uno solo (inglés por defecto) y, una vez tienes la web funcionando, añades el resto de idiomas. Estos son los pasos que tienes que seguir, de forma resumida, luego te los explico en detalle:
- Instala y configura todos los idiomas que necesitas.
- Activa y configura el plugin de filtro por idioma.
- Traduce los contenidos manteniéndolos asociados entre ellos siempre que sea posible: menús, categorías, artículos y módulos.
- Activa y configura el módulo de selección de idioma.
Instala y configura idiomas
Necesitas instalar los idiomas del sistema, idiomas a los que quieres que tu contenido esté traducido.
Para ello ve en el menú principal a Sistema > Gestionar > Idiomas. Aquí puedes ver las traducciones de Joomla instaladas para la parte pública o sitio. Tienes un selector para ver los idiomas instalados para la administración.
Si no están todos los que necesitas, tienes que instalarlos. Pincha sobre el botón "Instalar idiomas" y obtienes un listado de todos los disponibles oficialmente. Seleccionamos los que quieres y pulsa sobre el botón "Instalar".
Si no aparecen en el listado todos los que necesitas, es posible que Joomla todavía no esté traducido a dicho idioma. También es posible que todavía no sea una traducción oficialmente reconocida, por lo que puedes hacer una búsqueda para tratar de instalar dicho idioma como si fuese una extensión más.
Una vez tengas instaladas todas las traducciones en las que quieres que esté disponible tu sitio web ve a Sistema > Gestionar > Idiomas del contenido.
Aquí debes dar de alta y configurar todos los idiomas necesarios a los que quieres traducir tus contenidos.
Pincha sobre el botón "Nuevo" y cubre el formulario con los siguientes campos:
- Título: Normalmente aquí pones el nombre del idioma en inglés y su etiqueta entre paréntesis, por ejemplo: Spanish (es-ES), English (en-GB), French (fr-FR), Galician (gl-ES), etc.
- Título nativo: Aquí el nombre del idioma en su propio lenguaje, por ejemplo: Español, English, François, Galego, etc.
- Etiqueta del idioma: es la misma etiqueta que usaste en el primer campo entre paréntesis. Es la que usa el idioma cuando lo instalas.
- Código URL del idioma: es el código que se añade a la URL del sitio, por ejemplo: dominio.com/es (con SEF habilitado).
- Prefijo de la imagen: es el que te permite localizar el archivo de imagen de la bandera.
Hay otro campo interesante, el nombre o título del sitio en el idioma que estás configurando, por si también tienes que traducirlo.
Activa el plugin de filtro por idioma
Activa el plugin "Sistema - Filtrar idiomas" (languagefilter).
Además de activarlo, tienes varias opciones interesantes que puedes adaptar a las necesidades de tu sitio web:
- Selecciona el idioma para visitantes nuevos: puedes mostrar siempre el idioma predeterminado del sitio o que el sistema detecte las preferencias del navegador del visitante.
Para el primer caso, el idioma predeterminado del sitio, lo eliges ordenando los idiomas disponibles para el contenido.
En el segundo caso, si no se detecta una preferencia del navegador del usuario o no coincide con ninguno de los idiomas de tu web, se establecerá el predeterminado. - Asociación de elementos: esta opción te permite activar la asociación entre elementos de distintos idiomas, es decir, especificar qué contenidos son la traducción de los otros. De esta manera la web sabe llevar al contenido traducido que corresponda cuando un navegante cambia de idioma.
- Eliminar el código URL del idioma: te permite eliminar el sufijo del idioma predeterminado de la URL, es decir, si tu idioma predeterminado es el español, que no aparezca midominio.com/es, sino midominio.com a secas.
Traduce los contenidos a otros idiomas
Uno de los pasos lógicos e imprescindibles, a la vez que trabajosos, es la traducción del contenido. Te enseño cómo y dónde traduces cada tipo de contenido empezando por los artículos.
Traduce tus artículos
Cuando creas un artículo tienes la posibilidad de especificar el idioma en el que está escrito.
Cuando tienes un artículo de contenido por cada idioma del sitio ya puedes vincularlos.
Traduce tus categorías
La traducción de las categorías normalmente se recomienda hacerla creando una categoría padre con el nombre del idioma y como subcategorías las que tendría el sitio en un solo idioma. Ejemplo:
- Español
- Categoría 1
- Categoría 2
- English
- Category 1
- Category 2
Estas categorías llevan asignado el idioma que le corresponda en cada caso. Es un buen método de organización ya que es muy claro. Permite además utilizar las descripciones de las categorías en cada idioma.
Pero no tiene por qué ser estrictamente así. Aquí planteo diversas opciones.
Una muy similar es la de crear las categorías específicas para cada tipo de contenido e idioma pero sin un padre que sea el nombre del idioma. Ejemplo:
- Categoría 1
- Categoría 2
- Category 1
- Category 2
También está la opción de tener categorías en las que los artículos de diferentes idiomas encajan en cada una de ellas por temática, por ejemplo. Puede ser tal que así:
- Categoría 1
- Categoría 2
En este caso el idioma asignado a cada categoría es "Todos". No puedes mostrar la descripción de cada categoría porque no se pueden traducir con este método.
Otra opción es una híbrida, es decir, tener categorías según para qué tipo de contenido e idioma.
- Categoría 1
- Category 1
- Blog
Esta opción es muy útil si, por ejemplo, quieres que tu categoría "Blog" muestre los artículos en el idioma en el que fueron escritos, independientemente del idioma elegido por el navegante. Para ello crea dicha categoría Blog asignándole el idioma Todos.
De esta manera, si alguien crea un artículo para el blog y sus diferentes traducciones, a cada artículo se le asigna el idioma que corresponde. Por el contrario, si no se dispone de su traducción, se le asigna el idioma Todos. En cualquier caso, estos artículos siempre están en la única categoría llamada Blog.
Esta es una forma de publicar en el blog de una página en varios idiomas en la que los artículos no pueden ser traducidos todos o, simplemente, la traducción va a tardar un tiempo.
Ojo: este último sistema de categorización genera URL duplicadas, por ejemplo, para un artículo de un blog en español e inglés, tendrías las siguientes URLs con prácticamente el mismo contenido (solo cambian los elementos que lo rodean que puedan estar traducidos como la cabecera, los menús, el pie de página, etc.):
- midominio.com/es/blog/artículo
- midominio.com/en/blog/artículo
Traduce tus elementos de menú
Cada idioma tiene al menos un menú asociado.
Este menú a su vez tiene un elemento que es el principal o página de inicio. Te aparece marcado con la bandera correspondiente cuando le estableces el idioma al crearlo y además te lo marca como página de inicio.
Debes tener además un menú genérico con un elemento que es la página de inicio general del sitio en todos los idiomas. En realidad esta página no se muestra nunca porque lo hace la de alguno de los idiomas configurados.
Recuerda realizar las asociaciones entre elementos a los distintos idiomas. De esta manera, cuando alguien quiera ver un determinado contenido en un idioma distinto, el sistema sabe ofrecérselo correctamente sin redirigir a la página de inicio.
Traduce tus módulos
Dependiendo qué tipos de módulos uses en tu sitio web pueden requerir traducción o no.
Por ejemplo, si estás utilizando un módulo de login (sin textos añadidos), no es necesario que los crees en varios idiomas porque el sistema ya lo muestra correctamente en cada idioma. En este caso establece en la configuración del módulo que el idioma es Todos.
Por el contrarios, si estás utilizando un módulo del tipo HTML personalizado sí es necesario traducir sus contenidos. Aquí sí debes indicar en la configuración del módulo en qué idioma está escrito.
Los módulos no se asocian unos con otros.
Cambiando de idioma, módulo de selección
Para que las personas que visitan tu web tengan una forma de cambiar de idioma tienes un módulo que lo hace. Debes configurarlo y activarlo.
La ubicación habitual es en la parte superior derecha del sitio por lo que debes asignarle una posición de la plantilla que está ubicada en esta zona.
Es posible que si tienes activada la caché te vuelvas un poco loco, desactívala mientras realizas todo este proceso.
Este módulo te ofrece varias opciones, como por ejemplo si quieres mostrar los diferentes idiomas en una lista desplegable, como banderas, en horizontal o vertical, etc.
No es buena idea usar banderas, representan países, no idiomas.
Proceso finalizado, ahora pruebas
Durante el proceso y al terminar haz pruebas para ver el comportamiento de tu web. Para ello te sirve de ayuda el módulo "Language status", que puedes activar en el gestor de módulos (filtrando por administración, ya que es un módulo que se te muestra únicamente en el backend de Joomla).
Bonus: cambia una traducción del sistema
A veces pasa que quires cambiar ciertas traducciones o textos, ya sea de Joomla o de extensiones de terceros.
Podrías editar directamente los ficheros de traducción y cambiarlos pero es preferible que evites este tipo de modificaciones. Entre otras cosas porque cuando el autor actualice el paquete, pierdes los cambios y tienes que volver a hacerlos.
En Joomla tienes una herramienta para gestionar las traducciones más limpiamente. Ve en el panel de administración a Sistema > Gestionar > Modificaciones del idioma.
Selecciona el idioma del que quires hacer la modificación en el filtro.
Por cada idioma vas a tener dos opciones en este selector del filtro: sitio y administrador. Selecciona según quieras modificar cadenas de texto que se muestran en la parte pública o en el panel de administración.
Comprueba ahora que no existe una modificació hecha ya, que no está en el listado. Si existe, solo tienes que pinchar sobre ella, editas y guardas. Si no existe, la creas con el botón Nuevo.
Para ello, lo primero que tienes es que localizar esa cadena para traducirla. Tienes un buscador. Pega allí el texto o una parte de lo que quieres cambiar para encontrar su traducción actual. Una vez localizada haz clic sobre ella y cámbiala. Dale a guardar y comprueba el resultado.
Sigue aprendiendo a hacer webs multiidioma y multilocalización
Cada país tiene sus constumbres y cada página de tu sitio tiene que ir orientada, no solo en su idioma, sino en la forma en que las personas quieren consumir ese contenido.
Si quieres seguir indagando sobre el tema tienes muchos recursos: desde ponencias, documentación en la wiki de Joomla, artículos, diapositivas... o si prefieres pregúntame directamente.
Colabora
Puedes colaborar en la traducción de Joomla al español, a otros idiomas o incluso en otras tareas. Solo tienes que unirte al grupo de correspondiente en la web de voluntarios de Joomla y te indican qué hacer.
Se trabaja en plataformas como Crowdin, Transifex o similares.
Comenta y comparte
¿Tienes alguna otra forma de crear webs con Joomla en varios idiomas? ¿Utilizas alguna extensión que facilite el trabajo?
¡Déja tus comentarios! y, si te ha gustado ¡Comparte!