Extraindo Conteúdo de Tradução dos Arquivos PHP no Symfony 4.3

Andréia Bohner
1 min readMay 25, 2019

--

As tarefas mais demoradas ao traduzir uma aplicação são: extrair todo o conteúdo a ser traduzido dos templates e manter todos os arquivos de tradução em sincronia. O Symfony inclui um comando chamado translation:update que ajuda você nestas tarefas:

# updates the French translation with the missing strings found in templates/$ php bin/console translation:update --dump-messages --force fr

Conforme explicado nos documentos, a principal limitação desse comando é que ele somente pode extrair conteúdo de templates. No Symfony 4.3, esse comando foi melhorado para também extrair conteúdo de tradução de arquivos PHP, como controladores e serviços.

Especificamente, o comando agora examina qualquer arquivo/classe PHP definido como serviço que também injeta (ou usa autowire) o serviço de tradução do Symfony. Considere, por exemplo, este controlador definido como um serviço:

use Symfony\Component\Translation\TranslatorInterface;

class SomeController extends AbstractController
{
public function someAction(TranslatorInterface $translator)
{
$message = $translator->trans('some_message_key');

// ...
}
}

No Symfony 4.3, o ID some_message_key será extraído ao executar o comando translation:update, enquanto nas versões anteriores do Symfony ele seria ignorado.

Relacionado a essa mudança, também foi melhorada a lógica de extração para arquivos PHP (Pull Request 31249), QT (Pull Request 31248) e PO (Pull Request 30909) para incluir o caminho do arquivo e o número da linha onde as strings extraídas foram originalmente encontradas.

Tradução de: New in Symfony 4.3: Extracting Translation Contents from PHP Files

--

--