Byk
Руби пакет за брзо пресловљавање ћирилице у латиницу и обратно
Инсталација
Byk се може користити као самостални конзолни алат или као String
додатак у Руби програмима. Не зависи ни од каквих пакета поред програмског језика Руби и стандардних алата за компајлирање 1.
Можеш га инсталирати директно:
$ gem install byk
или додати у Gemfile
своје апликације:
gem "byk"
1 За Windows, види DevKit
Употреба
Као самостални алат
Ево прегледа могућности конзолног алата:
$ byk --help
usage: byk [options] [files]
options:
-c, --cyrillic convert input to Cyrillic (default)
-l, --latin convert input to Latin
-a, --ascii convert input to "ASCII Latin"
-v, --version show version
За превод "у лету", проследи текст команди:
$ byk -a <<< "Вук Стефановић Караџић"
Vuk Stefanovic Karadzic
Алтернативно, позови команду, унеси текст за превод и обележи крај уноса помоћу Ctrl D:
$ byk
a u ruke Mandušića Vuka
biće svaka puška ubojita!
^D
а у руке Мандушића Вука
биће свака пушка убојита!
Превод се шаље на стандардни излаз, те га можеш преусмерити по потреби. На пример, за превод текстуалне датотеке на ћирилицу и чување превода:
$ byk lat.txt > cir.txt
Као String
додатак
У случају да не користиш Bundler, увези пакет "ручно":
require "byk"
што ће проширити String
новим методама:
"Šeširdžija".to_cyrillic #=> "Шеширџија"
"Шеширџија".to_latin #=> "Šeširdžija"
"Шеширџија".to_ascii_latin #=> "Sesirdzija"
и њиховим деструктивним верзијама:
text = "Šeširdžija"
text.to_ascii_latin! #=> "Sesirdzija"
text #=> "Sesirdzija"
"Безбедан" увоз
У случају да не желиш да проширујеш String
, можеш извршити "безбедан" увоз:
# унутар Gemfile-а:
gem "byk", require: "byk/safe"
# иначе:
require "byk/safe"
па се ослонити на методе модула:
Byk.to_latin("Жвазбука") #=> "Žvazbuka"
Напомене
Ретки случајеви диграфа које треба сачувати код превођења у ћирилицу нису узети у разматрање: Танјуг, надживети и слично.
С друге стране, методе за латинизацију исправно преводе велике диграфе:
"ЉИЉА Љ. Љиљановић".to_latin #=> "LJILJA Lj. Ljiljanović"
"ĐORĐE Đ. Đorđević".to_ascii_latin #=> "DJORDJE Dj. Djordjevic"
Колико брзо је "брзо" пресловљавање?
Byk је 10-30x бржи од наивне Руби имплементације, у зависности од састава улаза и смера превођења.
Тестирање
Клонирај пројекат и покрени тестове:
$ bundle && bundle exec rake
Компатибилност
Byk је подржан само на стандардном Рубију (MRI).
Лиценца
Овај пакет је објављен под МИТ лиценцом.
Уздравље!