IThe late-translation tell
You can spot a retrofitted second language in seconds: buttons whose labels overflow, a language switch hidden in a dropdown, and a switch that drops you on the home page instead of the page you were reading.
All three come from the same cause — the second language was treated as a copy of the first rather than as its own thing.
IIStart with the route map
Every page gets a real path in both languages, and the mapping between them is data, not string surgery. `/work/ultimate/` and `/bs/rad/ultimate/` are two entries in one table; a localised segment and an unlocalised slug both survive the trip.
That table then feeds navigation, the switch, prerendering, the sitemap and hreflang. One source, no drift.
IIIDesign to the longer language
Bosnian runs meaningfully longer than English. Size buttons, nav items and cards against the longer string and the shorter one always fits; do it the other way and you spend the project shortening copy to protect a layout.
Same for the type: pick faces that carry č, ć, ž, š and đ in every weight you use, and check them at display size, where a badly drawn caron is obvious.
IVNever guess for the visitor
Do not auto-redirect on browser language or IP. Show both languages, remember the choice, and keep it. A visitor who picked English is telling you something; overriding it on the next visit is the clearest way to look automated.