Mehrsprachigkeit

webERP kann in jede beliebige Sprache übersetzt werden, so dass die gesamte Web-Oberfläche in der Sprache des Benutzers angezeigt werden kann. Das System kann zur gleichen Zeit unterschiedliche Sprachen für unterschiedliche Benutzer anzeigen, das ist davon abhängig, welche Sprache in den Benutzereinstellungen des jeweiligen Benutzers festgelegt ist.

Um eine Übersetzung zu erstellen, wird die folgende Vorgehensweise empfohlen:
1. Tragen Sie sich hier in die Mailing-Liste ein.

Lassen Sie die Mitgieder der Liste wissen, dass Sie mit einer Übersetzung helfen wollen, vielleicht hat schon jemand daran gearbeitet.

2. Beschaffen Sie sich die neueste Datei messages.po und geben Sie die Übersetzungen mit ihrem Lieblingseditor ein. Die neueste messages.po-Datei finden Sie im neuesten Archiv unter:

www_root/webERP/locale/en_GB/LC_MESSAGES/message.po
Bearbeiten Sie diese Datei, indem Sie den in der mit msgid gekennzeichneten Text in dem mit msgstr gekennzeichneten Feld übersetzen. Sichern Sie sich, dass dieser Text ordentlich in Anführungszeichen gesetzt wird. Wenn im Text Html-Tags vorkommen, übernehmens Sie diese so in die Übersetzung. Vervollständigen Sie auch die Angaben im Kopf der Datei massages.po mit Ihren Angaben, so dass Ihnen Ihre Zuarbeit ordentlich zugeschrieben wird.
Es ist besonders wichtig, dass Sie die Zeichenkette "ISO-8859-1" (zum Zeitpunkt als das geschrieben wurde etwa um die Zeile 19400 in der Datei messages.po) in der Übersetzung mit dem Zeichensatz belegen, den Sie für Ihre Übersetzung verwenden. webERP verwendet diese Übersetzung beim Versenden des HTML-Headers, damit die gesamte Seite im Browser richtig decodiert wird.

Es empfiehlt sich zum Übersetzen poedit einzusezten, weil es einige zeitsparende Funktionen für das Erstellen von Übersetzungsdateien besitzt.

Schicken Sie die Datei die Ihre Übersetzung enthält an submissions@web-erp.org ein.

Ein Archiv mit dem neuen Sprachverzeichnis und Anleitungen wird bei sourceforge eingestellt, so dass jeder auf Ihre Übersetzung zugreifen kann.

Technische Übersicht

Wie es gemacht wird

webERP verwendet das GNU-gettext-Paket für die Sprachübersetzung. Damit die gettext-Bibliothek verwendet werden kann, muss sie auf Ihrem Webserver installiert sein. PHP muss mit den gettext-Funktionen kompiliert werden. Seit der Version 3.01 wird dank Brian Gomez und der Autoren von PHP-gettext Danilo Segan und Nico Kaiser deren PHP-Klasse zusammen mit webERP ausgeliefert, damit die Übersetzungen auch funktionieren (wielleicht etwas langsamer als mit den Funktionen der gettext-Bibliothek), wenn gettext nicht installiert ist.

Die gettext-Übersetzungsdateien werden im Locale-Verzeichnis abgelegt, in welchem Unterverzeichnisse für die einzelnen Sprachversionen vorhanden sind. Die Unterverzeichnisse werden durch einen fünf Zeichen langen Schlüssel gekennzeichnet, zwei kleinen Buchstaben für die Sprache, einem Unterstrich und zwei großen Buchstaben für das Land. Die englische Version für die USA heißt so en_US, die für die britische Version en_GB. en_GB ist die Sprachversion, in der webERP geschrieben ist. Die Sprachversion für diesen Schlüssel muss auf dem Webserver installiert sein. Die installierten Sprachversionen können Sie mit dem Kommando locale -a in der Konsole des Linux-Webservers prüfen.

Neue Verzeichnisse müssen erstellt werden, wenn ein Übersetzer eine lokale Sprachversion haben möchte. Unter dem Verzeichnis mit dem fünf Zeichen langen Schlüssel der Sprachversion gibt es ein weiteres Unterverzeichnis LC_MESSAGES, in diesem werden die Sprachendateien abgelegt. In jedem solchen Verzeichnis gibt es zwei Dateien:

1. Die Datei messages.po enthält alle Zeichenketten, die zu übersetzen sind. Das ist die einzige Datei, die für den Übersetzer von Bedeutung ist.
2. Die Datei messages.mo ist die maschinell von gettext durchsuchte Übersetzungsdatei. Diese Datei wird mit dem gettext-Werkzeug msgfmt (oder msgfmt.exe auf Windows-Rechnern) aus der Datei messages.po übersetzt. Die Hauptarbeit ist getan, wenn die messages.po übersetzt ist.

Für die Bearbeitung der .po-Datei kann jeder Texteditor verwendet werden. Es gibt auch ein Werkzeug poedit, das von Übersetzern oft empfohlen wird und auch der GNU Emacs hat einen speziellen PO-Modus.

Die Datei messages.po verstehen

Die Übersetzung wird vorgenommen, indem die Zeichenketten ind der Datei messages.po in die andere Sprache übersetzt werden. Es ist wichtig, diese Übersetzung mit der neuesten messages.po-Datei aus dem Verzeichnis locale/en_GB/LC_MESSAGES/ vorzunehmen. Sie haben auch die Möglichkeit, diese mit einer Email an info@web-erp.org oder eine Nachricht im Übersetzungs-Board abzufordern.

Die Datei messages.po besteht aus einzelnen Abschnitten,

z. B. bei einer französischen Übersetzungsdatei:

#: AccountGroups.php:8 index.php:890
msgid "An example string in English that needs to be translated"
msgstr="Une corde d'exemple dans le ce anglais doit être traduite "


Die Zeile #: AccountGroups.php:8 index.php:890
bedeutet, dass die folgende Zeichenkette im Skript AccountGroups.php in Zeile 8 und im Skript index.php in Zeile 890 vorkommt. Es könnte für die Übersetzung nützlich sein zu wissen, in welchem Zusammenhang eine Zeichenkette vorkommt. Zeichenketten, die in der Anwendung in verschiedenen Skripten mehrfach vorkommen, müssen nur einmal übersetzt werden. In manchen Fällen finden Sie sogar eine lange Liste von Skripten.

msgid "An example string in English that needs to be translated"

Dieser Text ist die englische Zeichenkette, die bei der Ausgabe durch den Text in msgstr ersetzt wird. Wenn msgstr leer ist (""), gibt gettext die englische Zeichenkette aus.

Der Aufwand bei der Übersetzung besteht darin, die übersetzte Nachricht zwischen die Anführungszeichen in der Zeile msgstr einzutragen.

Der Kopf der .po-Datei

Die .po-Datei beginnt mit einigen einleitenden Kommentaren, die ebenfalls vervollständigt werden sollten.

"SOME DESCRIPTIVE TITLE", sollte ausgefüllt werden mit webERP - LANGUAGE Translation File, wobei LANGUAGE die Sprache angibt, in welche die Datei übersetzt wurde.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. sollte Ihren Namen und die email-Adresse enthalten und das Jahr, in dem Sie die Übersetzung durchgeführt haben.

Project-Id-Version
Das sollte die webERP-Versionsnummer sein, zu der die Übersetzung gehört

PO-Revision-Date
Das ist das Datum Ihrer letzten Eintrageungen in der Datei

Last-Translator
Das ist Ihr Name und die Email-Adresse, an die sich die Benutzer in Ihrer Sprache wenden können, wenn irgendwelche Übersetzungen unklar sind.

Content-Type
Ersetzen Sie 'CHARSET' mit der Schlüsselbezeichung für Ihre Sprache.
Im GNU-System werden die folgenden Codierungen häufig für die entsprechenden Sprachen verwendet:

