SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [vi] [zh] Espace de traduction

Herunterladen

Internationalisierung von Skeletten

Juli 2004

Alle Fassungen dieses Artikels:

Die Internationalisierung von Skeletten wird seit der Version SPIP 1.7 unterstützt.


Warum Skelette in mehreren Sprachen erstellen?

Sobald Dokumente online veröffentlicht werden, passt SPIP bestimmte Informationen automatisch an die jeweilige Standardsprache an. Das Datum wird zum Beispiel in der Standardsprache angezeigt, oder ein Artikel, eine Rubrik oder die Formulare (Formulare wie das Interface zum Posten von Nachrichten) sind in der entsprechenden Sprache eingestellt... Das alles wird automatisch von SPIP übersetzt und angepasst.

Das alleine reichte uns noch nicht: Ein Webmaster kann in seinen Skeletten eine bestimmte Anzahl von Textelementen einbinden, zum Beispiel die Texte für die Seitennavigation. Textelemente wie: "Plan der Seite", "Diesen Artikel beantworten", "In der selben Rubrik"... Für eine Seite in einer einzigen Sprache ist es simpel, die verschiedenen Textelemente einzufügen: Man fügt den Text einfach in den HTML-Code ein. Problematisch wird es, wenn man die Seite mehrsprachig entwickeln möchte: Unter einem deutschen Artikel möchte man "Diesen Artikel beantworten" anzeigen, aber unter einem englischen Artikel möchte man "Comment on this article" anzeigen.

[SPIP 1.7.2] bietet drei verschiedene Methoden um die Textelemente in mehreren Sprachen anzuzeigen:

— (1) Eine Methode ist das Speichern von Textelementen in den so genannten Sprachdateien, die getrennt von dem Skelett erstellt werden. (eine Datei pro Sprache)

Ein einziges Skelett (zum Beispiel artikel.html) ruft dann das Textelement aus der entsprechenden Sprachdatei auf. Mit dieser Methode zeigt ein und dasselbe Skelett artikel.html automatisch das Textelement "Diesen Artikel beantworten" oder "Comment on this document" an, je nach Spracheinstellung des Artikels. Wir empfehlen diese Methode, da sie die Updates einer Seite um vieles vereinfacht (man arbeitet nur mit einem Skelett, das die anderen Sprachen automatisch verwaltet). Diese neuen Funktionen von SPIP vereinfachen die gemeinsame Arbeit bei Übersetzungen. Administratoren die verschiedene Sprachen sprechen, können im privaten Bereich das selbe Interface einer Seite übersetzen, ohne die Skelette selbst manipulieren zu müssen.

— (2) Eine schnellere und technisch simple Methode ist die Erstellung von Skeletten für jede einzelne Sprache. Die Vorgehensweise ist einfach, man erstellt eine Datei artikel.html um die deutschen Artikel zu verwalten und eine Datei artikel.en.html um die englischen Artikel zu verwalten. (Anmerkung: artikel.html verwaltet eigentlich alle Sprachen, ausser Englisch). Wir empfehlen nicht diese Methode, wenn die Seite viele Sprachen nutzt und/oder wenn man verschiedene Skelette pro Rubrik verwendet. Ausserdem werden alle Vorteile dieser Methode auch von Methode 3 geboten, die im Folgenden beschrieben wird:

— (3) Die Methode "blocs multilingues", die seit [SPIP 1.7.2] angeboten wird, kann genauso gut in den Inhalten wie in den Skeletten integriert werden. Man braucht nur folgenden Code in die Skelette einzufügen:

und der Satz wird in der jeweiligen Sprache angezeigt. Auch wenn diese Methode sehr anpassungsfähig ist, erreicht sie ihr Limit, sobald sich die Anzahl der Sprachen erhöht und verschiedene Übersetzer an der Seite arbeiten. Das würde bedeuten, dass die Übersetzer das Skelett selbst manipulieren müssen. Dies wird durch die erste Methode vermieden.

1. Die Sprachdateien

Das Prinzip der Sprachdateien besteht aus einem Skelett, das auf ein Textelement verweist. Man fügt also in ein einziges Skelett den Code, der je nach Spracheinstellung auf ein bestimmtes Textelement ("String") verweist. Dadurch ändert sich nicht der Code, nur der Verweis auf das Textelement.

Zum Beispiel kann man entscheiden dass Code downloaden auf folgende Strings verweist:
— auf Deutsch, String: «Datei downloaden»,
— auf Englisch, String: «download this file»,
— auf Spanisch, String «descargar este archivo»,
— etc.

