Re: Message-Kataloge
Jens Seidel schrieb:
Chris Leick wrote:
Jens Seidel schrieb:
Chris Leick wrote:
Einige Zeichenketten kommen mir sehr bekannt vor. Sollten die meisten
wiederverwendet werden, wäre es vielleicht auch eine Option, ein Kompendium
(siehe Option -C von msgmerge) von PO-Dateien anzulegen, und zum
Korrekturlesen einzuschicken, so dass statt vieler kleiner und gleichlautender
Zeichenketten eine größere hier geprüft wird?
nach so etwas hatte ich auch schon gesucht. Leider scheint msgmerge
nicht so ganz das richtige zu sein. In der Manpage steht: Merges two
Uniforum style .po files together. Bei 77 fast identischen Dateien ist
das unpraktisch.
richtig, konnte mich auch nur daran erinnern. Habe aber mittlerweile das
richtige Werkzeug gefunden, um message catalogs zu erstellen: msgcat.
Aufruf:
$ msgcat /tmp/*.po -o compendium.po
Hallo Jens,
Das sieht gut aus.
Dies vereint alle PO-Dateien in /tmp in eine einzelne Datei compendium.po.
Sollten dabei in verschiedenen Dateien die gleiche Zeichenkette mehrfach
gleich vorkommen, so landet sie im Kompendium aber nur einmal. Ist eine
gleiche Zeichenkette unterschiedlich übersetzt (das wollen wir nicht,
stimmt's?), dann wird diese mit speziellen Konfliktmarkern und als
fuzzy markiert:
# Indikativ: "Gibt keine interaktiven Rückfragen aus"
#: ../include/svn_error_codes.h:158
#, fuzzy
msgid "Bad parent pool passed to svn_make_pool()"
msgstr ""
"#-#-#-#-# de2.po (subversion 1.5) #-#-#-#-#\n"
"Falcher Elternpool an svn_make_pool() übergeben\n"
"#-#-#-#-# de3.po (subversion 1.6) #-#-#-#-#\n"
"Falscher Elternpool an svn_make_pool() übergeben\n"
"#-#-#-#-# de.po (subversion 1.6) #-#-#-#-#\n"
"Falscher Elternpool an svn_make_pool() übergeben"
Insbesondere im Header-String (mit "Project-Id-Version:" ...) erhält man so
viele Konflikte, das stört aber nicht, da dies keine richtigen Übersetzungen
sind.
Statt vieler gleicher Übersetzungen hast du im Kompendium diese nur einmal.
Ähnliche Zeichenketten werden automatisch als solche erkannt und msgcat
orientiert sich bestimmt an solchen Vorlagen und erstellt
fuzzy-Zeichenketten (oder zumindest msgmerge tut dies). Der
Übersetzungsaufwand sollte sich also erheblich reduzieren.
Ist die Kompendium-Datei dann erst einmal in Ordnung, kannst du die
Übersetzungen in die einzelnen PO-Datei migrieren. Dafür verwendet man dann
aber wohl wieder msgmerge:
msgmerge -U leerePO.Datei englischePOT.Datei -C compendium.po
sollte dann alle Übersetzungen übertragen, eventuell geht auch
Das funktioniert nicht. Die Datei bleibt leer.
cp compendium.po de1.po
msgmerge -U de1.po englischePOT.Datei1
(und nun noch irgendwie die ungenutzen msgstr am Ende "#~: ..." entfernen,
falls es sie gibt, msgfilter, ...???)
Verstanden?
Verstanden schon, allerdings ist das in diesem Fall nicht wirklich eine
Arbeitsersparnis. Die immer wiederkehrenden Strings habe ich allesamt
bereits per "ed" übersetzt, z.B.
/msgid "AUTHOR"/
+
s/msgstr ""/msgstr "AUTOR"/
/msgid "HOMEPAGE/
...
w
usw.
Das Skript habe ich dann einfach für alle po-Dateien in einer Schleife
ausgeführt. Damit sind in jeder Datei nur noch zwei bis drei Strings zu
übersetzen.
Diese Dateien nehme ich mir nun alle vor und erstelle die compendium.po
erst hinterher, um sie hier einzusenden. Das hat den Vorteil, dass ich
nicht nachher wieder alles auseinanderbasteln muss. Außerdem kann ich
dann in dieser die Kommentare entfernen und ohne Suche die Strings
nachher wiederfinden.
Für künftige Übersetzungen werde ich allerdings den von Dir
beschriebenen Weg gehen, da ich dann noch nicht einmal mehr ein
Ed-Skript schreiben muss, sondern nur ein kleines Shellskript, das
hinterher die compendium.po auseinandernimmt und aufräumt.
Lies dir dazu ruhig die info-Seiten durch (die man-Seiten sind nicht immer
vollständig!). Eigentlich sollte das Quellpaket genauso vorgehen und nur
eine einzelne Datei zur Übersetzung anbieten, wenn du Lust hast, solltest du
dem nachgehen, andernfalls ist wirklich ein Wunschlistenfehler angebracht,
denn die gleichen Zeichenketten mehrfac zu übersetzen ist unsinnig. Kannst
ja zuvor auch hier oder auf debian-i18n nochmal nachfragen, berichten ...
Ja. Das werde ich anschließend tun.
Vielen Dank für die vielen Tipps.
Chris
Reply to: