Commit 9f09af4a by Taylor Otwell

Add better language support to Validator.

parent 341908d7
...@@ -31,6 +31,13 @@ class Validator { ...@@ -31,6 +31,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.
* *
* @var array * @var array
...@@ -425,15 +432,15 @@ class Validator { ...@@ -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 { ...@@ -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 { ...@@ -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;
}
} }
\ No newline at end of file
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