* SPDX-License-Identifier: MIT */ declare(strict_types=1); namespace Respect\Validation\Rules; use Attribute; use Respect\Validation\Message\Template; use Respect\Validation\Rules\Core\Envelope; use function nl_langinfo; use const NOEXPR; #[Attribute(Attribute::TARGET_PROPERTY | Attribute::IS_REPEATABLE)] #[Template( '{{subject}} must be similar to "No"', '{{subject}} must not be similar to "No"', )] final class No extends Envelope { public function __construct(bool $useLocale = false) { $pattern = '^n(o(t|pe)?|ix|ay)?$'; if ($useLocale) { $pattern = nl_langinfo(NOEXPR); } parent::__construct(new Regex('/' . $pattern . '/i')); } }