Skip to content

Domain Config Language UI

The Domain Config Language UI module adds the language-aware UI features on top of Domain Config UI. It relies on Domain Config Language for the underlying override services.

Without this submodule, Domain Config UI shows only the per-domain layer of overrides on its admin pages and does not pull the language module into your install. Adding this submodule re-introduces the multilingual UI behavior that 3.0.x sites had built in.

What it adds

  • A Languages column on the /admin/config/domain/config-ui/list overview, listing each language that has its own override for a given (domain, configuration) pair.
  • Automatic cleanup of per-language overrides when their base override is deleted from the UI. This used to be handled by an inline loop in Drupal\domain_config_ui\Config\DomainConfigFactory; it now runs through an event subscriber on Drupal\domain_config\Config\DomainConfigOverrideEvents::DELETE_OVERRIDE so that the base UI module stays free of any language-module dependency.
  • A language_manager decorator (Drupal\domain_config_language_ui\DomainConfigUILanguageManager) that resolves language overrides through the per-domain UI factory at runtime, for the admin "edit configuration as if you were on this domain" flows.
  • The translate domain configuration permission, which gates the language-aware translation flow on per-domain configuration forms.
  • A hook_form_alter() implementation that, when a config-translation form (Drupal\config_translation\Form\ConfigTranslationFormBase) is rendered on a domain-active page, attaches a validator gated by the translate domain configuration permission.
  • A hook_domain_config_ui_disallowed_configurations_alter() implementation that adds language.types to the disallow list, so the language-types config (interface vs. content language) cannot be marked overridable per-domain from the UI.

When to enable it

  • You have Domain Config UI enabled, and
  • You have the language module enabled, and
  • You want the admin UI to surface and manage per-language domain overrides.

Existing 3.x sites upgrade transparently: the domain_config_ui_update_10002() hook auto-installs this submodule when the language module is already enabled.

Extension point

The "Languages" column is implemented through the hook_domain_config_ui_overview_alter() hook introduced alongside the module split. Any other module can add its own column to the overview page by implementing this hook — see docs/domain_config_ui/index.md and web/modules/contrib/domain/domain_config_ui/domain_config_ui.api.php.