Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Мгновенный транслит на Javascript Instant_translit (https://javascript.ru/forum/project/6579-mgnovennyjj-translit-na-javascript-instant_translit.html)

ageent.ua 07.12.2009 00:53

Мгновенный транслит на Javascript Instant_translit
 
Не так давно довелось делать один иностранный сайт, на нем встала задача создания мгновенного транслита с английского языка на русский. Встала такая задача потому как у большинства наших людей за границей просто нет русской раскладки клавиатуры, и остается либо писать транслитом (который я с трудом читаю, ибо у каждого в голове свои правила транслита) либо идти на сервис translit.ru и писать там русский текст, потом копировать, потом вставлять и наконец отправлять собеседнику. Плагин Instant_translit, по сути, является маленьким аналогом сервиса translit.ruв плане транслита разумеется )

Плагин написан в двух вариантах:
1. Первый вариант это чистый JavaScrip, который можно легко запихнуть куда угодно.
2. Второй вариант рассчитан на любителей Jquery и представляет собой обычный плагин.

Данный плагин можно использовать в textarea и input. Также в плагин по умолчанию встроил два стандарта для перевода это Стандарт ISO 9-95 и ГОСТ 16876-71. При необходимости можете изменить правила, так как вам нужно. Для этого просто в нужном массиве перепишите свои правила. Тестировал плагин в следующих браузерах: IE6, IE7, IE8, Opera, FireFox, Ghrome и Safary.

Параметр на данный момент в плагине ровно один. Это выбор стандарта для перевода: Стандарт ISO 9-95 или ГОСТ 16876-71.

Пример вставки плагина Instant_translit с использованием Jquery
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script src="instant_translit.js"></script>
  <script>
  $(document).ready(function(){
        $(".ageent_trans").keypress(function(e) {
           /*
               e - событие
               obect_now - объект
               rules - правила для перевода. 
                 1 стандарт ISO 9-95;
                 2 - ГОСТ 16876-71;
           */ 
           $(this).Instant_translit({event_now: e, rules: 1, obect_now : this}); 
        });
  });
  </script>
</head>
<body>
<form>
    <textarea cols="150" class="ageent_trans" rows="20"></textarea>
</form>
</body>
</html>

Пример вставки скрипта Instant_translit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
 <script src="instant_translit_script.js"></script>
</head>
<body>
<form target="chattag" name="chat">
    <!--
       event - событие
       this - объект
       rules - правила для перевода. 
         1 стандарт ISO 9-95;
         2 - ГОСТ 16876-71;
    -->
    <textarea name="message" onkeypress="translate_letter(event, this, rules=1);" cols="150" rows="20"></textarea>
</form>
</body>
</html>

Демо работы плагина, последняя версия плагина и подробное описание здесь

subzey 07.12.2009 11:03

По крайней мере, в Опере, перехватываются стрелки и функциональные клавиши. (Попробуйте выделить текст Shift-←/→)
Поправьте, пожалуйста. А так — замечательно.

ageent.ua 07.12.2009 12:38

спасибо. обязательно поправлю.

osjak 28.12.2009 14:41

Попробовал, но в Файерфоксе не работает, к сожалению. Не срабатывает вызов функции по нажатию клавиши. Тестировал в:
FF 3.5.6 (Linux)
FF 3.0.16 (Linux)

В Google Chrome 4.0.249.43 (Linux) работает хорошо.

ageent.ua 28.12.2009 14:47

Пробовал в Файерфоксе 3.5.6 под Windows. Работает замечательно.

Telec 13.08.2010 18:18

есть ещё http://www.keyboard.su/ По моему вполне удобная клавиатура :yes:

thewpman 28.08.2012 13:09

А как сделать с русского на английскии?


Часовой пояс GMT +3, время: 01:10.