Existe uma maneira fácil de listar programaticamente todos os IDs de mensagens em um arquivo .mo?

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

  •  21-08-2019
  •  | 
  •  

Pergunta

Eu tenho um grande ol' .po arquivo contendo todas as cordas voltadas para o usuário que preciso para meu aplicativo PHP. Eu gostaria de saber se há uma função PHP que posso usar para obter uma lista de todas as cordas msgstr armazenados no .po ou .mo.

Eu não vi uma função PHP publicou que faz isso. Alguém sabe de algo semelhante, ou será que eu tenho que analisar manualmente o meu arquivo .po me?

Este é o que eu otimamente gostaria de ver:

$msgids = magic_gettext_keys_function('mydomain');
foreach ($msgids as $msgid) {
    do_something_awesome($msgid);
}
Foi útil?

Solução

Não tendo recebido qualquer resposta, no entanto, eu estou supondo que não há nenhuma chamada de API para fazer isso por mim. No entanto, é quase trivial para extrair as cordas msgstr do arquivo .po em vez disso:

$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);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top