Добавлено: 8 ноября 2010 г.
Позволяет делать прямой и обратный перевод слов и фраз из заранее приготовленного словаря.
Словарь - двумерный массив (массив из массивов ['слово','перевод']
Для перевода нужно вызвать функцию translate(), для обратного перевода translate(1).
Исходное слово берется из элемента с id="trans-from", если там пусто, то берется выделение на странице,
перевод помещается в элемент с id="trans-to".
var vcb=[ //словарь ['Привет','Hello'], ['Обезьяна','monkey'], ['Апельсин','orange'], ['Тарелка','plate'], ['Книга','book'], ['мышь','mouse'] ]; function translate(direction){ var selected_text = ( (window.getSelection && window.getSelection()) || (document.getSelection && document.getSelection()) || (document.selection && document.selection.createRange && document.selection.createRange().text) ); var from= document.getElementById('trans-from'); var to = document.getElementById('trans-to'); if((!from && !selected_text) || !to){ return } from= from||{}; from = from.value || from.innerHTML || selected_text; //from = from.toString().replace(/\s/g,'').toLowerCase(); from = from.toString().replace(/^\s*|\s*$/g,'').replace(/\s+/g,' ').toLowerCase(); if(!from) return; //проверим наличие свойств у 'trans-to' if('value' in to){ to.value= get_translate(); return; }; if('innerHTML' in to){ to.innerHTML= get_translate(); return; }; function get_translate(){ for(var i=0; i<vcb.length; i++) { if(!direction){ //прямой перевод if(vcb[i][0].toLowerCase() == from) return vcb[i][1]; }else{//обратныйй перевод if(vcb[i][1].toLowerCase() == from) return vcb[i][0]; }; };//for return 'Нет в словаре'; }; };
В HTML-коде можно разместить форму с двумя полями input и кнопками, у которых прописать атрибуты onclick. Например, так:
<form> <input type="text" id="trans-from"> <input type="text" id="trans-to"> <input type="button" value="To English" onclick="translate()"> <input type="button" value="На русский" onclick="translate(1)"> </form>
Вот как это может выглядеть, тестируем! Слово для перевода можно вносить в поле формы или же выделять мышью на странице.
Привет, Обезьяна, Апельсин, Тарелка, Книга, Мышь Hello, monkey, orange, plate, book, mouse