Es reicht dann in dem Skelett des Artikels artikel.html (ein Skelett verwaltet also alle Sprachen), folgenden Code einzufügen (notieren Sie sich die Syntax)

Auf der Seite erscheint dann die Übersetzung des jeweiligen Strings in der gewählten Sprache.

Ein weiteres Beispiel. In das Skelett artikel.html, fügen wir eine Schleife (boucle) ein, die alle Dokumente anzeigt, die mit dem Artikel in Beziehung stehen:

Wenn der Artikel auf Deutsch ist, wird folgendes angezeigt:

<a href="/IMG/jpg/meinDokument.jpg">Datei downloaden</a>

Wenn der Artikel auf Englisch ist:

<a href="/IMG/jpg/meinDokument.jpg">download this file</a>

und so weiter. Ein einziges Skelett mit immer dem selben Code zeigt also die Übersetzung des Textes an, in den jeweiligen Sprachen der Seite.

-  Bereits übersetzte Texte nutzen

Um die Arbeit der Webmaster zu erleichtern, bietet SPIP ein Reihe von bereits übersetzten Strings (übersetzt von den Übersetzern von SPIP). Mit diesen Strings kann der Webmaster schnell und einfach ein sofort funktionierendes Interface in mehreren Sprachen realisieren, selbst wenn er die Sprachen nicht spricht. Bei den vorübersetzten Strings handelt es sich um Textelemente die häufig auf den Seiten vorkommen.

Eine Liste der Strings finden Sie im privaten Bereich: Gehen Sie in die Sektion "Sprachen managen" im Bereich "Administration der Seite", klicken Sie dann auf die Registerkarte "Sprachdateien". Sie müssen dann nur noch den Code nach Ihren Wünschen abändern.

PNG - 14.4 kB
Les fichiers de langue dans l’espace privé

Beispiel: Ein Webmaster möchte ein Interface für eine deutsche Seite realisieren und auf Französisch und auf Arabisch. Aber er spricht weder Französisch, noch Arabisch. Er muss einfach nur noch den Code in den Skeletten abändern (wie oben beschrieben, Sie können die Codeschnipsel einfach kopieren, einfügen und abändern) und sich keine Gedanken darüber machen, woher er eine Übersetzung bekommen könnte. Die Übersetzungsarbeit wurde ihm von den Übersetzern von SPIP abgenommen.

Wenn dann eine weitere Sprache hinzukommt, zum Beispiel Polnisch, werden die Strings sofort ins Polnische übersetzt, ohne dass der Webmaster dies machen müsste.

Ein weiterer Vorteil dieser Methode: Sie erleichtert die Erstellung von Skeletten die sofort mehrsprachig angezeigt werden sollen. Ein Skelett, dass nach dieser Methode erstellt wurde, wird von SPIP automatisch in alle Sprachen übersetzt.

Die bereits übersetzten Strings werden mit SPIP standardmässig mitgeliefert. Vom technischen Standpunkt aus sind die Strings in den Sprachdateien "public" gespeichert:
— /ecrire/lang/public_de.php3 enthält die deutschen Strings,
— /ecrire/lang/public_fr.php3 enthält die französischen Strings,
— /ecrire/lang/public_en.php3 enthält die entlischen Strings
— etc.

-  Seinen eigenen Code erstellen

Des weiteren ist es möglich, seinen eigenen Code zu erstellen, entsprechend den Strings die man selbst hinzufügen möchte.

Es handelt sich also dabei um personalisierte Sprachdateien, basierend auf der Modeldatei public.... Um seine eigenen Dateien zu erstellen, installieren Sie in den Ordner /ecrire/lang:
— local_de.php3 um deutsche Strings zu definieren,
— local_en.php3 für englische Strings,
— ...

Zum Beispiel könnte man folgende Strings erstellen:
— Download um «Die aktuelle Version downloaden» anzuzeigen,
— Neues um «Neueste Modifikationen» anzuzeigen.

Nach dieser Methode fügen wir folgenden Code in die Skelette ein <:Download:> und <:Neues:>. Die Strings werden dann entsprechend der Übersetzung, die in den Dateien local_...php3 definiert wurde, angezeigt.

Es sei angemerkt, dass die Codenamen willkürlich definiert werden können: Sie können sie sich selbst aussuchen. Wir empfehlen Ihnen natürlich Codenamen auszusuchen, die Sie sich einfach merken können (anstatt Zahlen zu benutzen). Üblicherweise nutzt man beim Programmieren die Buchstaben des lateinischen Alphabets, ohne Akzente ...

