Подтвердить что ты не робот

Многоязычность в Symfony2 и Twig

как создать многоязычную страницу в Symfony? В Symfony 1.0 учебник Jobeet имеет очень хорошее описание. Но теперь на symfony.com, я не видел ничего, связанного с переводом страницы. В symfony 1.4, echo __ ('text');, но теперь в Symfony 2 используется TWIG.

4b9b3361

Ответ 1

На веб-сайте Symfony2 есть раздел документации.

Вы можете проверить это здесь: Переводы

В принципе, у вас есть доступ в маршрутизации к специальному атрибуту с именем _locale, который помещается в ваш URL-адрес и будет использоваться для установки языкового стандарта в сеансе. Обратите внимание, что с использованием этой схемы значение локали автоматически устанавливается в Session с помощью Symfony2

http://www.host.com/en/contact // English version
http://www.host.com/fr/contact // French version

Вы также можете указать значение по умолчанию _locale в ваших маршрутах, поэтому необязательно предоставлять языковой код в URL-адресе.

http://www.host.com/contact    // English version if default _locale is 'en'

Затем в ветке вы используете специальный трансформатор trans и transchoice для перевода сообщений. Ваши сообщения могут быть ключевым или естественным языком, которое используется в качестве ключа, обычно на английском языке.

{{ 'user.prompt.welcome' | trans }} {# Key message #}
{{ 'Welcome to our site' | trans }} {# Natural language message #}

Локаль для перевода сообщения берется из сеанса, поэтому изменение языка в сеансе (через URL-адрес или программно) приведет к изменению перевода на другую.

Это использует службу translator под капотом.