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

发布于 2024-07-26 02:42:12 字数 346 浏览 5 评论 0原文

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

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

这是我最希望看到的:

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

I have a big ol' .po file containing all the user-facing strings I need for my PHP app. I'd like to know if there's a PHP function I can use to get a list of all the msgid strings stored in the .po or the .mo.

I didn't see a published PHP function that does this. Anyone know of something similar, or will I have to manually parse my .po file myself?

This is what I'd optimally like to see:

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

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

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

发布评论

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

评论(1

江心雾 2024-08-02 02:42:12

尚未收到任何答案,我假设没有 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);
}

Not having received any answers yet, I'm assuming there is no API call to do it for me. However, it's almost trivial to extract the msgid strings from the .po file instead:

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