Compare commits

..

14 Commits

Author SHA1 Message Date
Willem Wollebrants
fadce39f5f
Merge pull request #365 from blueyestar/master
added missing translation for zh-cn and zh-tw
2022-10-14 13:54:24 +02:00
Willem Wollebrants
5659b0a942
Merge pull request #364 from metakin/fix-typo
typo fix
2022-10-14 13:53:54 +02:00
Willem Wollebrants
fdc64d193a
Merge pull request #359 from mehdihasanpour/add-persian
add persian language
2022-10-14 13:52:39 +02:00
Willem Wollebrants
0cbc5834b0
Merge pull request #350 from eugene-borovov/requirewith-dot-notation
Added dot notation to requireWith(out)
2022-10-14 13:52:03 +02:00
Justin Li
1b86b4f454 added missing translation for zh-cn and zh-tw 2022-10-11 11:56:38 -04:00
metakin
fbb596d220 typo fix 2022-10-11 03:22:02 +03:00
Willem Wollebrants
57a9f68f22
Merge pull request #363 from Tautve/issue_357
Fixed Issue #357
2022-10-03 09:50:30 +02:00
tautvydaskarvelis
fd902d1def Issue #357 2022-10-01 10:06:52 +03:00
mehdi hasanpour
ac960d625f add persian language 2022-07-02 15:59:33 +04:30
Willem Wollebrants
d0fb8ee84c
Merge pull request #354 from aldinhro/patch-1
Update sv.php
2022-03-16 10:16:07 +01:00
Aldin Hro
94c97e3e8e
Update sv.php
Added correct translations
2022-03-16 10:10:25 +01:00
Willem Wollebrants
9bf11f4374
Merge pull request #351 from hiroy/add-japanese-messages
Add Japanese messages for some rules
2021-12-07 09:05:12 +01:00
Hiroyuki Yamaoka
b619ef16ba Add Japanese messages for some rules 2021-12-07 14:18:08 +09:00
Eugene Borovov
b4e0d07495 Added dot notation to requireWith(out) 2021-11-21 01:55:32 +07:00
7 changed files with 150 additions and 72 deletions

42
lang/fa.php Normal file
View File

@ -0,0 +1,42 @@
<?php
return array(
'required' => "الزامی است",
'equals' => " باید برابر باشد با '%s'",
'different' => "باید متفاوت باشد از '%s'",
'accepted' => "باید پذیرفته شده باشد",
'numeric' => "باید مقدار عددی باشد",
'integer' => "باید عددی طبیعی باشد",
'length' => "طول باید %d باشد",
'min' => "حداقل باید %s کاراکتر باشد",
'max' => "نباید بیشتر از %s کارکتر باشد",
'listContains' => "حاوی مقدار نامعتبر",
'in' => "حاوی مقدار نامعتبر",
'notIn' => "حاوی مقدار نامعتبر",
'ip' => " آدرس معتبر نیست IP",
'ipv4' => "آدرس معتبر نیست IPv4",
'ipv6' => "آدرس معتبر نیست IPv6",
'email' => "آدرس ایمیل معتبر نیست",
'url' => "معتبر نیست URL",
'urlActive' => "دامنه باید فعال باشد",
'alpha' => "باید حاوی حروف a-z باشد",
'alphaNum' => "باید حاوی حروف a-z و/یا اعداد 0-9 باشد",
'slug' => "باید حاوی حروف a-z, اعداد 0-9, دش و آندراسکور باشد",
'regex' => "حاوی کارکترهای نامعتبر",
'date' => "تاریخ معتبر نیست",
'dateFormat' => "فرمت تاریخ باید به این شکل '%s' باشد",
'dateBefore' => "تاریخ باید قبل از '%s' باشد",
'dateAfter' => "تاریخ باید بعد از '%s' باشد",
'contains' => "باید حاوی %s باشد",
'boolean' => "مقدار باید بولین باشد",
'lengthBetween' => "طول باید بین %d و %d کاراکتر باشد",
'creditCard' => "شماره کارت اعتباری معتبر نیست",
'lengthMin' => "طول باید حداقل %d کاراکتر باشد",
'lengthMax' => "طول نباید بیشتر از %d کاراکتر باشد",
'instanceOf' => "باید آبجکتی از نوع '%s' باشد",
'containsUnique' => "باید حاوی المان ها یونیک باشد",
'requiredWith' => "الزامی است",
'requiredWithout'=> "الزامی است",
'subset' => "حاوی آیتمی است که در لیست موجود نیست",
'arrayHasKeys' => "همه کلیدهای الزامی را ندارد",
);

View File

