<p dir="auto">After updating Symfony I thought I could see the effect of <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="75010234" data-permission-text="Title is private" data-url="https://github.com/symfony/symfony/issues/14601" data-hovercard-type="pull_request" data-hovercard-url="/symfony/symfony/pull/14601/hovercard" href="https://github.com/symfony/symfony/pull/14601">#14601</a> but it doesn't happen because there is <strong>two</strong> translations folders into the security component.</p>
<p dir="auto">I updated <a href="https://github.com/symfony/symfony/blob/2.8/src/Symfony/Component/Security/Resources/translations/security.fr.xlf">Security/Resources/translations/security.fr.xlf</a> but <a href="https://github.com/symfony/symfony/blob/2.8/src/Symfony/Component/Security/Core/Resources/translations/security.fr.xlf">Security/Core/Resources/translations/security.fr.xlf</a> is used.</p>
<p dir="auto">I don't know if it's legit but now that translations have diverged I think something must be done.</p>
<p dir="auto">PHP 7<br>
Using Symfony\Component\Validator\Constraints\Collection;</p>
<p dir="auto">I'm using Symfony 3.1 and I hope I'm not doing something wrong. When I validate a field, it doesn't stop after the first violation. Example :</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$errors = $val-&gt;validate(
    $info,
    new \Symfony\Component\Validator\Constraints\Collection([
        'fields' =&gt; array(
            'specialKey' =&gt; array(
                new NotBlank(),
                new Length(['min' =&gt; 8,'max' =&gt; 20]),
                new Regex(['value' =&gt; &quot;/^[A-Za-z]*$/&quot;]),
            )
        ),
        'allowExtraFields' =&gt; true,
    ])
);"><pre class="notranslate"><code class="notranslate">$errors = $val-&gt;validate(
    $info,
    new \Symfony\Component\Validator\Constraints\Collection([
        'fields' =&gt; array(
            'specialKey' =&gt; array(
                new NotBlank(),
                new Length(['min' =&gt; 8,'max' =&gt; 20]),
                new Regex(['value' =&gt; "/^[A-Za-z]*$/"]),
            )
        ),
        'allowExtraFields' =&gt; true,
    ])
);
</code></pre></div>
<p dir="auto">I'm getting :</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="'This value is too short. It should have 8 characters or more.'
'This value is not valid.'"><pre class="notranslate"><code class="notranslate">'This value is too short. It should have 8 characters or more.'
'This value is not valid.'
</code></pre></div>
<p dir="auto">I found a walk-around for those who are interested :</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$errors = $val-&gt;validate(
    $info,
    new \Symfony\Component\Validator\Constraints\Collection([
        'fields' =&gt; array(
            'specialKey' =&gt; array(
                new NotBlank(['groups' =&gt; 'groupe1']),
                new Length(['min' =&gt; 8,'max' =&gt; 20,'groups' =&gt; 'groupe2']),
                new Regex(['value' =&gt; &quot;/^[A-Za-z]*$/&quot;,'groups' =&gt; 'groupe3']),
            )
        ),
        'allowExtraFields' =&gt; true,
    ]),
    new GroupSequence(array('Default','groupe1','groupe2','groupe3'))
);"><pre class="notranslate"><code class="notranslate">$errors = $val-&gt;validate(
    $info,
    new \Symfony\Component\Validator\Constraints\Collection([
        'fields' =&gt; array(
            'specialKey' =&gt; array(
                new NotBlank(['groups' =&gt; 'groupe1']),
                new Length(['min' =&gt; 8,'max' =&gt; 20,'groups' =&gt; 'groupe2']),
                new Regex(['value' =&gt; "/^[A-Za-z]*$/",'groups' =&gt; 'groupe3']),
            )
        ),
        'allowExtraFields' =&gt; true,
    ]),
    new GroupSequence(array('Default','groupe1','groupe2','groupe3'))
);
</code></pre></div>