Help:Extension:Translate/Group configuration example/de

Diese Anleitung wendet sich an Entwickler und erfahrene Übersetzungsadministratoren. Diese Anleitung erklärt, wie man neue Konfigurationsdateien für die Übersetzung der Benutzeroberfläche erstellt und erläutert dabei die praktischen Aspekte. Sie soll zusammen mit der Gruppenkonfigurationsanleitung genutzt werden. Die Entwickler der werden dir gerne helfen, wenn du nach dem Abarbeiten dieser Anleitung noch Fragen hast.

Voraussetzungen

 * die Übersetzungserweiterung und
 * sie.
 * sie.

Diese Anleitung wurde basierend auf der Version r97948 (2011-09-23) der erstellt.

Diese Anleitung beschreibt, wie man die Übersetzung für einige Teile des MyBB-Projektes aktiviert. Du kannst die entsprechenden Schritte auch befolgen, um die Übersetzung anderer Projekte/Dateien zu aktivieren. Einige Dinge werden auf translatewiki.net genauer erläutert, außerdem solltest du natürlich darauf achten, was für deinen Fall relevant ist und diese Anleitung nicht blind befolgen.

Schritt 1: Prüfe den Quelltext
Schauen wir uns mit  als Arbeitsverzeichnis den MyBB-Quellcode an, in diesem Beispiel.

cd /home/betawiki/projects svn co http://svn.mybboard.net/mybb/branches/1.6-stable mybb

sudo -u betawiki svn co http://svn.mybboard.net/mybb/branches/1.6-stable mybb

Wir müssen nun die Dateien finden, die die Nachrichten enthalten. Sie befinden sich im Unterverzeichnis, die englischen Ausgangsnachrichten befinden sich im Unterverzeichnis.

Lass uns mit, der ersten Lokalisierungsdatei unseres Projektes, anfangen.

Schritt 2: Dateiformatunterstützung
In unserem MediaWiki-Installationsverzeichnis können wir unter  und    die Klassen für die Dateiformatunterstützung sehen, die genutzt werden, um Nachrichtengruppen den Lokalisierungsdateien jedes Projektes zuzuordnen. Du musst etwas suchen, um herauszufinden, welche Arten von Formaten unterstützt werden. Wir entscheiden uns, zunächst die FlatPhpFFS-Klasse auszuprobieren und herauszufinden, wie gut sie mit unserer PHP-Datei arbeitet.

Nun haben wir eine Datei für die Zuordnung und wir haben dafür die FFS-Klasse ausgewählt. Jetzt müssen wir eine Gruppenkonfiguration schreiben. Dies ist eine YAML-Datei.

Im kannst du einen Link auf die  finden. Lass uns als Beispiel mit der kleinen Datei aus dem BASIC-Abschnitt beginnen.

Wir können einfach den Beispieltext durch unsere eigenen Werte ersetzen.

Die Beschreibung akzeptiert jede Form von Wikitext. Ein schöner Trick aus dem originalen Beispiel ist, dass du sie mit übersetzbar machen kannst. Dann musst du jedoch den Standardtext auf der Seite MediaWiki:Message-key definieren. Beachte, dass die Namensraum-ID über eine Konstante hinzugefügt wird, siehe wie man benutzerdefinierte Namensräume nutzt.

Wir brauchen noch eine Sache: den Abschnitt. Auch hier gehen wir vom Beispiel aus der Dokumentation aus:

Hmm,  ist der Sprachcode, wie standardmäßig. Zunächst wollen wir die von MyBB genutzte Struktur des Verzeichnisses nicht ändern. Stattdessen können wir für diesen Zweck eine spezielle Funktion nutzen: Code Map, das uns erlaubt, den von unserem Projekt genutzten Identifikatoren Sprachcodes jeder Sprache zuzuordnen.

So enden wir mit:

Im Wesentlichen sagt dies aus, dass für den Code  der     ist, was das Verzeichnis der englischen Nachrichtendateien ist. Der Schlüssel  ist normalerweise der gleiche wie , jedoch ohne das Präfix.

Gut. Lass uns nun diese Datei irgendwo speichern, zum Beispiel im Ordner, dem gleichen Ordner, in dem auch  gespeichert wird. Die ganze Datei ist:

Dann müssen wir unserer Erweiterung den Befehl geben, die Datei zu lesen. Füge die folgende Zeile in  ein:

Befolge anschließend die Anweisungen auf und führe das Skript   aus.

Nun können wir uns anmelden, stelle sicher, dass für den Benutzer das Recht "translate-manage" konfiguriert ist und gehe auf Special:ManageMessageGroups.

Möglicherweise siehst du dies:

No valid namespace defined, got NS_MYBB. Backtrace: <...>

Lies dir in diesem Fall gründlich die Dokumentation durch, möglicherweise musst du die folgende Zeile in  einfügen, um den neuen Namensraum in MediaWiki zu registrieren:

In diesem Beispiel wird 1246 genutzt, du kannst dir jedoch jede freie Namensraum-Nummer nehmen. Für die Übersetzungserweiterung empfehlen wir die Nutzung der Namensraum-Nummern 1200-1298.

Wenn du nun die Spezialseite ManageMessageGroups neu lädst, solltest du eine Zeile erhalten, die anzeigt:

MyBB This message group has not been imported previously.

Klicke auf den MyBB-Link. Anschließend wirst du eine Liste von Nachrichten sehen, die in der Datei enthalten sind. Klicke auf "Ausführen", wenn du mit den Ergebnissen zufrieden bist.

