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:
- Melden Sie sich auf localize.drupal.org mit Ihrem drupal.org-Konto an.
- Öffnen Sie die Seite Ihrer Sprache, zum Beispiel Deutsch, und treten Sie dem Team bei.
- 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
|tausgibt, 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:
composer require 'drupal/dcle:1.0.x-dev@dev' drupal/havendrush dcle:site-templates: Das fügt dem Installer Varianten wie „Haven (localized)“ hinzu, die das Modul vor der Vorlage installieren.- 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.
- 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.
- 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.
- 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. Diecontent-only-Datei kommt intranslations/content-only/. Schreiben Sie eine kurze Commit-Nachricht, etwa „Add French translation for Haven“. - 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!