Add better language support to Validator.
This commit is contained in:
@@ -30,6 +30,13 @@ class Validator {
|
|||||||
*/
|
*/
|
||||||
public $errors;
|
public $errors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The language that should be used when retrieving error messages.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $lang;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The "size" related validation rules.
|
* The "size" related validation rules.
|
||||||
*
|
*
|
||||||
@@ -425,15 +432,15 @@ class Validator {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$message = Lang::line('validation.'.$rule)->get();
|
$message = Lang::line('validation.'.$rule)->get($this->language);
|
||||||
|
|
||||||
// For "size" rules that are validating strings or files, we need to adjust
|
// For "size" rules that are validating strings or files, we need to adjust
|
||||||
// the default error message appropriately.
|
// the default error message appropriately.
|
||||||
if (in_array($rule, $this->size_rules) and ! is_numeric($this->attributes[$attribute]))
|
if (in_array($rule, $this->size_rules) and ! is_numeric($this->attributes[$attribute]))
|
||||||
{
|
{
|
||||||
return (array_key_exists($attribute, $_FILES))
|
return (array_key_exists($attribute, $_FILES))
|
||||||
? rtrim($message, '.').' '.Lang::line('validation.kilobytes')->get().'.'
|
? rtrim($message, '.').' '.Lang::line('validation.kilobytes')->get($this->language).'.'
|
||||||
: rtrim($message, '.').' '.Lang::line('validation.characters')->get().'.';
|
: rtrim($message, '.').' '.Lang::line('validation.characters')->get($this->language).'.';
|
||||||
}
|
}
|
||||||
|
|
||||||
return $message;
|
return $message;
|
||||||
@@ -451,7 +458,7 @@ class Validator {
|
|||||||
*/
|
*/
|
||||||
protected function format_message($message, $attribute, $rule, $parameters)
|
protected function format_message($message, $attribute, $rule, $parameters)
|
||||||
{
|
{
|
||||||
$display = Lang::line('attributes.'.$attribute)->get(null, function() use ($attribute) { return str_replace('_', ' ', $attribute); });
|
$display = Lang::line('attributes.'.$attribute)->get($this->language, function() use ($attribute) { return str_replace('_', ' ', $attribute); });
|
||||||
|
|
||||||
$message = str_replace(':attribute', $display, $message);
|
$message = str_replace(':attribute', $display, $message);
|
||||||
|
|
||||||
@@ -504,4 +511,16 @@ class Validator {
|
|||||||
return array(is_numeric($colon) ? substr($rule, 0, $colon) : $rule, $parameters);
|
return array(is_numeric($colon) ? substr($rule, 0, $colon) : $rule, $parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the language that should be used when retrieving error messages.
|
||||||
|
*
|
||||||
|
* @param string $langauge
|
||||||
|
* @return Validator
|
||||||
|
*/
|
||||||
|
public function lang($language)
|
||||||
|
{
|
||||||
|
$this->language = $language;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user