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

Метод setLocale

Метод setLocale класса Request устанавливает локаль (язык и регион) для текущего HTTP-запроса. Первым параметром передаётся строка с кодом локали, например 'ru', 'en' или 'fr_FR'. Локаль влияет на форматирование дат, чисел, валют и переводы в приложении.

Метод возвращает объект Request, что позволяет использовать цепочку вызовов. Значение локали сохраняется внутри объекта запроса и доступно через метод getLocale.

Синтаксис

$request->setLocale(string $locale): static

Пример

Давайте установим локаль 'ru' и выведем её значение:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { $request->setLocale('ru'); return new Response($request->getLocale()); } } ?>

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

"ru"

Пример

Давайте установим локаль 'fr_FR' и используем её для перевода:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; use SymfonyContractsTranslationTranslatorInterface; class ArticleController extends AbstractController { #[Route('/article/translate', name: 'article_translate')] public function translate(Request $request, TranslatorInterface $translator): Response { $request->setLocale('fr_FR'); $message = $translator->trans('hello'); return new Response($message); } } ?>

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

"bonjour"

Пример

Давайте установим локаль на основе параметра из URL:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article/{locale}', name: 'article_locale')] public function locale(string $locale, Request $request): Response { $request->setLocale($locale); return new Response($request->getLocale()); } } ?>

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

"en"

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

  • метод getLocale,
    который возвращает текущую локаль запроса
  • класс Request,
    который представляет HTTP-запрос в Symfony
  • метод getMethod,
    который возвращает HTTP-метод запроса
  • метод getPathInfo,
    который возвращает путь запроса без query-строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить