Internacionalización

Una colección completa de módulos que extienden las capacidades multilingües del core de Drupal para construir sitios multilingües del mundo real.

i18n
49,501 sites
25
drupal.org

Overview

El módulo Internationalization (i18n) es un paquete rico en funcionalidades que extiende significativamente el soporte multilingüe del core de Drupal 7. Proporciona un framework completo para construir sitios web verdaderamente multilingües con características que incluyen términos de taxonomía traducibles, variables multilingües, bloques traducibles con controles de visibilidad por idioma, filtrado de contenido por idioma, traducción de menús y traducción de propiedades de campos.

Este módulo sirve tanto como base de API para otros módulos multilingües como proporciona interfaces administrativas para configurar varios ajustes de internacionalización. Introduce conceptos como conjuntos de traducción para vincular contenido traducido, traducción de cadenas para cadenas definidas por el usuario, y modos de selección de contenido que filtran el contenido según el idioma actual.

El paquete consiste en un módulo base y numerosos submódulos, cada uno abordando necesidades multilingües específicas. Los constructores de sitios pueden habilitar solo los submódulos que necesitan, haciéndolo flexible para varios escenarios multilingües, desde sitios localizados simples hasta sistemas complejos de gestión de contenido en múltiples idiomas.

Features

  • Traducción de taxonomía con cuatro modos: independiente del idioma, específico del idioma, términos localizables y vocabularios de idiomas mixtos
  • Variables multilingües que cambian valores según el idioma de la página actual (nombre del sitio, eslogan, página principal, etc.)
  • Controles de visibilidad de bloques por idioma y traducción opcional del título/contenido del bloque
  • Selección de contenido por idioma que filtra nodos y términos de taxonomía por el idioma actual
  • Traducción de menús con soporte para elementos de menú traducibles y menús específicos por idioma
  • API de conjuntos de traducción para vincular traducciones relacionadas de varios tipos de objetos
  • Sistema de traducción de cadenas para traducir cadenas definidas por el usuario como etiquetas de campo, nombres de tipos de contenido y descripciones
  • Traducción de propiedades de campo incluyendo etiquetas, texto de ayuda, valores predeterminados y opciones de lista
  • Sincronización de campos y taxonomía entre traducciones de nodos
  • Traducción de rutas para crear mapeos de URL específicos por idioma
  • Opciones de idioma extendidas para tipos de contenido con valores predeterminados del idioma actual, idioma requerido y configuración de idioma bloqueado
  • Mejora del enlace del selector de idioma con traducciones apuntando a las rutas correctas
  • Capacidad de traducción de correos electrónicos de usuario
  • Configuración multilingüe de foros para traducir nombres de foros y contenedores
  • Detección del idioma de contexto basada en el contenido actual que se está visualizando

Use Cases

Sitio web corporativo con múltiples versiones de idioma

Una empresa necesita su sitio web en inglés, francés y alemán. Habilite i18n, i18n_node para controles de traducción de contenido, i18n_menu para menús traducidos, i18n_variable para nombre y eslogan del sitio traducidos, e i18n_block para mostrar bloques específicos por idioma y ocultar otros.

Sitio de comercio electrónico con categorías de productos traducidas

Una tienda en línea usa taxonomía para categorías de productos. Habilite i18n_taxonomy con modo 'Localizar' para traducir nombres y descripciones de categorías a través de la interfaz de traducción, manteniendo la misma estructura de términos en todos los idiomas.

Blog multilingüe con contenido específico por región

Un blog quiere algunas publicaciones disponibles en todos los idiomas mientras otras son específicas de una región. Habilite i18n_select para filtrar contenido por idioma, i18n_node para flujos de trabajo de traducción, y use términos de taxonomía con idioma para etiquetado regional.

Sitio comunitario con foros traducidos

Una plataforma comunitaria necesita foros en múltiples idiomas. Habilite i18n_forum junto con i18n_taxonomy para traducir nombres de foros y contenedores, permitiendo a los usuarios ver los foros en su idioma preferido.

Portal gubernamental con requisitos estrictos de traducción

Un sitio gubernamental requiere que todos los campos de contenido estén sincronizados entre traducciones. Habilite i18n_sync para mantener campos como fecha de publicación, archivos adjuntos y ciertos términos de taxonomía sincronizados cuando los editores crean traducciones.

Multi-sitio con contenido compartido pero configuraciones localizadas

Una organización gestiona sitios para diferentes países con contenido compartido pero configuraciones localizadas. Use i18n_variable para tener nombres de sitio, información de contacto y páginas de error específicos por país mientras comparte la estructura de contenido.

Tips

  • Comience solo con los submódulos que necesita - el paquete está diseñado para ser modular
  • Configure los idiomas y el idioma predeterminado correctamente antes de agregar contenido
  • Use el modo 'Localizar' para taxonomías cuando quiera la misma estructura de términos en todos los idiomas pero con nombres traducidos
  • Use el modo 'Traducir' para taxonomías cuando necesite conjuntos de términos completamente diferentes por idioma
  • Habilite i18n_select para asegurar que los listados solo muestren contenido en el idioma actual
  • Pruebe exhaustivamente el comportamiento del selector de idioma, especialmente con rutas con alias
  • Considere las necesidades del flujo de trabajo de traducción al elegir entre los enfoques de traducción de nodos y traducción de entidades
  • Para requisitos multilingües complejos, lea el manual en http://drupal.org/node/133977
  • Use la función 'Refrescar cadenas' después de habilitar nuevos módulos que proporcionan cadenas traducibles
  • Al usar i18n_sync, elija cuidadosamente qué campos sincronizar para evitar sobrescribir diferencias intencionadas

Technical Details

Admin Pages 6
Configuración multilingüe /admin/config/regional/i18n

