Sign in Join
Wiki copytemporary

Getting translation strings right/de: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-Diese Seite enthält einige grundlegende Bemerkungen darüber, **wie man Übersetzungstrings richtig hinbekommt** vom Anfang an und aus der Sichtweise eines Originalautors (d.h. zumeist eines Programmierers).
2-
3-"Richtig hinbekommen" (To get it right) bedeutet in diesem Zusammenhang, dass die Übersetzungsstrings für eine leichtere nachfolgende Übersetzung richtig vorbereitet wurden, und dass die Originalversion an die grundlegenden Erfordernisse für ihren Einsatz angepasst wurde.
1+Diese Seite enthält einige grundlegende Bemerkungen darüber, **wie man Übersetzungstrings richtig hinbekommt** vom Anfang an und aus der Sichtweise eines Originalautors (d.h. zumeist eines Programmierers).
42
5-Obwohl hier versucht wurde, so sprachneutral wie möglich zu bleiben, besteht de facto eine leichte Einseitigkeit zugunsten des Englischen. Es liegt in Ihrem Ermessen, Richtlinien zu erweitern oder diejenigen zu verwerfen, die nicht auf Ihre Situation passen. (Oder vielleicht fügen Sie sie auch an diese Seite an?)
3+"Richtig hinbekommen" (To get it right) bedeutet in diesem Zusammenhang, dass die Übersetzungsstrings für eine leichtere nachfolgende Übersetzung richtig vorbereitet wurden, und dass die Originalversion an die grundlegenden Erfordernisse für ihren Einsatz angepasst wurde.
64
7-### Allgemeines
5+Obwohl hier versucht wurde, so sprachneutral wie möglich zu bleiben, besteht de facto eine leichte Einseitigkeit zugunsten des Englischen. Es liegt in Ihrem Ermessen, Richtlinien zu erweitern oder diejenigen zu verwerfen, die nicht auf Ihre Situation passen. (Oder vielleicht fügen Sie sie auch an diese Seite an?)
86
9-Um Probleme zu vermeiden, stellen Sie einfach sicher, dass zuallererst **die Originalstrings in Ordnung sind** - dafür gibt es einige Gründe:
7+## Contents
108
11-- Die Originalstrings dienen normalerweise als Vorgabeübersetzung, und hinterlassen einen schlechten Eindruck für den Endbenutzer, der ungewollt die unübersetzten Vorgabestrings sieht.
12-- Auch erschweren schlechte Originalstrings dem Übersetzer die Arbeit unnötig. Dieser ist ja für die Übertragung der ursprünglichen Informationen in eine andere Sprache verantwortlich. Erinnern Sie sich einfach an das Prinzip "Wo Müll hinein kommt, kommt auch nur Müll heraus", das hier perfekt zutrifft.
9+ * 1 Allgemeines
10+ * 2 Technische Fragen
11+ * 2.1 Ressourcenstrings und GNU gettext
12+ * 2.2 Ressourcenstrings in der IDE
13+ * 2.3 Ressourcenstrings in Ihrer Anwendung
14+ * 2.4 Die Funktion format()
15+ * 2.5 Konvertierung der Übersetzung in den richtigen Zeichensatz
16+ * 3 Aufs Englische bezogen
17+ * 4 Siehe Auch
1318
14-Versuchen Sie deshalb, sicher zu stellen, dass **die Schreibweise korrekt ist** - nehmen Sie ein Wörterbuch zur Hand, wenn Sie sich unsicher sind (z.B. [1](http://www.pons.de/)).
19+### Allgemeines
1520
16-Benutzen Sie verständliche und bekannte Phrasen für die Situation, die Sie beschreiben möchten, in einer **einheitlichen** Weise. Falls Sie unsicher sind, ob etwas geläufig ist, schauen Sie sich ähnliche Programme an und betrachten Sie deren Ausgaben. Auch die Literatur und Hilfedateien sind oft eine gute Quelle für die genauen Fachbegriffe oder -ausdrücke, oder Fragen des Stils. Bleiben Sie auch in der Auswahl der Phrasen einheitlich. Beispielsweise haben die Fragen
21+Um Probleme zu vermeiden, stellen Sie einfach sicher, dass zuallererst **die Originalstrings in Ordnung sind** \- dafür gibt es einige Gründe:
1722
18-`Delete the file? (Datei löschen?)`\
19-`Erase the file? (Datei beseitigen?)`\
20-`Remove the file? (Datei entfernen?)`\
21-`Wipe the file? (Datei säubern?)`\
22-`Zap the file? (Datei vernichten?)`
23+ * Die Originalstrings dienen normalerweise als Vorgabeübersetzung, und hinterlassen einen schlechten Eindruck für den Endbenutzer, der ungewollt die unübersetzten Vorgabestrings sieht.
24+ * Auch erschweren schlechte Originalstrings dem Übersetzer die Arbeit unnötig. Dieser ist ja für die Übertragung der ursprünglichen Informationen in eine andere Sprache verantwortlich. Erinnern Sie sich einfach an das Prinzip "Wo Müll hinein kommt, kommt auch nur Müll heraus", das hier perfekt zutrifft.
2325
24-alle fast die selbe Bedeutung. Wenn man sie aber - ohne ersichtlichen Grund - wahlweise einsetzt, interpretiert manch ein Leser verrückte Dinge hinein. Besonders anfällig für diesen Fehler sind Übersetzer, weil sie oft den genauen Kontext einer bestimmten Nachricht nicht kennen (z.B. Informationen über den Ursprung der Nachricht). Sie könnten einfache Wortvariationen als Hinweis auf bedeutende Unterschiede interpretieren, und geraten in Versuchung, unübliche (schlechte) Übersetzungen zu wählen.
26+Versuchen Sie deshalb, sicher zu stellen, dass **die Schreibweise korrekt ist** \- nehmen Sie ein Wörterbuch zur Hand, wenn Sie sich unsicher sind (z.B. [[1]](<http://www.pons.de/>)).
2527
26-Besonders bei Fehlermeldungen an den Benutzer gilt: Beschreiben Sie **das Problem selbst** in passenden Worten. Das ist niemals der Zustand des Programms, der zur Fehlermeldung führte. Dieser ist nur für die Person nützlich, die den Fehler im Programm beseitigen soll, nicht für den Benutzer. Benutzer werden entweder einfach mit den Schultern zucken und den Fehler bestenfalls ignorieren. Oder aber sie wechseln im schlechtesten Fall zu einem anderen Programm, weil sie ohne eine genaue Problembeschreibung nicht das Problem lösen und mit ihrer Arbeit fortfahren können. All das nur, weil das Programm keine brauchbare Problembeschreibung lieferte.
28+Benutzen Sie verständliche und bekannte Phrasen für die Situation, die Sie beschreiben möchten, in einer **einheitlichen** Weise. Falls Sie unsicher sind, ob etwas geläufig ist, schauen Sie sich ähnliche Programme an und betrachten Sie deren Ausgaben. Auch die Literatur und Hilfedateien sind oft eine gute Quelle für die genauen Fachbegriffe oder -ausdrücke, oder Fragen des Stils. Bleiben Sie auch in der Auswahl der Phrasen einheitlich. Beispielsweise haben die Fragen
29+```
30+Delete the file? (Datei löschen?)
31+ Erase the file? (Datei beseitigen?)
32+ Remove the file? (Datei entfernen?)
33+ Wipe the file? (Datei säubern?)
34+ Zap the file? (Datei vernichten?)
35+```
2736
28-Nehmen Sie (leicht) **verständliche Beschreibungen**. Versuchen Sie nicht, Ihre Kunden mit Fremdwörtern oder technischen Begriffen zu beeindrucken, nur um ihnen zu sagen, dass ihre Arbeit nicht gespeichert werden konnte.
37+alle fast die selbe Bedeutung. Wenn man sie aber - ohne ersichtlichen Grund - wahlweise einsetzt, interpretiert manch ein Leser verrückte Dinge hinein. Besonders anfällig für diesen Fehler sind Übersetzer, weil sie oft den genauen Kontext einer bestimmten Nachricht nicht kennen (z.B. Informationen über den Ursprung der Nachricht). Sie könnten einfache Wortvariationen als Hinweis auf bedeutende Unterschiede interpretieren, und geraten in Versuchung, unübliche (schlechte) Übersetzungen zu wählen.
2938
30-Vermeiden Sie mehrfache Verneinungen innerhalb eines einzelnen Satzes. Diese sind fast immer schwerer zu lesen als ihre nicht-negierten Gegenstücke. Ein Beispiel wäre
39+Besonders bei Fehlermeldungen an den Benutzer gilt: Beschreiben Sie **das Problem selbst** in passenden Worten. Das ist niemals der Zustand des Programms, der zur Fehlermeldung führte. Dieser ist nur für die Person nützlich, die den Fehler im Programm beseitigen soll, nicht für den Benutzer. Benutzer werden entweder einfach mit den Schultern zucken und den Fehler bestenfalls ignorieren. Oder aber sie wechseln im schlechtesten Fall zu einem anderen Programm, weil sie ohne eine genaue Problembeschreibung nicht das Problem lösen und mit ihrer Arbeit fortfahren können. All das nur, weil das Programm keine brauchbare Problembeschreibung lieferte.
3140
32-`Diese Komponente kann auf Non-TControls nicht abgelegt werden.`
41+Nehmen Sie (leicht) **verständliche Beschreibungen**. Versuchen Sie nicht, Ihre Kunden mit Fremdwörtern oder technischen Begriffen zu beeindrucken, nur um ihnen zu sagen, dass ihre Arbeit nicht gespeichert werden konnte.
3342
34-Hingegen ist die nicht-negierte Formulierung
43+Vermeiden Sie mehrfache Verneinungen innerhalb eines einzelnen Satzes. Diese sind fast immer schwerer zu lesen als ihre nicht-negierten Gegenstücke. Ein Beispiel wäre
44+```
45+Diese Komponente kann auf Non-TControls nicht abgelegt werden.
46+```
3547
36-`Diese Komponente kann nur auf TControls abgelegt werden.`
48+Hingegen ist die nicht-negierte Formulierung
49+```
50+Diese Komponente kann nur auf TControls abgelegt werden.
51+```
3752
38-sicher leichter zu lesen und zu verstehen.
53+sicher leichter zu lesen und zu verstehen.
3954
4055### Technische Fragen
4156
42-In diesem Abschnitt erhalten Sie einen kurzen Überblick über technische Fragen, eigentlich einen Überblick über die grundlegenden Möglichkeiten. Diese umfassen das Konstrukt 'resourcestring', GNU gettext() und die Funktion 'format()'.
57+In diesem Abschnitt erhalten Sie einen kurzen Überblick über technische Fragen, eigentlich einen Überblick über die grundlegenden Möglichkeiten. Diese umfassen das Konstrukt 'resourcestring', GNU gettext() und die Funktion 'format()'.
4358
4459#### Ressourcenstrings und GNU gettext
4560
46-Free Pascal hat einige eingebaute Sprachkonstrukte für die Behandlung konstanter Zeichenketten. Es gibt einen Abschnitt einer Unit namens "resourcestring", die speziell für diesen Zweck eingeführt wurde. Siehe auch den entsprechenden Abschnitt des FPC-Handbuchs (prog.pdf, S. 89ff oder [hier](http://www.freepascal.org/docs-html/prog/progch9.html#x184-1870009)) für die Details.
61+Free Pascal hat einige eingebaute Sprachkonstrukte für die Behandlung konstanter Zeichenketten. Es gibt einen Abschnitt einer Unit namens "resourcestring", die speziell für diesen Zweck eingeführt wurde. Siehe auch den entsprechenden Abschnitt des FPC-Handbuchs (prog.pdf, S. 89ff oder [hier](<http://www.freepascal.org/docs-html/prog/progch9.html#x184-1870009>)) für die Details.
4762
48-GNU gettext ist ein spezieller Satz von Werkzeugen, um Übersetzungen für Ihre Programme zu liefern. Siehe ebenfalls im FPC-Handbuch (prog.pdf, S. 91ff oder [hier](http://www.freepascal.org/docs-html/prog/progse41.html#x210-2130009.4)).
63+GNU gettext ist ein spezieller Satz von Werkzeugen, um Übersetzungen für Ihre Programme zu liefern. Siehe ebenfalls im FPC-Handbuch (prog.pdf, S. 91ff oder [hier](<http://www.freepascal.org/docs-html/prog/progse41.html#x210-2130009.4>)).
4964
50-<u>Anmerkung:</u> GNU gettext hat eine konzeptuelle Macke, die es nicht erlaubt, einen einzelnen Originalstring an mehrere übersetzte Strings zuzuweisen, also Achtung.
65+_Anmerkung:_ GNU gettext hat eine konzeptuelle Macke, die es nicht erlaubt, einen einzelnen Originalstring an mehrere übersetzte Strings zuzuweisen, also Achtung.
5166
5267#### Ressourcenstrings in der IDE
5368
54-- Lazarus hat ein Werkzeug, um einfach aus Stringkonstanten Ressourcenstrings zu erzeugen. Siehe [[IDE Window: Make ResourceString/de|Ressourcenstrings erzeugen]]
69+ * Lazarus hat ein Werkzeug, um einfach aus Stringkonstanten Ressourcenstrings zu erzeugen. Siehe [[IDE Window: Make ResourceString/de|Ressourcenstrings erzeugen]]
5570
56-- Für jeden Ressourcenstring-Abschnitt erzeugt FPC eine .rst-Datei, aber es gibt keinen Editor für diese Dateien. Lazarus kann automatisch .po-Dateien aus den .rst-Dateien erzeugen. Es gibt eine Vielzahl von Werkzeugen zum Bearbeiten von .po-Dateien (z.B. kbabel unter Linux, PoEdit unter Windows).
71+ * Für jeden Ressourcenstring-Abschnitt erzeugt FPC eine .rst-Datei, aber es gibt keinen Editor für diese Dateien. Lazarus kann automatisch .po-Dateien aus den .rst-Dateien erzeugen. Es gibt eine Vielzahl von Werkzeugen zum Bearbeiten von .po-Dateien (z.B. kbabel unter Linux, PoEdit unter Windows).
5772
58-Um die Erzeugung der .po-Dateien für ein Package zu aktivieren, beachten Sie folgende Schritte:
73+Um die Erzeugung der .po-Dateien für ein Package zu aktivieren, beachten Sie folgende Schritte:
74+```
75+* Erstellen Sie ein Unterverzeichnis namens 'languages' (oder 'locale', oder sonstwie).
76+ * Öffnen Sie das Package. Stellen Sie unter Einstellungen -> IDE Integration -> Verzeichnis der .po-Dateien das Verzeichnis _languages_ ein.
77+```
5978
60-` * Erstellen Sie ein Unterverzeichnis namens 'languages' (oder 'locale', oder sonstwie).`\
61-` * Öffnen Sie das Package. Stellen Sie unter Einstellungen -> IDE Integration -> Verzeichnis der .po-Dateien das Verzeichnis `*`languages`*` ein.`
79+Wenn Sie das nächste Mal das Package kompilieren, erzeugt die IDE die .po-Dateien. Anmerkung: Die .rst-Dateien müssen zu den Package-Units gehören. Andernfalls ignoriert die IDE die fremden .rst-Dateien.
6280
63-Wenn Sie das nächste Mal das Package kompilieren, erzeugt die IDE die .po-Dateien. Anmerkung: Die .rst-Dateien müssen zu den Package-Units gehören. Andernfalls ignoriert die IDE die fremden .rst-Dateien.
81+Das funktioniert auch bei Projekten. Das Verzeichnis wird unter Projekt -> Projekteinstellungen -> IDE Integration -> Verzeichnis der .po-Dateien.
6482
65-Das funktioniert auch bei Projekten. Das Verzeichnis wird unter Projekt -\> Projekteinstellungen -\> IDE Integration -\> Verzeichnis der .po-Dateien.
83+ * Um eine deutsche Übersetzung zu erzeugen: kopieren Sie die Datei 'unit1.po' nach 'unit1.de.po'. Verwenden Sie dann einen Texteditor oder einen .po-Editor, um alle Zeichenketten zu übersetzen.
6684
67-- Um eine deutsche Übersetzung zu erzeugen: kopieren Sie die Datei 'unit1.po' nach 'unit1.de.po'. Verwenden Sie dann einen Texteditor oder einen .po-Editor, um alle Zeichenketten zu übersetzen.
85+ * Die IDE lädt automatisch die .po-Dateien für installierte Packages, falls sie existieren. Für Beispiele siehe: lazarus/components/projecttemplates/languages/.
6886
69-- Die IDE lädt automatisch die .po-Dateien für installierte Packages, falls sie existieren. Für Beispiele siehe: lazarus/components/projecttemplates/languages/.
87+ * ToDo: Implementierung und Dokumentation über das Aktualisieren der übersetzten .po-Dateien, wenn neue Ressourcenstrings angefügt werden.
7088
71-- ToDo: Implementierung und Dokumentation über das Aktualisieren der übersetzten .po-Dateien, wenn neue Ressourcenstrings angefügt werden.
89+ * ToDo: Implementierung und Dokumentation über das Einsammeln aller .po-Dateien von statisch gelinkten Packages.
7290
73-- ToDo: Implementierung und Dokumentation über das Einsammeln aller .po-Dateien von statisch gelinkten Packages.
91+
7492
7593#### Ressourcenstrings in Ihrer Anwendung
7694
77-Sie können die .po-Dateien bei der Initialisierung laden, um die Ressourcenstrings zu übersetzen. Fügen Sie dies Ihrer .lpr-Datei hinzu:
78-
79-``` pascal
95+Sie können die .po-Dateien bei der Initialisierung laden, um die Ressourcenstrings zu übersetzen. Fügen Sie dies Ihrer .lpr-Datei hinzu:
96+```
8097...
81-uses
82- ...
83- Translations, LazUTF8;
84-
85-procedure TranslateLCL;
86-var
87- PODirectory, Lang, FallbackLang: String;
88-begin
89- PODirectory:='/path/to/lazarus/lcl/languages/';
90- Lang:='';
91- FallbackLang:='';
92- LazGetLanguageIDs(Lang,FallbackLang); // in der Unit LazUTF8
93- Translations.TranslateUnitResourceStrings('LCLStrConsts',
94- PODirectory+'lclstrconsts.%s.po',Lang,FallbackLang);
95- // ... fügen Sie hier einen Aufruf von TranslateUnitResourceStrings für jede .po-Datei hinzu ...
96-end;
97-
98-begin
99- TranslateLCL;
100- Application.Initialize;
101- Application.CreateForm(TForm1, Form1);
102- Application.Run;
103-end.
98+ uses
99+ ...
100+ Translations, LazUTF8;
101+
102+ procedure TranslateLCL;
103+ var
104+ PODirectory, Lang, FallbackLang: String;
105+ begin
106+ PODirectory:='/path/to/lazarus/lcl/languages/';
107+ Lang:='';
108+ FallbackLang:='';
109+ LazGetLanguageIDs(Lang,FallbackLang); // in der Unit LazUTF8
110+ Translations.TranslateUnitResourceStrings('LCLStrConsts',
111+ PODirectory+'lclstrconsts.%s.po',Lang,FallbackLang);
112+ // ... fügen Sie hier einen Aufruf von TranslateUnitResourceStrings für jede .po-Datei hinzu ...
113+ end;
114+
115+ begin
116+ TranslateLCL;
117+ Application.Initialize;
118+ Application.CreateForm(TForm1, Form1);
119+ Application.Run;
120+ end.
104121```
105122
106-Anmerkung für Mac OS X: Die IDs der unterstützten Sprachen sollten in der Eigenschaftenliste des Anwendungspakets zum Schlüssel CFBundleLocalizations hinzugefügt werden, für ein Beispiel siehe lazarus.app/Contents/Info.plist.
123+Anmerkung für Mac OS X: Die IDs der unterstützten Sprachen sollten in der Eigenschaftenliste des Anwendungspakets zum Schlüssel CFBundleLocalizations hinzugefügt werden, für ein Beispiel siehe lazarus.app/Contents/Info.plist.
107124
108125#### Die Funktion format()
109126
110-Um in Übersetzungen nicht nur völlig statische Zeichenketten einzusetzen, können Sie auch die Methode [[doc:rtl/sysutils/format.html|format()]] aus der Unit 'sysutils' verwenden. Mit ihr können Sie Platzhalter innerhalb eines vorgegebenen Texts durch deren tatsächlichen Wert ersetzen, der als zweiter Parameter in einer Menge gegeben ist. Beispiel:
111-
112-`format('Morgen am %0:s wird es %1:s geben.', ['Sonntag', 'Sonnenschein']);`
113-
114-liefert
127+Um in Übersetzungen nicht nur völlig statische Zeichenketten einzusetzen, können Sie auch die Methode [format()](<http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/format.html> "doc:rtl/sysutils/format.html") aus der Unit 'sysutils' verwenden. Mit ihr können Sie Platzhalter innerhalb eines vorgegebenen Texts durch deren tatsächlichen Wert ersetzen, der als zweiter Parameter in einer Menge gegeben ist. Beispiel:
128+```
129+format('Morgen am %0:s wird es %1:s geben.', ['Sonntag', 'Sonnenschein']);
130+```
115131
116-`Morgen am Sonntag wird es Sonnenschein geben.`
132+liefert
133+```
134+Morgen am Sonntag wird es Sonnenschein geben.
135+```
117136
118-In diesem Fall steht %0:s als Platzhalter für das erste Argument (mit dem Index 0) aus der Wertemenge (Sonntag), und entsprechend %1:s für das zweite. Für eine exakte Definition der erlaubten Platzhalter und ihre Syntax siehe das FPC-Referenz-Handbuch.
137+In diesem Fall steht %0:s als Platzhalter für das erste Argument (mit dem Index 0) aus der Wertemenge (Sonntag), und entsprechend %1:s für das zweite. Für eine exakte Definition der erlaubten Platzhalter und ihre Syntax siehe das FPC-Referenz-Handbuch.
119138
120-Einige Richtlinien für den Gebrauch der Funktion format()
139+Einige Richtlinien für den Gebrauch der Funktion format()
121140
122-- Verwenden Sie indizierte Platzhalter in den Originalstrings, auch wenn diese optional sind. Dies gestattet dem Übersetzer, die Argumente einfach innerhalb des Satzes zu verschieben und erlaubt somit natürlichere Ausdrücke. Und manchmal ist das Verschieben von Satzteilen auch tatsächlich erforderlich, um in dieser Sprache richtige Sätze bilden zu können.
141+ * Verwenden Sie indizierte Platzhalter in den Originalstrings, auch wenn diese optional sind. Dies gestattet dem Übersetzer, die Argumente einfach innerhalb des Satzes zu verschieben und erlaubt somit natürlichere Ausdrücke. Und manchmal ist das Verschieben von Satzteilen auch tatsächlich erforderlich, um in dieser Sprache richtige Sätze bilden zu können.
123142
124-- Stellen Sie niemals einen Satz aus mehr als einem String zusammen. Nehmen Sie immer die Methode format() aus der Unit 'sysutils', um während der Laufzeit den richtigen String mittels Platzhaltern zu konstruieren. Ein Übersetzer würde normalerweise den ganzen Satz gar nicht rekonstruieren können, deshalb gäbe es auch keine gute Übersetzung; bedenken Sie nur einmal, dass oft Hunderte von solchen Strings in einer einzelnen Übersetzungsdatenbank vorkommen...
143+ * Stellen Sie niemals einen Satz aus mehr als einem String zusammen. Nehmen Sie immer die Methode format() aus der Unit 'sysutils', um während der Laufzeit den richtigen String mittels Platzhaltern zu konstruieren. Ein Übersetzer würde normalerweise den ganzen Satz gar nicht rekonstruieren können, deshalb gäbe es auch keine gute Übersetzung; bedenken Sie nur einmal, dass oft Hunderte von solchen Strings in einer einzelnen Übersetzungsdatenbank vorkommen...
125144
126-- Verwenden Sie zum Formatieren keine Leerzeichen. Bewegen Sie als erstes einfach Ihr Label an die passende Position. Es ergeben sich sonst Probleme beim Wechseln der Schriftart, und scheinbar überflüssige Leerzeichen laufen Gefahr, vom Übersetzer weggeputzt zu werden.
145+ * Verwenden Sie zum Formatieren keine Leerzeichen. Bewegen Sie als erstes einfach Ihr Label an die passende Position. Es ergeben sich sonst Probleme beim Wechseln der Schriftart, und scheinbar überflüssige Leerzeichen laufen Gefahr, vom Übersetzer weggeputzt zu werden.
127146
128-~~<u>Anmerkung:</u> Da format() bestimmte Steuerzeichen (z.B. wie C's "\n", "\t", u.s.w.) nicht versteht und GNU gettext aus bestimmten Gründen das gewählte Übersetzungssystem (und die darauf basierenden Werkzeuge nicht fähig sind, solche Steuerzeichen zu interpretieren), ist es erforderlich, die Zeilenvorschübe programmatisch einzufügen.~~In der aktuellen Version von Lazarus werden "\n" und "\t" in übersetzten Zeichenketten durch newline und tab ersetzt.
147+~~_Anmerkung:_ Da format() bestimmte Steuerzeichen (z.B. wie C's "\n", "\t", u.s.w.) nicht versteht und GNU gettext aus bestimmten Gründen das gewählte Übersetzungssystem (und die darauf basierenden Werkzeuge nicht fähig sind, solche Steuerzeichen zu interpretieren), ist es erforderlich, die Zeilenvorschübe programmatisch einzufügen.~~In der aktuellen Version von Lazarus werden "\n" und "\t" in übersetzten Zeichenketten durch newline und tab ersetzt.
129148
130149#### Konvertierung der Übersetzung in den richtigen Zeichensatz
131150
132-Zum Beispiel: wandeln Sie eine Datei von ISO-8859-1 zu UTF-8 um:
133-
134-` iconv --from-code=ISO-8859-1 --to-code=UTF-8 oldfile.po > newfile.po`
135-
136-Vergessen Sie nicht die Zeile
137-
138-` "Content-Type: text/plain; charset=ISO-8859-1\n"`
151+Zum Beispiel: wandeln Sie eine Datei von ISO-8859-1 zu UTF-8 um:
152+```
153+iconv --from-code=ISO-8859-1 --to-code=UTF-8 oldfile.po > newfile.po
154+```
139155
140-zu ändern in
156+Vergessen Sie nicht die Zeile
157+```
158+"Content-Type: text/plain; charset=ISO-8859-1\n"
159+```
141160
142-` "Content-Type: text/plain; charset=UTF8\n"`
161+zu ändern in
162+```
163+"Content-Type: text/plain; charset=UTF8\n"
164+```
143165
144166### Aufs Englische bezogen
145167
146-Dieser Abschnitt enthält Anmerkungen, die besonders dann Berechtigung haben, wenn Sie Englisch als Ausgangssprache für Übersetzungen benutzen.
147-
148-- Reservieren Sie dort, wo der Text ausgegeben wird, genug Platz: Englisch ist eine Sprache in der die Texte fast immer kürzer sind (was die Zeichenanzahl betrifft) als in den jeweiligen Übersetzungen. Planen Sie also voraus und reservieren Sie ausreichend Platz. Die Erfahrung zeigt, dass sehr kurze Strings, die nur wenige Zeichen lang sind, sich im Umfang ungefähr verdoppeln; dieser Unterschied nimmt ab, wenn die Zeichenketten länger sind.
168+Dieser Abschnitt enthält Anmerkungen, die besonders dann Berechtigung haben, wenn Sie Englisch als Ausgangssprache für Übersetzungen benutzen.
149169
150-- Vermeiden Sie im Englischen Abkürzungen; neben der Tatsache, dass dadurch schon recht kurze Strings noch weiter gekürzt werden, entstehen auch ernste Probleme z.B. in Sprachen mit ideographischen Zeichen, wo diese Abkürzungen einfach überhaupt nicht existieren.
170+ * Reservieren Sie dort, wo der Text ausgegeben wird, genug Platz: Englisch ist eine Sprache in der die Texte fast immer kürzer sind (was die Zeichenanzahl betrifft) als in den jeweiligen Übersetzungen. Planen Sie also voraus und reservieren Sie ausreichend Platz. Die Erfahrung zeigt, dass sehr kurze Strings, die nur wenige Zeichen lang sind, sich im Umfang ungefähr verdoppeln; dieser Unterschied nimmt ab, wenn die Zeichenketten länger sind.
151171
152-- Weil dies oft ein Problem darstellt: Im Englischen sind Satzzeichen (Punkt, Komma, ...) ein Teil des vorherigen Wortes, oder bilden selbst eine Art Wort falls es kein vorhergehendes Wort gibt (im Fall einer Aufzählung). Besonders nach einem Strichpunkt sollte immer ein Leerzeichen folgen.
172+ * Vermeiden Sie im Englischen Abkürzungen; neben der Tatsache, dass dadurch schon recht kurze Strings noch weiter gekürzt werden, entstehen auch ernste Probleme z.B. in Sprachen mit ideographischen Zeichen, wo diese Abkürzungen einfach überhaupt nicht existieren.
153173
154-`There was an error ! Please check file settings , compiler settings,... to fix this issue.`
174+ * Weil dies oft ein Problem darstellt: Im Englischen sind Satzzeichen (Punkt, Komma, ...) ein Teil des vorherigen Wortes, oder bilden selbst eine Art Wort falls es kein vorhergehendes Wort gibt (im Fall einer Aufzählung). Besonders nach einem Strichpunkt sollte immer ein Leerzeichen folgen.
155175
156-hat eine entsetzliche Interpunktion, sieht deshalb einfach schlecht aus und ist schwerer zu lesen als gewohnt. Bedenken Sie auch, dass übliche Algorithmen zum Zeilenumbruch die Zeilen an den Leerzeichen aufteilen, das würde in einem einzelnen Punkt am Zeilenanfang resultieren.
176+```
177+There was an error ! Please check file settings , compiler settings,... to fix this issue.
178+```
157179
158-`There was an error! Please check file settings, compiler settings, ... to fix this issue.`
180+hat eine entsetzliche Interpunktion, sieht deshalb einfach schlecht aus und ist schwerer zu lesen als gewohnt. Bedenken Sie auch, dass übliche Algorithmen zum Zeilenumbruch die Zeilen an den Leerzeichen aufteilen, das würde in einem einzelnen Punkt am Zeilenanfang resultieren.
181+```
182+There was an error! Please check file settings, compiler settings, ... to fix this issue.
183+```
159184
160-wäre wahrscheinlich in Ordnung aus der Sicht der Interpunktion.
185+wäre wahrscheinlich in Ordnung aus der Sicht der Interpunktion.
161186
162187### Siehe Auch
163188
164-- [[Translations / i18n / localizations for programs/de|Translations / i18n / localizations for programs]]
165-- [[Lazarus Documentation/de|Lazarus Documentation - Übersetzung/Internationalisierung]]
166-- [[Step-by-step instructions for creating multi-language applications]]
189+ * [[Translations / i18n / localizations for programs/de|Translations / i18n / localizations for programs]]
190+ * [[Lazarus Documentation/de|Lazarus Documentation - Übersetzung/Internationalisierung]]
191+ * [[Step-by-step instructions for creating multi-language applications]]
167192
168193---
169-*From the Free Pascal wiki, page "Getting translation strings right/de", as it stood on 2020-02-16 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
194+*From the Free Pascal wiki, page "Getting translation strings right/de", as the Internet Archive kept it on 2023-06-04. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history