-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[Translation] Entity constraints are not taken into account in the translation:extract #45039
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
ref #44911 (comment) |
@geoffroyp, @ro0NL or anyone else, would you like to work on this? |
There is a workaround to "force" entity constraint messages to be extracted: #[ORM\Entity(repositoryClass: FooRepository::class)]
class Foo
{
#[ORM\Column(type: 'string', length: 255)]
#[Assert\NotBlank([], new TranslatableMessage('foo.name.not_blank.message', [], 'validators'))]
private string $name; As However, it needs PHP >= 8.1, as instanciation in expression are not allowed before PHP 8.1. I think this issue can join the reasons list to write a new cc @victou |
This PR was merged into the 6.2 branch. Discussion ---------- [Translation] Add `PhpAstExtractor` | Q | A | ------------- | --- | Branch? | 6.2 | Bug fix? | no | New feature? | yes | Deprecations? | no | Tickets | Fix #44899, #42285, #45972, #45039 | License | MIT | Doc PR | symfony/symfony-docs#17369 After discussions with `@stof` and `@nicolas`-grekas at SymfonyLive Paris 2022, it appears clear that we need a brand new PhpExtractor in Translation to support various syntax, especially PHP8 new syntax (named arguments for example). In order to make this new extractor sustainable, performant and maintainable, it must be based on AST. That's why this PR adds a new optional dependency on [nikic/php-parser](https://github.com/nikic/PHP-Parser). The tests suite is the same as PhpExtractorTest, in addition to new cases for newly supported syntax. NB: I was inspired by https://github.com/php-translation/extractor design, with adaptations for Symfony. To-do: - [x] As suggested by `@Nyholm`, take a look at https://github.com/php-translation/extractor - [x] Fix #45039 (could be achieved easily with AST tree) Commits ------- 5d4a81f Add PhpAstExtractor
Description
In the current symfony documentation ( https://symfony.com/doc/current/validation/translations.html ), it says that we can translate validation constraints by simply adding a translation key in "message" property, then adding this key in a "validators" catalog file.
Nice. But it would be soooo much better, easier and safer it we could generate this file by using the
translation:extract
command like for any other translation.However, according to the translator documentation: https://symfony.com/doc/current/translation.html#extracting-translation-contents-and-updating-catalogs-automatically
Therefore, since validator in entities
/templates/
then these keys are never extracted by the
translation:extract
command. And indeed, after trying it in my project, I can confirm they are not.Could we get a fix for that?
Example
No response
The text was updated successfully, but these errors were encountered: