2010-06-03 12 views
8

Suchen Sie nach Tipps und/oder Tools zum effizienten Arbeiten mit gettext PO Dateien, wenn Sie kleine Änderungen an großen msgid Werten vornehmen.So arbeiten Sie effizient mit gettext PO-Dateien, wenn Sie kleine Änderungen an großen Textwerten vornehmen

Beispiel: Wir haben viele Nachrichten mit mehreren Sätzen/mehreren Abschnitten, die in unseren PO-Nachrichtenkatalogdateien gespeichert sind. Wenn wir eine sehr kleine Änderung an einer Nachricht vornehmen, vielleicht einen einzelnen Satz bearbeiten oder sogar die Interpunktion korrigieren, verlieren wir unsere ursprüngliche Übersetzung, wenn wir das Dienstprogramm msgmerge ausführen.

Anstatt lange Nachrichten (die bereits einen Genehmigungsprozess durchlaufen haben) erneut zu übersetzen, kehren unsere Übersetzer zu Sicherungskopien ihrer PO-Dateien zurück und suchen manuell nach dem Text des letzten msgid/msgstr-Übersetzungspaars Sie vergleichen dann mit den aktuellen Werten von msgid, um zu sehen, was sich geändert hat, gefolgt von einem Kopieren und Einfügen der letzten Übersetzung, die sie dann so bearbeiten, dass sie den aktualisierten Wert von msgid widerspiegeln.

Das ist eine Menge Arbeit! Sicherlich muss es einen besseren Weg geben, diese Art von Workflow zu bearbeiten.

Gibt es eine bewährte Möglichkeit, frühere Übersetzungen zu archivieren und zu finden, die sich nicht mehr in einer PO-Datei befinden? Eine Idee, die mir in den Sinn kommt, ist das Speichern einer eindeutigen ID-ID im Text unserer Nachrichten oder in den Kommentaren, die unserer Nachricht vorangehen, und die Verwendung dieser ID, um vorherige msgid/msgstr-Übersetzungspaare zur Überprüfung abzurufen. Oder gibt es PO-Editoren oder Online-Dienste, die diesen Prozess effizienter machen?

Danke, Malcolm

Antwort

5

Virtaal ‚s Unterstützung Translation Memory kann wohl dabei helfen. Wenn sich Ihre Originaleinheiten im Translation Memory befinden, werden sie (mit Unterschieden) innerhalb einer bestimmten Änderungsmarge (basierend auf der Levenshtein-Distanz) angezeigt. Es enthält immer noch die ursprüngliche (unveränderte) Übersetzung, aber zumindest der Originaltext ist leichter zugänglich und die Unterschiede hervorgehoben. Ich bin nicht 100% sicher, aber Pootle könnte auch eine webbasierte Lösung anbieten. Wenn Sie Hilfe benötigen, fragen Sie in #pootle auf FreeNode.

Die allgemeinere Verbesserung besteht natürlich darin, die Einheiten so weit wie möglich zu trennen/zu segmentieren.

+0

Sie Walter danken. Grüße, Malcolm – Malcolm

9

Ich habe nach einer Möglichkeit gesucht, kleinere Änderungen an den Textdateien vorzunehmen, ohne vorhandene Übersetzungen zu stören - zum Beispiel Schreibfehler im Quelltext. Hier ist ein Rezept, das ich gerade gearbeitet habe, dass keine Webseiten mit sich bringt:

  1. Verwenden msgen von GNU gettext eine Englisch-to-Englisch po-Datei zu erzeugen:

    msgen project.pot >corrections.po

  2. Manuell Bearbeiten Sie die msgstr s in "corrections.po", um die im Quelltext vorgenommenen Tippfehler wiederzugeben, so dass wir eine Zuordnung von nicht korrigierten zu korrigierten Strings haben. (Ich habe nicht darüber nachgedacht, wie dieses Bit zu automatisieren ist.

    )
  3. Für jede "echte" Übersetzung (zB ca.po): Missbrauch poswap vom Übersetzen Toolkit (translate-toolkit in Ubuntu), um die msgids zu ändern:

    poswap -i corrections.po -t ca.po -o ca.new.po

Dies scheint zu verlieren Header-Kommentare und veraltete Strings aus GNU gettext po-Dateien, aber manuell zu beheben, ist viel weniger Arbeit als manuell msgids in jeder Übersetzung (und könnte wahrscheinlich leicht skripted).

(Natürlich sollte dies nur in Ausnahmefällen verwendet werden, wo Sie absolut sicher sind, dass keine der Übersetzer die Möglichkeit benötigen, um ihre Übersetzungen erneut zu überprüfen.)

+0

Sehr schlau. Danke JTN. Grüße, Malcolm – Malcolm

Verwandte Themen