German localization notes

From Lazarus wiki
Jump to navigationJump to search

This page contains some useful notes and guidelines specific to the German translation of the Lazarus IDE. Since such information is heavily language specific and targeted towards a German speaking translator, the following text is written in German.

Einführung

Diese Wiki-Seite enthält (hoffentlich) nützliche Informationen für alle, die bei der deutschen Übersetzung mithelfen wollen. Dies umfasst generelle Informationen über den Übersetzungsvorgang, verwendbare nützliche Software um den Prozess zu vereinfachen, Hinweise für den eigentlichen Vorgang und Informationen über bereits verwendete Übersetzungen für einzelne Begriffe.

Übersetzen

TODO

Ziel einer Übersetzung

Das Ziel einer Übersetzung der Texte eines Programmes sind kurz zusammengefasst ein professioneller Eindruck: dies umfasst ordentliche Rechtschreibung und Interpunktion und eine für das Programm und dem Benutzer angemessene, gewohnte und möglichst konsistente Wortwahl.

In den nächsten Abschnitten wird versucht, hoffentlich nützliche Hinweise um dieses Ziel zu erreichen zu geben.

Übersetzung des Lazarus-Projektes

Lazarus verwendet zur Zeit den GNU gettext()-Mechanismus für seine Übersetzungen.

Bei diesem werden die vom Programmierer zur Übersetzung vorgesehenen Zeichenketten in einer speziellen Datei mit der Endung .po abgelegt. Dies ist eine einfache Textdatei in dem die zu übersetzenden Zeichenketten nacheinander abgelegt sind.

Beispiel für eine zu übersetzende Zeichenkette im Ursprungszustand (aus der .PO-Datei der Lazarus-IDE):

#: lazarusidestrconsts:lismenuproject
msgid "&Project"
msgstr ""

Die erste Zeile ist ein Kommentar (alle mit '#' beginnenden Zeilen sind Kommentare), der bei der von Lazarus gewählten Methode zur Erstellung der .PO-Datei erzeugt wird, und ignoriert werden kann.

In der zweiten Zeile befindet sich zwischen den Anführungszeichen die zu übersetzende Zeichenkette. Das in diesem Fall vorhandene '&'-Zeichen gibt, da es sich um einen Menüeintrag handelt, dessen Kurztaste an.

Die dritte Zeile muss vom Übersetzer mit der richtigen Übersetzung ausgefüllt werden.

Dieser Vorgang wird für möglichst alle Zeichenketten in der Datei wiederholt; danach muss die .PO-Datei noch in eine sogenannte .MO-Datei umgewandelt werden (im einfachsten Fall durch das Programm 'msgfmt' (Link)), damit sie im Programm verwendet werden kann. Dann das zu übersetzende Programm starten, die gerade übersetzte Sprache einstellen und das Ergebnis bewundern...

... und in der Theorie wäre das Ergebnis dann auch ordentlich.

In der Praxis stellt sich das Problem, dass sich die Übersetzung and den Originaltext hält, dann aber, da vom Kontext losgelöst übersetzt wurde, doch völlig unsinnig. Außerdem ist diese Übersetzung, besonders wenn im Team durchgeführt, uneinheitlich. Genau deswegen ist diese Wiki-Seite entstanden, siehe (Link nach unten)

Vorher noch ein paar technische Anmerkungen:

Lazarus-spezifische Dateien für die dt. Übersetzung

Die für Lazarus zu übersetzenden .PO-Dateien befinden sich im Unterverzeichnis "languages" des Hauptprogrammes, mit den Namen "lazaruside.de.po" (für die IDE selbst) und "objinspstrconsts.de.po" (für den Objektinspektor).

Software

Das Arbeiten mit einem Texteditor ist recht mühsam, daher werden in diesem Abschnitt ein paar verwendete Übersetzungshilfen mit ihren Funktionen kurz vorgestellt:

  • poEdit (http://poEdit.sourceforge.net//) - folgende Funktionalität:
    • gleichzeitige Ansicht von Original und Übersetzung in einer Liste
    • farbliche Unterscheidung zwischen bereits übersetztem Text, noch zu übersetzendem Text und gerade übersetztem Text
    • Zuweisung von zusätlichen Attributen (frisch übersetzt, überprüft usw.) möglich
    • automatische Erstellung von .MO-Dateien
    • verfügbar für Windows und Unix/Linux
  • KBabel (???) - folgende Funktionalität:
    • TODO
    • nur für Unix/Linux

Allgemeines bei dt. Übersetzungen

In diesem Abschnitt werden kurz einige allgemeine Regeln für die Erstellung von Übersetzungen ins Deutsche erwähnt.

  • die Rechtschreibung sollte in durchgängig in Ordnung sein: dazu ist es oft notwendig besonders bei Unklarheiten, in einer verlässlichen Quelle nachschlagen zu können. Für die deutsche Sprache ist die Referenz der aktuelle Duden; die neue Rechtschreibung verwendet werden sollte, darf diese nicht zu alt sein. "Quellen" wie allgemeine Suchmaschinen (Google etc.) sind nicht maßgebend.
  • speziell erwähnt sollte sich die Interpunktion an die Standards halten. Stark vereinfacht gesagt, für das Deutsche sind Satzzeichen wie Punkt, Beistrich, usw. direkt an das vorherige Wort zu schreiben, mit einem folgendem Leerzeichen. Genaueres kann unter folgendem Link zu Textverarbeitung http://www.duden.de/service/download/textverarbeitung_duden1.pdf nachgeschlagen werden.

Und hier noch ein wichtige speziellere Anmerkung:

  • falls eine bestimmte Wortwahl unglücklich gewählt scheint, einfach eine (oder besser mehrere) professionelle Anwendung die eine ähnliche Funktionalität nach deren Übersetzung untersuchen. Dies hilft besonders bei Spezialbezeichnungen von Fachbegriffen oft weiter.

Richtlinien für die deutsche Übersetzung

  • kein L33t-speak, auch "lockere" Sprache vermeiden ("Ooops, leider der hat der Debugger Mist gebaut")
  • Anglizismen (Denglish) eher vermeiden (d.h. nur wenn Begriff nicht eindeutig ein Sprachspezifischer Begriff ist). Besonders dann, wenn es vollständig äquivalente Ausdrücke im Deutschen gibt (z.B. "Viewer " -> "Betrachter").
  • Kommandos: Wortstellung Subjekt - Verb (Infinitiv) bevorzugen. Einfacherere Lesbarkeit.
  • Meldungen: Das Problem wenn möglich auf den Punkt bringen, möglichst nicht wieder einen erklärungsbedürftigen Text geben. Der aktuelle Zustand der IDE ist keine Erklärung des Problems.
  • Beschreibung möglichst sachlich formulieren, eher "Sie" als "du" verwenden
  • Es besteht keine Veranlassung Wort für Wort zu übersetzen - die Originalautoren sind auch nur Menschen, deren Gedanken zum Schreibzeitpunkt vermutlich bei eher technischen Problemen liegen...
  • Ebenso muss die Satzstellung nicht peinlich genau eingehalten werden (d.h. wg. aktuellen Einschränkungen der verwendeten Lokalisierungsbibliothek müssen die Platzhalter an der gleichen relativen Positon bleiben)

Mehr Notizen


  • Nicht jedes Wort großschreiben (ähnlich wie in Englisch u.U. erlaubt):
Alle Meine Entlein Sind Schon Da

sondern richtig

Alle meine Entlein sind schon da

  • Bei Menübefehlen möglichst die Wortstellung Subjekt-Verb (Infinitiv) verwenden, bei Meldungen der IDE bei (länger dauernden) Aktionen eher Verb-Subjekt.
Lazarus erstellen

Der Befehl an das Programm: "Lazarus soll erstellt werden".

Erstelle Lazarus

Meldung des Programmes an den Benutzer: "Erstelle gerade Lazarus" (der Vorgang läuft). Auch ist oft die letztere Form länger, da das Verb dann im Deutschen oft aufgeteilt werden muss:

Datei abspeichern

Bzw.

Speichere Datei ab

In Benachrichtigungen der IDE ist oft mehr Platz vorhanden.

  • Wenn man keine Ahnung hat, was ein englischer Eintrag bedeutet, folgendes Probieren
    • Aus dem Formular dessen Funktion herauslesen: Eintrag in der IDE suchen, ansehen und aus diesem auf die Funktion schließen.
    • Im Quelltext nachsehen: zuerst nach der Zeichenkette suchen, das liefert einen Namen einer Konstante in "lazarusidestrconsts.pas". Mit diesem Bezeichner in den Sourcen weiter suchen, und versuchen aus dem Code die Funktion abzuleiten - wenn man viel Glück hat, findet man auch eine Erklärung im Source.
    • Fragen.
    • Nicht übersetzen: Es gibt kaum Schlimmeres als ein vollständig falsch oder nur teilweise übersetzten Satz. Vor allem weil dann die weitere Bearbeitung durch andere oft übersehen wird.
"All packages" -> "Alle Packages"

  • Die Sprache verwenden - Deutsch ist flexibel in der Bildung von zusammengesetzten Wörtern. Solange diese nicht zu Wortmonstern über mehrere Zeilen ausarten, sollten diese anstatt umständlich wirkender Umschreibungen verwendet werden. Außerdem sind diese immer kürzer, und Platz ist sowieso meist Mangelware. Eventuell Wortteile, die übersetzte und nichtübersetzte Teile (wegen eines Fachbegriffs) enthalten, mit einem Bindestrich trennen.
"Form load error" -> "Formularladefehler"

nicht

"Fehler beim Laden des Formulars"

für ein (zugegeben extremes) Beispiel.

  • Mehrfachnegationen wenn möglich vermeiden
"Die Komponente darf nicht auf einem Nicht-TControl abgelegt werden."

besser:

"Die Komponente darf nur auf einem TControl abgelegt werden."

Ist sogar um einiges kürzer, und sicher leichter verständlich.

  • Spezifische Verweise auf die LCL nicht übersetzen.
"ImageList-Editor" -> "ImageList-Editor"

Dies ist ein Editor für eine bestimmte Klasse namens TImageList. Diese sollte nicht übersetzt werden ("Bildlisteneditor") oder durch zufällig eingeführte Kleinschreibung übersetzt werden ("Listview-Editor") da es sich eben um einen Editor für eine bestimmte Klasse handelt.

  • Aufpassen auf Einzahl und Mehrzahl im Originaltext. Besonders unregelmäßige Endungen werden oft übersehen.
  • Kurztasten in Menüs möglichst beibehalten, ansonsten besteht die Gefahr von Überschneidungen.
"&Add breakpoint" -> "H&altepunkt hinzufügen"
  • Es gibt kein "daß" mit scharfem ß nach der neuen deutschen Rechtschreibung mehr. "Dass" verwenden.
  • Unübliche Abkürzungen vermeiden
    • "+" ist kein Ersatz für "und"
Zieldateiname+Erweiterung ...
  • Besondere Vorsicht beim Übersetzen von sehr kurzen Sätzen
"As-Is" 

ist nicht

"Wie es ist"

sondern soll für die Pascal-Schlüsselwörter "as" und "is" stehen. In solchen Fällen immer den Dialog suchen.

  • Die offizielle, standardisierte Abkürzung für Sekunden ist "s". Nicht "sek", "sec" oder ähnliches.

Oft verwendete Begriffe

In diesem Abschnitt sollen häufig gebrauchte Wörter mit ihren bevorzugten Übersetzungen gesammelt werden (Anm.: TODO: eindeutig machen):

  • compiler -> "Übersetzer"/"Kompilierer"
  • to compile -> "übersetzen" / "erstellen"
  • item -> "Eintrag" (in Liste, Baum), "Element"
  • viewer -> "Betrachter"


  • "ancestor type" -> "Vorfahr(en)typ" (muss noch nachsehen)
  • "backup" -> "Sicherung"
  • "bookmark" -> "Lesezeichen"
  • "breakpoint" -> "Haltepunkt"
  • "call stack" -> "Aufrufstack"
  • "child node" -> "Untereintrag" (in einer Liste, einem Baum)
  • "class" -> "Klasse"
  • "code" -> "Quelltext"
  • "command" -> "Anweisung" oder "Befehl"
  • "compiler" -> "Übersetzer"
  • "component" -> "Komponente"
  • "declaration" -> "Deklaration"
  • "dependency" -> "Abhängigkeit"
  • "description" -> "Beschreibung"
  • "directory" -> "Verzeichnis"
  • "file extension" -> "Dateierweiterung"
  • "file name" oder "filename" -> "Dateiname"
  • "form" -> "Formular"
  • "identifier" -> "Bezeichner"
  • "item" -> "Eintrag" (einer Liste, eines Baumes) oder "Element"
  • "key" -> "Taste"
  • "keyword" -> "Schlüsselword"
  • "macro" -> "Makro"
  • "node" -> "Eintrag" (in Bäumen)
  • "object" -> "Objekt"
  • "options" -> "Optionen"
  • "package" -> "Paket"
  • "project" -> "Projekt"
  • "section" -> "Abschnitt" (in Kontext als Abschnitt im Quellcode)
  • "selection" -> "Auswahl"
  • "stack" -> "Stack"
  • "template" -> "Vorlage"
  • "tool(s)" -> "Werkzeug(e)"
  • "unit" -> "Unit"
  • "watch" -> "Überwachter Ausdruck"
  • "xyz file" -> ".xyz-Datei"


  • "for example" -> "Zum Beispiel" oder "Z.B." oder "beispielsweise"
  • "to add" -> "aufnehmen" oder "hinzufügen"
  • "to build" -> "erstellen"
  • "to rebuild" -> "neu erstellen"
  • "to publish" -> "veröffentlichen"
  • "to compile" -> "übersetzen" oder "kompilieren"
  • "to select" -> "auswählen"
  • "to register" -> "registrieren"
  • "to paste" -> "einfügen" (in Zusammenhang mit Zwischenablage)
  • "to convert" -> "konvertieren" oder "umwandeln"

--- überlegenswerte Punkte

  • "unit name" -> "Unitname" oder "Unit-Name"
  • Sollen Pfadangaben im Menü unter Anführungszeichen gestellt werden? (Hier: ja)
  • "view" -> "Ansicht" oder "Anzeige"
  • "ambigious" (falsch buchstabiert) -> ???
  • "free pascal" (und andere Varianten) -> "Free Pascal" oder "Free-Pascal" oder "Freepascal" oder "Free pascal" oder ...
  • "broken dependency" -> "Unterbrochene Abhängigkeit" oder "Zerstörte Abhängigkeit"
  • "to clean" -> "säubern" oder "reinigen" oder "aufräumen" (Im Zusammenhang mit Löschen der alten Daten)


... (to be continued) ...

Die besten Übersetzungen und Wortschöpfungen ;)

Interessante Originaltexte

sonstige Links