Creación, mantenimiento y asistencia web
Crear una web en varios idiomas con Joomla

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 multilingüe?

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 veremos a continuación.

Si lo que queremos es que nuestro sitio se traduzca a varios idiomas con herramientas automáticas, encontraremos diversas extensiones en el JED para realizarlo. En este artículo hablo de tener un sitio en el que podremos elegir qué tipos de contenidos mostrar en cada idioma o incluso localización.

Pasos para crear nuestra web en varios idiomas

Desde el propio proceso de instalación de Joomla se puede configurar un sitio web en varios idiomas.

También podemos instsalarlo en uno solo (inglés por defecto) y, una vez tenemos la web funcionando, añadimos el resto de idiomas. contenidos en más de un idioma, podemos seguir cuatro los pasos que indico en este artículo:

  1. Instalar y configurar todos los idiomas necesarios del sistema y de los contenidos.
  2. Activar y configurar el plugin de filtro por idioma.
  3. Traducir los contenidos manteniéndolos asociados entre ellos siempre que sea posible: menús, categorías, artículos y módulos.
  4. Activar y configurar el módulo de selección de idioma.

Instalar y configurar idiomas

Necesitamos instalar los idiomas del sistema, idiomas a los que queremos que nuestro contenido esté traducido.

Para ello vamos en el menú principal a Extensiones → Gestor de idiomas. Aquí podemos ver las traducciones de Joomla instaladas para la parte pública.

Si no están todas las que necesitamos, hay que instalarlas. Pinchando sobre el botón "Instalar idioma" obtenemos un listado de todos los disponibles oficialmente, que son más de 70. Seleccionamos los que queremos y pulsamos sobre el botón "Instalar".

Si no aparecen en el listado todos los que necesitamos 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 instaladas todas las traducciones en las que queremos que esté disponible nuestro sitio web vamos a Extensiones → Gestor de idiomas → Contenido.

Aquí debemos dar de alta y configurar todos los idiomas necesarios a los que queremos traducir los contenidos.

Pinchando sobre el botón "Nuevo" debemos cubrir el formulario con los siguientes campos:

  1. Título: Normalmente aquí se pone 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.
  2. Título nativo: Aquí el nombre del idioma en su propio lenguaje, por ejemplo: Español, English, François, Galego, etc.
  3. Etiqueta del idioma: es la misma etiqueta que usamos en el primer campo entre paréntesis. Es la que usa el idioma cuando lo instalamos.
  4. 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).
  5. Prefijo de la imagen: es el que permite localizar el archivo de imagen de la bandera.

Hay otro campo interesante, el nombre o título del sitio en el idioma que estamos configurando, por si también hay que traducirlo.

Activar plugin de filtro por idioma

Activar el plugin "Sistema - Filtrar idiomas" (languagefilter).

Además de activarlo, tenemos varias opciones interesantes que podemos adaptar a las necesidades del sitio web:

  • Selección del idioma para visitantes nuevos: podemos elegir 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, se elige ordenando los idiomas disponibles para el contenido.
    En el segundo caso, si no se encuentra una preferencia del navegador del usuario o no coincide con ninguno de los idiomas del sitio, se establecerá el predeterminado.
  • Asociación de elementos: esta opción 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 el sistema sabe ofrecer el contenido adecuado cuando se cambia de idioma, independientemente de la sección en la que estemos.
  • Eliminar el código URL del idioma: permite eliminar el sufijo del idioma predeterminado de la URL, es decir, si nuestro idioma predeterminado es el español, que no aparezca midominio.com/es, sino midominio.com a secas.

Traducir contenidos

Uno de los pasos lógicos e imprescindibles, a la vez que posiblemente más trabajosos, es la traducción del contenido. Veamos cómo se traduce cada tipo empezando con los artículos.

Artículos

Al crear un artículo tenemos la posibilidad de especificar el idioma en el que está escrito.

Cuando tenemos un artículo de contenido por cada idioma del sitio ya podemos vincularlos.

Para este proceso nos ayuda mucho el nuevo componente de gestión traducciones (disponible a partir de la versión 3.7 de Joomla).

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:

  1. Español
    1. Categoría 1
    2. Categoría 2
  2. English
    1. Category 1
    2. Category 2

Estas categorías llevarían 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:

  1. Categoría 1
  2. Categoría 2
  3. Category 1
  4. 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. Podría ser tal que así:

  1. Categoría 1
  2. Categoría 2