* ISO-8859-1 für Afrikaans, Albanisch, Baskisch, Katalalisch, Holländisch, Englisch, Estnisch, Faröisch, Finnisch, Französisch, Galizisch, Deutsch, Grönländisch, Isländisch, Indonesisch, Irisch, Italienisch, Malaiisch, Norwegisch, Portugiesisch, Spanisch, Schwedisch,
* ISO-8859-2 für Kroatisch, Tschechisch, Ungarisch, Polnisch, Rumänisch, Serbisch, Slowakisch, Slowenisch,
* ISO-8859-3 für Maltesisch,
* ISO-8859-5 für Mazdonisch, Serbisch,
* ISO-8859-6 für Arabisch,
* ISO-8859-7 für Griechisch,
* ISO-8859-8 für Hebräisch,
* ISO-8859-9 für Türkisch,
* ISO-8859-13 für Lettisch, Litauisch,
* ISO-8859-15 für Baskisch, Katalanisch, Holländisch, Englisch, Finnisch, Französisch, Galizisch, Deutsch, Irisch, Italienisch, Portugiesisch, Spanisch, Schwedisch,
* KOI8-R für Russisch,
* KOI8-U für Ukrainisch,
* CP1251 für Bulgarisch, Weißrussisch,
* GB2312, GBK, GB18030 für die vereinfachte Schreibweise des Chinesischen in der VR China,
* BIG5, BIG5-HKSCS für das traditionelle Chinesisch in Taiwan und Hongkong,
* EUC-JP für Japanisch,
* EUC-KR für Koreanisch,
* TIS-620 für Thailändisch,
* UTF-8 für jede Sprache, einschließlich der oben aufgeführten.

Wenngleich es eine große Anzahl von möglichen Zeichen in der UTF-8-Codierung gibt, macht die Größe der in PDF-Dateien einzubettenden Schriftartendateien die erzeugten PDF-Dateien für eine Übertragung über langsame Wählleitungen zu groß und sollte deshalb zugunsten der spezielleren Zeichensätze oben vermieden werden.

Der Name des Zeichensatzes kann sowohl groß oder klein geschrieben werden. Normalerweise wird die Großschreibung bevorzugt.

Content-Transfer-Encoding
Setzen Sie dies auf 8bit.

Verwaltung

Wenn diese Übung vollständig haben, muss die Datei an den Projektadministrator über die Email-Adresse submissions@webERP.org zum Erstellen der .mo-Datei zurückgeschickt werden. Das neue Verzeichnis wird in einer ZIP-Datei zum Entpacken in das webERP-Verzeichnis erstellt. Die Sprache wird dann auch für andere Nutzer von webERP zur Verfügung gestellt.

Jedesmal wenn Sie sich am System anmelden, setzt das System die Sprache auf das was Sie im Benutzerstammsatz eingetragen haben. Der Benutzer kann einstellen, welche Sprache er möchte, indem er auf seinen Benutzernamen in der Menüzeile drückt, wodurch er in seine Benutzereinstellungen gelangt. Wenn Sie die Spracheinstellung ändern, wird dies aktiv, wenn sie diese Einstellung sichern. Nur Spracheinstellungen die im locale-Verzeichnis installiert sind, stehen den Benutzern für die Auswahl zur Verfügung.

Weitere Ressourcen

Die GNU gettext-Beschreibung

Übersetzungshilfsmittel

webERP wird zusammen mit einigen Online-Werkzeugen für die Sprachenverwaltung ausgeliefert, es gibt aber einige Probleme bei der Pflege von Übersetzungen mit diesen Werkzeugen. Im Einzelnen können bestimmte Zeichen Probleme bereiten und Zeichencodierungen können verlorengehen. Es kann daher die Verwendung dieser nicht empfohlen werden, außer für eine Ad-Hoc-Pflege, wenn die Sicherung der letzten messages.po noch anderweitig verfügbar ist.

Im Folgenden wird die Verwendung dieser mit webERP gelieferten Werkzeuge für das Anlegen einer neuen Sprachdatei und die Pflege der Übersetzungen beschrieben.

Allgemein gilt, dass Sie für die Bearbeitung einer Sprache diese zuerst einmal auswählen müssen. Dazu klicken Sie auf Ihren Benutzernamen in der Menüzeile, um in die Benutzereinstellungen zu gelangen. Wählen Sie die Sprache, die Sie bearbeiten wollen aus und drücken Sie auf Speichern. Wenn die Sprache, die Sie bearbeiten wollen, noch nicht existiert können Sie mit dem Servicewerkzeug 'Eine neue Sprache zum System hinzufügen' (siehe unten) eine neue Übersetzung beginnen. Bei einer neuen webERP-Installation ist zunächst nur Englisch (en_GB) verfügbar. Die neuesten Sprachpakete können Sie von dersourceforge-webERP-Seite herunterladen.

Übersetzungen werden über das Servicemenü gepflegt, das hat selbst keinen Link vom Hauptmenü, weil nur der Systemadministrator zugriff haben sollte. Unberechtigte Änderungen an der Sprachdatei werden dadurch ausgeschlossen. Das Servicemenü ist Z_index.php, wenn Sie auf der Hauptseite sind, müssen Sie im Browser nur Z_ davorschreiben. Die URL bringt Sie in das Servicemenü (nur wenn Sie die Systemadninistratorenberechtigungen haben). Die Übersetzungen werden über den Link "Sprachdateien bearbeiten" verwaltet.

