syncTranslit > Snowcore’s блог

syncTranslit

Во многих веб проектах используются friendly urls. Например, вместо id статьи в url испольуется его текстовый идентификатор (slug). Обычно slug генерируется автоматически на серверной стороне при создании статьи. Но если вы хотите иметь возможность задавать slug самостоятельно (через форму) - можете использовать мой плагин syncTranslit.

Данный плагин рассчитан на украинскую и русскую аудиторию разработчиков.
Основная задача плагина: генерация slug из кирилличного текста. Плагин позволяет синхронизировать два поля на форме, при этом одно поле является источником данных (например, название статьи), а второе (slug) - принимает траслитерированный текст.

Использование

Подключаем файл плагина, вызываем метод syncTranslit для элемента-источника, передаем параметр destination - id элемента-приемника:

$(document).ready(function(){
    $(‘#articleTitle’).syncTranslit({destination: ’slug’});
});



Название:
Slug:

Возможные опции

Список доступных опций:

  • destination - id элемента-приемника
  • type - url (default) или raw: определяет тип транслитерации. url - для транслитерации в slug (заменяются спец. символы). raw используется для чистого преобразования (с сохранением всех спец. символов)
  • caseStyle - lower (default), normal, upper: отвечает за регистр транслитерируемых данных
  • urlSeparator - разделитель слов для slug (default: ‘-’)

Пример с использованием других опций: транслитерация с преобразованием в верхний регистр и с использованием нижнего подчеркивания для разделения слов:

Название:
Slug:

$(document).ready(function(){
  $(‘#articleTitle2′).syncTranslit({
    destination: ’slug2′,
    caseStyle: ‘upper’,
    urlSeparator: ‘_’
  });
});

Скачать плагин syncTranslit c Google Code
Страница проекта на сайте jQuery

Жду ваших предложений и замечаний в комментах

17 Responses

  1. seelts Says:

    Отличная штука!
    Спасибо.
    Нижний регистр и подчёркивание - то, что надо.

  2. syncTranslit > Snowcore’s блог | My Web Development Bookmarks Says:

    […] Visit link: syncTranslit > Snowcore’s блог […]

  3. Smozjo Says:

    А если еще сделать ограничение чтобы во второй инпут нельзя было писать русские или другие символы, кроме английского языка?

  4. Snowcore Says:

    Можно и такое сделать, реализую в следующей версии. Спасибо за совет.

  5. an Says:

    Может быть не стоит игнорировать символ “_”, а разрешить его. Удалять только двойные

  6. Snowcore Says:

    @an: в принципе, можно вынести в отдельную опцию (allowedCharacters, например)

  7. Dmitriy.trt Says:

    Чтобы сделать плагин чуть более универсальным, советую сделать параметр destination так же jQuery-селектором, а не id

  8. Snowcore Says:

    Согласен, уже есть в списке изменений для следующей версии :)

  9. Smozjo Says:

    И когда же ждать следующую версию с доработками? : )

  10. diz Says:

    при вставке из буфера обмена неплохо бы обрабатывать, а так же при выризании из исходного input

  11. Рузин Василий Says:

    Отличная штука! Спасибо огромное!
    Ща в свои проекты вставлю… )))

  12. Рузин Василий Says:

    Надо бы сделать не только селектор на destination, но ещё и функцию, которая будет вызываться сразу после транслитерации (callBack).

  13. Рузин Василий Says:

    Так же хочется функцию типа
    syncTranslit({disable:true});
    При вызове которой, транслитерация перестает работать. Это удобно когда есть галочка на которую жмешь, и она показывает включен транслит или нет.

  14. gin Says:

    насколько я вижу - это транслитерация не на основе ГОСТ или ISO стандарта. Вообще хотелось узнать мнение автора по этому поводу - стоит ли заморачиваться со стандартами или нет.
    По мне, так в этих стандартах Ъ и Ь совсем некошерно транслитерируются. То есть использование ‘ или ” в url нехорошо. А есть мнение что гуглу вообще по душе стандарт BGN.

  15. Живая транслитерация в админке Says:

    […] 0 Я использую (в основном для новостей) synctranslit. Просто подключаю в админке новостей:class […]

  16. XeNum Says:

    Переименуйте в функции $.fn.syncTranslit.transliterate параметр “char” - это слово нельзя использовать в параметрах.

  17. CakePHP, jQuery, CSS - заметки, записи и прочее Says:

    jQuery плагин для транслита текста…

    Порой для создаваемого проекта требуется перевод русскоязычных слов в транслит. Самый частый пример – создание ЧПУ ссылок из русскояз…

Оставить комментарий

I'm not spammer :)

Внимание: Комментарии проходят ручную модерацию