Вы находитесь здесь:Плагины jQuery»liTranslit - jQuery Translit или транслитерация кириллицы в латиницу

liTranslit - jQuery Translit или транслитерация кириллицы в латиницу

Понедельник, 03 Март 2014 00:00 Автор 

Параметры плагина делают его очень гибким и универсальным. С его помощью вы можете осуществлять:
- Мгновенный транслит печатаемого текста
- Транслит текста в другой элемент
- Транслит НЕтекстового поля
- Инъекцию собственных правил транслитерации

Пример работы на JSFIDDLE

Подключаемые файлы



Инициализация плагина

<script>
$(function(){
  $('.anyClass').liTranslit();
})
</script>

Структура HTML


Параметры

Option Default value Datatype Description
eventType 'keyup blur copy paste cut start' string Задает тип события, по которому будет происходить транслитерация.
Может принимать значение любого события jQuery: 'keyup', 'blur', 'copy' и т.п.
elAlias $(this) object jquery Определяет элемент, в который будет записываться результат транслитерации.
Принимает значение в виде объекта jQuery: $('.aliasClass'), $('#aliasClass'), $('input') или false
reg '[пустая строка]' string Задает собственные правила замены символов.
Может принимать значения: ' "[текущий символ]"="[новый символ]" ', ' "ж"="ze" ', ' "ё"="jo","ж"="zzzz" '
caseType 'lower' string Задает тип регистра выходного значения.
Может принимать значения: 'lower', 'upper', 'inherit'
status true boolean Включает или отключает плагин сразу после инициализации.
Может принимать значения: true, false
string '[пустая строка]' string Передает значение строковой переменной.
var translit = $.fn.liTranslit({string: [строка]}).text();

Триггер

$('.anyClass').trigger('start');

События

translated(el, text, eventType)

Функция выполняется, после каждого шага транслитерации

el
Type: Object

text
Type: String

eventType
Type: String

Пример кода

$('.anyClass').liTranslit({
  translated:function(el, text, eventType){
    alert('Транслитерация выполнена')
  }
});

Методы

enable()

Запускает плагин

Пример кода

   $('.anyClass').liTranslit('enable')

disable()

Отключает плагин

Пример кода

        $('.anyClass').liTranslit('disable')

LOG

25.10.2014 - В параметр "caseType" добавлено значение "inherit". При котором значение регистра вводимого символа не изменяется.
11.09.2014 - Добавлен параметр "string", который который передает значение строковой переменной.
02.03.2014 - Добавлен параметр "eventType", который задает тип события, по которому будет происходить транслитерация.
02.03.2014 - Добавлен параметр "caseType", который задает тип регистра выходного значения
02.03.2014 - Добавлен параметр "reg", который задает собственные правила замены символов
Прочитано 14880 раз Последнее изменение Суббота, 25 Октябрь 2014 22:24
Оцените материал
(6 голосов)

Комментарии   

 
# PaulLoft 23.06.2013 19:05
У вас регулярка неправильно работает, символы $ ^ / \ тоже экранировать нужно
Ответить | Ответить с цитатой | Цитировать
 
 
# LiMasscode 23.06.2013 21:25
Цитирую PaulLoft:
У вас регулярка неправильно работает, символы $ ^ / \ тоже экранировать нужно

Если вам нужно экранировать эти символы http://jsfiddle.net/HgzfF/33/, это еще не значит что регулярка работает неправильно
Ответить | Ответить с цитатой | Цитировать
 
 
# san4es 05.07.2013 16:40
Все подключил, выводит без транслитерации, т.е. что ввел - то и получил, только пробел переводит в - . в чем может быть проблема? в консоли чисто, конфликтов нету
Ответить | Ответить с цитатой | Цитировать
 
 
# LiMasscode 05.07.2013 23:08
Цитирую san4es:
Все подключил, выводит без транслитерации, т.е. что ввел - то и получил, только пробел переводит в - . в чем может быть проблема? в консоли чисто, конфликтов нету

дайте ссылку на нерабочий пример, иначе я вам помочь не смогу
Ответить | Ответить с цитатой | Цитировать
 
 
# LORDSoftware 31.07.2013 12:31
Скорее всего кодировка скрипта не совпадает с кодировкой вашего сайта.
Ответить | Ответить с цитатой | Цитировать
 
 
# WinterSilence 29.09.2013 09:55
Спасибо за отличный набор скриптов.

Показалось не логичным то, что Ъ и Ь заменяются на # - это не очень удобно т.к. этот символ интерпретируетс я браузером как якорь в ссылках
Ответить | Ответить с цитатой | Цитировать
 
 
# WinterSilence 29.09.2013 09:57
да и ' ' это не -, а _ скорее
Ответить | Ответить с цитатой | Цитировать
 
 
# LiMasscode 29.09.2013 16:52
Цитирую WinterSilence:
да и ' ' это не -, а _ скорее

Согласен с вами.
Ответить | Ответить с цитатой | Цитировать
 
 
# Федор 27.01.2014 00:02
Какая лицензия на данный плагин? Спасибо.
Ответить | Ответить с цитатой | Цитировать
 
 
# LiMasscode 27.01.2014 08:27
Цитирую Федор:
Какая лицензия на данный плагин? Спасибо.

лицензия MIT
Ответить | Ответить с цитатой | Цитировать
 
 
# Сергей 13.02.2014 00:17
Спасибо большое автору, делал на php, но он при транслитерации функцией strtr при кодировке utf-8 не работает вообще. Автор сделал всё намного лучше и проще. Спасибо вам и здоровья!!!
Ответить | Ответить с цитатой | Цитировать
 
 
# Zhenya 10.08.2014 00:14
Добрый день.
Не подскажите в чем может быть проблема
TypeError: o.elAlias.css is not a function
elAlias = o.elAlias.css({wordWrap:'break-word'}),

подключаю в Yii framework
Jquery 1.8
Ответить | Ответить с цитатой | Цитировать
 
 
# LiMasscode 11.08.2014 11:30
Цитирую Zhenya:
Добрый день.
Не подскажите в чем может быть проблема
TypeError: o.elAlias.css is not a function
elAlias = o.elAlias.css({wordWrap:'break-word'}),

подключаю в Yii framework
Jquery 1.8

А что это за строка?
"elAlias = o.elAlias.css({wordWrap:'break-word'})"
1. Если это передаваемый параметр, то знак "=" нужно заменить на ":"
2. Если это передаваемый параметр, то в нем нельзя дописывать CSS
Ответить | Ответить с цитатой | Цитировать
 
 
# milov 11.09.2014 09:52
Подскажите как использовать для перевода строковой переменной?
Ответить | Ответить с цитатой | Цитировать
 
 
# LiMasscode 11.09.2014 15:50
Цитирую milov:
Подскажите как использовать для перевода строковой переменной?

Добавлено в плагин.
Скачайте заново архив. Там есть пример.
Кратко:
var translit = $.fn.liTranslit ({string: [строка]}).text ();
Ответить | Ответить с цитатой | Цитировать
 
 
# евгений 27.09.2014 01:19
суперский скрипт. спасибо автору!
Есть вопрос, могу ли я применить эту функцию к нескольким input (они у меня появляются на разных страницах), к примеру таким -

input[class*="folder"], input[id*="user name"], input[class*="username"]

как тогда инициализироват ь нужно, так?:

$('input[class*="folder"], input[id*="user name"], input[class*="username"]').liTranslit();

не работает почемуто...
Ответить | Ответить с цитатой | Цитировать
 
 
# LiMasscode 27.09.2014 15:50
Цитирую евгений:
суперский скрипт. спасибо автору!
Есть вопрос, могу ли я применить эту функцию к нескольким input (они у меня появляются на разных страницах), к примеру таким -

input[class*="folder"], input[id*="username"], input[class*="username"]

как тогда инициализировать нужно, так?:

$('input[class*="folder"], input[id*="username"], input[class*="username"]').liTranslit();

не работает почемуто...

Вот так нужно:
http://jsfiddle.net/yurik417/HgzfF/71/
Ответить | Ответить с цитатой | Цитировать
 
 
# евгений 27.09.2014 01:22
еще я бы добавил уборку - 3 и больше одинаковых символов

чтот типа
replace [/([\W\D])\1{4} /gi, ""], [/([\w\d])\1{3} /gi, ""]
Ответить | Ответить с цитатой | Цитировать
 
 
# Рузмат 25.10.2014 17:36
Как сделать чтобы когда я пишу Имя транслит был также Imja с большой буквой

А то получается так http://joxi.ru/LQ2KxDVQCGKpAj
Ответить | Ответить с цитатой | Цитировать
 
 
# Рузмат 25.10.2014 17:37
Как сделать чтобы когда я пишу Имя транслит был также Imja с большой буквой

А то получается так: Валера -> valera
Ответить | Ответить с цитатой | Цитировать
 
 
# LiMasscode 25.10.2014 22:25
Цитирую Рузмат:
Как сделать чтобы когда я пишу Имя транслит был также Imja с большой буквой
А то получается так: Валера -> valera

