Здравствуйте, подскажите как можно на сайте в твиге вывести ссылку на английскую версию сайта?
К примеру я сейчас нахожусь по ссылке https://site.ru/ru/about.html или https://site.ru/about.html и мне нужно на сайте вывести кнопку на английскую версию сайта, которая бы вела на текущую ссылку сайта, но уже вместо ru, чтобы было en, т.е. на страницу https://site.ru/en/about.html.
Как можно правильно это сделать, подскажите пожалуйста?
Как подставить ссылку на английскую версию сайта?
Главные вкладки
Лучший ответ
1
Artalek wrote: мне нужно на сайте вывести кнопку на английскую версию сайта, которая бы вела на текущую ссылку сайта, но уже вместо ru, чтобы было en
Именно для этого в ядре Друпала существует штатный блок Language switcher. Он чем-то не устраивает?
Комментарии
Всё зависит от того, какая версия главная. У главного языка префикса не будет
Главная ru, и мне как раз нужно на сайте вывести переключатель на en
Именно для этого в ядре Друпала существует штатный блок Language switcher. Он чем-то не устраивает?
Щас как раз пытаюсь его использовать, но все равно интересно, как формировать самому данные ссылки?
Потом так же интересно, я щас переопределил шаблон `links--language-block.html.twig`, но тут языки выводятся "Russian" и "English", как можно заменить на "Rus" и "Eng"?
Вообще говоря, ничто не мешает добавить префикс и для главного языка (и даже убрать его для одного из второстепенных). Language switcher для того и существует, чтобы с этим не заморачиваться. В одном месте (/admin/config/regional/language/detection) настроил как определяются языки и забыл. Потом передумал и поменял, а Language switcher по-прежнему работает.
Посмотреть какие переменные передаются в данный twig-шаблон, взять текущий path, заменить в нем компонент пути, отвечающий за язык.
С какой целью?
/admin/structure/menu/manage/language-switcher
там не та верстка, которая мне нужна была
Это сработало, но остался один нюанс, Ссылка для ru выглядит так "https://site.ru/ru/microservices.html", а для en вот так "https://site.ru/en/node/1".
Как можно сделать, чтобы и для en он показывать с ЧПУ вот "https://site.ru/en/microservices.html"?
Найти косяк с настройкой формирования алиасов для разных языков и исправить его.
OFF: А зачем на конце алиаса .html, и какое отношение это имеет к человекопонятности?
я имел ввиду синоним, я данной странице задал синоним /microservices.html
А как тут понять? мне нужно создать копию данной страницы для EN? с тем же синонимом?
Да вообще-то нет в этом необходимости. У меня все алиасы/синонимы определяются только на английском, при этом переключение на русский идёт на
/ru/<alias>
. Возможно дело в том, что в настройках URL Redirects у меня стоит настройка "Enforce clean and canonical URLs."? Не помню, очень давно настраивал.