Тут нужно сделать следующее.
Для менюшек вставленных вручную
1. нужны файлы языков в зоне шаблона. не скажу, что 100%, но в реалии они уже могут быть. это папка /template/frontend/realia/language. Если ее нет, то просто создайте ее и внутри нее создайте подпапки по вашим рабочим языкам - /template/frontend/realia/language/en /template/frontend/realia/language/ru.
2. В каждой из этих папок должен лежать файл с именем dictionary.ini для хранения языковых меток.
3. внутри этот файл выглядит как-то так:
LT_NEWS="News"
LT_FOR_USER="For users"
LT_USEFUL="Usefull"
LT_SPECIAL="Special"
метка="текстовое_значение_на_соотв_языке"
4. Берете все ваши пункты меню из примера и проставляете метки
LT_MN_HOME="Главная"
LT_MN_ABCOMP="О компании"
LT_MN_OUTCITYEST="Иногородняя недвижимость"
напр для русского. названия меток не принципиальны, но я бы рекомендовал ставить префикс LT_ что бы потом знать где метка описана. таким префиксом я обозначаю метки из папки шаблона в отличии от меток из приложений или системных.
5. Сами текстовые слова в getTemplateMenu текстовые надписи меняем на
Multilanguage::_('LT_MN_HOME', '_template'); c указанием подходящих меток.
...
array('id'=>0,'title'=>Multilanguage::_('LT_MN_HOME', '_template'),'position'=>'behind'),
...
Для менюшек вставленных из заготовленных меню и Контент - Меню
Я внес некоторые изменения в файл сборщика меню для реалии http://pastebin.com/XAr8uPvR для функции getTemplateMenu (правки на лету, код сырой. может сразу не завестись. я тут, если кто-то будет пробовать, пишите сюда)
От вас требуется задать для пунктов меню соотвествующие языковые поля-клоны.
Кеширование убрано из индивидуальных сессий в общий файл-хранилище.