Как перевести полную страницу в Symfony? - PullRequest
0 голосов
/ 05 июня 2019

Обычно, когда я пользуюсь услугами переводчика, у меня есть подписчик events, чтобы перевести локаль из пользовательских настроек, сохраненных в запросе как _locale.Это работает для слов или фраз, через файлы yaml как сообщения или валидаторы.Но представьте, что у вас есть политика конфиденциальности.

Как лучше всего перевести полную страницу, используя услуги переводчика в Symfony 4?

1 Ответ

2 голосов
/ 06 июня 2019

Для чего-то, что является целой страницей, у меня часто будет отдельный шаблон или, по крайней мере, часть страницы, которая будет включена в целую страницу.

Вы можете получить _locale из $ request, а затем выбрать другой шаблон, основанный на нем. В простейшем случае, $this->twig->renderResponse("privacy.{$locale}.html.twig");, или передайте его и включите включенный шаблон в контент уровня страницы.

Для динамических имен шаблонов я делал нечто подобное раньше - это упрощенная версия (у меня было две переменные, а не только $place).

$tplName = "policies/privacy_{$place}.html.twig";
if (!$this->twig->exists($tplName)) {
    $tplName = "policies/privacy_uk.html.twig";
    $place = 'uk';
}

return $this->twig->renderResponse($tplName, ['place' => $place]);

Точно так же вы можете передать $tplName в рендеринг в качестве переменной и использовать его в качестве параметра для включения частичного шаблона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...