Во многих веб проектах используются friendly urls. Например, вместо id статьи в url испольуется его текстовый идентификатор (slug). Обычно slug генерируется автоматически на серверной стороне при создании статьи. Но если вы хотите иметь возможность задавать slug самостоятельно (через форму) - можете использовать мой плагин syncTranslit.
Данный плагин рассчитан на украинскую и русскую аудиторию разработчиков.
Основная задача плагина: генерация slug из кирилличного текста. Плагин позволяет синхронизировать два поля на форме, при этом одно поле является источником данных (например, название статьи), а второе (slug) - принимает траслитерированный текст.
Использование
Подключаем файл плагина, вызываем метод syncTranslit для элемента-источника, передаем параметр destination - id элемента-приемника:
$(document).ready(function(){ $(‘#articleTitle’).syncTranslit({destination: ’slug’}); });
Возможные опции
Список доступных опций:
- destination - id элемента-приемника
- type - url (default) или raw: определяет тип транслитерации. url - для транслитерации в slug (заменяются спец. символы). raw используется для чистого преобразования (с сохранением всех спец. символов)
- caseStyle - lower (default), normal, upper: отвечает за регистр транслитерируемых данных
- urlSeparator - разделитель слов для slug (default: ‘-’)
Пример с использованием других опций: транслитерация с преобразованием в верхний регистр и с использованием нижнего подчеркивания для разделения слов:
$(document).ready(function(){ $(‘#articleTitle2′).syncTranslit({ destination: ’slug2′, caseStyle: ‘upper’, urlSeparator: ‘_’ }); });
Скачать плагин syncTranslit c Google Code
Страница проекта на сайте jQuery
Жду ваших предложений и замечаний в комментах
Октябрь 20th, 2009 at 5:34 пп
Отличная штука!
Спасибо.
Нижний регистр и подчёркивание - то, что надо.
Октябрь 21st, 2009 at 3:34 пп
[…] Visit link: syncTranslit > Snowcore’s блог […]
Октябрь 27th, 2009 at 1:50 пп
А если еще сделать ограничение чтобы во второй инпут нельзя было писать русские или другие символы, кроме английского языка?
Октябрь 27th, 2009 at 3:46 пп
Можно и такое сделать, реализую в следующей версии. Спасибо за совет.
Октябрь 27th, 2009 at 4:58 пп
Может быть не стоит игнорировать символ “_”, а разрешить его. Удалять только двойные
Октябрь 27th, 2009 at 5:24 пп
@an: в принципе, можно вынести в отдельную опцию (allowedCharacters, например)
Октябрь 27th, 2009 at 6:28 пп
Чтобы сделать плагин чуть более универсальным, советую сделать параметр destination так же jQuery-селектором, а не id
Октябрь 27th, 2009 at 6:33 пп
Согласен, уже есть в списке изменений для следующей версии :)
Октябрь 28th, 2009 at 12:46 пп
И когда же ждать следующую версию с доработками? : )
Октябрь 28th, 2009 at 1:10 пп
при вставке из буфера обмена неплохо бы обрабатывать, а так же при выризании из исходного input
Ноябрь 16th, 2009 at 5:49 пп
Отличная штука! Спасибо огромное!
Ща в свои проекты вставлю… )))
Ноябрь 17th, 2009 at 8:46 дп
Надо бы сделать не только селектор на destination, но ещё и функцию, которая будет вызываться сразу после транслитерации (callBack).
Ноябрь 17th, 2009 at 8:52 дп
Так же хочется функцию типа
syncTranslit({disable:true});
При вызове которой, транслитерация перестает работать. Это удобно когда есть галочка на которую жмешь, и она показывает включен транслит или нет.
Декабрь 25th, 2009 at 8:33 пп
насколько я вижу - это транслитерация не на основе ГОСТ или ISO стандарта. Вообще хотелось узнать мнение автора по этому поводу - стоит ли заморачиваться со стандартами или нет.
По мне, так в этих стандартах Ъ и Ь совсем некошерно транслитерируются. То есть использование ‘ или ” в url нехорошо. А есть мнение что гуглу вообще по душе стандарт BGN.
Февраль 1st, 2010 at 9:20 дп
[…] 0 Я использую (в основном для новостей) synctranslit. Просто подключаю в админке новостей:class […]