Scope & Variants — CRITICAL
Serbian has TWO officially equal writing systems, mandated by Article 10 of the Serbian Constitution: Cyrillic (ћирилица) and Latin (латиница). They are NOT regional dialects or formality registers — they are alternate scripts for the same language, fully interchangeable letter-by-letter via a 1:1 mapping.
| Locale | Script | Usage | Preference signal |
|---|---|---|---|
sr-Cyrl / sr (default in many CLDR contexts) |
Ћирилица (Cyrillic) | Official documents, government, schools, traditional press, religious texts, formal institutional copy | Older audiences, conservative branding, state institutions, Republika Srpska |
sr-Latn |
Latinica (Latin) | Internet, business, IT, advertising, modern UI, international-facing material | Younger audiences, tech products, web/mobile UI, globally-facing brands |
Practical reality:
- The Serbian government promotes Cyrillic as primary by law (2021 Law on Use of Serbian Language).
- In digital products the Latin script dominates ~70-80% of real-world use because keyboards default to it and URL/email systems handle it without ambiguity.
- Most software localization targets Latin first, then Cyrillic if the product needs institutional credibility.
Hard rule — NEVER mix scripts within one text (severity 3.0)
The single most-failed Serbian rule by AI translators: producing one string with both scripts. This is unambiguously wrong.
✓ Correct: Кликните на дугме „Сачувај" (all Cyrillic)
✓ Correct: Kliknite na dugme „Sačuvaj" (all Latin)
✗ Wrong: Кликните na dugme „Сачувај" (mixed — auto-fail)
✗ Wrong: Kliknite на dugme "Sačuvaj" (mixed — auto-fail)
The only exception: technical identifiers (Git, API, JSON, npm, React, URLs, placeholders {var}, file paths) stay in Latin script even inside Cyrillic text. This is the standard convention, not a violation. See "Technical identifiers" below.
When the target locale is unspecified
Always ask on first use if the user requests just "Serbian":
Serbian has two official writing systems — both equal, fully interchangeable, but never mixed within one text. Which one should I target?
- Latin (
sr-Latn, Recommended for software) — Dominant in IT, web, business, advertising. Default for most product UI. Modern feel.- Cyrillic (
sr-Cyrl) — Officially primary per Serbian Constitution. Used in government, traditional press, schools, religious texts. Required for state-facing and institutional products.- Both (parity localization) — Some products legally require both. I'll deliver Latin + Cyrillic side-by-side.
Default to sr-Latn if no answer (software default).
Cyrillic ↔ Latin 1:1 mapping table (for self-conversion verification)
| Cyrillic | Latin | Cyrillic | Latin | Cyrillic | Latin |
|---|---|---|---|---|---|
| А а | A a | К к | K k | Т т | T t |
| Б б | B b | Л л | L l | Ћ ћ | Ć ć |
| В в | V v | Љ љ | Lj lj | У у | U u |
| Г г | G g | М м | M m | Ф ф | F f |
| Д д | D d | Н н | N n | Х х | H h |
| Ђ ђ | Đ đ | Њ њ | Nj nj | Ц ц | C c |
| Е е | E e | О о | O o | Ч ч | Č č |
| Ж ж | Ž ž | П п | P p | Џ џ | Dž dž |
| З з | Z z | Р р | R r | Ш ш | Š š |
| И и | I i | С с | S s | ||
| Ј ј | J j |
Critical: three Cyrillic digraphs (Љ Њ Џ) become TWO-letter Latin sequences (Lj Nj Dž). Case-sensitive — Љубав → Ljubav, ЉУБАВ → LJUBAV.
Diacritics are essential in Latin script — Č Ć Ž Š Đ. Replacing them with C, Z, S, Dj is a critical readability failure (crna and crna are nonsense for "crna" → blackness; but Sacuvaj for Sačuvaj is genuinely broken text, even though some legacy systems strip them).
BCMS continuum note (NOT mutual locales)
Serbian, Croatian, Bosnian, and Montenegrin are mutually intelligible South Slavic varieties (collectively "BCMS"), but they are politically and orthographically distinct languages with their own ISO codes (sr / hr / bs / cnr). Do NOT treat them as variants of each other. Critical differences vs Croatian (hr):
| Concept | Serbian (sr) — ekavian | Croatian (hr) — ijekavian |
|---|---|---|
| time | vreme | vrijeme |
| nice | lepo | lijepo |
| milk | mleko | mlijeko |
| child | dete | dijete |
| children | deca | djeca |
| river | reka | rijeka |
| world | svet | svijet |
| beautiful | lep | lijep |
If a string contains vrijeme / lijepo / mlijeko / dijete, it is Croatian, not Serbian — flag and fix to ekavian (vreme / lepo / mleko / dete).
Other BCMS giveaways that mean "not Serbian":
tjedan(Croatian) vsnedelja(Serbian) — weeksiječanj/veljača/ožujak(Croatian month names) vsjanuar/februar/mart(Serbian)kruh(Croatian) vshleb(Serbian) — breadtisuća(Croatian) vshiljada(Serbian) — thousandtko(Croatian) vsko(Serbian) — whošto(Croatian) vsšta(Serbian) — whatnogomet(Croatian) vsfudbal(Serbian) — football
Register Auto-Detection (Apply Before Translating)
Serbian formality is set by pronoun + verb-ending choice, with capitalization conventions for the formal form. Auto-detect from source:
| Source signal | Target register |
|---|---|
Casual / conversational / personal (Hey!, contractions, emoji, marketing voice, social) |
Informal (ti) — ti pronoun, lowercase, 2nd-person sg. verb endings (-š), familiar imperative (Sačuvaj, Klikni). Allow short forms, allow established loanwords (klipbord, link, imejl). |
| Neutral product UI / docs / consumer software (DEFAULT) | Formal (Vi) — Vi capitalized for direct address, 2nd-person pl. verb endings (-te), polite imperative (Sačuvajte, Kliknite). Possessive Vaš/Vaša/Vaše also capitalized. |
| Legal / banking / government / enterprise B2B | Formal (Vi) elevated — same Vi form but full constructions, no contractions, prefer reflexive impersonal (Vrši se / Obavlja se), avoid casual loanwords (use elektronska pošta over imejl in legal text). |
Hard rule: never mix levels in one text. A string with Možete da promenite (formal) and tvoja podešavanja (informal possessive) is broken.
Capitalization rule for Vi: Vi / Vaš / Vaša / Vaše / Vaši / Vam / Vas are capitalized in direct second-person address (whether you're writing to one person or many). This signals respect — failing to capitalize is read as informal even if the verb forms are formal.
Default for software UI: Vi (formal) unless brand voice is explicitly youth/casual.
Critical Hard Rules (Severity ≥ 2.0 — Auto-Fail If Wrong)
1. Script consistency — never mix Cyrillic + Latin (severity 3.0)
Documented above. The only exception is Latin technical identifiers inside Cyrillic text.
2. Word integrity — verb prefixes NEVER split (severity 3.0)
Serbian verbs with prefixes are single words. Splitting them by a space changes meaning catastrophically or produces gibberish.
| ✗ Wrong (split) | ✓ Correct (joined) | What the split means |
|---|---|---|
pre vesti / пре вести |
prevesti / превести |
"pre" (prefix alone) + "vesti" (news) — nonsense |
iz vršiti / из вршити |
izvršiti / извршити |
nonsense |
pre nositi / пре носити |
prenositi / преносити |
nonsense |
na praviti / направити |
nonsense | |
sa čuvati / са чувати |
sačuvati / сачувати |
nonsense |
pre uzmi / пре узми |
preuzmi / преузми |
nonsense |
o pozovi / о позови |
opozovi / опозови |
nonsense |
Reflexive se is the OPPOSITE pattern — se is a separate clitic word, NEVER attached. prijavi se, registruj se, odjavi se. Writing prijavise or registrujse is wrong.
3. Ekavian forms — never ijekavian (severity 2.0)
Serbian standard is ekavian (the historical "yat" → e). Croatian and Bosnian use ijekavian (yat → ije / je). Any ijekavian form in a Serbian translation is wrong.
Full ekavian/ijekavian table:
| English | Serbian (ekavian) | Croatian/Bosnian (ijekavian) — DO NOT USE |
|---|---|---|
| time | vreme / време | vrijeme |
| nice | lepo / лепо | lijepo |
| milk | mleko / млеко | mlijeko |
| child | dete / дете | dijete |
| children | deca / деца | djeca |
| river | reka / река | rijeka |
| world | svet / свет | svijet |
| light | svetlost / светлост | svjetlost |
| flower | cvet / цвет | cvijet |
| star | zvezda / звезда | zvijezda |
| song | pesma / песма | pjesma |
| place | mesto / место | mjesto |
| beautiful | lep / леп | lijep |
| bread (formal poetic) | hleb / хлеб | hljeb |
| arrow | strela / стрела | strijela |
| left | levi / леви | lijevi |
| measure | mera / мера | mjera |
| change (n.) | promena / промена | promjena |
| section | odeljak / одељак | odjeljak |
4. Seven-case system (severity 2.5)
Serbian uses all 7 Slavic cases, including the vocative (used for direct address — korisniče! "user!"). Every noun, adjective, and pronoun declines.
| Case | Question | Use | Example (m. sg. "korisnik" — user) | Example (f. sg. "datoteka" — file) |
|---|---|---|---|---|
| Nominativ (NOM) | ko? šta? | Subject | korisnik | datoteka |
| Genitiv (GEN) | koga? čega? | Possession, "of", absence, 5+ count | korisnika | datoteke |
| Dativ (DAT) | kome? čemu? | Indirect object, "to" | korisniku | datoteci |
| Akuzativ (ACC) | koga? šta? | Direct object | korisnika (animate=GEN) / sistem (inanimate=NOM) | datoteku |
| Vokativ (VOC) | — | Direct address | korisniče! | datoteko! |
| Instrumental (INS) | s kim? čim? | "With", means | korisnikom | datotekom |
| Lokativ (LOC) | o kome? čemu? | Location (always w/ prep) | korisniku (o korisniku) | datoteci (o datoteci) |
Critical: animate masculine accusative = genitive form. vidim korisnika ("I see [the] user"), NOT vidim korisnik. Inanimate masculines keep ACC = NOM: vidim sistem.
5. Preposition + governed case (severity 2.5)
| Preposition | Case | Example |
|---|---|---|
| u (in/into) | LOC (location) / ACC (motion) | u sistemu (in system) / u sistem (into system) |
| na (on/onto) | LOC / ACC | na ekranu (on screen) / na ekran (onto screen) |
| s / sa (with) | INS | s korisnikom, sa Vama |
| bez (without) | GEN | bez sistema, bez greške |
| za (for) | ACC | za korisnika, za sistem |
| od (from) | GEN | od korisnika |
| do (until/to) | GEN | do kraja |
| iz (out of) | GEN | iz mape |
| o (about) | LOC | o korisniku, o sistemu |
| po (per / along) | LOC | po korisniku, po datoteci |
| pre (before) | GEN | pre vremena |
| posle (after) | GEN | posle prijave |
| prema (toward) | DAT | prema korisniku |
| sa (down from) | GEN | sa stranice (depending on sense; sa = with takes INS) |
| kroz (through) | ACC | kroz aplikaciju |
po for "per" with rate: po datoteci (per file), po korisniku (per user), dnevno / na dan (per day).
6. ICU plurals — one / few / other (1 / 2-4 / 5+ pattern) (severity 2.5)
{count, plural,
one {# datoteka}
few {# datoteke}
other {# datoteka}
}
CLDR plural category boundaries (memorize):
| Category | Rule | Examples | Noun form |
|---|---|---|---|
one |
n % 10 = 1, n % 100 ≠ 11 | 1, 21, 31, 41, 101, 121 | NOM singular (datoteka) |
few |
n % 10 ∈ {2,3,4}, n % 100 ∉ {12,13,14} | 2, 3, 4, 22, 23, 24, 102, 103 | GEN singular (datoteke) |
other |
everything else | 0, 5-20, 25-30, 100, 1000 | GEN plural (datoteka) |
Critical: 11/12/13/14 use other (they are exceptions to the otherwise simple "ends in 1/2-4" pattern). Same for 111, 112, 113, 114. This is identical to Russian but different from Croatian (some details vary).
7. Numeral-noun agreement (severity 2.0)
The plural-form rule manifests directly in number constructions:
| Count | Pattern | Example |
|---|---|---|
| 1 | NOM sg | 1 datoteka, 1 korisnik, 1 sistem |
| 2, 3, 4 | GEN sg | 2 datoteke, 3 korisnika, 4 sistema |
| 5+ | GEN pl | 5 datoteka, 10 korisnika, 20 sistema |
| 11-14 | GEN pl (exception) | 11 datoteka (NOT datoteke), 12 sistema |
| 21 | NOM sg (back to "one") | 21 datoteka |
| 22-24 | GEN sg | 22 datoteke |
| 25+ | GEN pl | 25 datoteka |
8. Verb aspect — perfective vs imperfective (severity 2.0)
Every Serbian verb has aspect — most concepts have a perfective/imperfective pair. Choosing the wrong aspect changes meaning from "doing X" to "having done X" (or vice versa).
| Imperfective (process, ongoing) | Perfective (single completed event) | English |
|---|---|---|
| čuvati | sačuvati | save |
| brisati | obrisati | delete |
| otpremati | otpremiti | upload |
| preuzimati | preuzeti | download |
| otvarati | otvoriti | open |
| zatvarati | zatvoriti | close |
| stvarati | stvoriti / napraviti | create |
| uređivati | urediti | edit |
| menjati | promeniti | change |
| pisati | napisati | write |
| čitati | pročitati | read |
| slati | poslati | send |
| birati | izabrati | choose / select |
| prijavljivati se | prijaviti se | log in (process / single act) |
UI patterns by aspect:
- Buttons (single action) → perfective imperative:
Sačuvaj,Obriši,Pošalji,Izaberi. (NOTČuvaj, which implies "keep saving repeatedly".) - Ongoing status messages → imperfective verbal noun + …:
Čuvanje…,Otpremanje…,Učitavanje…,Slanje…. - Completed status → perfective past participle + je:
Datoteka je sačuvana,Otpremanje je završeno. - Failed status → perfective past + nije:
Otpremanje nije uspelo,Datoteka nije sačuvana.
9. Clitic second-position rule (Wackernagel's law) (severity 2.0)
Serbian clitics (je, se, mi, ti, mu, joj, nam, vam, im, bi, li) MUST go in the second position of their clause (after the first stressed word).
| ✗ Wrong | ✓ Correct |
|---|---|
Se meni to ne sviđa |
To mi se ne sviđa (clitics in 2nd position) |
Datoteka se mu prikazuje |
Datoteka mu se prikazuje (dative mu before reflexive se) |
Mi se to dopada (in narrative) |
Meni se to dopada (when emphatic, use full pronoun) |
Clitic order within the cluster (when multiple clitics stack):
li(question particle)- AUX
je/sam/si/smo/ste/su/bi/bih - DAT (
mi/ti/mu/joj/nam/vam/im) - ACC (
me/te/ga/je/nas/vas/ih) - Reflexive
se
Example: Da li mu se to dopada? (Q-AUX-DAT-REFL — does he like it?)
10. Three-gender adjective agreement (severity 2.0)
| Gender | Indef. example | Adjective ending (sg.) |
|---|---|---|
| Masculine (consonant ending) | sistem | novi sistem (anim/inanim sg. NOM same) |
| Feminine (-a ending) | aplikacija | nova aplikacija |
| Neuter (-o/-e ending) | podešavanje | novo podešavanje |
Wrong gender adjective is auto-fail: nova sistem ✗, novi aplikacija ✗.
11. Past-tense gender agreement (severity 1.5)
Past tense in Serbian = AUX (sam/si/je/smo/ste/su) + L-participle, which agrees with subject in gender + number:
| Subject | L-participle | Example |
|---|---|---|
| m. sg. | -o | on je radio (he worked) |
| f. sg. | -la | ona je radila (she worked) |
| n. sg. | -lo | ono je radilo (it worked) |
| m. pl. | -li | oni su radili |
| f. pl. | -le | one su radile |
| n. pl. | -la | ona su radila |
ona je radio ✗ (gender mismatch) → ona je radila ✓.
12. Verb-construction integrity — no stacked finite verbs (severity 2.0)
English -ing forms (gerund as adverbial: "I spent 6 years building...") MUST be rendered with glagolski prilog sadašnji (verbal adverb, -ći form), NOT with a second finite clause stacked on the first.
| ✗ Stacked finite | ✓ Verbal adverb (-ći) | English |
|---|---|---|
Proveo sam 6 godina gradio sam posao |
Proveo sam 6 godina gradeći posao |
I spent 6 years building the business |
Radio sam dok sam pisao izveštaj |
Radio sam pišući izveštaj |
I worked while writing the report |
Provela je vreme čekala je rezultate |
Provela je vreme čekajući rezultate |
She spent time waiting for results |
Common -ći forms (imperfective verbs only):
| Infinitive | -ći form | English |
|---|---|---|
| čekati | čekajući | waiting |
| pisati | pišući | writing |
| graditi | gradeći | building |
| čitati | čitajući | reading |
| razmišljati | razmišljajući | thinking |
| koristiti | koristeći | using |
| dolaziti | dolazeći | coming |
| radeći | radeći | working |
| govoreći | govoreći | speaking |
Also flag verb-root monotony: if the same root appears 3+ times in one string (radi na radu radnog procesa), restructure with synonyms (obavlja posao, razvija radni proces).
13. Diacritics — Č Ć Ž Š Đ are essential (severity 2.5)
In Latin script, never strip diacritics. Sacuvaj for Sačuvaj, Obrisi for Obriši, Sifra for Šifra is broken text. Some legacy SMS-era systems stripped them; modern UI does not.
In Cyrillic this is a non-issue (the script doesn't use Latin diacritics).
Pronouns and Possessives
Personal pronouns
| English | Latin | Cyrillic | Notes |
|---|---|---|---|
| I | ja | ја | |
| you (sg. informal) | ti | ти | |
| you (sg./pl. formal — capitalize) | Vi | Ви | Always capitalized in direct address |
| you (pl. informal) | vi | ви | lowercase when truly plural informal |
| he | on | он | |
| she | ona | она | |
| it | ono | оно | |
| we | mi | ми | |
| they (m./mixed) | oni | они | |
| they (f.) | one | оне | |
| they (n.) | ona | она |
Possessive pronouns (agree with possessed noun's gender/number/case)
| Person | m. sg. | f. sg. | n. sg. | pl. (all) |
|---|---|---|---|---|
| moj (my) | moj | moja | moje | moji/moje/moja |
| tvoj (your sg. informal) | tvoj | tvoja | tvoje | tvoji/tvoje/tvoja |
| Vaš (your formal — capitalize) | Vaš | Vaša | Vaše | Vaši/Vaše/Vaša |
| njegov (his) | njegov | njegova | njegovo | njegovi/njegove/njegova |
| njen (her) | njen | njena | njeno | njeni/njene/njena |
| svoj (reflexive — own) | svoj | svoja | svoje | svoji/svoje/svoja |
| naš (our) | naš | naša | naše | naši/naše/naša |
| njihov (their) | njihov | njihova | njihovo | njihovi/njihove/njihova |
Reflexive svoj: used when possessor = subject of same clause.
On čuva svoj fajl.(He saves his own file.) ← reflexiveOn čuva njegov fajl.(He saves someone else's file.) ← non-reflexive — different referent
UI Conventions
Buttons — IMPERATIVE (perfective for single action)
Single-word action buttons take the imperative — informal Sačuvaj / formal Sačuvajte. NEVER infinitive (Sačuvati) — that reads as an instruction manual.
Both informal (ti) and formal (Vi) forms shown; pick one per project and stay consistent.
| English | ti (informal) | Vi (formal) |
|---|---|---|
| Save | Sačuvaj | Sačuvajte |
| Cancel | Otkaži | Otkažite |
| Delete | Obriši | Obrišite |
| Send | Pošalji | Pošaljite |
| Edit | Izmeni | Izmenite |
| Search | Pretraži | Pretražite |
| Confirm | Potvrdi | Potvrdite |
| Continue | Nastavi | Nastavite |
| Submit | Pošalji | Pošaljite |
| Sign in | Prijavi se | Prijavite se |
| Sign out | Odjavi se | Odjavite se |
| Sign up | Registruj se | Registrujte se |
| Next | Sledeće | (same) |
| Back | Nazad | (same) |
| Done | Gotovo / Završeno | (same) |
| OK | U redu / OK | (same) |
| Close | Zatvori | Zatvorite |
| Upload | Otpremi | Otpremite |
| Download | Preuzmi | Preuzmite |
| Refresh | Osveži | Osvežite |
| Settings | Podešavanja | (same) |
| Apply | Primeni | Primenite |
| Reset | Vrati na podrazumevano / Resetuj | Resetujte |
| Select all | Izaberi sve | Izaberite sve |
| Deselect all | Poništi sve | Poništite sve |
| Add more | Dodaj još (NOT Dodaj više) |
Dodajte još |
| Show more | Prikaži još | Prikažite još |
Tabs and navigation labels also use imperative, not infinitive:
- ✗
Otpremiti datoteke(inf., instruction-manual tone) - ✓
Otpremite datoteke(Vi imp.) /Otpremi datoteke(ti imp.)
Status messages — three distinct patterns
Ongoing (in-flight) → imperfective verbal noun + …
| English | Serbian |
|---|---|
| Loading… | Učitavanje… |
| Saving… | Čuvanje… |
| Sending… | Slanje… |
| Uploading… | Otpremanje… |
| Downloading… | Preuzimanje… |
| Translating… | Prevođenje… |
| Connecting… | Povezivanje… |
| Processing… | Obrada… |
| Searching… | Pretraga… |
| Please wait | Sačekajte, molim Vas / Molimo sačekajte |
Completed → Subject + je + perfective past participle (full construction with auxiliary je)
| English | Serbian |
|---|---|
| Saved | Sačuvano (n. participle, subject-less) / Datoteka je sačuvana |
| Done | Gotovo / Završeno |
| Translation complete | Prevod je završen |
| File uploaded | Datoteka je otpremljena |
| Payment successful | Plaćanje je uspelo / Uspešno plaćanje |
| Sent | Poslato / Poruka je poslata |
Critical: NEVER drop the je auxiliary in completion messages. Prevod završen ✗ (sounds incomplete) → Prevod je završen ✓.
Failed → Subject + nije + perfective past participle
| English | Serbian |
|---|---|
| Save failed | Čuvanje nije uspelo |
| Upload failed | Otpremanje nije uspelo |
| Translation failed | Prevod nije uspeo |
| Connection failed | Povezivanje nije uspelo |
| File not found | Datoteka nije pronađena |
NEVER use short forms like Prevod neuspeo — they sound unnatural and bureaucratic.
Validation / field errors → nominal description
| English | Serbian |
|---|---|
| This field is required | Ovo polje je obavezno |
| Invalid format | Neispravan format |
| Password too short | Lozinka je prekratka |
| Email already in use | Imejl adresa je već u upotrebi |
Action instructions → imperative
| English | Serbian |
|---|---|
| Enter your password | Unesite Vašu lozinku (Vi) / Unesi lozinku (ti) |
| Choose at least one language | Izaberite najmanje jedan jezik |
| Try again | Pokušajte ponovo |
Empty states — Nema X / Nije pronađeno
| ✗ Bare | ✓ Specific |
|---|---|
| Prazno | Nema rezultata / Nema pronađenih stavki |
| Ništa ovde | Nema datoteka / Nema dostupnih podataka |
| Bez podataka | Nema dostupnih podataka |
| Lista je prazna | Nema stavki na listi |
Drag-and-drop
- drag → prevucite (Vi) / prevuci (ti)
- drop (= place files) → pustite (Vi) / pusti (ti) — NOT
ispustite(= accidentally drop) - release → otpustite (Vi) / otpusti (ti)
- Combined:
Prevucite datoteke ovde(Drag files here) /Pustite za otpremanje(Release to upload).
Ispustite svoje datoteke ✗ (literal "drop your files [by accident]") → Prevucite svoje datoteke ovde ✓.
File picker — Izaberi not Pregledaj
| ✗ Older / navigation-oriented | ✓ Modern / action-oriented |
|---|---|
| Pregledaj datoteke | Izaberi datoteke (ti) / Izaberite datoteke (Vi) |
| Klikni za pregled | Klikni za izbor / Kliknite za izbor |
| Za pregledanje datoteka | Za izbor datoteka |
Quantity expressions
| ✗ Calque | ✓ Native |
|---|---|
| 25+ jezika | više od 25 jezika |
| +{count} više | i {count} drugih / još {count} |
| +25 funkcija | preko 25 funkcija / više od 25 funkcija |
Dodaj više ✗ (literal "add more") → Dodaj još ✓ (idiomatic "add more").
Error messages — what + next step
| ✗ Bare | ✓ With next step |
|---|---|
| Datoteka nije pronađena. | Datoteka nije pronađena. Proverite putanju. |
| Greška mreže. | Greška mreže. Pokušajte ponovo. |
| Neispravan imejl. | Imejl adresa nije ispravna. Proverite format. |
| Prijava nije uspela. | Prijava nije uspela. Proverite korisničko ime i lozinku. |
Punctuation, Numbers, Dates, Currency
Punctuation
| Mark | Serbian | Notes |
|---|---|---|
| Question mark | ? |
Same as English |
| Comma | , |
Different conjunction rules (see below) |
| Period | . |
Same |
| Colon | : |
Same |
| Quotation marks | „…" (German-style: low opening, high closing) — preferred | OR "…" Latin straight quotes; «…» rarely used |
| Nested quotes | '…' |
Single quotes inside primary |
| Apostrophe | only in foreign names | Possessive uses -ov/-ev or genitive, not English-style 's |
Quote style: Klikni na dugme „Sačuvaj" (low-9 opening, high-9 closing). NOT "Sačuvaj" (English style) or «Sačuvaj» (French/Russian style) in formal Serbian text.
Comma rules
| Rule | Example |
|---|---|
NO comma before i (and) |
Prevucite ovde i kliknite. |
NO comma before ili (or) |
Prevucite ovde ili kliknite. |
NO comma before niti (nor) |
Niti znam niti mi je važno. |
Comma before da (that, subordinating) |
Vidim, da je datoteka otvorena. |
Comma before koji/koja/koje (relative) |
Datoteka, koja je sačuvana… |
Comma before ako (if) |
Sačuvajte, ako želite. |
Comma before jer (because) |
Otkazano, jer nije uspelo. |
Comma before ali (but) |
Brzo, ali efikasno. |
Comma before a (and/but contrast) |
Ja sam pisao, a ti si čekao. |
Numbers
| Format | Pattern | Example |
|---|---|---|
| Thousands separator | period (.) | 1.234.567 |
| Decimal separator | comma (,) | 3,14 / 99,99 |
| Negative | -25 |
|
| Percent | 25% (no space typical) |
Critical: Serbian uses period for thousands, comma for decimal — opposite of English. 1,234.56 is wrong; write 1.234,56.
Dates
| Format | Example | Use |
|---|---|---|
| D. M. YYYY. | 15. 1. 2024. | Default — note the period AFTER the year |
| D. mesec YYYY. | 15. januar 2024. | Long-form prose |
| D. mesec YYYY. godine | 15. januar 2024. godine | Formal documents |
| YYYY-MM-DD | 2024-01-15 | Technical/API only |
Month names (lowercase always, no period for full names):
| 1 | januar | 7 | jul | | 2 | februar | 8 | avgust | | 3 | mart | 9 | septembar | | 4 | april | 10 | oktobar | | 5 | maj | 11 | novembar | | 6 | jun | 12 | decembar |
(These are the Serbian months — note jul/avgust vs Croatian srpanj/kolovoz.)
Weekdays (lowercase): ponedeljak, utorak, sreda, četvrtak, petak, subota, nedelja (NOT Croatian nedjelja ijekavian).
Week starts Monday.
Time
- 24-hour preferred:
14:30or14.30(period acceptable as separator). - 12-hour rarely used.
Currency — Serbian Dinar (RSD)
| Format | Pattern | Example |
|---|---|---|
| Local symbol | din. after amount |
99,99 din. |
| ISO code | RSD before/after | 99,99 RSD / RSD 99,99 |
For EUR (sometimes shown for context in Serbia): 99,99 € or 99,99 EUR.
Never $99.99 in Serbian UI — currency-symbol-before-amount with period decimal is American English style.
Terminology — preferred Serbian terms (with notes on established loanwords)
Serbian has a more relaxed attitude toward IT loanwords than Croatian — many Latinized terms (klipbord, imejl, link, onlajn) are fully established. Croatian "purist" terms (međumemorija, e-pošta, poveznica, na mreži) sound either foreign-Croatian or overly formal in Serbian.
| English | ✓ Serbian preferred | ✗ Avoid |
|---|---|---|
| user | korisnik | user |
| account | nalog | akaunt |
| password | lozinka / šifra | password |
| settings | podešavanja | setings |
| dashboard | kontrolna tabla | dashboard |
| imejl | e-pošta (Croatian-leaning), mejl | |
| link | link | veza (overly formal) |
| website | sajt / veb-sajt | website |
| folder | fascikla (formal) / folder (informal) | — |
| file | datoteka (formal) / fajl (informal) | — |
| device | uređaj | device |
| phone | telefon | — |
| computer | računar | kompjuter |
| application / app | aplikacija | aplikejšn |
| update (v.) | ažurirati / nadograditi | apdejtovati (informal) |
| save | sačuvati | sejvovati |
| delete | obrisati / izbrisati | deletovati |
| upload | otpremiti | uploadovati (informal but acceptable in casual) |
| download | preuzeti | downloadovati (informal but acceptable) |
| sign in / log in | prijaviti se | login-ovati se |
| sign up / register | registrovati se | — |
| search | pretraga / pretraživati | — |
| click | kliknuti / klikni | — |
| share | podeliti / deli | šerovati (informal) |
| profile | profil | — |
| notifications | obaveštenja | notifikacije (acceptable) |
| privacy | privatnost | — |
| terms | uslovi | — |
| support | podrška | — |
| help | pomoć | — |
| feedback | povratne informacije / fidbek (informal) | — |
| menu | meni | — |
| home | početna | — |
| logout | odjaviti se | logout-ovati se |
| clipboard | klipbord | međumemorija (Croatian purist) |
| online | onlajn | na mreži (Croatian purist) |
| offline | oflajn | van mreže (Croatian purist) |
| detection (in UI) | otkrivanje | detekcija (technical OK) |
| validation (in UI) | provera | validacija (technical OK) |
| configuration (in UI) | podešavanje | konfiguracija (technical OK) |
| build (software) | napraviti / razviti / build (keep in code contexts) | graditi (= construction) |
| deploy | postaviti / izdati / objaviti / deploy-ovati (informal) | — |
| pipeline (CI/CD) | pipeline (keep) / procesna linija | cevovod (= literal pipe) |
| commit (git) | commit (keep) / sačuvati izmene | — |
| merge (git) | spojiti / merge (keep in code) | — |
| repository | repozitorijum | — |
| branch (git) | grana / branch (keep) | — |
| API | API (keep — Latin always) | — |
| endpoint | endpoint (keep) / krajnja tačka | — |
| token | token (keep) | — |
| cache | keš (memorija) | — |
| log (n.) | dnevnik / log | — |
| sync | sinhronizacija / sinhronizovati | — |
| webhook | webhook (keep) | — |
| source of truth | izvor istine / kanonski izvor | — |
Technical identifiers — keep in Latin script even inside Cyrillic text
This is the only legitimate script-mixing case. Inside Cyrillic Serbian text, the following ALWAYS stay in Latin:
- Programming languages: Python, JavaScript, Go, Rust, Java
- Frameworks: React, Vue, Angular, Next.js, Django
- Tools: Git, GitHub, GitLab, Docker, npm, pip, cargo
- Protocols: HTTP, HTTPS, FTP, SSH, TCP, REST, GraphQL, OAuth, JWT
- File formats: JSON, XML, YAML, CSV, PDF, MP4
- Brands: Google, Microsoft, Apple, AWS, iPhone, Android
- Commands, file paths, URLs, code snippets
- Placeholders:
{variableName},{{count}},<tag>
✓ Correct: Git репозиторијум је синхронизован. (Cyrillic prose, Latin Git)
✓ Correct: API кључ је неисправан. (Cyrillic prose, Latin API)
✓ Correct: Подаци у JSON формату. (Cyrillic prose, Latin JSON)
✗ Wrong: Гит репозиторијум је синхронизован. (transliterating Git to Cyrillic)
✗ Wrong: АПИ кључ (transliterating API)
✗ Wrong: ЈСОН формат (transliterating JSON)
False Friends — Critical
| Serbian word | Actually means | NOT this (common AI error) | Correct for the English |
|---|---|---|---|
| aktuelan | current / topical | "actual" | "actual" → stvaran / pravi |
| realizovati | to implement / carry out | "to realize (understand)" | "realize (understand)" → shvatiti |
| eventualno | possibly | "eventually" | "eventually" → na kraju / konačno |
| uzbuđen | excited (sometimes ambiguous, can be sexual) | safer "excited" | "excited (looking forward)" → radujem se / uzbudljiv for adj. |
| sympatičan | likeable / pleasant | "sympathetic (compassionate)" | "sympathetic" → saosećajan |
| simpatija | a crush / affection | "sympathy (condolence)" | "sympathy" → saučešće |
| transparentan | clear / see-through | (mostly OK) | political "transparent" also transparentan is OK |
| receptura | recipe (formal) | "receipt" | "receipt" → račun / priznanica |
| dirigovati | to conduct (music) | "to direct (manage)" | "direct (manage)" → upravljati / rukovoditi |
| inženjering | engineering | (OK) | — |
| efektan | effective in producing visual effect | "effective" | "effective" → delotvoran / efikasan |
Calque / Anti-Pattern List
| ✗ Calque | ✓ Native | Reason |
|---|---|---|
| Auto-otkriveno / Auto-sačuvaj | Automatski otkriveno / Automatski sačuvaj | "Auto-X" — use full adjective form |
| Prevedeni rezultati (as header) | Rezultati prevođenja | English Past-Participle + Noun → Serbian Noun + Genitive verbal noun |
| Otpremljeni fajlovi (as header) | Datoteke za otpremanje | Same pattern; or use noun for purpose |
| Izabrane opcije (as header) | Izbor opcija | Same pattern; use noun form |
| opcija jezika (noun + noun) | jezičke opcije / izbor jezika | English N+N → Serbian adj+N or genitive |
| projekat folder | folder projekta / projektni folder | English N+N → Serbian genitive or adjective |
| korisnik podešavanja | korisnička podešavanja | English N+N → Serbian adjective |
| preference tona | željeni ton / izbor tona | Anglicism noun → native adjective + noun |
| praviti smisao | imati smisla | "Makes sense" calque |
| na kraju dana | na kraju krajeva | "At the end of the day" calque |
| uzeti mesto | održati se | "Take place" calque |
| bazirano na | na osnovu | "Based on" calque; use native preposition |
| u redu da | da bi / kako bi | "In order to" calque |
| na dnevnoj bazi / nedeljnoj bazi | svakodnevno / dnevno / nedeljno | "On a daily/weekly basis" calque; use adverb |
| u smislu (overused) | što se tiče / u pogledu | "In terms of" calque |
| izvršiti poboljšanje | poboljšati | "Make improvements" — use direct verb |
| pružiti odgovor | odgovoriti | "Provide an answer" — use verb |
| izvršiti izbor | izabrati | "Make a selection" — use verb |
| Nulti zastoj / Nula zastoja | Bez zastoja / Bez grešaka | "Zero X" English marketing calque |
| AI-pokretan | zasnovan na AI / uz pomoć AI | "X-powered" calque |
| podaci-orijentisan | orijentisan na podatke / zasnovan na podacima | "X-driven" calque |
| pretpostavka-prijateljski | korisnički prilagođen / lako za korišćenje | "user-friendly" calque |
| Sjedinjene Američke Države | SAD | UI short form |
| Ujedinjeno Kraljevstvo Velike Britanije | Velika Britanija / UK | UI short form |
| [Subject] je potreban za [Purpose] | Potreban je [Subject] za [Purpose] | English subject-first → Serbian verb-first |
| Dragujte / Drag-ujte | Prevucite | English verb → native |
| Ispustite datoteke ovde | Prevucite datoteke ovde / Pustite za otpremanje | "ispustite" = accidentally drop; use idiomatic phrasing |
| Prevod neuspeo / Plaćanje neuspelo | Prevod nije uspeo / Plaćanje nije uspelo | Missing auxiliary — sounds incomplete |
| Prevod završen (no je) | Prevod je završen | Missing auxiliary in completion message |
| Poništi izbor svega | Poništi sve | Button brevity |
| Izaberi izbor svih | Izaberi sve | Button brevity / redundancy |
| Dodaj više | Dodaj još | "Add more" — use idiomatic još |
| per datoteka | po datoteci | "per X" → po + locative |
Past Participle + Noun → Noun + Genitive (header pattern)
This is a uniquely Serbian-natural restructure. English likes adjectival past participles in headers; Serbian prefers nominalization.
| English | ✗ Calque (Participle + N) | ✓ Native (N + Genitive of verbal noun) |
|---|---|---|
| Translated Results | Prevedeni rezultati | Rezultati prevođenja |
| Selected Options | Izabrane opcije | Izbor opcija |
| Uploaded Files | Otpremljeni fajlovi | Otpremljene datoteke (when finished, OK) / Datoteke za otpremanje (when pending) |
| Saved Items | Sačuvane stavke | Sačuvane stavke (OK as result), or Lista sačuvanog |
Custom Sections
Verbification suffixes are VALID — don't over-correct
Serbian forms verbs from English loans via -ovati / -irati suffixes. These are legitimate Serbian verbs once formed:
| English | Serbian verbified | Status |
|---|---|---|
| upload | uploadovati / otpremiti | both OK; native otpremiti preferred |
| download | downloadovati / preuzeti | native preferred |
| install | instalirati | fully naturalized, no native alternative needed |
| log in | ulogovati se / prijaviti se | native prijaviti se preferred for UI |
| post | postovati | acceptable; native objaviti preferred in formal contexts |
| share | šerovati / podeliti | native podeliti preferred |
| like (social) | lajkovati | fully accepted in social-media contexts |
| sync | sinhronizovati | fully naturalized |
| reset | resetovati | fully naturalized |
| commit (git) | commit-ovati / sačuvati izmene | code-context only |
Don't flag instalirati or sinhronizovati as errors — they're standard. The flag is for hybrid forms with native verbs already available: čistati (no, use čistiti), sejvovati (no, use sačuvati), deletovati (no, use obrisati).
Per vs for — CRITICAL semantic distinction
| Source | ✓ Serbian | Meaning |
|---|---|---|
| per language (rate) | po jeziku (loc.) | rate, per-unit |
| for 25 languages (total) | za 25 jezika (acc.) | total scope |
| 5 USD per language | 5 USD po jeziku | rate |
| 5 USD for all languages | 5 USD za sve jezike | total |
Mixing these in pricing copy is auto-fail.
Cost / estimate ordering
Prefer amount-first:
| ✗ Ambiguous | ✓ Clear |
|---|---|
| 5 jezika 25 kredita | 25 kredita za 5 jezika |
| 5 jezika: 25 kredita | (acceptable variant) |
UI element references in prose
Use quotation marks for specific UI labels:
| ✗ Compound | ✓ Quoted label |
|---|---|
| Kliknite Sačuvaj-dugme | Kliknite na dugme „Sačuvaj" |
| Otvorite Podešavanja-karticu | Otvorite karticu „Podešavanja" |
| Koristite Ime-polje | Koristite polje „Ime" |
Brand names + Serbian declension
Foreign brand names CAN be declined Serbian-style with a hyphen + Serbian ending (informal), OR stay invariant (formal/UI default):
Google→Google-a(gen.),Google-u(loc.),Google-om(ins.) — informal/conversational- For formal UI, prefer prepositional phrases:
na Google-uor restructure to keep brand invariant:na platformi Google. iPhone→iPhone-a,iPhone-u(gen. / loc.)GitHub→GitHub-a,GitHub-u
"Da + present" as alternative to infinitive
A natural Serbian feature — da + present-tense often replaces the infinitive, sounding more conversational:
| ✗ Stiff infinitive | ✓ Natural da + present |
|---|---|
| Želim sačuvati datoteku | Želim da sačuvam datoteku |
| Moram napisati izveštaj | Moram da napišem izveštaj |
| Mogu pomoći | Mogu da pomognem |
Both are grammatical. Da + present is preferred in modern Serbian especially in spoken / informal / UI contexts. Use infinitive sparingly (formal/legal).
Self-Check Checklist (Run Before Returning Output)
Script (auto-fail on miss)
- One script throughout — never Cyrillic mixed with Latin within a single string (or set of related strings for the same locale).
- Latin technical identifiers preserved inside Cyrillic text (Git, API, JSON, npm, URLs,
{var}). - Diacritics intact in Latin: Č, Ć, Ž, Š, Đ never stripped.
- Digraphs correct when converting: Љ↔Lj, Њ↔Nj, Џ↔Dž (case-aware).
Accuracy
- Ekavian forms —
vreme/lepo/mleko/dete/reka(NEVERvrijeme/lijepo/mlijeko/dijete/rijeka). - Word integrity — prefixes joined (
prevesti,izvršiti,sačuvati), no spaces. Reflexiveseseparate (prijavi se,registruj se). - Gender agreement on every noun-adj pair (novi sistem / nova aplikacija / novo podešavanje).
- Seven cases correct, especially:
- Animate masc. accusative = genitive (
vidim korisnika). - Instrumental after
s/sa(s korisnikom,sa Vama). - Locative after
u/na/o/po(u sistemu,o korisniku,po datoteci). - Genitive after
bez/od/do/iz/pre/posle(bez sistema).
- Animate masc. accusative = genitive (
- ICU plurals:
one/few/othercategories present (1 = nom.sg, 2-4 = gen.sg, 5+ = gen.pl). - Numeral-noun agreement matches plural-form pattern.
- Verb aspect correct: perfective for completed (buttons, completion), imperfective for ongoing (status, process).
- Clitics in 2nd position (Wackernagel):
To mi se ne sviđa, notSe mi to ne sviđa. - Clitic order: li → AUX → DAT → ACC → se (
Da li mu se to dopada?). - Past-tense gender agreement on L-participle (radio/radila/radilo).
- No stacked finite verbs from English -ing — use
-ćiverbal adverb (gradeći, čekajući, pišući). - Placeholders preserved (
{var},{{count}},<tag>, URLs, code identifiers). - Numbers: comma decimal (3,14), period thousands (1.234),
din.after amount. - Dates: D. M. YYYY. (with period after year), Serbian month names (januar, avgust — NOT siječanj, kolovoz).
- Time: 24-hour,
14:30or14.30. - per vs za:
po + LOCfor rate,za + ACCfor total.
Register
- Vi/ti chosen and applied consistently — pronouns, possessives, verb endings all match.
-
Vi/Vaš/Vašacapitalized in direct second-person address. - No mixing of Vi-form verb ending with ti-form possessive (or vice versa) within one text.
UI conventions
- Buttons use perfective imperative (
Sačuvaj/Sačuvajte), not infinitive (Sačuvati). - Tabs/navigation also use imperative, not infinitive.
- Reflexive
sepresent where required (prijavi se,registruj se). - Status ongoing: imperfective verbal noun + … (
Učitavanje…,Slanje…). - Status completed: Subject + je + perfective past participle (
Prevod je završen), not barePrevod završen. - Status failed: Subject + nije + perfective past participle (
Otpremanje nije uspelo), not bareOtpremanje neuspelo. - Empty state:
Nema X/Nije pronađenowith specific noun. - File picker:
Izaberi, notPregledaj. - Drag-drop:
Prevucite,Pustite(NOTIspustite). - Quantity:
više od 25,još {count}, NOT25+,+{count}. - Quotes:
„X"low-9/high-9 style.
Naturalness
- Past Participle + Noun headers → Noun + Genitive of verbal noun (
Rezultati prevođenja, notPrevedeni rezultati). - Auto-X prefix → full adjective
Automatski X. - Marketing "Zero X" →
Bez X. - English N + N compounds → Serbian adj + N or genitive (
jezičke opcije, notopcija jezikacalque;željeni ton, notpreference tona). - No verbose collocations (
izvršiti poboljšanje→poboljšati;pružiti odgovor→odgovoriti). - No false friends:
aktuelan ≠ actual,realizovati ≠ realize,eventualno ≠ eventually. - No verb-root monotony (same root 3+ times in one string).
- No accidental Croatian forms (no
tjedan,kruh,tko,što,siječanj). - Proper-noun short forms:
SAD,UK,EU. - Established loanwords accepted:
klipbord,link,imejl,onlajn— don't over-purify withmeđumemorija,e-pošta,na mreži.
Worked Example — Standard sr-Latn formal UI
Source (neutral product UI):
Welcome back! You have 3 new files in your account. Click Continue to review them or Cancel to stay here. Saving your changes…
Register check: neutral product UI, exclamation → Vi (formal), neutral lexicon, Latin script (software default).
Translation (sr-Latn):
Dobro došli nazad! Imate 3 nove datoteke na Vašem nalogu. Kliknite na Nastavi da ih pregledate ili Otkaži da ostanete ovde. Čuvanje Vaših izmena…
Why this works:
Dobro došli nazad— standard greeting with plural participle (formal Vi → -i plural form).Imate— Vi-form verb (2nd person plural).3 nove datoteke—3triggersfew(gen.sg.);datotekais fem.;noveis fem. plural adjective in gen.sg. form (matches noun).na Vašem nalogu—na+ LOC;naloguis masc. LOC sg.;Vašemcapitalized formal possessive in LOC.Kliknite na Nastavi / Otkaži— Vi imperative, button labels in perfective imperative themselves.da ih pregledate/da ostanete ovde—da + presentconstruction (natural Serbian),ihis ACC pl. clitic ("them"),pregledateVi-form perfective verb.Čuvanje Vaših izmena…— imperfective verbal noun for ongoing status;Vaših izmenagen.pl. (object of verbal noun).- Punctuation: Latin
!,…OK. No comma beforeili(correct). - No religious / cultural filler injected.
Same string in sr-Cyrl:
Welcome back! You have 3 new files in your account. Click Continue to review them or Cancel to stay here. Saving your changes…
(1:1 Cyrillic conversion. No content changes. Lj/Nj/Dž would need careful handling — but none in this sentence.)
Same string informal (ti):
Dobro došao/došla nazad! Imaš 3 nove datoteke na svom nalogu. Klikni na Nastavi da ih pregledaš ili Otkaži da ostaneš ovde. Čuvanje tvojih izmena…
(Note Dobro došao/došla — past participle now agrees with addressee's gender; in real UI you'd pick one or use a gender-neutral phrasing.)
Worked Example — ICU plural expansion
Source:
You have {count, plural, one {# new message} other {# new messages}}.
Translation (full Serbian three-category expansion):
Imate {count, plural,
one {# novu poruku}
few {# nove poruke}
other {# novih poruka}
}.
Notes:
one:1 nova poruka→ in ACC (object ofImate),1 novu poruku. The form chosen here is direct accusative singular feminine.few:2/3/4 nove poruke—noveis f. pl. NOM/ACC (used as gen.sg. surface form here because of the 2-4 rule),porukeis f. gen.sg.other:5+ novih poruka—novihis f. gen.pl. adjective,porukais f. gen.pl. noun.
(English source has only one/other; Serbian MUST expand to one/few/other.)
Worked Example — Date and currency in both scripts
Source: Your subscription expires on January 15, 2024. Total: $99.99.
sr-Latn:
Vaša pretplata ističe 15. januar 2024. Ukupno: 99,99 RSD.
sr-Cyrl:
Your subscription expires on January 15, 2024. Total: 99.99 RSD.
(If RSD doesn't apply and the price is genuinely USD, keep 99,99 USD or 99,99 $ after amount. Never $99.99 in Serbian.)
Worked Example — Verb-construction integrity (-ći)
Source: I spent 6 years building this business while learning from mistakes.
✗ Wrong (stacked finite verbs):
Proveo sam 6 godina gradio sam ovaj posao dok sam učio iz grešaka.
✓ Right (verbal adverb -ći for simultaneous actions):
Proveo sam 6 godina gradeći ovaj posao i učeći iz grešaka.
OR in Cyrillic:
I spent 6 years building this business and learning from mistakes.
When in Doubt
- Default to sr-Latn, Vi (formal), ekavian, single script throughout.
- If unsure about script → ask once; default Latin for software UI.
- If a word looks ijekavian (
vrijeme,lijepo,mlijeko,dijete) → fix to ekavian (vreme,lepo,mleko,dete). - If a word looks Croatian (
tjedan,siječanj,kruh,tko,što) → fix to Serbian (nedelja,januar,hleb,ko,šta). - If a verb prefix has a space (
pre vesti,iz vršiti) → join it:prevesti,izvršiti. - If
seis attached to a verb (prijavise,registrujse) → separate it:prijavi se,registruj se. - If you wrote
Prevod završenorOtpremanje neuspelo→ add the auxiliary:Prevod je završen,Otpremanje nije uspelo. - If a string has both Cyrillic AND Latin (other than tech identifiers) → pick one and convert the rest.
- If you used
infinitive + dafor a button → switch to imperative:Sačuvati✗ →Sačuvaj/Sačuvajte✓. - If you stacked two finite verbs from an English -ing construction → rewrite with -ći (gradeći, pišući, čekajući).