【发布时间】:2016-06-16 22:50:47
【问题描述】:
我正在以 PO 格式进行一些本地化。
是否可以在您的 C++ 应用程序中获取此文件的内容?而不是调用gettext("id here")
我想在 C++ 中读取完整的文件(在 linux 和 windows 上)
【问题讨论】:
-
这是可能的,但是 PO 文件格式并没有那么严格地指定,(即比定义 HTTP 的 RFC 严格得多)这使得它有点繁琐。无耻的插件,我制作了一个 C++11 仅标头库来执行此操作,可在此处根据 boost 许可证获得:github.com/cbeck88/spirit-po
-
如果你想完全解析像
msgfmt这样的GNU工具使用的所有类型的东西,你也可以使用一个名为libgettext-po的C库。我的库仅针对您应用程序中的最后一部分。 -
@ChrisBeck 如何使用库中的这些函数?链接可执行文件时出现错误:
undefined reference to 'po_file_read_v3'我确实包含以下文件:#include <gettext-po.h> -
libgettext-po是一个 C 库,你把extern "C"放在 include 周围了吗?您是否将编译后的库放在链接器路径中?