Programlı bir. MO dosyasındaki tüm ileti kimliklerini listelemek için kolay bir yol var mı?

1 Cevap php

Ben büyük bir ol 'Ben PHP uygulaması için gereken tüm kullanıcı bakan dizelerini içeren. Po dosyası var. Ben. Po ya. Mo saklanan tüm msgstr dizeleri bir listesini almak için kullanabileceğiniz bir PHP işlevi olup olmadığını bilmek istiyorum.

Ben bunu yapan bir yayınlanan PHP işlevini görmedim. Herkes benzer bir şey biliyor, ya da ben elle. Po kendimi dosya ayrıştırmak zorunda kalacak?

Bu iyi bir şekilde görmek istiyorum budur:

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

1 Cevap

Henüz herhangi bir cevap aldıktan değil, benim için bunu yapmak için hiçbir API çağrı var sayıyorum. . Ancak, po dosya yerine gelen msgstr dizeleri ayıklamak neredeyse önemsiz bulunuyor:

$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);
}