Für die Bearbeitung der Sprachdateien sind vier Werkzeuge vorhanden:
  • Die System-Sprachdatei neu erstellen
  • Eine neue Sprache zum System hinzufügen
  • Sprachdatei-Kopf bearbeiten
  • Sprachdatei-Module bearbeiten


  • Beachten Sie, dass die Erläuterungen darüber, was das System macht, für diejenigen bestimmt sind, die das System bedienen und die Dateien verwalten. Wenn Sie sich nur mit der Übersetzung beschäftigen, müssen Sie das nicht verstehen.

    Die System-Sprachdatei neu erstellen

    Das System hat nur eine Systemsprachdatei. Wenn eine neue Sprache angelegt wird, wird eine Kopie dieser Datei angelegt, die für die gewünschte Sprache bearbeitet wird. Die Neuerstellung dieser System-Sprachdatei besteht darin, dass alle zum System gehörenden Skriptdateien durchgegangen werden, um die gefundenen Meldungen in eine neue Systemsprachdatei aufzunehmen. Wenn Sie das vor dem Beginn der Übersetzung durchführen, stellen Sie sicher, dass Sie mit den aktuellen Zeichenketten arbeiten.

    Eine neue Sprache zum System hinzufügen

    Verwenden Sie dieses Werkzeug, um eine neue Sprache anzulegen. Es ist wichtig, dass Sie sich vergegenwärtigen, dass Sie nur Sprachen verwenden können, für die die entsprechenden Sprachendateien auf dem Server vorhanden sind. Der Sprachenschlüssel muss den Sprachdateien auf dem Webserver entsprechen. Geben Sie die Sprache in der Form xx_XX ein, wobei die ersten zwei Zeichen die Kleinbuchstaben für die entsprechende Sprache (en für Englisch) sind, die letzten beiden Großbuchstaben sind der Länderschlüssel wie US für Vereinigte Staaten von Amerika. Der Unterstrich trennt Sprachen- und Länderschlüssel und vervollständigt den Schlüssel auf insgesamt 5 Zeichen. Sie müssen auf Ausführen klicken nachdem Sie den Schlüssel eingegeben haben, damit die Sprache angelegt wird. Das System erstellt daraufhin ein neues Sprachenverzeichnis unter dem Verzeichnis locale/ und ein Verzeichnis LC_MESSAGES wiederum in diesem Sprachenverzeichnis. Dann wird in dieses neue Verzeichnis locale/xx_XX/LC_MESSAGES die Systemdprachdatei messages.po hineinkopiert. Am Anfang gibt es noch keine Übersetzungen in dieser neuen Datei.

    Nachdem Sie die neue Datei angelegt ist müssen Sie, um die Übersetzungswerke nutzen zu können, zuerst Ihre Benutzersprache auf die neue Sprache umstellen. Um die Sprache zu wechseln, wird der auf dem Bildschirm oben links angezeigte Benutzername angeklickt, und die das Auswahlkästchen auf der Seite Benutzereinstellungen sollten nun auch die oben neu angelegte Sprache mit anzeigen. Wählen Sie die neue Sprache aus, damit Sie die Übersetzungswerkzeuge darauf anwenden können.

    Es ist nicht nötig, die Struktur der Sprachdatei im Detail zu kennen, wenn Sie mit den angebotenen Übersetzungswerkzeugen arbeiten wollen. Die Angaben unten werden nur zur Information angeboten. Die Sprachdatei messages.po besteht aus:
  • Einem Kopfteil, dessen kritische Angabe für den Übersetzer der Zeichensatz ist, der die Buchstaben der Sprache abbildet
  • Den einzelnen Meldungs-Identifikatoren, die mit msgid beginnen und dann den zu übersetzenden englischen Text, eingeschlossen von Anführungszeichen, beinhalten. Die Skripte, in denen die Zeichenkette vorkommt, wird ebenfalls oberhalb jeder msgid-Zeile angegeben.
  • Die Meldungszeichenketten, die mit msgstr beginnen. In einer neuen Datei messages.po sind alle "". Die Aufgabe des Übersetzens ist es, dass für die entsprechende Sprache in msgstr ein Text eingegeben wird, der dem Text in msgid entspricht.


  • Sprachdatei-Kopf bearbeiten

    Mit diesem Werkzeug kann der Kopf der Sprachdatei bearbeitet werden. Ein wichtiger Grund dafür ist es, den Zeichensatz anzugeben, der für diese Spracheinstellung angewendet werden soll. Für Englisch wird der Zeichensatz gewöhnlich auf ISO 8829-1 oder etwas ähnliches gesetzt. Nachdem Sie die verschiedenen Bereiche des Kopfes bearbeitet haben, müssen Sie am unteren Rand auf Speichern klicken, damit die Eingaben gespeichert werden.

    Sprachdatei-Module bearbeiten

    Der Hauptteil der Übersetzungsarbeit wird mit diesem Werkzeug gemacht. Zuerst wählen Sie die Sprache, die Sie bearbeiten wollen und dann wählen Sie Sprachdatei-Module bearbeiten. Für eine vollständige Übersetzung des gesamten Systems müssen Sie alle diese Module übersetzen. Viele ziehen zuerst einmal die Module von index.php und includes/header.inc vor, damit das Hauptmenü in ihrer Sprache erscheint. Von da aus können zuerst die wichtigsten Module bearbeitet werden oder alles nacheinander. Ein Merksystem sollte verwendet werden, damit Sie wissen, welche Module in den nachfolgenden Schritten noch bearbeitet werden müssen.

    Wenn Sie die Sprache und Module ausgewählt haben, klicken Sie auf Ausführen. Eine Oberfläche erscheint, in der die Zeichenketten des ausgewählten Moduls angezeigt werden und daneben ein Bereich, in den Sie die Übersetzung der Zeichenkette eintragen. Rechts davon ist eine Liste von Zeilennummern, wo die Zeichenkette innerhalb des Moduls vorkommt. Nachdem Sie die Übersetzungen eingetragen haben, klicken Sie Speichern, damit alle Änderungen gesichert werden.

    Wenn Sie an Ihrer Version von webERP schon etwas Entwicklungsarbeit geleistet haben, ist es möglich, neue Zeichenketten, die von den Entwicklern erstellt wurden in die vorhandene Sprachdatei einzumischen und damit eine messages.po-Datei zu erstellen, die alle benötigten Zeichenketten enthält. Wenn einige Meldungen noch in Englisch erscheinen, aber beim Bearbeiten der Module für diesen Bildschirm sind keine nicht übersetzten Meldungen, dann wissen Sie, dass Sie die vorhandene messages.po-Datei mit vorhandenen neuen Meldungen mischen müssen. Damit alle Zeichenketten vom gettext-Werkzeug ermittelt werden, müssen Sie zuerst "Die System-Sprachdatei neu erstellen" aufrufen. Dann klicken Sie im Bild "Sprachdatei-Module bearbeiten" auf "Meldungen um neue Zeichenketten ergänzen", damit wird die neu erstellte Systemsprachdatei in die vorhandene Übersetzung hineingemischt.