Как изменить текст на кнопке, в зависимости от языка
У меня в базе данных хранятся языки пользователей, и в зависимости от языка выдаю соответствующий текст, все было хорошо до момента когда я дошел до кнопки, и столкнулся с проблемой что я никак не могу в декоратор передать 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="?"))
Но у меня как-то тоже не очень получилось, подскажите пожалуйста в каком направлении копать.
За готовые примеры буду очень благодарен