Функция trans
Функция trans переводит текст на текущий язык.
Первым параметром передаётся строка для перевода,
вторым - массив параметров для подстановки,
третьим - домен перевода.
Функция доступна внутри сервиса Translator
и в Twig-шаблонах через фильтр trans.
Синтаксис
$translator->trans(string $id, array $parameters = [], string $domain = null, string $locale = null)
Пример
Давайте переведём строку 'hello' на текущий язык:
<?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('/', name: 'article_index')]
public function index(TranslatorInterface $translator): Response
{
$res = $translator->trans('hello');
return new Response($res);
}
}
?>
Результат выполнения кода:
"hello"
Пример
Давайте переведём строку с подстановкой параметра:
<?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('/', name: 'article_index')]
public function index(TranslatorInterface $translator): Response
{
$res = $translator->trans('hello %name%', ['%name%' => 'user']);
return new Response($res);
}
}
?>
Результат выполнения кода:
"hello user"
Пример
Давайте переведём строку из конкретного домена:
<?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('/', name: 'article_index')]
public function index(TranslatorInterface $translator): Response
{
$res = $translator->trans('hello', [], 'admin');
return new Response($res);
}
}
?>
Результат выполнения кода:
"hello"
Пример
Давайте используем перевод в Twig-шаблоне:
<p>{{ 'hello'|trans }}</p>
<p>{{ 'hello %name%'|trans({'%name%': 'user'}) }}</p>
Результат выполнения кода:
<p>hello</p>
<p>hello user</p>
Смотрите также
-
класс
Translator,
который выполняет перевод текста -
метод
getLocale,
который возвращает текущую локаль -
метод
setLocale,
который задаёт текущую локаль -
тег
trans,
который переводит текст в Twig-шаблоне