Übersetzen

Es gibt mehrere „po“-Dateien für verschiedene Sprachen, um Cinelerra-GG für nicht-englische Länder nutzbarer zu machen, mit unterschiedlichem Maß an Vollständigkeit oder Korrektheit. Mit der kontinuierlichen Entwicklung werden neue Sätze hinzugefügt, die übersetzt werden müssen. Die folgenden Informationen werden zur Verfügung gestellt, um die Erstellung von Sprachübersetzungen für Cinelerra-GG so einfach wie möglich zu machen. Es geht aber um mehrere Schritte, und die Aufgabe ist etwas schwierig. Da diese Hilfe von mehreren Nutzern sehr geschätzt wird, kann eine neue aktualisierte cin.po mit deinen aktuellen Sprachübersetzungen für dich erstellt werden, wenn du eine E-Mail an cin [@] lists.cinelerra-gg [dot] org sendest. Dann musst du nur noch poedit ausführen, um fehlende Übersetzungen abzuschließen und die Mailingliste über die Fertigstellung und den Standort der neuen Datei zu informieren.

Für eine schwierigeren Weg, aber immer noch überschaubar, hier ist eine vollständige Liste von Anweisungen, um Ihre Sprachübersetzungen zu erstellen. Ein Programm, xlat.C hilft bei der Bereitstellung von verschiedenen Variationen von Textdateien, die verwendet werden können, um jedem zu ermöglichen, bei der Erstellung aussagekräftiger Übersetzungen zu helfen. Um eine neue cin.po- Datei zu erstellen, mach folgendes nach dem Wechsel in das Verzeichnis von Cinelerra:

./po/xlat.sh > /tmp/cin.po

Diese Datei wird nur englische Wort/Phrasen enthalten. Als Nächstes, benutze xlat.C Programm, zuerst kompilieren es mit „c++ xlat.C“. Die Nutzungshilfe findest du hier:

#./a.out
Liste csv./csv data.csv < > data.po
list po ./a.out po < data.po > data.csv
list po ./a.out dups < data.po
list po ./a.out nodups < data.po
get strings ./a.out key < xgettext.po
gen xlation ./a.out xlat xgettext.po xlat.csv
gen xlation ./a.out xlat – text,xlat … < xgettext.po

Dieses Programm hat 6 Befehle, bei denen der gewünschte Befehl der erste Parameter für a.out. ist:

1) „csv“ = comma separated value file; to recreate a po from a csv file.
2) „po“ = convert po to csv data; for example, what you need to convert ru.po to ru.csv.

Du kannst sogar die resultierende *.csv im Büro öffnen und den Key->Wertersatz aktualisieren.
(Felder, die durch „,“ getrennt sind und die angeführten Felder während des Imports als Text prüfen). Diese Ergebnisse können
Eine csv-Datei „gespeichert“ und dann von xlat.C verwendet werden, um ein „po“ neu zu formulieren.

3) „Dups“ = Liste nur key/value Items, bei denen entweder der Schlüssel = Wert oder Wert = „“.
4) „Nodups“ = Liste nur Key/Value Items, bei denen Schlüssel! = Wert und Wert! = „“.
5) „key“ = list cin.po key set.
6) „xlat“ = Overlay-Übersetzung. Das ist der wichtigste Einsatz und wird als nächstes beschrieben.

Die xlat-Befehlszeilen-Parameter geben eine neue cin.po-Vorlage an, die normalerweise mit xlat.sh erstellt wird, und eine Liste von key/value Dateien, die verwendet werden, um ein Mapping für die gewünschte Übersetzung zu erstellen. Die Mapping-Dateien werden in der Reihenfolge, in der sie auf der Kommandozeile erscheinen, dem Mapping hinzugefügt, und jeder vorhandene Schlüssel wird durch die neueste Definition ersetzt; So ist es in der Regel, dass die neuesten Key/Value-Daten zuletzt in den Befehlsparametern sind. Sobald das Mapping gebaut ist, wird der erste Parameter, die neue po-Vorlage, gescannt und die darin enthaltenen Schlüssel werden verwendet, um das neueste Mapping in den Schlüssel/Wert-Dateien zu finden. Der neue Wert ersetzt den vorhandenen Wert in der Vorlage. Zum Beispiel, um eine neue Karte auf einen bestehenden po zu überlagern:

c++ xlat.C
./a.out po < xx.po > /tmp/xx.csv
./a.out po < new.po > /tnp/new.csv
./a.out xlat xx.po /tmp/xx.csv /tmp/new.csv > /tmp/new.po

Der erste Durchlauf bewahrt die bestehende Kartierung von xx.po auf, der zweite erstellt neue Mappings von new.po, und der dritte vereint die originalen und neuen Mappings zu einem po mit neuen included/overriding xx.po. Diese new.po-Datei kann nun bearbeitet werden, um die Übersetzungen mit Ihrem Lieblings-Editor oder poedit einzuschließen.

Da einige Wörter und Abkürzungen zu mehrdeutigen Sprachübersetzungen führen können, kann die Verwendung von C _ und D _ im Programmcode notwendig sein, um kontextbezogene und definitive Ausnahmen von den üblichen _ und N _ zu repräsentieren. Du wirst folgendes sehen:

C_ („msgstr“) wird von xlat.sh in D_ („qual # msgstr“) übersetzt,
und ruft gettext mit msgid = „qual # msgstr“ an.

Wenn keine ‚po‘ Übersetzung geliefert wird, wird die Qual # entfernt, und es wird nur der Standardtext ‚msgstr‘ angezeigt. Wenn eine ‚po‘-Übersetzung für die aktuelle Locale definiert wird, dann wird die übersetzte msgid = ‚qual # msgstr‘ verwendet, um auf die übersetzte msgstr zuzugreifen.

Die Standard-MSGQUAL ist der Basename der C-Quelldatei. Für die Datei src_file.C, die Standardeinstellung MSGQUAL ist:

#define MSGQUAL „src_file“

Es wird verwendet, um den Qualifikator zu definieren, der für die Transformation benötigt wird:

C_(„str“) to D_(„src_file#str“)

Die resultierende xlat.sh-Quelle wird von xgettext gescannt, um die erste cin.po. Mit anderen Worten:
_(s) führt wie immer normale internationale Textübersetzungen-
Die msgid-Zeile lautet: msgid „s“

C_(s) lässt es so aussehen, als ob du D_(„src_file#“ s) benutzt –
Die msgid-Zeile ist: msgid „src_file#s“
Wenn es nicht übersetzt, ist der Standard-msgtext „s“, nicht „src_file#s“

D_(qual#s) versucht nachzuschlagen _(qual#s) –
Diese msgid-Linie lautet: msgid „qual#s“,
Wenn es nicht übersetzt, ist der Standard-msgtext „s“, nicht „qual#s“

Zusammenfassung:
benutze _(s) wie gewohnt in fast allen Fällen
verwende C_(s), wenn diese Quelldatei eine spezielle Bedeutung für s hat.
Verwende D_(qual#s), wenn diese Quelldatei mehrere Bedeutungen für s hat.