有一种简单的方法可以以编程方式列出.MO文件中的所有消息ID吗?

时间:2009-07-01 18:31:53

标签: php gettext

我有一个很棒的'.po文件,其中包含我的PHP应用程序所需的所有面向用户的字符串。我想知道是否有一个PHP函数,我可以使用它来获取存储在.po或.mo中的所有msgid字符串的列表。

我没有看到发布的PHP函数。任何人都知道类似的东西,或者我必须自己手动解析我的.po文件?

这是我最喜欢看到的:

$msgids = magic_gettext_keys_function('mydomain');
foreach ($msgids as $msgid) {
    do_something_awesome($msgid);
}

1 个答案:

答案 0 :(得分:0)

还没有收到任何答案,我假设没有API调用来为我做。但是,从.po文件中提取msgid字符串几乎是微不足道的:

$path = $GLOBALS['LOCALE_DIR'] . '/en/LC_MESSAGES/mydomain.po';
$poSrc = file_get_contents($path);
preg_match_all('/msgid\s+\"([^\"]*)\"/', $poSrc, $matches);
$msgids = $matches[1];

foreach ($msgids as $msgid) {
    do_something_awesome($msgid);
}