Nachdem du "Ausführen" angeklickt hast, wird die Datei verarbeitet und du wirst eine ähnliche Ausgabe wie diese erhalten:

Imported new version of page MyBB:L\x5b'boardstats'\x5d/en. Imported new version of page MyBB:L\x5b'new posts'\x5d/en. Imported new version of page MyBB:L\x5b'no new posts'\x5d/en. ... Cache rebuild. All done!

Wenn die Datei sehr groß ist, musst du zunächst  ausführen, da die Web-Oberfläche nur eine begrenzte Anzahl von Nachrichten gleichzeitig importieren kann, da sonst das PHP-Zeitlimit überschritten wird; wenn du dieses Limit erreichst, kannst du auf eine Schaltfläche unten auf der Seite klicken, um die verbleibenden Nachrichten zu importieren.

Schritt 3: Eine weitere Datei hinzufügen
Lass uns nun eine zweite Datei zur Übersetzung von MyBB hinzufügen. Hierfür gibt es zwei verschiedene Möglichkeiten:

Ansatz 1: Eine neue YAML-Datei hinzufügen
Füge einfach eine neue YAML-Datei hinzu und speichere sie unter einem neuen Namen. Rufe sie dann aus  ab und befolge die oben genannten Schritte. Die Datei wird ähnlich wie diese aussehen:

Wie aus dem obigen Beispiel deutlich wird, musst du für diese neue Gruppe eine andere ID verwenden.

Obwohl dies einfach ist, eignet es sich nicht für hunderte unterschiedliche Übersetzungseinheiten (d.h. Dateien, die Nachrichtengruppen zugeordnet sind). An einem bestimmten Punkt wirst du einzelne Werte aktualisieren müssen und dies für all diese Dateien zu tun, macht keinen Spaß. Glücklicherweise gibt es einen anderen Weg, der unten gezeigt wird.

Ansatz 2: Vorlagen-Syntax
Die Idee ist, dass wir verbreitete Werte in eine Vorlage setzen. Dann kann jede Gruppe fehlende Werte aus der Vorlage entnehmen und sie müssen nicht für jede Gruppe wiederholt werden.

Lass uns zu unserem MyBB-Beispiel zurückkehren. Wir möchten zum Beispiel, dass die übersetzbaren Nachrichten,   und   enthalten. Die YAML-Datei muss wie folgt aktualisiert werden:

Wie in dem obigen Beispiel deutlich wird, wird  nur einmal definiert; das Hinzufügen und Entfernen von Dateien ist so einfach wie das Hinzufügen oder Entfernen eines Abschnitts in der obigen Datei.

Wenn du nun auf die Spezialseite ManageMessageGroups gehst, solltest du drei Objekte sehen, die in etwa wie folgt aussehen:

MyBB global messages: This message group has not been imported previously. MyBB index page: This message group has not been imported previously. MyBB show thread: This message group has not been imported previously.

Wenn dein Projekt viele Dateien beinhalten soll, kann es sinnvoll sein, ein Skript zu schreiben, das die YAML-Datei für dich generiert. Ein Beispiel befindet sich auf trunk/translatewiki/StatusNet/genStatusNet-plugins.php.

Schritt 4: Gesamtgruppe
Das Hinzufügen einer Gesamtgruppe und die Definition der Nachrichtendateien als deren Untergruppen hat zwei Vorteile:


 * Weniger Arbeit für Übersetzer, um unterschiedliche Nachrichtengruppen auszuwählen, insbesondere bei Wartungsarbeiten. Übersetzer können einfach die Gesamtgruppe öffnen und alles, was aktualisiert oder übersetzt werden muss, für alle Gruppen übersetzen oder aktualisieren.
 * Statistiken können für die Gesamtgruppe, d.h. das ganze Projekt, erstellt werden.

Um eine Gesamtgruppe zu definieren musst du den folgenden Abschnitt direkt nach dem Abschnitt TEMPLATE und vor der Definition der einzelnen Untergruppen einfügen:

Damit sind wir ziemlich weit gekommen, jedoch fehlt noch ein Schritt. Wenn du zu diesem Zeitpunkt auf Special:Translate gehst, wirst du die MyBB-Gesamtgruppe sehen (und sie funktioniert!), jedoch werden auch die Untergruppen als getrennte Gruppen aufgelistet. :(

Dies kannst du beheben, indem du die folgende Zeile in deine  einfügst:



Dies sorgt dafür, dass von allen Gruppen, deren ID zu dem vorgegebenen Muster passt, nur die erste Gruppe angezeigt wird und alles unterhalb dieser Gruppe versteckt wird. Das ist zwar unschön, funktioniert jedoch. Diese Konstruktion unterstützt nur zwei Stufen, obwohl Gesamtgruppen Teil von Gesamtgruppen sein können.

Wenn du jetzt auf Special:Translate gehst, siehst du nur die Gesamtgruppe MyBB. Außerdem wirst du einen Link "Zeige 3 Untergruppen" sehen; wenn du ihn anklickst, werden dir die Namen der Untergruppen angezeigt.

Sieh dir die Anleitung für TAGS und weitere Abschnitte an, die wir in dieser Anleitung nicht behandelt haben.

Schritt 5: Aufräumen
YAML-Dateien von Projekten, die von translatewiki.net unterstützt werden, werden in das -Repositorium auf Git übernommen.

In translatewiki.net befinden sich die -Zeilen in. Das Sandboxwiki auf translatewiki.net hat keine -Datei, weshalb wir alles zu   hinzugefügt haben.