Englisch:
|
PmWikiDe /
Internationalisierungen
Administratoren
PmWiki unterstützt die Internationalisierung von Netzseiten, erlaubt etwa Buchstaben mit Akzenten oder Umlauten in Seitennamen und bietet fast vollständige Anpassungsmöglichkeiten für PmWiki-Meldungen. Die meisten Anpassungen werden von PmWiki mittels der Funktion XLPage() zu Verfügung gestellt, die einen Satz von Übersetzungsvariablen aus einer Wikiseite lädt, üblicherweise XLPage genannt, die Seite kann aber beliebig umbenannt werden. Der Rest dieser Seite widmet sich der Installation, Konfiguration und dem Gebrauch der Unterstützung anderer Sprachen. Wenn Sie nach Werkzeugen und Hilfe suchen, um PmWiki in Ihrer Sprache zu lokalisieren oder wie Sie die vorhandene Übersetzung verbessern können, beginnen Sie mit der Seite Lokalisierung – dem Übersetzungsportal, auf englisch. Laden von Übersetzungs-SeitenSeiten in vielen anderen Sprachen, darunter Französisch, Deutsch, Holländisch und Spanisch, werden in der pmwiki.com-Website bereits bereitgestellt und gepflegt. Sie können ein Archiv dieser Übersetzungen von http://pmichaud.com/pub/pmwiki/i18n/ herunterladen. Entpacken Sie einfach das(die) Archiv(e) in das Verzeichnis, das Ihre pmwiki.php-Installation enthält. Jedes Archiv enthält eine Reihe von Dateien, die im wikilib.d/-Verzeichnis gespeichert werden, sowie einige spezielle Skripten für Übersetzungen, die andere Zeichensätze als iso-8859-1 (standardmäßig von PmWiki verwendet) benutzen. Sie können auch den Zeichensatz UTF-8 benutzen. Für eine deutsche Installation reicht es, die Dateien Nach dem Installieren der Übersetzungs-Seiten aktivieren Sie eine bestimmte Sprache, indem Sie einen Aufruf von XLPage() in Ihre config.php einfügen. Beispielsweise erfolgt das Auswählen der deutschsprachigen Meldungen mittels include_once("scripts/xlpage-utf-8.php"); # optional XLPage('de','PmWikiDe.XLPage'); Diese Anweisung lädt die deutschen Übersetzungen ('de') von der Seite PmWikiDe.XLPage. Die "include once"-Zeile wird empfohlen, wenn Sie ein neues Wiki aufsetzen und sie sollte vor der XLPage-Zeile stehen. Für Sprachen mit anderen Alphabeten als dem lateinischen ist die "include once"-Zeile zwingend nötig. Diese Zeilen sollten nahe dem Beginn der config.php-Datei stehen, aber nach jeglicher Setzung von Es ist problemlos möglich, mehrere Übersetzungsseiten zu laden. Wenn Sie also eigene Übersetzungen nutzen wollen, ohne die aus dem i18n-Archiv zu verändern, erzeugen Sie einfach eine neue Seite (siehe unten) und laden Sie. Ihre eigenen Übersetzungen müssen zuerst geladen werden, um Vorrang zu haben: XLPage('de','PmWikiDe.XLPageLokal'); # meine eigenen Übersetzungen XLPage('de','PmWikiDe.XLPage'); # aus i18n.tgz Wenn Sie beabsichtigen, in Ihrem Wiki mehrere Sprachversionen anzubieten und Wikigruppen zur Auswahl der Sprache verwenden wollen, benötigen Sie etwas Kode in der Anpassungsdatei der Gruppe (siehe Individuelle Einstellungen pro Gruppe). Wenn Ihr Wiki z. B. deutsche und englische Bereiche enthält und die deutschen Seiten in der Gruppe <?php if (!defined('PmWiki')) exit(); # wechsle zu deutschen Meldungen XLPage('de','PmWikiDe.XLPage'); Es bietet sich in diesem Fall an, auch eine Datei PmWikiDe.php gleichen Inhalts zu erstellen, um auch beim Zugriff auf die deutsche Dokumentation von PmWiki die deutsche Oberfläche von PmWiki zu bekommen. En.php ist in diesem Fall – für den englischen Teil – nicht nötig, da Englisch die Standardsprache ist. Als Alternative zur Anpassungsdatei "pro Gruppe" ist auch folgender Kode in der config.php möglich, der testet, ob eine XLPage in der Gruppe der angeforderten Seite ist und sie dann lädt (gilt für jede Sprache): $xlpage = FmtPageName('$Group.XLPage', $pagename); if (PageExists($xlpage)) XLPage($xlpage, $xlpage); Danach müssen Sie alle relevanten XLPage-Seiten in jede Gruppe kopieren, die die entsprechende Sprachunterstützung haben soll. Ein anderer (fortschrittlicher) Weg wäre, das folgende Skript in config.php einzufügen. Es fragt vom Webserver die Header ab, die vom Browser des Benutzers gesendet wurden, und wählt eine Sprache aus. $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); switch ($lang){ case "es": XLPage('es','PmWikiEs.XLPage'); break; case "en": XLPage('en','PmWikiEn.XLPage'); break; default: XLPage('en','PmWikiEn.XLPage'); break; } Siehe auch (englisch) Neue Übersetzungen erstellenWenn für die von Ihnen gewünschte Sprache keine Übersetzungsseiten existieren, ist es einfach, selbst welche zu erstellen! Eine XLPage-Übersetzungsdatei ist eine Datei, die einfach Zeilen der folgenden Form enthält: 'Ausdruck' => 'übersetzter Ausdruck', Dabei ist "Ausdruck" eine internationalisierte Phrase (durch 'Search' => 'Suchen',
" Wenn Sie neue Versionen von PmWiki-Seiten in anderen Sprachen erstellen, erwägen Sie bitte, sie zu der originalen PmWiki-Site hinzuzufügen, so dass sie mittels des i18n-Archives auch anderen zugänglich gemacht werden! Sie sollten auf jeden Fall das Lokalisationsportal aufsuchen, um weitere Informationen für eine effektive Internationalisierung von PmWiki zu erhalten. Anmerkung: Der Ausdruck "i18n" wird üblicherweise als Abkürzung für das englische Wort "internationalization" verwendet. Die Abkürzung kommt daher, dass zwischen dem ersten "i" und dem abschließenden "n" in "internationalization" genau 18 Buchstaben stehen – und nur wenige PC-Nutzer all diese 18 Buchstaben extra tippen wollen.
Sonderzeichen in WikiLinks ermöglichenUm Sonderzeichen wie zum Beispiel deutsche Umlaute in WikiLinks zu ermöglichen, muss die "locale"-Einstellung des Servers richtig eingestellt werden, damit PmWiki die passende Zeichensatzdefinition verwendet. Falls das wegen beschränktem Zugriff auf die Serverkonfiguration (Hosting) nicht möglich ist, kann PmWiki so eingestellt werden, dass eine bestimmte "locale"-Einstellung aus den XLPage Optionen verwendet wird (siehe XLPageTemplate). Für deutsche Umlaute ist zum Beispiel erforderlich:
Hinweis: Die erforderliche "locale" Einstellung kann vom Betriebssystem und der spezifischen Installation abhängen. FAQWenn mein Wiki internationalisiert ist durch die config.php, wie kehre ich für eine bestimmte Gruppe zu Englisch zurück? Benutzen Sie Wenn mein Wiki in Englisch ist und ich nur eine Seite oder eine Gruppe auf Spanisch haben will, schreibe ich dann Ja, das ist gewöhnlich die beste Methode. Wenn Sie das mit vielen verteilten Seiten tun oder mit mehreren Sprachen, finden Sie es vielleicht leichter zu verwalten, wenn Sie die Übersetzungen alle in config.php laden wie hier: XLPage('es','PmWikiEs.XLPage');
XLPage('fr','PmWikiFr.XLPage');
XLPage('ru','PmWikiRu.XLPage');
In der Gruppen- oder Seitenkonfigurationsdatei müssen sie dann nur Anmerkung: Obwohl diese Methode leichter zu verwalten ist, ist sie etwas langsamer, weil jedes Mal alle Übersetzungstabellen für jedes Seitenansehen geladen werden, auch wenn sie nicht gebraucht werden. Wofür steht der erste Parameter in dieser Funktion? Wie wird er benutzt? Der XLPage-Mechanismus erlaubt mehrere Übersetzungssätze zu laden, der erste Parameter dient dazu, diesen Satz zu bestimmen. Angenommen, ich will zum Beispiel Übersetzungen für normales Französisch und kanadisches Französisch haben. Anstatt zwei ganz und gar getrennte Sätze von Seiten zu verwalten, kann ich dies tun: XLPage('fr', 'PmWikiFr.XLPage'); XLPage('fr-ca', 'PmWikiFrCa.XLPage'); PmWikiFr.XLPage würde die ganzen Standardfranzösisch-Übersetzungen enthalten, wohingegen PmWikiFrCA.XLPage nur die kanada-spezifischen Übersetzungen enthalten muss – d. h. jene, die sich von denen aus der französischen Seite unterscheiden. Der erste Parameter unterscheidet die zwei Sätze der Übersetzungen. Zusätzlich kann ein config.php-Skript die und PmWiki nutzt nur die 'fr'- und 'en'- Übersetzungen (in dieser Reihenfolge), egal, wie viele Übersetzungen mit XLPage() geladen worden sind. Wie kann ich eine Übersetzung für einen individuellen String in einer PHP-Datei hinzufügen? Benutzen Sie die XLSDV()-Funktion, um eine Übersetzung für einen bestimmten (englischen) String zu liefern. Zum Beispiel hiermit in der config.php-Datei XLSDV('nl', array('my English expression'=>'mijn Nederlandse uitdrukking')); wird jedes Vorkommen des Variablenausdrucks Wenn Sie eine Übersetzung in einer PHP-Datei erhalten wollen, benutzen Sie die $local_string = XL("my English expression"); Aber seien Sie auf der Hut: Die XLPage()-Funktion benutzt intern auch die XLDV()-Funktion für ihre Übersetzungspaare und nur die erste Definition wird akzeptiert. Wenn daher die niederländische XLPage bereits einen Übersetzung für ihren String wie 'my English expression' => 'bla bla', besitzt und Sie wollen den überschreiben, müssen sie Ihr XLDV('nl', ...) vor dem Aufruf vom korrespondierenden XLPage('nl',...) benutzen. Andernfalls, durch Benutzen von XLSDV() nach XLPage() – z. B. innerhalb eine Rezeptes, das später in der config.php geladen wird – wird ihre Übersetzung nur funktionieren, solange keiner 'my English expression' in jener XLPage definiert.
Übersetzung von PmWiki.Internationalizations, Originalseite auf PmWikiDe.Internationalizations — Rückverweise
|