プログラムで.MOファイル内のすべてのメッセージIDを一覧表示する簡単な方法はありますか?
質問
私は、私は私のPHPアプリケーションのために必要なすべてのユーザー向けの文字列を含むファイルの.po大きいol」を持っています。私は.poファイルや.moの中に格納されているすべてのmsgid文字列のリストを取得するために使用できるPHP関数はありますかどうかを知りたいのです。
私はこれを行うに公開PHPの機能を見ていません。誰でも似たようなのを知っている、または私は自分自身を提出手動で私の.poを解析する必要があります?
これは私が最適に見てみたいものです。
$msgids = magic_gettext_keys_function('mydomain');
foreach ($msgids as $msgid) {
do_something_awesome($msgid);
}
解決
私は私のためにそれを行うには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);
}
所属していません StackOverflow