merged branch bschussek/issue5844 (PR #6137)

This PR was merged into the master branch.

Commits
-------

586a16e [Validator] Changed DefaultTranslator::getLocale() to always return 'en'
58bfd60 [Validator] Improved the inline documentation of DefaultTranslator
cd662cc [Validator] Added ExceptionInterface, BadMethodCallException and InvalidArgumentException
e00e5ec [Validator] Fixed failing test
cc0df0a [Validator] Changed validator to support pluralized messages by default
56d61eb [Form][Validator] Added BC breaks in unstable code to the CHANGELOG
1e34e91 [Form] Added upgrade instructions to the UPGRADE file
b94a256 [DoctrineBridge] Adapted DoctrineBridge to translator integration in the validator
c96a051 [FrameworkBundle] Adapted FrameworkBundle to translator integration in the validator
92a3b27 [TwigBridge] Adapted TwigBridge to translator integration in the validator
e7eb5b0 [Form] Adapted Form component to translator integration in the validator
46f751c [Validator] Extracted message interpolation logic of ConstraintViolation and used the Translation component for that

Discussion
----------

[Validator] Integrated the Translator in the Validator component

Bug fix: no
Feature addition: no
Backwards compatibility break: yes
Symfony2 tests pass: yes
Fixes the following tickets: #5844, #6117
Todo: -
License of the code: MIT
Documentation PR: -

This PR allows to replace the default message substitution strategy in the validator (`strtr()`) by passing an implementation of `Symfony\Component\Translation\TranslatorInterface`. The motivation for this are both #5844 and the need to replace the translation strategy in Drupal's integration of the Validator.

In the stand-alone usage of the validator, both the translator and the default translation domain can now be passed to `ValidatorBuilderInterface`:

```php
$validator = Validation::createValidatorBuilder()
    ->setTranslator(new MyTranslator())
    ->setTranslationDomain('validators')
    ->getValidator();
```

References:

* #5844
* #6117
* #6129
* [Add a validation framework to Drupal 8](http://drupal.org/node/1845546)
* [Add the symfony validator component to core despite Symfony potentially releasing BC-breaking updates after 2.3.](http://drupal.org/node/1849564)

---------------------------------------------------------------------------

by Tobion at 2012-11-28T08:53:25Z

no BC break? Looking at ValidatorBuilderInterface there is definitely one.

---------------------------------------------------------------------------

by bschussek at 2012-11-28T08:55:01Z

ValidatorBuilderInterface is not part of the stable API. You are not supposed to implement this interface.

---------------------------------------------------------------------------

by Tobion at 2012-11-28T09:01:07Z

We're not only documenting bc breaks for stable API, otherwise we could remove 90% of the upgrade file since few methods are tagged with API.
An interface that nobody should implement?

---------------------------------------------------------------------------

by bschussek at 2012-11-28T09:30:02Z

The question is what to consider a BC break. Something will always break for someone. Should we consequently mark everything as BC break? I don't think so.

For example, since 2.1, you are supposed to use `Validation::createValidator*()` for creating a validator. Because of that, I won't consider changing the constructor signature of `Validator` a BC break anymore from 2.1 on.

The same for the unstable interfaces. These are currently meant to be used only, that is, type hint against them and call their methods. But we don't guarantee that we won't add methods to them.

---------------------------------------------------------------------------

by Tobion at 2012-11-28T09:38:19Z

I agree that almost any change could be considered a BC break. So we probably need to better define what a BC break is and what not. Otherwise Symfony will stop evolving after 2.3 because from then on Fabien wanted to prevent BC breaks which is almost impossible in a strict definition of bc break.

---------------------------------------------------------------------------

by fabpot at 2012-11-28T11:37:22Z

BC breaks should always be documented, and we guarantee BC only for things tagged with @api. I'm going to update the docs to make things clearer.

---------------------------------------------------------------------------

by bschussek at 2012-11-28T13:09:57Z

@fabpot I documented these changes now in the CHANGELOG: af99ebb1206ac92889b7193ba1ecc12bf2617e85

Are we sure we want to document *all* BC breaks from now on, even in non-@api code? This could rather scare people looking at our changelogs (lots of BC BREAKS there).

---------------------------------------------------------------------------

by fago at 2012-11-28T17:29:58Z

Unfortunately, it turns out the symfony translator interface does not mach the Drupal translation system as well as we initally thought, see http://drupal.org/node/1852106. Given that, this would integrating the validator component into Drupal even harder, because it introduces the dependency on the (unwanted) translation component. :(

---------------------------------------------------------------------------

by stof at 2012-11-28T18:19:36Z

If this does not help Drupal anyway, maybe #5844 is a better way to manage translations for people using the validator outside forms ?
and the Drupal guys would simply follow a similar approach, but based on their own translator instead of the symfony one.

---------------------------------------------------------------------------

by fago at 2012-11-28T18:50:12Z

Yeah. The only problem I see with the approach of #5844 is that *after* validation only the translated messages are available. We'd need to have access to the untranslated messages also.

---------------------------------------------------------------------------

by fago at 2012-11-29T09:49:47Z

As our translation system handles translating pluralized messages differently, the current ExecutionContextInterface::addViolation() method poses a problem also. We need to pass on - both the single and plural - message, as the message gets chosen during translation, see http://api.drupal.org/api/drupal/core!includes!common.inc/function/format_plural/8
So maybe, we could allow adding an already created ConstraintViolation object also? Then, we could implement a "PluralConstraintViolation" class that takes both message templates.

---------------------------------------------------------------------------

by bschussek at 2012-12-03T15:52:36Z

I updated this PR to support pluralized messages by default in the validator. This should solve the problem of the Drupal guys, because their implementation of `TranslatorInterface::transChoice($id, $number, ...)` can now simply split the $id by pipes (`|`) and pass the parts to their own `format_plural($count, $singular, $plural, ...)` function.

For us, it breaks BC because translation catalog sources had to be adapted.

---------------------------------------------------------------------------

by fabpot at 2012-12-03T16:25:52Z

Most of the XLF files are broken (the end is missing now).

IIUC, we now have a hard dependency on the Translation component, which is something we wanted to avoid.

---------------------------------------------------------------------------

by fabpot at 2012-12-03T16:27:56Z

Oops, clicked on the "comment" button too fast.

So, the dependency is hard (you need to install the dep) but light as we only rely on the translation interface from the component (when using the default translator). It looks acceptable to me, especially because we now use Composer to manage dependencies.

---------------------------------------------------------------------------

by bschussek at 2012-12-03T16:54:10Z

@fabpot Thanks for the hint. Going to fix this.

---------------------------------------------------------------------------

by bschussek at 2012-12-04T11:34:43Z

@fabpot Fixed.

---------------------------------------------------------------------------

by bschussek at 2012-12-07T12:40:24Z

Is there anything missing for this PR to be merged?
This commit is contained in:
Fabien Potencier 2013-01-09 09:22:50 +01:00
commit f07c61d25c
87 changed files with 974 additions and 454 deletions

View File

@ -64,6 +64,26 @@
Symfony\Component\Form\Exception namespace or to create custom exception
classes for your purpose.
* Translating validation errors is now optional. You can still do so
manually if you like, or you can simplify your templates to simply output
the already translated message.
Before:
```
{{
error.messagePluralization is null
? error.messageTemplate|trans(error.messageParameters, 'validators')
: error.messageTemplate|transchoice(error.messagePluralization, error.messageParameters, 'validators')
}}
```
After:
```
{{ error.message }}
```
#### Deprecations
* The methods `getParent()`, `setParent()` and `hasParent()` in
@ -186,6 +206,27 @@
}
```
* The sources of the pluralized messages in translation files have changed
from the singular to the pluralized version. If you created custom
translation files for validator errors, you should adapt them.
Before:
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<target>Sie müssen mindestens {{ limit }} Möglichkeit wählen.|Sie müssen mindestens {{ limit }} Möglichkeiten wählen.</target>
</trans-unit>
After:
<trans-unit id="6">
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Sie müssen mindestens {{ limit }} Möglichkeit wählen.|Sie müssen mindestens {{ limit }} Möglichkeiten wählen.</target>
</trans-unit>
Check the file src/Symfony/Component/Validator/Resources/translations/validators.en.xlf
for the new message sources.
#### Deprecations
* The interface `ClassMetadataFactoryInterface` was deprecated and will be

View File

@ -12,6 +12,7 @@
namespace Symfony\Bridge\Doctrine\Tests\Validator\Constraints;
use Symfony\Bridge\Doctrine\Tests\DoctrineOrmTestCase;
use Symfony\Component\Validator\DefaultTranslator;
use Symfony\Component\Validator\Tests\Fixtures\FakeMetadataFactory;
use Symfony\Bridge\Doctrine\Tests\Fixtures\SingleIdentEntity;
use Symfony\Bridge\Doctrine\Tests\Fixtures\DoubleIdentEntity;
@ -132,7 +133,7 @@ class UniqueValidatorTest extends DoctrineOrmTestCase
$metadataFactory->addMetadata($metadata);
$validatorFactory = $this->createValidatorFactory($uniqueValidator);
return new Validator($metadataFactory, $validatorFactory);
return new Validator($metadataFactory, $validatorFactory, new DefaultTranslator());
}
private function createSchema($em)

View File

@ -275,11 +275,7 @@
{% if errors|length > 0 %}
<ul>
{% for error in errors %}
<li>{{
error.messagePluralization is null
? error.messageTemplate|trans(error.messageParameters, 'validators')
: error.messageTemplate|transchoice(error.messagePluralization, error.messageParameters, 'validators')
}}</li>
<li>{{ error.message }}</li>
{% endfor %}
</ul>
{% endif %}

View File

@ -28,6 +28,6 @@ class AddValidatorInitializersPass implements CompilerPassInterface
$initializers[] = new Reference($id);
}
$container->getDefinition('validator')->replaceArgument(2, $initializers);
$container->getDefinition('validator')->replaceArgument(4, $initializers);
}
}

View File

@ -370,6 +370,7 @@ class Configuration implements ConfigurationInterface
->children()
->scalarNode('cache')->end()
->booleanNode('enable_annotations')->defaultFalse()->end()
->scalarNode('translation_domain')->defaultValue('validators')->end()
->end()
->end()
->end()

View File

@ -574,6 +574,7 @@ class FrameworkExtension extends Extension
{
$loader->load('validator.xml');
$container->setParameter('validator.translation_domain', $config['translation_domain']);
$container->setParameter('validator.mapping.loader.xml_files_loader.mapping_files', $this->getValidatorXmlMappingFiles($container));
$container->setParameter('validator.mapping.loader.yaml_files_loader.mapping_files', $this->getValidatorYamlMappingFiles($container));

View File

@ -23,6 +23,8 @@
<service id="validator" class="%validator.class%">
<argument type="service" id="validator.mapping.class_metadata_factory" />
<argument type="service" id="validator.validator_factory" />
<argument type="service" id="translator.default" />
<argument>%validator.translation_domain%</argument>
<argument type="collection" />
</service>

View File

@ -1,21 +1,7 @@
<?php if ($errors): ?>
<ul>
<?php foreach ($errors as $error): ?>
<li><?php
if (null === $error->getMessagePluralization()) {
echo $view['translator']->trans(
$error->getMessageTemplate(),
$error->getMessageParameters(),
'validators'
);
} else {
echo $view['translator']->transChoice(
$error->getMessageTemplate(),
$error->getMessagePluralization(),
$error->getMessageParameters(),
'validators'
);
}?></li>
<li><?php echo $error->getMessage() ?></li>
<?php endforeach; ?>
</ul>
<?php endif ?>

View File

@ -1,21 +0,0 @@
<?php if ($errors): ?>
<ul>
<?php foreach ($errors as $error): ?>
<li><?php
if (null === $error->getMessagePluralization()) {
echo $view['translator']->trans(
$error->getMessageTemplate(),
$error->getMessageParameters(),
'validators'
);
} else {
echo $view['translator']->transChoice(
$error->getMessageTemplate(),
$error->getMessagePluralization(),
$error->getMessageParameters(),
'validators'
);
}?></li>
<?php endforeach; ?>
</ul>
<?php endif ?>

View File

@ -12,6 +12,7 @@ CHANGELOG
* deprecated FormException and introduced ExceptionInterface instead
* [BC BREAK] FormException is now an interface
* protected FormBuilder methods from being called when it is turned into a FormConfigInterface with getFormConfig()
* [BC BREAK] inserted argument `$message` in the constructor of `FormError`
2.1.0
-----

View File

@ -123,6 +123,7 @@ class ViolationMapper implements ViolationMapperInterface
// Only add the error if the form is synchronized
if ($this->acceptsErrors($scope)) {
$scope->addError(new FormError(
$violation->getMessage(),
$violation->getMessageTemplate(),
$violation->getMessageParameters(),
$violation->getMessagePluralization()

View File

@ -18,6 +18,11 @@ namespace Symfony\Component\Form;
*/
class FormError
{
/**
* @var string
*/
private $message;
/**
* The template for the error message
* @var string
@ -41,16 +46,19 @@ class FormError
*
* Any array key in $messageParameters will be used as a placeholder in
* $messageTemplate.
* @see \Symfony\Component\Translation\Translator
*
* @param string $messageTemplate The template for the error message
* @param string $message The translated error message
* @param string|null $messageTemplate The template for the error message
* @param array $messageParameters The parameters that should be
* substituted in the message template.
* @param integer|null $messagePluralization The value for error message pluralization
*
* @see \Symfony\Component\Translation\Translator
*/
public function __construct($messageTemplate, array $messageParameters = array(), $messagePluralization = null)
public function __construct($message, $messageTemplate = null, array $messageParameters = array(), $messagePluralization = null)
{
$this->messageTemplate = $messageTemplate;
$this->message = $message;
$this->messageTemplate = $messageTemplate ?: $message;
$this->messageParameters = $messageParameters;
$this->messagePluralization = $messagePluralization;
}
@ -62,7 +70,7 @@ class FormError
*/
public function getMessage()
{
return strtr($this->messageTemplate, $this->messageParameters);
return $this->message;
}
/**

View File

@ -19,7 +19,7 @@ abstract class AbstractDivLayoutTest extends AbstractLayoutTest
public function testRow()
{
$form = $this->factory->createNamed('name', 'text');
$form->addError(new FormError('Error!'));
$form->addError(new FormError('[trans]Error![/trans]'));
$view = $form->createView();
$html = $this->renderRow($view);
@ -58,7 +58,7 @@ abstract class AbstractDivLayoutTest extends AbstractLayoutTest
public function testRepeatedRow()
{
$form = $this->factory->createNamed('name', 'repeated');
$form->addError(new FormError('Error!'));
$form->addError(new FormError('[trans]Error![/trans]'));
$view = $form->createView();
$html = $this->renderRow($view);
@ -398,7 +398,7 @@ abstract class AbstractDivLayoutTest extends AbstractLayoutTest
)
->getForm();
$form->get('child')->addError(new FormError('Error!'));
$form->get('child')->addError(new FormError('[trans]Error![/trans]'));
$this->assertWidgetMatchesXpath($form->createView(), array(),
'/div

View File

@ -283,8 +283,8 @@ abstract class AbstractLayoutTest extends FormIntegrationTestCase
public function testErrors()
{
$form = $this->factory->createNamed('name', 'text');
$form->addError(new FormError('Error 1'));
$form->addError(new FormError('Error 2'));
$form->addError(new FormError('[trans]Error 1[/trans]'));
$form->addError(new FormError('[trans]Error 2[/trans]'));
$view = $form->createView();
$html = $this->renderErrors($view);
@ -1151,7 +1151,7 @@ abstract class AbstractLayoutTest extends FormIntegrationTestCase
{
$child = $this->factory->createNamed('date', 'date');
$form = $this->factory->createNamed('form', 'form')->add($child);
$child->addError(new FormError('Error!'));
$child->addError(new FormError('[trans]Error![/trans]'));
$view = $form->createView();
$this->assertEmpty($this->renderErrors($view));
@ -1676,7 +1676,7 @@ abstract class AbstractLayoutTest extends FormIntegrationTestCase
{
$child = $this->factory->createNamed('time', 'time');
$form = $this->factory->createNamed('form', 'form')->add($child);
$child->addError(new FormError('Error!'));
$child->addError(new FormError('[trans]Error![/trans]'));
$view = $form->createView();
$this->assertEmpty($this->renderErrors($view));

View File

@ -18,7 +18,7 @@ abstract class AbstractTableLayoutTest extends AbstractLayoutTest
public function testRow()
{
$form = $this->factory->createNamed('name', 'text');
$form->addError(new FormError('Error!'));
$form->addError(new FormError('[trans]Error![/trans]'));
$view = $form->createView();
$html = $this->renderRow($view);
@ -91,7 +91,7 @@ abstract class AbstractTableLayoutTest extends AbstractLayoutTest
public function testRepeatedRowWithErrors()
{
$form = $this->factory->createNamed('name', 'repeated');
$form->addError(new FormError('Error!'));
$form->addError(new FormError('[trans]Error![/trans]'));
$view = $form->createView();
$html = $this->renderRow($view);
@ -250,7 +250,7 @@ abstract class AbstractTableLayoutTest extends AbstractLayoutTest
)
->getForm();
$form->get('child')->addError(new FormError('Error!'));
$form->get('child')->addError(new FormError('[trans]Error![/trans]'));
$this->assertWidgetMatchesXpath($form->createView(), array(),
'/table

View File

@ -49,6 +49,8 @@ class ValidationListenerTest extends \PHPUnit_Framework_TestCase
private $message;
private $messageTemplate;
private $params;
protected function setUp()
@ -63,17 +65,13 @@ class ValidationListenerTest extends \PHPUnit_Framework_TestCase
$this->violationMapper = $this->getMock('Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationMapperInterface');
$this->listener = new ValidationListener($this->validator, $this->violationMapper);
$this->message = 'Message';
$this->messageTemplate = 'Message template';
$this->params = array('foo' => 'bar');
}
private function getConstraintViolation($code = null)
{
return new ConstraintViolation($this->message, $this->params, null, 'prop.path', null, null, $code);
}
private function getFormError()
{
return new FormError($this->message, $this->params);
return new ConstraintViolation($this->message, $this->messageTemplate, $this->params, null, 'prop.path', null, null, $code);
}
private function getBuilder($name = 'name', $propertyPath = null, $dataClass = null)

View File

@ -48,6 +48,11 @@ class ViolationMapperTest extends \PHPUnit_Framework_TestCase
*/
private $message;
/**
* @var string
*/
private $messageTemplate;
/**
* @var array
*/
@ -62,6 +67,7 @@ class ViolationMapperTest extends \PHPUnit_Framework_TestCase
$this->dispatcher = $this->getMock('Symfony\Component\EventDispatcher\EventDispatcherInterface');
$this->mapper = new ViolationMapper();
$this->message = 'Message';
$this->messageTemplate = 'Message template';
$this->params = array('foo' => 'bar');
}
@ -101,7 +107,7 @@ class ViolationMapperTest extends \PHPUnit_Framework_TestCase
*/
protected function getConstraintViolation($propertyPath)
{
return new ConstraintViolation($this->message, $this->params, null, $propertyPath, null);
return new ConstraintViolation($this->message, $this->messageTemplate, $this->params, null, $propertyPath, null);
}
/**
@ -109,7 +115,7 @@ class ViolationMapperTest extends \PHPUnit_Framework_TestCase
*/
protected function getFormError()
{
return new FormError($this->message, $this->params);
return new FormError($this->message, $this->messageTemplate, $this->params);
}
public function testMapToVirtualFormIfDataDoesNotMatch()

View File

@ -28,6 +28,17 @@ CHANGELOG
As of Symfony 2.3, this method will be typed against `MetadataFactoryInterface` instead.
* [BC BREAK] the switches `traverse` and `deep` in the `Valid` constraint and in `GraphWalker::walkReference`
are ignored for arrays now. Arrays are always traversed recursively.
* added dependency to Translation component
* violation messages are now translated with a TranslatorInterface implementation
* [BC BREAK] inserted argument `$message` in the constructor of `ConstraintViolation`
* [BC BREAK] inserted arguments `$translator` and `$translationDomain` in the constructor of `ExecutionContext`
* [BC BREAK] inserted arguments `$translator` and `$translationDomain` in the constructor of `GraphWalker`
* [BC BREAK] inserted arguments `$translator` and `$translationDomain` in the constructor of `ValidationVisitor`
* [BC BREAK] inserted arguments `$translator` and `$translationDomain` in the constructor of `Validator`
* [BC BREAK] added `setTranslator()` and `setTranslationDomain()` to `ValidatorBuilderInterface`
* improved the Validator to support pluralized messages by default
* [BC BREAK] changed the source of all pluralized messages in the translation files to the pluralized version
* added ExceptionInterface, BadMethodCallException and InvalidArgumentException
2.1.0
-----

View File

@ -18,6 +18,11 @@ namespace Symfony\Component\Validator;
*/
class ConstraintViolation implements ConstraintViolationInterface
{
/**
* @var string
*/
private $message;
/**
* @var string
*/
@ -56,6 +61,7 @@ class ConstraintViolation implements ConstraintViolationInterface
/**
* Creates a new constraint violation.
*
* @param string $message The violation message.
* @param string $messageTemplate The raw violation message.
* @param array $messageParameters The parameters to substitute
* in the raw message.
@ -70,8 +76,9 @@ class ConstraintViolation implements ConstraintViolationInterface
* @param mixed $code The error code of the
* violation, if any.
*/
public function __construct($messageTemplate, array $messageParameters, $root, $propertyPath, $invalidValue, $messagePluralization = null, $code = null)
public function __construct($message, $messageTemplate, array $messageParameters, $root, $propertyPath, $invalidValue, $messagePluralization = null, $code = null)
{
$this->message = $message;
$this->messageTemplate = $messageTemplate;
$this->messageParameters = $messageParameters;
$this->messagePluralization = $messagePluralization;
@ -132,15 +139,7 @@ class ConstraintViolation implements ConstraintViolationInterface
*/
public function getMessage()
{
$parameters = $this->messageParameters;
foreach ($parameters as $i => $parameter) {
if (is_array($parameter)) {
$parameters[$i] = 'Array';
}
}
return strtr($this->messageTemplate, $parameters);
return $this->message;
}
/**

View File

@ -28,8 +28,8 @@ class Choice extends Constraint
public $max = null;
public $message = 'The value you selected is not a valid choice.';
public $multipleMessage = 'One or more of the given values is invalid.';
public $minMessage = 'You must select at least {{ limit }} choices.';
public $maxMessage = 'You must select at most {{ limit }} choices.';
public $minMessage = 'You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.';
public $maxMessage = 'You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.';
/**
* {@inheritDoc}

View File

@ -21,9 +21,9 @@ use Symfony\Component\Validator\Exception\MissingOptionsException;
*/
class Count extends Constraint
{
public $minMessage = 'This collection should contain {{ limit }} elements or more.';
public $maxMessage = 'This collection should contain {{ limit }} elements or less.';
public $exactMessage = 'This collection should contain exactly {{ limit }} elements.';
public $minMessage = 'This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.';
public $maxMessage = 'This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.';
public $exactMessage = 'This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.';
public $min;
public $max;

View File

@ -21,9 +21,9 @@ use Symfony\Component\Validator\Exception\MissingOptionsException;
*/
class Length extends Constraint
{
public $maxMessage = 'This value is too long. It should have {{ limit }} characters or less.';
public $minMessage = 'This value is too short. It should have {{ limit }} characters or more.';
public $exactMessage = 'This value should have exactly {{ limit }} characters.';
public $maxMessage = 'This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.';
public $minMessage = 'This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.';
public $exactMessage = 'This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.';
public $max;
public $min;
public $charset = 'UTF-8';

View File

@ -22,7 +22,7 @@ use Symfony\Component\Validator\Constraint;
*/
class MaxLength extends Constraint
{
public $message = 'This value is too long. It should have {{ limit }} characters or less.';
public $message = 'This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.';
public $limit;
public $charset = 'UTF-8';

View File

@ -22,7 +22,7 @@ use Symfony\Component\Validator\Constraint;
*/
class MinLength extends Constraint
{
public $message = 'This value is too short. It should have {{ limit }} characters or more.';
public $message = 'This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.';
public $limit;
public $charset = 'UTF-8';

View File

@ -0,0 +1,167 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Validator;
use Symfony\Component\Validator\Exception\BadMethodCallException;
use Symfony\Component\Validator\Exception\InvalidArgumentException;
use Symfony\Component\Translation\TranslatorInterface;
/**
* Simple translator implementation that simply replaces the parameters in
* the message IDs.
*
* Example usage:
*
* $translator = new DefaultTranslator();
*
* echo $translator->trans(
* 'This is a {{ var }}.',
* array('{{ var }}' => 'donkey')
* );
*
* // -> This is a donkey.
*
* echo $translator->transChoice(
* 'This is {{ count }} donkey.|These are {{ count }} donkeys.',
* 3,
* array('{{ count }}' => 'three')
* );
*
* // -> These are three donkeys.
*
* This translator does not support message catalogs, translation domains or
* locales. Instead, it implements a subset of the capabilities of
* {@link \Symfony\Component\Translation\Translator} and can be used in places
* where translation is not required by default but should be optional.
*
* @author Bernhard Schussek <bschussek@gmail.com>
*/
class DefaultTranslator implements TranslatorInterface
{
/**
* Interpolates the given message.
*
* Parameters are replaced in the message in the same manner that
* {@link strtr()} uses.
*
* Example usage:
*
* $translator = new DefaultTranslator();
*
* echo $translator->trans(
* 'This is a {{ var }}.',
* array('{{ var }}' => 'donkey')
* );
*
* // -> This is a donkey.
*
* @param string $id The message id
* @param array $parameters An array of parameters for the message
* @param string $domain Ignored
* @param string $locale Ignored
*
* @return string The interpolated string
*/
public function trans($id, array $parameters = array(), $domain = null, $locale = null)
{
return strtr($id, $parameters);
}
/**
* Interpolates the given choice message by choosing a variant according to a number.
*
* The variants are passed in the message ID using the format
* "<singular>|<plural>". "<singular>" is chosen if the passed $number is
* exactly 1. "<plural>" is chosen otherwise.
*
* This format is consistent with the format supported by
* {@link \Symfony\Component\Translation\Translator}, but it does not
* have the same expressiveness. While Translator supports intervals in
* message translations, which are needed for languages other than English,
* this translator does not. You should use Translator or a custom
* implementation of {@link TranslatorInterface} if you need this or similar
* functionality.
*
* Example usage:
*
* echo $translator->transChoice(
* 'This is {{ count }} donkey.|These are {{ count }} donkeys.',
* 0,
* array('{{ count }}' => 0)
* );
*
* // -> These are 0 donkeys.
*
* echo $translator->transChoice(
* 'This is {{ count }} donkey.|These are {{ count }} donkeys.',
* 1,
* array('{{ count }}' => 1)
* );
*
* // -> This is 1 donkey.
*
* echo $translator->transChoice(
* 'This is {{ count }} donkey.|These are {{ count }} donkeys.',
* 3,
* array('{{ count }}' => 3)
* );
*
* // -> These are 3 donkeys.
*
* @param string $id The message id
* @param integer $number The number to use to find the index of the message
* @param array $parameters An array of parameters for the message
* @param string $domain Ignored
* @param string $locale Ignored
*
* @return string The translated string
*
* @throws InvalidArgumentException If the message id does not have the format
* "singular|plural".
*/
public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null)
{
$ids = explode('|', $id);
if (1 == $number) {
return strtr($ids[0], $parameters);
}
if (!isset($ids[1])) {
throw new InvalidArgumentException(sprintf('The message "%s" cannot be pluralized, because it is missing a plural (e.g. "There is one apple|There are %%count%% apples").', $id));
}
return strtr($ids[1], $parameters);
}
/**
* Not supported.
*
* @param string $locale The locale
*
* @throws BadMethodCallException
*/
public function setLocale($locale)
{
throw new BadMethodCallException('Unsupported method.');
}
/**
* Returns the locale of the translator.
*
* @return string Always returns 'en'
*/
public function getLocale()
{
return 'en';
}
}

View File

@ -0,0 +1,21 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Validator\Exception;
/**
* Base BadMethodCallException for the Validator component.
*
* @author Bernhard Schussek <bschussek@gmail.com>
*/
class BadMethodCallException extends \BadMethodCallException implements ExceptionInterface
{
}

View File

@ -0,0 +1,21 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Validator\Exception;
/**
* Base ExceptionInterface for the Validator component.
*
* @author Bernhard Schussek <bschussek@gmail.com>
*/
interface ExceptionInterface
{
}

View File

@ -0,0 +1,21 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Validator\Exception;
/**
* Base InvalidArgumentException for the Validator component.
*
* @author Bernhard Schussek <bschussek@gmail.com>
*/
class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
{
}

View File

@ -11,6 +11,8 @@
namespace Symfony\Component\Validator;
use Symfony\Component\Translation\TranslatorInterface;
/**
* Default implementation of {@link ExecutionContextInterface}.
*
@ -26,6 +28,16 @@ class ExecutionContext implements ExecutionContextInterface
*/
private $globalContext;
/**
* @var TranslatorInterface
*/
private $translator;
/**
* @var null|string
*/
private $translationDomain;
/**
* @var MetadataInterface
*/
@ -49,19 +61,23 @@ class ExecutionContext implements ExecutionContextInterface
/**
* Creates a new execution context.
*
* @param GlobalExecutionContextInterface $globalContext The global context storing node-independent state.
* @param MetadataInterface $metadata The metadata of the validated node.
* @param mixed $value The value of the validated node.
* @param string $group The current validation group.
* @param string $propertyPath The property path to the current node.
* @param GlobalExecutionContextInterface $globalContext The global context storing node-independent state.
* @param TranslatorInterface $translator The translator for translating violation messages.
* @param null|string $translationDomain The domain of the validation messages.
* @param MetadataInterface $metadata The metadata of the validated node.
* @param mixed $value The value of the validated node.
* @param string $group The current validation group.
* @param string $propertyPath The property path to the current node.
*/
public function __construct(GlobalExecutionContextInterface $globalContext, MetadataInterface $metadata = null, $value = null, $group = null, $propertyPath = '')
public function __construct(GlobalExecutionContextInterface $globalContext, TranslatorInterface $translator, $translationDomain = null, MetadataInterface $metadata = null, $value = null, $group = null, $propertyPath = '')
{
if (null === $group) {
$group = Constraint::DEFAULT_GROUP;
}
$this->globalContext = $globalContext;
$this->translator = $translator;
$this->translationDomain = $translationDomain;
$this->metadata = $metadata;
$this->value = $value;
$this->propertyPath = $propertyPath;
@ -74,6 +90,9 @@ class ExecutionContext implements ExecutionContextInterface
public function addViolation($message, array $params = array(), $invalidValue = null, $pluralization = null, $code = null)
{
$this->globalContext->getViolations()->add(new ConstraintViolation(
null === $pluralization
? $this->translator->trans($message, $params, $this->translationDomain)
: $this->translator->transChoice($message, $pluralization, $params, $this->translationDomain),
$message,
$params,
$this->globalContext->getRoot(),
@ -103,6 +122,9 @@ class ExecutionContext implements ExecutionContextInterface
trigger_error('addViolationAtPath() is deprecated since version 2.2 and will be removed in 2.3.', E_USER_DEPRECATED);
$this->globalContext->getViolations()->add(new ConstraintViolation(
null === $pluralization
? $this->translator->trans($message, $params, $this->translationDomain)
: $this->translator->transChoice($message, $pluralization, $params, $this->translationDomain),
$message,
$params,
$this->globalContext->getRoot(),
@ -146,6 +168,9 @@ class ExecutionContext implements ExecutionContextInterface
public function addViolationAt($subPath, $message, array $params = array(), $invalidValue = null, $pluralization = null, $code = null)
{
$this->globalContext->getViolations()->add(new ConstraintViolation(
null === $pluralization
? $this->translator->trans($message, $params, $this->translationDomain)
: $this->translator->transChoice($message, $pluralization, $params, $this->translationDomain),
$message,
$params,
$this->globalContext->getRoot(),

View File

@ -12,6 +12,7 @@
namespace Symfony\Component\Validator;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Translation\TranslatorInterface;
use Symfony\Component\Validator\Exception\UnexpectedTypeException;
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Mapping\MemberMetadata;
@ -39,6 +40,16 @@ class GraphWalker
*/
private $metadataFactory;
/**
* @var TranslatorInterface
*/
private $translator;
/**
* @var null|string
*/
private $translationDomain;
/**
* @var array
*/
@ -49,16 +60,20 @@ class GraphWalker
*
* @param ValidationVisitor $visitor
* @param MetadataFactoryInterface $metadataFactory
* @param TranslatorInterface $translator
* @param null|string $translationDomain
* @param array $validatedObjects
*
* @deprecated Deprecated since version 2.2, to be removed in 2.3.
*/
public function __construct(ValidationVisitor $visitor, MetadataFactoryInterface $metadataFactory, array &$validatedObjects = array())
public function __construct(ValidationVisitor $visitor, MetadataFactoryInterface $metadataFactory, TranslatorInterface $translator, $translationDomain = null, array &$validatedObjects = array())
{
trigger_error('GraphWalker is deprecated since version 2.2 and will be removed in 2.3. This class has been replaced by ValidationVisitorInterface and MetadataInterface.', E_USER_DEPRECATED);
$this->visitor = $visitor;
$this->metadataFactory = $metadataFactory;
$this->translator = $translator;
$this->translationDomain = $translationDomain;
$this->validatedObjects = &$validatedObjects;
}
@ -208,6 +223,8 @@ class GraphWalker
$context = new ExecutionContext(
$this->visitor,
$this->translator,
$this->translationDomain,
$metadata,
$value,
$group,

View File

@ -23,11 +23,11 @@
<target>Die waarde wat jy gekies het is nie 'n geldige keuse nie.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Jy moet ten minste {{ limit }} kies.|Jy moet ten minste {{ limit }} keuses kies.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Jy moet by die meeste {{ limit }} keuse kies.|Jy moet by die meeste {{ limit }} keuses kies.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Hierdie waarde moet {{ limit }} of minder wees.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Hierdie waarde is te lank. Dit moet {{ limit }} karakter of minder wees.|Hierdie waarde is te lank. Dit moet {{ limit }} karakters of minder wees.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Hierdie waarde moet {{ limit }} of meer wees.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Hierdie waarde is te kort. Dit moet {{ limit }} karakter of meer wees.|Hierdie waarde is te kort. Dit moet {{ limit }} karakters of meer wees.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Hierdie waarde moet die huidige wagwoord van die gebruiker wees.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Hierdie waarde moet presies {{ limit }} karakter wees.|Hierdie waarde moet presies {{ limit }} karakters wees.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>'n PHP-uitbreiding veroorsaak die oplaai van die lêer om te misluk.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Hierdie versameling moet {{ limit }} element of meer bevat.|Hierdie versameling moet {{ limit }} elemente of meer bevat.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Hierdie versameling moet {{ limit }} element of minder bevat.|Hierdie versameling moet {{ limit }} elemente of meer bevat.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Hierdie versameling moet presies {{ limit }} element bevat.|Hierdie versameling moet presies {{ limit }} elemente bevat.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Избраната стойност е невалидна.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Трябва да изберете поне {{ limit }} опция.|Трябва да изберете поне {{ limit }} опции.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Трябва да изберете най-много {{ limit }} опция.|Трябва да изберете най-много {{ limit }} опции.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Стойността трябва да бъде {{ limit }} или по-малко.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Стойността е твърде дълга. Трябва да съдържа най-много {{ limit }} символ.|Стойността е твърде дълга. Трябва да съдържа най-много {{ limit }} символа.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Стойността трябва да бъде {{ limit }} или повече.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Стойността е твърде кратка. Трябва да съдържа поне {{ limit }} символ.|Стойността е твърде кратка. Трябва да съдържа поне {{ limit }} символа.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Стойността трябва да бъде текущата потребителска парола.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Стойността трябва да бъде точно {{ limit }} символ.|Стойността трябва да бъде точно {{ limit }} символа.</target>
</trans-unit>
<trans-unit id="49">
@ -203,17 +203,17 @@
<target>PHP разширение предизвика прекъсване на качването.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Колекцията трябва да съдържа поне {{ limit }} елемент.|Колекцията трябва да съдържа поне {{ limit }} елемента.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Колекцията трябва да съдържа най-много {{ limit }} елемент.|Колекцията трябва да съдържа най-много {{ limit }} елемента.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Колекцията трябва да съдържа точно {{ limit }} елемент.|Колекцията трябва да съдържа точно {{ limit }} елемента.</target>
</trans-unit>
</body>
</file>
</xliff>
</xliff>

View File

@ -23,11 +23,11 @@
<target>El valor seleccionat no és una opció vàlida.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Ha de seleccionar almenys {{ limit }} opció.|Ha de seleccionar almenys {{ limit }} opcions.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Ha de seleccionar com a màxim {{ limit }} opció.|Ha de seleccionar com a màxim {{ limit }} opcions.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Aquest valor hauria de ser {{ limit }} o menys.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Aquest valor és massa llarg. Hauria de tenir {{ limit }} caràcter o menys.|Aquest valor és massa llarg. Hauria de tenir {{ limit }} caràcters o menys.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Aquest valor hauria de ser {{ limit }} o més.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Aquest valor és massa curt. Hauria de tenir {{ limit }} caràcters o més.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Aquest valor hauria de ser la contrasenya actual de l'usuari.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Aquest valor hauria de tenir exactament {{ limit }} caràcter.|Aquest valor hauria de tenir exactament {{ limit }} caràcters.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Una extensió de PHP va fer que la pujada fallara.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Aquesta col·lecció ha de contenir {{ limit }} element o més.|Aquesta col·lecció ha de contenir {{ limit }} elements o més.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Aquesta col·lecció ha de contenir {{ limit }} element o menys.|Aquesta col·lecció ha de contenir {{ limit }} elements o menys.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Aquesta col·lecció ha de contenir exactament {{ limit }} element.|Aquesta col·lecció ha de contenir exactament {{ limit }} elements.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Vybraná hodnota není platnou možností.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Musí být vybrána nejméně {{ limit }} možnost.|Musí být vybrány nejméně {{ limit }} možnosti.|Musí být vybráno nejméně {{ limit }} možností.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Musí být vybrána maximálně {{ limit }} možnost.|Musí být vybrány maximálně {{ limit }} možnosti.|Musí být vybráno maximálně {{ limit }} možností.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Tato hodnota musí být {{ limit }} nebo méně.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Tato hodnota je příliš dlouhá. Musí obsahovat maximálně {{ limit }} znak.|Tato hodnota je příliš dlouhá. Musí obsahovat maximálně {{ limit }} znaky.|Tato hodnota je příliš dlouhá. Musí obsahovat maximálně {{ limit }} znaků.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Tato hodnota musí být {{ limit }} nebo více.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Tato hodnota je příliš krátká. Musí obsahovat minimálně {{ limit }} znak.|Tato hodnota je příliš krátká. Musí obsahovat minimálně {{ limit }} znaky.|Tato hodnota je příliš krátká. Musí obsahovat minimálně {{ limit }} znaků.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Tato hodnota musí být aktuální heslo uživatele.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Tato hodnota musí mít přesně {{ limit }} znak.|Tato hodnota musí mít přesně {{ limit }} znaky.|Tato hodnota musí mít přesně {{limit}} znaků.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Rozšíření PHP zabránilo nahrání souboru.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Tato kolekce musí obsahovat minimálně {{ limit }} prvek.|Tato kolekce musí obsahovat minimálně {{ limit }} prvky.|Tato kolekce musí obsahovat minimálně {{ limit }} prvků.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Tato kolekce musí obsahovat maximálně {{ limit }} prvek.|Tato kolekce musí obsahovat maximálně {{ limit }} prvky.|Tato kolekce musí obsahovat maximálně {{ limit }} prvků.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Tato kolekce musí obsahovat přesně {{ limit }} prvek.|Tato kolekce musí obsahovat přesně {{ limit }} prvky.|Tato kolekce musí obsahovat přesně {{ limit }} prvků.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -20,14 +20,14 @@
</trans-unit>
<trans-unit id="5">
<source>The value you selected is not a valid choice.</source>
<target>Nid yw'r gwerth â ddewiswyd yn ddilys.</target>
<target>Nid yw'r gwerth <EFBFBD> ddewiswyd yn ddilys.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Rhaid dewis o leiaf {{ limit }} opsiwn.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Rhaid dewis dim mwy na {{ limit }} opsiwn.</target>
</trans-unit>
<trans-unit id="8">
@ -64,18 +64,18 @@
</trans-unit>
<trans-unit id="16">
<source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
<target>Mae'r ffeil yn rhy fawr ({{ size }} {{ suffix }}). Yr uchafswm â ganiateir yw {{ limit }} {{ suffix }}.</target>
<target>Mae'r ffeil yn rhy fawr ({{ size }} {{ suffix }}). Yr uchafswm <EFBFBD> ganiateir yw {{ limit }} {{ suffix }}.</target>
</trans-unit>
<trans-unit id="17">
<source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
<target>Nid yw math mime y ffeil yn ddilys ({{ type }}). Dyma'r mathau â ganiateir {{ types }}.</target>
<target>Nid yw math mime y ffeil yn ddilys ({{ type }}). Dyma'r mathau <EFBFBD> ganiateir {{ types }}.</target>
</trans-unit>
<trans-unit id="18">
<source>This value should be {{ limit }} or less.</source>
<target>Dylai'r gwerth hwn fod yn {{ limit }} neu lai.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Mae'r gwerth hwn rhy hir. Dylai gynnwys {{ limit }} nodyn cyfrifiadurol neu lai.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Dylai'r gwerth hwn fod yn {{ limit }} neu fwy.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Mae'r gwerth hwn yn rhy fyr. Dylai gynnwys {{ limit }} nodyn cyfrifiadurol neu fwy.</target>
</trans-unit>
<trans-unit id="22">
@ -116,7 +116,7 @@
</trans-unit>
<trans-unit id="32">
<source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
<target>Mae'r ffeil yn rhy fawr. Yr uchafswm â ganiateir yw {{ limit }} {{ suffix }}.</target>
<target>Mae'r ffeil yn rhy fawr. Yr uchafswm <EFBFBD> ganiateir yw {{ limit }} {{ suffix }}.</target>
</trans-unit>
<trans-unit id="33">
<source>The file is too large.</source>
@ -124,7 +124,7 @@
</trans-unit>
<trans-unit id="34">
<source>The file could not be uploaded.</source>
<target>Methwyd â uwchlwytho'r ffeil. </target>
<target>Methwyd <EFBFBD> uwchlwytho'r ffeil. </target>
</trans-unit>
<trans-unit id="35">
<source>This value should be a valid number.</source>
@ -156,35 +156,35 @@
</trans-unit>
<trans-unit id="42">
<source>The size of the image could not be detected.</source>
<target>Methwyd â darganfod maint y ddelwedd.</target>
<target>Methwyd <EFBFBD> darganfod maint y ddelwedd.</target>
</trans-unit>
<trans-unit id="43">
<source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
<target>Mae lled y ddelwedd yn rhy fawr ({{ width }}px). Y lled mwyaf â ganiateir yw {{ max_width }}px.</target>
<target>Mae lled y ddelwedd yn rhy fawr ({{ width }}px). Y lled mwyaf <EFBFBD> ganiateir yw {{ max_width }}px.</target>
</trans-unit>
<trans-unit id="44">
<source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
<target>Mae lled y ddelwedd yn rhy fach ({{ width }}px). Y lled lleiaf â ganiateir yw {{ min_width }}px.</target>
<target>Mae lled y ddelwedd yn rhy fach ({{ width }}px). Y lled lleiaf <EFBFBD> ganiateir yw {{ min_width }}px.</target>
</trans-unit>
<trans-unit id="45">
<source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
<target>Mae uchder y ddelwedd yn rhy fawr ({{ width }}px). Yr uchder mwyaf â ganiateir yw {{ max_height }}px.</target>
<target>Mae uchder y ddelwedd yn rhy fawr ({{ width }}px). Yr uchder mwyaf <EFBFBD> ganiateir yw {{ max_height }}px.</target>
</trans-unit>
<trans-unit id="46">
<source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
<target>Mae uchder y ddelwedd yn rhy fach ({{ width }}px). Yr uchder lleiaf â ganiateir yw {{ min_height }}px.</target>
<target>Mae uchder y ddelwedd yn rhy fach ({{ width }}px). Yr uchder lleiaf <EFBFBD> ganiateir yw {{ min_height }}px.</target>
</trans-unit>
<trans-unit id="47">
<source>This value should be the user current password.</source>
<target>Dylaid bod y gwerth hwn yn gyfrinair presenol y defnyddiwr.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Dylai'r gwerth hwn fod yn union {{ limit }} nodyn cyfrifiadurol o hyd.</target>
</trans-unit>
<trans-unit id="49">
<source>The file was only partially uploaded.</source>
<target>Dim ond rhan o'r ffeil â uwchlwythwyd.</target>
<target>Dim ond rhan o'r ffeil <EFBFBD> uwchlwythwyd.</target>
</trans-unit>
<trans-unit id="50">
<source>No file was uploaded.</source>
@ -196,22 +196,22 @@
</trans-unit>
<trans-unit id="52">
<source>Cannot write temporary file to disk.</source>
<target>Methwyd â ysgrifennu'r ffeil dros-dro ar ddisg.</target>
<target>Methwyd <EFBFBD> ysgrifennu'r ffeil dros-dro ar ddisg.</target>
</trans-unit>
<trans-unit id="53">
<source>A PHP extension caused the upload to fail.</source>
<target>Methwyd â uwchlwytho oherwydd ategyn PHP.</target>
<target>Methwyd <EFBFBD> uwchlwytho oherwydd ategyn PHP.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Dylai'r casgliad hwn gynnwys {{ limit }} elfen neu fwy.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Dylai'r casgliad hwn gynnwys {{ limit }} elfen neu lai.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Dylai'r casgliad hwn gynnwys union {{ limit }} elfen.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Værdien skal være en af de givne muligheder.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Du skal vælge mindst {{ limit }} muligheder.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Du kan højest vælge {{ limit }} muligheder.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Værdien skal være {{ limit }} eller mindre.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Værdien er for lang. Den skal have {{ limit }} bogstaver eller mindre.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Værdien skal være {{ limit }} eller mere.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Værdien er for kort. Den skal have {{ limit }} tegn eller flere.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Værdien skal være brugerens nuværende password.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Værdien skal have præcis {{ limit }} tegn.</target>
</trans-unit>
<trans-unit id="49">

View File

@ -23,11 +23,11 @@
<target>Sie haben einen ungültigen Wert ausgewählt.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Sie müssen mindestens {{ limit }} Möglichkeit wählen.|Sie müssen mindestens {{ limit }} Möglichkeiten wählen.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Sie dürfen höchstens {{ limit }} Möglichkeit wählen.|Sie dürfen höchstens {{ limit }} Möglichkeiten wählen.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Dieser Wert sollte kleiner oder gleich {{ limit }} sein.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Diese Zeichenkette ist zu lang. Sie sollte höchstens {{ limit }} Zeichen haben.|Diese Zeichenkette ist zu lang. Sie sollte höchstens {{ limit }} Zeichen haben.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Dieser Wert sollte größer oder gleich {{ limit }} sein.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Diese Zeichenkette ist zu kurz. Sie sollte mindestens {{ limit }} Zeichen haben.|Diese Zeichenkette ist zu kurz. Sie sollte mindestens {{ limit }} Zeichen haben.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Dieser Wert sollte dem aktuellen Benutzerpasswort entsprechen.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Dieser Wert sollte genau {{ limit }} Zeichen lang sein.|Dieser Wert sollte genau {{ limit }} Zeichen lang sein.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Eine PHP-Erweiterung verhinderte den Upload.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Diese Sammlung sollte {{ limit }} oder mehr Elemente beinhalten.|Diese Sammlung sollte {{ limit }} oder mehr Elemente beinhalten.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Diese Sammlung sollte {{ limit }} oder weniger Elemente beinhalten.|Diese Sammlung sollte {{ limit }} oder weniger Elemente beinhalten.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Diese Sammlung sollte genau {{ limit }} Element beinhalten.|Diese Sammlung sollte genau {{ limit }} Elemente beinhalten.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>The value you selected is not a valid choice.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>This value should be {{ limit }} or less.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>This value should be {{ limit }} or more.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>This value should be the user current password.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>A PHP extension caused the upload to fail.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>El valor seleccionado no es una opción válida.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Debe seleccionar al menos {{ limit }} opción.|Debe seleccionar al menos {{ limit }} opciones.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Debe seleccionar como máximo {{ limit }} opción.|Debe seleccionar como máximo {{ limit }} opciones.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Este valor debería ser {{ limit }} o menos.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Este valor es demasiado largo. Debería tener {{ limit }} carácter o menos.|Este valor es demasiado largo. Debería tener {{ limit }} caracteres o menos.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Este valor debería ser {{ limit }} o más.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Este valor es demasiado corto. Debería tener {{ limit }} carácter o más.|Este valor es demasiado corto. Debería tener {{ limit }} caracteres o más.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Este valor debería ser la contraseña actual del usuario.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Este valor debería tener exactamente {{ limit }} carácter.|Este valor debería tener exactamente {{ limit }} caracteres.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Una extensión de PHP hizo que la subida fallara.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Esta colección debe contener {{ limit }} elemento o más.|Esta colección debe contener {{ limit }} elementos o más.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Esta colección debe contener {{ limit }} elemento o menos.|Esta colección debe contener {{ limit }} elementos o menos.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Esta colección debe contener exactamente {{ limit }} elemento.|Esta colección debe contener exactamente {{ limit }} elementos.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Väärtus peaks olema üks etteantud valikutest.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Valima peaks vähemalt {{ limit }} valikut.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Valima peaks mitte rohkem kui {{ limit }} valikut.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Väärtus peaks olema {{ limit }} või vähem.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Väärtus on liiga pikk. Pikkus peaks olema {{ limit }} tähemärki või vähem.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Väärtus peaks olema {{ limit }} või rohkem.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Väärtus on liiga lühike. Pikkus peaks olema {{ limit }} tähemärki või rohkem.</target>
</trans-unit>
<trans-unit id="22">

View File

@ -23,11 +23,11 @@
<target>Hautatu duzun balioa ez da aukera egoki bat.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Gutxienez {{ limit }} aukera hautatu behar dituzu.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Gehienez {{ limit }} aukera hautatu behar dituzu.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Balio honek {{ limit }} edo gutxiago izan beharko luke.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Balio hau luzeegia da. {{ limit }} karaktere edo gutxiago eduki beharko lituzke.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Balio honek {{ limit }} edo handiago izan beharko luke.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Balio hau motzegia da. {{ limit }} karaktere edo gehiago eduki beharko lituzke.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Balio honek uneko erabiltzailearen pasahitza izan beharko luke.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Balio honek zehazki {{ limit }} karaktere izan beharko lituzke.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>PHP luzapen batek igoeraren hutsa eragin du.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Bilduma honek {{ limit }} elementu edo gehiago eduki beharko lituzke.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Bilduma honek {{ limit }} elementu edo gutxiago eduki beharko lituzke.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Bilduma honek zehazki {{ limit }} elementu eduki beharko lituzke.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>گزینه انتخابی معتبر نیست.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>باید حداقل {{ limit }} گزینه انتخاب کنید.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>حداکثر {{ limit }} گزینه می توانید انتخاب کنید.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>این مقدار باید کوچکتر یا مساوی {{ limit }} باشد.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>بسیار طولانی است.حداکثر تعداد حروف مجاز برابر {{ limit }} است.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>این مقدار باید برابر و یا بیشتر از {{ limit }} باشد.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>بسیار کوتاه است.تعداد حروف باید حداقل {{ limit }} باشد.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>این مقدار می بایست کلمه عبور کنونی کاربر باشد.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>این مقدار می بایست دقیفا {{ limit }} کاراکتر داشته باشد.|این مقدرا می بایشت دقیقا {{ limit }} کاراکتر داشته باشد.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>اکستنشن PHP موجب شد که بارگذاری فایل با شکست مواجه شود.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>این مجموعه می بایست دارای {{ limit }} عنصر یا بیشتر باشد.|این مجموعه می بایست دارای {{ limit }} عنصر یا بیشتر باشد.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>این مجموعه می بایست دارای حداقل {{ limit }} عنصر یا کمتر باشد.|این مجموعه می بایست دارای {{ limit }} عنصر یا کمتر باشد.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>این مجموعه می بایست به طور دقیق دارا {{ limit }} عنصر باشد.|این مجموعه می بایست به طور دقیق دارای {{ limit }} قلم باشد.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Arvon tulee olla yksi annetuista vaihtoehdoista.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Sinun tulee valita vähintään {{ limit }} vaihtoehtoa.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Sinun tulee valitan enintään {{ limit }} vaihtoehtoa.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Arvon tulee olla {{ limit }} tai vähemmän.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Liian pitkä syöte. Syöte saa olla enintään {{ limit }} merkkiä.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Arvon tulee olla {{ limit }} tai enemmän.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Liian lyhyt syöte. Syötteen tulee olla vähintään {{ limit }} merkkiä.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Tämän arvon tulisi olla käyttäjän tämänhetkinen salasana.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Tämän arvon tulisi olla tasan yhden merkin pituinen.|Tämän arvon tulisi olla tasan {{ limit }} merkkiä pitkä.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>PHP-laajennoksen vuoksi tiedoston lataus epäonnistui.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Tässä ryhmässä tulisi olla yksi tai useampi elementti.|Tässä ryhmässä tulisi olla vähintään {{ limit }} elementtiä.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Tässä ryhmässä tulisi olla enintään yksi elementti.|Tässä ryhmässä tulisi olla enintään {{ limit }} elementtiä.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Tässä ryhmässä tulisi olla tasan yksi elementti.|Tässä ryhmässä tulisi olla enintään {{ limit }} elementtiä.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Cette valeur doit être l'un des choix proposés.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Vous devez sélectionner au moins {{ limit }} choix.|Vous devez sélectionner au moins {{ limit }} choix.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Vous devez sélectionner au maximum {{ limit }} choix.|Vous devez sélectionner au maximum {{ limit }} choix.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Cette valeur doit être inférieure ou égale à {{ limit }}.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Cette chaine est trop longue. Elle doit avoir au maximum {{ limit }} caractère.|Cette chaine est trop longue. Elle doit avoir au maximum {{ limit }} caractères.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Cette valeur doit être supérieure ou égale à {{ limit }}.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Cette chaine est trop courte. Elle doit avoir au minimum {{ limit }} caractère.|Cette chaine est trop courte. Elle doit avoir au minimum {{ limit }} caractères.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Cette valeur doit être le mot de passe actuel de l'utilisateur.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Cette chaine doit avoir exactement {{ limit }} caractère.|Cette chaine doit avoir exactement {{ limit }} caractères.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Une extension PHP a empêché le transfert du fichier.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Cette collection doit contenir {{ limit }} élément ou plus.|Cette collection doit contenir {{ limit }} éléments ou plus.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Cette collection doit contenir {{ limit }} élément ou moins.|Cette collection doit contenir {{ limit }} éléments ou moins.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Cette collection doit contenir exactement {{ limit }} élément.|Cette collection doit contenir exactement {{ limit }} éléments.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>O valor seleccionado non é unha opción válida.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Debe seleccionar polo menos {{ limit }} opción.|Debe seleccionar polo menos {{ limit }} opcions.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Debe seleccionar como máximo {{ limit }} opción.|Debe seleccionar como máximo {{ limit }} opcions.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Este valor debería ser {{ limit }} ou menos.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Este valor é demasiado longo. Debería ter {{ limit }} carácter ou menos.|Este valor é demasiado longo. Debería ter {{ limit }} caracteres ou menos.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Este valor debería ser {{ limit }} ou máis.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Este valor é demasiado curto. Debería ter {{ limit }} carácter ou máis.|Este valor é demasiado corto. Debería ter {{ limit }} caracteres ou máis.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Este valor debería ser a contrasinal actual do usuario.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Este valor debería ter exactamente {{ limit }} carácter.|Este valor debería ter exactamente {{ limit }} caracteres.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Unha extensión de PHP provocou que a subida fallara.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Esta colección debe conter {{ limit }} elemento ou máis.|Esta colección debe conter {{ limit }} elementos ou máis.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Esta colección debe conter {{ limit }} elemento ou menos.|Esta colección debe conter {{ limit }} elementos ou menos.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Esta colección debe conter exactamente {{ limit }} elemento.|Esta colección debe conter exactamente {{ limit }} elementos.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>הערך שבחרת אינו חוקי.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>אתה צריך לבחור לפחות {{ limit }} אפשרויות.|אתה צריך לבחור לפחות {{ limit }} אפשרויות.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>אתה צריך לבחור לכל היותר {{ limit }} אפשרויות.|אתה צריך לבחור לכל היותר {{ limit }} אפשרויות.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>הערך צריל להכיל {{ limit }} תווים לכל היותר.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>הערך ארוך מידי. הוא צריך להכיל {{ limit }} תווים לכל היותר.|הערך ארוך מידי. הוא צריך להכיל {{ limit }} תווים לכל היותר.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>הערך צריך להכיל {{ limit }} תווים לפחות.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>הערך קצר מידיץ הוא צריך להכיל {{ limit }} תווים לפחות.|הערך קצר מידיץ הוא צריך להכיל {{ limit }} תווים לפחות.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>הערך צריך להיות סיסמת המשתמש הנוכחי.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>הערך צריך להיות בדיוק {{ limit }} תווים.|הערך צריך להיות בדיוק {{ limit }} תווים.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>סיומת PHP גרם להעלאה להיכשל.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>האוסף אמור להכיל {{ limit }} אלמנטים או יותר.|האוסף אמור להכיל {{ limit }} אלמנטים או יותר.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>האוסף אמור להכיל {{ limit }} אלמנטים או פחות.|האוסף אמור להכיל {{ limit }} אלמנטים או פחות.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>האוסף צריך להכיל בדיוק {{ limit }} אלמנטים.|האוסף צריך להכיל בדיוק {{ limit }} אלמנטים.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Ova vrijednost treba biti jedna od ponuđenih.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Izaberite barem {{ limit }} mogućnosti.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Izaberite najviše {{ limit }} mogućnosti.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Ova vrijednost treba biti {{ limit }} ili manje.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Ova vrijednost je predugačka. Treba imati {{ limit }} znakova ili manje.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Ova vrijednost treba biti {{ limit }} ili više.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Ova vrijednost je prekratka. Treba imati {{ limit }} znakova ili više.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Ova vrijednost treba biti trenutna korisnička lozinka.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Ova vrijednost treba imati točno {{ limit }} znakova.</target>
</trans-unit>
<trans-unit id="49">

View File

@ -23,11 +23,11 @@
<target>Ez az érték a megadottak egyike legyen.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Legalább {{ limit }} értéket kell kiválasztani.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Legfeljebb {{ limit }} értéket lehet kiválasztani.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Ez az érték {{ limit }} vagy kevesebb legyen.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Ez az érték túl hosszú. {{ limit }} karaktert vagy kevesebbet tartalmazzon.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Ez az érték {{ limit }} vagy több legyen.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Ez az érték túl rövid. {{ limit }} karaktert vagy többet tartalmazzon.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Ez az érték a felhasználó jelenlegi jelszava legyen.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Ez az érték pontosan {{ limit }} karaktert tartalmazzon.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Egy PHP bővítmény miatt a feltöltés nem sikerült.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Ez a gyűjtemény {{ limit }} elemet vagy többet tartalmazzon.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Ez a gyűjtemény {{ limit }} elemet vagy kevesebbet tartalmazzon.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Ez a gyűjetemény pontosan {{ limit }} elemet tartalmazzon.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Ձեր ընտրած արժեքը անթույլատրելի է.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Դուք պետք է ընտրեք ամենաքիչը {{ limit }} տարբերակներ.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Դուք պետք է ընտրեք ոչ ավելի քան {{ limit }} տարբերակներ.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Արժեքը պետք է լինի {{ limit }} կամ փոքր.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Արժեքը չափազանց երկար է: Պետք է լինի {{ limit }} կամ ավել սիմվոլներ.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Արժեքը պետ է լինի {{ limit }} կամ շատ.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Արժեքը չափազանց կարճ է: Պետք է լինի {{ limit }} կամ ավելի սիմվոլներ.</target>
</trans-unit>
<trans-unit id="22">
@ -179,9 +179,9 @@
<target>Այս արժեքը պետք է լինի օգտագործողի ներկա ծածկագիրը.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Այս արժեքը պետք է ունենա ճիշտ {{ limit }} սիմվոլներ.</target>
</trans-unit>
</body>
</file>
</xliff>
</xliff>

View File

@ -23,11 +23,11 @@
<target>Nilai yang dipilih tidak tepat.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Anda harus memilih paling tidak {{ limit }} pilihan.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Anda harus memilih paling banyak {{ limit }} pilihan.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Nilai ini harus {{ limit }} atau kurang.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Nilai ini terlalu panjang. Seharusnya {{ limit }} karakter atau kurang.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Nilai ini harus {{ limit }} atau lebih.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Nilai ini terlalu pendek. Seharusnya {{ limit }} karakter atau lebih.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Nilai ini harus kata sandi pengguna saat ini.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Nilai ini harus memiliki tepat {{ limit }} karakter.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Sebuah ekstensi PHP menyebabkan kegagalan unggah.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Kumpulan ini harus memiliki {{ limit }} elemen atau lebih.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Kumpulan ini harus memiliki kurang dari {{ limit }} elemen.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Kumpulan ini harus memiliki tepat {{ limit }} elemen.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Questo valore dovrebbe essere una delle opzioni disponibili.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Si dovrebbe selezionare almeno {{ limit }} opzione.|Si dovrebbero selezionare almeno {{ limit }} opzioni.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Si dovrebbe selezionare al massimo {{ limit }} opzione.|Si dovrebbero selezionare al massimo {{ limit }} opzioni.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Questo valore dovrebbe essere {{ limit }} o inferiore.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Questo valore è troppo lungo. Dovrebbe essere al massimo di {{ limit }} carattere.|Questo valore è troppo lungo. Dovrebbe essere al massimo di {{ limit }} caratteri.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Questo valore dovrebbe essere {{ limit }} o superiore.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Questo valore è troppo corto. Dovrebbe essere almeno di {{ limit }} carattere.|Questo valore è troppo corto. Dovrebbe essere almeno di {{ limit }} caratteri.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Questo valore dovrebbe essere la password attuale dell'utente.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Questo valore dovrebbe contenere esattamente {{ limit }} carattere.|Questo valore dovrebbe contenere esattamente {{ limit }} caratteri.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Un'estensione PHP ha causato il fallimento del caricamento.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Questa collezione dovrebbe contenere almeno {{ limit }} elemento.|Questa collezione dovrebbe contenere almeno {{ limit }} elementi.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Questa collezione dovrebbe contenere massimo {{ limit }} elemento.|Questa collezione dovrebbe contenere massimo {{ limit }} elementi.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Questa collezione dovrebbe contenere esattamente {{ limit }} elemento.|Questa collezione dovrebbe contenere esattamente {{ limit }} elementi.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>選択された値は選択肢として有効な値ではありません.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>{{ limit }}個以上選択してください.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>{{ limit }}個以内で選択してください.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>値は{{ limit }}以下でなければなりません.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>値が長すぎます。{{ limit }}文字以内でなければなりません.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>値は{{ limit }}以上でなければなりません.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>値が短すぎます。{{ limit }}文字以上でなければなりません.</target>
</trans-unit>
<trans-unit id="22">

View File

@ -23,11 +23,11 @@
<target>Dëse Wäert sollt enger vun de Wielméiglechkeeten entspriechen.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Dir sollt mindestens {{ limit }} Méiglechkeete wielen.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Dir sollt héchstens {{ limit }} Méiglechkeete wielen.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Dëse Wäert soll méi kleng oder gläich {{ limit }} sinn.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Dës Zeecheketten ass ze laang. Se sollt héchstens {{ limit }} Zeechen hunn.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Dëse Wäert sollt méi grouss oder gläich {{ limit }} sinn.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Dës Zeecheketten ass ze kuerz. Se sollt mindestens {{ limit }} Zeechen hunn.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Dëse Wäert sollt dem aktuelle Benotzerpasswuert entspriechen.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Dëse Wäert sollt exactly {{ limit }} Buschtaf hunn.|Dëse Wäert sollt exakt {{ limit }} Buschtawen hunn.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Eng PHP-Erweiderung huet den Upload verhënnert.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Dës Sammlung sollt {{ limit }} oder méi Elementer hunn.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Dës Sammlung sollt {{ limit }} oder manner Elementer hunn.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Dës Sammlung sollt exakt {{ limit }} Element hunn.|Dës Sammlung sollt exakt {{ limit }} Elementer hunn.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Neteisingas pasirinkimas.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Turite pasirinkti bent {{ limit }} variantą.|Turite pasirinkti bent {{ limit }} variantus.|Turite pasirinkti bent {{ limit }} variantų.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Turite pasirinkti ne daugiau kaip {{ limit }} variantą.|Turite pasirinkti ne daugiau kaip {{ limit }} variantus.|Turite pasirinkti ne daugiau kaip {{ limit }} variantų.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Reikšmė turi būti {{ limit }} arba mažiau.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Per didelis simbolių skaičius. Turi susidaryti iš {{ limit }} arba mažiau simbolių.|Per didelis simbolių skaičius. Turi susidaryti iš {{ limit }} arba mažiau simbolių.|Per didelis simbolių skaičius. Turi susidaryti iš {{ limit }} arba mažiau simbolių.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Reikšmė turi būti {{ limit }} arba daugiau.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Per mažas simbolių skaičius. Turi susidaryti iš {{ limit }} arba daugiau simbolių.|Per mažas simbolių skaičius. Turi susidaryti iš {{ limit }} arba daugiau simbolių.|Per mažas simbolių skaičius. Turi susidaryti iš {{ limit }} arba daugiau simbolių.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Ši reikšmė turi sutapti su dabartiniu vartotojo slaptažodžiu.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Ši reikšmė turi turėti lygiai {{ limit }} simbolį.|Ši reikšmė turi turėti lygiai {{ limit }} simbolius.|Ši reikšmė turi turėti lygiai {{ limit }} simbolių.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>PHP plėtinys sutrukdė failo įkėlimą ir jis nepavyko.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Sąraše turi būti {{ limit }} arba daugiau įrašų.|Sąraše turi būti {{ limit }} arba daugiau įrašų.|Sąraše turi būti {{ limit }} arba daugiau įrašų.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Sąraše turi būti {{ limit }} arba mažiau įrašų.|Sąraše turi būti {{ limit }} arba mažiau įrašų.|Sąraše turi būti {{ limit }} arba mažiau įrašų.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Sąraše turi būti lygiai {{ limit }} įrašas.|Sąraše turi būti lygiai {{ limit }} įrašai.|Sąraše turi būti lygiai {{ limit }} įrašų.</target>
</trans-unit>
</body>

View File

@ -23,11 +23,11 @@
<target>Сонгосон утга буруу байна.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Хамгийн багадаа {{ limit }} утга сонгогдсон байх ёстой.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Хамгийн ихдээ {{ limit }} утга сонгогдох боломжтой.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Энэ утга {{ limit }} юмуу эсвэл бага байна.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Энэ утга хэтэрхий урт байна. {{ limit }} тэмдэгтийн урттай юмуу эсвэл бага байна.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Энэ утга {{ limit }} юмуу эсвэл их байна.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Энэ утга хэтэрхий богино байна. {{ limit }} тэмдэгт эсвэл их байна.</target>
</trans-unit>
<trans-unit id="22">

View File

@ -23,11 +23,11 @@
<target>Verdien skal være en av de gitte valg.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Du skal velge minst {{ limit }} valg.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Du kan maks velge {{ limit }} valg.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Verdien skal være {{ limit }} eller mindre.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Verdien er for lang. Den skal ha {{ limit }} bokstaver eller mindre.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Verdien skal være {{ limit }} eller mer.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Verdien er for kort. Den skal ha {{ limit }} tegn eller flere.</target>
</trans-unit>
<trans-unit id="22">

View File

@ -23,11 +23,11 @@
<target>De geselecteerde waarde is geen geldige optie.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Selecteer ten minste {{ limit }} optie.|Selecteer ten minste {{ limit }} opties.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Selecteer maximaal {{ limit }} optie.|Selecteer maximaal {{ limit }} opties.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Deze waarde moet {{ limit }} of minder zijn.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Deze waarde is te lang. Hij mag maximaal {{ limit }} teken bevatten.|Deze waarde is te lang. Hij mag maximaal {{ limit }} tekens bevatten.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Deze waarde moet {{ limit }} of meer zijn.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Deze waarde is te kort. Hij moet tenminste {{ limit }} teken bevatten.|Deze waarde is te kort. Hij moet tenminste {{ limit }} tekens bevatten.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Deze waarde moet het huidige wachtwoord van de gebruiker zijn.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Deze waarde moet exact {{ limit }} tekens lang zijn.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>De upload is mislukt vanwege een PHP-extensie.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Deze collectie moet {{ limit }} element of meer bevatten.|Deze collectie moet {{ limit }} elementen of meer bevatten.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Deze collectie moet {{ limit }} element of minder bevatten.|Deze collectie moet {{ limit }} elementen of minder bevatten.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Deze collectie moet exact {{ limit }} element bevatten.|Deze collectie moet exact {{ limit }} elementen bevatten.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Verdien du valgte er ikkje gyldig.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Du må velge minst {{ limit }} valg.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Du kan maksimalt gjere {{ limit }} valg.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Verdien må vere {{ limit }} eller mindre.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Verdien er for lang. Den må vere {{ limit }} bokstavar eller mindre.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Verdien må vere {{ limit }} eller meir.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Verdien er for kort. Den må ha {{ limit }} teikn eller fleire.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Verdien må vere brukaren sitt noverande passord.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Verdien må vere nøyaktig {{ limit }} teikn.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Ei PHP-udviding forårsaka feil under opplasting.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Denne samlinga må innehalde {{ limit }} element eller meir.|Denne samlinga må innehalde {{ limit }} element eller meir.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Denne samlinga må innehalde {{ limit }} element eller færre.|Denne samlinga må innehalde {{ limit }} element eller færre.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Denne samlinga må innehalde nøyaktig {{ limit }} element.|Denne samlinga må innehalde nøyaktig {{ limit }} element.</target>
</trans-unit>
<trans-unit id="57">
@ -224,4 +224,4 @@
</trans-unit>
</body>
</file>
</xliff>
</xliff>

View File

@ -23,11 +23,11 @@
<target>Ta wartość powinna być jedną z podanych opcji.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Powinieneś wybrać co najmniej {{ limit }} opcję.|Powinieneś wybrać co najmniej {{ limit }} opcje.|Powinieneś wybrać co najmniej {{ limit }} opcji.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Powinieneś wybrać maksymalnie {{ limit }} opcję.|Powinieneś wybrać maksymalnie {{ limit }} opcje.|Powinieneś wybrać maksymalnie {{ limit }} opcji.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Ta wartość powinna wynosić {{ limit }} lub mniej.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Ta wartość jest zbyt długa. Powinna mieć {{ limit }} lub mniej znaków.|Ta wartość jest zbyt długa. Powinna mieć {{ limit }} lub mniej znaków.|Ta wartość jest zbyt długa. Powinna mieć {{ limit }} lub mniej znaków.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Ta wartość powinna wynosić {{ limit }} lub więcej.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Ta wartość jest zbyt krótka. Powinna mieć {{ limit }} lub więcej znaków.|Ta wartość jest zbyt krótka. Powinna mieć {{ limit }} lub więcej znaków.|Ta wartość jest zbyt krótka. Powinna mieć {{ limit }} lub więcej znaków.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Ta wartość powinna być aktualnym hasłem użytkownika.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Ta wartość powinna mieć dokładnie {{ limit }} znak.|Ta wartość powinna mieć dokładnie {{ limit }} znaki.|Ta wartość powinna mieć dokładnie {{ limit }} znaków.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Rozszerzenie PHP spowodowało błąd podczas wgrywania.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Ten zbiór powinien zawierać {{ limit }} lub więcej elementów.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Ten zbiór powinien zawierać {{ limit }} lub mniej elementów.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Ten zbiór powinien zawierać dokładnie {{ limit }} element.|Ten zbiór powinien zawierać dokładnie {{ limit }} elementy.|Ten zbiór powinien zawierać dokładnie {{ limit }} elementów.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>O valor selecionado não é uma opção válida.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Você deveria selecionar {{ limit }} opção no mínimo.|Você deveria selecionar {{ limit }} opções no mínimo.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Você deve selecionar, no máximo {{ limit }} opção.|Você deve selecionar, no máximo {{ limit }} opções.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Este valor deveria ser {{ limit }} ou menor.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>O valor é muito longo. Deveria ter {{ limit }} caracteres ou menos.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Este valor deveria ser {{ limit }} ou mais.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>O valor é muito curto. Deveria de ter {{ limit }} caractere ou mais.|O valor é muito curto. Deveria de ter {{ limit }} caracteres ou mais.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Este valor deveria de ser a password atual do utilizador.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Este valor tem de ter exatamente {{ limit }} carateres.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Uma extensão PHP causou a falha no envio.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Esta coleção deve conter {{ limit }} elemento ou mais.|Esta coleção deve conter {{ limit }} elementos ou mais.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Esta coleção deve conter {{ limit }} elemento ou menos.|Esta coleção deve conter {{ limit }} elementos ou menos.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Esta coleção deve conter exatamente {{ limit }} elemento.|Esta coleção deve conter exatamente {{ limit }} elementos.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>O valor selecionado não é uma opção válida.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Você deve selecionar, no mínimo, {{ limit }} opção.|Você deve selecionar, no mínimo, {{ limit }} opções</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Você deve selecionar, no máximo, {{ limit }} opção.|Você deve selecionar, no máximo, {{ limit }} opções.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Este valor deve ser {{ limit }} ou menos.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Este valor é muito longo. Deve ter {{ limit }} caractere ou menos.|Este valor é muito longo. Deve ter {{ limit }} caracteres ou menos.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Este valor deve ser {{ limit }} ou mais.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Este valor é muito curto. Deve ter {{ limit }} caractere ou mais.|Este valor é muito curto. Deve ter {{ limit }} caracteres ou mais.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Este valor deve ser a senha atual do usuário.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Este valor deve ter exatamente {{ limit }} caractere.|Este valor deve ter exatamente {{ limit }} caracteres.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Uma extensão PHP fez com que o envio falhasse.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Esta coleção deve conter {{ limit }} elemento ou mais.|Esta coleção deve conter {{ limit }} elementos ou mais.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Esta coleção deve conter {{ limit }} elemento ou menos.|Esta coleção deve conter {{ limit }} elementos ou menos.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Esta coleção deve conter exatamente {{ limit }} elemento.|Esta coleção deve conter exatamente {{ limit }} elementos.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Valoarea selectată nu este o opțiune validă.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Trebuie să selectați cel puțin {{ limit }} opțiuni.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Trebuie să selectați cel mult {{ limit }} opțiuni.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Această valoare ar trebui să fie cel mult {{ limit }}.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Această valoare este prea lungă. Ar trebui să aibă maxim {{ limit }} caracter.|Această valoare este prea lungă. Ar trebui să aibă maxim {{ limit }} caractere.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Această valoare ar trebui să fie cel puțin {{ limit }}.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Această valoare este prea scurtă. Ar trebui să aibă minim {{ limit }} caracter.|Această valoare este prea scurtă. Ar trebui să aibă minim {{ limit }} caractere.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Această valoare trebuie să fie parola curentă a utilizatorului.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Această valoare trebuie să conțină exact {{ limit }} caracter.|Această valoare trebuie să conțină exact {{ limit }} caractere.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>O extensie PHP a prevenit încărcarea cu succes a fișierului.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Această colecție trebuie să conțină cel puțin {{ limit }} elemente.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Această colecție trebuie să conțină cel mult {{ limit }} elemente.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Această colecție trebuie să conțină {{ limit }} elemente.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Выбранное Вами значение недопустимо.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Вы должны выбрать хотя бы {{ limit }} вариант.|Вы должны выбрать хотя бы {{ limit }} варианта.|Вы должны выбрать хотя бы {{ limit }} вариантов.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Вы должны выбрать не более чем {{ limit }} вариант.|Вы должны выбрать не более чем {{ limit }} варианта.|Вы должны выбрать не более чем {{ limit }} вариантов.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Значение должно быть {{ limit }} или меньше.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Значение слишком длинное. Должно быть равно {{ limit }} символу или меньше.|Значение слишком длинное. Должно быть равно {{ limit }} символам или меньше.|Значение слишком длинное. Должно быть равно {{ limit }} символам или меньше.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Значение должно быть {{ limit }} или больше.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Значение слишком короткое. Должно быть равно {{ limit }} символу или больше.|Значение слишком короткое. Должно быть равно {{ limit }} символам или больше.|Значение слишком короткое. Должно быть равно {{ limit }} символам или больше.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Значение должно быть текущим паролем пользователя.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Значение должно быть равно {{ limit }} символу.|Значение должно быть равно {{ limit }} символам.|Значение должно быть равно {{ limit }} символам.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Расширение PHP вызвало ошибку при загрузке.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Эта коллекция должна содержать {{ limit }} элемент или больше.|Эта коллекция должна содержать {{ limit }} элемента или больше.|Эта коллекция должна содержать {{ limit }} элементов или больше.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Эта коллекция должна содержать {{ limit }} элемент или меньше.|Эта коллекция должна содержать {{ limit }} элемента или меньше.|Эта коллекция должна содержать {{ limit }} элементов или меньше.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Эта коллекция должна содержать ровно {{ limit }} элемент.|Эта коллекция должна содержать ровно {{ limit }} элемента.|Эта коллекция должна содержать ровно {{ limit }} элементов.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Táto hodnota by mala byť jednou z poskytnutých možností.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Mali by ste vybrať minimálne {{ limit }} možnosti.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Mali by ste vybrať najviac {{ limit }} možnosti.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Táto hodnota by mala byť {{ limit }} alebo menej.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Táto hodnota obsahuje viac znakov ako je povolené. Mala by obsahovať najviac {{ limit }} znakov.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Táto hodnota by mala byť viac ako {{ limit }}.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Táto hodnota nemá dostatočný počet znakov. Minimálny počet znakov je {{ limit }}.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Táto hodnota by mala byť aktuálne heslo používateľa.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Táto hodnota by mala mať presne {{ limit }} znakov.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Rozšírenie PHP zabránilo nahraniu súboru.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Táto kolekcia by mala obsahovať aspoň {{ limit }} prvok alebo viac.|Táto kolekcia by mala obsahovať aspoň {{ limit }} prvky alebo viac.|Táto kolekcia by mala obsahovať aspoň {{ limit }} prvkov alebo viac.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Táto kolekcia by mala maximálne {{ limit }} prvok.|Táto kolekcia by mala obsahovať maximálne {{ limit }} prvky.|Táto kolekcia by mala obsahovať maximálne {{ limit }} prvkov.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Táto kolekcia by mala obsahovať presne {{ limit }} prvok.|Táto kolekcia by mala obsahovať presne {{ limit }} prvky.|Táto kolekcia by mala obsahovať presne {{ limit }} prvkov.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Vrednost naj bo ena izmed podanih možnosti.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Izberite vsaj {{ limit }} možnosti.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Izberete lahko največ {{ limit }} možnosti.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Vrednost mora biti manjša od {{ limit }}.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Vpisana vrednost je predolga. Največja dolžina je {{ limit }} znakov.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Vpisana vrednost naj vsebuje vsaj {{ limit }} znakov.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Vpisana vrednost je prekratka. Vpišite vsaj {{ limit }} znakov.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Vrednost bi morala biti trenutno uporabnikovo geslo.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Vrednost bi morala imeti točno {{ limit }} znakov.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Nalaganje ni uspelo (razlog: PHP extension).</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Ta zbirka bi morala vsebovati {{ limit }} ali več elementov.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Ta zbirka bi morala vsebovati {{ limit }} ali manj elementov.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Ta zbirka bi morala vsebovati točno {{ limit }} element.|Ta zbirka bi morala vsebovati točno {{ limit }} elementa.|Ta zbirka bi morala vsebovati točno {{ limit }} elemente.|Ta zbirka bi morala vsebovati točno {{ limit }} elementov.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Vlera që keni zgjedhur nuk është alternativë e vlefshme.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Duhet të zgjedhni së paku {{ limit }} alternativa.|Duhet të zgjedhni së paku {{ limit }} alternativa.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Duhet të zgjedhni më së shumti {{ limit }} alternativa.|Duhet të zgjedhni më së shumti {{ limit }} alternativa.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Kjo vlerë duhet të jetë {{ limit }} ose më pak.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Kjo vlerë është shumë e gjatë. Duhet t'i ketë {{ limit }} ose më pak karaktere.|Kjo vlerë është shumë e gjatë. Duhet t'i ketë {{ limit }} ose më pak karaktere.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Kjo vlerë duhet të jetë {{ limit }} ose më shumë.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Kjo vlerë është shumë e shkurtër. Duhet t'i ketë {{ limit }} ose më shumë karaktere.|Kjo vlerë është shumë e shkurtër. Duhet t'i ketë {{ limit }} ose më shumë karaktere.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Kjo vlerë duhet të jetë fjalëkalimi aktual i përdoruesit.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Kjo vlerë duhet të ketë saktësisht {{ limit }} karaktere.|Kjo vlerë duhet të ketë saktësisht {{ limit }} karaktere.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Një ekstenzion i PHP-së bëri të dështojë ngarkimi i files.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Ky kolekcion duhet të përmbajë {{ limit }} ose më shumë elemente.|Ky kolekcion duhet të përmbajë {{ limit }} ose më shumë elemente.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Ky kolekcion duhet të përmbajë {{ limit }} ose më shumë elemente.|Ky kolekcion duhet të përmbajë {{ limit }} ose më shumë elemente.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Ky kolekcion duhet të përmbajë saktësisht {{ limit }} elemente.|Ky kolekcion duhet të përmbajë saktësisht {{ limit }} elemente.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Вредност треба да буде једна од понуђених.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Изаберите бар {{ limit }} могућност.|Изаберите бар {{ limit }} могућности.|Изаберите бар {{ limit }} могућности.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Изаберите највише {{ limit }} могућност.|Изаберите највише {{ limit }} могућности.|Изаберите највише {{ limit }} могућности.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Вредност треба да буде {{ limit }} или мање.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Вредност је предугачка. Треба да има {{ limit }} карактер или мање.|Вредност је предугачка. Треба да има {{ limit }} карактера или мање.|Вредност је предугачка. Треба да има {{ limit }} карактера или мање.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Вредност треба да буде {{ limit }} или више.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Вредност је прекратка. Треба да има {{ limit }} карактер или више.|Вредност је прекратка. Треба да има {{ limit }} карактера или више.|Вредност је прекратка. Треба да има {{ limit }} карактера или више.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Вредност треба да буде тренутна корисничка лозинка.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Вредност треба да има тачно {{ limit }} карактер.|Вредност треба да има тачно {{ limit }} карактера.|Вредност треба да има тачно {{ limit }} карактера.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>PHP екстензија је проузроковала неуспех отпремања датотеке.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Ова колекција треба да садржи {{ limit }} или више елемената.|Ова колекција треба да садржи {{ limit }} или више елемената.|Ова колекција треба да садржи {{ limit }} или више елемената.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Ова колекција треба да садржи {{ limit }} или мање елемената.|Ова колекција треба да садржи {{ limit }} или мање елемената.|Ова колекција треба да садржи {{ limit }} или мање елемената.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Ова колекција треба да садржи тачно {{ limit }} елемент.|Ова колекција треба да садржи тачно {{ limit }} елемента.|Ова колекција треба да садржи тачно {{ limit }} елемената.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Vrednost treba da bude jedna od ponuđenih.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Izaberite bar {{ limit }} mogućnost.|Izaberite bar {{ limit }} mogućnosti.|Izaberite bar {{ limit }} mogućnosti.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Izaberite najviše {{ limit }} mogućnost.|Izaberite najviše {{ limit }} mogućnosti.|Izaberite najviše {{ limit }} mogućnosti.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Vrednost treba da bude {{ limit }} ili manje.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Vrednost je predugačka. Treba da ima {{ limit }} karakter ili manje.|Vrednost je predugačka. Treba da ima {{ limit }} karaktera ili manje.|Vrednost je predugačka. Treba da ima {{ limit }} karaktera ili manje.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Vrednost treba da bude {{ limit }} ili više.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Vrednost je prekratka. Treba da ima {{ limit }} karakter ili više.|Vrednost je prekratka. Treba da ima {{ limit }} karaktera ili više.|Vrednost je prekratka. Treba da ima {{ limit }} karaktera ili više.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Vrednost treba da bude trenutna korisnička lozinka.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Vrednost treba da ima tačno {{ limit }} karakter.|Vrednost treba da ima tačno {{ limit }} karaktera.|Vrednost treba da ima tačno {{ limit }} karaktera.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>PHP ekstenzija je prouzrokovala neuspeh otpremanja datoteke.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Ova kolekcija treba da sadrži {{ limit }} ili više elemenata.|Ova kolekcija treba da sadrži {{ limit }} ili više elemenata.|Ova kolekcija treba da sadrži {{ limit }} ili više elemenata.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Ova kolekcija treba da sadrži {{ limit }} ili manje elemenata.|Ova kolekcija treba da sadrži {{ limit }} ili manje elemenata.|Ova kolekcija treba da sadrži {{ limit }} ili manje elemenata.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Ova kolekcija treba da sadrži tačno {{ limit }} element.|Ova kolekcija treba da sadrži tačno {{ limit }} elementa.|Ova kolekcija treba da sadrži tačno {{ limit }} elemenata.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Värdet ska vara ett av de givna valen.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Du måste välja minst {{ limit }} val.|Du måste välja minst {{ limit }} val.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Du kan som mest välja {{ limit }} val.|Du kan som mest välja {{ limit }} val.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Värdet ska vara {{ limit }} eller mindre.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Värdet är för långt. Det ska ha {{ limit }} tecken eller färre.|Värdet är för långt. Det ska ha {{ limit }} tecken eller färre.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Värdet ska vara {{ limit }} eller mer.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Värdet är för kort. Det ska ha {{ limit }} tecken eller mer.|Värdet är för kort. Det ska ha {{ limit }} tecken eller mer.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Värdet ska vara användarens nuvarande lösenord.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Värdet ska ha exakt {{ limit }} tecken.|Värdet ska ha exakt {{ limit }} tecken.</target>
</trans-unit>
<trans-unit id="49">
@ -203,17 +203,17 @@
<target>En PHP extension gjorde att uppladdningen misslyckades.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Den här samlingen ska innehålla {{ limit }} element eller mer.|Den här samlingen ska innehålla {{ limit }} element eller mer.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Den här samlingen ska innehålla {{ limit }} element eller mindre.|Den här samlingen ska innehålla {{ limit }} element eller mindre.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Den här samlingen ska innehålla exakt {{ limit }} element.|Den här samlingen ska innehålla exakt {{ limit }} element.</target>
</trans-unit>
</body>
</file>
</xliff>
</xliff>

View File

@ -23,11 +23,11 @@
<target>Seçtiğiniz değer geçerli bir seçenek değil.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>En az {{ limit }} seçenek belirtmelisiniz.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>En çok {{ limit }} seçenek belirtmelisiniz.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Bu değer {{ limit }} ve altında olmalıdır.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Bu değer çok uzun. {{ limit }} karakter veya daha az olmalıdır.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Bu değer {{ limit }} veya daha fazla olmalıdır.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Bu değer çok kısa. {{ limit }} karakter veya daha fazla olmaldır.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Bu değer kullanıcının şu anki şifresi olmalıdır.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Bu değer tam olarak {{ limit }} karakter olmaldır.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Bir PHP eklentisi dosyanın yüklemesini başarısız kıldı.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Bu derlem {{ limit }} veya daha çok eleman içermelidir</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Bu derlem {{ limit }} veya daha az eleman içermelidir</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Bu derlem {{ limit }} eleman içermelidir</target>
</trans-unit>
<trans-unit id="57">

View File

@ -23,11 +23,11 @@
<target>Обране вами значення недопустиме.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Ви повинні обрати хоча б {{ limit }} варіант.|Ви повинні обрати хоча б {{ limit }} варіанти.|Ви повинні обрати хоча б {{ limit }} варіантів.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Ви повинні обрати не більше ніж {{ limit }} варіантів</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>Значення повинно бути {{ limit }} або менше.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>Значення занадто довге. Повинно бути рівне {{ limit }} символу або менше.|Значення занадто довге. Повинно бути рівне {{ limit }} символам або менше.|Значення занадто довге. Повинно бути рівне {{ limit }} символам або менше.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>Значення повинно бути {{ limit }} або більше.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>Значення занадто коротке. Повинно бути рівне {{ limit }} символу або більше.|Значення занадто коротке. Повинно бути рівне {{ limit }} символам або більше.|Значення занадто коротке. Повинно бути рівне {{ limit }} символам або більше.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>Значення має бути поточним паролем користувача.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Значення повиино бути рівним {{ limit }} символу.|Значення повиино бути рівним {{ limit }} символам.|Значення повиино бути рівним {{ limit }} символам.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>Розширення PHP викликало помилку при завантаженні.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Ця колекція повинна містити {{ limit }} елемент чи більше.|Ця колекція повинна містити {{ limit }} елемента чи більше.|Ця колекція повинна містити {{ limit }} елементів чи більше.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Ця колекція повинна містити {{ limit }} елемент чи менше.|Ця колекція повинна містити {{ limit }} елемента чи менше.|Ця колекція повинна містити {{ limit }} елементов чи менше.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Ця колекція повинна містити рівно {{ limit }} елемент.|Ця колекція повинна містити рівно {{ limit }} елемента.|Ця колекція повинна містити рівно {{ limit }} елементів.</target>
</trans-unit>
<trans-unit id="57">
@ -224,4 +224,4 @@
</trans-unit>
</body>
</file>
</xliff>
</xliff>

View File

@ -23,11 +23,11 @@
<target>选定变量的值不是有效的选项.</target>
</trans-unit>
<trans-unit id="6">
<source>You must select at least {{ limit }} choices.</source>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>您至少要选择 {{ limit }} 个选项.</target>
</trans-unit>
<trans-unit id="7">
<source>You must select at most {{ limit }} choices.</source>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>您最多能选择 {{ limit }} 个选项.</target>
</trans-unit>
<trans-unit id="8">
@ -75,7 +75,7 @@
<target>这个变量的值应该小于或等于 {{ limit }}.</target>
</trans-unit>
<trans-unit id="19">
<source>This value is too long. It should have {{ limit }} characters or less.</source>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>字符串太长, 长度不可超过 {{ limit }} 个字符.</target>
</trans-unit>
<trans-unit id="20">
@ -83,7 +83,7 @@
<target>该变量的值应该大于或等于 {{ limit }}.</target>
</trans-unit>
<trans-unit id="21">
<source>This value is too short. It should have {{ limit }} characters or more.</source>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>字符串太短, 长度不可少于 {{ limit }} 个字符.</target>
</trans-unit>
<trans-unit id="22">
@ -179,7 +179,7 @@
<target>该变量应为用户当前的密码.</target>
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} characters.</source>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>该变量应为 {{ limit }} 个字符.</target>
</trans-unit>
<trans-unit id="49">
@ -203,15 +203,15 @@
<target>某个PHP扩展造成上传失败.</target>
</trans-unit>
<trans-unit id="54">
<source>This collection should contain {{ limit }} elements or more.</source>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>该集合最少应包含 {{ limit }} 个元素.</target>
</trans-unit>
<trans-unit id="55">
<source>This collection should contain {{ limit }} elements or less.</source>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>该集合最多包含 {{ limit }} 个元素.</target>
</trans-unit>
<trans-unit id="56">
<source>This collection should contain exactly {{ limit }} elements.</source>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>该集合应包含正好 {{ limit }} 个元素element.</target>
</trans-unit>
<trans-unit id="57">

View File

@ -129,6 +129,6 @@ EOF;
protected function getViolation($message, $root = null, $propertyPath = null)
{
return new ConstraintViolation($message, array(), $root, $propertyPath, null);
return new ConstraintViolation($message, $message, array(), $root, $propertyPath, null);
}
}

View File

@ -18,6 +18,7 @@ class ConstraintViolationTest extends \PHPUnit_Framework_TestCase
public function testToStringHandlesArrays()
{
$violation = new ConstraintViolation(
'Array',
'{{ value }}',
array('{{ value }}' => array(1, 2, 3)),
'Root',

View File

@ -19,11 +19,14 @@ use Symfony\Component\Validator\ExecutionContext;
class ExecutionContextTest extends \PHPUnit_Framework_TestCase
{
const TRANS_DOMAIN = 'trans_domain';
private $visitor;
private $violations;
private $metadata;
private $metadataFactory;
private $globalContext;
private $translator;
/**
* @var ExecutionContext
@ -51,7 +54,8 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
$this->globalContext->expects($this->any())
->method('getMetadataFactory')
->will($this->returnValue($this->metadataFactory));
$this->context = new ExecutionContext($this->globalContext, $this->metadata, 'currentValue', 'Group', 'foo.bar');
$this->translator = $this->getMock('Symfony\Component\Translation\TranslatorInterface');
$this->context = new ExecutionContext($this->globalContext, $this->translator, self::TRANS_DOMAIN, $this->metadata, 'currentValue', 'Group', 'foo.bar');
}
protected function tearDown()
@ -82,7 +86,7 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
{
// BC
$this->metadata = new ClassMetadata(__NAMESPACE__ . '\ExecutionContextTest_TestClass');
$this->context = new ExecutionContext($this->globalContext, $this->metadata, 'currentValue', 'Group', 'foo.bar');
$this->context = new ExecutionContext($this->globalContext, $this->translator, self::TRANS_DOMAIN, $this->metadata, 'currentValue', 'Group', 'foo.bar');
$this->assertSame(__NAMESPACE__ . '\ExecutionContextTest_TestClass', $this->context->getCurrentClass());
$this->assertNull($this->context->getCurrentProperty());
@ -92,7 +96,7 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
{
// BC
$this->metadata = new PropertyMetadata(__NAMESPACE__ . '\ExecutionContextTest_TestClass', 'myProperty');
$this->context = new ExecutionContext($this->globalContext, $this->metadata, 'currentValue', 'Group', 'foo.bar');
$this->context = new ExecutionContext($this->globalContext, $this->translator, self::TRANS_DOMAIN, $this->metadata, 'currentValue', 'Group', 'foo.bar');
$this->assertSame(__NAMESPACE__ . '\ExecutionContextTest_TestClass', $this->context->getCurrentClass());
$this->assertSame('myProperty', $this->context->getCurrentProperty());
@ -111,10 +115,16 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
public function testAddViolation()
{
$this->translator->expects($this->once())
->method('trans')
->with('Error', array('foo' => 'bar'))
->will($this->returnValue('Translated error'));
$this->context->addViolation('Error', array('foo' => 'bar'), 'invalid');
$this->assertEquals(new ConstraintViolationList(array(
new ConstraintViolation(
'Translated error',
'Error',
array('foo' => 'bar'),
'Root',
@ -126,10 +136,16 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
public function testAddViolationUsesPreconfiguredValueIfNotPassed()
{
$this->translator->expects($this->once())
->method('trans')
->with('Error', array())
->will($this->returnValue('Translated error'));
$this->context->addViolation('Error');
$this->assertEquals(new ConstraintViolationList(array(
new ConstraintViolation(
'Translated error',
'Error',
array(),
'Root',
@ -141,21 +157,32 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
public function testAddViolationUsesPassedNullValue()
{
$this->translator->expects($this->once())
->method('trans')
->with('Error', array('foo1' => 'bar1'))
->will($this->returnValue('Translated error'));
$this->translator->expects($this->once())
->method('transChoice')
->with('Choice error', 1, array('foo2' => 'bar2'))
->will($this->returnValue('Translated choice error'));
// passed null value should override preconfigured value "invalid"
$this->context->addViolation('Error', array('foo' => 'bar'), null);
$this->context->addViolation('Error', array('foo' => 'bar'), null, 1);
$this->context->addViolation('Error', array('foo1' => 'bar1'), null);
$this->context->addViolation('Choice error', array('foo2' => 'bar2'), null, 1);
$this->assertEquals(new ConstraintViolationList(array(
new ConstraintViolation(
'Translated error',
'Error',
array('foo' => 'bar'),
array('foo1' => 'bar1'),
'Root',
'foo.bar',
null
),
new ConstraintViolation(
'Error',
array('foo' => 'bar'),
'Translated choice error',
'Choice error',
array('foo2' => 'bar2'),
'Root',
'foo.bar',
null,
@ -166,11 +193,17 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
public function testAddViolationAtPath()
{
$this->translator->expects($this->once())
->method('trans')
->with('Error', array('foo' => 'bar'))
->will($this->returnValue('Translated error'));
// override preconfigured property path
$this->context->addViolationAtPath('bar.baz', 'Error', array('foo' => 'bar'), 'invalid');
$this->assertEquals(new ConstraintViolationList(array(
new ConstraintViolation(
'Translated error',
'Error',
array('foo' => 'bar'),
'Root',
@ -182,10 +215,16 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
public function testAddViolationAtPathUsesPreconfiguredValueIfNotPassed()
{
$this->translator->expects($this->once())
->method('trans')
->with('Error', array())
->will($this->returnValue('Translated error'));
$this->context->addViolationAtPath('bar.baz', 'Error');
$this->assertEquals(new ConstraintViolationList(array(
new ConstraintViolation(
'Translated error',
'Error',
array(),
'Root',
@ -197,12 +236,22 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
public function testAddViolationAtPathUsesPassedNullValue()
{
$this->translator->expects($this->once())
->method('trans')
->with('Error', array('foo' => 'bar'))
->will($this->returnValue('Translated error'));
$this->translator->expects($this->once())
->method('transChoice')
->with('Choice error', 3, array('foo' => 'bar'))
->will($this->returnValue('Translated choice error'));
// passed null value should override preconfigured value "invalid"
$this->context->addViolationAtPath('bar.baz', 'Error', array('foo' => 'bar'), null);
$this->context->addViolationAtPath('bar.baz', 'Error', array('foo' => 'bar'), null, 1);
$this->context->addViolationAtPath('bar.baz', 'Choice error', array('foo' => 'bar'), null, 3);
$this->assertEquals(new ConstraintViolationList(array(
new ConstraintViolation(
'Translated error',
'Error',
array('foo' => 'bar'),
'Root',
@ -210,23 +259,30 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
null
),
new ConstraintViolation(
'Error',
'Translated choice error',
'Choice error',
array('foo' => 'bar'),
'Root',
'bar.baz',
null,
1
3
),
)), $this->context->getViolations());
}
public function testAddViolationAt()
{
$this->translator->expects($this->once())
->method('trans')
->with('Error', array('foo' => 'bar'))
->will($this->returnValue('Translated error'));
// override preconfigured property path
$this->context->addViolationAt('bam.baz', 'Error', array('foo' => 'bar'), 'invalid');
$this->assertEquals(new ConstraintViolationList(array(
new ConstraintViolation(
'Translated error',
'Error',
array('foo' => 'bar'),
'Root',
@ -238,10 +294,16 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
public function testAddViolationAtUsesPreconfiguredValueIfNotPassed()
{
$this->translator->expects($this->once())
->method('trans')
->with('Error', array())
->will($this->returnValue('Translated error'));
$this->context->addViolationAt('bam.baz', 'Error');
$this->assertEquals(new ConstraintViolationList(array(
new ConstraintViolation(
'Translated error',
'Error',
array(),
'Root',
@ -253,12 +315,22 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
public function testAddViolationAtUsesPassedNullValue()
{
$this->translator->expects($this->once())
->method('trans')
->with('Error', array('foo' => 'bar'))
->will($this->returnValue('Translated error'));
$this->translator->expects($this->once())
->method('transChoice')
->with('Choice error', 2, array('foo' => 'bar'))
->will($this->returnValue('Translated choice error'));
// passed null value should override preconfigured value "invalid"
$this->context->addViolationAt('bam.baz', 'Error', array('foo' => 'bar'), null);
$this->context->addViolationAt('bam.baz', 'Error', array('foo' => 'bar'), null, 1);
$this->context->addViolationAt('bam.baz', 'Choice error', array('foo' => 'bar'), null, 2);
$this->assertEquals(new ConstraintViolationList(array(
new ConstraintViolation(
'Translated error',
'Error',
array('foo' => 'bar'),
'Root',
@ -266,12 +338,13 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
null
),
new ConstraintViolation(
'Error',
'Translated choice error',
'Choice error',
array('foo' => 'bar'),
'Root',
'foo.bar.bam.baz',
null,
1
2
),
)), $this->context->getViolations());
}
@ -293,7 +366,7 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
public function testGetPropertyPathWithEmptyCurrentPropertyPath()
{
$this->context = new ExecutionContext($this->globalContext, $this->metadata, 'currentValue', 'Group', '');
$this->context = new ExecutionContext($this->globalContext, $this->translator, self::TRANS_DOMAIN, $this->metadata, 'currentValue', 'Group', '');
$this->assertEquals('bam.baz', $this->context->getPropertyPath('bam.baz'));
}

View File

@ -12,6 +12,7 @@
namespace Symfony\Component\Validator\Tests;
use Symfony\Component\Validator\Tests\Fixtures\ConstraintAValidator;
use Symfony\Component\Validator\DefaultTranslator;
use Symfony\Component\Validator\ValidationVisitor;
use Symfony\Component\Validator\Tests\Fixtures\Entity;
use Symfony\Component\Validator\Tests\Fixtures\Reference;
@ -53,7 +54,7 @@ class GraphWalkerTest extends \PHPUnit_Framework_TestCase
protected function setUp()
{
$this->metadataFactory = new FakeMetadataFactory();
$this->visitor = new ValidationVisitor('Root', $this->metadataFactory, new ConstraintValidatorFactory());
$this->visitor = new ValidationVisitor('Root', $this->metadataFactory, new ConstraintValidatorFactory(), new DefaultTranslator());
$this->walker = $this->visitor->getGraphWalker();
$this->metadata = new ClassMetadata(self::CLASSNAME);
$this->metadataFactory->addMetadata($this->metadata);
@ -172,6 +173,7 @@ class GraphWalkerTest extends \PHPUnit_Framework_TestCase
// validated
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -204,6 +206,7 @@ class GraphWalkerTest extends \PHPUnit_Framework_TestCase
// "Default" was launched
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -231,6 +234,7 @@ class GraphWalkerTest extends \PHPUnit_Framework_TestCase
// Only group "Second" was validated
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -285,6 +289,7 @@ class GraphWalkerTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -317,6 +322,7 @@ class GraphWalkerTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -350,6 +356,7 @@ class GraphWalkerTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -449,6 +456,7 @@ class GraphWalkerTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -515,6 +523,7 @@ class GraphWalkerTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'message',
'message',
array('param' => 'value'),
'Root',

View File

@ -14,6 +14,7 @@ namespace Symfony\Component\Validator\Tests;
use Symfony\Component\Validator\Tests\Fixtures\FakeMetadataFactory;
use Symfony\Component\Validator\Constraints\Valid;
use Symfony\Component\Validator\Tests\Fixtures\Reference;
use Symfony\Component\Validator\DefaultTranslator;
use Symfony\Component\Validator\ConstraintViolation;
use Symfony\Component\Validator\ConstraintViolationList;
use Symfony\Component\Validator\Tests\Fixtures\FailingConstraint;
@ -49,7 +50,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
protected function setUp()
{
$this->metadataFactory = new FakeMetadataFactory();
$this->visitor = new ValidationVisitor('Root', $this->metadataFactory, new ConstraintValidatorFactory());
$this->visitor = new ValidationVisitor('Root', $this->metadataFactory, new ConstraintValidatorFactory(), new DefaultTranslator());
$this->metadata = new ClassMetadata(self::CLASS_NAME);
$this->metadataFactory->addMetadata($this->metadata);
}
@ -154,6 +155,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
// validated
$violations = new ConstraintViolationList(array(
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -187,6 +189,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
// "Default" was launched
$violations = new ConstraintViolationList(array(
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -215,6 +218,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
// Only group "Second" was validated
$violations = new ConstraintViolationList(array(
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -243,6 +247,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList(array(
// generated by the root object
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -251,6 +256,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
),
// generated by the reference
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -278,6 +284,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList(array(
// generated by the root object
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -286,6 +293,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
),
// generated by the reference
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -313,6 +321,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList(array(
// generated by the root object
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -321,6 +330,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
),
// generated by the reference
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -352,6 +362,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList(array(
// generated by the root object
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -414,6 +425,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList(array(
// generated by the root object
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -447,6 +459,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList(array(
// generated by the root object
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -455,6 +468,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
),
// nothing generated by the reference!
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -489,6 +503,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList(array(
// generated by the root object
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',
@ -497,6 +512,7 @@ class ValidationVisitorTest extends \PHPUnit_Framework_TestCase
),
// nothing generated by the reference!
new ConstraintViolation(
'Failed',
'Failed',
array(),
'Root',

View File

@ -96,8 +96,8 @@ class ValidatorBuilderTest extends \PHPUnit_Framework_TestCase
public function testSetMetadataCache()
{
$this->assertSame($this->builder, $this->builder->setMetadataCache($this->getMock(
'Symfony\Component\Validator\Mapping\Cache\CacheInterface'))
$this->assertSame($this->builder, $this->builder->setMetadataCache(
$this->getMock('Symfony\Component\Validator\Mapping\Cache\CacheInterface'))
);
}
@ -107,4 +107,16 @@ class ValidatorBuilderTest extends \PHPUnit_Framework_TestCase
$this->getMock('Symfony\Component\Validator\ConstraintValidatorFactoryInterface'))
);
}
public function testSetTranslator()
{
$this->assertSame($this->builder, $this->builder->setTranslator(
$this->getMock('Symfony\Component\Translation\TranslatorInterface'))
);
}
public function testSetTranslationDomain()
{
$this->assertSame($this->builder, $this->builder->setTranslationDomain('TRANS_DOMAIN'));
}
}

View File

@ -12,6 +12,7 @@
namespace Symfony\Component\Validator\Tests;
use Symfony\Component\Validator\Validator;
use Symfony\Component\Validator\DefaultTranslator;
use Symfony\Component\Validator\Mapping\ClassMetadataFactoryAdapter;
use Symfony\Component\Validator\ValidatorContext;
@ -57,6 +58,6 @@ class ValidatorContextTest extends \PHPUnit_Framework_TestCase
->setConstraintValidatorFactory($validatorFactory)
->getValidator();
$this->assertEquals(new Validator(new ClassMetadataFactoryAdapter($metadataFactory), $validatorFactory), $validator);
$this->assertEquals(new Validator(new ClassMetadataFactoryAdapter($metadataFactory), $validatorFactory, new DefaultTranslator()), $validator);
}
}

View File

@ -14,6 +14,7 @@ namespace Symfony\Component\Validator\Tests;
use Doctrine\Common\Annotations\AnnotationReader;
use Symfony\Component\Validator\Mapping\ClassMetadataFactoryAdapter;
use Symfony\Component\Validator\Validator;
use Symfony\Component\Validator\DefaultTranslator;
use Symfony\Component\Validator\ValidatorContext;
use Symfony\Component\Validator\ValidatorFactory;
use Symfony\Component\Validator\ConstraintValidatorFactory;
@ -78,7 +79,7 @@ class ValidatorFactoryTest extends \PHPUnit_Framework_TestCase
$validator = $this->factory->getValidator();
$this->assertEquals(new Validator(new ClassMetadataFactoryAdapter($metadataFactory), $validatorFactory), $validator);
$this->assertEquals(new Validator(new ClassMetadataFactoryAdapter($metadataFactory), $validatorFactory, new DefaultTranslator()), $validator);
}
public function testBuildDefaultFromAnnotationsWithCustomNamespaces()

View File

@ -16,6 +16,7 @@ use Symfony\Component\Validator\Tests\Fixtures\GroupSequenceProviderEntity;
use Symfony\Component\Validator\Tests\Fixtures\FakeMetadataFactory;
use Symfony\Component\Validator\Tests\Fixtures\FailingConstraint;
use Symfony\Component\Validator\Validator;
use Symfony\Component\Validator\DefaultTranslator;
use Symfony\Component\Validator\ConstraintViolation;
use Symfony\Component\Validator\ConstraintViolationList;
use Symfony\Component\Validator\ConstraintValidatorFactory;
@ -37,7 +38,7 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase
protected function setUp()
{
$this->metadataFactory = new FakeMetadataFactory();
$this->validator = new Validator($this->metadataFactory, new ConstraintValidatorFactory());
$this->validator = new Validator($this->metadataFactory, new ConstraintValidatorFactory(), new DefaultTranslator());
}
protected function tearDown()
@ -59,6 +60,7 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase
// Only the constraint of group "Default" failed
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
$entity,
@ -82,6 +84,7 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase
// Only the constraint of group "Custom" failed
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
$entity,
@ -107,6 +110,7 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase
// The constraints of both groups failed
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
$entity,
@ -114,6 +118,7 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase
''
));
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
$entity,
@ -141,6 +146,7 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
$entity,
@ -154,6 +160,7 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
$entity,
@ -198,6 +205,7 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase
{
$violations = new ConstraintViolationList();
$violations->add(new ConstraintViolation(
'Failed',
'Failed',
array(),
'',
@ -232,7 +240,7 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase
->method('getMetadataFor')
->with('VALUE')
->will($this->returnValue($metadata));
$this->validator = new Validator($this->metadataFactory, new ConstraintValidatorFactory());
$this->validator = new Validator($this->metadataFactory, new ConstraintValidatorFactory(), new DefaultTranslator());
$this->validator->validateProperty('VALUE', 'someProperty');
}
@ -249,7 +257,7 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase
->method('getMetadataFor')
->with('VALUE')
->will($this->returnValue($metadata));
$this->validator = new Validator($this->metadataFactory, new ConstraintValidatorFactory());
$this->validator = new Validator($this->metadataFactory, new ConstraintValidatorFactory(), new DefaultTranslator());
$this->validator->validatePropertyValue('VALUE', 'someProperty', 'propertyValue');
}

View File

@ -13,6 +13,7 @@ namespace Symfony\Component\Validator;
use Symfony\Component\Validator\Exception\NoSuchMetadataException;
use Symfony\Component\Validator\Exception\UnexpectedTypeException;
use Symfony\Component\Translation\TranslatorInterface;
/**
* Default implementation of {@link ValidationVisitorInterface} and
@ -37,6 +38,16 @@ class ValidationVisitor implements ValidationVisitorInterface, GlobalExecutionCo
*/
private $validatorFactory;
/**
* @var TranslatorInterface
*/
private $translator;
/**
* @var null|string
*/
private $translationDomain;
/**
* @var array
*/
@ -65,11 +76,13 @@ class ValidationVisitor implements ValidationVisitorInterface, GlobalExecutionCo
* @param mixed $root The value passed to the validator.
* @param MetadataFactoryInterface $metadataFactory The factory for obtaining metadata instances.
* @param ConstraintValidatorFactoryInterface $validatorFactory The factory for creating constraint validators.
* @param TranslatorInterface $translator The translator for translating violation messages.
* @param string|null $translationDomain The domain of the translation messages.
* @param ObjectInitializerInterface[] $objectInitializers The initializers for preparing objects before validation.
*
* @throws UnexpectedTypeException If any of the object initializers is not an instance of ObjectInitializerInterface
*/
public function __construct($root, MetadataFactoryInterface $metadataFactory, ConstraintValidatorFactoryInterface $validatorFactory, array $objectInitializers = array())
public function __construct($root, MetadataFactoryInterface $metadataFactory, ConstraintValidatorFactoryInterface $validatorFactory, TranslatorInterface $translator, $translationDomain = null, array $objectInitializers = array())
{
foreach ($objectInitializers as $initializer) {
if (!$initializer instanceof ObjectInitializerInterface) {
@ -80,6 +93,8 @@ class ValidationVisitor implements ValidationVisitorInterface, GlobalExecutionCo
$this->root = $root;
$this->metadataFactory = $metadataFactory;
$this->validatorFactory = $validatorFactory;
$this->translator = $translator;
$this->translationDomain = $translationDomain;
$this->objectInitializers = $objectInitializers;
$this->violations = new ConstraintViolationList();
}
@ -91,6 +106,8 @@ class ValidationVisitor implements ValidationVisitorInterface, GlobalExecutionCo
{
$context = new ExecutionContext(
$this,
$this->translator,
$this->translationDomain,
$metadata,
$value,
$group,
@ -161,7 +178,7 @@ class ValidationVisitor implements ValidationVisitorInterface, GlobalExecutionCo
trigger_error('getGraphWalker() is deprecated since version 2.2 and will be removed in 2.3.', E_USER_DEPRECATED);
if (null === $this->graphWalker) {
$this->graphWalker = new GraphWalker($this, $this->metadataFactory, $this->validatedObjects);
$this->graphWalker = new GraphWalker($this, $this->metadataFactory, $this->translator, $this->translationDomain, $this->validatedObjects);
}
return $this->graphWalker;

View File

@ -13,6 +13,7 @@ namespace Symfony\Component\Validator;
use Symfony\Component\Validator\Constraints\Valid;
use Symfony\Component\Validator\Exception\ValidatorException;
use Symfony\Component\Translation\TranslatorInterface;
/**
* Default implementation of {@link ValidatorInterface}.
@ -32,6 +33,16 @@ class Validator implements ValidatorInterface
*/
private $validatorFactory;
/**
* @var TranslatorInterface
*/
private $translator;
/**
* @var null|string
*/
private $translationDomain;
/**
* @var array
*/
@ -40,11 +51,15 @@ class Validator implements ValidatorInterface
public function __construct(
MetadataFactoryInterface $metadataFactory,
ConstraintValidatorFactoryInterface $validatorFactory,
TranslatorInterface $translator,
$translationDomain = null,
array $objectInitializers = array()
)
{
$this->metadataFactory = $metadataFactory;
$this->validatorFactory = $validatorFactory;
$this->translator = $translator;
$this->translationDomain = $translationDomain;
$this->objectInitializers = $objectInitializers;
}
@ -137,7 +152,7 @@ class Validator implements ValidatorInterface
*/
public function validateValue($value, $constraints, $groups = null)
{
$context = new ExecutionContext($this->createVisitor(null));
$context = new ExecutionContext($this->createVisitor(null), $this->translator, $this->translationDomain);
$constraints = is_array($constraints) ? $constraints : array($constraints);
@ -176,7 +191,14 @@ class Validator implements ValidatorInterface
*/
private function createVisitor($root)
{
return new ValidationVisitor($root, $this->metadataFactory, $this->validatorFactory, $this->objectInitializers);
return new ValidationVisitor(
$root,
$this->metadataFactory,
$this->validatorFactory,
$this->translator,
$this->translationDomain,
$this->objectInitializers
);
}
/**

View File

@ -23,6 +23,7 @@ use Symfony\Component\Validator\Mapping\Loader\AnnotationLoader;
use Symfony\Component\Validator\Mapping\Loader\YamlFilesLoader;
use Symfony\Component\Validator\Mapping\Loader\XmlFileLoader;
use Symfony\Component\Validator\Mapping\Loader\XmlFilesLoader;
use Symfony\Component\Translation\TranslatorInterface;
use Doctrine\Common\Annotations\Reader;
use Doctrine\Common\Annotations\AnnotationReader;
use Doctrine\Common\Annotations\CachedReader;
@ -75,6 +76,16 @@ class ValidatorBuilder implements ValidatorBuilderInterface
*/
private $metadataCache;
/**
* @var TranslatorInterface
*/
private $translator;
/**
* @var null|string
*/
private $translationDomain;
/**
* {@inheritdoc}
*/
@ -254,6 +265,26 @@ class ValidatorBuilder implements ValidatorBuilderInterface
return $this;
}
/**
* {@inheritdoc}
*/
public function setTranslator(TranslatorInterface $translator)
{
$this->translator = $translator;
return $this;
}
/**
* {@inheritdoc}
*/
public function setTranslationDomain($translationDomain)
{
$this->translationDomain = $translationDomain;
return $this;
}
/**
* {@inheritdoc}
*/
@ -296,7 +327,8 @@ class ValidatorBuilder implements ValidatorBuilderInterface
}
$validatorFactory = $this->validatorFactory ?: new ConstraintValidatorFactory();
$translator = $this->translator ?: new DefaultTranslator();
return new Validator($metadataFactory, $validatorFactory, $this->initializers);
return new Validator($metadataFactory, $validatorFactory, $translator, $this->translationDomain, $this->initializers);
}
}

View File

@ -12,6 +12,7 @@
namespace Symfony\Component\Validator;
use Symfony\Component\Validator\Mapping\Cache\CacheInterface;
use Symfony\Component\Translation\TranslatorInterface;
use Doctrine\Common\Annotations\Reader;
/**
@ -139,6 +140,28 @@ interface ValidatorBuilderInterface
*/
public function setConstraintValidatorFactory(ConstraintValidatorFactoryInterface $validatorFactory);
/**
* Sets the translator used for translating violation messages.
*
* @param TranslatorInterface $translator The translator instance.
*
* @return ValidatorBuilderInterface The builder object.
*/
public function setTranslator(TranslatorInterface $translator);
/**
* Sets the default translation domain of violation messages.
*
* The same message can have different translations in different domains.
* Pass the domain that is used for violation messages by default to this
* method.
*
* @param string $translationDomain The translation domain of the violation messages.
*
* @return ValidatorBuilderInterface The builder object.
*/
public function setTranslationDomain($translationDomain);
/**
* Builds and returns a new validator object.
*

View File

@ -89,7 +89,8 @@ class ValidatorContext implements ValidatorContextInterface
return new Validator(
$this->metadataFactory,
$this->constraintValidatorFactory
$this->constraintValidatorFactory,
new DefaultTranslator()
);
}

View File

@ -16,7 +16,8 @@
}
],
"require": {
"php": ">=5.3.3"
"php": ">=5.3.3",
"symfony/translation": "2.2.*"
},
"require-dev": {
"symfony/http-foundation": "2.2.*",