/byk

Fast transliteration of Serbian Cyrillic ⇄ Latin, implemented as a Ruby gem with native extension.

Primary LanguageRubyMIT LicenseMIT

Byk

Gem Version tests

Руби пакет за брзо пресловљавање ћирилице у латиницу и обратно

byk

[English, please!]

Инсталација

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).

Лиценца

Овај пакет је објављен под МИТ лиценцом.

Уздравље!