Функция autoKeyboardLang заменяет каждую латинскую букву на соответствующую русскую, сохраняя регистр.
autoKeyboardLang: function(str) {
var s = [
"й","ц","у","к","е","н","г","ш","щ","з","х","ъ",
"ф","ы","в","а","п","р","о","л","д","ж","э",
"я","ч","с","м","и","т","ь","б","ю"
];
var r = [
"q","w","e","r","t","y","u","i","o","p","[","]",
"a","s","d","f","g","h","j","k","l",";","'",
"z","x","c","v","b","n","m",",","."
];
for (var i = 0; i < r.length; i++) {
var reg = new RegExp(r[i], 'mig');
str = str.replace(reg, function(a) {
return a == a.toLowerCase() ? s[i] : s[i].toUpperCase();
});
}
return str;
}Применять только если строка содержит латиницу и не является уже русской:
if (!/^[а-яё ]*$/i.test(s)) {
$(input).val(autoKeyboardLang(s));
}