Die Sprachdateien enthalten verschieden Übersetzungen des Codes den Sie nutzen werden. Dies sind PHP Dateien die jeweils eine assoziative Tabelle mit dem Code und den entsprechenden Strings in der jeweiligen Sprache enthalten.

Beispielsweise könnten sie folgenden Code enthalten:

-  Deutsche Version:

-  Katalanische Version :

Der Aufbau ist folgender:

— Dateianfang:

— Dateiende:

— Der Part, den man selber programmieren muss, besteht aus mehreren Zeilen, pro Zeile eine Definition. Programmieren Sie nach dem folgenden Modell:

N.B. Jede Definition endet mit einem Komma, bis auf die letzte Zeile.

N.B.2. Der Text des zu übersetzenden Strings wird in HTML-Code konvertiert ( Buchstaben mit Akzenten, sollten in ihr HTML Äquivalent konvertiert werden, zum Beispiel &eacute;).

Ein Apostroph innerhalb eines String muss gesondert behandelt werden. Man muss einen Antislash vor den Apostroph setzen. Zum Beispiel sollte der String "Wie geht’s" folgendermaßen eingetragen werden: Wie geht\'s.

Anmerkung: Es ist ein Programm vorgesehen, dass die Verwaltung und Erstellung der eigenen Sprachdateien ermöglicht, ohne dass man die PHP Dateien "per Hand" modifizieren muss. Ein solches Programm würde zusätzlich den Gebrauch von Sonderzeichen (Buchstaben mit Akzenten, Buchstaben des nicht okzidentalischen Alphabethes, Apostrophe...), sowie die Zusammenarbeit von mehreren Personen während einer Übersetzung des Interface der öffentlichen Seite vereinfachen.

Momentan wird das Programm zur Verwaltung der Übersetzung der Strings nicht direkt mit SPIP mitgeliefert. Die Anwendung ist noch sehr allgemein gehalten (Wir nutzen es zur Übersetzung aller SPIP Interfaces und nicht nur zur Übersetzung der Sprachdateien local...php3) und deshalb nicht sehr komplex im Verhältnis zur eigentlichen Aufgabe. Dieses Programm, trad-lang, dass wir zur Übersetzung der SPIP Software, der Seite spip.net, etc., nutzen, ist mit der GNU/GPL Lizenz erhältlich, aber nicht standardmässig in SPIP integriert. Sie können es downloaden, um es für Ihre Seite oder andere Softwareprojekte zu nutzen. Wenn Sie es verbessern möchten oder Veränderungsvorschläge haben, können Sie diese mit den Übersetzern von SPIP in der Newsgroupe diskutieren, spip-trad.

2. Für jede Sprache ein separates Skelett

Die zweite Methode ist eher für werdende Webmaster geeignet. Hier wird pro Sprache, ein Skelett erstellt. Ähnlich dem Prinzip der Erstellung von verschiedenen Skeletten pro Rubrik, um die Interfaces mit verschiedenen Layouts darzustellen.

Wir wollen eine Seite auf Deutsch realisieren (Standardsprache), auf Englisch und auf Französisch. Wir erstellen also drei Dateien mit drei verschiedenen Skeletten:
— artikel.html für das Deutsche (in Wirklichkeit für alle Sprachen die keiner Sprachdatei zugeordnet sind),
— artikel.en.html für das Englische,
— artikel.fr.html für das Französische.

(Anmerkung: Wenn man einen Artikel auf Spanisch veröffentlicht, obwohl das Skelett artikel.es.html nicht auf unserer Seite erstellt wurde, wird standardmässig das Skelett artikel.html benutzt.)

Wichtig: Den "pro Sprache"-Skeletten wird .lang am Ende des Namens hinzugefügt. Damit sie berücksichtigt werden, muss eine Standardversion auf der Seite existieren.

Für unser Beispiel heisst das, wenn unser Standardartikel artikel.html nicht existiert (wir haben ihn direkt artikel.de.html genannt), werden die englischen und französischen Sprachdateien ignoriert.

