James Wilson

Web developer. Drupal enthusiast. Surfer and musician. I craft bespoke websites at Bluespark.

Los ABC de Multi-idioma

Esto es un guía que se puede utilizar para instalar Drupal en multiples lenguajes. Fue creado originalmente para un taller de 2 horas en DrupalCamp Ecuador el 23 de Octubre de 2014 en Guayaquil, Ecuador.

Como hacer tu sitio múlti-idioma con Entity Translation en Drupal 7.

OJO: No vamos a usar Content Translation, sino Entity Translation.

Instalar Drupal

  • Poner el archivo .po en la ruta: profiles/standard/translations/
  • Instalar sitio con “Standard” profile.
  • Escoger instalación en ingles (por defecto) o bien (de preferencia) en español.

Descargar modulos

Descargar y habilitar todos los módulos que vamos a utilizar:

Core

  • Locale (ya habilitado si instalaste en español)

Fields Multilingual Multilingual - Entity Translation Multilingual - Internationalization

  • Internationalization (i18n) VERSION DEV (7.x-1.x-dev) para evitar este error.
    • Field translation (i18n_field submodule)
    • Menu translation (i18n_menu submodule)
    • Variable translation (i18n_variable submodule)
    • String translation (i18n_string submodule)

Variable

  • Variable (variable)
    • Variable Realm (variable_realm submodule)
    • Variable Store (variable_store submodule)

Configurar actualizaciones de traducciones.

  • Localization update permite descargar y actualizar traducciones del core de Drupal y otros módulos instalados
  • Debes especificar donde almacenar las traducciones descargados:

Admin » Configuración » Regional e idioma » Idiomas » Actualizaciones de traducciones

URL: admin/config/regional/language/update

Almacenar archivos descargados: sites/all/translations

Configurar la detección y selección de idioma.

Admin » Configuración » Regional e idioma » Idiomas » Detección y selección

URL: admin/config/regional/language/configure

  • Método de detección de la INTERFAZ
    • URL (prefijo de URL)
    • Navegador.
  • Método de detección del CONTENIDO

Agregar otra idioma

Por ejemplo, agrega la idioma de Frances, y configurar los prefijos de rutas:

Admin » Configuración » Regional e idioma » Idiomas

URL: admin/config/regional/language

  • En este caso usamos códigos de idioma (en, es, fr) como prefijo de ruta.
  • Se podría también configurar diferente dominios (example.com, example.es, example.fr) o sub-dominios (en.example.com, es.example.com, fr.example.com).

Configurar Fecha y Hora.

Por defecto Drupal usa mes/día/año (el format común del ingles) lo que hay que cambiar a día/mes/año.

URL: /admin/config/regional/date-time

También se recomienda que creas formatos más comunes en español como “Lunes el 20 de Octubre de 2012 a las 11:16pm”

URL: /admin/config/regional/date-time/formats Haz clic sobre: Añadir formato de fecha.

Long: l el j de F del Y a las h:ga Medium: l j de F Y - h:ga

Alternador de idioma

Admin » Estructura » Bloques

URL: /admin/structure/block

Habilita el bloque que es para Texto de la interfaz del usuario en la region del Encabezado.

Hay dos opciones:

  • Si tienes muchas idiomas, se recomienda utilizar el módulo lang_dropdown.
  • Siempre usar el bloque que es para Texto de la interfaz del usuario.

Habilitar traducción para Nodos y Taxonomía

Admin » Configuración » Regional e idioma » Entity translation

URL: admin/config/regional/entity_translation

Esconder campos que no son por traducir

Configurar traducción de campos

Habilitar el soporte multi-lenguaje con field translation en todos los tipos de contenido.

Admin » Estructura » Tipos de contenido » Articulo » Editar

URL: admin/structure/types/manage/article

Admin » Estructura » Tipos de contenido » Basic Page » Editar

URL: admin/structure/types/manage/page

Sección: Opciones de publicación

Configurar modulo Title

Habilitar traducción de los Títulos de contenido.

El campo del Titulo es un caso especial en Drupal 7. Se utiliza el modulo Title para convertir el campo en algo que se puede traducir con Entity Translation como los otros campos.

