プログラムで.MOファイル内のすべてのメッセージIDを一覧表示する簡単な方法はありますか?

StackOverflow https://stackoverflow.com/questions/1070641

  •  21-08-2019
  •  | 
  •  

質問

私は、私は私の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);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top