From f807d523d047623f27bf76e8a7ea8d3df942cfbf Mon Sep 17 00:00:00 2001 From: Puechberty Arthur Date: Sun, 12 Apr 2026 13:43:13 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20ajouter=20la=20r=C3=A9solution=20de=20l?= =?UTF-8?q?a=20langue=20pour=20les=20commandes=20de=20pr=C3=A9fixe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/framework/handlers/prefixHandler.ts | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/framework/handlers/prefixHandler.ts b/src/framework/handlers/prefixHandler.ts index 2e94f0b..12e150f 100644 --- a/src/framework/handlers/prefixHandler.ts +++ b/src/framework/handlers/prefixHandler.ts @@ -1,4 +1,5 @@ import type { Message } from "discord.js"; +import type { BotCommand, SupportedLang } from "../types/command.js"; import { parsePrefixArgs } from "../commands/argParser.js"; import { buildPrefixUsage } from "../commands/usage.js"; @@ -14,6 +15,24 @@ interface PrefixHandlerDeps extends HandlerExecutionDeps { executor: CommandExecutor; } +const resolvePrefixLang = ( + deps: PrefixHandlerDeps, + command: BotCommand, + trigger: string, + fallbackLang: SupportedLang, + guildPreferredLocale?: string | null, +): SupportedLang => { + + const contextualLang = deps.i18n.resolveLang(guildPreferredLocale); + const contextualTrigger = deps.i18n.commandTrigger(contextualLang, command.meta.name); + + if (contextualTrigger === trigger) { + return contextualLang; + } + + return fallbackLang; +}; + export const createPrefixHandler = (deps: PrefixHandlerDeps) => { return async (message: Message): Promise => { if (message.author.bot || !message.content.startsWith(deps.prefix)) { @@ -37,7 +56,7 @@ export const createPrefixHandler = (deps: PrefixHandlerDeps) => { const reply = createPrefixReply(message); const command = match.command; - const lang = match.lang; + const lang = resolvePrefixLang(deps, command, trigger, match.lang, message.guild?.preferredLocale ?? null); const t = createTranslator(deps.i18n, lang); const parsed = await parsePrefixArgs(message, command.args, rawArgs);