
Índice
Con una cuota de mercado de alrededor del 2%, Drupal es un sólido competidor por el cuarto lugar como CMS (después de WordPress, Joomla y Squarespace) preferido por los propietarios de sitios web. Debido a su naturaleza modular y sus potentes funciones, Drupal se utiliza a menudo como base para desarrollar aplicaciones web y sitios destinados a recibir mucho tráfico. Questo articolo si concentra sulle caratteristiche di base per l’internazionalizzazione e la traduzione di Drupal 8, anche se alla fine del 2020 è stata rilasciata la versione 9.
El 4º CMS del mundo
Gratuito y de código abierto, Drupal permite desarrollar y administrar sitios web a través de una sólida interfaz de administración.
Gracias a las decenas de miles de módulos adicionales y temas gráficos disponibles, es posible crear sitios enormes sin ninguna intervención en el código fuente: los módulos, a veces ya empaquetados en distribuciones listas para usar, permiten a los desarrolladores web extender las funcionalidades del sistema que no están presente en la instalación nativa.
Desde la versión Drupal 8, por ejemplo, los módulos de internacionalización ya están incluidos en el sistema básico. Por tanto, el sistema ya está preparado para aceptar páginas en diferentes idiomas, activar el conmutador de idiomas, etc. (si en cambio el sitio está basado en la versión 7 de Drupal, recomendamos consultar la información sobre el módulo Internationalization (i18n)). Además, los mensajes del sistema y la interfaz ya están traducidos por la comunidad a decenas de idiomas y se pueden agregar con unos pocos clics.
Presupuesto de traducción para un sitio Drupal
Por lo tanto, la buena noticia es que debemos centrarnos únicamente en el contenido real del sitio para hacer un primer recuento y estimar el tiempo y el costo de la traducción.
Antes de iniciar un proyecto de localización web con Drupal, es necesario identificar dónde están los textos fuente. A continuación, un listado del contenido traducible más común:
- Interfaz y mensajes del sistema
- Contenido generado por los usuarios
- Menús, botones y CTA
- Encabezado y pie de página
- Páginas
- Blog
- Widgets
- Comentarios
- Metadatos
- Taxonomias
- Temas
- Módulos
- Archivos externos
- Imágenes
- Vídeos
- Código incrustado
Para estimar el volumen de un sitio web antes de instalar un módulo de localización, se pueden utilizar varias técnicas, aunque ninguna dará un recuento exacto, excepto el procesamiento de cada contenido a través de una herramienta CAT. Sin embargo, al menos para tener una primera idea de la carga de trabajo, es posible:
- Hacer un recuento de palabras de los documentos de texto de origen, si el equipo de redacción ha guardado el contenido como archivo de texto (docx, Google docs, etc.)
- Realizar un recuento de palabras de una exportación SQL (volcado de base de datos en XML), accediendo a la base de datos MySQL subyacente a través de PHPMyAdmin o utilizando un módulo específico
- Exportar los contenidos en formato CSV, utilizando un módulo específico, como [Entity Export CSV] (https://www.drupal.org/project/entity_export_csv) y hacer un recuento de este archivo
- Hacer un recuento de palabras de una copia estática del sitio web descargando los archivos HTML con HTTrack Website Copier, que es gratuito y de código abierto, o WebCopy.
Cualquier archivo externo presente debe contarse por separado y puede seguir el flujo de trabajo estándar del proveedor de traducciones. En consecuencia, no se considerarán aquí.
Cómo traducir el sistema Drupal y los mensajes de la interfaz
Como hemos adelantado, no tenemos que preocuparnos por traducir los mensajes del sistema y la interfaz porque se agregan directamente cuando se importa el paquete de idioma, basándose en las traducciones realizadas por la comunidad.
Por lo tanto, para asegurarse de que los elementos básicos del menú, como «Home», «Contact», el contenido de la página 404 y otros textos similares se muestren en el nuevo idioma, primero hay que activar todos los módulos de Extend → Multilingual sección y añadir el idioma o idiomas de destino desde Configuration → Regional and language → Languages.
Ahora, para permitir que los visitantes del sitio cambien de idioma, el bloque Language switcher debe estar activado en la página de administración de los bloques: en Structure → Block layout, elege un área de la página donde quieres que aparezca el elemento, haz clic en Place block, busca «Language switcher» y guarda los cambios. Como alternativa, existen módulos especiales como Dropdown Language, que permiten agregar un menú desplegable para elegir el idioma.
Si queremos utilizar el backend de Drupal (para la administración del sitio web) en nuestro idioma, esta configuración depende de las preferencias de cada usuario. En Configuration → Regional and language → Languages, haz clic en la pestaña Detection and selection y verifique que la opción Account administration pages esté habilitada. Luego, en la sección Language settings de su perfil de usuario, cambia el idioma de las páginas de administración en el menú desplegable Language.
Las traducciones existentes se pueden editar desde la interfaz de usuario en Configuration → Regional and language → User interface translation. Como alternativa, puedes exportar las cadenas en formato .pot, traducirlas con tu herramienta favorita e importarlas de nuevo al sitio. Pero ten cuidado: cuando se agregan o cambian elementos de Drupal, los textos relacionados serán traducidos por la comunidad y publicados. Si Drupal está configurado para que las traducciones se actualicen automáticamente, las cadenas que has modificado será machacada por la traducción predeterminada (de la comunidad).
Cómo traducir temas y módulos de Drupal
En cuanto a los temas, a partir de Drupal 8 se introdujo Twig, que reemplaza a PHPTemplate como motor predeterminado. Esto significa que las funciones theme_*
y los archivos *.tpl.php
basados en PHP han sido reemplazados por plantillas * .html.twig
.
Twig usa el módulo de internacionalización para permitir que los desarrolladores de temas usen el código {% trans%}
…{% endtrans%}
que hace que el texto entre estas etiquetas sea traducible. Pero si un tema no ha sido desarrollado de acuerdo con estas especificaciones y se encuentran cadenas hard-coded que deben traducirse, el texto no será detectado como traducible y permanecerá en el idioma original. La solución a este problema es crear una copia del tema y editarlo manualmente. Luego, debes asignar el tema modificado a las páginas traducidas utilizando un módulo adicional específico, como Switch Page Theme.
En el caso de los módulos, si siguen las mejores prácticas de internacionalización, debe haber un archivo en formato de Portable Object (.po/.pot) para cada idioma, así que simplemente traduce este archivo, cámbiele el nombre con el código del idioma de destino y añádelo al módulo. En cambio, si el módulo no sigue este procedimiento y se encuentran cadenas intraducibles porque están hard-coded, tienes dos opciones:
- contactar con el desarrollador del módulo y pedirle que actualice el módulo según las especificaciones correctas
- crear una copia del módulo, modificar manualmente el código e instalarlo como módulo separado, luego usar el módulo modificado en las páginas traducidas
Cómo traducir el contenido generado por los usuarios en Drupal
El proceso de traducción del contenido principal, como páginas y artículos, comienza instalando el módulo Translation Management Tool (TMGMT) y activando todos los módulos en Expand → Translation management. Este módulo se utiliza tanto para exportar e importar contenido en formato XLIFF o HTML, como para conectarse a las herramientas de traducción más populares como Trados Studio y Memsource. En el primer caso, se procederá con la traducción sin conexión, es decir, enviando los archivos exportados a su proveedor de traducción, mientras que en el segundo caso la traducción se realizará en línea, ya que el sistema de traducción recupera el contenido directamente de Drupal.
Configurar la exportación XLIFF/HTML en Drupal
Veamos brevemente el primer caso. Dependiendo del flujo de trabajo de traducción, existen algunas opciones para configurar. En la sección Translation → Providers, el formato de exportación predeterminado es XLIFF, el campo de texto de destino está vacío y las etiquetas HTML son escaped, lo que significa que aparecerán como texto traducible en una herramienta TAO. Si eliges HTML en su lugar, no hay personalización disponible.
Tu proveedor de traducción podrá aconsejarte sobre cómo elegir y configurar el formato y es muy recomendable verificar la configuración y todo el proceso de exportación-traducción-importación con un par de páginas o publicaciones de ejemplo.
Flujo de trabajo XLIFF típico
Ilustremos ahora esquemáticamente el flujo de trabajo típico con el formato XLIFF. Primero debes hacer clic en la pestaña Sources para crear un trabajo de traducción antes de poder exportarlo y descargarlo:
- Seleccionar el contenido para exportar
- Seleccionar los idiomas de origen y destino en el cuadro Checkout
- Hacer clic en Request translation
- Seleccionar File exchange en el cuadro Configure provider
- Seleccionar el formato de archivo XLIFF
- Hacer clic en Submit to provider
Ahora el archivo resultante está listo para descargar:
- Hacer clic en la pestaña Jobs
- Hacer clic en la opción Manage correspondiente al trabajo en cuestión para abrir la pantalla Jobs overview
- Desplázate hasta el cuadro Translation job messages
- Hacer clic en el enlace de descarga
Ahora es posible enviar los archivos a traducir y, cuando las traducciones estén listas, volver a la pantalla Jobs overview y seleccionar los archivos XLIFF traducidos desde el ordenador para subirlos. Después de eso, puedes revisar y editar la traducción antes de publicarla.
En este paso también están disponibles una herramienta de validación, para comprobar que todos los campos estén completados, y una verificación de etiquetas HTML para asegurarse de que se mantenga el formato. Una característica útil de este paso es la vista previa, que le permite verificar cómo aparecerán las páginas traducidas.
Flujo de trabajo con un conector TMS
Como alternativa al flujo de trabajo sin conexión, muchas plataformas de traducción como Memsource, Smartling y Wordbee ofrecen un conector que no requiere el paso intermedio de exportación e importación, sino que interactúa directamente con Drupal y todo el proceso de traducción se realiza en línea.
En este caso, deberás crear un proveedor de traducción. Aquí está el procedimiento tomando Memsource como ejemplo:
- Instala el módulo Memsource Translation for TMGMT
- En la sección Translation → Providers, haz clic en Add provider y añade el nombre y la descripción.
- En Provider plugin, selecciona Memsource.
- Aparecen las configuraciones específicas de Memsource y el campo Memsource Home URL contiene la dirección https://cloud.memsource.com/web.
- Ingresa tu nombre de usuario y contraseña de Memsource y haz clic en Connect
- Haz clic en Save
En algunos casos será necesario generar e ingresar claves API, pero el procedimiento suele ser muy similar. En este sentido, te remitimos a la documentación de cada módulo para configurarlo correctamente.
Conclusiones
La traducción de una web de Drupal puede presentar dificultades técnicas si la web es especialmente voluminosa o compleja, o si se han realizado personalizaciones a nivel de código.
Con todo, sin embargo Drupal es uno de los sistemas de creación de sitios que se presta mejor a la localización, sobre todo porque los dos módulos principales (Internationalization y TMGMT) son nativos y, además de ser gratuitos como sistema base, garantizan una compatibilidad del 100%.
Desafortunadamente, sin embargo, Drupal sufre un poco por su baja difusión y el hecho de que, al ser un proyecto de código abierto, a veces se abandona el desarrollo de módulos. Por lo tanto es importante evaluar y elegir el sistema de traducción en línea con cierta previsión, si decides ir por ese camino, porque estarás vinculado a un determinado conector que deberá garantizar actualizaciones y compatibilidad con futuras versiones.
En cuanto a la traducción sin conexión, Drupal ofrece un sistema de exportación e importación bastante seguro en formatos estándar (XLIFF y HTML) que son compatibles con todos los sistemas de traducción en circulación y puede convertirse en una especie de «plan B» si el flujo de trabajo en línea se vuelve impráctico.
Enlaces útiles
A menos que se especifique lo contrario, los recursos están en inglés.
- Sitio web principal de Drupal
- Asociación Española de Drupal
- Documentación genérica de Drupal
- Documentación específica sobre internacionalización de Drupal
- Foro de soporte para Drupal en castellano
- Panorámica sobre la traducción de Drupal 8
- Panorámica sobre la traducción de Drupal 7
- Página principal del módulo de internacionalización de Drupal
- Traducción de temas basados en Twig