How to Translate Validation Constraint Messages ¶
The validation constraints used in forms can translate their error messages by
creating a translation resource for the validators
translation domain.
First of all, install the Symfony translation component (if it's not already installed in your application) running the following command:
1 |
$ composer require symfony/translation
|
Suppose you've created a plain-old-PHP object that you need to use somewhere in your application:
1 2 3 4 5 6 7 |
// src/Entity/Author.php
namespace App\Entity;
class Author
{
public $name;
}
|
Add constraints through any of the supported methods. Set the message option
to the translation source text. For example, to guarantee that the $name
property is not empty, add the following:
-
Attributes
属性
-
YAML
YAML
-
XML
XML
-
PHP
PHP
1 2 3 4 5 6 7 8 9 10 |
// src/Entity/Author.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Author
{
#[Assert\NotBlank(message: 'author.name.not_blank')]
public $name;
}
|
Now, create a validators
catalog file in the translations/
directory:
-
XML
XML
-
YAML
YAML
-
PHP
PHP
1 2 3 4 5 6 7 8 9 10 11 12 |
<!-- translations/validators/validators.en.xlf -->
<?xml version="1.0" encoding="UTF-8" ?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext">
<body>
<trans-unit id="author.name.not_blank">
<source>author.name.not_blank</source>
<target>Please enter an author name.</target>
</trans-unit>
</body>
</file>
</xliff>
|
You may need to clear your cache (even in the dev environment) after creating this file for the first time.