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
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
/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.
/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.
/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.
/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.
/admin/config/regional/i18n/variable
Seleccione qué variables del sitio deben ser multilingües. Estas variables tendrán diferentes valores por idioma.
/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
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
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.
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.
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.
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ú 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'.
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.
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