Исправил проблему с определением языка дорогим способом: вернул назад запрос к Google Translate API. Теперь сначала определяется язык, а потом формируется запрос в Gemini, требующий соблюдать строго один выбранный язык. У этого способа есть недостаток в виде стоимости, но она не то, чтобы безумная: 600 запросов за 30 дней стоят $1.04.

Оставлю как есть, запустим фичу - потом буду считать. До сих пор Гугл даже инвойс не выставлял, вся сумма входила в неоплачиваемый минимум.