Admin » Configuración » Autoría del contenido » Opciones de título

URL: admin/config/content/title**

Reemplazar todos los campos de titulo en todos los contenidos:

Admin » Estructura » Tipos de contenido » Articulo » Gestionar Campos

URL: admin/structure/types/manage/article/fields

Reemplazar los campos del Nombre y Descripción de Taxonomía:

URL: admin/structure/taxonomy/tags/fields

Comprobar que la traducción del campo esta habilitada.

admin/structure/taxonomy/tags/fields/name_field admin/structure/taxonomy/tags/fields/description_field

Traducir campos

Habilitar traducción del campo de body en todos los tipos de contenido (Article y Basic Page).

Admin » Estructura » Tipos de contenido » Articulo » Gestionar Campos

URL: admin/structure/types/manage/article/fields

Admin » Estructura » Tipos de contenido » Page » Gestionar Campos

URL: admin/structure/types/manage/page/fields

No habilita traducción para los campos: Tags e Imagen.

Crear y revisar contenido!

URL: /node/add/article

Traducir etiquetas de los Campos:

Si mostras las etiquetas de campos como “Tags:” en el Front-end, tienes que traducirles con el modulo Field Translation (i18n_field)

Admin » Estructura » Tipos de contenido » Article » Gestionar campos » Tags » Traducir

URL: admin/structure/types/manage/article/fields/field_tags/translate

¡Ahora sí!

Traducir términos:

Admin » Estructura » Taxonomía » Lista

URL: admin/structure/taxonomy/tags

Traducir variables (Site Name, Slogan, etc):

Admin » Configuración » Regional e idioma » Multilingual settings » Variables

URL: admin/config/regional/i18n/variable

Admin » Configuración » Sistema » Información del sitio

URL: admin/config/system/site-information

Menus

Escoger una metodologia para traducción de los menus.

SI: Un solo menu, con links duplicados para todas las idiomas. NO: Multiples menus, uno para cada lenguaje. Habilita i18n_menu, i18n_translation.

Admin » Estructura » Menús » Menú principal » Editar menú

URL: admin/structure/menu/manage/main-menu/edit

Cada enlace debe tener una idioma:

Debes traducir y vincular cada enlace en cada idioma.

Bloques

Escoger una metodologia para traducir bloques:

  • Bloques con visibilidad según idioma.
    • Desventaja: duplicar bloques en cada lenguaje, poco manejable para detectar, agrupar, y sincronizar traducciones.
  • Beans con Entity Translation.
    • Ventaja: interfaz simple de traducción de cada campo, no hay bloques duplicados.
    • Desventaja: No puedes armar workflows de estados de traducción.
  • Nodos con Entity Translation.
  • Boxes con i18n_boxes + i18n_string.

Views

Views no require modificación con Entity Translate, pero por defecto si un nodo no tiene traducción, se mostrará el contenido en la idioma madre (source language).

Para quitar el contenido que no ha sido traducido de tus vistas para no tener contenido mezclado, puedes usar un filtro:

Contenido: Idioma > El idioma del usuario actual

Actualizar traducciones

Admin » Configuración » Regional e idioma » Traducir interfaz » Actualizar

URL: admin/config/regional/translate/update

A veces, al habilitar un modulo, no se descarga las traducciones automáticamente. Debes actualizar las traducciones manualmente de tiempo a tiempo, para estar al día con las traducciones del interfaz, contribuido por la comunidad.

Buscar y traducir interfaz

Admin » Configuración » Regional e idioma » Traducir interfaz » Traducir

URL: admin/config/regional/translate/translate

Otros módulos

  • Localization Client (l10n_client) - Facilita traducción de cadenas de texto del interfaz en tu sitio y contribución de los mismos al localize.drupal.org
  • Transliteration - convierte caracteres UTF8 a ASCII á => a, é => e etc. Bueno para URLs y para renombrar archivos que tengan caracteres extraños.
  • Administration Language (admin_language) - Cuando uno va a traducir el contenido de un nodo, el interfaz de administración se cambia al lenguaje del destino. Usar este modulo para dejar el backend en tu lenguaje preferida.

Referencias