我想根据用户的不和谐语言更改斜杠命令的名称。
如果语言是韩语 /서버 如果语言是英语 /服务器 像这样。
我可以使用 ctx.locale 更改里面的内容,但我也想更改名称和描述。 我应该怎么办? 当我问ChatGPT时,他们说的很奇怪,谷歌上也没有任何信息。 但是有一个机器人可以根据语言更改slash_command 的名称。 供您参考,我正在编写 nextcode 库。 我真的很想做。
详细信息已成功从一种语言更改为另一种语言,但名称和描述失败。
很遗憾,目前使用 Nextcord 库无法直接根据用户语言动态更改斜杠命令的名称和描述。
Discord API 本身并不支持针对不同语言使用不同的命令名称或描述。斜杠命令的名称和描述在应用程序注册时定义,并在全局范围内应用。
ChatGPT 可能提供了不准确的信息,因为它是一个语言模型,并不完全了解 Discord API 的限制。
虽然你无法动态更改名称和描述,但你可以采取以下几种方法来实现类似的效果:
1. 使用不同命令:
你可以为每种语言创建不同的斜杠命令。例如:
@nextcord.slash_command(name="서버", description="서버 정보를 표시합니다.")
async def server_korean(interaction: nextcord.Interaction):
# ...
@nextcord.slash_command(name="server", description="Shows server information.")
async def server_english(interaction: nextcord.Interaction):
# ...
2. 使用子命令:
你可以使用一个主命令,然后根据语言使用不同的子命令。例如:
@nextcord.slash_command(name="language", description="Language commands.")
async def language(interaction: nextcord.Interaction):
pass # 处理子命令
@language.subcommand(name="korean", description="Korean options.")
async def korean_options(interaction: nextcord.Interaction):
# ...
@language.subcommand(name="english", description="English options.")
async def english_options(interaction: nextcord.Interaction):
# ...
3. 使用单一命令并根据语言调整响应:
你可以使用一个命令,然后根据用户的语言返回不同的响应。
@nextcord.slash_command(name="serverinfo", description="Shows server information.")
async def server_info(interaction: nextcord.Interaction):
if interaction.user.locale == "ko":
# 使用韩语回复
else:
# 使用英语回复
虽然无法直接实现动态更改命令名称和描述,但这些方法可以帮助你提供本地化的用户体验。
标签:python,discord,slash,nextcord From: 78744481