Skip to content

Line filter that transliterate between the two Serbian scripts

License

Notifications You must be signed in to change notification settings

eevan78/translit

Repository files navigation

translit

Line filter that transliterate between the two Serbian scripts.

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

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

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

Како ради

Програм прихвата две обавезне заставице. Једном се дефинише смер пресловљавања:

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

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

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

Постоје још две заставице које нису обавезне. Оне наводе путању улазног и излазног фајла:

  • -i путања до фајла из којег се чита текст који треба да се преслови
  • -o путања до фајла у који се уписује пресловљени улазни текст

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

Програм очекује да је улазни текст 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" .

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

./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 -txt <`putanja_do_ulaznog_fajla` >`putanja _do__izlaznog_fajla`

На пример:

./translit -c2l -txt <~/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

Languages