In Serbian, navigation instructions are in some aspects more complicated then in English.
First, we use both propositions "into" and "onto" when making turns. So a native Serbian speaker would tell you (in Serbian) "turn right into the street", and "turn right onto the road". (This is because streets usually have buildings, so you walk or drive in between those buildings, while roads usually don't have them, so you drive on the surface.)
Second, we use grammatical cases which means that depending on the street name, the end letters of the word might or might not change. E.g. if the street name is "Alberta Anštajna" native speaker would tell you "turn right into Alberta Anštajna", but if a street name is "Ajnštajnova", then the native speaker would tell you "turn right into Ajnštajnovu". Notice that in a first example, the street name was pronounced without any change, while in second example the last letter was changed (Ajnštajnova -> Ajnštajnovu).
Those specifics make the navigation instructions sound more native to the language, but they cannot, IMO, be implemented just by translations, and string placeholders, that OM now supports. They can only be implemented in code, e.g.:
if (streetName.contains("road") || streetName.contains("highway"))
preposition = "onto"
else
preposition = "into"
Or:
if (streetName.endsWith("ska", "cka", "ova", "eva", "ala", "vna")
&& isOneWord(streetName)
&& notASpecialCase(streetName))
streetNameToPronounce = streetName.replaceLastLetterWith("u")
else
streetNameToPronounce = streetName
Does OM already supports implemenation of language-specific logic, and if not, would it be interested to support it in the future?
My understanding is that custom logic could benefit also languages other then Serbian.
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too