Commit c0aee634 by Camoo Sarl

Airtime Payload object added

parent fb3ab65c
<?php
require_once('src/autoload.php');
$oClient = new \CAMOO\Airtime\Airtime('592595095gh57', '4e32da5979879b89479847b9798479494984');
$oAirtime = new \CAMOO\Airtime\Airtime('592595095gh57', '4e32da5979879b89479847b9798479494984');
// Retrieve TopUp option for a phone number
var_dump($oClient->getMsisdnInfo(237671234567));
$oAirtime->destination_msisdn='237671234567';
$oAirtime->topup=1500;
$oAirtime->msisdn='237340404';
/*
$oAirtime->send_sms=true;
$oAirtime->sms='Developer own custom message';
$oAirtime->sender_sms=true;
$oAirtime->sender_text='Customer own custom message';
*/
#Retrieve TopUp option for a phone number
//var_dump($oAirtime->getTopupList());
#Retrieve MsisdnInfo
//var_dump($oAirtime->getMsisdnInfo());
#retrieve WholeSalePriceList
//var_dump($oAirtime->getWholeSalePriceList());
#Retrieve retail price list
//var_dump($oAirtime->getRetailPriceList());
var_dump($oAirtime->send());
......@@ -12,22 +12,65 @@ namespace CAMOO\Airtime;
* Description: CAMOO Airtime API
*
* @link http://www.camoo.cm
*/
*/
use CAMOO\Client;
use CAMOO\Airtime\Payload;
use CAMOO\Exceptions\CamooException;
class Airtime extends Client{
public function __construct ($api_key, $api_secret) {
parent::__construct($api_key, $api_secret, __CLASS__);
}
public function __construct ($api_key, $api_secret) {
parent::__construct($api_key, $api_secret, __CLASS__);
}
public function __get($property) {
$hPayload = Payload::create()->get();
return $hPayload[$property];
}
public function getMsisdnInfo($sPhone) {
$this->oHttpClient->setResourceName('msisdnInfo');
return $this->get(['phone' => $sPhone]);
public function __set($property, $value) {
Payload::create()->set($property, $value);
return $this;
}
}
private function _getAction() {
try {
return $this->get(Payload::create()->get());
} catch ( CamooException $err ) {
echo $err->getMessage();
exit();
}
}
public function getMsisdnInfo() {
$this->oHttpClient->setResourceName('msisdnInfo');
return $this->_getAction();
}
public function getTopupList() {
$this->oHttpClient->setResourceName('topuplist');
return $this->_getAction();
}
public function getWholeSalePriceList() {
$this->oHttpClient->setResourceName('wholesaleprice');
return $this->_getAction();
}
public function getRetailPriceList() {
$this->oHttpClient->setResourceName('retailprice');
return $this->_getAction();
}
public function send() {
try {
return $this->post(Payload::create()->get(true, 'send'));
} catch ( CamooException $err) {
echo $err->getMessage();
die;
}
}
}
<?php
namespace CAMOO\Airtime;
/**
*
* CAMOO SARL: http://www.camoo.cm
* @copyright (c) camoo.cm
* @license: You are not allowed to sell or distribute this software without permission
* Copyright reserved
* File: src/CAMOO/Airtime/Payload.php
* updated: Mai 2017
* Created by: Epiphane Tchabom (e.tchabom@camoo.cm)
* Description: CAMOO Airtime API
*
* @link http://www.camoo.cm
*/
require_once(CAMOO_ROOT_SRC_DIR .'vendor/autoload.php');
use Valitron\Validator;
use CAMOO\Exceptions\CamooException;
final class Payload{
private $destination_msisdn = null;
private $msisdn = null;
private $topup = null;
private $send_sms = false;
private $sms = null;
private $sender_sms = false;
private $sender_text = null;
private function ValidatorDefault(Validator $oValidator) {
$oValidator
->rule('required', ['destination_msisdn']);
return $oValidator;
}
private function ValidatorSend(Validator $oValidator) {
$oValidator
->rule('required', ['destination_msisdn', 'topup', 'msisdn']);
$oValidator
->rule('optional', ['sms', 'sender_sms']);
$oValidator
->rule('boolean', 'send_sms');
$oValidator
->rule('boolean', 'sender_sms');
$this->notBlankRule($oValidator, 'topup');
return $oValidator;
}
private function notBlankRule(&$oValidator, $sParam) {
$oValidator
->rule(function($field, $value, $params, $fields) {
if (is_null($value) || empty($value) ) {
return false;
} elseif (is_string($value) && trim($value) === '') {
return false;
}
return true;
}, $sParam)->message("{field} failed...");
}
protected static $_create = null;
public static function create()
{
if ( is_null(static::$_create) )
{
static::$_create = new self;
}
return static::$_create;
}
public function set($sProperty, $value) {
$this->$sProperty = $value;
}
public function get($validate=true, $validator='default') {
$hPayload = get_object_vars($this);
if ( $validate === true && method_exists($this, 'Validator' .ucfirst($validator)) ) {
$sValidator = 'Validator' .ucfirst($validator);
$oValidator = $this->$sValidator(new Validator($hPayload));
if ( $oValidator->validate() === false ) {
throw new CamooException($oValidator->errors());
}
}
return $hPayload;
}
protected function __clone() {}
/**
* constructor
*
*/
protected function __construct() {
}
}
......@@ -61,7 +61,6 @@ class Base {
/**
* constructor
*
* externe Instanzierung verbieten
*/
protected function __construct() {
}
......
......@@ -19,4 +19,17 @@ namespace CAMOO\Exceptions;
*
*/
use Exception;
class CamooException extends Exception {}
class CamooException extends Exception {
/**
* Json encodes the message and calls the parent constructor.
*
* @param null $message
* @param int $code
* @param Exception|null $previous
*/
public function __construct($message = null, $code = 0, Exception $previous = null)
{
parent::__construct(json_encode($message), $code, $previous);
}
}
......@@ -6,4 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Valitron' => array($vendorDir . '/vlucas/valitron/src'),
);
......@@ -52,11 +52,22 @@ class ComposerStaticInitfc3fe251899047fc20c7e533ad2074e3
),
);
public static $prefixesPsr0 = array (
'V' =>
array (
'Valitron' =>
array (
0 => __DIR__ . '/..' . '/vlucas/valitron/src',
),
),
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitfc3fe251899047fc20c7e533ad2074e3::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitfc3fe251899047fc20c7e533ad2074e3::$prefixDirsPsr4;
$loader->prefixesPsr0 = ComposerStaticInitfc3fe251899047fc20c7e533ad2074e3::$prefixesPsr0;
}, null, ClassLoader::class);
}
......
......@@ -294,5 +294,53 @@
"JWS",
"jwt"
]
},
{
"name": "vlucas/valitron",
"version": "v1.4.0",
"version_normalized": "1.4.0.0",
"source": {
"type": "git",
"url": "https://github.com/vlucas/valitron.git",
"reference": "b33c79116260637337187b7125f955ae26d306cc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/vlucas/valitron/zipball/b33c79116260637337187b7125f955ae26d306cc",
"reference": "b33c79116260637337187b7125f955ae26d306cc",
"shasum": ""
},
"require": {
"php": ">=5.3.2"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
},
"time": "2017-02-23T08:31:59+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-0": {
"Valitron": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD"
],
"authors": [
{
"name": "Vance Lucas",
"email": "vance@vancelucas.com",
"homepage": "http://www.vancelucas.com"
}
],
"description": "Simple, elegant, stand-alone validation library with NO dependencies",
"homepage": "http://github.com/vlucas/valitron",
"keywords": [
"valid",
"validation",
"validator"
]
}
]
The BSD 3-Clause License
http://opensource.org/licenses/BSD-3-Clause
Copyright (c) 2013, Vance Lucas
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Vance Lucas nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
{
"name": "vlucas/valitron",
"type": "library",
"description": "Simple, elegant, stand-alone validation library with NO dependencies",
"keywords": ["validation", "validator", "valid"],
"homepage": "http://github.com/vlucas/valitron",
"license" : "BSD",
"authors" : [
{
"name": "Vance Lucas",
"email": "vance@vancelucas.com",
"homepage": "http://www.vancelucas.com"
}
],
"require": {
"php": ">=5.3.2"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
},
"autoload": {
"psr-0": {
"Valitron": "src/"
}
},
"scripts": {
"test": "./vendor/bin/phpunit"
}
}
<?php
return array(
'required' => "مطلوب",
'equals' => "يجب أن يكون مساوي لي '%s'",
'different' => "يجب ان يكون غير '%s'",
'accepted' => "يجب ان يكون نعم",
'numeric' => "يجب ان يكون رقم",
'integer' => "يجب ان يكون رقم (0-9)",
'length' => "يجب ان يكون أطول من %d",
'min' => "يجب ان يكون اعلي من %s",
'max' => "يجب ان يكون اقل من %s",
'in' => "الُمدخل يغير صحيح",
'notIn' => "الُمدخل يغير صحيح",
'ip' => "رقم الإتصال غير صحيح",
'email' => "البريد الألكتروني غير صحيح",
'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"
);
<?php
return array(
'required' => "mütləqdir",
'equals' => "'%s' olmalıdır",
'different' => "'%s'-dən fərqli olmalıdır",
'accepted' => "Qeyd dilməlidir",
'numeric' => "rəqəm olmalıdır",
'integer' => "tam ədəd olmalıdır",
'length' => "%d qədər uzunluğu olmalıdır",
'min' => "minimum %s qədər olmalıdır",
'max' => "maksimum %s qədər olmalıdır",
'in' => "yalnış dəyər ehtiva edir",
'notIn' => "yalnış dəyər ehtiva edir",
'ip' => "düzgün IP ünvanı deyil",
'email' => "düzgün email ünvanı deyil",
'url' => "URL deyil",
'urlActive' => "aktiv domain olmalıdır",
'alpha' => "ancaq latın hərfləri ehtiva etməlidir",
'alphaNum' => "ancaq latın hərfləri və(və ya) rəqəmlər ehtiva etməlidir",
'slug' => "ancaq latın hərfləri,rəqəmlər,tire və altdan xət ehtiva etməlidir",
'regex' => "etiabrsız sinvollar ehtiva edir",
'date' => "tarix deyil",
'dateFormat' => "tarix formatı bu cür olmalıdır: %s",
'dateBefore' => "tarix %s -dən əvvəl olmamalıdır",
'dateAfter' => "tarix %s -dən sonra olmamalıdır",
'contains' => "%s ehtiva etməlidir",
'boolean' => "boolen olmalıdır",
'lengthBetween' => "%d - %d sinvolları arası ehtiva etməlidir",
'creditCard' => "kredir kart nömrəsi olmalıdır",
"lengthMin" => "%d -dən çox sinvol olmalıdır",
"lengthMax" => "%d -dən az sinvol olmalıdır",
"instanceOf" => "'%s' əvəzinə olmalıdır"
);
<?php
return array(
'required' => "ist erforderlich",
'equals' => "muss identisch mit '%s' sein",
'different' => "muss sich von '%s' unterscheiden",
'accepted' => "muss markiert sein",
'numeric' => "muss eine Zahl sein",
'integer' => "muss eine ganze Zahl sein",
'length' => "kann nicht länger als %d sein",
'min' => "muss größer als %s sein",
'max' => "muss kleiner als %s sein",
'in' => "enthält einen ungültigen Wert",
'notIn' => "enthält einen ungültigen Wert",
'ip' => "enthält keine gültige IP-Addresse",
'email' => "enthält keine gültige E-Mail-Adresse",
'url' => "enthält keine gültige URL",
'urlActive' => "muss eine aktive Domain sein",
'alpha' => "darf nur Buchstaben enthalten",
'alphaNum' => "darf nur Buchstaben und Ganzzahlen enthalten",
'slug' => "darf nur Buchstaben, Ganzzahlen, Schrägstriche und Grundstriche enthalten",
'regex' => "enthält ungültige Zeichen",
'date' => "enthält kein gültiges Datum",
'dateFormat' => "benötigt ein Datum im Format '%s'",
'dateBefore' => "benötigt ein Datum, das vor dem '%s' liegt",
'dateAfter' => "benötigt ein Datum, das nach dem '%s' liegt",
'contains' => "muss %s beinhalten",
'boolean' => "muss ein Wahrheitswert sein",
'lengthBetween' => "benötigt zwischen %d und %d Zeichen",
'creditCard' => "muss eine gültige Kreditkartennummer sein",
"lengthMin" => "muss mindestens %d Zeichen enthalten",
"lengthMax" => "kann nicht mehr als %d Zeichen enthalten"
);
<?php
return array(
'required' => "είναι απαραίτητο",
'equals' => "πρέπει να είναι ίδιο με '%s'",
'different' => "πρέπει να διαφέρει από '%s'",
'accepted' => "πρέπει να έχει αποδεχτεί",
'numeric' => "πρέπει να είναι αριθμός",
'integer' => "πρέπει να είναι ακέραιος αριθμός (0-9)",
'length' => "πρέπει να είναι μεγαλύτερο από %d",
'min' => "πρέπει να είναι τουλάχιστον %s",
'max' => "δεν πρέπει να είναι περισσότερο από %s",
'in' => "περιέχει μη έγκυρη τιμή",
'notIn' => "περιέχει μη έγκυρη τιμή",
'ip' => "δεν είναι έγκυρη διεύθυνση IP",
'email' => "δεν είναι έγκυρη διεύθυνση email",
'url' => "δεν είναι URL",
'urlActive' => "πρέπει να είναι ενεργό domain",
'alpha' => "πρέπει να περιέχει μόνο χαρακτήρες",
'alphaNum' => "πρέπει να περιέχει μόνο χαρακτήρες και/ή αριθμούς",
'slug' => "πρέπει να περιέχει μόνο χαρακτήρες, αριθμούς, παύλες και κάτω παύλες",
'regex' => "περιέχει μη έγκυρους χαρακτήρες",
'date' => "δεν είναι έγκυρη ημερομηνία",
'dateFormat' => "πρέπει να είναι ημερομηνία της μορφής '%s'",
'dateBefore' => "πρέπει να είναι ημερομηνία πριν από '%s'",
'dateAfter' => "πρέπει να είναι ημερομηνία μετά από '%s'",
'contains' => "πρέπει να περιέχει %s",
'boolean' => "πρέπει να είναι boolean",
'lengthBetween' => "πρέπει να είναι μεταξύ %d και %d χαρακτήρων",
'creditCard' => "πρέπει να είναι ένα έγκυρο νούμερο πιστωτικής κάρτας",
"lengthMin" => "πρέπει να περιέχει περισσότερους από %d χαρακτήρες",
"lengthMax" => "πρέπει να περιέχει λιγότερους από %d χαρακτήρες",
"instanceOf" => "πρέπει να είναι αντικείμενο της '%s'"
);
<?php
return array(
'required' => "is required",
'equals' => "must be the same as '%s'",
'different' => "must be different than '%s'",
'accepted' => "must be accepted",
'numeric' => "must be numeric",
'integer' => "must be an integer (0-9)",
'length' => "must be %d characters long",
'min' => "must be at least %s",
'max' => "must be no more than %s",
'in' => "contains invalid value",
'notIn' => "contains invalid value",
'ip' => "is not a valid IP address",
'email' => "is not a valid email address",
'url' => "is not a valid URL",
'urlActive' => "must be an active domain",
'alpha' => "must contain only letters a-z",
'alphaNum' => "must contain only letters a-z and/or numbers 0-9",
'slug' => "must contain only letters a-z, numbers 0-9, dashes and underscores",
'regex' => "contains invalid characters",
'date' => "is not a valid date",
'dateFormat' => "must be date with format '%s'",
'dateBefore' => "must be date before '%s'",
'dateAfter' => "must be date after '%s'",
'contains' => "must contain %s",
'boolean' => "must be a boolean",
'lengthBetween' => "must be between %d and %d characters",
'creditCard' => "must be a valid credit card number",
'lengthMin' => "must be at least %d characters long",
'lengthMax' => "must not exceed %d characters",
'instanceOf' => "must be an instance of '%s'"
);
<?php
return array(
'required' => "es requerido",
'equals' => "debe ser igual a '%s'",
'different' => "debe ser diferente a '%s'",
'accepted' => "debe ser aceptado",
'numeric' => "debe ser numérico",
'integer' => "debe ser un entero (0-9)",
'length' => "debe ser mas largo de %d",
'min' => "debe ser mayor a %s",
'max' => "debe ser menor a %s",
'in' => "contiene un valor invalido",
'notIn' => "contiene un valor invalido",
'ip' => "no es una dirección IP",
'email' => "no es un correo electrónico válido",
'url' => "no es una URL",
'urlActive' => "debe ser un dominio activo",
'alpha' => "debe contener solo letras a-z",
'alphaNum' => "debe contener solo letras a-z o números 0-9",
'slug' => "debe contener solo letras a-z, números 0-9, diagonales y guiones bajos",
'regex' => "contiene caracteres inválidos",
'date' => "no es una fecha válida",
'dateFormat' => "debe ser una fecha con formato '%s'",
'dateBefore' => "debe ser una fecha antes de '%s'",
'dateAfter' => "debe ser una fecha después de '%s'",
'contains' => "debe contener %s",
'boolean' => "debe ser booleano",
'lengthBetween' => "debe ser entre %d y %d caracteres",
'creditCard' => "debe ser un numero de tarjeta de crédito válido",
"lengthMin" => "debe contener mas de %d caracteres",
"lengthMax" => "debe contener menos de %d caracteres",
"instanceOf" => "debe ser una instancia de '%s'"
);
<?php
return array(
'required' => "vaaditaan",
'equals' => "ei ole sama kuin '%s'",
'different' => "on sama kuin '%s'",
'accepted' => "ei ole hyväksytty",
'numeric' => "ei ole numeerinen",
'integer' => "ei ole kokonaisluku (0-9)",
'length' => "on lyhyempi kuin %d",
'min' => "ei ole vähintään %s",
'max' => "ei ole enintään %s",
'in' => "sisältää virheellisen arvon",
'notIn' => "sisältää virheellisen arvon",
'ip' => "ei ole oikeanmuotoinen IP-osoite",
'email' => "ei ole oikeanmuotoinen sähköpostiosoite",
'url' => "ei ole URL",
'urlActive' => "ei ole aktiivinen verkkotunnus",
'alpha' => "sisältää muita merkkejä kuin a-z",
'alphaNum' => "sisältää muita merkkejä kuin a-z ja 0-9",
'slug' => "sisältää muita merkkejä kuin a-z, 0-9, - ja _",
'regex' => "sisältää virheellisiä merkkejä",
'date' => "ei ole oikeanmuotoinen päivämäärä",
'dateFormat' => "ei ole päivämäärä muotoa '%s'",
'dateBefore' => "ei ole päivämäärä ennen '%s'",
'dateAfter' => "ei ole päivämäärä '%s' jälkeen",
'contains' => "ei sisällä merkkijonoa %s",
'boolean' => "ei ole totuusarvo",
'lengthBetween' => "ei ole %d-%d merkkiä pitkä",
'creditCard' => "ei ole pätevä luottokortin numero",
"lengthMin" => "ei ole vähintään %d merkkiä pitkä",
"lengthMax" => "ei ole enintään %d merkkiä pitkä",
"instanceOf" => "ei ole luokan '%s' ilmentymä"
);
<?php
return array(
'required' => "est obligatoire",
'equals' => "doit être identique à '%s'",
'different' => "doit être différent de '%s'",
'accepted' => "doit être accepté",
'numeric' => "doit être numérique",
'integer' => "doit être un entier (0-9)",
'length' => "doit être plus long que %d",
'min' => "doit être plus grand que %s",
'max' => "doit être plus petit que %s",
'in' => "contient une valeur non valide",
'notIn' => "contient une valeur non valide",
'ip' => "n'est pas une adresse IP valide",
'email' => "n'est pas une adresse email valide",
'url' => "n'est pas une URL",
'urlActive' => "doit être un domaine actif",
'alpha' => "doit contenir uniquement les lettres a-z",
'alphaNum' => "doit contenir uniquement des lettres de a-z et/ou des chiffres 0-9",
'slug' => "doit contenir uniquement des lettres de a-z, des chiffres 0-9, des tirets et des traits soulignés",
'regex' => "contient des caractères invalides",
'date' => "n'est pas une date valide",
'dateFormat' => "doit être une date avec le format '%s'",
'dateBefore' => "doit être une date avant '%s'",
'dateAfter' => "doit être une date après '%s'",
'contains' => "doit contenir %s",
'boolean' => "doit être un booléen",
);
<?php
return array(
'required' => "harus diisi",
'equals' => "harus sama dengan '%s'",
'different' => "harus berbeda dengan '%s'",
'accepted' => "harus diterima (accepted)",
'numeric' => "harus berupa nomor/angka",
'integer' => "harus berupa nilai integer (0-9)",
'length' => "harus lebih panjang dari %d",
'min' => "harus lebih besar dari %s",
'max' => "harus kurang dari %s",
'in' => "berisi nilai/value yang tidak valid",
'notIn' => "berisi nilai/value yang tidak valid",
'ip' => "format alamat IP tidak benar",
'email' => "format alamat email tidak benar",
'url' => "bukan format URL yang benar",
'urlActive' => "harus berupa domain aktif",
'alpha' => "hanya boleh menggunakan huruf a-z",
'alphaNum' => "hanya boleh menggunakan huruf a-z dan atau nomor 0-9",
'slug' => "hanya boleh menggunakan huruf a-z, nomor 0-9, tanda minus (-), dan uderscore atau strip bawah (_)",
'regex' => "berisi karakter yang tidak valid",
'date' => "format tanggal tidak valid",
'dateFormat' => "harus berupa tanggal dengan format '%s'",
'dateBefore' => "tanggal harus sebelum tanggal '%s'",
'dateAfter' => "tanggal harus sesudah tanggal '%s'",
'contains' => "harus berisi %s",
'boolean' => "harus berupa nilai boolean",
'lengthBetween' => "harus diantara karakter %d dan %d",
'creditCard' => "nomor kartu kredit harus valid",
"lengthMin" => "minimal berisi %d karakter",
"lengthMax" => "maksimal berisi %d karakter"
);
<?php
return array(
'required' => "è obbligatorio",
'equals' => "deve essere uguale a '%s'",
'different' => "deve essere differente da '%s'",
'accepted' => "deve essere accettato",
'numeric' => "deve essere numerico",
'integer' => "deve essere un intero (0-9)",
'length' => "deve avere una lunghezza di %d",
'min' => "deve essere superiore a %s",
'max' => "deve essere inferiore a %s",
'in' => "contiene un valore non valido",
'notIn' => "contiene un valore non valido",
'ip' => "non è un indirizzo IP valido",
'email' => "non è un indirizzo email valido",
'url' => "non è una URL",
'urlActive' => "deve essere un dominio attivo",
'alpha' => "deve contenere solamente lettere (a-z)",
'alphaNum' => "deve contenere solamente lettere (a-z) e/o numeri (0-9)",
'slug' => "deve contenere solamente lettere (a-z), numeri (0-9), trattini (-) e trattini bassi (_)",
'regex' => "contiene caratteri non validi",
'date' => "non è una data valida",
'dateFormat' => "deve essere una data nel formato '%s'",
'dateBefore' => "deve essere una data precedente al '%s'",
'dateAfter' => "deve essere una data successiva al '%s'",
'contains' => "deve contenere %s",
'boolean' => "deve essere un booleano",
'lengthBetween' => "deve essere compreso tra %d e %d caratteri",
'creditCard' => "deve essere un numero di carta di credito valido"
);
<?php
return array(
'required' => "を入力してください",
'equals' => "は「%s」と同じ内容を入力してください",
'different' => "は「%s」と異なる内容を入力してください",
'accepted' => "に同意してください",
'numeric' => "は数値を入力してください",
'integer' => "は半角数字で入力してください",
'length' => "は%d文字で入力してください",
'min' => "には%sより大きな値を入力してください",
'max' => "には%sより小さな値を入力してください",
'in' => "には選択できない値が含まれています",
'notIn' => "には選択できない値が含まれています",
'ip' => "はIPアドレスの書式として正しくありません",
'email' => "はメールアドレスの書式として正しくありません",
'url' => "はURLの書式として正しくありません",
'urlActive' => "はアクティブなドメインではありません",
'alpha' => "は半角英字で入力してください",
'alphaNum' => "は半角英数字で入力してください",
'slug' => "は半角英数字、もしくは「-」「_」の文字で入力してください",
'regex' => "の書式が正しくありません",
'date' => "は日付の書式として正しくありません",
'dateFormat' => "は「%s」の書式で日付を入力してください",
'dateBefore' => "は「%s」以前の日付を入力してください",
'dateAfter' => "は「%s」以後の日付を入力してください",
'contains' => "は「%s」を含んでいなければいけません",
'boolean' => "は真偽値である必要があります",
'lengthBetween' => "は%d〜%d文字で入力してください",
'creditCard' => "はクレジットカード番号の書式として正しくありません",
'lengthMin' => "は%d文字以上入力してください",
'lengthMax' => "は%d文字以内で入力してください",
'instanceOf' => "は「%s」のインスタンスではありません",
);
<?php
return array(
'required' => "ir obligāts lauks",
'equals' => "jāsakrīt ar '%s'",
'different' => "nedrīkst sakrist ar '%s' lauku",
'accepted' => "laukam jābūt apstiprinātam",
'numeric' => "jābūt skaitliskai vērtībai",
'integer' => "jābūt ciparam (0-9)",
'length' => "nedrīkst būt garāks par %d simboliem",
'min' => "jābūt garākam par %s simboliem",
'max' => "jābūt īsākam par %s simboliem",
'in' => "lauks satur nederīgu vērtību",
'notIn' => "lauks satur nederīgu vērtību",
'ip' => " lauks nav derīga IP adrese",
'email' => "lauks nav norādīta derīga epasta adrese",
'url' => "lauks nav tīmekļa saite",
'urlActive' => "saite neatrodas esošajā domēna vārdā",
'alpha' => "lauks var saturēt tikai alfabēta burtus a-z",
'alphaNum' => "lauks var saturēt tikai alfabēta burtus un/vai ciparus 0-9",
'slug' => "lauks var saturēt tikai alfabēta burtus un/vai ciparus 0-9, domuzīmes and zemsvītras",
'regex' => "lauks satur nederīgus simbolus",
'date' => "lauks ir nederīgā datuma formātā",
'dateFormat' => "laukam jābūt datuma formātā '%s'",
'dateBefore' => "lauka datumam jābūt pirms '%s'",
'dateAfter' => "lauka datumam jābūt pēc '%s'",
'contains' => "laukam jāsatur %s",
'boolean' => "laukam jābūt ir/nav vērtībai",
'lengthBetween' => "lauka garumam jābūt no %d līdz %d simbolu garam",
'creditCard' => "laukam jābūt derīgam kredītkartes numuram"
);
<?php
return array(
'required' => "is verplicht",
'equals' => "moet gelijk zijn aan '%s'",
'different' => "moet verschillend zijn van '%s'",
'accepted' => "moet aanvaard worden",
'numeric' => "moet numeriek zijn",
'integer' => "moet een cijfer zijn (0-9)",
'length' => "moet minstens %d karakters lang zijn",
'min' => "moet minstens %s zijn",
'max' => "mag niet meer zijn dan %s",
'in' => "bevat een ongeldige waarde",
'notIn' => "bevat een ongeldige waarde",
'ip' => "is geen geldig IP-adres",
'email' => "is geen geldig e-mailadres",
'url' => "is geen geldige URL",
'urlActive' => "moet een actief domein zijn",
'alpha' => "mag enkel letters (a-z) bevatten",
'alphaNum' => "mag enkel letters (a-z) en/of cijfers (0-9) bevatten",
'slug' => "mag enkel letters (a-z), cijfers (0-9) en liggende streepjes (_,-) bevatten",
'regex' => "bevat ongeldige karakters",
'date' => "is geen geldige datum",
'dateFormat' => "moet een datum zijn in het formaat '%s'",
'dateBefore' => "moet een datum voor '%s' zijn",
'dateAfter' => "moet een datum na '%s' zijn",
'contains' => "moet '%s' bevatten",
'boolean' => "moet een booleaanse waarde zijn",
'lengthBetween' => "moet tussen %d en %d karakters lang zijn",
'creditCard' => "moet een geldig kredietkaartnummer zijn",
"lengthMin" => "moet meer dan %d karakters lang zijn",
"lengthMax" => "mag niet meer dan %d karakters lang zijn",
"instanceOf" => "moet een instantie zijn van '%s'"
);
<?php
return array(
'required' => "er nødvendig",
'equals' => "må være de samme som '%s'",
'different' => "må være annerledes enn '%s'",
'accepted' => "må aksepteres",
'numeric' => "må være numerisk",
'integer' => "må være et heltall (0-9)",
'length' => "må være %d tegn",
'min' => "må være minst %s",
'max' => "må ikke være mer enn %s",
'in' => "inneholder ugyldig verdi",
'notIn' => "inneholder ugyldig verdi",
'ip' => "er ikkje ein gyldig IP Adresse",
'email' => "er ikkje ein gyldig E-post adresse",
'url' => "er ikkje ein gyldig URL",
'urlActive' => "må være eit aktivt domene",
'alpha' => "må bare innholde bokstaver a-z",
'alphaNum' => "må bare innholde bokstaver a-z og/eller tall 0-9",
'slug' => "må bare innholde bokstaver a-z og/eller tall 0-9, bindestreker og understreker",
'regex' => "inneholder ulovlige tegn",
'date' => "er ikkje ein gylid dato",
'dateFormat' => "må være ein dato med formatet '%s'",
'dateBefore' => "må være ein dato før '%s'",
'dateAfter' => "må være ein dato etter '%s'",
'contains' => "må inneholde %s",
'boolean' => "må være ein boolsk verdi",
'lengthBetween' => "må være imellom %d og %d tegn",
'creditCard' => "må være et gyldig kredittkortnummer",
'lengthMin' => "må være minst %d tegn",
'lengthMax' => "må ikkje overstige %d tegn",
'instanceOf' => "må være ein instans av '%s'"
);
<?php
return array(
'required' => "jest wymagane",
'equals' => "musi być takie same jak '%s'",
'different' => "musi być różne od '%s'",
'accepted' => "musi być zaakceptowane",
'numeric' => "musi być liczbą",
'integer' => "musi być liczbą całkowitą (0-9)",
'length' => "musi być dłuższe niż %d",
'min' => "musi być przynajmniej %s",
'max' => "nie może być większe niż %s",
'in' => "zawiera nieprawidłową wartość",
'notIn' => "zawiera nieprawidłową wartość",
'ip' => "nie jest prawidłowym adresem IP",
'email' => "nie jest prawidłowym adresem email",
'url' => "nie jest URL",
'urlActive' => "musi być aktywną domeną",
'alpha' => "musi zawierać tylko litery a-z",
'alphaNum' => "musi zawierać tylko litery a-z i/lub cyfry 0-9",
'slug' => "musi zawierać tylko litery a-z i/lub cyfry 0-9, myślinik I podkreślnik",
'regex' => "zawiera nieprawidłowe znaki",
'date' => "nie jest prawidłową datą",
'dateFormat' => "Data musi być w formacie '%s'",
'dateBefore' => "Data musi występować przed '%s'",
'dateAfter' => "Data musi następować po '%s'",
'contains' => "Musi zawierać %s",
'boolean' => "musi być wartością logiczną",
'lengthBetween' => "ilość znaków musi być między %d a %d",
'creditCard' => "musi być prawidłowym numerem karty kredytowej",
"lengthMin" => "musi zawierać więcej niż %d znaków",
"lengthMax" => "musi zawierać mniej niż %d znaków",
"instanceOf" => "musi być instancją '%s'",
);
<?php
return array(
'required' => "é obrigatório",
'equals' => "deve ser o mesmo que '%s'",
'different' => "deve ser diferente de '%s'",
'accepted' => "deve ser aceito",
'numeric' => "deve ser um número",
'integer' => "deve ser um inteiro (0-9)",
'length' => "deve ter %d caracteres",
'min' => "deve ser maior que %s",
'max' => "deve ser menor que %s",
'in' => "contém um valor inválido",
'notIn' => "contém um valor inválido",
'ip' => "não é um IP válido",
'email' => "não é um email válido",
'url' => "não é uma URL válida",
'urlActive' => "deve ser um domínio ativo",
'alpha' => "deve conter as letras a-z",
'alphaNum' => "deve conter apenas letras a-z e/ou números 0-9",
'slug' => "deve conter apenas letras a-z, números 0-9, ou os caracteres - ou _",
'regex' => "contém caracteres inválidos",
'date' => "não é uma data válida",
'dateFormat' => "deve ser uma data no formato '%s'",
'dateBefore' => "deve ser uma data anterior a '%s'",
'dateAfter' => "deve ser uma data posterior a '%s'",
'contains' => "deve conter %s"
);
<?php
return array(
'required' => "se cere",
'equals' => "trebuie sa fie la fel ca '%s'",
'different' => "trebuie sa fie diferit de '%s'",
'accepted' => "trebuie sa fie acceptat",
'numeric' => "trebuie sa fie numeric",
'integer' => "trebuie sa fie intreg (0-9)",
'length' => "trebuie sa fie mai lung decat %d",
'min' => "trebuie sa fie cel putin %s",
'max' => "nu trebuie sa fie mai mult de %s",
'in' => "contine caractere invalide",
'notIn' => "contine o valoare invalida",
'ip' => "nu este o adresa IP valida",
'email' => "nu este o adresa de email valida",
'url' => "nu este un URL",
'urlActive' => "trebuie sa fie un domeniu activ",
'alpha' => "trebuie sa contina doar litere de la a-z",
'alphaNum' => "trebuie sa contina doar numere de la a-z si/sau numere 0-9",
'slug' => "trebuie sa contina doar litere de la a-z, numere de la 0-9, cratime si underline '_'",
'regex' => "contine caractere invalide",
'date' => "nu este o data valida",
'dateFormat' => "trebuie sa fie o data care sa aiba forma '%s'",
'dateBefore' => "trebuie sa fie o data inainte de '%s'",
'dateAfter' => "trebuie sa fie o data dupa '%s'",
'contains' => "trebuie sa contina %s",
'boolean' => "trebuie sa fie o constructie logica",
'lengthBetween' => "trebuie sa contina intre %d si %d caractere",
'creditCard' => "trebuie sa fie nu numar de card de credit valid",
"lengthMin" => "trebuie sa contina caractere mai multe decat %d",
"lengthMax" => "trebuie sa contina mai putin de %d caractere",
"instanceOf" => "trebuie sa fie un exemplu de '%s’",
);
<?php
return array(
'required' => "обязательно для заполнения",
'equals' => "должно содержать '%s'",
'different' => "должно отличаться от '%s'",
'accepted' => "должно быть указано",
'numeric' => "должно содержать числовое значение",
'integer' => "должно быть числом (0-9)",
'length' => "должно быть длиннее, чем %d",
'min' => "должно быть больше, чем %s",
'max' => "должно быть меньше, чем %s",
'in' => "содержит неверное значение",
'notIn' => "содержит неверное значение",
'ip' => "не является валидным IP адресом",
'email' => "не является валидным email адресом",
'url' => "не является валидной ссылкой",
'urlActive' => "содержит не активную ссылку",
'alpha' => "должно содержать только латинские символы",
'alphaNum' => "должно содержать только латинские символы и/или цифры",
'slug' => "должно содержать только латинские символы, цифры, тире и подчёркивания",
'regex' => "содержит недопустимые символы",
'date' => "не является датой",
'dateFormat' => "должно содержать дату следующего формата: %s",
'dateBefore' => "должно содержать дату не позднее, чем %s",
'dateAfter' => "должно содержать дату не ранее, чем %s",
'contains' => "должно содержать %s",
'boolean' => "должно содержать логическое значение",
'lengthBetween' => "должно содержать от %d до %d символов",
'creditCard' => "должно быть номером кредитной карты",
'lengthMin' => "должно содержать более %d символов",
'lengthMax' => "должно содержать менее %d символов",
'instanceOf' => "должно быть объектом класса '%s'"
);
<?php
return array(
'required' => "je povinná položka",
'equals' => "musí byť rovnaký ako '%s'",
'different' => "musí byť rôzny od '%s'",
'accepted' => "musí byť akceptovaný",
'numeric' => "musí byť číslo",
'integer' => "musí byť celé číslo (0-9)",
'length' => "musí byť dlhý aspoň %d",
'min' => "musí byť dlhý minimálne %s",
'max' => "musí byť maximálne %s",
'in' => "obsahuje nepovolenú hodnotu",
'notIn' => "obsahuje nepovolenú hodnotu",
'ip' => "nie je korektná IP adresa",
'email' => "nie je korektný e-mail",
'url' => "nie je URL",
'urlActive' => "musí byť aktívna URL",
'alpha' => "musí obsahovať len písmená a-z",
'alphaNum' => "musí obsahovať len písmená a-z a/alebo čísla 0-9",
'slug' => "musí obsahovať len písmená a-z, čísla 0-9, pomlčky alebo podtržítka",
'regex' => "obsahuje nepovolené znaky",
'date' => "nie je korektný formáť",
'dateFormat' => "musí byť dátum formátu '%s'",
'dateBefore' => "musí byť dátum pred '%s'",
'dateAfter' => "musí byť dátum po '%s'",
'contains' => "musí obsahovať %s",
'boolean' => "musí byť pravdivostná hodnota (boolean)",
'lengthBetween' => "musí byť %d až %d znakov dlhý",
'creditCard' => "musí byť korektné číslo kreditnej karty",
"lengthMin" => "musí byť aspoň %d znakov dlhý",
"lengthMax" => "musí byť najviac %d znakov dlhý",
"instanceOf" => "musí byť inštanciou '%s'"
);
<?php
return array(
'required' => "นั้นจำเป็นต้องมี",
'equals' => "ต้องเหมือนกับ '%s'",
'different' => "ต้องแตกต่างจาก '%s'",
'accepted' => "ต้องถูกยอมรับ",
'numeric' => "ต้องเป็นตัวเลข",
'integer' => "ต้องเป็นตัวเลข integer (0-9)",
'length' => "ต้องมีความยาวมากกว่า %d",
'min' => "ต้องมีอย่างน้อย %s",
'max' => "ต้องไม่มากเกิน %s",
'in' => "ประกอบด้วยค่าที่ไม่ถูกต้อง",
'notIn' => "ประกอบด้วยค่าที่ไม่ถูกต้อง",
'ip' => "ไม่ใช่ IP ที่ถูกต้อง",
'email' => "ไม่ใช่อีเมลที่ถูกต้อง",
'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' => "ต้องเป็น boolean",
'lengthBetween' => "ต้องอยู่ระหว่าง %d ถึง %d ตัวอักษร",
'creditCard' => "ต้องเป็นหมายเลขบัตรเครดิตที่ถูกต้อง",
"lengthMin" => "ต้องมีมากกว่า %d ตัวอักษร",
"lengthMax" => "ต้องมีน้อยกว่า %d ตัวอักษร",
"instanceOf" => "ต้องเป็นส่วนหนึ่งของ '%s'"
);
<?php
return array(
'required' => "gerekli ",
'equals' => "bununla aynı olmalı '%s'",
'different' => "bundan değişik olmalı '%s'",
'accepted' => "kabul edilebilir olmalı",
'numeric' => "numerik olmalı",
'integer' => "sayı olmalı (0-9)",
'length' => "en az %d adet uzunluğunda olmalı",
'min' => "en az böyle olmalı %s",
'max' => "bundan daha fazla olmalı %s",
'in' => "geçersiz değer içeriyor",
'notIn' => "geçersiz değer içeriyor",
'ip' => "geçerli bir IP adresi değil",
'email' => "geçerli bir eposta adresi değil",
'url' => "bir URL değil",
'urlActive' => "aktif bir alan adı olmalı",
'alpha' => "sadece harf içermeli a-z",
'alphaNum' => "sadece harf (a-z) ve/veya sayılar (0-9) içermeli",
'slug' => "sadece harf (a-z), numbers sayılar (0-9), tire ve alt tire içermeli",
'regex' => "geçersiz karakterler içeriyor",
'date' => "geçerli bir karakter değil",
'dateFormat' => "bu biçimde bir tarih olmalı '%s'",
'dateBefore' => "bu tarihden önce olmalı '%s'",
'dateAfter' => "bu tarihden sonra olmalı '%s'",
'contains' => "bunu içermeli %s",
'boolean' => "boolean olmalı",
'lengthBetween' => "%d ve %d karakter arasında olmalı",
'creditCard' => "geçerli bir kredi kartı numarası olmalı",
"lengthMin" => "%d katakterden fazla içermeli",
"lengthMax" => "%d karakterden az içermeli",
"instanceOf" => "bunun bir örneği olmalı '%s'"
);
<?php
return array(
'required' => "обов'язкове для заповнення",
'equals' => "має містити '%s'",
'different' => "має відрізнятися від '%s'",
'accepted' => "має бути вказаним",
'numeric' => "має містити числове значення",
'integer' => "має бути числом",
'length' => "має бути довшим, ніж %d",
'min' => "має бути більше, ніж %s",
'max' => "повинно бути менше, ніж %s",
'in' => "містить невірне значення",
'notIn' => "містить невірне значення",
'ip' => "не є валідною IP адресою",
'email' => "не є валідною email адресою",
'url' => "не є посиланням",
'urlActive' => "містить не активне посилання",
'alpha' => "повинно містити тільки латинські символи",
'alphaNum' => "повинно містити тільки латинські символи та/або цифри",
'slug' => "повинно містити тільки латинські символи, цифри, тире і підкреслення",
'regex' => "містить неприпустимі символи",
'date' => "не є датою",
'dateFormat' => "має містити дату наступного формату:%s",
'dateBefore' => "має містити дату не пізнішу, ніж %s",
'dateAfter' => "має містити дату не ранішу, ніж %s",
'contains' => "має містити %s",
'boolean' => "має містити логічне значення",
'lengthBetween' => "має містити від %d в до %d символів",
'creditCard' => "має бути номером кредитної картки",
"lengthMin" => "має містити більше %d символів",
"lengthMax" => "має містити менше %d символів"
);
<?php
return array(
'required' => "là bắt buộc",
'equals' => "phải giống '%s'",
'different' => "phải khác '%s'",
'accepted' => "được chấp nhận",
'numeric' => "phải là số",
'integer' => "phải là số nguyên (0-9)",
'length' => "phải dài hơn %d",
'min' => "ít nhất %s",
'max' => "tối đa %s",
'in' => "chứa giá trị không hợp lệ",
'notIn' => "chứa giá trị không hợp lệ",
'ip' => "địa chỉ IP không hợp lệ",
'email' => "địa chỉ email không hợp lệ",
'url' => "không phải là URL",
'urlActive' => "Domain chưa được kích hoạt",
'alpha' => "chỉ chứa các kí tự a-z",
'alphaNum' => "chỉ chứa các kí tự a-z hoặc số 0-9",
'slug' => "chỉ chứa các kí tự a-z, số 0-9, gạch nối và gạch dưới",
'regex' => "chứa kí tự không hợp lệ",
'date' => "thời gian hợp lệ",
'dateFormat' => "thời gian nên được định dạng '%s'",
'dateBefore' => "thời gian nên trước '%s'",
'dateAfter' => "thời gian nên sau '%s'",
'contains' => "phải chứa %s",
'boolean' => "phải là boolean",
'lengthBetween' => "phải từ %d đến %d kí tự",
'creditCard' => "credit card không hợp lệ",
"lengthMin" => "ít nhất %d kí tự",
"lengthMax" => "tối đa %d kí tự",
"instanceOf" => "phải là instance của '%s'"
);
<?php
return array(
'required' => "不能为空",
'equals' => "必须和 '%s' 一致",
'different' => "必须和 '%s' 不一致",
'accepted' => "必须接受",
'numeric' => "只能是数字",
'integer' => "只能是整数(0-9)",
'length' => "长度必须大于 %d",
'min' => "必须大于 %s",
'max' => "必须小于 %s",
'in' => "无效的值",
'notIn' => "无效的值",
'ip' => "无效IP地址",
'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"
);
<?php
return array(
'required' => "不能為空",
'equals' => "必須和 '%s' 一致",
'different' => "必須和 '%s' 不一致",
'accepted' => "必須接受",
'numeric' => "只能是數字",
'integer' => "只能是整數(0-9)",
'length' => "長度必須大於 %d",
'min' => "必須大於 %s",
'max' => "必須小於 %s",
'in' => "無效的值",
'notIn' => "無效的值",
'ip' => "無效IP地址",
'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"
);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment