是否有用于解析 gettext PO POT 文件的 PHP 库?

发布于 2024-12-20 17:33:54 字数 1536 浏览 0 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你好,陌生人 2024-12-27 17:33:54

一些简单的正则表达式将允许您解析 .PO/.POT 文件。我最近做了类似的事情。从我最近编写的脚本中获取以下正则表达式:

$poMsgIdAndMsgStrRegex = '/^#\s*(.+?)\nmsgid "(.+?)"\nmsgstr "(.+?)"/m';

这仅捕获最终的注释行,但到目前为止它适合我的目的。您可能需要适应它。

无论如何,您可以将上述正则表达式与 preg_match_all() 结合使用,将所有 MsgIdMsgStr 字符串捕获到匹配数组中。获得数组后,您可以将其设置为您想要的任何格式。

可能有库可以执行此操作,但我还没有看到。

编辑:您可能还想查看“可能重复”注释中提到的用于转换 .po 文件 .mo 格式的 PHP 类。听起来它并不能解决您的问题(因为您想将 .po 文件转换为 XML),但无论如何它都值得检查。这对我帮助很大。

Some simple regular expressions will allow you to parse .PO/.POT files. I did a similar thing recently. Take the following regex from a script I have recently written:

$poMsgIdAndMsgStrRegex = '/^#\s*(.+?)\nmsgid "(.+?)"\nmsgstr "(.+?)"/m';

This does only capture the final comment line but it has so far been suitable for my purposes. You may need to adapt it.

Anyway, you can use the above regex with preg_match_all() to capture all MsgId and MsgStr strings into an array of matches. Once you have the array then you can put it into any format you wish.

There may be libraries for doing this but I have not seen any.

Edit: You may also want to check out the PHP class for converting.po files .mo format that is referred to in the 'possible duplicate' comment. It doesn't sound like it will solve your problem (since you want to convert .po files to XML), but it is worth examining anyway. It helped me a lot.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文