Introducing Language Audit and Configuration Language Lock for Drupal and asking for your feedback

By Gábor Hojtsy , 7 August, 2026
Presentation screenshot from the online event

I am neck deep in Drupal configuration language recently as I was diagnosing problems with how recipes are installed on foreign language Drupal CMS sites and how Drupal Canvas operates under that inconsistent configuration. I did a lot of research and while already fixed a few of the side-quest bugs fund, there are many old standing issues that this area connects. As a result I built two open source Drupal modules: one to diagnose and another to force language behavior. These two modules may be used today (although both are fresh and not yet widely proven so consider that a caveat). 

However Drupal core solutions are really what's needed to truly resolve the problems. So to get more feedback on the direction today I gave an online session about the problems I found about how configuration language can silently drift into inconsistent states on multilingual sites. The talk walks through how config langcode values are assigned across module installs, recipes, UI forms, and locale rewrites, and where Drupal core behaviors can produce unexpected results. I shared two new practical contrib tools that I built recently:

  1. Language Audit, which helps diagnose your current state (and watch changes as they happen interactively with the included snapshot feature), and
  2. Config Language Lock, which enforces a single configuration language consistently with 6 different safeguards in place. Also this module has very, very, very extensive documentation on how core works, what are the gaps and how it works differently with the module.

I’m publishing this post to share both the recording and the slides from that session so you can review the findings and apply them in your own projects! If you manage multilingual Drupal sites, this material should help you understand where config language inconsistencies come from, how to detect them, and provide you an avenue to make the result consistent. 

I also devised a core merge request to introduce similar functionality to core: a global configuration language. Feedback would be more than welcome there if this approach works for your projects and if not, what gaps should be taken care of. The issue is: Introduce a dedicated "Configuration default language" different from "Site default language". Time is of the essence now as the Drupal 12 beta deadline is in just a month: Friday, September 11, 2026. Of course feedback in the two module's issue queues is also welcome!

Review the slide deck and/or watch the recording now: