Internationalisierung einer Python 2.6-Anwendung über Babel

8

Wir evaluieren Babel 0.9.5 [1] unter Windows für die Verwendung mit Python 2.6 und haben die folgenden Fragen, die wir durch Lesen der Dokumentation oder durch Google-Suchen nicht beantworten konnten.

1) Ich möchte eine ähnliche Abkürzung für ungettext verwenden. Gibt es eine Konzentration darauf, ob man dafür n_ oder N_ verwenden soll?

n_ scheint nicht zu funktionieren. Babel extrahiert keinen Text.

N_ scheint teilweise zu funktionieren. Babel extrahiert Text wie für gettext, formatiert aber nicht für ngettext (missing plural argument und msgstr [n].)

2) Gibt es eine Möglichkeit, die ersten msgstr-Felder wie folgt beim Erstellen einer POT-Datei zu setzen?

Ich vermute, dass es eine Möglichkeit gibt, dies über Babels cfg-Dateien zu tun, aber ich konnte keine Dokumentation über das Babel-cfg-Dateiformat finden.

"Projekt-ID-Version: PROJEKTVERSION \ n" "Sprach-Team: en_US \ n"

3) Gibt es eine Möglichkeit, 'veraltete' msgid / msgstrs in unseren PO-Dateien zu erhalten? Wenn ich den Babel-Aktualisierungsbefehl verwende, werden neu erstellte veraltete Zeichenfolgen mit # ~ Präfixen markiert, aber vorhandene veraltete Nachrichtenzeichenfolgen werden gelöscht.

Danke, Malcolm

[1] Ссылка

    
Malcolm 25.05.2010, 08:55
quelle

2 Antworten

8

Standardmäßig erkennt pybabel extract die folgenden Schlüsselwörter: _ , gettext , ngettext , ugettext , ungettext , dgettext , dngettext , N_ . Verwenden Sie die Option -k , um weitere hinzuzufügen. N_ wird oft für NULL-Übersetzungen verwendet (auch verzögerte Übersetzungen genannt).

>

Aktualisieren : Die Option -k kann Argumente der Funktion auflisten, die in den Katalog eingefügt werden sollen. Also, wenn Sie n_ = ngettext verwenden, versuchen Sie pybabel extract -k n_:1,2 ... .

    
Denis Otkidach 25.05.2010, 10:16
quelle
1

Um Frage 2 zu beantworten:

Wenn Sie Babel über pybabel extract ausführen, können Sie Project-Id-Version über die Optionen --project und --version festlegen.

Wenn Sie Babel über setup.py extract_messages ausführen, wird Project-Id-Version aus der Distribution genommen (Projektname und -version in der Datei setup.py).

Beide Möglichkeiten unterstützen auch die Optionen --msgid-bugs-address und --copyright-holder zum Setzen der POT-Metadaten.

    
Cito 22.01.2012 15:11
quelle