Sign in Join
Wiki copytemporary

Getting translation strings right/de: what changed

Revision 2 to 3. 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).
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).
22
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.
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.
44
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?)
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?)
66
7-## Contents
7+### Allgemeines
88
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
9+Um Probleme zu vermeiden, stellen Sie einfach sicher, dass zuallererst **die Originalstrings in Ordnung sind** - dafür gibt es einige Gründe:
1810
19-### Allgemeines
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.
2013
21-Um Probleme zu vermeiden, stellen Sie einfach sicher, dass zuallererst **die Originalstrings in Ordnung sind** \- dafür gibt es einige Gründe:
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/)).
2215
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.
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
2517
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/>)).
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?)`
2723
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-```
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.
3625
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.
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.
3827
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.
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.
4029
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.
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
4231
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-```
32+`Diese Komponente kann auf Non-TControls nicht abgelegt werden.`
4733
48-Hingegen ist die nicht-negierte Formulierung
49-```
50-Diese Komponente kann nur auf TControls abgelegt werden.
51-```
34+Hingegen ist die nicht-negierte Formulierung
5235
53-sicher leichter zu lesen und zu verstehen.
36+`Diese Komponente kann nur auf TControls abgelegt werden.`
5437
38+sicher leichter zu lesen und zu verstehen.
39+
5540### Technische Fragen
5641
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()'.
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()'.
5843
5944#### Ressourcenstrings und GNU gettext
6045
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.
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.
6247
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>)).
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)).
6449
65-_Anmerkung:_ GNU gettext hat eine konzeptuelle Macke, die es nicht erlaubt, einen einzelnen Originalstring an mehrere übersetzte Strings zuzuweisen, also Achtung.
50+Anmerkung: GNU gettext hat eine konzeptuelle Macke, die es nicht erlaubt, einen einzelnen Originalstring an mehrere übersetzte Strings zuzuweisen, also Achtung.
6651
6752#### Ressourcenstrings in der IDE
6853
69- * Lazarus hat ein Werkzeug, um einfach aus Stringkonstanten Ressourcenstrings zu erzeugen. Siehe [[IDE Window: Make ResourceString/de|Ressourcenstrings erzeugen]]
54+- Lazarus hat ein Werkzeug, um einfach aus Stringkonstanten Ressourcenstrings zu erzeugen. Siehe [[IDE Window: Make ResourceString/de|Ressourcenstrings erzeugen]]
7055
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).
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).
7257
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-```
58+Um die Erzeugung der .po-Dateien für ein Package zu aktivieren, beachten Sie folgende Schritte:
7859
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.
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.`
8062
81-Das funktioniert auch bei Projekten. Das Verzeichnis wird unter Projekt -> Projekteinstellungen -> IDE Integration -> Verzeichnis der .po-Dateien.
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.
8264
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.
65+Das funktioniert auch bei Projekten. Das Verzeichnis wird unter Projekt -\> Projekteinstellungen -\> IDE Integration -\> Verzeichnis der .po-Dateien.
8466
85- * Die IDE lädt automatisch die .po-Dateien für installierte Packages, falls sie existieren. Für Beispiele siehe: lazarus/components/projecttemplates/languages/.
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.
8668
87- * ToDo: Implementierung und Dokumentation über das Aktualisieren der übersetzten .po-Dateien, wenn neue Ressourcenstrings angefügt werden.
69+- Die IDE lädt automatisch die .po-Dateien für installierte Packages, falls sie existieren. Für Beispiele siehe: lazarus/components/projecttemplates/languages/.
8870
89- * ToDo: Implementierung und Dokumentation über das Einsammeln aller .po-Dateien von statisch gelinkten Packages.
71+- ToDo: Implementierung und Dokumentation über das Aktualisieren der übersetzten .po-Dateien, wenn neue Ressourcenstrings angefügt werden.
9072
91-
73+- ToDo: Implementierung und Dokumentation über das Einsammeln aller .po-Dateien von statisch gelinkten Packages.
9274
9375#### Ressourcenstrings in Ihrer Anwendung
9476
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-```
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
9780...
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.
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.
121104```
122105
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.
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.
124107
125108#### Die Funktion format()
126109
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-```
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:
131111
132-liefert
133-```
134-Morgen am Sonntag wird es Sonnenschein geben.
135-```
112+`format('Morgen am %0:s wird es %1:s geben.', ['Sonntag', 'Sonnenschein']);`
136113
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.
114+liefert
138115
139-Einige Richtlinien für den Gebrauch der Funktion format()
116+`Morgen am Sonntag wird es Sonnenschein geben.`
140117
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.
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.
142119
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...
120+Einige Richtlinien für den Gebrauch der Funktion format()
144121
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.
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.
146123
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.
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...
148125
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.
127+
128+~~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.
129+
149130#### Konvertierung der Übersetzung in den richtigen Zeichensatz
150131
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-```
132+Zum Beispiel: wandeln Sie eine Datei von ISO-8859-1 zu UTF-8 um:
155133
156-Vergessen Sie nicht die Zeile
157-```
158-"Content-Type: text/plain; charset=ISO-8859-1\n"
159-```
134+` iconv --from-code=ISO-8859-1 --to-code=UTF-8 oldfile.po > newfile.po`
160135
161-zu ändern in
162-```
163-"Content-Type: text/plain; charset=UTF8\n"
164-```
136+Vergessen Sie nicht die Zeile
165137
138+` "Content-Type: text/plain; charset=ISO-8859-1\n"`
139+
140+zu ändern in
141+
142+` "Content-Type: text/plain; charset=UTF8\n"`
143+
166144### Aufs Englische bezogen
167145
168-Dieser Abschnitt enthält Anmerkungen, die besonders dann Berechtigung haben, wenn Sie Englisch als Ausgangssprache für Übersetzungen benutzen.
146+Dieser Abschnitt enthält Anmerkungen, die besonders dann Berechtigung haben, wenn Sie Englisch als Ausgangssprache für Übersetzungen benutzen.
169147
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.
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.
171149
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.
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.
173151
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.
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.
175153
176-```
177-There was an error ! Please check file settings , compiler settings,... to fix this issue.
178-```
154+`There was an error ! Please check file settings , compiler settings,... to fix this issue.`
179155
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-```
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.
184157
185-wäre wahrscheinlich in Ordnung aus der Sicht der Interpunktion.
158+`There was an error! Please check file settings, compiler settings, ... to fix this issue.`
186159
160+wäre wahrscheinlich in Ordnung aus der Sicht der Interpunktion.
161+
187162### Siehe Auch
188163
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]]
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]]
192167
193168---
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).*
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).*

Back to history