Aller au contenu

Domain Config Language UI

Le module Domain Config Language UI apporte les fonctionnalités d'interface multilingues au-dessus de Domain Config UI. Il s'appuie sur Domain Config Language pour les services de surcharge sous-jacents.

Sans ce sous-module, Domain Config UI n'expose dans son administration que la couche de surcharges par domaine et n'introduit pas le module language dans votre installation. L'ajout de ce sous-module rétablit le comportement multilingue d'origine que les sites en 3.0.x embarquaient nativement.

Ce qu'il ajoute

  • Une colonne Langues sur la page d'aperçu /admin/config/domain/config-ui/list, qui liste pour chaque couple (domain, configuration) les langues disposant de leur propre surcharge.
  • Le nettoyage automatique des surcharges par langue lorsque leur surcharge de base est supprimée depuis l'interface. Cette logique vivait auparavant dans une boucle interne de Drupal\domain_config_ui\Config\DomainConfigFactory ; elle passe désormais par un event subscriber sur Drupal\domain_config\Config\DomainConfigOverrideEvents::DELETE_OVERRIDE, ce qui libère le module UI de toute dépendance au module language.
  • Un décorateur du service language_manager (Drupal\domain_config_language_ui\DomainConfigUILanguageManager) qui résout les surcharges par langue via la factory UI au runtime, pour les flux d'administration de type « éditer la configuration comme si on était sur ce domaine ».
  • La permission translate domain configuration, qui contrôle le flux de traduction multilingue sur les formulaires de configuration par domaine.
  • Une implémentation de hook_form_alter() qui, lorsqu'un formulaire de traduction de configuration (Drupal\config_translation\Form\ConfigTranslationFormBase) est affiché sur une page avec un domaine actif, attache un validateur protégé par la permission translate domain configuration.
  • Une implémentation de hook_domain_config_ui_disallowed_configurations_alter() qui ajoute language.types à la liste des configurations interdites, afin que la config des types de langue (interface, contenu) ne puisse pas être marquée comme surchargeable par domaine depuis l'interface.

Quand l'activer

  • Domain Config UI est activé, et
  • le module language du cœur est activé, et
  • vous voulez gérer et visualiser les surcharges par langue dans l'interface d'administration.

Les sites 3.x existants migrent de façon transparente : le hook domain_config_ui_update_10002() installe automatiquement ce sous-module lorsque le module language est déjà activé.

Point d'extension

La colonne « Langues » s'appuie sur le nouveau hook hook_domain_config_ui_overview_alter() introduit avec la séparation des modules. N'importe quel autre module peut ajouter sa propre colonne à la page d'aperçu en implémentant ce hook — voir docs/domain_config_ui/index.md ainsi que web/modules/contrib/domain/domain_config_ui/domain_config_ui.api.php.