Если вы посмотрите в правый верхний угол любой страницы нашего сайта, то увидите там виджет смены локализации:

Т.к. этот виджет должен быть виден на всех страницах и во всех разделах сайта, целесообразно было интегрировать его в состав темы портала. В Liferay версий 6.0 - 6.1 это можно было сделать, добавив в нужный элемент разметки нужного vm-шаблона приблизительно такой код (приводится с фрагментом HTML-разметки):
<span class="language-switcher">
$taglibLiferay.language("fm", null, "languageId", 2)
</span>
Здесь 2 - порядковый номер языка (из списка - он настраивается в Панели управления), который будет выбран по умолчанию.
В настоящий момент мы с коллегами активно занимаемся апгрейдом сайта на актуальную версию Liferay (6.2.2), и, добавив сабжевый виджет в новую тему сайта обнаружили, что работает он весьма странно: с дефолтного языка (в нашем случае, русского) на недефолтный (английский) переключается, а обратно - не хочет.
При этом, судя по URL запросов, выбранный идентификатор языка на сервер отправляется, но до целевого портлета не доходит. Логично предположить, что в запросе либо неверно указан идентификатор выбранного языка, либо передаётся неправильный идентификатор портлета, который должен обработать сам запрос. С идентификатором языка проблема маловероятна (по запросу видно, что передаются те же самые "ru_RU" и "en_US", которые заданы в конфигах портала), а вот проблема с идентификатором портлета вполне возможна.
Небольшой гуглинг подтверждает наши подозрения - в версии 6.2 слегка изменились (в менее логичную сторону) параметры, необходимые для передачи запроса на смену выбранной локализации нужному обработчику. Так что, в соответствии с рекомендацией, меняем код встраивания виджета на такой:
<span class="language-switcher">
$taglibLiferay.language("fm", null, "_82_languageId", 2)
</span>
Видим, что добавилось прямое указание на идентификатор портлета-обработчика (82 - это Language Selector).
Пересобираем тему, деплоим, проверяем - всё заработало:
