# &kbabel; anwenden

## Einleitung

Jedes internationalisierbare Programm stellt eine oder mehrere Katalogdateien zur Verfügung. Diese Dateien können von den Übersetzern als Vorlage benutzt werden. Die Dateierweiterung dieser Dateien ist `.pot`. POT ist ein Akronym für Portable Object Template, oder auf Deutsch Portierbare Objektdatei.

Jede/r Übersetzer/in füllt die Übersetzung in die jeweilige Sprache in die leeren Felder ein. Die übersetzten Dateien werden als PO (Portable Object) bezeichnet.

PO-Dateien bestehen aus Paaren von Nachrichten — einer msgid und einer msgstr. Die msgid ist der Originaltext in englisch, die msgstr enthält den von Anführungszeichen (") umgebenen übersetzen Text. Ein Beispiel aus einer PO-Datei ist: `msgid "Open file"` und `msgstr "Datei öffnen"`

Leere, sowie mit `#` beginnende Zeilen werden ignoriert. Zeilen welche mit # beginnen sind Kommentare, die nützliche Details darüber enthalten, für was die Nachricht benutzt wird. Üblicherweise stehen in den Kommentaren die Quelldatei und die Zeilennummer an der die Nachricht verwendet wird, und wenn vom Programmierer vorgesehen weitere Informationen. &kbabel; Zeigt diese Informationen für jede Nachricht an.

In einigen Fällen ist das erste msgid-msgstr Paar in der PO-Datei ein Platzhalter, der den Dateivorspann enthält und verschiedene Informationen über die übersetzte PO-Datei enthält. Solche können sein: Programmname, Datum der Übersetzung, der Name des Übersetzers usw.

## Editor

Dies ist ein Bildschirmphoto von &kbabel;. &kbabel; verwendet Werkzeugleisten, um Vorgänge zu beschleunigen. Für vielbeschäftigte Anwender gibt es viele Tastenkürzel, um die Arbeit zu beschleunigen. Das Hauptfenster ist in vier Teile unterteilt.

Das linke obere Textfeld kann nicht geändert werden und enthält das Feld msgid aus der geöffneten Übersetzungsdatei und den englischen Text.

Das linke untere Textfeld enthält das Feld msgstr, das zum angezeigten Feld msgid gehört. Hier können Sie den übersetzten Text bearbeiten.

Der rechte obere Bereich zeigt die Kommentare, die für den aktuell zu bearbeitenden Eintrag hinzugefügt wurden.

Diese können verwendet werden:

- um herauszufinden, wie der aktuelle Eintrag von der Anwendung behandelt wird (c-formatiert oder einfach)

Bildschirmphoto von &kbabel;
Bildschirmphoto von &kbabel;

### Weitere Eigenschaften von &kbabel;

Jede msgid kann drei Zustände haben:

nicht übersetzt

  Kein übersetzer Text ist der msgstr zugeordnet

fraglich

  `msgmerge` hat probiert einen bereits in der aktuellen PO-Datei übersetzen Text zuzuordnen. Dies funktioniert nur begrenzt, diese Einträge müssen manuell angepasst werden.

übersetzt

  Diese msgid ist vollständig übersetzt.

Der Status des aktuellen Eintrags wird durch zwei LED's angezeigt. Je nach Einrichtung können sich diese entweder in der Statusleiste oder über dem Editorfenster befinden. Beide LED's können farblich Ihren Wünschen angepasst werden. Bitte lesen Sie dazu im Abschnitt Einstellungen, wie Sie diese Einstellungen anpassen können.

## Fortgeschrittene Übersetzung

### Navigation in der PO-Datei

Alle Befehle zur Navigation befinden sich im Menü Gehe zu.

Bild aufwärts | Zum vorigen Eintrag gehen
Bild abwärts | Zum nächsten Eintrag gehen
&Strg;Bild aufwärts | Zum vorigen fraglichen Eintrag gehen
&Strg;Bild abwärts | Zum nächsten fraglichen Eintrag gehen
&Alt;Bild aufwärts | Zum vorigen nicht übersetzten Eintrag gehen
&Alt;Bild abwärts | Zum nächsten nicht übersetzten Eintrag gehen
&Shift;Bild aufwärts | Zum vorigen fehlerhaften Eintrag gehen
&Shift;Bild abwärts | Zum nächsten fehlerhaften Eintrag gehen
&Strg;&Shift;Bild aufwärts | Zum vorigen fraglichen oder nicht übersetzten Eintrag gehen
&Strg;&Shift;Bild abwärts | Zum nächsten fraglichen oder nicht übersetzten Eintrag gehen

### Intelligentes Editieren

Intelligentes Editieren bedeutet, dass der Editor Ihnen beim Übersetzen hilft. Der Editor kümmert sich dabei um die Einhaltung von Regeln der PO-Dateien. Er maskiert &zb; speziellen Zeichen im Text falls notwendig.

Der Editor unterstützt auch unterschiedliche Zeilenumbrüche. Dies ist sehr nützlich, den normalerweise ignoriert gettext diese einfach. Wenn Sie einen richtigen Zeilenumbruch einfügen möchten, müssen Sie `\n` eingeben. Die meisten Übersetzer wissen nicht, dass ein Zeilenumbruch in msgstr keine Leerzeichen zwischen den Zeilen einfügt. Durch das Einfügen eines Leerzeichens am Ende jeder Zeile kann dieses Problem am einfachsten gelöst werden. Dies kann leicht vergessen gehen, darum erledigt dies der Editor automatisch für Sie.

Die unten stehende Tabelle fasst die Funktionen des intelligenten Editierens zusammen.

Tab | Fügt \t ein
" | Fügt \" ein
Enter | Wenn das letzte Zeichen vor dem Cursor kein Leerzeichen ist, wird ein Leerzeichen eingefügt und eine neue Zeile angefangen.
&Strg;Enter | Startet eine neue Zeile ohne zusätzliche Funktion
&Shift;Enter | Fügt \n ein und startet eine neue Zeile

Wenn Sie die Leerzeichen sehen möchten, können Sie Hintergrund hervorheben und/oder Leerzeichen mit Punkten markieren einschalten. Dies kann im Einrichtungsdialog in der Karteikarte Editieren Ansicht eingestellt werden.

### Automatische Übersetzung

Grobe Übersetzung Dialogbox

In diesem Dialogfenster können Sie angeben, was zu übersetzen ist und die entsprechenden Quellen auswählen.

Im oberen Teil des Rahmens Was übersetzen sind drei Ankreuzfelder (Nicht übersetzte Einträge, Fragliche Einträge und Übersetzte Einträge), um die zu übersetzenden Einträge zu definieren. Üblicherweise werden hier die nicht übersetzen Einträge und die fraglichen Einträge ausgewählt. Sie können jedoch auch bereits übersetzte Eintrage anwählen.

Als Quelle für die grobe Übersetzung kann jedes verfügbare Wörterbuch benutzt werden. Es gibt eine Liste Nicht benutzen und Benutzen. Die Wörterbücher werden in der Reihenfolge verwendet wie sie in der Liste Benutzen stehen. Wenn das erste Wörterbuch nicht gefunden werden kann, wird das zweite in der Liste benutzt und so weiter. Sie können die Pfeilknöpfe benutzen, um die Wörterbucheinträge zwischen den Listen hin- und her zu bewegen. Vergessen Sie nicht, die Reihenfolge durch Klicken auf die Knöpfe Aufwärts und Abwärts festzulegen.

Normalerweise wird &kbabel; jeden grob übersetzen Eintrag als fraglich markieren, weil angenommen wird, dass automatische Übersetzungen vom Übersetzer kontrolliert werden müssen. Wenn Sie 100% sicher sind, dass die automatische Übersetzung richtig ist, oder wenn Sie die Übersetzung sowieso korrekturlesen wollen, können Sie Veränderte Einträge als fraglich markieren ausschalten. Um sicher zu gehen, müssen Sie dies in einer erscheinenden Dialogbox bestätigen.

Wenn Sie alle Einstellungen entsprechend Ihren Wünschen vorgenommen haben, klicken Sie auf den Knopf Start, um die automatische Übersetzung zu starten. Es wird eine Fortschrittsanzeige angezeigt. Den Übersetzungsvorgang können Sie jederzeit durch drücken des Knopfs Anhalten abbrechen.

### Die Übersetzung prüfen

Tests können nach jeder Änderung am übersetzen Text erfolgen. Diese Tests sind so genannte automatische Tests. Diese können in den Einstellungen Einstellungen eingerichtet werden. Automatische Syntaxtests können bei jedem Speichern der Datei vorgenommen werden.

Die automatischen Tests können &kbabel; verlangsamen. Wenn Sie einen langsamen Rechner besitzen, sollten Sie die automatischen Tests ausschalten und diese gelegentlich manuell ausführen. Die Tests finden Sie im Menü Extras Tests. Die Tests werden dann für jeden Eintrag durchgeführt. Fehlerhafte Einträge werden entsprechend markiert.

Syntax prüfen

  Dies führt `msgfmt` aus, um die Gültigkeit der PO-Datei aus der Sicht von gettext zu überprüfen. Das Resultat wird angezeigt, und die fehlerhaften msgstr-Einträge entsprechend markiert.

Argumente prüfen

  Fehlerhafte Übersetzungen können die Anwendung zum Absturz bringen. Der gefährlichste Teil sind die Argumente, &zb; für printf-ähnliche Funktionen. Dieser Test vergleicht die Anzahl und den Typ der Argumente in msgid und msgstr. Diese müssen übereinstimmen.

Tastenkürzel prüfen

  GUI-Texte enthalten üblicherweise Tastaturkürzel, &dh; Tasten welche einen schnellen Zugang zu GUI-Elementen erlauben. Diese sind mit speziellen Zeichen markiert, zum Beispiel; & in &kde;. Eine gute Übersetzung enthält diese Tastaturkürzel ebenfalls. Dieser Test informiert Sie über allfällige Probleme in diesem Zusammenhang. Das Tastaturkürzel-Zeichen kann in Einstellungen in der Karteikarte Verschiedenes definiert werden.

Nach übersetzter Kontextinformation schauen.

  Diese Funktion werden Sie nur für &kde;-Übersetzungen brauchen. Einige Texte sind zu allgemein und müssen speziell, je nach Zusammenhang übersetzt werden. In &kde; wird der Kontext am Anfang der msgid nach den Sonderzeichen `:_` beschrieben. Einige Übersetzer kennen diese Abmachung nicht und versuchen die Kontextinformation ebenfalls zu übersetzen. Dieser Test versucht diese zu finden. Gefundene übersetzte Kontextinformationen sollten Sie entfernen.

Pluralformen prüfen

  Wenn die msgid als Pluralform definiert ist, muss die Übersetzung die passende Anzahl durch `\n` abgegrenzten Übersetzungen beinhalten. Die korrekte Anzahl hängt von der Sprache ab und wird in Einstellungen in der Karteikarte Identität festgelegt. Diese Funktion ist im Moment nur für &kde; verfügbar.

Gleichungen prüfen

  Gleichungen sind ein spezielles Format von msgid, welche typischerweise in Arbeitsflächendateien (.desktop) benutzt werden. Weil Ihre Übersetzung in diesem Falle mit anderen Dateien zusammengefügt werden, müssen die msgstr's ebenfalls in diesem speziellen Format vorhanden sein. Das heißt, die Übersetzung muss starten (bis zum ersten Vorkommen von `=`) mit dem selben Text wie der Originaleintrag, zum Beispiel `Name=`.

### Rechtschreibprüfung in der Übersetzung

Es ist sehr wichtig, dass Sie Ihre Übersetzung auf allfällige Rechtschreibefehler überprüfen. Auf diese Weise können Sie Tippfehler und andere Probleme in Ihrer Übersetzung finden. &kbabel; benutzt die Standard-&kde;-Bibliothek für Rechtschreibeprüfung. Die Einstellungen dazu können in Einstellungen gefunden werden. Die Funktion selbst finden Sie unter Extras Rechtschreibeprüfung. Es gibt eine Anzahl verschiedener Modi, die benutzt werden können:

Rechtschreibprüfung...

  Dies ist eine allgemeine Dialogbox, in welcher Sie den Modus wählen können, sowie einen Standardmodus festlegen können. Diese Dialogbox kann ebenfalls durch drücken von &Strg;I aufgerufen werden.

Alles prüfen...

  Alle Übersetzungen in der Datei prüfen.

Rechtschreibeprüfung ab Cursorposition...

  Die Rechtschreibprüfung an der Cursorposition in der aktuellen Übersetzung beginnen und bis zum Ende der Datei durchführen.

Aktuellen Eintrag prüfen...

  Die Rechtschreibprüfung nur für den aktuellen Eintrag durchführen.

Markierten Text prüfen...

  Falls es in msgstreinen markierten Text gibt, dann wird die Rechtschreibprüfung nur in diesem ausgewählten Text durchgeführt.

### Übersetzen von &XML;, HTML, ...

Markup-Sprachen werden immer mehr auch in GUI's benutzt. Das &kde;-Projekt benutzt auch PO-Dateien, um DocBook-Dokumentationen zu übersetzen. Diese sind ebenfalls in einer Markup-Sprache geschrieben. &kbabel; enthält einiges an Funktionalität, um diesem Trend nachzukommen.

Hier werden nur Funktionen im Zusammenhang mit Tags und Markup erwähnt. Das andere Problem, welches durch die Benutzung von Markup-Sprachen ausgelöst wurde, ist die Übersetzung von längeren Texten. Die Lösung zu diesem heißt diff und wird im folgenden Abschnitt angesprochen.

Die aktuelle Version von &kbabel; kann herausfinden, welche Tags in msgid benutzt werden und bietet einfachen Zugriff zu diesen aus dem Menü Bearbeiten an:

Nächste Formatierung einfügen

  Dies fügt die nächste in der msgid gefundene Formatierung in die Übersetzung ein. &kbabel; findet die einzufügenden Formatierungen, indem die Anzahl der Formatierungen vom Anfang der Übersetzung zusammengezählt werden.

Bearbeiten Formatierung einfügen

  Dieses Untermenü enthält alle Formatierungen, die im englischen Originaltext gefunden wurden. Indem Sie eine dieser Formatierungen auswählen, können Sie sie an der aktuellen Cursorposition im Textfeld der Übersetzung einfügen.

### Unterschiede (Diff) anzeigen

&kbabel; kann Ihnen helfen, diese Änderungen zu finden, indem der Unterschied zur originalen msgid angezeigt wird. Die Änderungen werden im Editor für den Originaltext grafisch angezeigt. Wie dies geschehen soll, kann im Dialog Einstellungen festgelegt werden. Extras Diff Diff anzeigen zeigt die gefundenen Änderungen. Um den aktuellen Text ohne Mix mit dem Originaltext anzuschauen, können Sie Extras Diff Originaltext anzeigen auswählen.

Sie können verschiedene Quellen zum Finden von alten Versionen angeben. Diese werden im Dialog Einstellungen angegeben:

Übersetzungsdatenbank

  Sie können die Übersetzungsdatenbank für die Suche nach Änderungen benutzen. Es wird dringend empfohlen, das automatische Einfügen in die Übersetzungsdatenbank für neu übersetzte Einträge zu aktivieren. Dies können Sie in der Dialogbox Einstellungen zur Übersetzungsdatenbank einstellen. Diesen Modus können Sie durch Anwählen von Benutzen von Einträgen der Übersetzungsdatenbank aktivieren.

Baum der alten Dateien

  Wird nur benutzt, wenn Sie die Suche in der Übersetzungsdatenbank ausgeschaltet haben. Durch Setzen des Basisverzeichnisses für Diff-Dateien können Sie &kbabel; anweisen, welche Dateien für die Diff-Anzeigen verwendet werden sollen. Es wird der relative Pfad der geöffneten Datei verwendet, um die korrespondierende Datei im angegeben Pfad zu finden. Falls es eine solche korrespondierende Datei gibt, wird sie verwendet. Um diesen Modus zu verwenden, sollten Sie eine Kopie der alten Dateien vor jeder Aktualisierung erstellen.

Manuell ausgewählte Datei

  Wenn die vorgängig beschriebene Methode nicht funktioniert, können Sie jederzeit eine Datei manuell auswählen: Extras Diff Datei für Diff öffnen.

Das Diff-Ergebnis ist nicht immer ganz genau, weil die PO-Datei keinerlei Referenzen zum Originaleintrag enthält.

## Pluralformen

Weil Pluralformen recht kompliziert sind, wird Ihrer Unterstützung in &kbabel; spezielle Aufmerksamkeit gewidmet.

&kde;-Pluralformen sind im Kommentar mit `:_` gekennzeichnet und enthalten das Argument `%n`. Dieses Argument wird dann im Eintrag selbst benutzt und kontrolliert, welche Pluralform Ihrer Sprache, abhängig von den Regeln für Ihre Sprache, benutzt werden soll.

Die Übersetzung eines Pluralform-Eintrages erfolgt in einem speziellen Format. Der Text muss die korrekte Anzahl Übersetzungen (für jede Pluralform eine) enthalten. Die Übersetzungen sind unterteilt durch einen Zeilenumbruch `\n`. Zum Beispiel: Selected %n files ins slowakische übersetzt würde folgendermassen aussehen: