Final L Lost
In the Standard Croatian, there is a special sound rule that introduces many apparent irregularities.
Recall that past participles end on -o for m, but follow a more usual pattern -lo n, -la f with other genders. Recall that I said that not all m-nouns and i-nouns end on a consonant in nom.sg. Some of them actually end on -o in nom.sg. It's all a consequence of of "the final l rule":
The final l rule:
In Standard Croatian, a syllable cannot end on -al, -el, -il, or -ul: when it should occur, it is automatically converted to -ao, -eo, -io, -uo.
Additionally, -(i)jël is converted to -ïo. (ï is just a notation I invented, disregard it for now, pronounce just as any i)
Exceptions to this rule are some rare words, and l before b.
In other words, it happens only when -al, -el, -il, or -ul are word-final, or there's a consonant after them.
So, for the past participles: if there are čitalo sg.n, and čitala sg.f, one would expect *čital for sg.m, but it's actually čitao — the final -al was "automatically" substituted with -ao. (With an *, I've marked that we expect such a word, but that word does not exist.)
Now, it works only on ends of syllables: in the noun selo this does not occur, since the syllable does not end on l: there's no consonant after it.
The rule also does not work for -ol: stol mi "table, desk" is the best example. Futhermore, if we try to construct possesives for selo and stol, we'll get:
seoska škola "village school" (we naively expect *selska)
stolni nogomet "table football"
The adjective is expected to be *sel-ski, but it's converted to seo-ski by the rule. Stol-ni, since it contains an -ol, is left untouched.
This explain nouns like:
posäo mi "job" dat. posla nom.pl. poslovi (nom. *posäl → posäo)
Compare it to stol, bol, sol, vol mi "ox".
This rule applies to the Standard Croatian only: it's quite different in dialects and Serbian, for example... Since the rule is actually not applied in a dialect that was spoken in Zagreb long ago, there's actually a street there called Selska.
There's a list of all common nouns where this rule applies:
anđeo ma "angel" dat. anđelu nom.pl. anđeli
arkanđeo ma "archangel" dat. arkanđelu nom.pl. arkanđeli
besmisäo mi "without any sense" dat. besmislu; no plural
čaväo mi "nail" (for construction) dat. čavlu nom.pl. čavli
dïo mi "part" (of something) dat. dijëlu nom.pl. dijëlovi
kotäo mi "kettle, cauldron" dat. kotlu nom.pl. kotlovi
misäo f "thought" nom.pl. misli (an i-noun!)
oräo ma "eagle" dat. orlu nom.pl. orlovi
pakäo mi "hell" dat. paklu nom.pl. pakli
pepeo mi "ash" dat. pepelu nom.pl. pepeli
pijëtäo mi "cock" dat. pijëtlu nom.pl. pijëtlovi or pijëtli
posäo mi "job" dat. poslu nom.pl. poslovi
smisäo mi "meaning, sense" dat. smislu; no plural
uzäo mi "knot" dat. uzlu nom.pl. uzlovi
ugäo mi "corner" dat. uglu nom.pl. uglovi
veo mi "veil" dat. velu nom.pl. velovi
Sometimes, an ä leaves an l before a consonant, so l transforms in all cases where the ä is lost. The best example are nouns like misliläc ma "thinker":
nom.sg. misliläc, mislioc acc.sg. mislioca dat.sg. misliocu gen.sg. mislioca ins.sg. misliocom nom.pl. mislioci acc.pl. mislioce dat.& ins.pl. misliocima gen.pl. misliläca
Such nouns can have nom. with l transformed, meaning that the ä has disappeared even from the nominative!
Some nouns, including recent loans, are exceptions to the rule. All nouns ending on -djël are among them:
general ma "general (of army)" nom.pl. generali
hotel mi "hotel" nom.pl. hoteli
odjël mi "section, compartment" nom.pl. odjëli
predjël mi "landscape, part of land" nom.pl. predjëli; less often nom.sg. predïo
stil mi "style" nom.pl. stilovi
udjël mi "share, one's part" nom.pl. udjëli; less often nom.sg. udïo
tunel mi "tunnel" nom.pl. tuneli
val mi "wave" nom.pl. valovi
žalba f "complaint"
In certain adjectives this rule applies, but it's often avoided by using the i form or having forms where the rule is not applied, together with many exceptions:
bijël m, bijëla f "fat" or bijëli m; the rule would produce bïo, but it's not often used;
debeo m, debela f "fat" or debeli m
mio m, mila f "dear" or mili m
mukäo m, mukla f "hoarse, husky" or mukli m
nagäo m, nagla f "abrupt" or nagli m
okrugäo m, okrugla f "round" or okrugli m
stalän m, stalna f "constant"; stalno adj. "all the time"
svjëtäo m, svjetla f "luminous" or svjëtli m
podli m, podla f "villainous"; podäo is not often used
veseo m, vesela f "cheerful" or veseli m
There's a systematic change in Croatian consonants when coming into a contact. The voicing of the first one is adjusted to the voicing of the second one. It implies that the first consonant is sometimes changed.
To simplify the situation a bit, I'll divide consonants to three groups:
"Others" don't participate in any way in this process. The other two groups are arranged in pairs, voiced-unvoiced. If a voiced consonant is found before an unvoiced one, it changes to its unvoiced buddy. Likewise, if a unvoiced is found before a voiced one, it mutates into its voiced counterpart. So sequences voiced-unvoiced and unvoiced-voiced are eliminated. The pairs are:
voiced b d g dž đ z — — unvoiced p t k č ć s c h
Exceptions are c and h: they don't have a voiced counterpart. But they never change as well.
All other consonants have nothing to do with this.
How it works? For instance, adjective nizäk "low" loses its ä in all other forms, so we would have nizka. But k is unvoiced, so z mutates to its unvoiced pair (s) to produce niska.
Some other examples:
gladäk adj. glad-ka → glatka
predäk "ancestor" gen. pred-ka → pretka
pijem: iz-pijem → ispijem
postavim: pred-postavim → pretpostavim
cijedim: iz-cijedim → iscijedim
hladim: raz-hladim → rashladim
This is the reason why some prefixes used in verb derivation have variants: sometimes it's iz-, and sometimes is-. It's just assimilation by voicing.
Other sounds don't participate in this law at all:
raz-mislim → razmislim
s-mislim → smislim
raz-lomim → razlomim
s-lomim → slomim
However, there's a curiosity: sequences dš and ds are unchanged in spelling:
predstavim (not the expected -ts-)
odšećem (not -tš-)
It's just a spelling convention, it should be pronounced as /pretstavim/ etc.
Most other Slavic languages don't reflect any of this in their spelling, among others, Russian and Slovene. It was so in some Croatian spellings used in the past.
Fusing Similar Sounds
When two identical sounds occur, they fuse together:
od-dižem → odižem
iz-sišem → is-sišem → isišem
raz-stavim → ras-stavim → rastavim
Sequences sš and zž merge:
iz-šaram → is-šaram → išaram
An exception is j, it stays in words like najjači "strongest".
However, sometimes prefixes have longer variants to avoid this problem:
Similar things occur to avoid certain sequences of vowels:
s-stavim → s-a-stavim
s-srećem → s-u-srećem
o-učim → o-b-učim
But na-učim → na-učim
A similar, but awkward problem is when d or t come before c or č. Due to the nature of c and č, t is fused with it, and only c or č are pronounced. But should it be so in the spelling? Words otäc "father" and predäk "ancestor" are examples:
nom.sg. otäc predäk nom.sg. oca / otca pretka ins.sg. ocem / otcem pretkom voc.sg. oče / otče pretče / predče / preče nom.pl. oci / otci or očevi / otčevi pretci / predci / preci
Various people defend and support different spellings with quite arbitrary arguments. You'll see all types of spellings in a lot of places. One problem is that the shortest spelling was preferred in the past, and changing it is not simple...
These problems occur only when words are spelled as one. According to the Standard, prepositions should be pronounced together with the word after them, and this assimilation applies as well:
iz kuće should be pronounced /iskuće/ in the Standard Croatian
od kuće as /otkuće/
s bratom as /zbratom/
But this is not reflected in the standard spelling at all, and many people don't pronounce prepositions together with words after them anyway.
However, the biggest spelling issue is writing of ijë/jë. Traditionally j was lost after r, but some people prefer to keep it, so there are examples as:
vrëmenu / vrjëmenu
vrëmenom / vrjëmenom
Etc. But all together, such issues are not really important, it's just spelling.