Commit 53f0df43 authored by Fabien Potencier's avatar Fabien Potencier

bug #1254 fixed translation registration for the validators (fabpot)

This PR was merged into the 1.3 branch.

Discussion
----------

fixed translation registration for the validators

fixes #1241

Commits
-------

4f560c9f fixed translation registration for the validators
parents c31743e4 4f560c9f
......@@ -4,7 +4,7 @@ Changelog
1.3.4 (2015-XX-XX)
------------------
* n/a
* fixed translation registration for the validators
1.3.3 (2015-09-08)
------------------
......
......@@ -78,14 +78,6 @@ class FormServiceProvider implements ServiceProviderInterface
if (isset($app['validator'])) {
$extensions[] = new FormValidatorExtension($app['validator']);
if (isset($app['translator'])) {
$r = new \ReflectionClass('Symfony\Component\Form\Form');
$file = dirname($r->getFilename()).'/Resources/translations/validators.'.$app['locale'].'.xlf';
if (file_exists($file)) {
$app['translator']->addResource('xliff', $file, $app['locale'], 'validators');
}
}
}
return $extensions;
......
......@@ -40,6 +40,22 @@ class TranslationServiceProvider implements ServiceProviderInterface
$translator->addLoader('array', new ArrayLoader());
$translator->addLoader('xliff', new XliffFileLoader());
if (isset($app['validator'])) {
$r = new \ReflectionClass('Symfony\Component\Validator\Validation');
$file = dirname($r->getFilename()).'/Resources/translations/validators.'.$app['locale'].'.xlf';
if (file_exists($file)) {
$translator->addResource('xliff', $file, $app['locale'], 'validators');
}
}
if (isset($app['form.factory'])) {
$r = new \ReflectionClass('Symfony\Component\Form\Form');
$file = dirname($r->getFilename()).'/Resources/translations/validators.'.$app['locale'].'.xlf';
if (file_exists($file)) {
$translator->addResource('xliff', $file, $app['locale'], 'validators');
}
}
// Register default resources
foreach ($app['translator.resources'] as $resource) {
$translator->addResource($resource[0], $resource[1], $resource[2], $resource[3]);
......
......@@ -29,20 +29,6 @@ class ValidatorServiceProvider implements ServiceProviderInterface
public function register(Application $app)
{
$app['validator'] = $app->share(function ($app) {
if (isset($app['translator'])) {
$r = new \ReflectionClass('Symfony\Component\Validator\Validation');
$file = dirname($r->getFilename()).'/Resources/translations/validators.'.$app['locale'].'.xlf';
if (file_exists($file)) {
$app->extend('translator.resources', function ($resources, $app) use ($file) {
$resources = array_merge(array(
array('xliff', $file, $app['locale'], 'validators'),
), $resources);
return $resources;
});
}
}
return $app['validator.builder']->getValidator();
});
......
......@@ -150,7 +150,10 @@ class ValidatorServiceProviderTest extends \PHPUnit_Framework_TestCase
);
}
public function testAddResource()
/**
* @dataProvider getAddResourceData
*/
public function testAddResource($registerValidatorFirst)
{
$app = new Application();
$app['locale'] = 'fr';
......@@ -163,11 +166,18 @@ class ValidatorServiceProviderTest extends \PHPUnit_Framework_TestCase
return $translator;
}));
$app['validator'];
if ($registerValidatorFirst) {
$app['validator'];
}
$this->assertEquals('Pas vide', $app['translator']->trans('This value should not be blank.', array(), 'validators', 'fr'));
}
public function getAddResourceData()
{
return array(array(false), array(true));
}
public function testAddResourceAlternate()
{
$app = new Application();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment