Selector de idioma desplegable

Proporciona un bloque con el elemento Dropbutton de Drupal para cambiar el idioma del sitio, ofreciendo opciones de visualización mejoradas en comparación con el bloque selector de idioma del núcleo.

dropdown_language
10,215 sites
43
drupal.org

Install

Drupal 11 v4.1.0
composer require 'drupal/dropdown_language:^4.1'
Drupal 9, 8 v3.1.6
composer require 'drupal/dropdown_language:^3.1'

Overview

El módulo Dropdown Language proporciona un bloque selector de idioma mejorado que utiliza el elemento de interfaz Dropbutton integrado de Drupal en lugar de una simple lista desordenada de enlaces. Esto proporciona una interfaz más compacta y fácil de usar para sitios web multilingües.

El módulo ofrece opciones flexibles de etiquetado que incluyen nombres de idiomas, identificadores de idioma (códigos), nombres nativos de idiomas o etiquetas completamente personalizables por instancia de bloque. También incluye mejoras de SEO al filtrar opcionalmente los enlaces a contenido no traducido, asegurando que los enlaces del selector de idioma solo apunten a traducciones realmente disponibles.

El bloque se oculta automáticamente cuando solo hay un idioma configurado, y no se renderiza en páginas de error 403/404. El idioma actual se muestra de forma prominente en la parte superior del menú desplegable y se marca como activo sin ser un enlace clicable.

Features

  • Bloque selector de idioma usando el elemento dropbutton de Drupal para una visualización compacta
  • Múltiples opciones de visualización: Nombre del idioma, ID del idioma (código), Nombre nativo o Etiquetas personalizadas
  • Envoltorio fieldset opcional con título 'Cambiar idioma' para agrupación visual
  • Mejora de SEO: Filtrar contenido no traducido para mostrar solo enlaces a traducciones disponibles
  • Opción para mantener el bloque visible incluso cuando solo hay una traducción disponible
  • Ocultación automática del bloque en páginas de error 403/404
  • Idioma actual mostrado en la parte superior con estilo activo y no clicable
  • Soporta múltiples tipos de idioma: Idioma de interfaz e Idioma de contenido
  • Etiquetas personalizadas por instancia de bloque cuando se selecciona el modo de Etiquetas personalizadas
  • Se integra con el sistema de negociación de idiomas de Drupal

Use Cases

Sitio web multilingüe básico

Para un sitio web con múltiples idiomas donde los visitantes necesitan cambiar entre versiones de idioma. Coloque el bloque Dropdown Language en la región del encabezado y configúrelo para mostrar nombres de idiomas. El formato compacto del menú desplegable ahorra espacio mientras proporciona una selección de idioma clara.

Selector de idioma optimizado para SEO

Para sitios web donde el SEO es importante y desea evitar mostrar enlaces de idioma para contenido no traducido. Habilite la opción 'Filtrar no traducido' para ocultar automáticamente las opciones de idioma que no tienen traducciones reales, evitando que los motores de búsqueda indexen páginas de contenido vacías o de respaldo.

Etiquetas de idioma personalizadas para marca

Para sitios web que necesitan etiquetas de idioma específicas (ej., mostrar banderas con texto, abreviaturas o terminología personalizada). Seleccione 'Etiquetas personalizadas' en los ajustes globales, luego configure cada instancia de bloque con las etiquetas deseadas para cada idioma.

Visualización compacta de código de idioma

Para diseños donde el espacio es limitado y se prefiere una representación compacta. Seleccione el modo de visualización 'ID del idioma' para mostrar códigos de idioma de dos letras (EN, DE, FR) en lugar de nombres completos de idioma.

Cambio separado de idioma de interfaz y contenido

Para configuraciones multilingües avanzadas donde el idioma de interfaz (menú, elementos de UI) y el idioma de contenido pueden ser diferentes. Coloque bloques Dropdown Language separados para cada tipo de idioma, permitiendo a los usuarios controlar independientemente los idiomas de interfaz y contenido.

Tips

  • Coloque el bloque en una región altamente visible como el encabezado para fácil acceso
  • Use la visualización de Nombre nativo para audiencias internacionales ya que los visitantes pueden identificar su idioma más fácilmente
  • Al usar el modo de Etiquetas personalizadas, cree instancias de bloque separadas por idioma y use condiciones de visibilidad de idioma para mostrar las etiquetas apropiadas para cada idioma
  • El idioma actual se coloca automáticamente en la parte superior del menú desplegable y se estiliza con una clase CSS 'active-language' para estilos personalizados
  • Considere habilitar el envoltorio fieldset (Decoración 'Cambiar idioma') para hacer el selector de idioma más prominente y accesible

Technical Details

Admin Pages 1
Configuración de Dropdown Language /admin/config/regional/dropdown-language-switcher

Ajustes de configuración global para todos los bloques del selector de idioma desplegable. Controla cómo se muestran las etiquetas de idioma y las opciones de presentación visual.

Hooks 1
hook_help

Proporciona texto de ayuda para el módulo en la página de ayuda de administración

Troubleshooting 5
El bloque no es visible en la página

Asegúrese de que al menos dos idiomas estén configurados en Administración > Configuración > Regional e idioma > Idiomas. El bloque se oculta automáticamente cuando solo hay un idioma disponible a menos que la opción 'Mantener el bloque visible' esté habilitada.

No se puede traducir la etiqueta 'Cambiar idioma'

Navegue a Administración > Configuración > Regional e idioma > Idiomas, haga clic en 'Editar' en su idioma predeterminado (ej., Inglés), marque 'Habilitar traducción de interfaz al inglés' y guarde. Luego use la traducción de interfaz de usuario para traducir la cadena.

Los enlaces de idioma aparecen en páginas 404/403

Este es el comportamiento esperado - el módulo intencionalmente no renderiza el bloque en páginas de error (403 Prohibido y 404 No encontrado) para evitar confusión y enlaces rotos.

Las etiquetas personalizadas no aparecen

Asegúrese de que 'Etiquetas personalizadas' esté seleccionado en los ajustes globales en /admin/config/regional/dropdown-language-switcher. Luego edite cada instancia de bloque para configurar las etiquetas personalizadas para cada idioma.

El contenido no traducido todavía muestra enlaces de idioma

Habilite 'Eliminar enlaces si no se detecta traducción' en los ajustes globales. Tenga en cuenta que esto solo funciona con contenido basado en Entity (nodes, términos de taxonomía, etc.) y requiere una configuración de traducción adecuada.

Security Notes 2
  • El módulo requiere el permiso 'administrar configuración del sitio' para acceder a la página de ajustes
  • El acceso a la traducción se verifica antes de mostrar los enlaces de idioma cuando filter_untranslated está habilitado - los usuarios sin acceso de visualización a una traducción no verán esa opción de idioma