Скачайте заново архив и установите параметр "caseType" в "inherit"
Ответить | Ответить с цитатой | Цитировать
 
 
# Рузмат 27.10.2014 12:59
Огромное спасибо.
Ответить | Ответить с цитатой | Цитировать
 
 
# Слава 03.07.2015 10:35
Ребят, большое спасибо - плагин хороший.. но может сам ещё не разобрался, смотрю пока.
Когда хочешь поменять транслит: добавить символы (актуально для email, что бы не было дублей). Он не меняет значение val транслита тока менять транслируемый текст, что не правильно.
Но думаю щас разберусь, может отпишусь сюда
Ответить | Ответить с цитатой | Цитировать
 
 
# Антон 10.09.2015 20:18
Отличный плагин, только console.log() лучше убрать из кода перед релизом ) Почему нет на github?
Ответить | Ответить с цитатой | Цитировать
 
 
# LiMasscode 14.09.2015 09:52
Цитирую Антон:
Отличный плагин, только console.log() лучше убрать из кода перед релизом )

Верно! Убрал )
Ответить | Ответить с цитатой | Цитировать
 
 
# Никита 19.10.2015 11:53
В функции trim пропустили "|" для удаления скобок.
нужно это:
string = string.replace( /(^\s+)|'|"||\! |\||@|#|$|%|^|\ ^|\$|\\|\/|&|\* |\(\)|\|\/|;|\+ |№|,|\?|:|{|}|\ [|\]/g, "");
заменить на это:
string = string.replace( /(^\s+)|'|"||\! |\||@|#|$|%|^|\ ^|\$|\\|\/|&|\* |\(|\)|\|\/|;|\ +|№|,|\?|:|{|}| \[|\]/g, "");

Спасибо за плагин!)
Ответить | Ответить с цитатой | Цитировать
 
 
# LiMasscode 19.10.2015 12:15
Цитирую Никита:
В функции trim пропустили "|" для удаления скобок.
нужно это:
string = string.replace(/(^\s+)|'|"||\!|\||@|#|$|%|^|\^|\$|\\|\/|&|\*|\(\)|\|\/|;|\+|№|,|\?|:|{|}|\[|\]/g, "");
заменить на это:
string = string.replace(/(^\s+)|'|"||\!|\||@|#|$|%|^|\^|\$|\\|\/|&|\*|\(|\)|\|\/|;|\+|№|,|\?|:|{|}|\[|\]/g, "");

Спасибо за плагин!)


Спасибо, исправлю
Ответить | Ответить с цитатой | Цитировать
 
 
# кайрат 15.04.2016 17:25
скопировал все, а не работает, не подскажете что еще нужно сделать?
Ответить | Ответить с цитатой | Цитировать
 
 
# LiMasscode 18.04.2016 12:27
Цитирую кайрат:
скопировал все, а не работает, не подскажете что еще нужно сделать?

Выложите страницу в интернет и дайте ссылку, только так я смогу увидеть в чем проблема
Ответить | Ответить с цитатой | Цитировать
 
 
# Алексей 11.05.2016 12:46
Добрый день. Подскажите пожалуйста как избавиться от "(" и ")".

http://prntscr.com/b2pgf9
Ответить | Ответить с цитатой | Цитировать
 
 
# LiMasscode 17.05.2016 12:16
Цитирую Алексей:
Добрый день. Подскажите пожалуйста как избавиться от "(" и ")".
http://prntscr.com/b2pgf9

Здравствуйте.
Это была ошибка в коде.
Вот рабочая версия
http://jsfiddle.net/yurik417/HgzfF/112/
Ответить | Ответить с цитатой | Цитировать
 
 
# Александр 22.11.2016 12:01
Как сделать в reg что бы пробел менялся на пробел, а не на знак "-"?

reg:'" "=" "' так не работает.
Ответить | Ответить с цитатой | Цитировать
 
 
# LiMasscode 23.11.2016 17:12
Цитирую Александр:
Как сделать в reg что бы пробел менялся на пробел, а не на знак "-"?

reg:'" "=" "' так не работает.

Возьмите код плагина из этого примера с пробелом
http://jsfiddle.net/yurik417/HgzfF/118/
Ответить | Ответить с цитатой | Цитировать
 
 
# Alexander 29.11.2016 21:55
После ретранслита в текстовое поле, переменная на сервер приходит пустой. Т.е нет "физического" заполнения поля.. так же ругаются jquery валидаторы
Ответить | Ответить с цитатой | Цитировать
 

Добавить комментарий

Защитный код
Обновить

Онлайн-конструктор українського орнаменту

Чем вы можете помочь?

1. Разместить ссылку на своем сайте
Если вы ведете блог или у вас есть сайт - поставьте ссылку на www.masscode.ru. Скопируйте этот код:

<a href="http://masscode.ru" title="Плагины, сниппеты и пользовательские скрипты на jquery" target="_blank">Плагины, сниппеты и пользовательские скрипты на jquery</a>

2. Поддержать проект финансово
Вы можете сделать добровольное пожертвование

AUH: U878157792792
USD: Z821422743261
RUB: R360648948582
EUR: E298388086680

Свежие материалы

Последние коментарии

Вы находитесь здесь:   ГлавнаяjQueryliTranslit - jQuery Translit или транслитерация кириллицы в латиницу