Obtener Drupal idioma seleccionado de alojamiento

Es posible personalizar el proceso de negociación de idioma tanto para la forma detectamos el idioma del usuario y también de qué tipo de datos que se solicitan.

La API de negociación de idioma se basa en dos conceptos principales:

  • tipos de lenguaje. que describen los posibles tipos de contenido traducible
  • proveedores de idioma. que permiten Drupal para detectar el idioma que debe servir para el usuario (tenga en cuenta que los proveedores de idioma se denominan métodos de idiomas en Drupal 8)

Valores por defecto proporcionados por Drupal

Tipos de lenguaje

Drupal núcleo define tres tipos incorporados idioma:

hospedaje

idioma de la interfaz Es la lengua principal de la página. Se utiliza para presentar elementos de la interfaz de usuario traducida tales como títulos, etiquetas, texto de ayuda, y los mensajes. Idioma del contenido Esto se utiliza para elegir en qué idioma para mostrar el contenido que está disponible en más de un idioma (ver las capacidades multilingües de la nueva API de campo para más detalles). idioma URL Este es el lenguaje asociado con las direcciones URL. Cuando se genera una URL, este valor será utilizado por url () como un defecto si no se proporciona ninguna preferencia explícita.

Diferentes tipos de lenguaje a menudo comparten los mismos valores, pero entonces pueden tener valores independientes si es necesario.

Proveedores de idioma

Core incluye los siguientes proveedores:

  • URL - Determinar el idioma de la URL (prefijo de ruta o dominio).
  • Sesión - Determinar el idioma de un parámetro de petición / sesión.
  • Usuario - Siga la preferencia de idioma del usuario.
  • Browser - Determinar el idioma de la configuración de idioma del explorador.
  • idioma por defecto - Utilizar el idioma por defecto del sitio.

Aquí está una imagen que muestra la relación entre los tipos y proveedores:

Definición de tipos de lenguaje

A partir de Drupal 7, la API de lenguaje permite a los módulos contribuyó a definir tipos de idiomas adicionales a través de hook_language_types_info () y alterar definiciones de tipo de lenguaje existente a través de hook_language_types_info_alter ().

Un tipo de lenguaje puede ser configurable o fijo. Un tipo de idioma configurable aparece en la Configuración> Configuración regional y de idioma> Idiomas> Detección y selección de la página, donde los proveedores de idioma para ese tipo de lenguaje se pueden configurar. Hay tipos de idiomas también fijos que han predeterminadas de ajustes de negociación (módulo definidos) y, por lo tanto, no aparecen en la página de configuración. Aquí es un fragmento de código que hace que el idioma del contenido (que por defecto hereda los valores de la interfaz de lenguaje) configurable:

Cada tipo de idioma configurable tendrá su propio bloque selector de idiomas (independiente). Obviamente, si dos tipos de lenguaje están configurados de la misma manera, sus bloques selector de idiomas serán funcionalmente idénticos y actuarán en ambos tipos de lenguaje.

Obtener Drupal idioma seleccionado de alojamiento basados ​​en el peso proveedor

En Drupal 6.x, hay sólo un tipo de lenguaje, llamado simplemente el lenguaje. Durante la inicialización del lenguaje de la configuración de la negociación de idioma seleccionados se utilizan para determinar su valor. En Drupal 7.x, el mismo proceso sucede para cada tipo de lenguaje definido, ver drupal_language_initialize () para más detalles.

La definición de los proveedores de idioma personalizadas

Cada tipo de lenguaje puede tener diferentes configuraciones de negociación de idioma, es decir, cada tipo de lenguaje puede tener un conjunto diferente de los métodos de detección de idioma. o proveedores. asignado a la misma.

proveedores de idiomas son simples funciones de llamada que implementan una lógica particular para devolver un código de idioma. Por ejemplo, la locale_language_from_url () busca un prefijo de ruta válida o nombre de dominio en la URL de solicitud actual. Si un proveedor de lenguaje no devuelve un código de idioma válido, el siguiente proveedor asociado al tipo de lenguaje (basado en el peso del proveedor) se invoca. De esta manera el concepto de repliegue es generalizado y no vinculados del prefijo de ruta fija> preferencias del usuario> configuración del navegador> esquema de idioma por defecto utilizado en Drupal 6.x

También los proveedores de idioma son módulo definibles a través hook_language_negotiation_info () y las definiciones de los proveedores de idiomas pueden ser alterados a través de hook_language_negotiation_info_alter (). He aquí un fragmento de ejemplo que permite a los prefijos de ruta para ser ignorados caminos administrativos:

Para que los cambios anteriores a ejecutar, la "Detección de idioma y selección" formulario debe ser presentado.

definiciones proveedor de lenguaje pueden incluir dos devoluciones de llamada más, además del proveedor de lenguaje mismo:

  • Si el proveedor de lenguaje puede tomar ventaja de un bloque de conmutación de idiomas, la devolución de llamada conmutador permitirá que vuelva los enlaces de cambio de idioma que se adapten a su lógica, ver locale_language_switcher_url () para un ejemplo.
  • Si el proveedor de la lengua tiene que volver a escribir las direcciones URL, puede especificar una devolución de llamada url_rewrite que proporcionará la lógica de reescritura.

Artículos relacionados

MIGLIOR alojamiento temas de Drupal¿Qué es Drupal? Drupal es una plataforma de gestión de contenido de código abierto que puede ser descargado y utilizado de forma gratuita. Consiste en un grupo de archivos que son estándar en todas las instalaciones, ...
Añadir nueva página en la organización de DrupalEste tutorial te va a mostrar cómo agregar una nueva página y una nueva pestaña del menú apuntado a la página de su sitio web de Drupal. Con el fin de hacer esto: Ingrese a su interfaz de gestión de Drupal; Haga clic en...
Tim millwood Hosting DrupalSu curva de aprendizaje es notoria pero Tim Millwood sostiene que Drupal no es tan temible, y demuestra cómo se puede utilizar para construir un conocimiento bolsa de trabajo necesario. desarrollo web básico y ...
Cambio de campo de tipo de alojamiento DrupalCuando se trabaja con imágenes en Drupal 7, puede controlar qué tipos de imágenes que desea ser cargado para cada tipo de contenido. Tal vez usted quiere restringir los archivos a los archivos GIF y JPG, o solamente ...
navegación libro bloque de alojamiento DrupalCómo manejar bloques en Drupal El diseño de su sitio Drupal se divide en regiones. El número y las posiciones de estas regiones dependen del tema de su sitio. Estas regiones están ocupadas por ...