Keyfacts & Tkeaways
Bevor wir in die Details gehen, hier das Wichtigste auf einen Blick:
- Die Innovation: Der neue Symfony YAML-Tag !translate kennzeichnet Text-Strings in Config Actions als übersetzbar.
- Das gelöste Problem: Schluss mit dem Mix aus deutscher und englischer Konfiguration ("Denglisch") nach der Installation.
- Das technische Highlight: Der optionale context im Tag verbessert die Qualität der Übersetzung erheblich.
- Der Umfang: Es geht um die vollständige Übersetzung aller Recipe-Ausgaben (Config, Metadaten, Inputs).
- Der Community-Nutzen: Lückenlose Extraktion aller Strings zur zentralen Übersetzung auf localize.drupal.org.
Warum Drupal Recipes jetzt noch besser werden
Die Aufregung um Drupal Recipes ist groß. Diese schlanken YAML-Dateien sind der Turbo, den wir brauchen, um neue Websites extrem schnell und standardisiert aufzusetzen. Module, Konfiguration, Content-Typen – alles vollautomatisiert.
Drupal Rezept (Recipes) sind eines der Features, dass die Drupal Starshot initiative vor der Veröffentlichung von Drupal CMs, dem neuen Standarddownload von Drupal, ausführlich vorgestellt hat.
Aber mal ehrlich: Bisher war die Mehrsprachigkeit ein echter Stolperstein. Wir in der DACH-Region kennen das Problem: Man wendet ein Rezept an und plötzlich hat man einen frustrierenden Mix aus deutscher Oberfläche und englischen Konfigurations-Schnipseln. Für ein System, das Multilingualität als Core-Feature bewirbt, war das bisher nicht ideal.
Doch dieser Frust hat bald ein Ende.
Der YAML-Zaubertrick: !translate bringt die Config zum Sprechen
Das zentrale Problem war bisher, dass Text-Strings in den Config Actions eines Recipes nicht automatisch als übersetzbar erkannt wurden. Die Lösung aus Issue #3313863 ist technisch elegant:
Das Team nutzt nun Symfony YAML Tags. Konkret bekommen wir einen neuen Tag namens !translate. Damit können Entwickler ab sofort direkt im YAML-Code markieren, welche Strings übersetzt werden müssen.
So sieht das in der Praxis aus:
actions:
# 1. Einfache Übersetzung ohne Kontext:
label: !translate 'Website-Feedback-Formular'
# 2. Übersetzung mit explizitem Kontext (wichtig für Übersetzer!):
message: !translate {string: 'Deine Nachricht wurde gesendet.', context: 'Kontaktformular'}
Warum ist der context so wichtig? Im zweiten Beispiel siehst du den Parameter context. Als Übersetzer weißt du so sofort, woher der String kommt. Das verhindert Fehler, wenn Wörter je nach Zusammenhang (z. B. "Message" als "Nachricht" oder "Meldung") unterschiedlich übersetzt werden müssen. Das macht die Arbeit für die L10n-Community (Hallo Österreich, Schweiz, Deutschland und der Rest der Welt! 👋) einfacher und die Qualität besser.
Die große Mission: Recipes komplett übersetzbar machen
Das Übersetzen der Config Actions ist nur der Anfang. Das Meta-Issue #3488972 zeigt, wie ernst es den Entwicklern ist: Alles, was ein Rezept an die Benutzeroberfläche weitergibt, muss übersetzbar sein.
Was heißt das für uns?
- Lückenlose Extraktion: Es wird sichergestellt, dass alle Strings (Config Actions, Standardwerte, Beschreibungen in der recipe.yml) sauber extrahiert werden. Auch das Tool potx wird dafür angepasst.
- Volle Transparenz: Sobald die Strings extrahiert sind, landen sie automatisch auf localize.drupal.org. Dann kann unser Lokalisierungs-Team loslegen.
- Interaktive Fragen: Auch die Inputs – also Fragen, die das Recipe während der Installation stellt (z. B. „Möchtest du für das Rezept 'KI-Assistent' lieber OpenAI oder Anthropic nutzen?“) – werden in einem eigenen Issue (#3529418) angegangen.
Fazit: Ein Quantensprung für die User Experience
Das ist ein riesiger Gewinn für alle Entwickler und besonders für Endnutzer außerhalb des englischsprachigen Raums. Endlich keine halb-englischen Dashboards mehr, nur weil ein cooles Recipe angewendet wurde!
Es ist großartig zu sehen, wie die Drupal Community diese technischen Hürden meistert. Das beweist einmal mehr, dass Drupal im Kern ein wirklich globales CMS ist.
Du willst helfen? Schau dir die Diskussionen in den Issues an und prüfe, ob du beim Testen des Merge Requests zu #3313863 unterstützen kannst. Jeder Beitrag zählt!
Vertiefe dein Wissen oder siehe dir die Quellen an:
- Drupal Recipes Initiative: drupal.org/about/starshot/initiatives/recipes
- Dokumentation zu Recipes: drupal.org/docs/extending-drupal/drupal-recipes
- Drupal Multilingual Features: drupal.org/features/multilingual
- Technischer Deep-Dive (Issue): drupal.org/node/3313863
- Hintergrund zu YAML Tags: symfony.com/blog/new-in-symfony-3-3-custom-yaml-tags
👇 Community-Frage: Was ist dein Lieblings-Feature, das dank Multilingualität jetzt noch besser wird? Schreib es uns in die Kommentare!
Kommentare