как создать многоязычную страницу в Symfony? В Symfony 1.0 учебник Jobeet имеет очень хорошее описание. Но теперь на symfony.com, я не видел ничего, связанного с переводом страницы. В symfony 1.4, echo __ ('text');, но теперь в Symfony 2 используется TWIG.
Многоязычность в Symfony2 и Twig
Ответ 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
под капотом.