如果不在PHP中,可以使用一些命令行工具将PO文件转换为某种结构化格式,例如XML或其他一些我可以在PHP中简单处理的东西?
答案 0 :(得分:6)
更新:截至2018/05,最佳选择是:
请参阅http://www.phptherightway.com#i18n_l10n_title
有一些:
最后一个是Drupal的一部分,它可能是维护得最多的。
答案 1 :(得分:1)
一些简单的正则表达式将允许您解析.PO / .POT文件。我最近做了类似的事情。从我最近写的脚本中获取以下正则表达式:
$poMsgIdAndMsgStrRegex = '/^#\s*(.+?)\nmsgid "(.+?)"\nmsgstr "(.+?)"/m';
这只捕获最终评论行,但到目前为止它已适合我的目的。您可能需要对其进行调整。
无论如何,您可以将上述正则表达式与preg_match_all()
一起使用,将所有MsgId
和MsgStr
字符串捕获到一系列匹配项中。一旦你有阵列,那么你可以把它放到你想要的任何格式。
可能有图书馆这样做,但我没见过。
编辑:您可能还想查看PHP类,以获取“可能重复”注释中引用的conversion.po文件.mo格式。听起来它不会解决您的问题(因为您想将.po文件转换为XML),但无论如何都值得研究。这对我帮助很大。