2009-03-30 2 views
3

ich mit xgettext freu Übersetzung von großer Code-Basis zu unterstützen, und ich habe zwei Fragen:Wie iterativ verwenden xgettext .po Dateien für die Übersetzung zu aktualisieren

  • wenn ich eine .po-Datei per- Sprache, gibt es eine einfache Möglichkeit, sie alle mit einem einzigen Xgettext-Scan der Codebasis zu aktualisieren, oder muss ich xgettext einmal für jede Sprache ausführen?
  • Wenn ich die Zielsprache zum Header der .po-Datei mit poedit hinzufüge, scheint xgettext dies mit Standardheadern zu überschreiben. Wie kann ich das stoppen?

Vielleicht verwende ich das falsche Werkzeug, in diesem Fall sind Vorschläge willkommen. Was ich will, ist in der Lage, den Code zu scannen und die .po-Dateien mit neuen Zeichenfolgen zu aktualisieren, aber Kopfzeileninformationen intakt zu lassen.

EDIT: Ich weiß, dass Poedit Code scannen kann, aber ich hoffte, eine Befehlszeilenanwendung zu finden, um das Scannen zu automatisieren, um den Prozess einfacher zu automatisieren.

Antwort

8

Ja, im Grunde verwenden Sie die Tools falsch.

xgettext extrahiert die Tags und erstellt die Vorlagendatei. (z. B. * .pot-Datei)

Der Befehl msgmerge aktualisiert eine .po-Datei mit Änderungen aus der .pot-Datei.

Wir haben Regeln machen die .po-Dateien zu aktualisieren, wie unten:

%.en.po : %.pot 
    -[ -e [email protected] ] && msgmerge --width=110 --update [email protected] $< 
    [ -e [email protected] ] || cp $< [email protected] 
+0

Das ist das fehlende Stück des Puzzles ist. Vielen Dank dafür. –

+0

Wenn ich gut verstehe, können Sie auch -j zum Befehl xgettext hinzufügen, um nur fehlende Schlüssel anzufügen. Verknüpfen Sie Nachrichten mit vorhandenen Dateien. – jamesjara

+0

@jamesjara Ich weiß nicht, ob das löscht Nachrichten, die gelöscht wurden - msgmerge wird Nachrichten in den Po-Dateien auskommentieren, die aus der Quelle entfernt wurden. –

Verwandte Themen