Install
$ agentstack add skill-i18n-agent-i18nstack-localize-hr ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Translate to Croatian (hr) — High-Fidelity Skill
Scope & Variants
Croatian (hr) is a single standard written language using only Latin script with Croatian diacritics (Č Ć Đ Š Ž). Unlike Serbian, there is no Cyrillic variant — Croatian is Latin-only.
| Locale | Name | Notes | |--------|------|-------| | hr / hr-HR | Standard Croatian (Republic of Croatia) | Default and only meaningful variant for software | | hr-BA | Croatian as used in Bosnia & Herzegovina | Practically identical to hr for product UI |
Practical reality: Croatian translation has essentially one target. There is no equivalent to the Spanish es-ES/es-419 split or the Norwegian Bokmål/Nynorsk split. Treat hr as the universal target.
BCMS continuum — Croatian is NOT Serbian / Bosnian / Montenegrin
Croatian, Serbian, Bosnian, and Montenegrin are mutually intelligible South Slavic varieties — but they are politically, orthographically, and lexically distinct languages with their own ISO codes (hr, sr, bs, cnr). Mixing them is a critical failure.
The biggest single tell that distinguishes Croatian from Serbian: ijekavian vs ekavian.
| English | Croatian (ijekavian) ✓ | Serbian (ekavian) ✗ | |---------|------------------------|----------------------| | time | vrijeme | vreme | | nice | lijepo | lepo | | milk | mlijeko | mleko | | child | dijete | dete | | children | djeca | deca | | river | rijeka | reka | | world | svijet | svet | | light | svjetlost | svetlost | | flower | cvijet | cvet | | star | zvijezda | zvezda | | song | pjesma | pesma | | place | mjesto | mesto | | beautiful | lijep | lep | | arrow | strijela | strela | | left | lijevi | levi | | measure | mjera | mera | | change (n.) | promjena | promena | | section | odjeljak | odeljak |
If any vreme / lepo / mleko / dete / reka slips into a Croatian translation, fix it — that's Serbian.
Other Croatian-specific vocabulary (where Serbian uses different roots):
| English | Croatian ✓ | Serbian (do not use in hr) | |---------|-----------|-----------------------------| | week | tjedan | nedelja (note: nedjelja in Croatian means "Sunday"!) | | thousand | tisuća | hiljada | | who | tko | ko | | what | što | šta | | football | nogomet | fudbal | | bread | kruh | hleb | | computer | računalo | računar | | keyboard | tipkovnica | tastatura | | screen | zaslon | ekran | | browser | preglednik | pregledač | | company | tvrtka (also poduzeće) | preduzeće / firma | | office | ured | kancelarija | | coffee | kava | kafa | | airport | zračna luka | aerodrom | | station | postaja / kolodvor | stanica | | theatre | kazalište | pozorište | | factory | tvornica | fabrika | | sport | šport (or sport) | sport | | family | obitelj | porodica | | address | adresa | adresa (same) | | university | sveučilište | univerzitet | | million | milijun | milion |
Croatian months are Slavic-rooted (Croatia is one of only 5 Slavic countries to keep them — Czech, Polish, Ukrainian, Belarusian being the others):
| # | Croatian ✓ | Serbian (do not use) | |---|-----------|----------------------| | 1 | siječanj | januar | | 2 | veljača | februar | | 3 | ožujak | mart | | 4 | travanj | april | | 5 | svibanj | maj | | 6 | lipanj | jun | | 7 | srpanj | jul | | 8 | kolovoz | avgust | | 9 | rujan | septembar | | 10 | listopad | oktobar | | 11 | studeni | novembar | | 12 | prosinac | decembar |
Croatian months are also adjectival in form (siječanj declines: siječnja, siječnju, etc.).
Register Auto-Detection (Apply Before Translating)
Croatian formality is set by pronoun + verb-ending choice with capitalization conventions. 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 (Spremi, Klikni). Allow some loanwords. | | Neutral product UI / docs / consumer software (DEFAULT) | Formal (Vi) — Vi capitalized for direct address, 2nd-person pl. verb endings (-te), polite imperative (Spremite, 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), avoid casual loanwords. |
Hard rule: never mix levels in one text. A string with Možete promijeniti (formal verb) and tvoje postavke (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. This signals respect — failing to capitalize is read as informal even if verb forms are formal.
Default for software UI: Vi (formal) unless brand voice is explicitly youth/casual. Croatian business culture is more formal than e.g. Norwegian or Swedish — Vi is the safe default.
Critical Hard Rules (Severity ≥ 2.0 — Auto-Fail If Wrong)
1. IJEKAVIAN forms only — never ekavian (severity 2.5)
Documented above. The single defining feature of Croatian vs Serbian. Every vrijeme/lijepo/mlijeko/dijete/rijeka/svijet/lijep/cvijet/zvijezda/pjesma/mjesto.
2. Word integrity — verb prefixes NEVER split (severity 3.0)
Croatian verbs with prefixes are single words. Splitting them is a critical error.
| ✗ Wrong (split) | ✓ Correct (joined) | |-----------------|---------------------| | pre voditi | prevoditi (to translate) | | iz vršiti | izvršiti | | pre nijeti | prenijeti (to transfer) | | na praviti | napraviti | | sa čuvati (rare in hr) / spremati | (use Croatian native spremiti) | | pre uzeti | preuzeti (to download / take over) | | pro voditi | provoditi | | ne uspjelo (when meaning "didn't succeed") | use full construction nije uspjelo instead of writing the negation as a compound |
Reflexive se/si is the OPPOSITE pattern — se is a separate clitic word, NEVER attached. prijavi se, registriraj se, odjavi se. Writing prijavise or registrirajse is wrong.
3. Seven-case system (severity 2.5)
Croatian uses all 7 Slavic cases, including the vocative. Every noun, adjective, and pronoun declines.
| Case | Question | Use | Example (m. sg. "korisnik" — user) | Example (f. sg. "datoteka" — file) | |------|----------|-----|------------------------------------|-------------------------------------| | Nominativ (NOM) | tko? što? | Subject | korisnik | datoteka | | Genitiv (GEN) | koga? čega? | Possession, "of", absence, 5+ count | korisnika | datoteke | | Dativ (DAT) | komu? čemu? | Indirect object, "to" | korisniku | datoteci | | Akuzativ (ACC) | koga? što? | Direct object | korisnika (animate=GEN) / sustav (inanimate=NOM) | datoteku | | Vokativ (VOC) | — | Direct address | korisniče! | datoteko! | | Lokativ (LOK) | o komu? čemu? | Location (always w/ prep) | korisniku (o korisniku) | datoteci (o datoteci) | | Instrumental (INS) | s kim? čim? | "With", means | korisnikom | datotekom |
Critical: animate masculine accusative = genitive form. vidim korisnika ("I see [the] user"), NOT vidim korisnik. Inanimate masculines keep ACC = NOM: vidim sustav.
4. Preposition + governed case (severity 2.5)
| Preposition | Case | Example | |-------------|------|---------| | u (in/into) | LOK (location) / ACC (motion) | u sustavu (in system) / u sustav (into system) | | na (on/onto) | LOK / ACC | na zaslonu / na zaslon | | s / sa (with) | INS | s korisnikom, sa Vama | | bez (without) | GEN | bez sustava, bez greške | | za (for) | ACC | za korisnika, za sustav | | od (from) | GEN | od korisnika | | do (until/to) | GEN | do kraja | | iz (out of) | GEN | iz mape | | o (about) | LOK | o korisniku, o sustavu | | po (per / along) | LOK | po datoteci, po korisniku | | prije (before) | GEN | prije početka | | nakon / poslije (after) | GEN | nakon prijave | | prema (toward) | DAT | prema korisniku | | kroz (through) | ACC | kroz aplikaciju |
po + LOK for "per" with rate: po datoteci, po korisniku. dnevno / na dan for "per day".
5. 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:
| 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 (exceptions to the otherwise simple "ends in 1/2-4" pattern). Same for 111, 112, 113, 114.
6. Numeral-noun agreement (severity 2.0)
| Count | Pattern | Example | |-------|---------|---------| | 1 | NOM sg | 1 datoteka | | 2, 3, 4 | GEN sg (with paucal adjective form) | 2 nove datoteke, 3 nova računala | | 5+ | GEN pl | 5 datoteka, 10 korisnika | | 11-14 | GEN pl (exception) | 11 datoteka, 12 sustava | | 21 | NOM sg (back to "one") | 21 datoteka | | 22-24 | GEN sg | 22 datoteke | | 25+ | GEN pl | 25 datoteka |
7. Verb aspect — perfective vs imperfective (severity 2.0)
Every Croatian verb has aspect. UI patterns by aspect:
| Imperfective (process, ongoing) | Perfective (single completed event) | English | |--------------------------------|--------------------------------------|---------| | spremati | spremiti | save | | brisati | obrisati / izbrisati | delete | | prenositi / učitavati | prenijeti / učitati | upload / load | | preuzimati | preuzeti | download | | otvarati | otvoriti | open | | zatvarati | zatvoriti | close | | stvarati | stvoriti / napraviti | create | | uređivati | urediti | edit | | mijenjati | promijeniti | change | | pisati | napisati | write | | čitati | pročitati | read | | slati | poslati | send | | birati | odabrati / izabrati | choose / select | | prevoditi | prevesti | translate | | prijavljivati se | prijaviti se | log in |
UI patterns by aspect:
- Buttons (single action) → perfective imperative:
Spremi,Obriši,Pošalji,Odaberi. (NOTSpremaj, which means "keep saving repeatedly".) - Ongoing status messages → imperfective verbal noun + …:
Spremanje…,Učitavanje…,Prenošenje…,Slanje…. - Completed status → perfective past participle + je:
Datoteka je spremljena,Prijenos je završen. - Failed status → perfective past + nije:
Prijenos nije uspio,Datoteka nije spremljena.
8. Clitic second-position rule (Wackernagel's law) (severity 2.0)
Croatian clitics (je, se, si, mi, ti, mu, joj, nam, vam, im, bi, li) MUST go in the second position of their clause.
| ✗ Wrong | ✓ Correct | |---------|-----------| | Se meni to ne sviđa | To mi se ne sviđa | | Datoteka se mu prikazuje | Datoteka mu se prikazuje (DAT mu before reflexive se) |
Clitic order within the cluster:
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 / si
Example: Da li mu se to sviđa? (Q-AUX-DAT-REFL — does he like it?) — note: modern Croatian increasingly drops the Da opener for Sviđa li mu se to? style.
9. Three-gender adjective agreement (severity 2.0)
| Gender | Indef. example | Adjective ending (sg.) | |--------|---------------|------------------------| | Masculine (consonant ending) | sustav | novi sustav | | Feminine (-a ending) | aplikacija | nova aplikacija | | Neuter (-o/-e ending) | računalo | novo računalo |
Wrong gender adjective is auto-fail: nova sustav ✗, novi aplikacija ✗.
10. Past-tense gender agreement (severity 1.5)
Past tense = AUX + L-participle which agrees with subject in gender + number:
| Subject | L-participle | Example | |---------|--------------|---------| | m. sg. | -o | on je radio | | f. sg. | -la | ona je radila | | n. sg. | -lo | ono je radilo | | m. pl. | -li | oni su radili | | f. pl. | -le | one su radile | | n. pl. | -la | ona su radila |
11. Verb-construction integrity — no stacked finite verbs (severity 2.0)
English -ing (gerund as adverbial: "I spent 6 years building...") MUST be rendered with glagolski prilog sadašnji (verbal adverb, -ći form), NOT a second finite clause.
| ✗ 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 izvješće | Radio sam pišući izvješće | I worked while writing the report | | Provela je vrijeme čekala je rezultate | Provela je vrijeme č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 | | raditi | radeći | working | | govoriti | govoreći | speaking | | prevoditi | prevodeći | translating |
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).
12. Diacritics — Č Ć Đ Š Ž are essential (severity 2.5)
Never strip diacritics. Spremi is fine but Pošalji written as Posalji is broken; Obriši → Obrisi is broken; Odaberite → Odaberite is correct but Učitavanje → Ucitavanje is broken.
13. Latin script ONLY (severity 3.0)
Croatian is written exclusively in Latin script. Never use Cyrillic. (Croatia historically used Glagolitic, and briefly Cyrillic in certain dialects, but modern standard Croatian is unambiguously Latin.)
If a translation contains any Cyrillic letters except in tech identifiers/URLs (which would themselves be Latin anyway), something is wrong — most likely an accidental Serbian conversion.
Pronouns and Possessives
Personal pronouns
| English | Croatian | 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. | |--------|--------|--------|--------| | moj (my) | moj | moja | moje | | tvoj (your sg. informal) | tvoj | tvoja | tvoje | | Vaš (your formal — capitalize) | Vaš | Vaša | Vaše | | njegov (his) | njegov | njegova | njegovo | | njezin / njen (her) | njezin | njezina | njezino | | svoj (reflexive — own) | svoj | svoja | svoje | | naš (our) | naš | naša | naše | | njihov (their) | njihov | njihova | njihovo |
Reflexive svoj: used when possessor = subject of same clause.
On sprema svoju datoteku.(He saves his own file.) ← reflexiveOn sprema njegovu datoteku.(He saves someone else's file.) ← non-reflexive — different referent
UI Conventions
Buttons — PERFECTIVE imperative (never infinitive)
Single-word action buttons take the perfective imperative — informal Spremi / formal Spremite. NEVER infinitive (Spremiti) — that reads as a manual instruction.
| English | ti (informal) | Vi (formal) | |---------|---------------|-------------| | Save | **Spremi*
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: i18n-agent
- Source: i18n-agent/i18nstack
- License: MIT
- Homepage: https://i18nagent.ai
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.