Как изменить текст на кнопке, в зависимости от языка

У меня в базе данных хранятся языки пользователей, и в зависимости от языка выдаю соответствующий текст, все было хорошо до момента когда я дошел до кнопки, и столкнулся с проблемой что я никак не могу в декоратор передать self.user как я понял, передать его туда невозможно. Мне нужно передать user_id в декоратор чтобы я мог найти язык пользователя в базе данных.

Представлял я это как-то так:

def _(user_identifier: User, key: str):
    user_id = user_identifier.id
    language = database.get_language(user_id)
    
    lang = {
        'en': {
            ...
        },
        'ru': {
            ...
        }
    }

    return lang[language][key]

class GiveQuestionView(discord.ui.View):
    def __init__(self, bot, user: discord.User, message_id=None, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.bot = bot
        self.user = user
        self.message_id = message_id

    @discord.ui.button(label=_(self.user, 'ask_question_button'), style=discord.ButtonStyle.primary, emoji="?")
    async def button_callback(self, interaction: Interaction, button: Button):
        await interaction.response.send_modal(StartModal(self.bot, interaction.user, self.message_id))

Но конечно же это не сработало, так же я думал чтобы сделать global user но кажется что это очень плохое решение, так же я пробовал это сделать через

self.add_item(button(style=discord.ButtonStyle.primary, label=_(self.user, 'ask_question_button'), custom_id="my_button", emoji="?"))

Но у меня как-то тоже не очень получилось, подскажите пожалуйста в каком направлении копать.

За готовые примеры буду очень благодарен


Ответы (0 шт):