Skip to content

eevan78/translit

Repository files navigation

translit

Line filter and file converter that transliterate between the two Serbian scripts.

Линијски филтер и конвертор фајлова који врши пресловљавање писама која се користе у српском језику.

Преузима текст са стандардног улаза, пресловљава га и шаље на стандардни излаз. Може и да прихвати улазни фајл, да га преслови и упише у излазни директоријум.

Као инспирација је послужио програм Вучко Александра Веселиновића. Доста тога је преузето из одличног алата Ћирилизатор Јована Турањанина.

Како ради

Програм може да ради у три режима. У зависности од тога који режим желите да користите, приликом позива је потребно да наведете одговарајуће заставице.

Режим линијског филтера

У овом режиму програм чита линију по линију са стандардног улаза, врши пресловљавање и исписује пресловљену линију на стандардни излаз.

Овај режим се активира када наведете две обавезне заставице. Једном се дефинише смер пресловљавања:

  • -l2c латиница у ћирилицу
  • -c2l ћирилица у латиницу

а другом се наводи формат улаза:

  • -text прости (чисти) текст
  • -html (X)HTML

Режим конфигурације

У овом режиму програм чита подешавања за рад из конфигурационог фајла. Режим конфигурације се активира ако наведете заставицу -c. Није дозвољено навођење било које друге заставице.

Режим конвертора

У овом режиму програм чита путању до фајла, смер претварања и уписује пресловљени фајл у излазни директоријум. Мора да се наведе једна од заставица за смер пресловљавања:

  • -l2c латиница у ћирилицу
  • -c2l ћирилица у латиницу

и заставица -i иза које следи путања до улазног фајла.

У сваком другом случају, исписује се кратка порука о употреби.

Програм очекује да је улазни текст UTF-8 кодиран, што је данас углавном тако за текстове на српском језику. У режиму линијског филтера може да се користи самостално, преусмеравањем улаза и излаза у командној линији, или из текст едитора као што је Vim

Целе речи у простом тексту које се налазе између <| и |> се не пресловљавају. Ови маркери морају да се поставе на почетак прве речи која се не пресловљава и на крај последње речи која се не пресловљава. Маркери се уклањају из резултата.

Чак и у деловима текста означеним тако да се не пресловљавају, програм врши преправку интерпункцијских знакова тако да задовољавају правопис. Било које комбинације знакова навода постају „овакви”, а полунавода ’овакви’.

Приликом пресловљавања простог текста, задржава се увлачење линија које постоји у улазном тексту. Међутим, сав празан простор између речи у линији се своди на по један размак између сваке речи. Тако се омогућава и пресловљавање простог текста означеног са Markdown.

Када се (X)HTML пресловљава са латинице на ћирилицу, lang (односно xml:lang у XHTML 1.1) атрибут html ознаке се поставља на "sr-Cyrl-t-sr-Latn". Ово означава да је текст на српској ћирилици, пресловљен са оригиналног текста на српској латиници. Слично је и за супротни смер, само се атрибут поставља на "sr-Latn-t-sr-Cyrl". Ако желите да се нека реч или део текста не пресловљава, уоквирите га у span елемент чији lang (односно xml:lang у XHTML 1.1) атрибут поставите на ознаку писма које треба да остане. Погледајте пример у наредном одељку.

Примери

Прости текст који се пресловљава са латинице на ћирилицу:

Ovo se preslovljava, <|a ovo ostaje na latinici.|> I ovo je preslovljeno.

Резултат је:

Ово се пресловљава, a ovo ostaje na latinici. И ово је пресловљено.

Улазни XHTML 1.1 фрагмент (означавање које се користи у EPUB2 е-књигама) који се пресловљава са латинице не ћирилицу:

<p class="text">Ovo se preslovljava, <span xml:lang="sr-Latn">a ovo ostaje na latinici.</span> I ovo je preslovljeno.</p>

Резултат је:

<p class="text">Ово се пресловљава, <span xml:lang="sr-Latn">a ovo ostaje na latinici.</span> И ово је пресловљено.</p>

Изградња

Претпоставља се да сте инсталирали Go на свој систем. Ако нисте, пратите упутства на овој страници.

Направите један празан директоријум и распакујте у њега архиву изворног кода, или употребите гит да клонирате репозиторијум

git clone https://github.com/eevan78/translit.git
cd translit

Преузмите зависности:

go mod tidy

Па затим изградите бинарни извршни фајл:

go build -compiler gc -ldflags="-w -s" cmd/translit/translit.go

Проверите изграђени фајл:

./translit

или на Windows систему:

.\translit.exe

Ако је све у реду, приказаће се кратко упутство за употребу.

Употреба

Линукс

Претпоставимо да je програм изграђен наредбом која је дата у одељку Изградња. Следећом командом се врши пресловљавање html фајла из латинице у ћирилицу. Овом командом се улазни фајл преусмерава на стандардни улаз translit програма, а његов стандардни излаз се преусмерава на излазни фајл.

./translit -l2c -html <`putanja_do_ulaznog_fajla` >`putanja _do__izlaznog_fajla`

На пример:

./translit -l2c -html <~/Downloads/vest.html >~/Downloads/preslovljeno/vest_cir.html

Следећом командом се врши пресловљавање txt фајла из ћирилице у латиницу.

./translit -c2l -text <`putanja_do_ulaznog_fajla` >`putanja _do__izlaznog_fajla`

На пример:

./translit -c2l -text <~/Downloads/nabavka.txt >~/Downloads/preslovljeno/nabavka_lat.txt

Vim едитор

Овај пример приказује како се Vim едитором пресловљава XHTML фајл:

Аскикаст који приказује како се Vim едитором пресловљава XHTML

Лиценца

Ово је софтвер отвореног кода, који се слободно може користити у оквиру MIT лиценце.

About

Line filter that transliterate between the two Serbian scripts

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages