Это очень интересная задача.
Как и
Никита, мы объявили маркер #CITY_NAME# (ну не прямо объявили, но договорились, что это значение нужно менять на название города пользователя в именительном падеже).
Далее изменили тексты всех необходимых частей. Затем на событии
OnEpilog мы заменяли данный маркер на город.
Для
отложенных функций (например
CMain::SetTitle)
следуя
порядку выполнения страницы на том же события переопределяли их значения.
Ну конечно же не стоит забывать об административной панеле: для них отложенные функции тоже работают, поэтому радуемся константе
ADMIN_SECTION, которая true в админке.