QWERTY транслитерация

Автор: Romych

Скрипт в помощь рассеяным и забывчивым людям.
Допустим, вы только что искали в инете или общались с кем-то на английском, одновременно пытаетесь кому-то что-то отвечать на форуме, набрали текст глядя на клаву и не поднимая головы на монитор, потом БАЦ! обнаруживаете, что забыли переключить раскладку, и весь текст надо набирать заново, а мысль уже куда-то ушла... Да и отвечать уже не хочется.
Данный скрипт призван решать эту проблему и с помощью одного нажатия вот такой текст:

Z njhjgk.cm e,tuf. yf hf,jne dtxthjv ,ele d bytnt b dc` hfccrf;e gjlhj,ytt

превратится вот в такой:

Я тороплюсь убегаю на работу вечером буду в инете и всё расскажу подробнее

Выкладываю 2 варианта, первый срабатывает (конвертирует набранный текст в кириллицу) при двойном клике мышью в поле ответа, где набираете текст.
Если скрипт нужен только при использовании в постах, то можно поставить его в HTML в форме ответа, если же он нужен и при личной переписке, то ставим в HTML низ.

Код:
<!--qwerty транслитерация-->
<script type="text/javascript">
var lat=['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','\,','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','<','>','`','~'];
var rus=['й','ц','у','к','е','н','г','ш','щ','з','ф','ы','в','а','п','р','о','л','д','ж','э','я','ч','с','м','и','т','ь','б','Й','Ц','У','К','Е','Н','Г','Ш','Щ','З','Х','Ъ','Ф','Ы','В','А','П','Р','О','Л','Д','Ж','Э','Я','Ч','С','М','И','Т','Ь','Б','Ю','ё','Ё'];
$('textarea#main-reply').dblclick(function () {
var i=0;for(i=0; i<=(lat.length-1); i++){
p=$(this).val();
trans='/'+lat[i]+'/g';
$(this).val(p.replace(eval(trans), rus[i]));
if(p.indexOf("[")!= -1) {txt2=p.replace(/\[/gi, "х");$(this).val(txt2);}
if(p.indexOf("]")!= -1) {txt2=p.replace(/\]/gi, "ъ");$(this).val(txt2);}
if(p.indexOf(".")!= -1) {txt2=p.replace(/\./gi, "ю");$(this).val(txt2);}
} });
</script>

вариант второй, срабатывает (конвертирует набранный текст в кириллицу) при стандартной смене раскладки клавиатуры, т.е. при нажатии заветной комбинации ALT+Shift

Код:
<!--qwerty транслитерация-->
<script type="text/javascript">
var lat=['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','\,','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','<','>','`','~'];
var rus=['й','ц','у','к','е','н','г','ш','щ','з','ф','ы','в','а','п','р','о','л','д','ж','э','я','ч','с','м','и','т','ь','б','Й','Ц','У','К','Е','Н','Г','Ш','Щ','З','Х','Ъ','Ф','Ы','В','А','П','Р','О','Л','Д','Ж','Э','Я','Ч','С','М','И','Т','Ь','Б','Ю','ё','Ё'];
$('textarea#main-reply').map(function () {
$(this).bind('keydown', function(event){ if (event.keyCode==18) { 
var i=0;for(i=0; i<=(lat.length-1); i++){
p=$(this).val();
trans='/'+lat[i]+'/g';
$(this).val(p.replace(eval(trans), rus[i]));
if(p.indexOf("[")!= -1) {txt2=p.replace(/\[/gi, "х");$(this).val(txt2);}
if(p.indexOf("]")!= -1) {txt2=p.replace(/\]/gi, "ъ");$(this).val(txt2);}
if(p.indexOf(".")!= -1) {txt2=p.replace(/\./gi, "ю");$(this).val(txt2);}
} } }); });
</script>

Отредактировано Герда (16.05.13 11:12)