Una de las solicitudes que más nos llegan al laboratorio es de la forma: “Necesito traducir mi web al inglés…”, “Tengo que ofrecer mi web en otros países, necesito adaptarla en diferentes idiomas…”, etc. Y tienen toda la razón, sobre todo si se trata de un e-commerce y ofrecen su producto fuera de España. Pero lo que no conocen es que hay varias formas de conseguir su web multi-idioma, vamos a verlas.

Utilizar un plugin

Traducción por pluginEsta es la opción más rápida y sencilla, pero solo la puedes escoger si tu site está desarrollado sobre un CMS/e-Commerce que disponga de algún plugin de este tipo. Entre los más conocidos encontramos:

  • WPML para Wordpress/Woocommerce
  • Internationalization para Drupal
  • Language Translator para Magento 2
  • Language packs en Prestashop
  • etc.

Este tipo de plugins permiten al administrador del site adaptar al 99% su web para aceptar otros idiomas (siempre hay un 1% de retoques adicionales). Pero con la mayoría de ellos conseguirás:

  • Añadir el selector de idioma en el front
  • Disponer de tipos de contenido para cada idioma (por ejemplo, versión de “Quiénes somos” en español y versión de “About Us” en inglés).
  • Traducción para el catálogo del e-commerce
  • Traducción de palabras sueltas
  • Gestión de usuarios traductores

Resumiendo, podrás convertir tu site en multi-lenguage gracias a este tipo de plugins, pero necesitarás tiempo hasta entender totalmente su funcionamiento.

Traducción por Base de Datos

Traducción por Base de DatosEsta técnica realmente es la que usan los plugins comentados. Consiste en adaptar la base de datos del site para que cada concepto disponga de varios atributos (con tantos idiomas como se quiera):

  • ID: Identificador del concepto (por ejemplo, “boton_aceptar”)
  • Texto ESP: el texto que se mostrará en idioma Español (en el ejemplo, “Aceptar”)
  • Texto ENG: el texto que se mostrará en idioma Inglés (en el ejemplo, “Accept”)

Las ventajas de utilizar esta técnica:

  • Centralizas todo el contenido “traducible” en la base de datos
  • Fácil de mantener (añadir nuevos idiomas o cambios en traducciones)

Pero, hay desventajas:

  • Desarrollo inicial complejo: será necesario cambiar el front, para que, en lugar de escribir el concepto directamente, escribas el identificador para enlazarlo con el controlador de la traducción (y mostrar el texto correspondiente al idioma seleccionado)
  • Dependencia total con la base de datos

Traducción por fichero

Traducción por ficheroEsta es la técnica más utilizada en la comunidad de desarrolladores. El concepto es similar a la anterior, pero en este caso, en lugar de realizar las traducciones (ID – Texto ESP – Texto ENG – etc.) en la base de datos, se realizan en unos ficheros, normalmente llamados “plantillas de traducción”.

Estos ficheros se clasifican por carpetas según el idioma, y en subcarpetas si se quiere tener mayor control de los conceptos, por ejemplo:

  • es
    • home
      • fichero_traduccion_1
      • fichero_traduccion_2
    • quienes_somos
      • fichero_traduccion_1
      • fichero_traduccion_2
    • etc
  • en
    • home
      • fichero_traduccion_1
      • fichero_traduccion_2
    • quienes_somos
      • fichero_traduccion_1
      • fichero_traduccion_2
    • etc

Y dentro de cada fichero, se indica la traducción asociada al identificador del concepto:

  • Fichero español:
    • “aceptar” => “Aceptar”
    • “cancelar” => “Cancelar”
  • Fichero inglés:
    • “aceptar” => “Accept”
    • “cancelar” => “Cancel”

Como verás el concepto es similar a la técnica por base de datos, pero eliminamos la dependencia con la misma y añadimos alguna ventaja:

Ventajas:

  • Centralizas todo el contenido “traducible” en ficheros estructurados
  • Fácil de mantener por la comunidad. Basta con que un traductor envíe la estructura de ficheros de un idioma y la plataforma lo tomará directamente

Desventajas:

  • Desarrollo inicial complejo: será necesario cambiar el front, para que, en lugar de escribir el concepto directamente, escribas el identificador para enlazarlo con el controlador de la traducción (y mostrar el texto correspondiente al idioma seleccionado)

Traducción automática en Front-end

Traducción por scriptEsta es otra técnica que poco a poco está ganando bastantes adeptos. Consiste en lanzar un script a nivel Front (eliminamos la dependencia con el servidor, pero necesitamos un script por cada idioma adicional) que actualice los conceptos inventariados.

Desde el punto de vista del servidor y la base de datos, el site está desarrollado en un solo idioma, pero desde el punto de vista del navegador del usuario, un script “inyectará” la traducción justo antes de mostrar los textos al usuario.

Ventajas:

  • Fácil desarrollo e implantación, simplemente se instala el script y se ejecuta.
  • Opción muy económica

Desventajas:

  • Mantenimiento más complejo: existirá un script por idioma
  • El procesamiento de la traducción se vuelca en el navegador (desventaja “entre comillas”)

Como suele pasar en proyectos de desarrollo, hay múltiples alternativas para cubrir una necesidad, pero todo depende de la complejidad, dependencias y características especiales de cada caso.

Y ya sabes que si necesitas ayuda en cualquiera de las alternativas, desde The Black Box Lab estaremos encantados de crear una nueva versión multi-idioma de tu site 🙂