En este caso el idioma asignado a cada categoría sería "Todos". No cabría el tener que mostrar la descripción de cada categoría porque no se podrían traducir.

Otra opción podría ser una híbrida, es decir, tener categorías según para qué tipo de contenido e idioma.

  1. Categoría 1
  2. Category 1
  3. Blog

Esta opción es muy útil si por ejemplo queremos que en nuestra categoría "Blog" se muestren los artículos en el idioma en el que fueron escritos, independientemente del idioma elegido por el navegante. Para ello se creará 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 asignará el idioma que corresponda. Por el contrario, si no se dispone de su traducción, se le asignará el idioma "Todos". En cualquier caso, estos artículos siempre estará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 URLs duplicadas, por ejemplo, para un artículo de un blog en español e inglés, tendríamos las siguientes URLs con prácticamente el mismo contenido (solo cambiarían 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

Menús

Cada idioma debe tener al menos un menú asociado.

Este menú a su vez tiene un elemento que es el principal o página de inicio. Aparece marcado con la bandera correspondiente cuando se le estable el idioma al crearlo y además se marca como página de inicio.

Debemos tener además un menú genérico con un elemento que será 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 sabrá ofrecérselo correctamente sin redirigir a la página de inicio.

Módulos

Dependiendo qué tipos de módulos usemos en nuestro sitio web pueden requerir traducción o no.

Por ejemplo, si estamos utilizando un módulo de login (sin textos añadidos), no es necesario que se cree en varios idiomas porque el sistema ya lo muestra correctamente en cada idioma. En este caso indicaríamos en la configuración del módulo que el idioma es "Todos".

Por el contrarios, si estamos utilizando un módulo del tipo HTML personalizado sí será necesario traducir sus contenidos. Aquí sí debemos indicar en la configuración del módulo en qué idioma está escrito.

De momento al menos, los módulos no se asocian.

Cambiando de idioma, módulo de selección

Para ofrecer al navegante la opción de cambiar de idioma tenemos el módulo de selección de idioma. Debemos configurarlo y activarlo.

Normalmente se ubica en la parte superior derecha del sitio por lo que deberemos 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 nos ofrece varias opciones, como por ejemplo si queremos mostrar los diferentes idiomas en una lista desplegable, como banderas, en horizontal o vertical, etc.

Aquí dejo una explicación de por qué no me parece buena idea utilizar banderas para la selección del idioma: Why flags do not represent languages.

Proceso finalizado, ahora pruebas

Durante el proceso y al terminar haremos pruebas para ver el comportamiento del sistema. Para ello nos ayuda el módulo "Language status", que podemos activar en el gestor de módulos (filtrando por administración, ya que es un módulo que se muestra únicamente en el backend de Joomla).

Anexo: cambiar una traducción del sistema

Muchas veces nos pasa que queremos cambiar ciertas traducciones o textos, ya sea de Joomla o de extensiones de terceros.

Podríamos editar directamente los ficheros de traducción y cambiarlos pero es preferible evitar este tipo de modificaciones. Entre otras cosas porque cuando el autor actualice el paquete, perderemos nuestros cambios y tendremos que volver a hacerlos.

En Joomla tenemos una herramienta para gestionar las traducciones más limpiamente. Vamos en el panel de administración a Extensiones → Idiomas → Modificaciones.

Seleccionamos el idioma del que queremos realizar la modificación en el filtro* (ubicado en el lateral izquierdo) y comprobamos que no exista ya. Si existe solo hay que pinchar sobre ella, editar y guardar. Si no existe la creamos con el botón "Nuevo".

Lo primero que tenemos es que localizar esa cadena para traducirla. Para ello hay 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.

*Nota: por cada idioma vamos a tener dos opciones en este selector del filtro: sitio y administrador. Seleccionamos según queramos modificar cadenas de texto que se muestran en la parte pública o en el panel de administración.

Bibliografía

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. Aquí te dejo algunas recomendaciones:

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 indicarán qué hacer. Normalmente se trabaja en plataformas como Crowdin o Transifex.

Comenta y comparte

¿Tienes alguna otra forma de crear webs con Joomla en varios idiomas? ¿Utilizas alguna extensión que facilite el trabajo?

¡Déjanos tus comentarios! y, si te ha gustado ¡Comparte!

Mejora tu web desde hoy mismo

Escribe tu correo aquí debajo y te envío detalles que no debes pasar por alto en tu web, los fallos que yo he cometido para que tú no caigas en ellos y más.

Loading...