Транслитерация с помощью Ruby Gem 'Babosa'
Можно заметить, что в большинстве Ruby on Rails проектов gem 'babosa' используется в связке с библиотекой 'friendly_id', которая предназначена для создания slug (человекопонятный URL страницы). При генерации ссылок в большинстве случаев используются заголовки страниц (название статьи, товара и т.д.).
Ruby Gem 'babosa' используется в случаях, когда конвертируемый текст отличается от английского и необходима транслитерация. В данный момент библиотекой поддерживается 12 языков: Bulgarian, Danish, German, Greek, Macedonian, Norwegian, Romanian, Russian, Serbian, Spanish, Swedish, Ukrainian.
Установим библиотеку:
gem install babosa
Заходим в Interactive Ruby Shell:
irb
Подключим 'babosa':
require 'babosa'
Создадим переменную с необходимым текстом:
cyr_string = "Транслитерация с помощью Ruby Gem 'Babosa'"
Используем предоставляемые библиотекой методы для транслитерации смешанного текста (русского и английского):
cyr_string.to_slug.transliterate(:russian).to_s
В результате мы получим:
=> "Transliteratsiya s pomoschu Ruby Gem 'Babosa'"
Библиотека выполнила транслитерацию, но для получения полноценного URL (без спецсимволов и с дефисами вместо пробелов) нужно выполнить несколько преобразований. В случае с библиотекой 'translit', мы использовали методы языка Ruby.
Данная же библиотека предназначена для генерации ссылок и имеет специальный метод, который делает за нас всю рутину:
cyr_string.to_slug.transliterate(:russian).normalize.to_s
Результат:
=> "transliteratsiya-s-pomoschu-ruby-gem-babosa"
Как можно заметить, 'babosa' предоставляет удобный функционал для транслитерации текста и конвертации в человекопонятный вид (чаще всего для использования в качестве ссылки).