Я использую класс HTTP-запросов Laravel для проверки некоторых данных формы. Для некоторых полей мне потребовалось закрытие, чтобы выполнить пользовательскую проверку.
Поскольку мое приложение имеет две локализации (английскую и немецкую), мне нужно перевести сообщения об ошибках, если проверка не удалась, что я уже сделал.
Единственной проблемой, с которой я столкнулся, было сообщение $fail()
в закрытии.
Вот как я могу перевести сообщение в зависимости от текущей локализации в закрытии:
if (app()->getLocale() == 'en') {
$fail('Please choose a name for "' .$value. '" in order to continue.');
}
elseif (app()->getLocale() == 'de') {
$fail('Bitte wählen Sie einen Namen für "' .$value. '" um fortzufahren.');
}
Я знаю, что могу использовать en.json
-файл, который я использую для перевода всего сайта, но я не смог бы использовать $value
внутри предложения.
Iмне интересно, есть ли лучший способ сделать это?
РЕДАКТИРОВАТЬ
Поскольку я использую замыкание, я должен написать немецкое сообщение об ошибке «по умолчанию» внутри замыкания, например:
$fail('Bitte wählen Sie einen Namen für "' .$value. '" um fortzufahren.');
Делая это так, я получаю значение $value
внутри сообщения об ошибке, которое отображается в виде:
@if ($errors->has('person.*.name'))
<label class="error-small">@lang($errors->first('person.*.name'))</label>
@endif
Таким образом, переменная $value
будет вставлена в сообщение,поэтому я больше не могу получить доступ к переменной через файл перевода json ..