Code Monkey home page Code Monkey logo

translit's Introduction

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 лиценце.

translit's People

Contributors

eevan78 avatar miljanuscumlic avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.