У меня локализация происходит в формате PO. Возможно ли получить содержимое этого файла в вашем приложении на C++? Вместо звонка gettext("id here")
Я хочу прочитать полный файл в C++ (на linux и windows)Формат файла Gettext PO
ответ
Да, определенно вы можете это сделать. Формат файла 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
Есть ли другая причина, почему вы хотите это сделать? Пожалуйста, дайте нам более подробную информацию.
Это либо комментарий, либо ответ только для ссылок. В любом случае это не очень хороший ответ. Пожалуйста, развернитесь. – user4581301
Возможно, но формат файла PO не указан строго, (т. Е. Гораздо менее строгий, чем RFC, который определил HTTP), что делает его немного затруднительным. Бесстыдный штепсель, я создал библиотеку только для заголовков C++ 11, которая делает это, которая доступна под дополнительной лицензией здесь: https://github.com/cbeck88/spirit-po –
Вы также можете использовать библиотеку C, называемую 'libgettext -po', если вы хотите полностью разобрать все те вещи, которые используют инструменты GNU, такие как 'msgfmt'. Моя библиотека только нацелена на последнюю часть, которая находится в вашем приложении. –
@ChrisBeck как использовать эти функции из библиотеки? Я получаю ошибки при связывании исполняемого файла: 'undefined reference to 'po_file_read_v3'' Я включил файл следующим образом:' #include ' –
Baklap4