ヤミRoot VoidGate
User / IP
:
216.73.216.143
Host / Server
:
146.88.233.70 / dev.loger.cm
System
:
Linux hybrid1120.fr.ns.planethoster.net 3.10.0-957.21.2.el7.x86_64 #1 SMP Wed Jun 5 14:26:44 UTC 2019 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
logercm
/
dev.loger.cm
/
fixtures
/
assert
/
Viewing: validator.tar
Command/DebugCommand.php 0000644 00000015540 15120140576 0011166 0 ustar 00 <?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\Command; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Helper\Dumper; use Symfony\Component\Console\Helper\Table; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Style\SymfonyStyle; use Symfony\Component\Finder\Exception\DirectoryNotFoundException; use Symfony\Component\Finder\Finder; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Mapping\ClassMetadataInterface; use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface; /** * A console command to debug Validators information. * * @author Loïc Frémont <lc.fremont@gmail.com> */ class DebugCommand extends Command { protected static $defaultName = 'debug:validator'; protected static $defaultDescription = 'Display validation constraints for classes'; private $validator; public function __construct(MetadataFactoryInterface $validator) { parent::__construct(); $this->validator = $validator; } protected function configure() { $this ->addArgument('class', InputArgument::REQUIRED, 'A fully qualified class name or a path') ->addOption('show-all', null, InputOption::VALUE_NONE, 'Show all classes even if they have no validation constraints') ->setDescription(self::$defaultDescription) ->setHelp(<<<'EOF' The <info>%command.name% 'App\Entity\Dummy'</info> command dumps the validators for the dummy class. The <info>%command.name% src/</info> command dumps the validators for the `src` directory. EOF ) ; } protected function execute(InputInterface $input, OutputInterface $output): int { $class = $input->getArgument('class'); if (class_exists($class)) { $this->dumpValidatorsForClass($input, $output, $class); return 0; } try { foreach ($this->getResourcesByPath($class) as $class) { $this->dumpValidatorsForClass($input, $output, $class); } } catch (DirectoryNotFoundException $exception) { $io = new SymfonyStyle($input, $output); $io->error(sprintf('Neither class nor path were found with "%s" argument.', $input->getArgument('class'))); return 1; } return 0; } private function dumpValidatorsForClass(InputInterface $input, OutputInterface $output, string $class): void { $io = new SymfonyStyle($input, $output); $title = sprintf('<info>%s</info>', $class); $rows = []; $dump = new Dumper($output); /** @var ClassMetadataInterface $classMetadata */ $classMetadata = $this->validator->getMetadataFor($class); foreach ($this->getClassConstraintsData($classMetadata) as $data) { $rows[] = [ '-', $data['class'], implode(', ', $data['groups']), $dump($data['options']), ]; } foreach ($this->getConstrainedPropertiesData($classMetadata) as $propertyName => $constraintsData) { foreach ($constraintsData as $data) { $rows[] = [ $propertyName, $data['class'], implode(', ', $data['groups']), $dump($data['options']), ]; } } if (!$rows) { if (false === $input->getOption('show-all')) { return; } $io->section($title); $io->text('No validators were found for this class.'); return; } $io->section($title); $table = new Table($output); $table->setHeaders(['Property', 'Name', 'Groups', 'Options']); $table->setRows($rows); $table->setColumnMaxWidth(3, 80); $table->render(); } private function getClassConstraintsData(ClassMetadataInterface $classMetadata): iterable { foreach ($classMetadata->getConstraints() as $constraint) { yield [ 'class' => \get_class($constraint), 'groups' => $constraint->groups, 'options' => $this->getConstraintOptions($constraint), ]; } } private function getConstrainedPropertiesData(ClassMetadataInterface $classMetadata): array { $data = []; foreach ($classMetadata->getConstrainedProperties() as $constrainedProperty) { $data[$constrainedProperty] = $this->getPropertyData($classMetadata, $constrainedProperty); } return $data; } private function getPropertyData(ClassMetadataInterface $classMetadata, string $constrainedProperty): array { $data = []; $propertyMetadata = $classMetadata->getPropertyMetadata($constrainedProperty); foreach ($propertyMetadata as $metadata) { foreach ($metadata->getConstraints() as $constraint) { $data[] = [ 'class' => \get_class($constraint), 'groups' => $constraint->groups, 'options' => $this->getConstraintOptions($constraint), ]; } } return $data; } private function getConstraintOptions(Constraint $constraint): array { $options = []; foreach (array_keys(get_object_vars($constraint)) as $propertyName) { // Groups are dumped on a specific column. if ('groups' === $propertyName) { continue; } $options[$propertyName] = $constraint->$propertyName; } ksort($options); return $options; } private function getResourcesByPath(string $path): array { $finder = new Finder(); $finder->files()->in($path)->name('*.php')->sortByName(true); $classes = []; foreach ($finder as $file) { $fileContent = file_get_contents($file->getRealPath()); preg_match('/namespace (.+);/', $fileContent, $matches); $namespace = $matches[1] ?? null; if (!preg_match('/class +([^{ ]+)/', $fileContent, $matches)) { // no class found continue; } $className = trim($matches[1]); if (null !== $namespace) { $classes[] = $namespace.'\\'.$className; } else { $classes[] = $className; } } return $classes; } } Constraints/AbstractComparison.php 0000644 00000004377 15120140576 0013376 0 ustar 00 <?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\Constraints; use Symfony\Component\PropertyAccess\PropertyAccess; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\LogicException; /** * Used for the comparison of values. * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ abstract class AbstractComparison extends Constraint { public $message; public $value; public $propertyPath; /** * {@inheritdoc} * * @param mixed $value the value to compare or a set of options */ public function __construct($value = null, $propertyPath = null, string $message = null, array $groups = null, $payload = null, array $options = []) { if (\is_array($value)) { $options = array_merge($value, $options); } elseif (null !== $value) { $options['value'] = $value; } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->propertyPath = $propertyPath ?? $this->propertyPath; if (null === $this->value && null === $this->propertyPath) { throw new ConstraintDefinitionException(sprintf('The "%s" constraint requires either the "value" or "propertyPath" option to be set.', static::class)); } if (null !== $this->value && null !== $this->propertyPath) { throw new ConstraintDefinitionException(sprintf('The "%s" constraint requires only one of the "value" or "propertyPath" options to be set, not both.', static::class)); } if (null !== $this->propertyPath && !class_exists(PropertyAccess::class)) { throw new LogicException(sprintf('The "%s" constraint requires the Symfony PropertyAccess component to use the "propertyPath" option.', static::class)); } } /** * {@inheritdoc} */ public function getDefaultOption() { return 'value'; } } Constraints/AbstractComparisonValidator.php 0000644 00000010562 15120140576 0015235 0 ustar 00 <?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\Constraints; use Symfony\Component\PropertyAccess\Exception\NoSuchPropertyException; use Symfony\Component\PropertyAccess\PropertyAccess; use Symfony\Component\PropertyAccess\PropertyAccessorInterface; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * Provides a base class for the validation of property comparisons. * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ abstract class AbstractComparisonValidator extends ConstraintValidator { private $propertyAccessor; public function __construct(PropertyAccessorInterface $propertyAccessor = null) { $this->propertyAccessor = $propertyAccessor; } /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof AbstractComparison) { throw new UnexpectedTypeException($constraint, AbstractComparison::class); } if (null === $value) { return; } if ($path = $constraint->propertyPath) { if (null === $object = $this->context->getObject()) { return; } try { $comparedValue = $this->getPropertyAccessor()->getValue($object, $path); } catch (NoSuchPropertyException $e) { throw new ConstraintDefinitionException(sprintf('Invalid property path "%s" provided to "%s" constraint: ', $path, get_debug_type($constraint)).$e->getMessage(), 0, $e); } } else { $comparedValue = $constraint->value; } // Convert strings to DateTimes if comparing another DateTime // This allows to compare with any date/time value supported by // the DateTime constructor: // https://php.net/datetime.formats if (\is_string($comparedValue) && $value instanceof \DateTimeInterface) { // If $value is immutable, convert the compared value to a DateTimeImmutable too, otherwise use DateTime $dateTimeClass = $value instanceof \DateTimeImmutable ? \DateTimeImmutable::class : \DateTime::class; try { $comparedValue = new $dateTimeClass($comparedValue); } catch (\Exception $e) { throw new ConstraintDefinitionException(sprintf('The compared value "%s" could not be converted to a "%s" instance in the "%s" constraint.', $comparedValue, $dateTimeClass, get_debug_type($constraint))); } } if (!$this->compareValues($value, $comparedValue)) { $violationBuilder = $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value, self::OBJECT_TO_STRING | self::PRETTY_DATE)) ->setParameter('{{ compared_value }}', $this->formatValue($comparedValue, self::OBJECT_TO_STRING | self::PRETTY_DATE)) ->setParameter('{{ compared_value_type }}', $this->formatTypeOf($comparedValue)) ->setCode($this->getErrorCode()); if (null !== $path) { $violationBuilder->setParameter('{{ compared_value_path }}', $path); } $violationBuilder->addViolation(); } } private function getPropertyAccessor(): PropertyAccessorInterface { if (null === $this->propertyAccessor) { $this->propertyAccessor = PropertyAccess::createPropertyAccessor(); } return $this->propertyAccessor; } /** * Compares the two given values to find if their relationship is valid. * * @param mixed $value1 The first value to compare * @param mixed $value2 The second value to compare * * @return bool */ abstract protected function compareValues($value1, $value2); /** * Returns the error code used if the comparison fails. * * @return string|null */ protected function getErrorCode() { return null; } } Constraints/All.php 0000644 00000001755 15120140576 0010305 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class All extends Composite { public $constraints = []; public function __construct($constraints = null, array $groups = null, $payload = null) { parent::__construct($constraints ?? [], $groups, $payload); } public function getDefaultOption() { return 'constraints'; } public function getRequiredOptions() { return ['constraints']; } protected function getCompositeOption() { return 'constraints'; } } Constraints/AllValidator.php 0000644 00000002465 15120140576 0012152 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class AllValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof All) { throw new UnexpectedTypeException($constraint, All::class); } if (null === $value) { return; } if (!\is_array($value) && !$value instanceof \Traversable) { throw new UnexpectedValueException($value, 'iterable'); } $context = $this->context; $validator = $context->getValidator()->inContext($context); foreach ($value as $key => $element) { $validator->atPath('['.$key.']')->validate($element, $constraint->constraints); } } } Constraints/AtLeastOneOf.php 0000644 00000003405 15120140576 0012053 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Przemysław Bogusz <przemyslaw.bogusz@tubotax.pl> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class AtLeastOneOf extends Composite { public const AT_LEAST_ONE_OF_ERROR = 'f27e6d6c-261a-4056-b391-6673a623531c'; protected static $errorNames = [ self::AT_LEAST_ONE_OF_ERROR => 'AT_LEAST_ONE_OF_ERROR', ]; public $constraints = []; public $message = 'This value should satisfy at least one of the following constraints:'; public $messageCollection = 'Each element of this collection should satisfy its own set of constraints.'; public $includeInternalMessages = true; public function __construct($constraints = null, array $groups = null, $payload = null, string $message = null, string $messageCollection = null, bool $includeInternalMessages = null) { parent::__construct($constraints ?? [], $groups, $payload); $this->message = $message ?? $this->message; $this->messageCollection = $messageCollection ?? $this->messageCollection; $this->includeInternalMessages = $includeInternalMessages ?? $this->includeInternalMessages; } public function getDefaultOption() { return 'constraints'; } public function getRequiredOptions() { return ['constraints']; } protected function getCompositeOption() { return 'constraints'; } } Constraints/AtLeastOneOfValidator.php 0000644 00000004731 15120140576 0013724 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Przemysław Bogusz <przemyslaw.bogusz@tubotax.pl> */ class AtLeastOneOfValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof AtLeastOneOf) { throw new UnexpectedTypeException($constraint, AtLeastOneOf::class); } $validator = $this->context->getValidator(); // Build a first violation to have the base message of the constraint translated $baseMessageContext = clone $this->context; $baseMessageContext->buildViolation($constraint->message)->addViolation(); $baseViolations = $baseMessageContext->getViolations(); $messages = [(string) $baseViolations->get(\count($baseViolations) - 1)->getMessage()]; foreach ($constraint->constraints as $key => $item) { if (!\in_array($this->context->getGroup(), $item->groups, true)) { continue; } $executionContext = clone $this->context; $executionContext->setNode($value, $this->context->getObject(), $this->context->getMetadata(), $this->context->getPropertyPath()); $violations = $validator->inContext($executionContext)->validate($value, $item, $this->context->getGroup())->getViolations(); if (\count($this->context->getViolations()) === \count($violations)) { return; } if ($constraint->includeInternalMessages) { $message = ' ['.($key + 1).'] '; if ($item instanceof All || $item instanceof Collection) { $message .= $constraint->messageCollection; } else { $message .= $violations->get(\count($violations) - 1)->getMessage(); } $messages[] = $message; } } $this->context->buildViolation(implode('', $messages)) ->setCode(AtLeastOneOf::AT_LEAST_ONE_OF_ERROR) ->addViolation() ; } } Constraints/Bic.php 0000644 00000007154 15120140576 0010271 0 ustar 00 <?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\Constraints; use Symfony\Component\Intl\Countries; use Symfony\Component\PropertyAccess\PropertyAccess; use Symfony\Component\PropertyAccess\PropertyPathInterface; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\LogicException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Michael Hirschler <michael.vhirsch@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Bic extends Constraint { public const INVALID_LENGTH_ERROR = '66dad313-af0b-4214-8566-6c799be9789c'; public const INVALID_CHARACTERS_ERROR = 'f424c529-7add-4417-8f2d-4b656e4833e2'; public const INVALID_BANK_CODE_ERROR = '00559357-6170-4f29-aebd-d19330aa19cf'; public const INVALID_COUNTRY_CODE_ERROR = '1ce76f8d-3c1f-451c-9e62-fe9c3ed486ae'; public const INVALID_CASE_ERROR = '11884038-3312-4ae5-9d04-699f782130c7'; public const INVALID_IBAN_COUNTRY_CODE_ERROR = '29a2c3bb-587b-4996-b6f5-53081364cea5'; protected static $errorNames = [ self::INVALID_LENGTH_ERROR => 'INVALID_LENGTH_ERROR', self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR', self::INVALID_BANK_CODE_ERROR => 'INVALID_BANK_CODE_ERROR', self::INVALID_COUNTRY_CODE_ERROR => 'INVALID_COUNTRY_CODE_ERROR', self::INVALID_CASE_ERROR => 'INVALID_CASE_ERROR', ]; public $message = 'This is not a valid Business Identifier Code (BIC).'; public $ibanMessage = 'This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.'; public $iban; public $ibanPropertyPath; /** * {@inheritdoc} * * @param string|PropertyPathInterface|null $ibanPropertyPath */ public function __construct(array $options = null, string $message = null, string $iban = null, $ibanPropertyPath = null, string $ibanMessage = null, array $groups = null, $payload = null) { if (!class_exists(Countries::class)) { throw new LogicException('The Intl component is required to use the Bic constraint. Try running "composer require symfony/intl".'); } if (null !== $ibanPropertyPath && !\is_string($ibanPropertyPath) && !$ibanPropertyPath instanceof PropertyPathInterface) { throw new \TypeError(sprintf('"%s": Expected argument $ibanPropertyPath to be either null, a string or an instance of "%s", got "%s".', __METHOD__, PropertyPathInterface::class, get_debug_type($ibanPropertyPath))); } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->ibanMessage = $ibanMessage ?? $this->ibanMessage; $this->iban = $iban ?? $this->iban; $this->ibanPropertyPath = $ibanPropertyPath ?? $this->ibanPropertyPath; if (null !== $this->iban && null !== $this->ibanPropertyPath) { throw new ConstraintDefinitionException('The "iban" and "ibanPropertyPath" options of the Iban constraint cannot be used at the same time.'); } if (null !== $this->ibanPropertyPath && !class_exists(PropertyAccess::class)) { throw new LogicException(sprintf('The "symfony/property-access" component is required to use the "%s" constraint with the "ibanPropertyPath" option.', self::class)); } } } Constraints/BicValidator.php 0000644 00000014444 15120140576 0012137 0 ustar 00 <?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\Constraints; use Symfony\Component\Intl\Countries; use Symfony\Component\PropertyAccess\Exception\NoSuchPropertyException; use Symfony\Component\PropertyAccess\PropertyAccess; use Symfony\Component\PropertyAccess\PropertyAccessor; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\LogicException; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Michael Hirschler <michael.vhirsch@gmail.com> * * @see https://en.wikipedia.org/wiki/ISO_9362#Structure */ class BicValidator extends ConstraintValidator { // Reference: https://www.iban.com/structure private const BIC_COUNTRY_TO_IBAN_COUNTRY_MAP = [ // FR includes: 'GF' => 'FR', // French Guiana 'PF' => 'FR', // French Polynesia 'TF' => 'FR', // French Southern Territories 'GP' => 'FR', // Guadeloupe 'MQ' => 'FR', // Martinique 'YT' => 'FR', // Mayotte 'NC' => 'FR', // New Caledonia 'RE' => 'FR', // Reunion 'BL' => 'FR', // Saint Barthelemy 'MF' => 'FR', // Saint Martin (French part) 'PM' => 'FR', // Saint Pierre and Miquelon 'WF' => 'FR', // Wallis and Futuna Islands // GB includes: 'JE' => 'GB', // Jersey 'IM' => 'GB', // Isle of Man 'GG' => 'GB', // Guernsey 'VG' => 'GB', // British Virgin Islands // FI includes: 'AX' => 'FI', // Aland Islands // ES includes: 'IC' => 'ES', // Canary Islands 'EA' => 'ES', // Ceuta and Melilla ]; private $propertyAccessor; public function __construct(PropertyAccessor $propertyAccessor = null) { $this->propertyAccessor = $propertyAccessor; } /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Bic) { throw new UnexpectedTypeException($constraint, Bic::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $canonicalize = str_replace(' ', '', $value); // the bic must be either 8 or 11 characters long if (!\in_array(\strlen($canonicalize), [8, 11])) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Bic::INVALID_LENGTH_ERROR) ->addViolation(); return; } // must contain alphanumeric values only if (!ctype_alnum($canonicalize)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Bic::INVALID_CHARACTERS_ERROR) ->addViolation(); return; } // first 4 letters must be alphabetic (bank code) if (!ctype_alpha(substr($canonicalize, 0, 4))) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Bic::INVALID_BANK_CODE_ERROR) ->addViolation(); return; } $bicCountryCode = substr($canonicalize, 4, 2); if (!isset(self::BIC_COUNTRY_TO_IBAN_COUNTRY_MAP[$bicCountryCode]) && !Countries::exists($bicCountryCode)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Bic::INVALID_COUNTRY_CODE_ERROR) ->addViolation(); return; } // should contain uppercase characters only if (strtoupper($canonicalize) !== $canonicalize) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Bic::INVALID_CASE_ERROR) ->addViolation(); return; } // check against an IBAN $iban = $constraint->iban; $path = $constraint->ibanPropertyPath; if ($path && null !== $object = $this->context->getObject()) { try { $iban = $this->getPropertyAccessor()->getValue($object, $path); } catch (NoSuchPropertyException $e) { throw new ConstraintDefinitionException(sprintf('Invalid property path "%s" provided to "%s" constraint: ', $path, get_debug_type($constraint)).$e->getMessage(), 0, $e); } } if (!$iban) { return; } $ibanCountryCode = substr($iban, 0, 2); if (ctype_alpha($ibanCountryCode) && !$this->bicAndIbanCountriesMatch($bicCountryCode, $ibanCountryCode)) { $this->context->buildViolation($constraint->ibanMessage) ->setParameter('{{ value }}', $this->formatValue($value)) ->setParameter('{{ iban }}', $iban) ->setCode(Bic::INVALID_IBAN_COUNTRY_CODE_ERROR) ->addViolation(); } } private function getPropertyAccessor(): PropertyAccessor { if (null === $this->propertyAccessor) { if (!class_exists(PropertyAccess::class)) { throw new LogicException('Unable to use property path as the Symfony PropertyAccess component is not installed.'); } $this->propertyAccessor = PropertyAccess::createPropertyAccessor(); } return $this->propertyAccessor; } private function bicAndIbanCountriesMatch(string $bicCountryCode, string $ibanCountryCode): bool { return $ibanCountryCode === $bicCountryCode || $ibanCountryCode === (self::BIC_COUNTRY_TO_IBAN_COUNTRY_MAP[$bicCountryCode] ?? null); } } Constraints/Blank.php 0000644 00000002056 15120140576 0010617 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Blank extends Constraint { public const NOT_BLANK_ERROR = '183ad2de-533d-4796-a439-6d3c3852b549'; protected static $errorNames = [ self::NOT_BLANK_ERROR => 'NOT_BLANK_ERROR', ]; public $message = 'This value should be blank.'; public function __construct(array $options = null, string $message = null, array $groups = null, $payload = null) { parent::__construct($options ?? [], $groups, $payload); $this->message = $message ?? $this->message; } } Constraints/BlankValidator.php 0000644 00000002100 15120140576 0012453 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class BlankValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Blank) { throw new UnexpectedTypeException($constraint, Blank::class); } if ('' !== $value && null !== $value) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Blank::NOT_BLANK_ERROR) ->addViolation(); } } } Constraints/Callback.php 0000644 00000003333 15120140576 0011263 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"CLASS", "PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Callback extends Constraint { /** * @var string|callable */ public $callback; /** * {@inheritdoc} * * @param array|string|callable $callback The callback or a set of options */ public function __construct($callback = null, array $groups = null, $payload = null, array $options = []) { // Invocation through annotations with an array parameter only if (\is_array($callback) && 1 === \count($callback) && isset($callback['value'])) { $callback = $callback['value']; } if (!\is_array($callback) || (!isset($callback['callback']) && !isset($callback['groups']) && !isset($callback['payload']))) { $options['callback'] = $callback; } else { $options = array_merge($callback, $options); } parent::__construct($options, $groups, $payload); } /** * {@inheritdoc} */ public function getDefaultOption() { return 'callback'; } /** * {@inheritdoc} */ public function getTargets() { return [self::CLASS_CONSTRAINT, self::PROPERTY_CONSTRAINT]; } } Constraints/CallbackValidator.php 0000644 00000004135 15120140576 0013132 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * Validator for Callback constraint. * * @author Bernhard Schussek <bschussek@gmail.com> */ class CallbackValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($object, Constraint $constraint) { if (!$constraint instanceof Callback) { throw new UnexpectedTypeException($constraint, Callback::class); } $method = $constraint->callback; if ($method instanceof \Closure) { $method($object, $this->context, $constraint->payload); } elseif (\is_array($method)) { if (!\is_callable($method)) { if (isset($method[0]) && \is_object($method[0])) { $method[0] = \get_class($method[0]); } throw new ConstraintDefinitionException(json_encode($method).' targeted by Callback constraint is not a valid callable.'); } $method($object, $this->context, $constraint->payload); } elseif (null !== $object) { if (!method_exists($object, $method)) { throw new ConstraintDefinitionException(sprintf('Method "%s" targeted by Callback constraint does not exist in class "%s".', $method, get_debug_type($object))); } $reflMethod = new \ReflectionMethod($object, $method); if ($reflMethod->isStatic()) { $reflMethod->invoke(null, $object, $this->context, $constraint->payload); } else { $reflMethod->invoke($object, $this->context, $constraint->payload); } } } } Constraints/CardScheme.php 0000644 00000004356 15120140576 0011573 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * Metadata for the CardSchemeValidator. * * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Tim Nagel <t.nagel@infinite.net.au> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class CardScheme extends Constraint { public const AMEX = 'AMEX'; public const CHINA_UNIONPAY = 'CHINA_UNIONPAY'; public const DINERS = 'DINERS'; public const DISCOVER = 'DISCOVER'; public const INSTAPAYMENT = 'INSTAPAYMENT'; public const JCB = 'JCB'; public const LASER = 'LASER'; public const MAESTRO = 'MAESTRO'; public const MASTERCARD = 'MASTERCARD'; public const MIR = 'MIR'; public const UATP = 'UATP'; public const VISA = 'VISA'; public const NOT_NUMERIC_ERROR = 'a2ad9231-e827-485f-8a1e-ef4d9a6d5c2e'; public const INVALID_FORMAT_ERROR = 'a8faedbf-1c2f-4695-8d22-55783be8efed'; protected static $errorNames = [ self::NOT_NUMERIC_ERROR => 'NOT_NUMERIC_ERROR', self::INVALID_FORMAT_ERROR => 'INVALID_FORMAT_ERROR', ]; public $message = 'Unsupported card type or invalid card number.'; public $schemes; /** * {@inheritdoc} * * @param array|string $schemes The schemes to validate against or a set of options */ public function __construct($schemes, string $message = null, array $groups = null, $payload = null, array $options = []) { if (\is_array($schemes) && \is_string(key($schemes))) { $options = array_merge($schemes, $options); } else { $options['value'] = $schemes; } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; } public function getDefaultOption() { return 'schemes'; } public function getRequiredOptions() { return ['schemes']; } } Constraints/CardSchemeValidator.php 0000644 00000011775 15120140576 0013444 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * Validates that a card number belongs to a specified scheme. * * @author Tim Nagel <t.nagel@infinite.net.au> * @author Bernhard Schussek <bschussek@gmail.com> * * @see https://en.wikipedia.org/wiki/Payment_card_number * @see https://www.regular-expressions.info/creditcard.html */ class CardSchemeValidator extends ConstraintValidator { protected $schemes = [ // American Express card numbers start with 34 or 37 and have 15 digits. CardScheme::AMEX => [ '/^3[47][0-9]{13}$/', ], // China UnionPay cards start with 62 and have between 16 and 19 digits. // Please note that these cards do not follow Luhn Algorithm as a checksum. CardScheme::CHINA_UNIONPAY => [ '/^62[0-9]{14,17}$/', ], // Diners Club card numbers begin with 300 through 305, 36 or 38. All have 14 digits. // There are Diners Club cards that begin with 5 and have 16 digits. // These are a joint venture between Diners Club and MasterCard, and should be processed like a MasterCard. CardScheme::DINERS => [ '/^3(?:0[0-5]|[68][0-9])[0-9]{11}$/', ], // Discover card numbers begin with 6011, 622126 through 622925, 644 through 649 or 65. // All have 16 digits. CardScheme::DISCOVER => [ '/^6011[0-9]{12}$/', '/^64[4-9][0-9]{13}$/', '/^65[0-9]{14}$/', '/^622(12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|91[0-9]|92[0-5])[0-9]{10}$/', ], // InstaPayment cards begin with 637 through 639 and have 16 digits. CardScheme::INSTAPAYMENT => [ '/^63[7-9][0-9]{13}$/', ], // JCB cards beginning with 2131 or 1800 have 15 digits. // JCB cards beginning with 35 have 16 digits. CardScheme::JCB => [ '/^(?:2131|1800|35[0-9]{3})[0-9]{11}$/', ], // Laser cards begin with either 6304, 6706, 6709 or 6771 and have between 16 and 19 digits. CardScheme::LASER => [ '/^(6304|670[69]|6771)[0-9]{12,15}$/', ], // Maestro international cards begin with 675900..675999 and have between 12 and 19 digits. // Maestro UK cards begin with either 500000..509999 or 560000..699999 and have between 12 and 19 digits. CardScheme::MAESTRO => [ '/^(6759[0-9]{2})[0-9]{6,13}$/', '/^(50[0-9]{4})[0-9]{6,13}$/', '/^5[6-9][0-9]{10,17}$/', '/^6[0-9]{11,18}$/', ], // All MasterCard numbers start with the numbers 51 through 55. All have 16 digits. // October 2016 MasterCard numbers can also start with 222100 through 272099. CardScheme::MASTERCARD => [ '/^5[1-5][0-9]{14}$/', '/^2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12})$/', ], // Payment system MIR numbers start with 220, then 1 digit from 0 to 4, then between 12 and 15 digits CardScheme::MIR => [ '/^220[0-4][0-9]{12,15}$/', ], // All UATP card numbers start with a 1 and have a length of 15 digits. CardScheme::UATP => [ '/^1[0-9]{14}$/', ], // All Visa card numbers start with a 4 and have a length of 13, 16, or 19 digits. CardScheme::VISA => [ '/^4([0-9]{12}|[0-9]{15}|[0-9]{18})$/', ], ]; /** * Validates a creditcard belongs to a specified scheme. * * @param mixed $value */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof CardScheme) { throw new UnexpectedTypeException($constraint, CardScheme::class); } if (null === $value || '' === $value) { return; } if (!is_numeric($value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(CardScheme::NOT_NUMERIC_ERROR) ->addViolation(); return; } $schemes = array_flip((array) $constraint->schemes); $schemeRegexes = array_intersect_key($this->schemes, $schemes); foreach ($schemeRegexes as $regexes) { foreach ($regexes as $regex) { if (preg_match($regex, $value)) { return; } } } $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(CardScheme::INVALID_FORMAT_ERROR) ->addViolation(); } } Constraints/Cascade.php 0000644 00000002006 15120140576 0011106 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * @Annotation * @Target({"CLASS"}) * * @author Jules Pietri <jules@heahprod.com> */ #[\Attribute(\Attribute::TARGET_CLASS)] class Cascade extends Constraint { public function __construct(array $options = null) { if (\is_array($options) && \array_key_exists('groups', $options)) { throw new ConstraintDefinitionException(sprintf('The option "groups" is not supported by the constraint "%s".', __CLASS__)); } parent::__construct($options); } /** * {@inheritdoc} */ public function getTargets() { return self::CLASS_CONSTRAINT; } } Constraints/Choice.php 0000644 00000005511 15120140576 0010761 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Choice extends Constraint { public const NO_SUCH_CHOICE_ERROR = '8e179f1b-97aa-4560-a02f-2a8b42e49df7'; public const TOO_FEW_ERROR = '11edd7eb-5872-4b6e-9f12-89923999fd0e'; public const TOO_MANY_ERROR = '9bd98e49-211c-433f-8630-fd1c2d0f08c3'; protected static $errorNames = [ self::NO_SUCH_CHOICE_ERROR => 'NO_SUCH_CHOICE_ERROR', self::TOO_FEW_ERROR => 'TOO_FEW_ERROR', self::TOO_MANY_ERROR => 'TOO_MANY_ERROR', ]; public $choices; public $callback; public $multiple = false; public $strict = true; public $min; public $max; 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 }} 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} */ public function getDefaultOption() { return 'choices'; } public function __construct( $options = [], array $choices = null, $callback = null, bool $multiple = null, bool $strict = null, int $min = null, int $max = null, string $message = null, string $multipleMessage = null, string $minMessage = null, string $maxMessage = null, $groups = null, $payload = null ) { if (\is_array($options) && $options && array_is_list($options)) { $choices = $choices ?? $options; $options = []; } if (null !== $choices) { $options['value'] = $choices; } parent::__construct($options, $groups, $payload); $this->callback = $callback ?? $this->callback; $this->multiple = $multiple ?? $this->multiple; $this->strict = $strict ?? $this->strict; $this->min = $min ?? $this->min; $this->max = $max ?? $this->max; $this->message = $message ?? $this->message; $this->multipleMessage = $multipleMessage ?? $this->multipleMessage; $this->minMessage = $minMessage ?? $this->minMessage; $this->maxMessage = $maxMessage ?? $this->maxMessage; } } Constraints/ChoiceValidator.php 0000644 00000007756 15120140576 0012644 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * ChoiceValidator validates that the value is one of the expected values. * * @author Fabien Potencier <fabien@symfony.com> * @author Florian Eckerstorfer <florian@eckerstorfer.org> * @author Bernhard Schussek <bschussek@gmail.com> */ class ChoiceValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Choice) { throw new UnexpectedTypeException($constraint, Choice::class); } if (!\is_array($constraint->choices) && !$constraint->callback) { throw new ConstraintDefinitionException('Either "choices" or "callback" must be specified on constraint Choice.'); } if (null === $value) { return; } if ($constraint->multiple && !\is_array($value)) { throw new UnexpectedValueException($value, 'array'); } if ($constraint->callback) { if (!\is_callable($choices = [$this->context->getObject(), $constraint->callback]) && !\is_callable($choices = [$this->context->getClassName(), $constraint->callback]) && !\is_callable($choices = $constraint->callback) ) { throw new ConstraintDefinitionException('The Choice constraint expects a valid callback.'); } $choices = $choices(); } else { $choices = $constraint->choices; } if (true !== $constraint->strict) { throw new \RuntimeException('The "strict" option of the Choice constraint should not be used.'); } if ($constraint->multiple) { foreach ($value as $_value) { if (!\in_array($_value, $choices, true)) { $this->context->buildViolation($constraint->multipleMessage) ->setParameter('{{ value }}', $this->formatValue($_value)) ->setParameter('{{ choices }}', $this->formatValues($choices)) ->setCode(Choice::NO_SUCH_CHOICE_ERROR) ->setInvalidValue($_value) ->addViolation(); return; } } $count = \count($value); if (null !== $constraint->min && $count < $constraint->min) { $this->context->buildViolation($constraint->minMessage) ->setParameter('{{ limit }}', $constraint->min) ->setPlural((int) $constraint->min) ->setCode(Choice::TOO_FEW_ERROR) ->addViolation(); return; } if (null !== $constraint->max && $count > $constraint->max) { $this->context->buildViolation($constraint->maxMessage) ->setParameter('{{ limit }}', $constraint->max) ->setPlural((int) $constraint->max) ->setCode(Choice::TOO_MANY_ERROR) ->addViolation(); return; } } elseif (!\in_array($value, $choices, true)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setParameter('{{ choices }}', $this->formatValues($choices)) ->setCode(Choice::NO_SUCH_CHOICE_ERROR) ->addViolation(); } } } Constraints/Cidr.php 0000644 00000005222 15120140576 0010447 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * Validates that a value is a valid CIDR notation. * * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Sorin Pop <popsorin15@gmail.com> * @author Calin Bolea <calin.bolea@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Cidr extends Constraint { public const INVALID_CIDR_ERROR = '5649e53a-5afb-47c5-a360-ffbab3be8567'; public const OUT_OF_RANGE_ERROR = 'b9f14a51-acbd-401a-a078-8c6b204ab32f'; protected static $errorNames = [ self::INVALID_CIDR_ERROR => 'INVALID_CIDR_ERROR', self::OUT_OF_RANGE_ERROR => 'OUT_OF_RANGE_VIOLATION', ]; private const NET_MAXES = [ Ip::ALL => 128, Ip::V4 => 32, Ip::V6 => 128, ]; public $version = Ip::ALL; public $message = 'This value is not a valid CIDR notation.'; public $netmaskRangeViolationMessage = 'The value of the netmask should be between {{ min }} and {{ max }}.'; public $netmaskMin = 0; public $netmaskMax; public function __construct( array $options = null, string $version = null, int $netmaskMin = null, int $netmaskMax = null, string $message = null, array $groups = null, $payload = null ) { $this->version = $version ?? $options['version'] ?? $this->version; if (!\in_array($this->version, array_keys(self::NET_MAXES))) { throw new ConstraintDefinitionException(sprintf('The option "version" must be one of "%s".', implode('", "', array_keys(self::NET_MAXES)))); } $this->netmaskMin = $netmaskMin ?? $options['netmaskMin'] ?? $this->netmaskMin; $this->netmaskMax = $netmaskMax ?? $options['netmaskMax'] ?? self::NET_MAXES[$this->version]; $this->message = $message ?? $this->message; unset($options['netmaskMin'], $options['netmaskMax'], $options['version']); if ($this->netmaskMin < 0 || $this->netmaskMax > self::NET_MAXES[$this->version] || $this->netmaskMin > $this->netmaskMax) { throw new ConstraintDefinitionException(sprintf('The netmask range must be between 0 and %d.', self::NET_MAXES[$this->version])); } parent::__construct($options, $groups, $payload); } } Constraints/CidrValidator.php 0000644 00000004511 15120140576 0012315 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; class CidrValidator extends ConstraintValidator { public function validate($value, Constraint $constraint): void { if (!$constraint instanceof Cidr) { throw new UnexpectedTypeException($constraint, Cidr::class); } if (null === $value || '' === $value) { return; } if (!\is_string($value)) { throw new UnexpectedValueException($value, 'string'); } $cidrParts = explode('/', $value, 2); if (!isset($cidrParts[1]) || !ctype_digit($cidrParts[1]) || '' === $cidrParts[0] ) { $this->context ->buildViolation($constraint->message) ->setCode(Cidr::INVALID_CIDR_ERROR) ->addViolation(); return; } $ipAddress = $cidrParts[0]; $netmask = (int) $cidrParts[1]; $validV4 = Ip::V6 !== $constraint->version && filter_var($ipAddress, \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV4) && $netmask <= 32; $validV6 = Ip::V4 !== $constraint->version && filter_var($ipAddress, \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV6); if (!$validV4 && !$validV6) { $this->context ->buildViolation($constraint->message) ->setCode(Cidr::INVALID_CIDR_ERROR) ->addViolation(); return; } if ($netmask < $constraint->netmaskMin || $netmask > $constraint->netmaskMax) { $this->context ->buildViolation($constraint->netmaskRangeViolationMessage) ->setParameter('{{ min }}', $constraint->netmaskMin) ->setParameter('{{ max }}', $constraint->netmaskMax) ->setCode(Cidr::OUT_OF_RANGE_ERROR) ->addViolation(); } } } Constraints/Collection.php 0000644 00000006174 15120140576 0011670 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Collection extends Composite { public const MISSING_FIELD_ERROR = '2fa2158c-2a7f-484b-98aa-975522539ff8'; public const NO_SUCH_FIELD_ERROR = '7703c766-b5d5-4cef-ace7-ae0dd82304e9'; protected static $errorNames = [ self::MISSING_FIELD_ERROR => 'MISSING_FIELD_ERROR', self::NO_SUCH_FIELD_ERROR => 'NO_SUCH_FIELD_ERROR', ]; public $fields = []; public $allowExtraFields = false; public $allowMissingFields = false; public $extraFieldsMessage = 'This field was not expected.'; public $missingFieldsMessage = 'This field is missing.'; /** * {@inheritdoc} */ public function __construct($fields = null, array $groups = null, $payload = null, bool $allowExtraFields = null, bool $allowMissingFields = null, string $extraFieldsMessage = null, string $missingFieldsMessage = null) { // no known options set? $fields is the fields array if (\is_array($fields) && !array_intersect(array_keys($fields), ['groups', 'fields', 'allowExtraFields', 'allowMissingFields', 'extraFieldsMessage', 'missingFieldsMessage'])) { $fields = ['fields' => $fields]; } parent::__construct($fields, $groups, $payload); $this->allowExtraFields = $allowExtraFields ?? $this->allowExtraFields; $this->allowMissingFields = $allowMissingFields ?? $this->allowMissingFields; $this->extraFieldsMessage = $extraFieldsMessage ?? $this->extraFieldsMessage; $this->missingFieldsMessage = $missingFieldsMessage ?? $this->missingFieldsMessage; } /** * {@inheritdoc} */ protected function initializeNestedConstraints() { parent::initializeNestedConstraints(); if (!\is_array($this->fields)) { throw new ConstraintDefinitionException(sprintf('The option "fields" is expected to be an array in constraint "%s".', __CLASS__)); } foreach ($this->fields as $fieldName => $field) { // the XmlFileLoader and YamlFileLoader pass the field Optional // and Required constraint as an array with exactly one element if (\is_array($field) && 1 == \count($field)) { $this->fields[$fieldName] = $field = $field[0]; } if (!$field instanceof Optional && !$field instanceof Required) { $this->fields[$fieldName] = new Required($field); } } } public function getRequiredOptions() { return ['fields']; } protected function getCompositeOption() { return 'fields'; } } Constraints/CollectionValidator.php 0000644 00000006627 15120140576 0013541 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class CollectionValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Collection) { throw new UnexpectedTypeException($constraint, Collection::class); } if (null === $value) { return; } if (!\is_array($value) && !($value instanceof \Traversable && $value instanceof \ArrayAccess)) { throw new UnexpectedValueException($value, 'array|(Traversable&ArrayAccess)'); } // We need to keep the initialized context when CollectionValidator // calls itself recursively (Collection constraints can be nested). // Since the context of the validator is overwritten when initialize() // is called for the nested constraint, the outer validator is // acting on the wrong context when the nested validation terminates. // // A better solution - which should be approached in Symfony 3.0 - is to // remove the initialize() method and pass the context as last argument // to validate() instead. $context = $this->context; foreach ($constraint->fields as $field => $fieldConstraint) { // bug fix issue #2779 $existsInArray = \is_array($value) && \array_key_exists($field, $value); $existsInArrayAccess = $value instanceof \ArrayAccess && $value->offsetExists($field); if ($existsInArray || $existsInArrayAccess) { if (\count($fieldConstraint->constraints) > 0) { $context->getValidator() ->inContext($context) ->atPath('['.$field.']') ->validate($value[$field], $fieldConstraint->constraints); } } elseif (!$fieldConstraint instanceof Optional && !$constraint->allowMissingFields) { $context->buildViolation($constraint->missingFieldsMessage) ->atPath('['.$field.']') ->setParameter('{{ field }}', $this->formatValue($field)) ->setInvalidValue(null) ->setCode(Collection::MISSING_FIELD_ERROR) ->addViolation(); } } if (!$constraint->allowExtraFields) { foreach ($value as $field => $fieldValue) { if (!isset($constraint->fields[$field])) { $context->buildViolation($constraint->extraFieldsMessage) ->atPath('['.$field.']') ->setParameter('{{ field }}', $this->formatValue($field)) ->setInvalidValue($fieldValue) ->setCode(Collection::NO_SUCH_FIELD_ERROR) ->addViolation(); } } } } } Constraints/Composite.php 0000644 00000012715 15120140576 0011535 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * A constraint that is composed of other constraints. * * You should never use the nested constraint instances anywhere else, because * their groups are adapted when passed to the constructor of this class. * * If you want to create your own composite constraint, extend this class and * let {@link getCompositeOption()} return the name of the property which * contains the nested constraints. * * @author Bernhard Schussek <bschussek@gmail.com> */ abstract class Composite extends Constraint { /** * {@inheritdoc} * * The groups of the composite and its nested constraints are made * consistent using the following strategy: * * - If groups are passed explicitly to the composite constraint, but * not to the nested constraints, the options of the composite * constraint are copied to the nested constraints; * * - If groups are passed explicitly to the nested constraints, but not * to the composite constraint, the groups of all nested constraints * are merged and used as groups for the composite constraint; * * - If groups are passed explicitly to both the composite and its nested * constraints, the groups of the nested constraints must be a subset * of the groups of the composite constraint. If not, a * {@link ConstraintDefinitionException} is thrown. * * All this is done in the constructor, because constraints can then be * cached. When constraints are loaded from the cache, no more group * checks need to be done. */ public function __construct($options = null, array $groups = null, $payload = null) { parent::__construct($options, $groups, $payload); $this->initializeNestedConstraints(); /* @var Constraint[] $nestedConstraints */ $compositeOption = $this->getCompositeOption(); $nestedConstraints = $this->$compositeOption; if (!\is_array($nestedConstraints)) { $nestedConstraints = [$nestedConstraints]; } foreach ($nestedConstraints as $constraint) { if (!$constraint instanceof Constraint) { if (\is_object($constraint)) { $constraint = \get_class($constraint); } throw new ConstraintDefinitionException(sprintf('The value "%s" is not an instance of Constraint in constraint "%s".', $constraint, static::class)); } if ($constraint instanceof Valid) { throw new ConstraintDefinitionException(sprintf('The constraint Valid cannot be nested inside constraint "%s". You can only declare the Valid constraint directly on a field or method.', static::class)); } } if (!isset(((array) $this)['groups'])) { $mergedGroups = []; foreach ($nestedConstraints as $constraint) { foreach ($constraint->groups as $group) { $mergedGroups[$group] = true; } } // prevent empty composite constraint to have empty groups $this->groups = array_keys($mergedGroups) ?: [self::DEFAULT_GROUP]; $this->$compositeOption = $nestedConstraints; return; } foreach ($nestedConstraints as $constraint) { if (isset(((array) $constraint)['groups'])) { $excessGroups = array_diff($constraint->groups, $this->groups); if (\count($excessGroups) > 0) { throw new ConstraintDefinitionException(sprintf('The group(s) "%s" passed to the constraint "%s" should also be passed to its containing constraint "%s".', implode('", "', $excessGroups), get_debug_type($constraint), static::class)); } } else { $constraint->groups = $this->groups; } } $this->$compositeOption = $nestedConstraints; } /** * {@inheritdoc} * * Implicit group names are forwarded to nested constraints. */ public function addImplicitGroupName(string $group) { parent::addImplicitGroupName($group); /** @var Constraint[] $nestedConstraints */ $nestedConstraints = $this->{$this->getCompositeOption()}; foreach ($nestedConstraints as $constraint) { $constraint->addImplicitGroupName($group); } } /** * Returns the name of the property that contains the nested constraints. * * @return string */ abstract protected function getCompositeOption(); /** * @internal Used by metadata * * @return Constraint[] */ public function getNestedConstraints() { /* @var Constraint[] $nestedConstraints */ return $this->{$this->getCompositeOption()}; } /** * Initializes the nested constraints. * * This method can be overwritten in subclasses to clean up the nested * constraints passed to the constructor. * * @see Collection::initializeNestedConstraints() */ protected function initializeNestedConstraints() { } } Constraints/Compound.php 0000644 00000002611 15120140576 0011351 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * Extend this class to create a reusable set of constraints. * * @author Maxime Steinhausser <maxime.steinhausser@gmail.com> */ abstract class Compound extends Composite { /** @var Constraint[] */ public $constraints = []; public function __construct($options = null) { if (isset($options[$this->getCompositeOption()])) { throw new ConstraintDefinitionException(sprintf('You can\'t redefine the "%s" option. Use the "%s::getConstraints()" method instead.', $this->getCompositeOption(), __CLASS__)); } $this->constraints = $this->getConstraints($this->normalizeOptions($options)); parent::__construct($options); } final protected function getCompositeOption(): string { return 'constraints'; } final public function validatedBy(): string { return CompoundValidator::class; } /** * @return Constraint[] */ abstract protected function getConstraints(array $options): array; } Constraints/CompoundValidator.php 0000644 00000001700 15120140576 0013215 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Maxime Steinhausser <maxime.steinhausser@gmail.com> */ class CompoundValidator extends ConstraintValidator { public function validate($value, Constraint $constraint) { if (!$constraint instanceof Compound) { throw new UnexpectedTypeException($constraint, Compound::class); } $context = $this->context; $validator = $context->getValidator()->inContext($context); $validator->validate($value, $constraint->constraints); } } Constraints/Count.php 0000644 00000006741 15120140576 0010665 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\MissingOptionsException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Count extends Constraint { public const TOO_FEW_ERROR = 'bef8e338-6ae5-4caf-b8e2-50e7b0579e69'; public const TOO_MANY_ERROR = '756b1212-697c-468d-a9ad-50dd783bb169'; public const NOT_EQUAL_COUNT_ERROR = '9fe5d43f-3784-4ece-a0e1-473fc02dadbc'; public const NOT_DIVISIBLE_BY_ERROR = DivisibleBy::NOT_DIVISIBLE_BY; protected static $errorNames = [ self::TOO_FEW_ERROR => 'TOO_FEW_ERROR', self::TOO_MANY_ERROR => 'TOO_MANY_ERROR', self::NOT_EQUAL_COUNT_ERROR => 'NOT_EQUAL_COUNT_ERROR', self::NOT_DIVISIBLE_BY_ERROR => 'NOT_DIVISIBLE_BY_ERROR', ]; 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 $divisibleByMessage = 'The number of elements in this collection should be a multiple of {{ compared_value }}.'; public $min; public $max; public $divisibleBy; /** * {@inheritdoc} * * @param int|array|null $exactly The expected exact count or a set of options */ public function __construct( $exactly = null, int $min = null, int $max = null, int $divisibleBy = null, string $exactMessage = null, string $minMessage = null, string $maxMessage = null, string $divisibleByMessage = null, array $groups = null, $payload = null, array $options = [] ) { if (\is_array($exactly)) { $options = array_merge($exactly, $options); $exactly = $options['value'] ?? null; } $min = $min ?? $options['min'] ?? null; $max = $max ?? $options['max'] ?? null; unset($options['value'], $options['min'], $options['max']); if (null !== $exactly && null === $min && null === $max) { $min = $max = $exactly; } parent::__construct($options, $groups, $payload); $this->min = $min; $this->max = $max; $this->divisibleBy = $divisibleBy ?? $this->divisibleBy; $this->exactMessage = $exactMessage ?? $this->exactMessage; $this->minMessage = $minMessage ?? $this->minMessage; $this->maxMessage = $maxMessage ?? $this->maxMessage; $this->divisibleByMessage = $divisibleByMessage ?? $this->divisibleByMessage; if (null === $this->min && null === $this->max && null === $this->divisibleBy) { throw new MissingOptionsException(sprintf('Either option "min", "max" or "divisibleBy" must be given for constraint "%s".', __CLASS__), ['min', 'max', 'divisibleBy']); } } } Constraints/CountValidator.php 0000644 00000005453 15120140576 0012532 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class CountValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Count) { throw new UnexpectedTypeException($constraint, Count::class); } if (null === $value) { return; } if (!\is_array($value) && !$value instanceof \Countable) { throw new UnexpectedValueException($value, 'array|\Countable'); } $count = \count($value); if (null !== $constraint->max && $count > $constraint->max) { $exactlyOptionEnabled = $constraint->min == $constraint->max; $this->context->buildViolation($exactlyOptionEnabled ? $constraint->exactMessage : $constraint->maxMessage) ->setParameter('{{ count }}', $count) ->setParameter('{{ limit }}', $constraint->max) ->setInvalidValue($value) ->setPlural((int) $constraint->max) ->setCode($exactlyOptionEnabled ? Count::NOT_EQUAL_COUNT_ERROR : Count::TOO_MANY_ERROR) ->addViolation(); return; } if (null !== $constraint->min && $count < $constraint->min) { $exactlyOptionEnabled = $constraint->min == $constraint->max; $this->context->buildViolation($exactlyOptionEnabled ? $constraint->exactMessage : $constraint->minMessage) ->setParameter('{{ count }}', $count) ->setParameter('{{ limit }}', $constraint->min) ->setInvalidValue($value) ->setPlural((int) $constraint->min) ->setCode($exactlyOptionEnabled ? Count::NOT_EQUAL_COUNT_ERROR : Count::TOO_FEW_ERROR) ->addViolation(); return; } if (null !== $constraint->divisibleBy) { $this->context ->getValidator() ->inContext($this->context) ->validate($count, [ new DivisibleBy([ 'value' => $constraint->divisibleBy, 'message' => $constraint->divisibleByMessage, ]), ], $this->context->getGroup()); } } } Constraints/Country.php 0000644 00000002776 15120140576 0011244 0 ustar 00 <?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\Constraints; use Symfony\Component\Intl\Countries; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\LogicException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Country extends Constraint { public const NO_SUCH_COUNTRY_ERROR = '8f900c12-61bd-455d-9398-996cd040f7f0'; protected static $errorNames = [ self::NO_SUCH_COUNTRY_ERROR => 'NO_SUCH_COUNTRY_ERROR', ]; public $message = 'This value is not a valid country.'; public $alpha3 = false; public function __construct( array $options = null, string $message = null, bool $alpha3 = null, array $groups = null, $payload = null ) { if (!class_exists(Countries::class)) { throw new LogicException('The Intl component is required to use the Country constraint. Try running "composer require symfony/intl".'); } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->alpha3 = $alpha3 ?? $this->alpha3; } } Constraints/CountryValidator.php 0000644 00000003112 15120140576 0013073 0 ustar 00 <?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\Constraints; use Symfony\Component\Intl\Countries; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * Validates whether a value is a valid country code. * * @author Bernhard Schussek <bschussek@gmail.com> */ class CountryValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Country) { throw new UnexpectedTypeException($constraint, Country::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if ($constraint->alpha3 ? !Countries::alpha3CodeExists($value) : !Countries::exists($value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Country::NO_SUCH_COUNTRY_ERROR) ->addViolation(); } } } Constraints/CssColor.php 0000644 00000007070 15120140576 0011320 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\InvalidArgumentException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Mathieu Santostefano <msantostefano@protonmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class CssColor extends Constraint { public const HEX_LONG = 'hex_long'; public const HEX_LONG_WITH_ALPHA = 'hex_long_with_alpha'; public const HEX_SHORT = 'hex_short'; public const HEX_SHORT_WITH_ALPHA = 'hex_short_with_alpha'; public const BASIC_NAMED_COLORS = 'basic_named_colors'; public const EXTENDED_NAMED_COLORS = 'extended_named_colors'; public const SYSTEM_COLORS = 'system_colors'; public const KEYWORDS = 'keywords'; public const RGB = 'rgb'; public const RGBA = 'rgba'; public const HSL = 'hsl'; public const HSLA = 'hsla'; public const INVALID_FORMAT_ERROR = '454ab47b-aacf-4059-8f26-184b2dc9d48d'; protected static $errorNames = [ self::INVALID_FORMAT_ERROR => 'INVALID_FORMAT_ERROR', ]; /** * @var string[] */ private static $validationModes = [ self::HEX_LONG, self::HEX_LONG_WITH_ALPHA, self::HEX_SHORT, self::HEX_SHORT_WITH_ALPHA, self::BASIC_NAMED_COLORS, self::EXTENDED_NAMED_COLORS, self::SYSTEM_COLORS, self::KEYWORDS, self::RGB, self::RGBA, self::HSL, self::HSLA, ]; public $message = 'This value is not a valid CSS color.'; public $formats; /** * @param array|string $formats The types of CSS colors allowed (e.g. hexadecimal only, RGB and HSL only, etc.). */ public function __construct($formats = [], string $message = null, array $groups = null, $payload = null, array $options = null) { $validationModesAsString = implode(', ', self::$validationModes); if (!$formats) { $options['value'] = self::$validationModes; } elseif (\is_array($formats) && \is_string(key($formats))) { $options = array_merge($formats, $options ?? []); } elseif (\is_array($formats)) { if ([] === array_intersect(self::$validationModes, $formats)) { throw new InvalidArgumentException(sprintf('The "formats" parameter value is not valid. It must contain one or more of the following values: "%s".', $validationModesAsString)); } $options['value'] = $formats; } elseif (\is_string($formats)) { if (!\in_array($formats, self::$validationModes)) { throw new InvalidArgumentException(sprintf('The "formats" parameter value is not valid. It must contain one or more of the following values: "%s".', $validationModesAsString)); } $options['value'] = [$formats]; } else { throw new InvalidArgumentException('The "formats" parameter type is not valid. It should be a string or an array.'); } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; } public function getDefaultOption(): string { return 'formats'; } public function getRequiredOptions(): array { return ['formats']; } } Constraints/CssColorValidator.php 0000644 00000012606 15120140576 0013167 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Mathieu Santostefano <msantostefano@protonmail.com> */ class CssColorValidator extends ConstraintValidator { private const PATTERN_HEX_LONG = '/^#[0-9a-f]{6}$/i'; private const PATTERN_HEX_LONG_WITH_ALPHA = '/^#[0-9a-f]{8}$/i'; private const PATTERN_HEX_SHORT = '/^#[0-9a-f]{3}$/i'; private const PATTERN_HEX_SHORT_WITH_ALPHA = '/^#[0-9a-f]{4}$/i'; // List comes from https://www.w3.org/wiki/CSS/Properties/color/keywords#Basic_Colors private const PATTERN_BASIC_NAMED_COLORS = '/^(black|silver|gray|white|maroon|red|purple|fuchsia|green|lime|olive|yellow|navy|blue|teal|aqua)$/i'; // List comes from https://www.w3.org/wiki/CSS/Properties/color/keywords#Extended_colors private const PATTERN_EXTENDED_NAMED_COLORS = '/^(aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen)$/i'; // List comes from https://drafts.csswg.org/css-color/#css-system-colors private const PATTERN_SYSTEM_COLORS = '/^(Canvas|CanvasText|LinkText|VisitedText|ActiveText|ButtonFace|ButtonText|ButtonBorder|Field|FieldText|Highlight|HighlightText|SelectedItem|SelectedItemText|Mark|MarkText|GrayText)$/i'; private const PATTERN_KEYWORDS = '/^(transparent|currentColor)$/i'; private const PATTERN_RGB = '/^rgb\(\s*(0|255|25[0-4]|2[0-4]\d|1\d\d|0?\d?\d),\s*(0|255|25[0-4]|2[0-4]\d|1\d\d|0?\d?\d),\s*(0|255|25[0-4]|2[0-4]\d|1\d\d|0?\d?\d)\s*\)$/i'; private const PATTERN_RGBA = '/^rgba\(\s*(0|255|25[0-4]|2[0-4]\d|1\d\d|0?\d?\d),\s*(0|255|25[0-4]|2[0-4]\d|1\d\d|0?\d?\d),\s*(0|255|25[0-4]|2[0-4]\d|1\d\d|0?\d?\d),\s*(0|0?\.\d+|1(\.0)?)\s*\)$/i'; private const PATTERN_HSL = '/^hsl\(\s*(0|360|35\d|3[0-4]\d|[12]\d\d|0?\d?\d),\s*(0|100|\d{1,2})%,\s*(0|100|\d{1,2})%\s*\)$/i'; private const PATTERN_HSLA = '/^hsla\(\s*(0|360|35\d|3[0-4]\d|[12]\d\d|0?\d?\d),\s*(0|100|\d{1,2})%,\s*(0|100|\d{1,2})%,\s*(0|0?\.\d+|1(\.0)?)\s*\)$/i'; private const COLOR_PATTERNS = [ CssColor::HEX_LONG => self::PATTERN_HEX_LONG, CssColor::HEX_LONG_WITH_ALPHA => self::PATTERN_HEX_LONG_WITH_ALPHA, CssColor::HEX_SHORT => self::PATTERN_HEX_SHORT, CssColor::HEX_SHORT_WITH_ALPHA => self::PATTERN_HEX_SHORT_WITH_ALPHA, CssColor::BASIC_NAMED_COLORS => self::PATTERN_BASIC_NAMED_COLORS, CssColor::EXTENDED_NAMED_COLORS => self::PATTERN_EXTENDED_NAMED_COLORS, CssColor::SYSTEM_COLORS => self::PATTERN_SYSTEM_COLORS, CssColor::KEYWORDS => self::PATTERN_KEYWORDS, CssColor::RGB => self::PATTERN_RGB, CssColor::RGBA => self::PATTERN_RGBA, CssColor::HSL => self::PATTERN_HSL, CssColor::HSLA => self::PATTERN_HSLA, ]; /** * {@inheritdoc} */ public function validate($value, Constraint $constraint): void { if (!$constraint instanceof CssColor) { throw new UnexpectedTypeException($constraint, CssColor::class); } if (null === $value || '' === $value) { return; } if (!\is_string($value)) { throw new UnexpectedValueException($value, 'string'); } $formats = array_flip((array) $constraint->formats); $formatRegexes = array_intersect_key(self::COLOR_PATTERNS, $formats); foreach ($formatRegexes as $regex) { if (preg_match($regex, (string) $value)) { return; } } $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(CssColor::INVALID_FORMAT_ERROR) ->addViolation(); } } Constraints/Currency.php 0000644 00000002654 15120140576 0011366 0 ustar 00 <?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\Constraints; use Symfony\Component\Intl\Currencies; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\LogicException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Miha Vrhovnik <miha.vrhovnik@pagein.si> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Currency extends Constraint { public const NO_SUCH_CURRENCY_ERROR = '69945ac1-2db4-405f-bec7-d2772f73df52'; protected static $errorNames = [ self::NO_SUCH_CURRENCY_ERROR => 'NO_SUCH_CURRENCY_ERROR', ]; public $message = 'This value is not a valid currency.'; public function __construct(array $options = null, string $message = null, array $groups = null, $payload = null) { if (!class_exists(Currencies::class)) { throw new LogicException('The Intl component is required to use the Currency constraint. Try running "composer require symfony/intl".'); } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; } } Constraints/CurrencyValidator.php 0000644 00000003103 15120140576 0013222 0 ustar 00 <?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\Constraints; use Symfony\Component\Intl\Currencies; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * Validates whether a value is a valid currency. * * @author Miha Vrhovnik <miha.vrhovnik@pagein.si> * @author Bernhard Schussek <bschussek@gmail.com> */ class CurrencyValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Currency) { throw new UnexpectedTypeException($constraint, Currency::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if (!Currencies::exists($value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Currency::NO_SUCH_CURRENCY_ERROR) ->addViolation(); } } } Constraints/Date.php 0000644 00000002302 15120140576 0010437 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Date extends Constraint { public const INVALID_FORMAT_ERROR = '69819696-02ac-4a99-9ff0-14e127c4d1bc'; public const INVALID_DATE_ERROR = '3c184ce5-b31d-4de7-8b76-326da7b2be93'; protected static $errorNames = [ self::INVALID_FORMAT_ERROR => 'INVALID_FORMAT_ERROR', self::INVALID_DATE_ERROR => 'INVALID_DATE_ERROR', ]; public $message = 'This value is not a valid date.'; public function __construct(array $options = null, string $message = null, array $groups = null, $payload = null) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; } } Constraints/DateTime.php 0000644 00000003330 15120140576 0011260 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class DateTime extends Constraint { public const INVALID_FORMAT_ERROR = '1a9da513-2640-4f84-9b6a-4d99dcddc628'; public const INVALID_DATE_ERROR = 'd52afa47-620d-4d99-9f08-f4d85b36e33c'; public const INVALID_TIME_ERROR = '5e797c9d-74f7-4098-baa3-94390c447b27'; protected static $errorNames = [ self::INVALID_FORMAT_ERROR => 'INVALID_FORMAT_ERROR', self::INVALID_DATE_ERROR => 'INVALID_DATE_ERROR', self::INVALID_TIME_ERROR => 'INVALID_TIME_ERROR', ]; public $format = 'Y-m-d H:i:s'; public $message = 'This value is not a valid datetime.'; /** * {@inheritdoc} * * @param string|array|null $format */ public function __construct($format = null, string $message = null, array $groups = null, $payload = null, array $options = []) { if (\is_array($format)) { $options = array_merge($format, $options); } elseif (null !== $format) { $options['value'] = $format; } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; } public function getDefaultOption() { return 'format'; } } Constraints/DateTimeValidator.php 0000644 00000005404 15120140576 0013132 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Bernhard Schussek <bschussek@gmail.com> * @author Diego Saint Esteben <diego@saintesteben.me> */ class DateTimeValidator extends DateValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof DateTime) { throw new UnexpectedTypeException($constraint, DateTime::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; \DateTime::createFromFormat($constraint->format, $value); $errors = \DateTime::getLastErrors() ?: ['error_count' => 0, 'warnings' => []]; if (0 < $errors['error_count']) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(DateTime::INVALID_FORMAT_ERROR) ->addViolation(); return; } if (str_ends_with($constraint->format, '+')) { $errors['warnings'] = array_filter($errors['warnings'], function ($warning) { return 'Trailing data' !== $warning; }); } foreach ($errors['warnings'] as $warning) { if ('The parsed date was invalid' === $warning) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(DateTime::INVALID_DATE_ERROR) ->addViolation(); } elseif ('The parsed time was invalid' === $warning) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(DateTime::INVALID_TIME_ERROR) ->addViolation(); } else { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(DateTime::INVALID_FORMAT_ERROR) ->addViolation(); } } } } Constraints/DateValidator.php 0000644 00000004216 15120140576 0012313 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class DateValidator extends ConstraintValidator { public const PATTERN = '/^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/'; /** * Checks whether a date is valid. * * @internal */ public static function checkDate(int $year, int $month, int $day): bool { return checkdate($month, $day, $year); } /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Date) { throw new UnexpectedTypeException($constraint, Date::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if (!preg_match(static::PATTERN, $value, $matches)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Date::INVALID_FORMAT_ERROR) ->addViolation(); return; } if (!self::checkDate( $matches['year'] ?? $matches[1], $matches['month'] ?? $matches[2], $matches['day'] ?? $matches[3] )) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Date::INVALID_DATE_ERROR) ->addViolation(); } } } Constraints/DisableAutoMapping.php 0000644 00000002451 15120140576 0013277 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * Disables auto mapping. * * Using the annotations on a property has higher precedence than using it on a class, * which has higher precedence than any configuration that might be defined outside the class. * * @Annotation * * @author Kévin Dunglas <dunglas@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::TARGET_CLASS)] class DisableAutoMapping extends Constraint { public function __construct(array $options = null) { if (\is_array($options) && \array_key_exists('groups', $options)) { throw new ConstraintDefinitionException(sprintf('The option "groups" is not supported by the constraint "%s".', __CLASS__)); } parent::__construct($options); } /** * {@inheritdoc} */ public function getTargets() { return [self::PROPERTY_CONSTRAINT, self::CLASS_CONSTRAINT]; } } Constraints/DivisibleBy.php 0000644 00000001462 15120140576 0011775 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Colin O'Dell <colinodell@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class DivisibleBy extends AbstractComparison { public const NOT_DIVISIBLE_BY = '6d99d6c3-1464-4ccf-bdc7-14d083cf455c'; protected static $errorNames = [ self::NOT_DIVISIBLE_BY => 'NOT_DIVISIBLE_BY', ]; public $message = 'This value should be a multiple of {{ compared_value }}.'; } Constraints/DivisibleByValidator.php 0000644 00000003102 15120140576 0013634 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * Validates that values are a multiple of the given number. * * @author Colin O'Dell <colinodell@gmail.com> */ class DivisibleByValidator extends AbstractComparisonValidator { /** * {@inheritdoc} */ protected function compareValues($value1, $value2) { if (!is_numeric($value1)) { throw new UnexpectedValueException($value1, 'numeric'); } if (!is_numeric($value2)) { throw new UnexpectedValueException($value2, 'numeric'); } if (!$value2 = abs($value2)) { return false; } if (\is_int($value1 = abs($value1)) && \is_int($value2)) { return 0 === ($value1 % $value2); } if (!$remainder = fmod($value1, $value2)) { return true; } if (\is_float($value2) && \INF !== $value2) { $quotient = $value1 / $value2; $rounded = round($quotient); return sprintf('%.12e', $quotient) === sprintf('%.12e', $rounded); } return sprintf('%.12e', $value2) === sprintf('%.12e', $remainder); } /** * {@inheritdoc} */ protected function getErrorCode() { return DivisibleBy::NOT_DIVISIBLE_BY; } } Constraints/Email.php 0000644 00000005156 15120140576 0010623 0 ustar 00 <?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\Constraints; use Egulias\EmailValidator\EmailValidator as StrictEmailValidator; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\InvalidArgumentException; use Symfony\Component\Validator\Exception\LogicException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Email extends Constraint { public const VALIDATION_MODE_HTML5 = 'html5'; public const VALIDATION_MODE_STRICT = 'strict'; public const VALIDATION_MODE_LOOSE = 'loose'; public const INVALID_FORMAT_ERROR = 'bd79c0ab-ddba-46cc-a703-a7a4b08de310'; protected static $errorNames = [ self::INVALID_FORMAT_ERROR => 'STRICT_CHECK_FAILED_ERROR', ]; /** * @var string[] * * @internal */ public static $validationModes = [ self::VALIDATION_MODE_HTML5, self::VALIDATION_MODE_STRICT, self::VALIDATION_MODE_LOOSE, ]; public $message = 'This value is not a valid email address.'; public $mode; public $normalizer; public function __construct( array $options = null, string $message = null, string $mode = null, callable $normalizer = null, array $groups = null, $payload = null ) { if (\is_array($options) && \array_key_exists('mode', $options) && !\in_array($options['mode'], self::$validationModes, true)) { throw new InvalidArgumentException('The "mode" parameter value is not valid.'); } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->mode = $mode ?? $this->mode; $this->normalizer = $normalizer ?? $this->normalizer; if (self::VALIDATION_MODE_STRICT === $this->mode && !class_exists(StrictEmailValidator::class)) { throw new LogicException(sprintf('The "egulias/email-validator" component is required to use the "%s" constraint in strict mode.', __CLASS__)); } if (null !== $this->normalizer && !\is_callable($this->normalizer)) { throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer))); } } } Constraints/EmailValidator.php 0000644 00000010207 15120140576 0012462 0 ustar 00 <?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\Constraints; use Egulias\EmailValidator\EmailValidator as EguliasEmailValidator; use Egulias\EmailValidator\Validation\EmailValidation; use Egulias\EmailValidator\Validation\NoRFCWarningsValidation; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\LogicException; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class EmailValidator extends ConstraintValidator { private const PATTERN_HTML5 = '/^[a-zA-Z0-9.!#$%&\'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/'; private const PATTERN_LOOSE = '/^.+\@\S+\.\S+$/'; private const EMAIL_PATTERNS = [ Email::VALIDATION_MODE_LOOSE => self::PATTERN_LOOSE, Email::VALIDATION_MODE_HTML5 => self::PATTERN_HTML5, ]; private $defaultMode; public function __construct(string $defaultMode = Email::VALIDATION_MODE_LOOSE) { if (!\in_array($defaultMode, Email::$validationModes, true)) { throw new \InvalidArgumentException('The "defaultMode" parameter value is not valid.'); } $this->defaultMode = $defaultMode; } /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Email) { throw new UnexpectedTypeException($constraint, Email::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if ('' === $value) { return; } if (null !== $constraint->normalizer) { $value = ($constraint->normalizer)($value); } if (null === $constraint->mode) { if (Email::VALIDATION_MODE_STRICT === $this->defaultMode && !class_exists(EguliasEmailValidator::class)) { throw new LogicException(sprintf('The "egulias/email-validator" component is required to make the "%s" constraint default to strict mode.', Email::class)); } $constraint->mode = $this->defaultMode; } if (!\in_array($constraint->mode, Email::$validationModes, true)) { throw new \InvalidArgumentException(sprintf('The "%s::$mode" parameter value is not valid.', get_debug_type($constraint))); } if (Email::VALIDATION_MODE_STRICT === $constraint->mode) { $strictValidator = new EguliasEmailValidator(); if (interface_exists(EmailValidation::class) && !$strictValidator->isValid($value, new NoRFCWarningsValidation())) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Email::INVALID_FORMAT_ERROR) ->addViolation(); return; } elseif (!interface_exists(EmailValidation::class) && !$strictValidator->isValid($value, false, true)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Email::INVALID_FORMAT_ERROR) ->addViolation(); return; } } elseif (!preg_match(self::EMAIL_PATTERNS[$constraint->mode], $value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Email::INVALID_FORMAT_ERROR) ->addViolation(); return; } } } Constraints/EnableAutoMapping.php 0000644 00000002447 15120140576 0013127 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * Enables auto mapping. * * Using the annotations on a property has higher precedence than using it on a class, * which has higher precedence than any configuration that might be defined outside the class. * * @Annotation * * @author Kévin Dunglas <dunglas@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::TARGET_CLASS)] class EnableAutoMapping extends Constraint { public function __construct(array $options = null) { if (\is_array($options) && \array_key_exists('groups', $options)) { throw new ConstraintDefinitionException(sprintf('The option "groups" is not supported by the constraint "%s".', __CLASS__)); } parent::__construct($options); } /** * {@inheritdoc} */ public function getTargets() { return [self::PROPERTY_CONSTRAINT, self::CLASS_CONSTRAINT]; } } Constraints/EqualTo.php 0000644 00000001535 15120140576 0011143 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class EqualTo extends AbstractComparison { public const NOT_EQUAL_ERROR = '478618a7-95ba-473d-9101-cabd45e49115'; protected static $errorNames = [ self::NOT_EQUAL_ERROR => 'NOT_EQUAL_ERROR', ]; public $message = 'This value should be equal to {{ compared_value }}.'; } Constraints/EqualToValidator.php 0000644 00000001402 15120140576 0013002 0 ustar 00 <?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\Constraints; /** * Validates values are equal (==). * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ class EqualToValidator extends AbstractComparisonValidator { /** * {@inheritdoc} */ protected function compareValues($value1, $value2) { return $value1 == $value2; } /** * {@inheritdoc} */ protected function getErrorCode() { return EqualTo::NOT_EQUAL_ERROR; } } Constraints/Existence.php 0000644 00000001123 15120140576 0011511 0 ustar 00 <?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\Constraints; /** * @author Bernhard Schussek <bschussek@gmail.com> */ abstract class Existence extends Composite { public $constraints = []; public function getDefaultOption() { return 'constraints'; } protected function getCompositeOption() { return 'constraints'; } } Constraints/Expression.php 0000644 00000005523 15120140576 0011731 0 ustar 00 <?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\Constraints; use Symfony\Component\ExpressionLanguage\Expression as ExpressionObject; use Symfony\Component\ExpressionLanguage\ExpressionLanguage; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\LogicException; /** * @Annotation * @Target({"CLASS", "PROPERTY", "METHOD", "ANNOTATION"}) * * @author Fabien Potencier <fabien@symfony.com> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)] class Expression extends Constraint { public const EXPRESSION_FAILED_ERROR = '6b3befbc-2f01-4ddf-be21-b57898905284'; protected static $errorNames = [ self::EXPRESSION_FAILED_ERROR => 'EXPRESSION_FAILED_ERROR', ]; public $message = 'This value is not valid.'; public $expression; public $values = []; /** * {@inheritdoc} * * @param string|ExpressionObject|array $expression The expression to evaluate or an array of options */ public function __construct( $expression, string $message = null, array $values = null, array $groups = null, $payload = null, array $options = [] ) { if (!class_exists(ExpressionLanguage::class)) { throw new LogicException(sprintf('The "symfony/expression-language" component is required to use the "%s" constraint.', __CLASS__)); } if (\is_array($expression)) { $options = array_merge($expression, $options); } elseif (!\is_string($expression) && !$expression instanceof ExpressionObject) { throw new \TypeError(sprintf('"%s": Expected argument $expression to be either a string, an instance of "%s" or an array, got "%s".', __METHOD__, ExpressionObject::class, get_debug_type($expression))); } else { $options['value'] = $expression; } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->values = $values ?? $this->values; } /** * {@inheritdoc} */ public function getDefaultOption() { return 'expression'; } /** * {@inheritdoc} */ public function getRequiredOptions() { return ['expression']; } /** * {@inheritdoc} */ public function getTargets() { return [self::CLASS_CONSTRAINT, self::PROPERTY_CONSTRAINT]; } /** * {@inheritdoc} */ public function validatedBy() { return 'validator.expression'; } } Constraints/ExpressionLanguageSyntax.php 0000644 00000002773 15120140576 0014610 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Andrey Sevastianov <mrpkmail@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class ExpressionLanguageSyntax extends Constraint { public const EXPRESSION_LANGUAGE_SYNTAX_ERROR = '1766a3f3-ff03-40eb-b053-ab7aa23d988a'; protected static $errorNames = [ self::EXPRESSION_LANGUAGE_SYNTAX_ERROR => 'EXPRESSION_LANGUAGE_SYNTAX_ERROR', ]; public $message = 'This value should be a valid expression.'; public $service; public $allowedVariables; public function __construct(array $options = null, string $message = null, string $service = null, array $allowedVariables = null, array $groups = null, $payload = null) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->service = $service ?? $this->service; $this->allowedVariables = $allowedVariables ?? $this->allowedVariables; } /** * {@inheritdoc} */ public function validatedBy() { return $this->service ?? static::class.'Validator'; } } Constraints/ExpressionLanguageSyntaxValidator.php 0000644 00000003702 15120140577 0016450 0 ustar 00 <?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\Constraints; use Symfony\Component\ExpressionLanguage\ExpressionLanguage; use Symfony\Component\ExpressionLanguage\SyntaxError; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Andrey Sevastianov <mrpkmail@gmail.com> */ class ExpressionLanguageSyntaxValidator extends ConstraintValidator { private $expressionLanguage; public function __construct(ExpressionLanguage $expressionLanguage = null) { $this->expressionLanguage = $expressionLanguage; } /** * {@inheritdoc} */ public function validate($expression, Constraint $constraint): void { if (!$constraint instanceof ExpressionLanguageSyntax) { throw new UnexpectedTypeException($constraint, ExpressionLanguageSyntax::class); } if (!\is_string($expression)) { throw new UnexpectedValueException($expression, 'string'); } if (null === $this->expressionLanguage) { $this->expressionLanguage = new ExpressionLanguage(); } try { $this->expressionLanguage->lint($expression, $constraint->allowedVariables); } catch (SyntaxError $exception) { $this->context->buildViolation($constraint->message) ->setParameter('{{ syntax_error }}', $this->formatValue($exception->getMessage())) ->setInvalidValue((string) $expression) ->setCode(ExpressionLanguageSyntax::EXPRESSION_LANGUAGE_SYNTAX_ERROR) ->addViolation(); } } } Constraints/ExpressionValidator.php 0000644 00000003513 15120140577 0013575 0 ustar 00 <?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\Constraints; use Symfony\Component\ExpressionLanguage\ExpressionLanguage; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Fabien Potencier <fabien@symfony.com> * @author Bernhard Schussek <bschussek@symfony.com> */ class ExpressionValidator extends ConstraintValidator { private $expressionLanguage; public function __construct(ExpressionLanguage $expressionLanguage = null) { $this->expressionLanguage = $expressionLanguage; } /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Expression) { throw new UnexpectedTypeException($constraint, Expression::class); } $variables = $constraint->values; $variables['value'] = $value; $variables['this'] = $this->context->getObject(); if (!$this->getExpressionLanguage()->evaluate($constraint->expression, $variables)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value, self::OBJECT_TO_STRING)) ->setCode(Expression::EXPRESSION_FAILED_ERROR) ->addViolation(); } } private function getExpressionLanguage(): ExpressionLanguage { if (null === $this->expressionLanguage) { $this->expressionLanguage = new ExpressionLanguage(); } return $this->expressionLanguage; } } Constraints/File.php 0000644 00000016063 15120140577 0010453 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @property int $maxSize * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class File extends Constraint { // Check the Image constraint for clashes if adding new constants here public const NOT_FOUND_ERROR = 'd2a3fb6e-7ddc-4210-8fbf-2ab345ce1998'; public const NOT_READABLE_ERROR = 'c20c92a4-5bfa-4202-9477-28e800e0f6ff'; public const EMPTY_ERROR = '5d743385-9775-4aa5-8ff5-495fb1e60137'; public const TOO_LARGE_ERROR = 'df8637af-d466-48c6-a59d-e7126250a654'; public const INVALID_MIME_TYPE_ERROR = '744f00bc-4389-4c74-92de-9a43cde55534'; protected static $errorNames = [ self::NOT_FOUND_ERROR => 'NOT_FOUND_ERROR', self::NOT_READABLE_ERROR => 'NOT_READABLE_ERROR', self::EMPTY_ERROR => 'EMPTY_ERROR', self::TOO_LARGE_ERROR => 'TOO_LARGE_ERROR', self::INVALID_MIME_TYPE_ERROR => 'INVALID_MIME_TYPE_ERROR', ]; public $binaryFormat; public $mimeTypes = []; public $notFoundMessage = 'The file could not be found.'; public $notReadableMessage = 'The file is not readable.'; public $maxSizeMessage = 'The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.'; public $mimeTypesMessage = 'The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.'; public $disallowEmptyMessage = 'An empty file is not allowed.'; public $uploadIniSizeErrorMessage = 'The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.'; public $uploadFormSizeErrorMessage = 'The file is too large.'; public $uploadPartialErrorMessage = 'The file was only partially uploaded.'; public $uploadNoFileErrorMessage = 'No file was uploaded.'; public $uploadNoTmpDirErrorMessage = 'No temporary folder was configured in php.ini.'; public $uploadCantWriteErrorMessage = 'Cannot write temporary file to disk.'; public $uploadExtensionErrorMessage = 'A PHP extension caused the upload to fail.'; public $uploadErrorMessage = 'The file could not be uploaded.'; protected $maxSize; /** * {@inheritdoc} * * @param int|string|null $maxSize * @param string[]|string|null $mimeTypes */ public function __construct( array $options = null, $maxSize = null, bool $binaryFormat = null, $mimeTypes = null, string $notFoundMessage = null, string $notReadableMessage = null, string $maxSizeMessage = null, string $mimeTypesMessage = null, string $disallowEmptyMessage = null, string $uploadIniSizeErrorMessage = null, string $uploadFormSizeErrorMessage = null, string $uploadPartialErrorMessage = null, string $uploadNoFileErrorMessage = null, string $uploadNoTmpDirErrorMessage = null, string $uploadCantWriteErrorMessage = null, string $uploadExtensionErrorMessage = null, string $uploadErrorMessage = null, array $groups = null, $payload = null ) { if (null !== $maxSize && !\is_int($maxSize) && !\is_string($maxSize)) { throw new \TypeError(sprintf('"%s": Expected argument $maxSize to be either null, an integer or a string, got "%s".', __METHOD__, get_debug_type($maxSize))); } if (null !== $mimeTypes && !\is_array($mimeTypes) && !\is_string($mimeTypes)) { throw new \TypeError(sprintf('"%s": Expected argument $mimeTypes to be either null, an array or a string, got "%s".', __METHOD__, get_debug_type($mimeTypes))); } parent::__construct($options, $groups, $payload); $this->maxSize = $maxSize ?? $this->maxSize; $this->binaryFormat = $binaryFormat ?? $this->binaryFormat; $this->mimeTypes = $mimeTypes ?? $this->mimeTypes; $this->notFoundMessage = $notFoundMessage ?? $this->notFoundMessage; $this->notReadableMessage = $notReadableMessage ?? $this->notReadableMessage; $this->maxSizeMessage = $maxSizeMessage ?? $this->maxSizeMessage; $this->mimeTypesMessage = $mimeTypesMessage ?? $this->mimeTypesMessage; $this->disallowEmptyMessage = $disallowEmptyMessage ?? $this->disallowEmptyMessage; $this->uploadIniSizeErrorMessage = $uploadIniSizeErrorMessage ?? $this->uploadIniSizeErrorMessage; $this->uploadFormSizeErrorMessage = $uploadFormSizeErrorMessage ?? $this->uploadFormSizeErrorMessage; $this->uploadPartialErrorMessage = $uploadPartialErrorMessage ?? $this->uploadPartialErrorMessage; $this->uploadNoFileErrorMessage = $uploadNoFileErrorMessage ?? $this->uploadNoFileErrorMessage; $this->uploadNoTmpDirErrorMessage = $uploadNoTmpDirErrorMessage ?? $this->uploadNoTmpDirErrorMessage; $this->uploadCantWriteErrorMessage = $uploadCantWriteErrorMessage ?? $this->uploadCantWriteErrorMessage; $this->uploadExtensionErrorMessage = $uploadExtensionErrorMessage ?? $this->uploadExtensionErrorMessage; $this->uploadErrorMessage = $uploadErrorMessage ?? $this->uploadErrorMessage; if (null !== $this->maxSize) { $this->normalizeBinaryFormat($this->maxSize); } } public function __set(string $option, $value) { if ('maxSize' === $option) { $this->normalizeBinaryFormat($value); return; } parent::__set($option, $value); } public function __get(string $option) { if ('maxSize' === $option) { return $this->maxSize; } return parent::__get($option); } public function __isset(string $option) { if ('maxSize' === $option) { return true; } return parent::__isset($option); } /** * @param int|string $maxSize */ private function normalizeBinaryFormat($maxSize) { $factors = [ 'k' => 1000, 'ki' => 1 << 10, 'm' => 1000 * 1000, 'mi' => 1 << 20, 'g' => 1000 * 1000 * 1000, 'gi' => 1 << 30, ]; if (ctype_digit((string) $maxSize)) { $this->maxSize = (int) $maxSize; $this->binaryFormat = $this->binaryFormat ?? false; } elseif (preg_match('/^(\d++)('.implode('|', array_keys($factors)).')$/i', $maxSize, $matches)) { $this->maxSize = $matches[1] * $factors[$unit = strtolower($matches[2])]; $this->binaryFormat = $this->binaryFormat ?? (2 === \strlen($unit)); } else { throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum size.', $maxSize)); } } } Constraints/FileValidator.php 0000644 00000022755 15120140577 0012326 0 ustar 00 <?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\Constraints; use Symfony\Component\HttpFoundation\File\File as FileObject; use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\Mime\MimeTypes; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\LogicException; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class FileValidator extends ConstraintValidator { public const KB_BYTES = 1000; public const MB_BYTES = 1000000; public const KIB_BYTES = 1024; public const MIB_BYTES = 1048576; private const SUFFICES = [ 1 => 'bytes', self::KB_BYTES => 'kB', self::MB_BYTES => 'MB', self::KIB_BYTES => 'KiB', self::MIB_BYTES => 'MiB', ]; /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof File) { throw new UnexpectedTypeException($constraint, File::class); } if (null === $value || '' === $value) { return; } if ($value instanceof UploadedFile && !$value->isValid()) { switch ($value->getError()) { case \UPLOAD_ERR_INI_SIZE: $iniLimitSize = UploadedFile::getMaxFilesize(); if ($constraint->maxSize && $constraint->maxSize < $iniLimitSize) { $limitInBytes = $constraint->maxSize; $binaryFormat = $constraint->binaryFormat; } else { $limitInBytes = $iniLimitSize; $binaryFormat = $constraint->binaryFormat ?? true; } [, $limitAsString, $suffix] = $this->factorizeSizes(0, $limitInBytes, $binaryFormat); $this->context->buildViolation($constraint->uploadIniSizeErrorMessage) ->setParameter('{{ limit }}', $limitAsString) ->setParameter('{{ suffix }}', $suffix) ->setCode((string) \UPLOAD_ERR_INI_SIZE) ->addViolation(); return; case \UPLOAD_ERR_FORM_SIZE: $this->context->buildViolation($constraint->uploadFormSizeErrorMessage) ->setCode((string) \UPLOAD_ERR_FORM_SIZE) ->addViolation(); return; case \UPLOAD_ERR_PARTIAL: $this->context->buildViolation($constraint->uploadPartialErrorMessage) ->setCode((string) \UPLOAD_ERR_PARTIAL) ->addViolation(); return; case \UPLOAD_ERR_NO_FILE: $this->context->buildViolation($constraint->uploadNoFileErrorMessage) ->setCode((string) \UPLOAD_ERR_NO_FILE) ->addViolation(); return; case \UPLOAD_ERR_NO_TMP_DIR: $this->context->buildViolation($constraint->uploadNoTmpDirErrorMessage) ->setCode((string) \UPLOAD_ERR_NO_TMP_DIR) ->addViolation(); return; case \UPLOAD_ERR_CANT_WRITE: $this->context->buildViolation($constraint->uploadCantWriteErrorMessage) ->setCode((string) \UPLOAD_ERR_CANT_WRITE) ->addViolation(); return; case \UPLOAD_ERR_EXTENSION: $this->context->buildViolation($constraint->uploadExtensionErrorMessage) ->setCode((string) \UPLOAD_ERR_EXTENSION) ->addViolation(); return; default: $this->context->buildViolation($constraint->uploadErrorMessage) ->setCode((string) $value->getError()) ->addViolation(); return; } } if (!\is_scalar($value) && !$value instanceof FileObject && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $path = $value instanceof FileObject ? $value->getPathname() : (string) $value; if (!is_file($path)) { $this->context->buildViolation($constraint->notFoundMessage) ->setParameter('{{ file }}', $this->formatValue($path)) ->setCode(File::NOT_FOUND_ERROR) ->addViolation(); return; } if (!is_readable($path)) { $this->context->buildViolation($constraint->notReadableMessage) ->setParameter('{{ file }}', $this->formatValue($path)) ->setCode(File::NOT_READABLE_ERROR) ->addViolation(); return; } $sizeInBytes = filesize($path); $basename = $value instanceof UploadedFile ? $value->getClientOriginalName() : basename($path); if (0 === $sizeInBytes) { $this->context->buildViolation($constraint->disallowEmptyMessage) ->setParameter('{{ file }}', $this->formatValue($path)) ->setParameter('{{ name }}', $this->formatValue($basename)) ->setCode(File::EMPTY_ERROR) ->addViolation(); return; } if ($constraint->maxSize) { $limitInBytes = $constraint->maxSize; if ($sizeInBytes > $limitInBytes) { [$sizeAsString, $limitAsString, $suffix] = $this->factorizeSizes($sizeInBytes, $limitInBytes, $constraint->binaryFormat); $this->context->buildViolation($constraint->maxSizeMessage) ->setParameter('{{ file }}', $this->formatValue($path)) ->setParameter('{{ size }}', $sizeAsString) ->setParameter('{{ limit }}', $limitAsString) ->setParameter('{{ suffix }}', $suffix) ->setParameter('{{ name }}', $this->formatValue($basename)) ->setCode(File::TOO_LARGE_ERROR) ->addViolation(); return; } } if ($constraint->mimeTypes) { if ($value instanceof FileObject) { $mime = $value->getMimeType(); } elseif (class_exists(MimeTypes::class)) { $mime = MimeTypes::getDefault()->guessMimeType($path); } elseif (!class_exists(FileObject::class)) { throw new LogicException('You cannot validate the mime-type of files as the Mime component is not installed. Try running "composer require symfony/mime".'); } else { $mime = (new FileObject($value))->getMimeType(); } $mimeTypes = (array) $constraint->mimeTypes; foreach ($mimeTypes as $mimeType) { if ($mimeType === $mime) { return; } if ($discrete = strstr($mimeType, '/*', true)) { if (strstr($mime, '/', true) === $discrete) { return; } } } $this->context->buildViolation($constraint->mimeTypesMessage) ->setParameter('{{ file }}', $this->formatValue($path)) ->setParameter('{{ type }}', $this->formatValue($mime)) ->setParameter('{{ types }}', $this->formatValues($mimeTypes)) ->setParameter('{{ name }}', $this->formatValue($basename)) ->setCode(File::INVALID_MIME_TYPE_ERROR) ->addViolation(); } } private static function moreDecimalsThan(string $double, int $numberOfDecimals): bool { return \strlen($double) > \strlen(round($double, $numberOfDecimals)); } /** * Convert the limit to the smallest possible number * (i.e. try "MB", then "kB", then "bytes"). * * @param int|float $limit */ private function factorizeSizes(int $size, $limit, bool $binaryFormat): array { if ($binaryFormat) { $coef = self::MIB_BYTES; $coefFactor = self::KIB_BYTES; } else { $coef = self::MB_BYTES; $coefFactor = self::KB_BYTES; } $limitAsString = (string) ($limit / $coef); // Restrict the limit to 2 decimals (without rounding! we // need the precise value) while (self::moreDecimalsThan($limitAsString, 2)) { $coef /= $coefFactor; $limitAsString = (string) ($limit / $coef); } // Convert size to the same measure, but round to 2 decimals $sizeAsString = (string) round($size / $coef, 2); // If the size and limit produce the same string output // (due to rounding), reduce the coefficient while ($sizeAsString === $limitAsString) { $coef /= $coefFactor; $limitAsString = (string) ($limit / $coef); $sizeAsString = (string) round($size / $coef, 2); } return [$sizeAsString, $limitAsString, self::SUFFICES[$coef]]; } } Constraints/GreaterThan.php 0000644 00000001537 15120140577 0012000 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class GreaterThan extends AbstractComparison { public const TOO_LOW_ERROR = '778b7ae0-84d3-481a-9dec-35fdb64b1d78'; protected static $errorNames = [ self::TOO_LOW_ERROR => 'TOO_LOW_ERROR', ]; public $message = 'This value should be greater than {{ compared_value }}.'; } Constraints/GreaterThanOrEqual.php 0000644 00000001562 15120140577 0013267 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class GreaterThanOrEqual extends AbstractComparison { public const TOO_LOW_ERROR = 'ea4e51d1-3342-48bd-87f1-9e672cd90cad'; protected static $errorNames = [ self::TOO_LOW_ERROR => 'TOO_LOW_ERROR', ]; public $message = 'This value should be greater than or equal to {{ compared_value }}.'; } Constraints/GreaterThanOrEqualValidator.php 0000644 00000001512 15120140577 0015130 0 ustar 00 <?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\Constraints; /** * Validates values are greater than or equal to the previous (>=). * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ class GreaterThanOrEqualValidator extends AbstractComparisonValidator { /** * {@inheritdoc} */ protected function compareValues($value1, $value2) { return null === $value2 || $value1 >= $value2; } /** * {@inheritdoc} */ protected function getErrorCode() { return GreaterThanOrEqual::TOO_LOW_ERROR; } } Constraints/GreaterThanValidator.php 0000644 00000001456 15120140577 0013646 0 ustar 00 <?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\Constraints; /** * Validates values are greater than the previous (>). * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ class GreaterThanValidator extends AbstractComparisonValidator { /** * {@inheritdoc} */ protected function compareValues($value1, $value2) { return null === $value2 || $value1 > $value2; } /** * {@inheritdoc} */ protected function getErrorCode() { return GreaterThan::TOO_LOW_ERROR; } } Constraints/GroupSequence.php 0000644 00000005300 15120140577 0012351 0 ustar 00 <?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\Constraints; /** * A sequence of validation groups. * * When validating a group sequence, each group will only be validated if all * of the previous groups in the sequence succeeded. For example: * * $validator->validate($address, null, new GroupSequence(['Basic', 'Strict'])); * * In the first step, all constraints that belong to the group "Basic" will be * validated. If none of the constraints fail, the validator will then validate * the constraints in group "Strict". This is useful, for example, if "Strict" * contains expensive checks that require a lot of CPU or slow, external * services. You usually don't want to run expensive checks if any of the cheap * checks fail. * * When adding metadata to a class, you can override the "Default" group of * that class with a group sequence: * /** * * @GroupSequence({"Address", "Strict"}) * *\/ * class Address * { * // ... * } * * Whenever you validate that object in the "Default" group, the group sequence * will be validated: * * $validator->validate($address); * * If you want to execute the constraints of the "Default" group for a class * with an overridden default group, pass the class name as group name instead: * * $validator->validate($address, null, "Address") * * @Annotation * @Target({"CLASS", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_CLASS)] class GroupSequence { /** * The groups in the sequence. * * @var array<int, string|string[]|GroupSequence> */ public $groups; /** * The group in which cascaded objects are validated when validating * this sequence. * * By default, cascaded objects are validated in each of the groups of * the sequence. * * If a class has a group sequence attached, that sequence replaces the * "Default" group. When validating that class in the "Default" group, the * group sequence is used instead, but still the "Default" group should be * cascaded to other objects. * * @var string|GroupSequence */ public $cascadedGroup; /** * Creates a new group sequence. * * @param array<string|string[]|GroupSequence> $groups The groups in the sequence */ public function __construct(array $groups) { // Support for Doctrine annotations $this->groups = $groups['value'] ?? $groups; } } Constraints/GroupSequenceProvider.php 0000644 00000001021 15120140577 0014060 0 ustar 00 <?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\Constraints; /** * Annotation to define a group sequence provider. * * @Annotation * @Target({"CLASS", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_CLASS)] class GroupSequenceProvider { } Constraints/Hostname.php 0000644 00000002350 15120140577 0011344 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Dmitrii Poddubnyi <dpoddubny@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Hostname extends Constraint { public const INVALID_HOSTNAME_ERROR = '7057ffdb-0af4-4f7e-bd5e-e9acfa6d7a2d'; protected static $errorNames = [ self::INVALID_HOSTNAME_ERROR => 'INVALID_HOSTNAME_ERROR', ]; public $message = 'This value is not a valid hostname.'; public $requireTld = true; public function __construct( array $options = null, string $message = null, bool $requireTld = null, array $groups = null, $payload = null ) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->requireTld = $requireTld ?? $this->requireTld; } } Constraints/HostnameValidator.php 0000644 00000004032 15120140577 0013211 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Dmitrii Poddubnyi <dpoddubny@gmail.com> */ class HostnameValidator extends ConstraintValidator { /** * https://tools.ietf.org/html/rfc2606. */ private const RESERVED_TLDS = [ 'example', 'invalid', 'localhost', 'test', ]; public function validate($value, Constraint $constraint) { if (!$constraint instanceof Hostname) { throw new UnexpectedTypeException($constraint, Hostname::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if ('' === $value) { return; } if (!$this->isValid($value) || ($constraint->requireTld && !$this->hasValidTld($value))) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Hostname::INVALID_HOSTNAME_ERROR) ->addViolation(); } } private function isValid(string $domain): bool { return false !== filter_var($domain, \FILTER_VALIDATE_DOMAIN, \FILTER_FLAG_HOSTNAME); } private function hasValidTld(string $domain): bool { return false !== strpos($domain, '.') && !\in_array(substr($domain, strrpos($domain, '.') + 1), self::RESERVED_TLDS, true); } } Constraints/Iban.php 0000644 00000003435 15120140577 0010444 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Manuel Reinhard <manu@sprain.ch> * @author Michael Schummel * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Iban extends Constraint { public const INVALID_COUNTRY_CODE_ERROR = 'de78ee2c-bd50-44e2-aec8-3d8228aeadb9'; public const INVALID_CHARACTERS_ERROR = '8d3d85e4-784f-4719-a5bc-d9e40d45a3a5'; public const CHECKSUM_FAILED_ERROR = 'b9401321-f9bf-4dcb-83c1-f31094440795'; public const INVALID_FORMAT_ERROR = 'c8d318f1-2ecc-41ba-b983-df70d225cf5a'; public const NOT_SUPPORTED_COUNTRY_CODE_ERROR = 'e2c259f3-4b46-48e6-b72e-891658158ec8'; protected static $errorNames = [ self::INVALID_COUNTRY_CODE_ERROR => 'INVALID_COUNTRY_CODE_ERROR', self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR', self::CHECKSUM_FAILED_ERROR => 'CHECKSUM_FAILED_ERROR', self::INVALID_FORMAT_ERROR => 'INVALID_FORMAT_ERROR', self::NOT_SUPPORTED_COUNTRY_CODE_ERROR => 'NOT_SUPPORTED_COUNTRY_CODE_ERROR', ]; public $message = 'This is not a valid International Bank Account Number (IBAN).'; public function __construct(array $options = null, string $message = null, array $groups = null, $payload = null) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; } } Constraints/IbanValidator.php 0000644 00000030232 15120140577 0012305 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Manuel Reinhard <manu@sprain.ch> * @author Michael Schummel * @author Bernhard Schussek <bschussek@gmail.com> */ class IbanValidator extends ConstraintValidator { /** * IBAN country specific formats. * * The first 2 characters from an IBAN format are the two-character ISO country code. * The following 2 characters represent the check digits calculated from the rest of the IBAN characters. * The rest are up to thirty alphanumeric characters for * a BBAN (Basic Bank Account Number) which has a fixed length per country and, * included within it, a bank identifier with a fixed position and a fixed length per country * * @see Resources/bin/sync-iban-formats.php * @see https://www.swift.com/swift-resource/11971/download?language=en * @see https://en.wikipedia.org/wiki/International_Bank_Account_Number */ private const FORMATS = [ // auto-generated 'AD' => 'AD\d{2}\d{4}\d{4}[\dA-Z]{12}', // Andorra 'AE' => 'AE\d{2}\d{3}\d{16}', // United Arab Emirates (The) 'AL' => 'AL\d{2}\d{8}[\dA-Z]{16}', // Albania 'AO' => 'AO\d{2}\d{21}', // Angola 'AT' => 'AT\d{2}\d{5}\d{11}', // Austria 'AX' => 'FI\d{2}\d{3}\d{11}', // Finland 'AZ' => 'AZ\d{2}[A-Z]{4}[\dA-Z]{20}', // Azerbaijan 'BA' => 'BA\d{2}\d{3}\d{3}\d{8}\d{2}', // Bosnia and Herzegovina 'BE' => 'BE\d{2}\d{3}\d{7}\d{2}', // Belgium 'BF' => 'BF\d{2}[\dA-Z]{2}\d{22}', // Burkina Faso 'BG' => 'BG\d{2}[A-Z]{4}\d{4}\d{2}[\dA-Z]{8}', // Bulgaria 'BH' => 'BH\d{2}[A-Z]{4}[\dA-Z]{14}', // Bahrain 'BI' => 'BI\d{2}\d{5}\d{5}\d{11}\d{2}', // Burundi 'BJ' => 'BJ\d{2}[\dA-Z]{2}\d{22}', // Benin 'BL' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'BR' => 'BR\d{2}\d{8}\d{5}\d{10}[A-Z]{1}[\dA-Z]{1}', // Brazil 'BY' => 'BY\d{2}[\dA-Z]{4}\d{4}[\dA-Z]{16}', // Republic of Belarus 'CF' => 'CF\d{2}\d{23}', // Central African Republic 'CG' => 'CG\d{2}\d{23}', // Congo, Republic of the 'CH' => 'CH\d{2}\d{5}[\dA-Z]{12}', // Switzerland 'CI' => 'CI\d{2}[A-Z]{1}\d{23}', // Côte d'Ivoire 'CM' => 'CM\d{2}\d{23}', // Cameroon 'CR' => 'CR\d{2}\d{4}\d{14}', // Costa Rica 'CV' => 'CV\d{2}\d{21}', // Cabo Verde 'CY' => 'CY\d{2}\d{3}\d{5}[\dA-Z]{16}', // Cyprus 'CZ' => 'CZ\d{2}\d{4}\d{6}\d{10}', // Czechia 'DE' => 'DE\d{2}\d{8}\d{10}', // Germany 'DJ' => 'DJ\d{2}\d{5}\d{5}\d{11}\d{2}', // Djibouti 'DK' => 'DK\d{2}\d{4}\d{9}\d{1}', // Denmark 'DO' => 'DO\d{2}[\dA-Z]{4}\d{20}', // Dominican Republic 'DZ' => 'DZ\d{2}\d{22}', // Algeria 'EE' => 'EE\d{2}\d{2}\d{2}\d{11}\d{1}', // Estonia 'EG' => 'EG\d{2}\d{4}\d{4}\d{17}', // Egypt 'ES' => 'ES\d{2}\d{4}\d{4}\d{1}\d{1}\d{10}', // Spain 'FI' => 'FI\d{2}\d{3}\d{11}', // Finland 'FO' => 'FO\d{2}\d{4}\d{9}\d{1}', // Faroe Islands 'FR' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'GA' => 'GA\d{2}\d{23}', // Gabon 'GB' => 'GB\d{2}[A-Z]{4}\d{6}\d{8}', // United Kingdom 'GE' => 'GE\d{2}[A-Z]{2}\d{16}', // Georgia 'GF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'GG' => 'GB\d{2}[A-Z]{4}\d{6}\d{8}', // United Kingdom 'GI' => 'GI\d{2}[A-Z]{4}[\dA-Z]{15}', // Gibraltar 'GL' => 'GL\d{2}\d{4}\d{9}\d{1}', // Greenland 'GP' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'GQ' => 'GQ\d{2}\d{23}', // Equatorial Guinea 'GR' => 'GR\d{2}\d{3}\d{4}[\dA-Z]{16}', // Greece 'GT' => 'GT\d{2}[\dA-Z]{4}[\dA-Z]{20}', // Guatemala 'GW' => 'GW\d{2}[\dA-Z]{2}\d{19}', // Guinea-Bissau 'HN' => 'HN\d{2}[A-Z]{4}\d{20}', // Honduras 'HR' => 'HR\d{2}\d{7}\d{10}', // Croatia 'HU' => 'HU\d{2}\d{3}\d{4}\d{1}\d{15}\d{1}', // Hungary 'IE' => 'IE\d{2}[A-Z]{4}\d{6}\d{8}', // Ireland 'IL' => 'IL\d{2}\d{3}\d{3}\d{13}', // Israel 'IM' => 'GB\d{2}[A-Z]{4}\d{6}\d{8}', // United Kingdom 'IQ' => 'IQ\d{2}[A-Z]{4}\d{3}\d{12}', // Iraq 'IR' => 'IR\d{2}\d{22}', // Iran 'IS' => 'IS\d{2}\d{4}\d{2}\d{6}\d{10}', // Iceland 'IT' => 'IT\d{2}[A-Z]{1}\d{5}\d{5}[\dA-Z]{12}', // Italy 'JE' => 'GB\d{2}[A-Z]{4}\d{6}\d{8}', // United Kingdom 'JO' => 'JO\d{2}[A-Z]{4}\d{4}[\dA-Z]{18}', // Jordan 'KM' => 'KM\d{2}\d{23}', // Comoros 'KW' => 'KW\d{2}[A-Z]{4}[\dA-Z]{22}', // Kuwait 'KZ' => 'KZ\d{2}\d{3}[\dA-Z]{13}', // Kazakhstan 'LB' => 'LB\d{2}\d{4}[\dA-Z]{20}', // Lebanon 'LC' => 'LC\d{2}[A-Z]{4}[\dA-Z]{24}', // Saint Lucia 'LI' => 'LI\d{2}\d{5}[\dA-Z]{12}', // Liechtenstein 'LT' => 'LT\d{2}\d{5}\d{11}', // Lithuania 'LU' => 'LU\d{2}\d{3}[\dA-Z]{13}', // Luxembourg 'LV' => 'LV\d{2}[A-Z]{4}[\dA-Z]{13}', // Latvia 'LY' => 'LY\d{2}\d{3}\d{3}\d{15}', // Libya 'MA' => 'MA\d{2}\d{24}', // Morocco 'MC' => 'MC\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // Monaco 'MD' => 'MD\d{2}[\dA-Z]{2}[\dA-Z]{18}', // Moldova 'ME' => 'ME\d{2}\d{3}\d{13}\d{2}', // Montenegro 'MF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'MG' => 'MG\d{2}\d{23}', // Madagascar 'MK' => 'MK\d{2}\d{3}[\dA-Z]{10}\d{2}', // Macedonia 'ML' => 'ML\d{2}[\dA-Z]{2}\d{22}', // Mali 'MQ' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'MR' => 'MR\d{2}\d{5}\d{5}\d{11}\d{2}', // Mauritania 'MT' => 'MT\d{2}[A-Z]{4}\d{5}[\dA-Z]{18}', // Malta 'MU' => 'MU\d{2}[A-Z]{4}\d{2}\d{2}\d{12}\d{3}[A-Z]{3}', // Mauritius 'MZ' => 'MZ\d{2}\d{21}', // Mozambique 'NC' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'NE' => 'NE\d{2}[A-Z]{2}\d{22}', // Niger 'NI' => 'NI\d{2}[A-Z]{4}\d{24}', // Nicaragua 'NL' => 'NL\d{2}[A-Z]{4}\d{10}', // Netherlands (The) 'NO' => 'NO\d{2}\d{4}\d{6}\d{1}', // Norway 'PF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'PK' => 'PK\d{2}[A-Z]{4}[\dA-Z]{16}', // Pakistan 'PL' => 'PL\d{2}\d{8}\d{16}', // Poland 'PM' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'PS' => 'PS\d{2}[A-Z]{4}[\dA-Z]{21}', // Palestine, State of 'PT' => 'PT\d{2}\d{4}\d{4}\d{11}\d{2}', // Portugal 'QA' => 'QA\d{2}[A-Z]{4}[\dA-Z]{21}', // Qatar 'RE' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'RO' => 'RO\d{2}[A-Z]{4}[\dA-Z]{16}', // Romania 'RS' => 'RS\d{2}\d{3}\d{13}\d{2}', // Serbia 'RU' => 'RU\d{2}\d{9}\d{5}[\dA-Z]{15}', // Russia 'SA' => 'SA\d{2}\d{2}[\dA-Z]{18}', // Saudi Arabia 'SC' => 'SC\d{2}[A-Z]{4}\d{2}\d{2}\d{16}[A-Z]{3}', // Seychelles 'SD' => 'SD\d{2}\d{2}\d{12}', // Sudan 'SE' => 'SE\d{2}\d{3}\d{16}\d{1}', // Sweden 'SI' => 'SI\d{2}\d{5}\d{8}\d{2}', // Slovenia 'SK' => 'SK\d{2}\d{4}\d{6}\d{10}', // Slovakia 'SM' => 'SM\d{2}[A-Z]{1}\d{5}\d{5}[\dA-Z]{12}', // San Marino 'SN' => 'SN\d{2}[A-Z]{2}\d{22}', // Senegal 'SO' => 'SO\d{2}\d{4}\d{3}\d{12}', // Somalia 'ST' => 'ST\d{2}\d{4}\d{4}\d{11}\d{2}', // Sao Tome and Principe 'SV' => 'SV\d{2}[A-Z]{4}\d{20}', // El Salvador 'TD' => 'TD\d{2}\d{23}', // Chad 'TF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'TG' => 'TG\d{2}[A-Z]{2}\d{22}', // Togo 'TL' => 'TL\d{2}\d{3}\d{14}\d{2}', // Timor-Leste 'TN' => 'TN\d{2}\d{2}\d{3}\d{13}\d{2}', // Tunisia 'TR' => 'TR\d{2}\d{5}\d{1}[\dA-Z]{16}', // Turkey 'UA' => 'UA\d{2}\d{6}[\dA-Z]{19}', // Ukraine 'VA' => 'VA\d{2}\d{3}\d{15}', // Vatican City State 'VG' => 'VG\d{2}[A-Z]{4}\d{16}', // Virgin Islands 'WF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'XK' => 'XK\d{2}\d{4}\d{10}\d{2}', // Kosovo 'YT' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France ]; /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Iban) { throw new UnexpectedTypeException($constraint, Iban::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; // Remove spaces and convert to uppercase $canonicalized = str_replace(' ', '', strtoupper($value)); // The IBAN must contain only digits and characters... if (!ctype_alnum($canonicalized)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Iban::INVALID_CHARACTERS_ERROR) ->addViolation(); return; } // ...start with a two-letter country code $countryCode = substr($canonicalized, 0, 2); if (!ctype_alpha($countryCode)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Iban::INVALID_COUNTRY_CODE_ERROR) ->addViolation(); return; } // ...have a format available if (!\array_key_exists($countryCode, self::FORMATS)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Iban::NOT_SUPPORTED_COUNTRY_CODE_ERROR) ->addViolation(); return; } // ...and have a valid format if (!preg_match('/^'.self::FORMATS[$countryCode].'$/', $canonicalized) ) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Iban::INVALID_FORMAT_ERROR) ->addViolation(); return; } // Move the first four characters to the end // e.g. CH93 0076 2011 6238 5295 7 // -> 0076 2011 6238 5295 7 CH93 $canonicalized = substr($canonicalized, 4).substr($canonicalized, 0, 4); // Convert all remaining letters to their ordinals // The result is an integer, which is too large for PHP's int // data type, so we store it in a string instead. // e.g. 0076 2011 6238 5295 7 CH93 // -> 0076 2011 6238 5295 7 121893 $checkSum = self::toBigInt($canonicalized); // Do a modulo-97 operation on the large integer // We cannot use PHP's modulo operator, so we calculate the // modulo step-wisely instead if (1 !== self::bigModulo97($checkSum)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Iban::CHECKSUM_FAILED_ERROR) ->addViolation(); } } private static function toBigInt(string $string): string { $chars = str_split($string); $bigInt = ''; foreach ($chars as $char) { // Convert uppercase characters to ordinals, starting with 10 for "A" if (ctype_upper($char)) { $bigInt .= (\ord($char) - 55); continue; } // Simply append digits $bigInt .= $char; } return $bigInt; } private static function bigModulo97(string $bigInt): int { $parts = str_split($bigInt, 7); $rest = 0; foreach ($parts as $part) { $rest = ($rest.$part) % 97; } return $rest; } } Constraints/IdenticalTo.php 0000644 00000001613 15120140577 0011766 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class IdenticalTo extends AbstractComparison { public const NOT_IDENTICAL_ERROR = '2a8cc50f-58a2-4536-875e-060a2ce69ed5'; protected static $errorNames = [ self::NOT_IDENTICAL_ERROR => 'NOT_IDENTICAL_ERROR', ]; public $message = 'This value should be identical to {{ compared_value_type }} {{ compared_value }}.'; } Constraints/IdenticalToValidator.php 0000644 00000001424 15120140577 0013634 0 ustar 00 <?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\Constraints; /** * Validates values are identical (===). * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ class IdenticalToValidator extends AbstractComparisonValidator { /** * {@inheritdoc} */ protected function compareValues($value1, $value2) { return $value1 === $value2; } /** * {@inheritdoc} */ protected function getErrorCode() { return IdenticalTo::NOT_IDENTICAL_ERROR; } } Constraints/Image.php 0000644 00000022071 15120140577 0010612 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Benjamin Dulau <benjamin.dulau@gmail.com> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Image extends File { public const SIZE_NOT_DETECTED_ERROR = '6d55c3f4-e58e-4fe3-91ee-74b492199956'; public const TOO_WIDE_ERROR = '7f87163d-878f-47f5-99ba-a8eb723a1ab2'; public const TOO_NARROW_ERROR = '9afbd561-4f90-4a27-be62-1780fc43604a'; public const TOO_HIGH_ERROR = '7efae81c-4877-47ba-aa65-d01ccb0d4645'; public const TOO_LOW_ERROR = 'aef0cb6a-c07f-4894-bc08-1781420d7b4c'; public const TOO_FEW_PIXEL_ERROR = '1b06b97d-ae48-474e-978f-038a74854c43'; public const TOO_MANY_PIXEL_ERROR = 'ee0804e8-44db-4eac-9775-be91aaf72ce1'; public const RATIO_TOO_BIG_ERROR = '70cafca6-168f-41c9-8c8c-4e47a52be643'; public const RATIO_TOO_SMALL_ERROR = '59b8c6ef-bcf2-4ceb-afff-4642ed92f12e'; public const SQUARE_NOT_ALLOWED_ERROR = '5d41425b-facb-47f7-a55a-de9fbe45cb46'; public const LANDSCAPE_NOT_ALLOWED_ERROR = '6f895685-7cf2-4d65-b3da-9029c5581d88'; public const PORTRAIT_NOT_ALLOWED_ERROR = '65608156-77da-4c79-a88c-02ef6d18c782'; public const CORRUPTED_IMAGE_ERROR = '5d4163f3-648f-4e39-87fd-cc5ea7aad2d1'; // Include the mapping from the base class protected static $errorNames = [ self::NOT_FOUND_ERROR => 'NOT_FOUND_ERROR', self::NOT_READABLE_ERROR => 'NOT_READABLE_ERROR', self::EMPTY_ERROR => 'EMPTY_ERROR', self::TOO_LARGE_ERROR => 'TOO_LARGE_ERROR', self::INVALID_MIME_TYPE_ERROR => 'INVALID_MIME_TYPE_ERROR', self::SIZE_NOT_DETECTED_ERROR => 'SIZE_NOT_DETECTED_ERROR', self::TOO_WIDE_ERROR => 'TOO_WIDE_ERROR', self::TOO_NARROW_ERROR => 'TOO_NARROW_ERROR', self::TOO_HIGH_ERROR => 'TOO_HIGH_ERROR', self::TOO_LOW_ERROR => 'TOO_LOW_ERROR', self::TOO_FEW_PIXEL_ERROR => 'TOO_FEW_PIXEL_ERROR', self::TOO_MANY_PIXEL_ERROR => 'TOO_MANY_PIXEL_ERROR', self::RATIO_TOO_BIG_ERROR => 'RATIO_TOO_BIG_ERROR', self::RATIO_TOO_SMALL_ERROR => 'RATIO_TOO_SMALL_ERROR', self::SQUARE_NOT_ALLOWED_ERROR => 'SQUARE_NOT_ALLOWED_ERROR', self::LANDSCAPE_NOT_ALLOWED_ERROR => 'LANDSCAPE_NOT_ALLOWED_ERROR', self::PORTRAIT_NOT_ALLOWED_ERROR => 'PORTRAIT_NOT_ALLOWED_ERROR', self::CORRUPTED_IMAGE_ERROR => 'CORRUPTED_IMAGE_ERROR', ]; public $mimeTypes = 'image/*'; public $minWidth; public $maxWidth; public $maxHeight; public $minHeight; public $maxRatio; public $minRatio; public $minPixels; public $maxPixels; public $allowSquare = true; public $allowLandscape = true; public $allowPortrait = true; public $detectCorrupted = false; // The constant for a wrong MIME type is taken from the parent class. public $mimeTypesMessage = 'This file is not a valid image.'; public $sizeNotDetectedMessage = 'The size of the image could not be detected.'; public $maxWidthMessage = 'The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.'; public $minWidthMessage = 'The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.'; public $maxHeightMessage = 'The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.'; public $minHeightMessage = 'The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.'; public $minPixelsMessage = 'The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.'; public $maxPixelsMessage = 'The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.'; public $maxRatioMessage = 'The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.'; public $minRatioMessage = 'The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.'; public $allowSquareMessage = 'The image is square ({{ width }}x{{ height }}px). Square images are not allowed.'; public $allowLandscapeMessage = 'The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.'; public $allowPortraitMessage = 'The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.'; public $corruptedMessage = 'The image file is corrupted.'; /** * {@inheritdoc} * * @param int|float $maxRatio * @param int|float $minRatio * @param int|float $minPixels * @param int|float $maxPixels */ public function __construct( array $options = null, $maxSize = null, bool $binaryFormat = null, array $mimeTypes = null, int $minWidth = null, int $maxWidth = null, int $maxHeight = null, int $minHeight = null, $maxRatio = null, $minRatio = null, $minPixels = null, $maxPixels = null, bool $allowSquare = null, bool $allowLandscape = null, bool $allowPortrait = null, bool $detectCorrupted = null, string $notFoundMessage = null, string $notReadableMessage = null, string $maxSizeMessage = null, string $mimeTypesMessage = null, string $disallowEmptyMessage = null, string $uploadIniSizeErrorMessage = null, string $uploadFormSizeErrorMessage = null, string $uploadPartialErrorMessage = null, string $uploadNoFileErrorMessage = null, string $uploadNoTmpDirErrorMessage = null, string $uploadCantWriteErrorMessage = null, string $uploadExtensionErrorMessage = null, string $uploadErrorMessage = null, string $sizeNotDetectedMessage = null, string $maxWidthMessage = null, string $minWidthMessage = null, string $maxHeightMessage = null, string $minHeightMessage = null, string $minPixelsMessage = null, string $maxPixelsMessage = null, string $maxRatioMessage = null, string $minRatioMessage = null, string $allowSquareMessage = null, string $allowLandscapeMessage = null, string $allowPortraitMessage = null, string $corruptedMessage = null, array $groups = null, $payload = null ) { parent::__construct( $options, $maxSize, $binaryFormat, $mimeTypes, $notFoundMessage, $notReadableMessage, $maxSizeMessage, $mimeTypesMessage, $disallowEmptyMessage, $uploadIniSizeErrorMessage, $uploadFormSizeErrorMessage, $uploadPartialErrorMessage, $uploadNoFileErrorMessage, $uploadNoTmpDirErrorMessage, $uploadCantWriteErrorMessage, $uploadExtensionErrorMessage, $uploadErrorMessage, $groups, $payload ); $this->minWidth = $minWidth ?? $this->minWidth; $this->maxWidth = $maxWidth ?? $this->maxWidth; $this->maxHeight = $maxHeight ?? $this->maxHeight; $this->minHeight = $minHeight ?? $this->minHeight; $this->maxRatio = $maxRatio ?? $this->maxRatio; $this->minRatio = $minRatio ?? $this->minRatio; $this->minPixels = $minPixels ?? $this->minPixels; $this->maxPixels = $maxPixels ?? $this->maxPixels; $this->allowSquare = $allowSquare ?? $this->allowSquare; $this->allowLandscape = $allowLandscape ?? $this->allowLandscape; $this->allowPortrait = $allowPortrait ?? $this->allowPortrait; $this->detectCorrupted = $detectCorrupted ?? $this->detectCorrupted; $this->sizeNotDetectedMessage = $sizeNotDetectedMessage ?? $this->sizeNotDetectedMessage; $this->maxWidthMessage = $maxWidthMessage ?? $this->maxWidthMessage; $this->minWidthMessage = $minWidthMessage ?? $this->minWidthMessage; $this->maxHeightMessage = $maxHeightMessage ?? $this->maxHeightMessage; $this->minHeightMessage = $minHeightMessage ?? $this->minHeightMessage; $this->minPixelsMessage = $minPixelsMessage ?? $this->minPixelsMessage; $this->maxPixelsMessage = $maxPixelsMessage ?? $this->maxPixelsMessage; $this->maxRatioMessage = $maxRatioMessage ?? $this->maxRatioMessage; $this->minRatioMessage = $minRatioMessage ?? $this->minRatioMessage; $this->allowSquareMessage = $allowSquareMessage ?? $this->allowSquareMessage; $this->allowLandscapeMessage = $allowLandscapeMessage ?? $this->allowLandscapeMessage; $this->allowPortraitMessage = $allowPortraitMessage ?? $this->allowPortraitMessage; $this->corruptedMessage = $corruptedMessage ?? $this->corruptedMessage; } } Constraints/ImageValidator.php 0000644 00000022317 15120140577 0012463 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\LogicException; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * Validates whether a value is a valid image file and is valid * against minWidth, maxWidth, minHeight and maxHeight constraints. * * @author Benjamin Dulau <benjamin.dulau@gmail.com> * @author Bernhard Schussek <bschussek@gmail.com> */ class ImageValidator extends FileValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Image) { throw new UnexpectedTypeException($constraint, Image::class); } $violations = \count($this->context->getViolations()); parent::validate($value, $constraint); $failed = \count($this->context->getViolations()) !== $violations; if ($failed || null === $value || '' === $value) { return; } if (null === $constraint->minWidth && null === $constraint->maxWidth && null === $constraint->minHeight && null === $constraint->maxHeight && null === $constraint->minPixels && null === $constraint->maxPixels && null === $constraint->minRatio && null === $constraint->maxRatio && $constraint->allowSquare && $constraint->allowLandscape && $constraint->allowPortrait && !$constraint->detectCorrupted) { return; } $size = @getimagesize($value); if (empty($size) || (0 === $size[0]) || (0 === $size[1])) { $this->context->buildViolation($constraint->sizeNotDetectedMessage) ->setCode(Image::SIZE_NOT_DETECTED_ERROR) ->addViolation(); return; } $width = $size[0]; $height = $size[1]; if ($constraint->minWidth) { if (!ctype_digit((string) $constraint->minWidth)) { throw new ConstraintDefinitionException(sprintf('"%s" is not a valid minimum width.', $constraint->minWidth)); } if ($width < $constraint->minWidth) { $this->context->buildViolation($constraint->minWidthMessage) ->setParameter('{{ width }}', $width) ->setParameter('{{ min_width }}', $constraint->minWidth) ->setCode(Image::TOO_NARROW_ERROR) ->addViolation(); return; } } if ($constraint->maxWidth) { if (!ctype_digit((string) $constraint->maxWidth)) { throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum width.', $constraint->maxWidth)); } if ($width > $constraint->maxWidth) { $this->context->buildViolation($constraint->maxWidthMessage) ->setParameter('{{ width }}', $width) ->setParameter('{{ max_width }}', $constraint->maxWidth) ->setCode(Image::TOO_WIDE_ERROR) ->addViolation(); return; } } if ($constraint->minHeight) { if (!ctype_digit((string) $constraint->minHeight)) { throw new ConstraintDefinitionException(sprintf('"%s" is not a valid minimum height.', $constraint->minHeight)); } if ($height < $constraint->minHeight) { $this->context->buildViolation($constraint->minHeightMessage) ->setParameter('{{ height }}', $height) ->setParameter('{{ min_height }}', $constraint->minHeight) ->setCode(Image::TOO_LOW_ERROR) ->addViolation(); return; } } if ($constraint->maxHeight) { if (!ctype_digit((string) $constraint->maxHeight)) { throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum height.', $constraint->maxHeight)); } if ($height > $constraint->maxHeight) { $this->context->buildViolation($constraint->maxHeightMessage) ->setParameter('{{ height }}', $height) ->setParameter('{{ max_height }}', $constraint->maxHeight) ->setCode(Image::TOO_HIGH_ERROR) ->addViolation(); } } $pixels = $width * $height; if (null !== $constraint->minPixels) { if (!ctype_digit((string) $constraint->minPixels)) { throw new ConstraintDefinitionException(sprintf('"%s" is not a valid minimum amount of pixels.', $constraint->minPixels)); } if ($pixels < $constraint->minPixels) { $this->context->buildViolation($constraint->minPixelsMessage) ->setParameter('{{ pixels }}', $pixels) ->setParameter('{{ min_pixels }}', $constraint->minPixels) ->setParameter('{{ height }}', $height) ->setParameter('{{ width }}', $width) ->setCode(Image::TOO_FEW_PIXEL_ERROR) ->addViolation(); } } if (null !== $constraint->maxPixels) { if (!ctype_digit((string) $constraint->maxPixels)) { throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum amount of pixels.', $constraint->maxPixels)); } if ($pixels > $constraint->maxPixels) { $this->context->buildViolation($constraint->maxPixelsMessage) ->setParameter('{{ pixels }}', $pixels) ->setParameter('{{ max_pixels }}', $constraint->maxPixels) ->setParameter('{{ height }}', $height) ->setParameter('{{ width }}', $width) ->setCode(Image::TOO_MANY_PIXEL_ERROR) ->addViolation(); } } $ratio = round($width / $height, 2); if (null !== $constraint->minRatio) { if (!is_numeric((string) $constraint->minRatio)) { throw new ConstraintDefinitionException(sprintf('"%s" is not a valid minimum ratio.', $constraint->minRatio)); } if ($ratio < round($constraint->minRatio, 2)) { $this->context->buildViolation($constraint->minRatioMessage) ->setParameter('{{ ratio }}', $ratio) ->setParameter('{{ min_ratio }}', round($constraint->minRatio, 2)) ->setCode(Image::RATIO_TOO_SMALL_ERROR) ->addViolation(); } } if (null !== $constraint->maxRatio) { if (!is_numeric((string) $constraint->maxRatio)) { throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum ratio.', $constraint->maxRatio)); } if ($ratio > round($constraint->maxRatio, 2)) { $this->context->buildViolation($constraint->maxRatioMessage) ->setParameter('{{ ratio }}', $ratio) ->setParameter('{{ max_ratio }}', round($constraint->maxRatio, 2)) ->setCode(Image::RATIO_TOO_BIG_ERROR) ->addViolation(); } } if (!$constraint->allowSquare && $width == $height) { $this->context->buildViolation($constraint->allowSquareMessage) ->setParameter('{{ width }}', $width) ->setParameter('{{ height }}', $height) ->setCode(Image::SQUARE_NOT_ALLOWED_ERROR) ->addViolation(); } if (!$constraint->allowLandscape && $width > $height) { $this->context->buildViolation($constraint->allowLandscapeMessage) ->setParameter('{{ width }}', $width) ->setParameter('{{ height }}', $height) ->setCode(Image::LANDSCAPE_NOT_ALLOWED_ERROR) ->addViolation(); } if (!$constraint->allowPortrait && $width < $height) { $this->context->buildViolation($constraint->allowPortraitMessage) ->setParameter('{{ width }}', $width) ->setParameter('{{ height }}', $height) ->setCode(Image::PORTRAIT_NOT_ALLOWED_ERROR) ->addViolation(); } if ($constraint->detectCorrupted) { if (!\function_exists('imagecreatefromstring')) { throw new LogicException('Corrupted images detection requires installed and enabled GD extension.'); } $resource = @imagecreatefromstring(file_get_contents($value)); if (false === $resource) { $this->context->buildViolation($constraint->corruptedMessage) ->setCode(Image::CORRUPTED_IMAGE_ERROR) ->addViolation(); return; } imagedestroy($resource); } } } Constraints/Ip.php 0000644 00000006070 15120140577 0010141 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\InvalidArgumentException; /** * Validates that a value is a valid IP address. * * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> * @author Joseph Bielawski <stloyd@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Ip extends Constraint { public const V4 = '4'; public const V6 = '6'; public const ALL = 'all'; // adds FILTER_FLAG_NO_PRIV_RANGE flag (skip private ranges) public const V4_NO_PRIV = '4_no_priv'; public const V6_NO_PRIV = '6_no_priv'; public const ALL_NO_PRIV = 'all_no_priv'; // adds FILTER_FLAG_NO_RES_RANGE flag (skip reserved ranges) public const V4_NO_RES = '4_no_res'; public const V6_NO_RES = '6_no_res'; public const ALL_NO_RES = 'all_no_res'; // adds FILTER_FLAG_NO_PRIV_RANGE and FILTER_FLAG_NO_RES_RANGE flags (skip both) public const V4_ONLY_PUBLIC = '4_public'; public const V6_ONLY_PUBLIC = '6_public'; public const ALL_ONLY_PUBLIC = 'all_public'; public const INVALID_IP_ERROR = 'b1b427ae-9f6f-41b0-aa9b-84511fbb3c5b'; protected static $versions = [ self::V4, self::V6, self::ALL, self::V4_NO_PRIV, self::V6_NO_PRIV, self::ALL_NO_PRIV, self::V4_NO_RES, self::V6_NO_RES, self::ALL_NO_RES, self::V4_ONLY_PUBLIC, self::V6_ONLY_PUBLIC, self::ALL_ONLY_PUBLIC, ]; protected static $errorNames = [ self::INVALID_IP_ERROR => 'INVALID_IP_ERROR', ]; public $version = self::V4; public $message = 'This is not a valid IP address.'; public $normalizer; /** * {@inheritdoc} */ public function __construct( array $options = null, string $version = null, string $message = null, callable $normalizer = null, array $groups = null, $payload = null ) { parent::__construct($options, $groups, $payload); $this->version = $version ?? $this->version; $this->message = $message ?? $this->message; $this->normalizer = $normalizer ?? $this->normalizer; if (!\in_array($this->version, self::$versions)) { throw new ConstraintDefinitionException(sprintf('The option "version" must be one of "%s".', implode('", "', self::$versions))); } if (null !== $this->normalizer && !\is_callable($this->normalizer)) { throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer))); } } } Constraints/IpValidator.php 0000644 00000006137 15120140577 0012013 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * Validates whether a value is a valid IP address. * * @author Bernhard Schussek <bschussek@gmail.com> * @author Joseph Bielawski <stloyd@gmail.com> */ class IpValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Ip) { throw new UnexpectedTypeException($constraint, Ip::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if (null !== $constraint->normalizer) { $value = ($constraint->normalizer)($value); } switch ($constraint->version) { case Ip::V4: $flag = \FILTER_FLAG_IPV4; break; case Ip::V6: $flag = \FILTER_FLAG_IPV6; break; case Ip::V4_NO_PRIV: $flag = \FILTER_FLAG_IPV4 | \FILTER_FLAG_NO_PRIV_RANGE; break; case Ip::V6_NO_PRIV: $flag = \FILTER_FLAG_IPV6 | \FILTER_FLAG_NO_PRIV_RANGE; break; case Ip::ALL_NO_PRIV: $flag = \FILTER_FLAG_NO_PRIV_RANGE; break; case Ip::V4_NO_RES: $flag = \FILTER_FLAG_IPV4 | \FILTER_FLAG_NO_RES_RANGE; break; case Ip::V6_NO_RES: $flag = \FILTER_FLAG_IPV6 | \FILTER_FLAG_NO_RES_RANGE; break; case Ip::ALL_NO_RES: $flag = \FILTER_FLAG_NO_RES_RANGE; break; case Ip::V4_ONLY_PUBLIC: $flag = \FILTER_FLAG_IPV4 | \FILTER_FLAG_NO_PRIV_RANGE | \FILTER_FLAG_NO_RES_RANGE; break; case Ip::V6_ONLY_PUBLIC: $flag = \FILTER_FLAG_IPV6 | \FILTER_FLAG_NO_PRIV_RANGE | \FILTER_FLAG_NO_RES_RANGE; break; case Ip::ALL_ONLY_PUBLIC: $flag = \FILTER_FLAG_NO_PRIV_RANGE | \FILTER_FLAG_NO_RES_RANGE; break; default: $flag = 0; break; } if (!filter_var($value, \FILTER_VALIDATE_IP, $flag)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Ip::INVALID_IP_ERROR) ->addViolation(); } } } Constraints/IsFalse.php 0000644 00000002060 15120140577 0011112 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class IsFalse extends Constraint { public const NOT_FALSE_ERROR = 'd53a91b0-def3-426a-83d7-269da7ab4200'; protected static $errorNames = [ self::NOT_FALSE_ERROR => 'NOT_FALSE_ERROR', ]; public $message = 'This value should be false.'; public function __construct(array $options = null, string $message = null, array $groups = null, $payload = null) { parent::__construct($options ?? [], $groups, $payload); $this->message = $message ?? $this->message; } } Constraints/IsFalseValidator.php 0000644 00000002162 15120140577 0012763 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class IsFalseValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof IsFalse) { throw new UnexpectedTypeException($constraint, IsFalse::class); } if (null === $value || false === $value || 0 === $value || '0' === $value) { return; } $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(IsFalse::NOT_FALSE_ERROR) ->addViolation(); } } Constraints/IsNull.php 0000644 00000002053 15120140577 0010774 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class IsNull extends Constraint { public const NOT_NULL_ERROR = '60d2f30b-8cfa-4372-b155-9656634de120'; protected static $errorNames = [ self::NOT_NULL_ERROR => 'NOT_NULL_ERROR', ]; public $message = 'This value should be null.'; public function __construct(array $options = null, string $message = null, array $groups = null, $payload = null) { parent::__construct($options ?? [], $groups, $payload); $this->message = $message ?? $this->message; } } Constraints/IsNullValidator.php 0000644 00000002062 15120140577 0012642 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class IsNullValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof IsNull) { throw new UnexpectedTypeException($constraint, IsNull::class); } if (null !== $value) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(IsNull::NOT_NULL_ERROR) ->addViolation(); } } } Constraints/IsTrue.php 0000644 00000002053 15120140577 0011001 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class IsTrue extends Constraint { public const NOT_TRUE_ERROR = '2beabf1c-54c0-4882-a928-05249b26e23b'; protected static $errorNames = [ self::NOT_TRUE_ERROR => 'NOT_TRUE_ERROR', ]; public $message = 'This value should be true.'; public function __construct(array $options = null, string $message = null, array $groups = null, $payload = null) { parent::__construct($options ?? [], $groups, $payload); $this->message = $message ?? $this->message; } } Constraints/IsTrueValidator.php 0000644 00000002222 15120140577 0012645 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class IsTrueValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof IsTrue) { throw new UnexpectedTypeException($constraint, IsTrue::class); } if (null === $value) { return; } if (true !== $value && 1 !== $value && '1' !== $value) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(IsTrue::NOT_TRUE_ERROR) ->addViolation(); } } } Constraints/Isbn.php 0000644 00000005433 15120140577 0010466 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author The Whole Life To Learn <thewholelifetolearn@gmail.com> * @author Manuel Reinhard <manu@sprain.ch> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Isbn extends Constraint { public const ISBN_10 = 'isbn10'; public const ISBN_13 = 'isbn13'; public const TOO_SHORT_ERROR = '949acbb0-8ef5-43ed-a0e9-032dfd08ae45'; public const TOO_LONG_ERROR = '3171387d-f80a-47b3-bd6e-60598545316a'; public const INVALID_CHARACTERS_ERROR = '23d21cea-da99-453d-98b1-a7d916fbb339'; public const CHECKSUM_FAILED_ERROR = '2881c032-660f-46b6-8153-d352d9706640'; public const TYPE_NOT_RECOGNIZED_ERROR = 'fa54a457-f042-441f-89c4-066ee5bdd3e1'; protected static $errorNames = [ self::TOO_SHORT_ERROR => 'TOO_SHORT_ERROR', self::TOO_LONG_ERROR => 'TOO_LONG_ERROR', self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR', self::CHECKSUM_FAILED_ERROR => 'CHECKSUM_FAILED_ERROR', self::TYPE_NOT_RECOGNIZED_ERROR => 'TYPE_NOT_RECOGNIZED_ERROR', ]; public $isbn10Message = 'This value is not a valid ISBN-10.'; public $isbn13Message = 'This value is not a valid ISBN-13.'; public $bothIsbnMessage = 'This value is neither a valid ISBN-10 nor a valid ISBN-13.'; public $type; public $message; /** * {@inheritdoc} * * @param string|array|null $type The ISBN standard to validate or a set of options */ public function __construct( $type = null, string $message = null, string $isbn10Message = null, string $isbn13Message = null, string $bothIsbnMessage = null, array $groups = null, $payload = null, array $options = [] ) { if (\is_array($type)) { $options = array_merge($type, $options); } elseif (null !== $type) { $options['value'] = $type; } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->isbn10Message = $isbn10Message ?? $this->isbn10Message; $this->isbn13Message = $isbn13Message ?? $this->isbn13Message; $this->bothIsbnMessage = $bothIsbnMessage ?? $this->bothIsbnMessage; } /** * {@inheritdoc} */ public function getDefaultOption() { return 'type'; } } Constraints/IsbnValidator.php 0000644 00000012715 15120140577 0012335 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * Validates whether the value is a valid ISBN-10 or ISBN-13. * * @author The Whole Life To Learn <thewholelifetolearn@gmail.com> * @author Manuel Reinhard <manu@sprain.ch> * @author Bernhard Schussek <bschussek@gmail.com> * * @see https://en.wikipedia.org/wiki/Isbn */ class IsbnValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Isbn) { throw new UnexpectedTypeException($constraint, Isbn::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; $canonical = str_replace('-', '', $value); // Explicitly validate against ISBN-10 if (Isbn::ISBN_10 === $constraint->type) { if (true !== ($code = $this->validateIsbn10($canonical))) { $this->context->buildViolation($this->getMessage($constraint, $constraint->type)) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode($code) ->addViolation(); } return; } // Explicitly validate against ISBN-13 if (Isbn::ISBN_13 === $constraint->type) { if (true !== ($code = $this->validateIsbn13($canonical))) { $this->context->buildViolation($this->getMessage($constraint, $constraint->type)) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode($code) ->addViolation(); } return; } // Try both ISBNs // First, try ISBN-10 $code = $this->validateIsbn10($canonical); // The ISBN can only be an ISBN-13 if the value was too long for ISBN-10 if (Isbn::TOO_LONG_ERROR === $code) { // Try ISBN-13 now $code = $this->validateIsbn13($canonical); // If too short, this means we have 11 or 12 digits if (Isbn::TOO_SHORT_ERROR === $code) { $code = Isbn::TYPE_NOT_RECOGNIZED_ERROR; } } if (true !== $code) { $this->context->buildViolation($this->getMessage($constraint)) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode($code) ->addViolation(); } } protected function validateIsbn10(string $isbn) { // Choose an algorithm so that ERROR_INVALID_CHARACTERS is preferred // over ERROR_TOO_SHORT/ERROR_TOO_LONG // Otherwise "0-45122-5244" passes, but "0-45122_5244" reports // "too long" // Error priority: // 1. ERROR_INVALID_CHARACTERS // 2. ERROR_TOO_SHORT/ERROR_TOO_LONG // 3. ERROR_CHECKSUM_FAILED $checkSum = 0; for ($i = 0; $i < 10; ++$i) { // If we test the length before the loop, we get an ERROR_TOO_SHORT // when actually an ERROR_INVALID_CHARACTERS is wanted, e.g. for // "0-45122_5244" (typo) if (!isset($isbn[$i])) { return Isbn::TOO_SHORT_ERROR; } if ('X' === $isbn[$i]) { $digit = 10; } elseif (ctype_digit($isbn[$i])) { $digit = $isbn[$i]; } else { return Isbn::INVALID_CHARACTERS_ERROR; } $checkSum += $digit * (10 - $i); } if (isset($isbn[$i])) { return Isbn::TOO_LONG_ERROR; } return 0 === $checkSum % 11 ? true : Isbn::CHECKSUM_FAILED_ERROR; } protected function validateIsbn13(string $isbn) { // Error priority: // 1. ERROR_INVALID_CHARACTERS // 2. ERROR_TOO_SHORT/ERROR_TOO_LONG // 3. ERROR_CHECKSUM_FAILED if (!ctype_digit($isbn)) { return Isbn::INVALID_CHARACTERS_ERROR; } $length = \strlen($isbn); if ($length < 13) { return Isbn::TOO_SHORT_ERROR; } if ($length > 13) { return Isbn::TOO_LONG_ERROR; } $checkSum = 0; for ($i = 0; $i < 13; $i += 2) { $checkSum += $isbn[$i]; } for ($i = 1; $i < 12; $i += 2) { $checkSum += $isbn[$i] * 3; } return 0 === $checkSum % 10 ? true : Isbn::CHECKSUM_FAILED_ERROR; } protected function getMessage(Isbn $constraint, string $type = null) { if (null !== $constraint->message) { return $constraint->message; } elseif (Isbn::ISBN_10 === $type) { return $constraint->isbn10Message; } elseif (Isbn::ISBN_13 === $type) { return $constraint->isbn13Message; } return $constraint->bothIsbnMessage; } } Constraints/Isin.php 0000644 00000003002 15120140577 0010463 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Laurent Masforné <l.masforne@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Isin extends Constraint { public const VALIDATION_LENGTH = 12; public const VALIDATION_PATTERN = '/[A-Z]{2}[A-Z0-9]{9}[0-9]{1}/'; public const INVALID_LENGTH_ERROR = '88738dfc-9ed5-ba1e-aebe-402a2a9bf58e'; public const INVALID_PATTERN_ERROR = '3d08ce0-ded9-a93d-9216-17ac21265b65e'; public const INVALID_CHECKSUM_ERROR = '32089b-0ee1-93ba-399e-aa232e62f2d29d'; protected static $errorNames = [ self::INVALID_LENGTH_ERROR => 'INVALID_LENGTH_ERROR', self::INVALID_PATTERN_ERROR => 'INVALID_PATTERN_ERROR', self::INVALID_CHECKSUM_ERROR => 'INVALID_CHECKSUM_ERROR', ]; public $message = 'This value is not a valid International Securities Identification Number (ISIN).'; public function __construct(array $options = null, string $message = null, array $groups = null, $payload = null) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; } } Constraints/IsinValidator.php 0000644 00000004754 15120140577 0012350 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Laurent Masforné <l.masforne@gmail.com> * * @see https://en.wikipedia.org/wiki/International_Securities_Identification_Number */ class IsinValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Isin) { throw new UnexpectedTypeException($constraint, Isin::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = strtoupper($value); if (Isin::VALIDATION_LENGTH !== \strlen($value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Isin::INVALID_LENGTH_ERROR) ->addViolation(); return; } if (!preg_match(Isin::VALIDATION_PATTERN, $value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Isin::INVALID_PATTERN_ERROR) ->addViolation(); return; } if (!$this->isCorrectChecksum($value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Isin::INVALID_CHECKSUM_ERROR) ->addViolation(); } } private function isCorrectChecksum(string $input): bool { $characters = str_split($input); foreach ($characters as $i => $char) { $characters[$i] = \intval($char, 36); } $number = implode('', $characters); return 0 === $this->context->getValidator()->validate($number, new Luhn())->count(); } } Constraints/Issn.php 0000644 00000004136 15120140577 0010506 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Antonio J. García Lagar <aj@garcialagar.es> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Issn extends Constraint { public const TOO_SHORT_ERROR = '6a20dd3d-f463-4460-8e7b-18a1b98abbfb'; public const TOO_LONG_ERROR = '37cef893-5871-464e-8b12-7fb79324833c'; public const MISSING_HYPHEN_ERROR = '2983286f-8134-4693-957a-1ec4ef887b15'; public const INVALID_CHARACTERS_ERROR = 'a663d266-37c2-4ece-a914-ae891940c588'; public const INVALID_CASE_ERROR = '7b6dd393-7523-4a6c-b84d-72b91bba5e1a'; public const CHECKSUM_FAILED_ERROR = 'b0f92dbc-667c-48de-b526-ad9586d43e85'; protected static $errorNames = [ self::TOO_SHORT_ERROR => 'TOO_SHORT_ERROR', self::TOO_LONG_ERROR => 'TOO_LONG_ERROR', self::MISSING_HYPHEN_ERROR => 'MISSING_HYPHEN_ERROR', self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR', self::INVALID_CASE_ERROR => 'INVALID_CASE_ERROR', self::CHECKSUM_FAILED_ERROR => 'CHECKSUM_FAILED_ERROR', ]; public $message = 'This value is not a valid ISSN.'; public $caseSensitive = false; public $requireHyphen = false; public function __construct( array $options = null, string $message = null, bool $caseSensitive = null, bool $requireHyphen = null, array $groups = null, $payload = null ) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->caseSensitive = $caseSensitive ?? $this->caseSensitive; $this->requireHyphen = $requireHyphen ?? $this->requireHyphen; } } Constraints/IssnValidator.php 0000644 00000010145 15120140577 0012351 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * Validates whether the value is a valid ISSN. * * @author Antonio J. García Lagar <aj@garcialagar.es> * @author Bernhard Schussek <bschussek@gmail.com> * * @see https://en.wikipedia.org/wiki/Issn */ class IssnValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Issn) { throw new UnexpectedTypeException($constraint, Issn::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; $canonical = $value; // 1234-567X // ^ if (isset($canonical[4]) && '-' === $canonical[4]) { // remove hyphen $canonical = substr($canonical, 0, 4).substr($canonical, 5); } elseif ($constraint->requireHyphen) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Issn::MISSING_HYPHEN_ERROR) ->addViolation(); return; } $length = \strlen($canonical); if ($length < 8) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Issn::TOO_SHORT_ERROR) ->addViolation(); return; } if ($length > 8) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Issn::TOO_LONG_ERROR) ->addViolation(); return; } // 1234567X // ^^^^^^^ digits only if (!ctype_digit(substr($canonical, 0, 7))) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Issn::INVALID_CHARACTERS_ERROR) ->addViolation(); return; } // 1234567X // ^ digit, x or X if (!ctype_digit($canonical[7]) && 'x' !== $canonical[7] && 'X' !== $canonical[7]) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Issn::INVALID_CHARACTERS_ERROR) ->addViolation(); return; } // 1234567X // ^ case-sensitive? if ($constraint->caseSensitive && 'x' === $canonical[7]) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Issn::INVALID_CASE_ERROR) ->addViolation(); return; } // Calculate a checksum. "X" equals 10. $checkSum = 'X' === $canonical[7] || 'x' === $canonical[7] ? 10 : $canonical[7]; for ($i = 0; $i < 7; ++$i) { // Multiply the first digit by 8, the second by 7, etc. $checkSum += (8 - $i) * (int) $canonical[$i]; } if (0 !== $checkSum % 11) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Issn::CHECKSUM_FAILED_ERROR) ->addViolation(); } } } Constraints/Json.php 0000644 00000002060 15120140577 0010475 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Imad ZAIRIG <imadzairig@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Json extends Constraint { public const INVALID_JSON_ERROR = '0789c8ad-2d2b-49a4-8356-e2ce63998504'; protected static $errorNames = [ self::INVALID_JSON_ERROR => 'INVALID_JSON_ERROR', ]; public $message = 'This value should be valid JSON.'; public function __construct(array $options = null, string $message = null, array $groups = null, $payload = null) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; } } Constraints/JsonValidator.php 0000644 00000002577 15120140577 0012360 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Imad ZAIRIG <imadzairig@gmail.com> */ class JsonValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Json) { throw new UnexpectedTypeException($constraint, Json::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedTypeException($value, 'string'); } $value = (string) $value; json_decode($value); if (\JSON_ERROR_NONE !== json_last_error()) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Json::INVALID_JSON_ERROR) ->addViolation(); } } } Constraints/Language.php 0000644 00000003004 15120140577 0011306 0 ustar 00 <?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\Constraints; use Symfony\Component\Intl\Languages; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\LogicException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Language extends Constraint { public const NO_SUCH_LANGUAGE_ERROR = 'ee65fec4-9a20-4202-9f39-ca558cd7bdf7'; protected static $errorNames = [ self::NO_SUCH_LANGUAGE_ERROR => 'NO_SUCH_LANGUAGE_ERROR', ]; public $message = 'This value is not a valid language.'; public $alpha3 = false; public function __construct( array $options = null, string $message = null, bool $alpha3 = null, array $groups = null, $payload = null ) { if (!class_exists(Languages::class)) { throw new LogicException('The Intl component is required to use the Language constraint. Try running "composer require symfony/intl".'); } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->alpha3 = $alpha3 ?? $this->alpha3; } } Constraints/LanguageValidator.php 0000644 00000003120 15120140577 0013153 0 ustar 00 <?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\Constraints; use Symfony\Component\Intl\Languages; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * Validates whether a value is a valid language code. * * @author Bernhard Schussek <bschussek@gmail.com> */ class LanguageValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Language) { throw new UnexpectedTypeException($constraint, Language::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if ($constraint->alpha3 ? !Languages::alpha3CodeExists($value) : !Languages::exists($value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Language::NO_SUCH_LANGUAGE_ERROR) ->addViolation(); } } } Constraints/Length.php 0000644 00000010133 15120140577 0011005 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\InvalidArgumentException; use Symfony\Component\Validator\Exception\MissingOptionsException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Length extends Constraint { public const TOO_SHORT_ERROR = '9ff3fdc4-b214-49db-8718-39c315e33d45'; public const TOO_LONG_ERROR = 'd94b19cc-114f-4f44-9cc4-4138e80a87b9'; public const NOT_EQUAL_LENGTH_ERROR = '4b6f5c76-22b4-409d-af16-fbe823ba9332'; public const INVALID_CHARACTERS_ERROR = '35e6a710-aa2e-4719-b58e-24b35749b767'; protected static $errorNames = [ self::TOO_SHORT_ERROR => 'TOO_SHORT_ERROR', self::TOO_LONG_ERROR => 'TOO_LONG_ERROR', self::NOT_EQUAL_LENGTH_ERROR => 'NOT_EQUAL_LENGTH_ERROR', self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR', ]; 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 $charsetMessage = 'This value does not match the expected {{ charset }} charset.'; public $max; public $min; public $charset = 'UTF-8'; public $normalizer; public $allowEmptyString = false; /** * {@inheritdoc} * * @param int|array|null $exactly The expected exact length or a set of options */ public function __construct( $exactly = null, int $min = null, int $max = null, string $charset = null, callable $normalizer = null, string $exactMessage = null, string $minMessage = null, string $maxMessage = null, string $charsetMessage = null, array $groups = null, $payload = null, array $options = [] ) { if (\is_array($exactly)) { $options = array_merge($exactly, $options); $exactly = $options['value'] ?? null; } $min = $min ?? $options['min'] ?? null; $max = $max ?? $options['max'] ?? null; unset($options['value'], $options['min'], $options['max']); if (null !== $exactly && null === $min && null === $max) { $min = $max = $exactly; } parent::__construct($options, $groups, $payload); $this->min = $min; $this->max = $max; $this->charset = $charset ?? $this->charset; $this->normalizer = $normalizer ?? $this->normalizer; $this->exactMessage = $exactMessage ?? $this->exactMessage; $this->minMessage = $minMessage ?? $this->minMessage; $this->maxMessage = $maxMessage ?? $this->maxMessage; $this->charsetMessage = $charsetMessage ?? $this->charsetMessage; if (null === $this->min && null === $this->max) { throw new MissingOptionsException(sprintf('Either option "min" or "max" must be given for constraint "%s".', __CLASS__), ['min', 'max']); } if (null !== $this->normalizer && !\is_callable($this->normalizer)) { throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer))); } if (isset($options['allowEmptyString'])) { trigger_deprecation('symfony/validator', '5.2', sprintf('The "allowEmptyString" option of the "%s" constraint is deprecated.', self::class)); } } } Constraints/LengthValidator.php 0000644 00000006663 15120140577 0012670 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class LengthValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Length) { throw new UnexpectedTypeException($constraint, Length::class); } if (null === $value || ('' === $value && $constraint->allowEmptyString)) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $stringValue = (string) $value; if (null !== $constraint->normalizer) { $stringValue = ($constraint->normalizer)($stringValue); } try { $invalidCharset = !@mb_check_encoding($stringValue, $constraint->charset); } catch (\ValueError $e) { if (!str_starts_with($e->getMessage(), 'mb_check_encoding(): Argument #2 ($encoding) must be a valid encoding')) { throw $e; } $invalidCharset = true; } if ($invalidCharset) { $this->context->buildViolation($constraint->charsetMessage) ->setParameter('{{ value }}', $this->formatValue($stringValue)) ->setParameter('{{ charset }}', $constraint->charset) ->setInvalidValue($value) ->setCode(Length::INVALID_CHARACTERS_ERROR) ->addViolation(); return; } $length = mb_strlen($stringValue, $constraint->charset); if (null !== $constraint->max && $length > $constraint->max) { $exactlyOptionEnabled = $constraint->min == $constraint->max; $this->context->buildViolation($exactlyOptionEnabled ? $constraint->exactMessage : $constraint->maxMessage) ->setParameter('{{ value }}', $this->formatValue($stringValue)) ->setParameter('{{ limit }}', $constraint->max) ->setInvalidValue($value) ->setPlural((int) $constraint->max) ->setCode($exactlyOptionEnabled ? Length::NOT_EQUAL_LENGTH_ERROR : Length::TOO_LONG_ERROR) ->addViolation(); return; } if (null !== $constraint->min && $length < $constraint->min) { $exactlyOptionEnabled = $constraint->min == $constraint->max; $this->context->buildViolation($exactlyOptionEnabled ? $constraint->exactMessage : $constraint->minMessage) ->setParameter('{{ value }}', $this->formatValue($stringValue)) ->setParameter('{{ limit }}', $constraint->min) ->setInvalidValue($value) ->setPlural((int) $constraint->min) ->setCode($exactlyOptionEnabled ? Length::NOT_EQUAL_LENGTH_ERROR : Length::TOO_SHORT_ERROR) ->addViolation(); } } } Constraints/LessThan.php 0000644 00000001534 15120140577 0011312 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class LessThan extends AbstractComparison { public const TOO_HIGH_ERROR = '079d7420-2d13-460c-8756-de810eeb37d2'; protected static $errorNames = [ self::TOO_HIGH_ERROR => 'TOO_HIGH_ERROR', ]; public $message = 'This value should be less than {{ compared_value }}.'; } Constraints/LessThanOrEqual.php 0000644 00000001557 15120140577 0012610 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class LessThanOrEqual extends AbstractComparison { public const TOO_HIGH_ERROR = '30fbb013-d015-4232-8b3b-8f3be97a7e14'; protected static $errorNames = [ self::TOO_HIGH_ERROR => 'TOO_HIGH_ERROR', ]; public $message = 'This value should be less than or equal to {{ compared_value }}.'; } Constraints/LessThanOrEqualValidator.php 0000644 00000001502 15120140577 0014444 0 ustar 00 <?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\Constraints; /** * Validates values are less than or equal to the previous (<=). * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ class LessThanOrEqualValidator extends AbstractComparisonValidator { /** * {@inheritdoc} */ protected function compareValues($value1, $value2) { return null === $value2 || $value1 <= $value2; } /** * {@inheritdoc} */ protected function getErrorCode() { return LessThanOrEqual::TOO_HIGH_ERROR; } } Constraints/LessThanValidator.php 0000644 00000001446 15120140577 0013162 0 ustar 00 <?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\Constraints; /** * Validates values are less than the previous (<). * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ class LessThanValidator extends AbstractComparisonValidator { /** * {@inheritdoc} */ protected function compareValues($value1, $value2) { return null === $value2 || $value1 < $value2; } /** * {@inheritdoc} */ protected function getErrorCode() { return LessThan::TOO_HIGH_ERROR; } } Constraints/Locale.php 0000644 00000003021 15120140577 0010761 0 ustar 00 <?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\Constraints; use Symfony\Component\Intl\Locales; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\LogicException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Locale extends Constraint { public const NO_SUCH_LOCALE_ERROR = 'a0af4293-1f1a-4a1c-a328-979cba6182a2'; protected static $errorNames = [ self::NO_SUCH_LOCALE_ERROR => 'NO_SUCH_LOCALE_ERROR', ]; public $message = 'This value is not a valid locale.'; public $canonicalize = true; public function __construct( array $options = null, string $message = null, bool $canonicalize = null, array $groups = null, $payload = null ) { if (!class_exists(Locales::class)) { throw new LogicException('The Intl component is required to use the Locale constraint. Try running "composer require symfony/intl".'); } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->canonicalize = $canonicalize ?? $this->canonicalize; } } Constraints/LocaleValidator.php 0000644 00000003222 15120140577 0012632 0 ustar 00 <?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\Constraints; use Symfony\Component\Intl\Locales; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * Validates whether a value is a valid locale code. * * @author Bernhard Schussek <bschussek@gmail.com> */ class LocaleValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Locale) { throw new UnexpectedTypeException($constraint, Locale::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $inputValue = (string) $value; $value = $inputValue; if ($constraint->canonicalize) { $value = \Locale::canonicalize($value); } if (!Locales::exists($value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($inputValue)) ->setCode(Locale::NO_SUCH_LOCALE_ERROR) ->addViolation(); } } } Constraints/Luhn.php 0000644 00000002636 15120140577 0010503 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * Metadata for the LuhnValidator. * * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Tim Nagel <t.nagel@infinite.net.au> * @author Greg Knapp http://gregk.me/2011/php-implementation-of-bank-card-luhn-algorithm/ * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Luhn extends Constraint { public const INVALID_CHARACTERS_ERROR = 'dfad6d23-1b74-4374-929b-5cbb56fc0d9e'; public const CHECKSUM_FAILED_ERROR = '4d760774-3f50-4cd5-a6d5-b10a3299d8d3'; protected static $errorNames = [ self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR', self::CHECKSUM_FAILED_ERROR => 'CHECKSUM_FAILED_ERROR', ]; public $message = 'Invalid card number.'; public function __construct( array $options = null, string $message = null, array $groups = null, $payload = null ) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; } } Constraints/LuhnValidator.php 0000644 00000006335 15120140577 0012351 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * Validates a PAN using the LUHN Algorithm. * * For a list of example card numbers that are used to test this * class, please see the LuhnValidatorTest class. * * @see http://en.wikipedia.org/wiki/Luhn_algorithm * * @author Tim Nagel <t.nagel@infinite.net.au> * @author Greg Knapp http://gregk.me/2011/php-implementation-of-bank-card-luhn-algorithm/ * @author Bernhard Schussek <bschussek@gmail.com> */ class LuhnValidator extends ConstraintValidator { /** * Validates a credit card number with the Luhn algorithm. * * @param mixed $value * * @throws UnexpectedTypeException when the given credit card number is no string */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Luhn) { throw new UnexpectedTypeException($constraint, Luhn::class); } if (null === $value || '' === $value) { return; } // Work with strings only, because long numbers are represented as floats // internally and don't work with strlen() if (!\is_string($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if (!ctype_digit($value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Luhn::INVALID_CHARACTERS_ERROR) ->addViolation(); return; } $checkSum = 0; $length = \strlen($value); // Starting with the last digit and walking left, add every second // digit to the check sum // e.g. 7 9 9 2 7 3 9 8 7 1 3 // ^ ^ ^ ^ ^ ^ // = 7 + 9 + 7 + 9 + 7 + 3 for ($i = $length - 1; $i >= 0; $i -= 2) { $checkSum += $value[$i]; } // Starting with the second last digit and walking left, double every // second digit and add it to the check sum // For doubles greater than 9, sum the individual digits // e.g. 7 9 9 2 7 3 9 8 7 1 3 // ^ ^ ^ ^ ^ // = 1+8 + 4 + 6 + 1+6 + 2 for ($i = $length - 2; $i >= 0; $i -= 2) { $checkSum += array_sum(str_split((int) $value[$i] * 2)); } if (0 === $checkSum || 0 !== $checkSum % 10) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Luhn::CHECKSUM_FAILED_ERROR) ->addViolation(); } } } Constraints/Negative.php 0000644 00000001215 15120140577 0011327 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Jan Schädlich <jan.schaedlich@sensiolabs.de> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Negative extends LessThan { use ZeroComparisonConstraintTrait; public $message = 'This value should be negative.'; } Constraints/NegativeOrZero.php 0000644 00000001251 15120140577 0012470 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Jan Schädlich <jan.schaedlich@sensiolabs.de> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class NegativeOrZero extends LessThanOrEqual { use ZeroComparisonConstraintTrait; public $message = 'This value should be either negative or zero.'; } Constraints/NotBlank.php 0000644 00000003200 15120140577 0011271 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\InvalidArgumentException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> * @author Kévin Dunglas <dunglas@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class NotBlank extends Constraint { public const IS_BLANK_ERROR = 'c1051bb4-d103-4f74-8988-acbcafc7fdc3'; protected static $errorNames = [ self::IS_BLANK_ERROR => 'IS_BLANK_ERROR', ]; public $message = 'This value should not be blank.'; public $allowNull = false; public $normalizer; public function __construct(array $options = null, string $message = null, bool $allowNull = null, callable $normalizer = null, array $groups = null, $payload = null) { parent::__construct($options ?? [], $groups, $payload); $this->message = $message ?? $this->message; $this->allowNull = $allowNull ?? $this->allowNull; $this->normalizer = $normalizer ?? $this->normalizer; if (null !== $this->normalizer && !\is_callable($this->normalizer)) { throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer))); } } } Constraints/NotBlankValidator.php 0000644 00000002556 15120140577 0013154 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Bernhard Schussek <bschussek@gmail.com> * @author Kévin Dunglas <dunglas@gmail.com> */ class NotBlankValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof NotBlank) { throw new UnexpectedTypeException($constraint, NotBlank::class); } if ($constraint->allowNull && null === $value) { return; } if (\is_string($value) && null !== $constraint->normalizer) { $value = ($constraint->normalizer)($value); } if (false === $value || (empty($value) && '0' != $value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(NotBlank::IS_BLANK_ERROR) ->addViolation(); } } } Constraints/NotCompromisedPassword.php 0000644 00000002744 15120140577 0014262 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * Checks if a password has been leaked in a data breach. * * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Kévin Dunglas <dunglas@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class NotCompromisedPassword extends Constraint { public const COMPROMISED_PASSWORD_ERROR = 'd9bcdbfe-a9d6-4bfa-a8ff-da5fd93e0f6d'; protected static $errorNames = [self::COMPROMISED_PASSWORD_ERROR => 'COMPROMISED_PASSWORD_ERROR']; public $message = 'This password has been leaked in a data breach, it must not be used. Please use another password.'; public $threshold = 1; public $skipOnError = false; public function __construct( array $options = null, string $message = null, int $threshold = null, bool $skipOnError = null, array $groups = null, $payload = null ) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->threshold = $threshold ?? $this->threshold; $this->skipOnError = $skipOnError ?? $this->skipOnError; } } Constraints/NotCompromisedPasswordValidator.php 0000644 00000006740 15120140577 0016130 0 ustar 00 <?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\Constraints; use Symfony\Component\HttpClient\HttpClient; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; use Symfony\Contracts\HttpClient\Exception\ExceptionInterface; use Symfony\Contracts\HttpClient\HttpClientInterface; /** * Checks if a password has been leaked in a data breach using haveibeenpwned.com's API. * Use a k-anonymity model to protect the password being searched for. * * @see https://haveibeenpwned.com/API/v2#SearchingPwnedPasswordsByRange * * @author Kévin Dunglas <dunglas@gmail.com> */ class NotCompromisedPasswordValidator extends ConstraintValidator { private const DEFAULT_API_ENDPOINT = 'https://api.pwnedpasswords.com/range/%s'; private $httpClient; private $charset; private $enabled; private $endpoint; public function __construct(HttpClientInterface $httpClient = null, string $charset = 'UTF-8', bool $enabled = true, string $endpoint = null) { if (null === $httpClient && !class_exists(HttpClient::class)) { throw new \LogicException(sprintf('The "%s" class requires the "HttpClient" component. Try running "composer require symfony/http-client".', self::class)); } $this->httpClient = $httpClient ?? HttpClient::create(); $this->charset = $charset; $this->enabled = $enabled; $this->endpoint = $endpoint ?? self::DEFAULT_API_ENDPOINT; } /** * {@inheritdoc} * * @throws ExceptionInterface */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof NotCompromisedPassword) { throw new UnexpectedTypeException($constraint, NotCompromisedPassword::class); } if (!$this->enabled) { return; } if (null !== $value && !\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if ('' === $value) { return; } if ('UTF-8' !== $this->charset) { $value = mb_convert_encoding($value, 'UTF-8', $this->charset); } $hash = strtoupper(sha1($value)); $hashPrefix = substr($hash, 0, 5); $url = sprintf($this->endpoint, $hashPrefix); try { $result = $this->httpClient->request('GET', $url)->getContent(); } catch (ExceptionInterface $e) { if ($constraint->skipOnError) { return; } throw $e; } foreach (explode("\r\n", $result) as $line) { if (!str_contains($line, ':')) { continue; } [$hashSuffix, $count] = explode(':', $line); if ($hashPrefix.$hashSuffix === $hash && $constraint->threshold <= (int) $count) { $this->context->buildViolation($constraint->message) ->setCode(NotCompromisedPassword::COMPROMISED_PASSWORD_ERROR) ->addViolation(); return; } } } } Constraints/NotEqualTo.php 0000644 00000001541 15120140577 0011622 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class NotEqualTo extends AbstractComparison { public const IS_EQUAL_ERROR = 'aa2e33da-25c8-4d76-8c6c-812f02ea89dd'; protected static $errorNames = [ self::IS_EQUAL_ERROR => 'IS_EQUAL_ERROR', ]; public $message = 'This value should not be equal to {{ compared_value }}.'; } Constraints/NotEqualToValidator.php 0000644 00000001415 15120140577 0013470 0 ustar 00 <?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\Constraints; /** * Validates values are all unequal (!=). * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ class NotEqualToValidator extends AbstractComparisonValidator { /** * {@inheritdoc} */ protected function compareValues($value1, $value2) { return $value1 != $value2; } /** * {@inheritdoc} */ protected function getErrorCode() { return NotEqualTo::IS_EQUAL_ERROR; } } Constraints/NotIdenticalTo.php 0000644 00000001617 15120140577 0012453 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class NotIdenticalTo extends AbstractComparison { public const IS_IDENTICAL_ERROR = '4aaac518-0dda-4129-a6d9-e216b9b454a0'; protected static $errorNames = [ self::IS_IDENTICAL_ERROR => 'IS_IDENTICAL_ERROR', ]; public $message = 'This value should not be identical to {{ compared_value_type }} {{ compared_value }}.'; } Constraints/NotIdenticalToValidator.php 0000644 00000001434 15120140577 0014316 0 ustar 00 <?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\Constraints; /** * Validates values aren't identical (!==). * * @author Daniel Holmes <daniel@danielholmes.org> * @author Bernhard Schussek <bschussek@gmail.com> */ class NotIdenticalToValidator extends AbstractComparisonValidator { /** * {@inheritdoc} */ protected function compareValues($value1, $value2) { return $value1 !== $value2; } /** * {@inheritdoc} */ protected function getErrorCode() { return NotIdenticalTo::IS_IDENTICAL_ERROR; } } Constraints/NotNull.php 0000644 00000002055 15120140577 0011163 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class NotNull extends Constraint { public const IS_NULL_ERROR = 'ad32d13f-c3d4-423b-909a-857b961eb720'; protected static $errorNames = [ self::IS_NULL_ERROR => 'IS_NULL_ERROR', ]; public $message = 'This value should not be null.'; public function __construct(array $options = null, string $message = null, array $groups = null, $payload = null) { parent::__construct($options ?? [], $groups, $payload); $this->message = $message ?? $this->message; } } Constraints/NotNullValidator.php 0000644 00000002065 15120140577 0013032 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class NotNullValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof NotNull) { throw new UnexpectedTypeException($constraint, NotNull::class); } if (null === $value) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(NotNull::IS_NULL_ERROR) ->addViolation(); } } } Constraints/NumberConstraintTrait.php 0000644 00000002431 15120140577 0014067 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; trigger_deprecation('symfony/validator', '5.2', '%s is deprecated.', NumberConstraintTrait::class); /** * @author Jan Schädlich <jan.schaedlich@sensiolabs.de> * * @deprecated since Symfony 5.2 */ trait NumberConstraintTrait { private function configureNumberConstraintOptions($options): array { if (null === $options) { $options = []; } elseif (!\is_array($options)) { $options = [$this->getDefaultOption() => $options]; } if (isset($options['propertyPath'])) { throw new ConstraintDefinitionException(sprintf('The "propertyPath" option of the "%s" constraint cannot be set.', static::class)); } if (isset($options['value'])) { throw new ConstraintDefinitionException(sprintf('The "value" option of the "%s" constraint cannot be set.', static::class)); } $options['value'] = 0; return $options; } } Constraints/Optional.php 0000644 00000000657 15120140577 0011363 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ class Optional extends Existence { } Constraints/Positive.php 0000644 00000001220 15120140577 0011363 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Jan Schädlich <jan.schaedlich@sensiolabs.de> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Positive extends GreaterThan { use ZeroComparisonConstraintTrait; public $message = 'This value should be positive.'; } Constraints/PositiveOrZero.php 0000644 00000001254 15120140577 0012533 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Jan Schädlich <jan.schaedlich@sensiolabs.de> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class PositiveOrZero extends GreaterThanOrEqual { use ZeroComparisonConstraintTrait; public $message = 'This value should be either positive or zero.'; } Constraints/Range.php 0000644 00000012204 15120140577 0010621 0 ustar 00 <?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\Constraints; use Symfony\Component\PropertyAccess\PropertyAccess; use Symfony\Component\PropertyAccess\PropertyPathInterface; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\LogicException; use Symfony\Component\Validator\Exception\MissingOptionsException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Range extends Constraint { public const INVALID_CHARACTERS_ERROR = 'ad9a9798-7a99-4df7-8ce9-46e416a1e60b'; public const NOT_IN_RANGE_ERROR = '04b91c99-a946-4221-afc5-e65ebac401eb'; public const TOO_HIGH_ERROR = '2d28afcb-e32e-45fb-a815-01c431a86a69'; public const TOO_LOW_ERROR = '76454e69-502c-46c5-9643-f447d837c4d5'; protected static $errorNames = [ self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR', self::NOT_IN_RANGE_ERROR => 'NOT_IN_RANGE_ERROR', self::TOO_HIGH_ERROR => 'TOO_HIGH_ERROR', self::TOO_LOW_ERROR => 'TOO_LOW_ERROR', ]; public $notInRangeMessage = 'This value should be between {{ min }} and {{ max }}.'; public $minMessage = 'This value should be {{ limit }} or more.'; public $maxMessage = 'This value should be {{ limit }} or less.'; public $invalidMessage = 'This value should be a valid number.'; public $invalidDateTimeMessage = 'This value should be a valid datetime.'; public $min; public $minPropertyPath; public $max; public $maxPropertyPath; /** * @internal */ public $deprecatedMinMessageSet = false; /** * @internal */ public $deprecatedMaxMessageSet = false; /** * {@inheritdoc} * * @param string|PropertyPathInterface|null $minPropertyPath * @param string|PropertyPathInterface|null $maxPropertyPath */ public function __construct( array $options = null, string $notInRangeMessage = null, string $minMessage = null, string $maxMessage = null, string $invalidMessage = null, string $invalidDateTimeMessage = null, $min = null, $minPropertyPath = null, $max = null, $maxPropertyPath = null, array $groups = null, $payload = null ) { parent::__construct($options, $groups, $payload); $this->notInRangeMessage = $notInRangeMessage ?? $this->notInRangeMessage; $this->minMessage = $minMessage ?? $this->minMessage; $this->maxMessage = $maxMessage ?? $this->maxMessage; $this->invalidMessage = $invalidMessage ?? $this->invalidMessage; $this->invalidDateTimeMessage = $invalidDateTimeMessage ?? $this->invalidDateTimeMessage; $this->min = $min ?? $this->min; $this->minPropertyPath = $minPropertyPath ?? $this->minPropertyPath; $this->max = $max ?? $this->max; $this->maxPropertyPath = $maxPropertyPath ?? $this->maxPropertyPath; if (null === $this->min && null === $this->minPropertyPath && null === $this->max && null === $this->maxPropertyPath) { throw new MissingOptionsException(sprintf('Either option "min", "minPropertyPath", "max" or "maxPropertyPath" must be given for constraint "%s".', __CLASS__), ['min', 'minPropertyPath', 'max', 'maxPropertyPath']); } if (null !== $this->min && null !== $this->minPropertyPath) { throw new ConstraintDefinitionException(sprintf('The "%s" constraint requires only one of the "min" or "minPropertyPath" options to be set, not both.', static::class)); } if (null !== $this->max && null !== $this->maxPropertyPath) { throw new ConstraintDefinitionException(sprintf('The "%s" constraint requires only one of the "max" or "maxPropertyPath" options to be set, not both.', static::class)); } if ((null !== $this->minPropertyPath || null !== $this->maxPropertyPath) && !class_exists(PropertyAccess::class)) { throw new LogicException(sprintf('The "%s" constraint requires the Symfony PropertyAccess component to use the "minPropertyPath" or "maxPropertyPath" option.', static::class)); } if (null !== $this->min && null !== $this->max) { $this->deprecatedMinMessageSet = isset($options['minMessage']) || null !== $minMessage; $this->deprecatedMaxMessageSet = isset($options['maxMessage']) || null !== $maxMessage; // BC layer, should throw a ConstraintDefinitionException in 6.0 if ($this->deprecatedMinMessageSet || $this->deprecatedMaxMessageSet) { trigger_deprecation('symfony/validator', '4.4', '"minMessage" and "maxMessage" are deprecated when the "min" and "max" options are both set. Use "notInRangeMessage" instead.'); } } } } Constraints/RangeValidator.php 0000644 00000017405 15120140577 0012477 0 ustar 00 <?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\Constraints; use Symfony\Component\PropertyAccess\Exception\NoSuchPropertyException; use Symfony\Component\PropertyAccess\PropertyAccess; use Symfony\Component\PropertyAccess\PropertyAccessorInterface; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class RangeValidator extends ConstraintValidator { private $propertyAccessor; public function __construct(PropertyAccessorInterface $propertyAccessor = null) { $this->propertyAccessor = $propertyAccessor; } /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Range) { throw new UnexpectedTypeException($constraint, Range::class); } if (null === $value) { return; } $min = $this->getLimit($constraint->minPropertyPath, $constraint->min, $constraint); $max = $this->getLimit($constraint->maxPropertyPath, $constraint->max, $constraint); if (!is_numeric($value) && !$value instanceof \DateTimeInterface) { if ($this->isParsableDatetimeString($min) && $this->isParsableDatetimeString($max)) { $this->context->buildViolation($constraint->invalidDateTimeMessage) ->setParameter('{{ value }}', $this->formatValue($value, self::PRETTY_DATE)) ->setCode(Range::INVALID_CHARACTERS_ERROR) ->addViolation(); } else { $this->context->buildViolation($constraint->invalidMessage) ->setParameter('{{ value }}', $this->formatValue($value, self::PRETTY_DATE)) ->setCode(Range::INVALID_CHARACTERS_ERROR) ->addViolation(); } return; } // Convert strings to DateTimes if comparing another DateTime // This allows to compare with any date/time value supported by // the DateTime constructor: // https://php.net/datetime.formats if ($value instanceof \DateTimeInterface) { $dateTimeClass = null; if (\is_string($min)) { $dateTimeClass = $value instanceof \DateTimeImmutable ? \DateTimeImmutable::class : \DateTime::class; try { $min = new $dateTimeClass($min); } catch (\Exception $e) { throw new ConstraintDefinitionException(sprintf('The min value "%s" could not be converted to a "%s" instance in the "%s" constraint.', $min, $dateTimeClass, get_debug_type($constraint))); } } if (\is_string($max)) { $dateTimeClass = $dateTimeClass ?: ($value instanceof \DateTimeImmutable ? \DateTimeImmutable::class : \DateTime::class); try { $max = new $dateTimeClass($max); } catch (\Exception $e) { throw new ConstraintDefinitionException(sprintf('The max value "%s" could not be converted to a "%s" instance in the "%s" constraint.', $max, $dateTimeClass, get_debug_type($constraint))); } } } $hasLowerLimit = null !== $min; $hasUpperLimit = null !== $max; if ($hasLowerLimit && $hasUpperLimit && ($value < $min || $value > $max)) { $message = $constraint->notInRangeMessage; $code = Range::NOT_IN_RANGE_ERROR; if ($value < $min && $constraint->deprecatedMinMessageSet) { $message = $constraint->minMessage; $code = Range::TOO_LOW_ERROR; } if ($value > $max && $constraint->deprecatedMaxMessageSet) { $message = $constraint->maxMessage; $code = Range::TOO_HIGH_ERROR; } $violationBuilder = $this->context->buildViolation($message) ->setParameter('{{ value }}', $this->formatValue($value, self::PRETTY_DATE)) ->setParameter('{{ min }}', $this->formatValue($min, self::PRETTY_DATE)) ->setParameter('{{ max }}', $this->formatValue($max, self::PRETTY_DATE)) ->setCode($code); if (null !== $constraint->maxPropertyPath) { $violationBuilder->setParameter('{{ max_limit_path }}', $constraint->maxPropertyPath); } if (null !== $constraint->minPropertyPath) { $violationBuilder->setParameter('{{ min_limit_path }}', $constraint->minPropertyPath); } $violationBuilder->addViolation(); return; } if ($hasUpperLimit && $value > $max) { $violationBuilder = $this->context->buildViolation($constraint->maxMessage) ->setParameter('{{ value }}', $this->formatValue($value, self::PRETTY_DATE)) ->setParameter('{{ limit }}', $this->formatValue($max, self::PRETTY_DATE)) ->setCode(Range::TOO_HIGH_ERROR); if (null !== $constraint->maxPropertyPath) { $violationBuilder->setParameter('{{ max_limit_path }}', $constraint->maxPropertyPath); } if (null !== $constraint->minPropertyPath) { $violationBuilder->setParameter('{{ min_limit_path }}', $constraint->minPropertyPath); } $violationBuilder->addViolation(); return; } if ($hasLowerLimit && $value < $min) { $violationBuilder = $this->context->buildViolation($constraint->minMessage) ->setParameter('{{ value }}', $this->formatValue($value, self::PRETTY_DATE)) ->setParameter('{{ limit }}', $this->formatValue($min, self::PRETTY_DATE)) ->setCode(Range::TOO_LOW_ERROR); if (null !== $constraint->maxPropertyPath) { $violationBuilder->setParameter('{{ max_limit_path }}', $constraint->maxPropertyPath); } if (null !== $constraint->minPropertyPath) { $violationBuilder->setParameter('{{ min_limit_path }}', $constraint->minPropertyPath); } $violationBuilder->addViolation(); } } private function getLimit(?string $propertyPath, $default, Constraint $constraint) { if (null === $propertyPath) { return $default; } if (null === $object = $this->context->getObject()) { return $default; } try { return $this->getPropertyAccessor()->getValue($object, $propertyPath); } catch (NoSuchPropertyException $e) { throw new ConstraintDefinitionException(sprintf('Invalid property path "%s" provided to "%s" constraint: ', $propertyPath, get_debug_type($constraint)).$e->getMessage(), 0, $e); } } private function getPropertyAccessor(): PropertyAccessorInterface { if (null === $this->propertyAccessor) { $this->propertyAccessor = PropertyAccess::createPropertyAccessor(); } return $this->propertyAccessor; } private function isParsableDatetimeString($boundary): bool { if (null === $boundary) { return true; } if (!\is_string($boundary)) { return false; } try { new \DateTime($boundary); } catch (\Exception $e) { return false; } return true; } } Constraints/Regex.php 0000644 00000007667 15120140577 0010660 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\InvalidArgumentException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Regex extends Constraint { public const REGEX_FAILED_ERROR = 'de1e3db3-5ed4-4941-aae4-59f3667cc3a3'; protected static $errorNames = [ self::REGEX_FAILED_ERROR => 'REGEX_FAILED_ERROR', ]; public $message = 'This value is not valid.'; public $pattern; public $htmlPattern; public $match = true; public $normalizer; /** * {@inheritdoc} * * @param string|array $pattern The pattern to evaluate or an array of options */ public function __construct( $pattern, string $message = null, string $htmlPattern = null, bool $match = null, callable $normalizer = null, array $groups = null, $payload = null, array $options = [] ) { if (\is_array($pattern)) { $options = array_merge($pattern, $options); } elseif (null !== $pattern) { $options['value'] = $pattern; } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->htmlPattern = $htmlPattern ?? $this->htmlPattern; $this->match = $match ?? $this->match; $this->normalizer = $normalizer ?? $this->normalizer; if (null !== $this->normalizer && !\is_callable($this->normalizer)) { throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer))); } } /** * {@inheritdoc} */ public function getDefaultOption() { return 'pattern'; } /** * {@inheritdoc} */ public function getRequiredOptions() { return ['pattern']; } /** * Converts the htmlPattern to a suitable format for HTML5 pattern. * Example: /^[a-z]+$/ would be converted to [a-z]+ * However, if options are specified, it cannot be converted. * * @see http://dev.w3.org/html5/spec/single-page.html#the-pattern-attribute * * @return string|null */ public function getHtmlPattern() { // If htmlPattern is specified, use it if (null !== $this->htmlPattern) { return empty($this->htmlPattern) ? null : $this->htmlPattern; } // Quit if delimiters not at very beginning/end (e.g. when options are passed) if ($this->pattern[0] !== $this->pattern[\strlen($this->pattern) - 1]) { return null; } $delimiter = $this->pattern[0]; // Unescape the delimiter $pattern = str_replace('\\'.$delimiter, $delimiter, substr($this->pattern, 1, -1)); // If the pattern is inverted, we can wrap it in // ((?!pattern).)* if (!$this->match) { return '((?!'.$pattern.').)*'; } // If the pattern contains an or statement, wrap the pattern in // .*(pattern).* and quit. Otherwise we'd need to parse the pattern if (str_contains($pattern, '|')) { return '.*('.$pattern.').*'; } // Trim leading ^, otherwise prepend .* $pattern = '^' === $pattern[0] ? substr($pattern, 1) : '.*'.$pattern; // Trim trailing $, otherwise append .* $pattern = '$' === $pattern[\strlen($pattern) - 1] ? substr($pattern, 0, -1) : $pattern.'.*'; return $pattern; } } Constraints/RegexValidator.php 0000644 00000003255 15120140577 0012513 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * Validates whether a value match or not given regexp pattern. * * @author Bernhard Schussek <bschussek@gmail.com> * @author Joseph Bielawski <stloyd@gmail.com> */ class RegexValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Regex) { throw new UnexpectedTypeException($constraint, Regex::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if (null !== $constraint->normalizer) { $value = ($constraint->normalizer)($value); } if ($constraint->match xor preg_match($constraint->pattern, $value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Regex::REGEX_FAILED_ERROR) ->addViolation(); } } } Constraints/Required.php 0000644 00000000657 15120140577 0011356 0 ustar 00 <?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\Constraints; /** * @Annotation * @Target({"ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ class Required extends Existence { } Constraints/Sequentially.php 0000644 00000002461 15120140577 0012250 0 ustar 00 <?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\Constraints; /** * Use this constraint to sequentially validate nested constraints. * Validation for the nested constraints collection will stop at first violation. * * @Annotation * @Target({"CLASS", "PROPERTY", "METHOD", "ANNOTATION"}) * * @author Maxime Steinhausser <maxime.steinhausser@gmail.com> */ #[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Sequentially extends Composite { public $constraints = []; public function __construct($constraints = null, array $groups = null, $payload = null) { parent::__construct($constraints ?? [], $groups, $payload); } public function getDefaultOption() { return 'constraints'; } public function getRequiredOptions() { return ['constraints']; } protected function getCompositeOption() { return 'constraints'; } public function getTargets() { return [self::CLASS_CONSTRAINT, self::PROPERTY_CONSTRAINT]; } } Constraints/SequentiallyValidator.php 0000644 00000002264 15120140577 0014117 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Maxime Steinhausser <maxime.steinhausser@gmail.com> */ class SequentiallyValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Sequentially) { throw new UnexpectedTypeException($constraint, Sequentially::class); } $context = $this->context; $validator = $context->getValidator()->inContext($context); $originalCount = $validator->getViolations()->count(); foreach ($constraint->constraints as $c) { if ($originalCount !== $validator->validate($value, $c)->getViolations()->count()) { break; } } } } Constraints/Time.php 0000644 00000002344 15120140577 0010467 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Time extends Constraint { public const INVALID_FORMAT_ERROR = '9d27b2bb-f755-4fbf-b725-39b1edbdebdf'; public const INVALID_TIME_ERROR = '8532f9e1-84b2-4d67-8989-0818bc38533b'; protected static $errorNames = [ self::INVALID_FORMAT_ERROR => 'INVALID_FORMAT_ERROR', self::INVALID_TIME_ERROR => 'INVALID_TIME_ERROR', ]; public $message = 'This value is not a valid time.'; public function __construct( array $options = null, string $message = null, array $groups = null, $payload = null ) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; } } Constraints/TimeValidator.php 0000644 00000004117 15120140577 0012335 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class TimeValidator extends ConstraintValidator { public const PATTERN = '/^(\d{2}):(\d{2}):(\d{2})$/'; /** * Checks whether a time is valid. * * @internal */ public static function checkTime(int $hour, int $minute, float $second): bool { return $hour >= 0 && $hour < 24 && $minute >= 0 && $minute < 60 && $second >= 0 && $second < 60; } /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Time) { throw new UnexpectedTypeException($constraint, Time::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if (!preg_match(static::PATTERN, $value, $matches)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Time::INVALID_FORMAT_ERROR) ->addViolation(); return; } if (!self::checkTime($matches[1], $matches[2], $matches[3])) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Time::INVALID_TIME_ERROR) ->addViolation(); } } } Constraints/Timezone.php 0000644 00000006410 15120140577 0011361 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Javier Spagnoletti <phansys@gmail.com> * @author Hugo Hamon <hugohamon@neuf.fr> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Timezone extends Constraint { public const TIMEZONE_IDENTIFIER_ERROR = '5ce113e6-5e64-4ea2-90fe-d2233956db13'; public const TIMEZONE_IDENTIFIER_IN_ZONE_ERROR = 'b57767b1-36c0-40ac-a3d7-629420c775b8'; public const TIMEZONE_IDENTIFIER_IN_COUNTRY_ERROR = 'c4a22222-dc92-4fc0-abb0-d95b268c7d0b'; public const TIMEZONE_IDENTIFIER_INTL_ERROR = '45863c26-88dc-41ba-bf53-c73bd1f7e90d'; public $zone = \DateTimeZone::ALL; public $countryCode; public $intlCompatible = false; public $message = 'This value is not a valid timezone.'; protected static $errorNames = [ self::TIMEZONE_IDENTIFIER_ERROR => 'TIMEZONE_IDENTIFIER_ERROR', self::TIMEZONE_IDENTIFIER_IN_ZONE_ERROR => 'TIMEZONE_IDENTIFIER_IN_ZONE_ERROR', self::TIMEZONE_IDENTIFIER_IN_COUNTRY_ERROR => 'TIMEZONE_IDENTIFIER_IN_COUNTRY_ERROR', self::TIMEZONE_IDENTIFIER_INTL_ERROR => 'TIMEZONE_IDENTIFIER_INTL_ERROR', ]; /** * {@inheritdoc} * * @param int|array|null $zone A combination of {@see \DateTimeZone} class constants or a set of options */ public function __construct( $zone = null, string $message = null, string $countryCode = null, bool $intlCompatible = null, array $groups = null, $payload = null, array $options = [] ) { if (\is_array($zone)) { $options = array_merge($zone, $options); } elseif (null !== $zone) { $options['value'] = $zone; } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->countryCode = $countryCode ?? $this->countryCode; $this->intlCompatible = $intlCompatible ?? $this->intlCompatible; if (null === $this->countryCode) { if (0 >= $this->zone || \DateTimeZone::ALL_WITH_BC < $this->zone) { throw new ConstraintDefinitionException('The option "zone" must be a valid range of "\DateTimeZone" constants.'); } } elseif (\DateTimeZone::PER_COUNTRY !== (\DateTimeZone::PER_COUNTRY & $this->zone)) { throw new ConstraintDefinitionException('The option "countryCode" can only be used when the "zone" option is configured with "\DateTimeZone::PER_COUNTRY".'); } if ($this->intlCompatible && !class_exists(\IntlTimeZone::class)) { throw new ConstraintDefinitionException('The option "intlCompatible" can only be used when the PHP intl extension is available.'); } } /** * {@inheritdoc} */ public function getDefaultOption() { return 'zone'; } } Constraints/TimezoneValidator.php 0000644 00000007535 15120140577 0013240 0 ustar 00 <?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\Constraints; use Symfony\Component\Intl\Exception\MissingResourceException; use Symfony\Component\Intl\Timezones; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * Validates whether a value is a valid timezone identifier. * * @author Javier Spagnoletti <phansys@gmail.com> * @author Hugo Hamon <hugohamon@neuf.fr> */ class TimezoneValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Timezone) { throw new UnexpectedTypeException($constraint, Timezone::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if ($constraint->intlCompatible && 'Etc/Unknown' === \IntlTimeZone::createTimeZone($value)->getID()) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Timezone::TIMEZONE_IDENTIFIER_INTL_ERROR) ->addViolation(); return; } if ( \in_array($value, self::getPhpTimezones($constraint->zone, $constraint->countryCode), true) || \in_array($value, self::getIntlTimezones($constraint->zone, $constraint->countryCode), true) ) { return; } if ($constraint->countryCode) { $code = Timezone::TIMEZONE_IDENTIFIER_IN_COUNTRY_ERROR; } elseif (\DateTimeZone::ALL !== $constraint->zone) { $code = Timezone::TIMEZONE_IDENTIFIER_IN_ZONE_ERROR; } else { $code = Timezone::TIMEZONE_IDENTIFIER_ERROR; } $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode($code) ->addViolation(); } private static function getPhpTimezones(int $zone, string $countryCode = null): array { if (null !== $countryCode) { try { return @\DateTimeZone::listIdentifiers($zone, $countryCode) ?: []; } catch (\ValueError $e) { return []; } } return \DateTimeZone::listIdentifiers($zone); } private static function getIntlTimezones(int $zone, string $countryCode = null): array { if (!class_exists(Timezones::class)) { return []; } if (null !== $countryCode) { try { return Timezones::forCountryCode($countryCode); } catch (MissingResourceException $e) { return []; } } $timezones = Timezones::getIds(); if (\DateTimeZone::ALL === (\DateTimeZone::ALL & $zone)) { return $timezones; } $filtered = []; foreach ((new \ReflectionClass(\DateTimeZone::class))->getConstants() as $const => $flag) { if ($flag !== ($flag & $zone)) { continue; } $filtered[] = array_filter($timezones, static function ($id) use ($const) { return 0 === stripos($id, $const.'/'); }); } return $filtered ? array_merge(...$filtered) : []; } } Constraints/Traverse.php 0000644 00000002277 15120140577 0011371 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * @Annotation * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_CLASS)] class Traverse extends Constraint { public $traverse = true; /** * @param bool|array|null $traverse */ public function __construct($traverse = null) { if (\is_array($traverse) && \array_key_exists('groups', $traverse)) { throw new ConstraintDefinitionException(sprintf('The option "groups" is not supported by the constraint "%s".', __CLASS__)); } parent::__construct($traverse); } /** * {@inheritdoc} */ public function getDefaultOption() { return 'traverse'; } /** * {@inheritdoc} */ public function getTargets() { return self::CLASS_CONSTRAINT; } } Constraints/Type.php 0000644 00000003211 15120140577 0010504 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Type extends Constraint { public const INVALID_TYPE_ERROR = 'ba785a8c-82cb-4283-967c-3cf342181b40'; protected static $errorNames = [ self::INVALID_TYPE_ERROR => 'INVALID_TYPE_ERROR', ]; public $message = 'This value should be of type {{ type }}.'; public $type; /** * {@inheritdoc} * * @param string|array $type One ore multiple types to validate against or a set of options */ public function __construct($type, string $message = null, array $groups = null, $payload = null, array $options = []) { if (\is_array($type) && \is_string(key($type))) { $options = array_merge($type, $options); } elseif (null !== $type) { $options['value'] = $type; } parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; } /** * {@inheritdoc} */ public function getDefaultOption() { return 'type'; } /** * {@inheritdoc} */ public function getRequiredOptions() { return ['type']; } } Constraints/TypeValidator.php 0000644 00000004711 15120140577 0012360 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class TypeValidator extends ConstraintValidator { private const VALIDATION_FUNCTIONS = [ 'bool' => 'is_bool', 'boolean' => 'is_bool', 'int' => 'is_int', 'integer' => 'is_int', 'long' => 'is_int', 'float' => 'is_float', 'double' => 'is_float', 'real' => 'is_float', 'numeric' => 'is_numeric', 'string' => 'is_string', 'scalar' => 'is_scalar', 'array' => 'is_array', 'iterable' => 'is_iterable', 'countable' => 'is_countable', 'callable' => 'is_callable', 'object' => 'is_object', 'resource' => 'is_resource', 'null' => 'is_null', 'alnum' => 'ctype_alnum', 'alpha' => 'ctype_alpha', 'cntrl' => 'ctype_cntrl', 'digit' => 'ctype_digit', 'graph' => 'ctype_graph', 'lower' => 'ctype_lower', 'print' => 'ctype_print', 'punct' => 'ctype_punct', 'space' => 'ctype_space', 'upper' => 'ctype_upper', 'xdigit' => 'ctype_xdigit', ]; /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Type) { throw new UnexpectedTypeException($constraint, Type::class); } if (null === $value) { return; } $types = (array) $constraint->type; foreach ($types as $type) { $type = strtolower($type); if (isset(self::VALIDATION_FUNCTIONS[$type]) && self::VALIDATION_FUNCTIONS[$type]($value)) { return; } if ($value instanceof $type) { return; } } $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setParameter('{{ type }}', implode('|', $types)) ->setCode(Type::INVALID_TYPE_ERROR) ->addViolation(); } } Constraints/Ulid.php 0000644 00000002653 15120140577 0010471 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * * @author Laurent Clouet <laurent35240@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Ulid extends Constraint { public const TOO_SHORT_ERROR = '7b44804e-37d5-4df4-9bdd-b738d4a45bb4'; public const TOO_LONG_ERROR = '9608249f-6da1-4d53-889e-9864b58c4d37'; public const INVALID_CHARACTERS_ERROR = 'e4155739-5135-4258-9c81-ae7b44b5311e'; public const TOO_LARGE_ERROR = 'df8cfb9a-ce6d-4a69-ae5a-eea7ab6f278b'; protected static $errorNames = [ self::TOO_SHORT_ERROR => 'TOO_SHORT_ERROR', self::TOO_LONG_ERROR => 'TOO_LONG_ERROR', self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR', self::TOO_LARGE_ERROR => 'TOO_LARGE_ERROR', ]; public $message = 'This is not a valid ULID.'; public function __construct( array $options = null, string $message = null, array $groups = null, $payload = null ) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; } } Constraints/UlidValidator.php 0000644 00000004625 15120140577 0012340 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * Validates whether the value is a valid ULID (Universally Unique Lexicographically Sortable Identifier). * Cf https://github.com/ulid/spec for ULID specifications. * * @author Laurent Clouet <laurent35240@gmail.com> */ class UlidValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Ulid) { throw new UnexpectedTypeException($constraint, Ulid::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if (26 !== \strlen($value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(26 > \strlen($value) ? Ulid::TOO_SHORT_ERROR : Ulid::TOO_LONG_ERROR) ->addViolation(); return; } if (\strlen($value) !== strspn($value, '0123456789ABCDEFGHJKMNPQRSTVWXYZabcdefghjkmnpqrstvwxyz')) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Ulid::INVALID_CHARACTERS_ERROR) ->addViolation(); return; } // Largest valid ULID is '7ZZZZZZZZZZZZZZZZZZZZZZZZZ' // Cf https://github.com/ulid/spec#overflow-errors-when-parsing-base32-strings if ($value[0] > '7') { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Ulid::TOO_LARGE_ERROR) ->addViolation(); } } } Constraints/Unique.php 0000644 00000003040 15120140577 0011031 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\InvalidArgumentException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Yevgeniy Zholkevskiy <zhenya.zholkevskiy@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Unique extends Constraint { public const IS_NOT_UNIQUE = '7911c98d-b845-4da0-94b7-a8dac36bc55a'; protected static $errorNames = [ self::IS_NOT_UNIQUE => 'IS_NOT_UNIQUE', ]; public $message = 'This collection should contain only unique elements.'; public $normalizer; public function __construct( array $options = null, string $message = null, callable $normalizer = null, array $groups = null, $payload = null ) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->normalizer = $normalizer ?? $this->normalizer; if (null !== $this->normalizer && !\is_callable($this->normalizer)) { throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer))); } } } Constraints/UniqueValidator.php 0000644 00000003642 15120140577 0012707 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Yevgeniy Zholkevskiy <zhenya.zholkevskiy@gmail.com> */ class UniqueValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Unique) { throw new UnexpectedTypeException($constraint, Unique::class); } if (null === $value) { return; } if (!\is_array($value) && !$value instanceof \IteratorAggregate) { throw new UnexpectedValueException($value, 'array|IteratorAggregate'); } $collectionElements = []; $normalizer = $this->getNormalizer($constraint); foreach ($value as $element) { $element = $normalizer($element); if (\in_array($element, $collectionElements, true)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Unique::IS_NOT_UNIQUE) ->addViolation(); return; } $collectionElements[] = $element; } } private function getNormalizer(Unique $unique): callable { if (null === $unique->normalizer) { return static function ($value) { return $value; }; } return $unique->normalizer; } } Constraints/Url.php 0000644 00000003453 15120140577 0010335 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\InvalidArgumentException; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Url extends Constraint { public const INVALID_URL_ERROR = '57c2f299-1154-4870-89bb-ef3b1f5ad229'; protected static $errorNames = [ self::INVALID_URL_ERROR => 'INVALID_URL_ERROR', ]; public $message = 'This value is not a valid URL.'; public $protocols = ['http', 'https']; public $relativeProtocol = false; public $normalizer; public function __construct( array $options = null, string $message = null, array $protocols = null, bool $relativeProtocol = null, callable $normalizer = null, array $groups = null, $payload = null ) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->protocols = $protocols ?? $this->protocols; $this->relativeProtocol = $relativeProtocol ?? $this->relativeProtocol; $this->normalizer = $normalizer ?? $this->normalizer; if (null !== $this->normalizer && !\is_callable($this->normalizer)) { throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer))); } } } Constraints/UrlValidator.php 0000644 00000011525 15120140577 0012202 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class UrlValidator extends ConstraintValidator { public const PATTERN = '~^ (%s):// # protocol (((?:[\_\.\pL\pN-]|%%[0-9A-Fa-f]{2})+:)?((?:[\_\.\pL\pN-]|%%[0-9A-Fa-f]{2})+)@)? # basic auth ( (?: (?:xn--[a-z0-9-]++\.)*+xn--[a-z0-9-]++ # a domain name using punycode | (?:[\pL\pN\pS\pM\-\_]++\.)+[\pL\pN\pM]++ # a multi-level domain name | [a-z0-9\-\_]++ # a single-level domain name )\.? | # or \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} # an IP address | # or \[ (?:(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){6})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:::(?:(?:(?:[0-9a-f]{1,4})):){5})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){4})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,1}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){3})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,2}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){2})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,3}(?:(?:[0-9a-f]{1,4})))?::(?:(?:[0-9a-f]{1,4})):)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,4}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,5}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,6}(?:(?:[0-9a-f]{1,4})))?::)))) \] # an IPv6 address ) (:[0-9]+)? # a port (optional) (?:/ (?:[\pL\pN\-._\~!$&\'()*+,;=:@]|%%[0-9A-Fa-f]{2})* )* # a path (?:\? (?:[\pL\pN\-._\~!$&\'\[\]()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )? # a query (optional) (?:\# (?:[\pL\pN\-._\~!$&\'()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )? # a fragment (optional) $~ixu'; /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Url) { throw new UnexpectedTypeException($constraint, Url::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if ('' === $value) { return; } if (null !== $constraint->normalizer) { $value = ($constraint->normalizer)($value); } $pattern = $constraint->relativeProtocol ? str_replace('(%s):', '(?:(%s):)?', static::PATTERN) : static::PATTERN; $pattern = sprintf($pattern, implode('|', $constraint->protocols)); if (!preg_match($pattern, $value)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Url::INVALID_URL_ERROR) ->addViolation(); return; } } } Constraints/Uuid.php 0000644 00000006660 15120140577 0010504 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\InvalidArgumentException; /** * @Annotation * * @author Colin O'Dell <colinodell@gmail.com> * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Uuid extends Constraint { public const TOO_SHORT_ERROR = 'aa314679-dac9-4f54-bf97-b2049df8f2a3'; public const TOO_LONG_ERROR = '494897dd-36f8-4d31-8923-71a8d5f3000d'; public const INVALID_CHARACTERS_ERROR = '51120b12-a2bc-41bf-aa53-cd73daf330d0'; public const INVALID_HYPHEN_PLACEMENT_ERROR = '98469c83-0309-4f5d-bf95-a496dcaa869c'; public const INVALID_VERSION_ERROR = '21ba13b4-b185-4882-ac6f-d147355987eb'; public const INVALID_VARIANT_ERROR = '164ef693-2b9d-46de-ad7f-836201f0c2db'; protected static $errorNames = [ self::TOO_SHORT_ERROR => 'TOO_SHORT_ERROR', self::TOO_LONG_ERROR => 'TOO_LONG_ERROR', self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR', self::INVALID_HYPHEN_PLACEMENT_ERROR => 'INVALID_HYPHEN_PLACEMENT_ERROR', self::INVALID_VERSION_ERROR => 'INVALID_VERSION_ERROR', self::INVALID_VARIANT_ERROR => 'INVALID_VARIANT_ERROR', ]; // Possible versions defined by RFC 4122 public const V1_MAC = 1; public const V2_DCE = 2; public const V3_MD5 = 3; public const V4_RANDOM = 4; public const V5_SHA1 = 5; public const V6_SORTABLE = 6; public const ALL_VERSIONS = [ self::V1_MAC, self::V2_DCE, self::V3_MD5, self::V4_RANDOM, self::V5_SHA1, self::V6_SORTABLE, ]; /** * Message to display when validation fails. * * @var string */ public $message = 'This is not a valid UUID.'; /** * Strict mode only allows UUIDs that meet the formal definition and formatting per RFC 4122. * * Set this to `false` to allow legacy formats with different dash positioning or wrapping characters * * @var bool */ public $strict = true; /** * Array of allowed versions (see version constants above). * * All UUID versions are allowed by default * * @var int[] */ public $versions = self::ALL_VERSIONS; public $normalizer; /** * {@inheritdoc} * * @param int[]|null $versions */ public function __construct( array $options = null, string $message = null, array $versions = null, bool $strict = null, callable $normalizer = null, array $groups = null, $payload = null ) { parent::__construct($options, $groups, $payload); $this->message = $message ?? $this->message; $this->versions = $versions ?? $this->versions; $this->strict = $strict ?? $this->strict; $this->normalizer = $normalizer ?? $this->normalizer; if (null !== $this->normalizer && !\is_callable($this->normalizer)) { throw new InvalidArgumentException(sprintf('The "normalizer" option must be a valid callable ("%s" given).', get_debug_type($this->normalizer))); } } } Constraints/UuidValidator.php 0000644 00000020621 15120140577 0012343 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; /** * Validates whether the value is a valid UUID (also known as GUID). * * Strict validation will allow a UUID as specified per RFC 4122. * Loose validation will allow any type of UUID. * * @author Colin O'Dell <colinodell@gmail.com> * @author Bernhard Schussek <bschussek@gmail.com> * * @see http://tools.ietf.org/html/rfc4122 * @see https://en.wikipedia.org/wiki/Universally_unique_identifier */ class UuidValidator extends ConstraintValidator { // The strict pattern matches UUIDs like this: // xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx // Roughly speaking: // x = any hexadecimal character // M = any allowed version {1..6} // N = any allowed variant {8, 9, a, b} public const STRICT_LENGTH = 36; public const STRICT_FIRST_HYPHEN_POSITION = 8; public const STRICT_LAST_HYPHEN_POSITION = 23; public const STRICT_VERSION_POSITION = 14; public const STRICT_VARIANT_POSITION = 19; // The loose pattern validates similar yet non-compliant UUIDs. // Hyphens are completely optional. If present, they should only appear // between every fourth character: // xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx // xxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx // The value can also be wrapped with characters like []{}: // {xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx} // Neither the version nor the variant is validated by this pattern. public const LOOSE_MAX_LENGTH = 39; public const LOOSE_FIRST_HYPHEN_POSITION = 4; /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Uuid) { throw new UnexpectedTypeException($constraint, Uuid::class); } if (null === $value || '' === $value) { return; } if (!\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedValueException($value, 'string'); } $value = (string) $value; if (null !== $constraint->normalizer) { $value = ($constraint->normalizer)($value); } if ($constraint->strict) { $this->validateStrict($value, $constraint); return; } $this->validateLoose($value, $constraint); } private function validateLoose(string $value, Uuid $constraint) { // Error priority: // 1. ERROR_INVALID_CHARACTERS // 2. ERROR_INVALID_HYPHEN_PLACEMENT // 3. ERROR_TOO_SHORT/ERROR_TOO_LONG // Trim any wrapping characters like [] or {} used by some legacy systems $trimmed = trim($value, '[]{}'); // Position of the next expected hyphen $h = self::LOOSE_FIRST_HYPHEN_POSITION; // Expected length $l = self::LOOSE_MAX_LENGTH; for ($i = 0; $i < $l; ++$i) { // Check length if (!isset($trimmed[$i])) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Uuid::TOO_SHORT_ERROR) ->addViolation(); return; } // Hyphens must occur every fifth position // xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx // ^ ^ ^ ^ ^ ^ ^ if ('-' === $trimmed[$i]) { if ($i !== $h) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Uuid::INVALID_HYPHEN_PLACEMENT_ERROR) ->addViolation(); return; } $h += 5; continue; } // Missing hyphens are ignored if ($i === $h) { $h += 4; --$l; } // Check characters if (!ctype_xdigit($trimmed[$i])) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Uuid::INVALID_CHARACTERS_ERROR) ->addViolation(); return; } } // Check length again if (isset($trimmed[$i])) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Uuid::TOO_LONG_ERROR) ->addViolation(); } } private function validateStrict(string $value, Uuid $constraint) { // Error priority: // 1. ERROR_INVALID_CHARACTERS // 2. ERROR_INVALID_HYPHEN_PLACEMENT // 3. ERROR_TOO_SHORT/ERROR_TOO_LONG // 4. ERROR_INVALID_VERSION // 5. ERROR_INVALID_VARIANT // Position of the next expected hyphen $h = self::STRICT_FIRST_HYPHEN_POSITION; for ($i = 0; $i < self::STRICT_LENGTH; ++$i) { // Check length if (!isset($value[$i])) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Uuid::TOO_SHORT_ERROR) ->addViolation(); return; } // Check hyphen placement // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx // ^ ^ ^ ^ if ('-' === $value[$i]) { if ($i !== $h) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Uuid::INVALID_HYPHEN_PLACEMENT_ERROR) ->addViolation(); return; } // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx // ^ if ($h < self::STRICT_LAST_HYPHEN_POSITION) { $h += 5; } continue; } // Check characters if (!ctype_xdigit($value[$i])) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Uuid::INVALID_CHARACTERS_ERROR) ->addViolation(); return; } // Missing hyphen if ($i === $h) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Uuid::INVALID_HYPHEN_PLACEMENT_ERROR) ->addViolation(); return; } } // Check length again if (isset($value[$i])) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Uuid::TOO_LONG_ERROR) ->addViolation(); } // Check version if (!\in_array($value[self::STRICT_VERSION_POSITION], $constraint->versions)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Uuid::INVALID_VERSION_ERROR) ->addViolation(); } // Check variant - first two bits must equal "10" // 0b10xx // & 0b1100 (12) // = 0b1000 (8) if (8 !== (hexdec($value[self::STRICT_VARIANT_POSITION]) & 12)) { $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $this->formatValue($value)) ->setCode(Uuid::INVALID_VARIANT_ERROR) ->addViolation(); } } } Constraints/Valid.php 0000644 00000002441 15120140577 0010626 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; /** * @Annotation * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) * * @author Bernhard Schussek <bschussek@gmail.com> */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class Valid extends Constraint { public $traverse = true; public function __construct(array $options = null, array $groups = null, $payload = null, bool $traverse = null) { parent::__construct($options ?? [], $groups, $payload); $this->traverse = $traverse ?? $this->traverse; } public function __get(string $option) { if ('groups' === $option) { // when this is reached, no groups have been configured return null; } return parent::__get($option); } /** * {@inheritdoc} */ public function addImplicitGroupName(string $group) { if (null !== $this->groups) { parent::addImplicitGroupName($group); } } } Constraints/ValidValidator.php 0000644 00000001756 15120140577 0012504 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Christian Flothmann <christian.flothmann@sensiolabs.de> */ class ValidValidator extends ConstraintValidator { public function validate($value, Constraint $constraint) { if (!$constraint instanceof Valid) { throw new UnexpectedTypeException($constraint, Valid::class); } if (null === $value) { return; } $this->context ->getValidator() ->inContext($this->context) ->validate($value, null, $this->context->getGroup()); } } Constraints/ZeroComparisonConstraintTrait.php 0000644 00000002421 15120140577 0015610 0 ustar 00 <?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\Constraints; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * @internal * * @author Jan Schädlich <jan.schaedlich@sensiolabs.de> * @author Alexander M. Turek <me@derrabus.de> */ trait ZeroComparisonConstraintTrait { public function __construct(array $options = null, string $message = null, array $groups = null, $payload = null) { if (null === $options) { $options = []; } if (isset($options['propertyPath'])) { throw new ConstraintDefinitionException(sprintf('The "propertyPath" option of the "%s" constraint cannot be set.', static::class)); } if (isset($options['value'])) { throw new ConstraintDefinitionException(sprintf('The "value" option of the "%s" constraint cannot be set.', static::class)); } parent::__construct(0, null, $message, $groups, $payload, $options); } public function validatedBy(): string { return parent::class.'Validator'; } } Context/ExecutionContext.php 0000644 00000021000 15120140577 0012204 0 ustar 00 <?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\Context; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintViolation; use Symfony\Component\Validator\ConstraintViolationList; use Symfony\Component\Validator\ConstraintViolationListInterface; use Symfony\Component\Validator\Mapping\ClassMetadataInterface; use Symfony\Component\Validator\Mapping\MemberMetadata; use Symfony\Component\Validator\Mapping\MetadataInterface; use Symfony\Component\Validator\Mapping\PropertyMetadataInterface; use Symfony\Component\Validator\Util\PropertyPath; use Symfony\Component\Validator\Validator\LazyProperty; use Symfony\Component\Validator\Validator\ValidatorInterface; use Symfony\Component\Validator\Violation\ConstraintViolationBuilder; use Symfony\Component\Validator\Violation\ConstraintViolationBuilderInterface; use Symfony\Contracts\Translation\TranslatorInterface; /** * The context used and created by {@link ExecutionContextFactory}. * * @author Bernhard Schussek <bschussek@gmail.com> * * @see ExecutionContextInterface * * @internal since version 2.5. Code against ExecutionContextInterface instead. */ class ExecutionContext implements ExecutionContextInterface { /** * @var ValidatorInterface */ private $validator; /** * The root value of the validated object graph. * * @var mixed */ private $root; /** * @var TranslatorInterface */ private $translator; /** * @var string|null */ private $translationDomain; /** * The violations generated in the current context. * * @var ConstraintViolationList */ private $violations; /** * The currently validated value. * * @var mixed */ private $value; /** * The currently validated object. * * @var object|null */ private $object; /** * The property path leading to the current value. * * @var string */ private $propertyPath = ''; /** * The current validation metadata. * * @var MetadataInterface|null */ private $metadata; /** * The currently validated group. * * @var string|null */ private $group; /** * The currently validated constraint. * * @var Constraint|null */ private $constraint; /** * Stores which objects have been validated in which group. * * @var bool[][] */ private $validatedObjects = []; /** * Stores which class constraint has been validated for which object. * * @var bool[] */ private $validatedConstraints = []; /** * Stores which objects have been initialized. * * @var bool[] */ private $initializedObjects; /** * @var \SplObjectStorage<object, string> */ private $cachedObjectsRefs; /** * @param mixed $root The root value of the validated object graph * * @internal Called by {@link ExecutionContextFactory}. Should not be used in user code. */ public function __construct(ValidatorInterface $validator, $root, TranslatorInterface $translator, string $translationDomain = null) { $this->validator = $validator; $this->root = $root; $this->translator = $translator; $this->translationDomain = $translationDomain; $this->violations = new ConstraintViolationList(); $this->cachedObjectsRefs = new \SplObjectStorage(); } /** * {@inheritdoc} */ public function setNode($value, ?object $object, MetadataInterface $metadata = null, string $propertyPath) { $this->value = $value; $this->object = $object; $this->metadata = $metadata; $this->propertyPath = $propertyPath; } /** * {@inheritdoc} */ public function setGroup(?string $group) { $this->group = $group; } /** * {@inheritdoc} */ public function setConstraint(Constraint $constraint) { $this->constraint = $constraint; } /** * {@inheritdoc} */ public function addViolation(string $message, array $parameters = []) { $this->violations->add(new ConstraintViolation( $this->translator->trans($message, $parameters, $this->translationDomain), $message, $parameters, $this->root, $this->propertyPath, $this->getValue(), null, null, $this->constraint )); } /** * {@inheritdoc} */ public function buildViolation(string $message, array $parameters = []): ConstraintViolationBuilderInterface { return new ConstraintViolationBuilder( $this->violations, $this->constraint, $message, $parameters, $this->root, $this->propertyPath, $this->getValue(), $this->translator, $this->translationDomain ); } /** * {@inheritdoc} */ public function getViolations(): ConstraintViolationListInterface { return $this->violations; } /** * {@inheritdoc} */ public function getValidator(): ValidatorInterface { return $this->validator; } /** * {@inheritdoc} */ public function getRoot() { return $this->root; } /** * {@inheritdoc} */ public function getValue() { if ($this->value instanceof LazyProperty) { return $this->value->getPropertyValue(); } return $this->value; } /** * {@inheritdoc} */ public function getObject() { return $this->object; } /** * {@inheritdoc} */ public function getMetadata(): ?MetadataInterface { return $this->metadata; } /** * {@inheritdoc} */ public function getGroup(): ?string { return $this->group; } public function getConstraint(): ?Constraint { return $this->constraint; } /** * {@inheritdoc} */ public function getClassName(): ?string { return $this->metadata instanceof MemberMetadata || $this->metadata instanceof ClassMetadataInterface ? $this->metadata->getClassName() : null; } /** * {@inheritdoc} */ public function getPropertyName(): ?string { return $this->metadata instanceof PropertyMetadataInterface ? $this->metadata->getPropertyName() : null; } /** * {@inheritdoc} */ public function getPropertyPath(string $subPath = ''): string { return PropertyPath::append($this->propertyPath, $subPath); } /** * {@inheritdoc} */ public function markGroupAsValidated(string $cacheKey, string $groupHash) { if (!isset($this->validatedObjects[$cacheKey])) { $this->validatedObjects[$cacheKey] = []; } $this->validatedObjects[$cacheKey][$groupHash] = true; } /** * {@inheritdoc} */ public function isGroupValidated(string $cacheKey, string $groupHash): bool { return isset($this->validatedObjects[$cacheKey][$groupHash]); } /** * {@inheritdoc} */ public function markConstraintAsValidated(string $cacheKey, string $constraintHash) { $this->validatedConstraints[$cacheKey.':'.$constraintHash] = true; } /** * {@inheritdoc} */ public function isConstraintValidated(string $cacheKey, string $constraintHash): bool { return isset($this->validatedConstraints[$cacheKey.':'.$constraintHash]); } /** * {@inheritdoc} */ public function markObjectAsInitialized(string $cacheKey) { $this->initializedObjects[$cacheKey] = true; } /** * {@inheritdoc} */ public function isObjectInitialized(string $cacheKey): bool { return isset($this->initializedObjects[$cacheKey]); } /** * @internal */ public function generateCacheKey(object $object): string { if (!isset($this->cachedObjectsRefs[$object])) { $this->cachedObjectsRefs[$object] = spl_object_hash($object); } return $this->cachedObjectsRefs[$object]; } public function __clone() { $this->violations = clone $this->violations; } } Context/ExecutionContextFactory.php 0000644 00000002311 15120140577 0013540 0 ustar 00 <?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\Context; use Symfony\Component\Validator\Validator\ValidatorInterface; use Symfony\Contracts\Translation\TranslatorInterface; /** * Creates new {@link ExecutionContext} instances. * * @author Bernhard Schussek <bschussek@gmail.com> * * @internal version 2.5. Code against ExecutionContextFactoryInterface instead. */ class ExecutionContextFactory implements ExecutionContextFactoryInterface { private $translator; private $translationDomain; public function __construct(TranslatorInterface $translator, string $translationDomain = null) { $this->translator = $translator; $this->translationDomain = $translationDomain; } /** * {@inheritdoc} */ public function createContext(ValidatorInterface $validator, $root) { return new ExecutionContext( $validator, $root, $this->translator, $this->translationDomain ); } } Context/ExecutionContextFactoryInterface.php 0000644 00000001636 15120140577 0015372 0 ustar 00 <?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\Context; use Symfony\Component\Validator\Validator\ValidatorInterface; /** * Creates instances of {@link ExecutionContextInterface}. * * You can use a custom factory if you want to customize the execution context * that is passed through the validation run. * * @author Bernhard Schussek <bschussek@gmail.com> */ interface ExecutionContextFactoryInterface { /** * Creates a new execution context. * * @param mixed $root The root value of the validated * object graph * * @return ExecutionContextInterface */ public function createContext(ValidatorInterface $validator, $root); } Context/ExecutionContextInterface.php 0000644 00000026655 15120140577 0014052 0 ustar 00 <?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\Context; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintViolationListInterface; use Symfony\Component\Validator\Mapping; use Symfony\Component\Validator\Mapping\MetadataInterface; use Symfony\Component\Validator\Validator\ValidatorInterface; use Symfony\Component\Validator\Violation\ConstraintViolationBuilderInterface; /** * The context of a validation run. * * The context collects all violations generated during the validation. By * default, validators execute all validations in a new context: * * $violations = $validator->validate($object); * * When you make another call to the validator, while the validation is in * progress, the violations will be isolated from each other: * * public function validate($value, Constraint $constraint) * { * $validator = $this->context->getValidator(); * * // The violations are not added to $this->context * $violations = $validator->validate($value); * } * * However, if you want to add the violations to the current context, use the * {@link ValidatorInterface::inContext()} method: * * public function validate($value, Constraint $constraint) * { * $validator = $this->context->getValidator(); * * // The violations are added to $this->context * $validator * ->inContext($this->context) * ->validate($value) * ; * } * * Additionally, the context provides information about the current state of * the validator, such as the currently validated class, the name of the * currently validated property and more. These values change over time, so you * cannot store a context and expect that the methods still return the same * results later on. * * @author Bernhard Schussek <bschussek@gmail.com> */ interface ExecutionContextInterface { /** * Adds a violation at the current node of the validation graph. * * @param string|\Stringable $message The error message as a string or a stringable object * @param array $params The parameters substituted in the error message */ public function addViolation(string $message, array $params = []); /** * Returns a builder for adding a violation with extended information. * * Call {@link ConstraintViolationBuilderInterface::addViolation()} to * add the violation when you're done with the configuration: * * $context->buildViolation('Please enter a number between %min% and %max%.') * ->setParameter('%min%', '3') * ->setParameter('%max%', '10') * ->setTranslationDomain('number_validation') * ->addViolation(); * * @param string|\Stringable $message The error message as a string or a stringable object * @param array $parameters The parameters substituted in the error message * * @return ConstraintViolationBuilderInterface */ public function buildViolation(string $message, array $parameters = []); /** * Returns the validator. * * Useful if you want to validate additional constraints: * * public function validate($value, Constraint $constraint) * { * $validator = $this->context->getValidator(); * * $violations = $validator->validate($value, new Length(['min' => 3])); * * if (count($violations) > 0) { * // ... * } * } * * @return ValidatorInterface */ public function getValidator(); /** * Returns the currently validated object. * * If the validator is currently validating a class constraint, the * object of that class is returned. If it is validating a property or * getter constraint, the object that the property/getter belongs to is * returned. * * In other cases, null is returned. * * @return object|null */ public function getObject(); /** * Sets the currently validated value. * * @param mixed $value The validated value * @param object|null $object The currently validated object * @param string $propertyPath The property path to the current value * * @internal Used by the validator engine. Should not be called by user * code. */ public function setNode($value, ?object $object, MetadataInterface $metadata = null, string $propertyPath); /** * Sets the currently validated group. * * @param string|null $group The validated group * * @internal Used by the validator engine. Should not be called by user * code. */ public function setGroup(?string $group); /** * Sets the currently validated constraint. * * @internal Used by the validator engine. Should not be called by user * code. */ public function setConstraint(Constraint $constraint); /** * Marks an object as validated in a specific validation group. * * @param string $cacheKey The hash of the object * @param string $groupHash The group's name or hash, if it is group * sequence * * @internal Used by the validator engine. Should not be called by user * code. */ public function markGroupAsValidated(string $cacheKey, string $groupHash); /** * Returns whether an object was validated in a specific validation group. * * @param string $cacheKey The hash of the object * @param string $groupHash The group's name or hash, if it is group * sequence * * @return bool * * @internal Used by the validator engine. Should not be called by user * code. */ public function isGroupValidated(string $cacheKey, string $groupHash); /** * Marks a constraint as validated for an object. * * @param string $cacheKey The hash of the object * @param string $constraintHash The hash of the constraint * * @internal Used by the validator engine. Should not be called by user * code. */ public function markConstraintAsValidated(string $cacheKey, string $constraintHash); /** * Returns whether a constraint was validated for an object. * * @param string $cacheKey The hash of the object * @param string $constraintHash The hash of the constraint * * @return bool * * @internal Used by the validator engine. Should not be called by user * code. */ public function isConstraintValidated(string $cacheKey, string $constraintHash); /** * Marks that an object was initialized. * * @param string $cacheKey The hash of the object * * @internal Used by the validator engine. Should not be called by user * code. * * @see ObjectInitializerInterface */ public function markObjectAsInitialized(string $cacheKey); /** * Returns whether an object was initialized. * * @param string $cacheKey The hash of the object * * @return bool * * @internal Used by the validator engine. Should not be called by user * code. * * @see ObjectInitializerInterface */ public function isObjectInitialized(string $cacheKey); /** * Returns the violations generated by the validator so far. * * @return ConstraintViolationListInterface */ public function getViolations(); /** * Returns the value at which validation was started in the object graph. * * The validator, when given an object, traverses the properties and * related objects and their properties. The root of the validation is the * object from which the traversal started. * * The current value is returned by {@link getValue}. * * @return mixed */ public function getRoot(); /** * Returns the value that the validator is currently validating. * * If you want to retrieve the object that was originally passed to the * validator, use {@link getRoot}. * * @return mixed */ public function getValue(); /** * Returns the metadata for the currently validated value. * * With the core implementation, this method returns a * {@link Mapping\ClassMetadataInterface} instance if the current value is an object, * a {@link Mapping\PropertyMetadata} instance if the current value is * the value of a property and a {@link Mapping\GetterMetadata} instance if * the validated value is the result of a getter method. * * If the validated value is neither of these, for example if the validator * has been called with a plain value and constraint, this method returns * null. * * @return MetadataInterface|null */ public function getMetadata(); /** * Returns the validation group that is currently being validated. * * @return string|null */ public function getGroup(); /** * Returns the class name of the current node. * * If the metadata of the current node does not implement * {@link Mapping\ClassMetadataInterface} or if no metadata is available for the * current node, this method returns null. * * @return string|null */ public function getClassName(); /** * Returns the property name of the current node. * * If the metadata of the current node does not implement * {@link PropertyMetadataInterface} or if no metadata is available for the * current node, this method returns null. * * @return string|null */ public function getPropertyName(); /** * Returns the property path to the value that the validator is currently * validating. * * For example, take the following object graph: * * <pre> * (Person)---($address: Address)---($street: string) * </pre> * * When the <tt>Person</tt> instance is passed to the validator, the * property path is initially empty. When the <tt>$address</tt> property * of that person is validated, the property path is "address". When * the <tt>$street</tt> property of the related <tt>Address</tt> instance * is validated, the property path is "address.street". * * Properties of objects are prefixed with a dot in the property path. * Indices of arrays or objects implementing the {@link \ArrayAccess} * interface are enclosed in brackets. For example, if the property in * the previous example is <tt>$addresses</tt> and contains an array * of <tt>Address</tt> instance, the property path generated for the * <tt>$street</tt> property of one of these addresses is for example * "addresses[0].street". * * @param string $subPath Optional. The suffix appended to the current * property path. * * @return string The current property path. The result may be an empty * string if the validator is currently validating the * root value of the validation graph. */ public function getPropertyPath(string $subPath = ''); } DataCollector/ValidatorDataCollector.php 0000644 00000005777 15120140577 0014405 0 ustar 00 <?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\DataCollector; use Symfony\Component\Form\FormInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\DataCollector\DataCollector; use Symfony\Component\HttpKernel\DataCollector\LateDataCollectorInterface; use Symfony\Component\Validator\Validator\TraceableValidator; use Symfony\Component\VarDumper\Caster\Caster; use Symfony\Component\VarDumper\Caster\ClassStub; use Symfony\Component\VarDumper\Cloner\Data; use Symfony\Component\VarDumper\Cloner\Stub; /** * @author Maxime Steinhausser <maxime.steinhausser@gmail.com> * * @final */ class ValidatorDataCollector extends DataCollector implements LateDataCollectorInterface { private $validator; public function __construct(TraceableValidator $validator) { $this->validator = $validator; $this->reset(); } /** * {@inheritdoc} */ public function collect(Request $request, Response $response, \Throwable $exception = null) { // Everything is collected once, on kernel terminate. } public function reset() { $this->data = [ 'calls' => $this->cloneVar([]), 'violations_count' => 0, ]; } /** * {@inheritdoc} */ public function lateCollect() { $collected = $this->validator->getCollectedData(); $this->data['calls'] = $this->cloneVar($collected); $this->data['violations_count'] = array_reduce($collected, function ($previous, $item) { return $previous + \count($item['violations']); }, 0); } public function getCalls(): Data { return $this->data['calls']; } public function getViolationsCount(): int { return $this->data['violations_count']; } /** * {@inheritdoc} */ public function getName(): string { return 'validator'; } protected function getCasters(): array { return parent::getCasters() + [ \Exception::class => function (\Exception $e, array $a, Stub $s) { foreach (["\0Exception\0previous", "\0Exception\0trace"] as $k) { if (isset($a[$k])) { unset($a[$k]); ++$s->cut; } } return $a; }, FormInterface::class => function (FormInterface $f, array $a) { return [ Caster::PREFIX_VIRTUAL.'name' => $f->getName(), Caster::PREFIX_VIRTUAL.'type_class' => new ClassStub(\get_class($f->getConfig()->getType()->getInnerType())), Caster::PREFIX_VIRTUAL.'data' => $f->getData(), ]; }, ]; } } DependencyInjection/AddAutoMappingConfigurationPass.php 0000644 00000006162 15120140577 0017421 0 ustar 00 <?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\DependencyInjection; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; /** * Injects the automapping configuration as last argument of loaders tagged with the "validator.auto_mapper" tag. * * @author Kévin Dunglas <dunglas@gmail.com> */ class AddAutoMappingConfigurationPass implements CompilerPassInterface { private $validatorBuilderService; private $tag; public function __construct(string $validatorBuilderService = 'validator.builder', string $tag = 'validator.auto_mapper') { if (0 < \func_num_args()) { trigger_deprecation('symfony/validator', '5.3', 'Configuring "%s" is deprecated.', __CLASS__); } $this->validatorBuilderService = $validatorBuilderService; $this->tag = $tag; } /** * {@inheritdoc} */ public function process(ContainerBuilder $container) { if (!$container->hasParameter('validator.auto_mapping') || !$container->hasDefinition($this->validatorBuilderService)) { return; } $config = $container->getParameter('validator.auto_mapping'); $globalNamespaces = []; $servicesToNamespaces = []; foreach ($config as $namespace => $value) { if ([] === $value['services']) { $globalNamespaces[] = $namespace; continue; } foreach ($value['services'] as $service) { $servicesToNamespaces[$service][] = $namespace; } } $validatorBuilder = $container->getDefinition($this->validatorBuilderService); foreach ($container->findTaggedServiceIds($this->tag) as $id => $tags) { $regexp = $this->getRegexp(array_merge($globalNamespaces, $servicesToNamespaces[$id] ?? [])); $validatorBuilder->addMethodCall('addLoader', [new Reference($id)]); $container->getDefinition($id)->setArgument('$classValidatorRegexp', $regexp); } $container->getParameterBag()->remove('validator.auto_mapping'); } /** * Builds a regexp to check if a class is auto-mapped. */ private function getRegexp(array $patterns): ?string { if (!$patterns) { return null; } $regexps = []; foreach ($patterns as $pattern) { // Escape namespace $regex = preg_quote(ltrim($pattern, '\\')); // Wildcards * and ** $regex = strtr($regex, ['\\*\\*' => '.*?', '\\*' => '[^\\\\]*?']); // If this class does not end by a slash, anchor the end if (!str_ends_with($regex, '\\')) { $regex .= '$'; } $regexps[] = '^'.$regex; } return sprintf('{%s}', implode('|', $regexps)); } } DependencyInjection/AddConstraintValidatorsPass.php 0000644 00000004022 15120140577 0016613 0 ustar 00 <?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\DependencyInjection; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; /** * @author Johannes M. Schmitt <schmittjoh@gmail.com> * @author Robin Chalas <robin.chalas@gmail.com> */ class AddConstraintValidatorsPass implements CompilerPassInterface { private $validatorFactoryServiceId; private $constraintValidatorTag; public function __construct(string $validatorFactoryServiceId = 'validator.validator_factory', string $constraintValidatorTag = 'validator.constraint_validator') { if (0 < \func_num_args()) { trigger_deprecation('symfony/validator', '5.3', 'Configuring "%s" is deprecated.', __CLASS__); } $this->validatorFactoryServiceId = $validatorFactoryServiceId; $this->constraintValidatorTag = $constraintValidatorTag; } public function process(ContainerBuilder $container) { if (!$container->hasDefinition($this->validatorFactoryServiceId)) { return; } $validators = []; foreach ($container->findTaggedServiceIds($this->constraintValidatorTag, true) as $id => $attributes) { $definition = $container->getDefinition($id); if (isset($attributes[0]['alias'])) { $validators[$attributes[0]['alias']] = new Reference($id); } $validators[$definition->getClass()] = new Reference($id); } $container ->getDefinition($this->validatorFactoryServiceId) ->replaceArgument(0, ServiceLocatorTagPass::register($container, $validators)) ; } } DependencyInjection/AddValidatorInitializersPass.php 0000644 00000003065 15120140577 0016760 0 ustar 00 <?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\DependencyInjection; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; /** * @author Fabien Potencier <fabien@symfony.com> * @author Robin Chalas <robin.chalas@gmail.com> */ class AddValidatorInitializersPass implements CompilerPassInterface { private $builderService; private $initializerTag; public function __construct(string $builderService = 'validator.builder', string $initializerTag = 'validator.initializer') { if (0 < \func_num_args()) { trigger_deprecation('symfony/validator', '5.3', 'Configuring "%s" is deprecated.', __CLASS__); } $this->builderService = $builderService; $this->initializerTag = $initializerTag; } public function process(ContainerBuilder $container) { if (!$container->hasDefinition($this->builderService)) { return; } $initializers = []; foreach ($container->findTaggedServiceIds($this->initializerTag, true) as $id => $attributes) { $initializers[] = new Reference($id); } $container->getDefinition($this->builderService)->addMethodCall('addObjectInitializers', [$initializers]); } } Exception/BadMethodCallException.php 0000644 00000000771 15120140577 0013524 0 ustar 00 <?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 { } Exception/ConstraintDefinitionException.php 0000644 00000000543 15120140577 0015233 0 ustar 00 <?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; class ConstraintDefinitionException extends ValidatorException { } Exception/ExceptionInterface.php 0000644 00000000712 15120140577 0012774 0 ustar 00 <?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 extends \Throwable { } Exception/GroupDefinitionException.php 0000644 00000000536 15120140577 0014205 0 ustar 00 <?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; class GroupDefinitionException extends ValidatorException { } Exception/InvalidArgumentException.php 0000644 00000000777 15120140577 0014200 0 ustar 00 <?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 { } Exception/InvalidOptionsException.php 0000644 00000001131 15120140577 0014032 0 ustar 00 <?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; class InvalidOptionsException extends ValidatorException { private $options; public function __construct(string $message, array $options) { parent::__construct($message); $this->options = $options; } public function getOptions() { return $this->options; } } Exception/LogicException.php 0000644 00000000557 15120140577 0012140 0 ustar 00 <?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; class LogicException extends \LogicException implements ExceptionInterface { } Exception/MappingException.php 0000644 00000000526 15120140577 0012472 0 ustar 00 <?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; class MappingException extends ValidatorException { } Exception/MissingOptionsException.php 0000644 00000001131 15120140577 0014055 0 ustar 00 <?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; class MissingOptionsException extends ValidatorException { private $options; public function __construct(string $message, array $options) { parent::__construct($message); $this->options = $options; } public function getOptions() { return $this->options; } } Exception/NoSuchMetadataException.php 0000644 00000000630 15120140577 0013733 0 ustar 00 <?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; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class NoSuchMetadataException extends ValidatorException { } Exception/OutOfBoundsException.php 0000644 00000000763 15120140577 0013311 0 ustar 00 <?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 OutOfBoundsException for the Validator component. * * @author Bernhard Schussek <bschussek@gmail.com> */ class OutOfBoundsException extends \OutOfBoundsException implements ExceptionInterface { } Exception/RuntimeException.php 0000644 00000000747 15120140577 0012527 0 ustar 00 <?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 RuntimeException for the Validator component. * * @author Bernhard Schussek <bschussek@gmail.com> */ class RuntimeException extends \RuntimeException implements ExceptionInterface { } Exception/UnexpectedTypeException.php 0000644 00000001042 15120140577 0014037 0 ustar 00 <?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; class UnexpectedTypeException extends ValidatorException { public function __construct($value, string $expectedType) { parent::__construct(sprintf('Expected argument of type "%s", "%s" given', $expectedType, get_debug_type($value))); } } Exception/UnexpectedValueException.php 0000644 00000001325 15120140577 0014176 0 ustar 00 <?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; /** * @author Christian Flothmann <christian.flothmann@sensiolabs.de> */ class UnexpectedValueException extends UnexpectedTypeException { private $expectedType; public function __construct($value, string $expectedType) { parent::__construct($value, $expectedType); $this->expectedType = $expectedType; } public function getExpectedType(): string { return $this->expectedType; } } Exception/UnsupportedMetadataException.php 0000644 00000000643 15120140577 0015070 0 ustar 00 <?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; /** * @author Bernhard Schussek <bschussek@gmail.com> */ class UnsupportedMetadataException extends InvalidArgumentException { } Exception/ValidationFailedException.php 0000644 00000001632 15120140577 0014275 0 ustar 00 <?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; use Symfony\Component\Validator\ConstraintViolationListInterface; /** * @author Jan Vernieuwe <jan.vernieuwe@phpro.be> */ class ValidationFailedException extends RuntimeException { private $violations; private $value; public function __construct($value, ConstraintViolationListInterface $violations) { $this->violations = $violations; $this->value = $value; parent::__construct($violations); } public function getValue() { return $this->value; } public function getViolations(): ConstraintViolationListInterface { return $this->violations; } } Exception/ValidatorException.php 0000644 00000000526 15120140577 0013024 0 ustar 00 <?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; class ValidatorException extends RuntimeException { } Mapping/Factory/BlackHoleMetadataFactory.php 0000644 00000001723 15120140577 0015101 0 ustar 00 <?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\Mapping\Factory; use Symfony\Component\Validator\Exception\LogicException; /** * Metadata factory that does not store metadata. * * This implementation is useful if you want to validate values against * constraints only and you don't need to add constraints to classes and * properties. * * @author Fabien Potencier <fabien@symfony.com> */ class BlackHoleMetadataFactory implements MetadataFactoryInterface { /** * {@inheritdoc} */ public function getMetadataFor($value) { throw new LogicException('This class does not support metadata.'); } /** * {@inheritdoc} */ public function hasMetadataFor($value) { return false; } } Mapping/Factory/LazyLoadingMetadataFactory.php 0000644 00000013017 15120140577 0015471 0 ustar 00 <?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\Mapping\Factory; use Psr\Cache\CacheItemPoolInterface; use Symfony\Component\Validator\Exception\NoSuchMetadataException; use Symfony\Component\Validator\Mapping\ClassMetadata; use Symfony\Component\Validator\Mapping\Loader\LoaderInterface; /** * Creates new {@link ClassMetadataInterface} instances. * * Whenever {@link getMetadataFor()} is called for the first time with a given * class name or object of that class, a new metadata instance is created and * returned. On subsequent requests for the same class, the same metadata * instance will be returned. * * You can optionally pass a {@link LoaderInterface} instance to the constructor. * Whenever a new metadata instance is created, it is passed to the loader, * which can configure the metadata based on configuration loaded from the * filesystem or a database. If you want to use multiple loaders, wrap them in a * {@link LoaderChain}. * * You can also optionally pass a {@link CacheInterface} instance to the * constructor. This cache will be used for persisting the generated metadata * between multiple PHP requests. * * @author Bernhard Schussek <bschussek@gmail.com> */ class LazyLoadingMetadataFactory implements MetadataFactoryInterface { protected $loader; protected $cache; /** * The loaded metadata, indexed by class name. * * @var ClassMetadata[] */ protected $loadedClasses = []; public function __construct(LoaderInterface $loader = null, CacheItemPoolInterface $cache = null) { $this->loader = $loader; $this->cache = $cache; } /** * {@inheritdoc} * * If the method was called with the same class name (or an object of that * class) before, the same metadata instance is returned. * * If the factory was configured with a cache, this method will first look * for an existing metadata instance in the cache. If an existing instance * is found, it will be returned without further ado. * * Otherwise, a new metadata instance is created. If the factory was * configured with a loader, the metadata is passed to the * {@link LoaderInterface::loadClassMetadata()} method for further * configuration. At last, the new object is returned. */ public function getMetadataFor($value) { if (!\is_object($value) && !\is_string($value)) { throw new NoSuchMetadataException(sprintf('Cannot create metadata for non-objects. Got: "%s".', get_debug_type($value))); } $class = ltrim(\is_object($value) ? \get_class($value) : $value, '\\'); if (isset($this->loadedClasses[$class])) { return $this->loadedClasses[$class]; } if (!class_exists($class) && !interface_exists($class, false)) { throw new NoSuchMetadataException(sprintf('The class or interface "%s" does not exist.', $class)); } $cacheItem = null === $this->cache ? null : $this->cache->getItem($this->escapeClassName($class)); if ($cacheItem && $cacheItem->isHit()) { $metadata = $cacheItem->get(); // Include constraints from the parent class $this->mergeConstraints($metadata); return $this->loadedClasses[$class] = $metadata; } $metadata = new ClassMetadata($class); if (null !== $this->loader) { $this->loader->loadClassMetadata($metadata); } if (null !== $cacheItem) { $this->cache->save($cacheItem->set($metadata)); } // Include constraints from the parent class $this->mergeConstraints($metadata); return $this->loadedClasses[$class] = $metadata; } private function mergeConstraints(ClassMetadata $metadata) { if ($metadata->getReflectionClass()->isInterface()) { return; } // Include constraints from the parent class if ($parent = $metadata->getReflectionClass()->getParentClass()) { $metadata->mergeConstraints($this->getMetadataFor($parent->name)); } // Include constraints from all directly implemented interfaces foreach ($metadata->getReflectionClass()->getInterfaces() as $interface) { if ('Symfony\Component\Validator\GroupSequenceProviderInterface' === $interface->name) { continue; } if ($parent && \in_array($interface->getName(), $parent->getInterfaceNames(), true)) { continue; } $metadata->mergeConstraints($this->getMetadataFor($interface->name)); } } /** * {@inheritdoc} */ public function hasMetadataFor($value) { if (!\is_object($value) && !\is_string($value)) { return false; } $class = ltrim(\is_object($value) ? \get_class($value) : $value, '\\'); return class_exists($class) || interface_exists($class, false); } /** * Replaces backslashes by dots in a class name. */ private function escapeClassName(string $class): string { if (str_contains($class, '@')) { // anonymous class: replace all PSR6-reserved characters return str_replace(["\0", '\\', '/', '@', ':', '{', '}', '(', ')'], '.', $class); } return str_replace('\\', '.', $class); } } Mapping/Factory/MetadataFactoryInterface.php 0000644 00000002132 15120140577 0015150 0 ustar 00 <?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\Mapping\Factory; use Symfony\Component\Validator\Exception\NoSuchMetadataException; use Symfony\Component\Validator\Mapping\MetadataInterface; /** * Returns {@link \Symfony\Component\Validator\Mapping\MetadataInterface} instances for values. * * @author Bernhard Schussek <bschussek@gmail.com> */ interface MetadataFactoryInterface { /** * Returns the metadata for the given value. * * @param mixed $value Some value * * @return MetadataInterface * * @throws NoSuchMetadataException If no metadata exists for the given value */ public function getMetadataFor($value); /** * Returns whether the class is able to return metadata for the given value. * * @param mixed $value Some value * * @return bool */ public function hasMetadataFor($value); } Mapping/Loader/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd 0000644 00000014055 15120140577 0022021 0 ustar 00 <?xml version="1.0" ?> <xsd:schema xmlns="http://symfony.com/schema/dic/constraint-mapping" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://symfony.com/schema/dic/constraint-mapping" elementFormDefault="qualified"> <xsd:annotation> <xsd:documentation><![CDATA[ Symfony Validator Constraint Mapping Schema, version 1.0 Authors: Bernhard Schussek A constraint mapping connects classes, properties and getters with validation constraints. ]]></xsd:documentation> </xsd:annotation> <xsd:element name="constraint-mapping" type="constraint-mapping" /> <xsd:complexType name="constraint-mapping"> <xsd:annotation> <xsd:documentation><![CDATA[ The root element of the constraint mapping definition. ]]></xsd:documentation> </xsd:annotation> <xsd:sequence> <xsd:element name="namespace" type="namespace" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="class" type="class" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="namespace"> <xsd:annotation> <xsd:documentation><![CDATA[ Contains the abbreviation for a namespace. ]]></xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="prefix" type="xsd:string" use="required" /> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:complexType name="class"> <xsd:annotation> <xsd:documentation><![CDATA[ Contains constraints for a single class. Nested elements may be class constraints, property and/or getter definitions. ]]></xsd:documentation> </xsd:annotation> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="group-sequence-provider" type="group-sequence-provider" minOccurs="0" maxOccurs="1" /> <xsd:element name="group-sequence" type="group-sequence" minOccurs="0" maxOccurs="1" /> <xsd:element name="constraint" type="constraint" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="property" type="property" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="getter" type="getter" minOccurs="0" maxOccurs="unbounded" /> </xsd:choice> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> <xsd:complexType name="group-sequence"> <xsd:annotation> <xsd:documentation><![CDATA[ Contains the group sequence of a class. Each group should be written into a "value" tag. ]]></xsd:documentation> </xsd:annotation> <xsd:sequence> <xsd:element name="value" type="value" minOccurs="1" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="group-sequence-provider"> <xsd:annotation> <xsd:documentation><![CDATA[ Defines the name of the group sequence provider for a class. ]]></xsd:documentation> </xsd:annotation> </xsd:complexType> <xsd:complexType name="property"> <xsd:annotation> <xsd:documentation><![CDATA[ Contains constraints for a single property. The name of the property should be given in the "name" option. ]]></xsd:documentation> </xsd:annotation> <xsd:sequence> <xsd:element name="constraint" type="constraint" maxOccurs="unbounded" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> <xsd:complexType name="getter"> <xsd:annotation> <xsd:documentation><![CDATA[ Contains constraints for a getter method. The name of the corresponding property should be given in the "property" option. ]]></xsd:documentation> </xsd:annotation> <xsd:sequence> <xsd:element name="constraint" type="constraint" maxOccurs="unbounded" /> </xsd:sequence> <xsd:attribute name="property" type="xsd:string" use="required" /> </xsd:complexType> <xsd:complexType name="constraint" mixed="true"> <xsd:annotation> <xsd:documentation><![CDATA[ Contains a constraint definition. The name of the constraint should be given in the "name" option. May contain a single value, multiple "constraint" elements, multiple "value" elements or multiple "option" elements. ]]></xsd:documentation> </xsd:annotation> <xsd:choice minOccurs="0"> <xsd:element name="constraint" type="constraint" minOccurs="1" maxOccurs="unbounded" /> <xsd:element name="option" type="option" minOccurs="1" maxOccurs="unbounded" /> <xsd:element name="value" type="value" minOccurs="1" maxOccurs="unbounded" /> </xsd:choice> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> <xsd:complexType name="option" mixed="true"> <xsd:annotation> <xsd:documentation><![CDATA[ Contains a constraint option definition. The name of the option should be given in the "name" option. May contain a single value, multiple "value" elements or multiple "constraint" elements. ]]></xsd:documentation> </xsd:annotation> <xsd:choice minOccurs="0"> <xsd:element name="constraint" type="constraint" minOccurs="1" maxOccurs="unbounded" /> <xsd:element name="value" type="value" minOccurs="1" maxOccurs="unbounded" /> </xsd:choice> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> <xsd:complexType name="value" mixed="true"> <xsd:annotation> <xsd:documentation><![CDATA[ A value of an element. May contain a single value, multiple "value" elements or multiple "constraint" elements. ]]></xsd:documentation> </xsd:annotation> <xsd:choice minOccurs="0"> <xsd:element name="constraint" type="constraint" minOccurs="1" maxOccurs="unbounded" /> <xsd:element name="value" type="value" minOccurs="1" maxOccurs="unbounded" /> </xsd:choice> <xsd:attribute name="key" type="xsd:string" use="optional" /> </xsd:complexType> </xsd:schema> Mapping/Loader/AbstractLoader.php 0000644 00000005600 15120140577 0012753 0 ustar 00 <?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\Mapping\Loader; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\MappingException; /** * Base loader for validation metadata. * * This loader supports the loading of constraints from Symfony's default * namespace (see {@link DEFAULT_NAMESPACE}) using the short class names of * those constraints. Constraints can also be loaded using their fully * qualified class names. At last, namespace aliases can be defined to load * constraints with the syntax "alias:ShortName". * * @author Bernhard Schussek <bschussek@gmail.com> */ abstract class AbstractLoader implements LoaderInterface { /** * The namespace to load constraints from by default. */ public const DEFAULT_NAMESPACE = '\\Symfony\\Component\\Validator\\Constraints\\'; protected $namespaces = []; /** * Adds a namespace alias. * * The namespace alias can be used to reference constraints from specific * namespaces in {@link newConstraint()}: * * $this->addNamespaceAlias('mynamespace', '\\Acme\\Package\\Constraints\\'); * * $constraint = $this->newConstraint('mynamespace:NotNull'); */ protected function addNamespaceAlias(string $alias, string $namespace) { $this->namespaces[$alias] = $namespace; } /** * Creates a new constraint instance for the given constraint name. * * @param string $name The constraint name. Either a constraint relative * to the default constraint namespace, or a fully * qualified class name. Alternatively, the constraint * may be preceded by a namespace alias and a colon. * The namespace alias must have been defined using * {@link addNamespaceAlias()}. * @param mixed $options The constraint options * * @return Constraint * * @throws MappingException If the namespace prefix is undefined */ protected function newConstraint(string $name, $options = null) { if (str_contains($name, '\\') && class_exists($name)) { $className = $name; } elseif (str_contains($name, ':')) { [$prefix, $className] = explode(':', $name, 2); if (!isset($this->namespaces[$prefix])) { throw new MappingException(sprintf('Undefined namespace prefix "%s".', $prefix)); } $className = $this->namespaces[$prefix].$className; } else { $className = self::DEFAULT_NAMESPACE.$name; } return new $className($options); } } Mapping/Loader/AnnotationLoader.php 0000644 00000010634 15120140577 0013325 0 ustar 00 <?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\Mapping\Loader; use Doctrine\Common\Annotations\Reader; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Constraints\Callback; use Symfony\Component\Validator\Constraints\GroupSequence; use Symfony\Component\Validator\Constraints\GroupSequenceProvider; use Symfony\Component\Validator\Exception\MappingException; use Symfony\Component\Validator\Mapping\ClassMetadata; /** * Loads validation metadata using a Doctrine annotation {@link Reader} or using PHP 8 attributes. * * @author Bernhard Schussek <bschussek@gmail.com> * @author Alexander M. Turek <me@derrabus.de> */ class AnnotationLoader implements LoaderInterface { protected $reader; public function __construct(Reader $reader = null) { $this->reader = $reader; } /** * {@inheritdoc} */ public function loadClassMetadata(ClassMetadata $metadata) { $reflClass = $metadata->getReflectionClass(); $className = $reflClass->name; $success = false; foreach ($this->getAnnotations($reflClass) as $constraint) { if ($constraint instanceof GroupSequence) { $metadata->setGroupSequence($constraint->groups); } elseif ($constraint instanceof GroupSequenceProvider) { $metadata->setGroupSequenceProvider(true); } elseif ($constraint instanceof Constraint) { $metadata->addConstraint($constraint); } $success = true; } foreach ($reflClass->getProperties() as $property) { if ($property->getDeclaringClass()->name === $className) { foreach ($this->getAnnotations($property) as $constraint) { if ($constraint instanceof Constraint) { $metadata->addPropertyConstraint($property->name, $constraint); } $success = true; } } } foreach ($reflClass->getMethods() as $method) { if ($method->getDeclaringClass()->name === $className) { foreach ($this->getAnnotations($method) as $constraint) { if ($constraint instanceof Callback) { $constraint->callback = $method->getName(); $metadata->addConstraint($constraint); } elseif ($constraint instanceof Constraint) { if (preg_match('/^(get|is|has)(.+)$/i', $method->name, $matches)) { $metadata->addGetterMethodConstraint(lcfirst($matches[2]), $matches[0], $constraint); } else { throw new MappingException(sprintf('The constraint on "%s::%s()" cannot be added. Constraints can only be added on methods beginning with "get", "is" or "has".', $className, $method->name)); } } $success = true; } } } return $success; } /** * @param \ReflectionClass|\ReflectionMethod|\ReflectionProperty $reflection */ private function getAnnotations(object $reflection): iterable { if (\PHP_VERSION_ID >= 80000) { foreach ($reflection->getAttributes(GroupSequence::class) as $attribute) { yield $attribute->newInstance(); } foreach ($reflection->getAttributes(GroupSequenceProvider::class) as $attribute) { yield $attribute->newInstance(); } foreach ($reflection->getAttributes(Constraint::class, \ReflectionAttribute::IS_INSTANCEOF) as $attribute) { yield $attribute->newInstance(); } } if (!$this->reader) { return; } if ($reflection instanceof \ReflectionClass) { yield from $this->reader->getClassAnnotations($reflection); } if ($reflection instanceof \ReflectionMethod) { yield from $this->reader->getMethodAnnotations($reflection); } if ($reflection instanceof \ReflectionProperty) { yield from $this->reader->getPropertyAnnotations($reflection); } } } Mapping/Loader/AutoMappingTrait.php 0000644 00000002023 15120140577 0013305 0 ustar 00 <?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\Mapping\Loader; use Symfony\Component\Validator\Mapping\AutoMappingStrategy; use Symfony\Component\Validator\Mapping\ClassMetadata; /** * Utility methods to create auto mapping loaders. * * @author Kévin Dunglas <dunglas@gmail.com> */ trait AutoMappingTrait { private function isAutoMappingEnabledForClass(ClassMetadata $metadata, string $classValidatorRegexp = null): bool { // Check if AutoMapping constraint is set first if (AutoMappingStrategy::NONE !== $strategy = $metadata->getAutoMappingStrategy()) { return AutoMappingStrategy::ENABLED === $strategy; } // Fallback on the config return null !== $classValidatorRegexp && preg_match($classValidatorRegexp, $metadata->getClassName()); } } Mapping/Loader/FileLoader.php 0000644 00000002444 15120140577 0012072 0 ustar 00 <?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\Mapping\Loader; use Symfony\Component\Validator\Exception\MappingException; /** * Base loader for loading validation metadata from a file. * * @author Bernhard Schussek <bschussek@gmail.com> * * @see YamlFileLoader * @see XmlFileLoader */ abstract class FileLoader extends AbstractLoader { protected $file; /** * Creates a new loader. * * @param string $file The mapping file to load * * @throws MappingException If the file does not exist or is not readable */ public function __construct(string $file) { if (!is_file($file)) { throw new MappingException(sprintf('The mapping file "%s" does not exist.', $file)); } if (!is_readable($file)) { throw new MappingException(sprintf('The mapping file "%s" is not readable.', $file)); } if (!stream_is_local($this->file)) { throw new MappingException(sprintf('The mapping file "%s" is not a local file.', $file)); } $this->file = $file; } } Mapping/Loader/FilesLoader.php 0000644 00000002444 15120140577 0012255 0 ustar 00 <?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\Mapping\Loader; /** * Base loader for loading validation metadata from a list of files. * * @author Bulat Shakirzyanov <mallluhuct@gmail.com> * @author Bernhard Schussek <bschussek@gmail.com> * * @see YamlFilesLoader * @see XmlFilesLoader */ abstract class FilesLoader extends LoaderChain { /** * Creates a new loader. * * @param array $paths An array of file paths */ public function __construct(array $paths) { parent::__construct($this->getFileLoaders($paths)); } /** * Returns an array of file loaders for the given file paths. * * @return LoaderInterface[] */ protected function getFileLoaders(array $paths) { $loaders = []; foreach ($paths as $path) { $loaders[] = $this->getFileLoaderInstance($path); } return $loaders; } /** * Creates a loader for the given file path. * * @return LoaderInterface */ abstract protected function getFileLoaderInstance(string $path); } Mapping/Loader/LoaderChain.php 0000644 00000003266 15120140577 0012240 0 ustar 00 <?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\Mapping\Loader; use Symfony\Component\Validator\Exception\MappingException; use Symfony\Component\Validator\Mapping\ClassMetadata; /** * Loads validation metadata from multiple {@link LoaderInterface} instances. * * Pass the loaders when constructing the chain. Once * {@link loadClassMetadata()} is called, that method will be called on all * loaders in the chain. * * @author Bernhard Schussek <bschussek@gmail.com> */ class LoaderChain implements LoaderInterface { protected $loaders; /** * @param LoaderInterface[] $loaders The metadata loaders to use * * @throws MappingException If any of the loaders has an invalid type */ public function __construct(array $loaders) { foreach ($loaders as $loader) { if (!$loader instanceof LoaderInterface) { throw new MappingException(sprintf('Class "%s" is expected to implement LoaderInterface.', get_debug_type($loader))); } } $this->loaders = $loaders; } /** * {@inheritdoc} */ public function loadClassMetadata(ClassMetadata $metadata) { $success = false; foreach ($this->loaders as $loader) { $success = $loader->loadClassMetadata($metadata) || $success; } return $success; } /** * @return LoaderInterface[] */ public function getLoaders() { return $this->loaders; } } Mapping/Loader/LoaderInterface.php 0000644 00000001257 15120140577 0013114 0 ustar 00 <?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\Mapping\Loader; use Symfony\Component\Validator\Mapping\ClassMetadata; /** * Loads validation metadata into {@link ClassMetadata} instances. * * @author Bernhard Schussek <bschussek@gmail.com> */ interface LoaderInterface { /** * Loads validation metadata into a {@link ClassMetadata} instance. * * @return bool */ public function loadClassMetadata(ClassMetadata $metadata); } Mapping/Loader/PropertyInfoLoader.php 0000644 00000015437 15120140577 0013661 0 ustar 00 <?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\Mapping\Loader; use Symfony\Component\PropertyInfo\PropertyAccessExtractorInterface; use Symfony\Component\PropertyInfo\PropertyListExtractorInterface; use Symfony\Component\PropertyInfo\PropertyTypeExtractorInterface; use Symfony\Component\PropertyInfo\Type as PropertyInfoType; use Symfony\Component\Validator\Constraints\All; use Symfony\Component\Validator\Constraints\NotBlank; use Symfony\Component\Validator\Constraints\NotNull; use Symfony\Component\Validator\Constraints\Type; use Symfony\Component\Validator\Mapping\AutoMappingStrategy; use Symfony\Component\Validator\Mapping\ClassMetadata; /** * Guesses and loads the appropriate constraints using PropertyInfo. * * @author Kévin Dunglas <dunglas@gmail.com> */ final class PropertyInfoLoader implements LoaderInterface { use AutoMappingTrait; private $listExtractor; private $typeExtractor; private $accessExtractor; private $classValidatorRegexp; public function __construct(PropertyListExtractorInterface $listExtractor, PropertyTypeExtractorInterface $typeExtractor, PropertyAccessExtractorInterface $accessExtractor, string $classValidatorRegexp = null) { $this->listExtractor = $listExtractor; $this->typeExtractor = $typeExtractor; $this->accessExtractor = $accessExtractor; $this->classValidatorRegexp = $classValidatorRegexp; } /** * {@inheritdoc} */ public function loadClassMetadata(ClassMetadata $metadata): bool { $className = $metadata->getClassName(); if (!$properties = $this->listExtractor->getProperties($className)) { return false; } $loaded = false; $enabledForClass = $this->isAutoMappingEnabledForClass($metadata, $this->classValidatorRegexp); foreach ($properties as $property) { if (false === $this->accessExtractor->isWritable($className, $property)) { continue; } if (!property_exists($className, $property)) { continue; } $types = $this->typeExtractor->getTypes($className, $property); if (null === $types) { continue; } $enabledForProperty = $enabledForClass; $hasTypeConstraint = false; $hasNotNullConstraint = false; $hasNotBlankConstraint = false; $allConstraint = null; foreach ($metadata->getPropertyMetadata($property) as $propertyMetadata) { // Enabling or disabling auto-mapping explicitly always takes precedence if (AutoMappingStrategy::DISABLED === $propertyMetadata->getAutoMappingStrategy()) { continue 2; } if (AutoMappingStrategy::ENABLED === $propertyMetadata->getAutoMappingStrategy()) { $enabledForProperty = true; } foreach ($propertyMetadata->getConstraints() as $constraint) { if ($constraint instanceof Type) { $hasTypeConstraint = true; } elseif ($constraint instanceof NotNull) { $hasNotNullConstraint = true; } elseif ($constraint instanceof NotBlank) { $hasNotBlankConstraint = true; } elseif ($constraint instanceof All) { $allConstraint = $constraint; } } } if (!$enabledForProperty) { continue; } $loaded = true; $builtinTypes = []; $nullable = false; $scalar = true; foreach ($types as $type) { $builtinTypes[] = $type->getBuiltinType(); if ($scalar && !\in_array($type->getBuiltinType(), [PropertyInfoType::BUILTIN_TYPE_INT, PropertyInfoType::BUILTIN_TYPE_FLOAT, PropertyInfoType::BUILTIN_TYPE_STRING, PropertyInfoType::BUILTIN_TYPE_BOOL], true)) { $scalar = false; } if (!$nullable && $type->isNullable()) { $nullable = true; } } if (!$hasTypeConstraint) { if (1 === \count($builtinTypes)) { if ($types[0]->isCollection() && \count($collectionValueType = $types[0]->getCollectionValueTypes()) > 0) { [$collectionValueType] = $collectionValueType; $this->handleAllConstraint($property, $allConstraint, $collectionValueType, $metadata); } $metadata->addPropertyConstraint($property, $this->getTypeConstraint($builtinTypes[0], $types[0])); } elseif ($scalar) { $metadata->addPropertyConstraint($property, new Type(['type' => 'scalar'])); } } if (!$nullable && !$hasNotBlankConstraint && !$hasNotNullConstraint) { $metadata->addPropertyConstraint($property, new NotNull()); } } return $loaded; } private function getTypeConstraint(string $builtinType, PropertyInfoType $type): Type { if (PropertyInfoType::BUILTIN_TYPE_OBJECT === $builtinType && null !== $className = $type->getClassName()) { return new Type(['type' => $className]); } return new Type(['type' => $builtinType]); } private function handleAllConstraint(string $property, ?All $allConstraint, PropertyInfoType $propertyInfoType, ClassMetadata $metadata) { $containsTypeConstraint = false; $containsNotNullConstraint = false; if (null !== $allConstraint) { foreach ($allConstraint->constraints as $constraint) { if ($constraint instanceof Type) { $containsTypeConstraint = true; } elseif ($constraint instanceof NotNull) { $containsNotNullConstraint = true; } } } $constraints = []; if (!$containsNotNullConstraint && !$propertyInfoType->isNullable()) { $constraints[] = new NotNull(); } if (!$containsTypeConstraint) { $constraints[] = $this->getTypeConstraint($propertyInfoType->getBuiltinType(), $propertyInfoType); } if (null === $allConstraint) { $metadata->addPropertyConstraint($property, new All(['constraints' => $constraints])); } else { $allConstraint->constraints = array_merge($allConstraint->constraints, $constraints); } } } Mapping/Loader/StaticMethodLoader.php 0000644 00000003353 15120140577 0013603 0 ustar 00 <?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\Mapping\Loader; use Symfony\Component\Validator\Exception\MappingException; use Symfony\Component\Validator\Mapping\ClassMetadata; /** * Loads validation metadata by calling a static method on the loaded class. * * @author Bernhard Schussek <bschussek@gmail.com> */ class StaticMethodLoader implements LoaderInterface { protected $methodName; /** * Creates a new loader. * * @param string $methodName The name of the static method to call */ public function __construct(string $methodName = 'loadValidatorMetadata') { $this->methodName = $methodName; } /** * {@inheritdoc} */ public function loadClassMetadata(ClassMetadata $metadata) { /** @var \ReflectionClass $reflClass */ $reflClass = $metadata->getReflectionClass(); if (!$reflClass->isInterface() && $reflClass->hasMethod($this->methodName)) { $reflMethod = $reflClass->getMethod($this->methodName); if ($reflMethod->isAbstract()) { return false; } if (!$reflMethod->isStatic()) { throw new MappingException(sprintf('The method "%s::%s()" should be static.', $reflClass->name, $this->methodName)); } if ($reflMethod->getDeclaringClass()->name != $reflClass->name) { return false; } $reflMethod->invoke(null, $metadata); return true; } return false; } } Mapping/Loader/XmlFileLoader.php 0000644 00000015067 15120140577 0012560 0 ustar 00 <?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\Mapping\Loader; use Symfony\Component\Config\Util\XmlUtils; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\MappingException; use Symfony\Component\Validator\Mapping\ClassMetadata; /** * Loads validation metadata from an XML file. * * @author Bernhard Schussek <bschussek@gmail.com> */ class XmlFileLoader extends FileLoader { /** * The XML nodes of the mapping file. * * @var \SimpleXMLElement[]|null */ protected $classes; /** * {@inheritdoc} */ public function loadClassMetadata(ClassMetadata $metadata) { if (null === $this->classes) { $this->loadClassesFromXml(); } if (isset($this->classes[$metadata->getClassName()])) { $classDescription = $this->classes[$metadata->getClassName()]; $this->loadClassMetadataFromXml($metadata, $classDescription); return true; } return false; } /** * Return the names of the classes mapped in this file. * * @return string[] */ public function getMappedClasses() { if (null === $this->classes) { $this->loadClassesFromXml(); } return array_keys($this->classes); } /** * Parses a collection of "constraint" XML nodes. * * @param \SimpleXMLElement $nodes The XML nodes * * @return Constraint[] */ protected function parseConstraints(\SimpleXMLElement $nodes) { $constraints = []; foreach ($nodes as $node) { if (\count($node) > 0) { if (\count($node->value) > 0) { $options = $this->parseValues($node->value); } elseif (\count($node->constraint) > 0) { $options = $this->parseConstraints($node->constraint); } elseif (\count($node->option) > 0) { $options = $this->parseOptions($node->option); } else { $options = []; } } elseif ('' !== (string) $node) { $options = XmlUtils::phpize(trim($node)); } else { $options = null; } $constraints[] = $this->newConstraint((string) $node['name'], $options); } return $constraints; } /** * Parses a collection of "value" XML nodes. * * @param \SimpleXMLElement $nodes The XML nodes * * @return array */ protected function parseValues(\SimpleXMLElement $nodes) { $values = []; foreach ($nodes as $node) { if (\count($node) > 0) { if (\count($node->value) > 0) { $value = $this->parseValues($node->value); } elseif (\count($node->constraint) > 0) { $value = $this->parseConstraints($node->constraint); } else { $value = []; } } else { $value = trim($node); } if (isset($node['key'])) { $values[(string) $node['key']] = $value; } else { $values[] = $value; } } return $values; } /** * Parses a collection of "option" XML nodes. * * @param \SimpleXMLElement $nodes The XML nodes * * @return array */ protected function parseOptions(\SimpleXMLElement $nodes) { $options = []; foreach ($nodes as $node) { if (\count($node) > 0) { if (\count($node->value) > 0) { $value = $this->parseValues($node->value); } elseif (\count($node->constraint) > 0) { $value = $this->parseConstraints($node->constraint); } else { $value = []; } } else { $value = XmlUtils::phpize($node); if (\is_string($value)) { $value = trim($value); } } $options[(string) $node['name']] = $value; } return $options; } /** * Loads the XML class descriptions from the given file. * * @return \SimpleXMLElement * * @throws MappingException If the file could not be loaded */ protected function parseFile(string $path) { try { $dom = XmlUtils::loadFile($path, __DIR__.'/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd'); } catch (\Exception $e) { throw new MappingException($e->getMessage(), $e->getCode(), $e); } return simplexml_import_dom($dom); } private function loadClassesFromXml() { // This method may throw an exception. Do not modify the class' // state before it completes $xml = $this->parseFile($this->file); $this->classes = []; foreach ($xml->namespace as $namespace) { $this->addNamespaceAlias((string) $namespace['prefix'], trim((string) $namespace)); } foreach ($xml->class as $class) { $this->classes[(string) $class['name']] = $class; } } private function loadClassMetadataFromXml(ClassMetadata $metadata, \SimpleXMLElement $classDescription) { if (\count($classDescription->{'group-sequence-provider'}) > 0) { $metadata->setGroupSequenceProvider(true); } foreach ($classDescription->{'group-sequence'} as $groupSequence) { if (\count($groupSequence->value) > 0) { $metadata->setGroupSequence($this->parseValues($groupSequence[0]->value)); } } foreach ($this->parseConstraints($classDescription->constraint) as $constraint) { $metadata->addConstraint($constraint); } foreach ($classDescription->property as $property) { foreach ($this->parseConstraints($property->constraint) as $constraint) { $metadata->addPropertyConstraint((string) $property['name'], $constraint); } } foreach ($classDescription->getter as $getter) { foreach ($this->parseConstraints($getter->constraint) as $constraint) { $metadata->addGetterConstraint((string) $getter['property'], $constraint); } } } } Mapping/Loader/XmlFilesLoader.php 0000644 00000001245 15120140577 0012734 0 ustar 00 <?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\Mapping\Loader; /** * Loads validation metadata from a list of XML files. * * @author Bulat Shakirzyanov <mallluhuct@gmail.com> * @author Bernhard Schussek <bschussek@gmail.com> * * @see FilesLoader */ class XmlFilesLoader extends FilesLoader { /** * {@inheritdoc} */ public function getFileLoaderInstance(string $file) { return new XmlFileLoader($file); } } Mapping/Loader/YamlFileLoader.php 0000644 00000012664 15120140577 0012722 0 ustar 00 <?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\Mapping\Loader; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Mapping\ClassMetadata; use Symfony\Component\Yaml\Exception\ParseException; use Symfony\Component\Yaml\Parser as YamlParser; use Symfony\Component\Yaml\Yaml; /** * Loads validation metadata from a YAML file. * * @author Bernhard Schussek <bschussek@gmail.com> */ class YamlFileLoader extends FileLoader { /** * An array of YAML class descriptions. * * @var array */ protected $classes = null; /** * Caches the used YAML parser. * * @var YamlParser */ private $yamlParser; /** * {@inheritdoc} */ public function loadClassMetadata(ClassMetadata $metadata) { if (null === $this->classes) { $this->loadClassesFromYaml(); } if (isset($this->classes[$metadata->getClassName()])) { $classDescription = $this->classes[$metadata->getClassName()]; $this->loadClassMetadataFromYaml($metadata, $classDescription); return true; } return false; } /** * Return the names of the classes mapped in this file. * * @return string[] */ public function getMappedClasses() { if (null === $this->classes) { $this->loadClassesFromYaml(); } return array_keys($this->classes); } /** * Parses a collection of YAML nodes. * * @param array $nodes The YAML nodes * * @return array<array|scalar|Constraint> */ protected function parseNodes(array $nodes) { $values = []; foreach ($nodes as $name => $childNodes) { if (is_numeric($name) && \is_array($childNodes) && 1 === \count($childNodes)) { $options = current($childNodes); if (\is_array($options)) { $options = $this->parseNodes($options); } $values[] = $this->newConstraint(key($childNodes), $options); } else { if (\is_array($childNodes)) { $childNodes = $this->parseNodes($childNodes); } $values[$name] = $childNodes; } } return $values; } /** * Loads the YAML class descriptions from the given file. * * @throws \InvalidArgumentException If the file could not be loaded or did * not contain a YAML array */ private function parseFile(string $path): array { try { $classes = $this->yamlParser->parseFile($path, Yaml::PARSE_CONSTANT); } catch (ParseException $e) { throw new \InvalidArgumentException(sprintf('The file "%s" does not contain valid YAML: ', $path).$e->getMessage(), 0, $e); } // empty file if (null === $classes) { return []; } // not an array if (!\is_array($classes)) { throw new \InvalidArgumentException(sprintf('The file "%s" must contain a YAML array.', $this->file)); } return $classes; } private function loadClassesFromYaml() { if (null === $this->yamlParser) { $this->yamlParser = new YamlParser(); } $this->classes = $this->parseFile($this->file); if (isset($this->classes['namespaces'])) { foreach ($this->classes['namespaces'] as $alias => $namespace) { $this->addNamespaceAlias($alias, $namespace); } unset($this->classes['namespaces']); } } private function loadClassMetadataFromYaml(ClassMetadata $metadata, array $classDescription) { if (isset($classDescription['group_sequence_provider'])) { $metadata->setGroupSequenceProvider( (bool) $classDescription['group_sequence_provider'] ); } if (isset($classDescription['group_sequence'])) { $metadata->setGroupSequence($classDescription['group_sequence']); } if (isset($classDescription['constraints']) && \is_array($classDescription['constraints'])) { foreach ($this->parseNodes($classDescription['constraints']) as $constraint) { $metadata->addConstraint($constraint); } } if (isset($classDescription['properties']) && \is_array($classDescription['properties'])) { foreach ($classDescription['properties'] as $property => $constraints) { if (null !== $constraints) { foreach ($this->parseNodes($constraints) as $constraint) { $metadata->addPropertyConstraint($property, $constraint); } } } } if (isset($classDescription['getters']) && \is_array($classDescription['getters'])) { foreach ($classDescription['getters'] as $getter => $constraints) { if (null !== $constraints) { foreach ($this->parseNodes($constraints) as $constraint) { $metadata->addGetterConstraint($getter, $constraint); } } } } } } Mapping/Loader/YamlFilesLoader.php 0000644 00000001250 15120140577 0013072 0 ustar 00 <?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\Mapping\Loader; /** * Loads validation metadata from a list of YAML files. * * @author Bulat Shakirzyanov <mallluhuct@gmail.com> * @author Bernhard Schussek <bschussek@gmail.com> * * @see FilesLoader */ class YamlFilesLoader extends FilesLoader { /** * {@inheritdoc} */ public function getFileLoaderInstance(string $file) { return new YamlFileLoader($file); } } Mapping/AutoMappingStrategy.php 0000644 00000001445 15120140577 0012625 0 ustar 00 <?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\Mapping; /** * Specifies how the auto-mapping feature should behave. * * @author Maxime Steinhausser <maxime.steinhausser@gmail.com> */ final class AutoMappingStrategy { /** * Nothing explicitly set, rely on auto-mapping configured regex. */ public const NONE = 0; /** * Explicitly enabled. */ public const ENABLED = 1; /** * Explicitly disabled. */ public const DISABLED = 2; /** * Not instantiable. */ private function __construct() { } } Mapping/CascadingStrategy.php 0000644 00000002632 15120140577 0012254 0 ustar 00 <?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\Mapping; /** * Specifies whether an object should be cascaded. * * Cascading is relevant for any node type but class nodes. If such a node * contains an object of value, and if cascading is enabled, then the node * traverser will try to find class metadata for that object and validate the * object against that metadata. * * If no metadata is found for a cascaded object, and if that object implements * {@link \Traversable}, the node traverser will iterate over the object and * cascade each object or collection contained within, unless iteration is * prohibited by the specified {@link TraversalStrategy}. * * Although the constants currently represent a boolean switch, they are * implemented as bit mask in order to allow future extensions. * * @author Bernhard Schussek <bschussek@gmail.com> * * @see TraversalStrategy */ class CascadingStrategy { /** * Specifies that a node should not be cascaded. */ public const NONE = 1; /** * Specifies that a node should be cascaded. */ public const CASCADE = 2; /** * Not instantiable. */ private function __construct() { } } Mapping/ClassMetadata.php 0000644 00000036526 15120140577 0011374 0 ustar 00 <?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\Mapping; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Constraints\Cascade; use Symfony\Component\Validator\Constraints\Composite; use Symfony\Component\Validator\Constraints\GroupSequence; use Symfony\Component\Validator\Constraints\Traverse; use Symfony\Component\Validator\Constraints\Valid; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\GroupDefinitionException; /** * Default implementation of {@link ClassMetadataInterface}. * * This class supports serialization and cloning. * * @author Bernhard Schussek <bschussek@gmail.com> * @author Fabien Potencier <fabien@symfony.com> */ class ClassMetadata extends GenericMetadata implements ClassMetadataInterface { /** * @var string * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getClassName()} instead. */ public $name; /** * @var string * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getDefaultGroup()} instead. */ public $defaultGroup; /** * @var MemberMetadata[][] * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getPropertyMetadata()} instead. */ public $members = []; /** * @var PropertyMetadata[] * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getPropertyMetadata()} instead. */ public $properties = []; /** * @var GetterMetadata[] * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getPropertyMetadata()} instead. */ public $getters = []; /** * @var array * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getGroupSequence()} instead. */ public $groupSequence = []; /** * @var bool * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link isGroupSequenceProvider()} instead. */ public $groupSequenceProvider = false; /** * The strategy for traversing traversable objects. * * By default, only instances of {@link \Traversable} are traversed. * * @var int * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getTraversalStrategy()} instead. */ public $traversalStrategy = TraversalStrategy::IMPLICIT; /** * @var \ReflectionClass */ private $reflClass; public function __construct(string $class) { $this->name = $class; // class name without namespace if (false !== $nsSep = strrpos($class, '\\')) { $this->defaultGroup = substr($class, $nsSep + 1); } else { $this->defaultGroup = $class; } } /** * {@inheritdoc} */ public function __sleep() { $parentProperties = parent::__sleep(); // Don't store the cascading strategy. Classes never cascade. unset($parentProperties[array_search('cascadingStrategy', $parentProperties)]); return array_merge($parentProperties, [ 'getters', 'groupSequence', 'groupSequenceProvider', 'members', 'name', 'properties', 'defaultGroup', ]); } /** * {@inheritdoc} */ public function getClassName() { return $this->name; } /** * Returns the name of the default group for this class. * * For each class, the group "Default" is an alias for the group * "<ClassName>", where <ClassName> is the non-namespaced name of the * class. All constraints implicitly or explicitly assigned to group * "Default" belong to both of these groups, unless the class defines * a group sequence. * * If a class defines a group sequence, validating the class in "Default" * will validate the group sequence. The constraints assigned to "Default" * can still be validated by validating the class in "<ClassName>". * * @return string */ public function getDefaultGroup() { return $this->defaultGroup; } /** * {@inheritdoc} * * If the constraint {@link Cascade} is added, the cascading strategy will be * changed to {@link CascadingStrategy::CASCADE}. * * If the constraint {@link Traverse} is added, the traversal strategy will be * changed. Depending on the $traverse property of that constraint, * the traversal strategy will be set to one of the following: * * - {@link TraversalStrategy::IMPLICIT} by default * - {@link TraversalStrategy::NONE} if $traverse is disabled * - {@link TraversalStrategy::TRAVERSE} if $traverse is enabled */ public function addConstraint(Constraint $constraint) { $this->checkConstraint($constraint); if ($constraint instanceof Traverse) { if ($constraint->traverse) { // If traverse is true, traversal should be explicitly enabled $this->traversalStrategy = TraversalStrategy::TRAVERSE; } else { // If traverse is false, traversal should be explicitly disabled $this->traversalStrategy = TraversalStrategy::NONE; } // The constraint is not added return $this; } if ($constraint instanceof Cascade) { if (\PHP_VERSION_ID < 70400) { throw new ConstraintDefinitionException(sprintf('The constraint "%s" requires PHP 7.4.', Cascade::class)); } $this->cascadingStrategy = CascadingStrategy::CASCADE; foreach ($this->getReflectionClass()->getProperties() as $property) { if ($property->hasType() && (('array' === $type = $property->getType()->getName()) || class_exists($type))) { $this->addPropertyConstraint($property->getName(), new Valid()); } } // The constraint is not added return $this; } $constraint->addImplicitGroupName($this->getDefaultGroup()); parent::addConstraint($constraint); return $this; } /** * Adds a constraint to the given property. * * @return $this */ public function addPropertyConstraint(string $property, Constraint $constraint) { if (!isset($this->properties[$property])) { $this->properties[$property] = new PropertyMetadata($this->getClassName(), $property); $this->addPropertyMetadata($this->properties[$property]); } $constraint->addImplicitGroupName($this->getDefaultGroup()); $this->properties[$property]->addConstraint($constraint); return $this; } /** * @param Constraint[] $constraints * * @return $this */ public function addPropertyConstraints(string $property, array $constraints) { foreach ($constraints as $constraint) { $this->addPropertyConstraint($property, $constraint); } return $this; } /** * Adds a constraint to the getter of the given property. * * The name of the getter is assumed to be the name of the property with an * uppercased first letter and the prefix "get", "is" or "has". * * @return $this */ public function addGetterConstraint(string $property, Constraint $constraint) { if (!isset($this->getters[$property])) { $this->getters[$property] = new GetterMetadata($this->getClassName(), $property); $this->addPropertyMetadata($this->getters[$property]); } $constraint->addImplicitGroupName($this->getDefaultGroup()); $this->getters[$property]->addConstraint($constraint); return $this; } /** * Adds a constraint to the getter of the given property. * * @return $this */ public function addGetterMethodConstraint(string $property, string $method, Constraint $constraint) { if (!isset($this->getters[$property])) { $this->getters[$property] = new GetterMetadata($this->getClassName(), $property, $method); $this->addPropertyMetadata($this->getters[$property]); } $constraint->addImplicitGroupName($this->getDefaultGroup()); $this->getters[$property]->addConstraint($constraint); return $this; } /** * @param Constraint[] $constraints * * @return $this */ public function addGetterConstraints(string $property, array $constraints) { foreach ($constraints as $constraint) { $this->addGetterConstraint($property, $constraint); } return $this; } /** * @param Constraint[] $constraints * * @return $this */ public function addGetterMethodConstraints(string $property, string $method, array $constraints) { foreach ($constraints as $constraint) { $this->addGetterMethodConstraint($property, $method, $constraint); } return $this; } /** * Merges the constraints of the given metadata into this object. */ public function mergeConstraints(self $source) { if ($source->isGroupSequenceProvider()) { $this->setGroupSequenceProvider(true); } foreach ($source->getConstraints() as $constraint) { $this->addConstraint(clone $constraint); } foreach ($source->getConstrainedProperties() as $property) { foreach ($source->getPropertyMetadata($property) as $member) { $member = clone $member; foreach ($member->getConstraints() as $constraint) { if (\in_array($constraint::DEFAULT_GROUP, $constraint->groups, true)) { $member->constraintsByGroup[$this->getDefaultGroup()][] = $constraint; } $constraint->addImplicitGroupName($this->getDefaultGroup()); } $this->addPropertyMetadata($member); if ($member instanceof MemberMetadata && !$member->isPrivate($this->name)) { $property = $member->getPropertyName(); if ($member instanceof PropertyMetadata && !isset($this->properties[$property])) { $this->properties[$property] = $member; } elseif ($member instanceof GetterMetadata && !isset($this->getters[$property])) { $this->getters[$property] = $member; } } } } } /** * {@inheritdoc} */ public function hasPropertyMetadata(string $property) { return \array_key_exists($property, $this->members); } /** * {@inheritdoc} */ public function getPropertyMetadata(string $property) { return $this->members[$property] ?? []; } /** * {@inheritdoc} */ public function getConstrainedProperties() { return array_keys($this->members); } /** * Sets the default group sequence for this class. * * @param string[]|GroupSequence $groupSequence An array of group names * * @return $this * * @throws GroupDefinitionException */ public function setGroupSequence($groupSequence) { if ($this->isGroupSequenceProvider()) { throw new GroupDefinitionException('Defining a static group sequence is not allowed with a group sequence provider.'); } if (\is_array($groupSequence)) { $groupSequence = new GroupSequence($groupSequence); } if (\in_array(Constraint::DEFAULT_GROUP, $groupSequence->groups, true)) { throw new GroupDefinitionException(sprintf('The group "%s" is not allowed in group sequences.', Constraint::DEFAULT_GROUP)); } if (!\in_array($this->getDefaultGroup(), $groupSequence->groups, true)) { throw new GroupDefinitionException(sprintf('The group "%s" is missing in the group sequence.', $this->getDefaultGroup())); } $this->groupSequence = $groupSequence; return $this; } /** * {@inheritdoc} */ public function hasGroupSequence() { return $this->groupSequence && \count($this->groupSequence->groups) > 0; } /** * {@inheritdoc} */ public function getGroupSequence() { return $this->groupSequence; } /** * Returns a ReflectionClass instance for this class. * * @return \ReflectionClass */ public function getReflectionClass() { if (!$this->reflClass) { $this->reflClass = new \ReflectionClass($this->getClassName()); } return $this->reflClass; } /** * Sets whether a group sequence provider should be used. * * @throws GroupDefinitionException */ public function setGroupSequenceProvider(bool $active) { if ($this->hasGroupSequence()) { throw new GroupDefinitionException('Defining a group sequence provider is not allowed with a static group sequence.'); } if (!$this->getReflectionClass()->implementsInterface('Symfony\Component\Validator\GroupSequenceProviderInterface')) { throw new GroupDefinitionException(sprintf('Class "%s" must implement GroupSequenceProviderInterface.', $this->name)); } $this->groupSequenceProvider = $active; } /** * {@inheritdoc} */ public function isGroupSequenceProvider() { return $this->groupSequenceProvider; } /** * {@inheritdoc} */ public function getCascadingStrategy() { return $this->cascadingStrategy; } private function addPropertyMetadata(PropertyMetadataInterface $metadata) { $property = $metadata->getPropertyName(); $this->members[$property][] = $metadata; } private function checkConstraint(Constraint $constraint) { if (!\in_array(Constraint::CLASS_CONSTRAINT, (array) $constraint->getTargets(), true)) { throw new ConstraintDefinitionException(sprintf('The constraint "%s" cannot be put on classes.', get_debug_type($constraint))); } if ($constraint instanceof Composite) { foreach ($constraint->getNestedConstraints() as $nestedConstraint) { $this->checkConstraint($nestedConstraint); } } } } Mapping/ClassMetadataInterface.php 0000644 00000005442 15120140577 0013206 0 ustar 00 <?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\Mapping; use Symfony\Component\Validator\Constraints\GroupSequence; use Symfony\Component\Validator\GroupSequenceProviderInterface; /** * Stores all metadata needed for validating objects of specific class. * * Most importantly, the metadata stores the constraints against which an object * and its properties should be validated. * * Additionally, the metadata stores whether the "Default" group is overridden * by a group sequence for that class and whether instances of that class * should be traversed or not. * * @author Bernhard Schussek <bschussek@gmail.com> * * @see MetadataInterface * @see GroupSequence * @see GroupSequenceProviderInterface * @see TraversalStrategy */ interface ClassMetadataInterface extends MetadataInterface { /** * Returns the names of all constrained properties. * * @return string[] */ public function getConstrainedProperties(); /** * Returns whether the "Default" group is overridden by a group sequence. * * If it is, you can access the group sequence with {@link getGroupSequence()}. * * @return bool */ public function hasGroupSequence(); /** * Returns the group sequence that overrides the "Default" group for this * class. * * @return GroupSequence|null */ public function getGroupSequence(); /** * Returns whether the "Default" group is overridden by a dynamic group * sequence obtained by the validated objects. * * If this method returns true, the class must implement * {@link GroupSequenceProviderInterface}. * This interface will be used to obtain the group sequence when an object * of this class is validated. * * @return bool */ public function isGroupSequenceProvider(); /** * Check if there's any metadata attached to the given named property. * * @param string $property The property name * * @return bool */ public function hasPropertyMetadata(string $property); /** * Returns all metadata instances for the given named property. * * If your implementation does not support properties, throw an exception * in this method (for example a <tt>BadMethodCallException</tt>). * * @param string $property The property name * * @return PropertyMetadataInterface[] */ public function getPropertyMetadata(string $property); /** * Returns the name of the backing PHP class. * * @return string */ public function getClassName(); } Mapping/GenericMetadata.php 0000644 00000015054 15120140577 0011674 0 ustar 00 <?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\Mapping; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Constraints\Cascade; use Symfony\Component\Validator\Constraints\DisableAutoMapping; use Symfony\Component\Validator\Constraints\EnableAutoMapping; use Symfony\Component\Validator\Constraints\Traverse; use Symfony\Component\Validator\Constraints\Valid; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * A generic container of {@link Constraint} objects. * * This class supports serialization and cloning. * * @author Bernhard Schussek <bschussek@gmail.com> */ class GenericMetadata implements MetadataInterface { /** * @var Constraint[] * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getConstraints()} and {@link findConstraints()} instead. */ public $constraints = []; /** * @var array * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link findConstraints()} instead. */ public $constraintsByGroup = []; /** * The strategy for cascading objects. * * By default, objects are not cascaded. * * @var int * * @see CascadingStrategy * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getCascadingStrategy()} instead. */ public $cascadingStrategy = CascadingStrategy::NONE; /** * The strategy for traversing traversable objects. * * By default, traversable objects are not traversed. * * @var int * * @see TraversalStrategy * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getTraversalStrategy()} instead. */ public $traversalStrategy = TraversalStrategy::NONE; /** * Is auto-mapping enabled? * * @var int * * @see AutoMappingStrategy * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getAutoMappingStrategy()} instead. */ public $autoMappingStrategy = AutoMappingStrategy::NONE; /** * Returns the names of the properties that should be serialized. * * @return string[] */ public function __sleep() { return [ 'constraints', 'constraintsByGroup', 'cascadingStrategy', 'traversalStrategy', 'autoMappingStrategy', ]; } /** * Clones this object. */ public function __clone() { $constraints = $this->constraints; $this->constraints = []; $this->constraintsByGroup = []; foreach ($constraints as $constraint) { $this->addConstraint(clone $constraint); } } /** * Adds a constraint. * * If the constraint {@link Valid} is added, the cascading strategy will be * changed to {@link CascadingStrategy::CASCADE}. Depending on the * $traverse property of that constraint, the traversal strategy * will be set to one of the following: * * - {@link TraversalStrategy::IMPLICIT} if $traverse is enabled * - {@link TraversalStrategy::NONE} if $traverse is disabled * * @return $this * * @throws ConstraintDefinitionException When trying to add the {@link Cascade} * or {@link Traverse} constraint */ public function addConstraint(Constraint $constraint) { if ($constraint instanceof Traverse || $constraint instanceof Cascade) { throw new ConstraintDefinitionException(sprintf('The constraint "%s" can only be put on classes. Please use "Symfony\Component\Validator\Constraints\Valid" instead.', get_debug_type($constraint))); } if ($constraint instanceof Valid && null === $constraint->groups) { $this->cascadingStrategy = CascadingStrategy::CASCADE; if ($constraint->traverse) { $this->traversalStrategy = TraversalStrategy::IMPLICIT; } else { $this->traversalStrategy = TraversalStrategy::NONE; } return $this; } if ($constraint instanceof DisableAutoMapping || $constraint instanceof EnableAutoMapping) { $this->autoMappingStrategy = $constraint instanceof EnableAutoMapping ? AutoMappingStrategy::ENABLED : AutoMappingStrategy::DISABLED; // The constraint is not added return $this; } $this->constraints[] = $constraint; foreach ($constraint->groups as $group) { $this->constraintsByGroup[$group][] = $constraint; } return $this; } /** * Adds an list of constraints. * * @param Constraint[] $constraints The constraints to add * * @return $this */ public function addConstraints(array $constraints) { foreach ($constraints as $constraint) { $this->addConstraint($constraint); } return $this; } /** * {@inheritdoc} */ public function getConstraints() { return $this->constraints; } /** * Returns whether this element has any constraints. * * @return bool */ public function hasConstraints() { return \count($this->constraints) > 0; } /** * {@inheritdoc} * * Aware of the global group (* group). */ public function findConstraints(string $group) { return $this->constraintsByGroup[$group] ?? []; } /** * {@inheritdoc} */ public function getCascadingStrategy() { return $this->cascadingStrategy; } /** * {@inheritdoc} */ public function getTraversalStrategy() { return $this->traversalStrategy; } /** * @see AutoMappingStrategy */ public function getAutoMappingStrategy(): int { return $this->autoMappingStrategy; } } Mapping/GetterMetadata.php 0000644 00000005065 15120140577 0011553 0 ustar 00 <?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\Mapping; use Symfony\Component\Validator\Exception\ValidatorException; /** * Stores all metadata needed for validating a class property via its getter * method. * * A property getter is any method that is equal to the property's name, * prefixed with "get", "is" or "has". That method will be used to access the * property's value. * * The getter will be invoked by reflection, so the access of private and * protected getters is supported. * * This class supports serialization and cloning. * * @author Bernhard Schussek <bschussek@gmail.com> * * @see PropertyMetadataInterface */ class GetterMetadata extends MemberMetadata { /** * @param string $class The class the getter is defined on * @param string $property The property which the getter returns * @param string|null $method The method that is called to retrieve the value being validated (null for auto-detection) * * @throws ValidatorException */ public function __construct(string $class, string $property, string $method = null) { if (null === $method) { $getMethod = 'get'.ucfirst($property); $isMethod = 'is'.ucfirst($property); $hasMethod = 'has'.ucfirst($property); if (method_exists($class, $getMethod)) { $method = $getMethod; } elseif (method_exists($class, $isMethod)) { $method = $isMethod; } elseif (method_exists($class, $hasMethod)) { $method = $hasMethod; } else { throw new ValidatorException(sprintf('Neither of these methods exist in class "%s": "%s", "%s", "%s".', $class, $getMethod, $isMethod, $hasMethod)); } } elseif (!method_exists($class, $method)) { throw new ValidatorException(sprintf('The "%s()" method does not exist in class "%s".', $method, $class)); } parent::__construct($class, $method, $property); } /** * {@inheritdoc} */ public function getPropertyValue($object) { return $this->newReflectionMember($object)->invoke($object); } /** * {@inheritdoc} */ protected function newReflectionMember($objectOrClassName) { return new \ReflectionMethod($objectOrClassName, $this->getName()); } } Mapping/MemberMetadata.php 0000644 00000012342 15120140577 0011524 0 ustar 00 <?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\Mapping; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Constraints\Composite; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * Stores all metadata needed for validating a class property. * * The method of accessing the property's value must be specified by subclasses * by implementing the {@link newReflectionMember()} method. * * This class supports serialization and cloning. * * @author Bernhard Schussek <bschussek@gmail.com> * * @see PropertyMetadataInterface */ abstract class MemberMetadata extends GenericMetadata implements PropertyMetadataInterface { /** * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getClassName()} instead. */ public $class; /** * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getName()} instead. */ public $name; /** * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getPropertyName()} instead. */ public $property; /** * @var \ReflectionMethod[]|\ReflectionProperty[] */ private $reflMember = []; /** * @param string $class The name of the class this member is defined on * @param string $name The name of the member * @param string $property The property the member belongs to */ public function __construct(string $class, string $name, string $property) { $this->class = $class; $this->name = $name; $this->property = $property; } /** * {@inheritdoc} */ public function addConstraint(Constraint $constraint) { $this->checkConstraint($constraint); parent::addConstraint($constraint); return $this; } /** * {@inheritdoc} */ public function __sleep() { return array_merge(parent::__sleep(), [ 'class', 'name', 'property', ]); } /** * Returns the name of the member. * * @return string */ public function getName() { return $this->name; } /** * {@inheritdoc} */ public function getClassName() { return $this->class; } /** * {@inheritdoc} */ public function getPropertyName() { return $this->property; } /** * Returns whether this member is public. * * @param object|string $objectOrClassName The object or the class name * * @return bool */ public function isPublic($objectOrClassName) { return $this->getReflectionMember($objectOrClassName)->isPublic(); } /** * Returns whether this member is protected. * * @param object|string $objectOrClassName The object or the class name * * @return bool */ public function isProtected($objectOrClassName) { return $this->getReflectionMember($objectOrClassName)->isProtected(); } /** * Returns whether this member is private. * * @param object|string $objectOrClassName The object or the class name * * @return bool */ public function isPrivate($objectOrClassName) { return $this->getReflectionMember($objectOrClassName)->isPrivate(); } /** * Returns the reflection instance for accessing the member's value. * * @param object|string $objectOrClassName The object or the class name * * @return \ReflectionMethod|\ReflectionProperty */ public function getReflectionMember($objectOrClassName) { $className = \is_string($objectOrClassName) ? $objectOrClassName : \get_class($objectOrClassName); if (!isset($this->reflMember[$className])) { $this->reflMember[$className] = $this->newReflectionMember($objectOrClassName); } return $this->reflMember[$className]; } /** * Creates a new reflection instance for accessing the member's value. * * @param object|string $objectOrClassName The object or the class name * * @return \ReflectionMethod|\ReflectionProperty */ abstract protected function newReflectionMember($objectOrClassName); private function checkConstraint(Constraint $constraint) { if (!\in_array(Constraint::PROPERTY_CONSTRAINT, (array) $constraint->getTargets(), true)) { throw new ConstraintDefinitionException(sprintf('The constraint "%s" cannot be put on properties or getters.', get_debug_type($constraint))); } if ($constraint instanceof Composite) { foreach ($constraint->getNestedConstraints() as $nestedConstraint) { $this->checkConstraint($nestedConstraint); } } } } Mapping/MetadataInterface.php 0000644 00000003004 15120140577 0012210 0 ustar 00 <?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\Mapping; use Symfony\Component\Validator\Constraint; /** * A container for validation metadata. * * Most importantly, the metadata stores the constraints against which an object * and its properties should be validated. * * Additionally, the metadata stores whether objects should be validated * against their class' metadata and whether traversable objects should be * traversed or not. * * @author Bernhard Schussek <bschussek@gmail.com> * * @see CascadingStrategy * @see TraversalStrategy */ interface MetadataInterface { /** * Returns the strategy for cascading objects. * * @return int * * @see CascadingStrategy */ public function getCascadingStrategy(); /** * Returns the strategy for traversing traversable objects. * * @return int * * @see TraversalStrategy */ public function getTraversalStrategy(); /** * Returns all constraints of this element. * * @return Constraint[] */ public function getConstraints(); /** * Returns all constraints for a given validation group. * * @param string $group The validation group * * @return Constraint[] */ public function findConstraints(string $group); } Mapping/PropertyMetadata.php 0000644 00000005615 15120140577 0012146 0 ustar 00 <?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\Mapping; use Symfony\Component\Validator\Exception\ValidatorException; /** * Stores all metadata needed for validating a class property. * * The value of the property is obtained by directly accessing the property. * The property will be accessed by reflection, so the access of private and * protected properties is supported. * * This class supports serialization and cloning. * * @author Bernhard Schussek <bschussek@gmail.com> * * @see PropertyMetadataInterface */ class PropertyMetadata extends MemberMetadata { /** * @param string $class The class this property is defined on * @param string $name The name of this property * * @throws ValidatorException */ public function __construct(string $class, string $name) { if (!property_exists($class, $name)) { throw new ValidatorException(sprintf('Property "%s" does not exist in class "%s".', $name, $class)); } parent::__construct($class, $name, $name); } /** * {@inheritdoc} */ public function getPropertyValue($object) { $reflProperty = $this->getReflectionMember($object); if (\PHP_VERSION_ID >= 70400 && $reflProperty->hasType() && !$reflProperty->isInitialized($object)) { // There is no way to check if a property has been unset or if it is uninitialized. // When trying to access an uninitialized property, __get method is triggered. // If __get method is not present, no fallback is possible // Otherwise we need to catch an Error in case we are trying to access an uninitialized but set property. if (!method_exists($object, '__get')) { return null; } try { return $reflProperty->getValue($object); } catch (\Error $e) { return null; } } return $reflProperty->getValue($object); } /** * {@inheritdoc} */ protected function newReflectionMember($objectOrClassName) { $originalClass = \is_string($objectOrClassName) ? $objectOrClassName : \get_class($objectOrClassName); while (!property_exists($objectOrClassName, $this->getName())) { $objectOrClassName = get_parent_class($objectOrClassName); if (false === $objectOrClassName) { throw new ValidatorException(sprintf('Property "%s" does not exist in class "%s".', $this->getName(), $originalClass)); } } $member = new \ReflectionProperty($objectOrClassName, $this->getName()); $member->setAccessible(true); return $member; } } Mapping/PropertyMetadataInterface.php 0000644 00000002370 15120140577 0013762 0 ustar 00 <?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\Mapping; /** * Stores all metadata needed for validating the value of a class property. * * Most importantly, the metadata stores the constraints against which the * property's value should be validated. * * Additionally, the metadata stores whether objects stored in the property * should be validated against their class' metadata and whether traversable * objects should be traversed or not. * * @author Bernhard Schussek <bschussek@gmail.com> * * @see MetadataInterface * @see CascadingStrategy * @see TraversalStrategy */ interface PropertyMetadataInterface extends MetadataInterface { /** * Returns the name of the property. * * @return string */ public function getPropertyName(); /** * Extracts the value of the property from the given container. * * @param mixed $containingValue The container to extract the property value from * * @return mixed */ public function getPropertyValue($containingValue); } Mapping/TraversalStrategy.php 0000644 00000002747 15120140577 0012352 0 ustar 00 <?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\Mapping; /** * Specifies whether and how a traversable object should be traversed. * * If the node traverser traverses a node whose value is an instance of * {@link \Traversable}, and if that node is either a class node or if * cascading is enabled, then the node's traversal strategy will be checked. * Depending on the requested traversal strategy, the node traverser will * iterate over the object and cascade each object or collection returned by * the iterator. * * The traversal strategy is ignored for arrays. Arrays are always iterated. * * @author Bernhard Schussek <bschussek@gmail.com> * * @see CascadingStrategy */ class TraversalStrategy { /** * Specifies that a node's value should be iterated only if it is an * instance of {@link \Traversable}. */ public const IMPLICIT = 1; /** * Specifies that a node's value should never be iterated. */ public const NONE = 2; /** * Specifies that a node's value should always be iterated. If the value is * not an instance of {@link \Traversable}, an exception should be thrown. */ public const TRAVERSE = 4; /** * Not instantiable. */ private function __construct() { } } Resources/translations/validators.lt.xlf 0000644 00000057675 15120140577 0014566 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Reikšmė turi būti neigiama.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Reikšmė turi būti teigiama.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Šios reikšmės tipas turi būti {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Ši reikšmė turi būti tuščia.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Neteisingas pasirinkimas.</target> </trans-unit> <trans-unit id="6"> <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 }} 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"> <source>One or more of the given values is invalid.</source> <target>Viena ar daugiau įvestų reikšmių yra netinkamos.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Nebuvo tikimasi Šis laukas.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Šiame lauke yra dingęs.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Ši reikšmė nėra data.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Ši reikšmė nera data ir laikas.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Ši reikšmė nėra tinkamas el. pašto adresas.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Byla nerasta.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Negalima nuskaityti bylos.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Byla yra per didelė ({{ size }} {{ suffix }}). Maksimalus dydis {{ 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>Netinkamas bylos tipas (mime type) ({{ type }}). Galimi bylų tipai {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Ši reikšmė negali būti tuščia.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Ši reikšmė negali būti null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Ši reikšmė turi būti null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Netinkama reikšmė.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Ši reikšmė nėra laikas.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Ši reikšmė nėra tinkamas interneto adresas.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Abi reikšmės turi būti identiškos.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Byla yra per didelė. Maksimalus dydis yra {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Byla per didelė.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Byla negali būti įkelta.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Ši reikšmė turi būti skaičius.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Byla nėra paveikslėlis.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Ši reikšmė nėra tinkamas IP adresas.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Ši reikšmė nėra tinkama kalba.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Ši reikšmė nėra tinkama lokalė.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Ši reikšmė nėra tinkama šalis.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Ši reikšmė jau yra naudojama.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Nepavyko nustatyti nuotraukos dydžio.</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>Nuotraukos plotis per didelis ({{ width }}px). Maksimalus leidžiamas plotis yra {{ 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>Nuotraukos plotis per mažas ({{ width }}px). Minimalus leidžiamas plotis yra {{ 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>Nuotraukos aukštis per didelis ({{ height }}px). Maksimalus leidžiamas aukštis yra {{ 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>Nuotraukos aukštis per mažas ({{ height }}px). Minimalus leidžiamas aukštis yra {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Ši reikšmė turi sutapti su dabartiniu naudotojo slaptažodžiu.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Failas buvo tik dalinai įkeltas.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Nebuvo įkelta jokių failų.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Nėra sukonfiguruoto jokio laikino katalogo php.ini faile.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Nepavyko išsaugoti laikino failo.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP plėtinys sutrukdė failo įkėlimą ir jis nepavyko.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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> <trans-unit id="57"> <source>Invalid card number.</source> <target>Klaidingas kortelės numeris.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Kortelės tipas nepalaikomas arba klaidingas kortelės numeris.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Ši reišmė neatitinka tarptautinio banko sąskaitos numerio formato (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Ši reikšmė neatitinka ISBN-10 formato.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Ši reikšmė neatitinka ISBN-13 formato.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Ši reikšmė neatitinka nei ISBN-10, nei ISBN-13 formato.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Ši reišmė neatitinka ISSN formato.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Netinkamas valiutos formatas.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Ši reikšmė turi būti lygi {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Ši reikšmė turi būti didesnė už {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Ši reikšmė turi būti didesnė už arba lygi {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ši reikšmė turi būti identiška {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Ši reikšmė turi būti mažesnė už {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Ši reikšmė turi būti mažesnė už arba lygi {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Ši reikšmė neturi būti lygi {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ši reikšmė neturi būti identiška {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Nuotraukos santykis yra per didelis ({{ ratio }}). Didžiausias leistinas santykis yra {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Nuotraukos santykis yra per mažas ({{ ratio }}). Mažiausias leistinas santykis yra {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Nuotrauka yra kvadratinė ({{ width }}x{{ height }}px). Kvadratinės nuotraukos nėra leistinos.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Nuotrauka orientuota į plotį ({{ width }}x{{ height }}px). Nuotraukos orientuotos į plotį nėra leistinos.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Nuotrauka orientuota į aukštį ({{ width }}x{{ height }}px). Nuotraukos orientuotos į aukštį nėra leistinos.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Failas negali būti tuščias.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Serveris nepasiekiamas.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Ši reikšmė neatitinka {{ charset }} koduotės.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Bendrovės Identifikavimo Kodas (BIC) nėra tinkamas.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Klaida</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Ši reikšmė nėra tinkamas UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Ši reikšmė turi būti skaičiaus {{ compared_value }} kartotinis.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Šis bendrovės identifikavimo kodas (BIC) nesusijęs su IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Ši reikšmė turi būti tinkamo JSON formato.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Sąraše turi būti tik unikalios reikšmės.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Reikšmė turi būti teigiama.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Reikšmė turi būti teigiama arba lygi nuliui.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Reikšmė turi būti neigiama.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Reikšmė turi būti neigiama arba lygi nuliui.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Reikšmė nėra tinkama laiko juosta.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Slaptažodis yra nutekėjęs duomenų saugumo pažeidime, jo naudoti negalima. Prašome naudoti kitą slaptažodį.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Ši reikšmė turi būti tarp {{ min }} ir {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Ši reikšmė nėra tinkamas svetainės adresas.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Šio sąrašo elementų skaičius turėtų būti skaičiaus {{ compared_value }} kartotinis.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Ši reikšmė turėtų atitikti bent vieną iš šių nurodymų:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Kiekvienas šio sąrašo elementas turi atitikti savo nurodymų rinkinį.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Ši reišmė neatitinka tarptautinio vertybinių popierių identifikavimo numerio formato (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Ši vertė turėtų būti teisinga išraiška.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Ši reikšmė nėra tinkama CSS spalva.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Ši vertė nėra tinkamas CIDR žymėjimas.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Tinklo kaukės reikšmė turi būti nuo {{ min }} iki {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.lv.xlf 0000644 00000057763 15120140577 0014566 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Šai vērtībai ir jābūt nepatiesai.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Šai vērtībai ir jābūt patiesai.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Šīs vērtības tipam ir jābūt {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Šai vērtībai ir jābūt tukšai.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Vērtība, kuru jūs izvēlējāties nav derīga izvēle.</target> </trans-unit> <trans-unit id="6"> <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source> <target>Jums nav jāveic izvēle.|Jums ir jāveic vismaz {{ limit }} izvēle.|Jums ir jāveic vismaz {{ limit }} izvēles.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Jums nav jāveic izvēle.|Jums ir jāveic ne vairāk kā {{ limit }} izvēle.|Jums ir jāveic ne vairāk kā {{ limit }} izvēles.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Viena vai vairākas no dotajām vērtībām ir nederīgas.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Šis lauks netika gaidīts.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Šis lauks ir pazudis.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Šī vērtība ir nederīgs datums.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Šī vērtība ir nederīgs datums un laiks</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Šī vērtība ir nederīga e-pasta adrese.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Fails nav atrasts.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Fails nav lasāms.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fails ir pārāk liels ({{ size }} {{ suffix }}). Atļautais maksimālais izmērs ir {{ 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>Faila mime tips nav derīgs ({{ type }}). Atļautie mime tipi ir {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Šai vērtībai ir jābūt ne vairāk kā {{ limit }}.</target> </trans-unit> <trans-unit id="19"> <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>Šīs vērtības garums ir 0 rakstzīmju.|Šī vērtība ir pārāk gara. Tai būtu jābūt ne vairāk kā {{ limit }} rakstzīmei.|Šī vērtība ir pārāk gara. Tai būtu jābūt ne vairāk kā {{ limit }} rakstzīmēm.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <target>Šai vērtībai ir jābūt ne mazāk kā {{ limit }}.</target> </trans-unit> <trans-unit id="21"> <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>Šīs vērtības garums ir 0 rakstzīmju.|Šī vērtība ir pārāk īsa. Tai būtu jābūt ne mazāk kā {{ limit }} rakstzīmei.|Šī vērtība ir pārāk īsa. Tai būtu jābūt ne mazāk kā {{ limit }} rakstzīmēm.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Šai vērtībai nav jābūt tukšai.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Šai vērtībai nav jābūt null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Šai vērtībai ir jābūt null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Šī vērtība ir nederīga.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Šī vērtība ir nederīgs laiks.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Šī vērtība ir nederīgs URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Abām vērtībām jābūt vienādam.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fails ir pārāk liels. Atļautais maksimālais izmērs ir {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Fails ir pārāk liels.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Failu nevarēja augšupielādēt.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Šai vērtībai ir jābūt derīgam skaitlim.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Šis fails nav derīgs attēls.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Šī nav derīga IP adrese.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Šī vērtība nav derīga valoda.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Šī vērtība nav derīga lokalizācija.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Šī vērtība nav derīga valsts.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Šī vērtība jau tiek izmantota.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Nevar noteikt attēla izmēru.</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>Attēla platums ir pārāk liels ({{ width }}px). Atļautais maksimālais platums ir {{ 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>Attēla platums ir pārāk mazs ({{ width }}px). Minimālais sagaidāmais platums ir {{ 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>Attēla augstums ir pārāk liels ({{ height }}px). Atļautais maksimālais augstums ir {{ 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>Attēla augstums ir pārāk mazs ({{ height }}px). Minimālais sagaidāmais augstums ir {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Šai vērtībai ir jābūt lietotāja pašreizējai parolei.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Šīs vērtības garums ir 0 rakstzīmju.|Šai vērtībai ir jābūt tieši {{ limit }} rakstzīmei.|Šai vērtībai ir jābūt tieši {{ limit }} rakstzīmēm.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Fails bija tikai daļēji augšupielādēts.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Fails netika augšupielādēts.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Pagaidu mape php.ini failā nav nokonfigurēta.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Nevar ierakstīt pagaidu failu uz diska.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP paplašinājums izraisīja augšupielādes neizdošanos.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Šis krājums satur 0 elementu.|Šim krājumam jāsatur vismaz {{ limit }} elementu.|Šim krājumam jāsatur vismaz {{ limit }} elementus.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Šis krājums satur 0 elementu.|Šim krājumam jāsatur ne vairāk kā {{ limit }} elementu.|Šim krājumam jāsatur ne vairāk kā {{ limit }} elementus.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Šis krājums satur 0 elementu.|Šim krājumam jāsatur tieši {{ limit }} elementu.|Šim krājumam jāsatur tieši {{ limit }} elementus.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Nederīgs kartes numurs.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Neatbalstīts kartes tips vai nederīgs kartes numurs.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Šis nav derīgs starptautisks banku konta numurs (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Šī vērtība nav derīgs ISBN-10 numurs.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Šī vērtība nav derīgs ISBN-13 numurs</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Šī vērtība neatbilst ne derīgam ISBN-10 numuram, ne derīgm ISBN-13 numuram.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Šī vērtība nav derīgs ISSN numurs</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Šī vērtība nav derīga valūta</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Šai vērtībai ir jābūt vienādai ar {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Šai vērtībai ir jābūt lielākai par {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Šai vērtībai ir jābūt lielākai vai vienādai ar {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Šai vērtībai ir jābūt identiskai ar {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Šai vērtībai ir jābūt mazākai par {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Šai vērtībai ir jābūt mazākai vai vienādai ar {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Šai vērtībai ir jābūt vienādai ar {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Šai vērtībai nav jābūt identiskai ar {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Attēla attiecība ir pārāk liela ({{ ratio }}). Atļautā maksimālā attiecība ir {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Attēla attiecība ir pārāk maza ({{ ratio }}). Minimālā sagaidāmā attiecība ir {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Šis attēls ir kvadrāts ({{ width }}x{{ height }}px). Kvadrātveida attēli nav atļauti.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Attēls ir orientēts kā ainava ({{ width }}x{{ height }}px). Attēli, kas ir orientēti kā ainavas nav atļauti.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Attēls ir orientēts kā portrets ({{ width }}x{{ height }}px). Attēli, kas ir orientēti kā portreti nav atļauti.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Tukšs fails nav atļauts.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Resursdatora nosaukumu nevar atrisināt.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Šī vērtība neatbilst sagaidāmajai rakstzīmju kopai {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Šī vērtība nav derīgs Biznesa Identifikācijas Kods (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Kļūda</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Šis nav derīgs UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Šai vērtībai jābūt vairākas reizes atkārtotai {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Šis Biznesa Identifikācijas Kods (BIC) neatbilst {{ iban }} konta numuram (IBAN).</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Šai vērtībai jābūt derīgam JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Šai kolekcijai jāsatur tikai unikāli elementi.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Šai vērtībai jābūt pozitīvai.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Šai vērtībai jābūt pozitīvai vai vienādai ar nulli.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Šai vērtībai jābūt negatīvai.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Šai vērtībai jābūt negatīvai vai vienādai ar nulli.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Šī vērtība nav derīga laika zona.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Šī parole tika publicēta datu noplūdē, viņu nedrīkst izmantot. Lūdzu, izvēlieties citu paroli.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Šai vērtībai jābūt starp {{ min }} un {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Šī vērtība nav derīgs tīmekļa servera nosaukums.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Elementu skaitam šajā kolekcijā jābūt {{ compared_value }} reizinājumam.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Šai vērtībai jāiekļaujas vismaz vienā no sekojošiem ierobežojumiem:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Šīs kolekcijas katram elementam jāiekļaujas savā ierobežojumu kopā.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Šī vērtība nav derīgs starptautiskais vērtspapīru identifikācijas numurs (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Šai vērtībai jābūt korektai izteiksmei.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Šī vērtība nav korekta CSS krāsa.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Šī vērtība nav korekts CIDR apzīmējums.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Tīkla maskas (netmask) vērtībai jābūt starp {{ min }} un {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.mn.xlf 0000644 00000062513 15120140577 0014544 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Энэ утга буруу байх ёстой.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Энэ утга үнэн байх ёстой.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Энэ утга {{ type }} -н төрөл байх ёстой.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Энэ утга хоосон байх ёстой.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Сонгосон утга буруу байна.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Хамгийн ихдээ {{ limit }} утга сонгогдох боломжтой.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Өгөгдсөн нэг эсвэл нэгээс олон утга буруу байна.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Энэ талбар нь хүлээгдэж байсан юм.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Энэ талбар нь алга болсон байна.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Энэ утга буруу date төрөл байна .</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Энэ утга буруу цаг төрөл байна.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>И-майл хаяг буруу байна.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Файл олдсонгүй.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Файл уншигдахуйц биш байна.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Файл хэтэрхий том байна ({{ size }} {{ suffix }}). Зөвшөөрөгдөх дээд хэмжээ {{ 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>Файлын MIME-төрөл нь буруу байна ({{ type }}). Зөвшөөрөгдөх MIME-төрлүүд {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Энэ утга {{ limit }} юмуу эсвэл бага байна.</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>Энэ утга {{ limit }} юмуу эсвэл их байна.</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>Энэ утга хоосон байж болохгүй.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Энэ утга null байж болохгүй.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Энэ утга null байна.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Энэ утга буруу байна.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Энэ утга буруу цаг төрөл байна.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Энэ утга буруу URL байна .</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Хоёр утгууд ижил байх ёстой.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Файл хэтэрхий том байна. Зөвшөөрөгдөх дээд хэмжээ нь {{ limit }} {{ suffix }} байна.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Файл хэтэрхий том байна.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Файл upload хийгдсэнгүй.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Энэ утга зөвхөн тоо байна.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Файл зураг биш байна.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>IP хаяг зөв биш байна.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Энэ утга үнэн зөв хэл биш байна.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Энэ утга үнэн зөв байршил биш байна.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Энэ утга үнэн бодит улс биш байна.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Энэ утга аль хэдийнээ хэрэглэгдсэн байна.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Зургийн хэмжээ тогтоогдож чадсангүй.</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>Зургийн өргөн хэтэрхий том байна ({{ width }}px). Өргөн нь хамгийн ихдээ {{ 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>Зургийн өргөн хэтэрхий жижиг байна ({{ width }}px). Өргөн нь хамгийн багадаа {{ 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>Зургийн өндөр хэтэрхий том байна ({{ height }}px). Өндөр нь хамгийн ихдээ {{ 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>Зургийн өндөр хэтэрхий жижиг байна ({{ height }}px). Өндөр нь хамгийн багадаа {{ min_height }}px байх боломжтой.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Энэ утга хэрэглэгчийн одоогийн нууц үг байх ёстой.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Файлын зөвхөн хагас нь upload хийгдсэн.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Ямар ч файл upload хийгдсэнгүй.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>php.ini дээр түр зуурын хавтсыг тохируулаагүй байна, эсвэл тохируулсан хавтас байхгүй байна.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Түр зуурын файлыг диск руу бичиж болохгүй байна.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP extension нь upload -г амжилтгүй болгоод байна.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Энэ коллекц яг {{ limit }} элемент агуулах ёстой.|Энэ коллекц яг {{ limit }} элемент агуулах ёстой.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Картын дугаар буруу байна.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Дэмжигдээгүй картын төрөл эсвэл картын дугаар буруу байна.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Энэ утга үнэн зөв Олон Улсын Банкны Дансны Дугаар (IBAN) биш байна.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Энэ утга үнэн зөв ISBN-10 биш байна.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Энэ утга үнэн зөв ISBN-13 биш байна.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Энэ утга үнэн зөв ISBN-10 юмуу ISBN-13 биш байна.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Энэ утга үнэн зөв ISSN биш байна.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Энэ утга үнэн бодит валют биш байна.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Энэ утга {{ compared_value }} -тaй тэнцүү байх ёстой.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Энэ утга {{ compared_value }} -с их байх ёстой.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Энэ утга {{ compared_value }} -тай тэнцүү юмуу эсвэл их байх ёстой.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Энэ утга {{ compared_value_type }} {{ compared_value }} -тай яг ижил байх ёстой.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Энэ утга {{ compared_value }} -с бага байх ёстой.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Энэ утга {{ compared_value }} -тай ижил юмуу эсвэл бага байх ёстой.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Энэ утга {{ compared_value }} -тай тэнцүү байх ёсгүй.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Энэ утга {{ compared_value_type }} {{ compared_value }} -тай яг ижил байх ёсгүй.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Зургийн харьцаа хэтэрхий том байна ({{ ratio }}). Харьцаа нь хамгийн ихдээ {{ max_ratio }} байна.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Зургийн харьцаа хэтэрхий жижиг байна ({{ ratio }}). Харьцаа нь хамгийн багадаа {{ min_ratio }} байна.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Зураг дөрвөлжин хэлбэртэй байна ({{ width }}x{{ height }}px). Дөрвөлжин зургууд оруулах боломжгүй.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Зураг хэвтээ байрлалтай байна ({{ width }}x{{ height }}px). Хэвтээ байрлалтай зургууд оруулах боломжгүй.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Зургууд босоо байрлалтай байна ({{ width }}x{{ height }}px). Босоо байрлалтай зургууд оруулах боломжгүй.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Хоосон файл оруулах боломжгүй.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Хост зөв тохирогдоогүй байна.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Энэ утга тооцоолсон {{ charset }} тэмдэгттэй таарахгүй байна.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Энэ утга үнэн зөв Business Identifier Code (BIC) биш байна.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Алдаа</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Энэ утга үнэн зөв UUID биш байна.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Энэ утга {{ compared_value }} -н үржвэр байх ёстой.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Энэ Business Identifier Code (BIC) код нь IBAN {{ iban }} -тай холбоогүй байна.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Энэ утга JSON байх ёстой.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Энэ коллекц зөвхөн давтагдахгүй элементүүд агуулах ёстой.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Энэ утга эерэг байх ёстой.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Энэ утга тэг эсвэл эерэг байх ёстой.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Энэ утга сөрөг байх ёстой.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Энэ утга сөрөг эсвэл тэг байх ёстой.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Энэ утга үнэн зөв цагийн бүс биш байна.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Энэ нууц үгийн мэдээлэл алдагдсан байх магадлалтай учраас дахин ашиглагдах ёсгүй. Өөр нууц үг ашиглана уу.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Энэ утга {{ min }} -с {{ max }} хооронд байх ёстой.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Энэ утга буруу hostname байна.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Энэхүү цуглуулган дахь элемэнтийн тоо, {{ compared_value }}-н үржвэр байх ёстой.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Энэ утга доорх болзолуудын ядаж нэгийг хангах ёстой:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Энэхүү цуглуулган дахь элемэнтүүд өөр өөрсдийн болзолуудаа хангах ёстой.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Энэ утга зөв International Securities Identification Number (ISIN) биш байна.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.my.xlf 0000644 00000075276 15120140577 0014571 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>ဤတန်ဖိုးသည် false ဖြစ်ရမည်။</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>ဤတန်ဖိုးသည် true ဖြစ်ရမည်။</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>ဤတန်ဖိုးသည် {{ type }} အမျိုးအစားဖြစ်ရမည်။ </target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>ဤတန်ဖိုးသည် ကွပ်လပ်မဖြစ်သင့်ပါ။</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>သင်ရွေးချယ်သောတန်ဖိုးသည် သင့်လျှော်သော် တန်ဖိုးမဟုတ်ပါ။</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>သင်သည်အများဆုံး {{ limit }} ခုသာရွေးချယ်ခွင့်ရှိသည်။</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>ပေးထားသောတန်ဖိုးတစ်ခု (သို့မဟုတ်) တစ်ခုထက်ပို၍မမှန်ကန်ပါ။</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>ဤကွက်လပ်ကိုမမျှော်လင့်ထားပါ။</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>ဤကွက်လပ်ကိုမမျှော်လင့်ထားပါ။</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>ဤတန်ဖိုးသည်မှန်ကန်သော်ရက်စွဲမဟုတ်ပါ။</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>ဤတန်ဖိုးသည် မှန်ကန်သော် ရက်စွဲ/အချိန် မဟုတ်ပါ။</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>ဤတန်ဖိုးသည် မှန်ကန်သော် အီးမေးလိပ်စာ မဟုတ်ပါ။</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>ဖိုင်ရှာမတွေ့ပါ။</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>ဤဖိုင်ကို ဖတ်၍မရပါ။</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>ဖိုင်အရွယ်အစား အလွန်ကြီးနေသည် ({{ size }} {{ suffix }}). ခွင့်ပြုထားသော အများဆုံး ဖိုင်ဆိုဒ်သည် {{ 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>ဖိုင်၏ mime အမျိုးအစားမမှန်ကန်ပါ ({{ type }})။ ခွင့်ပြုထားသော mime အမျိုးအစားများမှာ {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>ဤတန်ဖိုးသည် {{ limit }} (သို့မဟုတ်) {{ limit }} ထက်နည်းသင့်သည်။</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>ဤတန်ဖိုးသည် {{limit}} (သို့မဟုတ်) ထို့ထက်ပိုသင့်သည်။</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>ဤတန်ဖိုးသည်ကွက်လပ်မဖြစ်သင့်ပါ။</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>ဤတန်ဖိုးသည် null မဖြစ်သင့်ပါ။</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>ဤတန်ဖိုးသည် null ဖြစ်သင့်သည်။</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>ဤတန်ဖိုးသည်မှန်ကန်သောတန်ဖိုးမဟုတ်ပါ။</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>ဤတန်ဖိုးသည်မှန်ကန်သော အချိန်တန်ဖိုးမဟုတ်ပါ။</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>ဤတန်ဖိုးသည်မှန်ကန်သော URL တန်ဖိုးမဟုတ်ပါ။</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>တန်ဖိုးနှစ်ခုသည် တူညီသင့်သည်။</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>ဤဖိုင်သည် အလွန်ကြီးသည်။ ခွင့်ပြုထားသည့်အများဆုံးဖိုင်အရွယ်အစားသည် {{ limit }} {{ suffix }} ဖြစ်သည်။</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>ဤဖိုင်သည် အလွန်ကြီးသည်။</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>ဤဖိုင်ကိုတင်၍မရပါ။</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>ဤတန်ဖိုးသည်မှန်ကန်သောနံပါတ်ဖြစ်သင့်သည်။</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>ဤဖိုင်သည်မှန်ကန်သော ဓါတ်ပုံမဟုတ်ပါ။</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>၎င်းသည်တရားဝင် IP လိပ်စာမဟုတ်ပါ။</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>ဤတန်ဖိုးသည် မှန်ကန်သောဘာသာစကားမဟုတ်ပါ။</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>ဤတန်ဖိုးသည်မှန်ကန်သောဘာသာပြန်မဟုတ်ပါ။</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>ဤတန်ဖိုးသည်မှန်ကန်သောနိုင်ငံမဟုတ်ပါ။</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>ဤတန်ဖိုးသည် အသုံးပြုပြီးသားဖြစ်သည်။</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>ဓါတ်ပုံအရွယ်အစားကိုရှာမတွေ့ပါ။</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>ပုံ၏အလျားသည် ကြီးလွန်းသည် ({{ width }}px)။ ခွင့်ပြုထားသည့်အများဆုံးအလျားသည် {{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>ပုံ၏အလျားသည် သေးလွန်းသည် ({{ width }}px)။ ခွင့်ပြုထားသည့်အနည်းဆုံးအလျားသည် {{max_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>ပုံ၏အနံသည် ကြီးလွန်းသည် ({{ height }}px)။ ခွင့်ပြုထားသည့်အများဆုံးအနံသည် {{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>ပုံ၏အနံသည် သေးလွန်းသည် ({{ height }}px)။ ခွင့်ပြုထားသည့်အနည်းဆုံးအနံသည် {{min_height}}px ဖြစ်သည်။</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>ဤတန်ဖိုးသည်အသုံးပြုသူ၏ လက်ရှိစကားဝှက်ဖြစ်သင့်သည်။</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>ဤဖိုင်သည်တစ်စိတ်တစ်ပိုင်းသာ upload တင်ခဲ့သည်။</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>မည်သည့် ဖိုင်မျှ upload မလုပ်ခဲ့ပါ။</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>php.ini တွင်ယာယီဖိုင်တွဲကိုပြင်ဆင်ထားခြင်းမရှိပါ၊</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>ယာရီဖိုင်ကို disk မရေးနိုင်ပါ။</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP extension တစ်ခုကြောင့် upload တင်၍မရနိုင်ပါ။</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>ဤ collection တွင် {{limit}} element (သို့မဟုတ်) ထို့ထက်မပိုသင့်ပါ။</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>ဤ collection တွင် {{limit}} element (သို့မဟုတ်) ၎င်းထက်နည်းသင့်သည်။</target> </trans-unit> <trans-unit id="56"> <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"> <source>Invalid card number.</source> <target>ကဒ်နံပါတ်မမှန်ပါ။</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>ကဒ်အမျိုးအစားမမှန်ပါ (သို့မဟုတ်) ကဒ်နံပါတ်မမှန်ပါ။</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>ဤတန်ဖိုးသည် တရား၀င်နိုင်ငံတကာဘဏ်အကောင့်နံပါတ် (International Bank Account Number, IBAN) မဟုတ်ပါ။</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>ဤတန်ဖိုးသည် မှန်ကန်သော ISBN-10 တန်ဖိုးမဟုတ်ပါ၊</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>ဤတန်ဖိုးသည် မှန်ကန်သော ISBN-13 တန်ဖိုးမဟုတ်ပါ၊</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>ဤတန်ဖိုးသည် သင့်လျှော်သော် ISBN-10 (သို့မဟုတ်) ISBN-13 တန်ဖိုးမဟုတ်ပါ၊</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>ဤတန်ဖိုးသည် သင့်လျှော်သော် ISSN တန်ဖိုးမဟုတ်ပါ။</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>ဤတန်ဖိုးသည် သင့်လျှော်သော် ငွေကြေးတန်ဖိုးမဟုတ်ပါ။</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>ဤတန်ဖိုးသည် {{ compared_value }} နှင့်ညီသင့်သည်။</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>ဤတန်ဖိုးသည် {{ compared_value }} ထက်ကြီးသင့်သည်။</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>ဤတန်ဖိုးသည် {{ compared_value }} ထက်ကြီးသင့်သည် (သို့မဟုတ်) ဤတန်ဖိုးသည် {{ compared_value }} ညီသင့်သည်။ </target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>ဤတန်ဖိုးသည် {{ compared_value_type }} {{ compared_value }} နှင့်ထပ်တူညီမျှသင့်သည်။</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>ဤတန်ဖိုးသည် {{ compared_value }} ထက်မနဲသောတဲ့ တန်ဖိုးဖြစ်သင့်သည်။</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>ဤတန်ဖိုးသည် {{ compared_value }} ထက် မနည်းသောတန်ဖိုး (သို့မဟုတ်) ညီမျှသောတန်ဖိုးဖြစ်သင့်သည်။</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>ဤတန်ဖိုးသည် {{ compared_value }} နှင့်မညီသင့်ပါ။</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>ဤတန်ဖိုးသည် {{ compared_value_type }} {{ compared_value }} နှင့်ထပ်တူမညီမျှသင့်သည်။</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>ဤဓာတ်ပုံအချိုးအစားသည်အလွန်ကြီးလွန်းသည်။ ({{ ratio }})။ ခွင့်ပြုထားသောဓာတ်ပုံအချိုးအသားသည် {{ max_ratio }} ဖြစ်သည်။</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>ဤဓာတ်ပုံအချိုးအစားသည်အလွန်သေးလွန်းသည်။ ({{ ratio }})။ ခွင့်ပြုထားသောဓာတ်ပုံအချိုးအသားသည် {{ min_ratio }} ဖြစ်သည်။</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>ဤဓာတ်ပုံသည် စတုရန်းဖြစ်နေသည် ({{ width }}x{{ height }}px)။ စတုရန်းဓာတ်ပုံများကို ခွင့်မပြုပါ။</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>ဤဓာတ်ပုံသည် အလျှားလိုက်ဖြစ်နေသည် ({{ width }}x{{ height }}px). အလျှားလိုက်ဓာတ်ပုံများခွင့်မပြုပါ။</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>ဤဓာတ်ပုံသည် ဒေါင်လိုက်ဖြစ်နေသည် ({{ width }}x{{ height }}px). ဒေါင်လိုက်ဓာတ်ပုံများခွင့်မပြုပါ။</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>ဖိုင်အလွတ်ကိုတင်ခွင့်မပြုပါ။</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>host ဖြေရှင်း၍မနိုင်ပါ။</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>ဤတန်ဖိုးသည် မျှော်မှန်းထားသော {{ charset }} စားလုံးနှင့် ကိုက်ညီမှုမရှိပါ။</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>၎င်းသည်မှန်ကန်သော Business Identifier Code (BIC) မဟုတ်ပါ။</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>အမှား</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>ဤတန်ဖိုးသည် သင့်လျှော်သော် UUID မဟုတ်ပါ။</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>ဤတန်ဖိုးသည် {{compared_value}} ၏ စတူတန်ဖိုးဖြစ်သင့်သည်။</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>ဤ Business Identifier Code (BIC) သည် IBAN {{ iban }} နှင့်ဆက်စပ်မှုမရှိပါ။</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>ဤတန်ဖိုးသည် သင့်လျှော်သော် JSON တန်ဖိုးဖြစ်သင့်သည်။</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>ဤ collection ကိုယ်ပိုင် elements များ ပါသင့်သည်။</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>ဤတန်ဖိုးသည် အပေါင်းဖြစ်သင့်သည်။</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>ဤတန်ဖိုးသည် အပေါင်း (သို့မဟုတ်) သုည ဖြစ်သင့်သည်။</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>ဤတန်ဖိုးသည် အနုတ် ဖြစ်သင့်သည်။</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>ဤတန်ဖိုးသည် အနုတ် (သို့မဟုတ်) သုည ဖြစ်သင့်သည်။</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>ဤတန်ဖိုးသည် မှန်ကန်သော အချိန်ဇုန်မဟုတ်ပါ။</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>ဤစကားဝှက် သည် ဒေတာပေါက်ကြားမှုတစ်ခုဖြစ်ခဲ့သည်။ ဤစကား၀ှက်ကိုအသုံးမပြုရပါ။ ကျေးဇူးပြု၍ အခြားစကားဝှက်ကိုသုံးပါ။</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>ဤတန်ဖိုးသည် {{ min }} နှင့် {{ max }} ကြားရှိသင့်သည်။</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>ဤတန်ဖိုးသည် သင့်လျှော်သော် hostname မဟုတ်ပါ။</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>ဤ collection တွင်ပါပါ၀င်သော elements အရေအတွက်သည် {{ compared_value }} ၏ စတူဖြစ်သင့်သည်။ </target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>ဤတန်ဖိုးသည် အောက်ပါကန့်သတ်ချက်များအနက်မှအနည်းဆုံးတစ်ခု ဖြည့်ဆည်းပေးသင့်သည်။</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>ဤ collection ၏ element တစ်ခုစီသည်၎င်း၏ကိုယ်ပိုင်ကန့်သတ်ချက်များကိုဖြည့်ဆည်းသင့်သည်။</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>ဤတန်ဖိုးသည် သင့်လျှော်သော် အပြည်ပြည်ဆိုင်ရာငွေချေးသက်သေခံနံပါတ် ,International Securities Identification Number (ISIN) မဟုတ်ပါ။</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>ဤတန်ဖိုးသည်မှန်ကန်သောစကားရပ်ဖြစ်သင့်သည်။</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.nb.xlf 0000644 00000055441 15120140577 0014533 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Verdien må være usann.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Verdien må være sann.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Verdien skal ha typen {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Verdien skal være blank.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Den valgte verdien er ikke gyldig.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Du kan maks velge {{ limit }} valg.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>En eller flere av de oppgitte verdiene er ugyldige.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Dette feltet var ikke forventet.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Dette feltet mangler.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Verdien er ikke en gyldig dato.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Verdien er ikke en gyldig dato/tid.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Verdien er ikke en gyldig e-postadresse.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Filen kunne ikke finnes.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Filen er ikke lesbar.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Filen er for stor ({{ size }} {{ suffix }}). Tilatte maksimale størrelse {{ 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>Mimetypen av filen er ugyldig ({{ type }}). Tilatte mimetyper er {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Verdien må være {{ limit }} tegn lang eller mindre.</target> </trans-unit> <trans-unit id="19"> <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å ha {{ limit }} tegn eller mindre.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <target>Verdien må være {{ limit }} eller mer.</target> </trans-unit> <trans-unit id="21"> <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 }} tegn eller flere.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Verdien kan ikke være blank.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Verdien kan ikke være tom (null).</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Verdien skal være tom (null).</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Verdien er ugyldig.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Verdien er ikke en gyldig tid.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Verdien er ikke en gyldig URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Verdiene skal være identiske.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Filen er for stor. Den maksimale størrelsen er {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Filen er for stor.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Filen kunne ikke lastes opp.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Verdien skal være et gyldig tall.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Denne filen er ikke et gyldig bilde.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Dette er ikke en gyldig IP adresse.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Verdien er ikke et gyldig språk.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Verdien er ikke en gyldig lokalitet.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Verdien er ikke et gyldig navn på land.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Verdien er allerede brukt.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Bildestørrelsen kunne ikke oppdages.</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>Bildebredden er for stor ({{ width }} piksler). Tillatt maksimumsbredde er {{ max_width }} piksler.</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>Bildebredden er for liten ({{ width }} piksler). Forventet minimumsbredde er {{ min_width }} piksler.</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>Bildehøyden er for stor ({{ height }} piksler). Tillatt maksimumshøyde er {{ max_height }} piksler.</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>Bildehøyden er for liten ({{ height }} piksler). Forventet minimumshøyde er {{ min_height }} piksler.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Verdien skal være brukerens sitt nåværende passord.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Verdien skal være nøyaktig {{ limit }} tegn.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Filen var kun delvis opplastet.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Ingen fil var lastet opp.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Den midlertidige mappen (tmp) er ikke konfigurert i php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Kan ikke skrive midlertidig fil til disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>En PHP-utvidelse forårsaket en feil under opplasting.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Denne samlingen må inneholde {{ limit }} element eller flere.|Denne samlingen må inneholde {{ limit }} elementer eller flere.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Denne samlingen må inneholde {{ limit }} element eller færre.|Denne samlingen må inneholde {{ limit }} elementer eller færre.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Denne samlingen må inneholde nøyaktig {{ limit }} element.|Denne samlingen må inneholde nøyaktig {{ limit }} elementer.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Ugyldig kortnummer.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Korttypen er ikke støttet eller kortnummeret er ugyldig.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Dette er ikke et gyldig IBAN-nummer.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Verdien er ikke en gyldig ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Verdien er ikke en gyldig ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Verdien er hverken en gyldig ISBN-10 eller ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Verdien er ikke en gyldig ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Verdien er ikke gyldig valuta.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Verdien skal være lik {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Verdien skal være større enn {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Verdien skal være større enn eller lik {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Verdien skal være identisk med {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Verdien skal være mindre enn {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Verdien skal være mindre enn eller lik {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Verdien skal ikke være lik {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Verdien skal ikke være identisk med {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Bildeforholdet er for stort ({{ ratio }}). Tillatt bildeforhold er maks {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Bildeforholdet er for lite ({{ ratio }}). Forventet bildeforhold er minst {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Bildet er en kvadrat ({{ width }}x{{ height }}px). Kvadratiske bilder er ikke tillatt.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Bildet er i liggende retning ({{ width }}x{{ height }}px). Bilder i liggende retning er ikke tillatt.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Bildet er i stående retning ({{ width }}x{{ height }}px). Bilder i stående retning er ikke tillatt.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Tomme filer er ikke tilatt.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Vertsnavn kunne ikke løses.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Verdien samsvarer ikke med forventet tegnsett {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Dette er ikke en gyldig BIC.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Feil</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Dette er ikke en gyldig UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Verdien skal være flertall av {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Business Identifier Code (BIC) er ikke tilknyttet en IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Verdien er ikke gyldig JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Samlingen kan kun inneholde unike elementer.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Denne verdien må være positiv.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Denne verdien må være positiv eller null.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Denne verdien må være negativ.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Denne verdien må være negativ eller null.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Verdien er ikke en gyldig tidssone.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Dette passordet er lekket i et datainnbrudd, det må ikke tas i bruk. Vennligst bruk et annet passord.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Verdien må være mellom {{ min }} og {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Denne verdien er ikke et gyldig vertsnavn.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Antall elementer i denne samlingen bør være et multiplum av {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Denne verdien skal tilfredsstille minst en av følgende begrensninger:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Hvert element i denne samlingen skal tilfredsstille sitt eget sett med begrensninger.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Denne verdien er ikke et gyldig International Securities Identification Number (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Denne verdien skal være et gyldig uttrykk.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Denne verdien er ikke en gyldig CSS-farge.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Denne verdien er ikke en gyldig CIDR-notasjon.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Verdien på nettmasken skal være mellom {{ min }} og {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.nl.xlf 0000644 00000056662 15120140577 0014553 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Deze waarde moet onwaar zijn.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Deze waarde moet waar zijn.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Deze waarde moet van het type {{ type }} zijn.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Deze waarde moet leeg zijn.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>De geselecteerde waarde is geen geldige optie.</target> </trans-unit> <trans-unit id="6"> <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 }} 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"> <source>One or more of the given values is invalid.</source> <target>Eén of meer van de ingegeven waarden zijn ongeldig.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Dit veld werd niet verwacht.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Dit veld ontbreekt.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Deze waarde is geen geldige datum.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Deze waarde is geen geldige datum en tijd.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Deze waarde is geen geldig e-mailadres.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Het bestand kon niet gevonden worden.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Het bestand is niet leesbaar.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Het bestand is te groot ({{ size }} {{ suffix }}). Toegestane maximum grootte is {{ 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>Het mime type van het bestand is ongeldig ({{ type }}). Toegestane mime types zijn {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Deze waarde mag niet leeg zijn.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Deze waarde mag niet null zijn.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Deze waarde moet null zijn.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Deze waarde is niet geldig.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Deze waarde is geen geldige tijd.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Deze waarde is geen geldige URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>De twee waarden moeten gelijk zijn.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Het bestand is te groot. Toegestane maximum grootte is {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Het bestand is te groot.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Het bestand kon niet worden geüpload.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Deze waarde moet een geldig getal zijn.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Dit bestand is geen geldige afbeelding.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Dit is geen geldig IP-adres.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Deze waarde is geen geldige taal.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Deze waarde is geen geldige locale.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Deze waarde is geen geldig land.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Deze waarde wordt al gebruikt.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>De grootte van de afbeelding kon niet bepaald worden.</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>De afbeelding is te breed ({{ width }}px). De maximaal toegestane breedte is {{ 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>De afbeelding is niet breed genoeg ({{ width }}px). De minimaal verwachte breedte is {{ 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>De afbeelding is te hoog ({{ height }}px). De maximaal toegestane hoogte is {{ 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>De afbeelding is niet hoog genoeg ({{ height }}px). De minimaal verwachte hoogte is {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <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 }} character.|This value should have exactly {{ limit }} characters.</source> <target>Deze waarde moet exact {{ limit }} teken lang zijn.|Deze waarde moet exact {{ limit }} tekens lang zijn.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Het bestand is slechts gedeeltelijk geüpload.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Er is geen bestand geüpload.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Er is geen tijdelijke map geconfigureerd in php.ini, of de gespecificeerde map bestaat niet.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Kan het tijdelijke bestand niet wegschrijven op disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>De upload is mislukt vanwege een PHP-extensie.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Ongeldig creditcardnummer.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Niet-ondersteund type creditcard of ongeldig nummer.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Dit is geen geldig internationaal bankrekeningnummer (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Deze waarde is geen geldige ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Deze waarde is geen geldige ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Deze waarde is geen geldige ISBN-10 of ISBN-13 waarde.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Deze waarde is geen geldige ISSN waarde.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Deze waarde is geen geldige valuta.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Deze waarde moet gelijk zijn aan {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Deze waarde moet groter zijn dan {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Deze waarde moet groter dan of gelijk aan {{ compared_value }} zijn.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Deze waarde moet identiek zijn aan {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Deze waarde moet minder zijn dan {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Deze waarde moet minder dan of gelijk aan {{ compared_value }} zijn.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Deze waarde mag niet gelijk zijn aan {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Deze waarde mag niet identiek zijn aan {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>De afbeeldingsverhouding is te groot ({{ ratio }}). Maximale verhouding is {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>De afbeeldingsverhouding is te klein ({{ ratio }}). Minimale verhouding is {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>De afbeelding is vierkant ({{ width }}x{{ height }}px). Vierkante afbeeldingen zijn niet toegestaan.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>De afbeelding is liggend ({{ width }}x{{ height }}px). Liggende afbeeldingen zijn niet toegestaan.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>De afbeelding is staand ({{ width }}x{{ height }}px). Staande afbeeldingen zijn niet toegestaan.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Lege bestanden zijn niet toegestaan.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>De hostnaam kon niet worden bepaald.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Deze waarde is niet in de verwachte tekencodering {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Dit is geen geldige bedrijfsidentificatiecode (BIC/SWIFT).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Fout</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Dit is geen geldige UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Deze waarde zou een meervoud van {{ compared_value }} moeten zijn.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Deze bedrijfsidentificatiecode (BIC) is niet gekoppeld aan IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Deze waarde moet geldige JSON zijn.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Deze collectie moet alleen unieke elementen bevatten.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Deze waarde moet positief zijn.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Deze waarde moet positief of gelijk aan nul zijn.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Deze waarde moet negatief zijn.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Deze waarde moet negatief of gelijk aan nul zijn.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Deze waarde is geen geldige tijdzone.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Dit wachtwoord is gelekt vanwege een data-inbreuk, het moet niet worden gebruikt. Kies een ander wachtwoord.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Deze waarde moet zich tussen {{ min }} en {{ max }} bevinden.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Deze waarde is geen geldige hostnaam.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Het aantal elementen van deze collectie moet een veelvoud zijn van {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Deze waarde moet voldoen aan tenminste een van de volgende voorwaarden:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Elk element van deze collectie moet voldoen aan zijn eigen set voorwaarden.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Deze waarde is geen geldig International Securities Identification Number (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Deze waarde moet een geldige expressie zijn.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Deze waarde is geen geldige CSS kleur.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Deze waarde is geen geldige CIDR notatie.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>De waarde van de netmask moet zich tussen {{ min }} en {{ max }} bevinden.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.nn.xlf 0000644 00000055640 15120140577 0014550 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Verdien skulle ha vore tom/nei.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Verdien skulla ha vore satt/ja.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Verdien må vere av typen {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Verdien skal vere blank.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Verdien du valde er ikkje gyldig.</target> </trans-unit> <trans-unit id="6"> <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source> <target>Du må gjere minst {{ limit }} val.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Du kan maksimalt gjere {{ limit }} val.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Ein eller fleire av dei opplyste verdiane er ugyldige.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Dette feltet var ikkje forventa.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Dette feltet mangler.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Verdien er ikkje ein gyldig dato.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Verdien er ikkje ein gyldig dato og tid.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Verdien er ikkje ei gyldig e-postadresse.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Fila er ikkje funnen.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Fila kan ikkje lesast.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fila er for stor ({{ size }} {{ suffix }}). Maksimal storleik er {{ 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>Mime-typen av fila er ugyldig ({{ type }}). Tillatne mime-typar er {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Verdien må vere {{ limit }} eller mindre.</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>Verdien må vere {{ limit }} eller meir.</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>Verdien kan ikkje vere blank.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Verdien kan ikkje vere tom (null).</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Verdien må vere tom (null).</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Verdien er ikkje gyldig.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Verdien er ikkje ei gyldig tidseining.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Verdien er ikkje ein gyldig URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Dei to verdiane må vere like.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fila er for stor. Den maksimale storleiken er {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Fila er for stor.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Fila kunne ikkje bli lasta opp.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Verdien må vere eit gyldig tal.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Fila er ikkje eit gyldig bilete.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Dette er ikkje ei gyldig IP-adresse.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Verdien er ikkje eit gyldig språk.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Verdien er ikkje ein gyldig lokalitet (språk/region).</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Verdien er ikkje eit gyldig land.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Verdien er allereie i bruk.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Storleiken på biletet kunne ikkje oppdagast.</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>Biletbreidda er for stor, ({{ width }} pikslar). Tillaten maksimumsbreidde er {{ max_width }} pikslar.</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>Biletbreidda er for liten, ({{ width }} pikslar). Forventa minimumsbreidde er {{ min_width }} pikslar.</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>Bilethøgda er for stor, ({{ height }} pikslar). Tillaten maksimumshøgde er {{ max_height }} pikslar.</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>Billethøgda er for låg, ({{ height }} pikslar). Forventa minimumshøgde er {{ min_height }} pikslar.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Verdien må vere brukaren sitt noverande passord.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Fila vart berre delvis lasta opp.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Inga fil vart lasta opp.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Førebels mappe (tmp) er ikkje konfigurert i php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Kan ikkje skrive førebels fil til disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Ei PHP-udviding forårsaka feil under opplasting.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Ugyldig kortnummer.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Korttypen er ikkje støtta, eller kortnummeret er ugyldig.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Dette er ikkje eit gyldig internasjonalt bankkontonummer (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Verdien er ikkje eit gyldig ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Verdien er ikkje eit gyldig ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Verdien er verken eit gyldig ISBN-10 eller eit gyldig ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Verdien er ikkje eit gyldig ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Verdien er ikkje ein gyldig valuta.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Verdien bør vera eins med {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Verdien bør vera større enn {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Verdien bør vera større enn eller eins med {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Verdien bør vera eins med {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Verdien bør vera mindre enn {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Verdi bør vera mindre enn eller eins med {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Verdi bør ikkje vera eins med {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Denne verdien bør ikkje vera eins med {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Sideforholdet til biletet er for stort ({{ ratio }}). Sideforholdet kan ikkje vere større enn {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Sideforholdet til biletet er for lite ({{ ratio }}). Sideforholdet kan ikkje vere mindre enn {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Biletet er kvadratisk ({{ width }}x{{ height }}px). Kvadratiske bilete er ikkje tillatne.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Biletet er landskapsorientert ({{ width }}x{{ height }}px). Landskapsorienterte bilete er ikkje tillatne.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Biletet er portrettorientert ({{ width }}x{{ height }}px). Portrettorienterte bilete er ikkje tillatne.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Ei tom fil er ikkje tillate.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Verten kunne ikkje finnast.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Verdien stemmer ikkje med forventa {{ charset }} charset.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Dette er ikkje ein gyldig Business Identifier Code (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Feil</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Dette er ikkje ein gyldig UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Verdien bør vera eit multipel av {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Denne Business Identifier Code (BIC) er ikkje kopla til IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Verdien bør vera gyldig JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Denne samlinga bør berre innehalda unike element.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Verdien bør vera positiv.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Verdien bør vera anten positiv eller null.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Verdien bør vera negativ.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Verdien bør vera negativ eller null.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Verdien er ikkje ei gyldig tidssone.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Dette passordet har lekt ut ved eit datainnbrot, det får ikkje nyttast. Gje opp eit anna passord.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Denne verdien bør liggje mellom {{ min }} og {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Verdien er ikkje eit gyldig vertsnamn.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Talet på element i denne samlinga bør vera eit multippel av {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Verdien burde oppfylla minst ein av følgjande avgrensingar:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Kvart element i denne samlinga bør oppfylla sine eigne avgrensingar.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Verdien er ikkje eit gyldig International Securities Identification Number (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Denne verdien skal være et gyldig uttrykk.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Denne verdien er ikke en gyldig CSS-farge.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Denne verdien er ikke en gyldig CIDR-notasjon.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Verdien av nettmasken skal være mellom {{ min }} og {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.no.xlf 0000644 00000055441 15120140577 0014550 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Verdien må være usann.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Verdien må være sann.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Verdien skal ha typen {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Verdien skal være blank.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Den valgte verdien er ikke gyldig.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Du kan maks velge {{ limit }} valg.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>En eller flere av de oppgitte verdiene er ugyldige.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Dette feltet var ikke forventet.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Dette feltet mangler.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Verdien er ikke en gyldig dato.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Verdien er ikke en gyldig dato/tid.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Verdien er ikke en gyldig e-postadresse.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Filen kunne ikke finnes.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Filen er ikke lesbar.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Filen er for stor ({{ size }} {{ suffix }}). Tilatte maksimale størrelse {{ 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>Mimetypen av filen er ugyldig ({{ type }}). Tilatte mimetyper er {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Verdien må være {{ limit }} tegn lang eller mindre.</target> </trans-unit> <trans-unit id="19"> <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å ha {{ limit }} tegn eller mindre.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <target>Verdien må være {{ limit }} eller mer.</target> </trans-unit> <trans-unit id="21"> <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 }} tegn eller flere.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Verdien kan ikke være blank.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Verdien kan ikke være tom (null).</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Verdien skal være tom (null).</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Verdien er ugyldig.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Verdien er ikke en gyldig tid.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Verdien er ikke en gyldig URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Verdiene skal være identiske.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Filen er for stor. Den maksimale størrelsen er {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Filen er for stor.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Filen kunne ikke lastes opp.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Verdien skal være et gyldig tall.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Denne filen er ikke et gyldig bilde.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Dette er ikke en gyldig IP adresse.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Verdien er ikke et gyldig språk.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Verdien er ikke en gyldig lokalitet.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Verdien er ikke et gyldig navn på land.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Verdien er allerede brukt.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Bildestørrelsen kunne ikke oppdages.</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>Bildebredden er for stor ({{ width }} piksler). Tillatt maksimumsbredde er {{ max_width }} piksler.</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>Bildebredden er for liten ({{ width }} piksler). Forventet minimumsbredde er {{ min_width }} piksler.</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>Bildehøyden er for stor ({{ height }} piksler). Tillatt maksimumshøyde er {{ max_height }} piksler.</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>Bildehøyden er for liten ({{ height }} piksler). Forventet minimumshøyde er {{ min_height }} piksler.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Verdien skal være brukerens sitt nåværende passord.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Verdien skal være nøyaktig {{ limit }} tegn.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Filen var kun delvis opplastet.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Ingen fil var lastet opp.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Den midlertidige mappen (tmp) er ikke konfigurert i php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Kan ikke skrive midlertidig fil til disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>En PHP-utvidelse forårsaket en feil under opplasting.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Denne samlingen må inneholde {{ limit }} element eller flere.|Denne samlingen må inneholde {{ limit }} elementer eller flere.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Denne samlingen må inneholde {{ limit }} element eller færre.|Denne samlingen må inneholde {{ limit }} elementer eller færre.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Denne samlingen må inneholde nøyaktig {{ limit }} element.|Denne samlingen må inneholde nøyaktig {{ limit }} elementer.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Ugyldig kortnummer.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Korttypen er ikke støttet eller kortnummeret er ugyldig.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Dette er ikke et gyldig IBAN-nummer.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Verdien er ikke en gyldig ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Verdien er ikke en gyldig ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Verdien er hverken en gyldig ISBN-10 eller ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Verdien er ikke en gyldig ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Verdien er ikke gyldig valuta.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Verdien skal være lik {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Verdien skal være større enn {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Verdien skal være større enn eller lik {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Verdien skal være identisk med {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Verdien skal være mindre enn {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Verdien skal være mindre enn eller lik {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Verdien skal ikke være lik {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Verdien skal ikke være identisk med {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Bildeforholdet er for stort ({{ ratio }}). Tillatt bildeforhold er maks {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Bildeforholdet er for lite ({{ ratio }}). Forventet bildeforhold er minst {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Bildet er en kvadrat ({{ width }}x{{ height }}px). Kvadratiske bilder er ikke tillatt.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Bildet er i liggende retning ({{ width }}x{{ height }}px). Bilder i liggende retning er ikke tillatt.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Bildet er i stående retning ({{ width }}x{{ height }}px). Bilder i stående retning er ikke tillatt.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Tomme filer er ikke tilatt.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Vertsnavn kunne ikke løses.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Verdien samsvarer ikke med forventet tegnsett {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Dette er ikke en gyldig BIC.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Feil</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Dette er ikke en gyldig UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Verdien skal være flertall av {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Business Identifier Code (BIC) er ikke tilknyttet en IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Verdien er ikke gyldig JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Samlingen kan kun inneholde unike elementer.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Denne verdien må være positiv.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Denne verdien må være positiv eller null.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Denne verdien må være negativ.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Denne verdien må være negativ eller null.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Verdien er ikke en gyldig tidssone.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Dette passordet er lekket i et datainnbrudd, det må ikke tas i bruk. Vennligst bruk et annet passord.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Verdien må være mellom {{ min }} og {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Denne verdien er ikke et gyldig vertsnavn.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Antall elementer i denne samlingen bør være et multiplum av {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Denne verdien skal tilfredsstille minst en av følgende begrensninger:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Hvert element i denne samlingen skal tilfredsstille sitt eget sett med begrensninger.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Denne verdien er ikke et gyldig International Securities Identification Number (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Denne verdien skal være et gyldig uttrykk.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Denne verdien er ikke en gyldig CSS-farge.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Denne verdien er ikke en gyldig CIDR-notasjon.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Verdien på nettmasken skal være mellom {{ min }} og {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.pl.xlf 0000644 00000060246 15120140577 0014546 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Ta wartość powinna być fałszem.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Ta wartość powinna być prawdą.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Ta wartość powinna być typu {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Ta wartość powinna być pusta.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Ta wartość powinna być jedną z podanych opcji.</target> </trans-unit> <trans-unit id="6"> <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 }} 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"> <source>One or more of the given values is invalid.</source> <target>Jedna lub więcej z podanych wartości jest nieprawidłowa.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Tego pola się nie spodziewano.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Tego pola brakuje.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Ta wartość nie jest prawidłową datą.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Ta wartość nie jest prawidłową datą i czasem.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Ta wartość nie jest prawidłowym adresem email.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Plik nie mógł zostać odnaleziony.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Nie można odczytać pliku.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Plik jest za duży ({{ size }} {{ suffix }}). Maksymalny dozwolony rozmiar to {{ 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>Nieprawidłowy typ mime pliku ({{ type }}). Dozwolone typy mime to {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Ta wartość nie powinna być pusta.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Ta wartość nie powinna być nullem.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Ta wartość powinna być nullem.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Ta wartość jest nieprawidłowa.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Ta wartość nie jest prawidłowym czasem.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Ta wartość nie jest prawidłowym adresem URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Obie wartości powinny być równe.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Plik jest za duży. Maksymalny dozwolony rozmiar to {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Plik jest za duży.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Plik nie mógł być wgrany.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Ta wartość powinna być prawidłową liczbą.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Ten plik nie jest obrazem.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>To nie jest prawidłowy adres IP.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Ta wartość nie jest prawidłowym językiem.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Ta wartość nie jest prawidłową lokalizacją.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Ta wartość nie jest prawidłową nazwą kraju.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Ta wartość jest już wykorzystywana.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Nie można wykryć rozmiaru obrazka.</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>Szerokość obrazka jest zbyt duża ({{ width }}px). Maksymalna dopuszczalna szerokość to {{ 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>Szerokość obrazka jest zbyt mała ({{ width }}px). Oczekiwana minimalna szerokość to {{ 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>Wysokość obrazka jest zbyt duża ({{ height }}px). Maksymalna dopuszczalna wysokość to {{ 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>Wysokość obrazka jest zbyt mała ({{ height }}px). Oczekiwana minimalna wysokość to {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Ta wartość powinna być aktualnym hasłem użytkownika.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Plik został wgrany tylko częściowo.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Żaden plik nie został wgrany.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Nie skonfigurowano folderu tymczasowego w php.ini lub skonfigurowany folder nie istnieje.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Nie można zapisać pliku tymczasowego na dysku.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Rozszerzenie PHP spowodowało błąd podczas wgrywania.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Nieprawidłowy numer karty.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Nieobsługiwany rodzaj karty lub nieprawidłowy numer karty.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Nieprawidłowy międzynarodowy numer rachunku bankowego (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Ta wartość nie jest prawidłowym numerem ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Ta wartość nie jest prawidłowym numerem ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Ta wartość nie jest prawidłowym numerem ISBN-10 ani ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Ta wartość nie jest prawidłowym numerem ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Ta wartość nie jest prawidłową walutą.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Ta wartość powinna być równa {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Ta wartość powinna być większa niż {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Ta wartość powinna być większa bądź równa {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ta wartość powinna być identycznego typu {{ compared_value_type }} oraz wartości {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Ta wartość powinna być mniejsza niż {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Ta wartość powinna być mniejsza bądź równa {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Ta wartość nie powinna być równa {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ta wartość nie powinna być identycznego typu {{ compared_value_type }} oraz wartości {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Proporcje obrazu są zbyt duże ({{ ratio }}). Maksymalne proporcje to {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Proporcje obrazu są zbyt małe ({{ ratio }}). Minimalne proporcje to {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Obraz jest kwadratem ({{ width }}x{{ height }}px). Kwadratowe obrazy nie są akceptowane.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Obraz jest panoramiczny ({{ width }}x{{ height }}px). Panoramiczne zdjęcia nie są akceptowane.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Obraz jest portretowy ({{ width }}x{{ height }}px). Portretowe zdjęcia nie są akceptowane.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Plik nie może być pusty.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Nazwa hosta nie została rozpoznana.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Ta wartość nie pasuje do oczekiwanego zestawu znaków {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Ta wartość nie jest poprawnym kodem BIC (Business Identifier Code).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Błąd</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>To nie jest poprawne UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Ta wartość powinna być wielokrotnością {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Ten kod BIC (Business Identifier Code) nie jest powiązany z międzynarodowym numerem rachunku bankowego (IBAN) {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Ta wartość powinna być prawidłowym formatem JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Ten zbiór powinien zawierać tylko unikalne elementy.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Ta wartość powinna być dodatnia.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Ta wartość powinna być dodatnia lub równa zero.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Ta wartość powinna być ujemna.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Ta wartość powinna być ujemna lub równa zero.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Ta wartość nie jest prawidłową strefą czasową.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>To hasło wyciekło w wyniku naruszenia danych i nie może być użyte. Proszę użyć innego hasła.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Ta wartość powinna być pomiędzy {{ min }} a {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Ta wartość nie jest prawidłową nazwą hosta.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Liczba elementów w tym zbiorze powinna być wielokrotnością {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Ta wartość powinna spełniać co najmniej jedną z następujących reguł:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Każdy element w tym zbiorze powinien spełniać własny zestaw reguł.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Ta wartość nie jest prawidłowym Międzynarodowym Numerem Identyfikacyjnym Papierów Wartościowych (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Ta wartość powinna być prawidłowym wyrażeniem.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Ta wartość nie jest prawidłowym kolorem CSS.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Ta wartość nie jest prawidłową notacją CIDR.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Wartość maski podsieci powinna być pomiędzy {{ min }} i {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.pt.xlf 0000644 00000057042 15120140577 0014556 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Este valor deveria ser falso.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Este valor deveria ser verdadeiro.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Este valor deveria ser do tipo {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Este valor deveria ser vazio.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <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 }} 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 }} 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"> <source>One or more of the given values is invalid.</source> <target>Um ou mais dos valores introduzidos não são válidos.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Este campo não era esperado.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Este campo está faltando.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Este valor não é uma data válida.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Este valor não é uma data-hora válida.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Este valor não é um endereço de e-mail válido.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>O arquivo não pôde ser encontrado.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>O arquivo não pôde ser lido.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>O arquivo é muito grande ({{ size }} {{ suffix }}). O tamanho máximo permitido é de {{ 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>O tipo mime do arquivo é inválido ({{ type }}). Os tipos mime permitidos são {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Este valor não deveria ser branco/vazio.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Este valor não deveria ser nulo.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Este valor deveria ser nulo.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Este valor não é válido.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Este valor não é uma hora válida.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Este valor não é um URL válido.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Os dois valores deveriam ser iguais.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>O arquivo é muito grande. O tamanho máximo permitido é de {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>O ficheiro é muito grande.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Não foi possível carregar o ficheiro.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Este valor deveria ser um número válido.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Este ficheiro não é uma imagem.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Este endereço de IP não é válido.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Este valor não é uma linguagem válida.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Este valor não é um 'locale' válido.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Este valor não é um País válido.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Este valor já está a ser usado.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>O tamanho da imagem não foi detetado.</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>A largura da imagem ({{ width }}px) é muito grande. A largura máxima da imagem é: {{ 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>A largura da imagem ({{ width }}px) é muito pequena. A largura miníma da imagem é de: {{ 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>A altura da imagem ({{ height }}px) é muito grande. A altura máxima da imagem é de: {{ 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>A altura da imagem ({{ height }}px) é muito pequena. A altura miníma da imagem é de: {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Este valor deveria ser a senha atual do usuário.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Este valor deve possuir exatamente {{ limit }} caracteres.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Só foi enviada uma parte do arquivo.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Nenhum arquivo foi enviado.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Não existe uma pasta temporária configurada no arquivo php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Não foi possível escrever os arquivos temporários no disco.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Uma extensão PHP causou a falha no envio.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Número de cartão inválido.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Tipo de cartão não suportado ou número de cartão inválido.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Este não é um Número Internacional de Conta Bancária (IBAN) válido.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Este valor não é um ISBN-10 válido.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Este valor não é um ISBN-13 válido.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Este valor não é um ISBN-10 ou ISBN-13 válido.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Este valor não é um ISSN válido.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Este não é um valor monetário válido.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Este valor deve ser igual a {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Este valor deve ser superior a {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Este valor deve ser igual ou superior a {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Este valor deve ser idêntico a {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Este valor deve ser inferior a {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Este valor deve ser igual ou inferior a {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Este valor não deve ser igual a {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Este valor não deve ser idêntico a {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>O formato da imagem é muito grande ({{ ratio }}). O formato máximo é {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>O formato da imagem é muito pequeno ({{ ratio }}). O formato mínimo esperado é {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>A imagem é um quadrado ({{ width }}x{{ height }}px). Imagens quadradas não são permitidas.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>A imagem está em orientação de paisagem ({{ width }}x{{ height }}px). Imagens orientadas em paisagem não são permitidas.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>A imagem está em orientação de retrato ({{ width }}x{{ height }}px). Imagens orientadas em retrato não são permitidas.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Um arquivo vazio não é permitido.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>O host não pode ser resolvido.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>O valor não corresponde ao conjunto de caracteres {{ charset }} esperado.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>O Código de Identificação de Empresa (BIC) não é válido.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Erro</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Este valor não é um UUID válido.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Este valor deve ser um múltiplo de {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>O Código de Identificação de Empresa (BIC) não está associado ao IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Este valor deve ser um JSON válido.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Esta coleção deve conter só elementos únicos.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Este valor deve ser estritamente positivo.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Este valor deve ser superior ou igual a zero.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Este valor deve ser estritamente negativo.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Este valor deve ser inferior ou igual a zero.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Este valor não é um fuso horário válido.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Esta senha foi divulgada durante uma fuga de dados, não deve ser usada de novamente. Por favor usar uma senha outra.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Este valor deve situar-se entre {{ min }} e {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Este valor não é um nome de host válido.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>O número de elementos desta coleção deve ser um múltiplo de {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Este valor deve satisfazer pelo menos uma das seguintes restrições :</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Cada elemento desta coleção deve satisfazer o seu próprio conjunto de restrições.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Este valor não é um Número Internacional de Identificação de Segurança (ISIN) válido.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Este valor deve ser uma expressão válida.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Este valor não é uma cor de CSS válida.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Este valor não é uma notação CIDR válida.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>O valor da máscara de rede deve estar entre {{ min }} e {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.pt_BR.xlf 0000644 00000057053 15120140577 0015143 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Este valor deve ser falso.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Este valor deve ser verdadeiro.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Este valor deve ser do tipo {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Este valor deve ser vazio.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <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 }} 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 }} 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"> <source>One or more of the given values is invalid.</source> <target>Um ou mais valores informados são inválidos.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Este campo não era esperado.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Este campo está ausente.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Este valor não é uma data válida.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Este valor não é uma data e hora válida.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Este valor não é um endereço de e-mail válido.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>O arquivo não foi encontrado.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>O arquivo não pode ser lido.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>O arquivo é muito grande ({{ size }} {{ suffix }}). O tamanho máximo permitido é {{ 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>O tipo mime do arquivo é inválido ({{ type }}). Os tipos mime permitidos são {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Este valor não deve ser vazio.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Este valor não deve ser nulo.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Este valor deve ser nulo.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Este valor não é válido.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Este valor não é uma hora válida.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Este valor não é uma URL válida.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Os dois valores devem ser iguais.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>O arquivo é muito grande. O tamanho máximo permitido é de {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>O arquivo é muito grande.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>O arquivo não pode ser enviado.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Este valor deve ser um número válido.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Este arquivo não é uma imagem válida.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Este não é um endereço de IP válido.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Este valor não é um idioma válido.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Este valor não é uma localidade válida.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Este valor não é um país válido.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Este valor já está sendo usado.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>O tamanho da imagem não pode ser detectado.</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>A largura da imagem é muito grande ({{ width }}px). A largura máxima permitida é de {{ 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>A largura da imagem é muito pequena ({{ width }}px). A largura mínima esperada é de {{ 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>A altura da imagem é muito grande ({{ height }}px). A altura máxima permitida é de {{ 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>A altura da imagem é muito pequena ({{ height }}px). A altura mínima esperada é de {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <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 }} 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"> <source>The file was only partially uploaded.</source> <target>O arquivo foi enviado apenas parcialmente.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Nenhum arquivo foi enviado.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Nenhum diretório temporário foi configurado no php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Não foi possível escrever o arquivo temporário no disco.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Uma extensão PHP fez com que o envio falhasse.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Número de cartão inválido.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Tipo de cartão não suportado ou número de cartão inválido.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Este não é um Número Internacional de Conta Bancária (IBAN) válido.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Este valor não é um ISBN-10 válido.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Este valor não é um ISBN-13 válido.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Este valor não é um ISBN-10 e nem um ISBN-13 válido.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Este valor não é um ISSN válido.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Este não é um valor monetário válido.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Este valor deve ser igual a {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Este valor deve ser maior que {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Este valor deve ser maior ou igual a {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Este valor deve ser idêntico a {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Este valor deve ser menor que {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Este valor deve ser menor ou igual a {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Este valor não deve ser igual a {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Este valor não deve ser idêntico a {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>A proporção da imagem é muito grande ({{ ratio }}). A proporção máxima permitida é {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>A proporção da imagem é muito pequena ({{ ratio }}). A proporção mínima esperada é {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>A imagem está num formato quadrado ({{ width }}x{{ height }}px). Imagens com formato quadrado não são permitidas.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>A imagem está orientada à paisagem ({{ width }}x{{ height }}px). Imagens orientadas à paisagem não são permitidas.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>A imagem está orientada ao retrato ({{ width }}x{{ height }}px). Imagens orientadas ao retrato não são permitidas.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Arquivo vazio não é permitido.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>O host não pôde ser resolvido.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Este valor não corresponde ao charset {{ charset }} esperado.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Este não é um Código Identificador Bancário (BIC) válido.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Erro</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Este não é um UUID válido.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Este valor deve ser múltiplo de {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Este Código Identificador Bancário (BIC) não está associado ao IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Este valor deve ser um JSON válido.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Esta coleção deve conter somente elementos únicos.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Este valor deve ser positivo.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Este valor deve ser positivo ou zero.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Este valor deve ser negativo.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Este valor deve ser negativo ou zero.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Este valor não representa um fuso horário válido.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Esta senha foi divulgada num vazamento de dados e não deve ser utilizada. Por favor, utilize outra senha.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Este valor deve estar entre {{ min }} e {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Este valor não é um nome de host válido.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>O número de elementos desta coleção deve ser um múltiplo de {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Este valor deve satisfazer pelo menos uma das seguintes restrições:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Cada elemento desta coleção deve satisfazer seu próprio grupo de restrições.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Este valor não é um Número de Identificação de Títulos Internacionais (ISIN) válido.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Este valor deve ser uma expressão válida.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Este valor não é uma cor CSS válida.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Este valor não é uma notação CIDR válida.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>O valor da máscara de rede deve estar entre {{ min }} e {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.ro.xlf 0000644 00000061200 15120140577 0014542 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Această valoare ar trebui să fie falsă (false).</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Această valoare ar trebui să fie adevărată (true).</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Această valoare ar trebui să fie de tipul {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Această valoare ar trebui sa fie goală.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Valoarea selectată nu este o opțiune validă.</target> </trans-unit> <trans-unit id="6"> <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țiune.|Trebuie să selectați cel puțin {{ limit }} opțiuni.|Trebuie să selectați cel puțin {{ limit }} de opțiuni</target> </trans-unit> <trans-unit id="7"> <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țiune.|Trebuie să selectați cel mult {{ limit }} opțiuni.|Trebuie să selectați cel mult {{ limit }} de opțiuni.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Una sau mai multe dintre valorile furnizate sunt invalide.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Acest câmp nu era de aşteptat.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Acest câmp este lipsă.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Această valoare nu reprezintă o dată validă.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Această valoare nu reprezintă o dată și oră validă.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Această valoare nu reprezintă o adresă de e-mail validă.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Fișierul nu a putut fi găsit.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Fișierul nu poate fi citit.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fișierul este prea mare ({{ size }} {{ suffix }}). Dimensiunea maximă permisă este {{ 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>Tipul fișierului este invalid ({{ type }}). Tipurile permise de fișiere sunt ({{ types }}).</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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.|Această valoare este prea lungă. Ar trebui să aibă maxim {{ limit }} de caractere.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <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 }} 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.|Această valoare este prea scurtă. Ar trebui să aibă minim {{ limit }} de caractere.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Această valoare nu ar trebui să fie goală.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Această valoare nu ar trebui să fie nulă (null).</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Această valoare ar trebui să fie nulă (null).</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Această valoare nu este validă.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Această valoare nu reprezintă o oră validă.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Această valoare nu reprezintă un URL (link) valid.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Cele două valori ar trebui să fie egale.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fișierul este prea mare. Mărimea maximă permisă este {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Fișierul este prea mare.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Fișierul nu a putut fi încărcat.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Această valoare nu reprezintă un număr valid.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Acest fișier nu este o imagine validă.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Această valoare nu este o adresă IP validă.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Această valoare nu reprezintă o limbă corectă.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Această valoare nu reprezintă un dialect (o limbă) corect.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Această valoare nu este o țară validă.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Această valoare este folosită deja.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Mărimea imaginii nu a putut fi detectată.</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>Lățimea imaginii este prea mare ({{ width }}px). Lățimea maximă permisă este de {{ 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>Lățimea imaginii este prea mică ({{ width }}px). Lățimea minimă permisă este de {{ 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>Înălțimea imaginii este prea mare ({{ height }}px). Înălțimea maximă permisă este de {{ 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>Înălțimea imaginii este prea mică ({{ height }}px). Înălțimea minimă permisă este de {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Această valoare trebuie să fie parola curentă a utilizatorului.</target> </trans-unit> <trans-unit id="48"> <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.|Această valoare trebuie să conțină exact {{ limit }} de caractere.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Fișierul a fost încărcat parțial.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Nu a fost încărcat nici un fișier.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Nu este configurat nici un director temporar in php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Nu a fost posibilă scrierea fișierului temporar pe disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <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 }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Această colecție trebuie să conțină cel puțin {{ limit }} element.|Această colecție trebuie să conțină cel puțin {{ limit }} elemente.|Această colecție trebuie să conțină cel puțin {{ limit }} de elemente.</target> </trans-unit> <trans-unit id="55"> <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 }} element.|Această colecție trebuie să conțină cel mult {{ limit }} elemente.|Această colecție trebuie să conțină cel mult {{ limit }} de elemente.</target> </trans-unit> <trans-unit id="56"> <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 }} element.|Această colecție trebuie să conțină {{ limit }} elemente.|Această colecție trebuie să conțină {{ limit }} de elemente.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Numărul card invalid.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Tipul sau numărul cardului nu sunt valide.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Acesta nu este un cod IBAN (International Bank Account Number) valid.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Această valoare nu este un cod ISBN-10 valid.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Această valoare nu este un cod ISBN-13 valid.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Această valoare nu este un cod ISBN-10 sau ISBN-13 valid.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Această valoare nu este un cod ISSN valid.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Această valoare nu este o monedă validă.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Această valoare trebuie să fie egală cu {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Această valoare trebuie să fie mai mare de {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Această valoare trebuie să fie mai mare sau egală cu {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Această valoare trebuie identică cu {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Această valoare trebuie să fie mai mică de {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Această valoare trebuie să fie mai mică sau egală cu {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Această valoare nu trebuie să fie egală cu {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Această valoare nu trebuie să fie identică cu {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Raportul imaginii este prea mare ({{ ratio }}). Raportul maxim permis este {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Raportul imaginii este prea mic ({{ ratio }}). Raportul minim permis este {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Imaginea este un pătrat ({{ width }}x{{ height }}px). Imaginile pătrat nu sunt permise.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Imaginea are orientarea peisaj ({{ width }}x{{ height }}px). Imaginile cu orientare peisaj nu sunt permise.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Imaginea are orientarea portret ({{ width }}x{{ height }}px). Imaginile cu orientare portret nu sunt permise.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Nu se permite un fișier gol.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Numele host nu a putut fi rezolvat către o adresă IP.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Această valoare nu corespunde setului de caractere {{ charset }} așteptat.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Codul BIC (Business Identifier Code) nu este valid.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Eroare</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Identificatorul universal unic (UUID) nu este valid.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Această valoare trebuie să fie un multiplu de {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Codul BIC (Business Identifier Code) nu este asociat cu codul IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Această valoare trebuie să fie un JSON valid.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Acest set ar trebui să conțină numai elemente unice.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Această valoare ar trebui să fie pozitivă.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Această valoare trebuie să fie pozitivă sau zero.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Această valoare ar trebui să fie negativă.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Această valoare trebuie să fie negativă sau zero.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Această valoare nu este un fus orar valid.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Această parolă a fost compromisă și nu poate fi utilizată. Vă rugăm să utilizați o altă parolă.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Această valoare trebuie să fie între {{ min }} și {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Această valoare nu este un numele gazdei valid.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Numărul de elemente din această colecție ar trebui să fie un multiplu al {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Această valoare trebuie să îndeplinească cel puțin una dintre următoarele reguli:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Fiecare element din acest set ar trebui să îndeplinească propriul set de reguli.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Această valoare nu este un număr internațional de identificare (ISIN) valabil.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Această valoare ar trebui să fie o expresie validă.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Această valoare nu este o notație CIDR validă.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Valoarea netmask-ului trebuie sa fie intre {{ min }} si {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.ru.xlf 0000644 00000070043 15120140577 0014555 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Значение должно быть ложным.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Значение должно быть истинным.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Тип значения должен быть {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Значение должно быть пустым.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Выбранное Вами значение недопустимо.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Вы должны выбрать не более чем {{ limit }} вариант.|Вы должны выбрать не более чем {{ limit }} варианта.|Вы должны выбрать не более чем {{ limit }} вариантов.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Одно или несколько заданных значений недопустимо.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Это поле не ожидалось.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Это поле отсутствует.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Значение не является правильной датой.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Значение даты и времени недопустимо.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Значение адреса электронной почты недопустимо.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Файл не может быть найден.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Файл не может быть прочитан.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Файл слишком большой ({{ size }} {{ suffix }}). Максимально допустимый размер {{ 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>MIME-тип файла недопустим ({{ type }}). Допустимы MIME-типы файлов {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Значение должно быть {{ limit }} или меньше.</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>Значение должно быть {{ limit }} или больше.</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>Значение не должно быть пустым.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Значение не должно быть null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Значение должно быть null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Значение недопустимо.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Значение времени недопустимо.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Значение не является допустимым URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Оба значения должны быть одинаковыми.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Файл слишком большой. Максимально допустимый размер {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Файл слишком большой.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Файл не может быть загружен.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Значение должно быть числом.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Файл не является допустимым форматом изображения.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Значение не является допустимым IP адресом.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Значение не является допустимым языком.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Значение не является допустимой локалью.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Значение не является допустимой страной.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Это значение уже используется.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Не удалось определить размер изображения.</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>Ширина изображения слишком велика ({{ width }}px). Максимально допустимая ширина {{ 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>Ширина изображения слишком мала ({{ width }}px). Минимально допустимая ширина {{ 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>Высота изображения слишком велика ({{ height }}px). Максимально допустимая высота {{ 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>Высота изображения слишком мала ({{ height }}px). Минимально допустимая высота {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Значение должно быть текущим паролем пользователя.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Файл был загружен только частично.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Файл не был загружен.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Не настроена временная директория в php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Невозможно записать временный файл на диск.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Расширение PHP вызвало ошибку при загрузке.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Эта коллекция должна содержать ровно {{ limit }} элемент.|Эта коллекция должна содержать ровно {{ limit }} элемента.|Эта коллекция должна содержать ровно {{ limit }} элементов.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Неверный номер карты.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Неподдерживаемый тип или неверный номер карты.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Значение не является допустимым международным номером банковского счета (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Значение имеет неверный формат ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Значение имеет неверный формат ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Значение не соответствует форматам ISBN-10 и ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Значение не соответствует формату ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Некорректный формат валюты.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Значение должно быть равно {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Значение должно быть больше чем {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Значение должно быть больше или равно {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Значение должно быть идентичным {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Значение должно быть меньше чем {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Значение должно быть меньше или равно {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Значение не должно быть равно {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Значение не должно быть идентичным {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Соотношение сторон изображения слишком велико ({{ ratio }}). Максимальное соотношение сторон {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Соотношение сторон изображения слишком мало ({{ ratio }}). Минимальное соотношение сторон {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Изображение квадратное ({{ width }}x{{ height }}px). Квадратные изображения не разрешены.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Изображение в альбомной ориентации ({{ width }}x{{ height }}px). Изображения в альбомной ориентации не разрешены.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Изображение в портретной ориентации ({{ width }}x{{ height }}px). Изображения в портретной ориентации не разрешены.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Пустые файлы не разрешены.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Имя хоста не может быть разрешено.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Значение не совпадает с ожидаемой {{ charset }} кодировкой.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Значение не соответствует формату BIC.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Ошибка</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Значение не соответствует формату UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Значение должно быть кратно {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Данный BIC не связан с IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Значение должно быть корректным JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Эта коллекция должна содержать только уникальные элементы.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Значение должно быть положительным.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Значение должно быть положительным или равным нулю.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Значение должно быть отрицательным.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Значение должно быть отрицательным или равным нулю.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Значение не является корректным часовым поясом.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Данный пароль был скомпрометирован в результате утечки данных и не должен быть использован. Пожалуйста, используйте другой пароль.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Значение должно быть между {{ min }} и {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Значение не является корректным именем хоста.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Количество элементов в этой коллекции должно быть кратным {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Значение должно удовлетворять как минимум одному из следующих ограничений:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Каждый элемент этой коллекции должен удовлетворять своему собственному набору ограничений.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Значение не является корректным международным идентификационным номером ценных бумаг (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Это значение должно быть корректным выражением.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Значение не является корректным CSS цветом.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Значение не соответствует нотации CIDR.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Значение маски подсети должно быть от {{ min }} до {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.sk.xlf 0000644 00000060371 15120140577 0014547 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Táto hodnota by mala byť nastavená na false.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Táto hodnota by mala byť nastavená na true.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Táto hodnota by mala byť typu {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Táto hodnota by mala byť prázdna.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <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 }} choice.|You must select at least {{ limit }} choices.</source> <target>Mali by ste vybrať minimálne {{ limit }} možnosť.|Mali by ste vybrať minimálne {{ limit }} možnosti.|Mali by ste vybrať minimálne {{ limit }} možností.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Mali by ste vybrať najviac {{ limit }} možnosť.|Mali by ste vybrať najviac {{ limit }} možnosti.|Mali by ste vybrať najviac {{ limit }} možností.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Niektoré z uvedených hodnôt sú neplatné.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Toto pole sa neočakáva.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Toto pole chýba.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Tato hodnota nemá platný formát dátumu.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Táto hodnota nemá platný formát dátumu a času.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Táto hodnota nie je platná emailová adresa.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Súbor sa nenašiel.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Súbor nie je čitateľný.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Súbor je príliš veľký ({{ size }} {{ suffix }}). Maximálna povolená veľkosť je {{ 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>Súbor typu ({{ type }}) nie je podporovaný. Podporované typy sú {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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 }} znak.|Táto hodnota obsahuje viac znakov ako je povolené. Mala by obsahovať najviac {{ limit }} znaky.|Táto hodnota obsahuje viac znakov ako je povolené. Mala by obsahovať najviac {{ limit }} znakov.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <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 }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source> <target>Táto hodnota je príliš krátka. Musí obsahovať minimálne {{ limit }} znak.|Táto hodnota je príliš krátka. Musí obsahovať minimálne {{ limit }} znaky.|Táto hodnota je príliš krátka. Minimálny počet znakov je {{ limit }}.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Táto hodnota by mala byť vyplnená.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Táto hodnota by nemala byť null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Táto hodnota by mala byť null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Táto hodnota nie je platná.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Tato hodnota nemá správny formát času.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Táto hodnota nie je platnou URL adresou.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Tieto dve hodnoty by mali byť rovnaké.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Súbor je príliš veľký. Maximálna povolená veľkosť je {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Súbor je príliš veľký.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Súbor sa nepodarilo nahrať.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Táto hodnota by mala byť číslo.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Tento súbor nie je obrázok.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Toto nie je platná IP adresa.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Tento jazyk neexistuje.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Táto lokalizácia neexistuje.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Táto krajina neexistuje.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Táto hodnota sa už používa.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Nepodarilo sa zistiť rozmery obrázku.</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>Obrázok je príliš široký ({{ width }}px). Maximálna povolená šírka obrázku je {{ 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>Obrázok je príliš úzky ({{ width }}px). Minimálna šírka obrázku by mala byť {{ 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>>Obrázok je príliš vysoký ({{ height }}px). Maximálna povolená výška obrázku je {{ 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>Obrázok je príliš nízky ({{ height }}px). Minimálna výška obrázku by mala byť {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <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 }} character.|This value should have exactly {{ limit }} characters.</source> <target>Táto hodnota by mala mať presne {{ limit }} znak.|Táto hodnota by mala mať presne {{ limit }} znaky.|Táto hodnota by mala mať presne {{ limit }} znakov.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Bola nahraná len časť súboru.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Žiadny súbor nebol nahraný.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>V php.ini nie je nastavená cesta k addressáru pre dočasné súbory.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Dočasný súbor sa nepodarilo zapísať na disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Rozšírenie PHP zabránilo nahraniu súboru.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Neplatné číslo karty.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Nepodporovaný typ karty alebo neplatné číslo karty.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Toto je neplatný IBAN.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Táto hodnota je neplatné ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Táto hodnota je neplatné ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Táto hodnota nie je platné ISBN-10 ani ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Táto hodnota nie je platné ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Táto hodnota nie je platná mena.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Táto hodnota by mala byť rovná {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Táto hodnota by mala byť väčšia ako {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Táto hodnota by mala byť väčšia alebo rovná {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Táto hodnota by mala byť typu {{ compared_value_type }} a zároveň by mala byť rovná {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Táto hodnota by mala byť menšia ako {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Táto hodnota by mala byť menšia alebo rovná {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Táto hodnota by nemala byť rovná {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Táto hodnota by nemala byť typu {{ compared_value_type }} a zároveň by nemala byť rovná {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Pomer strán obrázku je príliš veľký ({{ ratio }}). Maximálny povolený pomer strán obrázku je {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Pomer strán obrázku je príliš malý ({{ ratio }}). Minimálny povolený pomer strán obrázku je {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Strany obrázku sú štvorcové ({{ width }}x{{ height }}px). Štvorcové obrázky nie sú povolené.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Obrázok je orientovaný na šírku ({{ width }}x{{ height }}px). Obrázky orientované na šírku nie sú povolené.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Obrázok je orientovaný na výšku ({{ width }}x{{ height }}px). Obrázky orientované na výšku nie sú povolené.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Súbor nesmie byť prázdny.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Hostiteľa nebolo možné rozpoznať.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Táto hodnota nezodpovedá očakávanej znakovej sade {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Táto hodnota nie je platný identifikačný kód podniku (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Chyba</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Táto hodnota nie je platný UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Táto hodnota by mala byť násobkom {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Tento identifikačný kód podniku (BIC) nie je spojený s IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Táto hodnota by mala byť platný JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Táto kolekcia by mala obsahovať len unikátne prkvy.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Táto hodnota by mala byť kladná.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Táto hodnota by mala byť kladná alebo nulová.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Táto hodnota by mala byť záporná.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Táto hodnota by mala byť záporná alebo nulová.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Táto hodnota nie je platné časové pásmo.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Toto heslo uniklo pri narušení ochrany dát, nie je možné ho použiť. Prosím, použite iné heslo.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Táto hodnota by mala byť medzi {{ min }} a {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Táto hodnota nie je platný hostname.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Počet prvkov v tejto kolekcii musí byť násobok {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Táto hodnota musí spĺňať aspoň jedno z nasledujúcich obmedzení:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Každý prvok v tejto kolekcii musí spĺňať svoje vlastné obmedzenia.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Táto hodnota nie je platné medzinárodné označenie cenného papiera (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Táto hodnota by mala byť platným výrazom.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Táto hodnota nie je platná CSS farba.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Táto hodnota nie je platnou notáciou CIDR.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Hodnota masky siete by mala byť medzi {{ min }} a {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.sl.xlf 0000644 00000060340 15120140577 0014544 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Vrednost bi morala biti nepravilna (false).</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Vrednost bi morala biti pravilna (true).</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Vrednost mora biti naslednjega tipa {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Vrednost mora biti prazna.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Vrednost, ki ste jo izbrali, ni veljavna možnost.</target> </trans-unit> <trans-unit id="6"> <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source> <target>Izbrati morate vsaj {{ limit }} možnost.|Izbrati morate vsaj {{ limit }} možnosti.|Izbrati morate vsaj {{ limit }} možnosti.|Izbrati morate vsaj {{ limit }} možnosti.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Izberete lahko največ {{ limit }} možnost.|Izberete lahko največ {{ limit }} možnosti.|Izberete lahko največ {{ limit }} možnosti.|Izberete lahko največ {{ limit }} možnosti.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Ena ali več podanih vrednosti ni veljavnih.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>To polje ni bilo pričakovati.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>To polje manjka.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Ta vrednost ni veljaven datum.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Ta vrednost ni veljaven datum in čas.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Ta vrednost ni veljaven e-poštni naslov.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Datoteke ni mogoče najti.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Datoteke ni mogoče prebrati.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Datoteka je prevelika ({{ size }} {{ suffix }}). Največja dovoljena velikost je {{ 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>Mime tip datoteke je neveljaven ({{ type }}). Dovoljeni mime tipi so {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Ta vrednost bi morala biti {{ limit }} ali manj.</target> </trans-unit> <trans-unit id="19"> <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 vrednost je predolga. Morala bi imeti {{ limit }} znak ali manj.|Ta vrednost je predolga. Morala bi imeti {{ limit }} znaka ali manj.|Ta vrednost je predolga. Morala bi imeti {{ limit }} znake ali manj.|Ta vrednost je predolga. Morala bi imeti {{ limit }} znakov ali manj.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <target>Ta vrednost bi morala biti {{ limit }} ali več.</target> </trans-unit> <trans-unit id="21"> <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 vrednost je prekratka. Morala bi imeti {{ limit }} znak ali več.|Ta vrednost je prekratka. Morala bi imeti {{ limit }} znaka ali več.|Ta vrednost je prekratka. Morala bi imeti {{ limit }} znake ali več.|Ta vrednost je prekratka. Morala bi imeti {{ limit }} znakov ali več.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Ta vrednost ne bi smela biti prazna.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Ta vrednost ne bi smela biti nedefinirana (null).</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Ta vrednost bi morala biti nedefinirana (null).</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Ta vrednost ni veljavna.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Ta vrednost ni veljaven čas.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Ta vrednost ni veljaven URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Ti dve vrednosti bi morali biti enaki.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Datoteka je prevelika. Največja dovoljena velikost je {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Datoteka je prevelika.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Datoteke ni bilo mogoče naložiti.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Ta vrednost bi morala biti veljavna številka.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Ta datoteka ni veljavna slika.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>To ni veljaven IP naslov.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Ta vrednost ni veljaven jezik.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Ta vrednost ni veljavna lokalnost.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Ta vrednost ni veljavna država.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Ta vrednost je že uporabljena.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Velikosti slike ni bilo mogoče zaznati.</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>Širina slike je preširoka ({{ width }}px). Največja dovoljena širina je {{ 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>Širina slike je premajhna ({{ width }}px). Najmanjša predvidena širina je {{ 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>Višina slike je prevelika ({{ height }}px). Največja dovoljena višina je {{ 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>Višina slike je premajhna ({{ height }}px). Najmanjša predvidena višina je {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Ta vrednost bi morala biti trenutno uporabnikovo geslo.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Ta vrednost bi morala imeti točno {{ limit }} znak.|Ta vrednost bi morala imeti točno {{ limit }} znaka.|Ta vrednost bi morala imeti točno {{ limit }} znake.|Ta vrednost bi morala imeti točno {{ limit }} znakov.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Datoteka je bila le delno naložena.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Nobena datoteka ni bila naložena.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Začasna mapa ni nastavljena v php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Začasne datoteke ni bilo mogoče zapisati na disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP razširitev je vzrok, da nalaganje ni uspelo.</target> </trans-unit> <trans-unit id="54"> <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 }} element ali več.|Ta zbirka bi morala vsebovati {{ limit }} elementa ali več.|Ta zbirka bi morala vsebovati {{ limit }} elemente ali več.|Ta zbirka bi morala vsebovati {{ limit }} elementov ali več.</target> </trans-unit> <trans-unit id="55"> <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 }} element ali manj.|Ta zbirka bi morala vsebovati {{ limit }} elementa ali manj.|Ta zbirka bi morala vsebovati {{ limit }} elemente ali manj.|Ta zbirka bi morala vsebovati {{ limit }} elementov ali manj.</target> </trans-unit> <trans-unit id="56"> <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"> <source>Invalid card number.</source> <target>Neveljavna številka kartice.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Nepodprti tip kartice ali neveljavna številka kartice.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>To ni veljavna mednarodna številka bančnega računa (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Neveljavna vrednost po ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Neveljavna vrednost po ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Neveljavna vrednost po ISBN-10 ali po ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Neveljavna vrednost ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Ta vrednost ni veljavna valuta.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Ta vrednost bi morala biti enaka {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Ta vrednost bi morala biti večja od {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Ta vrednost bi morala biti večja ali enaka {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ta vrednost bi morala biti identična {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Ta vrednost bi morala biti manjša od {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Ta vrednost bi morala biti manjša ali enaka {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Ta vrednost ne bi smela biti enaka {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ta vrednost ne bi smela biti identična {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Razmerje slike je preveliko ({{ ratio }}). Največje dovoljeno razmerje je {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Razmerje slike je premajhno ({{ ratio }}). Najmanjše pričakovano razmerje je {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Slika je kvadrat ({{ width }}x{{ height }}px). Kvadratne slike niso dovoljene.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Slika je ležeče usmerjena ({{ width }}x{{ height }}px). Ležeče usmerjene slike niso dovoljene.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Slika je pokončno usmerjena ({{ width }}x{{ height }}px). Pokončno usmerjene slike niso dovoljene.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Prazna datoteka ni dovoljena.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Gostitelja ni bilo mogoče prepoznati.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Ta vrednost se ne ujema s pričakovanim naborom znakov {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>To ni veljavna identifikacijska koda podjetja (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Napaka</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>To ni veljaven UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Ta vrednost bi morala biti večkratnik od {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Ta poslovna identifikacijska koda (BIC) ni povezana z IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Ta vrednost bi morala biti veljaven JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Ta zbirka bi morala vsebovati samo edinstvene elemente.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Ta vrednost bi morala biti pozitivna.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Ta vrednost bi morala biti pozitivna ali enaka nič.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Ta vrednost bi morala biti negativna.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Ta vrednost bi morala biti negativna ali enaka nič.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Ta vrednost ni veljaven časovni pas.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>To geslo je ušlo pri kršitvi varnosti podatkov in ga ne smete uporabljati. Prosimo, uporabite drugo geslo.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Ta vrednost bi morala biti med {{ min }} in {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Ta vrednost ni veljavno ime gostitelja.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Število elementov v tej zbirki bi moralo biti mnogokratnik {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Ta vrednost bi morala zadostiti vsaj eni izmed sledečih omejitev:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Vsak element te zbirke bi moral zadostiti svojemu lastnemu naboru omejitev.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Ta vrednost ni veljavna mednarodna identifikacijska koda vrednostnih papirjev (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Ta vrednost bi morala biti veljaven izraz.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Ta vrednost ni veljavna barva CSS.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Ta vrednost ni veljaven zapis CIDR.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Vrednost omrežne maske mora biti med {{ min }} in {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.sq.xlf 0000644 00000056571 15120140577 0014564 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Kjo vlerë duhet të jetë e pavërtetë (false).</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Kjo vlerë duhet të jetë e vërtetë (true).</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Kjo vlerë duhet të jetë e llojit {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Kjo vlerë duhet të jetë e zbrazët.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Vlera që keni zgjedhur nuk është alternativë e vlefshme.</target> </trans-unit> <trans-unit id="6"> <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source> <target>Duhet të zgjedhni së paku {{ limit }} alternativë.|Duhet të zgjedhni së paku {{ limit }} alternativa.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Duhet të zgjedhni më së shumti {{ limit }} alternativë.|Duhet të zgjedhni më së shumti {{ limit }} alternativa.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Një apo më shumë nga vlerat e dhëna janë të pavlefshme.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Kjo fushë nuk pritej.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Kjo fushë mungon.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Kjo vlerë nuk është datë e vlefshme.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Kjo vlerë nuk është datë-kohë e vlefshme.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Kjo vlerë nuk është adresë email-i e vlefshme.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>File nuk mund të gjindej.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>File nuk është i lexueshëm.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>File është shumë i madh ({{ size }} {{ suffix }}). Madhësia maksimale e lejuar është {{ 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>Lloji mime i file-it është i pavlefshëm ({{ type }}). Llojet mime të lejuara janë {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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ë përmbaj {{ limit }} karakter ose më pak.|Kjo vlerë është shumë e gjatë. Duhet të përmbaj {{ limit }} karaktere ose më pak.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <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 }} 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ë përmbaj {{ limit }} karakter ose më shumë.|Kjo vlerë është shumë e shkurtër. Duhet të përmbaj {{ limit }} karaktere ose më shumë.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Kjo vlerë nuk duhet të jetë e zbrazët.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Kjo vlerë nuk duhet të jetë null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Kjo vlerë duhet të jetë null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Kjo vlerë nuk është e vlefshme.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Kjo vlerë nuk është kohë e vlefshme.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Kjo vlerë nuk është URL e vlefshme.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Këto dy vlera duhet të jenë të barabarta.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Ky file është shumë i madh. Madhësia maksimale e lejuar është {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Ky file është shumë i madh.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Ky file nuk mund të ngarkohet.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Kjo vlerë duhet të jetë numër i vlefshëm.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Ky file nuk është imazh i vlefshëm.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Kjo adresë IP nuk është e vlefshme.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Kjo vlerë nuk është gjuhë e vlefshme.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Kjo vlerë nuk është nje locale i vlefshëm.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Kjo vlerë nuk është shtet i vlefshëm.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Kjo vlerë është tashmë në përdorim.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Madhësia e imazhit nuk mund të zbulohet.</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>Gjerësia e imazhit është shumë e madhe ({{ width }}px). Gjerësia maksimale e lejuar është {{ 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>Gjerësia e imazhit është shumë e vogël ({{ width }}px). Gjerësia minimale e pritur është {{ 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>Gjatësia e imazhit është shumë e madhe ({{ height }}px). Gjatësia maksimale e lejuar është {{ 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>Gjatësia e imazhit është shumë e vogël ({{ height }}px). Gjatësia minimale e pritur është {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <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 }} character.|This value should have exactly {{ limit }} characters.</source> <target>Kjo vlerë duhet të ketë saktësisht {{ limit }} karakter.|Kjo vlerë duhet të ketë saktësisht {{ limit }} karaktere.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Ky file është ngarkuar pjesërisht.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Nuk është ngarkuar ndonjë file.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Asnjë folder i përkohshëm nuk është konfiguruar në php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Nuk mund të shkruhet file i përkohshëm në disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Një ekstension i PHP-së shkaktoi dështimin e ngarkimit.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Ky koleksion duhet të përmbajë {{ limit }} element ose më shumë.|Ky koleksion duhet të përmbajë {{ limit }} elemente ose më shumë.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Ky koleksion duhet të përmbajë {{ limit }} element ose më pak.|Ky koleksion duhet të përmbajë {{ limit }} elemente ose më pak.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Ky koleksion duhet të përmbajë saktësisht {{ limit }} element.|Ky koleksion duhet të përmbajë saktësisht {{ limit }} elemente.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Numër karte i pavlefshëm.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Lloj karte i papranuar ose numër karte i pavlefshëm.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Ky nuk është një numër i vlefshëm ndërkombëtar i llogarisë bankare (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Kjo vlerë nuk është një ISBN-10 e vlefshme.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Kjo vlerë nuk është një ISBN-13 e vlefshme.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Kjo vlerë nuk është as ISBN-10 e vlefshme as ISBN-13 e vlefshme.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Kjo vlerë nuk është një ISSN e vlefshme.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Kjo vlerë nuk është një monedhë e vlefshme.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Kjo vlerë duhet të jetë e barabartë me {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Kjo vlerë duhet të jetë më e madhe se {{ compared_value }}. </target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Kjo vlerë duhet të jetë më e madhe ose e barabartë me {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Kjo vlerë duhet të jetë identike me {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Kjo vlerë duhet të jetë më vogël se {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Kjo vlerë duhet të jetë më e vogël ose e barabartë me {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Kjo vlerë nuk duhet të jetë e barabartë me {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Kjo vlerë nuk duhet të jetë identike me {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Raporti i imazhit është shumë i madh ({{ ratio }}). Raporti maksimal i lejuar është {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Raporti i imazhit është shumë i vogël ({{ ratio }}). Raporti minimal pritet të jetë {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Imazhi është katror ({{ width }}x{{ height }}px). Imazhet katrore nuk janë të lejuara.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Imazhi është i orientuar horizontalisht ({{ width }}x{{ height }}px). Imazhet e orientuara horizontalisht nuk lejohen.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Imazhi është i orientuar vertikalisht ({{ width }}x{{ height }}px). Imazhet orientuara vertikalisht nuk lejohen.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Një file i zbrazët nuk lejohet.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Host-i nuk mund te zbulohej.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Kjo vlerë nuk përputhet me kodifikimin e karaktereve {{ charset }} që pritej.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Ky nuk është një Kod Identifikues i Biznesit (BIC) i vleflshem.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Gabim</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Ky nuk është një UUID i vlefshëm.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Kjo vlerë duhet të jetë një shumëfish i {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Ky Kod Identifikues i Biznesit (BIC) nuk është i lidhur me IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Kjo vlerë duhet të jetë JSON i vlefshëm.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Ky koleksion duhet të përmbajë vetëm elementë unikë.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Kjo vlerë duhet të jetë pozitive.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Kjo vlerë duhet të jetë pozitive ose zero.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Kjo vlerë duhet të jetë negative.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Kjo vlerë duhet të jetë negative ose zero.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Kjo vlerë nuk është një zonë e vlefshme kohore.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Ky fjalëkalim është zbuluar në një shkelje të të dhënave, nuk duhet të përdoret. Ju lutemi përdorni një fjalëkalim tjetër.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Kjo vlerë duhet të jetë ndërmjet {{ min }} dhe {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Kjo vlerë nuk është një emër i vlefshëm hosti.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Numri i elementeve në këtë koleksion duhet të jetë një shumëfish i {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Kjo vlerë duhet të plotësojë të paktën njërën nga kufizimet e mëposhtme:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Secili element i këtij koleksioni duhet të përmbushë kufizimet e veta.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Kjo vlerë nuk është një numër i vlefshëm identifikues ndërkombëtar i sigurisë (ISIN).</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.sr_Cyrl.xlf 0000644 00000066746 15120140577 0015563 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Вредност треба да буде нетачна.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Вредност треба да буде тачна.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Вредност треба да буде типа {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Вредност треба да буде празна.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Вредност треба да буде једна од понуђених.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Изаберите највише {{ limit }} могућност.|Изаберите највише {{ limit }} могућности.|Изаберите највише {{ limit }} могућности.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Једна или више вредности је невалидна.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Ово поље није било очекивано.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Ово поље недостаје.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Вредност није валидан датум.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Вредност није валидан датум-време.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Вредност није валидна адреса електронске поште.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Датотека не може бити пронађена.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Датотека није читљива.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Датотека је превелика ({{ size }} {{ suffix }}). Највећа дозвољена величина је {{ 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>Миме тип датотеке није валидан ({{ type }}). Дозвољени миме типови су {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Вредност треба да буде {{ limit }} или мање.</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>Вредност треба да буде {{ limit }} или више.</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>Вредност не треба да буде празна.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Вредност не треба да буде null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Вредност треба да буде null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Вредност није валидна.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Вредност није валидно време.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Вредност није валидан URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Обе вредности треба да буду једнаке.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Датотека је превелика. Највећа дозвољена величина је {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Датотека је превелика.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Датотека не може бити отпремљена.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Вредност треба да буде валидан број.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Ова датотека није валидна слика.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Ово није валидна ИП адреса.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Вредност није валидан језик.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Вредност није валидан локал.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Вредност није валидна земља.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Вредност је већ искоришћена.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Величина слике не може бити одређена.</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>Ширина слике је превелика ({{ width }}px). Најећа дозвољена ширина је {{ 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>Ширина слике је премала ({{ width }}px). Најмања дозвољена ширина је {{ 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>Висина слике је превелика ({{ height }}px). Најећа дозвољена висина је {{ 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>Висина слике је премала ({{ height }}px). Најмања дозвољена висина је {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Вредност треба да буде тренутна корисничка лозинка.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Датотека је само парцијално отпремљена.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Датотека није отпремљена.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Привремени директоријум није конфигурисан у php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Немогуће писање привремене датотеке на диск.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP екстензија је проузроковала неуспех отпремања датотеке.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Ова колекција треба да садржи тачно {{ limit }} елемент.|Ова колекција треба да садржи тачно {{ limit }} елемента.|Ова колекција треба да садржи тачно {{ limit }} елемената.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Невалидан број картице.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Невалидан број картице или тип картице није подржан.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Ово није валидан међународни број банковног рачуна (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Ово није валидан ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Ово није валидан ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Ово није валидан ISBN-10 или ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Ово није валидан ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Ово није валидна валута.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Ова вредност треба да буде {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Ова вредност треба да буде већа од {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Ова вредност треба да буде већа или једнака {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ова вредност треба да буде идентична са {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Ова вредност треба да буде мања од {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Ова вредност треба да буде мања или једнака {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Ова вредност не треба да буде једнака {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ова вредност не треба да буде идентична са {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Размера ове слике је превелика ({{ ratio }}). Максимална дозвољена размера је {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Размера ове слике је премала ({{ ratio }}). Минимална очекивана размера је {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Слика је квадратна ({{ width }}x{{ height }}px). Квадратне слике нису дозвољене.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Слика је оријентације пејзажа ({{ width }}x{{ height }}px). Пејзажна оријентација слика није дозвољена.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Слика је оријантације портрета ({{ width }}x{{ height }}px). Портретна оријентација слика није дозвољена.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Празна датотека није дозвољена.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Име хоста не може бити разрешено.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Вредност се не поклапа са очекиваним {{ charset }} сетом карактера.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Ово није валидан међународни идентификацијски код банке (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Грешка</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Ово није валидан универзални уникатни идентификатор (UUID).</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Ова вредност би требало да буде дељива са {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>BIC код није повезан са IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Ова вредност би требало да буде валидан JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Ова колекција би требала да садржи само јединствене елементе.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Ова вредност би требала бити позитивна.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Ова вредност би требала бити позитивна или нула.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Ова вредност би требала бити негативна.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Ова вредност би требала бити позитивна или нула.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Ова вредност није валидна временска зона.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Ова лозинка је компромитована приликом претходних напада, немојте је користити. Користите другу лозинку.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Ова вредност треба да буде између {{ min }} и {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Ова вредност није исправно име хоста.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Број елемената у овој колекцији би требало да буде дељив са {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Ова вредност би требало да задовољава најмање једно од наредних ограничења:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Сваки елемент ове колекције би требало да задовољи сопствени скуп ограничења.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Ова вредност није исправна међународна идентификациона ознака хартија од вредности (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Ова вредност треба да буде валидан израз.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Ова вредност није исправна CSS боја.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Ова вредност није исправна CIDR нотација.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Вредност мрежне маске треба бити између {{ min }} и {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.sr_Latn.xlf 0000644 00000060006 15120140577 0015527 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Vrednost bi trebalo da bude netačna.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Vrednost bi trebalo da bude tačna.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Vrednost bi trebalo da bude tipa {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Vrednost bi trebalo da bude prazna.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Odabrana vrednost nije validan izbor.</target> </trans-unit> <trans-unit id="6"> <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source> <target>Morate odabrati bar {{ limit }} mogućnost.|Morate odabrati bar {{ limit }} mogućnosti.|Morate odabrati bar {{ limit }} mogućnosti.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Morate odabrati najviše {{ limit }} mogućnost.|Morate odabrati najviše {{ limit }} mogućnosti.|Morate odabrati najviše {{ limit }} mogućnosti.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Jedna ili više vrednosti nisu validne.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Ovo polje nije bilo očekivano.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Ovo polje nedostaje.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Vrednost nije validan datum.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Vrednost nije validno vreme.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Vrednost nije validna adresa elektronske pošte.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Datoteka ne može biti pronađena.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Datoteka nije čitljiva.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Datoteka je prevelika ({{ size }} {{ suffix }}). Najveća dozvoljena veličina je {{ 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>MIME tip datoteke nije validan ({{ type }}). Dozvoljeni MIME tipovi su {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Vrednost bi trebalo da bude {{ limit }} ili manje.</target> </trans-unit> <trans-unit id="19"> <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. Trebalo bi da ima {{ limit }} karakter ili manje.|Vrednost je predugačka. Trebalo bi da ima {{ limit }} karaktera ili manje.|Vrednost je predugačka. Trebalo bi da ima {{ limit }} karaktera ili manje.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <target>Vrednost bi trebalo da bude {{ limit }} ili više.</target> </trans-unit> <trans-unit id="21"> <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. Trebalo bi da ima {{ limit }} karakter ili više.|Vrednost je prekratka. Trebalo bi da ima {{ limit }} karaktera ili više.|Vrednost je prekratka. Trebalo bi da ima {{ limit }} karaktera ili više.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Vrednost ne bi trebalo da bude prazna.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Vrednost ne bi trebalo da bude prazna.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Vrednost bi trebalo da bude prazna.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Vrednost nije validna.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Vrednost nije validno vreme.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Vrednost nije validan URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Obe vrednosti bi trebalo da budu jednake.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Datoteka je prevelika. Najveća dozvoljena veličina je {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Datoteka je prevelika.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Datoteka ne može biti otpremljena.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Vrednost bi trebalo da bude validan broj.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Ova datoteka nije validna slika.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Ovo nije validna IP adresa.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Vrednost nije validan jezik.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Vrednost nije validna međunarodna oznaka jezika.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Vrednost nije validna država.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Vrednost je već iskorišćena.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Veličina slike ne može biti određena.</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>Širina slike je prevelika ({{ width }} piksela). Najveća dozvoljena širina je {{ max_width }} piksela.</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>Širina slike je premala ({{ width }} piksela). Najmanja dozvoljena širina je {{ min_width }} piksela.</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>Visina slike je prevelika ({{ height }} piksela). Najveća dozvoljena visina je {{ max_height }} piksela.</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>Visina slike je premala ({{ height }} piksela). Najmanja dozvoljena visina je {{ min_height }} piksela.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Vrednost bi trebalo da bude trenutna korisnička lozinka.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Vrednost bi trebalo da ima tačno {{ limit }} karakter.|Vrednost bi trebalo da ima tačno {{ limit }} karaktera.|Vrednost bi trebalo da ima tačno {{ limit }} karaktera.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Datoteka je samo parcijalno otpremljena.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Datoteka nije otpremljena.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Privremeni direktorijum nije konfigurisan u php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Nemoguće pisanje privremene datoteke na disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP ekstenzija je prouzrokovala neuspeh otpremanja datoteke.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Ova kolekcija bi trebalo da sadrži {{ limit }} ili više elemenata.|Ova kolekcija bi trebalo da sadrži {{ limit }} ili više elemenata.|Ova kolekcija bi trebalo da sadrži {{ limit }} ili više elemenata.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Ova kolekcija bi trebalo da sadrži {{ limit }} ili manje elemenata.|Ova kolekcija bi trebalo da sadrži {{ limit }} ili manje elemenata.|Ova kolekcija bi trebalo da sadrži {{ limit }} ili manje elemenata.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Ova kolekcija bi trebalo da sadrži tačno {{ limit }} element.|Ova kolekcija bi trebalo da sadrži tačno {{ limit }} elementa.|Ova kolekcija bi trebalo da sadrži tačno {{ limit }} elemenata.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Broj kartice nije validan.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Tip kartice nije podržan ili broj kartice nije validan.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Ovo nije validan međunarodni broj bankovnog računa (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Ovo nije validan ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Ovo nije validan ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Ovo nije validan ISBN-10 ili ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Ovo nije validan ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Ovo nije validna valuta.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Ova vrednost bi trebalo da bude jednaka {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Ova vrednost bi trebalo da bude veća od {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Ova vrednost bi trebalo da bude veća ili jednaka {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ova vrednost bi trebalo da bude identična sa {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Ova vrednost bi trebalo da bude manja od {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Ova vrednost bi trebalo da bude manja ili jednaka {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Ova vrednost ne bi trebalo da bude jednaka {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ova vrednost ne bi trebalo da bude identična sa {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Razmera ove slike je prevelika ({{ ratio }}). Maksimalna dozvoljena razmera je {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Razmera ove slike je premala ({{ ratio }}). Minimalna očekivana razmera je {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Slika je kvadratna ({{ width }}x{{ height }} piksela). Kvadratne slike nisu dozvoljene.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Slika je pejzažno orijentisana ({{ width }}x{{ height }} piksela). Pejzažna orijentisane slike nisu dozvoljene.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Slika je portretno orijentisana ({{ width }}x{{ height }} piksela). Portretno orijentisane slike nisu dozvoljene.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Prazna datoteka nije dozvoljena.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Ime hosta ne može biti razrešeno.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Vrednost se ne poklapa sa očekivanim {{ charset }} setom karaktera.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Ovo nije validan BIC.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Greška</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Ovo nije validan univerzalni unikatni identifikator (UUID).</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Ova vrednost bi trebalo da bude deljiva sa {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>BIC kod nije povezan sa IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Ova vrednost bi trebalo da bude validan JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Ova kolekcija bi trebala da sadrži samo jedinstvene elemente.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Ova vrednost bi trebala biti pozitivna.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Ova vrednost bi trebala biti pozitivna ili nula.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Ova vrednost bi trebala biti negativna.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Ova vrednost bi trebala biti negativna ili nula.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Ova vrednost nije validna vremenska zona.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Ova lozinka je kompromitovana prilikom prethodnih napada, nemojte je koristiti. Koristite drugu lozinku.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Ova vrednost treba da bude između {{ min }} i {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Ova vrednost nije ispravno ime poslužitelja (hostname).</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Broj elemenata u ovoj kolekciji bi trebalo da bude deljiv sa {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Ova vrednost bi trebalo da zadovoljava namjanje jedno od narednih ograničenja:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Svaki element ove kolekcije bi trebalo da zadovolji sopstveni skup ograničenja.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Ova vrednost nije ispravna međunarodna identifikaciona oznaka hartija od vrednosti (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Ova vrednost treba da bude validan izraz.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Ova vrednost nije ispravna CSS boja.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Ova vrednost nije ispravna CIDR notacija.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Vrednost mrežne maske treba biti između {{ min }} i {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.sv.xlf 0000644 00000056335 15120140577 0014567 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Värdet ska vara falskt.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Värdet ska vara sant.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Värdet ska vara av typen {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Värdet ska vara tomt.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Värdet ska vara ett av de givna valen.</target> </trans-unit> <trans-unit id="6"> <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 }} 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"> <source>One or more of the given values is invalid.</source> <target>Ett eller fler av de angivna värdena är ogiltigt.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Det här fältet förväntades inte.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Det här fältet saknas.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Värdet är inte ett giltigt datum.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Värdet är inte ett giltigt datum med tid.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Värdet är inte en giltig e-postadress.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Filen kunde inte hittas.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Filen är inte läsbar.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Filen är för stor ({{ size }} {{ suffix }}). Största tillåtna storlek är {{ 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>Filens MIME-typ ({{ type }}) är ogiltig. De tillåtna typerna är {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Värdet kan inte vara tomt.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Värdet kan inte vara null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Värdet ska vara null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Värdet är inte giltigt.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Värdet är inte en giltig tid.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Värdet är inte en giltig URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>De två värdena måste vara lika.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Filen är för stor. Tillåten maximal storlek är {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Filen är för stor.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Filen kunde inte laddas upp.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Värdet ska vara ett giltigt nummer.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Filen är ingen giltig bild.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Det här är inte en giltig IP-adress.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Värdet är inte ett giltigt språk.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Värdet är inte en giltig plats.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Värdet är inte ett giltigt land.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Värdet används redan.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Det gick inte att fastställa storleken på bilden.</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>Bildens bredd är för stor ({{ width }}px). Tillåten maximal bredd är {{ 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>Bildens bredd är för liten ({{ width }}px). Minsta förväntade bredd är {{ 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>Bildens höjd är för stor ({{ height }}px). Tillåten maximal bredd är {{ 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>Bildens höjd är för liten ({{ height }}px). Minsta förväntade höjd är {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Värdet ska vara användarens nuvarande lösenord.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Filen laddades bara upp delvis.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Ingen fil laddades upp.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Det finns ingen temporär mapp konfigurerad i php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Kan inte skriva temporär fil till disken.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>En PHP extension gjorde att uppladdningen misslyckades.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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> <trans-unit id="57"> <source>Invalid card number.</source> <target>Ogiltigt kortnummer.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Okänd korttyp eller ogiltigt kortnummer.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Det här är inte en giltig International Bank Account Number (IBANK).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Värdet är inte en giltig ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Värdet är inte en giltig ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Värdet är varken en giltig ISBN-10 eller en giltig ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Värdet är inte en giltig ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Värdet är inte en giltig valuta.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Värdet ska vara detsamma som {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Värdet ska vara större än {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Värdet ska bara större än eller detsamma som {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Värdet ska vara identiskt till {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Värdet ska vara mindre än {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Värdet ska vara mindre än eller detsamma som {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Värdet ska inte vara detsamma som {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Värdet ska inte vara identiskt med {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Förhållandet mellan bildens bredd och höjd är för stort ({{ ratio }}). Högsta tillåtna förhållande är {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Förhållandet mellan bildens bredd och höjd är för litet ({{ ratio }}). Minsta tillåtna förhållande är {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Bilden är kvadratisk ({{ width }}x{{ height }}px). Kvadratiska bilder tillåts inte.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Bilden är landskapsorienterad ({{ width }}x{{ height }}px). Landskapsorienterade bilder tillåts inte.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Bilden är porträttsorienterad ({{ width }}x{{ height }}px). Porträttsorienterade bilder tillåts inte.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>En tom fil är inte tillåten.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Värddatorn kunde inte hittas.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Detta värde har inte den förväntade teckenkodningen {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Detta är inte en giltig BIC-kod.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Fel</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Detta är inte ett giltigt UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Detta värde ska vara en multipel av {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Denna BIC-koden är inte associerad med IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Detta värde ska vara giltig JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Denna samling bör endast innehålla unika element.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Detta värde bör vara positivt.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Detta värde bör vara antingen positivt eller noll.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Detta värde bör vara negativt.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Detta värde bör vara antingen negativt eller noll.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Detta värde är inte en giltig tidszon.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Det här lösenordet har läckt ut vid ett dataintrång, det får inte användas. Använd ett annat lösenord.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Detta värde bör ligga mellan {{ min }} och {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Värdet är inte ett giltigt servernamn.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Antalet element i samlingen ska vara en multipel av {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Det här värdet skall uppfylla minst ett av följande krav:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Varje element i samlingen skall uppfylla sin egen uppsättning av krav.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Det här värdet är inte ett giltigt "International Securities Identification Number" (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Det här värdet bör vara ett giltigt uttryck.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Det här värdet är inte en giltig CSS-färg.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Det här värdet är inte en giltig CIDR-notation.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Värdet på nätmasken bör vara mellan {{ min }} och {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.th.xlf 0000644 00000067056 15120140577 0014554 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>ค่านี้ควรเป็น false</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>ค่านี้ควรเป็น true</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>ค่านี้ควรเป็น {{ type }}</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>ควรเป็นค่าว่าง</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>คุณเลือกค่าที่ไม่ตรงกับตัวเลือก</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>คุณเลือกได้มากที่สุด {{ limit }} ตัวเลือก</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>มีบางค่าที่ส่งมาไม่ถูกต้อง</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>ไม่ควรมีฟิลด์นี้</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>ฟิลด์นี้หายไป</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>ค่าของวันที่ไม่ถูกต้อง</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>ค่าของวันที่และเวลาไม่ถูกต้อง</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>ค่าของอีเมล์ไม่ถูกต้อง</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>ไม่พบไฟล์</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>ไฟล์ไม่อยู่ในสถานะที่สามารถอ่านได้</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>ไฟล์ใหญ่เกิน ({{ size }} {{ suffix }}) อนุญาตให้ใหญ่ที่สุดได้ไม่เกิน {{ 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>Mime type ของไฟล์ไม่ถูกต้อง ({{ type }}) Mime types ที่อนุญาตคือ {{ types }}</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>ค่านี้ควรจะเป็น {{ limit }} หรือน้อยกว่านั้น</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>ค่านี้ควรจะมี {{ limit }} หรือมากกว่านั้น</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>ค่านี้ไม่ควรเป็นค่าว่าง</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>ค่านี้ไม่ควรเป็นค่า null</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>ค่านี้ควรเป็นค่า null</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>ค่านี้ไม่ถูกต้อง</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>ค่าของเวลาไม่ถูกต้อง</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>ค่าของ URL ไม่ถูกต้อง</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>ค่าทั้งสองค่าควรจะเหมือนกัน</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>ขนาดไฟล์ใหญ่เกินไป อนุญาตให้ไฟล์ขนาดใหญ่ได้ไม่เกิน {{ limit }} {{ suffix }}</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>ขนาดไฟล์ใหญ่เกินไป</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>ไม่สามารถอัปโหลดไฟล์ได้</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>ค่าของตัวเลขไม่ถูกต้อง</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>ไฟล์นี้ไม่ใช่ไฟล์รูปภาพ</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>ค่าของ IP ไม่ถูกต้อง</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>ค่าของภาษาไม่ถูกต้อง</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>ค่าของภูมิภาค (Locale) ไม่ถูกต้อง</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>ค่าของประเทศไม่ถูกต้อง</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>ค่านี้ถูกใช้งานไปแล้ว</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>ไม่สามารถตรวจสอบขนาดไฟล์ของภาพได้</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>ความกว้างของภาพเกินขนาด ({{ width }}px) อนุญาตให้กว้างได้มากที่สุด {{ 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>ความกว้างของภาพต่ำเกินไป ({{ width }}px) อนุญาตให้ความกว้างไม่ต่ำกว่า {{ 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>ความสูงของภาพเกินขนาด ({{ height }}px) อนุญาตให้สูงได้มากที่สุด {{ 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>ความสูงของภาพเล็กเกินไป ({{ height }}px) อนุญาตให้ความสูงไม่ควรต่ำกว่า {{ min_height }}px</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>ค่านี้ควรจะเป็นรหัสผ่านปัจจุบันของผู้ใช้</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>อัปโหลดไฟล์ได้เพียงบางส่วนเท่านั้น</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>ไม่มีไฟล์ใดถูกอัปโหลด</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>ไม่พบการตั้งค่าโฟลเดอร์ชั่วคราว (temporary folder) ใน php.ini</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>ไม่สามารถเขียนไฟล์ชั่วคราว (temporary file) ลงดิสก์ได้</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP extension ทำให้การอัปโหลดมีปัญหา</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>คอเล็กชั่นนี้ควรจะมี {{ limit }} สมาชิกเท่านั้น</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>หมายเลขบัตรไม่ถูกต้อง</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>ไม่รู้จักประเภทของบัตร หรือหมายเลขบัตรไม่ถูกต้อง</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>ค่านี้ไม่ใช่ International Bank Account Number (IBAN) ที่ถูกต้อง</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>ค่านี้ไม่ใช่ ISBN-10 ที่ถูกต้อง</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>ค่านี้ไม่ใช่ ISBN-13 ที่ถูกต้อง</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>ค่านี้ไม่ใช่ ISBN-10 หรือ ISBN-13 ที่ถูกต้อง</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>ค่านี้ไม่ใช่ ISSN ที่ถูกต้อง</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>ค่านี้ไม่ใช่สกุลเงินที่ถูกต้อง</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>ค่านี้ควรตรงกับ {{ compared_value }}</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>ค่านี้ควรจะมากกว่า {{ compared_value }}</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>ค่านี้ควรจะมากกว่าหรือตรงกับ {{ compared_value }}</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>ค่านี้ควรจะเหมือนกันกับ {{ compared_value_type }} {{ compared_value }}</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>ค่านี้ควรจะน้อยกว่า {{ compared_value }}</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>ค่านี้ควรจะน้อยกว่าหรือเท่ากับ {{ compared_value }}</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>ค่านี้ไม่ควรเท่ากันกับ {{ compared_value }}</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>ค่านี้ไม่ควรเหมือนกันกับ {{ compared_value_type }} {{ compared_value }}</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>สัดส่วนของภาพใหญ่เกิน ({{ ratio }}) สัดส่วนใหญ่ที่สุดที่ใช้ได้คือ {{ max_ratio }}</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>สัดส่วนของภาพเล็กเกิน ({{ ratio }}) สัดส่วนเล็กที่สุดที่ใช้ได้คือ {{ min_ratio }}</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>รูปภาพเป็นจุตรัส ({{ width }}x{{ height }}px) ไม่อนุญาตภาพที่เป็นสี่เหลี่ยมจตุรัส</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>ภาพนี้เป็นแนวนอน ({{ width }}x{{ height }}px) ไม่อนุญาตภาพที่เป็นแนวนอน</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>ภาพนี้เป็นแนวตั้ง ({{ width }}x{{ height }}px) ไม่อนุญาตภาพที่เป็นแนวตั้ง</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>ไม่อนุญาตให้ใช้ไฟล์ว่าง</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>ไม่สามารถแก้ไขชื่อโฮสต์</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>ค่านี้ไม่ตรงกับการเข้ารหัส {{ charset }}</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>นี่ไม่ถูกต้องตามรหัสสำหรับระบุธุรกิจนี้ (BIC)</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>เกิดข้อผิดพลาด</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>นี่ไม่ใช่ UUID ที่ถูกต้อง</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>ค่านี้ควรเป็น {{ compared_value }} หลายตัว</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>รหัสสำหรับระบุธุรกิจนี้ (BIC) ไม่เกี่ยวข้องกับ IBAN {{ iban }}</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>ค่านี้ควรอยู่ในรูปแบบ JSON ที่ถูกต้อง</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>คอเล็กชั่นนี้ควรมีเฉพาะสมาชิกที่ไม่ซ้ำกันเท่านั้น</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>ค่านี้ควรเป็นค่าบวก</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>ค่านี้ควรเป็นค่าบวกหรือค่าศูนย์</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>ค่านี้ควรเป็นค่าลบ</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>ค่านี้ควรเป็นค่าลบหรือค่าศูนย์</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>ค่าเขตเวลาไม่ถูกต้อง</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>รหัสผ่านนี้ได้เคยรั่วไหลออกไปโดยถูกการละเมิดข้อมูล ซึ่งไม่ควรนำกลับมาใช้ กรุณาใช้รหัสผ่านอื่น</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>ค่านี้ควรอยู่ระหว่าง {{ min }} ถึง {{ max }}</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>ค่าโฮสต์เนมไม่ถูกต้อง</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>จำนวนของสมาชิกในคอเล็กชั่นควรเป็นพหุคูณของ {{ compared_value }}</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>ค่านี้ควรเป็นไปตามข้อจำกัดอย่างน้อยหนึ่งข้อจากข้อจำกัดเหล่านี้:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>สมาชิกแต่ละตัวในคอเล็กชั่นควรเป็นไปตามข้อจำกัดของคอเล็กชั่นนั้นๆ</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>ค่ารหัสหลักทรัพย์สากล (ISIN) ไม่ถูกต้อง</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>ค่านี้ควรเป็นนิพจน์ที่ถูกต้อง</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>ค่านี้ไม่ใช่สี CSS ที่ถูกต้อง</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>ค่านี้ไม่ใช่รูปแบบ CIDR ที่ถูกต้อง</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>ค่าของ netmask ควรมีค่าระหว่าง {{ min }} ถึง {{ max }}</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.tl.xlf 0000644 00000057241 15120140577 0014553 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Ang halaga nito ay dapat na huwad.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Ang halaga nito ay dapat totoo.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Ang halaga nito ay dapat sa uri {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Ang halaga nito ay dapat walang laman.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Ang halaga ng iyong pinili ay hindi balidong pagpili.</target> </trans-unit> <trans-unit id="6"> <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source> <target>Kailangan mong pumili ng pinakamababang {{ limit }} ng pagpilian.|Kailangan mong pumili ng pinakamababang {{ limit }} ng mga pagpipilian.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Kailangan mong pumili ng pinakamataas {{ limit }} ng pagpipilian.|Kailangan mong pumili ng pinakamataas {{ limit }} ng mga pagpipilian.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Isa o higit pang mga halaga na binigay ay hindi balido.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Ang larangang ito ay hindi inaasahan.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Ang patlang na ito ay nawawala.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Ang halagang ito ay hindi balidong petsa.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Ang halagang ito ay hindi wastong petsa/oras.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Ang halagang ito ay hindi balidong address ng email.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Ang file na ito ay hindi makita.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Ang file na ito ay hindi mabasa.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Ang file na ito ay masyadong malaki ({{ size }} {{ suffix }}). Ang pinakamalaking sukat {{ 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>Ang uri ng file ng mime ay hindi balido ({{ type }}). Ang mga pinapayagang uri ng mime ay ang {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Ang halaga nito ay dapat na {{ limit }} or maliit pa.</target> </trans-unit> <trans-unit id="19"> <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>Ang halaga nito ay masyadong mahaba. Ito ay dapat na {{ limit }} karakter o maliit pa.|Ang halaga nito ay masyadong mahaba. Ito ay dapat na {{ limit }} mga karakter o maliit pa.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <target>Ang halaga nito ay dapat na {{ limit }} o mas marami pa.</target> </trans-unit> <trans-unit id="21"> <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>Ang halaga nito ay masyadong maliit. Ito ay dapat na {{ limit }} karakter o marami pa.|Ang halaga nito ay masyadong maliit. Ito ay dapat na {{ limit }} mga karakter o marami pa.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Ang halaga na ito ay dapat na may laman.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Meron dapt itong halaga.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Wala dapat itong halaga.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Hindi balido ang halagang ito.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Ang halagang ito ay hindi wastong oras.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Hindi ito isang balidong URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Ang dalwang halaga ay dapat magkapareha.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Ang file ay masyadong malaki. Ang pinapayagan halaga lamang ay {{ limit}} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Ang file na ito ay masyadong malaki.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Ang file na ito ay hindi ma-upload.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Ang halaga nito ay dapat na wastong numero.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Ang file na ito ay hindi wastong imahe.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Ito ay hindi wastong IP address.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Ang halaga na ito ay hindi balidong wika.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Ito ay isang hindi wastong locale na halaga.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>ng halaga na ito ay hindi wastong bansa.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Ang halaga na ito ay ginamit na.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Ang sukat ng imahe ay hindi madetect.</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>Ang lapad ng imahe ay masyadong malaki ({{ width }}px). Ang pinapayagang lapay ay {{ 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>Ang lapad ng imahe ay masyadong maliit ({{ width }}px). Ang pinakamaliit na pinapayagang lapad ay {{ 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>Ang haba ng imahe ay masyadong mataas ({{ height }}px). Ang pinakmataas na haba ay {{ 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>Ang haba ng imahe ay masyadong maliit ({{ height }}px). Ang inaasahang haba ay {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Ang halagang ito ay dapat na password ng kasalukuyang gumagamit.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Ang halagang ito ay dapat na eksakto sa {{ limit}} karakter.|Ang halagang ito ay dapat na eksakto sa {{ limit }} mga karakter.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Ang file na ito ay kahalating na upload lamang.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Walang na upload na file.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Walang temporaryong folder ang naayos sa php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Temporaryong hindi makasulat ng file sa disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Ang dahilan ng pagkabigo ng pagupload ng files ay isang extension ng PHP.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Ang koleksyon na ito ay dapat magkaroon ng {{ limit }} elemento o marami pa.|Ang koleksyon na ito ay dapat magkaroon ng {{ limit }} mga elemento o marami pa.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Ang koleksyon na ito ay dapat magkaroon ng {{ limit }} elemento o maliit pa.|Ang koleksyon na ito ay dapat magkaroon ng {{ limit }} mga elemento o maliit pa.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Ang koleksyong ito ay magkaroon ng eksaktong {{ limit }} elemento.|Ang koleksyong ito ay magkaroon ng eksaktong {{ limit }} mga elemento.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Hindi wastong numero ng kard.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Hindi supportadong uri ng kard o hindi wastong numero ng kard.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Ito ay hindi isang balidong International Bank Account Number (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Ang halagang ito ay hindi balidong SBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Ang halagang ito ay hindi balidong ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Ang halagang ito ay pwdeng isang balidong ISBN-10 o isang balidong ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Ang halangang ito ay hindi isang balidong ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Ang halagang ito ay hindi balidong pera.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Ito ay hindi dapat magkapareho sa {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Ang halagang ito ay dapat tataas sa {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Ang halagang ito ay dapat mas mataas o magkapareha sa {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ang halagang ito ay dapat kapareha ng {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Ang halagang ito ay dapat mas maliit sa {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Ang halagang ito ay dapat mas maliit o magkapareha sa {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Ang halagang ito ay hindi dapat magkapareha sa {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ang halagang ito ay hindi dapat magkapareha sa {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Ang ratio ng imahe ay masyadong malaki ({{ ratio }}). Ang pinakamalaking ratio ay {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Ang ratio ng imahe ay masyadong maliit ({{ ratio }}). Ang pinakamaliit na ratio ay {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Ang imahe ay kwadrado ({{ width }}x{{ height }}px). Ang mga kwadradong imahe ay hindi pwede.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Ang orientasyon ng imahe ay nakalandscape ({{ width }}x{{ height }}px). Ang mga imaheng nakalandscape ang orientasyon ay hindi pwede.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Ang orientasyon ng imahe ay nakaportrait ({{ width }}x{{ height }}px). Ang mga imaheng nakaportrait ang orientasyon ay hindi pwede.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Ang file na walang laman ay hindi pwede.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Hindi maresolba ang host.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Ang halaga ay hindi kapareha sa inaasahang {{ charset }} set ng karater.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Ito ay hindi isang balidong Business Identifier Code (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Error</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Ito ay hindi wastong UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Ang halagang ito ay dapat multiple ng {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Ang Business Identifier Code (BIC) na ito ay walang kaugnayan sa IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Ang halagang ito ay dapat naka wastong JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Ang mga elemento ng koleksyong ito ay dapat magkakaiba.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Ang halagang ito ay dapat positibo.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Ang halagang ito ay dapat positibo o zero.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Ang halagang ito ay dapat negatibo.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Ang halagang ito ay dapat negatibo o zero.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Ang halagang ito ay hindi wastong timezone.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Naikalat ang password na ito sa isang data breach at hindi na dapat gamitin. Mangyaring gumamit ng ibang pang password.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Ang halagang ito ay dapat nasa pagitan ng {{ min }} at {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Ang halagang ito ay hindi wastong hostname.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Ang bilang ng mga elemento sa koleksyon na ito ay dapat multiple ng {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Ang halagang ito ay dapat masunod ang kahit na isang sumusunod na batayan.</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Ang bawat elemento sa koleksyon na ito ay dapat masunod ang nararapat na batayan.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Ang halagang ito ay hindi wastong International Securities Identification Number (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Ang halagang ito ay dapat wastong ekspresyon.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Ang halagang ito ay hindi wastong kulay ng CSS.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.tr.xlf 0000644 00000055535 15120140577 0014565 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Bu değer olumsuz olmalıdır.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Bu değer olumlu olmalıdır.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Bu değerin tipi {{ type }} olmalıdır.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Bu değer boş olmalıdır.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <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 }} 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 }} choice.|You must select at most {{ limit }} choices.</source> <target>En çok {{ limit }} seçenek belirtmelisiniz.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Verilen değerlerden bir veya daha fazlası geçersiz.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Bu alan beklenen olmadı.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Bu alan, eksik</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Bu değer doğru bir tarih biçimi değildir.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Bu değer doğru bir tarihsaat biçimi değildir.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Bu değer doğru bir e-mail adresi değildir.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Dosya bulunamadı.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Dosya okunabilir değil.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Dosya çok büyük ({{ size }} {{ suffix }}). İzin verilen en büyük dosya boyutu {{ 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>Dosyanın mime tipi geçersiz ({{ type }}). İzin verilen mime tipleri {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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 olmalıdır.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Bu değer boş bırakılmamalıdır.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Bu değer boş bırakılmamalıdır.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Bu değer boş bırakılmalıdır.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Bu değer geçerli değil.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Bu değer doğru bir saat değil.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Bu değer doğru bir URL değil.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>İki değer eşit olmalıdır.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Dosya çok büyük. İzin verilen en büyük dosya boyutu {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Dosya çok büyük.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Dosya yüklenemiyor.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Bu değer geçerli bir rakam olmalıdır.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Bu dosya geçerli bir resim değildir.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Bu geçerli bir IP adresi değildir.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Bu değer geçerli bir lisan değil.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Bu değer geçerli bir yer değildir.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Bu değer geçerli bir ülke değildir.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Bu değer şu anda kullanımda.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Resmin boyutu saptanamıyor.</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>Resmin genişliği çok büyük ({{ width }}px). İzin verilen en büyük genişlik {{ 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>Resmin genişliği çok küçük ({{ width }}px). En az {{ min_width }}px olmalıdır.</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>Resmin yüksekliği çok büyük ({{ height }}px). İzin verilen en büyük yükseklik {{ 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>Resmin yüksekliği çok küçük ({{ height }}px). En az {{ min_height }}px olmalıdır.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <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 }} 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"> <source>The file was only partially uploaded.</source> <target>Dosya sadece kısmen yüklendi.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Hiçbir dosya yüklenmedi.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>php.ini içerisinde geçici dizin tanımlanmadı.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Geçici dosya diske yazılamıyor.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <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 }} 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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Bu derlem {{ limit }} eleman içermelidir.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Geçersiz kart numarası.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Desteklenmeyen kart tipi veya geçersiz kart numarası.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Bu geçerli bir Uluslararası Banka Hesap Numarası (IBAN) değildir.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Bu değer geçerli bir ISBN-10 değildir.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Bu değer geçerli bir ISBN-13 değildir.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Bu değer geçerli bir ISBN-10 veya ISBN-13 değildir.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Bu değer geçerli bir ISSN değildir.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Bu değer geçerli bir para birimi değil.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Bu değer {{ compared_value }} ile eşit olmalıdır.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Bu değer {{ compared_value }} değerinden büyük olmalıdır.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Bu değer {{ compared_value }} ile eşit veya büyük olmalıdır.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Bu değer {{ compared_value_type }} {{ compared_value }} ile aynı olmalıdır.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Bu değer {{ compared_value }} değerinden düşük olmalıdır.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>.Bu değer {{ compared_value }} ile eşit veya düşük olmalıdır.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Bu değer {{ compared_value }} ile eşit olmamalıdır.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Bu değer {{ compared_value_type }} {{ compared_value }} ile aynı olmamalıdır.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Resim oranı çok büyük ({{ ratio }}). İzin verilen maksimum oran: {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Resim oranı çok ufak ({{ ratio }}). Beklenen minimum oran {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Resim karesi ({{ width }}x{{ height }}px). Kare resimlerine izin verilmiyor.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Resim manzara odaklı ({{ width }}x{{ height }}px). Manzara odaklı resimlere izin verilmiyor.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Resim portre odaklı ({{ width }}x{{ height }}px). Portre odaklı resimlere izin verilmiyor.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Boş bir dosyaya izin verilmiyor.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Sunucu çözülemedi.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Bu değer beklenen {{ charset }} karakter kümesiyle eşleşmiyor.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Bu geçerli bir İşletme Tanımlayıcı Kodu (BIC) değildir.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Hata</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Bu geçerli bir UUID değildir.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Bu değer {{ compare_value }} değerinin katlarından biri olmalıdır.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Bu İşletme Tanımlayıcı Kodu (BIC), IBAN {{ iban }} ile ilişkili değildir.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Bu değer için geçerli olmalıdır JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Bu grup yalnızca benzersiz öğeler içermelidir.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Bu değer pozitif olmalı.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Bu değer pozitif veya sıfır olmalıdır.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Bu değer negatif olmalıdır.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Bu değer, negatif veya sıfır olmalıdır.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Bu değer, geçerli bir saat dilimi değil.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Bu parola, bir veri ihlali nedeniyle sızdırılmıştır ve kullanılmamalıdır. Lütfen başka bir şifre kullanın.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Bu değer arasında olmalıdır {{ min }} ve {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Bu değer, geçerli bir ana bilgisayar adı değil.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Bu gruptaki öğe sayısı birden fazla olmalıdır {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Bu değer aşağıdaki kısıtlamalardan birini karşılamalıdır:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Bu gruptaki her öğe kendi kısıtlamalarını karşılamalıdır.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Bu değer geçerli bir Uluslararası Menkul Kıymetler Kimlik Numarası değil (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Bu değer geçerli bir ifade olmalıdır.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Bu değer geçerli bir CSS rengi değil.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Bu değer geçerli bir CIDR yazımı değil.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Netmask'in değeri {{ min }} ve {{ max }} arasında olmaldır.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.uk.xlf 0000644 00000066712 15120140577 0014556 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Значення повинно бути Ні.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Значення повинно бути Так.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Тип значення повинен бути {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Значення повинно бути пустим.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Обране вами значення недопустиме.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Ви повинні обрати не більше ніж {{ limit }} варіантів.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Одне або кілька заданих значень є недопустимі.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Це поле не очікується.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Це поле не вистачає.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Дане значення не є вірною датою.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Дане значення дати та часу недопустиме.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Значення адреси электронної пошти недопустиме.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Файл не знайдено.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Файл не читається.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Файл занадто великий ({{ size }} {{ suffix }}). Дозволений максимальний розмір {{ 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>MIME-тип файлу недопустимий ({{ type }}). Допустимі MIME-типи файлів {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Значення повинно бути {{ limit }} або менше.</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>Значення повинно бути {{ limit }} або більше.</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>Значення не повинно бути пустим.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Значення не повинно бути null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Значення повинно бути null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Значення недопустиме.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Значення часу недопустиме.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Значення URL недопустиме.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Обидва занчення повинні бути одинаковими.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Файл занадто великий. Максимальний допустимий розмір {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Файл занадто великий.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Файл не можливо завантажити.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Значення має бути допустимим числом.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Цей файл не є допустимим форматом зображення.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Це некоректна IP адреса.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Це некоректна мова.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Це некоректна локалізація.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Це некоректна країна.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Це значення вже використовується.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Не вдалося визначити розмір зображення.</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>Ширина зображення занадто велика ({{ width }}px). Максимально допустима ширина {{ 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>Ширина зображення занадто мала ({{ width }}px). Мінімально допустима ширина {{ 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>Висота зображення занадто велика ({{ height }}px). Максимально допустима висота {{ 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>Висота зображення занадто мала ({{ height }}px). Мінімально допустима висота {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Значення має бути поточним паролем користувача.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Файл був завантажений лише частково.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Файл не був завантажений.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Не налаштована тимчасова директорія в php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Неможливо записати тимчасовий файл на диск.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Розширення PHP викликало помилку при завантаженні.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Ця колекція повинна містити рівно {{ limit }} елемент.|Ця колекція повинна містити рівно {{ limit }} елемента.|Ця колекція повинна містити рівно {{ limit }} елементів.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Невірний номер карти.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Непідтримуваний тип карти або невірний номер карти.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Це не дійсний міжнародний номер банківського рахунку (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Значення не у форматі ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Значення не у форматі ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Значення не відповідає форматам ISBN-10 та ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Значення має невірний формат ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Значення має невірний формат валюти.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Значення повинно дорівнювати {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Значення має бути більше ніж {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Значення має бути більше або дорівнювати {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Значення має бути ідентичним {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Значення повинно бути менше ніж {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Значення повинно бути менше або дорівнювати {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Значення не повинно дорівнювати {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Значення не повинно бути ідентичним {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Співвідношення сторін зображення занадто велике ({{ ratio }}). Максимальне співвідношення сторін {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Співвідношення сторін зображення занадто мало ({{ ratio }}). Мінімальне співвідношення сторін {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Зображення квадратне ({{ width }}x{{ height }}px). Квадратні зображення не дозволені.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Зображення альбомної орієнтації ({{ width }}x{{ height }}px). Зображення альбомної орієнтації не дозволені.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Зображення в портретній орієнтації ({{ width }}x{{ height }}px). Зображення в портретної орієнтації не дозволені.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Порожні файли не дозволені.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Ім'я хоста не знайдено.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Значення не збігається з очікуваним {{ charset }} кодуванням.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Це не дійсний банківський код (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Помилка</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Це не валідне значення UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Це значення повинне бути кратним {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Банківський код (BIC) не пов’язаний із міжнародним номером банківського рахунку (IBAN) {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Значення має бути корректним JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Ця колекція повинна мати тільки унікальни значення.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Значення має бути позитивним.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Значення має бути позитивним або дорівнювати нулю.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Значення має бути негативним.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Значення має бути негативним або дорівнювати нулю.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Значення не є дійсним часовим поясом.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Цей пароль був скомпрометований в результаті витоку даних та не повинен використовуватися. Будь ласка, використовуйте інший пароль.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Значення має бути між {{ min }} та {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Значення не є дійсним іменем хоста.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Кількість елементів у цій колекції повинна бути кратною {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Значення повинно задовольняти хоча б одному з наступних обмежень:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Кожен елемент цієї колекції повинен задовольняти власному набору обмежень.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Це значення не є дійсним міжнародним ідентифікаційним номером цінних паперів (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Це значення має бути дійсним виразом.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Це значення не є дійсним CSS кольором.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Це значення не є дійсною CIDR нотаціею.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Значення в мережевій масці має бути між {{ min }} та {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.ur.xlf 0000644 00000063515 15120140577 0014563 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="ur" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>یہ ويليو غلط ہونی چاہیے</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>یہ ويليو درست ہونی چاہیے</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>قسم کی ہونی چاہیے {{type}} يھ ويليو</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>یہ ويليو خالی ہونی چاہیے</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>آپ نے جو ويليو منتخب کی ہے وہ درست انتخاب نہیں ہے</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>کا انتخاب کرنا چاہیے {{limit}} کا انتخاب کرنا چاہیے ۔آّپ کو ذيادھ سے ذيادھ {{limit}} آپ کو ذيادھ سے ذيادھ</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>دی گئی ويليوذ میں سے ایک یا زیادھ ويليوذ غلط ہیں</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>اس فیلڈ کی توقع نہیں تھی</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>یہ فیلڈ غائب ہے</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>یہ ويليو درست تاریخ نہیں ہے</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>یہ ويليو درست تاریخ وقت نہیں ہے</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>یہ ويليو درست ای میل ایڈریس نہیں ہے</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>فائل نہیں مل سکی</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>فائل پڑھنے کے قابل نہیں ہے</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>{{ suffix }} {{ limit }} زیادہ سے زیادہ سائز کی اجازت ہے {{ suffix }}) ({{ size }} فائل بہت بڑی ہے</target> </trans-unit> <trans-unit id="17"> <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source> <target>ہیں {{ types }} مائیم کی قسمیں ({{ type }}) فائل کی ماۂيم قسم غلط ہے</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>یا اس سے کم ہونی چاہیے {{ limit }} یہ ويليو</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>یا اس سے زیادہ ہونی چاہیے {{ limit }} یہ ويليو</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>یہ ويليو خالی نہیں ہونی چاہیے</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>یہ ويليو خالی نہیں ہونی چاہیے</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>یہ ويليو خالی ہونی چاہیے</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>یہ ويليو درست نہیں ہے</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>یہ ويليو درست وقت نہیں ہے</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>نہیں ہے URL یہ ويليو درست</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>دونوں ويليوذ برابر ہونی چاہئیں</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>{{ suffix }} {{ limit }} فائل بہت بڑی ہے۔ زیادہ سے زیادہ سائز کی اجازت ہے</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>فائل بہت بڑی ہے</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>فائل اپ لوڈ نہیں ہو سکی</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>یہ ويليو ایک درست نمبر ہونی چاہیے</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>یہ فائل درست تصویر نہیں ہے</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>ایڈریس نہیں ہے IP یہ ایک درست</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>یہ ويليو درست زبان نہیں ہے</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>یہ ويليو درست مقام نہیں ہے</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>یہ ويليو ایک درست ملک نہیں ہے</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>یہ ويليو پہلے ہی استعمال ہو چکی ہے</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>تصویر کے سائز کا پتہ نہیں چل سکا</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>ہے {{ max_width }}px اجازت دی گئی زیادہ سے زیاد چوڑائی ({{ 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>ہے {{ min_width }}px کم از کم چوڑائی متوقع({{ 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>ہے {{ max_height }}px اجازت دی گئی زیادہ سے زیاد اونچائی ({{ 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>ہے {{ min_height }}px متوقع کم از کم اونچائی ({{ height }}px) تصویر کی اونچائی بہت چھوٹی ہے</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>یہ ويليو صارف کا موجودہ پاس ورڈ ہونا چاہیے</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>فائل صرف جزوی طور پر اپ لوڈ کی گئی تھی</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>کوئی فائل اپ لوڈ نہیں کی گئی</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>میں کوئی عارضی فولڈر کنفیگر نہیں کیا گیا، یا کنفیگرڈ فولڈر موجود نہیں ہے php.ini</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>عارضی فائل کو ڈسک پر نہیں لکھا جا سکتا</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>پی ایچ پی کی توسیع کی وجہ سے اپ لوڈ ناکام ہو گیا</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>عنصر ہونا چاہیے {{ limit }} عنصر ہونا چاہیے۔|اس مجموعے میں بالکل {{ limit }} اس مجموعہ میں بالکل</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>غلط کارڈ نمبر</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>غیر تعاون یافتہ کارڈ کی قسم یا غلط کارڈ نمبر</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>(IBAN)یہ ایک درست بین الاقوامی بینک اکاؤنٹ نمبر نہیں ہے</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>نہیں ہے ISBN-10 یھ ويليو درست۔</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>نہیں ہے ISBN-13 یھ ويليو درست۔</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>ISBN-13 ے اور نہ ہی درست ISBN-10 یہ ويليو نہ تو درست</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>نہیں ہے ISSNیھ ويليو درست۔</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>یہ ويليو درست کرنسی نہیں ہے</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>کے برابر ہونا چاہیے {{ compared_value }} یھ ويليو</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>سے بڈي ہوني چاہیے {{ compared_value }} یھ ويليو</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>سے بڈي یا برابر ہوني چاہیے {{ compared_value }} یھ ويليو</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>{{ compared_value }} {{ compared_value_type }} یہ ويليو ایک جیسی ہونی چاہیے۔</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>سے کم ہوني چاہیے {{ compared_value }} یھ ويليو</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>سے کم یا برابر ہوني چاہیے {{ compared_value }} یھ ويليو</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>کے برابر نھيں ہوني چاہیے {{ compared_value }} یھ ويليو</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>ایک جیسی نیيں ہونی چاہیے {{ compared_value }} {{ compared_value_type }} یہ ويليو</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>ہے {{ max_ratio }} اجازت شدہ زیادہ سے زیادہ تناسب ({{ ratio }}) تصویر کا تناسب بہت بڑا ہے</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>ہے{{ min_ratio }} ratio متوقع کم از کم ({{ ratio }}) بہت چھوٹا ہے ratio تصویر کا</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>مربع تصاویر کی اجازت نہیں ہے (px{{ height }}x{{ width }}) تصویر مربع ہے</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>زمین کی تزئین پر مبنی تصاویر کی اجازت نہیں ہے ({{ width }}x{{ height }}px) تصویر زمین کی تزئین پر مبنی ہے</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>پورٹریٹ پر مبنی تصاویر کی اجازت نہیں ہے ({{ width }}x{{ height }}px) تصویر پورٹریٹ پر مبنی ہے</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>خالی فائل کی اجازت نہیں ہے</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>میزبان حل نہیں ہو سکا</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>کے جيسي نہیں ہے charset {{ charset }} یہ ويليو متوقع</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>(BIC)یہ ایک درست کاروباری شناخت کنندہ کوڈ نہیں ہے</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>خرابی</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>نہیں ہے UUID یہ درست</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>کا ضرب ہوني چاہیے {{ compared_value }} یہ ويليو </target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>سے وابستہ نہیں ہے IBAN {{ iban }} (BIC) یہ کاروباری شناختی کوڈ</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>ہونی چاہیے JSON یہ ويليو درست</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>یہ مجموعہ صرف منفرد عناصر پر مشتمل ہونا چاہیے</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>یہ ويليو مثبت ہونی چاہیے</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>یہ ويليو یا تو مثبت یا صفر ہونی چاہیے</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>یہ ويليو منفی ہونی چاہیے</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>یہ ويليو یا تو منفی یا صفر ہونی چاہیے</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>یہ ويليو درست ٹائم زون نہیں ہے</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>یہ پاس ورڈ ڈیٹا کی خلاف ورزی میں لیک ہو گیا ہے، اسے استعمال نہیں کرنا چاہیے۔ براۓ کرم دوسرا پاس ورڈ استعمال کریں</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>کے درمیان ہونی چاہیے {{ max }} اور {{ min }} یہ ويليو</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>نہیں ہے hostname یہ ويليو درست</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>کی ضرب ہونی چاہیے {{ compared_value }} اس مجموعہ میں عناصر کی تعداد</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>اس ويليو کو درج ذیل رکاوٹوں میں سے کم از کم ایک کو پورا کرنا چاہیے</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>اس مجموعے کے ہر عنصر کو اپنی پابندیوں کے سیٹ کو پورا کرنا چاہیے</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>نہیں ہے (ISIN) یہ ويليو درست بین الاقوامی سیکیورٹیز شناختی نمبر</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>یہ ويليو ایک درست اظہار ہوني چاہیے</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>رنگ نہیں ہے CSS یہ ويليو درست</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>نوٹیشن نہیں ہے CIDR یہ ويليو ایک درست</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>کے درمیان ہونی چاہیے {{ max }} اور {{ min }} نیٹ ماسک کی ويليو</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.uz.xlf 0000644 00000056164 15120140577 0014575 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Qiymat noto'g'ri bo'lishi kerak.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Qiymat to'g'ri bo'lishi kerak.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Qiymat turi {{ type }} bo'lishi kerak.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Qiymat bo'sh bo'lishi kerak.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Tanlangan qiymat to'g'ri emas.</target> </trans-unit> <trans-unit id="6"> <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source> <target>Siz hech bo'lmaganda {{ limit }} ta qiymat tanlashingiz kerak.|Siz kamida {{ limit }} ta qiymat tanlashingiz kerak.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Siz {{ limit }} ta qiymatni tanlashingiz kerak.|Siz {{ limit }} dan ortiq qiymat tanlashingiz kerak.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Belgilangan qiymatlarning bir yoki bir nechtasi noto'g'ri.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Ushbu maydon kutilmagan edi.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Bu maydon majvud emas.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Ushbu sana noto'g'ri.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Sana va vaqt qiymati noto'g'ri.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Elektron pochta manzili noto'g'ri.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Fayl topilmadi.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Faylni o'qib bo'lmadi.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fayl hajmi katta ({{ size }} {{ suffix }}). Maksimal ruxsat etilgan hajim {{ 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>Faylning MIME turi noto'g'ri ({{ type }}). Ruxsat etilgan MIME turlar {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Qiymat {{ limit }} ga teng yoki kam bo'lishi kerak.</target> </trans-unit> <trans-unit id="19"> <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>Qiymat juda uzun. {{ limit }} ga teng yoki kam bo'lishi kerak.|Qiymat juda uzun. {{ limit }} yoki undan kam belgidan iborat bo'lishi kerak.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <target>Qiymat {{ limit }} yoki undan ortiq bo'lishi kerak.</target> </trans-unit> <trans-unit id="21"> <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>Qiymat juda qisqa. {{ limit }} ta yoki undan ortiq belgidan iborat bo'lishi kerak.|Qiymat juda qisqa. {{ limit }} yoki undan ko'p belgidan iborat bo'lishi kerak</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Qiymatni bo'sh kirtish mumkin emas.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Qiymat null bo'lmasligi kerak.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Qiymat null bo'lishi kerak.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Qiymat noto'g'ri.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Vaqt noto'g'ri.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>URL noto'g'ri</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Ikkala qiymat ham bir xil bo'lishi kerak.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fayl hajmi katta. Maksimal ruxsat berilgan hajim {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Fayl hajmi katta.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Faylni yuklab bo'lmadi.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Qiymat raqam bo'lishi kerak.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Fayl yaroqli rasm formati emas.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Ip manzil noto'g'ri.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Noto'g'ri til.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Ushbu qiymat mahalliy qiymat emas.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Mamlakat qiymati noto'g'ri.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Ushbu qiymat allaqachon ishlatilgan.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Rasm o'lchamini aniqlab bo'lmadi.</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>Rasm kengligi juda katta ({{ width }}px). Maksimal ruxsat etilgan kenglik {{ 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>Rasm kengligi juda kichkina ({{ width }}px). Minimal ruxsat etilgan kenglik {{ 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>Rasm bo'yi juda katta ({{ height }}px). Maksimal ruxsat etilgan balandlik {{ 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>Rasm bo'yi juda kichkina ({{ height }}px). Minimal ruxsat etilgan balandlik {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Qiymat joriy foydalanuvchi paroli bo'lishi kerak.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Qiymat {{ limit }} ta belgidan iborat bo'lishi kerak.|Qiymat {{ limit }} belgidan iborat bo'lishi kerak.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Fayl faqat qisman yuklangan.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Fayl yuklanmagan.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>php.ini da vaqtinchalik katalog sozlanmagan.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Diskka vaqtinchalik faylni yozib bo'lmadi.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP kengaytmasi yuklash paytida xatolik yuz berdi.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Ushbu to'plam {{ limit }} ta yoki undan ko'p narsalarni o'z ichiga olishi kerak.|Ushbu to'plam {{ limit }} yoki undan ortiq narsalarni o'z ichiga olishi kerak.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Ushbu to'plam {{ limit }} ta yoki undan kam narsalarni o'z ichiga olishi kerak.|Ushbu to'plamda {{ limit }} yoki undan kam element bo'lishi kerak.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Ushbu to'plam to'liq {{ limit }} narsani o'z ichiga olishi kerak.|Ushbu to'plamda to'liq {{ limit }} ta ma'lumotlar bo'lishi kerak.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Kata raqami noto'g'ri.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Qo'llab-quvvatlanmaydigan karta turi yoki yaroqsiz karta raqami.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Qiymat haqiqiy xalqaro hisob raqamining raqami (IBAN) emas.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Qiymat to'g'ri ISBN-10 formatida emas.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Qiymat to'g'ri ISBN-13 formatida emas.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Qiymat ISBN-10 va ISBN-13 formatlariga mos kelmaydi.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Qiymat ISSN formatiga mos kelmaydi.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Noto'g'ri valyuta formati.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Qiymat {{ compared_value }} ga teng bo'lishi shart.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Qiymat {{ compared_value }} dan katta bo'lishi shart.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Qiymat {{ compared_value }} dan katta yoki teng bo'lishi shart.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Значение должно быть идентичным {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Qiymat bir xil bo'lishi kerak {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Qiymat {{ compared_value }} dan kichik yoki teng bo'lishi shart.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Qiymat {{ compared_value }} ga teng bo'lmasligi kerak.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Qiymat bir xil bo'lishi kerak emas {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Rasmning tomonlari nisbati juda katta ({{ ratio }}). Maksimal tomonlar nisbati {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Rasmning format nisbati juda kichik ({{ ratio }}). Minimal tomonlar nisbati {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Rasm kvadrat shaklida ({{ width }}x{{ height }}px). Kvadrat shaklida tasvirlarga ruxsat berilmaydi.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Landshaft tasvir ({{ width }}x{{ height }}px). Landshaft rasmlarga ruxsat berilmaydi.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Portret rasm ({{ width }}x{{ height }}px). Portretlarga ruxsat berilmaydi.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Bo'sh fayllarga ruxsat berilmagan.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Xost nomini nomiga ruxsat berilmagan.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Qiymat kutilgan {{ charset }} kodlashiga mos kelmaydi.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Qiymat BIC formatida emas.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Xatolik</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Qiymat UUID formatida emas.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Qiymat {{ compared_value }} ning ko'paytmasi bo'lishi kerak.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Ushbu BIC IBAN {{ iban }} bilan bog'liq emas..</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Qiymat to'g'ri JSON bo'lishi kerak.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Ushbu kolleksiyada takroriy elementlar bo'lmasligi kerak.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Qiymat musbat bo'lishi kerak.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Qiymat musbat yoki 0 ga teng bo'lishi kerak.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Qiymat manfiy bo'lishi kerak.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Qiymat manfiy yoki 0 ga teng bo'lishi kerak.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Qiymat to'g'ri vaqt zonasi emas.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Ushbu parol ma'lumotlarning tarqalishi tufayli buzilgan va uni ishlatmaslik kerak. Boshqa paroldan foydalaning.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Qiymat {{ min }} va {{ max }} oralig'ida bo'lishi shart.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Qiymat to'g'ri xost nomi emas.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Ushbu to'plamdagi narsalar soni {{ compared_value }} dan ko'p bo'lishi kerak.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Qiymat quyidagi cheklovlardan kamida bittasiga javob berishi kerak:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Ushbu to'plamdagi har bir narsa o'ziga xos cheklovlarni qondirishi kerak.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Qiymat Qimmatli qog'ozlarning xalqaro identifikatsiya raqami (ISIN) ga mos emas.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Ushbu qiymat to'g'ri ifoda bo'lishi kerak.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Bu qiymat haqiqiy CSS rangi emas.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Qiymat CIDR belgisiga mos kelmaydi.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Tarmoq niqobining qiymati {{ min }} va {{ max }} oralig'ida bo'lishi kerak.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.vi.xlf 0000644 00000060557 15120140577 0014556 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Giá trị này phải là sai.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Giá trị này phải là đúng.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Giá trị này phải là kiểu {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Giá trị này phải rỗng.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Giá trị bạn vừa chọn không hợp lệ.</target> </trans-unit> <trans-unit id="6"> <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source> <target>Bạn phải chọn ít nhất {{ limit }} lựa chọn.|Bạn phải chọn ít nhất {{ limit }} lựa chọn.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Bạn phải chọn nhiều nhất {{ limit }} lựa chọn.|Bạn phải chọn nhiều nhất {{ limit }} lựa chọn.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Một hoặc nhiều giá trị được chọn không hợp lệ.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Lĩnh vực này không được dự kiến.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Lĩnh vực này bị thiếu.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Giá trị không phải là ngày hợp lệ.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Giá trị không phải là ngày tháng hợp lệ.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Giá trị này không phải là email hợp lệ.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Tập tin không tìm thấy.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Tập tin không thể đọc được.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Tập tin quá lớn ({{ size }} {{ suffix }}). Kích thước tối đa cho phép {{ 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>Kiểu mime của tập tin không hợp lệ ({{ type }}). Kiểu hợp lệ là {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Giá trị phải bằng hoặc nhỏ hơn {{ limit }}.</target> </trans-unit> <trans-unit id="19"> <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>Giá trị quá dài. Phải bằng hoặc ít hơn {{ limit }} kí tự.|Giá trị quá dài. Phải bằng hoặc ít hơn {{ limit }} kí tự.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <target>Giá trị phải lớn hơn hoặc bằng {{ limit }}.</target> </trans-unit> <trans-unit id="21"> <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>Giá trị quá ngắn. Phải hơn hoặc bằng {{ limit }} kí tự.|Giá trị quá ngắn. Phải hơn hoặc bằng {{ limit }} kí tự.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Giá trị không được phép để trống.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Giá trị không được phép rỗng.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Giá trị phải rỗng.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Giá trị không hợp lệ.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Giá trị không phải là thời gian hợp lệ.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Giá trị không phải là địa chỉ URL hợp lệ.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Hai giá trị phải bằng nhau.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Tập tin quá lớn. Kích thước tối đa cho phép là {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Tập tin quá lớn.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Tập tin không thể tải lên.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Giá trị phải là con số.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Tập tin không phải là hình ảnh hợp lệ.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Địa chỉ IP không hợp lệ.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Giá trị không phải là ngôn ngữ hợp lệ.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Giá trị không phải là một bản địa địa phương hợp lệ.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Giá trị không phải là quốc gia hợp lệ.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Giá trị đã được sử dụng.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Kích thước của hình ảnh không thể xác định.</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>Chiều rộng của hình quá lớn ({{ width }}px). Chiều rộng tối đa phải là {{ 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>Chiều rộng của hình quá thấp ({{ width }}px). Chiều rộng tối thiểu phải là {{ 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>Chiều cao của hình quá cao ({{ height }}px). Chiều cao tối đa phải là {{ 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>Chiều cao của hình quá thấp ({{ height }}px). Chiều cao tối thiểu phải là {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Giá trị này phải là mật khẩu hiện tại của người dùng.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Giá trị này phải có chính xác {{ limit }} kí tự.|Giá trị này phải có chính xác {{ limit }} kí tự.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Tập tin chỉ được tải lên một phần.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Tập tin không được tải lên.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Thư mục tạm không được định nghĩa trong php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Không thể ghi tập tin tạm ra đĩa.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Một PHP extension đã phá hỏng quá trình tải lên của tập tin.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Danh sách phải chứa {{ limit }} thành phần hoặc nhiều hơn.|Danh sách phải chứa {{ limit }} thành phần hoặc nhiều hơn.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Danh sách phải chứa {{ limit }} thành phần hoặc ít hơn.|Danh sách phải chứa {{ limit }} thành phần hoặc ít hơn.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Danh sách phải chứa chính xác {{ limit }} thành phần.|Danh sách phải chứa chính xác {{ limit }} thành phần.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Số thẻ không hợp lệ.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Thẻ không được hỗ trợ hoặc số thẻ không hợp lệ.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Giá trị không phải là International Bank Account Number (IBAN) hợp lệ.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Giá trị không phải là ISBN-10 hợp lệ.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Giá trị không phải là ISBN-13 hợp lệ.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Giá trị không phải là ISBN-10 hoặc ISBN-13 hợp lệ.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Giá trị không phải là ISSN hợp lệ.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Giá trị không phải là đơn vị tiền tệ hợp lệ.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Giá trị phải bằng {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Giá trị phải lớn hơn {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Giá trị phải lớn hơn hoặc bằng {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Giá trị phải giống {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Giá trị phải bé hơn {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Giá trị phải nhỏ hơn hoặc bằng {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Giá trị không được phép bằng {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Giá trị không được phép giống như {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Tỷ lệ bức ảnh quá lớn ({{ ratio }}). Tỷ lệ tối đa cho phép là {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Tỷ lệ bức ảnh quá nhỏ ({{ ratio }}). Tỷ lệ tối thiểu mong muốn là {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Bức ảnh là hình vuông ({{ width }}x{{ height }}px). Ảnh hình vuông không được phép.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Bức ảnh theo chiều ngang ({{ width }}x{{ height }}px). Ảnh chiều ngang không được phép.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Bức ảnh theo chiều dọc ({{ width }}x{{ height }}px). Ảnh chiều dọc không được phép.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Một file rỗng không được phép.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Máy chủ không thể được tìm thấy.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Giá trị này không đúng định dạng bộ ký tự mong muốn {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Giá trị này không đúng định dạng mã định danh doanh nghiệp (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Lỗi</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Giá trị này không đúng định dạng UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Giá trị này nên là bội số của {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Mã định danh doanh nghiệp (BIC) này không liên kết với IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Giá trị này nên đúng định dạng JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Danh sách này chỉ nên chứa các phần tử khác nhau.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Giá trị này có thể thực hiện được.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Giá trị này có thể thực hiện được hoặc bằng không.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Giá trị này nên bị từ chối.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Giá trị này nên bị từ chối hoặc bằng không.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Giá trị này không phải là múi giờ hợp lệ.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Mật khẩu này đã bị rò rỉ dữ liệu, không được sử dụng nữa. Xin vui lòng sử dụng mật khẩu khác.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Giá trị này nên thuộc giữa {{ min }} và {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Giá trị này không phải là tên máy chủ hợp lệ.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Số lượng các phần tử trong bộ sưu tập này nên là bội số của {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Giá trị này nên thỏa mãn ít nhất một trong những ràng buộc sau:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Mỗi phần tử trong bộ sưu tập này nên thỏa mãn những ràng buộc của nó.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Giá trị này không phải là mã số chứng khoán quốc tế (ISIN) hợp lệ.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Giá trị này phải là một biểu thức hợp lệ.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Giá trị này không phải là màu CSS hợp lệ.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Giá trị này không phải là ký hiệu CIDR hợp lệ.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Giá trị của mặt nạ mạng phải nằm trong khoảng từ {{ min }} đến {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.zh_CN.xlf 0000644 00000054311 15120140577 0015130 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>该变量的值应为 false 。</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>该变量的值应为 true 。</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>该变量的类型应为 {{ type }} 。</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>该变量值应为空。</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>选定变量的值不是有效的选项。</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>您最多能选择 {{ limit }} 个选项。</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>一个或者多个给定的值无效。</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>此字段是多余的。</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>此字段缺失。</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>该值不是一个有效的日期(date)。</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>该值不是一个有效的日期时间(datetime)。</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>该值不是一个有效的邮件地址。</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>文件未找到。</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>文件不可读。</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>文件太大 ({{ size }} {{ suffix }})。文件大小不可以超过 {{ 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>无效的文件类型 ({{ type }}) 。允许的文件类型有 {{ types }} 。</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>这个变量的值应该小于或等于 {{ limit }}。</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>该变量的值应该大于或等于 {{ limit }}。</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>该变量不应为空。</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>该变量不应为 null 。</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>该变量应为空 null 。</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>该变量值无效 。</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>该值不是一个有效的时间。</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>该值不是一个有效的 URL 。</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>这两个变量的值应该相等。</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>文件太大,文件大小不可以超过 {{ limit }} {{ suffix }}。 </target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>文件太大。</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>无法上传此文件。</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>该值应该为有效的数字。</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>该文件不是有效的图片。</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>该值不是有效的IP地址。</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>该值不是有效的语言名。</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>该值不是有效的区域值(locale)。</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>该值不是有效的国家名。</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>该值已经被使用。</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>不能解析图片大小。</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>图片太宽 ({{ width }}px),最大宽度为 {{ 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>图片宽度不够 ({{ width }}px),最小宽度为 {{ 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>图片太高 ({{ height }}px),最大高度为 {{ 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>图片高度不够 ({{ height }}px),最小高度为 {{ min_height }}px 。</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>该变量的值应为用户当前的密码。</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>该文件的上传不完整。</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>没有上传任何文件。</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>php.ini 里没有配置临时文件目录。</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>临时文件写入磁盘失败。</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>某个 PHP 扩展造成上传失败。</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>该集合应包含 {{ limit }} 个元素 element 。</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>无效的信用卡号。</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>不支持的信用卡类型或无效的信用卡号。</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>该值不是有效的国际银行帐号(IBAN)。</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>该值不是有效的10位国际标准书号(ISBN-10)。</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>该值不是有效的13位国际标准书号(ISBN-13)。</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>该值不是有效的国际标准书号(ISBN-10 或 ISBN-13)。</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>该值不是有效的国际标准期刊号(ISSN)。</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>该值不是有效的货币名(currency)。</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>该值应等于 {{ compared_value }} 。</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>该值应大于 {{ compared_value }} 。</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>该值应大于或等于 {{ compared_value }} 。</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>该值应与 {{ compared_value_type }} {{ compared_value }} 相同。</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>该值应小于 {{ compared_value }} 。</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>该值应小于或等于 {{ compared_value }} 。</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>该值不应先等于 {{ compared_value }} 。</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>该值不应与 {{ compared_value_type }} {{ compared_value }} 相同。</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>图片宽高比太大 ({{ ratio }})。允许的最大宽高比为 {{ max_ratio }}。</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>图片宽高比太小 ({{ ratio }})。允许的最大宽高比为 {{ min_ratio }}。</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>图片是方形的 ({{ width }}x{{ height }}px)。不允许使用方形的图片。</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>图片是横向的 ({{ width }}x{{ height }}px)。不允许使用横向的图片。</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>图片是纵向的 ({{ width }}x{{ height }}px)。不允许使用纵向的图片。</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>不允许使用空文件。</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>主机名无法解析。</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>该值不符合 {{ charset }} 编码。</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>这不是有效的业务标识符代码(BIC)。</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>错误</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>这不是有效的UUID。</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>此值应为 {{ compared_value }} 的倍数。</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>此业务标识符代码(BIC)与IBAN {{ iban }} 无关。</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>该值应该是有效的JSON。</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>该集合应仅包含独一无二的元素。</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>数值应为正数。</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>数值应是正数,或为零。</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>数值应为负数。</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>数值应是负数,或为零。</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>无效时区。</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>此密码已被泄露,切勿使用。请更换密码。</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>该数值应在 {{ min }} 和 {{ max }} 之间。</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>该值不是有效的主机名称。</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>该集合内的元素数量得是 {{ compared_value }} 的倍数。</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>该值需符合以下其中一个约束:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>该集合内的每个元素需符合元素本身规定的约束。</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>该值不是有效的国际证券识别码 (ISIN)。</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>该值需为一个有效的表达式。</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>该值不是有效的CSS颜色。</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>该值不是一个有效的CIDR表示。</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>网络掩码的值应当在 {{ min }} 和 {{ max }} 之间。</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.zh_TW.xlf 0000644 00000054250 15120140577 0015164 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>該變數的值應為 false 。</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>該變數的值應為 true 。</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>該變數的類型應為 {{ type }} 。</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>該變數應為空。</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>選定變數的值不是有效的選項。</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>您最多能選擇 {{ limit }} 個選項。</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>一個或者多個給定的值無效。</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>此字段是沒有預料到。</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>此字段缺失。</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>該值不是一個有效的日期(date)。</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>該值不是一個有效的日期時間(datetime)。</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>該值不是一個有效的郵件地址。</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>找不到檔案。</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>無法讀取檔案。</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>檔案太大 ({{ size }} {{ suffix }})。檔案大小不可以超過 {{ 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>無效的檔案類型 ({{ type }}) 。允許的檔案類型有 {{ types }} 。</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>這個變數的值應該小於或等於 {{ limit }}。</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>該變數的值應該大於或等於 {{ limit }}。</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>該變數不應為空白。</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>該值不應為 null 。</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>該值應為 null 。</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>無效的數值 。</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>該值不是一個有效的時間。</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>該值不是一個有效的 URL 。</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>這兩個變數的值應該相等。</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>檔案太大,檔案大小不可以超過 {{ limit }} {{ suffix }}。 </target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>檔案太大。</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>無法上傳此檔案。</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>該值應該為有效的數字。</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>該檔案不是有效的圖片。</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>該值不是有效的IP地址。</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>該值不是有效的語言名。</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>該值不是有效的區域值(locale)。</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>該值不是有效的國家名。</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>該值已經被使用。</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>不能解析圖片大小。</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>圖片太寬 ({{ width }}px),最大寬度為 {{ 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>圖片寬度不夠 ({{ width }}px),最小寬度為 {{ 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>圖片太高 ({{ height }}px),最大高度為 {{ 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>圖片高度不夠 ({{ height }}px),最小高度為 {{ min_height }}px 。</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>該變數的值應為用戶目前的密碼。</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>該檔案的上傳不完整。</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>沒有上傳任何檔案。</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>php.ini 裡沒有配置臨時目錄。</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>暫存檔寫入磁碟失敗。</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>某個 PHP 擴展造成上傳失敗。</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>該集合應包含 {{ limit }} 個元素 element 。</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>無效的信用卡號。</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>不支援的信用卡類型或無效的信用卡號。</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>該值不是有效的國際銀行帳號(IBAN)。</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>該值不是有效的10位國際標準書號(ISBN-10)。</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>該值不是有效的13位國際標準書號(ISBN-13)。</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>該值不是有效的國際標準書號(ISBN-10 或 ISBN-13)。</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>該值不是有效的國際標準期刊號(ISSN)。</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>該值不是有效的貨幣名(currency)。</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>該值應等於 {{ compared_value }} 。</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>該值應大於 {{ compared_value }} 。</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>該值應大於或等於 {{ compared_value }} 。</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>該值應與 {{ compared_value_type }} {{ compared_value }} 相同。</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>該值應小於 {{ compared_value }} 。</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>該值應小於或等於 {{ compared_value }} 。</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>該值應不等於 {{ compared_value }} 。</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>該值不應與 {{ compared_value_type }} {{ compared_value }} 相同。</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>圖像格式過大 ({{ ratio }})。 最大允許尺寸 {{ max_ratio }}。</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>圖像格式過小 ({{ ratio }})。最小尺寸 {{ min_ratio }}。</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>方形圖像 ({{ width }}x{{ height }}px)。不接受方形圖像。</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>紀念冊布局圖像 ({{ width }}x{{ height }}px)。 不接受紀念冊布局圖像。</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>書籍布局圖像 ({{ width }}x{{ height }}px)。不接受圖像書籍布局。</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>不接受空白文件。</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>未找到服務器。</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>該數值不符合預期 {{ charset }} 符號編碼。</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>無效企業識別碼 (BIC)。</target> </trans-unit> <trans-unit id="82"> <source>Error.</source> <target>錯誤。</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>無效的通用唯壹標識符 (UUID)。</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>該值必須是倍數 {{ compared_value }}。</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>該企業識別碼 (BIC) 與銀行賬戶國際編號不壹致 (IBAN) {{ iban }}。</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>該數值必須序列化為JSON格式。</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>該集合應僅包含唯壹元素。</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>數值應為正數。</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>數值應是正數,或為零。</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>數值應為負數。</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>數值應是負數,或為零。</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>無效時區。</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>此密碼已被泄露,切勿使用。請更換密碼。</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>該數值應在 {{ min }} 和 {{ max }} 之間。</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>該數值不是有效的主機名稱。</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>該集合內的元素數量得是 {{ compared_value }} 的倍數。</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>該數值需符合以下其中一個約束:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>該集合內的每個元素需符合元素本身規定的約束。</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>該數值不是有效的國際證券識別碼 (ISIN)。</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>該值需為一個有效的表達式。</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>該值不是有效的CSS顏色。</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>該值不是一個有效的CIDR表示。</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>網絡掩碼的值應當在 {{ min }} 和 {{ max }} 之間。</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.af.xlf 0000644 00000056625 15120140577 0014527 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Hierdie waarde moet vals wees.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Hierdie waarde moet waar wees.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Hierdie waarde moet van die soort {{type}} wees.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Hierdie waarde moet leeg wees.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <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 }} 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 }} 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"> <source>One or more of the given values is invalid.</source> <target>Een of meer van die gegewe waardes is ongeldig.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Die veld is nie verwag nie.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Hierdie veld ontbreek.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Hierdie waarde is nie 'n geldige datum nie.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Hierdie waarde is nie 'n geldige datum en tyd nie.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Hierdie waarde is nie 'n geldige e-pos adres nie.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Die lêer kon nie gevind word nie.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Die lêer kan nie gelees word nie.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Die lêer is te groot ({{ size }} {{ suffix }}). Toegelaat maksimum grootte is {{ 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>Die MIME-tipe van die lêer is ongeldig ({{ type }}). Toegelaat MIME-tipes is {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Hierdie waarde moet nie leeg wees nie.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Hierdie waarde moet nie nul wees nie.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Hierdie waarde moet nul wees.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Hierdie waarde is nie geldig nie.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Hierdie waarde is nie 'n geldige tyd nie.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Hierdie waarde is nie 'n geldige URL nie.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Die twee waardes moet gelyk wees.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Die lêer is te groot. Toegelaat maksimum grootte is {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Die lêer is te groot.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Die lêer kan nie opgelaai word nie.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Hierdie waarde moet 'n geldige nommer wees.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Hierdie lêer is nie 'n geldige beeld nie.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Hierdie is nie 'n geldige IP-adres nie.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Hierdie waarde is nie 'n geldige taal nie.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Hierdie waarde is nie 'n geldige land instelling nie.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Hierdie waarde is nie 'n geldige land nie.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Hierdie waarde word reeds gebruik.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Die grootte van die beeld kon nie opgespoor word nie.</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>Die beeld breedte is te groot ({{ width }}px). Toegelaat maksimum breedte is {{ 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>Die beeld breedte is te klein ({{ width }}px). Minimum breedte verwag is {{ 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>Die beeld hoogte is te groot ({{ height }}px). Toegelaat maksimum hoogte is {{ 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>Die beeld hoogte is te klein ({{ height }}px). Minimum hoogte verwag is {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <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 }} 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"> <source>The file was only partially uploaded.</source> <target>Die lêer is slegs gedeeltelik opgelaai.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Geen lêer is opgelaai nie.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Geen tydelike lêer is ingestel in php.ini nie.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Kan nie tydelike lêer skryf op skyf nie.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <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 }} 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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Ongeldige kredietkaart nommer.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Nie-ondersteunde tipe kaart of ongeldige kredietkaart nommer.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Hierdie is nie 'n geldige Internationale Bank Rekening Nommer (IBAN) nie.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Hierdie waarde is nie 'n geldige ISBN-10 nie.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Hierdie waarde is nie 'n geldige ISBN-13 nie.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Hierdie waarde is nie 'n geldige ISBN-10 of ISBN-13 nie.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Hierdie waarde is nie 'n geldige ISSN nie.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Hierdie waarde is nie 'n geldige geldeenheid nie.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Hierdie waarde moet gelyk aan {{ compared_value }} wees.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Hierdie waarde moet meer as {{ compared_value }} wees.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Hierdie waarde moet meer of gelyk aan {{ compared_value }} wees.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Hierdie waarde moet identies aan {{ compared_value_type }} {{ compared_value }} wees.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Hierdie waarde moet minder as {{ compared_value }} wees.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Hierdie waarde moet minder of gelyk aan {{ compared_value }} wees.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Hierdie waarde moet nie dieselfde as {{ compared_value }} wees nie.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Hierdie waarde moet nie identies as {{ compared_value_type }} {{ compared_value }} wees nie.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Die beeld aspek is te groot ({{ ratio }}). Die maksimum toegelate aspek is {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Die beeld aspek is te klein ({{ ratio }}). Die minimum toegelate aspek is {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Die beeld is vierkantig ({{ width }}x{{ height }}px). Vierkantige beelde word nie toegelaat nie.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Die beeld is landskap georiënteerd ({{ width }}x{{ height }}px). Landskap georiënteerde beelde word nie toegelaat nie.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Die beeld dis portret georiënteerd ({{ width }}x{{ height }}px). Portret georiënteerde beelde word nie toegelaat nie.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>'n Leë lêer word nie toegelaat nie.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Die gasheer kon nie opgelos word nie.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Die waarde stem nie ooreen met die verwagte {{ charset }} karakterstel nie.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Hierdie is nie 'n geldige Besigheids Identifikasie Kode (BIC) nie.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Fout</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Hierdie is nie 'n geldige UUID nie.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Hierdie waarde moet 'n veelvoud van {{ compared_value }} wees.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Hierdie Besigheids Identifikasie Kode (BIK) is nie geassosieer met IBAN {{ iban }} nie.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Hierdie waarde moet geldige JSON wees.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Hierdie versameling moet net unieke elemente bevat.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Hierdie waarde moet positief wees.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Hierdie waarde moet positief of nul wees.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Hierdie waarde moet negatief wees.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Hierdie waarde moet negatief of nul wees.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Hierdie waarde is nie 'n geldige tydsone nie.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Hierdie waarde moet tussen {{ min }} en {{ max }} wees.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Hierdie waarde is nie 'n geldige gasheernaam nie.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Die hoeveelheid elemente in hierdie versameling moet 'n meelvoud van {{ compared_value }} wees.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Hierdie waarde moet voldoen aan ten minste een van hierdie beperkings:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Elke element van hierdie versameling moet voldoen aan hulle eie beperkings.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Hierdie waarde is nie 'n geldige Internasionale veiligheidsidentifikasienommer (ISIN) nie.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Hierdie waarde moet 'n geldige uitdrukking wees.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Hierdie waarde is nie 'n geldige CSS-kleur nie.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Hierdie waarde is nie 'n geldige CIDR-notasie nie.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Die waarde van die netmasker moet tussen {{ min }} en {{ max }} wees.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.ar.xlf 0000644 00000067674 15120140577 0014551 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>هذه القيمة يجب أن تكون خاطئة.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>هذه القيمة يجب أن تكون حقيقية.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>هذه القيمة يجب ان تكون من نوع {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>هذه القيمة يجب ان تكون فارغة.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>القيمة المختارة ليست خيارا صحيحا.</target> </trans-unit> <trans-unit id="6"> <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source> <target>يجب ان تختار {{ limit }} اختيار على الاقل.|يجب ان تختار {{ limit }} اختيار على الاقل.|يجب ان تختار {{ limit }} اختيارات على الاقل.|يجب ان تختار {{ limit }} اختيار على الاقل.|يجب ان تختار {{ limit }} اختيار على الاقل.|يجب ان تختار {{ limit }} اختيار على الاقل.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>يجب ان تختار {{ limit }} اختيار على الاكثر.|يجب ان تختار {{ limit }} اختيار على الاكثر.|يجب ان تختار {{ limit }} اختيارات على الاكثر.|يجب ان تختار {{ limit }} اختيار على الاكثر.|يجب ان تختار {{ limit }} اختيار على الاكثر.|يجب ان تختار {{ limit }} اختيار على الاكثر.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>واحد أو أكثر من القيم المعطاه خاطئ.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>لم يكن من المتوقع هذا المجال.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>هذا المجال مفقود.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>هذه القيمة ليست تاريخا صالحا.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>هذه القيمة ليست تاريخا و وقتا صالحا.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>هذه القيمة ليست عنوان بريد إلكتروني صحيح.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>لا يمكن العثور على الملف.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>الملف غير قابل للقراءة.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>الملف كبير جدا ({{ size }} {{ suffix }}).اقصى مساحه مسموح بها ({{ 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>نوع الملف غير صحيح ({{ type }}). الانواع المسموح بها هى {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>هذه القيمة يجب ان تكون {{ limit }} او اقل.</target> </trans-unit> <trans-unit id="19"> <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 }} حروف او اقل.|هذه القيمة طويلة جدا. يجب ان تكون {{ limit }} حرف او اقل.|هذه القيمة طويلة جدا. يجب ان تكون {{ limit }} حرف او اقل.|هذه القيمة طويلة جدا. يجب ان تكون {{ limit }} حرف او اقل.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <target>هذه القيمة يجب ان تكون {{ limit }} او اكثر.</target> </trans-unit> <trans-unit id="21"> <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 }} حروف او اكثر.|هذه القيمة قصيرة جدا. يجب ان تكون {{ limit }} حرف او اكثر.|هذه القيمة قصيرة جدا. يجب ان تكون {{ limit }} حرف او اكثر.|هذه القيمة قصيرة جدا. يجب ان تكون {{ limit }} حرف او اكثر.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>هذه القيمة يجب الا تكون فارغة.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>هذه القيمة يجب الا تكون فارغة.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>هذه القيمة يجب ان تكون فارغة.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>هذه القيمة غير صحيحة.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>هذه القيمة ليست وقت صحيح.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>هذه القيمة ليست رابط الكترونى صحيح.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>القيمتان يجب ان تكونا متساويتان.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>الملف كبير جدا. اقصى مساحه مسموح بها {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>الملف كبير جدا.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>لم استطع استقبال الملف.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>هذه القيمة يجب ان تكون رقم.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>هذا الملف ليس صورة صحيحة.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>هذه القيمة ليست عنوان رقمى صحيح.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>هذه القيمة ليست لغة صحيحة.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>هذه القيمة ليست موقع صحيح.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>هذه القيمة ليست بلدا صالحا.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>هذه القيمة مستخدمة بالفعل.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>لم استطع معرفة حجم الصورة.</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>عرض الصورة كبير جدا ({{ width }}px). اقصى عرض مسموح به هو{{ 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>عرض الصورة صغير جدا ({{ width }}px). اقل عرض مسموح به هو{{ 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>طول الصورة كبير جدا ({{ height }}px). اقصى طول مسموح به هو{{ 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>طول الصورة صغير جدا ({{ height }}px). اقل طول مسموح به هو{{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>هذه القيمة يجب ان تكون كلمة سر المستخدم الحالية.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>هذه القيمة يجب ان تحتوى على {{ limit }} حرف فقط.|هذه القيمة يجب ان تحتوى على {{ limit }} حرف فقط.|هذه القيمة يجب ان تحتوى على {{ limit }} حروف فقط.|هذه القيمة يجب ان تحتوى على {{ limit }} حرف فقط.|هذه القيمة يجب ان تحتوى على {{ limit }} حرف فقط.|هذه القيمة يجب ان تحتوى على {{ limit }} حرف فقط.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>تم استقبال جزء من الملف فقط.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>لم يتم ارسال اى ملف.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>لم يتم تهيئة حافظة مؤقتة فى ملف php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>لم استطع كتابة الملف المؤقت.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>احد اضافات PHP تسببت فى فشل استقبال الملف.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اكثر.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اكثر.|هذه المجموعة يجب ان تحتوى على {{ limit }} عناصر او اكثر.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اكثر.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اكثر.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اكثر.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اقل.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اقل.|هذه المجموعة يجب ان تحتوى على {{ limit }} عناصر او اقل.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اقل.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اقل.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اقل.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر فقط.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر فقط.|هذه المجموعة يجب ان تحتوى على {{ limit }} عناصر فقط.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر فقط.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر فقط.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر فقط.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>رقم البطاقه غير صحيح.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>نوع البطاقه غير مدعوم او الرقم غير صحيح.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>الرقم IBAN (رقم الحساب المصرفي الدولي) الذي تم إدخاله غير صالح.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>هذه القيمة ليست ISBN-10 صالحة.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>هذه القيمة ليست ISBN-13 صالحة.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>هذه القيمة ليست ISBN-10 صالحة ولا ISBN-13 صالحة.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>هذه القيمة ليست ISSN صالحة.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>العُملة غير صحيحة.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>القيمة يجب ان تساوي {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>القيمة يجب ان تكون اعلي من {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>القيمة يجب ان تكون مساوية او اعلي من {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>القيمة يجب ان تطابق {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>القيمة يجب ان تكون اقل من {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>القيمة يجب ان تساوي او تقل عن {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>القيمة يجب ان لا تساوي {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>القيمة يجب ان لا تطابق {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>نسبة العرض على الارتفاع للصورة كبيرة جدا ({{ ratio }}). الحد الأقصى للنسبة المسموح به هو {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>نسبة العرض على الارتفاع للصورة صغيرة جدا ({{ ratio }}). الحد الأدنى للنسبة المسموح به هو {{ max_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>الصورة مربعة ({{ width }}x{{ height }}px). الصور المربعة غير مسموح بها.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>الصورة في وضع أفقي ({{ width }}x{{ height }}px). الصور في وضع أفقي غير مسموح بها.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>الصورة في وضع عمودي ({{ width }}x{{ height }}px). الصور في وضع عمودي غير مسموح بها.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>ملف فارغ غير مسموح به.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>يتعذر الإتصال بالنطاق.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>هذه القيمة غير متطابقة مع صيغة التحويل {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>هذه القيمة ليست رمز معرّف نشاط تجاري صالح (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>خطأ</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>هذا ليس UUID صالح.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>هذه القيمة يجب أن تكون مضاعف ل {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>رمز المعرّف نشاط تجاري (BIC) هذا لا يرتبط مع IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>هذه القيمة يجب أن تكون صالحة ل JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>يجب أن تحتوي هذه المجموعة علي عناصر فريدة فقط.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>يجب أن تكون هذه القيمة موجبة.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>يجب أن تكون هذه القيمة إما موجبة او صفر.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>يجب أن تكون هذه القيمة سالبة.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>يجب أن تكون هذه القيمة إما سالبة او صفر.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>هذه القيمة ليست منطقة زمنية صحيحة.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>تم تسريب كلمة المرور هذه في خرق للبيانات، ويجب عدم استخدامها. يرجي استخدام كلمة مرور أخري.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>يجب أن تكون هذه القيمة بين {{ min }} و {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>هذه القيمة ليست اسم مضيف صالح.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>يجب أن يكون عدد العناصر في هذه المجموعة مضاعف {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>يجب أن تستوفي هذه القيمة واحدة من القيود التالية:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>يجب أن يفي كل عنصر من عناصر هذه المجموعة بمجموعة القيود الخاصة به.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target> صالح (ISIN) هذه القيمة ليست رقم تعريف الأوراق المالية الدولي.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>يجب أن تكون هذه القيمة تعبيرًا صالحًا.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>هذه القيمة ليست لون CSS صالحًا.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>هذه القيمة ليست تدوين CIDR صالحًا.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>يجب أن تكون قيمة netmask بين {{ min }} و {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.az.xlf 0000644 00000056025 15120140577 0014545 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Bu dəyər false olmalıdır.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Bu dəyər true olmalıdır.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Bu dəyərin tipi {{ type }} olmalıdır.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Bu dəyər boş olmalıdır.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Seçdiyiniz dəyər düzgün bir seçim değil.</target> </trans-unit> <trans-unit id="6"> <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source> <target>Ən az {{ limit }} seçim qeyd edilməlidir.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Ən çox {{ limit }} seçim qeyd edilməlidir.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Təqdim edilən dəyərlərdən bir və ya bir neçəsi yanlışdır.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Bu sahə gözlənilmirdi.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Bu sahə əksikdir.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Bu dəyər düzgün bir tarix deyil.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Bu dəyər düzgün bir tarixsaat deyil.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Bu dəyər düzgün bir e-poçt adresi deyil.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Fayl tapılmadı.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Fayl oxunabilən deyil.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fayl çox böyükdür ({{ size }} {{ suffix }}). İcazə verilən maksimum fayl ölçüsü {{ 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>Faylın mime tipi yanlışdr ({{ type }}). İcazə verilən mime tipləri {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Bu dəyər {{ limit }} və ya altında olmalıdır.</target> </trans-unit> <trans-unit id="19"> <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 dəyər çox uzundur. {{ limit }} və ya daha az simvol olmalıdır.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <target>Bu dəyər {{ limit }} veya daha fazla olmalıdır.</target> </trans-unit> <trans-unit id="21"> <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 dəyər çox qısadır. {{ limit }} və ya daha çox simvol olmalıdır.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Bu dəyər boş olmamalıdır.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Bu dəyər boş olmamalıdır.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Bu dəyər boş olmamalıdır.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Bu dəyər doğru deyil.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Bu dəyər doğru bir saat deyil.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Bu dəyər doğru bir URL değil.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>İki dəyər eyni olmalıdır.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fayl çox böyükdür. İcazə verilən ən böyük fayl ölçüsü {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Fayl çox böyükdür.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Fayl yüklənəbilmir.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Bu dəyər rəqəm olmalıdır.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Bu fayl düzgün bir şəkil deyil.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Bu düzgün bir IP adresi deyil.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Bu dəyər düzgün bir dil deyil.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Bu dəyər düzgün bir dil deyil.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Bu dəyər düzgün bir ölkə deyil.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Bu dəyər hal-hazırda istifadədədir.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Şəklin ölçüsü hesablana bilmir.</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>Şəklin genişliyi çox böyükdür ({{ width }}px). İcazə verilən ən böyük genişlik {{ 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>Şəklin genişliyi çox kiçikdir ({{ width }}px). Ən az {{ min_width }}px olmalıdır.</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>Şəklin yüksəkliyi çox böyükdür ({{ height }}px). İcazə verilən ən böyük yüksəklik {{ 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>Şəklin yüksəkliyi çox kiçikdir ({{ height }}px). Ən az {{ min_height }}px olmalıdır.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Bu dəyər istifadəçinin hazırkı parolu olmalıdır.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Bu dəyər tam olaraq {{ limit }} simvol olmaldır.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Fayl qismən yükləndi.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Fayl yüklənmədi.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>php.ini'də müvəqqəti qovluq quraşdırılmayıb.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Müvəqqəti fayl diskə yazıla bilmir.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Bir PHP əlavəsi faylın yüklənməsinə mane oldu.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Bu kolleksiyada {{ limit }} və ya daha çox element olmalıdır.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Bu kolleksiyada {{ limit }} və ya daha az element olmalıdır.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Bu kolleksiyada tam olaraq {{ limit }} element olmalıdır.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Yanlış kart nömrəsi.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Dəstəklənməyən kart tipi və ya yanlış kart nömrəsi.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Bu dəyər doğru bir Beynəlxalq Bank Hesap Nömrəsi (IBAN) deyil.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Bu dəyər doğru bir ISBN-10 deyil.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Bu dəyər doğru bir ISBN-13 deyil.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Bu dəyər doğru bir ISBN-10 və ya ISBN-13 deyil.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Bu dəyər doğru bir ISSN deyil.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Bu dəyər doğru bir valyuta deyil.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Bu dəyər {{ compared_value }} ilə bərabər olmalıdır.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Bu dəyər {{ compared_value }} dəyərindən büyük olmalıdır.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Bu dəyər {{ compared_value }} ilə bərabər və ya daha böyük olmaldır.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Bu dəyər {{ compared_value_type }} {{ compared_value }} ilə eyni olmalıdır.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Bu dəyər {{ compared_value }} dəyərindən kiçik olmalıdır.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Bu dəyər {{ compared_value }} dəyərindən kiçik və ya bərabər olmalıdır.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Bu değer {{ compared_value }} ile eşit olmamalıdır.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Bu dəyər {{ compared_value_type }} {{ compared_value }} ilə eyni olmamalıdır.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Şəkil nisbəti çox büyükdür ({{ ratio }}). İcazə verilən maksimum nisbət: {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Şəkil nisbəti çox balacadır ({{ ratio }}). İcazə verilən minimum nisbət: {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Şəkil kvadratdır ({{ width }}x{{ height }}px). Kvadrat şəkillərə icazə verilmir.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Şəkil albom rejimindədir ({{ width }}x{{ height }}px). Albom rejimli şəkillərə icazə verilmir.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Şəkil portret rejimindədir ({{ width }}x{{ height }}px). Portret rejimli şəkillərə icazə verilmir.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Boş fayla icazə verilmir.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Ünvan tapılmadı.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Bu dəyər gözlənilən {{ charset }} simvol cədvəli ilə uyğun gəlmir.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Bu dəyər doğru bir Biznes Təyinedici Kodu (BIC) deyil.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Xəta</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Bu dəyər doğru bir UUID deyil.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Bu dəyər {{ compare_value }} dəyərinin bölənlərindən biri olmalıdır.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Bu Biznes Təyinedici Kodu (BIC) {{ iban }} IBAN kodu ilə əlaqəli deyil.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Bu dəyər doğru bir JSON olmalıdır.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Bu kolleksiyada sadəcə unikal elementlər olmalıdır.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Bu dəyər müsbət olmalıdır.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Bu dəyər müsbət və ya sıfır olmalıdır.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Bu dəyər mənfi olmaldır.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Bu dəyər mənfi və ya sıfır olmaldır.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Bu dəyər doğru bir zaman zolağı deyil.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Bu parol data oğurluğunda tapıldığı üçün işlədilməməlidir. Zəhmət olmasa, başqa parol seçin.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Bu dəyər {{ min }} və {{ max }} arasında olmaldır.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Bu dəyər doğru bir host adı deyil.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Bu kolleksiyadakı elementlerin sayı {{ compared_value }} tam bölünəni olmalıdır.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Bu dəyər aşağıdakı məcburiyyətlərdən birini qarşılamalıdır:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Bu kolleksiyadakı hər element öz məcburiyyətlərini qarşılamalıdır.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Bu dəyər doğru bir Qiymətli Kağızın Beynəlxalq İdentifikasiya Kodu (ISIN) deyil.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Bu dəyər etibarlı ifadə olmalıdır.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Bu dəyər etibarlı CSS rəngi deyil.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Bu dəyər etibarlı CIDR notasiyası deyil.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Şəbəkə maskasının dəyəri {{ min }} və {{ max }} arasında olmalıdır.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.be.xlf 0000644 00000066371 15120140577 0014526 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Значэнне павінна быць Не.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Значэнне павінна быць Так.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Тып значэння павінен быць {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Значэнне павінна быць пустым.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Абранае вамі значэнне не сапраўднае.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Вы павінны выбраць не больш за {{ limit }} варыянт.|Вы павінны выбраць не больш за {{ limit }} варыянтаў.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Адзін або некалькі пазначаных значэнняў з'яўляецца несапраўдным.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Гэта поле не чакаецца.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Гэта поле адсутнічае.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Гэта значэнне не з'яўляецца карэктнай датай.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Гэта значэнне не з'яўляецца карэктнай датай i часом.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Гэта значэнне не з'яўляецца карэктным адрасам электроннай пошты.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Файл не знойдзен.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Файл не чытаецца.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Файл занадта вялікі ({{ size }} {{ suffix }}). Максімальна дазволены памер {{ 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>MIME-тып файлу некарэкты ({{ type }}). Дазволеныя MIME-тыпы файлу {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Значэнне павінна быць {{ limit }} або менш.</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>Значэнне павінна быць {{ limit }} або больш.</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>Значэнне не павінна быць пустым.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Значэнне не павінна быць null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Значэнне павінна быць null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Значэнне з'яўляецца не сапраўдным.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Значэнне не з'яўляецца сапраўдным часам.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Значэнне не з'яўляецца сапраўдным URL-адрасам.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Абодва значэнні павінны быць аднолькавымі.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Файл занадта вялікі. Максімальна дазволены памер {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Файл занадта вялікі.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Немагчыма запампаваць файл.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Значэнне павінна быць лікам.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Гэты файл не з'яўляецца сапраўднай выявай.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Значэнне не з'яўляецца сапраўдным IP-адрасам.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Значэнне не з'яўляецца сапраўдным мовай.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Значэнне не з'яўляецца сапраўднай лакаллю.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Значэнне не з'яўляецца сапраўднай краінай.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Гэта значэнне ўжо выкарыстоўваецца.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Немагчыма вызначыць памер выявы.</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>Гэта выява занадта вялікая ({{ width }}px). Дазваляецца максімальная шырыня {{ 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>Гэта выява занадта маленькая ({{ width }}px). Дазваляецца мінімальная шырыня {{ 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>Гэты выява занадта вялікая ({{ width }}px). Дазваляецца максімальная вышыня {{ max_width }}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>Гэта выява занадта маленькая ({{ width }}px). Дазваляецца мінімальная вышыня {{ min_width }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Значэнне павінна быць цяперашнім паролем карыстальніка.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Файл быў запампаваны толькі часткова.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Файл не быў запампаваны.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>У php.ini не была налажана часовая папка, або часовая папка не існуе.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Немагчыма запісаць часовы файл на дыск.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Пашырэнне PHP выклікала памылку загрузкі.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Калекцыя павінна змяшчаць роўна {{ limit }} элемент.|Калекцыя павінна змяшчаць роўна {{ limit }} элементаў.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Несапраўдны нумар карты.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Тып карты не падтрымліваецца або несапраўдны нумар карты.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Несапраўдны міжнародны нумар банкаўскага рахунку (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Гэта значэнне не з'яўляецца сапраўдным ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Гэта значэнне не з'яўляецца сапраўдным ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Гэта значэнне не з'яўляецца сапраўдным ISBN-10 або ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Гэта значэнне не з'яўляецца сапраўдным ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Гэта значэнне не з'яўляецца сапраўднай валютай.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Значэнне павінна раўняцца {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Значэнне павінна быць больш чым {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Значэнне павінна быць больш чым або раўняцца {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Значэнне павінна быць ідэнтычным {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Значэнне павінна быць менш чым {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Значэнне павінна быць менш чым або раўняцца {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Значэнне не павінна раўняцца {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Значэнне не павінна быць ідэнтычным {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Суадносіны бакоў выявы з'яўляецца занадта вялікім ({{ ratio }}). Дазваляецца максімальныя суадносіны {{max_ratio}} .</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Суадносіны бакоў выявы з'яўляецца занадта маленькімі ({{ ratio }}). Дазваляецца мінімальныя суадносіны {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Выява квадратная ({{width}}x{{height}}px). Квадратныя выявы не дазволены.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Выява ў альбомнай арыентацыі ({{ width }}x{{ height }}px). Выявы ў альбомнай арыентацыі не дазволены.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Выява ў партрэтнай арыентацыі ({{ width }}x{{ height }}px). Выявы ў партрэтнай арыентацыі не дазволены.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Пусты файл не дазволены.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Не магчыма знайсці імя хоста.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Гэта значэнне не супадае з чаканай {{ charset }} кадыроўкай.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Несапраўдны банкаўскі ідэнтыфікацыйны код (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Памылка</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Гэта несапраўдны UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Значэнне павінна быць кратным {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Банкаўскі ідэнтыфікацыйны код (BIC) не звязан з IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Гэта значэнне павінна быць у фармаце JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Калекцыя павінна змяшчаць толькі ўнікальныя элементы.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Значэнне павінна быць дадатным.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Значэнне павінна быць дадатным ці нуль.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Значэнне павінна быць адмоўным.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Значэнне павінна быць адмоўным ці нуль.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Значэнне не з'яўляецца сапраўдным гадзінным поясам.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Гэты пароль быў выкрадзены ў выніку ўзлому дадзеных, таму яго нельга выкарыстоўваць. Калі ласка, выкарыстоўвайце іншы пароль.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Значэнне павінна быць паміж {{min}} і {{max}}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Значэнне не з'яўляецца карэктным імем хаста.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Колькасць элементаў у гэтай калекцыі павінна быць кратным {{compared_value}}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Значэнне павінна задавальняць як мінімум аднаму з наступных абмежаванняў:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Кожны элемент гэтай калекцыі павінен задавальняць свайму ўласнаму набору абмежаванняў.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Значэнне не з'яўляецца карэктным міжнародным ідэнтыфікацыйным нумарам каштоўных папер (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Значэнне не з'яўляецца сапраўдным выразам.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Значэнне не з'яўляецца дапушчальным колерам CSS.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Значэнне не з'яўляецца сапраўднай натацыяй CIDR.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Значэнне сеткавай маскі павінна быць ад {{min}} да {{max}}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.bg.xlf 0000644 00000066131 15120140577 0014522 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Стойността трябва да бъде лъжа (false).</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Стойността трябва да бъде истина (true).</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Стойността трябва да бъде от тип {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Стойността трябва да бъде празна.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Избраната стойност е невалидна.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Трябва да изберете най-много {{ limit }} опция.|Трябва да изберете най-много {{ limit }} опции.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Една или повече от зададените стойности е невалидна.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Полето не се е очаквало.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Полето липсва.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Стойността не е валидна дата.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Стойността не е валидна дата и час.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Стойността не е валиден имейл адрес.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Файлът не беше открит.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Файлът не може да бъде прочетен.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Файлът е твърде голям ({{ size }} {{ suffix }}). Максималният размер е {{ 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>Mime типа на файла е невалиден ({{ type }}). Разрешени mime типове са {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Стойността трябва да бъде {{ limit }} или по-малко.</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>Стойността трябва да бъде {{ limit }} или повече.</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>Стойността не трябва да бъде празна.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Стойността не трябва да бъде null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Стойността трябва да бъде null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Стойността не е валидна.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Стойността не е валидно време.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Стойността не е валиден URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Двете стойности трябва да бъдат равни.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Файлът е твърде голям. Разрешеният максимален размер е {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Файлът е твърде голям.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Файлът не може да бъде качен.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Стойността трябва да бъде валиден номер.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Файлът не е валидно изображение.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Това не е валиден IP адрес.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Стойността не е валиден език.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Стойността не е валидна локализация.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Стойността не е валидна държава.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Стойността вече е в употреба.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Размера на изображението не може да бъде определен.</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>Изображението е твърде широко ({{ width }}px). Широчината трябва да бъде максимум {{ 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>Изображението е с твърде малка широчина ({{ width }}px). Широчината трябва да бъде минимум {{ 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>Изображението е с твърде голяма височина ({{ height }}px). Височината трябва да бъде максимум {{ 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>Изображението е с твърде малка височина ({{ height }}px). Височина трябва да бъде минимум {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Стойността трябва да бъде текущата потребителска парола.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Файлът е качен частично.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Файлът не беше качен.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Не е посочена директория за временни файлове в php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Не може да запише временен файл на диска.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP разширение предизвика прекъсване на качването.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Колекцията трябва да съдържа точно {{ limit }} елемент.|Колекцията трябва да съдържа точно {{ limit }} елемента.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Невалиден номер на карта.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Неподдържан тип карта или невалиден номер на карта.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Това не е валиден Международен номер на банкова сметка (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Стойността не е валиден ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Стойността не е валиден ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Стойността не е нито валиден ISBN-10, нито валиден ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Стойността не е валиден ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Стойността не е валидна валута.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Стойността трябва да бъде равна на {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Стойността трябва да бъде по-голяма от {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Стойността трябва да бъде по-голяма или равна на {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Стойността трябва да бъде идентична с {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Стойността трябва да бъде по-малка {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Стойността трябва да бъде по-малка или равна на {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Стойността не трябва да бъде равна на {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Стойността не трябва да бъде идентична с {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Изображението е с твърде голяма пропорция ({{ ratio }}). Максималната пропорция трябва да е {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Изображението е с твърде малка пропорция ({{ ratio }}). Минималната пропорция трябва да е {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Изображението е квадрат ({{ width }}x{{ height }}px). Такива изображения не са разрешени.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Изображението е с пейзажна ориентация ({{ width }}x{{ height }}px). Изображения с такава ориентация не са разрешени.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Изображението е с портретна ориентация ({{ width }}x{{ height }}px). Изображения с такава ориентация не са разрешени.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Празни файлове не са разрешени.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Хостът е недостъпен.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Стойността не съвпада с очакваната {{ charset }} кодировка.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Това не е валиден Бизнес идентификационен код (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Грешка</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Това не е валиден UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Стойността трябва да бъде кратно число на {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Бизнес идентификационния код (BIC) не е свързан с IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Стойността трябва да е валиден JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Колекцията трябва да съдържа само уникални елементи.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Стойността трябва да бъде положително число.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Стойността трябва бъде положително число или нула.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Стойността трябва да бъде отрицателно число.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Стойността трябва да бъде отрицателно число или нула.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Стойността не е валидна часова зона.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Тази парола е компрометирана, не трябва да бъде използвана. Моля използвайте друга парола.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Стойността трябва да бъде между {{ min }} и {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Стойността не е валиден hostname.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Броят на елементите в тази колекция трябва да бъде кратен на {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Стойността трябва да отговаря на поне едно от следните ограничения:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Всеки елемент от тази колекция трябва да отговаря на собствения си набор от ограничения.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Стойността не е валиден Международен идентификационен номер на ценни книжа (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Стойността трябва да бъде валиден израз.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Стойността не е валиден CSS цвят.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Стойността не е валидна CIDR нотация.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Стойността на мрежовата маска трябва да бъде между {{ min }} и {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.bs.xlf 0000644 00000060673 15120140577 0014543 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Ova vrijednost bi trebalo da bude "netačno" (false).</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Ova vrijednost bi trebalo da bude "tačno" (true).</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Ova vrijednost bi trebalo da bude tipa {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Ova vrijednost bi trebalo da bude prazna.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Odabrana vrijednost nije validan izbor.</target> </trans-unit> <trans-unit id="6"> <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source> <target>Morate odabrati barem {{ limit }} mogućnost.|Morate odabrati barem {{ limit }} mogućnosti.|Morate odabrati barem {{ limit }} mogućnosti. </target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Morate odabrati najviše {{ limit }} mogućnost.|Morate odabrati najviše {{ limit }} mogućnosti.|Morate odabrati najviše {{ limit }} mogućnosti.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Jedna ili više datih vrijednosti nisu validne.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Ovo polje nije očekivano.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Ovo polje nedostaje.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Ova vrijednost nije ispravan datum.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Ova vrijednost nije ispravnog datum-vrijeme (datetime) formata.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Ova vrijednost nije ispravna e-mail adresa.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Ova datoteka ne može biti pronađena.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Ova datoteka nije čitljiva.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Ova datoteka je prevelika ({{ size }} {{ suffix }}). Najveća dozvoljena veličina je {{ 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>Mime tip datoteke nije ispravan ({{ type }}). Dozvoljeni mime tipovi su {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Ova vrijednost bi trebalo da bude {{ limit }} ili manje.</target> </trans-unit> <trans-unit id="19"> <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. Trebalo bi da ima {{ limit }} karakter ili manje.|Ova vrijednost je predugačka. Trebalo bi da ima {{ limit }} karaktera ili manje.|Ova vrijednost je predugačka. Trebalo bi da ima {{ limit }} karaktera ili manje.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <target>Ova vrijednost bi trebalo da bude {{ limit }} ili više.</target> </trans-unit> <trans-unit id="21"> <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. Trebalo bi da ima {{ limit }} karakter ili više.|Ova vrijednost je prekratka. Trebalo bi da ima {{ limit }} karaktera ili više.|Ova vrijednost je prekratka. Trebalo bi da ima {{ limit }} karaktera ili više.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Ova vrijednost ne bi trebalo da bude prazna.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Ova vrijednost ne bi trebalo da bude null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Ova vrijednost bi trebalo da bude null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Ova vrijednost nije ispravna.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Ova vrijednost nije ispravno vrijeme.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Ova vrijednost nije ispravan URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Obje vrijednosti bi trebalo da budu jednake.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Ova datoteka je prevelika. Najveća dozvoljena veličina je {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Ova datoteka je prevelika.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Ova datoteka ne može biti prenijeta (uploaded).</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Ova vrijednost bi trebalo da bude ispravan broj.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Ova datoteka nije validna slika.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Ovo nije ispravna IP adresa.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Ova vrijednost nije validan jezik.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Ova vrijednost nije validna regionalna oznaka.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Ova vrijednost nije validna država.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Ova vrijednost je već upotrebljena.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Nije moguće otkriti veličinu ove slike.</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>Širina slike je prevelika ({{ width }}px). Najveća dozvoljena širina je {{ 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>Širina slike je premala ({{ width }}px). Najmanja dozvoljena širina je {{ 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>Dužina slike je prevelika ({{ height }}px). Najveća dozvoljena dužina je {{ 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>Dužina slike je premala ({{ height }}px). Najmanja dozvoljena dužina je {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Ova vrijednost bi trebalo da bude trenutna korisnička lozinka.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Ova vrijednost bi trebalo da ima tačno {{ limit }} karakter.|Ova vrijednost bi trebalo da ima tačno {{ limit }} karaktera.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Datoteka je samo djelimično prenijeta (uploaded).</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Nijedna datoteka nije prenijeta (uploaded).</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Privremeni direktorijum nije konfigurisan u datoteci php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Privremenu datoteku nije moguće upisati na disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Prenos datoteke nije uspio zbog PHP ekstenzije.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Ova kolekcija bi trebalo da sadrži {{ limit }} ili više elemenata.|Ova kolekcija bi trebalo da sadrži {{ limit }} ili više elemenata.|Ova kolekcija bi trebalo da sadrži {{ limit }} ili više elemenata.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Ova kolekcija bi trebalo da sadrži {{ limit }} ili manje elemenata.|Ova kolekcija bi trebalo da sadrži {{ limit }} ili manje elemenata.|Ova kolekcija bi trebalo da sadrži {{ limit }} ili manje elemenata.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Ova kolekcija bi trebalo da sadrži tačno {{ limit }} element.|Ova kolekcija bi trebalo da sadrži tačno {{ limit }} elementa.|Ova kolekcija bi trebalo da sadrži tačno {{ limit }} elemenata.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Broj kartice je neispravan.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Tip kartice nije podržan ili je broj kartice neispravan.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Ova vrijednost nije ispravan međunarodni broj bankovnog računa (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Ova vrijednost nije ispravan ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Ova vrijednost nije ispravan ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Ova vrijednost nije ispravan ISBN-10 niti ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Ova vrijednost nije ispravan ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Ova vrijednost nije ispravna valuta.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Ova vrijednost bi trebalo da bude jednaka {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Ova vrijednost bi trebalo da bude veća od {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Ova vrijednost bi trebalo da bude jednaka ili veća od {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ova vrijednost bi trebalo da bude identična {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Ova vrijednost bi trebalo da bude manja od {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Ova vrijednost bi trebalo da bude jednaka ili manja od {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Ova vrijednost bi trebalo da bude različita od {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ova vrijednost bi trebalo da bude identična sa {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Razmjera ove slike je prevelika ({{ ratio }}). Maksimalna dozvoljena razmjera je {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Razmjera ove slike je premala ({{ ratio }}). Minimalna očekivana razmjera je {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Ova slika je kvadratnog oblika ({{ width }}x{{ height }}px). Kvadratne slike nisu dozvoljene.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Ova slika je orijentisana horizontalno (landscape) ({{ width }}x{{ height }}px). Horizontalno orijentisane slike nisu dozvoljene.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Ova slika je orijentisana vertikalno (portrait) ({{ width }}x{{ height }}px). Vertikalno orijentisane slike nisu dozvoljene.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Prazna datoteka nije dozvoljena.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Nije moguće odrediti poslužitelja (host).</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Ova vrijednost ne odgovara očekivanom {{ charset }} setu karaktera (charset).</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Ovo nije validan poslovni identifikacioni kod (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Greška</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Ovo nije validan UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Ova vrijednost bi trebalo da bude djeljiva sa {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Ovaj poslovni identifikacioni kod (BIC) nije povezan sa IBAN-om {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Ova vrijednost bi trebalo da bude validan JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Ova kolekcija bi trebala da sadrži samo jedinstvene elemente.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Ova vrijednost bi trebalo da bude pozitivna.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Ova vrijednost bi trebalo da bude pozitivna ili jednaka nuli.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Ova vrijednost bi trebalo da bude negativna.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Ova vrijednost bi trebalo da bude negativna ili jednaka nuli.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Ova vrijednost nije validna vremenska zona.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Ova lozinka je procurila u nekom od slučajeva kompromitovanja podataka, nemojte je koristiti. Koristite drugu lozinku.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Ova vrijednosti bi trebala biti između {{ min }} i {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Ova vrijednost nije ispravno ime poslužitelja (hostname).</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Broj elemenata u ovoj kolekciji bi trebalo da bude djeljiv sa {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Ova vrijednost bi trebalo da zadovoljava namjanje jedno od narednih ograničenja:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Svaki element ove kolekcije bi trebalo da zadovolji sopstveni skup ograničenja.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Ova vrijednost nije ispravna međunarodna identifikaciona oznaka hartija od vrijednosti (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Ova vrijednost bi trebala biti važeći izraz.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Ova vrijednost nije važeća CSS boja.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Ova vrijednost nije važeća CIDR notacija.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Vrijednost NetMask bi trebala biti između {{min}} i {{max}}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.ca.xlf 0000644 00000057320 15120140577 0014515 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Aquest valor hauria de ser fals.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Aquest valor hauria de ser cert.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Aquest valor hauria de ser del tipus {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Aquest valor hauria d'estar buit.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>El valor seleccionat no és una opció vàlida.</target> </trans-unit> <trans-unit id="6"> <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 }} 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"> <source>One or more of the given values is invalid.</source> <target>Un o més dels valors facilitats són incorrectes.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Aquest camp no s'esperava.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Aquest camp està desaparegut.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Aquest valor no és una data vàlida.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Aquest valor no és una data i hora vàlida.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Aquest valor no és una adreça d'email vàlida.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>No s'ha pogut trobar l'arxiu.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>No es pot llegir l'arxiu.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>L'arxiu és massa gran ({{ size }} {{ suffix }}). La grandària màxima permesa és {{ 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>El tipus mime de l'arxiu no és vàlid ({{ type }}). Els tipus mime vàlids són {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Aquest valor no hauria d'estar buit.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Aquest valor no hauria de ser null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Aquest valor hauria de ser null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Aquest valor no és vàlid.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Aquest valor no és una hora vàlida.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Aquest valor no és una URL vàlida.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Els dos valors haurien de ser iguals.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>L'arxiu és massa gran. El tamany màxim permés és {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>L'arxiu és massa gran.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>No es pot pujar l'arxiu.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Aquest valor hauria de ser un nombre vàlid.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>L'arxiu no és una imatge vàlida.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Això no és una adreça IP vàlida.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Aquest valor no és un idioma vàlid.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Aquest valor no és una localització vàlida.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Aquest valor no és un país vàlid.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Aquest valor ja s'ha utilitzat.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>No s'ha pogut determinar la grandària de la imatge.</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>L'amplària de la imatge és massa gran ({{ width }}px). L'amplària màxima permesa són {{ 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>L'amplària de la imatge és massa petita ({{ width }}px). L'amplària mínima requerida són {{ 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>L'altura de la imatge és massa gran ({{ height }}px). L'altura màxima permesa són {{ 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>L'altura de la imatge és massa petita ({{ height }}px). L'altura mínima requerida són {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <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 }} 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"> <source>The file was only partially uploaded.</source> <target>L'arxiu va ser només pujat parcialment.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Cap arxiu va ser pujat.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Cap carpeta temporal va ser configurada en php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>No es va poder escriure l'arxiu temporal en el disc.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Una extensió de PHP va fer que la pujada fallara.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Número de targeta invàlid.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Tipus de targeta no suportada o número de targeta invàlid.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Això no és un nombre de compte bancari internacional (IBAN) vàlid.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Aquest valor no és un ISBN-10 vàlid.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Aquest valor no és un ISBN-13 vàlid.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Aquest valor no és ni un ISBN-10 vàlid ni un ISBN-13 vàlid.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Aquest valor no és un ISSN vàlid.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Aquest valor no és una divisa vàlida.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Aquest valor hauria de ser igual a {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Aquest valor hauria de ser més gran a {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Aquest valor hauria de ser major o igual a {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Aquest valor hauria de ser idèntic a {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Aquest valor hauria de ser menor a {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Aquest valor hauria de ser menor o igual a {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Aquest valor no hauria de ser igual a {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Aquest valor no hauria de idèntic a {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>La proporció de l'imatge és massa gran ({{ ratio }}). La màxima proporció permesa és {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>La proporció de l'imatge és massa petita ({{ ratio }}). La mínima proporció permesa és {{ max_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>L'imatge és quadrada({{ width }}x{{ height }}px). Les imatges quadrades no estan permeses.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>L'imatge està orientada horitzontalment ({{ width }}x{{ height }}px). Les imatges orientades horitzontalment no estan permeses.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>L'imatge està orientada verticalment ({{ width }}x{{ height }}px). Les imatges orientades verticalment no estan permeses.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>No està permès un fixter buit.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>No s'ha pogut resoldre l'amfitrió.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Aquest valor no coincideix amb l'esperat {{ charset }} joc de caràcters.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Aquest no és un codi d'identificació bancari (BIC) vàlid.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Error</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Aquest valor no és un UUID vàlid.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Aquest valor ha de ser múltiple de {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Aquest Codi d'identificació bancari (BIC) no està associat amb l'IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Aquest valor hauria de ser un JSON vàlid.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Aquesta col·lecció només hauria de contenir elements únics.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Aquest valor hauria de ser positiu.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Aquest valor ha de ser positiu o zero.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Aquest valor ha de ser negatiu.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Aquest valor ha de ser negatiu o zero.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Aquest valor no és una zona horària vàlida.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Aquesta contrasenya s'ha filtrat en cas de violació de dades, no s'ha d'utilitzar. Utilitzeu una altra contrasenya.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Aquest valor ha d'estar entre {{ min }} i {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Aquest valor no és un nom d'amfitrió vàlid.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>El nombre d'elements d'aquesta col·lecció ha de ser múltiple de {{compared_value}}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Aquest valor ha de satisfer almenys una de les restriccions següents:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Cada element d'aquesta col·lecció hauria de satisfer el seu propi conjunt de restriccions.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Aquest valor no és un número d'identificació de valors internacionals (ISIN) vàlid.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Aquest valor hauria de ser una expressió vàlida.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Aquest valor no és un color CSS vàlid.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Aquest valor no és una notació CIDR vàlida.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>El valor de la màscara de xarxa hauria d'estar entre {{ min }} i {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.cs.xlf 0000644 00000060047 15120140577 0014537 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Tato hodnota musí být nepravdivá (false).</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Tato hodnota musí být pravdivá (true).</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Tato hodnota musí být typu {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Tato hodnota musí být prázdná.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Vybraná hodnota není platnou možností.</target> </trans-unit> <trans-unit id="6"> <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 }} 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"> <source>One or more of the given values is invalid.</source> <target>Některé z uvedených hodnot jsou neplatné.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Toto pole nebylo očekáváno.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Toto pole chybí.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Tato hodnota není platné datum.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Tato hodnota není platné datum s časovým údajem.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Tato hodnota není platná e-mailová adresa.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Soubor nebyl nalezen.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Soubor je nečitelný.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Soubor je příliš velký ({{ size }} {{ suffix }}). Maximální povolená velikost souboru je {{ 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>Neplatný mime typ souboru ({{ type }}). Povolené mime typy souborů jsou {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Tato hodnota nesmí být prázdná.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Tato hodnota nesmí být null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Tato hodnota musí být null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Tato hodnota není platná.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Tato hodnota není platný časový údaj.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Tato hodnota není platná URL adresa.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Tyto dvě hodnoty musí být stejné.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Soubor je příliš velký. Maximální povolená velikost souboru je {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Soubor je příliš velký.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Soubor se nepodařilo nahrát.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Tato hodnota musí být číslo.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Tento soubor není obrázek.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Toto není platná IP adresa.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Tento jazyk neexistuje.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Tato lokalizace neexistuje.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Tato země neexistuje.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Tato hodnota je již používána.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Nepodařily se zjistit rozměry obrázku.</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>Obrázek je příliš široký ({{ width }}px). Maximální povolená šířka obrázku je {{ 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>Obrázek je příliš úzký ({{ width }}px). Minimální šířka musí být {{ 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>Obrázek je příliš vysoký ({{ height }}px). Maximální povolená výška obrázku je {{ 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>Obrázek je příliš nízký ({{ height }}px). Minimální výška obrázku musí být {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <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 }} 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"> <source>The file was only partially uploaded.</source> <target>Byla nahrána jen část souboru.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Žádný soubor nebyl nahrán.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>V php.ini není nastavena cesta k adresáři pro dočasné soubory.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Dočasný soubor se nepodařilo zapsat na disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Rozšíření PHP zabránilo nahrání souboru.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Neplatné číslo karty.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Nepodporovaný typ karty nebo neplatné číslo karty.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Toto je neplatný IBAN.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Tato hodnota není platné ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Tato hodnota není platné ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Tato hodnota není platné ISBN-10 ani ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Tato hodnota není platné ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Tato měna neexistuje.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Tato hodnota musí být rovna {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Tato hodnota musí být větší než {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Tato hodnota musí být větší nebo rovna {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Tato hodnota musí být typu {{ compared_value_type }} a zároveň musí být rovna {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Tato hodnota musí být menší než {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Tato hodnota musí být menší nebo rovna {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Tato hodnota nesmí být rovna {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Tato hodnota nesmí být typu {{ compared_value_type }} a zároveň nesmí být rovna {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Poměr stran obrázku je příliš velký ({{ ratio }}). Maximální povolený poměr stran obrázku je {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Poměr stran obrázku je příliš malý ({{ ratio }}). Minimální povolený poměr stran obrázku je {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Strany obrázku jsou čtvercové ({{ width }}x{{ height }}px). Čtvercové obrázky nejsou povolené.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Obrázek je orientovaný na šířku ({{ width }}x{{ height }}px). Obrázky orientované na šířku nejsou povolené.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Obrázek je orientovaný na výšku ({{ width }}x{{ height }}px). Obrázky orientované na výšku nejsou povolené.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Soubor nesmí být prázdný.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Hostitele nebylo možné rozpoznat.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Tato hodnota neodpovídá očekávané znakové sadě {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Tato hodnota není platný identifikační kód podniku (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Chyba</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Tato hodnota není platné UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Tato hodnota musí být násobek hodnoty {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Bankovní identifikační kód (BIC) neodpovídá mezinárodnímu číslu účtu (IBAN) {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Tato hodnota musí být validní JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Tato kolekce musí obsahovat pouze unikátní prvky.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Tato hodnota musí být kladná.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Tato hodnota musí být buď kladná nebo nula.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Tato hodnota musí být záporná.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Tato hodnota musí být buď záporná nebo nula.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Tato časová zóna neexistuje.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Zadané heslo bylo součástí úniku dat, takže ho není možné použít. Použijte prosím jiné heslo.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Hodnota musí být mezi {{ min }} a {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Tato hodnota není platný hostname.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Počet prvků v této kolekci musí být násobek {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Tato hodnota musí splňovat alespoň jedno z následujících omezení:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Každý prvek v této kolekci musí splňovat svá vlastní omezení.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Tato hodnota není platné mezinárodní identifikační číslo cenného papíru (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Tato hodnota musí být platný výraz.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Tato hodnota není platná barva CSS.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Tato hodnota není platná notace CIDR.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Hodnota masky sítě musí být mezi {{ min }} a {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.cy.xlf 0000644 00000045603 15120140577 0014546 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Dylid bod y gwerth hwn yn ffug.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Dylid bod y gwerth hwn yn wir.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Dylid bod y gwerth hwn bod o fath {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Dylid bod y gwerth hwn yn wag.</target> </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> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Rhaid dewis dim mwy na {{ limit }} opsiwn.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Mae un neu fwy o'r gwerthoedd a roddwyd yn annilys.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Nid oedd disgwyl y maes hwn.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Mae'r maes hwn ar goll.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Nid yw'r gwerth yn ddyddiad dilys.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Nid yw'r gwerth yn datetime dilys.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Nid yw'r gwerth yn gyfeiriad ebost dilys.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Ni ddarganfyddwyd y ffeil.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Ni ellir darllen y ffeil.</target> </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> </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> </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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Ni ddylai'r gwerth hwn fod yn wag.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Ni ddylai'r gwerth hwn fod yn null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Dylai'r gwerth fod yn null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Nid yw'r gwerth hwn yn ddilys.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Nid yw'r gwerth hwn yn amser dilys.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Nid yw'r gwerth hwn yn URL dilys.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Rhaid i'r ddau werth fod yn gyfystyr a'u gilydd.</target> </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> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Mae'r ffeil yn rhy fawr.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Methwyd ag uwchlwytho'r ffeil.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Dylai'r gwerth hwn fod yn rif dilys.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Nid yw'r ffeil hon yn ddelwedd dilys.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Nid yw hwn yn gyfeiriad IP dilys.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Nid yw'r gwerth hwn yn iaith ddilys.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Nid yw'r gwerth hwn yn locale dilys.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Nid yw'r gwerth hwn yn wlad dilys.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Mae'r gwerth hwn eisoes yn cael ei ddefnyddio.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Methwyd â 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> </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> </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> </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> </trans-unit> <trans-unit id="47"> <source>This value should be the user's 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 }} 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 ag uwchlwythwyd.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Ni uwchlwythwyd unrhyw ffeil.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Nid oes ffolder dros-dro wedi'i gosod yn php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Methwyd ag 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 ag uwchlwytho oherwydd ategyn PHP.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Nid oedd rhif y cerdyn yn ddilys.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Unai ni dderbynir y math yna o gerdyn, neu nid yw rhif y cerdyn yn ddilys.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Nid yw hwn yn Rhif Cyfrif Banc Rhyngwladol (IBAN) dilys.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Nid yw'r gwerth hwn yn ISBN-10 dilys.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Nid yw'r gwerth hwn yn ISBN-13 dilys.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Nid yw'r gwerth hwn yn Rhif ISBN-10 dilys nac yn ISBN-13 dilys.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Nid yw'r gwerth hwn yn ISSN dilys.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Nid yw'r gwerth hwn yn arian dilys.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Dylai'r gwerth hwn fod yn gyfartal â {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Dylai'r gwerth hwn fod yn fwy na {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Dylai'r gwerth hwn fod yn fwy na neu'n hafal i {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Dylai'r gwerth hwn fod yn union yr un fath â {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Dylai'r gwerth hwn fod yn llai na {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Dylai'r gwerth hwn fod yn llai na neu'n hafal i {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Ni ddylai'r gwerth hwn fod yn hafal i {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ni ddylai'r gwerth hwn fod yn union yr un fath â {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Mae'r gymhareb delwedd yn rhy fawr ({{ ratio }}). Y gymhareb uchaf a ganiateir yw {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Mae'r gymhareb delwedd yn rhy fach ({{ ratio }}). Y gymhareb isaf a ddisgwylir yw {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Mae'r ddelwedd yn sgwâr ({{ width }}x{{ height }}px). Ni chaniateir delweddau sgwâr.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Mae'r ddelwedd mewn fformat tirlun ({{ width }}x{{ height }}px). Ni chaniateir delweddau mewn fformat tirlun.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Mae'r ddelwedd mewn fformat portread ({{ width }}x{{ height }}px). Ni chaniateir delweddau mewn fformat portread.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Ni chaniateir ffeil wag.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Ni fu modd datrys y gwesteiwr.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Nid yw'r gwerth hwn yn cyfateb â'r {{ charset }} set nodau ddisgwyliedig.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Nid yw hwn yn God Adnabod Busnes (BIC) dilys.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Gwall</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Nid yw hyn yn UUID dilys.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Dylai'r gwerth hwn fod yn luosrif o {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Nid yw'r Cod Adnabod Busnes (BIC) hwn yn gysylltiedig ag IBAN {{ iban }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.da.xlf 0000644 00000055665 15120140577 0014530 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Værdien skal være falsk.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Værdien skal være sand.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Værdien skal være af typen {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Værdien skal være blank.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Den valgte værdi er ikke gyldig.</target> </trans-unit> <trans-unit id="6"> <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source> <target>Du skal vælge mindst én mulighed.|Du skal vælge mindst {{ limit }} muligheder.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Du kan højst vælge én mulighed.|Du kan højst vælge {{ limit }} muligheder.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>En eller flere af de angivne værdier er ugyldige.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Feltet blev ikke forventet.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Dette felt mangler.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Værdien er ikke en gyldig dato.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Værdien er ikke et gyldigt tidspunkt.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Værdien er ikke en gyldig e-mailadresse.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Filen kunne ikke findes.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Filen kan ikke læses.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Filen er for stor ({{ size }} {{ suffix }}). Maksimale tilladte størrelse er {{ 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>Filens MIME-type er ugyldig ({{ type }}). Tilladte MIME-typer er {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source> <target>Værdien er for lang. Den må højst indeholde {{ limit }} tegn.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <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 }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source> <target>Værdien er for kort. Den skal indeholde mindst {{ limit }} tegn.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Værdien må ikke være blank.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Værdien må ikke være tom (null).</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Værdien skal være tom (null).</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Værdien er ikke gyldig.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Værdien er ikke et gyldigt klokkeslæt.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Værdien er ikke en gyldig URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>De to værdier skal være ens.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Filen er for stor. Den maksimale størrelse er {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Filen er for stor.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Filen kunne ikke uploades.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Værdien skal være et gyldigt tal.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Filen er ikke gyldigt billede.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Dette er ikke en gyldig IP-adresse.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Værdien er ikke et gyldigt sprog.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Værdien er ikke en gyldig lokalitet.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Værdien er ikke et gyldigt land.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Værdien er allerede i brug.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Størrelsen på billedet kunne ikke detekteres.</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>Billedet er for bredt ({{ width }}px). Største tilladte bredde er {{ 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>Billedet er for smalt ({{ width }}px). Mindste forventede bredde er {{ 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>Billedet er for højt ({{ height }}px). Største tilladte højde er {{ 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>Billedet er for lavt ({{ height }}px). Mindste forventede højde er {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Værdien skal være brugerens nuværende adgangskode.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Værdien skal være på præcis {{ limit }} tegn.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Filen blev kun delvist uploadet.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Ingen fil blev uploadet.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Ingen midlertidig mappe er konfigureret i php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Kan ikke skrive midlertidig fil til disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>En PHP-udvidelse forårsagede fejl i upload.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Denne samling skal indeholde mindst ét element.|Denne samling skal indeholde mindst {{ limit }} elementer.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Denne samling skal indeholde højst ét element.|Denne samling skal indeholde højst {{ limit }} elementer.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Denne samling skal indeholde præcis ét element.|Denne samling skal indeholde præcis {{ limit }} elementer.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Ugyldigt kortnummer.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Ikke-understøttet korttype eller ugyldigt kortnummer.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Det er ikke et gyldigt International Bank Account Number (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Værdien er ikke en gyldig ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Værdien er ikke en gyldig ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Værdien er hverken en gyldig ISBN-10 eller en gyldig ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Værdien er ikke en gyldig ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Denne værdi er ikke en gyldig valuta.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Denne værdi skal være lig med {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Denne værdi skal være større end {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Denne værdi skal være større end eller lig med {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Denne værdi skal være identisk med {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Denne værdi skal være mindre end {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Denne værdi skal være mindre end eller lig med {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Denne værdi bør ikke være lig med {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Denne værdi bør ikke være identisk med {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Billedforholdet er for stort ({{ratio}}). Tilladt maksimumsforhold er {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Billedforholdet er for lille ({{ ratio }}). Minimumsforventet forventet er {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Billedet er firkantet ({{ width }} x {{ height }} px). Firkantede billeder er ikke tilladt.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Billedet er landskabsorienteret ({{width}} x {{height}} px). Landskabsorienterede billeder er ikke tilladt</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Billedet er portrætorienteret ({{ width }}x{{ height }}px). Portrætorienterede billeder er ikke tilladt.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>En tom fil er ikke tilladt.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Værten kunne ikke løses.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Denne værdi stemmer ikke overens med den forventede {{ charset }} charset.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Dette er ikke en gyldig Business Identifier Code (BIC).a</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Fejl</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Dette er ikke en gyldig UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Denne værdi skal være et multiplikation af {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Denne Business Identifier Code (BIC) er ikke forbundet med IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Denne værdi skal være gyldig JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Denne samling bør kun indeholde unikke elementer.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Denne værdi skal være positiv.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Denne værdi skal være enten positiv eller nul.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Denne værdi skal være negativ.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Denne værdi skal være enten negativ eller nul.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Denne værdi er ikke en gyldig tidszone.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Denne adgangskode er blevet lækket i et databrud, det må ikke bruges. Brug venligst en anden adgangskode.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Værdien skal være mellem {{ min }} og {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Værdien er ikke et gyldigt værtsnavn.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Antallet af elementer i denne samling skal være en multiplikation af {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Værdien skal overholde mindst én af følgende krav:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Hvert element i denne samling skal overholde dens egne krav.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Værdien er ikke et gyldig International Securities Identification Number (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Værdien skal være et gyldigt udtryk.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Værdien skal være en gyldig CSS farve.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Værdien er ikke en gyldig CIDR notation.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Værdien af netmasken skal være mellem {{ min }} og {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.de.xlf 0000644 00000060520 15120140577 0014516 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Dieser Wert sollte false sein.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Dieser Wert sollte true sein.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Dieser Wert sollte vom Typ {{ type }} sein.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Dieser Wert sollte leer sein.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Sie haben einen ungültigen Wert ausgewählt.</target> </trans-unit> <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> <trans-unit id="7"> <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"> <source>One or more of the given values is invalid.</source> <target>Einer oder mehrere der angegebenen Werte sind ungültig.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Dieses Feld wurde nicht erwartet.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Dieses Feld fehlt.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Dieser Wert entspricht keiner gültigen Datumsangabe.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Dieser Wert entspricht keiner gültigen Datums- und Zeitangabe.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Dieser Wert ist keine gültige E-Mail-Adresse.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Die Datei wurde nicht gefunden.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Die Datei ist nicht lesbar.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Die Datei ist zu groß ({{ size }} {{ suffix }}). Die maximal zulässige Größe beträgt {{ 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>Der Dateityp ist ungültig ({{ type }}). Erlaubte Dateitypen sind {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Dieser Wert sollte nicht leer sein.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Dieser Wert sollte nicht null sein.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Dieser Wert sollte null sein.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Dieser Wert ist nicht gültig.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Dieser Wert entspricht keiner gültigen Zeitangabe.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Dieser Wert ist keine gültige URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Die beiden Werte sollten identisch sein.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Die Datei ist zu groß. Die maximal zulässige Größe beträgt {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Die Datei ist zu groß.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Die Datei konnte nicht hochgeladen werden.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Dieser Wert sollte eine gültige Zahl sein.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Diese Datei ist kein gültiges Bild.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Dies ist keine gültige IP-Adresse.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Dieser Wert entspricht keiner gültigen Sprache.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Dieser Wert entspricht keinem gültigen Gebietsschema.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Dieser Wert entspricht keinem gültigen Land.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Dieser Wert wird bereits verwendet.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Die Größe des Bildes konnte nicht ermittelt werden.</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>Die Bildbreite ist zu groß ({{ width }}px). Die maximal zulässige Breite beträgt {{ 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>Die Bildbreite ist zu gering ({{ width }}px). Die erwartete Mindestbreite beträgt {{ 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>Die Bildhöhe ist zu groß ({{ height }}px). Die maximal zulässige Höhe beträgt {{ 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>Die Bildhöhe ist zu gering ({{ height }}px). Die erwartete Mindesthöhe beträgt {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Dieser Wert sollte dem aktuellen Benutzerpasswort entsprechen.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Die Datei wurde nur teilweise hochgeladen.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Es wurde keine Datei hochgeladen.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Es wurde kein temporärer Ordner in der php.ini konfiguriert oder der temporäre Ordner existiert nicht.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Kann die temporäre Datei nicht speichern.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Eine PHP-Erweiterung verhinderte den Upload.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Ungültige Kartennummer.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Nicht unterstützter Kartentyp oder ungültige Kartennummer.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Dieser Wert ist keine gültige internationale Bankkontonummer (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Dieser Wert entspricht keiner gültigen ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Dieser Wert entspricht keiner gültigen ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Dieser Wert ist weder eine gültige ISBN-10 noch eine gültige ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Dieser Wert ist keine gültige ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Dieser Wert ist keine gültige Währung.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Dieser Wert sollte gleich {{ compared_value }} sein.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Dieser Wert sollte größer als {{ compared_value }} sein.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Dieser Wert sollte größer oder gleich {{ compared_value }} sein.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Dieser Wert sollte identisch sein mit {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Dieser Wert sollte kleiner als {{ compared_value }} sein.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Dieser Wert sollte kleiner oder gleich {{ compared_value }} sein.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Dieser Wert sollte nicht {{ compared_value }} sein.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Dieser Wert sollte nicht identisch sein mit {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Das Seitenverhältnis des Bildes ist zu groß ({{ ratio }}). Der erlaubte Maximalwert ist {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Das Seitenverhältnis des Bildes ist zu klein ({{ ratio }}). Der erwartete Minimalwert ist {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Das Bild ist quadratisch ({{ width }}x{{ height }}px). Quadratische Bilder sind nicht erlaubt.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Das Bild ist im Querformat ({{ width }}x{{ height }}px). Bilder im Querformat sind nicht erlaubt.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Das Bild ist im Hochformat ({{ width }}x{{ height }}px). Bilder im Hochformat sind nicht erlaubt.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Eine leere Datei ist nicht erlaubt.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Der Hostname konnte nicht aufgelöst werden.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Dieser Wert entspricht nicht dem erwarteten Zeichensatz {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Dieser Wert ist keine gültige internationale Bankleitzahl (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Fehler</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Dies ist keine gültige UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Dieser Wert sollte ein Vielfaches von {{ compared_value }} sein.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Diese internationale Bankleitzahl (BIC) ist nicht mit der IBAN {{ iban }} assoziiert.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Dieser Wert sollte gültiges JSON sein.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Diese Sammlung darf keine doppelten Elemente enthalten.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Diese Zahl sollte positiv sein.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Diese Zahl sollte entweder positiv oder 0 sein.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Diese Zahl sollte negativ sein.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Diese Zahl sollte entweder negativ oder 0 sein.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Dieser Wert ist keine gültige Zeitzone.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Dieses Passwort ist Teil eines Datenlecks, es darf nicht verwendet werden.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Dieser Wert sollte zwischen {{ min }} und {{ max }} sein.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Dieser Wert ist kein gültiger Hostname.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Die Anzahl an Elementen in dieser Sammlung sollte ein Vielfaches von {{ compared_value }} sein.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Dieser Wert sollte eine der folgenden Bedingungen erfüllen:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Jedes Element dieser Sammlung sollte seine eigene Menge an Bedingungen erfüllen.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Dieser Wert ist keine gültige Internationale Wertpapierkennnummer (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Dieser Wert sollte eine gültige Expression sein.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Dieser Wert ist keine gültige CSS-Farbe.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Dieser Wert entspricht nicht der CIDR-Notation.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Der Wert der Subnetzmaske sollte zwischen {{ min }} und {{ max }} liegen.</target> </trans-unit> <trans-unit id="104"> <source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source> <target>Der Dateiname ist zu lang. Er sollte nicht länger als {{ filename_max_length }} Zeichen sein.|Der Dateiname ist zu lang. Er sollte nicht länger als {{ filename_max_length }} Zeichen sein.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.el.xlf 0000644 00000070356 15120140577 0014536 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Αυτή η τιμή πρέπει να είναι ψευδής.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Αυτή η τιμή πρέπει να είναι αληθής.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Αυτή η τιμή πρέπει να είναι τύπου {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Αυτή η τιμή πρέπει να είναι κενή.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Η τιμή που επιλέχθηκε δεν αντιστοιχεί σε έγκυρη επιλογή.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Πρέπει να επιλέξτε το πολύ {{ limit }} επιλογή.|Πρέπει να επιλέξτε το πολύ {{ limit }} επιλογές.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Μια ή περισσότερες τιμές δεν είναι έγκυρες.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Αυτό το πεδίο δεν ήταν αναμενόμενο.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Λείπει αυτό το πεδίο.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Η τιμή δεν αντιστοιχεί σε έγκυρη ημερομηνία.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Η τιμή δεν αντιστοιχεί σε έγκυρη ημερομηνία και ώρα.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Η τιμή δεν αντιστοιχεί σε έγκυρο email.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Το αρχείο δε μπορεί να βρεθεί.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Το αρχείο δεν είναι αναγνώσιμο.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Το αρχείο είναι πολύ μεγάλο ({{ size }} {{ suffix }}). Το μέγιστο επιτρεπτό μέγεθος είναι {{ 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>Ο τύπος mime του αρχείου δεν είναι έγκυρος ({{ type }}). Οι έγκυροι τύποι mime είναι {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Αυτή η τιμή θα έπρεπε να είναι {{ limit }} ή λιγότερο.</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>Αυτή η τιμή θα έπρεπε να είναι {{ limit }} ή περισσότερο.</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>Αυτή η τιμή δεν πρέπει να είναι κενή.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Αυτή η τιμή δεν πρέπει να είναι μηδενική.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Αυτή η τιμή πρέπει να είναι μηδενική.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Αυτή η τιμή δεν είναι έγκυρη.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Αυτή η τιμή δεν αντιστοιχεί σε έγκυρη ώρα.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Αυτή η τιμή δεν αντιστοιχεί σε έγκυρο URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Οι δύο τιμές θα πρέπει να είναι ίδιες.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Το αρχείο είναι πολύ μεγάλο. Το μέγιστο επιτρεπτό μέγεθος είναι {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Το αρχείο είναι πολύ μεγάλο.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Το αρχείο δε μπορεί να ανέβει.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Αυτή η τιμή θα πρέπει να είναι ένας έγκυρος αριθμός.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Το αρχείο δεν αποτελεί έγκυρη εικόνα.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Αυτό δεν είναι μια έγκυρη διεύθυνση IP.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Αυτή η τιμή δεν αντιστοιχεί σε μια έγκυρη γλώσσα.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Αυτή η τιμή δεν αντιστοιχεί σε έγκυρο κωδικό τοποθεσίας.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Αυτή η τιμή δεν αντιστοιχεί σε μια έγκυρη χώρα.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Αυτή η τιμή χρησιμοποιείται ήδη.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Το μέγεθος της εικόνας δεν ήταν δυνατό να ανιχνευθεί.</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>Το πλάτος της εικόνας είναι πολύ μεγάλο ({{ width }}px). Το μέγιστο επιτρεπτό πλάτος είναι {{ 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>Το πλάτος της εικόνας είναι πολύ μικρό ({{ width }}px). Το ελάχιστο επιτρεπτό πλάτος είναι {{ 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>Το ύψος της εικόνας είναι πολύ μεγάλο ({{ height }}px). Το μέγιστο επιτρεπτό ύψος είναι {{ 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>Το ύψος της εικόνας είναι πολύ μικρό ({{ height }}px). Το ελάχιστο επιτρεπτό ύψος είναι {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Αυτή η τιμή θα έπρεπε να είναι ο τρέχων κωδικός.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Το αρχείο δεν ανέβηκε ολόκληρο.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Δεν ανέβηκε κανένα αρχείο.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Κανένας προσωρινός φάκελος δεν έχει ρυθμιστεί στο php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Αδυναμία εγγραφής προσωρινού αρχείου στο δίσκο.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Μια επέκταση PHP προκάλεσε αδυναμία ανεβάσματος.</target> </trans-unit> <trans-unit id="54"> <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 }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Αυτή η συλλογή θα πρέπει να περιέχει {{ limit }} στοιχείo ή λιγότερα.|Αυτή η συλλογή θα πρέπει να περιέχει {{ limit }} στοιχεία ή λιγότερα.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Αυτή η συλλογή θα πρέπει να περιέχει ακριβώς {{ limit }} στοιχείo.|Αυτή η συλλογή θα πρέπει να περιέχει ακριβώς {{ limit }} στοιχεία.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Μη έγκυρος αριθμός κάρτας.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Μη υποστηριζόμενος τύπος κάρτας ή μη έγκυρος αριθμός κάρτας.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Αυτό δεν αντιστοιχεί σε έγκυρο διεθνή αριθμό τραπεζικού λογαριασμού (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Αυτό δεν είναι έγκυρος κωδικός ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Αυτό δεν είναι έγκυρος κωδικός ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Αυτό δεν είναι ούτε έγκυρος κωδικός ISBN-10 ούτε έγκυρος κωδικός ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Αυτό δεν είναι έγκυρος κωδικός ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Αυτό δεν αντιστοιχεί σε έγκυρο νόμισμα.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Αυτή η τιμή θα πρέπει να είναι ίση με {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Αυτή η τιμή θα πρέπει να είναι μεγαλύτερη από {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Αυτή η τιμή θα πρέπει να είναι μεγαλύτερη ή ίση με {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Αυτή η τιμή θα πρέπει να είναι πανομοιότυπη με {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Αυτή η τιμή θα πρέπει να είναι μικρότερη από {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Αυτή η τιμή θα πρέπει να είναι μικρότερη ή ίση με {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Αυτή η τιμή δεν θα πρέπει να είναι ίση με {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Αυτή η τιμή δεν πρέπει να είναι πανομοιότυπη με {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Η αναλογία πλάτους-ύψους της εικόνας είναι πολύ μεγάλη ({{ ratio }}). Μέγιστη επιτρεπτή αναλογία {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Η αναλογία πλάτους-ύψους της εικόνας είναι πολύ μικρή ({{ ratio }}). Ελάχιστη επιτρεπτή αναλογία {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Η εικόνα είναι τετράγωνη ({{ width }}x{{ height }}px). Δεν επιτρέπονται τετράγωνες εικόνες.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Η εικόνα έχει οριζόντιο προσανατολισμό ({{ width }}x{{ height }}px). Δεν επιτρέπονται εικόνες με οριζόντιο προσανατολισμό.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Η εικόνα έχει κάθετο προσανατολισμό ({{ width }}x{{ height }}px). Δεν επιτρέπονται εικόνες με κάθετο προσανατολισμό.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Δεν επιτρέπεται κενό αρχείο.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Η διεύθυνση δεν μπόρεσε να επιλυθεί.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Αυτή η τιμή δεν ταιριάζει στο αναμενόμενο {{ charset }} σύνολο χαρακτήρων.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Αυτός δεν είναι ένας έγκυρος κωδικός BIC.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Σφάλμα</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Αυτό δεν είναι ένα έγκυρο UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Αυτή η τιμή θα έπρεπε να είναι πολλαπλάσιο του {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Αυτός ο κωδικός BIC δεν σχετίζεται με το IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Αυτή η τιμή θα πρέπει να είναι έγκυρο JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Αυτή η συλλογή θα πρέπει να περιέχει μόνο μοναδικά στοιχεία.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Αυτή η τιμή θα πρέπει να είναι θετική.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Αυτή η τιμή θα πρέπει να είναι θετική ή μηδενική.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Αυτή η τιμή θα πρέπει να είναι αρνητική.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Αυτή η τιμή θα πρέπει να είναι αρνητική ή μηδενική.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Αυτή η τιμή θα δεν είναι έγκυρη ζώνη ώρας.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Αυτός ο κωδικός πρόσβασης έχει διαρρεύσει σε παραβίαση δεδομένων. Παρακαλούμε να χρησιμοποιήσετε έναν άλλο κωδικό.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Αυτή η τιμή θα πρέπει να είναι μεταξύ {{ min }} και {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Αυτή η τιμή δεν είναι έγκυρο όνομα υποδοχής.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Το νούμερο των στοιχείων σε αυτή τη συλλογή θα πρέπει να είναι πολλαπλάσιο του {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Αυτή η τιμή θα πρέπει να ικανοποιεί τουλάχιστον έναν από τους παρακάτω περιορισμούς: </target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Κάθε στοιχείο σε αυτή τη συλλογή θα πρέπει να ικανοποιεί το δικό του σύνολο περιορισμών.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Αυτή η τιμή δεν είναι έγκυρο International Securities Identification Number (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Αυτή η τιμή θα πρέπει να είναι μία έγκυρη έκφραση.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Αυτή η τιμή δεν είναι έγκυρο χρώμα CSS.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Αυτή η τιμή δεν είναι έγκυρη CIDR σημειογραφία.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Η τιμή του netmask πρέπει να είναι ανάμεσα σε {{ min }} και {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.en.xlf 0000644 00000057131 15120140577 0014534 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>This value should be false.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>This value should be true.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>This value should be of type {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>This value should be blank.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>The value you selected is not a valid choice.</target> </trans-unit> <trans-unit id="6"> <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 }} 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"> <source>One or more of the given values is invalid.</source> <target>One or more of the given values is invalid.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>This field was not expected.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>This field is missing.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>This value is not a valid date.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>This value is not a valid datetime.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>This value is not a valid email address.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>The file could not be found.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>The file is not readable.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ 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>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>This value should not be blank.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>This value should not be null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>This value should be null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>This value is not valid.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>This value is not a valid time.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>This value is not a valid URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>The two values should be equal.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>The file is too large.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>The file could not be uploaded.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>This value should be a valid number.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>This file is not a valid image.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>This is not a valid IP address.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>This value is not a valid language.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>This value is not a valid locale.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>This value is not a valid country.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>This value is already used.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>The size of the image could not be detected.</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>The image width is too big ({{ width }}px). Allowed maximum width is {{ 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>The image width is too small ({{ width }}px). Minimum width expected is {{ 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>The image height is too big ({{ height }}px). Allowed maximum height is {{ 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>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>This value should be the user's current password.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>The file was only partially uploaded.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>No file was uploaded.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>No temporary folder was configured in php.ini, or the configured folder does not exist.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Cannot write temporary file to disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>A PHP extension caused the upload to fail.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Invalid card number.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Unsupported card type or invalid card number.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>This is not a valid International Bank Account Number (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>This value is not a valid ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>This value is not a valid ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>This value is neither a valid ISBN-10 nor a valid ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>This value is not a valid ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>This value is not a valid currency.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>This value should be equal to {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>This value should be greater than {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>This value should be greater than or equal to {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>This value should be less than {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>This value should be less than or equal to {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>This value should not be equal to {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>An empty file is not allowed.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>The host could not be resolved.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>This value does not match the expected {{ charset }} charset.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>This is not a valid Business Identifier Code (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Error</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>This is not a valid UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>This value should be a multiple of {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>This value should be valid JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>This collection should contain only unique elements.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>This value should be positive.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>This value should be either positive or zero.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>This value should be negative.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>This value should be either negative or zero.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>This value is not a valid timezone.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>This password has been leaked in a data breach, it must not be used. Please use another password.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>This value should be between {{ min }} and {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>This value is not a valid hostname.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>The number of elements in this collection should be a multiple of {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>This value should satisfy at least one of the following constraints:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Each element of this collection should satisfy its own set of constraints.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>This value is not a valid International Securities Identification Number (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>This value should be a valid expression.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>This value is not a valid CSS color.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>This value is not a valid CIDR notation.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>The value of the netmask should be between {{ min }} and {{ max }}.</target> </trans-unit> <trans-unit id="104"> <source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source> <target>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.es.xlf 0000644 00000057650 15120140577 0014547 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Este valor debería ser falso.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Este valor debería ser verdadero.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Este valor debería ser de tipo {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Este valor debería estar vacío.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <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 }} 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 }} 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"> <source>One or more of the given values is invalid.</source> <target>Uno o más de los valores indicados no son válidos.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Este campo no se esperaba.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Este campo está desaparecido.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Este valor no es una fecha válida.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Este valor no es una fecha y hora válidas.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Este valor no es una dirección de email válida.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>No se pudo encontrar el archivo.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>No se puede leer el archivo.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>El archivo es demasiado grande ({{ size }} {{ suffix }}). El tamaño máximo permitido es {{ 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>El tipo mime del archivo no es válido ({{ type }}). Los tipos mime válidos son {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Este valor no debería estar vacío.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Este valor no debería ser nulo.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Este valor debería ser nulo.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Este valor no es válido.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Este valor no es una hora válida.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Este valor no es una URL válida.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Los dos valores deberían ser iguales.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>El archivo es demasiado grande. El tamaño máximo permitido es {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>El archivo es demasiado grande.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>No se pudo subir el archivo.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Este valor debería ser un número válido.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>El archivo no es una imagen válida.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Esto no es una dirección IP válida.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Este valor no es un idioma válido.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Este valor no es una localización válida.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Este valor no es un país válido.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Este valor ya se ha utilizado.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>No se pudo determinar el tamaño de la imagen.</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>El ancho de la imagen es demasiado grande ({{ width }}px). El ancho máximo permitido es de {{ 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>El ancho de la imagen es demasiado pequeño ({{ width }}px). El ancho mínimo requerido es {{ 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>La altura de la imagen es demasiado grande ({{ height }}px). La altura máxima permitida es de {{ 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>La altura de la imagen es demasiado pequeña ({{ height }}px). La altura mínima requerida es de {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <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 }} 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"> <source>The file was only partially uploaded.</source> <target>El archivo fue sólo subido parcialmente.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Ningún archivo fue subido.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Ninguna carpeta temporal fue configurada en php.ini o la carpeta configurada no existe.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>No se pudo escribir el archivo temporal en el disco.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Una extensión de PHP hizo que la subida fallara.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Número de tarjeta inválido.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Tipo de tarjeta no soportado o número de tarjeta inválido.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Esto no es un International Bank Account Number (IBAN) válido.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Este valor no es un ISBN-10 válido.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Este valor no es un ISBN-13 válido.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Este valor no es ni un ISBN-10 válido ni un ISBN-13 válido.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Este valor no es un ISSN válido.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Este valor no es una divisa válida.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Este valor debería ser igual que {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Este valor debería ser mayor que {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Este valor debería ser mayor o igual que {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Este valor debería ser idéntico a {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Este valor debería ser menor que {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Este valor debería ser menor o igual que {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Este valor debería ser distinto de {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Este valor no debería ser idéntico a {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>La proporción de la imagen es demasiado grande ({{ ratio }}). La máxima proporción permitida es {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>La proporción de la imagen es demasiado pequeña ({{ ratio }}). La mínima proporción permitida es {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>La imagen es cuadrada ({{ width }}x{{ height }}px). Las imágenes cuadradas no están permitidas.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>La imagen está orientada horizontalmente ({{ width }}x{{ height }}px). Las imágenes orientadas horizontalmente no están permitidas.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>La imagen está orientada verticalmente ({{ width }}x{{ height }}px). Las imágenes orientadas verticalmente no están permitidas.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>No está permitido un archivo vacío.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>No se puede resolver el host.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>La codificación de caracteres para este valor debería ser {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>No es un Código de Identificación Bancaria (BIC) válido.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Error</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Este valor no es un UUID válido.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Este valor debería ser múltiplo de {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Este Código de Identificación Bancaria (BIC) no está asociado con el IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Este valor debería ser un JSON válido.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Esta colección debería tener exclusivamente elementos únicos.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Este valor debería ser positivo.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Este valor debería ser positivo o igual a cero.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Este valor debería ser negativo.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Este valor debería ser negativo o igual a cero.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Este valor no es una zona horaria válida.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Esta contraseña no se puede utilizar porque está incluida en un listado de contraseñas públicas obtenido gracias a fallos de seguridad de otros sitios y aplicaciones. Por favor utilice otra contraseña.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Este valor debería estar entre {{ min }} y {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Este valor no es un nombre de host válido.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>El número de elementos en esta colección debería ser múltiplo de {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Este valor debería satisfacer al menos una de las siguientes restricciones:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Cada elemento de esta colección debería satisfacer su propio conjunto de restricciones.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Este valor no es un número de identificación internacional de valores (ISIN) válido.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Este valor debería ser una expresión válida.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Este valor no es un color CSS válido.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Este valor no es una notación CIDR válida.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>El valor de la máscara de red debería estar entre {{ min }} y {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.et.xlf 0000644 00000055534 15120140577 0014547 0 ustar 00 <?xml version='1.0'?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Väärtus peaks olema väär.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Väärtus peaks oleme tõene.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Väärtus peaks olema {{ type }}-tüüpi.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Väärtus peaks olema tühi.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Väärtus peaks olema üks etteantud valikutest.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Valima peaks mitte rohkem kui {{ limit }} valikut.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Üks või rohkem väärtustest on vigane.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>See väli ei olnud oodatud.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>See väli on puudu.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Väärtus pole korrektne kuupäev.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Väärtus pole korrektne kuupäev ja kellaeg.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Väärtus pole korrektne e-maili aadress.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Faili ei leita.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Fail ei ole loetav.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fail on liiga suur ({{ size }} {{ suffix }}). Suurim lubatud suurus on {{ 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>Faili sisutüüp on vigane ({{ type }}). Lubatud sisutüübid on {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Väärtus ei tohiks olla tühi.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Väärtus ei tohiks olla 'null'.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Väärtus peaks olema 'null'.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Väärtus on vigane.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Väärtus pole korrektne aeg.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Väärtus pole korrektne URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Väärtused peaksid olema võrdsed.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fail on liiga suur. Maksimaalne lubatud suurus on {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Fail on liiga suur.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Faili ei saa üles laadida.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Väärtus peaks olema korrektne number.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Fail ei ole korrektne pilt.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>IP aadress pole korrektne.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Väärtus pole korrektne keel.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Väärtus pole korrektne asukohakeel.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Väärtus pole olemasolev riik.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Väärtust on juba kasutatud.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Pildi suurust polnud võimalik tuvastada.</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>Pilt on liiga lai ({{ width }}px). Suurim lubatud laius on {{ 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>Pilt on liiga kitsas ({{ width }}px). Vähim lubatud laius on {{ 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>Pilt on liiga pikk ({{ height }}px). Lubatud suurim pikkus on {{ 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>Pilt pole piisavalt pikk ({{ height }}px). Lubatud vähim pikkus on {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Väärtus peaks olema kasutaja kehtiv salasõna.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Väärtus peaks olema täpselt {{ limit }} tähemärk pikk.|Väärtus peaks olema täpselt {{ limit }} tähemärki pikk.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Fail ei laetud täielikult üles.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Ühtegi faili ei laetud üles.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Ühtegi ajutist kausta polnud php.ini-s seadistatud.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Ajutist faili ei saa kettale kirjutada.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP laiendi tõttu ebaõnnestus faili üleslaadimine.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Kogumikus peaks olema vähemalt {{ limit }} element.|Kogumikus peaks olema vähemalt {{ limit }} elementi.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Kogumikus peaks olema ülimalt {{ limit }} element.|Kogumikus peaks olema ülimalt {{ limit }} elementi.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Kogumikus peaks olema täpselt {{ limit }} element.|Kogumikus peaks olema täpselt {{ limit }}|elementi.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Vigane kaardi number.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Kaardi tüüpi ei toetata või kaardi number on vigane.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Väärtus pole korrektne IBAN-number.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Väärtus pole korrektne ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Väärtus pole korrektne ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Väärtus pole korrektne ISBN-10 ega ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Väärtus pole korrektne ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Väärtus pole korrektne valuuta.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Väärtus peaks olema võrdne {{ compared_value }}-ga.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Väärtus peaks olema suurem kui {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Väärtus peaks olema suurem kui või võrduma {{ compared_value }}-ga.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Väärtus peaks olema identne väärtusega {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Väärtus peaks olema väiksem kui {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Väärtus peaks olema väiksem kui või võrduma {{ compared_value }}-ga.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Väärtus ei tohiks võrduda {{ compared_value }}-ga.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Väärtus ei tohiks olla identne väärtusega {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Kuvasuhe on liiga suur ({{ ratio }}). Lubatud maksimaalne suhe on {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Kuvasuhe on liiga väike ({{ ratio }}). Oodatav minimaalne suhe on {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Pilt on ruudukujuline ({{ width }}x{{ height }}px). Ruudukujulised pildid pole lubatud.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Pilt on horisontaalselt orienteeritud ({{ width }}x{{ height }}px). Maastikulised pildid pole lubatud.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Pilt on vertikaalselt orienteeritud ({{ width }}x{{ height }}px). Portreepildid pole lubatud.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Tühi fail pole lubatud.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Sellist domeeni ei õnnestunud leida.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>See väärtus ei ühti eeldatava tähemärgiga {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>See ei ole kehtiv ettevõtte identifitseerimiskood (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Viga</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>See pole kehtiv UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>See väärtus peaks olema väärtuse {{ compared_value }} kordne.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>See ettevõtte identifitseerimiskood (BIC) ei ole seotud IBAN-iga {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>See väärtus peaks olema kehtiv JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>See kogu peaks sisaldama ainult unikaalseid elemente.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>See väärtus peaks olema positiivne.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>See väärtus peaks olema kas positiivne või null.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>See väärtus peaks olema negatiivne.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>See väärtus peaks olema kas negatiivne või null.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>See väärtus pole kehtiv ajavöönd.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>See parool on lekkinud andmerikkumise korral, seda ei tohi kasutada. Palun kasutage muud parooli.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>See väärtus peaks olema vahemikus {{ min }} kuni {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>See väärtus pole korrektne domeeninimi.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Selles kogus olevate elementide arv peab olema arvu {{ compared_value }} kordne.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>See väärtus peab vastama vähemalt ühele järgmistest tingimustest:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Kõik väärtused selles kogus peavad vastama oma tingimustele.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>See väärtus pole korrektne ISIN-kood.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>See väärtus pole korrektne avaldis.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>See väärtus pole korrektne CSS-i värv.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>See väärtus pole korrektne CIDR võrguaadress.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Võrgumaski väärtus peaks olema vahemikus {{ min }} kuni {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.eu.xlf 0000644 00000057622 15120140577 0014550 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Balio hau faltsua izan beharko litzateke.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Balio hau egia izan beharko litzateke.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Balio hau {{ type }} motakoa izan beharko litzateke.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Balio hau hutsik egon beharko litzateke.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Hautatu duzun balioa ez da aukera egoki bat.</target> </trans-unit> <trans-unit id="6"> <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source> <target>Gutxienez aukera {{ limit }} hautatu behar duzu.|Gutxienez {{ limit }} aukera hautatu behar dituzu.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Gehienez aukera {{ limit }} hautatu behar duzu.|Gehienez {{ limit }} aukera hautatu behar dituzu.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Emandako balioetatik gutxienez bat ez da egokia.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Eremu hau ez zen espero.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Eremu hau falta da.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Balio hau ez da data egoki bat.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Balio hau ez da data-ordu egoki bat.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Balio hau ez da posta elektroniko egoki bat.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Ezin izan da fitxategia aurkitu.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Fitxategia ez da irakurgarria.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fitxategia handiegia da ({{ size }} {{ suffix }}). Baimendutako tamaina handiena {{ limit }} {{ suffix }} da.</target> </trans-unit> <trans-unit id="17"> <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source> <target>Fitxategiaren mime mota ez da egokia ({{ type }}). Hauek dira baimendutako mime motak: {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Balio hau gehienez {{ limit }} izan beharko litzateke.</target> </trans-unit> <trans-unit id="19"> <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. Gehienez karaktere {{ limit }} eduki beharko luke.|Balio hau luzeegia da. Gehienez {{ limit }} karaktere eduki beharko lituzke.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <target>Balio hau gutxienez {{ limit }} izan beharko litzateke.</target> </trans-unit> <trans-unit id="21"> <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. Karaktere {{ limit }} gutxienez eduki beharko luke.|Balio hau motzegia da. Gutxienez {{ limit }} karaktere eduki beharko lituzke.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Balio hau ez litzateke hutsik egon behar.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Balio hau ez litzateke nulua izan behar.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Balio hau nulua izan beharko litzateke.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Balio hau ez da egokia.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Balio hau ez da ordu egoki bat.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Balio hau ez da baliabideen kokatzaile uniforme (URL) egoki bat.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Bi balioak berdinak izan beharko lirateke.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Fitxategia handiegia da. Baimendutako tamaina handiena {{ limit }} {{ suffix }} da.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Fitxategia handiegia da.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Ezin izan da fitxategia igo.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Balio hau zenbaki egoki bat izan beharko litzateke.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Fitxategi hau ez da irudi egoki bat.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Honako hau ez da IP helbide egoki bat.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Balio hau ez da hizkuntza egoki bat.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Balio hau ez da kokapen egoki bat.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Balio hau ez da herrialde egoki bat.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Balio hau jadanik erabilia izan da.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Ezin izan da irudiaren tamaina detektatu.</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>Irudiaren zabalera handiegia da ({{ width }}px). Onartutako gehienezko zabalera {{ max_width }}px dira.</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>Irudiaren zabalera txikiegia da ({{ width }}px). Onartutako gutxieneko zabalera {{ min_width }}px dira.</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>Irudiaren altuera handiegia da ({{ height }}px). Onartutako gehienezko altuera {{ max_height }}px dira.</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>Irudiaren altuera txikiegia da ({{ height }}px). Onartutako gutxieneko altuera {{ min_height }}px dira.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Balio hau uneko erabiltzailearen pasahitza izan beharko litzateke.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Balio honek zehazki karaktere {{ limit }} izan beharko luke.|Balio honek zehazki {{ limit }} karaktere izan beharko lituzke.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Fitxategiaren zati bat bakarrik igo da.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Ez da fitxategirik igo.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Ez da aldi baterako karpetarik konfiguratu php.ini fitxategian.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Ezin izan da aldi baterako fitxategia diskoan idatzi.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP luzapen batek igoeraren hutsa eragin du.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Bilduma honek gutxienez elementu {{ limit }} eduki beharko luke.|Bilduma honek gutxienez {{ limit }} elementu eduki beharko lituzke.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Bilduma honek gehienez elementu {{ limit }} eduki beharko luke.|Bilduma honek gehienez {{ limit }} elementu eduki beharko lituzke.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Bilduma honek zehazki elementu {{ limit }} eduki beharko luke.|Bilduma honek zehazki {{ limit }} elementu eduki beharko lituzke.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Txartel zenbaki baliogabea.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Txartel mota onartezina edo txartel zenbaki baliogabea.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Hau ez da baliozko banku internazionaleko kontu zenbaki (IBAN) bat.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Balio hau ez da onartutako ISBN-10 bat.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Balio hau ez da onartutako ISBN-13 bat.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Balio hau ez da onartutako ISBN-10 edo ISBN-13 bat.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Balio hau ez da onartutako ISSN bat.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Balio hau ez da baliozko moneta bat.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Balio hau {{ compared_value }}-(r)en berbera izan beharko litzateke.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Balio hau {{ compared_value }} baino handiagoa izan beharko litzateke.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Balio hau {{ compared_value }}-(r)en berdina edota handiagoa izan beharko litzateke.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Balio hau {{ compared_value_type }} {{ compared_value }}-(r)en berbera izan beharko litzateke.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Balio hau {{ compared_value }} baino txikiagoa izan beharko litzateke.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Balio hau {{ compared_value }}-(r)en berdina edota txikiagoa izan beharko litzateke.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Balio hau ez litzateke {{ compared_value }}-(r)en berdina izan behar.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Balio hau ez litzateke {{ compared_value_type }} {{ compared_value }}-(r)en berbera izan behar.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Irudiaren proportzioa oso handia da ({{ ratio }}). Onartutako proportzio handienda {{ max_ratio }} da.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Irudiaren proportzioa oso txikia da ({{ ratio }}). Onartutako proportzio txikiena {{ min_ratio }} da.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Irudia karratua da ({{ width }}x{{ height }}px). Karratuak diren irudiak ez dira onartzen.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Irudia horizontalki bideratua dago ({{ width }}x{{ height }}px). Horizontalki bideratutako irudiak ez dira onartzen.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Irudia bertikalki bideratua dago ({{ width }}x{{ height }}px). Bertikalki bideratutako irudiak ez dira onartzen.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Hutsik dagoen fitxategia ez da onartzen.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Host-a ezin da ebatzi.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Balio honen karaktere kodea ez da esperotakoa {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Ez da balizko Banku Identifikazioko Kodea (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Errore</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Balio hau ez da onartutako UUID bat.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Balio honek {{ compared_value }}-ren multiploa izan beharko luke.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Banku Identifikazioko Kode hau ez dago lotuta {{ IBAN }} IBAN-rekin.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Balio honek baliozko JSON bat izan behar luke.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Bilduma honek elementu bakarrak soilik izan beharko lituzke.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Balio honek positiboa izan beharko luke.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Balio honek positiboa edo zero izan behar luke.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Balio honek negatiboa izan behar luke.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Balio honek negatiboa edo zero izan behar luke.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Balio hori ez da baliozko ordu-eremua.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Pasahitz hori ezin da erabili, beste gune eta aplikazio batzuetako segurtasun-akatsei esker lortutako pasahitz publikoen zerrendan sartuta dagoelako. Mesedez, erabili beste pasahitz bat.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Balio honek {{ min }} eta {{ max }} artean egon behar luke.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Balio hori ez da ostalari-izen onargarria.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Bilduma honetako elementu-kopuruak {{ compared_value }}-ren multiploa izan behar luke.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Balio honek, gutxienez, murrizketa hauetako bat bete behar du:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Bilduma honetako elementu bakoitzak bere murriztapen-multzoa bete behar du.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Balio hori ez da baliozko baloreen nazioarteko identifikazio-zenbaki bat (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Balio hori baliozko adierazpena izan beharko litzateke.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Balio hori ez da baliozko CSS kolorea.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Balio hori ez da baliozko CIDR notazioa.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Maskararen balioa {{ min }} eta {{ max }} artekoa izan beharko litzateke.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.fa.xlf 0000644 00000064526 15120140577 0014526 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>این مقدار باید نادرست (False) باشد.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>این مقدار باید درست (True) باشد.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>این مقدار باید از نوع {{ type }} باشد.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>این مقدار باید خالی باشد.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>مقدار انتخاب شده یک گزینه معتبر نمیباشد.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>شما باید حداکثر {{ limit }} گزینه انتخاب نمایید.|شما باید حداکثر {{ limit }} گزینه انتخاب نمایید.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>یک یا چند مقدار داده شده نامعتبر است.</target> </trans-unit> <trans-unit id="9"> <source>The fields {{ fields }} were not expected.</source> <target>فیلدهای {{ fields }} مورد انتظار نبود.</target> </trans-unit> <trans-unit id="10"> <source>The fields {{ fields }} are missing.</source> <target>فیلدهای {{ fields }} مفقود شده اند.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>این مقدار یک تاریخ معتبر نمیباشد.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>این مقدار یک تاریخ و زمان معتبر نمیباشد.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>این یک آدرس رایانامه (ایمیل) معتبر نمیباشد.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>فایل یافت نشد.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>فایل قابل خواندن نیست.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>فایل بیش از اندازه بزرگ است({{ size }} {{ suffix }}). بیشینه (حداکثر) اندازه مجاز برابر با {{ 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>نوع mime این فایل نامعتبر است({{ type }}). انواع mime مجاز {{ types }} هستند.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>این مقدار باید کوچکتر و یا مساوی {{ limit }} باشد.</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>این مقدار باید بزرگتر و یا مساوی {{ limit }} باشد.</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>این مقدار نباید خالی باشد.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>این مقدار نباید خالی باشد.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>این مقدار باید خالی باشد.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>این مقدار معتبر نمیباشد.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>این مقدار یک زمان معتبر نمیباشد.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>این مقدار شامل یک URL معتبر نمیباشد.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>دو مقدار باید با یکدیگر برابر باشند.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>فایل بیش از اندازه بزرگ است. بیشینه (حداکثر) اندازه مجاز {{ limit }} {{ suffix }} است.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>فایل بیش از اندازه بزرگ است.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>بارگذاری فایل با شکست مواجه گردید.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>این مقدار باید یک عدد معتبر باشد.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>این فایل یک تصویر معتبر نمیباشد.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>این آدرس IP معتبر نیست.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>این مقدار یک زبان معتبر نمیباشد.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>این مقدار یک محل (locale) معتبر نمیباشد.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>این مقدار یک کشور معتبر نمیباشد.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>این مقدار قبلاً استفاده شده است.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>اندازه تصویر قابل شناسایی نمیباشد.</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>عرض تصویر بسیار بزرگ است({{ width }}px). بیشینه (حداکثر) عرض مجاز {{ 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>عرض تصویر بسیار کوچک است({{ width }}px). کمینه (حداقل) عرض مورد انتظار {{ 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>ارتفاع تصویر بسیار بزرگ است({{ height }}px). بیشینه (حداکثر) ارتفاع مجاز {{ 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>ارتفاع تصویر بسیار کوچک است({{ height }}px). کمینه (حداقل) ارتفاع مورد انتظار {{ min_height }}px میباشد.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>این مقدار باید رمزعبور فعلی کاربر باشد.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>فایل به صورت جزئی بارگذاری گردیده است.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>هیچ فایلی بارگذاری نشد.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>پوشه موقتی در php.ini پیکربندی نگردیده است.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>فایل موقتی را نمیتوان در دیسک نوشت.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>یک افزونه PHP باعث شد بارگذاری ناموفق باشد.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>این مجموعه باید دقیقا حاوی {{ limit }} عنصر باشد.|این مجموعه باید دقیقا حاوی {{ limit }} عنصر باشد.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>شماره کارت نامعتبر است.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>نوع کارت پشتیبانی نمیشود و یا شماره کارت نامعتبر میباشد.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>این یک شماره حساب بانک بین المللی معتبر نمیباشد(IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>این مقدار یک ISBN-10 معتبر نمیباشد.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>این مقدار یک ISBN-13 معتبر نمیباشد.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>این مقدار یک ISBN-10 معتبر و یا ISBN-13 معتبر نمیباشد.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>این مقدار یک ISSN معتبر نمیباشد.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>این مقدار یک واحد پول معتبر نمیباشد.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>این مقدار باید برابر با {{ compared_value }} باشد.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>این مقدار باید از {{ compared_value }} بیشتر باشد.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>این مقدار باید بزرگتر و یا مساوی با {{ compared_value }} باشد.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>این مقدار باید برابر {{ compared_value_type }} {{ compared_value }} باشد.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>این مقدار باید کمتر از {{ compared_value }} باشد.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>این مقدار باید کمتر و یا مساوی با {{ compared_value }} باشد.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>این مقدار نباید با {{ compared_value }} برابر باشد.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>این مقدار نباید برابر {{ compared_value_type }} {{ compared_value }} باشد.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>ابعاد ({{ ratio }}) عکس بیش از حد بزرگ است. بیشینه (حداکثر) ابعاد مجاز {{ max_ratio }} میباشد.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>ابعاد ({{ ratio }}) عکس بیش از حد کوچک است. کمینه (حداقل) ابعاد مورد انتظار {{ min_ratio }} میباشد.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>این تصویر یک مربع ({{ width }}x{{ height }}px) میباشد. تصاویر مربع شکل مجاز نمیباشند.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>این تصویر افقی ({{ width }}x{{ height }}px) میباشد. تصاویر افقی مجاز نمیباشند.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>این تصویر عمودی ({{ width }}x{{ height }}px) میباشد. تصاویر عمودی مجاز نمیباشند.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>فایل خالی مجاز نمیباشد.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>میزبان (Host) شناسایی نشد.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>این مقدار مطابق charset مورد انتظار {{ charset }} نمی باشد.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>این مقدار یک کد شناسایی کسبوکار معتبر (BIC) نیست.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>خطا</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>این مقدار یک UUID معتبر نمیباشد.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>این مقدار باید چند برابر {{ compared_value }} باشد.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>این کد شناسایی کسبوکار (BIC) با شماره حساب بانکی بینالمللی (IBAN) {{ iban }} مرتبط نیست.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>این مقدار باید یک JSON معتبر باشد.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>این مجموعه باید فقط حاوی عناصر یکتا باشد.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>این مقدار باید مثبت باشد.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>این مقدار باید مثبت یا صفر باشد.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>این مقدار باید منفی باشد.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>این مقدار باید منفی یا صفر باشد.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>این مقدار یک منطقهزمانی (timezone) معتبر نیست.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>این رمزعبور در یک رخنهی اطلاعاتی نشت کرده است. لطفاً از یک رمزعبور دیگر استفاده کنید.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>این مقدار باید بین {{ min }} و {{ max }} باشد</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>این مقدار یک hostname معتبر نیست.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>تعداد عناصر این مجموعه باید ضریبی از {{ compared_value }} باشد.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>این مقدار باید حداقل یکی از محدودیتهای زیر را ارضا کند:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>هر یک از عناصر این مجموعه باید دسته محدودیتهای خودش را ارضا کند.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>این مقدار یک شماره شناسایی بینالمللی اوراق بهادار (ISIN) معتبر نیست.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>این مقدار باید یک عبارت معتبر باشد.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>این مقدار یک رنگ معتبر در CSS نیست.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>این مقدار یک نماد معتبر در CIDR نیست.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>مقدار ماسک شبکه (NetMask) باید بین {{ min }} و {{ max }} باشد.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.fi.xlf 0000644 00000056140 15120140577 0014527 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Arvon tulee olla epätosi.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Arvon tulee olla tosi.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Arvon tulee olla tyyppiä {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Arvon tulee olla tyhjä.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Arvon tulee olla yksi annetuista vaihtoehdoista.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Sinun tulee valitan enintään {{ limit }} vaihtoehtoa.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Yksi tai useampi annetuista arvoista on virheellinen.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Tässä kentässä ei odotettu.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Tämä kenttä puuttuu.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Annettu arvo ei ole kelvollinen päivämäärä.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Annettu arvo ei ole kelvollinen päivämäärä ja kellonaika.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Annettu arvo ei ole kelvollinen sähköpostiosoite.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Tiedostoa ei löydy.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Tiedostoa ei voida lukea.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Tiedostonkoko ({{ size }} {{ suffix }}) on liian iso. Suurin sallittu tiedostonkoko on {{ 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>Tiedostotyyppi ({{ type }}) on virheellinen. Sallittuja tiedostotyyppejä ovat {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Kenttä ei voi olla tyhjä.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Syöte ei voi olla null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Syötteen tulee olla null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Virheellinen arvo.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Annettu arvo ei ole kelvollinen kellonaika.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Annettu arvo ei ole kelvollinen URL-osoite.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Kahden annetun arvon tulee olla samat.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Annettu tiedosto on liian iso. Suurin sallittu tiedostokoko on {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Tiedosto on liian iso.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Tiedoston siirto epäonnistui.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Tämän arvon tulee olla numero.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Tämä tiedosto ei ole kelvollinen kuva.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Tämä ei ole kelvollinen IP-osoite.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Tämä arvo ei ole kelvollinen kieli.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Tämä arvo ei ole kelvollinen kieli- ja alueasetus (locale).</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Tämä arvo ei ole kelvollinen maa.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Tämä arvo on jo käytetty.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Kuvan kokoa ei voitu tunnistaa.</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>Kuva on liian leveä ({{ width }}px). Sallittu maksimileveys on {{ 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>Kuva on liian kapea ({{ width }}px). Leveyden tulisi olla vähintään {{ 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>Kuva on liian korkea ({{ width }}px). Sallittu maksimikorkeus on {{ max_width }}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>Kuva on liian matala ({{ height }}px). Korkeuden tulisi olla vähintään {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <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 }} 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"> <source>The file was only partially uploaded.</source> <target>Tiedosto ladattiin vain osittain.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Tiedostoa ei ladattu.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Väliaikaishakemistoa ei ole asetettu php.ini -tiedostoon.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Väliaikaistiedostoa ei voitu kirjoittaa levylle.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP-laajennoksen vuoksi tiedoston lataus epäonnistui.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Virheellinen korttinumero.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Tätä korttityyppiä ei tueta tai korttinumero on virheellinen.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Arvo ei ole kelvollinen kansainvälinen pankkitilinumero (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Arvo ei ole kelvollinen ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Arvo ei ole kelvollinen ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Arvo ei ole kelvollinen ISBN-10 tai kelvollinen ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Arvo ei ole kelvollinen ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Arvo ei ole kelvollinen valuutta.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Arvo ei ole sama kuin {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Arvon tulee olla suurempi kuin {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Arvon tulee olla suurempi tai yhtä suuri kuin {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Tämä arvo tulee olla sama kuin {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Arvon tulee olla pienempi kuin {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Arvon tulee olla pienempi tai yhtä suuri {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Arvon ei tule olla sama kuin {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Tämä arvo ei tule olla sama kuin {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Kuvasuhde on liian suuri ({{ ratio }}). Suurin sallittu suhde on {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Kuvasuhde on liian pieni ({{ ratio }}). Pienin sallittu arvo on {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Kuva on neliä ({{ width }}x{{ height }}px). Neliöt kuvat eivät ole sallittuja.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Kuva on vaakasuuntainen ({{ width }}x{{ height }}px). Vaakasuuntaiset kuvat eivät ole sallittuja.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Kuva on pystysuuntainen ({{ width }}x{{ height }}px). Pystysuuntaiset kuvat eivät ole sallittuja.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Tyhjä tiedosto ei ole sallittu.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Palvelimeen ei saatu yhteyttä.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Arvo ei vastaa odotettua merkistöä {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Arvo ei ole kelvollinen yritystunnus (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Virhe</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Arvo ei ole kelvollinen UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Tämän arvon tulisi olla kerrannainen {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Tämä yritystunnus (BIC) ei ole liitetty IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Arvon tulee olla kelvollinen JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Tämän ryhmän tulisi sisältää vain yksilöllisiä arvoja.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Arvon tulisi olla positiivinen.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Arvon tulisi olla joko positiivinen tai nolla.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Arvon tulisi olla negatiivinen.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Arvon tulisi olla joko negatiivinen tai nolla.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Arvo ei ole kelvollinen aikavyöhyke.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Tämä salasana on vuotanut tietomurrossa, sitä ei saa käyttää. Käytä toista salasanaa.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Arvon tulisi olla välillä {{ min }} - {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Arvo ei ole kelvollinen laitenimi (hostname).</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Ryhmässä olevien elementtien määrän pitää olla monikerta luvulle {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Tämän arvon tulee läpäistä vähintään yksi seuraavista tarkistuksista:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Ryhmän jokaisen elementin tulee läpäistä omat tarkistuksensa.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Tämä arvo ei ole kelvollinen ISIN-koodi (International Securities Identification Number).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Tämän arvon on oltava kelvollinen lauseke.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Tämä arvo ei ole kelvollinen CSS-värimääritys.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Tämä arvo ei ole kelvollinen CIDR-merkintä.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Verkkomaskille annetun arvon tulisi olla {{ min }} ja {{ max }} välillä.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.fr.xlf 0000644 00000060117 15120140577 0014537 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Cette valeur doit être fausse.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Cette valeur doit être vraie.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Cette valeur doit être de type {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Cette valeur doit être vide.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <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 }} 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 }} 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"> <source>One or more of the given values is invalid.</source> <target>Une ou plusieurs des valeurs soumises sont invalides.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Ce champ n'a pas été prévu.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Ce champ est manquant.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Cette valeur n'est pas une date valide.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Cette valeur n'est pas une date valide.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Cette valeur n'est pas une adresse email valide.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Le fichier n'a pas été trouvé.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Le fichier n'est pas lisible.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Le fichier est trop volumineux ({{ size }} {{ suffix }}). Sa taille ne doit pas dépasser {{ 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>Le type du fichier est invalide ({{ type }}). Les types autorisés sont {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source> <target>Cette chaîne est trop longue. Elle doit avoir au maximum {{ limit }} caractère.|Cette chaîne est trop longue. Elle doit avoir au maximum {{ limit }} caractères.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <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 }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source> <target>Cette chaîne est trop courte. Elle doit avoir au minimum {{ limit }} caractère.|Cette chaîne est trop courte. Elle doit avoir au minimum {{ limit }} caractères.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Cette valeur ne doit pas être vide.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Cette valeur ne doit pas être nulle.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Cette valeur doit être nulle.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Cette valeur n'est pas valide.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Cette valeur n'est pas une heure valide.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Cette valeur n'est pas une URL valide.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Les deux valeurs doivent être identiques.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Le fichier est trop volumineux. Sa taille ne doit pas dépasser {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Le fichier est trop volumineux.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Le téléchargement de ce fichier est impossible.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Cette valeur doit être un nombre.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Ce fichier n'est pas une image valide.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Cette adresse IP n'est pas valide.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Cette langue n'est pas valide.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Ce paramètre régional n'est pas valide.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Ce pays n'est pas valide.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Cette valeur est déjà utilisée.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>La taille de l'image n'a pas pu être détectée.</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>La largeur de l'image est trop grande ({{ width }}px). La largeur maximale autorisée est de {{ 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>La largeur de l'image est trop petite ({{ width }}px). La largeur minimale attendue est de {{ 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>La hauteur de l'image est trop grande ({{ height }}px). La hauteur maximale autorisée est de {{ 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>La hauteur de l'image est trop petite ({{ height }}px). La hauteur minimale attendue est de {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <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 }} character.|This value should have exactly {{ limit }} characters.</source> <target>Cette chaîne doit avoir exactement {{ limit }} caractère.|Cette chaîne doit avoir exactement {{ limit }} caractères.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>Le fichier a été partiellement transféré.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Aucun fichier n'a été transféré.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Aucun répertoire temporaire n'a été configuré dans le php.ini, ou le répertoire configuré n'existe pas.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Impossible d'écrire le fichier temporaire sur le disque.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Une extension PHP a empêché le transfert du fichier.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Numéro de carte invalide.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Type de carte non supporté ou numéro invalide.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Le numéro IBAN (International Bank Account Number) saisi n'est pas valide.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Cette valeur n'est pas un code ISBN-10 valide.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Cette valeur n'est pas un code ISBN-13 valide.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Cette valeur n'est ni un code ISBN-10, ni un code ISBN-13 valide.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Cette valeur n'est pas un code ISSN valide.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Cette valeur n'est pas une devise valide.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Cette valeur doit être égale à {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Cette valeur doit être supérieure à {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Cette valeur doit être supérieure ou égale à {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Cette valeur doit être identique à {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Cette valeur doit être inférieure à {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Cette valeur doit être inférieure ou égale à {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Cette valeur ne doit pas être égale à {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Cette valeur ne doit pas être identique à {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Le rapport largeur/hauteur de l'image est trop grand ({{ ratio }}). Le rapport maximal autorisé est {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Le rapport largeur/hauteur de l'image est trop petit ({{ ratio }}). Le rapport minimal attendu est {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>L'image est carrée ({{ width }}x{{ height }}px). Les images carrées ne sont pas autorisées.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>L'image est au format paysage ({{ width }}x{{ height }}px). Les images au format paysage ne sont pas autorisées.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>L'image est au format portrait ({{ width }}x{{ height }}px). Les images au format portrait ne sont pas autorisées.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Un fichier vide n'est pas autorisé.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Le nom de domaine n'a pas pu être résolu.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Cette valeur ne correspond pas au jeu de caractères {{ charset }} attendu.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Ce n'est pas un code universel d'identification des banques (BIC) valide.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Erreur</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Ceci n'est pas un UUID valide.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Cette valeur doit être un multiple de {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Ce code d'identification d'entreprise (BIC) n'est pas associé à l'IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Cette valeur doit être un JSON valide.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Cette collection ne doit pas comporter de doublons.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Cette valeur doit être strictement positive.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Cette valeur doit être supérieure ou égale à zéro.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Cette valeur doit être strictement négative.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Cette valeur doit être inférieure ou égale à zéro.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Cette valeur n'est pas un fuseau horaire valide.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Ce mot de passe a été divulgué lors d'une fuite de données, il ne doit plus être utilisé. Veuillez utiliser un autre mot de passe.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Cette valeur doit être comprise entre {{ min }} et {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Cette valeur n'est pas un nom d'hôte valide.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Le nombre d'éléments de cette collection doit être un multiple de {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Cette valeur doit satisfaire à au moins une des contraintes suivantes :</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Chaque élément de cette collection doit satisfaire à son propre jeu de contraintes.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Cette valeur n'est pas un code international de sécurité valide (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Cette valeur doit être une expression valide.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Cette valeur n'est pas une couleur CSS valide.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Cette valeur n'est pas une notation CIDR valide.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>La valeur du masque de réseau doit être comprise entre {{ min }} et {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.gl.xlf 0000644 00000057516 15120140577 0014543 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Este valor debería ser falso.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Este valor debería ser verdadeiro.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Este valor debería ser de tipo {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Este valor debería estar baleiro.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>O valor seleccionado non é unha opción válida.</target> </trans-unit> <trans-unit id="6"> <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 }} 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"> <source>One or more of the given values is invalid.</source> <target>Un ou máis dos valores indicados non son válidos.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Este campo non era esperado.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Este campo falta.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Este valor non é unha data válida.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Este valor non é unha data e hora válidas.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Este valor non é unha dirección de correo electrónico válida.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Non se puido atopar o arquivo.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>O arquivo non se pode ler.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>O arquivo é demasiado grande ({{ size }} {{ suffix }}). O tamaño máximo permitido é {{ 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>O tipo mime do arquivo non é válido ({{ type }}). Os tipos mime válidos son {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Este valor non debería estar baleiro.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Este valor non debería ser null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Este valor debería ser null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Este valor non é válido.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Este valor non é unha hora válida.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Este valor non é unha URL válida.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Os dous valores deberían ser iguais.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>O arquivo é demasiado grande. O tamaño máximo permitido é {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>O arquivo é demasiado grande.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>No se puido cargar o arquivo.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Este valor debería ser un número válido.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>O arquivo non é unha imaxe válida.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Isto non é unha dirección IP válida.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Este valor non é un idioma válido.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Este valor non é unha localización válida.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Este valor non é un país válido.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Este valor xa está a ser empregado.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Non se puido determinar o tamaño da imaxe.</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>A largura da imaxe é demasiado grande ({{ width }}px). A largura máxima permitida son {{ 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>A largura da imaxe é demasiado pequena ({{ width }}px). A largura mínima requerida son {{ 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>A altura da imaxe é demasiado grande ({{ height }}px). A altura máxima permitida son {{ 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>A altura da imaxe é demasiado pequena ({{ height }}px). A altura mínima requerida son {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <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 }} 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"> <source>The file was only partially uploaded.</source> <target>O arquivo foi só subido parcialmente.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Non se subiu ningún arquivo.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Ningunha carpeta temporal foi configurada en php.ini, ou a carpeta non existe.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Non se puido escribir o arquivo temporal no disco.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Unha extensión de PHP provocou que a subida fallara.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Número de tarxeta non válido.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Tipo de tarxeta non soportado ou número de tarxeta non válido.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Este valor non é un International Bank Account Number (IBAN) válido.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Este valor non é un ISBN-10 válido.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Este valor non é un ISBN-13 válido.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Este valor non é nin un ISBN-10 válido nin un ISBN-13 válido.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Este valor non é un ISSN válido.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Este valor non é unha moeda válida.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Este valor debería ser igual a {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Este valor debería ser maior que {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Este valor debería ser maior ou igual que {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Este valor debería ser identico a {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Este valor debería ser menor que {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Este valor debería ser menor ou igual que {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Este valor non debería ser igual a {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Este valor non debería ser identico a {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>A proporción da imaxe é demasiado grande ({{ ratio }}). A proporción máxima permitida é {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>A proporción da é demasiado pequena ({{ ratio }}). A proporción mínima permitida é {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>A imaxe é cadrada ({{ width }}x{{ height }}px). As imáxenes cadradas non están permitidas.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>A imaxe está orientada horizontalmente ({{ width }}x{{ height }}px). As imáxenes orientadas horizontalmente non están permitidas.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>A imaxe está orientada verticalmente ({{ width }}x{{ height }}px). As imáxenes orientadas verticalmente non están permitidas.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Non está permitido un arquivo baleiro.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Non se puido resolver o host.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>A codificación de caracteres para este valor debería ser {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Non é un Código de Identificación Bancaria (BIC) válido.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Erro</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Isto non é un UUID válido.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Este valor debería ser multiplo de {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Este Código de identificación bancaria (BIC) non está asociado co IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Este valor debería ser un JSON válido.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Esta colección só debería ter elementos únicos.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Este valor debería ser positivo.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Este valor debe ser positivo ou igual a cero.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Este valor debe ser negativo.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Este valor debe ser negativo ou igual a cero.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Este valor non é unha zona horaria válida.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Este contrasinal non se pode usar porque está incluído nunha lista de contrasinais públicos obtidos grazas a fallos de seguridade noutros sitios e aplicacións. Utiliza outro contrasinal.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Este valor debe estar comprendido entre {{ min }} e {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Este valor non é un nome de host válido.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>O número de elementos desta colección debería ser múltiplo de {{compare_value}}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Este valor debe cumprir polo menos unha das seguintes restricións:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Cada elemento desta colección debe satisfacer o seu propio conxunto de restricións.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Este valor non é un número de identificación de valores internacionais (ISIN) válido.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Este valor debe ser unha expresión válida.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Este valor non é unha cor CSS válida.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Este valor non ten unha notación CIDR válida.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>O valor da máscara de rede debería estar entre {{ min }} e {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.he.xlf 0000644 00000060452 15120140577 0014526 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>הערך צריך להיות שקר.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>הערך צריך להיות אמת.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>הערך צריך להיות מסוג {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>הערך צריך להיות ריק.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>הערך שבחרת אינו חוקי.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>אתה צריך לבחור לכל היותר {{ limit }} אפשרויות.|אתה צריך לבחור לכל היותר {{ limit }} אפשרויות.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>אחד או יותר מהערכים אינו חוקי.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>שדה זה לא היה צפוי</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>שדה זה חסר.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>הערך אינו תאריך חוקי.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>הערך אינו תאריך ושעה חוקיים.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>כתובת המייל אינה תקינה.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>הקובץ לא נמצא.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>לא ניתן לקרוא את הקובץ.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>הקובץ גדול מדי ({{ size }} {{ suffix }}). הגודל המרבי המותר הוא {{ 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>סוג MIME של הקובץ אינו חוקי ({{ type }}). מותרים סוגי MIME {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>הערך צריך להכיל {{ limit }} תווים לכל היותר.</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>הערך צריך להכיל {{ limit }} תווים לפחות.</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>הערך לא אמור להיות ריק.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>הערך לא אמור להיות ריק.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>הערך צריך להיות ריק.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>הערך אינו חוקי.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>הערך אינו זמן תקין.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>זאת אינה כתובת אתר תקינה.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>שני הערכים צריכים להיות שווים.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>הקובץ גדול מדי. הגודל המרבי המותר הוא {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>הקובץ גדול מדי.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>לא ניתן לעלות את הקובץ.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>הערך צריך להיות מספר חוקי.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>הקובץ הזה אינו תמונה תקינה.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>זו אינה כתובת IP חוקית.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>הערך אינו שפה חוקית.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>הערך אינו אזור תקף.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>הערך אינו ארץ חוקית.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>הערך כבר בשימוש.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>לא ניתן לקבוע את גודל התמונה.</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>רוחב התמונה גדול מדי ({{ width }}px). הרוחב המקסימלי הוא {{ 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>רוחב התמונה קטן מדי ({{ width }}px). הרוחב המינימלי הוא {{ 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>גובה התמונה גדול מדי ({{ height }}px). הגובה המקסימלי הוא {{ 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>גובה התמונה קטן מדי ({{ height }}px). הגובה המינימלי הוא {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>הערך צריך להיות סיסמת המשתמש הנוכחי.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>הקובץ הועלה באופן חלקי.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>הקובץ לא הועלה.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>לא הוגדרה תיקייה זמנית ב php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>לא ניתן לכתוב קובץ זמני לדיסק.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>סיומת PHP גרם להעלאה להיכשל.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>האוסף צריך להכיל בדיוק {{ limit }} אלמנטים.|האוסף צריך להכיל בדיוק {{ limit }} אלמנטים.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>מספר הכרטיס אינו חוקי.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>סוג הכרטיס אינו נתמך או לא חוקי.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>מספר חשבון בנק בינלאומי אינו חוקי (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>הערך אינו ערך ISBN-10 חוקי.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>הערך אינו ערך ISBN-13 חוקי.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>הערך אינו ערך ISBN-10 חוקי או ערך ISBN-13 חוקי.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>הערך אינו ערך ISSN חוקי.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>הערך אינו ערך מטבע חוקי.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>הערך חייב להיות שווה ל {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>הערך חייב להיות גדול מ {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>הערך חייב להיות גדול או שווה ל {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>הערך חייב להיות זהה ל {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>הערך חייב להיות קטן מ {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>הערך חייב להיות קטן או שווה ל {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>הערך חייב להיות לא שווה ל {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>הערך חייב להיות לא זהה ל {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>היחס של התמונה הוא גדול מדי ({{ ratio }}). היחס המקסימלי האפשרי הוא {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>היחס של התמונה הוא קטן מדי ({{ ratio }}). היחס המינימלי האפשרי הוא {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>התמונה מרובעת ({{ width }}x{{ height }}px). אסורות תמונות מרובעות.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>התמונה היא לרוחב ({{ width }}x{{ height }}px). אסורות תמונות לרוחב.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>התמונה היא לאורך ({{ width }}x{{ height }}px). אסורות תמונות לאורך.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>אסור קובץ ריק.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>לא הייתה אפשרות לזהות את המארח.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>הערך אינו תואם למערך התווים {{ charset }} הצפוי.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>קוד זיהוי עסקי אינו חוקי (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>שגיאה</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>הערך אינו ערך UUID חוקי.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>הערך חייב להיות כפולה של {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>הקוד זיהוי עסקי (BIC) אינו משוייך ל IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>הערך אינו ערך JSON תקין.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>האוסף חייב להכיל רק אלמנטים ייחודיים.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>הערך חייב להיות חיובי.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>הערך חייב להיות חיובי או אפס.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>הערך חייב להיות שלילי.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>הערך חייב להיות שלילי או אפס.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>הערך אינו אזור זמן תקין.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>סיסמא זו הודלפה בהדלפת מידע, אסור להשתמש בה. אנא השתמש בסיסמה אחרת.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>הערך חייב להיות בין {{ min }} ו- {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>ערך זה אינו שם מארח חוקי.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>מספר האלמנטים באוסף זה צריך להיות מכפיל של {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>ערך זה אמור לעמוד לפחות באחד התנאים הבאים:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>כל אלמנט באוסף זה אמור לעמוד בקבוצת התנאים שלו.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>ערך זה אינו מספר זיהוי ניירות ערך בינלאומי תקף (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>ערך זה חייב להיות ביטוי חוקי.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>ערך זה אינו צבע CSS חוקי.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>ערך זה אינו סימון CIDR חוקי.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>הערך של מסכת הרשת חייב להיות בין {{ min }} ו {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.hr.xlf 0000644 00000056625 15120140577 0014552 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Ova vrijednost treba biti netočna (false).</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Ova vrijednost treba biti točna (true).</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Ova vrijednost treba biti tipa {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Ova vrijednost treba biti prazna.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Ova vrijednost nije valjan izbor.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Izaberite najviše {{ limit }} mogućnosti.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Jedna ili više danih vrijednosti nije ispravna.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Ovo polje nije očekivano.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Ovo polje nedostaje.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Ova vrijednost nije ispravan datum.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Ova vrijednost nije ispravnog datum-vrijeme formata.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Ova vrijednost nije ispravna e-mail adresa.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Datoteka ne može biti pronađena.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Datoteka nije čitljiva.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Datoteka je prevelika ({{ size }} {{ suffix }}). Najveća dozvoljena veličina je {{ 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>Mime tip datoteke nije ispravan ({{ type }}). Dozvoljeni mime tipovi su {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Ova vrijednost ne bi trebala biti prazna.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Ova vrijednost ne bi trebala biti null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Ova vrijednost treba biti null.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Ova vrijednost nije ispravna.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Ova vrijednost nije ispravno vrijeme.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Ova vrijednost nije ispravan URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Obje vrijednosti trebaju biti jednake.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Ova datoteka je prevelika. Najveća dozvoljena veličina je {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Ova datoteka je prevelika.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Ova datoteka ne može biti prenesena.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Ova vrijednost treba biti ispravan broj.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Ova datoteka nije ispravna slika.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Ovo nije ispravna IP adresa.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Ova vrijednost nije ispravan jezik.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Ova vrijednost nije ispravana regionalna oznaka.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Ova vrijednost nije ispravna država.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Ova vrijednost je već iskorištena.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Veličina slike se ne može odrediti.</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>Širina slike je prevelika ({{ width }}px). Najveća dozvoljena širina je {{ 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>Širina slike je premala ({{ width }}px). Najmanja dozvoljena širina je {{ 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>Visina slike je prevelika ({{ height }}px). Najveća dozvoljena visina je {{ 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>Visina slike je premala ({{ height }}px). Najmanja dozvoljena visina je {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Ova vrijednost treba biti trenutna korisnička lozinka.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Datoteka je samo djelomično prenesena.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Niti jedna datoteka nije prenesena.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>U php.ini datoteci nije konfiguriran privremeni direktorij.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Ne mogu zapisati privremenu datoteku na disk.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Prijenos datoteke nije uspio zbog PHP ekstenzije.</target> </trans-unit> <trans-unit id="54"> <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Ova kolekcija treba sadržavati {{ limit }} ili više elemenata.|Ova kolekcija treba sadržavati {{ limit }} ili više elemenata.|Ova kolekcija treba sadržavati {{ limit }} ili više elemenata.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Ova kolekcija treba sadržavati {{ limit }} ili manje elemenata.|Ova kolekcija treba sadržavati {{ limit }} ili manje elemenata.|Ova kolekcija treba sadržavati {{ limit }} ili manje elemenata.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Ova kolekcija treba sadržavati točno {{ limit }} element.|Ova kolekcija treba sadržavati točno {{ limit }} elementa.|Ova kolekcija treba sadržavati točno {{ limit }} elemenata.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Neispravan broj kartice.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Tip kartice nije podržan ili je broj kartice neispravan.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Ova vrijednost nije ispravan međunarodni broj bankovnog računa (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Ova vrijednost nije ispravan ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Ova vrijednost nije ispravan ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Ova vrijednost nije ispravan ISBN-10 niti ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Ova vrijednost nije ispravan ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Ova vrijednost nije ispravna valuta.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Ova vrijednost treba biti jednaka {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Ova vrijednost treba biti veća od {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Ova vrijednost treba biti veća od ili jednaka {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ova vrijednost treba biti {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Ova vrijednost treba biti manja od {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Ova vrijednost treba biti manja od ili jednaka {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Ova vrijednost treba biti različita od {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ova vrijednost treba biti različita od {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Omjer slike je prevelik ({{ ratio }}). Dozvoljeni maksimalni omjer je {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Omjer slike je premali ({{ ratio }}). Minimalni očekivani omjer je {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Slika je kvadratnog oblika ({{ width }}x{{ height }}px). Kvadratne slike nisu dozvoljene.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Slika je orijentirana horizontalno ({{ width }}x{{ height }}px). Horizontalno orijentirane slike nisu dozvoljene.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Slika je orijentirana vertikalno ({{ width }}x{{ height }}px). Vertikalno orijentirane slike nisu dozvoljene.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Prazna datoteka nije dozvoljena.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Poslužitelj ne može biti pronađen.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Ova vrijednost ne odgovara očekivanom {{ charset }} znakovnom skupu.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Ovo nije validan poslovni identifikacijski broj (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Greška</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Ovo nije validan UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Ova vrijednost treba biti višekratnik od {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Poslovni identifikacijski broj (BIC) nije povezan sa IBAN brojem {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Ova vrijednost treba biti validan JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Ova kolekcija treba sadržavati samo unikatne elemente.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Ova vrijednost treba biti pozitivna.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Ova vrijednost treba biti pozitivna ili jednaka nuli.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Ova vrijednost treba biti negativna.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Ova vrijednost treba biti negativna ili jednaka nuli.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Ova vrijednost nije validna vremenska zona.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Ova lozinka je procurila u nekom od sigurnosnih propusta, te je potrebno koristiti drugu lozinku.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Ova vrijednost treba biti između {{ min }} i {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Ova vrijednost nije ispravno ime poslužitelja (engl. hostname).</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Broj elemenata u kolekciji treba biti djeljiv s {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Ova vrijednost mora zadovoljiti jedan od sljedećih ograničenja:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Svaki element ove kolekcije mora zadovoljiti vlastiti skup ograničenja.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Ova vrijednost nije ispravan međunarodni identifikacijski broj vrijednosnih papira (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Ova vrijednost mora biti valjani izraz.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Ova vrijednost nije važeća CSS boja.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Ova vrijednost nije valjana CIDR notacija.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Vrijednost mrežne maske trebala bi biti između {{ min }} i {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.hu.xlf 0000644 00000057614 15120140577 0014554 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Ennek az értéknek hamisnak kell lennie.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Ennek az értéknek igaznak kell lennie.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Ennek az értéknek {{ type }} típusúnak kell lennie.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Ennek az értéknek üresnek kell lennie.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>A választott érték érvénytelen.</target> </trans-unit> <trans-unit id="6"> <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.|Legalább {{ limit }} értéket kell kiválasztani.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Legfeljebb {{ limit }} értéket lehet kiválasztani.|Legfeljebb {{ limit }} értéket lehet kiválasztani.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>A megadott értékek közül legalább egy érvénytelen.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Nem várt mező.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Ez a mező hiányzik.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Ez az érték nem egy érvényes dátum.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Ez az érték nem egy érvényes időpont.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Ez az érték nem egy érvényes e-mail cím.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>A fájl nem található.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>A fájl nem olvasható.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>A fájl túl nagy ({{ size }} {{ suffix }}). A legnagyobb megengedett méret {{ 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>A fájl MIME típusa érvénytelen ({{ type }}). Az engedélyezett MIME típusok: {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Ez az érték legfeljebb {{ limit }} lehet.</target> </trans-unit> <trans-unit id="19"> <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ú. Legfeljebb {{ limit }} karaktert tartalmazhat.|Ez az érték túl hosszú. Legfeljebb {{ limit }} karaktert tartalmazhat.</target> </trans-unit> <trans-unit id="20"> <source>This value should be {{ limit }} or more.</source> <target>Ez az érték legalább {{ limit }} kell, hogy legyen.</target> </trans-unit> <trans-unit id="21"> <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. Legalább {{ limit }} karaktert kell tartalmaznia.|Ez az érték túl rövid. Legalább {{ limit }} karaktert kell tartalmaznia.</target> </trans-unit> <trans-unit id="22"> <source>This value should not be blank.</source> <target>Ez az érték nem lehet üres.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Ez az érték nem lehet null.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Ennek az értéknek nullnak kell lennie.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Ez az érték nem érvényes.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Ez az érték nem egy érvényes időpont.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Ez az érték nem egy érvényes URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>A két értéknek azonosnak kell lennie.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>A fájl túl nagy. A megengedett maximális méret: {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>A fájl túl nagy.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>A fájl nem tölthető fel.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Ennek az értéknek érvényes számnak kell lennie.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Ez a fájl nem egy érvényes kép.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Ez az érték nem egy érvényes IP cím.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Ez az érték nem egy érvényes nyelv.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Ez az érték nem egy érvényes területi beállítás.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Ez az érték nem egy érvényes ország.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Ez az érték már használatban van.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>A kép méretét nem lehet megállapítani.</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>A kép szélessége túl nagy ({{ width }}px). A megengedett legnagyobb szélesség {{ 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>A kép szélessége túl kicsi ({{ width }}px). Az elvárt legkisebb szélesség {{ 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>A kép magassága túl nagy ({{ height }}px). A megengedett legnagyobb magasság {{ 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>A kép magassága túl kicsi ({{ height }}px). Az elvárt legkisebb magasság {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Ez az érték a felhasználó jelenlegi jelszavával kell megegyezzen.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Ennek az értéknek pontosan {{ limit }} karaktert kell tartalmaznia.|Ennek az értéknek pontosan {{ limit }} karaktert kell tartalmaznia.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>A fájl csak részben lett feltöltve.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Nem lett fájl feltöltve.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Nincs ideiglenes könyvtár beállítva a php.ini-ben.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Az ideiglenes fájl nem írható a lemezre.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <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 }} element or more.|This collection should contain {{ limit }} elements or more.</source> <target>Ennek a gyűjteménynek legalább {{ limit }} elemet kell tartalmaznia.|Ennek a gyűjteménynek legalább {{ limit }} elemet kell tartalmaznia.</target> </trans-unit> <trans-unit id="55"> <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source> <target>Ez a gyűjtemény legfeljebb {{ limit }} elemet tartalmazhat.|Ez a gyűjtemény legfeljebb {{ limit }} elemet tartalmazhat.</target> </trans-unit> <trans-unit id="56"> <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Ennek a gyűjteménynek pontosan {{ limit }} elemet kell tartalmaznia.|Ennek a gyűjteménynek pontosan {{ limit }} elemet kell tartalmaznia.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Érvénytelen kártyaszám.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Nem támogatott kártyatípus vagy érvénytelen kártyaszám.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Érvénytelen nemzetközi bankszámlaszám (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Ez az érték nem egy érvényes ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Ez az érték nem egy érvényes ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Ez az érték nem egy érvényes ISBN-10 vagy ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Ez az érték nem egy érvényes ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Ez az érték nem egy érvényes pénznem.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Ez az érték legyen {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Ez az érték nagyobb legyen, mint {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Ez az érték nagyobb vagy egyenlő legyen, mint {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ez az érték ugyanolyan legyen, mint {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Ez az érték kisebb legyen, mint {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Ez az érték kisebb vagy egyenlő legyen, mint {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Ez az érték ne legyen {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Ez az érték ne legyen ugyanolyan, mint {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>A képarány túl nagy ({{ ratio }}). A megengedett legnagyobb képarány {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>A képarány túl kicsi ({{ ratio }}). A megengedett legkisebb képarány {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>A kép négyzet alakú ({{ width }}x{{ height }}px). A négyzet alakú képek nem engedélyezettek.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>A kép fekvő tájolású ({{ width }}x{{ height }}px). A fekvő tájolású képek nem engedélyezettek.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>A kép álló tájolású ({{ width }}x{{ height }}px). Az álló tájolású képek nem engedélyezettek.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Üres fájl nem megengedett.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Az állomásnevet nem lehet feloldani.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Ez az érték nem az elvárt {{ charset }} karakterkódolást használja.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Érvénytelen nemzetközi bankazonosító kód (BIC/SWIFT).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Hiba</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Érvénytelen egyedi azonosító (UUID).</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Ennek az értéknek oszthatónak kell lennie a következővel: {{ compared_value }}</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Ez a Bankazonosító kód (BIC) nem kapcsolódik az IBAN kódhoz ({{ iban }}).</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Ez az érték érvényes JSON kell, hogy legyen.</target> </trans-unit> <trans-unit id="87"> <source>This value should be positive.</source> <target>Ennek az értéknek pozitívnak kell lennie.</target> </trans-unit> <trans-unit id="88"> <source>This value should be either positive or zero.</source> <target>Ennek az értéknek pozitívnak vagy nullának kell lennie.</target> </trans-unit> <trans-unit id="89"> <source>This value should be negative.</source> <target>Ennek az értéknek negatívnak kell lennie.</target> </trans-unit> <trans-unit id="90"> <source>This value should be either negative or zero.</source> <target>Ennek az értéknek negatívnak vagy nullának kell lennie.</target> </trans-unit> <trans-unit id="91"> <source>This collection should contain only unique elements.</source> <target>Ez a gyűjtemény csak egyedi elemeket tartalmazhat.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Ez az érték nem egy érvényes időzóna.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Ez a jelszó korábban egy adatvédelmi incidens során illetéktelenek kezébe került, így nem használható. Kérjük, használjon másik jelszót.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Ennek az értéknek {{ min }} és {{ max }} között kell lennie.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Ez az érték nem egy érvényes állomásnév (hosztnév).</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>A gyűjteményben lévő elemek számának oszthatónak kell lennie a következővel: {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Ennek az értéknek meg kell felelni legalább egynek a következő feltételek közül:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>A gyűjtemény minden elemének meg kell felelni a saját feltételeinek.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Ez az érték nem egy érvényes nemzetközi értékpapír-azonosító szám (ISIN).</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Ennek az értéknek érvényes kifejezésnek kell lennie.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Ez az érték nem egy érvényes CSS szín.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Ez az érték nem egy érvényes CIDR jelölés.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Ennek a netmask értéknek {{ min }} és {{ max }} között kell lennie.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.hy.xlf 0000644 00000062364 15120140600 0014541 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Արժեքը պետք է լինի կեղծ։</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Արժեքը պետք է լինի իրական։</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Արժեքը պետք է լինի {{ type }} տեսակի։</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Արժեքը պետք է լինի դատարկ։</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Ձեր ընտրած արժեքը անվավեր ընտրություն է։</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Դուք պետք է ընտրեք ոչ ավելի քան {{ limit }} տարբերակներ։</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Մեկ կամ ավելի տրված արժեքները անվավեր են։</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Այս դաշտը չի սպասվում։</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Այս դաշտը բացակայում է։</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Արժեքը սխալ ամսաթիվ է։</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Ամսաթվի և ժամանակի արժեքը անվավեր է։</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Անվավեր էլ֊փոստի արժեք։</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Նիշքը չի գտնվել։</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Նիշքը անընթեռնելի է։</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Նիշքը չափազանց մեծ է ({{ size }} {{ suffix }}): Մաքսիմալ թույլատրելի չափսը՝ {{ 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>MIME-տեսակը անվավեր է է({{ type }}): Նիշքերի թույլատրելի MIME-տեսակներն են: {{ types }}։</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Արժեքը պետք է լինի {{ limit }} կամ փոքր։</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>Արժեքը պետ է լինի {{ limit }} կամ շատ։</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>Արժեքը չպետք է դատարկ լինի։</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Արժեքը չպետք է լինի null։</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Արժեքը պետք է լինի null։</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Անվավեր արժեք։</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Ժամանակի արժեքը անվավեր է։</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Արժեքը URL չէ։</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Երկու արժեքները պետք է նույնը լինեն։</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Նիշքը չափազանց մեծ է: Մաքսիմալ թույլատրելի չափսը {{ limit }} {{ suffix }} է։</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Նիշքը չափազանց մեծ է։</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Նիշքը չի կարող բեռնվել։</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Արժեքը պետք է լինի թիվ։</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Նիշքը նկարի վավեր ֆորմատ չէ։</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Արժեքը վավեր IP հասցե չէ։</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Արժեքը վավեր լեզու չէ։</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Արժեքը չի հանդիսանում վավեր տեղայնացում։</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Արժեքը պետք է լինի երկիր։</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Այդ արժեքն արդեն օգտագործվում է։</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Նկարի չափսերը չստացվեց որոշել։</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>Նկարի լայնությունը չափազանց մեծ է({{ width }}px). Մաքսիմալ չափն է {{ 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>Նկարի լայնությունը չափազանց փոքր է ({{ width }}px). Մինիմալ չափն է {{ 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>Նկարի բարձրությունը չափազանց մեծ է ({{ height }}px). Մաքսիմալ չափն է {{ 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>Նկարի բարձրությունը չափազանց փոքր է ({{ height }}px). Մինիմալ չափն է {{ min_height }}px։</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Այս արժեքը պետք է լինի օգտագործողի ներկա ծածկագիրը։</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Նիշքի մասնակի բեռնման սխալ։</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Նիշքը չի բեռնվել։</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>php.ini նիշքում ժամանակավոր պանակ նշված չէ։</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Ժամանակավոր նիշքը հնարավոր չէ գրել սկավառակի վրա։</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP ֆորմատը դարձել է բեռնման չհաջողման պատճառ։</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Այս համախումբը պետք է պաուրակի ուղիղ {{ limit }} տարր։|Այս համախումբը պետք է պաուրակի ուղիղ {{ limit }} տարրեր։|Այս համախումբը պետք է պաուրակի {{ limit }} տարրեր։</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Քարտի սխալ համար:</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Չսպասարկվող կամ սխալ քարտի համար:</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Արժեքը վավեր միջազային բանկային հաշվի համար չէ (IBAN)։</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Արժեքը ունի անվավեր ISBN-10 ձևաչափ։</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Արժեքը ունի անվավեր ISBN-13 ձևաչափ։</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Արժեքը չի համապատասխանում ISBN-10 և ISBN-13 ձևաչափերին։</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Արժեքը չի համապաստասխանում ISSN ձևաչափին։</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Արժեքը վավեր տարադրամ չէ։</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Արժեքը պետք է լինի {{ compared_value }}։</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Արժեքը պետք է մեծ լինի, քան {{ compared_value }}։</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Արժեքը պետք է լինի հավասար կամ մեծ քան {{ compared_value }}։</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Արժեքը պետք է լինի ինչպես {{ compared_value_type }} {{ compared_value }}։</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Արժեքը պետք է լինի փոքր քան {{ compared_value }}։</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Արժեքը պետք է լինի փոքր կամ հավասար {{ compared_value }}։</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Արժեքը պետք է լինի հավասար {{ compared_value }}։</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Արժեքը պետք է լինի նունը {{ compared_value_type }} {{ compared_value }}:</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Պատկերի կողմերի հարաբերակցությունը խիստ մեծ է ({{ ratio }}). Մաքսիմալ հարաբերակցությունը՝ {{ max_ratio }}։</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Պատկերի կողմերի հարաբերակցությունը խիստ փոքր է ({{ ratio }}). Մինիմալ հարաբերակցությունը՝ {{ min_ratio }}։</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Պատկերը քառակուսի է({{ width }}x{{ height }}px)։ Քառակուսի նկարներ չեն թույլատրվում։</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Պատկերը ալբոմային ուղղվածության է({{ width }}x{{ height }}px)․ դա չի թույլատրվում։</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Պատկերը պորտրետային ուղղվածության է ({{ width }}x{{ height }}px)․ դա չի թույլատրվում։</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Դատարկ նիշք չի թույլատրվում։</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Հոսթի անունը հնարավոր չի պարզել։</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Արժեքը չի համընկնում {{ charset }} կոդավորման հետ։</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Սա վավեր Business Identifier Code (BIC) չէ։</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Սխալ</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Սա վավեր UUID չէ։</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Այս արժեքը պետք է լինի բազմակի {{ compared_value }}։</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Բիզնեսի նույնականացման կոդը (BIC) կապված չէ IBAN- ի հետ {{ iban }}։</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Այս արժեքը պետք է լինի վավեր JSON։</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Այս համախումբը պետք է պարունակի միայն եզակի տարրեր։</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Այս արժեքը պետք է լինի դրական։</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Այս արժեքը պետք է լինի դրական կամ զրոյական։</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Այս արժեքը պետք է լինի բացասական։</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Այս արժեքը պետք է լինի բացասական կամ զրոյական։</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Այս արժեքը վավեր ժամային գոտի չէ։</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Գաղտնաբառը գտնվել է տվյալների արտահոսքում. այն չպետք է օգտագործվի: Խնդրում ենք օգտագործել մեկ այլ գաղտնաբառ։</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Այս արժեքը պետք է լինի {{ min }}-ի և {{ max }}-ի միջև։</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Այս հոստի անունը վավեր չէ։</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}․</source> <target>Այս համախմբի տարրերի քանակը պետք է հավասար լինի {{ compared_value }}-ի բազմապատիկներին։</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Այս արժեքը պետք է բավարարի հետևյալ սահմանափակումներից առնվազն մեկը։</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Այս համախմբի յուրաքանչյուր տարր պետք է բավարարի իր սեփական սահմանափակումները։</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Այս արժեքը արժեթղթերի նույնականացման միջազգային համարը վավեր չէ(ISIN)։</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Այս արժեքը պետք է լինի վավեր արտահայտություն:</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.id.xlf 0000644 00000055417 15120140600 0014516 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Nilai ini harus bernilai salah.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Nilai ini harus bernilai benar.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Nilai ini harus bertipe {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Nilai ini harus kosong.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Nilai yang dipilih tidak tepat.</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>Anda harus memilih paling banyak {{ limit }} pilihan.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Satu atau lebih nilai yang diberikan tidak sah.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Ruas ini tidak diharapkan.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Ruas ini hilang.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Nilai ini bukan merupakan tanggal yang sah.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Nilai ini bukan merupakan tanggal dan waktu yang sah.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Nilai ini bukan alamat surel yang sah.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Berkas tidak dapat ditemukan.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Berkas tidak dapat dibaca.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Ukuran berkas terlalu besar ({{ size }} {{ suffix }}). Ukuran maksimum yang diizinkan adalah {{ 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>Jenis berkas ({{ type }}) tidak sah. Jenis berkas yang diizinkan adalah {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>Nilai ini harus {{ limit }} atau kurang.</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>Nilai ini harus {{ limit }} atau lebih.</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>Nilai ini tidak boleh kosong.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Nilai ini tidak boleh 'null'.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Nilai ini harus 'null'.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Nilai ini tidak sah.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Nilai ini bukan merupakan waktu yang sah.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Nilai ini bukan URL yang sah.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Isi keduanya harus sama.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Ukuran berkas terlalu besar. Ukuran maksimum yang diizinkan adalah {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Ukuran berkas terlalu besar.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Berkas tidak dapat diunggah.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Nilai ini harus angka yang sah.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Berkas ini tidak termasuk citra.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Ini bukan alamat IP yang sah.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Nilai ini bukan bahasa yang sah.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Nilai ini bukan lokal yang sah.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Nilai ini bukan negara yang sah.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Nilai ini sudah digunakan.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>Ukuran dari citra tidak bisa dideteksi.</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>Lebar citra terlalu besar ({{ width }}px). Ukuran lebar maksimum adalah {{ 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>Lebar citra terlalu kecil ({{ width }}px). Ukuran lebar minimum yang diharapkan adalah {{ 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>Tinggi citra terlalu besar ({{ height }}px). Ukuran tinggi maksimum adalah {{ 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>Tinggi citra terlalu kecil ({{ height }}px). Ukuran tinggi minimum yang diharapkan adalah {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Nilai ini harus kata sandi pengguna saat ini.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Berkas hanya terunggah sebagian.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Tidak ada berkas terunggah.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Direktori sementara tidak dikonfiguasi pada php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Tidak dapat menuliskan berkas sementara ke dalam media penyimpanan.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Sebuah ekstensi PHP menyebabkan kegagalan unggah.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>Kumpulan ini harus memiliki tepat {{ limit }} elemen.</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>Nomor kartu tidak sah.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Jenis kartu tidak didukung atau nomor kartu tidak sah.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Ini bukan Nomor Rekening Bank Internasional (IBAN) yang sah.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Nilai ini bukan ISBN-10 yang sah.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Nilai ini bukan ISBN-13 yang sah.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Nilai ini bukan ISBN-10 maupun ISBN-13 yang sah.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Nilai ini bukan ISSN yang sah.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Nilai ini bukan mata uang yang sah.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Nilai ini seharusnya sama dengan {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Nilai ini seharusnya lebih dari {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Nilai ini seharusnya lebih dari atau sama dengan {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Nilai ini seharusnya identik dengan {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Nilai ini seharusnya kurang dari {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Nilai ini seharusnya kurang dari atau sama dengan {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Nilai ini seharusnya tidak sama dengan {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Nilai ini seharusnya tidak identik dengan {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Rasio citra terlalu besar ({{ ratio }}). Rasio maksimum yang diizinkan adalah {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Rasio citra terlalu kecil ({{ ratio }}). Rasio minimum yang diharapkan adalah {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>Citra persegi ({{ width }}x{{ height }}px). Citra persegi tidak diizinkan.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>Citra berorientasi lanskap ({{ width }}x{{ height }}px). Citra berorientasi lanskap tidak diizinkan.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>Citra berorientasi potret ({{ width }}x{{ height }}px). Citra berorientasi potret tidak diizinkan.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Berkas kosong tidak diizinkan.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Host tidak dapat diselesaikan.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Nilai ini tidak memenuhi set karakter {{ charset }} yang diharapkan.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Ini bukan Business Identifier Code (BIC) yang sah.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Galat</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Ini bukan UUID yang sah.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Nilai ini harus kelipatan dari {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Business Identifier Code (BIC) ini tidak terkait dengan IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Nilai ini harus berisi JSON yang sah.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Kumpulan ini harus mengandung elemen yang unik.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Nilai ini harus positif.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Nilai ini harus positif atau nol.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Nilai ini harus negatif.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Nilai ini harus negatif atau nol.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Nilai ini harus merupakan zona waktu yang sah.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Kata sandi ini telah bocor di data breach, harus tidak digunakan kembali. Silahkan gunakan kata sandi yang lain.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Nilai ini harus berada diantara {{ min }} dan {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Nilai ini bukan merupakan hostname yang sah.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Angka dari setiap elemen di dalam kumpulan ini harus kelipatan dari {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Nilai ini harus memenuhi setidaknya satu dari batasan berikut:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Setiap elemen koleksi ini harus memenuhi batasannya sendiri.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Nilai ini bukan merupakan International Securities Identification Number (ISIN) yang sah.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Nilai ini harus berupa ekspresi yang sah.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Nilai ini bukan merupakan warna CSS yang sah.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Nilai ini bukan merupakan notasi CIDR yang sah.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Nilai dari netmask harus berada diantara {{ min }} dan {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.it.xlf 0000644 00000057760 15120140600 0014541 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Questo valore dovrebbe essere falso.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Questo valore dovrebbe essere vero.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Questo valore dovrebbe essere di tipo {{ type }}.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Questo valore dovrebbe essere vuoto.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>Questo valore dovrebbe essere una delle opzioni disponibili.</target> </trans-unit> <trans-unit id="6"> <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 }} 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"> <source>One or more of the given values is invalid.</source> <target>Uno o più valori inseriti non sono validi.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>Questo campo non è stato previsto.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>Questo campo è mancante.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Questo valore non è una data valida.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Questo valore non è una data e ora valida.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Questo valore non è un indirizzo email valido.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>Non è stato possibile trovare il file.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>Il file non è leggibile.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Il file è troppo grande ({{ size }} {{ suffix }}). La dimensione massima consentita è {{ 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>Il mime type del file non è valido ({{ type }}). I tipi permessi sono {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Questo valore non dovrebbe essere vuoto.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Questo valore non dovrebbe essere nullo.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Questo valore dovrebbe essere nullo.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Questo valore non è valido.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Questo valore non è un'ora valida.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Questo valore non è un URL valido.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>I due valori dovrebbero essere uguali.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>Il file è troppo grande. La dimensione massima è {{ limit }} {{ suffix }}.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>Il file è troppo grande.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>Il file non può essere caricato.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Questo valore dovrebbe essere un numero.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Questo file non è una immagine valida.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Questo valore non è un indirizzo IP valido.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Questo valore non è una lingua valida.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Questo valore non è una impostazione regionale valida.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Questo valore non è una nazione valida.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Questo valore è già stato utilizzato.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>La dimensione dell'immagine non può essere determinata.</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>La larghezza dell'immagine è troppo grande ({{ width }}px). La larghezza massima è di {{ 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>La larghezza dell'immagine è troppo piccola ({{ width }}px). La larghezza minima è di {{ 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>L'altezza dell'immagine è troppo grande ({{ height }}px). L'altezza massima è di {{ 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>L'altezza dell'immagine è troppo piccola ({{ height }}px). L'altezza minima è di {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Questo valore dovrebbe essere la password attuale dell'utente.</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>Il file è stato caricato solo parzialmente.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Nessun file è stato caricato.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Nessuna cartella temporanea è stata configurata nel php.ini.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Impossibile scrivere il file temporaneo sul disco.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Un'estensione PHP ha causato il fallimento del caricamento.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Numero di carta non valido.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Tipo di carta non supportato o numero non valido.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Questo valore non è un IBAN (International Bank Account Number) valido.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Questo valore non è un codice ISBN-10 valido.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Questo valore non è un codice ISBN-13 valido.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Questo valore non è un codice ISBN-10 o ISBN-13 valido.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Questo valore non è un codice ISSN valido.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Questo valore non è una valuta valida.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Questo valore dovrebbe essere uguale a {{ compared_value }}.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Questo valore dovrebbe essere maggiore di {{ compared_value }}.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Questo valore dovrebbe essere maggiore o uguale a {{ compared_value }}.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Questo valore dovrebbe essere identico a {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Questo valore dovrebbe essere minore di {{ compared_value }}.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Questo valore dovrebbe essere minore o uguale a {{ compared_value }}.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Questo valore dovrebbe essere diverso da {{ compared_value }}.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Questo valore dovrebbe essere diverso da {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>Il rapporto di aspetto dell'immagine è troppo grande ({{ ratio }}). Il rapporto massimo consentito è {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>Il rapporto di aspetto dell'immagine è troppo piccolo ({{ ratio }}). Il rapporto minimo consentito è {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>L'immagine è quadrata ({{ width }}x{{ height }}px). Le immagini quadrate non sono consentite.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>L'immagine è orizzontale ({{ width }}x{{ height }}px). Le immagini orizzontali non sono consentite.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>L'immagine è verticale ({{ width }}x{{ height }}px). Le immagini verticali non sono consentite.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>Un file vuoto non è consentito.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>L'host non può essere risolto.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Questo valore non corrisponde al charset {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Questo valore non è un codice BIC valido.</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Errore</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Questo non è un UUID valido.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Questo valore dovrebbe essere un multiplo di {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Questo codice identificativo bancario (BIC) non è associato all'IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Questo valore dovrebbe essere un JSON valido.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Questa collezione dovrebbe contenere solo elementi unici.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Questo valore dovrebbe essere positivo.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Questo valore dovrebbe essere positivo oppure zero.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Questo valore dovrebbe essere negativo.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Questo valore dovrebbe essere negativo oppure zero.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Questo valore non è un fuso orario valido.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Questa password è trapelata durante una compromissione di dati, non deve essere usata. Si prega di usare una password diversa.</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>Questo valore dovrebbe essere compreso tra {{ min }} e {{ max }}.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Questo valore non è un nome di host valido.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>Il numero di elementi in questa collezione dovrebbe essere un multiplo di {{ compared_value }}.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Questo valore dovrebbe soddisfare almeno uno dei vincoli seguenti:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>Ciascun elemento di questa collezione dovrebbe soddisfare il suo insieme di vincoli.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Questo valore non è un codice identificativo internazionale di valori mobiliari (ISIN) valido.</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>Questo valore dovrebbe essere un'espressione valida.</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>Questo valore non è un colore CSS valido.</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>Questo valore non è una notazione CIDR valida.</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>Il valore della netmask dovrebbe essere compreso tra {{ min }} e {{ max }}.</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.ja.xlf 0000644 00000057560 15120140600 0014515 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>falseでなければなりません。</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>trueでなければなりません。</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>型は{{ type }}でなければなりません。</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>空でなければなりません。</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <target>有効な選択肢ではありません。</target> </trans-unit> <trans-unit id="6"> <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 }} choice.|You must select at most {{ limit }} choices.</source> <target>{{ limit }}個以内で選択してください。</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>無効な選択肢が含まれています。</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>このフィールドは予期されていませんでした。</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>このフィールドは、欠落しています。</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>有効な日付ではありません。</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>有効な日時ではありません。</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>有効なメールアドレスではありません。</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>ファイルが見つかりません。</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>ファイルを読み込めません。</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>ファイルのサイズが大きすぎます({{ size }} {{ suffix }})。有効な最大サイズは{{ 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>ファイルのMIMEタイプが無効です({{ type }})。有効なMIMEタイプは{{ types }}です。</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <target>{{ limit }}以下でなければなりません。</target> </trans-unit> <trans-unit id="19"> <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"> <source>This value should be {{ limit }} or more.</source> <target>{{ limit }}以上でなければなりません。</target> </trans-unit> <trans-unit id="21"> <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"> <source>This value should not be blank.</source> <target>空であってはなりません。</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>nullであってはなりません。</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>nullでなければなりません。</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>有効な値ではありません。</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>有効な時刻ではありません。</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>有効なURLではありません。</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>2つの値が同じでなければなりません。</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>ファイルのサイズが大きすぎます。有効な最大サイズは{{ limit }} {{ suffix }}です。</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>ファイルのサイズが大きすぎます。</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>ファイルをアップロードできませんでした。</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>有効な数字ではありません。</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>ファイルが画像ではありません。</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>有効なIPアドレスではありません。</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>有効な言語名ではありません。</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>有効なロケールではありません。</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>有効な国名ではありません。</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>既に使用されています。</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>画像のサイズが検出できません。</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>画像の幅が大きすぎます({{ width }}ピクセル)。{{ max_width }}ピクセルまでにしてください。</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>画像の幅が小さすぎます({{ width }}ピクセル)。{{ min_width }}ピクセル以上にしてください。</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>画像の高さが大きすぎます({{ height }}ピクセル)。{{ max_height }}ピクセルまでにしてください。</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>画像の高さが小さすぎます({{ height }}ピクセル)。{{ min_height }}ピクセル以上にしてください。</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>ユーザーの現在のパスワードでなければなりません。</target> </trans-unit> <trans-unit id="48"> <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"> <source>The file was only partially uploaded.</source> <target>ファイルのアップロードは完全ではありません。</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>ファイルがアップロードされていません。</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>php.iniで一時フォルダが設定されていません。</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>一時ファイルをディスクに書き込むことができません。</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>PHP拡張によってアップロードに失敗しました。</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} element.|This collection should contain exactly {{ limit }} elements.</source> <target>要素はちょうど{{ limit }}個でなければなりません。</target> </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> <target>無効なカード番号です。</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>未対応のカード種類又は無効なカード番号です。</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>有効なIBANコードではありません。</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>有効なISBN-10コードではありません。</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>有効なISBN-13コードではありません。</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>有効なISBN-10コード又はISBN-13コードではありません。</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>有効なISSNコードではありません。</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>有効な貨幣ではありません。</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>{{ compared_value }}と等しくなければなりません。</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>{{ compared_value }}より大きくなければなりません。</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>{{ compared_value }}以上でなければなりません。</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>{{ compared_value_type }}としての{{ compared_value }}と等しくなければなりません。</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>{{ compared_value }}未満でなければなりません。</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>{{ compared_value }}以下でなければなりません。</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>{{ compared_value }}と等しくてはいけません。</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>{{ compared_value_type }}としての{{ compared_value }}と等しくてはいけません。</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>画像のアスペクト比が大きすぎます({{ ratio }})。{{ max_ratio }}までにしてください。</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>画像のアスペクト比が小さすぎます({{ ratio }})。{{ min_ratio }}以上にしてください。</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>画像が正方形になっています({{ width }}x{{ height }}ピクセル)。正方形の画像は許可されていません。</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>画像が横向きになっています({{ width }}x{{ height }}ピクセル)。横向きの画像は許可されていません。</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>画像が縦向きになっています({{ width }}x{{ height }}ピクセル)。縦向きの画像は許可されていません。</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>空のファイルは許可されていません。</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>ホストを解決できませんでした。</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>この値は予期される文字コード({{ charset }})と異なります。</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>有効なSWIFTコードではありません。</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>エラー</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>有効なUUIDではありません。</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>{{ compared_value }}の倍数でなければなりません。</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>このSWIFTコードはIBANコード({{ iban }})に関連付けられていません。</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>JSONでなければなりません。</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>要素は重複してはなりません。</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>正の数でなければなりません。</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>正の数、または0でなければなりません。</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>負の数でなければなりません。</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>負の数、または0でなければなりません。</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>有効なタイムゾーンではありません。</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>このパスワードは漏洩している為使用できません。</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>{{ min }}以上{{ max }}以下でなければなりません。</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>有効なホスト名ではありません。</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>要素の数は{{ compared_value }}の倍数でなければなりません。</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>以下の制約のうち少なくとも1つを満たす必要があります:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>コレクションの各要素は、それぞれの制約を満たす必要があります。</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>この値は有効な国際証券識別番号(ISIN)ではありません。</target> </trans-unit> <trans-unit id="100"> <source>This value should be a valid expression.</source> <target>式でなければなりません。</target> </trans-unit> <trans-unit id="101"> <source>This value is not a valid CSS color.</source> <target>この値は有効なCSSカラーではありません。</target> </trans-unit> <trans-unit id="102"> <source>This value is not a valid CIDR notation.</source> <target>この値は有効なCIDR表記ではありません。</target> </trans-unit> <trans-unit id="103"> <source>The value of the netmask should be between {{ min }} and {{ max }}.</source> <target>ネットマスクの値は、{{ min }}から{{ max }}の間にある必要があります。</target> </trans-unit> </body> </file> </xliff> Resources/translations/validators.lb.xlf 0000644 00000055165 15120140600 0014517 0 ustar 00 <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="1"> <source>This value should be false.</source> <target>Dëse Wäert sollt falsch sinn.</target> </trans-unit> <trans-unit id="2"> <source>This value should be true.</source> <target>Dëse Wäert sollt wouer sinn.</target> </trans-unit> <trans-unit id="3"> <source>This value should be of type {{ type }}.</source> <target>Dëse Wäert sollt vum Typ {{ type }} sinn.</target> </trans-unit> <trans-unit id="4"> <source>This value should be blank.</source> <target>Dëse Wäert sollt eidel sinn.</target> </trans-unit> <trans-unit id="5"> <source>The value you selected is not a valid choice.</source> <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 }} choice.|You must select at least {{ limit }} choices.</source> <target>Et muss mindestens {{ limit }} Méiglechkeet ausgewielt ginn.|Et musse mindestens {{ limit }} Méiglechkeeten ausgewielt ginn.</target> </trans-unit> <trans-unit id="7"> <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source> <target>Et dierf héchstens {{ limit }} Méiglechkeet ausgewielt ginn.|Et dierfen héchstens {{ limit }} Méiglechkeeten ausgewielt ginn.</target> </trans-unit> <trans-unit id="8"> <source>One or more of the given values is invalid.</source> <target>Een oder méi vun de Wäerter ass ongëlteg.</target> </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> <target>D'Feld gouf net erwaart.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> <target>D'Feld feelt.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> <target>Dëse Wäert entsprécht kenger gëlteger Datumsangab.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> <target>Dëse Wäert entsprécht kenger gëlteger Datums- an Zäitangab.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> <target>Dëse Wäert ass keng gëlteg Email-Adress.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> <target>De Fichier gouf net fonnt.</target> </trans-unit> <trans-unit id="15"> <source>The file is not readable.</source> <target>De Fichier ass net liesbar.</target> </trans-unit> <trans-unit id="16"> <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>De Fichier ass ze grouss ({{ size }} {{ suffix }}). Déi zougeloosse Maximalgréisst bedréit {{ 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>Den Typ vum Fichier ass ongëlteg ({{ type }}). Erlaabten Type sinn {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> <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 }} 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"> <source>This value should be {{ limit }} or more.</source> <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 }} 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"> <source>This value should not be blank.</source> <target>Dëse Wäert sollt net eidel sinn.</target> </trans-unit> <trans-unit id="23"> <source>This value should not be null.</source> <target>Dëst sollt keen Null-Wäert sinn.</target> </trans-unit> <trans-unit id="24"> <source>This value should be null.</source> <target>Dëst sollt keen Null-Wäert sinn.</target> </trans-unit> <trans-unit id="25"> <source>This value is not valid.</source> <target>Dëse Wäert ass net gëlteg.</target> </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> <target>Dëse Wäert entsprécht kenger gëlteger Zäitangab.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> <target>Dëse Wäert ass keng gëlteg URL.</target> </trans-unit> <trans-unit id="31"> <source>The two values should be equal.</source> <target>Béid Wäerter sollten identesch sinn.</target> </trans-unit> <trans-unit id="32"> <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source> <target>De fichier ass ze grouss. Déi maximal Gréisst dierf {{ limit }} {{ suffix }} net depasséieren.</target> </trans-unit> <trans-unit id="33"> <source>The file is too large.</source> <target>De Fichier ass ze grouss.</target> </trans-unit> <trans-unit id="34"> <source>The file could not be uploaded.</source> <target>De Fichier konnt net eropgeluede ginn.</target> </trans-unit> <trans-unit id="35"> <source>This value should be a valid number.</source> <target>Dëse Wäert sollt eng gëlteg Zuel sinn.</target> </trans-unit> <trans-unit id="36"> <source>This file is not a valid image.</source> <target>Dëse Fichier ass kee gëltegt Bild.</target> </trans-unit> <trans-unit id="37"> <source>This is not a valid IP address.</source> <target>Dëst ass keng gëlteg IP-Adress.</target> </trans-unit> <trans-unit id="38"> <source>This value is not a valid language.</source> <target>Dëse Wäert entsprécht kenger gëlteger Sprooch.</target> </trans-unit> <trans-unit id="39"> <source>This value is not a valid locale.</source> <target>Dëse Wäert entsprécht kengem gëltege Gebittsschema.</target> </trans-unit> <trans-unit id="40"> <source>This value is not a valid country.</source> <target>Dëse Wäert entsprécht kengem gëltege Land.</target> </trans-unit> <trans-unit id="41"> <source>This value is already used.</source> <target>Dëse Wäert gëtt scho benotzt.</target> </trans-unit> <trans-unit id="42"> <source>The size of the image could not be detected.</source> <target>D'Gréisst vum Bild konnt net detektéiert ginn.</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>D'Breet vum Bild ass ze grouss ({{ width }}px). Déi erlaabte maximal Breet ass {{ 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>D'Breet vum Bild ass ze kleng ({{ width }}px). Déi minimal Breet ass {{ 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>D'Héicht vum Bild ass ze grouss ({{ height }}px). Déi erlaabte maximal Héicht ass {{ 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>D'Héicht vum Bild ass ze kleng ({{ height }}px). Déi minimal Héicht ass {{ min_height }}px.</target> </trans-unit> <trans-unit id="47"> <source>This value should be the user's current password.</source> <target>Dëse Wäert sollt dem aktuelle Benotzerpasswuert entspriechen.</target> </trans-unit> <trans-unit id="48"> <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source> <target>Dëse Wäert sollt exakt {{ limit }} Buschtaf hunn.|Dëse Wäert sollt exakt {{ limit }} Buschtawen hunn.</target> </trans-unit> <trans-unit id="49"> <source>The file was only partially uploaded.</source> <target>De Fichier gouf just deelweis eropgelueden.</target> </trans-unit> <trans-unit id="50"> <source>No file was uploaded.</source> <target>Et gouf kee Fichier eropgelueden.</target> </trans-unit> <trans-unit id="51"> <source>No temporary folder was configured in php.ini.</source> <target>Et gouf keen temporären Dossier an der php.ini konfiguréiert oder den temporären Dossier existéiert net.</target> </trans-unit> <trans-unit id="52"> <source>Cannot write temporary file to disk.</source> <target>Den temporäre Fichier kann net gespäichert ginn.</target> </trans-unit> <trans-unit id="53"> <source>A PHP extension caused the upload to fail.</source> <target>Eng PHP-Erweiderung huet den Upload verhënnert.</target> </trans-unit> <trans-unit id="54"> <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 }} 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 }} 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"> <source>Invalid card number.</source> <target>Ongëlteg Kaartennummer.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> <target>Net ënnerstëtzte Kaartentyp oder ongëlteg Kaartennummer.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> <target>Dëst ass keng gëlteg IBAN-Kontonummer.</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> <target>Dëse Wäert ass keng gëlteg ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> <target>Dëse Wäert ass keng gëlteg ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> <target>Dëse Wäert ass weder eng gëlteg ISBN-10 nach eng gëlteg ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> <target>Dëse Wäert ass keng gëlteg ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> <target>Dëse Wäert ass keng gëlteg Währung.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> <target>Dëse Wäert sollt {{ compared_value }} sinn.</target> </trans-unit> <trans-unit id="66"> <source>This value should be greater than {{ compared_value }}.</source> <target>Dëse Wäert sollt méi grouss wéi {{ compared_value }} sinn.</target> </trans-unit> <trans-unit id="67"> <source>This value should be greater than or equal to {{ compared_value }}.</source> <target>Dëse Wäert sollt méi grouss wéi oder gläich {{ compared_value }} sinn.</target> </trans-unit> <trans-unit id="68"> <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Dëse Wäert sollt identesch si mat {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="69"> <source>This value should be less than {{ compared_value }}.</source> <target>Dëse Wäert sollt méi kleng wéi {{ compared_value }} sinn.</target> </trans-unit> <trans-unit id="70"> <source>This value should be less than or equal to {{ compared_value }}.</source> <target>Dëse Wäert sollt méi kleng wéi oder gläich {{ compared_value }} sinn.</target> </trans-unit> <trans-unit id="71"> <source>This value should not be equal to {{ compared_value }}.</source> <target>Dëse Wäert sollt net {{ compared_value }} sinn.</target> </trans-unit> <trans-unit id="72"> <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Dëse Wäert sollt net identesch si mat {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> <trans-unit id="73"> <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> <target>D'Säiteverhältnis vum Bild ass ze grouss ({{ ratio }}). Den erlaabte Maximalwäert ass {{ max_ratio }}.</target> </trans-unit> <trans-unit id="74"> <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> <target>D'Säiteverhältnis vum Bild ass ze kleng ({{ ratio }}). Den erwaarte Minimalwäert ass {{ min_ratio }}.</target> </trans-unit> <trans-unit id="75"> <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> <target>D'Bild ass quadratesch ({{ width }}x{{ height }}px). Quadratesch Biller sinn net erlaabt.</target> </trans-unit> <trans-unit id="76"> <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> <target>D'Bild ass am Queeschformat ({{ width }}x{{ height }}px). Biller am Queeschformat sinn net erlaabt.</target> </trans-unit> <trans-unit id="77"> <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> <target>D'Bild ass am Héichformat ({{ width }}x{{ height }}px). Biller am Héichformat sinn net erlaabt.</target> </trans-unit> <trans-unit id="78"> <source>An empty file is not allowed.</source> <target>En eidele Fichier ass net erlaabt.</target> </trans-unit> <trans-unit id="79"> <source>The host could not be resolved.</source> <target>Den Host-Numm konnt net opgeléist ginn.</target> </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> <target>Dëse Wäert entsprécht net dem erwaarten Zeechesaz {{ charset }}.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> <target>Dëst ass kee gëltege "Business Identifier Code" (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> <target>Feeler</target> </trans-unit> <trans-unit id="83"> <source>This is not a valid UUID.</source> <target>Dëst ass keng gëlteg UUID.</target> </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> <target>Dëse Wäert sollt e puer vun {{ compared_value }} sinn.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Dëse "Business Identifier Code" (BIC) ass net mat IBAN verbonnen {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> <target>Dëse Wäert sollt gëlteg JSON.</target> </trans-unit> <trans-unit id="87"> <source>This collection should contain only unique elements.</source> <target>Dës Sammlung sollt just eenzegaarteg Elementer enthalen.</target> </trans-unit> <trans-unit id="88"> <source>This value should be positive.</source> <target>Dëse Wäert sollt positiv sinn.</target> </trans-unit> <trans-unit id="89"> <source>This value should be either positive or zero.</source> <target>Dëse Wäert sollt entweeder positiv oder null sinn.</target> </trans-unit> <trans-unit id="90"> <source>This value should be negative.</source> <target>Dëse Wäert sollt negativ sinn.</target> </trans-unit> <trans-unit id="91"> <source>This value should be either negative or zero.</source> <target>Dëse Wäert sollt entweeder negativ oder null sinn.</target> </trans-unit> <trans-unit id="92"> <source>This value is not a valid timezone.</source> <target>Dëse Wäert ass keng gëlteg Zäitzon.</target> </trans-unit> <trans-unit id="93"> <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> <target>Dëst Passwuert war Deel vun engem Dateleck an dierf net benotzt ginn. Benotzt w.e.g. en anert Passwuert .</target> </trans-unit> <trans-unit id="94"> <source>This value should be between {{ min }} and {{ max }}.</source> <target>De Wäert sollt tëscht {{ min }} a(n) {{ max }} leien.</target> </trans-unit> <trans-unit id="95"> <source>This value is not a valid hostname.</source> <target>Dëse Wäert ass kee gëltegen Hostnumm.</target> </trans-unit> <trans-unit id="96"> <source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source> <target>D'Unzuel un Elementer an dëser Sammlung sollt e multipel vu(n) {{ compared_value }} sinn.</target> </trans-unit> <trans-unit id="97"> <source>This value should satisfy at least one of the following constraints:</source> <target>Dëse Wäert sollt op d'mannst ee vun dësen Aschränkungen erfëllen:</target> </trans-unit> <trans-unit id="98"> <source>Each element of this collection should satisfy its own set of constraints.</source> <target>All Element aus dëser Sammlung sollt seng eegen Aschränkungen erfëllen.</target> </trans-unit> <trans-unit id="99"> <source>This value is not a valid International Securities Identification Number (ISIN).</source> <target>Dëse Wäert ass keng gëlteg International Wäertpabeiererkennnummer (ISIN).</target> </trans-unit> </body> </file> </xliff> Test/ConstraintValidatorTestCase.php 0000644 00000043117 15120140600 0013615 0 ustar 00 <?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\Test; use PHPUnit\Framework\Assert; use PHPUnit\Framework\Constraint\IsIdentical; use PHPUnit\Framework\Constraint\IsInstanceOf; use PHPUnit\Framework\Constraint\IsNull; use PHPUnit\Framework\Constraint\LogicalOr; use PHPUnit\Framework\ExpectationFailedException; use PHPUnit\Framework\TestCase; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Constraints\NotNull; use Symfony\Component\Validator\Constraints\Valid; use Symfony\Component\Validator\ConstraintValidatorInterface; use Symfony\Component\Validator\ConstraintViolation; use Symfony\Component\Validator\ConstraintViolationInterface; use Symfony\Component\Validator\ConstraintViolationList; use Symfony\Component\Validator\ConstraintViolationListInterface; use Symfony\Component\Validator\Context\ExecutionContext; use Symfony\Component\Validator\Context\ExecutionContextInterface; use Symfony\Component\Validator\Mapping\ClassMetadata; use Symfony\Component\Validator\Mapping\PropertyMetadata; use Symfony\Component\Validator\Validator\ContextualValidatorInterface; use Symfony\Component\Validator\Validator\ValidatorInterface; use Symfony\Contracts\Translation\TranslatorInterface; /** * A test case to ease testing Constraint Validators. * * @author Bernhard Schussek <bschussek@gmail.com> */ abstract class ConstraintValidatorTestCase extends TestCase { /** * @var ExecutionContextInterface */ protected $context; /** * @var ConstraintValidatorInterface */ protected $validator; protected $group; protected $metadata; protected $object; protected $value; protected $root; protected $propertyPath; protected $constraint; protected $defaultTimezone; private $defaultLocale; private $expectedViolations; private $call; protected function setUp(): void { $this->group = 'MyGroup'; $this->metadata = null; $this->object = null; $this->value = 'InvalidValue'; $this->root = 'root'; $this->propertyPath = 'property.path'; // Initialize the context with some constraint so that we can // successfully build a violation. $this->constraint = new NotNull(); $this->context = $this->createContext(); $this->validator = $this->createValidator(); $this->validator->initialize($this->context); $this->defaultLocale = \Locale::getDefault(); \Locale::setDefault('en'); $this->expectedViolations = []; $this->call = 0; $this->setDefaultTimezone('UTC'); } protected function tearDown(): void { $this->restoreDefaultTimezone(); \Locale::setDefault($this->defaultLocale); } protected function setDefaultTimezone(?string $defaultTimezone) { // Make sure this method cannot be called twice before calling // also restoreDefaultTimezone() if (null === $this->defaultTimezone) { $this->defaultTimezone = date_default_timezone_get(); date_default_timezone_set($defaultTimezone); } } protected function restoreDefaultTimezone() { if (null !== $this->defaultTimezone) { date_default_timezone_set($this->defaultTimezone); $this->defaultTimezone = null; } } protected function createContext() { $translator = $this->createMock(TranslatorInterface::class); $translator->expects($this->any())->method('trans')->willReturnArgument(0); $validator = $this->createMock(ValidatorInterface::class); $validator->expects($this->any()) ->method('validate') ->willReturnCallback(function () { return $this->expectedViolations[$this->call++] ?? new ConstraintViolationList(); }); $context = new ExecutionContext($validator, $this->root, $translator); $context->setGroup($this->group); $context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath); $context->setConstraint($this->constraint); $contextualValidatorMockBuilder = $this->getMockBuilder(AssertingContextualValidator::class) ->setConstructorArgs([$context]); $contextualValidatorMethods = [ 'atPath', 'validate', 'validateProperty', 'validatePropertyValue', 'getViolations', ]; $contextualValidatorMockBuilder->onlyMethods($contextualValidatorMethods); $contextualValidator = $contextualValidatorMockBuilder->getMock(); $contextualValidator->expects($this->any()) ->method('atPath') ->willReturnCallback(function ($path) use ($contextualValidator) { return $contextualValidator->doAtPath($path); }); $contextualValidator->expects($this->any()) ->method('validate') ->willReturnCallback(function ($value, $constraints = null, $groups = null) use ($contextualValidator) { return $contextualValidator->doValidate($value, $constraints, $groups); }); $contextualValidator->expects($this->any()) ->method('validateProperty') ->willReturnCallback(function ($object, $propertyName, $groups = null) use ($contextualValidator) { return $contextualValidator->validateProperty($object, $propertyName, $groups); }); $contextualValidator->expects($this->any()) ->method('validatePropertyValue') ->willReturnCallback(function ($objectOrClass, $propertyName, $value, $groups = null) use ($contextualValidator) { return $contextualValidator->doValidatePropertyValue($objectOrClass, $propertyName, $value, $groups); }); $contextualValidator->expects($this->any()) ->method('getViolations') ->willReturnCallback(function () use ($contextualValidator) { return $contextualValidator->doGetViolations(); }); $validator->expects($this->any()) ->method('inContext') ->with($context) ->willReturn($contextualValidator); return $context; } protected function setGroup(?string $group) { $this->group = $group; $this->context->setGroup($group); } protected function setObject($object) { $this->object = $object; $this->metadata = \is_object($object) ? new ClassMetadata(\get_class($object)) : null; $this->context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath); } protected function setProperty($object, $property) { $this->object = $object; $this->metadata = \is_object($object) ? new PropertyMetadata(\get_class($object), $property) : null; $this->context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath); } protected function setValue($value) { $this->value = $value; $this->context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath); } protected function setRoot($root) { $this->root = $root; $this->context = $this->createContext(); $this->validator->initialize($this->context); } protected function setPropertyPath(string $propertyPath) { $this->propertyPath = $propertyPath; $this->context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath); } protected function expectNoValidate() { $validator = $this->context->getValidator()->inContext($this->context); $validator->expectNoValidate(); } protected function expectValidateAt(int $i, string $propertyPath, $value, $group) { $validator = $this->context->getValidator()->inContext($this->context); $validator->expectValidation($i, $propertyPath, $value, $group, function ($passedConstraints) { $expectedConstraints = new LogicalOr(); $expectedConstraints->setConstraints([new IsNull(), new IsIdentical([]), new IsInstanceOf(Valid::class)]); Assert::assertThat($passedConstraints, $expectedConstraints); }); } protected function expectValidateValue(int $i, $value, array $constraints = [], $group = null) { $contextualValidator = $this->context->getValidator()->inContext($this->context); $contextualValidator->expectValidation($i, null, $value, $group, function ($passedConstraints) use ($constraints) { if (\is_array($constraints) && !\is_array($passedConstraints)) { $passedConstraints = [$passedConstraints]; } Assert::assertEquals($constraints, $passedConstraints); }); } protected function expectFailingValueValidation(int $i, $value, array $constraints, $group, ConstraintViolationInterface $violation) { $contextualValidator = $this->context->getValidator()->inContext($this->context); $contextualValidator->expectValidation($i, null, $value, $group, function ($passedConstraints) use ($constraints) { if (\is_array($constraints) && !\is_array($passedConstraints)) { $passedConstraints = [$passedConstraints]; } Assert::assertEquals($constraints, $passedConstraints); }, $violation); } protected function expectValidateValueAt(int $i, string $propertyPath, $value, $constraints, $group = null) { $contextualValidator = $this->context->getValidator()->inContext($this->context); $contextualValidator->expectValidation($i, $propertyPath, $value, $group, function ($passedConstraints) use ($constraints) { Assert::assertEquals($constraints, $passedConstraints); }); } protected function expectViolationsAt($i, $value, Constraint $constraint) { $context = $this->createContext(); $validatorClassname = $constraint->validatedBy(); $validator = new $validatorClassname(); $validator->initialize($context); $validator->validate($value, $constraint); $this->expectedViolations[] = $context->getViolations(); return $context->getViolations(); } protected function assertNoViolation() { $this->assertSame(0, $violationsCount = \count($this->context->getViolations()), sprintf('0 violation expected. Got %u.', $violationsCount)); } /** * @return ConstraintViolationAssertion */ protected function buildViolation($message) { return new ConstraintViolationAssertion($this->context, $message, $this->constraint); } abstract protected function createValidator(); } final class ConstraintViolationAssertion { /** * @var ExecutionContextInterface */ private $context; /** * @var ConstraintViolationAssertion[] */ private $assertions; private $message; private $parameters = []; private $invalidValue = 'InvalidValue'; private $propertyPath = 'property.path'; private $plural; private $code; private $constraint; private $cause; /** * @internal */ public function __construct(ExecutionContextInterface $context, string $message, Constraint $constraint = null, array $assertions = []) { $this->context = $context; $this->message = $message; $this->constraint = $constraint; $this->assertions = $assertions; } /** * @return $this */ public function atPath(string $path) { $this->propertyPath = $path; return $this; } /** * @return $this */ public function setParameter(string $key, string $value) { $this->parameters[$key] = $value; return $this; } /** * @return $this */ public function setParameters(array $parameters) { $this->parameters = $parameters; return $this; } /** * @return $this */ public function setTranslationDomain($translationDomain) { // no-op for BC return $this; } /** * @return $this */ public function setInvalidValue($invalidValue) { $this->invalidValue = $invalidValue; return $this; } /** * @return $this */ public function setPlural(int $number) { $this->plural = $number; return $this; } /** * @return $this */ public function setCode(string $code) { $this->code = $code; return $this; } /** * @return $this */ public function setCause($cause) { $this->cause = $cause; return $this; } public function buildNextViolation(string $message): self { $assertions = $this->assertions; $assertions[] = $this; return new self($this->context, $message, $this->constraint, $assertions); } public function assertRaised() { $expected = []; foreach ($this->assertions as $assertion) { $expected[] = $assertion->getViolation(); } $expected[] = $this->getViolation(); $violations = iterator_to_array($this->context->getViolations()); Assert::assertSame($expectedCount = \count($expected), $violationsCount = \count($violations), sprintf('%u violation(s) expected. Got %u.', $expectedCount, $violationsCount)); reset($violations); foreach ($expected as $violation) { Assert::assertEquals($violation, current($violations)); next($violations); } } private function getViolation(): ConstraintViolation { return new ConstraintViolation( $this->message, $this->message, $this->parameters, $this->context->getRoot(), $this->propertyPath, $this->invalidValue, $this->plural, $this->code, $this->constraint, $this->cause ); } } /** * @internal */ class AssertingContextualValidator implements ContextualValidatorInterface { private $context; private $expectNoValidate = false; private $atPathCalls = -1; private $expectedAtPath = []; private $validateCalls = -1; private $expectedValidate = []; public function __construct(ExecutionContextInterface $context) { $this->context = $context; } public function __destruct() { if ($this->expectedAtPath) { throw new ExpectationFailedException('Some expected validation calls for paths were not done.'); } if ($this->expectedValidate) { throw new ExpectationFailedException('Some expected validation calls for values were not done.'); } } public function atPath(string $path) { } /** * @return $this */ public function doAtPath(string $path) { Assert::assertFalse($this->expectNoValidate, 'No validation calls have been expected.'); if (!isset($this->expectedAtPath[++$this->atPathCalls])) { throw new ExpectationFailedException(sprintf('Validation for property path "%s" was not expected.', $path)); } $expectedPath = $this->expectedAtPath[$this->atPathCalls]; unset($this->expectedAtPath[$this->atPathCalls]); Assert::assertSame($expectedPath, $path); return $this; } public function validate($value, $constraints = null, $groups = null) { } /** * @return $this */ public function doValidate($value, $constraints = null, $groups = null) { Assert::assertFalse($this->expectNoValidate, 'No validation calls have been expected.'); if (!isset($this->expectedValidate[++$this->validateCalls])) { return $this; } [$expectedValue, $expectedGroup, $expectedConstraints, $violation] = $this->expectedValidate[$this->validateCalls]; unset($this->expectedValidate[$this->validateCalls]); Assert::assertSame($expectedValue, $value); $expectedConstraints($constraints); Assert::assertSame($expectedGroup, $groups); if (null !== $violation) { $this->context->addViolation($violation->getMessage(), $violation->getParameters()); } return $this; } public function validateProperty(object $object, string $propertyName, $groups = null) { } /** * @return $this */ public function doValidateProperty(object $object, string $propertyName, $groups = null) { return $this; } public function validatePropertyValue($objectOrClass, string $propertyName, $value, $groups = null) { } /** * @return $this */ public function doValidatePropertyValue($objectOrClass, string $propertyName, $value, $groups = null) { return $this; } public function getViolations(): ConstraintViolationListInterface { } public function doGetViolations() { return $this->context->getViolations(); } public function expectNoValidate() { $this->expectNoValidate = true; } public function expectValidation(string $call, ?string $propertyPath, $value, $group, callable $constraints, ConstraintViolationInterface $violation = null) { if (null !== $propertyPath) { $this->expectedAtPath[$call] = $propertyPath; } $this->expectedValidate[$call] = [$value, $group, $constraints, $violation]; } } Util/PropertyPath.php 0000644 00000002514 15120140600 0010622 0 ustar 00 <?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\Util; /** * Contains utility methods for dealing with property paths. * * For more extensive functionality, use Symfony's PropertyAccess component. * * @author Bernhard Schussek <bschussek@gmail.com> */ class PropertyPath { /** * Appends a path to a given property path. * * If the base path is empty, the appended path will be returned unchanged. * If the base path is not empty, and the appended path starts with a * squared opening bracket ("["), the concatenation of the two paths is * returned. Otherwise, the concatenation of the two paths is returned, * separated by a dot ("."). * * @return string */ public static function append(string $basePath, string $subPath) { if ('' !== $subPath) { if ('[' === $subPath[0]) { return $basePath.$subPath; } return '' !== $basePath ? $basePath.'.'.$subPath : $subPath; } return $basePath; } /** * Not instantiable. */ private function __construct() { } } Validator/ContextualValidatorInterface.php 0000644 00000006046 15120140600 0015012 0 ustar 00 <?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\Validator; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Constraints\GroupSequence; use Symfony\Component\Validator\ConstraintViolationListInterface; /** * A validator in a specific execution context. * * @author Bernhard Schussek <bschussek@gmail.com> */ interface ContextualValidatorInterface { /** * Appends the given path to the property path of the context. * * If called multiple times, the path will always be reset to the context's * original path with the given path appended to it. * * @return $this */ public function atPath(string $path); /** * Validates a value against a constraint or a list of constraints. * * If no constraint is passed, the constraint * {@link \Symfony\Component\Validator\Constraints\Valid} is assumed. * * @param mixed $value The value to validate * @param Constraint|Constraint[]|null $constraints The constraint(s) to validate against * @param string|GroupSequence|array<string|GroupSequence>|null $groups The validation groups to validate. If none is given, "Default" is assumed * * @return $this */ public function validate($value, $constraints = null, $groups = null); /** * Validates a property of an object against the constraints specified * for this property. * * @param string $propertyName The name of the validated property * @param string|GroupSequence|array<string|GroupSequence>|null $groups The validation groups to validate. If none is given, "Default" is assumed * * @return $this */ public function validateProperty(object $object, string $propertyName, $groups = null); /** * Validates a value against the constraints specified for an object's * property. * * @param object|string $objectOrClass The object or its class name * @param string $propertyName The name of the property * @param mixed $value The value to validate against the property's constraints * @param string|GroupSequence|array<string|GroupSequence>|null $groups The validation groups to validate. If none is given, "Default" is assumed * * @return $this */ public function validatePropertyValue($objectOrClass, string $propertyName, $value, $groups = null); /** * Returns the violations that have been generated so far in the context * of the validator. * * @return ConstraintViolationListInterface */ public function getViolations(); } Validator/LazyProperty.php 0000644 00000001250 15120140600 0011651 0 ustar 00 <?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\Validator; /** * A wrapper for a callable initializing a property from a getter. * * @internal */ class LazyProperty { private $propertyValueCallback; public function __construct(\Closure $propertyValueCallback) { $this->propertyValueCallback = $propertyValueCallback; } public function getPropertyValue() { return ($this->propertyValueCallback)(); } } Validator/RecursiveContextualValidator.php 0000644 00000072631 15120140600 0015064 0 ustar 00 <?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\Validator; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Constraints\Composite; use Symfony\Component\Validator\Constraints\Existence; use Symfony\Component\Validator\Constraints\GroupSequence; use Symfony\Component\Validator\Constraints\Valid; use Symfony\Component\Validator\ConstraintValidatorFactoryInterface; use Symfony\Component\Validator\Context\ExecutionContext; use Symfony\Component\Validator\Context\ExecutionContextInterface; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\NoSuchMetadataException; use Symfony\Component\Validator\Exception\RuntimeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; use Symfony\Component\Validator\Exception\UnsupportedMetadataException; use Symfony\Component\Validator\Exception\ValidatorException; use Symfony\Component\Validator\Mapping\CascadingStrategy; use Symfony\Component\Validator\Mapping\ClassMetadataInterface; use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface; use Symfony\Component\Validator\Mapping\GenericMetadata; use Symfony\Component\Validator\Mapping\GetterMetadata; use Symfony\Component\Validator\Mapping\MetadataInterface; use Symfony\Component\Validator\Mapping\PropertyMetadataInterface; use Symfony\Component\Validator\Mapping\TraversalStrategy; use Symfony\Component\Validator\ObjectInitializerInterface; use Symfony\Component\Validator\Util\PropertyPath; /** * Recursive implementation of {@link ContextualValidatorInterface}. * * @author Bernhard Schussek <bschussek@gmail.com> */ class RecursiveContextualValidator implements ContextualValidatorInterface { private $context; private $defaultPropertyPath; private $defaultGroups; private $metadataFactory; private $validatorFactory; private $objectInitializers; /** * Creates a validator for the given context. * * @param ObjectInitializerInterface[] $objectInitializers The object initializers */ public function __construct(ExecutionContextInterface $context, MetadataFactoryInterface $metadataFactory, ConstraintValidatorFactoryInterface $validatorFactory, array $objectInitializers = []) { $this->context = $context; $this->defaultPropertyPath = $context->getPropertyPath(); $this->defaultGroups = [$context->getGroup() ?: Constraint::DEFAULT_GROUP]; $this->metadataFactory = $metadataFactory; $this->validatorFactory = $validatorFactory; $this->objectInitializers = $objectInitializers; } /** * {@inheritdoc} */ public function atPath(string $path) { $this->defaultPropertyPath = $this->context->getPropertyPath($path); return $this; } /** * {@inheritdoc} */ public function validate($value, $constraints = null, $groups = null) { $groups = $groups ? $this->normalizeGroups($groups) : $this->defaultGroups; $previousValue = $this->context->getValue(); $previousObject = $this->context->getObject(); $previousMetadata = $this->context->getMetadata(); $previousPath = $this->context->getPropertyPath(); $previousGroup = $this->context->getGroup(); $previousConstraint = null; if ($this->context instanceof ExecutionContext || method_exists($this->context, 'getConstraint')) { $previousConstraint = $this->context->getConstraint(); } // If explicit constraints are passed, validate the value against // those constraints if (null !== $constraints) { // You can pass a single constraint or an array of constraints // Make sure to deal with an array in the rest of the code if (!\is_array($constraints)) { $constraints = [$constraints]; } $metadata = new GenericMetadata(); $metadata->addConstraints($constraints); $this->validateGenericNode( $value, $previousObject, \is_object($value) ? $this->generateCacheKey($value) : null, $metadata, $this->defaultPropertyPath, $groups, null, TraversalStrategy::IMPLICIT, $this->context ); $this->context->setNode($previousValue, $previousObject, $previousMetadata, $previousPath); $this->context->setGroup($previousGroup); if (null !== $previousConstraint) { $this->context->setConstraint($previousConstraint); } return $this; } // If an object is passed without explicit constraints, validate that // object against the constraints defined for the object's class if (\is_object($value)) { $this->validateObject( $value, $this->defaultPropertyPath, $groups, TraversalStrategy::IMPLICIT, $this->context ); $this->context->setNode($previousValue, $previousObject, $previousMetadata, $previousPath); $this->context->setGroup($previousGroup); return $this; } // If an array is passed without explicit constraints, validate each // object in the array if (\is_array($value)) { $this->validateEachObjectIn( $value, $this->defaultPropertyPath, $groups, $this->context ); $this->context->setNode($previousValue, $previousObject, $previousMetadata, $previousPath); $this->context->setGroup($previousGroup); return $this; } throw new RuntimeException(sprintf('Cannot validate values of type "%s" automatically. Please provide a constraint.', get_debug_type($value))); } /** * {@inheritdoc} */ public function validateProperty(object $object, string $propertyName, $groups = null) { $classMetadata = $this->metadataFactory->getMetadataFor($object); if (!$classMetadata instanceof ClassMetadataInterface) { throw new ValidatorException(sprintf('The metadata factory should return instances of "\Symfony\Component\Validator\Mapping\ClassMetadataInterface", got: "%s".', get_debug_type($classMetadata))); } $propertyMetadatas = $classMetadata->getPropertyMetadata($propertyName); $groups = $groups ? $this->normalizeGroups($groups) : $this->defaultGroups; $cacheKey = $this->generateCacheKey($object); $propertyPath = PropertyPath::append($this->defaultPropertyPath, $propertyName); $previousValue = $this->context->getValue(); $previousObject = $this->context->getObject(); $previousMetadata = $this->context->getMetadata(); $previousPath = $this->context->getPropertyPath(); $previousGroup = $this->context->getGroup(); foreach ($propertyMetadatas as $propertyMetadata) { $propertyValue = $propertyMetadata->getPropertyValue($object); $this->validateGenericNode( $propertyValue, $object, $cacheKey.':'.\get_class($object).':'.$propertyName, $propertyMetadata, $propertyPath, $groups, null, TraversalStrategy::IMPLICIT, $this->context ); } $this->context->setNode($previousValue, $previousObject, $previousMetadata, $previousPath); $this->context->setGroup($previousGroup); return $this; } /** * {@inheritdoc} */ public function validatePropertyValue($objectOrClass, string $propertyName, $value, $groups = null) { $classMetadata = $this->metadataFactory->getMetadataFor($objectOrClass); if (!$classMetadata instanceof ClassMetadataInterface) { throw new ValidatorException(sprintf('The metadata factory should return instances of "\Symfony\Component\Validator\Mapping\ClassMetadataInterface", got: "%s".', get_debug_type($classMetadata))); } $propertyMetadatas = $classMetadata->getPropertyMetadata($propertyName); $groups = $groups ? $this->normalizeGroups($groups) : $this->defaultGroups; if (\is_object($objectOrClass)) { $object = $objectOrClass; $class = \get_class($object); $cacheKey = $this->generateCacheKey($objectOrClass); $propertyPath = PropertyPath::append($this->defaultPropertyPath, $propertyName); } else { // $objectOrClass contains a class name $object = null; $class = $objectOrClass; $cacheKey = null; $propertyPath = $this->defaultPropertyPath; } $previousValue = $this->context->getValue(); $previousObject = $this->context->getObject(); $previousMetadata = $this->context->getMetadata(); $previousPath = $this->context->getPropertyPath(); $previousGroup = $this->context->getGroup(); foreach ($propertyMetadatas as $propertyMetadata) { $this->validateGenericNode( $value, $object, $cacheKey.':'.$class.':'.$propertyName, $propertyMetadata, $propertyPath, $groups, null, TraversalStrategy::IMPLICIT, $this->context ); } $this->context->setNode($previousValue, $previousObject, $previousMetadata, $previousPath); $this->context->setGroup($previousGroup); return $this; } /** * {@inheritdoc} */ public function getViolations() { return $this->context->getViolations(); } /** * Normalizes the given group or list of groups to an array. * * @param string|GroupSequence|array<string|GroupSequence> $groups The groups to normalize * * @return array<string|GroupSequence> */ protected function normalizeGroups($groups) { if (\is_array($groups)) { return $groups; } return [$groups]; } /** * Validates an object against the constraints defined for its class. * * If no metadata is available for the class, but the class is an instance * of {@link \Traversable} and the selected traversal strategy allows * traversal, the object will be iterated and each nested object will be * validated instead. * * @throws NoSuchMetadataException If the object has no associated metadata * and does not implement {@link \Traversable} * or if traversal is disabled via the * $traversalStrategy argument * @throws UnsupportedMetadataException If the metadata returned by the * metadata factory does not implement * {@link ClassMetadataInterface} */ private function validateObject(object $object, string $propertyPath, array $groups, int $traversalStrategy, ExecutionContextInterface $context) { try { $classMetadata = $this->metadataFactory->getMetadataFor($object); if (!$classMetadata instanceof ClassMetadataInterface) { throw new UnsupportedMetadataException(sprintf('The metadata factory should return instances of "Symfony\Component\Validator\Mapping\ClassMetadataInterface", got: "%s".', get_debug_type($classMetadata))); } $this->validateClassNode( $object, $this->generateCacheKey($object), $classMetadata, $propertyPath, $groups, null, $traversalStrategy, $context ); } catch (NoSuchMetadataException $e) { // Rethrow if not Traversable if (!$object instanceof \Traversable) { throw $e; } // Rethrow unless IMPLICIT or TRAVERSE if (!($traversalStrategy & (TraversalStrategy::IMPLICIT | TraversalStrategy::TRAVERSE))) { throw $e; } $this->validateEachObjectIn( $object, $propertyPath, $groups, $context ); } } /** * Validates each object in a collection against the constraints defined * for their classes. * * Nested arrays are also iterated. */ private function validateEachObjectIn(iterable $collection, string $propertyPath, array $groups, ExecutionContextInterface $context) { foreach ($collection as $key => $value) { if (\is_array($value)) { // Also traverse nested arrays $this->validateEachObjectIn( $value, $propertyPath.'['.$key.']', $groups, $context ); continue; } // Scalar and null values in the collection are ignored if (\is_object($value)) { $this->validateObject( $value, $propertyPath.'['.$key.']', $groups, TraversalStrategy::IMPLICIT, $context ); } } } /** * Validates a class node. * * A class node is a combination of an object with a {@link ClassMetadataInterface} * instance. Each class node (conceptually) has zero or more succeeding * property nodes: * * (Article:class node) * \ * ($title:property node) * * This method validates the passed objects against all constraints defined * at class level. It furthermore triggers the validation of each of the * class' properties against the constraints for that property. * * If the selected traversal strategy allows traversal, the object is * iterated and each nested object is validated against its own constraints. * The object is not traversed if traversal is disabled in the class * metadata. * * If the passed groups contain the group "Default", the validator will * check whether the "Default" group has been replaced by a group sequence * in the class metadata. If this is the case, the group sequence is * validated instead. * * @throws UnsupportedMetadataException If a property metadata does not * implement {@link PropertyMetadataInterface} * @throws ConstraintDefinitionException If traversal was enabled but the * object does not implement * {@link \Traversable} * * @see TraversalStrategy */ private function validateClassNode(object $object, ?string $cacheKey, ClassMetadataInterface $metadata, string $propertyPath, array $groups, ?array $cascadedGroups, int $traversalStrategy, ExecutionContextInterface $context) { $context->setNode($object, $object, $metadata, $propertyPath); if (!$context->isObjectInitialized($cacheKey)) { foreach ($this->objectInitializers as $initializer) { $initializer->initialize($object); } $context->markObjectAsInitialized($cacheKey); } foreach ($groups as $key => $group) { // If the "Default" group is replaced by a group sequence, remember // to cascade the "Default" group when traversing the group // sequence $defaultOverridden = false; // Use the object hash for group sequences $groupHash = \is_object($group) ? $this->generateCacheKey($group, true) : $group; if ($context->isGroupValidated($cacheKey, $groupHash)) { // Skip this group when validating the properties and when // traversing the object unset($groups[$key]); continue; } $context->markGroupAsValidated($cacheKey, $groupHash); // Replace the "Default" group by the group sequence defined // for the class, if applicable. // This is done after checking the cache, so that // spl_object_hash() isn't called for this sequence and // "Default" is used instead in the cache. This is useful // if the getters below return different group sequences in // every call. if (Constraint::DEFAULT_GROUP === $group) { if ($metadata->hasGroupSequence()) { // The group sequence is statically defined for the class $group = $metadata->getGroupSequence(); $defaultOverridden = true; } elseif ($metadata->isGroupSequenceProvider()) { // The group sequence is dynamically obtained from the validated // object /* @var \Symfony\Component\Validator\GroupSequenceProviderInterface $object */ $group = $object->getGroupSequence(); $defaultOverridden = true; if (!$group instanceof GroupSequence) { $group = new GroupSequence($group); } } } // If the groups (=[<G1,G2>,G3,G4]) contain a group sequence // (=<G1,G2>), then call validateClassNode() with each entry of the // group sequence and abort if necessary (G1, G2) if ($group instanceof GroupSequence) { $this->stepThroughGroupSequence( $object, $object, $cacheKey, $metadata, $propertyPath, $traversalStrategy, $group, $defaultOverridden ? Constraint::DEFAULT_GROUP : null, $context ); // Skip the group sequence when validating properties, because // stepThroughGroupSequence() already validates the properties unset($groups[$key]); continue; } $this->validateInGroup($object, $cacheKey, $metadata, $group, $context); } // If no more groups should be validated for the property nodes, // we can safely quit if (0 === \count($groups)) { return; } // Validate all properties against their constraints foreach ($metadata->getConstrainedProperties() as $propertyName) { // If constraints are defined both on the getter of a property as // well as on the property itself, then getPropertyMetadata() // returns two metadata objects, not just one foreach ($metadata->getPropertyMetadata($propertyName) as $propertyMetadata) { if (!$propertyMetadata instanceof PropertyMetadataInterface) { throw new UnsupportedMetadataException(sprintf('The property metadata instances should implement "Symfony\Component\Validator\Mapping\PropertyMetadataInterface", got: "%s".', get_debug_type($propertyMetadata))); } if ($propertyMetadata instanceof GetterMetadata) { $propertyValue = new LazyProperty(static function () use ($propertyMetadata, $object) { return $propertyMetadata->getPropertyValue($object); }); } else { $propertyValue = $propertyMetadata->getPropertyValue($object); } $this->validateGenericNode( $propertyValue, $object, $cacheKey.':'.\get_class($object).':'.$propertyName, $propertyMetadata, PropertyPath::append($propertyPath, $propertyName), $groups, $cascadedGroups, TraversalStrategy::IMPLICIT, $context ); } } // If no specific traversal strategy was requested when this method // was called, use the traversal strategy of the class' metadata if ($traversalStrategy & TraversalStrategy::IMPLICIT) { $traversalStrategy = $metadata->getTraversalStrategy(); } // Traverse only if IMPLICIT or TRAVERSE if (!($traversalStrategy & (TraversalStrategy::IMPLICIT | TraversalStrategy::TRAVERSE))) { return; } // If IMPLICIT, stop unless we deal with a Traversable if ($traversalStrategy & TraversalStrategy::IMPLICIT && !$object instanceof \Traversable) { return; } // If TRAVERSE, fail if we have no Traversable if (!$object instanceof \Traversable) { throw new ConstraintDefinitionException(sprintf('Traversal was enabled for "%s", but this class does not implement "\Traversable".', get_debug_type($object))); } $this->validateEachObjectIn( $object, $propertyPath, $groups, $context ); } /** * Validates a node that is not a class node. * * Currently, two such node types exist: * * - property nodes, which consist of the value of an object's * property together with a {@link PropertyMetadataInterface} instance * - generic nodes, which consist of a value and some arbitrary * constraints defined in a {@link MetadataInterface} container * * In both cases, the value is validated against all constraints defined * in the passed metadata object. Then, if the value is an instance of * {@link \Traversable} and the selected traversal strategy permits it, * the value is traversed and each nested object validated against its own * constraints. If the value is an array, it is traversed regardless of * the given strategy. * * @see TraversalStrategy */ private function validateGenericNode($value, ?object $object, ?string $cacheKey, ?MetadataInterface $metadata, string $propertyPath, array $groups, ?array $cascadedGroups, int $traversalStrategy, ExecutionContextInterface $context) { $context->setNode($value, $object, $metadata, $propertyPath); foreach ($groups as $key => $group) { if ($group instanceof GroupSequence) { $this->stepThroughGroupSequence( $value, $object, $cacheKey, $metadata, $propertyPath, $traversalStrategy, $group, null, $context ); // Skip the group sequence when cascading, as the cascading // logic is already done in stepThroughGroupSequence() unset($groups[$key]); continue; } $this->validateInGroup($value, $cacheKey, $metadata, $group, $context); } if (0 === \count($groups)) { return; } if (null === $value) { return; } $cascadingStrategy = $metadata->getCascadingStrategy(); // Quit unless we cascade if (!($cascadingStrategy & CascadingStrategy::CASCADE)) { return; } // If no specific traversal strategy was requested when this method // was called, use the traversal strategy of the node's metadata if ($traversalStrategy & TraversalStrategy::IMPLICIT) { $traversalStrategy = $metadata->getTraversalStrategy(); } // The $cascadedGroups property is set, if the "Default" group is // overridden by a group sequence // See validateClassNode() $cascadedGroups = null !== $cascadedGroups && \count($cascadedGroups) > 0 ? $cascadedGroups : $groups; if ($value instanceof LazyProperty) { $value = $value->getPropertyValue(); if (null === $value) { return; } } if (\is_array($value)) { // Arrays are always traversed, independent of the specified // traversal strategy $this->validateEachObjectIn( $value, $propertyPath, $cascadedGroups, $context ); return; } if (!\is_object($value)) { throw new NoSuchMetadataException(sprintf('Cannot create metadata for non-objects. Got: "%s".', \gettype($value))); } $this->validateObject( $value, $propertyPath, $cascadedGroups, $traversalStrategy, $context ); // Currently, the traversal strategy can only be TRAVERSE for a // generic node if the cascading strategy is CASCADE. Thus, traversable // objects will always be handled within validateObject() and there's // nothing more to do here. // see GenericMetadata::addConstraint() } /** * Sequentially validates a node's value in each group of a group sequence. * * If any of the constraints generates a violation, subsequent groups in the * group sequence are skipped. */ private function stepThroughGroupSequence($value, ?object $object, ?string $cacheKey, ?MetadataInterface $metadata, string $propertyPath, int $traversalStrategy, GroupSequence $groupSequence, ?string $cascadedGroup, ExecutionContextInterface $context) { $violationCount = \count($context->getViolations()); $cascadedGroups = $cascadedGroup ? [$cascadedGroup] : null; foreach ($groupSequence->groups as $groupInSequence) { $groups = (array) $groupInSequence; if ($metadata instanceof ClassMetadataInterface) { $this->validateClassNode( $value, $cacheKey, $metadata, $propertyPath, $groups, $cascadedGroups, $traversalStrategy, $context ); } else { $this->validateGenericNode( $value, $object, $cacheKey, $metadata, $propertyPath, $groups, $cascadedGroups, $traversalStrategy, $context ); } // Abort sequence validation if a violation was generated if (\count($context->getViolations()) > $violationCount) { break; } } } /** * Validates a node's value against all constraints in the given group. * * @param mixed $value The validated value */ private function validateInGroup($value, ?string $cacheKey, MetadataInterface $metadata, string $group, ExecutionContextInterface $context) { $context->setGroup($group); foreach ($metadata->findConstraints($group) as $constraint) { if ($constraint instanceof Existence) { continue; } // Prevent duplicate validation of constraints, in the case // that constraints belong to multiple validated groups if (null !== $cacheKey) { $constraintHash = $this->generateCacheKey($constraint, true); // instanceof Valid: In case of using a Valid constraint with many groups // it makes a reference object get validated by each group if ($constraint instanceof Composite || $constraint instanceof Valid) { $constraintHash .= $group; } if ($context->isConstraintValidated($cacheKey, $constraintHash)) { continue; } $context->markConstraintAsValidated($cacheKey, $constraintHash); } $context->setConstraint($constraint); $validator = $this->validatorFactory->getInstance($constraint); $validator->initialize($context); if ($value instanceof LazyProperty) { $value = $value->getPropertyValue(); } try { $validator->validate($value, $constraint); } catch (UnexpectedValueException $e) { $context->buildViolation('This value should be of type {{ type }}.') ->setParameter('{{ type }}', $e->getExpectedType()) ->addViolation(); } } } private function generateCacheKey(object $object, bool $dependsOnPropertyPath = false): string { if ($this->context instanceof ExecutionContext) { $cacheKey = $this->context->generateCacheKey($object); } else { $cacheKey = spl_object_hash($object); } if ($dependsOnPropertyPath) { $cacheKey .= $this->context->getPropertyPath(); } return $cacheKey; } } Validator/RecursiveValidator.php 0000644 00000006542 15120140600 0013013 0 ustar 00 <?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\Validator; use Symfony\Component\Validator\ConstraintValidatorFactoryInterface; use Symfony\Component\Validator\Context\ExecutionContextFactoryInterface; use Symfony\Component\Validator\Context\ExecutionContextInterface; use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface; use Symfony\Component\Validator\ObjectInitializerInterface; /** * Recursive implementation of {@link ValidatorInterface}. * * @author Bernhard Schussek <bschussek@gmail.com> */ class RecursiveValidator implements ValidatorInterface { protected $contextFactory; protected $metadataFactory; protected $validatorFactory; protected $objectInitializers; /** * Creates a new validator. * * @param ObjectInitializerInterface[] $objectInitializers The object initializers */ public function __construct(ExecutionContextFactoryInterface $contextFactory, MetadataFactoryInterface $metadataFactory, ConstraintValidatorFactoryInterface $validatorFactory, array $objectInitializers = []) { $this->contextFactory = $contextFactory; $this->metadataFactory = $metadataFactory; $this->validatorFactory = $validatorFactory; $this->objectInitializers = $objectInitializers; } /** * {@inheritdoc} */ public function startContext($root = null) { return new RecursiveContextualValidator( $this->contextFactory->createContext($this, $root), $this->metadataFactory, $this->validatorFactory, $this->objectInitializers ); } /** * {@inheritdoc} */ public function inContext(ExecutionContextInterface $context) { return new RecursiveContextualValidator( $context, $this->metadataFactory, $this->validatorFactory, $this->objectInitializers ); } /** * {@inheritdoc} */ public function getMetadataFor($object) { return $this->metadataFactory->getMetadataFor($object); } /** * {@inheritdoc} */ public function hasMetadataFor($object) { return $this->metadataFactory->hasMetadataFor($object); } /** * {@inheritdoc} */ public function validate($value, $constraints = null, $groups = null) { return $this->startContext($value) ->validate($value, $constraints, $groups) ->getViolations(); } /** * {@inheritdoc} */ public function validateProperty(object $object, string $propertyName, $groups = null) { return $this->startContext($object) ->validateProperty($object, $propertyName, $groups) ->getViolations(); } /** * {@inheritdoc} */ public function validatePropertyValue($objectOrClass, string $propertyName, $value, $groups = null) { // If a class name is passed, take $value as root return $this->startContext(\is_object($objectOrClass) ? $objectOrClass : $value) ->validatePropertyValue($objectOrClass, $propertyName, $value, $groups) ->getViolations(); } } Validator/TraceableValidator.php 0000644 00000006722 15120140600 0012726 0 ustar 00 <?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\Validator; use Symfony\Component\Validator\Context\ExecutionContextInterface; use Symfony\Contracts\Service\ResetInterface; /** * Collects some data about validator calls. * * @author Maxime Steinhausser <maxime.steinhausser@gmail.com> */ class TraceableValidator implements ValidatorInterface, ResetInterface { private $validator; private $collectedData = []; public function __construct(ValidatorInterface $validator) { $this->validator = $validator; } /** * @return array */ public function getCollectedData() { return $this->collectedData; } public function reset() { $this->collectedData = []; } /** * {@inheritdoc} */ public function getMetadataFor($value) { return $this->validator->getMetadataFor($value); } /** * {@inheritdoc} */ public function hasMetadataFor($value) { return $this->validator->hasMetadataFor($value); } /** * {@inheritdoc} */ public function validate($value, $constraints = null, $groups = null) { $violations = $this->validator->validate($value, $constraints, $groups); $trace = debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS, 7); $file = $trace[0]['file']; $line = $trace[0]['line']; for ($i = 1; $i < 7; ++$i) { if (isset($trace[$i]['class'], $trace[$i]['function']) && 'validate' === $trace[$i]['function'] && is_a($trace[$i]['class'], ValidatorInterface::class, true) ) { $file = $trace[$i]['file']; $line = $trace[$i]['line']; while (++$i < 7) { if (isset($trace[$i]['function'], $trace[$i]['file']) && empty($trace[$i]['class']) && !str_starts_with($trace[$i]['function'], 'call_user_func')) { $file = $trace[$i]['file']; $line = $trace[$i]['line']; break; } } break; } } $name = str_replace('\\', '/', $file); $name = substr($name, strrpos($name, '/') + 1); $this->collectedData[] = [ 'caller' => compact('name', 'file', 'line'), 'context' => compact('value', 'constraints', 'groups'), 'violations' => iterator_to_array($violations), ]; return $violations; } /** * {@inheritdoc} */ public function validateProperty(object $object, string $propertyName, $groups = null) { return $this->validator->validateProperty($object, $propertyName, $groups); } /** * {@inheritdoc} */ public function validatePropertyValue($objectOrClass, string $propertyName, $value, $groups = null) { return $this->validator->validatePropertyValue($objectOrClass, $propertyName, $value, $groups); } /** * {@inheritdoc} */ public function startContext() { return $this->validator->startContext(); } /** * {@inheritdoc} */ public function inContext(ExecutionContextInterface $context) { return $this->validator->inContext($context); } } Validator/ValidatorInterface.php 0000644 00000007707 15120140600 0012750 0 ustar 00 <?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\Validator; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Constraints\GroupSequence; use Symfony\Component\Validator\ConstraintViolationListInterface; use Symfony\Component\Validator\Context\ExecutionContextInterface; use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface; /** * Validates PHP values against constraints. * * @author Bernhard Schussek <bschussek@gmail.com> */ interface ValidatorInterface extends MetadataFactoryInterface { /** * Validates a value against a constraint or a list of constraints. * * If no constraint is passed, the constraint * {@link \Symfony\Component\Validator\Constraints\Valid} is assumed. * * @param mixed $value The value to validate * @param Constraint|Constraint[] $constraints The constraint(s) to validate against * @param string|GroupSequence|array<string|GroupSequence>|null $groups The validation groups to validate. If none is given, "Default" is assumed * * @return ConstraintViolationListInterface A list of constraint violations * If the list is empty, validation * succeeded */ public function validate($value, $constraints = null, $groups = null); /** * Validates a property of an object against the constraints specified * for this property. * * @param string $propertyName The name of the validated property * @param string|GroupSequence|array<string|GroupSequence>|null $groups The validation groups to validate. If none is given, "Default" is assumed * * @return ConstraintViolationListInterface A list of constraint violations * If the list is empty, validation * succeeded */ public function validateProperty(object $object, string $propertyName, $groups = null); /** * Validates a value against the constraints specified for an object's * property. * * @param object|string $objectOrClass The object or its class name * @param string $propertyName The name of the property * @param mixed $value The value to validate against the property's constraints * @param string|GroupSequence|array<string|GroupSequence>|null $groups The validation groups to validate. If none is given, "Default" is assumed * * @return ConstraintViolationListInterface A list of constraint violations * If the list is empty, validation * succeeded */ public function validatePropertyValue($objectOrClass, string $propertyName, $value, $groups = null); /** * Starts a new validation context and returns a validator for that context. * * The returned validator collects all violations generated within its * context. You can access these violations with the * {@link ContextualValidatorInterface::getViolations()} method. * * @return ContextualValidatorInterface */ public function startContext(); /** * Returns a validator in the given execution context. * * The returned validator adds all generated violations to the given * context. * * @return ContextualValidatorInterface */ public function inContext(ExecutionContextInterface $context); } Violation/ConstraintViolationBuilder.php 0000644 00000010042 15120140600 0014523 0 ustar 00 <?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\Violation; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintViolation; use Symfony\Component\Validator\ConstraintViolationList; use Symfony\Component\Validator\Util\PropertyPath; use Symfony\Contracts\Translation\TranslatorInterface; /** * Default implementation of {@link ConstraintViolationBuilderInterface}. * * @author Bernhard Schussek <bschussek@gmail.com> * * @internal since version 2.5. Code against ConstraintViolationBuilderInterface instead. */ class ConstraintViolationBuilder implements ConstraintViolationBuilderInterface { private $violations; private $message; private $parameters; private $root; private $invalidValue; private $propertyPath; private $translator; private $translationDomain; private $plural; private $constraint; private $code; /** * @var mixed */ private $cause; /** * @param string $message The error message as a string or a stringable object */ public function __construct(ConstraintViolationList $violations, ?Constraint $constraint, $message, array $parameters, $root, $propertyPath, $invalidValue, TranslatorInterface $translator, $translationDomain = null) { $this->violations = $violations; $this->message = $message; $this->parameters = $parameters; $this->root = $root; $this->propertyPath = $propertyPath; $this->invalidValue = $invalidValue; $this->translator = $translator; $this->translationDomain = $translationDomain; $this->constraint = $constraint; } /** * {@inheritdoc} */ public function atPath(string $path) { $this->propertyPath = PropertyPath::append($this->propertyPath, $path); return $this; } /** * {@inheritdoc} */ public function setParameter(string $key, string $value) { $this->parameters[$key] = $value; return $this; } /** * {@inheritdoc} */ public function setParameters(array $parameters) { $this->parameters = $parameters; return $this; } /** * {@inheritdoc} */ public function setTranslationDomain(string $translationDomain) { $this->translationDomain = $translationDomain; return $this; } /** * {@inheritdoc} */ public function setInvalidValue($invalidValue) { $this->invalidValue = $invalidValue; return $this; } /** * {@inheritdoc} */ public function setPlural(int $number) { $this->plural = $number; return $this; } /** * {@inheritdoc} */ public function setCode(?string $code) { $this->code = $code; return $this; } /** * {@inheritdoc} */ public function setCause($cause) { $this->cause = $cause; return $this; } /** * {@inheritdoc} */ public function addViolation() { if (null === $this->plural) { $translatedMessage = $this->translator->trans( $this->message, $this->parameters, $this->translationDomain ); } else { $translatedMessage = $this->translator->trans( $this->message, ['%count%' => $this->plural] + $this->parameters, $this->translationDomain ); } $this->violations->add(new ConstraintViolation( $translatedMessage, $this->message, $this->parameters, $this->root, $this->propertyPath, $this->invalidValue, $this->plural, $this->code, $this->constraint, $this->cause )); } } Violation/ConstraintViolationBuilderInterface.php 0000644 00000006020 15120140600 0016345 0 ustar 00 <?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\Violation; /** * Builds {@link \Symfony\Component\Validator\ConstraintViolationInterface} * objects. * * Use the various methods on this interface to configure the built violation. * Finally, call {@link addViolation()} to add the violation to the current * execution context. * * @author Bernhard Schussek <bschussek@gmail.com> */ interface ConstraintViolationBuilderInterface { /** * Stores the property path at which the violation should be generated. * * The passed path will be appended to the current property path of the * execution context. * * @param string $path The property path * * @return $this */ public function atPath(string $path); /** * Sets a parameter to be inserted into the violation message. * * @param string $key The name of the parameter * @param string $value The value to be inserted in the parameter's place * * @return $this */ public function setParameter(string $key, string $value); /** * Sets all parameters to be inserted into the violation message. * * @param array $parameters An array with the parameter names as keys and * the values to be inserted in their place as * values * * @return $this */ public function setParameters(array $parameters); /** * Sets the translation domain which should be used for translating the * violation message. * * @param string $translationDomain The translation domain * * @return $this * * @see \Symfony\Contracts\Translation\TranslatorInterface */ public function setTranslationDomain(string $translationDomain); /** * Sets the invalid value that caused this violation. * * @param mixed $invalidValue The invalid value * * @return $this */ public function setInvalidValue($invalidValue); /** * Sets the number which determines how the plural form of the violation * message is chosen when it is translated. * * @param int $number The number for determining the plural form * * @return $this * * @see \Symfony\Contracts\Translation\TranslatorInterface::trans() */ public function setPlural(int $number); /** * Sets the violation code. * * @param string|null $code The violation code * * @return $this */ public function setCode(?string $code); /** * Sets the cause of the violation. * * @param mixed $cause The cause of the violation * * @return $this */ public function setCause($cause); /** * Adds the violation to the current execution context. */ public function addViolation(); } CHANGELOG.md 0000644 00000042320 15120140600 0006343 0 ustar 00 CHANGELOG ========= 5.4 --- * Add a `Cidr` constraint to validate CIDR notations * Add a `CssColor` constraint to validate CSS colors * Add support for `ConstraintViolationList::createFromMessage()` * Add error's uid to `Count` and `Length` constraints with "exactly" option enabled 5.3 --- * Add the `normalizer` option to the `Unique` constraint * Add `Validation::createIsValidCallable()` that returns true/false instead of throwing exceptions 5.2.0 ----- * added a `Cascade` constraint to ease validating nested typed object properties * deprecated the `allowEmptyString` option of the `Length` constraint Before: ```php use Symfony\Component\Validator\Constraints as Assert; /** * @Assert\Length(min=5, allowEmptyString=true) */ ``` After: ```php use Symfony\Component\Validator\Constraints as Assert; /** * @Assert\AtLeastOneOf({ * @Assert\Blank(), * @Assert\Length(min=5) * }) */ ``` * added the `Isin` constraint and validator * added the `ULID` constraint and validator * added support for UUIDv6 in `Uuid` constraint * enabled the validator to load constraints from PHP attributes * deprecated the `NumberConstraintTrait` trait * deprecated setting or creating a Doctrine annotation reader via `ValidatorBuilder::enableAnnotationMapping()`, pass `true` as first parameter and additionally call `setDoctrineAnnotationReader()` or `addDefaultDoctrineAnnotationReader()` to set up the annotation reader 5.1.0 ----- * Add `AtLeastOneOf` constraint that is considered to be valid if at least one of the nested constraints is valid * added the `Hostname` constraint and validator * added the `alpha3` option to the `Country` and `Language` constraints * allow to define a reusable set of constraints by extending the `Compound` constraint * added `Sequentially` constraint, to sequentially validate a set of constraints (any violation raised will prevent further validation of the nested constraints) * added the `divisibleBy` option to the `Count` constraint * added the `ExpressionLanguageSyntax` constraint 5.0.0 ----- * an `ExpressionLanguage` instance or null must be passed as the first argument of `ExpressionValidator::__construct()` * removed the `checkDNS` and `dnsMessage` options of the `Url` constraint * removed the `checkMX`, `checkHost` and `strict` options of the `Email` constraint * removed support for validating instances of `\DateTimeInterface` in `DateTimeValidator`, `DateValidator` and `TimeValidator` * removed support for using the `Bic`, `Country`, `Currency`, `Language` and `Locale` constraints without `symfony/intl` * removed support for using the `Email` constraint without `egulias/email-validator` * removed support for using the `Expression` constraint without `symfony/expression-language` * changed default value of `canonicalize` option of `Locale` constraint to `true` * removed `ValidatorBuilderInterface` * passing a null message when instantiating a `ConstraintViolation` is not allowed * changed the default value of `Length::$allowEmptyString` to `false` and made it optional * removed `Symfony\Component\Validator\Mapping\Cache\CacheInterface` in favor of PSR-6. * removed `ValidatorBuilder::setMetadataCache`, use `ValidatorBuilder::setMappingCache` instead. 4.4.0 ----- * [BC BREAK] using null as `$classValidatorRegexp` value in `PropertyInfoLoader::__construct` will not enable auto-mapping for all classes anymore, use `'{.*}'` instead. * added `EnableAutoMapping` and `DisableAutoMapping` constraints to enable or disable auto mapping for class or a property * using anything else than a `string` as the code of a `ConstraintViolation` is deprecated, a `string` type-hint will be added to the constructor of the `ConstraintViolation` class and to the `ConstraintViolationBuilder::setCode()` method in 5.0 * deprecated passing an `ExpressionLanguage` instance as the second argument of `ExpressionValidator::__construct()`. Pass it as the first argument instead. * added the `compared_value_path` parameter in violations when using any comparison constraint with the `propertyPath` option. * added support for checking an array of types in `TypeValidator` * added a new `allowEmptyString` option to the `Length` constraint to allow rejecting empty strings when `min` is set, by setting it to `false`. * Added new `minPropertyPath` and `maxPropertyPath` options to `Range` constraint in order to get the value to compare from an array or object * added the `min_limit_path` and `max_limit_path` parameters in violations when using `Range` constraint with respectively the `minPropertyPath` and `maxPropertyPath` options * added a new `notInRangeMessage` option to the `Range` constraint that will be used in the violation builder when both `min` and `max` are not null * added ability to use stringable objects as violation messages * Overriding the methods `ConstraintValidatorTestCase::setUp()` and `ConstraintValidatorTestCase::tearDown()` without the `void` return-type is deprecated. * deprecated `Symfony\Component\Validator\Mapping\Cache\CacheInterface` in favor of PSR-6. * deprecated `ValidatorBuilder::setMetadataCache`, use `ValidatorBuilder::setMappingCache` instead. * Marked the `ValidatorDataCollector` class as `@final`. 4.3.0 ----- * added `Timezone` constraint * added `NotCompromisedPassword` constraint * added options `iban` and `ibanPropertyPath` to Bic constraint * added UATP cards support to `CardSchemeValidator` * added option `allowNull` to NotBlank constraint * added `Json` constraint * added `Unique` constraint * added a new `normalizer` option to the string constraints and to the `NotBlank` constraint * added `Positive` constraint * added `PositiveOrZero` constraint * added `Negative` constraint * added `NegativeOrZero` constraint 4.2.0 ----- * added a new `UnexpectedValueException` that can be thrown by constraint validators, these exceptions are caught by the validator and are converted into constraint violations * added `DivisibleBy` constraint * decoupled from `symfony/translation` by using `Symfony\Contracts\Translation\TranslatorInterface` * deprecated `ValidatorBuilderInterface` * made `ValidatorBuilder::setTranslator()` final * marked `format` the default option in `DateTime` constraint * deprecated validating instances of `\DateTimeInterface` in `DateTimeValidator`, `DateValidator` and `TimeValidator`. * deprecated using the `Bic`, `Country`, `Currency`, `Language` and `Locale` constraints without `symfony/intl` * deprecated using the `Email` constraint without `egulias/email-validator` * deprecated using the `Expression` constraint without `symfony/expression-language` 4.1.0 ----- * Deprecated the `checkDNS` and `dnsMessage` options of the `Url` constraint. * added a `values` option to the `Expression` constraint * Deprecated use of `Locale` constraint without setting `true` at "canonicalize" option, which will be the default value in 5.0 4.0.0 ----- * Setting the `strict` option of the `Choice` constraint to anything but `true` is not supported anymore. * removed the `DateTimeValidator::PATTERN` constant * removed the `AbstractConstraintValidatorTest` class * removed support for setting the `checkDNS` option of the `Url` constraint to `true` 3.4.0 ----- * added support for validation groups to the `Valid` constraint * not setting the `strict` option of the `Choice` constraint to `true` is deprecated and will throw an exception in Symfony 4.0 * setting the `checkDNS` option of the `Url` constraint to `true` is deprecated in favor of the `Url::CHECK_DNS_TYPE_*` constants values and will throw an exception in Symfony 4.0 * added min/max amount of pixels check to `Image` constraint via `minPixels` and `maxPixels` * added a new "propertyPath" option to comparison constraints in order to get the value to compare from an array or object 3.3.0 ----- * added `AddValidatorInitializersPass` * added `AddConstraintValidatorsPass` * added `ContainerConstraintValidatorFactory` 3.2.0 ----- * deprecated `Tests\Constraints\AbstractConstraintValidatorTest` in favor of `Test\ConstraintValidatorTestCase` * added support for PHP constants in YAML configuration files 3.1.0 ----- * deprecated `DateTimeValidator::PATTERN` constant * added a `format` option to the `DateTime` constraint 2.8.0 ----- * added the BIC (SWIFT-Code) validator 2.7.0 ----- * deprecated `DefaultTranslator` in favor of `Symfony\Component\Translation\IdentityTranslator` * deprecated PHP7-incompatible constraints (Null, True, False) and related validators (NullValidator, TrueValidator, FalseValidator) in favor of their `Is`-prefixed equivalent 2.6.0 ----- * [BC BREAK] `FileValidator` disallow empty files * [BC BREAK] `UserPasswordValidator` source message change * [BC BREAK] added internal `ExecutionContextInterface::setConstraint()` * added `ConstraintViolation::getConstraint()` * [BC BREAK] The `ExpressionValidator` will now evaluate the Expression even when the property value is null or an empty string * deprecated `ClassMetadata::hasMemberMetadatas()` * deprecated `ClassMetadata::getMemberMetadatas()` * deprecated `ClassMetadata::addMemberMetadata()` * [BC BREAK] added `Mapping\MetadataInterface::getConstraints()` * added generic "payload" option to all constraints for attaching domain-specific data * [BC BREAK] added `ConstraintViolationBuilderInterface::setCause()` 2.5.0 ----- * deprecated `ApcCache` in favor of `DoctrineCache` * added `DoctrineCache` to adapt any Doctrine cache * `GroupSequence` now implements `ArrayAccess`, `Countable` and `Traversable` * [BC BREAK] changed `ClassMetadata::getGroupSequence()` to return a `GroupSequence` instance instead of an array * `Callback` can now be put onto properties (useful when you pass a closure to the constraint) * deprecated `ClassBasedInterface` * deprecated `MetadataInterface` * deprecated `PropertyMetadataInterface` * deprecated `PropertyMetadataContainerInterface` * deprecated `Mapping\ElementMetadata` * added `Mapping\MetadataInterface` * added `Mapping\ClassMetadataInterface` * added `Mapping\PropertyMetadataInterface` * added `Mapping\GenericMetadata` * added `Mapping\CascadingStrategy` * added `Mapping\TraversalStrategy` * deprecated `Mapping\ClassMetadata::accept()` * deprecated `Mapping\MemberMetadata::accept()` * removed array type hint of `Mapping\ClassMetadata::setGroupSequence()` * deprecated `MetadataFactoryInterface` * deprecated `Mapping\BlackholeMetadataFactory` * deprecated `Mapping\ClassMetadataFactory` * added `Mapping\Factory\MetadataFactoryInterface` * added `Mapping\Factory\BlackHoleMetadataFactory` * added `Mapping\Factory\LazyLoadingMetadataFactory` * deprecated `ExecutionContextInterface` * deprecated `ExecutionContext` * deprecated `GlobalExecutionContextInterface` * added `Context\ExecutionContextInterface` * added `Context\ExecutionContext` * added `Context\ExecutionContextFactoryInterface` * added `Context\ExecutionContextFactory` * deprecated `ValidatorInterface` * deprecated `Validator` * deprecated `ValidationVisitorInterface` * deprecated `ValidationVisitor` * added `Validator\ValidatorInterface` * added `Validator\RecursiveValidator` * added `Validator\ContextualValidatorInterface` * added `Validator\RecursiveContextualValidator` * added `Violation\ConstraintViolationBuilderInterface` * added `Violation\ConstraintViolationBuilder` * added `ConstraintViolation::getParameters()` * added `ConstraintViolation::getPlural()` * added `Constraints\Traverse` * deprecated `$deep` property in `Constraints\Valid` * added `ValidatorBuilderInterface::setApiVersion()` * added `Validation::API_VERSION_2_4` * added `Validation::API_VERSION_2_5` * added `Exception\OutOfBoundsException` * added `Exception\UnsupportedMetadataException` * made `Exception\ValidatorException` extend `Exception\RuntimeException` * added `Util\PropertyPath` * made the PropertyAccess component an optional dependency * deprecated `ValidatorBuilder::setPropertyAccessor()` * deprecated `validate` and `validateValue` on `Validator\Context\ExecutionContext` use `getValidator()` together with `inContext()` instead 2.4.0 ----- * added a constraint the uses the expression language * added `minRatio`, `maxRatio`, `allowSquare`, `allowLandscape`, and `allowPortrait` to Image validator 2.3.29 ------ * fixed compatibility with PHP7 and up by introducing new constraints (IsNull, IsTrue, IsFalse) and related validators (IsNullValidator, IsTrueValidator, IsFalseValidator) 2.3.0 ----- * added the ISBN, ISSN, and IBAN validators * copied the constraints `Optional` and `Required` to the `Symfony\Component\Validator\Constraints\` namespace and deprecated the original classes. * added comparison validators (EqualTo, NotEqualTo, LessThan, LessThanOrEqualTo, GreaterThan, GreaterThanOrEqualTo, IdenticalTo, NotIdenticalTo) 2.2.0 ----- * added a CardScheme validator * added a Luhn validator * moved @api-tags from `Validator` to `ValidatorInterface` * moved @api-tags from `ConstraintViolation` to the new `ConstraintViolationInterface` * moved @api-tags from `ConstraintViolationList` to the new `ConstraintViolationListInterface` * moved @api-tags from `ExecutionContext` to the new `ExecutionContextInterface` * [BC BREAK] `ConstraintValidatorInterface::initialize` is now type hinted against `ExecutionContextInterface` instead of `ExecutionContext` * [BC BREAK] changed the visibility of the properties in `Validator` from protected to private * deprecated `ClassMetadataFactoryInterface` in favor of the new `MetadataFactoryInterface` * deprecated `ClassMetadataFactory::getClassMetadata` in favor of `getMetadataFor` * created `MetadataInterface`, `PropertyMetadataInterface`, `ClassBasedInterface` and `PropertyMetadataContainerInterface` * deprecated `GraphWalker` in favor of the new `ValidationVisitorInterface` * deprecated `ExecutionContext::addViolationAtPath` * deprecated `ExecutionContext::addViolationAtSubPath` in favor of `ExecutionContextInterface::addViolationAt` * deprecated `ExecutionContext::getCurrentClass` in favor of `ExecutionContextInterface::getClassName` * deprecated `ExecutionContext::getCurrentProperty` in favor of `ExecutionContextInterface::getPropertyName` * deprecated `ExecutionContext::getCurrentValue` in favor of `ExecutionContextInterface::getValue` * deprecated `ExecutionContext::getGraphWalker` in favor of `ExecutionContextInterface::validate` and `ExecutionContextInterface::validateValue` * improved `ValidatorInterface::validateValue` to accept arrays of constraints * changed `ValidatorInterface::getMetadataFactory` to return a `MetadataFactoryInterface` instead of a `ClassMetadataFactoryInterface` * removed `ClassMetadataFactoryInterface` type hint from `ValidatorBuilderInterface::setMetadataFactory`. 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 ----- * added support for `ctype_*` assertions in `TypeValidator` * improved the ImageValidator with min width, max width, min height, and max height constraints * added support for MIME with wildcard in FileValidator * changed Collection validator to add "missing" and "extra" errors to individual fields * changed default value for `extraFieldsMessage` and `missingFieldsMessage` in Collection constraint * made ExecutionContext immutable * deprecated Constraint methods `setMessage`, `getMessageTemplate` and `getMessageParameters` * added support for dynamic group sequences with the GroupSequenceProvider pattern * [BC BREAK] ConstraintValidatorInterface method `isValid` has been renamed to `validate`, its return value was dropped. ConstraintValidator still contains `isValid` for BC * [BC BREAK] collections in fields annotated with `Valid` are not traversed recursively anymore by default. `Valid` contains a new property `deep` which enables the BC behavior. * added Count constraint * added Length constraint * added Range constraint * deprecated the Min and Max constraints * deprecated the MinLength and MaxLength constraints * added Validation and ValidatorBuilderInterface * deprecated ValidatorContext, ValidatorContextInterface and ValidatorFactory Constraint.php 0000644 00000023647 15120140600 0007402 0 ustar 00 <?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\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\InvalidArgumentException; use Symfony\Component\Validator\Exception\InvalidOptionsException; use Symfony\Component\Validator\Exception\MissingOptionsException; /** * Contains the properties of a constraint definition. * * A constraint can be defined on a class, a property or a getter method. * The Constraint class encapsulates all the configuration required for * validating this class, property or getter result successfully. * * Constraint instances are immutable and serializable. * * @author Bernhard Schussek <bschussek@gmail.com> */ abstract class Constraint { /** * The name of the group given to all constraints with no explicit group. */ public const DEFAULT_GROUP = 'Default'; /** * Marks a constraint that can be put onto classes. */ public const CLASS_CONSTRAINT = 'class'; /** * Marks a constraint that can be put onto properties. */ public const PROPERTY_CONSTRAINT = 'property'; /** * Maps error codes to the names of their constants. */ protected static $errorNames = []; /** * Domain-specific data attached to a constraint. * * @var mixed */ public $payload; /** * The groups that the constraint belongs to. * * @var string[] */ public $groups; /** * Returns the name of the given error code. * * @return string * * @throws InvalidArgumentException If the error code does not exist */ public static function getErrorName(string $errorCode) { if (!isset(static::$errorNames[$errorCode])) { throw new InvalidArgumentException(sprintf('The error code "%s" does not exist for constraint of type "%s".', $errorCode, static::class)); } return static::$errorNames[$errorCode]; } /** * Initializes the constraint with options. * * You should pass an associative array. The keys should be the names of * existing properties in this class. The values should be the value for these * properties. * * Alternatively you can override the method getDefaultOption() to return the * name of an existing property. If no associative array is passed, this * property is set instead. * * You can force that certain options are set by overriding * getRequiredOptions() to return the names of these options. If any * option is not set here, an exception is thrown. * * @param mixed $options The options (as associative array) * or the value for the default * option (any other type) * @param string[] $groups An array of validation groups * @param mixed $payload Domain-specific data attached to a constraint * * @throws InvalidOptionsException When you pass the names of non-existing * options * @throws MissingOptionsException When you don't pass any of the options * returned by getRequiredOptions() * @throws ConstraintDefinitionException When you don't pass an associative * array, but getDefaultOption() returns * null */ public function __construct($options = null, array $groups = null, $payload = null) { unset($this->groups); // enable lazy initialization $options = $this->normalizeOptions($options); if (null !== $groups) { $options['groups'] = $groups; } $options['payload'] = $payload ?? $options['payload'] ?? null; foreach ($options as $name => $value) { $this->$name = $value; } } protected function normalizeOptions($options): array { $normalizedOptions = []; $defaultOption = $this->getDefaultOption(); $invalidOptions = []; $missingOptions = array_flip((array) $this->getRequiredOptions()); $knownOptions = get_class_vars(static::class); if (\is_array($options) && isset($options['value']) && !property_exists($this, 'value')) { if (null === $defaultOption) { throw new ConstraintDefinitionException(sprintf('No default option is configured for constraint "%s".', static::class)); } $options[$defaultOption] = $options['value']; unset($options['value']); } if (\is_array($options)) { reset($options); } if ($options && \is_array($options) && \is_string(key($options))) { foreach ($options as $option => $value) { if (\array_key_exists($option, $knownOptions)) { $normalizedOptions[$option] = $value; unset($missingOptions[$option]); } else { $invalidOptions[] = $option; } } } elseif (null !== $options && !(\is_array($options) && 0 === \count($options))) { if (null === $defaultOption) { throw new ConstraintDefinitionException(sprintf('No default option is configured for constraint "%s".', static::class)); } if (\array_key_exists($defaultOption, $knownOptions)) { $normalizedOptions[$defaultOption] = $options; unset($missingOptions[$defaultOption]); } else { $invalidOptions[] = $defaultOption; } } if (\count($invalidOptions) > 0) { throw new InvalidOptionsException(sprintf('The options "%s" do not exist in constraint "%s".', implode('", "', $invalidOptions), static::class), $invalidOptions); } if (\count($missingOptions) > 0) { throw new MissingOptionsException(sprintf('The options "%s" must be set for constraint "%s".', implode('", "', array_keys($missingOptions)), static::class), array_keys($missingOptions)); } return $normalizedOptions; } /** * Sets the value of a lazily initialized option. * * Corresponding properties are added to the object on first access. Hence * this method will be called at most once per constraint instance and * option name. * * @param mixed $value The value to set * * @throws InvalidOptionsException If an invalid option name is given */ public function __set(string $option, $value) { if ('groups' === $option) { $this->groups = (array) $value; return; } throw new InvalidOptionsException(sprintf('The option "%s" does not exist in constraint "%s".', $option, static::class), [$option]); } /** * Returns the value of a lazily initialized option. * * Corresponding properties are added to the object on first access. Hence * this method will be called at most once per constraint instance and * option name. * * @return mixed * * @throws InvalidOptionsException If an invalid option name is given */ public function __get(string $option) { if ('groups' === $option) { $this->groups = [self::DEFAULT_GROUP]; return $this->groups; } throw new InvalidOptionsException(sprintf('The option "%s" does not exist in constraint "%s".', $option, static::class), [$option]); } /** * @return bool */ public function __isset(string $option) { return 'groups' === $option; } /** * Adds the given group if this constraint is in the Default group. */ public function addImplicitGroupName(string $group) { if (null === $this->groups && \array_key_exists('groups', (array) $this)) { throw new \LogicException(sprintf('"%s::$groups" is set to null. Did you forget to call "%s::__construct()"?', static::class, self::class)); } if (\in_array(self::DEFAULT_GROUP, $this->groups) && !\in_array($group, $this->groups)) { $this->groups[] = $group; } } /** * Returns the name of the default option. * * Override this method to define a default option. * * @return string|null * * @see __construct() */ public function getDefaultOption() { return null; } /** * Returns the name of the required options. * * Override this method if you want to define required options. * * @return string[] * * @see __construct() */ public function getRequiredOptions() { return []; } /** * Returns the name of the class that validates this constraint. * * By default, this is the fully qualified name of the constraint class * suffixed with "Validator". You can override this method to change that * behavior. * * @return string */ public function validatedBy() { return static::class.'Validator'; } /** * Returns whether the constraint can be put onto classes, properties or * both. * * This method should return one or more of the constants * Constraint::CLASS_CONSTRAINT and Constraint::PROPERTY_CONSTRAINT. * * @return string|string[] One or more constant values */ public function getTargets() { return self::PROPERTY_CONSTRAINT; } /** * Optimizes the serialized value to minimize storage space. * * @internal */ public function __sleep(): array { // Initialize "groups" option if it is not set $this->groups; return array_keys(get_object_vars($this)); } } ConstraintValidator.php 0000644 00000011340 15120140600 0011233 0 ustar 00 <?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\Context\ExecutionContextInterface; /** * Base class for constraint validators. * * @author Bernhard Schussek <bschussek@gmail.com> */ abstract class ConstraintValidator implements ConstraintValidatorInterface { /** * Whether to format {@link \DateTime} objects, either with the {@link \IntlDateFormatter} * (if it is available) or as RFC-3339 dates ("Y-m-d H:i:s"). */ public const PRETTY_DATE = 1; /** * Whether to cast objects with a "__toString()" method to strings. */ public const OBJECT_TO_STRING = 2; /** * @var ExecutionContextInterface */ protected $context; /** * {@inheritdoc} */ public function initialize(ExecutionContextInterface $context) { $this->context = $context; } /** * Returns a string representation of the type of the value. * * This method should be used if you pass the type of a value as * message parameter to a constraint violation. Note that such * parameters should usually not be included in messages aimed at * non-technical people. * * @param mixed $value The value to return the type of * * @return string */ protected function formatTypeOf($value) { return get_debug_type($value); } /** * Returns a string representation of the value. * * This method returns the equivalent PHP tokens for most scalar types * (i.e. "false" for false, "1" for 1 etc.). Strings are always wrapped * in double quotes ("). Objects, arrays and resources are formatted as * "object", "array" and "resource". If the $format bitmask contains * the PRETTY_DATE bit, then {@link \DateTime} objects will be formatted * with the {@link \IntlDateFormatter}. If it is not available, they will be * formatted as RFC-3339 dates ("Y-m-d H:i:s"). * * Be careful when passing message parameters to a constraint violation * that (may) contain objects, arrays or resources. These parameters * should only be displayed for technical users. Non-technical users * won't know what an "object", "array" or "resource" is and will be * confused by the violation message. * * @param mixed $value The value to format as string * @param int $format A bitwise combination of the format * constants in this class * * @return string */ protected function formatValue($value, int $format = 0) { if (($format & self::PRETTY_DATE) && $value instanceof \DateTimeInterface) { if (class_exists(\IntlDateFormatter::class)) { $formatter = new \IntlDateFormatter(\Locale::getDefault(), \IntlDateFormatter::MEDIUM, \IntlDateFormatter::SHORT, 'UTC'); return $formatter->format(new \DateTime( $value->format('Y-m-d H:i:s.u'), new \DateTimeZone('UTC') )); } return $value->format('Y-m-d H:i:s'); } if ($value instanceof \UnitEnum) { return $value->name; } if (\is_object($value)) { if (($format & self::OBJECT_TO_STRING) && method_exists($value, '__toString')) { return $value->__toString(); } return 'object'; } if (\is_array($value)) { return 'array'; } if (\is_string($value)) { return '"'.$value.'"'; } if (\is_resource($value)) { return 'resource'; } if (null === $value) { return 'null'; } if (false === $value) { return 'false'; } if (true === $value) { return 'true'; } return (string) $value; } /** * Returns a string representation of a list of values. * * Each of the values is converted to a string using * {@link formatValue()}. The values are then concatenated with commas. * * @param array $values A list of values * @param int $format A bitwise combination of the format * constants in this class * * @return string * * @see formatValue() */ protected function formatValues(array $values, int $format = 0) { foreach ($values as $key => $value) { $values[$key] = $this->formatValue($value, $format); } return implode(', ', $values); } } ConstraintValidatorFactory.php 0000644 00000002337 15120140600 0012571 0 ustar 00 <?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\Constraints\ExpressionValidator; /** * Default implementation of the ConstraintValidatorFactoryInterface. * * This enforces the convention that the validatedBy() method on any * Constraint will return the class name of the ConstraintValidator that * should validate the Constraint. * * @author Bernhard Schussek <bschussek@gmail.com> */ class ConstraintValidatorFactory implements ConstraintValidatorFactoryInterface { protected $validators = []; public function __construct() { } /** * {@inheritdoc} */ public function getInstance(Constraint $constraint) { $className = $constraint->validatedBy(); if (!isset($this->validators[$className])) { $this->validators[$className] = 'validator.expression' === $className ? new ExpressionValidator() : new $className(); } return $this->validators[$className]; } } ConstraintValidatorFactoryInterface.php 0000644 00000001305 15120140600 0014404 0 ustar 00 <?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; /** * Specifies an object able to return the correct ConstraintValidatorInterface * instance given a Constraint object. */ interface ConstraintValidatorFactoryInterface { /** * Given a Constraint, this returns the ConstraintValidatorInterface * object that should be used to verify its validity. * * @return ConstraintValidatorInterface */ public function getInstance(Constraint $constraint); } ConstraintValidatorInterface.php 0000644 00000001401 15120140600 0013051 0 ustar 00 <?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\Context\ExecutionContextInterface; /** * @author Bernhard Schussek <bschussek@gmail.com> */ interface ConstraintValidatorInterface { /** * Initializes the constraint validator. */ public function initialize(ExecutionContextInterface $context); /** * Checks if the passed value is valid. * * @param mixed $value The value that should be validated */ public function validate($value, Constraint $constraint); } ConstraintViolation.php 0000644 00000011613 15120140600 0011255 0 ustar 00 <?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; /** * Default implementation of {@ConstraintViolationInterface}. * * @author Bernhard Schussek <bschussek@gmail.com> */ class ConstraintViolation implements ConstraintViolationInterface { private $message; private $messageTemplate; private $parameters; private $plural; private $root; private $propertyPath; private $invalidValue; private $constraint; private $code; private $cause; /** * Creates a new constraint violation. * * @param string|\Stringable $message The violation message as a string or a stringable object * @param string|null $messageTemplate The raw violation message * @param array $parameters The parameters to substitute in the * raw violation message * @param mixed $root The value originally passed to the * validator * @param string|null $propertyPath The property path from the root * value to the invalid value * @param mixed $invalidValue The invalid value that caused this * violation * @param int|null $plural The number for determining the plural * form when translating the message * @param string|null $code The error code of the violation * @param Constraint|null $constraint The constraint whose validation * caused the violation * @param mixed $cause The cause of the violation */ public function __construct($message, ?string $messageTemplate, array $parameters, $root, ?string $propertyPath, $invalidValue, int $plural = null, string $code = null, Constraint $constraint = null, $cause = null) { if (!\is_string($message) && !(\is_object($message) && method_exists($message, '__toString'))) { throw new \TypeError('Constraint violation message should be a string or an object which implements the __toString() method.'); } $this->message = $message; $this->messageTemplate = $messageTemplate; $this->parameters = $parameters; $this->plural = $plural; $this->root = $root; $this->propertyPath = $propertyPath; $this->invalidValue = $invalidValue; $this->constraint = $constraint; $this->code = $code; $this->cause = $cause; } /** * Converts the violation into a string for debugging purposes. * * @return string */ public function __toString() { if (\is_object($this->root)) { $class = 'Object('.\get_class($this->root).')'; } elseif (\is_array($this->root)) { $class = 'Array'; } else { $class = (string) $this->root; } $propertyPath = (string) $this->propertyPath; if ('' !== $propertyPath && '[' !== $propertyPath[0] && '' !== $class) { $class .= '.'; } if (null !== ($code = $this->code) && '' !== $code) { $code = ' (code '.$code.')'; } return $class.$propertyPath.":\n ".$this->getMessage().$code; } /** * {@inheritdoc} */ public function getMessageTemplate() { return (string) $this->messageTemplate; } /** * {@inheritdoc} */ public function getParameters() { return $this->parameters; } /** * {@inheritdoc} */ public function getPlural() { return $this->plural; } /** * {@inheritdoc} */ public function getMessage() { return $this->message; } /** * {@inheritdoc} */ public function getRoot() { return $this->root; } /** * {@inheritdoc} */ public function getPropertyPath() { return (string) $this->propertyPath; } /** * {@inheritdoc} */ public function getInvalidValue() { return $this->invalidValue; } /** * Returns the constraint whose validation caused the violation. * * @return Constraint|null */ public function getConstraint() { return $this->constraint; } /** * Returns the cause of the violation. * * @return mixed */ public function getCause() { return $this->cause; } /** * {@inheritdoc} */ public function getCode() { return $this->code; } } ConstraintViolationInterface.php 0000644 00000010106 15120140600 0013072 0 ustar 00 <?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; /** * A violation of a constraint that happened during validation. * * For each constraint that fails during validation one or more violations are * created. The violations store the violation message, the path to the failing * element in the validation graph and the root element that was originally * passed to the validator. For example, take the following graph: * * (Person)---(firstName: string) * \ * (address: Address)---(street: string) * * If the <tt>Person</tt> object is validated and validation fails for the * "firstName" property, the generated violation has the <tt>Person</tt> * instance as root and the property path "firstName". If validation fails * for the "street" property of the related <tt>Address</tt> instance, the root * element is still the person, but the property path is "address.street". * * @author Bernhard Schussek <bschussek@gmail.com> */ interface ConstraintViolationInterface { /** * Returns the violation message. * * @return string|\Stringable */ public function getMessage(); /** * Returns the raw violation message. * * The raw violation message contains placeholders for the parameters * returned by {@link getParameters}. Typically you'll pass the * message template and parameters to a translation engine. * * @return string The raw violation message */ public function getMessageTemplate(); /** * Returns the parameters to be inserted into the raw violation message. * * @return array a possibly empty list of parameters indexed by the names * that appear in the message template * * @see getMessageTemplate() */ public function getParameters(); /** * Returns a number for pluralizing the violation message. * * For example, the message template could have different translation based * on a parameter "choices": * * <ul> * <li>Please select exactly one entry. (choices=1)</li> * <li>Please select two entries. (choices=2)</li> * </ul> * * This method returns the value of the parameter for choosing the right * pluralization form (in this case "choices"). * * @return int|null The number to use to pluralize of the message */ public function getPlural(); /** * Returns the root element of the validation. * * @return mixed The value that was passed originally to the validator when * the validation was started. Because the validator traverses * the object graph, the value at which the violation occurs * is not necessarily the value that was originally validated. */ public function getRoot(); /** * Returns the property path from the root element to the violation. * * @return string The property path indicates how the validator reached * the invalid value from the root element. If the root * element is a <tt>Person</tt> instance with a property * "address" that contains an <tt>Address</tt> instance * with an invalid property "street", the generated property * path is "address.street". Property access is denoted by * dots, while array access is denoted by square brackets, * for example "addresses[1].street". */ public function getPropertyPath(); /** * Returns the value that caused the violation. * * @return mixed the invalid value that caused the validated constraint to * fail */ public function getInvalidValue(); /** * Returns a machine-digestible error code for the violation. * * @return string|null */ public function getCode(); } ConstraintViolationList.php 0000644 00000010422 15120140600 0012106 0 ustar 00 <?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; /** * Default implementation of {@ConstraintViolationListInterface}. * * @author Bernhard Schussek <bschussek@gmail.com> * * @implements \IteratorAggregate<int, ConstraintViolationInterface> */ class ConstraintViolationList implements \IteratorAggregate, ConstraintViolationListInterface { /** * @var list<ConstraintViolationInterface> */ private $violations = []; /** * Creates a new constraint violation list. * * @param iterable<mixed, ConstraintViolationInterface> $violations The constraint violations to add to the list */ public function __construct(iterable $violations = []) { foreach ($violations as $violation) { $this->add($violation); } } public static function createFromMessage(string $message): self { $self = new self(); $self->add(new ConstraintViolation($message, '', [], null, '', null)); return $self; } /** * Converts the violation into a string for debugging purposes. * * @return string */ public function __toString() { $string = ''; foreach ($this->violations as $violation) { $string .= $violation."\n"; } return $string; } /** * {@inheritdoc} */ public function add(ConstraintViolationInterface $violation) { $this->violations[] = $violation; } /** * {@inheritdoc} */ public function addAll(ConstraintViolationListInterface $otherList) { foreach ($otherList as $violation) { $this->violations[] = $violation; } } /** * {@inheritdoc} */ public function get(int $offset) { if (!isset($this->violations[$offset])) { throw new \OutOfBoundsException(sprintf('The offset "%s" does not exist.', $offset)); } return $this->violations[$offset]; } /** * {@inheritdoc} */ public function has(int $offset) { return isset($this->violations[$offset]); } /** * {@inheritdoc} */ public function set(int $offset, ConstraintViolationInterface $violation) { $this->violations[$offset] = $violation; } /** * {@inheritdoc} */ public function remove(int $offset) { unset($this->violations[$offset]); } /** * {@inheritdoc} * * @return \ArrayIterator<int, ConstraintViolationInterface> */ #[\ReturnTypeWillChange] public function getIterator() { return new \ArrayIterator($this->violations); } /** * @return int */ #[\ReturnTypeWillChange] public function count() { return \count($this->violations); } /** * @return bool */ #[\ReturnTypeWillChange] public function offsetExists($offset) { return $this->has($offset); } /** * {@inheritdoc} * * @return ConstraintViolationInterface */ #[\ReturnTypeWillChange] public function offsetGet($offset) { return $this->get($offset); } /** * {@inheritdoc} * * @return void */ #[\ReturnTypeWillChange] public function offsetSet($offset, $violation) { if (null === $offset) { $this->add($violation); } else { $this->set($offset, $violation); } } /** * {@inheritdoc} * * @return void */ #[\ReturnTypeWillChange] public function offsetUnset($offset) { $this->remove($offset); } /** * Creates iterator for errors with specific codes. * * @param string|string[] $codes The codes to find * * @return static */ public function findByCodes($codes) { $codes = (array) $codes; $violations = []; foreach ($this as $violation) { if (\in_array($violation->getCode(), $codes, true)) { $violations[] = $violation; } } return new static($violations); } } ConstraintViolationListInterface.php 0000644 00000003202 15120140600 0013725 0 ustar 00 <?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; /** * A list of constraint violations. * * @author Bernhard Schussek <bschussek@gmail.com> * * @extends \ArrayAccess<int, ConstraintViolationInterface> * @extends \Traversable<int, ConstraintViolationInterface> */ interface ConstraintViolationListInterface extends \Traversable, \Countable, \ArrayAccess { /** * Adds a constraint violation to this list. */ public function add(ConstraintViolationInterface $violation); /** * Merges an existing violation list into this list. */ public function addAll(self $otherList); /** * Returns the violation at a given offset. * * @param int $offset The offset of the violation * * @return ConstraintViolationInterface * * @throws \OutOfBoundsException if the offset does not exist */ public function get(int $offset); /** * Returns whether the given offset exists. * * @param int $offset The violation offset * * @return bool */ public function has(int $offset); /** * Sets a violation at a given offset. * * @param int $offset The violation offset */ public function set(int $offset, ConstraintViolationInterface $violation); /** * Removes a violation at a given offset. * * @param int $offset The offset to remove */ public function remove(int $offset); } ContainerConstraintValidatorFactory.php 0000644 00000003713 15120140600 0014433 0 ustar 00 <?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 Psr\Container\ContainerInterface; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\ValidatorException; /** * Uses a service container to create constraint validators. * * @author Kris Wallsmith <kris@symfony.com> */ class ContainerConstraintValidatorFactory implements ConstraintValidatorFactoryInterface { private $container; private $validators; public function __construct(ContainerInterface $container) { $this->container = $container; $this->validators = []; } /** * {@inheritdoc} * * @throws ValidatorException When the validator class does not exist * @throws UnexpectedTypeException When the validator is not an instance of ConstraintValidatorInterface */ public function getInstance(Constraint $constraint) { $name = $constraint->validatedBy(); if (!isset($this->validators[$name])) { if ($this->container->has($name)) { $this->validators[$name] = $this->container->get($name); } else { if (!class_exists($name)) { throw new ValidatorException(sprintf('Constraint validator "%s" does not exist or is not enabled. Check the "validatedBy" method in your constraint class "%s".', $name, get_debug_type($constraint))); } $this->validators[$name] = new $name(); } } if (!$this->validators[$name] instanceof ConstraintValidatorInterface) { throw new UnexpectedTypeException($this->validators[$name], ConstraintValidatorInterface::class); } return $this->validators[$name]; } } GroupSequenceProviderInterface.php 0000644 00000001217 15120140600 0013364 0 ustar 00 <?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\Constraints\GroupSequence; /** * Defines the interface for a group sequence provider. */ interface GroupSequenceProviderInterface { /** * Returns which validation groups should be used for a certain state * of the object. * * @return string[]|string[][]|GroupSequence */ public function getGroupSequence(); } LICENSE 0000644 00000002054 15120140600 0005537 0 ustar 00 Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ObjectInitializerInterface.php 0000644 00000001246 15120140600 0012500 0 ustar 00 <?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; /** * Prepares an object for validation. * * Concrete implementations of this interface are used by {@link Validator\ContextualValidatorInterface} * to initialize objects just before validating them. * * @author Fabien Potencier <fabien@symfony.com> * @author Bernhard Schussek <bschussek@gmail.com> */ interface ObjectInitializerInterface { public function initialize(object $object); } README.md 0000644 00000001103 15120140600 0006003 0 ustar 00 Validator Component =================== The Validator component provides tools to validate values following the [JSR-303 Bean Validation specification][1]. Resources --------- * [Documentation](https://symfony.com/doc/current/components/validator.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) [1]: https://jcp.org/en/jsr/detail?id=303 Validation.php 0000644 00000005630 15120140600 0007340 0 ustar 00 <?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\ValidationFailedException; use Symfony\Component\Validator\Validator\ValidatorInterface; /** * Entry point for the Validator component. * * @author Bernhard Schussek <bschussek@gmail.com> */ final class Validation { /** * Creates a callable chain of constraints. * * @param Constraint|ValidatorInterface|null $constraintOrValidator * * @return callable($value) */ public static function createCallable($constraintOrValidator = null, Constraint ...$constraints): callable { $validator = self::createIsValidCallable($constraintOrValidator, ...$constraints); return static function ($value) use ($validator) { if (!$validator($value, $violations)) { throw new ValidationFailedException($value, $violations); } return $value; }; } /** * Creates a callable that returns true/false instead of throwing validation exceptions. * * @param Constraint|ValidatorInterface|null $constraintOrValidator * * @return callable($value, &$violations = null): bool */ public static function createIsValidCallable($constraintOrValidator = null, Constraint ...$constraints): callable { $validator = $constraintOrValidator; if ($constraintOrValidator instanceof Constraint) { $constraints = \func_get_args(); $validator = null; } elseif (null !== $constraintOrValidator && !$constraintOrValidator instanceof ValidatorInterface) { throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be a "%s" or a "%s" object, "%s" given.', __METHOD__, Constraint::class, ValidatorInterface::class, get_debug_type($constraintOrValidator))); } $validator = $validator ?? self::createValidator(); return static function ($value, &$violations = null) use ($constraints, $validator) { $violations = $validator->validate($value, $constraints); return 0 === $violations->count(); }; } /** * Creates a new validator. * * If you want to configure the validator, use * {@link createValidatorBuilder()} instead. */ public static function createValidator(): ValidatorInterface { return self::createValidatorBuilder()->getValidator(); } /** * Creates a configurable builder for validator objects. */ public static function createValidatorBuilder(): ValidatorBuilder { return new ValidatorBuilder(); } /** * This class cannot be instantiated. */ private function __construct() { } } ValidatorBuilder.php 0000644 00000033306 15120140600 0010503 0 ustar 00 <?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 Doctrine\Common\Annotations\AnnotationReader; use Doctrine\Common\Annotations\CachedReader; use Doctrine\Common\Annotations\PsrCachedReader; use Doctrine\Common\Annotations\Reader; use Doctrine\Common\Cache\ArrayCache; use Psr\Cache\CacheItemPoolInterface; use Symfony\Component\Cache\Adapter\ArrayAdapter; use Symfony\Component\Validator\Context\ExecutionContextFactory; use Symfony\Component\Validator\Exception\LogicException; use Symfony\Component\Validator\Exception\ValidatorException; use Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory; use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface; use Symfony\Component\Validator\Mapping\Loader\AnnotationLoader; use Symfony\Component\Validator\Mapping\Loader\LoaderChain; use Symfony\Component\Validator\Mapping\Loader\LoaderInterface; use Symfony\Component\Validator\Mapping\Loader\StaticMethodLoader; use Symfony\Component\Validator\Mapping\Loader\XmlFileLoader; use Symfony\Component\Validator\Mapping\Loader\YamlFileLoader; use Symfony\Component\Validator\Validator\RecursiveValidator; use Symfony\Component\Validator\Validator\ValidatorInterface; use Symfony\Contracts\Translation\LocaleAwareInterface; use Symfony\Contracts\Translation\TranslatorInterface; use Symfony\Contracts\Translation\TranslatorTrait; // Help opcache.preload discover always-needed symbols class_exists(TranslatorInterface::class); class_exists(LocaleAwareInterface::class); class_exists(TranslatorTrait::class); /** * @author Bernhard Schussek <bschussek@gmail.com> */ class ValidatorBuilder { private $initializers = []; private $loaders = []; private $xmlMappings = []; private $yamlMappings = []; private $methodMappings = []; /** * @var Reader|null */ private $annotationReader; private $enableAnnotationMapping = false; /** * @var MetadataFactoryInterface|null */ private $metadataFactory; /** * @var ConstraintValidatorFactoryInterface|null */ private $validatorFactory; /** * @var CacheItemPoolInterface|null */ private $mappingCache; /** * @var TranslatorInterface|null */ private $translator; /** * @var string|null */ private $translationDomain; /** * Adds an object initializer to the validator. * * @return $this */ public function addObjectInitializer(ObjectInitializerInterface $initializer) { $this->initializers[] = $initializer; return $this; } /** * Adds a list of object initializers to the validator. * * @param ObjectInitializerInterface[] $initializers * * @return $this */ public function addObjectInitializers(array $initializers) { $this->initializers = array_merge($this->initializers, $initializers); return $this; } /** * Adds an XML constraint mapping file to the validator. * * @return $this */ public function addXmlMapping(string $path) { if (null !== $this->metadataFactory) { throw new ValidatorException('You cannot add custom mappings after setting a custom metadata factory. Configure your metadata factory instead.'); } $this->xmlMappings[] = $path; return $this; } /** * Adds a list of XML constraint mapping files to the validator. * * @param string[] $paths The paths to the mapping files * * @return $this */ public function addXmlMappings(array $paths) { if (null !== $this->metadataFactory) { throw new ValidatorException('You cannot add custom mappings after setting a custom metadata factory. Configure your metadata factory instead.'); } $this->xmlMappings = array_merge($this->xmlMappings, $paths); return $this; } /** * Adds a YAML constraint mapping file to the validator. * * @param string $path The path to the mapping file * * @return $this */ public function addYamlMapping(string $path) { if (null !== $this->metadataFactory) { throw new ValidatorException('You cannot add custom mappings after setting a custom metadata factory. Configure your metadata factory instead.'); } $this->yamlMappings[] = $path; return $this; } /** * Adds a list of YAML constraint mappings file to the validator. * * @param string[] $paths The paths to the mapping files * * @return $this */ public function addYamlMappings(array $paths) { if (null !== $this->metadataFactory) { throw new ValidatorException('You cannot add custom mappings after setting a custom metadata factory. Configure your metadata factory instead.'); } $this->yamlMappings = array_merge($this->yamlMappings, $paths); return $this; } /** * Enables constraint mapping using the given static method. * * @return $this */ public function addMethodMapping(string $methodName) { if (null !== $this->metadataFactory) { throw new ValidatorException('You cannot add custom mappings after setting a custom metadata factory. Configure your metadata factory instead.'); } $this->methodMappings[] = $methodName; return $this; } /** * Enables constraint mapping using the given static methods. * * @param string[] $methodNames The names of the methods * * @return $this */ public function addMethodMappings(array $methodNames) { if (null !== $this->metadataFactory) { throw new ValidatorException('You cannot add custom mappings after setting a custom metadata factory. Configure your metadata factory instead.'); } $this->methodMappings = array_merge($this->methodMappings, $methodNames); return $this; } /** * Enables annotation based constraint mapping. * * @param bool $skipDoctrineAnnotations * * @return $this */ public function enableAnnotationMapping(/* bool $skipDoctrineAnnotations = true */) { if (null !== $this->metadataFactory) { throw new ValidatorException('You cannot enable annotation mapping after setting a custom metadata factory. Configure your metadata factory instead.'); } $skipDoctrineAnnotations = 1 > \func_num_args() ? false : func_get_arg(0); if (false === $skipDoctrineAnnotations || null === $skipDoctrineAnnotations) { trigger_deprecation('symfony/validator', '5.2', 'Not passing true as first argument to "%s" is deprecated. Pass true and call "addDefaultDoctrineAnnotationReader()" if you want to enable annotation mapping with Doctrine Annotations.', __METHOD__); $this->addDefaultDoctrineAnnotationReader(); } elseif ($skipDoctrineAnnotations instanceof Reader) { trigger_deprecation('symfony/validator', '5.2', 'Passing an instance of "%s" as first argument to "%s" is deprecated. Pass true instead and call setDoctrineAnnotationReader() if you want to enable annotation mapping with Doctrine Annotations.', get_debug_type($skipDoctrineAnnotations), __METHOD__); $this->setDoctrineAnnotationReader($skipDoctrineAnnotations); } elseif (true !== $skipDoctrineAnnotations) { throw new \TypeError(sprintf('"%s": Argument 1 is expected to be a boolean, "%s" given.', __METHOD__, get_debug_type($skipDoctrineAnnotations))); } $this->enableAnnotationMapping = true; return $this; } /** * Disables annotation based constraint mapping. * * @return $this */ public function disableAnnotationMapping() { $this->enableAnnotationMapping = false; $this->annotationReader = null; return $this; } /** * @return $this */ public function setDoctrineAnnotationReader(?Reader $reader): self { $this->annotationReader = $reader; return $this; } /** * @return $this */ public function addDefaultDoctrineAnnotationReader(): self { $this->annotationReader = $this->createAnnotationReader(); return $this; } /** * Sets the class metadata factory used by the validator. * * @return $this */ public function setMetadataFactory(MetadataFactoryInterface $metadataFactory) { if (\count($this->xmlMappings) > 0 || \count($this->yamlMappings) > 0 || \count($this->methodMappings) > 0 || $this->enableAnnotationMapping) { throw new ValidatorException('You cannot set a custom metadata factory after adding custom mappings. You should do either of both.'); } $this->metadataFactory = $metadataFactory; return $this; } /** * Sets the cache for caching class metadata. * * @return $this */ public function setMappingCache(CacheItemPoolInterface $cache) { if (null !== $this->metadataFactory) { throw new ValidatorException('You cannot set a custom mapping cache after setting a custom metadata factory. Configure your metadata factory instead.'); } $this->mappingCache = $cache; return $this; } /** * Sets the constraint validator factory used by the validator. * * @return $this */ public function setConstraintValidatorFactory(ConstraintValidatorFactoryInterface $validatorFactory) { $this->validatorFactory = $validatorFactory; return $this; } /** * Sets the translator used for translating violation messages. * * @return $this */ public function setTranslator(TranslatorInterface $translator) { $this->translator = $translator; return $this; } /** * 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. * * @return $this */ public function setTranslationDomain(?string $translationDomain) { $this->translationDomain = $translationDomain; return $this; } /** * @return $this */ public function addLoader(LoaderInterface $loader) { $this->loaders[] = $loader; return $this; } /** * @return LoaderInterface[] */ public function getLoaders() { $loaders = []; foreach ($this->xmlMappings as $xmlMapping) { $loaders[] = new XmlFileLoader($xmlMapping); } foreach ($this->yamlMappings as $yamlMappings) { $loaders[] = new YamlFileLoader($yamlMappings); } foreach ($this->methodMappings as $methodName) { $loaders[] = new StaticMethodLoader($methodName); } if ($this->enableAnnotationMapping) { $loaders[] = new AnnotationLoader($this->annotationReader); } return array_merge($loaders, $this->loaders); } /** * Builds and returns a new validator object. * * @return ValidatorInterface */ public function getValidator() { $metadataFactory = $this->metadataFactory; if (!$metadataFactory) { $loaders = $this->getLoaders(); $loader = null; if (\count($loaders) > 1) { $loader = new LoaderChain($loaders); } elseif (1 === \count($loaders)) { $loader = $loaders[0]; } $metadataFactory = new LazyLoadingMetadataFactory($loader, $this->mappingCache); } $validatorFactory = $this->validatorFactory ?? new ConstraintValidatorFactory(); $translator = $this->translator; if (null === $translator) { $translator = new class() implements TranslatorInterface, LocaleAwareInterface { use TranslatorTrait; }; // Force the locale to be 'en' when no translator is provided rather than relying on the Intl default locale // This avoids depending on Intl or the stub implementation being available. It also ensures that Symfony // validation messages are pluralized properly even when the default locale gets changed because they are in // English. $translator->setLocale('en'); } $contextFactory = new ExecutionContextFactory($translator, $this->translationDomain); return new RecursiveValidator($contextFactory, $metadataFactory, $validatorFactory, $this->initializers); } private function createAnnotationReader(): Reader { if (!class_exists(AnnotationReader::class)) { throw new LogicException('Enabling annotation based constraint mapping requires the packages doctrine/annotations and symfony/cache to be installed.'); } if (class_exists(ArrayAdapter::class)) { return new PsrCachedReader(new AnnotationReader(), new ArrayAdapter()); } if (class_exists(CachedReader::class) && class_exists(ArrayCache::class)) { trigger_deprecation('symfony/validator', '5.4', 'Enabling annotation based constraint mapping without having symfony/cache installed is deprecated.'); return new CachedReader(new AnnotationReader(), new ArrayCache()); } throw new LogicException('Enabling annotation based constraint mapping requires the packages doctrine/annotations and symfony/cache to be installed.'); } } composer.json 0000644 00000005604 15120140600 0007260 0 ustar 00 { "name": "symfony/validator", "type": "library", "description": "Provides tools to validate values", "keywords": [], "homepage": "https://symfony.com", "license": "MIT", "authors": [ { "name": "Fabien Potencier", "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], "require": { "php": ">=7.2.5", "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "~1.0", "symfony/polyfill-php80": "^1.16", "symfony/polyfill-php81": "^1.22", "symfony/translation-contracts": "^1.1|^2|^3" }, "require-dev": { "symfony/console": "^4.4|^5.0|^6.0", "symfony/finder": "^4.4|^5.0|^6.0", "symfony/http-client": "^4.4|^5.0|^6.0", "symfony/http-foundation": "^4.4|^5.0|^6.0", "symfony/http-kernel": "^4.4|^5.0|^6.0", "symfony/intl": "^4.4|^5.0|^6.0", "symfony/yaml": "^4.4|^5.0|^6.0", "symfony/config": "^4.4|^5.0|^6.0", "symfony/dependency-injection": "^4.4|^5.0|^6.0", "symfony/expression-language": "^5.1|^6.0", "symfony/cache": "^4.4|^5.0|^6.0", "symfony/mime": "^4.4|^5.0|^6.0", "symfony/property-access": "^4.4|^5.0|^6.0", "symfony/property-info": "^5.3|^6.0", "symfony/translation": "^4.4|^5.0|^6.0", "doctrine/annotations": "^1.13|^2", "doctrine/cache": "^1.11|^2.0", "egulias/email-validator": "^2.1.10|^3|^4" }, "conflict": { "doctrine/annotations": "<1.13", "doctrine/cache": "<1.11", "doctrine/lexer": "<1.1", "symfony/dependency-injection": "<4.4", "symfony/expression-language": "<5.1", "symfony/http-kernel": "<4.4", "symfony/intl": "<4.4", "symfony/property-info": "<5.3", "symfony/translation": "<4.4", "symfony/yaml": "<4.4" }, "suggest": { "psr/cache-implementation": "For using the mapping cache.", "symfony/http-foundation": "", "symfony/intl": "", "symfony/translation": "For translating validation errors.", "symfony/yaml": "", "symfony/config": "", "egulias/email-validator": "Strict (RFC compliant) email validation", "symfony/property-access": "For accessing properties within comparison constraints", "symfony/property-info": "To automatically add NotNull and Type constraints", "symfony/expression-language": "For using the Expression validator and the ExpressionLanguageSyntax constraints" }, "autoload": { "psr-4": { "Symfony\\Component\\Validator\\": "" }, "exclude-from-classmap": [ "/Tests/" ] }, "minimum-stability": "dev" }
Coded With 💗 by
0x6ick