fix(mentionhelp): default to English on locale lookup failure, use Polish only for pl locales

This commit is contained in:
zv
2026-04-18 21:28:14 +02:00
parent 5443917d4d
commit ae69de61f8

View File

@@ -1,17 +1,30 @@
import discord import discord
from redbot.core import commands from redbot.core import commands
from redbot.core.i18n import get_locale_from_guild
class MentionHelp(commands.Cog): class MentionHelp(commands.Cog):
def __init__(self, bot): def __init__(self, bot):
self.bot = bot self.bot = bot
def build_help_embed(self, message, prefix_text, main_prefix): @staticmethod
def _is_polish_locale(locale: str) -> bool:
if not isinstance(locale, str):
return False
return locale.lower().startswith("pl")
def build_help_embed(self, message, main_prefix, locale):
is_polish = self._is_polish_locale(locale)
title = "Pomoc" if is_polish else "Help"
description = (
f"Użyj `{main_prefix}help`, aby zobaczyć wszystkie komendy bota."
if is_polish
else f"Use `{main_prefix}help` to see all bot commands."
)
embed = discord.Embed( embed = discord.Embed(
title="Pomoc", title=title,
description=( description=description,
f"Użyj `{main_prefix}help`, aby zobaczyć wszystkie komendy bota."
),
color=0xEB459E color=0xEB459E
) )
@@ -58,7 +71,12 @@ class MentionHelp(commands.Cog):
visible_prefixes = [p for p in prefixes if not p.startswith("<@")] visible_prefixes = [p for p in prefixes if not p.startswith("<@")]
main_prefix = visible_prefixes[0] if visible_prefixes else prefixes[0] main_prefix = visible_prefixes[0] if visible_prefixes else prefixes[0]
prefix_text = ", ".join(visible_prefixes) if visible_prefixes else ", ".join(prefixes) try:
locale = await get_locale_from_guild(self.bot, message.guild)
except Exception:
locale = "en-US"
if not isinstance(locale, str) or not locale.strip():
locale = "en-US"
embed = self.build_help_embed(message, prefix_text, main_prefix) embed = self.build_help_embed(message, main_prefix, locale)
await message.channel.send(embed=embed) await message.channel.send(embed=embed)