Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Serbian translation #445

Merged
merged 3 commits into from
Jul 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion TRANSLATORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,8 @@ This file contains the translation contributors who are willing to help translat

## Hebrew

- [@ShlomoCode](https://github.com/ShlomoCode)
- [@ShlomoCode](https://github.com/ShlomoCode)

## Serbian

- [@rammba](https://github.com/rammba)
56 changes: 27 additions & 29 deletions lang/sr/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ Za dati broj verzije MAJOR.MINOR.PATCH, inkrementirajte:

1. MAJOR (GLAVNU) verziju kada unesete nekompatibilne izmene API-ja
1. MINOR (MANJU) verziju kada dodate unazad kompatibilnu funkcionalnost
1. PATCH (ZAKRPU) verziju kada dodate unazad kompatibilne ispravke bugova (grešaka)
1. PATCH (ZAKRPU) verziju kada dodate unazad kompatibilne ispravke bug-ova (grešaka)

Dodatne oznake za predizdanja i metapodatke builda (izrade) dostupne su kao proširenja
Dodatne oznake za predizdanja i metapodatke build-a (izrade) dostupne su kao proširenja
u formatu MAJOR.MINOR.PATCH.

Uvod
Expand All @@ -42,7 +42,7 @@ softveru. Kako bi ovaj sistem funkcionisao, neophodno je prvo objaviti public (j
Možemo to primeniti u dokumentaciji ili u samom kodu. U svakom slučaju, važno je da
API bude jasan i precizan. Jednom kad identifkujemo public API, izmene prenosimo
kroz specifikovane inkrementacije broja verzije.
Razmotrimo format verzije X.Y.Z (Major.Minor.Patch). Ispravke bugova (grešaka) koji
Razmotrimo format verzije X.Y.Z (Major.Minor.Patch). Ispravke bug-ova (grešaka) koji
ne utiču na API inkrementiraju patch (zakrpa) verziju, a unazad nekompatibilne promene API-ju inkrementiraju major (glavnu) verziju.

Ovaj sistem nazivamo „Semantičko Verzionisanje“. Prema ovoj šemi, brojevi verzija
Expand All @@ -51,7 +51,7 @@ i način na koji se menjaju daju informacije o osnovnom kodu koji se nalazi pod
Specifikacija Semantičkog Verzionisanja (SemVer)
------------------------------------------------

Ključne reči "MUST" ("MORA"), "MUST NOT" ("NE SME"), "REQUIRED ("NEOPHODNO"), "SHALL"("HOĆE"), "SHALL NOT" ("NEĆE"),"SHOULD" ("TREBA"), "SHOULD NOT" ("NE TREBA"), "RECOMMENDED" ("PREPORUČENO"), "MAY" ("MOŽE") i "OPTIONAL" ("OPCIONO") ovom dokumentu treba tumačiti kako je opisano u [RFC 2119](https://tools.ietf.org/html/rfc2119).
Ključne reči "MUST" ("MORA"), "MUST NOT" ("NE SME"), "REQUIRED ("NEOPHODNO"), "SHALL"("HOĆE"), "SHALL NOT" ("NEĆE"),"SHOULD" ("TREBA"), "SHOULD NOT" ("NE TREBA"), "RECOMMENDED" ("PREPORUČENO"), "MAY" ("MOŽE") i "OPTIONAL" ("OPCIONO") u ovom dokumentu treba tumačiti kako je opisano u [RFC 2119](https://tools.ietf.org/html/rfc2119).

1. Softver koji koristi Semantičko Verzionisanje MUST (MORA) objaviti publlic (javni) API. Ovaj API može biti deklarisan u samom kodu ili postojati striktno u dokumentaciji.
U svakom slučaju, SHOULD (TREBA) da bude precizan i sveobuhvatan.
Expand All @@ -70,30 +70,28 @@ u svakom trenutku. Ovaj public (javni) API SHOULD NOT (NE TREBA) smatrati stabil
1. Verzija 1.0.0 definiše public (javni) API. Način na koji će se oznaka verzije
inkrementirati nakon ove objave zavisi od ovog public (javnog) API-ja i izmena na njemu.

1. Patch (zakrpa) verzija Z (x.y.Z | x > 0) MUST (MORA) se inkrementirati kada se dodaju samo unazad kompatibilne ispravke bagova (gresaka). Ispravke bugova (gresaka) su definisane kao promene koda
1. Patch (zakrpa) verzija Z (x.y.Z | x > 0) MUST (MORA) se inkrementirati kada se dodaju samo unazad kompatibilne ispravke bug-ova (gresaka). Ispravke bug-ova (gresaka) su definisane kao promene koda
koje ispravljaju nepravilno ponašanje.

1. Minor (manja) verzija Y (x.Y.z | x > 0) MUST (MORA) se inkrementirati ako je nova, unazad kompatibilna funkcionalnost uvedena u javni API. Takođe MUST (MORA) se inkrementirati kada se neka od funkcionalnosti API-ja označi kao deprecated (zastarela).MAY (MOŽE) biti inkrementirana ukoliko se uvedu substancijalno nove funkcionalnosti ili poboljšanja u okviru privatnog koda. MAY (MOŽE) uključivati promene nivoa zakrpe
PATCH (ZAKRPA) verzija MUST (MORA) se resetovati na 0 kada se minor (manja) verzija inkrementira.
1. Minor (manja) verzija Y (x.Y.z | x > 0) MUST (MORA) se inkrementirati ako je nova, unazad kompatibilna funkcionalnost uvedena u javni API. Takođe MUST (MORA) se inkrementirati kada se neka od funkcionalnosti API-ja označi kao deprecated (zastarela). MAY (MOŽE) biti inkrementirana ukoliko se uvedu substancijalno nove funkcionalnosti ili poboljšanja u okviru privatnog koda. MAY (MOŽE) uključivati promene nivoa patch (zakrpe). Patch (Zakrpa) verzija MUST (MORA) se resetovati na 0 kada se minor (manja) verzija inkrementira.

1. Major (glavna) verzija X (X.y.z | X > 0) MUST (MORA) se inkrementirati ako se unazad nekompatibilne promene uvode u javni API. MAY (MOŽE) uključivati i promene minor (manje) i promene na nivou patch
(zakrpe) verzije. Patch (zakrpe) i minor (manje) verzije MUST (MORA) da se resetuju na 0 kada se
major (glavna) verzija inkrementira.

1. Verzija predizdanja MAY (MOŽE) biti označena dodavanjem hyphena (povlake) i serijom identifikatora razdvojenih tačkom neposredno nakon patch (zakrpe) verzije.Identifikatori MUST (MORAJU) sadržati samo ASCII alfanumeričke znakove i hyphene (povlake)
[0-9A-Za-z-]. Identifikatori MUST NOT (NE SMEJU) biti prazni. Numerički identifikatori MUST NOT (NE SMEJU) počinjati nulom. Verzije predizdanja imaju niži prioritet od povezane normalne verzije. Verzija predizdanja označava da je verzija nestabilna i da možda neće biti zadovoljeni predviđeni zahtevi kompatibilnosti kao što je označeno njegovim povezanim
normalnim verzijama. Primeri: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7,
1. Verzija predizdanja MAY (MOŽE) biti označena dodavanjem hyphen-a (povlake) i serijom identifikatora razdvojenih tačkom neposredno nakon patch (zakrpe) verzije. Identifikatori MUST (MORAJU) sadržati samo ASCII alfanumeričke znakove i hyphen-e (povlake)
[0-9A-Za-z-]. Identifikatori MUST NOT (NE SMEJU) biti prazni. Numerički identifikatori MUST NOT (NE SMEJU) počinjati nulom. Verzije predizdanja imaju niži prioritet od povezane normalne verzije. Verzija predizdanja označava da je verzija nestabilna i da možda neće biti zadovoljeni predviđeni zahtevi kompatibilnosti kao što je označeno njenom povezanom normalnom verzijom. Primeri: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7,
1.0.0-x.7.z.92, 1.0.0-x-y-z.\-\-.

1. Metadata (metapodaci) builda (izrade) MAY (MOGU) biti označeni dodavanjem znaka plus
i niza identifikatora odvojenih tačkom, koji se odmah nastavljaju na patch (zakrpu) verziju ili verziju predizdanja. Identifikatori MUST (MORAJU) da sadrže iskljucivo ASCII alfanumeričke znakove i hyphene (povlake) [0-9A-Za-z-]. Identifikatori MUST NOT (NE SMEJU) da budu prazni. Metadata (metapodaci) o buildu (izgradnji) MUST (MORAJU) se zanemariti prilikom određivanja prioriteta verzije. Prema tome dve verzije koje se razlikuju samo u metapodacima builda (izrade), imaju isti prioritet. Primeri:
1. Metadata (metapodaci) build-a (izrade) MAY (MOGU) biti označeni dodavanjem znaka plus
i niza identifikatora odvojenih tačkom, koji se odmah nastavljaju na patch (zakrpu) verziju ili verziju predizdanja. Identifikatori MUST (MORAJU) da sadrže iskljucivo ASCII alfanumeričke znakove i hyphen-e (povlake) [0-9A-Za-z-]. Identifikatori MUST NOT (NE SMEJU) da budu prazni. Metadata (metapodaci) o build-u (izgradnji) MUST (MORAJU) se zanemariti prilikom određivanja prioriteta verzije. Prema tome dve verzije koje se razlikuju samo u metapodacima build-a (izrade), imaju isti prioritet. Primeri:
1.0.0-alpha+001, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85,
1.0.0+21AF26D3\-\-\-\-117B344092BD.

1. Prioritet se odnosi na način kojim se verzije u poretku međusobno upoređuju.

1. Prioritet se MUST (MORA) izračunati odvajanjem verzije na major (glavne),
minor (manje), patch (zakrpe) i identifikatora predizdanja (metadata (metapodaci) builda (izrade) nemaju ulogu u odredjivanju prioriteta).
1. Prioritet se MUST (MORA) izračunati razdvajanjem verzije na major (glavne),
minor (manje), patch (zakrpe) i identifikatore predizdanja (metadata (metapodaci) build-a (izrade) nemaju ulogu u određivanju prioriteta).

1. Prioritet se određuje prvom razlikom kada se upoređuje svaki od identifikatora sa leva na desno:
major (glavni), minor (manji) i patch (zakrpa). Verzije se uvek upoređuju brojčano.
Expand All @@ -110,13 +108,13 @@ i niza identifikatora odvojenih tačkom, koji se odmah nastavljaju na patch (zak

1. Identifikatori koji se sastoje samo od cifara upoređuju se numerički.

1. Identifikatori sa slovima ili hyphenima (povlakama) se upoređuju leksički u ASCII
1. Identifikatori sa slovima ili hyphen-ima (povlakama) se upoređuju leksički u ASCII
poretku.

1. Numerički identifikatori uvek imaju nizi prioritet od nenumeričkih
1. Numerički identifikatori uvek imaju niži prioritet od nenumeričkih
identifikatora.

1. Veći skup oznaka predizdanja ima visi prioritet od manjeg skupa, ako su svi prethodni
1. Veći skup oznaka predizdanja ima viši prioritet od manjeg skupa, ako su svi prethodni
identifikatori jednaki.

Primer: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta <
Expand Down Expand Up @@ -198,13 +196,13 @@ definicije gore navedenih ideja, postaje lako preneti svoje namere
korisnicima vašeg softvera. Jednom kada su ove namere jasne, fleksibilne (ali
ne previše fleksibilne) specifikacije zavisnosti konačno je moguće napraviti.

Jednostavan primer može pokazati kako pakao zavisnosti uz Semantičko Verzionisanje ostaje stvar prošlosti. Zamislite library (biblioteku) pod nazivom "Vatrogasno_vozilo". Neophodan joj je Semantičko Verzionisani pod nazivom "Merdevine". U trenutku kreiranja Vatrogasno_vozilo, Merdevine su u verziji 3.1.0. Pošto Vatrogasno_vozilo koristi neke funkcije prvobitno uvedene
u 3.1.0, možete bezbedno specifikovati zavisnost od Merdevine kao veću ili jednaku 3.1.0, ali manju od 4.0.0. Sada, kada Merdevine verzije 3.1.1 i 3.2.0 postaju dostupne, možete ih uneti u svoj sistem upravljanja paketima i biti siguni da će biti kompatibilni sa postojećim zavisnim softverom.
Jednostavan primer može pokazati kako pakao zavisnosti uz Semantičko Verzionisanje ostaje stvar prošlosti. Zamislite library (biblioteku) pod nazivom "Vatrogasno_vozilo". Neophodan joj je Semantičko Verzionisani paket pod nazivom "Merdevine". U trenutku kreiranja Vatrogasno_vozilo, Merdevine su u verziji 3.1.0. Pošto Vatrogasno_vozilo koristi neke funkcije prvobitno uvedene
u 3.1.0, možete bezbedno specifikovati zavisnost od Merdevine kao veću ili jednaku 3.1.0, ali manju od 4.0.0. Sada, kada Merdevine verzije 3.1.1 i 3.2.0 postanu dostupne, možete ih uneti u svoj sistem upravljanja paketima i biti siguni da će biti kompatibilni sa postojećim zavisnim softverom.

Kao odgovoran programer, vi ćete, naravno, želeti da verifikujete da li upgrade (nadgradnje) paketa funkcionišu kako je navedeno. Stvarni svet je mahom neuredjeno mesto; ne možemo ništa uraditi povodom toga osim da budemo oprezni.
Kao odgovoran programer, vi ćete, naravno, želeti da verifikujete da li upgrade (nadgradnje) paketa funkcionišu kako je navedeno. Stvarni svet je mahom neuređeno mesto; ne možemo ništa uraditi povodom toga osim da budemo oprezni.
Ono što možemo uciniti je da usvojimo Semantičko Verzionisanje koje nam pruža razuman način za objavljivanje i nadogradnju paketa, bez potrebe za pokretanjem novih verzija zavisnih paketa, štedeći vreme i trud.

Ako vam ovo zvuči poželjno, sve što je potrebno uraditi da biste počeli da koristite Semantičko Verzionisanje je da se deklariste kao korisnik i da potom
Ako vam ovo zvuči poželjno, sve što je potrebno uraditi da biste počeli da koristite Semantičko Verzionisanje je da se deklarišete kao korisnik i da potom
sledite pravila. Linkujte ovaj website sa vašim README-ma tako da bi i drugi bili svesni pravila i mogu imati koristi od njih.

FAQ
Expand Down Expand Up @@ -244,7 +242,7 @@ potrebno je ispraviti grešku pa objaviti minor (manju) verziju koja će ispravi
### Šta činiti ukoliko izmenimo sopstvene zavisnosti bez promene public (javnog) API-ja?

Takve izmene smatramo kompatibilnima jer ne utiču na public (javni) API. Softver koji
eksplicitno zavisi od istih zavisnosti kao i naš sopstveni paket treba imati vlastite specifikacije zavisnosti, a autor će se primetiti eventualne konflikte. Je li promjena na nivou patch (zakrpe) ili minor (manje) verzije, zavisi od toga da li ste dodavali svoje zavisnosti kao ispravke bagova (gresaka) ili ste ih uveli kao nove funkcionalnosti. U posljednjem slučaju
eksplicitno zavisi od istih zavisnosti kao i naš sopstveni paket treba imati vlastite specifikacije zavisnosti, a autor će primetiti eventualne konflikte. Je li promjena na nivou patch (zakrpe) ili minor (manje) verzije, zavisi od toga da li ste dodavali svoje zavisnosti kao ispravke bug-ova (grešaka) ili ste ih uveli kao nove funkcionalnosti. U posljednjem slučaju
možemo očekivati i dodatni kod, pri čemu se očigledno radi o inkrementu minor (manje) verzije.

### Šta ukoliko slučajno izmenimo public (javni) API na način koji ne odgovara izmeni broja verzije (npr. u kod neispravno uvedemo veću unazad nekompatibilnu izmenu u okviru objave patch (zakrpe))?
Expand All @@ -257,8 +255,8 @@ izmene važne za vaše korisnike, koristite broj verzije da biste ih informisali

### Kako postupati sa deprecating (zastarelim) funkcionalnostima?

Postojeće funkcionalnosti koje zastarijevaju, sastavni su deo razvoja softvera
i često su neophodne kako bi razvoj napredovao. Kad označavate deo public(javnog) APIja kao deprecated (zastareli), potrebno je učiniti dve stvari: (1) ažurirati dokumentaciju kako bismo informisali korisnike, (2) objaviti novu minor (manju) verziju sa definisanim deprecated (zastareli) delovima softvera. Pre nego što potpuno uklonite funkcionalnost u novoj major (glavnoj) verziji, potrebno je izdati barem jednu minor (manju) verziju koja sadrži deprecated (zastarele) delove, kako bi korisnici nesmetano prešli na novu verziju API-ja.
Postojeće funkcionalnosti koje zastarevaju, sastavni su deo razvoja softvera
i često su neophodne kako bi razvoj napredovao. Kad označavate deo public (javnog) API-ja kao deprecated (zastareli), potrebno je učiniti dve stvari: (1) ažurirati dokumentaciju kako bismo informisali korisnike, (2) objaviti novu minor (manju) verziju sa definisanim deprecated (zastarelim) delovima softvera. Pre nego što potpuno uklonite funkcionalnost u novoj major (glavnoj) verziji, potrebno je izdati barem jednu minor (manju) verziju koja sadrži deprecated (zastarele) delove, kako bi korisnici nesmetano prešli na novu verziju API-ja.

### Ima li SemVer ograničenu veličinu stringa verzije?

Expand All @@ -276,7 +274,7 @@ taga (oznake), a semantička verzija je "1.2.3".
### Da li postoji predloženi regularni izraz (RegEx) za proveru SemVer stringa?

Postoje dva. Jedan sa imenovanim grupama za one sisteme koji ih podržavaju
(PCRE [Perl kompatibilni regularni izrazi, tj. Perl, PHP i R], , Python
(PCRE [Perl Compatible Regular Expressions (Perl kompatibilni regularni izrazi), tj. Perl, PHP i R], Python
i Go).

Pogledajte: <https://regex101.com/r/Ly7O1x/3/>
Expand All @@ -285,10 +283,10 @@ Pogledajte: <https://regex101.com/r/Ly7O1x/3/>
^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
```

And one with numbered capture groups instead (so cg1 = major, cg2 = minor,
cg3 = patch, cg4 = prerelease and cg5 = buildmetadata) that is compatible
with ECMA Script (JavaScript), PCRE (Perl Compatible Regular Expressions,
i.e. Perl, PHP and R), Python and Go.
I drugi sa numerisanim grupama (znači ng1 = major (glavna), ng2 = minor (manja),
ng3 = patch (zakrpa), ng4 = prerelease (predizdanje) i ng5 = buildmetadata (metapodaci)) koji su kompatibilni
sa ECMA Script (JavaScript), PCRE [Perl Compatible Regular Expressions (Perl kompatibilni regularni izrazi),
tj. Perl, PHP i R], Python i Go.

Pogledajte: <https://regex101.com/r/vkijKf/1/>

Expand Down
Loading