Instalar Drupal 7 en multiples idiomas
Este post te guiará con 20 pasos en cómo crear un sitio web en multiples lenguajes utilizando la técnica de Entity Translation para Drupal 7, como alternativa más atractiva de traduccion que la que brinda el módulo de Content Translation. Estos apuntes se presentaron en un taller durante DrupalCamp Ecuador el 23 de Octubre de 2014 en Guayaquil, Ecuador.
1. Instalar Drupal
- Poner el archivo .po en la ruta: profiles/standard/translations/
- Instalar el sitio con “Standard” profile.
- Escoger instalación en ingles (por defecto) o mejor en español.
2. Modulos adicionales
Descargar y habilitar los siguientes módulos que vamos a utilizar:
- 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 Realm (variable_realm submodule)
- Variable Store (variable_store submodule)
3. 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
4. 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
5. 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).
6. 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
7. 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.
8. Habilitar traducción de entidades
Necesitamos traducir el contenido del sitio, representado en los nodos y las taxonomías.
Admin » Configuración » Regional e idioma » Entity translation
URL: admin/config/regional/entity_translation
Esconder campos que no son por traducir
9. 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
10. 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
11. 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.
12. Crear y revisar contenido!
URL: /node/add/article
13. 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í!
14. Traducir términos
Admin » Estructura » Taxonomía » Lista
URL: admin/structure/taxonomy/tags
15. 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
16. 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.
17. 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.
18. 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
19. 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.
20. 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.