2016-06-16 26 views
-1

У меня локализация происходит в формате PO. Возможно ли получить содержимое этого файла в вашем приложении на C++? Вместо звонка gettext("id here") Я хочу прочитать полный файл в C++ (на linux и windows)Формат файла Gettext PO

+0

Возможно, но формат файла PO не указан строго, (т. Е. Гораздо менее строгий, чем RFC, который определил HTTP), что делает его немного затруднительным. Бесстыдный штепсель, я создал библиотеку только для заголовков C++ 11, которая делает это, которая доступна под дополнительной лицензией здесь: https://github.com/cbeck88/spirit-po –

+1

Вы также можете использовать библиотеку C, называемую 'libgettext -po', если вы хотите полностью разобрать все те вещи, которые используют инструменты GNU, такие как 'msgfmt'. Моя библиотека только нацелена на последнюю часть, которая находится в вашем приложении. –

+0

@ChrisBeck как использовать эти функции из библиотеки? Я получаю ошибки при связывании исполняемого файла: 'undefined reference to 'po_file_read_v3'' Я включил файл следующим образом:' #include ' – Baklap4

ответ

1

Да, определенно вы можете это сделать. Формат файла PO описан в документации gettext: https://www.gnu.org/software/gettext/manual/gettext.html#PO-Files. Вы можете использовать его для написания собственного анализатора для этих файлов.

Gettext также версия для Windows, вы можете использовать его, если вы ищете какой-либо GetText implementtaion для Windows: http://gnuwin32.sourceforge.net/packages/gettext.htm

Есть ли другая причина, почему вы хотите это сделать? Пожалуйста, дайте нам более подробную информацию.

+0

Это либо комментарий, либо ответ только для ссылок. В любом случае это не очень хороший ответ. Пожалуйста, развернитесь. – user4581301