I've had the same frustration, so I've written a simple script/app with Tasker (and AutoShare plugin) to select text and translate from DE -> EN. I use it quite frequently to learn German.
Yes, I know some of these are done through a intermediary (often English, but not always). So if you translate Ukrainian → Catalan it probably really does Ukrainian → Russian → Spanish → Catalan. But it can still be helpful to have the options.
Background: I usually find I get better results when I translate from English to a random language X instead of from Y to X -- which is probably because it actually does Y -> English -> X. But I know more languages than Y and English, so it might be helpful to know what the "best" intermediary is, so to speak.
https://languagelog.ldc.upenn.edu/nll/?p=47635
> Google translates the Japanese word "migaku 磨く" (to polish, to brush) to the French word "polonais" (Polish, as in "of Poland").
Meaning Japanese to French must go through English and get confused by Polish/polish.
Learning Spanish right now so I'm excited to learn about this better translator. The very first word I tested was "por favor".
DeepL detected it as English and translated it into Spanish to give "por favor" == "por favor".
Same for "una mas". To be fair, it worked once I properly accented the "a".
I'll be using this for longer sentences instead.