【问题标题】:Gettext PO file format获取文本 PO 文件格式
【发布时间】: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 周围了吗?您是否将编译后的库放在链接器路径中?

标签: c++ c++11 gettext po


【解决方案1】:

是的,你绝对可以做到这一点。 PO 文件格式在 gettext 的文档中有所描述:https://www.gnu.org/software/gettext/manual/gettext.html#PO-Files。您可以使用它为这些文件编写自己的解析器。

Gettext 也有 Windows 版本,如果您正在寻找任何适用于 Windows 的 gettext 实现,可以使用它:http://gnuwin32.sourceforge.net/packages/gettext.htm

您还有其他原因想要这样做吗?请提供更多详细信息。

【讨论】:

  • 这是评论或仅链接的答案。无论哪种方式,这都不是一个好的答案。请展开。
猜你喜欢
  • 2011-05-01
  • 2012-04-22
  • 2012-04-30
  • 2017-10-24
  • 1970-01-01
  • 2012-11-25
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
相关资源
最近更新 更多