代码之家  ›  专栏  ›  技术社区  ›  jodonnell

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

  •  0
  • jodonnell  · 技术社区  · 15 年前

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

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

    这就是我最想看到的:

    $msgids = magic_gettext_keys_function('mydomain');
    foreach ($msgids as $msgid) {
        do_something_awesome($msgid);
    }
    
    1 回复  |  直到 15 年前
        1
  •  0
  •   jodonnell    15 年前

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