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

Метод setLocale класса LocaleSwitcher

Метод setLocale класса LocaleSwitcher временно переключает локаль приложения на указанное значение. Первым параметром передаётся строка с кодом локали, например 'fr' или 'de'. Метод возвращает объект LocaleSwitcher, что позволяет выстраивать цепочку вызовов. Переключение действует до вызова метода reset или до завершения работы сервиса.

Синтаксис

public function setLocale(string $locale): self

Пример

Давайте переключим локаль на французскую и получим перевод строки:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentTranslationLocaleSwitcher; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(LocaleSwitcher $switcher): Response { $switcher->setLocale('fr'); return new Response('locale switched'); } } ?>

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

"locale switched"

Пример

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

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentTranslationLocaleSwitcher; use SymfonyContractsTranslationTranslatorInterface; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article/trans', name: 'article_trans')] public function trans( LocaleSwitcher $switcher, TranslatorInterface $translator ): Response { $switcher->setLocale('de'); return new Response($translator->trans('hello')); } } ?>

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

"hallo"

Пример

Давайте переключим локаль и вернём её к исходному значению через метод reset:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentTranslationLocaleSwitcher; use SymfonyContractsTranslationTranslatorInterface; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article/reset', name: 'article_reset')] public function reset( LocaleSwitcher $switcher, TranslatorInterface $translator ): Response { $switcher->setLocale('fr'); $translated = $translator->trans('hello'); $switcher->reset(); $original = $translator->trans('hello'); return new Response($translated . ' / ' . $original); } } ?>

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

"bonjour / hello"

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

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