Translator language codes mixed lower case and upper case codes works better than just using lower case

I'm having a possible issue with the translator and the languageToTranslateTo block. I'm using it with speech to text for a translation program.

If I set the languageToTranslateto "en-FR" or "EN-fr" and I say "Good Morning" I get 'bonjour' as I would expect but if I use "en-fr" I get 'bon matin' which is a literal translation but not what I would expect. Likewise if I set the languageToTranslateto to "en-ES" or "EN-es" I get 'buenos dias' as expected but if I set it to "en-es" I get 'buena manana' which again is the literal translation but not considered good Spanish. It appears I'm supposed to use both lower case language codes but that is not giving as good a translation at least in these 2 examples but using a "mixed" upper and lower case appears to work much better.

Is this a bug or a feature?

There is a caching mechanism between the Translator component and the backend translation service. The translation service has changed over time and now there are more neural network based translations happening that previously weren't there. My guess is the cached entries for those languages are likely old values based on earlier translation models.