Página principal de configuración para opciones multilingües extendidas. Proporciona acceso a varias configuraciones de i18n a través de pestañas de tareas locales.

Opciones de nodo /admin/config/regional/i18n/node

Configure opciones extendidas para nodos multilingües incluyendo cambio de interfaz durante la traducción y visibilidad del enlace de traducción.

Cadenas /admin/config/regional/i18n/strings

Configure qué formatos de texto están permitidos para la traducción de cadenas. Importante para la seguridad ya que algunos formatos pueden permitir contenido peligroso.

Selección /admin/config/regional/i18n/select

Configure el filtrado de contenido por idioma. Controla qué tipos de contenido se filtran y en qué páginas la selección está activa.

Variables /admin/config/regional/i18n/variable

Seleccione qué variables del sitio deben ser multilingües. Estas variables tendrán diferentes valores por idioma.

Cadenas /admin/config/regional/translate/i18n_string

Actualice y refresque cadenas definidas por el usuario para traducción. Use para reconstruir listas de cadenas o importar traducciones existentes.

Permisos 3
Traducir cadenas definidas por el usuario

Permite traducir cadenas definidas por el usuario creadas como parte del contenido o configuración

Traducir cadenas de administración

Permite traducir cadenas administrativas con filtro XSS/HTML permisivo. Acceso restringido.

Administrar traducciones de contenido

Permite agregar o eliminar contenido existente de/a conjuntos de traducción

Hooks 12
hook_i18n_object_info

Proporciona información sobre tipos de objetos manejados por el sistema i18n. Define cómo los objetos pueden ser traducidos incluyendo propiedades de cadena, soporte de conjuntos de traducción y rutas administrativas.

hook_i18n_object_info_alter

Altera la información de objetos i18n proporcionada por otros módulos.

hook_i18n_translate_path

Proporciona información de traducción para rutas específicas. Devuelve rutas traducidas para el selector de idioma.

hook_i18n_translate_path_alter

Altera las traducciones de rutas proporcionadas por otros módulos.

hook_i18n_context_language

Proporciona el idioma de contexto actual basado en el contenido de la página. Usado para determinar qué idioma debe usarse para ciertas operaciones.

hook_i18n_string_info

Lista grupos de texto para traducción de cadenas. Define qué grupos de cadenas están disponibles y sus propiedades.

hook_i18n_string_list

Proporciona una lista de cadenas traducibles para un grupo de texto.

hook_i18n_string_list_TEXTGROUP_alter

Altera la lista de cadenas para un grupo de texto específico. Llamado tanto por objeto como para la lista completa.

hook_i18n_string_objects

Lista objetos de los cuales recolectar cadenas traducibles. Alternativa a hook_i18n_string_list.

hook_i18n_translation_set_info

Proporciona información sobre conjuntos de traducción y objetos involucrados. Define cómo se almacenan y gestionan los conjuntos de traducción.

hook_i18n_sync_options

Proporciona información sobre qué campos sincronizar para cada tipo de entidad.

hook_i18n_sync_translation

Realiza operaciones adicionales de sincronización en entidades traducidas.

Troubleshooting 7
Las traducciones no aparecen para cadenas definidas por el usuario

Asegúrese de que el idioma fuente esté configurado correctamente en admin/config/regional/i18n/strings. Use la función 'Refrescar cadenas' en admin/config/regional/translate/i18n_string para reconstruir la lista de cadenas. Verifique que el formato de texto esté permitido para traducción.

Cambiar el idioma predeterminado rompe las traducciones

Las traducciones de cadenas se almacenan relativas al idioma fuente. Cambiar el idioma predeterminado después de crear contenido puede romper las traducciones. Configure el idioma fuente correcto en la configuración de traducción de cadenas y evite cambiarlo después de que comience el trabajo de traducción.

Las traducciones de bloques no se muestran con el módulo Context

El módulo Context entra en conflicto con i18n_block ya que ambos alteran el renderizado de bloques. Siga el problema en http://drupal.org/node/1343044. Considere usar configuraciones de visibilidad de bloques en lugar de Context para la visualización de bloques basada en idioma.

Errores de formato de cadena al traducir bloques

Habilite el formato de texto para traducción en admin/config/regional/i18n/strings. Después de habilitar formatos, refresque las cadenas para actualizar la lista de cadenas traducibles.

Los elementos de menú no aparecen para ciertos idiomas

Los elementos de menú vinculados a nodos solo aparecen cuando el idioma del nodo coincide con el idioma de la página. Asegúrese de que existan nodos traducidos y que los elementos de menú estén correctamente configurados con ajustes de idioma o establecidos en modo 'Localizar'.

Los términos de taxonomía no se filtran por idioma

Habilite el módulo i18n_select y verifique que el filtrado de taxonomía esté habilitado en admin/config/regional/i18n/select. Asegúrese de que el vocabulario esté configurado en un modo multilingüe en la configuración del vocabulario.

Las variables no cambian con el idioma

Asegúrese de que la variable esté seleccionada como multilingüe en admin/config/regional/i18n/variable. Verifique que los submódulos variable_store y variable_realm del módulo Variable estén habilitados. El realm de idioma debe estar correctamente inicializado.

Security Notes 4
  • Tenga cuidado al permitir formatos de texto para traducción de cadenas - formatos como PHP Filter o HTML completo podrían permitir a los traductores inyectar código malicioso
  • El permiso 'translate admin strings' usa un filtro XSS permisivo y solo debe otorgarse a usuarios altamente confiables
  • Revise las fuentes de importación cuando use importaciones masivas de traducción ya que evitan las verificaciones de acceso a formatos
  • Después de cambiar los formatos permitidos para traducción, refresque las cadenas para eliminar cadenas potencialmente peligrosas de la interfaz de traducción