Contributed by
Mathieu Santostefano
in #46161.
Symfony includes a translation:extract command that looks for translatable contents in Twig templates and PHP files/classes to update the translation files with all the new contents found.
Behind the scenes, a PhpExtractor
service uses the token_get_all()
function
to find those translatable strings. This works well in most cases, but it's
increasingly difficult to add support for newer PHP features such as named arguments.
That's why in Symfony 6.2 we're introducing a new AST-based translation extractor. It uses the popular nikic/php-parser library to properly parse the contents of PHP files and process them as traversable nodes.
The new PhpAstExtractor
service supports all kinds of trans()
function calls,
usages of TranslatableMessage
class, messages defined in validation constraints, etc.
Thanks to its solid AST-based foundation, we'll improve it and will add support
for new PHP features much faster than before.
To use the new translation extractor, update your project to Symfony 6.2 and
install the nikic/php-parser
package using Composer. That's all. There's
nothing else to configure or change in your project.
<hr style="margin-bottom: 5px" />
<div style="font-size: 90%">
<a href="https://symfony.com/sponsor">Sponsor</a> the Symfony project.
</div>
Inicia sesión para agregar comentarios
Otros mensajes en este grupo.

SymfonyLive Paris 2025, conference in French language only, will take place from March 27 to 28! The schedule is currently being revealed as we go along. More details are available here.
Al

SymfonyLive Berlin 2025, conference held in English, will take place from April 1 to 4! The schedule is being revealed gradually. More details are available here. 🚨 Enjoy the last few days bef

SymfonyLive Paris 2025, conference in French language only, will take place from March 27 to 28! The schedule is currently being revealed as we go along. More details are available here. 🚨 Tod

Symfony 6.4.19 has just been released. Here is the list of the most important changes since 6.4.18:
bug #59198 [Messenger] Filter out non-consumable receivers when registering ConsumeMessagesComm

Symfony 7.2.4 has just been released. Here is the list of the most important changes since 7.2.3:
bug #59198 [Messenger] Filter out non-consumable receivers when registering ConsumeMessagesComman

SymfonyLive Paris 2025, conference in French language only, will already start in 1 month with the workshops! Have a look on the topics and join us! Schedule details are available here.
📣

A few weeks ago, I had the pleasure of announcing the formation of the Symfony UX Core Team, a dedicated group working to enhance the frontend development experience within the Symfony ecosystem. Toda