РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
918 of 1392 menu

Метод setLocale

Метод setLocale класса Lang устанавливает текущую локаль приложения. Первым и единственным параметром передаётся строка с кодом локали (например, 'en', 'ru', 'es'). После вызова этого метода все последующие переводы будут выполняться с использованием указанной локали.

Синтаксис

<?php Lang::setLocale($locale); ?>

Пример

Давайте установим русскую локаль для всего приложения:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Lang; class ArticleController extends Controller { public function index() { Lang::setLocale('ru'); $message = Lang::get('messages.welcome'); echo $message; } } ?>

Результат выполнения кода:

"Добро пожаловать"

Пример

Установим локаль на основе параметра из сессии пользователя:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Lang; use Illuminate\Support\Facades\Session; class UserController extends Controller { public function setLanguage($locale) { Session::put('locale', $locale); Lang::setLocale($locale); echo "Locale set to: " . Lang::getLocale(); } } ?>

Результат выполнения кода при вызове с параметром 'fr':

"Locale set to: fr"

Пример

Метод setLocale также можно использовать в middleware для автоматического определения языка по заголовкам запроса:

<?php namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Lang; class LocalizationMiddleware { public function handle($request, Closure $next) { $locale = $request->getPreferredLanguage(['en', 'ru', 'es']); if ($locale) { Lang::setLocale($locale); } return $next($request); } } ?>

Результат выполнения кода при запросе с предпочтением русского языка:

"Locale automatically set to: ru"

Пример

Использование setLocale с проверкой существования локали:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Lang; class LocaleController extends Controller { public function switchLocale($locale) { $availableLocales = ['en', 'ru', 'es', 'de']; if (in_array($locale, $availableLocales)) { Lang::setLocale($locale); $res = "Locale switched to: " . $locale; } else { $res = "Locale " . $locale . " is not available"; } echo $res; } } ?>

Результат выполнения кода при попытке установить недоступную локаль:

"Locale it is not available"

Смотрите также

  • метод getLocale,
    который возвращает текущую установленную локаль
  • метод setLocale,
    который устанавливает локаль через фасад App
  • функция trans,
    которая используется для перевода строк
  • метод has,
    который проверяет существование ключа перевода
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить