Symfony 4 не будет переводить сообщения валидатора и всегда показывает английский по умолчанию - PullRequest
0 голосов
/ 09 октября 2018

Привет, я француз, и я пытаюсь с Symfony 4 получить перевод сообщений валидатора /

private function validationAction($iban)
{
    $validator = Validation::createValidator();

    $ibanClient = $iban;
    $constraint = new Assert\Collection(array(
        'iban' => array(
            new Assert\NotBlank(array('message' => 'Champs obligatoire')),
            new Assert\Iban()
        ),
    ));

    return $errors = $validator->validate(
        array('iban' => $ibanClient),
        $constraint
    );
}

Я установил систему перевода, используя

composer require symfony/translation

Теперь, если я поставлю $ iban = "FR00", это ответ:

This is not a valid International Bank Account Number (IBAN).

Я видел в

vendor / symfony / validator / Resources / translations / validators.fr.xlf

файл уже существует, и я настроил локаль в

config / packages / framework.yaml

framework:
secret: '%env(APP_SECRET)%'
default_locale: fr

И в

config / services.yaml

parameters:
locale: 'fr'

Я пытался создать файл в

translations / validators.fr.yml

но без изменений.Пожалуйста, помогите мне, спасибо

1 Ответ

0 голосов
/ 09 октября 2018

Хорошо, это мой код, который работает:

/**
 * @Route("/admin/rib/add", name="rib_add", condition="request.isXmlHttpRequest()")
 */
public function rib_add(Request $request, ValidatorInterface $validator)
{
    try {
        $errors = $validator->validate(
            array('iban' => $request->get('')),
            new Assert\Collection(array(
                'iban' => array(
                    new Assert\NotBlank(),
                    new Assert\Iban(),
                    new Assert\Length(array('min' => 5)),
                ),
            )));
        if (count($errors) > 0) {
            throw new \Exception($errors[0]->getMessage());
        }

        return new JsonResponse([
            'success' => true,
            'message' => 'Ajout du RIB ok',
            'data'    => [],
        ]);
    } catch (\Exception $exception) {

        return new JsonResponse([
            'success' => false,
            'code'    => $exception->getCode(),
            'message' => $exception->getMessage(),
        ]);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...