Hilfe:Erweiterung:Übersetzen/Unstrukturierte Elementübersetzung

This page is a translated version of the page Help:Extension:Translate/Unstructured element translation and the translation is 100% complete.

Auf dieser Seite erfährst Du, wie Du die Übersetzung von benutzerdefinierten Wiki-Benutzeroberflächen-Nachrichten mit der Translate-Erweiterung etwas einfacher gestalten kannst. Dies gilt für jeden Teil des Wikis, den Du automatisch in der Sprache der Benutzeroberfläche bereitstellen möchtest. Das typischste Beispiel ist die Seitenleiste, da es nur eine geben kann. Dieselbe Methode kann aber für die Hauptseite verwendet werden, wenn Du alle Übersetzungen unter demselben Titel haben oder sogar für Vorlagen verwenden möchtest.

Diese Methode ist auch auf Wiki-Inhalte anwendbar, bei denen die Übersetzung ganzer Seiten einfach nicht passt, z. B. Seiten mit vielen Markups oder Vorlagen, deren Markups Du den Übersetzern nicht zur Verfügung stellen möchtest. Dies alles dreht sich um Interface-Aussagen oder das magische Wort {{int:}}, das Dir erlaubt überall dort Interface-Aussagen einzufügen, wo Du Wikitext schreiben kannst. Dieses Magische Wort ermöglicht es, die Aussage, ob Standard, individualisiert oder neu, automatisch in die jeweilige Sprache der Benutzeroberfläche zu ersetzen.

Du kannst es verwenden, um die automatische Sprachbezogenheit der Benutzeroberfläche des Wikis auf den Inhalt des Wikis zu übertragen, aber es löst das Problem nicht für anonyme Benutzer, die die Sprache der Benutzeroberfläche nicht standardmäßig ändern können. Beachte den Hinweis zur Universal Language Selector-Erweiterung weiter unten.

Im Vergleich zu einer reinen Seitenübersetzung, weist diese Methode einige Nachteile auf:

  1. MediaWiki-Entwickler raten normalerweise von der Verwendung von {{int:}} ab, da es den Cache fragmentiert. Anstatt eine zwischengespeicherte gerenderte Version einer Seite zu speichern, muss sie bei Verwendung von {{int:}} möglicherweise in Hunderten von verschiedenen Sprachen zwischengespeichert werden.
  2. Die Einrichtung ist schwieriger, da Zugriff auf die Wiki-Konfiguration erforderlich ist.
  3. Veraltete Übersetzungen werden nicht automatisch nachverfolgt, und die Abschlussstatistik ist möglicherweise deaktiviert, wenn neue Nachrichten hinzugefügt oder gelöscht werden.
  4. Nur Wiki-Administratoren können Nachrichten zu den Nachrichtengruppen hinzufügen und diese übersetzen. Dies bedeutet, dass das System nur für Seiten geeignet ist, die sich nicht oft ändern, sonst würden Administratoren mit zu viel Nacharbeiten überhäuft.

Positiv ist, dass es die meiste Zeit funktioniert und Du die Arbeit trotzdem erledigen kannst. Es gibt zwei Tutorials, die Beispiele für die gängigen Anwendungsfälle enthalten. Zuvor gibt es einen Abschnitt, in dem beschrieben wird, wie Abschnitte eingerichtet werden. Dies ist bei dieser Methode immer erforderlich.

Einrichtung

Ein Serveradministrator muss diesen Schritt ausführen. Das folgende Snippet muss zu LocalSettings.php hinzugefügt werden:

$wgHooks['TranslatePostInitGroups'][] = function ( &$list, &$deps, &$autoload ) {
	$id = 'wiki-sidebar';
	$mg = new WikiMessageGroup( $id, 'sidebar-messages' );
	$mg->setLabel( 'Seitenleiste' );
	$mg->setDescription( 'Meldungen, die in der Seitenleiste dieses Wikis verwendet werden.' );
	$list[$id] = $mg;
	return true;
};

Die Abschnitts-ID wiki-sidebar muss eindeutig sein, verwende dieselbe ID also nicht für mehrere Abschnitte. Der zweite Parameter des Konstruktors WikiMessageGroup, sidebar-messages, bezieht sich auf die Seite [[MediaWiki:Sidebar-messages]]. Die Bezeichnung wird in Dropdown-Listen und an anderen Stellen angezeigt, an denen Du einen Abschnitt auswählen kannst. Die Beschreibung wird in Special:Translate angezeigt. Dies sind die Werte, die Du ändern kannst und solltest, wenn Du einen neuen benutzerdefinierten Abschnitt hinzufügst.

Tutorial zur sprachbezogenen Seitenleiste

Wir gehen davon aus, dass der Einrichtungsschritt bereits durchgeführt wurde. Dann solltest Du die Anleitung zur Anpassung der Seitenleiste sorgfältig befolgen. Angenommen, die folgende einfache Seitenleiste wurde erstellt:

* sidebar-commonpages
** FAQ|sidebar-faq

Und [[MediaWiki:Sidebar-commonpages]] enthält Common pages, während [[MediaWiki:Sidebar-faq]] den Frequently asked questions enthält.

Dann müssen wir nur noch zu [[MediaWiki:Sidebar-messages]] (oder was auch immer im vorherigen Schritt definiert wurde) gehen und dort schreiben:

sidebar-commonpages sidebar-faq

Das heißt, die Namen der Systemnachrichten ohne das durch Leerzeichen getrennte Namensraum-Präfix "MediaWiki:".

Gehe dann zur [[Special:Translate/wiki-sidebar]] (oder was auch immer im vorherigen Schritt definiert wurde; siehe [[Special:Translate]] für die Liste der definierten Gruppen). Jetzt ist es möglich, die Nachrichten in andere Sprachen zu übersetzen. Da sich alle Nachrichten im MediaWiki-Namensraum befinden, kann nur ein Wiki-Administrator die Nachrichtenliste bearbeiten und tatsächlich übersetzen.

Tutorial zur sprachbezogenen Hauptseite

Ein weiterer Anwendungsfall ist eine Seite mit vielen Markups oder Vorlagen. Der Vorteil dieser Methode ist, dass die Sprache automatisch in der Sprache der Benutzeroberfläche angezeigt wird. Der Nachteil ist, dass zum Ändern der Sprache, in der die Seite angezeigt wird, die Sprache der Benutzeroberfläche geändert werden muss.

Die Handhabung ist dieselbe wie im vorherigen Tutorial:

  1. Richte eine neue Nachrichtengruppe ein.
  2. Nimm eine Wiki-Seite.
  3. Ersetze jeden übersetzbaren Teil durch {{int:Mainpage-messagename}} und verschiebe den Inhalt nach [[MediaWiki:Mainpage-messagename]].
  4. Gehe zu [[MediaWiki:Mainpage-messages]] (oder was im Setup definiert wurde) und füge dort die durch Leerzeichen getrennten Nachrichtennamen hinzu.
  5. Du bist fertig. Gehe zu [[Special:Translate]], um die Hauptseite zu übersetzen.

Hier ist ein Beispiel. Angenommen, [[Main Page]] enthält:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{SITENAME}} ist eine Community für Köche und Bäcker, die Schokolade lieben.''
</div>
Wir haben derzeit {{NUMBEROFPAGES}} Seiten voll mit Schokolade.

Dann ändere es in:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{int:mainpage-slogan}}''
</div>
{{int:mainpage-pagecount}}

Erstelle [[MediaWiki:Mainpage-slogan]] mit dem Inhalt:

{{SITENAME}} ist eine Community für Köche und Bäcker, die Schokolade lieben.

Erstelle [[MediaWiki:Mainpage-pagecount]] mit dem Inhalt:

Wir haben derzeit {{NUMBEROFPAGES}} Seiten voll mit Schokolade.

Erstelle [[MediaWiki:Mainpage-messages]] mit dem Inhalt:

mainpage-slogan mainpage-pagecount

Und du bist fertig! Du kannst jederzeit neue Inhalte hinzufügen und entfernen.

Sprachauswahl

Weder ein angemeldeter Benutzer kann auswählen, welche sprachbezogene Version der Seite angezeigt wird, es sei denn, er ändert seine Einstellungen, noch anonyme Benutzer können ihre Benutzeroberflächensprache festlegen und müssen immer die Standardsprache des Wikis verwenden. Eine mit diesem System übersetzte Seite wird in der Standard-Inhaltssprache angezeigt, wenn Du anonymen Benutzern keine Möglichkeit anbietest, ihre Sprache auszuwählen.

Zum Glück gibt es dafür eine Lösung. Mit der Erweiterung:UniversalLanguageSelector ist es möglich, die bevorzugte Sprache des Benutzers zu erraten und den Benutzer manuell eine andere Sprache auswählen zu lassen und die Auswahl in einem Cookie zu speichern, ohne dass Tricks wie der Parameter uselang erforderlich sind, der meist nur zur Fehlerbeseitigung geeignet ist.