Вывод текста на разных языках
Файлы с поддерживаемыми языками находятся в папке resources/lang/.
- resources/lang/ru/
- resources/lang/en/
Laravel подключает файлы из папки текущего языка, который указывается в файле config/app.php.
# config/app.php return [ // … 'locale' => 'ru', 'fallback_locale' => 'ru', // подключается, если не найден перевод для текущего языка ];
Для вывода текста на текущем языке, в контроллере используется команда __()
, а в шаблоне используется {{ __() }}
или @lang
.
# контроллер echo __('messages.Hello') # шаблон {{ __('messages.Hello') }} <!-- 1-ый способ --> @lang('messages.Hello') <!-- 2-ой способ -->
Примеры выше не экранируют HTML-код, за исключением {{ __() }}
, т.к. для переменных внутри {{ }}
применяется функция htmlspecialchars()
.
Строка «messages.Hello» означает, что надо подключить файл «messages.php» и найти параметр «Hello».
# resources/lang/ru/messages.php return [ 'Hello' => 'Привет', ];
При необходимости, текущий язык можно указать в контроллере через метод App::setLocale()
.
public function index() { \App::setLocale('ru'); // … }
Вывод текста с параметрами
В языковых файлах можно передавать параметры, как на примере ниже.
# resources/lang/ru/messages.php return [ 'Hello' => 'Привет :name', ];
Указывается следующим образом:
@lang('messages.Hello', ['name' => 'John'])
В итоге на странице сгенерируется текст «Привет John».
Поддержать автора