Zum Inhalt

Anleitung für Übersetzerinnen und Übersetzer

Für alle, die eine Drupal-CMS-Vorlage in ihre Sprache übersetzen möchten.

Sie brauchen dafür keine Programmierkenntnisse. Sie brauchen ein Konto auf drupal.org, einen Editor für Übersetzungsdateien (zum Beispiel Poedit) und eine Drupal-CMS-Testinstallation, oder jemanden, der Ihnen die Textliste erzeugt. Und am besten sind Sie Mitglied im Übersetzungsteam Ihrer Sprache auf localize.drupal.org.

localize.drupal.org und Ihr Sprachteam

localize.drupal.org ist der Online-Dienst, mit dem die Drupal-Community Drupal übersetzt. Für jede Sprache gibt es dort ein Team. Übersetzt werden direkt im Browser die Texte von Drupal Core, von Modulen und Themes und von Drupal CMS selbst – auch die Beschreibungen der Vorlagen im Installer. Websites laden diese Übersetzungen automatisch.

So werden Sie Mitglied:

  1. Melden Sie sich auf localize.drupal.org mit Ihrem drupal.org-Konto an.
  2. Öffnen Sie die Seite Ihrer Sprache, zum Beispiel Deutsch, und treten Sie dem Team bei.
  3. Anfangs können Sie Übersetzungen vorschlagen. Die Moderatorinnen und Moderatoren des Teams prüfen sie und geben Ihnen mit der Zeit weitere Rechte.

Für die Vorlagen ist das Team aus zwei Gründen wichtig:

  • Einheitliche Begriffe: Jedes Team pflegt ein Glossar und einen Stilleitfaden, etwa zur Anrede. Wenn Vorlage und Oberfläche dieselben Begriffe verwenden, wirkt die Website wie aus einem Guss.
  • Was dort fehlt, fällt sofort auf: Texte, die das Theme einer Vorlage mit |t ausgibt, und die Beschreibungen im Installer werden auf localize.drupal.org übersetzt. Fehlen sie dort, bleiben sie englisch.

Warum die Beispielinhalte nicht auf localize.drupal.org stehen

localize.drupal.org sammelt nur Texte aus dem Programmcode. Die Beispielinhalte einer Vorlage – Seiten, Menüs, Bildbeschreibungen – sind Inhalte und werden dort nicht erfasst. Deshalb liegen ihre Übersetzungen als Dateien in Default Content Locale Extended. Stimmen Sie sich trotzdem mit Ihrem Team ab, damit beide Seiten zusammenpassen.

Was Sie übersetzen

Für jede Vorlage und Sprache gibt es bis zu zwei Dateien im Ordner translations/ von Default Content Locale Extended:

Datei Inhalt
translations/<vorlage>.<sprache>.po Die Hauptdatei. Fast alle Texte gehören hierher.
translations/content-only/<vorlage>.<sprache>.po Texte, die nur in den Beispielinhalten übersetzt werden dürfen.

<vorlage> ist der Maschinenname der Vorlage, zum Beispiel haven, byte oder summit. <sprache> ist der Sprachcode, zum Beispiel fr, nl oder pl. Die deutschen Dateien (*.de.po) sind gute Beispiele.

Einige Dateien gelten für mehrere Vorlagen:

  • drupal_cms_site_template_base.<sprache>.po: das Basisrezept aller Vorlagen (Dashboard, redaktioneller Workflow),
  • mercury_themes.<sprache>.po: Texte der Mercury-Themes, auf denen viele Vorlagen aufbauen.

Schritt 1: Die Textliste erzeugen

Installieren Sie Drupal CMS mit der Vorlage und aktivieren Sie Default Content Locale Extended. Dann erzeugt dieser Befehl die Liste aller Texte der Vorlage:

drush dcle:template-pot haven --language=fr --output=haven.fr.po

Die Datei enthält jeden Text einmal, mit dem Ort, an dem er verwendet wird. Was Drupal schon übersetzen kann, ist bereits eingetragen.

Nach einer Installation in Ihrer Sprache zeigt --untranslated-only nur die Texte, die noch fehlen:

drush dcle:template-pot haven --language=fr --untranslated-only --output=haven.fr.todo.po

Keine Testinstallation?

Bitten Sie in der Issue-Queue um die Liste. Die Maintainer erzeugen sie Ihnen gern.

Schritt 2: Übersetzen

Öffnen Sie die Datei in Poedit oder einem anderen PO-Editor. Über jedem Text steht eine Markierung, die sagt, wohin er gehört:

Markierung Bedeutung Gehört in
#. content Text aus den Beispielinhalten Hauptdatei
#. canvas Text aus einer Canvas-Seite Hauptdatei
#. config Text aus der Konfiguration (Felder, Ansichten, Formulare …) Hauptdatei
#. content-only Text, der nur in den Inhalten übersetzt werden darf content-only/-Datei

Bitte beachten Sie:

  • Platzhalter und HTML unverändert lassen. @name, %name, !name, [node:title] und HTML-Tags müssen genau so in der Übersetzung stehen.
  • Den Stil Ihres Sprachteams verwenden. Übernehmen Sie Anrede und Fachbegriffe des Glossars Ihres Teams auf localize.drupal.org. Dann passen Vorlage und Oberfläche zusammen. Die deutschen Übersetzungen verwenden zum Beispiel „Sie“.
  • Hauptdatei und content-only nicht verwechseln. Die Hauptdatei wirkt auf die gesamte Website, auch auf die Verwaltungsoberfläche. Hat ein Wort in der Vorlage eine andere Bedeutung als in der Oberfläche, gehört die Übersetzung in die content-only/-Datei. Beispiel: „Media“ auf der Startseite von Convivial Gov heißt „Presse“, in der Verwaltung aber weiter „Medien“.
  • Technische Werte nicht übersetzen. Symbolnamen, Pfade, Dateinamen oder Farbwerte nimmt das Werkzeug gar nicht erst in die Liste auf. Was darin steht, darf übersetzt werden.
  • Offensichtliche Fehler dürfen Sie korrigieren. Enthält das Original einen Tippfehler, übersetzen Sie, was gemeint ist.

Speichern Sie die Einträge anschließend in der passenden Datei, zum Beispiel translations/haven.fr.po und gegebenenfalls translations/content-only/haven.fr.po.

Schritt 3: Prüfen

Installieren Sie die Website neu in Ihrer Sprache mit der Vorlage und führen Sie die Liste mit --untranslated-only erneut aus. Sie sollte 0 offene Texte melden. Sehen Sie sich danach die Seiten an: Startseite, Menüs, Formulare, Kopf- und Fußbereich.

Einen Teil davon nimmt Ihnen ein Skript ab, das im Modul liegt. Es ruft die Startseite, die Navigation und alle Inhaltsseiten auf und meldet Texte, die englisch aussehen, auch Platzhalter, Screenreader-Beschriftungen und Bildbeschreibungen:

php web/modules/contrib/dcle/scripts/check-pages.php --language=fr \
  --drush=vendor/bin/drush http://localhost

Für --language kennt es derzeit de und fr.

Wenn trotz vollständiger Liste noch englischer Text zu sehen ist, steckt er meist fest im Theme. Das ist ein Fehler der Vorlage und kein Fehler Ihrer Übersetzung. Melden Sie ihn gern in der Issue-Queue.

Testinstallation in Ihrer Sprache

Damit die Übersetzung schon bei der Installation greift, muss das Modul vor den Inhalten der Vorlage aktiv sein. Dafür brauchen Sie keinen angepassten Installer, ein frisches Drupal CMS genügt:

  1. composer require 'drupal/dcle:1.0.x-dev@dev' drupal/haven
  2. drush dcle:site-templates: Das fügt dem Installer Varianten wie „Haven (localized)“ hinzu, die das Modul vor der Vorlage installieren.
  3. Drupal CMS in Ihrer Sprache installieren und „Haven (localized)“ wählen.

So haben wir die französische Übersetzung von Haven getestet: Alle 285 Texte der Vorlage kommen auf Französisch an. Texte, die nicht aus der Vorlage stammen, sondern aus Drupal CMS selbst, liefert localize.drupal.org. Wie vollständig sie sind, hängt davon ab, wie weit das Übersetzungsteam Ihrer Sprache dort ist. Alle Schritte stehen unter Ohne Installer ausprobieren.

Schritt 4: Einreichen über git.drupalcode.org

Beiträge zu drupal.org-Projekten werden als Merge Request über git.drupalcode.org eingereicht. Das geht ganz im Browser.

  1. Issue anlegen. Öffnen Sie die Issue-Queue von Default Content Locale Extended und legen Sie ein Issue an, zum Beispiel „Add French translation for Haven“. Kategorie: Feature request.
  2. Issue-Fork erstellen. Klicken Sie auf der Issue-Seite auf Create issue fork. Beim ersten Mal müssen Sie dafür einmalig Push-Zugriff anfordern (Get push access) und den Git-Nutzungsbedingungen zustimmen.
  3. Dateien hochladen. Folgen Sie dem Link zu Ihrem Fork auf git.drupalcode.org, wählen Sie Ihren Branch und öffnen Sie den Ordner translations/. Über + → Upload file laden Sie Ihre .po-Datei hoch. Die content-only-Datei kommt in translations/content-only/. Schreiben Sie eine kurze Commit-Nachricht, etwa „Add French translation for Haven“.
  4. Merge Request öffnen. GitLab bietet nach dem Hochladen Create merge request an; der Link steht auch auf der Issue-Seite beim Fork. Setzen Sie danach den Status des Issues auf Needs review.

Wer lieber mit Git auf dem eigenen Rechner arbeitet: Die Issue-Seite zeigt unter Show commands alle Befehle zum Klonen und Pushen des Forks.

Und Patches?

Früher wurden Änderungen als Patch-Datei an einen Kommentar gehängt. Das geht weiterhin (git diff > dcle-add-french-haven-<issue>.patch), Merge Requests sind aber der bevorzugte Weg. Sie lassen sich besser prüfen und werden automatisch getestet.

Eine Maintainerin oder ein Maintainer sieht sich Ihren Beitrag an, gegebenenfalls mit Rückfragen, und übernimmt ihn dann. Mit dem nächsten Release bringt Default Content Locale Extended Ihre Übersetzung für alle mit.

Vielen Dank für Ihre Hilfe!