ха-ха .. я вот придумал сделать 2 матрицы раскладок.. но жестко для русского и инглиша
`1234567890-=qwertyuiop[]asdfghjkl;'\\zxcvbnm,./789+4561230.
ё1234567890-=йцукенгшщзхъфывапролджэ\\ячсмитьбю.789+4561230,
далее искать нужный символ и менять

большой и маленький легко отличать )
кто что-то универсальней подскажет?