Cambiar el nombre del idioma en in language switcher (English > En)

Descripción
Descripción

Al instalar nuestro sitio multi-idioma en Drupal, en algunos casos nos encontraremos con la necesidad de que el selector de idiomas (Language Switcher), que viene con Drupal, muestre los nombres abreviados para cada indioma, ya que por defecto mostrará su nombre completo. En principio, para cambiarlo sólo deberíamos acceder a la url de configuración del módulo Language, previamente activado, accediendo a "/admin/config/regional/language" y allí seleccionar EDITAR y cambiar el nombre del idioma Ej. English a EN, pero esto no funciona correctamente y sólo te cambia el resto de los idiomas.

Para solucionarlo, tendremos que añadir en nuestro archivo TUTEMA.theme, la siguiente función, cambiando sólamente en nombre equivalente a tu tema.

Instrucciones
Instrucciones

Para activar el selector de idiomas y luego modificar los nombres de cada indioma sigue estos pasos:

  1. Activar los módulos Language, Configuration Translation, Content Translation y Interface Translation. (Todos vienen incluido en drupal 9).
  2. Añadir el o los idiomas adicionales para tu sitio web
  3. Activar el bloque para el selector de idiomas en "/admin/structure/block"
  4. Copiar la función que está debajo y añadirla a tu archivo TUTEMA.theme, luego, cambiar el nombre equivalente a tu theme
  5. Ejecutar los comando de borrar caché y actualizar base de datos.
Código
<?php
/**
* Use language code for the language switcher
*
* @param $variables
*/
function TUTEMA_preprocess_links__language_block(&$variables) {

  foreach ($variables['links'] as $i => $link) {
    // @var \Drupal\language\Entity\ConfigurableLanguage $linkLanguage
    $linkLanguage = $link['link']['#options']['language'];
    $variables['links'][$i]['link']['#title'] = $linkLanguage->get('id');
  }
}
?>