Если по поводу интерфейса - копайте в сторону QTranslator, про динамическое переключение почитайте у Бланшет (часть 3, гл. 17) . Что касается раскладок, то, насколько мне известно (гуру поправьте, если я не прав), непосредственно Qt не предоставляет кроссплатформенных инструментов для таких действий, узнать раскладку можно через локаль, думаю, а вот чтобы что-то изменить, тут надо лезть в винапи, а если на линуксе, то что-то типа setxkbmap.
http://www.prog.org.ru/topic_12065_0.html тут определение раскладки обсуждалось.