2016-06-16 8 views
-1

Ich habe einige Lokalisierung im PO-Format. Ist es möglich, den Inhalt dieser Datei in Ihrer C++ - Anwendung zu erhalten? Anstatt gettext("id here") zu nennen, möchte ich die komplette Datei in C++ lesen (unter Linux und Windows)Gettext PO-Dateiformat

+0

Es ist möglich, aber das PO-Dateiformat ist nicht so streng spezifiziert (d. H. Viel weniger streng als der RFC, der HTTP definierte), was es ein bisschen fummelig macht. Shameless-Plug, Ich habe eine C++ 11-Header-only-Bibliothek, die dies tut, die unter Boost-Lizenz hier verfügbar ist: https://github.com/cbeck88/spirit-po –

+1

Sie könnten auch eine C-Bibliothek namens 'libgettext -po', wenn Sie alle Arten von Dingen, die die GNU-Tools wie 'msgfmt' verwenden, vollständig parsen wollen. Meine Lib zielt nur auf den letzten Teil der Anwendung ab. –

+0

@ChrisBeck Wie würde man diese Funktionen aus der Bibliothek verwenden? Ich bekomme Fehler beim Verknüpfen der ausführbaren Datei: 'undefinierter Verweis auf 'po_file_read_v3'' Ich habe die Datei wie folgt eingefügt:' #include ' – Baklap4

Antwort

1

Ja, definitiv können Sie dies tun. Das PO-Dateiformat wird in der gettext-Dokumentation beschrieben: https://www.gnu.org/software/gettext/manual/gettext.html#PO-Files. Sie können damit Ihren eigenen Parser für diese Dateien schreiben.

Gettext hat auch Windows-Version, können Sie es verwenden, wenn Sie irgendeine gettext implementtaion für Windows suchen: http://gnuwin32.sourceforge.net/packages/gettext.htm

Gibt es einen anderen Grund, warum Sie dies tun wollen? Bitte geben Sie uns weitere Details.

+0

Dies ist entweder ein Kommentar oder eine Nur-Link-Antwort. Wie auch immer, es ist keine gute Antwort. Bitte erweitern. – user4581301