One thing that gets annoying is when OsmAnd's voice navigation instructs me to e.g. "In 300 meters, turn left on to Xyz Street" but it pronounces the Xyz Street name in my language, rather than in the local language. While this can be somewhat amusing, it is often hard to understand what the instruction may have been.
> But is there any technical possibility to switch the language of the TTS engine (not OsmAnd) on the fly for each language?
It is possible.
You don't need to have a "smart" TTS, you can do the split outside of it. The used TTS engine does not have to be actually set as active in system, it is an application as any other.
How to do it:
First, you need to get the preferred tts engine for each language from the list of the installed ones - you simply set two instead of one in preferences, or in my case up to six - in a list for future use.
For the speech part, you simply get the language for it and send each sentence (or part of it) to the TTS for the correct language, waiting for the first part to be finished before starting the new one.
I used it myself with tasker, switching on the fly. Even with my old phone, there wasn't any additional pause to hear due to the switch. What was annoying was that each part was seen as a finished sentence and pronounced accordingly.
The same should be possible with Osmand, but has to be coded.
Not sure, if there is really so much interest in it to get it on the map. It would complicate the relatively simple tts part of Osmand.