Приветствую.
[:1f4dd] Описание задачи!
[:1f4cc] Проблема
Разрабатываю Telegram-бота знакомств с мультиязычной поддержкой (aiogram, aiogram-i18n, SQLAlchemy).
После добавления мультимодового поиска (/multimode) возник баг:
[:1f534] При поиске собеседника его язык может измениться на язык того, кто ищет.
[:1f50e] Как проявляется баг?
Пользователь 1 (рус) включает /multimode.
Находит пользователя 2 (англ).
Один из пользователей (обычно найденный) получает сообщение о том что найден собеседник на языке собеседника, а не на своем.
[:2699] Как должно работать?
[:2705] Каждый должен оставаться на своём языке независимо от собеседника.
[:2705] Все сообщения приходят на языке конкретного пользователя.
[:2705] Никакие глобальные изменения языка не должны происходить.
[:1f4c2] Что уже есть?
Бот на aiogram 3 + aiogram-i18n.
Локаль (locale) хранится в БД (SQLAlchemy, users table).
Логика поиска собеседников (find_companion) в utils/user_matching.py.
middlewares/outer/i18n.py управляет локалью (возможно, там проблема).
[:1f527] Ожидаемое решение
[:1f6e0] Найти и исправить ошибку, чтобы язык у собеседника не менялся.
[:1f3af] Проверить find_companion, i18n middleware и все точки, где set_locale может изменять язык другому пользователю.
[:1f4ac] Оставить комментарии в коде, объясняющие решение.