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

Метод getLocale

Метод getLocale класса Translator возвращает текущую локаль, установленную в переводчике. Локаль - это языковой код (например, 'ru', 'en', 'de'), который определяет, из какого файла переводов будут браться сообщения. Метод не принимает параметров и возвращает строку с кодом текущей локали.

Синтаксис

public function getLocale(): string

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(TranslatorInterface $translator): Response { $res = $translator->getLocale(); return new Response($res); } } ?>

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

"en"

Пример

Давайте сначала изменим локаль методом setLocale, а затем прочитаем её через getLocale:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; class ArticleController extends AbstractController { #[Route('/article/locale', name: 'article_locale')] public function locale(TranslatorInterface $translator): Response { $translator->setLocale('ru'); $res = $translator->getLocale(); return new Response($res); } } ?>

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

"ru"

Пример

Давайте выведем локаль вместе с переведённым сообщением, чтобы убедиться, что перевод берётся из нужного файла:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; class ArticleController extends AbstractController { #[Route('/article/hello', name: 'article_hello')] public function hello(TranslatorInterface $translator): Response { $translator->setLocale('de'); $locale = $translator->getLocale(); $message = $translator->trans('hello'); $res = $locale . ': ' . $message; return new Response($res); } } ?>

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

"de: hallo"

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

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