2014-09-25 5 views
2

Всякий раз, когда я использую функцию trans() для возврата определенного перевода из файла validation.php, он работает просто отлично. У меня есть два языка в моем приложении, и переводы возвращаются для них обоих.Laravel - проверка локализации не работает

Однако, когда я использую валидатор Laravel, он возвращает сообщения только в локали по умолчанию. Есть что-то, что мне нужно указать в валидаторе? Как заставить его работать на обоих языках?

ответ

0

Вам необходимо передать третьим параметрам ваши переводы. Давайте предположим, что вы определили свои поля, правила и валидатор, как в следующем коде:

$data = Input::only('title'); 
$rules['title'] = 'required|min:20|max:80', 
$validator = Validator::make($data, $rules, 
      Lang::get('forms.validation.entry')); 

Теперь вам нужно определить свои переводы. Давайте предположим, что вам нужен перевод fr Ланга поэтому необходимо совместно создать lang/fr/forms.php файл и поместить следующее содержимое в него:

<?php 

return 

array (
    'validation' => array (
    'entry' => array (
     'title.required' => 'Your translation for title required', 
     'title.min' => 'Your translation for title min', 
     'title.max' => 'Your translation for title max', 
    ) 
) 
); 

Конечно, вы можете создать файл с простым массивом, но это просто пример - вместо forms.validation.entry это может быть например, forms или validation.

0

Проблема возникла из моей реализации локализации. Я добавил App::setLocale(Session::get('lang')); в метод App::before() в файле filters.php, и все это работает сейчас.

+0

Я думаю, вы должны принять этот ответ! –

Смежные вопросы