@ -14,6 +14,8 @@ return array(
'in' => "には選択できない値が含まれています", 'in' => "には選択できない値が含まれています",
'notIn' => "には選択できない値が含まれています", 'notIn' => "には選択できない値が含まれています",
'ip' => "はIPアドレスの書式として正しくありません", 'ip' => "はIPアドレスの書式として正しくありません",
'ipv4' => "はIPv4のIPアドレスの書式として正しくありません",
'ipv6' => "はIPv6のIPアドレスの書式として正しくありません",
'email' => "はメールアドレスの書式として正しくありません", 'email' => "はメールアドレスの書式として正しくありません",
'url' => "はURLの書式として正しくありません", 'url' => "はURLの書式として正しくありません",
'urlActive' => "はアクティブなドメインではありません", 'urlActive' => "はアクティブなドメインではありません",
@ -32,4 +34,9 @@ return array(
'lengthMin' => "は%d文字以上入力してください", 'lengthMin' => "は%d文字以上入力してください",
'lengthMax' => "は%d文字以内で入力してください", 'lengthMax' => "は%d文字以内で入力してください",
'instanceOf' => "は「%s」のインスタンスではありません", 'instanceOf' => "は「%s」のインスタンスではありません",
'containsUnique' => "は重複のないように入力してください",
'requiredWith' => "を入力してください",
'requiredWithout' => "を入力してください",
'subset' => "には選択できない値が含まれています",
'arrayHasKeys' => "の必要な項目が選択されていません",
); );

View File

@ -13,23 +13,23 @@ return array(
'listContains' => "innehåller ogiltigt värde", 'listContains' => "innehåller ogiltigt värde",
'in' => "innehåller ogiltigt värde", 'in' => "innehåller ogiltigt värde",
'notIn' => "innehåller ogiltigt värde", 'notIn' => "innehåller ogiltigt värde",
'ip' => "är inte en giltlig IP-adress", 'ip' => "är inte en giltig IP-adress",
'email' => "är inte en giltlig e-postadress", 'email' => "är inte en giltig e-postadress",
'url' => "är inte en giltlig URL", 'url' => "är inte en giltig URL",
'urlActive' => "måste vara ett aktivt domännamn", 'urlActive' => "måste vara ett aktivt domännamn",
'alpha' => "får bara inehålla bokstäver a-z", 'alpha' => "får bara innehålla bokstäver a-z",
'alphaNum' => "får bara inehålla bokstäver a-z och/eller siffror 0-9", 'alphaNum' => "får bara innehålla bokstäver a-z och/eller siffror 0-9",
'slug' => "får bara inehålla bokstäver a-z och/eller siffror 0-9, bindesträck og understräck", 'slug' => "får bara innehålla bokstäver a-z och/eller siffror 0-9, bindesstreck och understreck",
'regex' => "inehåller ogiltliga tecken", 'regex' => "innehåller ogiltiga tecken",
'date' => "är inte ett giltligt datum", 'date' => "är inte ett giltigt datum",
'dateFormat' => "måste vara ett datum med formatet '%s'", 'dateFormat' => "måste vara ett datum med formatet '%s'",
'dateBefore' => "måste vara ett datum före '%s'", 'dateBefore' => "måste vara ett datum före '%s'",
'dateAfter' => "måste vara ett datum efter '%s'", 'dateAfter' => "måste vara ett datum efter '%s'",
'contains' => "måste innehålla %s", 'contains' => "måste innehålla %s",
'boolean' => "måste vara ett booleskt värde", 'boolean' => "måste vara ett booleskt värde",
'lengthBetween' => "måste vara mellan %d och %d tecken långt", 'lengthBetween' => "måste vara mellan %d och %d tecken långt",
'creditCard' => "måste vara et gyldig kredittkortnummer", 'creditCard' => "måste vara ett giltigt kreditkortsnummer",
'lengthMin' => "måste vara minst %d tecken långt", 'lengthMin' => "måste vara minst %d tecken långt",
'lengthMax' => "får itne överstiga %d tecken", 'lengthMax' => "får inte överstiga %d tecken",
'instanceOf' => "måste vara en instans av '%s'" 'instanceOf' => "måste vara en instans av '%s'"
); );

View File

@ -29,7 +29,7 @@ return array(
'boolean' => "boolean olmalı", 'boolean' => "boolean olmalı",
'lengthBetween' => "%d ve %d karakter arasında olmalı", 'lengthBetween' => "%d ve %d karakter arasında olmalı",
'creditCard' => "geçerli bir kredi kartı numarası olmalı", 'creditCard' => "geçerli bir kredi kartı numarası olmalı",
"lengthMin" => "%d katakterden fazla içermeli", "lengthMin" => "%d karakterden fazla içermeli",
"lengthMax" => "%d karakterden az içermeli", "lengthMax" => "%d karakterden az içermeli",
"instanceOf" => "bunun bir örneği olmalı '%s'" "instanceOf" => "bunun bir örneği olmalı '%s'"
); );

View File

