Wenn du bereits Unix/Linux Anwendung übersetzt hast, kennst du wahrscheinleich bereits die GNU gettext Programme und Bibliotheken. Falls dies der Fall ist, kannst du sofort mit der Übersetzung basierend auf den .po Dateien in den „language-files“-Ordnern beginnen.
Falls die gettext Programme und Konzepte neu für dich sind, lese weiter und informiere dich über die neuen Methoden.
ispCP wird zur Zeit mit Hilfe der GNU gettext Programme und Bibliotheken übersetzt. Die einzelnen Zeichenketten werden direkt im Quelltext bearbeitung und anschliessed extrahiert, sodass die Übersetzer diese direkt bearbeiten können.
Füher nutzte IspCP sogenannte Sprachvariabeln. Dieses Vorgehen hatte jedoch einige Nachteile. Jedesmal wenn eine neue Zeichenkette hinzugefügt wurde, mussten die Entwickler eine neue Sprachvariable anlegen welche danach übersetzt werden musste.
Sobald die Entwicklung einer neuen ispCP Version fertiggestellt ist, werden die Entwickler alle Zeichenketten mit Hilfe spezieller Werkzeugen in sogenannte Sprachdateien extrahieren. Diese Dateien findest du im Order ./language-files/. Alle Datien welche mindestens eine übersetzte Zeichenkette enthalten findest unter ihrem 639-1 ISO Länderkürzel. Alle Kürzel findest du unter http://www.loc.gov/standards/iso639-2/php/code_list.php.
Sobal du eine .po Datei öffnest findest du die Standard-Zeichenketten (Englisch) und Ihre Übersetzung:\
# #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-07-06 16:02-0500\n" "PO-Revision-Date: 2007-07-06 16:02-0500\n" "Last-Translator: FULL NAME\n" "Language-Team: English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" "X-Generator: x64PoPot 0.2\n" #. Please ignore this entry msgid "encoding" msgstr "UTF-8" msgid "_: Localised language" msgstr "English" msgid "ISPCP - Virtual Hosting Control System" msgstr ""
Der Kopf einer po-Datei enthält wichtige und nützliche Informationen für gettext und den Sprachkonverter.
Die ersten Linien des Kopfes können übersprungen werden:
# #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-07-06 16:02-0500\n" "PO-Revision-Date: 2007-07-06 16:02-0500\n" "Last-Translator: FULL NAME\n"
"Language-Team: English\n"
"Language-Team: Spanish (Mexico)\n"''
"MIME-Version: 1.0\n" Dieser Eintrag kann ignoriert werden. "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
Um die Übersetzung einfacher zu gestalten, nutzt das IspCP Übersetzungsystem spezielle Konversationsspezifikationen. Das sind Platzhalter die meistens aber nicht nur durch Nummern oder einen beliebigen skalaren Wert ersetzt werden.
Schauen wir uns mal ein Beispiel an:
#, php-format msgid "You have %d new support questions" msgstr "Tienes %d nuevas preguntas de soporte"
#, php-format msgid "You have %d new support questions" msgstr "The number of new support questions you have is: %d"
#, php-format msgid "%1$.2f %% [%2$d of unlimited]" msgstr "%1$.2f%% [%2$s de ilimitados]"
#~ msgid "suspended" #~ msgstr "suspendu" #~ msgid "enabled" #~ msgstr "activé"
Die Übersetzung kann getestet werden in dem man das Programm msgfmt ausführt (Bestandteil der gettext-Werkzeugsammlung):
msgfmt LANGUAGE.po –o LANGUAGE.mo
Kurz bevor eine neue Version veröffentlich wird oder sobald eine .po Datei mit neue Übersetzungen aktualisert werden, wird die definitive Sprachdatei generiert.
Falls du in der Zwischenzeit deine Übersetzung testen möchtest, kanns du den Online-Konverter benutzen, welche die Sprachdatei aus der angegebenen .po Dateie generieren wird.
Die Datei welche mit diesem Schritt genieriert wird kann in der IspCP-Administrationsoberfläche hochgeladen und aktiviert werden.