├── .php-cs-fixer.php ├── LICENSE ├── src ├── EnvHelpers.php └── ArrayHelpers.php ├── composer.json ├── lang ├── zh-CN.php ├── ja.php ├── uk.php ├── vi.php ├── fa.php ├── he.php ├── ru.php ├── tr.php ├── en.php ├── nl.php ├── eo.php ├── hu.php ├── pt-br.php ├── it.php ├── id.php ├── es.php ├── fr.php ├── el.php └── de.php ├── coverage.xml └── README.md /.php-cs-fixer.php: -------------------------------------------------------------------------------- 1 | in(__DIR__) 5 | ->exclude('vendor') 6 | ->exclude('dev') 7 | ->name('*.php'); 8 | 9 | return (new PhpCsFixer\Config()) 10 | ->setRules([ 11 | '@PSR12' => true, 12 | 'array_syntax' => ['syntax' => 'short'], 13 | 'no_unused_imports' => true, 14 | 'ordered_imports' => ['sort_algorithm' => 'alpha'], 15 | 'single_quote' => true, 16 | 'trailing_comma_in_multiline' => ['elements' => ['arrays']], 17 | 'no_extra_blank_lines' => true, 18 | 'no_whitespace_in_blank_line' => true, 19 | 'blank_line_before_statement' => ['statements' => ['return']], 20 | ]) 21 | ->setFinder($finder) 22 | ->setRiskyAllowed(false); 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013-2025 Sean Nieuwoudt 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /src/EnvHelpers.php: -------------------------------------------------------------------------------- 1 | =7.1", 31 | "ext-mbstring": "*", 32 | "ext-json": "*", 33 | "ext-intl": "*", 34 | "ext-bcmath": "*", 35 | "ext-iconv": "*" 36 | }, 37 | "autoload-dev": { 38 | "psr-4": { "Tests\\": "tests/" } 39 | }, 40 | "scripts": { 41 | "test": "php ./vendor/bin/phpunit", 42 | "dump": "php ./ci/dump_filters_docs.php && php ./ci/dump_validators_docs.php", 43 | "check": "php ./ci/check_filters_docs.php && php ./ci/check_validators_docs.php && php ./ci/check_validators_translations.php", 44 | "lint": "php ./vendor/bin/php-cs-fixer fix --dry-run --diff", 45 | "lint:fix": "php ./vendor/bin/php-cs-fixer fix" 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/ArrayHelpers.php: -------------------------------------------------------------------------------- 1 | {$segment})) { 35 | $target = $target->{$segment}; 36 | } else { 37 | return $default; 38 | } 39 | } 40 | 41 | return $target; 42 | } 43 | 44 | /** 45 | * Determine whether the given value is array accessible. 46 | * 47 | * @param mixed $value 48 | * @return bool 49 | */ 50 | public static function accessible($value) 51 | { 52 | return is_array($value) || $value instanceof ArrayAccess; 53 | } 54 | 55 | /** 56 | * Determine if the given key exists in the provided array. 57 | * 58 | * @param \ArrayAccess|array $array 59 | * @param string|int $key 60 | * @return bool 61 | */ 62 | public static function exists($array, $key) 63 | { 64 | if ($array instanceof ArrayAccess) { 65 | return $array->offsetExists($key); 66 | } 67 | 68 | return array_key_exists($key, $array); 69 | } 70 | 71 | /** 72 | * Collapse an array of arrays into a single array. 73 | * 74 | * @param array $array 75 | * @return array 76 | */ 77 | public static function collapse($array) 78 | { 79 | $results = []; 80 | 81 | foreach ($array as $values) { 82 | if (! is_array($values)) { 83 | continue; 84 | } 85 | 86 | $results[] = $values; 87 | } 88 | 89 | return array_merge([], ...$results); 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /lang/zh-CN.php: -------------------------------------------------------------------------------- 1 | '字段 {field} 必填', 5 | 'valid_email' => '字段 {field} 必须是一个有效的邮箱地址', 6 | 'max_len' => '字段 {field} 不能大于 {param} 个字符', 7 | 'min_len' => '字段 {field} 不能小于 {param} 个字符', 8 | 'exact_len' => '字段 {field} 必须恰好是 {param} 个字符', 9 | 'between_len' => '字段 {field} 必须介于 {param[0]}-{param[1]} 个字符之间', 10 | 'alpha' => '字段 {field} 只能包含字母', 11 | 'alpha_numeric' => '字段 {field} 只能包含字母和数字', 12 | 'alpha_numeric_space' => '字段 {field} 只能包含字母、数字和空格', 13 | 'alpha_numeric_dash' => '字段 {field} 只能包含字母、数字、中划线(-)和下划线(_)', 14 | 'alpha_dash' => '字段 {field} 只能包含字母、中划线(-)和下划线(_)', 15 | 'alpha_space' => '字段 {field} 只能包含字母和空格', 16 | 'numeric' => '字段 {field} 必须是一个数字', 17 | 'integer' => '字段 {field} 必须是一个整数', 18 | 'boolean' => '字段 {field} 必须是布尔值', 19 | 'float' => '字段 {field} 必须是小数', 20 | 'valid_url' => '字段 {field} 必须是一个有效的网址', 21 | 'url_exists' => '字段 {field} 网址不存在', 22 | 'valid_ip' => '字段 {field} 必须是一个有效的IP地址', 23 | 'valid_ipv4' => '字段 {field} 必须是一个有效的IPv4地址', 24 | 'valid_ipv6' => '字段 {field} 必须是一个有效的IPv6地址', 25 | 'guidv4' => '字段 {field} 必须是一个有效的GUID', 26 | 'valid_cc' => '字段 {field} 不是一个有效的信用卡账号', 27 | 'valid_name' => '字段 {field} 应该是一全名', 28 | 'contains' => '字段 {field} 只能是以下其中之一: {param}', 29 | 'contains_list' => '字段 {field} 不是一个有效的值', 30 | 'doesnt_contain_list' => '字段 {field} 包含一个不被接受的值', 31 | 'street_address' => '字段 {field} 必须是一个有效的街道地址,注:不适用于中文)', 32 | 'date' => '字段 {field} 必须是一个有效的日期', 33 | 'min_numeric' => '字段 {field} 必须是一个数字, 且大于等于 {param}', 34 | 'max_numeric' => '字段 {field} 必须是一个数字, 且小于等于 {param}', 35 | 'min_age' => '字段 {field} 需要是个大于等于 {param} 的年龄', 36 | 'starts' => '字段 {field} 需要以 {param} 开始', 37 | 'extension' => '字段 {field} 只支持以下文件格式: {param},注:不检查Mime-Type', 38 | 'required_file' => '字段 {field} 文件上传不成功', 39 | 'equalsfield' => '字段 {field} 不等于字段 {param}', 40 | 'iban' => '字段 {field} 必须是一个有效的国际银行帐户号码(IBAN)', 41 | 'phone_number' => '字段 {field} 必须是一个有效的手机号码', 42 | 'regex' => '字段 {field} 必须是一个有效格式的值', 43 | 'valid_json_string' => '字段 {field} 必须是一个有效的JSON字符串', 44 | 'valid_array_size_greater' => '字段 {field} 必须是一个数组,且至少有 {param} 个元素', 45 | 'valid_array_size_lesser' => '字段 {field} 必须是一个数组,且最多有 {param} 个元素', 46 | 'valid_array_size_equal' => '字段 {field} 必须是一个数组,且有 {param} 个元素', 47 | 48 | // Security validators 49 | 'strong_password' => '字段 {field} 必须包含至少8个字符,包括大写字母、小写字母、数字和特殊字符', 50 | 'jwt_token' => '字段 {field} 必须是有效的JWT令牌格式', 51 | 'hash' => '字段 {field} 必须是有效的{param}哈希值', 52 | 'no_sql_injection' => '字段 {field} 包含潜在的SQL注入模式', 53 | 'no_xss' => '字段 {field} 包含潜在的XSS模式', 54 | 55 | // Modern web validators 56 | 'uuid' => '字段 {field} 必须是有效的UUID', 57 | 'base64' => '字段 {field} 必须是有效的base64编码数据', 58 | 'hex_color' => '字段 {field} 必须是有效的十六进制颜色代码(例如:#FF0000)', 59 | 'rgb_color' => '字段 {field} 必须是有效的RGB颜色格式(例如:rgb(255,0,0))', 60 | 'timezone' => '字段 {field} 必须是有效的时区标识符', 61 | 'language_code' => '字段 {field} 必须是有效的语言代码(例如:en、en-US)', 62 | 'country_code' => '字段 {field} 必须是有效的国家代码(例如:US、CA)', 63 | 'currency_code' => '字段 {field} 必须是有效的货币代码(例如:USD、EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => '字段 {field} 必须是有效的MAC地址格式', 67 | 'domain_name' => '字段 {field} 必须是有效的域名', 68 | 'port_number' => '字段 {field} 必须是有效的端口号(1-65535)', 69 | 'social_handle' => '字段 {field} 必须是有效的社交媒体用户名格式', 70 | 71 | // Geographic validators 72 | 'latitude' => '字段 {field} 必须是有效的纬度(-90到90)', 73 | 'longitude' => '字段 {field} 必须是有效的经度(-180到180)', 74 | 'postal_code' => '字段 {field} 必须是{param}的有效邮政编码', 75 | 'coordinates' => '字段 {field} 必须是lat,lng格式的有效坐标', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => '字段 {field} 必须是未来日期', 79 | 'past_date' => '字段 {field} 必须是过去日期', 80 | 'business_day' => '字段 {field} 必须是工作日(周一至周五)', 81 | 'valid_time' => '字段 {field} 必须是有效的时间格式(HH:MM或HH:MM:SS)', 82 | 'date_range' => '字段 {field} 必须是{param[0]}和{param[1]}之间的日期', 83 | 84 | // Mathematical validators 85 | 'even' => '字段 {field} 必须是偶数', 86 | 'odd' => '字段 {field} 必须是奇数', 87 | 'prime' => '字段 {field} 必须是质数', 88 | 89 | // Content validators 90 | 'word_count' => '字段 {field} 的字数不符合要求', 91 | 'camel_case' => '字段 {field} 必须是驼峰命名格式', 92 | 'snake_case' => '字段 {field} 必须是下划线命名格式', 93 | 'url_slug' => '字段 {field} 必须是有效的URL slug格式', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/ja.php: -------------------------------------------------------------------------------- 1 | '{field}フィールドは必須です', 5 | 'valid_email' => '{field}フィールドはメールアドレス形式でなければいけません', 6 | 'max_len' => '{field}フィールドは{param}文字以下でなければいけません', 7 | 'min_len' => '{field}フィールドは{param}文字以上でなければいけません', 8 | 'exact_len' => '{field}フィールドは{param}文字でなければいけません', 9 | 'between_len' => '{field}フィールドは{param1}文字以上{param2}文字以下でなければいけません', 10 | 'alpha_numeric_dash' => '{field}フィールドは英数字とダッシュのみで構成されていなければいけません', 11 | 'alpha' => '{field}フィールドはアルファベットでなければいけません', 12 | 'alpha_numeric' => '{field}フィールドは英数字でなければいけません', 13 | 'alpha_numeric_space' => '{field}フィールドは英数字(空白含む)でなければいけません', 14 | 'alpha_dash' => '{field}フィールドはアルファベット(ダッシュ含む)でなければいけません', 15 | 'alpha_space' => '{field}フィールドはアルファベット(空白含む)でなければいけません', 16 | 'numeric' => '{field}フィールドは数字でなければいけません', 17 | 'integer' => '{field}フィールドは整数でなければいけません', 18 | 'boolean' => '{field}フィールドは真理値でなければいけません', 19 | 'float' => '{field}フィールドは浮動小数点数でなければいけません', 20 | 'valid_url' => '{field}フィールドはURL形式でなければいけません', 21 | 'url_exists' => '{field}のURLは存在しません', 22 | 'valid_ip' => '{field}フィールドはIPアドレス形式でなければいけません', 23 | 'valid_ipv4' => '{field}フィールドはIPアドレス形式(IPv4)でなければいけません', 24 | 'valid_ipv6' => '{field}フィールドはIPアドレス形式(IPv6)でなければいけません', 25 | 'guidv4' => '{field}フィールドはGUID形式でなければいけません', 26 | 'valid_cc' => '{field}は有効なクレジットカード番号ではありません', 27 | 'valid_name' => '{field}フィールドは姓名でなければいけません', 28 | 'contains' => '{field}は次のうちいずれかでなければいけません。({param})', 29 | 'contains_list' => '{field}は有効な選択肢ではありません', 30 | 'doesnt_contain_list' => '{field}は無効な選択肢を含んでいます', 31 | 'street_address' => '{field}フィールドは住所でなければいけません', 32 | 'date' => '{field}フィールドは日付形式でなければいけません', 33 | 'min_numeric' => '{field}フィールドは{param}以上でなければいけません', 34 | 'max_numeric' => '{field}フィールドは{param}以下でなければいけません', 35 | 'min_age' => '{field}は{param}歳以上でなければいけません', 36 | 'starts' => '{field}フィールドは{param}で始まらなければなりません', 37 | 'extension' => '{field}フィールドは次のうちいずれかの拡張子でなければいけません({param})', 38 | 'required_file' => '{field}フィールドは必須です', 39 | 'equalsfield' => '{field}フィールドは{param}と異なります', 40 | 'iban' => '{field}フィールドはIBAN形式でなければいけません', 41 | 'phone_number' => '{field}フィールドは電話番号でなければいけません', 42 | 'regex' => '{field}フィールドは有効な形式でなければいけません', 43 | 'valid_json_string' => '{field}フィールドは有効なJSON形式でなければいけません', 44 | 'valid_array_size_greater' => '{field}フィールドは{param}個以上の配列でなければいけません', 45 | 'valid_array_size_lesser' => '{field}フィールドは{param}個以下の配列でなければいけません', 46 | 'valid_array_size_equal' => '{field}フィールドは{param}個の配列でなければいけません', 47 | 48 | // Security validators 49 | 'strong_password' => '{field}フィールドは大文字、小文字、数字、特殊文字を含む8文字以上でなければいけません', 50 | 'jwt_token' => '{field}フィールドは有効なJWTトークン形式でなければいけません', 51 | 'hash' => '{field}フィールドは有効な{param}ハッシュでなければいけません', 52 | 'no_sql_injection' => '{field}フィールドは潜在的なSQLインジェクションパターンを含んでいます', 53 | 'no_xss' => '{field}フィールドは潜在的なXSSパターンを含んでいます', 54 | 55 | // Modern web validators 56 | 'uuid' => '{field}フィールドは有効なUUIDでなければいけません', 57 | 'base64' => '{field}フィールドは有効なbase64エンコードデータでなければいけません', 58 | 'hex_color' => '{field}フィールドは有効な16進数カラーコードでなければいけません(例:#FF0000)', 59 | 'rgb_color' => '{field}フィールドは有効なRGBカラー形式でなければいけません(例:rgb(255,0,0))', 60 | 'timezone' => '{field}フィールドは有効なタイムゾーン識別子でなければいけません', 61 | 'language_code' => '{field}フィールドは有効な言語コードでなければいけません(例:en、en-US)', 62 | 'country_code' => '{field}フィールドは有効な国コードでなければいけません(例:US、CA)', 63 | 'currency_code' => '{field}フィールドは有効な通貨コードでなければいけません(例:USD、EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => '{field}フィールドは有効なMACアドレス形式でなければいけません', 67 | 'domain_name' => '{field}フィールドは有効なドメイン名でなければいけません', 68 | 'port_number' => '{field}フィールドは有効なポート番号でなければいけません(1-65535)', 69 | 'social_handle' => '{field}フィールドは有効なソーシャルメディアハンドル形式でなければいけません', 70 | 71 | // Geographic validators 72 | 'latitude' => '{field}フィールドは有効な緯度でなければいけません(-90から90)', 73 | 'longitude' => '{field}フィールドは有効な経度でなければいけません(-180から180)', 74 | 'postal_code' => '{field}フィールドは{param}の有効な郵便番号でなければいけません', 75 | 'coordinates' => '{field}フィールドはlat,lng形式の有効な座標でなければいけません', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => '{field}フィールドは未来の日付でなければいけません', 79 | 'past_date' => '{field}フィールドは過去の日付でなければいけません', 80 | 'business_day' => '{field}フィールドは営業日でなければいけません(月曜日-金曜日)', 81 | 'valid_time' => '{field}フィールドは有効な時間形式でなければいけません(HH:MMまたはHH:MM:SS)', 82 | 'date_range' => '{field}フィールドは{param[0]}と{param[1]}の間の日付でなければいけません', 83 | 84 | // Mathematical validators 85 | 'even' => '{field}フィールドは偶数でなければいけません', 86 | 'odd' => '{field}フィールドは奇数でなければいけません', 87 | 'prime' => '{field}フィールドは素数でなければいけません', 88 | 89 | // Content validators 90 | 'word_count' => '{field}フィールドの単語数が要件を満たしていません', 91 | 'camel_case' => '{field}フィールドはcamelCase形式でなければいけません', 92 | 'snake_case' => '{field}フィールドはsnake_case形式でなければいけません', 93 | 'url_slug' => '{field}フィールドは有効なURLスラグ形式でなければいけません', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/uk.php: -------------------------------------------------------------------------------- 1 | 'Поле {field} є обов’язковим', 5 | 'valid_email' => 'Поле {field} має бути Email адресою', 6 | 'max_len' => 'У полі {field} має бути максимум {param} символів', 7 | 'min_len' => 'У полі {field} має бути мінімум {param} символів', 8 | 'exact_len' => 'Поле {field} має містити рівно {param} символів', 9 | 'between_len' => 'Поле "{field}" має містити від {param[0]} до {param[1]} символів', 10 | 'alpha' => 'Поле {field} може містити тільки літери', 11 | 'alpha_numeric' => 'Поле {field} може містити тільки букви і цифри', 12 | 'alpha_numeric_space' => 'Поле {field} може містити тільки букви, цифри та пробіли', 13 | 'alpha_numeric_dash' => 'Поле {field} може містити тільки букви, цифри, дефіси та підкреслення', 14 | 'alpha_dash' => 'Поле {field} може містити тільки букви та дефіс', 15 | 'alpha_space' => 'Поле {field} може містити тільки букви та пробіл', 16 | 'numeric' => 'Поле {field} має бути числом', 17 | 'integer' => 'Поле {field} має бути цілим числом', 18 | 'boolean' => 'У поля {field} повинен бути логічний (булевий) тип даних true або false', 19 | 'float' => 'Поле {field} має бути не цілим числом', 20 | 'valid_url' => 'Поле {field} має бути гіперпосиланням', 21 | 'url_exists' => 'Гіперпосилання {field} недоступне', 22 | 'valid_ip' => 'Поле {field} має бути IP адресою', 23 | 'valid_ipv4' => 'Поле {field} має бути IPv4 адресою', 24 | 'valid_ipv6' => 'Поле {field} має бути IPv6 адресою', 25 | 'guidv4' => 'Поле {field} має бути GUIDом', 26 | 'valid_cc' => 'Номер картки {field} не є валідним', 27 | 'valid_name' => 'Поле {field} має містити повне ім’я', 28 | 'contains' => 'Поле {field} може містити наступні значення: {param}', 29 | 'contains_list' => 'Значення {field} не може бути використано як відповідь', 30 | 'doesnt_contain_list' => 'Значення {field} не може бути використано', 31 | 'street_address' => 'Поле {field} має бути адресою', 32 | 'date' => 'Поле {field} має бути датою', 33 | 'min_numeric' => 'Поле {field} має бути числом не менше ніж {param}', 34 | 'max_numeric' => 'Поле {field} має бути числом не більше ніж {param}', 35 | 'min_age' => 'Вік повинен бути більшим ніж {param}', 36 | 'starts' => 'Поле {field} має починатися з {param}', 37 | 'extension' => 'Файл {field} повинен бути наступного типу: {param}', 38 | 'required_file' => 'Файл {field} обов’язковий до завантаження', 39 | 'equalsfield' => 'Поле {field} має бути ідентичним {param}', 40 | 'iban' => 'Поле {field} має бути валідним IBAN', 41 | 'phone_number' => 'Поле {field} має бути правильним номером телефону', 42 | 'regex' => 'Поле {field} повинно містити правильне значення', 43 | 'valid_json_string' => 'Поле {field} має бути валідним JSON рядком', 44 | 'valid_array_size_greater' => 'Поле {field} має містити мінімум {param} значень', 45 | 'valid_array_size_lesser' => 'Поле {field} повинно містити максимум {param} значень', 46 | 'valid_array_size_equal' => 'Поле {field} має містити рівно {param} значень', 47 | 48 | // Security validators 49 | 'strong_password' => 'Поле {field} має містити принаймні 8 символів з великими, малими літерами, цифрами та спеціальними символами', 50 | 'jwt_token' => 'Поле {field} має бути дійсним форматом JWT токена', 51 | 'hash' => 'Поле {field} має бути дійсним {param} хешем', 52 | 'no_sql_injection' => 'Поле {field} містить потенційні шаблони SQL ін\'єкції', 53 | 'no_xss' => 'Поле {field} містить потенційні XSS шаблони', 54 | 55 | // Modern web validators 56 | 'uuid' => 'Поле {field} має бути дійсним UUID', 57 | 'base64' => 'Поле {field} має бути дійсними даними в кодуванні base64', 58 | 'hex_color' => 'Поле {field} має бути дійсним шістнадцятковим кодом кольору (наприклад, #FF0000)', 59 | 'rgb_color' => 'Поле {field} має бути дійсним форматом кольору RGB (наприклад, rgb(255,0,0))', 60 | 'timezone' => 'Поле {field} має бути дійсним ідентифікатором часової зони', 61 | 'language_code' => 'Поле {field} має бути дійсним кодом мови (наприклад, en, en-US)', 62 | 'country_code' => 'Поле {field} має бути дійсним кодом країни (наприклад, US, CA)', 63 | 'currency_code' => 'Поле {field} має бути дійсним кодом валюти (наприклад, USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => 'Поле {field} має бути дійсним форматом MAC адреси', 67 | 'domain_name' => 'Поле {field} має бути дійсним іменем домену', 68 | 'port_number' => 'Поле {field} має бути дійсним номером порту (1-65535)', 69 | 'social_handle' => 'Поле {field} має бути дійсним форматом хендла соціальних мереж', 70 | 71 | // Geographic validators 72 | 'latitude' => 'Поле {field} має бути дійсною широтою (-90 до 90)', 73 | 'longitude' => 'Поле {field} має бути дійсною довготою (-180 до 180)', 74 | 'postal_code' => 'Поле {field} має бути дійсним поштовим індексом для {param}', 75 | 'coordinates' => 'Поле {field} має бути дійсними координатами в форматі lat,lng', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => 'Поле {field} має бути майбутньою датою', 79 | 'past_date' => 'Поле {field} має бути минулою датою', 80 | 'business_day' => 'Поле {field} має припадати на робочий день (понеділок-п\'ятниця)', 81 | 'valid_time' => 'Поле {field} має бути дійсним форматом часу (HH:MM або HH:MM:SS)', 82 | 'date_range' => 'Поле {field} має бути датою між {param[0]} та {param[1]}', 83 | 84 | // Mathematical validators 85 | 'even' => 'Поле {field} має бути парним числом', 86 | 'odd' => 'Поле {field} має бути непарним числом', 87 | 'prime' => 'Поле {field} має бути простим числом', 88 | 89 | // Content validators 90 | 'word_count' => 'Кількість слів у полі {field} не відповідає вимогам', 91 | 'camel_case' => 'Поле {field} має бути в форматі camelCase', 92 | 'snake_case' => 'Поле {field} має бути в форматі snake_case', 93 | 'url_slug' => 'Поле {field} має бути дійсним форматом URL slug', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/vi.php: -------------------------------------------------------------------------------- 1 | '{field} là bắt buộc', 5 | 'valid_email' => '{field} phải là địa chỉ email hợp lệ', 6 | 'max_len' => '{field} cần phải có {param} ký tự trở xuống', 7 | 'min_len' => '{field} cần có ít nhất {param} ký tự', 8 | 'exact_len' => '{field} cần có chính xác các ký tự {param}', 9 | 'between_len' => '{field} cần nằm trong khoảng {param[0]} và {param[1]} ký tự', 10 | 'alpha' => '{field} chỉ có thể chứa các chữ cái', 11 | 'alpha_numeric' => '{field} chỉ có thể chứa các chữ cái và số', 12 | 'alpha_numeric_space' => '{field} chỉ có thể chứa các chữ cái, số và khoảng trắng', 13 | 'alpha_numeric_dash' => '{field} chỉ có thể chứa các chữ cái, số, dấu gạch ngang và dấu gạch dưới', 14 | 'alpha_dash' => '{field} chỉ có thể chứa các chữ cái, dấu gạch ngang và dấu gạch dưới', 15 | 'alpha_space' => '{field} chỉ có thể chứa các chữ cái và dấu cách', 16 | 'numeric' => '{field} phải là một số', 17 | 'integer' => '{field} phải là một số không có số thập phân', 18 | 'boolean' => '{field} phải đúng hoặc sai', 19 | 'float' => '{field} phải là một số có dấu thập phân (dấu phẩy)', 20 | 'valid_url' => '{field} phải là một URL', 21 | 'url_exists' => 'URL {field} không tồn tại', 22 | 'valid_ip' => '{field} cần phải là địa chỉ IP hợp lệ', 23 | 'valid_ipv4' => '{field} cần chứa địa chỉ IPv4 hợp lệ', 24 | 'valid_ipv6' => '{field} cần chứa địa chỉ IPv6 hợp lệ', 25 | 'guidv4' => '{field} cần chứa GUID hợp lệ', 26 | 'valid_cc' => '{field} không phải là số thẻ tín dụng hợp lệ', 27 | 'valid_name' => '{field} phải là tên đầy đủ', 28 | 'contains' => '{field} chỉ có thể là một trong những trường hợp sau: {param}', 29 | 'contains_list' => '{field} không phải là một tùy chọn hợp lệ', 30 | 'doesnt_contain_list' => '{field} chứa giá trị không được chấp nhận', 31 | 'street_address' => '{field} cần phải là địa chỉ đường phố hợp lệ', 32 | 'date' => '{field} phải là một ngày hợp lệ', 33 | 'min_numeric' => '{field} cần phải là một giá trị số, bằng hoặc cao hơn {param}', 34 | 'max_numeric' => '{field} cần phải là một giá trị số, bằng hoặc thấp hơn {param}', 35 | 'min_age' => '{field} cần có tuổi lớn hơn hoặc bằng {param}', 36 | 'starts' => '{field} cần bắt đầu bằng {param}', 37 | 'extension' => '{field} chỉ có thể có một trong các mở rộng sau: {param}', 38 | 'required_file' => '{field} là bắt buộc', 39 | 'equalsfield' => '{field} không bằng {param}', 40 | 'iban' => '{field} cần chứa IBAN hợp lệ', 41 | 'phone_number' => '{field} cần phải là Số điện thoại hợp lệ', 42 | 'regex' => '{field} cần chứa một giá trị với định dạng hợp lệ', 43 | 'valid_json_string' => '{field} cần chứa chuỗi định dạng JSON hợp lệ', 44 | 'valid_array_size_greater' => 'Các {field} cần phải là một mảng có kích thước, bằng hoặc cao hơn {param}', 45 | 'valid_array_size_lesser' => 'Các {field} cần phải là một mảng có kích thước, bằng hoặc thấp hơn {param}', 46 | 'valid_array_size_equal' => 'Các {field} cần phải là một mảng có kích thước bằng {param}', 47 | 48 | // Security validators 49 | 'strong_password' => '{field} phải chứa ít nhất 8 ký tự với chữ hoa, chữ thường, số và ký tự đặc biệt', 50 | 'jwt_token' => '{field} phải là định dạng JWT token hợp lệ', 51 | 'hash' => '{field} phải là hash {param} hợp lệ', 52 | 'no_sql_injection' => '{field} chứa các mẫu SQL injection tiềm ẩn', 53 | 'no_xss' => '{field} chứa các mẫu XSS tiềm ẩn', 54 | 55 | // Modern web validators 56 | 'uuid' => '{field} phải là UUID hợp lệ', 57 | 'base64' => '{field} phải là dữ liệu được mã hóa base64 hợp lệ', 58 | 'hex_color' => '{field} phải là mã màu thập lục phân hợp lệ (ví dụ: #FF0000)', 59 | 'rgb_color' => '{field} phải là định dạng màu RGB hợp lệ (ví dụ: rgb(255,0,0))', 60 | 'timezone' => '{field} phải là định danh múi giờ hợp lệ', 61 | 'language_code' => '{field} phải là mã ngôn ngữ hợp lệ (ví dụ: en, en-US)', 62 | 'country_code' => '{field} phải là mã quốc gia hợp lệ (ví dụ: US, CA)', 63 | 'currency_code' => '{field} phải là mã tiền tệ hợp lệ (ví dụ: USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => '{field} phải là định dạng địa chỉ MAC hợp lệ', 67 | 'domain_name' => '{field} phải là tên miền hợp lệ', 68 | 'port_number' => '{field} phải là số cổng hợp lệ (1-65535)', 69 | 'social_handle' => '{field} phải là định dạng tên người dùng mạng xã hội hợp lệ', 70 | 71 | // Geographic validators 72 | 'latitude' => '{field} phải là vĩ độ hợp lệ (-90 đến 90)', 73 | 'longitude' => '{field} phải là kinh độ hợp lệ (-180 đến 180)', 74 | 'postal_code' => '{field} phải là mã bưu chính hợp lệ cho {param}', 75 | 'coordinates' => '{field} phải là tọa độ hợp lệ theo định dạng lat,lng', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => '{field} phải là ngày tương lai', 79 | 'past_date' => '{field} phải là ngày quá khứ', 80 | 'business_day' => '{field} phải rơi vào ngày làm việc (Thứ Hai-Thứ Sáu)', 81 | 'valid_time' => '{field} phải là định dạng thời gian hợp lệ (HH:MM hoặc HH:MM:SS)', 82 | 'date_range' => '{field} phải là ngày từ {param[0]} đến {param[1]}', 83 | 84 | // Mathematical validators 85 | 'even' => '{field} phải là số chẵn', 86 | 'odd' => '{field} phải là số lẻ', 87 | 'prime' => '{field} phải là số nguyên tố', 88 | 89 | // Content validators 90 | 'word_count' => 'Số từ của {field} không đáp ứng yêu cầu', 91 | 'camel_case' => '{field} phải ở định dạng camelCase', 92 | 'snake_case' => '{field} phải ở định dạng snake_case', 93 | 'url_slug' => '{field} phải là định dạng URL slug hợp lệ', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/fa.php: -------------------------------------------------------------------------------- 1 | '{field} الزامی میباشد', 5 | 'valid_email' => '{field} باید یک آدرس ایمیل معتبر باشد ', 6 | 'max_len' => '{field} باید حد اکثر {param} کاراکتر یا کمتر باشد', 7 | 'min_len' => '{field} باید حد اقل {param} کاراکتر یا بیشتر باشد', 8 | 'exact_len' => '{field} باید دقیقا {param} کاراکتر باشد', 9 | 'between_len' => '{field} باید بین {param} و {param2} کاراکتر باشد', 10 | 'alpha_numeric_dash' => '{field} فقط باید شامل حروف، اعداد و خط فاصله باشد', 11 | 'alpha' => '{field} فقط باید شامل حروف باشد', 12 | 'alpha_numeric' => '{field} فقط باید شامل حروف و اعداد باشد', 13 | 'alpha_numeric_space' => '{field} فقط باید شامل حروف، اعداد و فاصله باشد', 14 | 'alpha_dash' => '{field} فقط باید شامل حروف و خط فاصله یا خط تیره باشد', 15 | 'alpha_space' => '{field} فقط باید شامل حروف و فاصله باشد', 16 | 'numeric' => '{field} باید یک عدد باشد', 17 | 'integer' => '{field} باید یک عدد بدون نقطه اعشار یا ممیز باشد', 18 | 'boolean' => '{field} باید درست/صحیح یا نادرست/غلط باشد', 19 | 'float' => '{field} باید عدد با نقطه اعشار یا ممیز باشد', 20 | 'valid_url' => '{field} باید یک آدرس وب باشد', 21 | 'url_exists' => '{field} آدرس وب/اینترنت وجود ندارد', 22 | 'valid_ip' => '{field} باید یک IP آدرس معتبر باشد', 23 | 'valid_ipv4' => '{field} باید یک آدرس IPv4 معتبر باشد', 24 | 'valid_ipv6' => '{field} باید یک آدرس IPv6 معتبر باشد', 25 | 'guidv4' => '{field} باید یک GUID معتبر داشته باشد', 26 | 'valid_cc' => '{field} شماره کارت اعتباری درست نیست', 27 | 'valid_name' => '{field} باید یک نام معتبر باشد', 28 | 'contains' => 'The {field} فقط میتواند یکی از موارد {param} زیر باشد', 29 | 'contains_list' => '{field} این گزینه درست نیست', 30 | 'doesnt_contain_list' => '{field} شامل یک مقدار نادرست هست', 31 | 'street_address' => '{field} باید یک آدرس خیابان معتبر باشد', 32 | 'date' => '{field} باید یک تاریخ معتبر باشد', 33 | 'min_numeric' => '{field} باید یک مقدار عددی مساوی یا بزرگتر از {param} باشد', 34 | 'max_numeric' => '{field} باید یک مقدار عددی مساوی یا کوچکتر از {param} باشد', 35 | 'min_age' => '{field} باید مقدار عمر یا سن شخص مساوی یا بزرگتر از {param} باشد', 36 | 'starts' => '{field} باید با {param} شروع گردد', 37 | 'extension' => '{field} فقط میتواند یکی از پسوند های {param} را داشته باشد', 38 | 'required_file' => '{field} الزامی است', 39 | 'equalsfield' => '{field} برابر با {param} نمی باشد', 40 | 'iban' => '{field} باید یک IBAN معتبر باشد', 41 | 'phone_number' => '{field} باید یک شماره تلفن معتبر باشد', 42 | 'regex' => '{field} باید شامل یک مقدار با فرمت درست و معتبر باشد', 43 | 'valid_json_string' => '{field} باید شامل یک فرمت درست و معتبر JSON باشد', 44 | 'valid_array_size_greater' => '{field} باید یک آرایه که اندازه آن مساوی یا بزرگتر از {param} باشد', 45 | 'valid_array_size_lesser' => '{field} باید یک آرایه که اندازه آن مساوی یا کوچکتر از {param} باشد', 46 | 'valid_array_size_equal' => '{field} باید یک آرایه که اندازه آن برابر با {param} باشد', 47 | 48 | // Security validators 49 | 'strong_password' => '{field} باید حداقل ۸ کاراکتر با حروف بزرگ، کوچک، عدد و کاراکتر خاص شامل باشد', 50 | 'jwt_token' => '{field} باید فرمت معتبر JWT توکن باشد', 51 | 'hash' => '{field} باید یک هش معتبر {param} باشد', 52 | 'no_sql_injection' => '{field} شامل الگوهای احتمالی SQL injection است', 53 | 'no_xss' => '{field} شامل الگوهای احتمالی XSS است', 54 | 55 | // Modern web validators 56 | 'uuid' => '{field} باید یک UUID معتبر باشد', 57 | 'base64' => '{field} باید داده‌های کدگذاری شده base64 معتبر باشد', 58 | 'hex_color' => '{field} باید یک کد رنگ شانزده‌شانزدهی معتبر باشد (مثل #FF0000)', 59 | 'rgb_color' => '{field} باید یک فرمت رنگ RGB معتبر باشد (مثل rgb(255,0,0))', 60 | 'timezone' => '{field} باید یک شناسه منطقه زمانی معتبر باشد', 61 | 'language_code' => '{field} باید یک کد زبان معتبر باشد (مثل en، en-US)', 62 | 'country_code' => '{field} باید یک کد کشور معتبر باشد (مثل US، CA)', 63 | 'currency_code' => '{field} باید یک کد ارز معتبر باشد (مثل USD، EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => '{field} باید فرمت آدرس MAC معتبر باشد', 67 | 'domain_name' => '{field} باید یک نام دامنه معتبر باشد', 68 | 'port_number' => '{field} باید یک شماره پورت معتبر باشد (۱-۶۵۵۳۵)', 69 | 'social_handle' => '{field} باید فرمت هندل شبکه‌های اجتماعی معتبر باشد', 70 | 71 | // Geographic validators 72 | 'latitude' => '{field} باید یک عرض جغرافیایی معتبر باشد (۹۰- تا ۹۰)', 73 | 'longitude' => '{field} باید یک طول جغرافیایی معتبر باشد (۱۸۰- تا ۱۸۰)', 74 | 'postal_code' => '{field} باید یک کد پستی معتبر برای {param} باشد', 75 | 'coordinates' => '{field} باید مختصات معتبر در فرمت lat,lng باشد', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => '{field} باید یک تاریخ آینده باشد', 79 | 'past_date' => '{field} باید یک تاریخ گذشته باشد', 80 | 'business_day' => '{field} باید در یک روز کاری باشد (دوشنبه-جمعه)', 81 | 'valid_time' => '{field} باید یک فرمت زمان معتبر باشد (HH:MM یا HH:MM:SS)', 82 | 'date_range' => '{field} باید تاریخی بین {param[0]} و {param[1]} باشد', 83 | 84 | // Mathematical validators 85 | 'even' => '{field} باید یک عدد زوج باشد', 86 | 'odd' => '{field} باید یک عدد فرد باشد', 87 | 'prime' => '{field} باید یک عدد اول باشد', 88 | 89 | // Content validators 90 | 'word_count' => 'شمارش کلمات {field} الزامات را برآورده نمی‌کند', 91 | 'camel_case' => '{field} باید در فرمت camelCase باشد', 92 | 'snake_case' => '{field} باید در فرمت snake_case باشد', 93 | 'url_slug' => '{field} باید فرمت URL slug معتبر باشد', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/he.php: -------------------------------------------------------------------------------- 1 | 'שדה {field} הינו חובה', 5 | 'valid_email' => 'שדה {field} מוכרח להיות כתובת דוא"ל חוקית', 6 | 'max_len' => 'שדה {field} מוכרח להיות {param} תווים או פחות', 7 | 'min_len' => 'שדה {field} מוכרח להיות לפחות {param} תווים', 8 | 'exact_len' => 'שדה {field} מוכרח להיות בדיוק {param} תווים', 9 | 'between_len' => 'שדה {field} מוכרח להיות בין {param} ל-{param2} תווים.', 10 | 'alpha_numeric_dash' => 'שדה {field} יכול להכיל אותיות, מספרים ומקפים בלבד.', 11 | 'alpha' => 'שדה {field} יכול להכיל אותיות בלבד', 12 | 'alpha_numeric' => 'שדה {field} יכול להכיל אותיות ומספרים בלבד', 13 | 'alpha_numeric_space' => 'שדה {field} יכול להכיל אותיות, מספרים ורווחים בלבד', 14 | 'alpha_dash' => 'שדה {field} יכול להכיל אותיות ומקפים בלבד', 15 | 'alpha_space' => 'שדה {field} יכול להכיל אותיות ורווחים בלבד', 16 | 'numeric' => 'שדה {field} מוכרח להיות מספר', 17 | 'integer' => 'שדה {field} מוכרח להיות מספר שלם', 18 | 'boolean' => 'שדה {field} מוכרח להיות אמת או שקר', 19 | 'float' => 'שדה {field} מוכרח להיות מספר עם נקודה עשרונית', 20 | 'valid_url' => 'שדה {field} מוכרח להיות כתובת אתר', 21 | 'url_exists' => 'שדה {field} אינו כתובת אתר קיימת', 22 | 'valid_ip' => 'שדה {field} מוכרח להיות כתובת IP חוקית', 23 | 'valid_ipv4' => 'שדה {field} מוכרח להכיל כתובת IPv4 חוקית', 24 | 'valid_ipv6' => 'שדה {field} מוכרח להכיל כתובת IPv6 חוקית', 25 | 'guidv4' => 'שדה {field} מוכרח להכיל GUID תקין', 26 | 'valid_cc' => 'שדה {field} אינו מספר כרטיס אשראי חוקי', 27 | 'valid_name' => 'שדה {field} מוכרח להכיל שם מלא', 28 | 'contains' => 'שדה {field} יכול להכיל רק אחד מן הערכים הבאים: {param}', 29 | 'contains_list' => 'שדה {field} אינו אפשרות חוקית', 30 | 'doesnt_contain_list' => 'שדה {field} מכיל ערך שאינו מקובל', 31 | 'street_address' => 'שדה {field} מוכרח להיות כתובת רחוב חוקית', 32 | 'date' => 'שדה {field} מוכרח להיות תאריך חוקי', 33 | 'min_numeric' => 'שדה {field} מוכרח להיות ערך מספרי, שווה ל, או גבוה מ {param}', 34 | 'max_numeric' => 'שדה {field} מוכרח להיות ערך מספרי, שווה או נמוך מ {param}', 35 | 'min_age' => 'שדה {field} מוכרח להיות גיל גדול או שווה ל {param}', 36 | 'starts' => 'שדה {field} מוכרח להתחיל עם {param}', 37 | 'extension' => 'שדה {field} יכול להיות רק אחת מן הסיומות הבאות: {param}', 38 | 'required_file' => 'שדה {field} הינו שדה קובץ חובה', 39 | 'equalsfield' => 'שדה {field} אינו שווה לשדה {param}', 40 | 'iban' => 'שדה {field} מוכרח להכיל IBAN חוקי', 41 | 'phone_number' => 'שדה {field} מוכרח להיות מספר טלפון חוקי', 42 | 'regex' => 'שדה {field} מוכרח להכיל ערך בפורמט חוקי', 43 | 'valid_json_string' => 'שדה {field} להכיל מחרוזת בפורמט JSON חוקי', 44 | 'valid_array_size_greater' => 'שדה {field} מוכרח להיות מערך בעל גודל, שווה ל, או גבוה מ {param}', 45 | 'valid_array_size_lesser' => 'שדה {field} מוכרח להיות מערך עם גודל, שווה או נמוך מ {param}', 46 | 'valid_array_size_equal' => 'שדה {field} מוכרח להיות מערך עם גודל שווה ל {param}', 47 | 48 | // Security validators 49 | 'strong_password' => 'שדה {field} מוכרח להכיל לפחות 8 תווים עם אותיות גדולות, קטנות, מספר ותו מיוחד', 50 | 'jwt_token' => 'שדה {field} מוכרח להיות בפורמט JWT token חוקי', 51 | 'hash' => 'שדה {field} מוכרח להיות hash {param} חוקי', 52 | 'no_sql_injection' => 'שדה {field} מכיל דפוסי SQL injection פוטנציאליים', 53 | 'no_xss' => 'שדה {field} מכיל דפוסי XSS פוטנציאליים', 54 | 55 | // Modern web validators 56 | 'uuid' => 'שדה {field} מוכרח להיות UUID חוקי', 57 | 'base64' => 'שדה {field} מוכרח להיות מידע מקודד base64 חוקי', 58 | 'hex_color' => 'שדה {field} מוכרח להיות קוד צבע הקסדצימלי חוקי (כמו #FF0000)', 59 | 'rgb_color' => 'שדה {field} מוכרח להיות בפורמט צבע RGB חוקי (כמו rgb(255,0,0))', 60 | 'timezone' => 'שדה {field} מוכרח להיות מזהה אזור זמן חוקי', 61 | 'language_code' => 'שדה {field} מוכרח להיות קוד שפה חוקי (כמו en, en-US)', 62 | 'country_code' => 'שדה {field} מוכרח להיות קוד מדינה חוקי (כמו US, CA)', 63 | 'currency_code' => 'שדה {field} מוכרח להיות קוד מטבע חוקי (כמו USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => 'שדה {field} מוכרח להיות בפורמט כתובת MAC חוקי', 67 | 'domain_name' => 'שדה {field} מוכרח להיות שם דומיין חוקי', 68 | 'port_number' => 'שדה {field} מוכרח להיות מספר פורט חוקי (1-65535)', 69 | 'social_handle' => 'שדה {field} מוכרח להיות בפורמט משתמש רשתות חברתיות חוקי', 70 | 71 | // Geographic validators 72 | 'latitude' => 'שדה {field} מוכרח להיות קו רוחב חוקי (-90 עד 90)', 73 | 'longitude' => 'שדה {field} מוכרח להיות קו אורך חוקי (-180 עד 180)', 74 | 'postal_code' => 'שדה {field} מוכרח להיות מיקוד חוקי עבור {param}', 75 | 'coordinates' => 'שדה {field} מוכרח להיות קואורדינטות חוקיות בפורמט lat,lng', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => 'שדה {field} מוכרח להיות תאריך עתידי', 79 | 'past_date' => 'שדה {field} מוכרח להיות תאריך עבר', 80 | 'business_day' => 'שדה {field} מוכרח להיות ביום עסקים (ראשון-חמישי)', 81 | 'valid_time' => 'שדה {field} מוכרח להיות בפורמט זמן חוקי (HH:MM או HH:MM:SS)', 82 | 'date_range' => 'שדה {field} מוכרח להיות תאריך בין {param[0]} ו-{param[1]}', 83 | 84 | // Mathematical validators 85 | 'even' => 'שדה {field} מוכרח להיות מספר זוגי', 86 | 'odd' => 'שדה {field} מוכרח להיות מספר אי-זוגי', 87 | 'prime' => 'שדה {field} מוכרח להיות מספר ראשוני', 88 | 89 | // Content validators 90 | 'word_count' => 'ספירת המילים של שדה {field} לא עומדת בדרישות', 91 | 'camel_case' => 'שדה {field} מוכרח להיות בפורמט camelCase', 92 | 'snake_case' => 'שדה {field} מוכרח להיות בפורמט snake_case', 93 | 'url_slug' => 'שדה {field} מוכרח להיות בפורמט URL slug חוקי', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/ru.php: -------------------------------------------------------------------------------- 1 | 'Поле {field} является обязательным', 5 | 'valid_email' => 'Поле {field} должно быть Email адресом', 6 | 'max_len' => 'Поле {field} должно быть максимум {param} символов', 7 | 'min_len' => 'Поле {field} должно быть минимум {param} символов', 8 | 'exact_len' => 'Поле {field} должно содержать ровно {param} символов', 9 | 'between_len' => 'Поле {field} должно содержать от {param[0]} до {param[1]} символов', 10 | 'alpha_numeric_dash' => 'Поле {field} может содержать только буквы, цифры, дефисы и подчеркивания', 11 | 'alpha' => 'Поле {field} может содержать только буквы', 12 | 'alpha_numeric' => 'Поле {field} может содержать только буквы и цифры', 13 | 'alpha_numeric_space' => 'Поле {field} может содержать только буквы, цифры и пробелы', 14 | 'alpha_dash' => 'Поле {field} может содержать только буквы и дефис', 15 | 'alpha_space' => 'Поле {field} может содержать только буквы и пробел', 16 | 'numeric' => 'Поле {field} должно быть числом', 17 | 'integer' => 'Поле {field} должно быть целым числом', 18 | 'boolean' => 'Поле {field} должно быть true или false', 19 | 'float' => 'Поле {field} должно быть не целым числом', 20 | 'valid_url' => 'Поле {field} должно быть ссылкой', 21 | 'url_exists' => 'Ссылка {field} не доступна', 22 | 'valid_ip' => 'Поле {field} должно быть IP адресом', 23 | 'valid_ipv4' => 'Поле {field} должно быть IPv4 адресом', 24 | 'valid_ipv6' => 'Поле {field} должно быть IPv6 адресом', 25 | 'guidv4' => 'Поле {field} должно быть GUID', 26 | 'valid_cc' => 'Номер карты {field} не является валидным', 27 | 'valid_name' => 'Поле {field} должно содержать полное имя', 28 | 'contains' => 'Поле {field} может содержать следующие значения: {param}', 29 | 'contains_list' => 'Значение {field} не может быть использовано как ответ', 30 | 'doesnt_contain_list' => 'Значение {field} не может быть использовано', 31 | 'street_address' => 'Поле {field} должно быть адресом', 32 | 'date' => 'Поле {field} должно быть датой', 33 | 'min_numeric' => 'Поле {field} должно быть числом не менее {param}', 34 | 'max_numeric' => 'Поле {field} должно быть числом не более {param}', 35 | 'min_age' => 'Возраст должен быть более {param}', 36 | 'starts' => 'Поле {field} должно начинаться {param}', 37 | 'extension' => 'Файл {field} должен быть следующим типом: {param}', 38 | 'required_file' => 'Файл {field} обязателен к загрузке', 39 | 'equalsfield' => 'Поле {field} должно быть идентичным {param}', 40 | 'iban' => 'Поле {field} должно быть правильным IBAN', 41 | 'phone_number' => 'Поле {field} должно быть правильным номером телефона', 42 | 'regex' => 'Поле {field} должно содержать правильное значение', 43 | 'valid_json_string' => 'Поле {field} должно быть валидной JSON строкой', 44 | 'valid_array_size_greater' => 'Поле {field} должно содержать минимум {param} значений', 45 | 'valid_array_size_lesser' => 'Поле {field} должно содержать максимум {param} значений', 46 | 'valid_array_size_equal' => 'Поле {field} должно содержать ровно {param} значений', 47 | 48 | // Security validators 49 | 'strong_password' => 'Поле {field} должно содержать как минимум 8 символов с заглавными буквами, строчными буквами, цифрами и специальными символами', 50 | 'jwt_token' => 'Поле {field} должно быть в правильном формате JWT токена', 51 | 'hash' => 'Поле {field} должно быть правильным хеш {param}', 52 | 'no_sql_injection' => 'Поле {field} содержит потенциальные паттерны SQL инъекций', 53 | 'no_xss' => 'Поле {field} содержит потенциальные XSS паттерны', 54 | 55 | // Modern web validators 56 | 'uuid' => 'Поле {field} должно быть правильным UUID', 57 | 'base64' => 'Поле {field} должно быть правильно данные в кодировке base64', 58 | 'hex_color' => 'Поле {field} должно быть правильным шестнадцатеричным кодом цвета (нпр. #FF0000)', 59 | 'rgb_color' => 'Поле {field} должно быть в правильном формате цвета RGB (нпр. rgb(255,0,0))', 60 | 'timezone' => 'Поле {field} должно быть правильным идентификатором часового пояса', 61 | 'language_code' => 'Поле {field} должно быть правильным кодом языка (нпр. ru, ru-RU)', 62 | 'country_code' => 'Поле {field} должно быть правильным кодом страны (нпр. RU, US)', 63 | 'currency_code' => 'Поле {field} должно быть правильным кодом валюты (нпр. USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => 'Поле {field} должно быть в правильном формате MAC адреса', 67 | 'domain_name' => 'Поле {field} должно быть правильным именем домена', 68 | 'port_number' => 'Поле {field} должно быть правильным номером порта (1-65535)', 69 | 'social_handle' => 'Поле {field} должно быть в правильном формате для социальных сетей', 70 | 71 | // Geographic validators 72 | 'latitude' => 'Поле {field} должно быть правильной широтой (-90 до 90)', 73 | 'longitude' => 'Поле {field} должно быть правильной долготой (-180 до 180)', 74 | 'postal_code' => 'Поле {field} должно быть правильным почтовым индексом для {param}', 75 | 'coordinates' => 'Поле {field} должно быть правильными координатами в формате lat,lng', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => 'Поле {field} должно быть будущей датой', 79 | 'past_date' => 'Поле {field} должно быть прошлой датой', 80 | 'business_day' => 'Поле {field} должно приходиться на рабочий день (понедельник-пятница)', 81 | 'valid_time' => 'Поле {field} должно быть в правильном формате времени (HH:MM или HH:MM:SS)', 82 | 'date_range' => 'Поле {field} должно быть датой между {param[0]} и {param[1]}', 83 | 84 | // Mathematical validators 85 | 'even' => 'Поле {field} должно быть четным числом', 86 | 'odd' => 'Поле {field} должно быть нечетным числом', 87 | 'prime' => 'Поле {field} должно быть простым числом', 88 | 89 | // Content validators 90 | 'word_count' => 'Поле {field} не соответствует требованиям по количеству слов', 91 | 'camel_case' => 'Поле {field} должно быть в формате camelCase', 92 | 'snake_case' => 'Поле {field} должно быть в формате snake_case', 93 | 'url_slug' => 'Поле {field} должно быть в правильном формате URL slug', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/tr.php: -------------------------------------------------------------------------------- 1 | '{field} alanı zorunludur', 5 | 'valid_email' => '{field} alanı geçerli bir e-posta adresi olmalı', 6 | 'max_len' => '{field} alanı en fazla {param} karakter veya daha az olmalı', 7 | 'min_len' => '{field} alanı en az {param} karakter olmalı', 8 | 'exact_len' => '{field} alanı tam {param} karakter olmalı', 9 | 'between_len' => '{field} alanı {param[0]} ile {param[1]} karakter arasında olmalı', 10 | 'alpha' => '{field} alanı sadece harflerden oluşabilir', 11 | 'alpha_numeric' => '{field} alanı sadece harf ve sayılardan oluşabilir', 12 | 'alpha_numeric_space' => '{field} alanı sadece harf, sayı ve boşluklardan oluşabilir', 13 | 'alpha_numeric_dash' => '{field} alanı sadece harf, rakam, çizgi ve alt çizgi içerebilir', 14 | 'alpha_dash' => '{field} alanı sadece harf ve çizgilerden oluşabilir', 15 | 'alpha_space' => '{field} alanı sadece harf ve boşluklardan oluşabilir', 16 | 'numeric' => '{field} alanı bir sayı olmalı', 17 | 'integer' => '{field} alanı sadece tam sayı olabilir', 18 | 'boolean' => '{field} alanı Doğru yada Yanlış olmak zorunda', 19 | 'float' => '{field} alanı ondalık noktası olan bir sayı olmalı (float)', 20 | 'valid_url' => '{field} alanı URL olmak zorunda', 21 | 'url_exists' => '{field} URL bulunamadı', 22 | 'valid_ip' => '{field} alanı geçerli bir IP adresi olamlı', 23 | 'valid_ipv4' => '{field} alanı geçerli bir IPv4 adresi içermesi gerekiyor', 24 | 'valid_ipv6' => '{field} alanı geçerli bir IPv6 adresi içermesi gerekiyor', 25 | 'guidv4' => '{field} alanı geçerli bir GUID içermesi gerekiyor', 26 | 'valid_cc' => '{field} geçerli bir kredi kartı numarası değil', 27 | 'valid_name' => '{field} tam isim olmalı', 28 | 'contains' => '{field} sadece aşağıdakilerden biri olabilir: {param}', 29 | 'contains_list' => '{field} geçerli bir seçenek değil', 30 | 'doesnt_contain_list' => '{field} alanı kabul edilmeyen bir değer içeriyor', 31 | 'street_address' => '{field} alanı geçerli bir sokak adresi olmalı', 32 | 'date' => '{field} geçerli bir tarih olmalı', 33 | 'min_numeric' => '{field} alanı {param} veya ondan yüksek sayısal bir değer olması gerekir', 34 | 'max_numeric' => '{field} alanı {param} veya ondan düşük sayısal bir değer olması gerekir', 35 | 'min_age' => '{field} alanı {param} veya daha büyük bir yaşta olması gerekir', 36 | 'starts' => '{field} alanı {param} ile başlamalıdır', 37 | 'extension' => '{field} alanı Aşağıdaki uzantılardan yalnızca biri olabilir: {param}', 38 | 'required_file' => '{field} alanı zorunlu', 39 | 'equalsfield' => '{field} alanı {param} alanına eşit değil.', 40 | 'iban' => '{field} alanı geçerli bir IBAN olmalı', 41 | 'phone_number' => '{field} alanı geçerli bir telefon numarası olmalı', 42 | 'regex' => '{field} alanı geçerli biçime sahip bir değer içermesi gerekiyor', 43 | 'valid_json_string' => '{field} alanı geçerli bir JSON biçiminde dize içermesi gerekiyor', 44 | 'valid_array_size_greater' => '{field} alanı {param} veya daha yüksek bir dizi olması gerekir', 45 | 'valid_array_size_lesser' => '{field} alanı {param} veya daha küçük bir dizi olması gerekir', 46 | 'valid_array_size_equal' => '{field} alanı {param} boyutuna eşit bir dizi olması gerekiyor', 47 | 48 | // Security validators 49 | 'strong_password' => '{field} alanı büyük harf, küçük harf, sayı ve özel karakter içeren en az 8 karakter olmalı', 50 | 'jwt_token' => '{field} alanı geçerli bir JWT token formatında olmalı', 51 | 'hash' => '{field} alanı geçerli bir {param} hash olmalı', 52 | 'no_sql_injection' => '{field} alanı potansiyel SQL injection desenleri içeriyor', 53 | 'no_xss' => '{field} alanı potansiyel XSS desenleri içeriyor', 54 | 55 | // Modern web validators 56 | 'uuid' => '{field} alanı geçerli bir UUID olmalı', 57 | 'base64' => '{field} alanı geçerli base64 kodlanmış veri olmalı', 58 | 'hex_color' => '{field} alanı geçerli bir onaltılık renk kodu olmalı (örn: #FF0000)', 59 | 'rgb_color' => '{field} alanı geçerli bir RGB renk formatında olmalı (örn: rgb(255,0,0))', 60 | 'timezone' => '{field} alanı geçerli bir saat dilimi tanımlayıcısı olmalı', 61 | 'language_code' => '{field} alanı geçerli bir dil kodu olmalı (örn: en, en-US)', 62 | 'country_code' => '{field} alanı geçerli bir ülke kodu olmalı (örn: US, CA)', 63 | 'currency_code' => '{field} alanı geçerli bir para birimi kodu olmalı (örn: USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => '{field} alanı geçerli bir MAC adresi formatında olmalı', 67 | 'domain_name' => '{field} alanı geçerli bir domain adı olmalı', 68 | 'port_number' => '{field} alanı geçerli bir port numarası olmalı (1-65535)', 69 | 'social_handle' => '{field} alanı geçerli bir sosyal medya kullanıcı adı formatında olmalı', 70 | 71 | // Geographic validators 72 | 'latitude' => '{field} alanı geçerli bir enlem olmalı (-90 ile 90 arası)', 73 | 'longitude' => '{field} alanı geçerli bir boylam olmalı (-180 ile 180 arası)', 74 | 'postal_code' => '{field} alanı {param} için geçerli bir posta kodu olmalı', 75 | 'coordinates' => '{field} alanı lat,lng formatında geçerli koordinatlar olmalı', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => '{field} alanı gelecek bir tarih olmalı', 79 | 'past_date' => '{field} alanı geçmiş bir tarih olmalı', 80 | 'business_day' => '{field} alanı iş günü olmalı (Pazartesi-Cuma)', 81 | 'valid_time' => '{field} alanı geçerli bir saat formatında olmalı (HH:MM veya HH:MM:SS)', 82 | 'date_range' => '{field} alanı {param[0]} ve {param[1]} arasında bir tarih olmalı', 83 | 84 | // Mathematical validators 85 | 'even' => '{field} alanı çift sayı olmalı', 86 | 'odd' => '{field} alanı tek sayı olmalı', 87 | 'prime' => '{field} alanı asal sayı olmalı', 88 | 89 | // Content validators 90 | 'word_count' => '{field} alanının kelime sayısı gereksinimleri karşılamıyor', 91 | 'camel_case' => '{field} alanı camelCase formatında olmalı', 92 | 'snake_case' => '{field} alanı snake_case formatında olmalı', 93 | 'url_slug' => '{field} alanı geçerli bir URL slug formatında olmalı', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/en.php: -------------------------------------------------------------------------------- 1 | 'The {field} field is required', 5 | 'valid_email' => 'The {field} field must be a valid email address', 6 | 'max_len' => 'The {field} field needs to be {param} characters or less', 7 | 'min_len' => 'The {field} field needs to be at least {param} characters', 8 | 'exact_len' => 'The {field} field needs to be exactly {param} characters', 9 | 'between_len' => 'The {field} field needs to be between {param[0]} and {param[1]} characters', 10 | 'alpha' => 'The {field} field may only contain letters', 11 | 'alpha_numeric' => 'The {field} field may only contain letters and numbers', 12 | 'alpha_numeric_space' => 'The {field} field may only contain letters, numbers and spaces', 13 | 'alpha_numeric_dash' => 'The {field} field may only contain letters, numbers, dashes and underscores', 14 | 'alpha_dash' => 'The {field} field may only contain letters, dashes and underscores', 15 | 'alpha_space' => 'The {field} field may only contain letters and spaces', 16 | 'numeric' => 'The {field} field must be a number', 17 | 'integer' => 'The {field} field must be a number without a decimal', 18 | 'boolean' => 'The {field} field has to be either true or false', 19 | 'float' => 'The {field} field must be a number with a decimal point (float)', 20 | 'valid_url' => 'The {field} field has to be a URL', 21 | 'url_exists' => 'The {field} URL does not exist', 22 | 'valid_ip' => 'The {field} field needs to be a valid IP address', 23 | 'valid_ipv4' => 'The {field} field needs to contain a valid IPv4 address', 24 | 'valid_ipv6' => 'The {field} field needs to contain a valid IPv6 address', 25 | 'guidv4' => 'The {field} field needs to contain a valid GUID', 26 | 'valid_cc' => 'The {field} is not a valid credit card number', 27 | 'valid_name' => 'The {field} should be a full name', 28 | 'contains' => 'The {field} can only be one of the following: {param}', 29 | 'contains_list' => 'The {field} is not a valid option', 30 | 'doesnt_contain_list' => 'The {field} field contains a value that is not accepted', 31 | 'street_address' => 'The {field} field needs to be a valid street address', 32 | 'date' => 'The {field} must be a valid date', 33 | 'min_numeric' => 'The {field} field needs to be a numeric value, equal to, or higher than {param}', 34 | 'max_numeric' => 'The {field} field needs to be a numeric value, equal to, or lower than {param}', 35 | 'min_age' => 'The {field} field needs to have an age greater than or equal to {param}', 36 | 'starts' => 'The {field} field needs to start with {param}', 37 | 'extension' => 'The {field} field can only have one of the following extensions: {param}', 38 | 'required_file' => 'The {field} field is required', 39 | 'equalsfield' => 'The {field} field does not equal {param} field', 40 | 'iban' => 'The {field} field needs to contain a valid IBAN', 41 | 'phone_number' => 'The {field} field needs to be a valid Phone Number', 42 | 'regex' => 'The {field} field needs to contain a value with valid format', 43 | 'valid_json_string' => 'The {field} field needs to contain a valid JSON format string', 44 | 'valid_array_size_greater' => 'The {field} fields needs to be an array with a size, equal to, or higher than {param}', 45 | 'valid_array_size_lesser' => 'The {field} fields needs to be an array with a size, equal to, or lower than {param}', 46 | 'valid_array_size_equal' => 'The {field} fields needs to be an array with a size equal to {param}', 47 | 48 | // Security validators 49 | 'strong_password' => 'The {field} must contain at least 8 characters with uppercase, lowercase, number and special character', 50 | 'jwt_token' => 'The {field} must be a valid JWT token format', 51 | 'hash' => 'The {field} must be a valid {param} hash', 52 | 'no_sql_injection' => 'The {field} contains potential SQL injection patterns', 53 | 'no_xss' => 'The {field} contains potential XSS patterns', 54 | 55 | // Modern web validators 56 | 'uuid' => 'The {field} must be a valid UUID', 57 | 'base64' => 'The {field} must be valid base64 encoded data', 58 | 'hex_color' => 'The {field} must be a valid hexadecimal color code (e.g., #FF0000)', 59 | 'rgb_color' => 'The {field} must be a valid RGB color format (e.g., rgb(255,0,0))', 60 | 'timezone' => 'The {field} must be a valid timezone identifier', 61 | 'language_code' => 'The {field} must be a valid language code (e.g., en, en-US)', 62 | 'country_code' => 'The {field} must be a valid country code (e.g., US, CA)', 63 | 'currency_code' => 'The {field} must be a valid currency code (e.g., USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => 'The {field} must be a valid MAC address format', 67 | 'domain_name' => 'The {field} must be a valid domain name', 68 | 'port_number' => 'The {field} must be a valid port number (1-65535)', 69 | 'social_handle' => 'The {field} must be a valid social media handle format', 70 | 71 | // Geographic validators 72 | 'latitude' => 'The {field} must be a valid latitude (-90 to 90)', 73 | 'longitude' => 'The {field} must be a valid longitude (-180 to 180)', 74 | 'postal_code' => 'The {field} must be a valid postal code for {param}', 75 | 'coordinates' => 'The {field} must be valid coordinates in lat,lng format', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => 'The {field} must be a future date', 79 | 'past_date' => 'The {field} must be a past date', 80 | 'business_day' => 'The {field} must fall on a business day (Monday-Friday)', 81 | 'valid_time' => 'The {field} must be a valid time format (HH:MM or HH:MM:SS)', 82 | 'date_range' => 'The {field} must be a date between {param[0]} and {param[1]}', 83 | 84 | // Mathematical validators 85 | 'even' => 'The {field} must be an even number', 86 | 'odd' => 'The {field} must be an odd number', 87 | 'prime' => 'The {field} must be a prime number', 88 | 89 | // Content validators 90 | 'word_count' => 'The {field} word count does not meet requirements', 91 | 'camel_case' => 'The {field} must be in camelCase format', 92 | 'snake_case' => 'The {field} must be in snake_case format', 93 | 'url_slug' => 'The {field} must be a valid URL slug format', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/nl.php: -------------------------------------------------------------------------------- 1 | 'Het veld {field} is verplicht', 5 | 'valid_email' => 'Het veld {field} moet een geldige e-mail zijn', 6 | 'max_len' => 'Het veld {field} moet een aantal tekens van {param} of minder hebben', 7 | 'min_len' => 'Het veld {field} moet een tekennummer van {param} of meer hebben', 8 | 'exact_len' => 'Het veld {field} moet een tekennummer van {param} hebben', 9 | 'alpha' => 'Het veld {field} mag alleen alfa (a-z) tekens bevatten', 10 | 'alpha_numeric' => 'Het veld {field} mag alleen alfanumerieke tekens bevatten (a-z)', 11 | 'alpha_dash' => 'Het veld {field} mag alleen alfa (a-z) en streepjes tekens bevatten', 12 | 'alpha_space' => 'Het veld {field} mag alleen alfa (a-z) tekens en spatie bevatten', 13 | 'numeric' => 'Het veld {field} mag alleen numerieke tekens bevatten', 14 | 'integer' => 'Het veld {field} moet een numerieke waarde zijn', 15 | 'boolean' => 'Het veld {field} moet waar of onwaar zijn', 16 | 'float' => 'Het veld {field} moet een decimale waarde zijn', 17 | 'valid_url' => 'Het veld {field} moet een geldige URL zijn', 18 | 'url_exists' => 'De {field} URL bestaat niet', 19 | 'valid_ip' => 'Het veld {field} moet een geldig IP-adres bevatten', 20 | 'valid_ipv4' => 'Het veld {field} moet een geldig IPv4-adres bevatten', 21 | 'valid_ipv6' => 'Het veld {field} moet een geldig IPv6-adres bevatten', 22 | 'guidv4' => 'Het veld {field} moet een geldige GUID bevatten', 23 | 'valid_cc' => 'Het veld {field} moet een geldig creditcardnummer bevatten', 24 | 'valid_name' => 'Het veld {field} moet een geldige naam bevatten', 25 | 'contains' => 'Het veld {field} moet een van deze waarden bevatten: {param}', 26 | 'contains_list' => 'Het veld {field} moet een waarde uit het vervolgkeuzemenu bevatten', 27 | 'doesnt_contain_list' => 'Het veld {field} bevat een waarde die niet acceptabel is', 28 | 'street_address' => 'Het veld {field} moet een geldig postadres zijn', 29 | 'date' => 'Het veld {field} moet een geldige datum zijn', 30 | 'min_numeric' => 'Het veld {field} moet een numerieke waarde gelijk aan of groter zijn dan {param}', 31 | 'max_numeric' => 'Het veld {field} moet een numerieke waarde gelijk aan of kleiner zijn dan {param}', 32 | 'min_age' => 'Het veld {field} moet gelijk zijn aan of groter zijn dan {param}', 33 | 'starts' => 'Het veld {field} moet beginnen met {param}', 34 | 'extension' => 'Het veld {field} moet de volgende extensies hebben {parameter}', 35 | 'required_file' => 'Het veld {field} is verplicht', 36 | 'equalsfield' => 'Het veld {field} is niet gelijk aan het veld {param}', 37 | 'iban' => 'Het veld {field} moet een geldige IBAN bevatten', 38 | 'phone_number' => 'Het veld {field} moet een geldig telefoonnummer bevatten', 39 | 'regex' => 'Het veld {field} moet een geldige waarde bevatten', 40 | 'valid_json_string' => 'Het veld {field} moet een JSON-indeling hebben', 41 | 'between_len' => 'Het veld {field} moet tussen de {param1} en {param2} tekens bevatten', 42 | 'alpha_numeric_dash' => 'Het veld {field} mag alleen alfanumerieke tekens en streepjes bevatten', 43 | 'alpha_numeric_space' => 'Het veld {field} mag alleen alfanumerieke tekens, spaties en cijfers bevatten', 44 | 'valid_array_size_greater' => 'Het veld {field} moet een array bevatten met meer dan {param} elementen', 45 | 'valid_array_size_lesser' => 'Het veld {field} moet een array bevatten met minder dan {param} elementen', 46 | 'valid_array_size_equal' => 'Het veld {field} moet een array bevatten met precies {param} elementen', 47 | 48 | // Security validators 49 | 'strong_password' => 'Het veld {field} moet ten minste 8 tekens bevatten met hoofdletters, kleine letters, cijfers en speciale tekens', 50 | 'jwt_token' => 'Het veld {field} moet een geldig JWT token formaat zijn', 51 | 'hash' => 'Het veld {field} moet een geldige {param} hash zijn', 52 | 'no_sql_injection' => 'Het veld {field} bevat potentiële SQL injection patronen', 53 | 'no_xss' => 'Het veld {field} bevat potentiële XSS patronen', 54 | 55 | // Modern web validators 56 | 'uuid' => 'Het veld {field} moet een geldige UUID zijn', 57 | 'base64' => 'Het veld {field} moet geldige base64 gecodeerde data zijn', 58 | 'hex_color' => 'Het veld {field} moet een geldige hexadecimale kleurcode zijn (bijv. #FF0000)', 59 | 'rgb_color' => 'Het veld {field} moet een geldig RGB kleurformaat zijn (bijv. rgb(255,0,0))', 60 | 'timezone' => 'Het veld {field} moet een geldige tijdzone identifier zijn', 61 | 'language_code' => 'Het veld {field} moet een geldige taalcode zijn (bijv. nl, nl-NL)', 62 | 'country_code' => 'Het veld {field} moet een geldige landcode zijn (bijv. NL, BE)', 63 | 'currency_code' => 'Het veld {field} moet een geldige valutacode zijn (bijv. USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => 'Het veld {field} moet een geldig MAC adres formaat zijn', 67 | 'domain_name' => 'Het veld {field} moet een geldige domeinnaam zijn', 68 | 'port_number' => 'Het veld {field} moet een geldig poortnummer zijn (1-65535)', 69 | 'social_handle' => 'Het veld {field} moet een geldig social media handle formaat zijn', 70 | 71 | // Geographic validators 72 | 'latitude' => 'Het veld {field} moet een geldige breedtegraad zijn (-90 tot 90)', 73 | 'longitude' => 'Het veld {field} moet een geldige lengtegraad zijn (-180 tot 180)', 74 | 'postal_code' => 'Het veld {field} moet een geldige postcode zijn voor {param}', 75 | 'coordinates' => 'Het veld {field} moet geldige coördinaten zijn in lat,lng formaat', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => 'Het veld {field} moet een toekomstige datum zijn', 79 | 'past_date' => 'Het veld {field} moet een datum in het verleden zijn', 80 | 'business_day' => 'Het veld {field} moet op een werkdag vallen (maandag-vrijdag)', 81 | 'valid_time' => 'Het veld {field} moet een geldig tijdformaat zijn (HH:MM of HH:MM:SS)', 82 | 'date_range' => 'Het veld {field} moet een datum zijn tussen {param[0]} en {param[1]}', 83 | 84 | // Mathematical validators 85 | 'even' => 'Het veld {field} moet een even getal zijn', 86 | 'odd' => 'Het veld {field} moet een oneven getal zijn', 87 | 'prime' => 'Het veld {field} moet een priemgetal zijn', 88 | 89 | // Content validators 90 | 'word_count' => 'Het veld {field} voldoet niet aan de woordaantal vereisten', 91 | 'camel_case' => 'Het veld {field} moet in camelCase formaat zijn', 92 | 'snake_case' => 'Het veld {field} moet in snake_case formaat zijn', 93 | 'url_slug' => 'Het veld {field} moet een geldig URL slug formaat zijn', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/eo.php: -------------------------------------------------------------------------------- 1 | 'La kampo “{field}” estas deviga', 5 | 'valid_email' => 'La kampo “{field}” devas enhavi validan retadreson', 6 | 'max_len' => 'La kampo “{field}” devas enhavi maksimume {param} signojn', 7 | 'min_len' => 'La kampo “{field}” devas enhavi minimume {param} signojn', 8 | 'exact_len' => 'La kampo “{field}” devas enhavi precize {param} signojn', 9 | 'between_len' => 'La kampo “{field}” devas enhavi inter {param} kaj {param2} signojn', 10 | 'alpha_numeric_dash' => 'La kampo “{field}” povas enhavi nur leterojn, ciferojn kaj streketojn', 11 | 'alpha' => 'La kampo “{field}” povas enhavi nur leterojn', 12 | 'alpha_numeric' => 'La kampo “{field}” povas enhavi nur leterojn kaj ciferojn', 13 | 'alpha_numeric_space' => 'La kampo “{field}” povas enhavi nur leterojn, ciferojn kaj spacetojn', 14 | 'alpha_dash' => 'La kampo “{field}” povas enhavi nur leterojn kaj streketojn', 15 | 'alpha_space' => 'La kampo “{field}” povas enhavi nur leterojn kaj spacetojn', 16 | 'numeric' => 'La kampo “{field}” devas esti nombro', 17 | 'integer' => 'La kampo “{field}” devas esti nombro sen komo', 18 | 'boolean' => 'La kampo “{field}” devas esti vera aŭ malvera', 19 | 'float' => 'La kampo “{field}” devas esti nombro kun komo', 20 | 'valid_url' => 'La kampo “{field}” devas esti URL', 21 | 'url_exists' => 'La URL “{field}” ne ekzistas', 22 | 'valid_ip' => 'La kampo “{field}” devas esti valida IP-adreso', 23 | 'valid_ipv4' => 'La kampo “{field}” devas enhavi validan IPv4-adreson', 24 | 'valid_ipv6' => 'La kampo “{field}” devas enhavi validan IPv6-adreson', 25 | 'guidv4' => 'La kampo “{field}” devas enhavi validan GUID', 26 | 'valid_cc' => 'La kampo “{field}” ne estas valida bankokarta numero', 27 | 'valid_name' => 'La kampo “{field}” devas esti plena nomo', 28 | 'contains' => 'La kampo “{field}” povas esti nur unu el la jenaj: {param}', 29 | 'contains_list' => 'La kampo “{field}” ne estas valida opcio', 30 | 'doesnt_contain_list' => 'La kampo “{field}” enhavas neakceptitan valoron', 31 | 'street_address' => 'La kampo “{field}” devas esti valida strata adreso', 32 | 'date' => 'La kampo “{field}” devas esti valida dato', 33 | 'min_numeric' => 'La kampo “{field}” devas esti nombra valoro egala aŭ pli granda ol {param}', 34 | 'max_numeric' => 'La kampo “{field}” devas esti nombra valoro egala aŭ malpli granda ol {param}', 35 | 'min_age' => 'La kampo “{field}” devas enhavi aĝon egalan aŭ pli altan ol {param}', 36 | 'starts' => 'La kampo “{field}” devas komenciĝi per {param}', 37 | 'extension' => 'La dosiero “{field}” povas havi nur unu el la jenaj finaĵoj: {param}', 38 | 'required_file' => 'La dosiero “{field}” estas deviga', 39 | 'equalsfield' => 'La kampo “{field}” ne havas la saman valoron kiel la kampo “{param}”', 40 | 'iban' => 'La kampo “{field}” devas enhavi validan IBAN', 41 | 'phone_number' => 'La kampo “{field}” devas esti valida telefonnumero', 42 | 'regex' => 'La kampo “{field}” devas enhavi valoron kun valida formato', 43 | 'valid_json_string' => 'La kampo “{field}” devas enhavi validan JSON-formatan ĉenon', 44 | 'valid_array_size_greater' => 'La kampoj “{field}” devas esti tabelo kun grandeco egala aŭ pli granda ol {param}', 45 | 'valid_array_size_lesser' => 'La kampoj “{field}” devas esti tabelo kun grandeco egala aŭ malpli granda ol {param}', 46 | 'valid_array_size_equal' => 'La kampoj "{field}" devas esti tabelo kun grandeco egala je {param}', 47 | 48 | // Security validators 49 | 'strong_password' => 'La kampo "{field}" devas enhavi almenaŭ 8 signojn kun majuskloj, minuskloj, numeroj kaj specialaj signoj', 50 | 'jwt_token' => 'La kampo "{field}" devas esti valida JWT-ĵetona formato', 51 | 'hash' => 'La kampo "{field}" devas esti valida {param} haketo', 52 | 'no_sql_injection' => 'La kampo "{field}" enhavas eblajn SQL-enmeto modelojn', 53 | 'no_xss' => 'La kampo "{field}" enhavas eblajn XSS modelojn', 54 | 55 | // Modern web validators 56 | 'uuid' => 'La kampo "{field}" devas esti valida UUID', 57 | 'base64' => 'La kampo "{field}" devas esti validaj base64-kodaj datumoj', 58 | 'hex_color' => 'La kampo "{field}" devas esti valida deksesouma kolorkodo (ekz., #FF0000)', 59 | 'rgb_color' => 'La kampo "{field}" devas esti valida RGB-kolora formato (ekz., rgb(255,0,0))', 60 | 'timezone' => 'La kampo "{field}" devas esti valida tempozono-identigilo', 61 | 'language_code' => 'La kampo "{field}" devas esti valida lingvokodo (ekz., en, en-US)', 62 | 'country_code' => 'La kampo "{field}" devas esti valida landkodo (ekz., US, CA)', 63 | 'currency_code' => 'La kampo "{field}" devas esti valida monkodo (ekz., USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => 'La kampo "{field}" devas esti valida MAC-adresa formato', 67 | 'domain_name' => 'La kampo "{field}" devas esti valida retregionomo', 68 | 'port_number' => 'La kampo "{field}" devas esti valida pordonumero (1-65535)', 69 | 'social_handle' => 'La kampo "{field}" devas esti valida socia reteja tenilo formato', 70 | 71 | // Geographic validators 72 | 'latitude' => 'La kampo "{field}" devas esti valida latitudo (-90 ĝis 90)', 73 | 'longitude' => 'La kampo "{field}" devas esti valida longitudo (-180 ĝis 180)', 74 | 'postal_code' => 'La kampo "{field}" devas esti valida poŝtkodo por {param}', 75 | 'coordinates' => 'La kampo "{field}" devas esti validaj koordinatoj en lat,lng formato', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => 'La kampo "{field}" devas esti estonta dato', 79 | 'past_date' => 'La kampo "{field}" devas esti pasinta dato', 80 | 'business_day' => 'La kampo "{field}" devas esti en negoca tago (lundo-vendredo)', 81 | 'valid_time' => 'La kampo "{field}" devas esti valida tempoformato (HH:MM aŭ HH:MM:SS)', 82 | 'date_range' => 'La kampo "{field}" devas esti dato inter {param[0]} kaj {param[1]}', 83 | 84 | // Mathematical validators 85 | 'even' => 'La kampo "{field}" devas esti para numero', 86 | 'odd' => 'La kampo "{field}" devas esti nepara numero', 87 | 'prime' => 'La kampo "{field}" devas esti primo numero', 88 | 89 | // Content validators 90 | 'word_count' => 'La vorto-kalkulo de la kampo "{field}" ne plenumas la postulojn', 91 | 'camel_case' => 'La kampo "{field}" devas esti en camelCase formato', 92 | 'snake_case' => 'La kampo "{field}" devas esti en snake_case formato', 93 | 'url_slug' => 'La kampo "{field}" devas esti valida URL-slug formato', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/hu.php: -------------------------------------------------------------------------------- 1 | '{field} mező kötelező.', 5 | 'valid_email' => '{field} mezőnek valós email címnek kell lennie.', 6 | 'max_len' => '{field} mező legfeljebb {param} karakter hosszú lehet.', 7 | 'min_len' => '{field} mezőnek legalább {param} karakter hosszúnak kell lennie.', 8 | 'exact_len' => '{field} mezőnek pontosan {param} karakter hosszúnak kell lennie.', 9 | 'between_len' => '{field} mezőnek {param1} és {param2} karakter között kell lennie.', 10 | 'alpha_numeric_dash' => '{field} mező csak betűket, számokat és kötőjeleket tartalmazhat.', 11 | 'alpha' => '{field} mező csak betűket tartalmazhat.', 12 | 'alpha_numeric' => '{field} mező csak betűket és számokat tartalmazhat.', 13 | 'alpha_numeric_space' => '{field} mező csak betűket, számokat és szóközöket tartalmazhat.', 14 | 'alpha_dash' => '{field} mező csak betűket és alulvonásokat tartalmazhat.', 15 | 'alpha_space' => '{field} mező csak betűket és szóközöket tartalmazhat.', 16 | 'numeric' => '{field} mező csak szám lehet.', 17 | 'integer' => '{field} mező csak tizedesjegy nélküli szám (integer) lehet.', 18 | 'boolean' => '{field} mező csak logikai változó (true, false) lehet.', 19 | 'float' => '{field} mező csak tizedesjegyet tartalmazó szám (float) lehet.', 20 | 'valid_url' => '{field} mezőnek URL-nek kell lennie.', 21 | 'url_exists' => '{field} URL nem létezik.', 22 | 'valid_ip' => '{field} mezőnek valós IP címnek kell lennie.', 23 | 'valid_ipv4' => '{field} mezőnek valós IP4 címnek kell lennie.', 24 | 'valid_ipv6' => '{field} mezőnek valós IP6 címnek kell lennie.', 25 | 'guidv4' => '{field} mezőnek valós GUID-nke kell lennie.', 26 | 'valid_cc' => '{field} mezőnek valós bankkártya számnak kell lennie.', 27 | 'valid_name' => '{field} mezőnek valós névnek kell lennie.', 28 | 'contains' => '{field} mezőnek a listában szerepelnie kell: {param}.', 29 | 'contains_list' => '{field} mező nem megfelelő.', 30 | 'doesnt_contain_list' => '{field} mezőnek nem elfogadott értéke van.', 31 | 'street_address' => '{field} mezőnek valós címnek kell lennie.', 32 | 'date' => '{field} valós dátumnak kell lennie.', 33 | 'min_numeric' => '{field} mezőnek számnak kell lennie, ami nagyobb vagy egyenlő, mint {param}.', 34 | 'max_numeric' => '{field} mezőnek számnak kell lennie, ami kisebb vagy egyenlő, mint {param}.', 35 | 'min_age' => '{field} mezőnek valós életkornak kell lennie, ami nagyobb vagy egyenlő, mint {param} év.', 36 | 'starts' => '{field} mezőnek a következő szöveggel kell kezdődnie: {param}.', 37 | 'extension' => '{field} mező csak a következő kitrejesztéseket tartalmazhatja: {param}.', 38 | 'required_file' => '{field} fájl mező kötelező.', 39 | 'equalsfield' => '{field} mező nem egyezik a(z) {param} mezővel.', 40 | 'iban' => '{field} mezőnek valós IBAN számnak kell lennie.', 41 | 'phone_number' => '{field} mezőnek valós telefonszámnak kell lennie.', 42 | 'regex' => '{field} mezőnek megfelelő formátumúnak kell lennie.', 43 | 'valid_json_string' => '{field} mezőnek valid JSON stringnek kell lennie.', 44 | 'valid_array_size_greater' => '{field} tömbnek nagyobb vagy egyenlő számúnak kell lennie, mint {param}.', 45 | 'valid_array_size_lesser' => '{field} tömbnek kisebb vagy egyenlő számúnak kell lennie, mint {param}.', 46 | 'valid_array_size_equal' => '{field} tömbnek {param} számúnak kell lennie.', 47 | 48 | // Security validators 49 | 'strong_password' => '{field} mezőnek legalább 8 karaktert kell tartalmaznia nagybetűkkel, kisbetűkkel, számokkal és speciális karakterekkel', 50 | 'jwt_token' => '{field} mezőnek érvényes JWT token formátumúnak kell lennie', 51 | 'hash' => '{field} mezőnek érvényes {param} hash-nek kell lennie', 52 | 'no_sql_injection' => '{field} mező potenciális SQL injection mintákat tartalmaz', 53 | 'no_xss' => '{field} mező potenciális XSS mintákat tartalmaz', 54 | 55 | // Modern web validators 56 | 'uuid' => '{field} mezőnek érvényes UUID-nek kell lennie', 57 | 'base64' => '{field} mezőnek érvényes base64 kódolt adatnak kell lennie', 58 | 'hex_color' => '{field} mezőnek érvényes hexadecimális színkódnak kell lennie (pl. #FF0000)', 59 | 'rgb_color' => '{field} mezőnek érvényes RGB színformátumnak kell lennie (pl. rgb(255,0,0))', 60 | 'timezone' => '{field} mezőnek érvényes időzóna-azonosítónak kell lennie', 61 | 'language_code' => '{field} mezőnek érvényes nyelvkódnak kell lennie (pl. en, en-US)', 62 | 'country_code' => '{field} mezőnek érvényes országkódnak kell lennie (pl. US, CA)', 63 | 'currency_code' => '{field} mezőnek érvényes valutakódnak kell lennie (pl. USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => '{field} mezőnek érvényes MAC cím formátumúnak kell lennie', 67 | 'domain_name' => '{field} mezőnek érvényes domain névnek kell lennie', 68 | 'port_number' => '{field} mezőnek érvényes port számnak kell lennie (1-65535)', 69 | 'social_handle' => '{field} mezőnek érvényes közösségi média felhasználónév formátumúnak kell lennie', 70 | 71 | // Geographic validators 72 | 'latitude' => '{field} mezőnek érvényes szélességi fokoknak kell lennie (-90 és 90 között)', 73 | 'longitude' => '{field} mezőnek érvényes hosszúsági fokoknak kell lennie (-180 és 180 között)', 74 | 'postal_code' => '{field} mezőnek érvényes irányítószámnak kell lennie {param} számára', 75 | 'coordinates' => '{field} mezőnek érvényes koordinátáknak kell lennie lat,lng formátumban', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => '{field} mezőnek jövőbeli dátumnak kell lennie', 79 | 'past_date' => '{field} mezőnek múltbeli dátumnak kell lennie', 80 | 'business_day' => '{field} mezőnek munkanapra kell esnie (hétfő-péntek)', 81 | 'valid_time' => '{field} mezőnek érvényes idő formátumúnak kell lennie (HH:MM vagy HH:MM:SS)', 82 | 'date_range' => '{field} mezőnek {param[0]} és {param[1]} közötti dátumnak kell lennie', 83 | 84 | // Mathematical validators 85 | 'even' => '{field} mezőnek páros számnak kell lennie', 86 | 'odd' => '{field} mezőnek páratlan számnak kell lennie', 87 | 'prime' => '{field} mezőnek prímszámnak kell lennie', 88 | 89 | // Content validators 90 | 'word_count' => '{field} mező szószáma nem felel meg a követelményeknek', 91 | 'camel_case' => '{field} mezőnek camelCase formátumúnak kell lennie', 92 | 'snake_case' => '{field} mezőnek snake_case formátumúnak kell lennie', 93 | 'url_slug' => '{field} mezőnek érvényes URL slug formátumúnak kell lennie', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/pt-br.php: -------------------------------------------------------------------------------- 1 | 'O preenchimento do campo {field} é obrigatório', 5 | 'valid_email' => 'O campo {field} precisa conter um e-mail válido', 6 | 'max_len' => 'O campo {field} pode conter no máximo {param} caracteres', 7 | 'min_len' => 'O campo {field} precisa conter no mínimo {param} caracteres', 8 | 'exact_len' => 'O campo {field} precisa conter exatamente {param} caracteres', 9 | 'between_len' => 'O campo {field} deve conter entre {param[0]} e {param[1]} caracteres', 10 | 'alpha_numeric_dash' => 'O campo {field} pode conter apenas letras, números e traços', 11 | 'alpha' => 'O campo {field} pode conter apenas letras', 12 | 'alpha_numeric' => 'O campo {field} pode conter apenas letras e números', 13 | 'alpha_numeric_space' => 'O campo {field} pode conter apenas letras, números e espaços', 14 | 'alpha_dash' => 'O campo {field} pode conter apenas letras e traços', 15 | 'alpha_space' => 'O campo {field} pode conter apenas letras e espaços', 16 | 'numeric' => 'O campo {field} precisa ser um número', 17 | 'integer' => 'O campo {field} precisa ser um número inteiro, sem decimal', 18 | 'boolean' => 'O campo {field} deve ser verdadeiro ou falso', 19 | 'float' => 'O campo {field} precisa ser um número com (float) casas decimais', 20 | 'valid_url' => 'O campo {field} precisa ser uma url válida', 21 | 'url_exists' => 'O campo {field} possui uma url que não existe', 22 | 'valid_ip' => 'O campo {field} precisa conter um IP válido', 23 | 'valid_ipv4' => 'O campo {field} precisa conter um endereço de IPv4 válido', 24 | 'valid_ipv6' => 'O campo {field} precisa conter um endereço de IPv6 válido', 25 | 'guidv4' => 'O campo {field} precisa conter um valor válido de GUID', 26 | 'valid_cc' => 'O campo {field} não possui um valor de cartão de crédito válido', 27 | 'valid_name' => 'O campo {field} precisa conter um nome completo', 28 | 'contains' => 'O campo {field} pode conter apenas um dos valores a seguir: {param}', 29 | 'contains_list' => 'O campo {field} foi preenchido com uma opção inválida', 30 | 'doesnt_contain_list' => 'O campo {field} contém um valor que não é aceito', 31 | 'street_address' => 'O campo {field} precisa conter um nome de rua válido', 32 | 'date' => 'O campo {field} precisa ser uma data válida', 33 | 'min_numeric' => 'O campo {field} precisa conter um valor numérico, igual, ou maior que {param}', 34 | 'max_numeric' => 'O campo {field} precisa conter um valor numérico, igual, ou menor que {param}', 35 | 'min_age' => 'O campo {field} precisa conter uma idade maior ou igual a {param}', 36 | 'starts' => 'O campo {field} precisa iniciar com {param}', 37 | 'extension' => 'O campo {field} permite apenas os seguintes formatos: {param}', 38 | 'required_file' => 'O campo {field} é de preenchimento obrigatório', 39 | 'equalsfield' => 'O campo {field} não é igual ao campo {param}', 40 | 'iban' => 'O campo {field} precisa conter um número IBAN válido', 41 | 'phone_number' => 'O campo {field} precisa conter um número de telefone válido', 42 | 'regex' => 'O campo {field} precisa conter um valor com formato válido', 43 | 'valid_json_string' => 'O campo {field} precisa conter um string com formato JSON', 44 | 'valid_array_size_greater' => 'O campo {field} precisa conter um array com tamanho, igual, ou maior que {param}', 45 | 'valid_array_size_lesser' => 'O campo {field} precisa conter um array com tamanho, igual, ou menor que {param}', 46 | 'valid_array_size_equal' => 'O campo {field} precisa conter um array com tamanho igual a {param}', 47 | 48 | // Security validators 49 | 'strong_password' => 'O campo {field} deve conter pelo menos 8 caracteres com maiúsculas, minúsculas, números e caracteres especiais', 50 | 'jwt_token' => 'O campo {field} deve ser um formato de token JWT válido', 51 | 'hash' => 'O campo {field} deve ser um hash {param} válido', 52 | 'no_sql_injection' => 'O campo {field} contém padrões potenciais de SQL injection', 53 | 'no_xss' => 'O campo {field} contém padrões potenciais de XSS', 54 | 55 | // Modern web validators 56 | 'uuid' => 'O campo {field} deve ser um UUID válido', 57 | 'base64' => 'O campo {field} deve ser dados codificados em base64 válidos', 58 | 'hex_color' => 'O campo {field} deve ser um código de cor hexadecimal válido (ex: #FF0000)', 59 | 'rgb_color' => 'O campo {field} deve ser um formato de cor RGB válido (ex: rgb(255,0,0))', 60 | 'timezone' => 'O campo {field} deve ser um identificador de fuso horário válido', 61 | 'language_code' => 'O campo {field} deve ser um código de idioma válido (ex: en, en-US)', 62 | 'country_code' => 'O campo {field} deve ser um código de país válido (ex: US, CA)', 63 | 'currency_code' => 'O campo {field} deve ser um código de moeda válido (ex: USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => 'O campo {field} deve ser um formato de endereço MAC válido', 67 | 'domain_name' => 'O campo {field} deve ser um nome de domínio válido', 68 | 'port_number' => 'O campo {field} deve ser um número de porta válido (1-65535)', 69 | 'social_handle' => 'O campo {field} deve ser um formato de identificador de rede social válido', 70 | 71 | // Geographic validators 72 | 'latitude' => 'O campo {field} deve ser uma latitude válida (-90 a 90)', 73 | 'longitude' => 'O campo {field} deve ser uma longitude válida (-180 a 180)', 74 | 'postal_code' => 'O campo {field} deve ser um código postal válido para {param}', 75 | 'coordinates' => 'O campo {field} deve ser coordenadas válidas no formato lat,lng', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => 'O campo {field} deve ser uma data futura', 79 | 'past_date' => 'O campo {field} deve ser uma data passada', 80 | 'business_day' => 'O campo {field} deve cair em um dia útil (Segunda-feira a Sexta-feira)', 81 | 'valid_time' => 'O campo {field} deve ser um formato de hora válido (HH:MM ou HH:MM:SS)', 82 | 'date_range' => 'O campo {field} deve ser uma data entre {param[0]} e {param[1]}', 83 | 84 | // Mathematical validators 85 | 'even' => 'O campo {field} deve ser um número par', 86 | 'odd' => 'O campo {field} deve ser um número ímpar', 87 | 'prime' => 'O campo {field} deve ser um número primo', 88 | 89 | // Content validators 90 | 'word_count' => 'A contagem de palavras do campo {field} não atende aos requisitos', 91 | 'camel_case' => 'O campo {field} deve estar no formato camelCase', 92 | 'snake_case' => 'O campo {field} deve estar no formato snake_case', 93 | 'url_slug' => 'O campo {field} deve ser um formato de URL slug válido', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/it.php: -------------------------------------------------------------------------------- 1 | 'Il campo {field} è obbligatorio', 5 | 'valid_email' => 'Il campo {field} deve essere un indirizzo email valido', 6 | 'max_len' => 'Il campo {field} deve essere di {param} caratteri o inferiore', 7 | 'min_len' => 'Il campo {field} deve essere di almeno {param} caratteri', 8 | 'between_len' => 'Il campo {field} deve avere una lunghezza tra {param1} e {param2} caratteri', 9 | 'alpha_numeric_dash' => 'Il campo {field} può contenere solo lettere, numeri e trattini', 10 | 'exact_len' => 'Il campo {field} deve essere di {param} caratteri esatti', 11 | 'alpha' => 'Il campo {field} deve contenere solo lettere', 12 | 'alpha_numeric' => 'Il campo {field} può contenere solo lettere e numeri', 13 | 'alpha_numeric_space' => 'Il campo {field} può contenere solo lettere, numeri e spazi', 14 | 'alpha_dash' => 'Il campo {field} può contenere solo lettere e trattini', 15 | 'alpha_space' => 'Il campo {field} può contenere solo lettere e spazi', 16 | 'numeric' => 'Il campo {field} deve essere un numero', 17 | 'integer' => 'Il campo {field} deve essere un numero senza virgola', 18 | 'boolean' => 'Il campo {field} deve essere vero o falso', 19 | 'float' => 'Il campo {field} deve essere un numero con almeno un numero dopo la virgola', 20 | 'valid_url' => 'Il campo {field} deve essere un URL', 21 | 'url_exists' => 'L\'URL {field} non esiste', 22 | 'valid_ip' => 'Il campo {field} deve essere un indirizzo IP valido', 23 | 'valid_ipv4' => 'Il campo {field} deve contenere un indirizzo IPv4 valido', 24 | 'valid_ipv6' => 'Il campo {field} deve contenere un indirizzo IPv6 valido', 25 | 'guidv4' => 'Il campo {field} deve contenere un GUID valido', 26 | 'valid_cc' => 'Il campo {field} non è un numero di carta di credito valido', 27 | 'valid_name' => 'Il campo {field} deve contenere un nome completo', 28 | 'contains' => 'Il campo {field} può contenere solo uno dei seguenti valori: {param}', 29 | 'contains_list' => 'Il campo {field} non è un\'opzione valida', 30 | 'doesnt_contain_list' => 'Il campo {field} contiene un valore che non è accettato', 31 | 'street_address' => 'Il campo {field} deve contenere un indirizzo valido', 32 | 'date' => 'Il campo {field} deve contenere una data valida', 33 | 'min_numeric' => 'Il campo {field} deve contenere un valore numerico maggiore o uguale a {param}', 34 | 'max_numeric' => 'Il campo {field} deve contenere un valore numerico minore o uguale a {param}', 35 | 'min_age' => 'Il campo {field} deve contenere un\'età maggiore o uguale a {param}', 36 | 'starts' => 'Il campo {field} deve cominciare con {param}', 37 | 'extension' => 'Il campo {field} può avere solo le seguenti estensioni: {param}', 38 | 'required_file' => 'Il campo {field} è obbligatorio', 39 | 'equalsfield' => 'Il campo {field} non è uguale al campo {param}', 40 | 'iban' => 'Il campo {field} non contiene un IBAN valido', 41 | 'phone_number' => 'Il campo {field} deve contenere un numero di telefono valido', 42 | 'regex' => 'Il campo {field} deve contenere un valore in un formato valido', 43 | 'valid_json_string' => 'Il campo {field} deve contenere una stringa in formato JSON corretto', 44 | 'valid_array_size_greater' => 'Il campo {field} deve essere un array di dimensioni maggiori o uguali a {param}', 45 | 'valid_array_size_lesser' => 'Il campo {field} deve essere un array di dimensioni minori o uguali a {param}', 46 | 'valid_array_size_equal' => 'Il campo {field} deve essere un array di dimensioni uguali a {param}', 47 | 48 | // Security validators 49 | 'strong_password' => 'Il campo {field} deve contenere almeno 8 caratteri con maiuscole, minuscole, numeri e caratteri speciali', 50 | 'jwt_token' => 'Il campo {field} deve essere un formato token JWT valido', 51 | 'hash' => 'Il campo {field} deve essere un hash {param} valido', 52 | 'no_sql_injection' => 'Il campo {field} contiene potenziali pattern di SQL injection', 53 | 'no_xss' => 'Il campo {field} contiene potenziali pattern XSS', 54 | 55 | // Modern web validators 56 | 'uuid' => 'Il campo {field} deve essere un UUID valido', 57 | 'base64' => 'Il campo {field} deve essere dati codificati base64 validi', 58 | 'hex_color' => 'Il campo {field} deve essere un codice colore esadecimale valido (es. #FF0000)', 59 | 'rgb_color' => 'Il campo {field} deve essere un formato colore RGB valido (es. rgb(255,0,0))', 60 | 'timezone' => 'Il campo {field} deve essere un identificatore di fuso orario valido', 61 | 'language_code' => 'Il campo {field} deve essere un codice lingua valido (es. it, it-IT)', 62 | 'country_code' => 'Il campo {field} deve essere un codice paese valido (es. IT, US)', 63 | 'currency_code' => 'Il campo {field} deve essere un codice valuta valido (es. USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => 'Il campo {field} deve essere un formato indirizzo MAC valido', 67 | 'domain_name' => 'Il campo {field} deve essere un nome dominio valido', 68 | 'port_number' => 'Il campo {field} deve essere un numero porta valido (1-65535)', 69 | 'social_handle' => 'Il campo {field} deve essere un formato handle social media valido', 70 | 71 | // Geographic validators 72 | 'latitude' => 'Il campo {field} deve essere una latitudine valida (-90 a 90)', 73 | 'longitude' => 'Il campo {field} deve essere una longitudine valida (-180 a 180)', 74 | 'postal_code' => 'Il campo {field} deve essere un codice postale valido per {param}', 75 | 'coordinates' => 'Il campo {field} deve essere coordinate valide in formato lat,lng', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => 'Il campo {field} deve essere una data futura', 79 | 'past_date' => 'Il campo {field} deve essere una data passata', 80 | 'business_day' => 'Il campo {field} deve cadere in un giorno lavorativo (lunedì-venerdì)', 81 | 'valid_time' => 'Il campo {field} deve essere un formato ora valido (HH:MM o HH:MM:SS)', 82 | 'date_range' => 'Il campo {field} deve essere una data tra {param[0]} e {param[1]}', 83 | 84 | // Mathematical validators 85 | 'even' => 'Il campo {field} deve essere un numero pari', 86 | 'odd' => 'Il campo {field} deve essere un numero dispari', 87 | 'prime' => 'Il campo {field} deve essere un numero primo', 88 | 89 | // Content validators 90 | 'word_count' => 'Il campo {field} non soddisfa i requisiti di conteggio parole', 91 | 'camel_case' => 'Il campo {field} deve essere in formato camelCase', 92 | 'snake_case' => 'Il campo {field} deve essere in formato snake_case', 93 | 'url_slug' => 'Il campo {field} deve essere un formato slug URL valido', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/id.php: -------------------------------------------------------------------------------- 1 | 'Bagian {field} harus diisi', 5 | 'valid_email' => 'Bagian {field} harus berisi alamat email yang benar', 6 | 'max_len' => 'Bagian {field} harus memiliki {param} karakter atau kurang', 7 | 'min_len' => 'Bagian {field} memiliki sedikitnya {param} karakter', 8 | 'exact_len' => 'Bagian {field} harus memiliki tepat {param} karakter', 9 | 'between_len' => 'Bagian {field} harus memiliki panjang antara {param1} dan {param2} karakter', 10 | 'alpha_numeric_dash' => 'Bagian {field} hanya boleh berisi huruf, angka dan tanda hubung (-)', 11 | 'alpha' => 'Bagian {field} hanya boleh berisi huruf', 12 | 'alpha_numeric' => 'Bagian {field} hanya boleh berisi huruf dan angkat', 13 | 'alpha_numeric_space' => 'Bagian {field} hanya boleh berisi huruf, angkat dan spasi', 14 | 'alpha_dash' => 'Bagian {field} hanya boleh berisi huruf dan \'-\'', 15 | 'alpha_space' => 'Bagian {field} hanya boleh berisi huruf dan spasi', 16 | 'numeric' => 'Bagian {field} hanya boleh berisi angka', 17 | 'integer' => 'Bagian {field} hanya boleh berisi angka tanpa memiliki desimal', 18 | 'boolean' => 'Bagian {field} hanya boleh berisi true atau false', 19 | 'float' => 'Bagian {field} hanya boleh berisi angka yang memiliki desimal (float)', 20 | 'valid_url' => 'Bagian {field} harus berupa URL', 21 | 'url_exists' => 'Bagian {field} tidak memiliki URL didalamnya', 22 | 'valid_ip' => 'Bagian {field} harus berupa IP address yang benar', 23 | 'valid_ipv4' => 'Bagian {field} harus berupa IPv4 address yang benar', 24 | 'valid_ipv6' => 'Bagian {field} harus berupa IPv6 address yang benar', 25 | 'guidv4' => 'Bagian {field} harus berupa GUID yang benar', 26 | 'valid_cc' => 'Bagian {field} bukan merupakan nomor kartu kredit yang benar', 27 | 'valid_name' => 'Bagian {field} harus berupa nama lengkap', 28 | 'contains' => 'Bagian {field} hanya boleh berisi salah satu dari pilihan berikut: {param}', 29 | 'contains_list' => 'Bagian {field} bukan merupakan opsi yang benar', 30 | 'doesnt_contain_list' => 'Bagian {field} memiliki nilai yang tidak diperbolehkan', 31 | 'street_address' => 'Bagian {field} harus berupa alamat lengkap yang benar', 32 | 'date' => 'Bagian {field} harus memiliki format tanggal yang benar', 33 | 'min_numeric' => 'Bagian {field} hanya boleh berisi angka, yang memiliki karakter lebih besar atau sama dengan {param}', 34 | 'max_numeric' => 'Bagian {field} hanya boleh berisi angka, yang memiliki karakter lebih kecil atau sama dengan {param}', 35 | 'min_age' => 'Bagian {field}hanya boleh berisi \'umur\' yang lebih besar atau sama dengan {param}', 36 | 'starts' => 'Bagian {field} harus dimulai oleh {param}', 37 | 'extension' => 'Bagian {field} hanya boleh memiliki salah satu daru ekstensi: {param}', 38 | 'required_file' => 'Bagian {field} harus diisi', 39 | 'iban' => 'Bagian {field} harus berupa IBAN yang benar', 40 | 'equalsfield' => 'Bagian {field} harus sama dengan Bagian {param}', 41 | 'phone_number' => 'Bagian {field} harus berupa Nomor Telepon yang benar', 42 | 'regex' => 'Bagian {field} harus memiliki nilai dengan format yang benar', 43 | 'valid_json_string' => 'Bagian {field} harus memiliki format JSON yang benar', 44 | 'valid_array_size_greater' => 'Bagian {field} harus berupa array dengan ukuran lebih besar atau sama dengan {param}', 45 | 'valid_array_size_lesser' => 'Bagian {field} harus berupa array dengan ukuran lebih kecil atau sama dengan {param}', 46 | 'valid_array_size_equal' => 'Bagian {field} harus berupa array dengan ukuran {param}', 47 | 48 | // Security validators 49 | 'strong_password' => 'Bagian {field} harus berisi minimal 8 karakter dengan huruf besar, kecil, angka dan karakter khusus', 50 | 'jwt_token' => 'Bagian {field} harus berupa format JWT token yang valid', 51 | 'hash' => 'Bagian {field} harus berupa hash {param} yang valid', 52 | 'no_sql_injection' => 'Bagian {field} mengandung pola SQL injection yang berpotensi berbahaya', 53 | 'no_xss' => 'Bagian {field} mengandung pola XSS yang berpotensi berbahaya', 54 | 55 | // Modern web validators 56 | 'uuid' => 'Bagian {field} harus berupa UUID yang valid', 57 | 'base64' => 'Bagian {field} harus berupa data yang dikodekan base64 dengan valid', 58 | 'hex_color' => 'Bagian {field} harus berupa kode warna hexadecimal yang valid (contoh: #FF0000)', 59 | 'rgb_color' => 'Bagian {field} harus berupa format warna RGB yang valid (contoh: rgb(255,0,0))', 60 | 'timezone' => 'Bagian {field} harus berupa pengenal zona waktu yang valid', 61 | 'language_code' => 'Bagian {field} harus berupa kode bahasa yang valid (contoh: en, en-US)', 62 | 'country_code' => 'Bagian {field} harus berupa kode negara yang valid (contoh: US, CA)', 63 | 'currency_code' => 'Bagian {field} harus berupa kode mata uang yang valid (contoh: USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => 'Bagian {field} harus berupa format alamat MAC yang valid', 67 | 'domain_name' => 'Bagian {field} harus berupa nama domain yang valid', 68 | 'port_number' => 'Bagian {field} harus berupa nomor port yang valid (1-65535)', 69 | 'social_handle' => 'Bagian {field} harus berupa format handle media sosial yang valid', 70 | 71 | // Geographic validators 72 | 'latitude' => 'Bagian {field} harus berupa lintang yang valid (-90 sampai 90)', 73 | 'longitude' => 'Bagian {field} harus berupa bujur yang valid (-180 sampai 180)', 74 | 'postal_code' => 'Bagian {field} harus berupa kode pos yang valid untuk {param}', 75 | 'coordinates' => 'Bagian {field} harus berupa koordinat yang valid dalam format lat,lng', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => 'Bagian {field} harus berupa tanggal masa depan', 79 | 'past_date' => 'Bagian {field} harus berupa tanggal masa lalu', 80 | 'business_day' => 'Bagian {field} harus jatuh pada hari kerja (Senin-Jumat)', 81 | 'valid_time' => 'Bagian {field} harus berupa format waktu yang valid (HH:MM atau HH:MM:SS)', 82 | 'date_range' => 'Bagian {field} harus berupa tanggal antara {param[0]} dan {param[1]}', 83 | 84 | // Mathematical validators 85 | 'even' => 'Bagian {field} harus berupa bilangan genap', 86 | 'odd' => 'Bagian {field} harus berupa bilangan ganjil', 87 | 'prime' => 'Bagian {field} harus berupa bilangan prima', 88 | 89 | // Content validators 90 | 'word_count' => 'Jumlah kata pada bagian {field} tidak memenuhi persyaratan', 91 | 'camel_case' => 'Bagian {field} harus dalam format camelCase', 92 | 'snake_case' => 'Bagian {field} harus dalam format snake_case', 93 | 'url_slug' => 'Bagian {field} harus berupa format URL slug yang valid', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/es.php: -------------------------------------------------------------------------------- 1 | 'El campo {field} es requerido', 5 | 'valid_email' => 'El campo {field} debe ser una dirección de correo electrónico válida', 6 | 'max_len' => 'El campo {field} no puede tener más de {param} caracteres de longitud', 7 | 'min_len' => 'El campo {field} debe tener al menos {param} caracteres de longitud', 8 | 'exact_len' => 'El campo {field} debe tener {param} caracteres de longitud', 9 | 'between_len' => 'El campo {field} debe tener entre {param} y {param2} caracteres', 10 | 'alpha_numeric_dash' => 'El campo {field} solo puede contener letras, números y guiones', 11 | 'alpha' => 'El campo {field} sólo puede contener letras', 12 | 'alpha_numeric' => 'El campo {field} sólo puede contener letras y números', 13 | 'alpha_numeric_space' => 'El campo {field} solo puede contener letras, números y espacios', 14 | 'alpha_dash' => 'El campo {field} sólo puede contener letras y guiones', 15 | 'alpha_space' => 'El campo {field} sólo puede contener letras y espacios', 16 | 'numeric' => 'El campo {field} sólo puede contener caracteres numéricos', 17 | 'integer' => 'El campo {field} sólo puede contener un valor numérico', 18 | 'boolean' => 'El campo {field} debe ser verdadero o falso', 19 | 'float' => 'El campo {field} sólo puede contener un valor flotante', 20 | 'valid_url' => 'El campo {field} debe ser una dirección URL válida', 21 | 'url_exists' => 'El campo {field} debe ser una dirección URL existente', 22 | 'valid_ip' => 'El campo {field} debe contener una dirección IP válida', 23 | 'valid_ipv4' => 'El campo {field} debe contener una dirección IPv4 válida', 24 | 'valid_ipv6' => 'El campo {field} debe contener una dirección IPv6 válida', 25 | 'guidv4' => 'El campo {field} debe contener un GUID válido', 26 | 'valid_cc' => 'El campo {field} debe contener un número de tarjeta de crédito válido', 27 | 'valid_name' => 'El campo {field} debe contener un nombre humano válido', 28 | 'contains' => 'El campo {field} debe contener uno de los siguientes valores: {param}', 29 | 'contains_list' => 'El campo {field} debe contener un valor de su lista desplegable', 30 | 'doesnt_contain_list' => 'El campo {field} contiene un valor que no es aceptado', 31 | 'street_address' => 'El campo {field} debe contener una dirección válida', 32 | 'date' => 'El campo {field} debe ser una fecha válida', 33 | 'min_numeric' => 'El campo {field} debe ser un valor numérico mayor o igual que {param}', 34 | 'max_numeric' => 'El campo {field} debe ser un valor numérico menor o igual que {param}', 35 | 'min_age' => 'El campo {field} debe tener una edad mayor o igual que {param}', 36 | 'starts' => 'El campo {field} debe comenzar con {param}', 37 | 'extension' => 'El campo {field} puede contener una de las siguientes extensiones {param}', 38 | 'required_file' => 'El campo {field} es requerido', 39 | 'equalsfield' => 'El campo {field} no equivale al campo {param}', 40 | 'iban' => 'El campo {field} debe contener un IBAN válido', 41 | 'phone_number' => 'El campo {field} debe contener un número de teléfono válido', 42 | 'regex' => 'El campo {field} debe contener un valor válido', 43 | 'valid_json_string' => 'El campo {field} debe contener una cadena con el formato JSON válido', 44 | 'valid_array_size_greater' => 'El campo {field} debe ser un arreglo con el tamaño, igual o mayor que {param}', 45 | 'valid_array_size_lesser' => 'El campo {field} debe ser un arreglo con el tamaño, igual o menor que {param}', 46 | 'valid_array_size_equal' => 'El campo {field} debe ser un arreglo con el tamaño igual a {param}', 47 | 48 | // Security validators 49 | 'strong_password' => 'El campo {field} debe contener al menos 8 caracteres con mayúsculas, minúsculas, números y caracteres especiales', 50 | 'jwt_token' => 'El campo {field} debe ser un formato de token JWT válido', 51 | 'hash' => 'El campo {field} debe ser un hash {param} válido', 52 | 'no_sql_injection' => 'El campo {field} contiene patrones potenciales de inyección SQL', 53 | 'no_xss' => 'El campo {field} contiene patrones potenciales de XSS', 54 | 55 | // Modern web validators 56 | 'uuid' => 'El campo {field} debe ser un UUID válido', 57 | 'base64' => 'El campo {field} debe ser datos codificados en base64 válidos', 58 | 'hex_color' => 'El campo {field} debe ser un código de color hexadecimal válido (ej. #FF0000)', 59 | 'rgb_color' => 'El campo {field} debe ser un formato de color RGB válido (ej. rgb(255,0,0))', 60 | 'timezone' => 'El campo {field} debe ser un identificador de zona horaria válido', 61 | 'language_code' => 'El campo {field} debe ser un código de idioma válido (ej. es, es-ES)', 62 | 'country_code' => 'El campo {field} debe ser un código de país válido (ej. ES, MX)', 63 | 'currency_code' => 'El campo {field} debe ser un código de moneda válido (ej. USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => 'El campo {field} debe ser un formato de dirección MAC válido', 67 | 'domain_name' => 'El campo {field} debe ser un nombre de dominio válido', 68 | 'port_number' => 'El campo {field} debe ser un número de puerto válido (1-65535)', 69 | 'social_handle' => 'El campo {field} debe ser un formato de usuario de redes sociales válido', 70 | 71 | // Geographic validators 72 | 'latitude' => 'El campo {field} debe ser una latitud válida (-90 a 90)', 73 | 'longitude' => 'El campo {field} debe ser una longitud válida (-180 a 180)', 74 | 'postal_code' => 'El campo {field} debe ser un código postal válido para {param}', 75 | 'coordinates' => 'El campo {field} debe ser coordenadas válidas en formato lat,lng', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => 'El campo {field} debe ser una fecha futura', 79 | 'past_date' => 'El campo {field} debe ser una fecha pasada', 80 | 'business_day' => 'El campo {field} debe caer en un día hábil (lunes a viernes)', 81 | 'valid_time' => 'El campo {field} debe ser un formato de tiempo válido (HH:MM o HH:MM:SS)', 82 | 'date_range' => 'El campo {field} debe ser una fecha entre {param[0]} y {param[1]}', 83 | 84 | // Mathematical validators 85 | 'even' => 'El campo {field} debe ser un número par', 86 | 'odd' => 'El campo {field} debe ser un número impar', 87 | 'prime' => 'El campo {field} debe ser un número primo', 88 | 89 | // Content validators 90 | 'word_count' => 'El campo {field} no cumple con los requisitos de conteo de palabras', 91 | 'camel_case' => 'El campo {field} debe estar en formato camelCase', 92 | 'snake_case' => 'El campo {field} debe estar en formato snake_case', 93 | 'url_slug' => 'El campo {field} debe ser un formato de slug URL válido', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/fr.php: -------------------------------------------------------------------------------- 1 | 'Le champ {field} est obligatoire', 5 | 'valid_email' => 'Le champ {field} doit être un email valide', 6 | 'max_len' => 'Le champ {field} doit avoir un nombre de caractère de {param} ou moins', 7 | 'min_len' => 'Le champ {field} doit avoir un nombre de caractère de {param} ou plus', 8 | 'between_len' => 'Le champ {field} doit avoir un nombre de caractères entre {param} et {param2}', 9 | 'alpha_numeric_dash' => 'Le champ {field} doit seulement contenir des caractères alpha (a-z), numériques (0-9) et tirets', 10 | 'alpha_numeric_space' => 'Le champ {field} doit seulement contenir des caractères alpha (a-z), numériques (0-9) et espaces', 11 | 'exact_len' => 'Le champ {field} doit avoir un nombre de caractère de {param}', 12 | 'alpha' => 'Le champ {field} doit seulement contenir des caractères alpha (a-z)', 13 | 'alpha_numeric' => 'Le champ {field} doit seulement contenir des caractères alpha-numérique (a-z)', 14 | 'alpha_dash' => 'Le champ {field} doit seulement contenir des caractères alpha (a-z) et tiret', 15 | 'alpha_space' => 'Le champ {field} doit seulement contenir des caractères alpha (a-z) et espace', 16 | 'numeric' => 'Le champ {field} doit seulement contenir des caractères numériques', 17 | 'integer' => 'Le champ {field} doit être une valeur numérique', 18 | 'boolean' => 'Le champ {field} doit être vrai ou faux', 19 | 'float' => 'Le champ {field} doit être une valeur décimale', 20 | 'valid_url' => 'Le champ {field} doit être une URL valide', 21 | 'url_exists' => 'L'URL {field} n'existe pas', 22 | 'valid_ip' => 'Le champ {field} doit contenir une adresse IP valide', 23 | 'valid_ipv4' => 'Le champ {field} doit contenir une adresse IPv4 valide', 24 | 'valid_ipv6' => 'Le champ {field} doit contenir une adresse IPv6 valide', 25 | 'guidv4' => 'Le champ {field} doit contenir un GUID valide', 26 | 'valid_cc' => 'Le champ {field} doit contenir un numéro de carte bancaire valide', 27 | 'valid_name' => 'Le champ {field} doit contenir un nom humain valide', 28 | 'contains' => 'Le champ {field} doit contenir une des ces valeurs: {param}', 29 | 'contains_list' => 'Le champ {field} doit contenir une valeur du menu déroulant', 30 | 'doesnt_contain_list' => 'Le champ {field} contient une valeur qui n'est pas acceptable', 31 | 'street_address' => 'Le champ {field} doit être une adresse postale valide', 32 | 'date' => 'Le champ {field} doit être une date valide', 33 | 'min_numeric' => 'Le champ {field} doit être une valeur numérique égale ou supérieur à {param}', 34 | 'max_numeric' => 'Le champ {field} doit être une valeur numérique égale ou inférieur à {param}', 35 | 'min_age' => 'Le champ {field} doit être un âge égal ou supérieur à {param}', 36 | 'starts' => 'Le champ {field} doit commencer par {param}', 37 | 'extension' => 'Le champ {field} doit avoir les extensions suivantes {param}', 38 | 'required_file' => 'Le champ {field} est obligatoire', 39 | 'equalsfield' => 'Le champ {field} n'est pas égale au champ {param}', 40 | 'iban' => 'Le champ {field} doit contenir un IBAN valide', 41 | 'phone_number' => 'Le champ {field} doit contenir un numéro de téléphone valide', 42 | 'regex' => 'Le champ {field} doit contenir une valeur valide', 43 | 'valid_array_size_greater' => 'Le champ {field} doit être un tableau dont la taille est supérieure ou égale à {param}', 44 | 'valid_array_size_lesser' => 'Le champ {field} doit être un tableau dont la taille est inférieure ou égale à {param}', 45 | 'valid_array_size_equal' => 'Le champ {field} doit être un tableau dont la taille est égale à {param}', 46 | 'valid_json_string' => 'Le champ {field} doit avoir un format JSON', 47 | 48 | // Security validators 49 | 'strong_password' => 'Le champ {field} doit contenir au moins 8 caractères avec majuscules, minuscules, chiffres et caractères spéciaux', 50 | 'jwt_token' => 'Le champ {field} doit être un format de jeton JWT valide', 51 | 'hash' => 'Le champ {field} doit être un hash {param} valide', 52 | 'no_sql_injection' => 'Le champ {field} contient des motifs potentiels d\'injection SQL', 53 | 'no_xss' => 'Le champ {field} contient des motifs potentiels de XSS', 54 | 55 | // Modern web validators 56 | 'uuid' => 'Le champ {field} doit être un UUID valide', 57 | 'base64' => 'Le champ {field} doit être des données encodées en base64 valides', 58 | 'hex_color' => 'Le champ {field} doit être un code couleur hexadécimal valide (ex. #FF0000)', 59 | 'rgb_color' => 'Le champ {field} doit être un format de couleur RGB valide (ex. rgb(255,0,0))', 60 | 'timezone' => 'Le champ {field} doit être un identifiant de fuseau horaire valide', 61 | 'language_code' => 'Le champ {field} doit être un code de langue valide (ex. fr, fr-FR)', 62 | 'country_code' => 'Le champ {field} doit être un code de pays valide (ex. FR, CA)', 63 | 'currency_code' => 'Le champ {field} doit être un code de devise valide (ex. USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => 'Le champ {field} doit être un format d\'adresse MAC valide', 67 | 'domain_name' => 'Le champ {field} doit être un nom de domaine valide', 68 | 'port_number' => 'Le champ {field} doit être un numéro de port valide (1-65535)', 69 | 'social_handle' => 'Le champ {field} doit être un format d\'identifiant de médias sociaux valide', 70 | 71 | // Geographic validators 72 | 'latitude' => 'Le champ {field} doit être une latitude valide (-90 à 90)', 73 | 'longitude' => 'Le champ {field} doit être une longitude valide (-180 à 180)', 74 | 'postal_code' => 'Le champ {field} doit être un code postal valide pour {param}', 75 | 'coordinates' => 'Le champ {field} doit être des coordonnées valides au format lat,lng', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => 'Le champ {field} doit être une date future', 79 | 'past_date' => 'Le champ {field} doit être une date passée', 80 | 'business_day' => 'Le champ {field} doit tomber sur un jour ouvrable (lundi-vendredi)', 81 | 'valid_time' => 'Le champ {field} doit être un format d\'heure valide (HH:MM ou HH:MM:SS)', 82 | 'date_range' => 'Le champ {field} doit être une date entre {param[0]} et {param[1]}', 83 | 84 | // Mathematical validators 85 | 'even' => 'Le champ {field} doit être un nombre pair', 86 | 'odd' => 'Le champ {field} doit être un nombre impair', 87 | 'prime' => 'Le champ {field} doit être un nombre premier', 88 | 89 | // Content validators 90 | 'word_count' => 'Le champ {field} ne respecte pas les exigences de comptage de mots', 91 | 'camel_case' => 'Le champ {field} doit être au format camelCase', 92 | 'snake_case' => 'Le champ {field} doit être au format snake_case', 93 | 'url_slug' => 'Le champ {field} doit être un format de slug d\'URL valide', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/el.php: -------------------------------------------------------------------------------- 1 | 'Το πεδίο {field} είναι απαραίτητο', 5 | 'valid_email' => 'Το πεδίο {field} πρέπει να είναι μια έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομείου', 6 | 'max_len' => 'Το πεδίο {field} πρέπει να είναι {param} χαρακτήρες ή λιγότεροι', 7 | 'min_len' => 'Το πεδίο {field} πρέπει να είναι τουλάχιστον {param} χαρακτήρες', 8 | 'exact_len' => 'Το πεδίο {field} πρέπει να είναι ακριβώς {param} χαρακτήρες', 9 | 'between_len' => 'Το πεδίο {field} πρέπει να είναι μεταξύ {param[0]} και {param[1]} χαρακτήρων', 10 | 'alpha' => 'Το πεδίο {field} μπορεί να περιέχει μόνο γράμματα', 11 | 'alpha_numeric' => 'Το πεδίο {field} μπορεί να περιέχει μόνο γράμματα και αριθμούς', 12 | 'alpha_numeric_space' => 'Το πεδίο {field} μπορεί να περιέχει μόνο γράμματα, αριθμούς και κενά', 13 | 'alpha_numeric_dash' => 'Το πεδίο {field} μπορεί να περιέχει μόνο γράμματα, αριθμούς, παύλες και κάτω πάυλες', 14 | 'alpha_dash' => 'Το πεδίο {field} μπορεί να περιέχει μόνο γράμματα, παύλες και κάτω πάυλες', 15 | 'alpha_space' => 'Το πεδίο {field} μπορεί να περιέχει μόνο γράμματα και κενά', 16 | 'numeric' => 'Το πεδίο {field} πρέπει να είναι αριθμός', 17 | 'integer' => 'Το πεδίο {field} πρέπει να είναι ακέραιος αριθμός', 18 | 'boolean' => 'Το πεδίο {field} πρέπει να είναι είτε αληθές είτε ψευδές', 19 | 'float' => 'Το πεδίο {field} πρέπει να είναι δεκαδικός αριθμός (float)', 20 | 'valid_url' => 'Το πεδίο {field} πρέπει να είναι έγκυρο URL', 21 | 'url_exists' => 'Η διεύθυνση URL του πεδίου {field} δεν υπάρχει', 22 | 'valid_ip' => 'Το πεδίο {field} πρέπει να περιέχει έγκυρη διεύθυνση IP', 23 | 'valid_ipv4' => 'Το πεδίο {field} πρέπει να περιέχει έγκυρη διεύθυνση IPv4', 24 | 'valid_ipv6' => 'Το πεδίο {field} πρέπει να περιέχει έγκυρη διεύθυνση IPv6', 25 | 'guidv4' => 'Το πεδίο {field} πρέπει να περιέχει έγκυρο GUID', 26 | 'valid_cc' => 'Το {field} δεν είναι έγκυρος αριθμός πιστωτικής κάρτας', 27 | 'valid_name' => 'Το {field} πρέπει να είναι πλήρες ονοματεπώνυμο', 28 | 'contains' => 'Το {field} μπορεί να είναι μόνο ένα από τα ακόλουθα: {param}', 29 | 'contains_list' => 'Μη εγκυρη επιλογή για το {field}', 30 | 'doesnt_contain_list' => 'Το πεδίο {field} περιέχει τιμή που δεν είναι αποδεκτή', 31 | 'street_address' => 'Το πεδίο {field} πρέπει να είναι μια έγκυρη οδός', 32 | 'date' => 'Το {field} πρέπει να είναι μια έγκυρη ημερομηνία', 33 | 'min_numeric' => 'Το πεδίο {field} πρέπει να είναι αριθμητική τιμή, ίση ή μεγαλύτερη από {param}', 34 | 'max_numeric' => 'Το πεδίο {field} πρέπει να είναι αριθμητική τιμή, ίση ή μικρότερη από {param}', 35 | 'min_age' => 'Το πεδίο {field} πρέπει να είναι ηλικία μεγαλύτερη ή ίση με {param}', 36 | 'starts' => 'Το πεδίο {πεδίο} πρέπει να αρχίζει με {param}', 37 | 'extension' => 'Το πεδίο {field} μπορεί να έχει μόνο μία από τις ακόλουθες επεκτάσεις: {param}', 38 | 'required_file' => 'Το πεδίο {field} είναι απαραίτητο', 39 | 'equalsfield' => 'Το πεδίο {field} δεν είναι ίσο με το πεδίο {param}', 40 | 'iban' => 'Το πεδίο {field} πρέπει να περιέχει έγκυρο IBAN', 41 | 'phone_number' => 'Το πεδίο {field} πρέπει να περιέχει έγκυρο αριθμό τηλεφώνου', 42 | 'regex' => 'Το πεδίο {field} πρέπει να περιέχει τιμή με έγκυρη μορφή', 43 | 'valid_json_string' => 'Το πεδίο {field} πρέπει να περιέχει έγκυρο JSON', 44 | 'valid_array_size_greater' => 'Το πεδίο {field} πρέπει να είναι πίνακας με μέγεθος, ίσο ή μεγαλύτερο από {param}', 45 | 'valid_array_size_lesser' => 'Το πεδίο {field} πρέπει να είναι πίνακας με μέγεθος, ίσο ή μικρότερο από {param}', 46 | 'valid_array_size_equal' => 'Το πεδίο {field} πρέπει να είναι πίνακας με μέγεθος {param}', 47 | 48 | // Security validators 49 | 'strong_password' => 'Το πεδίο {field} πρέπει να περιέχει τουλάχιστον 8 χαρακτήρες με κεφαλαίο, πεζό, αριθμό και ειδικό χαρακτήρα', 50 | 'jwt_token' => 'Το πεδίο {field} πρέπει να είναι έγκυρη μορφή JWT token', 51 | 'hash' => 'Το πεδίο {field} πρέπει να είναι έγκυρο {param} hash', 52 | 'no_sql_injection' => 'Το πεδίο {field} περιέχει πιθανά μοτίβα SQL injection', 53 | 'no_xss' => 'Το πεδίο {field} περιέχει πιθανά μοτίβα XSS', 54 | 55 | // Modern web validators 56 | 'uuid' => 'Το πεδίο {field} πρέπει να είναι έγκυρο UUID', 57 | 'base64' => 'Το πεδίο {field} πρέπει να είναι έγκυρα κωδικοποιημένα base64 δεδομένα', 58 | 'hex_color' => 'Το πεδίο {field} πρέπει να είναι έγκυρος δεκαεξαδικός κωδικός χρώματος (π.χ., #FF0000)', 59 | 'rgb_color' => 'Το πεδίο {field} πρέπει να είναι έγκυρη μορφή RGB χρώματος (π.χ., rgb(255,0,0))', 60 | 'timezone' => 'Το πεδίο {field} πρέπει να είναι έγκυρο αναγνωριστικό ζώνης ώρας', 61 | 'language_code' => 'Το πεδίο {field} πρέπει να είναι έγκυρος κωδικός γλώσσας (π.χ., en, en-US)', 62 | 'country_code' => 'Το πεδίο {field} πρέπει να είναι έγκυρος κωδικός χώρας (π.χ., US, CA)', 63 | 'currency_code' => 'Το πεδίο {field} πρέπει να είναι έγκυρος κωδικός νομίσματος (π.χ., USD, EUR)', 64 | 65 | // Network validators 66 | 'mac_address' => 'Το πεδίο {field} πρέπει να είναι έγκυρη μορφή MAC διεύθυνσης', 67 | 'domain_name' => 'Το πεδίο {field} πρέπει να είναι έγκυρο όνομα τομέα', 68 | 'port_number' => 'Το πεδίο {field} πρέπει να είναι έγκυρος αριθμός θύρας (1-65535)', 69 | 'social_handle' => 'Το πεδίο {field} πρέπει να είναι έγκυρη μορφή λαβής μέσων κοινωνικής δικτύωσης', 70 | 71 | // Geographic validators 72 | 'latitude' => 'Το πεδίο {field} πρέπει να είναι έγκυρο γεωγραφικό πλάτος (-90 έως 90)', 73 | 'longitude' => 'Το πεδίο {field} πρέπει να είναι έγκυρο γεωγραφικό μήκος (-180 έως 180)', 74 | 'postal_code' => 'Το πεδίο {field} πρέπει να είναι έγκυρος ταχυδρομικός κώδικας για {param}', 75 | 'coordinates' => 'Το πεδίο {field} πρέπει να είναι έγκυρες συντεταγμένες σε μορφή lat,lng', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => 'Το πεδίο {field} πρέπει να είναι μελλοντική ημερομηνία', 79 | 'past_date' => 'Το πεδίο {field} πρέπει να είναι παρελθούσα ημερομηνία', 80 | 'business_day' => 'Το πεδίο {field} πρέπει να πέφτει σε εργάσιμη ημέρα (Δευτέρα-Παρασκευή)', 81 | 'valid_time' => 'Το πεδίο {field} πρέπει να είναι έγκυρη μορφή ώρας (HH:MM ή HH:MM:SS)', 82 | 'date_range' => 'Το πεδίο {field} πρέπει να είναι ημερομηνία μεταξύ {param[0]} και {param[1]}', 83 | 84 | // Mathematical validators 85 | 'even' => 'Το πεδίο {field} πρέπει να είναι άρτιος αριθμός', 86 | 'odd' => 'Το πεδίο {field} πρέπει να είναι περιττός αριθμός', 87 | 'prime' => 'Το πεδίο {field} πρέπει να είναι πρώτος αριθμός', 88 | 89 | // Content validators 90 | 'word_count' => 'Η καταμέτρηση λέξεων του πεδίου {field} δεν πληροί τις απαιτήσεις', 91 | 'camel_case' => 'Το πεδίο {field} πρέπει να είναι σε μορφή camelCase', 92 | 'snake_case' => 'Το πεδίο {field} πρέπει να είναι σε μορφή snake_case', 93 | 'url_slug' => 'Το πεδίο {field} πρέπει να είναι έγκυρη μορφή URL slug', 94 | ]; 95 | -------------------------------------------------------------------------------- /lang/de.php: -------------------------------------------------------------------------------- 1 | 'Das Feld "{field}" ist erforderlich.', 5 | 'valid_email' => 'Das Feld "{field}" muss eine gültige E-Mail-Adresse sein.', 6 | 'max_len' => 'Das Feld "{field}" darf maximal {param} Zeichen enthalten.', 7 | 'min_len' => 'Das Feld "{field}" muss mindestens {param} Zeichen enthalten.', 8 | 'exact_len' => 'Das Feld "{field}" muss genau {param} Zeichen enthalten.', 9 | 'between_len' => 'Das Feld "{field}" muss zwischen {param[0]} und {param[1]} Zeichen enthalten.', 10 | 'alpha' => 'Das Feld "{field}" darf nur Buchstaben enthalten.', 11 | 'alpha_numeric' => 'Das Feld "{field}" darf nur Buchstaben und Ziffern enthalten.', 12 | 'alpha_numeric_space' => 'Das Feld "{field}" darf nur Buchstaben, Ziffern und Leerzeichen enthalten.', 13 | 'alpha_numeric_dash' => 'Das Feld "{field}" darf nur Buchstaben, Ziffern und Leerzeichen enthalten.', 14 | 'alpha_dash' => 'Das Feld "{field}" darf nur Buchstaben und Bindestriche enthalten.', 15 | 'alpha_space' => 'Das Feld "{field}" darf nur Buchstaben und Leerzeichen enthalten.', 16 | 'numeric' => 'Das Feld "{field}" muss eine Nummer sein.', 17 | 'integer' => 'Das Feld "{field}" muss eine Nummer ohne Nachkommastellen (ganze Zahl) sein.', 18 | 'boolean' => 'Das Feld "{field}" muss entweder wahr oder falsch sein.', 19 | 'float' => 'Das Feld "{field}" muss eine Nummer mit einem Dezimalpunkt (Gleitpunktzahl) sein.', 20 | 'valid_url' => 'Das Feld "{field}" muss eine URL sein.', 21 | 'url_exists' => 'Die im Feld "{field}" angegebene URL existiert nicht.', 22 | 'valid_ip' => 'Das Feld "{field}" muss eine gültige IP-Adresse sein.', 23 | 'valid_ipv4' => 'Das Feld "{field}" muss eine gültige IPv4-Adresse enthalten.', 24 | 'valid_ipv6' => 'Das Feld "{field}" muss eine gültige IPv6-Adresse enthalten.', 25 | 'guidv4' => 'Das Feld "{field}" muss eine gültige GUID enthalten.', 26 | 'valid_cc' => 'Das Feld "{field}" ist keine gültige Kreditkartennummer.', 27 | 'valid_name' => 'Das Feld "{field}" muss ein voller Name sein.', 28 | 'contains' => 'Das Feld "{field}" kann nur eines der folgenden sein: {param}', 29 | 'contains_list' => 'Das Feld "{field}" ist keine gültige Wahl.', 30 | 'doesnt_contain_list' => 'Das Feld "{field}" enthält einen nicht akzeptierten Wert.', 31 | 'street_address' => 'Das Feld "{field}" muss eine gültige Straßenangabe sein.', 32 | 'date' => 'Das Feld "{field}" muss ein gültiges Datum sein.', 33 | 'min_numeric' => 'Das Feld "{field}" muss ein numerischer Wert größergleich {param} sein.', 34 | 'max_numeric' => 'Das Feld "{field}" muss ein numerischer Wert kleinergleich {param} sein.', 35 | 'min_age' => 'Das Feld "{field}" muss ein Alter größergleich {param} haben.', 36 | 'starts' => 'Das Feld "{field}" muss mit {param} beginnen.', 37 | 'extension' => 'Das Feld "{field}" kann nur eine der folgenden Erweiterungen haben: {param}', 38 | 'required_file' => 'Das Feld "{field}" ist erforderlich.', 39 | 'equalsfield' => 'Das Feld "{field}" ist nicht gleich dem Feld "{param}".', 40 | 'iban' => 'Das Feld "{field}" muss eine gültige IBAN enthalten.', 41 | 'phone_number' => 'Das Feld "{field}" muss eine gültige Telefonnummer sein.', 42 | 'regex' => 'Das Feld "{field}" muss einen Wert im gültigem Format enthalten.', 43 | 'valid_json_string' => 'Das Feld "{field}" muss eine gültige JSON-Format-Zeichenfolge enthalten.', 44 | 'valid_array_size_greater' => 'Das Feld "{field}" muss ein Array mit einer Größe größergleich {param} sein.', 45 | 'valid_array_size_lesser' => 'Das Feld "{field}" muss ein Array mit einer Größe kleinergleich {param} sein.', 46 | 'valid_array_size_equal' => 'Das Feld "{field}" muss ein Array mit einer Größe gleich {param} sein.', 47 | 48 | // Security validators 49 | 'strong_password' => 'Das Feld "{field}" muss mindestens 8 Zeichen mit Groß-, Kleinbuchstaben, Zahlen und Sonderzeichen enthalten.', 50 | 'jwt_token' => 'Das Feld "{field}" muss ein gültiges JWT-Token-Format sein.', 51 | 'hash' => 'Das Feld "{field}" muss ein gültiger {param} Hash sein.', 52 | 'no_sql_injection' => 'Das Feld "{field}" enthält potentielle SQL-Injection-Muster.', 53 | 'no_xss' => 'Das Feld "{field}" enthält potentielle XSS-Muster.', 54 | 55 | // Modern web validators 56 | 'uuid' => 'Das Feld "{field}" muss eine gültige UUID sein.', 57 | 'base64' => 'Das Feld "{field}" muss gültige base64-kodierte Daten sein.', 58 | 'hex_color' => 'Das Feld "{field}" muss ein gültiger hexadezimaler Farbcode sein (z.B. #FF0000).', 59 | 'rgb_color' => 'Das Feld "{field}" muss ein gültiges RGB-Farbformat sein (z.B. rgb(255,0,0)).', 60 | 'timezone' => 'Das Feld "{field}" muss eine gültige Zeitzone-Kennung sein.', 61 | 'language_code' => 'Das Feld "{field}" muss ein gültiger Sprachcode sein (z.B. de, de-DE).', 62 | 'country_code' => 'Das Feld "{field}" muss ein gültiger Ländercode sein (z.B. DE, AT).', 63 | 'currency_code' => 'Das Feld "{field}" muss ein gültiger Währungscode sein (z.B. USD, EUR).', 64 | 65 | // Network validators 66 | 'mac_address' => 'Das Feld "{field}" muss ein gültiges MAC-Adressen-Format sein.', 67 | 'domain_name' => 'Das Feld "{field}" muss ein gültiger Domain-Name sein.', 68 | 'port_number' => 'Das Feld "{field}" muss eine gültige Port-Nummer sein (1-65535).', 69 | 'social_handle' => 'Das Feld "{field}" muss ein gültiges Social-Media-Handle-Format sein.', 70 | 71 | // Geographic validators 72 | 'latitude' => 'Das Feld "{field}" muss ein gültiger Breitengrad sein (-90 bis 90).', 73 | 'longitude' => 'Das Feld "{field}" muss ein gültiger Längengrad sein (-180 bis 180).', 74 | 'postal_code' => 'Das Feld "{field}" muss eine gültige Postleitzahl für {param} sein.', 75 | 'coordinates' => 'Das Feld "{field}" muss gültige Koordinaten im Format lat,lng sein.', 76 | 77 | // Enhanced date/time validators 78 | 'future_date' => 'Das Feld "{field}" muss ein zukünftiges Datum sein.', 79 | 'past_date' => 'Das Feld "{field}" muss ein vergangenes Datum sein.', 80 | 'business_day' => 'Das Feld "{field}" muss auf einen Werktag fallen (Montag-Freitag).', 81 | 'valid_time' => 'Das Feld "{field}" muss ein gültiges Zeitformat sein (HH:MM oder HH:MM:SS).', 82 | 'date_range' => 'Das Feld "{field}" muss ein Datum zwischen {param[0]} und {param[1]} sein.', 83 | 84 | // Mathematical validators 85 | 'even' => 'Das Feld "{field}" muss eine gerade Zahl sein.', 86 | 'odd' => 'Das Feld "{field}" muss eine ungerade Zahl sein.', 87 | 'prime' => 'Das Feld "{field}" muss eine Primzahl sein.', 88 | 89 | // Content validators 90 | 'word_count' => 'Das Feld "{field}" erfüllt nicht die Wortanzahl-Anforderungen.', 91 | 'camel_case' => 'Das Feld "{field}" muss im camelCase-Format sein.', 92 | 'snake_case' => 'Das Feld "{field}" muss im snake_case-Format sein.', 93 | 'url_slug' => 'Das Feld "{field}" muss ein gültiges URL-Slug-Format sein.', 94 | ]; 95 | -------------------------------------------------------------------------------- /coverage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GUMP - A Fast PHP Data Validation & Filtering Library 2 | 3 | [![Total Downloads](https://poser.pugx.org/wixel/gump/downloads)](https://packagist.org/packages/wixel/gump) 4 | [![Latest Stable Version](https://poser.pugx.org/wixel/gump/v/stable)](https://packagist.org/packages/wixel/gump) 5 | ![Build Status](https://github.com/wixel/gump/actions/workflows/ci.yml/badge.svg) 6 | [![Coverage Status](https://coveralls.io/repos/github/Wixel/GUMP/badge.svg?branch=master)](https://coveralls.io/github/Wixel/GUMP?branch=master) 7 | [![License](https://poser.pugx.org/wixel/gump/license)](https://packagist.org/packages/wixel/gump) 8 | 9 | ## Overview 10 | 11 | GUMP is a standalone PHP data validation and filtering library that makes validating any data easy and painless without 12 | the reliance on a framework. GUMP has been serving the PHP community since **2013** and is trusted by thousands of 13 | developers worldwide. 14 | 15 | ### Key Features 16 | 17 | - **Zero Dependencies** - Pure PHP, no external dependencies required 18 | - **19 Languages** - Built-in internationalization support 19 | - **High Performance** - Lightweight and fast validation processing 20 | - **Extensible** - Easy to add custom validators and filters 21 | - **76 Validators** - Comprehensive set of validation rules out of the box 22 | - **Security Focused** - Built-in XSS protection and data sanitization 23 | - **Framework Agnostic** - Works with any PHP project or framework 24 | - **Modern PHP** - Supports PHP 7.1 to 8.4+ 25 | 26 | ## Table of Contents 27 | 28 | - [Installation](#installation) 29 | - [Requirements](#requirements) 30 | - [Quick Start](#quick-start) 31 | - [Usage Examples](#usage-examples) 32 | - [Available Validators](#available-validators) 33 | - [Available Filters](#available-filters) 34 | - [Advanced Usage](#advanced-usage) 35 | - [Internationalization](#internationalization) 36 | - [Custom Validators & Filters](#custom-validators--filters) 37 | - [Configuration](#configuration) 38 | - [Testing](#testing) 39 | - [Contributing](#contributing) 40 | - [Security](#security) 41 | - [Support](#support) 42 | - [License](#license) 43 | 44 | ## Installation 45 | 46 | ### Via Composer (Recommended) 47 | 48 | ```bash 49 | composer require wixel/gump 50 | ``` 51 | 52 | ### Manual Installation 53 | 54 | 1. Download the latest release from [GitHub Releases](https://github.com/wixel/gump/releases) 55 | 2. Extract and include `gump.class.php` in your project: 56 | 57 | ```php 58 | require_once 'path/to/gump.class.php'; 59 | ``` 60 | 61 | ## Requirements 62 | 63 | - **PHP**: 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2, 8.3, 8.4+ 64 | - **Extensions**: 65 | - `ext-mbstring` - Multibyte string support 66 | - `ext-json` - JSON processing 67 | - `ext-intl` - Internationalization functions 68 | - `ext-bcmath` - Arbitrary precision mathematics 69 | - `ext-iconv` - Character encoding conversion 70 | 71 | ## Quick Start 72 | 73 | ### Simple Validation 74 | 75 | ```php 76 | 'johndoe', 81 | 'email' => 'john@example.com', 82 | 'age' => '25' 83 | ], [ 84 | 'username' => 'required|alpha_numeric|min_len,3', 85 | 'email' => 'required|valid_email', 86 | 'age' => 'required|integer|min_numeric,18' 87 | ]); 88 | 89 | if ($is_valid === true) { 90 | echo "All data is valid!"; 91 | } else { 92 | // Display validation errors 93 | foreach ($is_valid as $error) { 94 | echo "Error: " . $error . "\n"; 95 | } 96 | } 97 | ``` 98 | 99 | ### Simple Filtering 100 | 101 | ```php 102 | $filtered = GUMP::filter_input([ 103 | 'username' => ' JohnDoe123 ', 104 | 'bio' => 'Clean bio text' 105 | ], [ 106 | 'username' => 'trim|lower_case', 107 | 'bio' => 'trim|sanitize_string' 108 | ]); 109 | 110 | // Result: 111 | // $filtered['username'] = 'johndoe123' 112 | // $filtered['bio'] = 'Clean bio text' 113 | ``` 114 | 115 | ## Usage Examples 116 | 117 | ### Basic Validation with Custom Error Messages 118 | 119 | ```php 120 | $gump = new GUMP(); 121 | 122 | // Set validation rules 123 | $gump->validation_rules([ 124 | 'username' => 'required|alpha_numeric|max_len,100|min_len,6', 125 | 'password' => 'required|max_len,100|min_len,8', 126 | 'email' => 'required|valid_email', 127 | 'phone' => 'required|phone_number', 128 | 'website' => 'valid_url', 129 | 'birthday' => 'required|date,Y-m-d|min_age,18' 130 | ]); 131 | 132 | // Set custom error messages 133 | $gump->set_fields_error_messages([ 134 | 'username' => [ 135 | 'required' => 'Please enter a username', 136 | 'min_len' => 'Username must be at least 6 characters' 137 | ], 138 | 'email' => [ 139 | 'required' => 'Email address is required', 140 | 'valid_email' => 'Please enter a valid email address' 141 | ] 142 | ]); 143 | 144 | // Set filtering rules 145 | $gump->filter_rules([ 146 | 'username' => 'trim|sanitize_string', 147 | 'email' => 'trim|sanitize_email', 148 | 'phone' => 'trim', 149 | 'website' => 'trim' 150 | ]); 151 | 152 | $validated_data = $gump->run($_POST); 153 | 154 | if ($gump->errors()) { 155 | // Handle validation errors 156 | $errors = $gump->get_readable_errors(); 157 | foreach ($errors as $error) { 158 | echo "
{$error}
"; 159 | } 160 | } else { 161 | // Process validated and filtered data 162 | echo "User registered successfully!"; 163 | var_dump($validated_data); 164 | } 165 | ``` 166 | 167 | ### File Upload Validation 168 | 169 | ```php 170 | $is_valid = GUMP::is_valid(array_merge($_POST, $_FILES), [ 171 | 'profile_photo' => 'required_file|extension,jpg;jpeg;png;gif', 172 | 'document' => 'required_file|extension,pdf;doc;docx', 173 | 'username' => 'required|alpha_numeric' 174 | ]); 175 | 176 | if ($is_valid !== true) { 177 | foreach ($is_valid as $error) { 178 | echo "Upload Error: {$error}\n"; 179 | } 180 | } 181 | ``` 182 | 183 | ### Array and Nested Field Validation 184 | 185 | ```php 186 | $data = [ 187 | 'user' => [ 188 | 'name' => 'John Doe', 189 | 'email' => 'john@example.com' 190 | ], 191 | 'products' => [ 192 | ['name' => 'Product 1', 'price' => 19.99], 193 | ['name' => 'Product 2', 'price' => 29.99] 194 | ], 195 | 'tags' => ['php', 'validation', 'security'] 196 | ]; 197 | 198 | $is_valid = GUMP::is_valid($data, [ 199 | 'user.name' => 'required|valid_name', 200 | 'user.email' => 'required|valid_email', 201 | 'products.*.name' => 'required|min_len,3', 202 | 'products.*.price' => 'required|float|min_numeric,0', 203 | 'tags' => 'required|valid_array_size_greater,0' 204 | ]); 205 | ``` 206 | 207 | ## Available Validators 208 | 209 | GUMP provides **76 built-in validators** for comprehensive data validation: 210 | 211 |
212 | 213 | | Rule | Description | 214 | |--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 215 | | **required** | Ensures the specified key value exists and is not empty (not null, not empty string, not empty array). | 216 | | **contains**,one;two;use array format if one of the values contains semicolons | Verify that a value is contained within the pre-defined value set. | 217 | | **contains_list**,value1;value2 | Verify that a value is contained within the pre-defined value set. Error message will NOT show the list of possible values. | 218 | | **doesnt_contain_list**,value1;value2 | Verify that a value is contained within the pre-defined value set. Error message will NOT show the list of possible values. | 219 | | **boolean**,strict | Determine if the provided value is a valid boolean. Returns true for: yes/no, on/off, 1/0, true/false. In strict mode (optional) only true/false will be valid which you can combine with boolean filter. | 220 | | **valid_email** | Determine if the provided email has valid format. | 221 | | **max_len**,240 | Determine if the provided value length is less or equal to a specific value. | 222 | | **min_len**,4 | Determine if the provided value length is more or equal to a specific value. | 223 | | **exact_len**,5 | Determine if the provided value length matches a specific value. | 224 | | **between_len**,3;11 | Determine if the provided value length is between min and max values. | 225 | | **alpha** | Determine if the provided value contains only alpha characters. | 226 | | **alpha_numeric** | Determine if the provided value contains only alpha-numeric characters. | 227 | | **alpha_dash** | Determine if the provided value contains only alpha characters with dashed and underscores. | 228 | | **alpha_numeric_dash** | Determine if the provided value contains only alpha numeric characters with dashed and underscores. | 229 | | **alpha_numeric_space** | Determine if the provided value contains only alpha numeric characters with spaces. | 230 | | **alpha_space** | Determine if the provided value contains only alpha characters with spaces. | 231 | | **numeric** | Determine if the provided value is a valid number or numeric string. | 232 | | **integer** | Determine if the provided value is a valid integer. | 233 | | **float** | Determine if the provided value is a valid float. | 234 | | **valid_url** | Determine if the provided value is a valid URL. | 235 | | **url_exists** | Determine if a URL exists & is accessible. | 236 | | **valid_ip** | Determine if the provided value is a valid IP address. | 237 | | **valid_ipv4** | Determine if the provided value is a valid IPv4 address. | 238 | | **valid_ipv6** | Determine if the provided value is a valid IPv6 address. | 239 | | **valid_cc** | Determine if the input is a valid credit card number. | 240 | | **valid_name** | Determine if the input is a valid human name. | 241 | | **street_address** | Determine if the provided input is likely to be a street address using weak detection. | 242 | | **iban** | Determine if the provided value is a valid IBAN. | 243 | | **date**,d/m/Y | Determine if the provided input is a valid date (ISO 8601) or specify a custom format (optional). | 244 | | **min_age**,18 | Determine if the provided input meets age requirement (ISO 8601). Input should be a date (Y-m-d). | 245 | | **max_numeric**,50 | Determine if the provided numeric value is lower or equal to a specific value. | 246 | | **min_numeric**,1 | Determine if the provided numeric value is higher or equal to a specific value. | 247 | | **starts**,Z | Determine if the provided value starts with param. | 248 | | **required_file** | Determine if the file was successfully uploaded. | 249 | | **extension**,png;jpg;gif | Check the uploaded file for extension. Doesn't check mime-type yet. | 250 | | **equalsfield**,other_field_name | Determine if the provided field value equals current field value. | 251 | | **guidv4** | Determine if the provided field value is a valid GUID (v4) | 252 | | **phone_number** | Determine if the provided value is a valid phone number. | 253 | | **regex**,/test-[0-9]{3}/ | Custom regex validator. | 254 | | **valid_json_string** | Determine if the provided value is a valid JSON string. | 255 | | **valid_array_size_greater**,1 | Check if an input is an array and if the size is more or equal to a specific value. | 256 | | **valid_array_size_lesser**,1 | Check if an input is an array and if the size is less or equal to a specific value. | 257 | | **valid_array_size_equal**,1 | Check if an input is an array and if the size is equal to a specific value. | 258 | | **strong_password** | Validate strong password with uppercase, lowercase, number and special character. | 259 | | **jwt_token** | Validate JWT token format. | 260 | | **hash**,Array | Validate hash format for specified algorithm. | 261 | | **no_sql_injection** | Detect common SQL injection patterns. | 262 | | **no_xss** | Enhanced XSS detection beyond basic sanitize_string. | 263 | | **uuid** | Validate UUID format (any version). | 264 | | **base64** | Validate base64 encoded data. | 265 | | **hex_color** | Validate hexadecimal color code. | 266 | | **rgb_color** | Validate RGB color format. | 267 | | **timezone** | Validate timezone identifier. | 268 | | **language_code** | Validate language code (ISO 639). | 269 | | **country_code** | Validate country code (ISO 3166). | 270 | | **currency_code** | Validate currency code (ISO 4217). | 271 | | **mac_address** | Validate MAC address format. | 272 | | **domain_name** | Validate domain name format (without protocol). | 273 | | **port_number** | Validate port number (1-65535). | 274 | | **social_handle** | Validate social media handle format. | 275 | | **latitude** | Validate latitude coordinate (-90 to 90). | 276 | | **longitude** | Validate longitude coordinate (-180 to 180). | 277 | | **postal_code**,Array | Validate postal code for specified country. | 278 | | **coordinates** | Validate coordinates in lat,lng format. | 279 | | **future_date** | Validate that date is in the future. | 280 | | **past_date** | Validate that date is in the past. | 281 | | **business_day** | Validate that date falls on a business day (Monday-Friday). | 282 | | **valid_time** | Validate time format (HH:MM:SS or HH:MM). | 283 | | **date_range**,2024-01-01;2024-12-31 | Validate date falls within specified range. | 284 | | **even** | Validate that number is even. | 285 | | **odd** | Validate that number is odd. | 286 | | **prime** | Validate that number is prime. | 287 | | **word_count**,min,10,max,500 | Validate word count within specified range. | 288 | | **camel_case** | Validate camelCase format. | 289 | | **snake_case** | Validate snake_case format. | 290 | | **url_slug** | Validate URL slug format. | 291 | 292 |
293 | 294 | ## Comprehensive Validator Reference 295 | 296 | ### Essential Validators 297 | 298 | **`required`** - The most fundamental validator 299 | 300 | ```php 301 | // Basic usage 302 | 'email' => 'required' 303 | 304 | // Common combinations 305 | 'username' => 'required|alpha_numeric|min_len,3|max_len,20' 306 | 'password' => 'required|min_len,8|max_len,100' 307 | ``` 308 | 309 | **`between_len,min;max`** - String length range validation 310 | 311 | ```php 312 | // Username must be between 3-20 characters 313 | 'username' => 'between_len,3;20' 314 | 315 | // Description between 10-500 characters 316 | 'description' => 'between_len,10;500' 317 | 318 | // Works with Unicode characters 319 | 'title' => 'between_len,5;100' // Handles émojis, ñ, etc. correctly 320 | ``` 321 | 322 | ### Real-World Usage Examples 323 | 324 | **User Registration Form** 325 | 326 | ```php 327 | $rules = [ 328 | 'first_name' => 'required|alpha_space|min_len,2|max_len,50', 329 | 'last_name' => 'required|alpha_space|min_len,2|max_len,50', 330 | 'username' => 'required|alpha_numeric_dash|between_len,3;20', 331 | 'email' => 'required|valid_email', 332 | 'phone' => 'phone_number', 333 | 'website' => 'valid_url', 334 | 'age' => 'required|integer|min_numeric,13|max_numeric,120', 335 | 'password' => 'required|min_len,8', 336 | 'password_confirm' => 'required|equalsfield,password', 337 | 'terms' => 'required|boolean,strict' 338 | ]; 339 | ``` 340 | 341 | **E-commerce Product Form** 342 | 343 | ```php 344 | $rules = [ 345 | 'name' => 'required|between_len,3;100', 346 | 'price' => 'required|float|min_numeric,0.01', 347 | 'category' => 'required|contains,electronics;clothing;books;home', 348 | 'sku' => 'required|regex,/^[A-Z]{2}[0-9]{4}$/', 349 | 'description' => 'required|between_len,20;2000', 350 | 'tags' => 'valid_array_size_greater,0|valid_array_size_lesser,11', 351 | 'active' => 'boolean', 352 | 'image' => 'required_file|extension,jpg;png;webp' 353 | ]; 354 | ``` 355 | 356 | **API Payload Validation** 357 | 358 | ```php 359 | $rules = [ 360 | 'user_id' => 'required|uuid', 361 | 'email' => 'required|valid_email', 362 | 'metadata' => 'valid_json_string', 363 | 'permissions' => 'valid_array_size_greater,0', 364 | 'expires_at' => 'date,c', // ISO 8601 format 365 | 'ip_address' => 'valid_ip', 366 | 'user_agent' => 'max_len,500' 367 | ]; 368 | ``` 369 | 370 | **Security & Authentication Form** 371 | 372 | ```php 373 | $rules = [ 374 | 'password' => 'required|strong_password', 375 | 'token' => 'required|jwt_token', 376 | 'api_key' => 'required|hash,sha256', 377 | 'input' => 'no_sql_injection|no_xss', 378 | 'timezone' => 'timezone', 379 | 'language' => 'language_code' 380 | ]; 381 | ``` 382 | 383 | **Geographic & Network Validation** 384 | 385 | ```php 386 | $rules = [ 387 | 'latitude' => 'required|latitude', 388 | 'longitude' => 'required|longitude', 389 | 'postal_code' => 'required|postal_code,US', 390 | 'coordinates' => 'coordinates', 391 | 'mac_address' => 'mac_address', 392 | 'domain' => 'domain_name', 393 | 'port' => 'port_number', 394 | 'twitter' => 'social_handle' 395 | ]; 396 | ``` 397 | 398 | **Content & Format Validation** 399 | 400 | ```php 401 | $rules = [ 402 | 'variable_name' => 'required|snake_case', 403 | 'functionName' => 'required|camel_case', 404 | 'blog_slug' => 'required|url_slug', 405 | 'article_body' => 'required|word_count,min,100,max,2000', 406 | 'color_theme' => 'hex_color', 407 | 'schedule_date' => 'required|future_date|business_day', 408 | 'prime_number' => 'prime' 409 | ]; 410 | ``` 411 | 412 | ### Advanced Validation Patterns 413 | 414 | **Conditional Validation** 415 | 416 | ```php 417 | // Only validate credit card if payment method is 'credit_card' 418 | if ($input['payment_method'] === 'credit_card') { 419 | $rules['credit_card'] = 'required|valid_cc'; 420 | $rules['expiry_date'] = 'required|date,m/Y'; 421 | } 422 | ``` 423 | 424 | **File Upload with Metadata** 425 | 426 | ```php 427 | $rules = [ 428 | 'title' => 'required|between_len,3;100', 429 | 'document' => 'required_file|extension,pdf;doc;docx', 430 | 'category' => 'required|contains_list,public;private;draft', 431 | 'tags' => 'valid_array_size_lesser,10', 432 | 'description' => 'max_len,1000' 433 | ]; 434 | ``` 435 | 436 | **Nested Array Validation** 437 | 438 | ```php 439 | $rules = [ 440 | 'company.name' => 'required|between_len,2;100', 441 | 'company.email' => 'required|valid_email', 442 | 'employees.*.name' => 'required|valid_name', 443 | 'employees.*.email' => 'required|valid_email', 444 | 'employees.*.age' => 'required|integer|min_numeric,18', 445 | 'departments.*.budget' => 'required|float|min_numeric,0' 446 | ]; 447 | ``` 448 | 449 | > **Pro Tips**: 450 | > 451 | > **Parameter Conflicts**: When using pipe (`|`) or semicolon (`;`) in validator parameters, use array format: 452 | > 453 | > ```php 454 | > // Wrong - will break parsing 455 | > 'field' => 'regex,/part|of;pattern/' 456 | > 457 | > // Correct - use array format 458 | > 'field' => ['regex' => '/part|of;pattern/'] 459 | > ``` 460 | > 461 | > **Performance**: Put faster validators first in chains: 462 | > 463 | > ```php 464 | > // Good - required fails fast for empty values 465 | > 'email' => 'required|valid_email|max_len,255' 466 | > 467 | > // Less efficient - validates email format on empty values 468 | > 'email' => 'valid_email|required|max_len,255' 469 | > ``` 470 | > 471 | > **Boolean Values**: The `boolean` filter accepts various formats: 472 | > 473 | > ```php 474 | > // All these become TRUE: '1', 1, 'true', true, 'yes', 'on' 475 | > // All these become FALSE: '0', 0, 'false', false, 'no', 'off', null, '' 476 | > ``` 477 | 478 | ## Available Filters 479 | 480 | GUMP includes 16 filters for data sanitization and transformation: 481 | 482 |
483 | 484 | | Filter | Description | 485 | |------------------------|-----------------------------------------------------------------------------------------------------------------------| 486 | | **noise_words** | Replace noise words in a string (http://tax.cchgroup.com/help/Avoiding_noise_words_in_your_search.htm). | 487 | | **rmpunctuation** | Remove all known punctuation from a string. | 488 | | **urlencode** | Sanitize the string by urlencoding characters. | 489 | | **htmlencode** | Sanitize the string by converting HTML characters to their HTML entities. | 490 | | **sanitize_email** | Sanitize the string by removing illegal characters from emails. | 491 | | **sanitize_numbers** | Sanitize the string by removing illegal characters from numbers. | 492 | | **sanitize_floats** | Sanitize the string by removing illegal characters from float numbers. | 493 | | **sanitize_string** | Sanitize the string by removing any script tags. | 494 | | **boolean** | Converts ['1', 1, 'true', true, 'yes', 'on'] to true, anything else is false ('on' is useful for form checkboxes). | 495 | | **basic_tags** | Filter out all HTML tags except the defined basic tags. | 496 | | **whole_number** | Convert the provided numeric value to a whole number. | 497 | | **ms_word_characters** | Convert MS Word special characters to web safe characters. ([“ ”] => ", [‘ ’] => ', [–] => -, […] => ...) | 498 | | **lower_case** | Converts to lowercase. | 499 | | **upper_case** | Converts to uppercase. | 500 | | **slug** | Converts value to url-web-slugs. | 501 | | **trim** | Remove spaces from the beginning and end of strings. | 502 | 503 |
504 | 505 | ### Filter Chaining Example 506 | 507 | ```php 508 | $filtered = GUMP::filter_input([ 509 | 'title' => ' My Amazing Blog Post!!! ', 510 | 'description' => 'This is a description with bold text.', 511 | 'price' => '$19.99 USD', 512 | 'active' => 'yes' 513 | ], [ 514 | 'title' => 'trim|ms_word_characters|slug', 515 | 'description' => 'trim|sanitize_string', 516 | 'price' => 'sanitize_floats', 517 | 'active' => 'boolean' 518 | ]); 519 | 520 | // Results: 521 | // $filtered['title'] = 'my-amazing-blog-post' 522 | // $filtered['description'] = 'This is a description with bold text.' 523 | // $filtered['price'] = '19.99' 524 | // $filtered['active'] = true 525 | ``` 526 | 527 | ## Advanced Usage 528 | 529 | ### Singleton Pattern 530 | 531 | GUMP supports a singleton pattern for cases where you want to reuse the same instance across your application: 532 | 533 | ```php 534 | // Get the singleton instance 535 | $gump = GUMP::get_instance(); 536 | 537 | // Subsequent calls return the same instance 538 | $sameGump = GUMP::get_instance(); 539 | 540 | // Both variables reference the same object 541 | var_dump($gump === $sameGump); // true 542 | ``` 543 | 544 | ### Field Helper Method 545 | 546 | The `field()` static method provides safe array access with a default fallback: 547 | 548 | ```php 549 | // Safely get a value from an array with a default 550 | $username = GUMP::field('username', $_POST, 'guest'); 551 | 552 | // Returns 'guest' if 'username' key doesn't exist 553 | $email = GUMP::field('email', $_POST); // Returns null if not set 554 | 555 | // Useful for optional form fields 556 | $data = [ 557 | 'name' => 'John', 558 | 'age' => 25 559 | ]; 560 | 561 | $name = GUMP::field('name', $data); // 'John' 562 | $country = GUMP::field('country', $data, 'US'); // 'US' (default) 563 | ``` 564 | 565 | ### Instance Methods 566 | 567 | ```php 568 | $gump = new GUMP('en'); // Set language 569 | 570 | // Validate data without filtering 571 | $validation_result = $gump->validate($_POST, [ 572 | 'email' => 'required|valid_email' 573 | ]); 574 | 575 | // Filter data without validation 576 | $filtered_data = $gump->filter($_POST, [ 577 | 'content' => 'trim|sanitize_string' 578 | ]); 579 | 580 | // Sanitize data (UTF-8 conversion) 581 | $sanitized = $gump->sanitize($_POST, ['allowed_field1', 'allowed_field2']); 582 | 583 | // Get detailed error information 584 | if ($gump->errors()) { 585 | $readable_errors = $gump->get_readable_errors(); // HTML formatted 586 | $simple_errors = $gump->get_errors_array(); // Field => message array 587 | } 588 | ``` 589 | 590 | ### Field Name Customization 591 | 592 | ```php 593 | // Set friendly field names for error messages 594 | GUMP::set_field_name('usr_nm', 'Username'); 595 | GUMP::set_field_names([ 596 | 'usr_nm' => 'Username', 597 | 'pwd' => 'Password', 598 | 'em' => 'Email Address' 599 | ]); 600 | 601 | // Now validation errors will show friendly names 602 | $is_valid = GUMP::is_valid(['usr_nm' => ''], ['usr_nm' => 'required']); 603 | // Error: "Username is required" (instead of "Usr nm is required") 604 | ``` 605 | 606 | ### Global Error Message Customization 607 | 608 | ```php 609 | // Set custom error messages for validators 610 | GUMP::set_error_message('required', 'The {field} field cannot be empty'); 611 | GUMP::set_error_message('valid_email', 'Please provide a valid email for {field}'); 612 | 613 | // Set multiple custom messages 614 | GUMP::set_error_messages([ 615 | 'required' => 'Please fill out the {field} field', 616 | 'min_len' => '{field} must be at least {param} characters long', 617 | 'valid_email' => 'The email address in {field} is not valid' 618 | ]); 619 | ``` 620 | 621 | ## Internationalization 622 | 623 | GUMP supports 19 languages out of the box: 624 | 625 | **Supported Languages**: German (de), Greek (el), English (en), Esperanto (eo), Spanish (es), Persian (fa), French (fr), 626 | Hebrew (he), Hungarian (hu), Indonesian (id), Italian (it), Japanese (ja), Dutch (nl), Portuguese Brazil (pt-br), 627 | Russian (ru), Turkish (tr), Ukrainian (uk), Vietnamese (vi), Chinese Simplified (zh-CN) 628 | 629 | ```php 630 | // Set language during instantiation 631 | $gump = new GUMP('es'); // Spanish 632 | $gump = new GUMP('fr'); // French 633 | $gump = new GUMP('de'); // German 634 | 635 | // Validation errors will now be in the selected language 636 | $result = $gump->validate(['email' => 'invalid'], ['email' => 'valid_email']); 637 | ``` 638 | 639 | ## Custom Validators & Filters 640 | 641 | ### Adding Custom Validators 642 | 643 | ```php 644 | // Add a custom validator with callback 645 | GUMP::add_validator('strong_password', function($field, array $input, array $params, $value) { 646 | // Must contain at least 1 uppercase, 1 lowercase, 1 number, and 1 special char 647 | return preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]/', $value); 648 | }, 'The {field} must be a strong password with uppercase, lowercase, number and special character.'); 649 | 650 | // Usage 651 | $is_valid = GUMP::is_valid(['password' => 'weak'], ['password' => 'strong_password']); 652 | 653 | // Check if validator exists 654 | if (GUMP::has_validator('strong_password')) { 655 | echo "Custom validator is available!"; 656 | } 657 | ``` 658 | 659 | ### Adding Custom Filters 660 | 661 | ```php 662 | // Add a custom filter 663 | GUMP::add_filter('mask_email', function($value, array $params = []) { 664 | $parts = explode('@', $value); 665 | if (count($parts) === 2) { 666 | $username = substr($parts[0], 0, 2) . str_repeat('*', strlen($parts[0]) - 2); 667 | return $username . '@' . $parts[1]; 668 | } 669 | return $value; 670 | }); 671 | 672 | // Usage 673 | $filtered = GUMP::filter_input(['email' => 'john@example.com'], ['email' => 'mask_email']); 674 | // Result: 'jo***@example.com' 675 | 676 | // Check if filter exists 677 | if (GUMP::has_filter('mask_email')) { 678 | echo "Custom filter is available!"; 679 | } 680 | ``` 681 | 682 | ### Extending GUMP Class 683 | 684 | ```php 685 | class CustomGUMP extends GUMP 686 | { 687 | // Custom validator method (prefix with 'validate_') 688 | protected function validate_is_even($field, array $input, array $params = [], $value = null) 689 | { 690 | return is_numeric($value) && ($value % 2 == 0); 691 | } 692 | 693 | // Custom filter method (prefix with 'filter_') 694 | protected function filter_add_prefix($value, array $params = []) 695 | { 696 | $prefix = isset($params[0]) ? $params[0] : 'PREFIX_'; 697 | return $prefix . $value; 698 | } 699 | } 700 | 701 | $custom_gump = new CustomGUMP(); 702 | 703 | // Use custom validator 704 | $result = $custom_gump->validate(['number' => 5], ['number' => 'is_even']); 705 | 706 | // Use custom filter 707 | $filtered = $custom_gump->filter(['name' => 'John'], ['name' => 'add_prefix,MR_']); 708 | // Result: 'MR_John' 709 | ``` 710 | 711 | ## Configuration 712 | 713 | ### Global Delimiter Configuration 714 | 715 | Customize the delimiters used in validation rule strings: 716 | 717 | ```php 718 | // Default configuration 719 | GUMP::$rules_delimiter = '|'; // Separates rules: 'required|email' 720 | GUMP::$rules_parameters_delimiter = ','; // Separates parameters: 'min_len,6' 721 | GUMP::$rules_parameters_arrays_delimiter = ';'; // Separates array items: 'contains,a;b;c' 722 | 723 | // Custom configuration example 724 | GUMP::$rules_delimiter = '&'; // 'required&email' 725 | GUMP::$rules_parameters_delimiter = ':'; // 'min_len:6' 726 | GUMP::$rules_parameters_arrays_delimiter = '|'; // 'contains:a|b|c' 727 | ``` 728 | 729 | ### Field Character Replacement 730 | 731 | ```php 732 | // Characters that will be replaced with spaces in field names for error messages 733 | GUMP::$field_chars_to_spaces = ['_', '-', '.']; 734 | 735 | // 'user_name' becomes 'User Name' in error messages 736 | // 'first-name' becomes 'First Name' in error messages 737 | ``` 738 | 739 | ## Testing 740 | 741 | GUMP includes comprehensive test coverage with PHPUnit: 742 | 743 | ```bash 744 | # Install development dependencies 745 | composer install --dev 746 | 747 | # Run all tests 748 | composer test 749 | 750 | # Run tests with coverage 751 | ./vendor/bin/phpunit --coverage-html coverage 752 | 753 | # Check documentation consistency 754 | composer check 755 | 756 | # Dump documentation (for contributors) 757 | composer dump 758 | ``` 759 | 760 | ### Running Tests in Docker 761 | 762 | ```bash 763 | # Build and run tests in Docker 764 | cd dev/ 765 | ./build.sh 766 | ./run_tests_docker.sh 767 | ``` 768 | 769 | ## Contributing 770 | 771 | We welcome contributions! Please read our [Contributing Guidelines](CONTRIBUTING.md) before submitting PRs. 772 | 773 | ### Development Setup 774 | 775 | 1. Fork the repository 776 | 2. Clone your fork: `git clone https://github.com/yourusername/gump.git` 777 | 3. Install dependencies: `composer install` 778 | 4. Create a feature branch: `git checkout -b feature/amazing-feature` 779 | 5. Make your changes and add tests 780 | 6. Run tests: `composer test` 781 | 7. Submit a pull request 782 | 783 | ### Contribution Guidelines 784 | 785 | - **Add tests** for new features and bug fixes 786 | - **Follow PSR-12** coding standards 787 | - **Update documentation** for new validators/filters 788 | - **Add translations** for new error messages 789 | - **Maintain backward compatibility** 790 | 791 | ### Areas We Need Help With 792 | 793 | - **Translations** - Help us support more languages 794 | - **Test Coverage** - Add more edge case tests 795 | - **Documentation** - Improve examples and guides 796 | - **Performance** - Optimize validation algorithms 797 | - **Security** - Security audits and improvements 798 | 799 | ### Contributors 800 | 801 | 802 | 803 | 804 | 805 | ## Security 806 | 807 | ### Security Best Practices 808 | 809 | - Always validate AND filter user input 810 | - Use appropriate validators for your data types 811 | - Be cautious with `regex` validator - avoid ReDoS attacks 812 | - Use `sanitize_string` filter to prevent XSS 813 | - Validate file uploads thoroughly 814 | - Keep GUMP updated to the latest version 815 | 816 | ### Security Features 817 | 818 | - **XSS Protection**: Built-in `sanitize_string` filter 819 | - **SQL Injection Prevention**: Proper data validation 820 | - **File Upload Security**: Extension and type validation 821 | - **Input Sanitization**: Multiple sanitization filters 822 | - **Safe Defaults**: Secure by default configuration 823 | 824 | ## Support 825 | 826 | ### Community Support 827 | 828 | - **Bug Reports**: [GitHub Issues](https://github.com/wixel/gump/issues) 829 | - **Feature Requests**: [GitHub Discussions](https://github.com/wixel/gump/discussions) 830 | - **Documentation**: [GitHub Wiki](https://github.com/wixel/gump/wiki) 831 | 832 | ## License 833 | 834 | GUMP is open-source software licensed under the [MIT License](LICENSE). 835 | 836 | ``` 837 | MIT License 838 | 839 | Copyright (c) 2013-2025 Sean Nieuwoudt. 840 | 841 | Permission is hereby granted, free of charge, to any person obtaining a copy 842 | of this software and associated documentation files (the "Software"), to deal 843 | in the Software without restriction, including without limitation the rights 844 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 845 | copies of the Software, and to permit persons to whom the Software is 846 | furnished to do so, subject to the following conditions: 847 | 848 | The above copyright notice and this permission notice shall be included in all 849 | copies or substantial portions of the Software. 850 | 851 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 852 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 853 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 854 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 855 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 856 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 857 | SOFTWARE. 858 | ``` 859 | --------------------------------------------------------------------------------