@ -30,5 +30,11 @@ return array(
'lengthBetween' => "长度只能介于 %d 和 %d 之间", 'lengthBetween' => "长度只能介于 %d 和 %d 之间",
'creditCard' => "信用卡号码不正确", 'creditCard' => "信用卡号码不正确",
'lengthMin' => "长度必须大于 %d", 'lengthMin' => "长度必须大于 %d",
'lengthMax' => "长度必须小于 %d" 'lengthMax' => "长度必须小于 %d",
'instanceOf' => "必须是 '%s' 的实例",
'containsUnique' => "必须仅包含唯一的元素",
'requiredWith' => "是必须的",
'requiredWithout' => "是必须的",
'subset' => "包含不在列表中的项目",
'arrayHasKeys' => "不包含所有必需的键",
); );

View File

@ -25,5 +25,16 @@ return array(
'dateFormat' => "日期的格式應該為 '%s'", 'dateFormat' => "日期的格式應該為 '%s'",
'dateBefore' => "日期必須在 '%s' 之前", 'dateBefore' => "日期必須在 '%s' 之前",
'dateAfter' => "日期必須在 '%s' 之後", 'dateAfter' => "日期必須在 '%s' 之後",
'contains' => "必須包含 %s" 'contains' => "必須包含 %s",
'boolean' => "必須是真或假",
'lengthBetween' => "長度只能介於 %d 和 %d 之間",
'creditCard' => "信用卡號碼不正確",
'lengthMin' => "長度必須大於 %d",
'lengthMax' => "長度必須小於 %d",
'instanceOf' => "必須是 '%s' 的實例",
'containsUnique' => "必須僅包含唯一的元素",
'requiredWith' => "是必須的",
'requiredWithout' => "是必須的",
'subset' => "包含不在列表中的項目",
'arrayHasKeys' => "不包含所有必需的鍵",
); );

View File

@ -630,6 +630,10 @@ class Validator
*/ */
protected function validateEmailDNS($field, $value) protected function validateEmailDNS($field, $value)
{ {
if (!is_string($value)) {
return false;
}
if ($this->validateEmail($field, $value)) { if ($this->validateEmail($field, $value)) {
$domain = ltrim(stristr($value, '@'), '@') . '.'; $domain = ltrim(stristr($value, '@'), '@') . '.';
if (function_exists('idn_to_ascii') && defined('INTL_IDNA_VARIANT_UTS46')) { if (function_exists('idn_to_ascii') && defined('INTL_IDNA_VARIANT_UTS46')) {
@ -651,6 +655,10 @@ class Validator
*/ */
protected function validateUrl($field, $value) protected function validateUrl($field, $value)
{ {
if (!is_string($value)) {
return false;
}
foreach ($this->validUrlPrefixes as $prefix) { foreach ($this->validUrlPrefixes as $prefix) {
if (strpos($value, $prefix) !== false) { if (strpos($value, $prefix) !== false) {
return filter_var($value, \FILTER_VALIDATE_URL) !== false; return filter_var($value, \FILTER_VALIDATE_URL) !== false;
@ -669,6 +677,10 @@ class Validator
*/ */
protected function validateUrlActive($field, $value) protected function validateUrlActive($field, $value)
{ {
if (!is_string($value)) {
return false;
}
foreach ($this->validUrlPrefixes as $prefix) { foreach ($this->validUrlPrefixes as $prefix) {
if (strpos($value, $prefix) !== false) { if (strpos($value, $prefix) !== false) {
$host = parse_url(strtolower($value), PHP_URL_HOST); $host = parse_url(strtolower($value), PHP_URL_HOST);
@ -959,8 +971,8 @@ class Validator
$emptyFields = 0; $emptyFields = 0;
foreach ($reqParams as $requiredField) { foreach ($reqParams as $requiredField) {
// check the field is set, not null, and not the empty string // check the field is set, not null, and not the empty string
if (isset($fields[$requiredField]) && !is_null($fields[$requiredField]) list($requiredFieldValue, $multiple) = $this->getPart($fields, explode('.', $requiredField));
&& (is_string($fields[$requiredField]) ? trim($fields[$requiredField]) !== '' : true)) { if (isset($requiredFieldValue) && (!is_string($requiredFieldValue) || trim($requiredFieldValue) !== '')) {
if (!$allRequired) { if (!$allRequired) {
$conditionallyReq = true; $conditionallyReq = true;
break; break;
@ -1003,8 +1015,8 @@ class Validator
$filledFields = 0; $filledFields = 0;
foreach ($reqParams as $requiredField) { foreach ($reqParams as $requiredField) {
// check the field is NOT set, null, or the empty string, in which case we are requiring this value be present // check the field is NOT set, null, or the empty string, in which case we are requiring this value be present
if (!isset($fields[$requiredField]) || (is_null($fields[$requiredField]) list($requiredFieldValue, $multiple) = $this->getPart($fields, explode('.', $requiredField));
|| (is_string($fields[$requiredField]) && trim($fields[$requiredField]) === ''))) { if (!isset($requiredFieldValue) || (is_string($requiredFieldValue) && trim($requiredFieldValue) === '')) {
if (!$allEmpty) { if (!$allEmpty) {
$conditionallyReq = true; $conditionallyReq = true;
break; break;