Man kann die Namensgebung "pro Rubrik" auch kombinieren, die folgende Reihenfolge wird nicht ignoriert:
— artikel=8.es.html (Skelett für die spanischen Artikel der 8. Rubrik, aber nicht für die Unterrubriken),
— artikel=8.html (Skelett für die Artikel der 8. Rubrik, aber nicht die Unterrubriken),
— artikel-2.es.html (Skelett für die spanischen Artikel der 2. Rubrik und die Unterrubriken),
— artikel-2.html (Skelett für die Artikel der 2. Rubrik und die Unterrubriken),
— artikel.es.html (Skelett für die spanischen Artikel),
— artikel.html (Skelett für die Artikel),
— artikel-dist.html (Skelett für die von SPIP mitgelieferten Artikel).

Anmerkung: Bis auf einige Ausnahmen muss man den normalisierten ISO zwei-Buchstaben Sprachcode anwenden, wie zum Beispiel «es». Eine Liste finden Sie auf der Seite der Bibliothek des US-Congress Um ein Maximum an Kompatibilität zu garantieren, muss man hauptsächlich die ISO zwei-Buchstaben Sprachcodes anwenden (« iso 639-1 »). Oder, falls sie existieren, um zum Beispiel eine Sprache genauer in ihrer Sprachfamilie zu bestimmen, die drei-Buchstaben Sprachcodes (« iso 639-2 T»). Deutsch wird zum Beispiel mit «de» bestimmt. Aber der ISO Standard umfasst nur 128 von 5000 bis 7000 gesprochenen Sprachen auf der Welt. Für die noch nicht katalogisierten Sprachen kann man sich auf der Seite ethnologue.com inspirieren lassen. Für mehr Informationen besuchen Sie einfach unsere Newsgroupe spip-trad.
Sich das Leben vereinfachen. Die folgende Methode erlaubt SPIP eine mehrsprachige Seite zu verwalten. Hierbei werden die Sprachen direkt mit den Rubriken assoziiert (und nicht pro Artikel). Wenn also die Artikel der selben Sprache in ein und der selben Rubrik (sogar pro Sektor) stehen, können wir ein spezielles Skelett pro Rubrik erstellen, ohne die Dateinamen pro Sprache zu benutzen.

Wenn beispielsweise alle spanischen Artikel sich in der 8. Rubrik befinden, können wir mittels dieser Methode einfach alle ans Spanische angepasste Dateien rubrik-8.html nennen, anstatt rubrik.es.html.

Man kann schon die Probleme erraten, die mit dieser Methode entstehen können:
— Die Datei artikel-2.html muss existieren, wenn wir wollen, dass artikel-2.es.html nicht ignoriert wird;
— Im Gegenzug können wir nicht entscheiden, dass artikel.es.html an Stelle von artikel-2.html genutzt wird, falls artikel-2.es.html nicht existiert: Die Methode pro Rubrik hat immer Priorität vor der Methode pro Sprache;
— Eine Änderung des HTML-Codes in einem Skelett verlangt also auch die gleiche Änderung in den anderen Versionen,
— Man sollte Sprachelemente in die Skelettdateien einfügen können, ohne dass man unbedingt die Sprache spricht (Stellen Sie sich vor, Sie erstellen nach dieser Methode ein Skelett auf Arabisch, obwohl Sie gerade mal ein bischen Plattdeutsch drauf haben ... ;).

Diese Methode eigenet sich also besonders für das schnelle Erstellen von nicht sehr komplexen Webseiten (wenige oder keine rubrik-spezifischen Skelette) und/oder die wenige verschiedene Sprachen enthalten. Sobald Sie ein grösseres Projekt mit verschiedenen Sprachen planen, empfehlen wir Ihnen wärmstens die Methode der Sprachdateien.

3. Mehrsprachige Blöcke

Die mehrsprachigen Blöcke, die im Artikel Réaliser un site multilingue erläutert werden, funktionieren sowohl in den Texten der Autoren, als auch für die Schlüsselbegriffe oder Skelette. Achtung, diese Blöcke generieren nur Text, keine SPIP Schleifen!

Diese leicht erlernbare und effiziente Methode eignet sich anfangs ohne Zweifel am Besten, um so schnell wie möglich eine mehrsprachige Seite zu erstellen. Sobald Ihre Seite stabil läuft, könnte Sie etwa das Bedürfnis überkommen, die Skelette zu verfeinern (sei es zur Anpassung an weitere Sprachen, oder die Distribution in Form von contrib, oder "professioneller" gestalten). Dann müssen Sie Ihre mehrsprachigen Blöcke in Sprachdateien umändern.


Layoutvorlage dieser Seite ansehen Realisiert mit SPIP | Espace de traduction | Redaktion