Dubbed film and cinema: the module and the installer¶
Behind a Drupal CMS that is really German after installation are two independent projects on drupal.org. They work well together, but neither is part of the other.
| Default Content Locale Extended | Drupal CMS German Installer | |
|---|---|---|
| Project | drupal.org/project/dcle | drupal.org/project/dcgi |
| Documentation | these pages | project.pages.drupalcode.org/dcgi |
| What it is | a Drupal module | an extension of the Drupal CMS installer |
| What it translates | the content and settings of the templates | the installation itself, i.e. everything you see before the site is ready |
| Languages | every language with translation files | German |
| After installation | stays on the site as a module | is removed again |
| Needs the other project? | no | yes, it brings the module along |
In the picture of our explanation, the module is the dubbing studio: it makes the film itself speak German. The installer is the cinema where the film is shown.
Rule of thumb: the module translates, the installer repairs¶
The module only touches what belongs to a template: its content and its settings. It never changes other projects' code. After all, it stays on the site after installation and shouldn't leave surprises behind.
Everything else is the installer's job: it translates the installation screens and fixes bugs in other projects' code that would otherwise prevent a German installation. Where exactly each fix lives is shown in the "Project" column of the bug table.
Why the installer is needed¶
A German film in an English cinema¶
Imagine going to the cinema to see the German version of a film. The dubbing is excellent. But at the box office, on the posters and in the announcements, everything is English. And the film tears twice before it has even started.
That is what a German installation of Drupal CMS felt like, and that is where it all began: the Drupal CMS German Installer was started in March 2026, a good two months before Default Content Locale even existed. At first it was only about making the installation itself German. That the templates were still English afterwards was the next problem, and the module grew out of it.
The foyer: the installation itself¶
The installation is the first contact with Drupal CMS: choose a language, enter the database, name the site, pick a template, create an account. At first these screens were hard-wired to English.
Since Drupal CMS 2.2 the installer loads an official German translation from localize.drupal.org. It is good, but not complete:
- The new language dialog and the final page ("Your site is almost ready") are missing there.
- The template descriptions come from an online list and cannot be translated officially at all. One template even appeared as "Drush Site-Install" without any description.
- The selection page used the informal "du" ("Wähle eine Website-Vorlage aus"), while the rest of the installation uses the formal "Sie".
- The status messages during installation ("Installed 20 modules", "Completed 3 of 22") were English, because Drupal only loads the German translations at the very end.
The module cannot help here: at this point there is no site yet that it could be installed on. Only something that hooks into the installer itself can do that. So the installer fills in the missing texts right in the browser. As soon as localize.drupal.org knows one of these texts, the official translation appears and the installer has nothing left to do there.
The torn film: bugs that break an installation¶
While translating all templates we ran into bugs that stop a German installation from getting anywhere:
- Summit was set up in the language "undefined", and every page broke afterwards.
- Convivial Gov switched the site to English in the middle of the installation.
- Five templates (Archimedes, Healthcare, Pulse, CareSphere, Convene) could not be installed at all, not even in English.
- A new version of the template engine Twig made the very first installation page crash, for everyone.
- Several themes hard-code sentences like "Follow us on" so deeply that no translation file reaches them.
All of these bugs live in other projects: in Drupal core, Drupal CMS, Canvas, the templates and their themes. They can only be fixed properly there. Until then the installer helps with small, targeted fixes from the outside. Each one checks first whether it is still needed and does nothing once a project has fixed the bug itself. We wrote up every bug as a bug report for the project it belongs to.
The show starts on time: the right moment¶
The module has to be active before a template creates its content. If it arrives even one step too late, everything stays English. The Drupal CMS installer has no place for this. So the German Installer inserts a step of its own before every content import that installs the module.
For all other languages, and for everyone who doesn't want to use the German
Installer, the module now has a way of its own:
drush dcle:site-templates (see below).
An installer that wants to make itself redundant¶
After installation the German Installer has done its job. Running its script a second time removes it again and resets the Drupal CMS installer to its original state. Nothing of it remains on the finished site except the module and a few add-on modules for German-language sites.
The real goal is that one day it isn't needed any more: when the bugs are fixed in their projects and localize.drupal.org knows every text of the installation. The module, on the other hand, stays useful as long as templates ship English sample content.
Which project do I need?¶
You install Drupal CMS in German: Use the Drupal CMS German Installer. It translates the installation, fixes the known bugs and brings the module along for the templates.