From 9d9d6642872823ea65843e0b10fd5a1c31ee561d Mon Sep 17 00:00:00 2001 From: Alex Dcnh <140754794+Wishmaster117@users.noreply.github.com> Date: Tue, 11 Aug 2026 13:18:21 +0200 Subject: [PATCH 1/2] Localize bridge action failure messages --- Core/MultiBotEngine.lua | 16 ++++++++++++- Locales/MultiBotAceLocale-deDE.lua | 38 ++++++++++++++++++++++++++++++ Locales/MultiBotAceLocale-enGB.lua | 38 ++++++++++++++++++++++++++++++ Locales/MultiBotAceLocale-enUS.lua | 38 ++++++++++++++++++++++++++++++ Locales/MultiBotAceLocale-esES.lua | 38 ++++++++++++++++++++++++++++++ Locales/MultiBotAceLocale-frFR.lua | 38 ++++++++++++++++++++++++++++++ Locales/MultiBotAceLocale-koKR.lua | 38 ++++++++++++++++++++++++++++++ Locales/MultiBotAceLocale-ruRU.lua | 38 ++++++++++++++++++++++++++++++ Locales/MultiBotAceLocale-zhCN.lua | 38 ++++++++++++++++++++++++++++++ UI/MultiBotBankFrame.lua | 2 +- UI/MultiBotCharacterInfoFrame.lua | 2 +- UI/MultiBotInventoryItem.lua | 10 +++++--- UI/MultiBotTrainerUI.lua | 2 +- 13 files changed, 329 insertions(+), 7 deletions(-) diff --git a/Core/MultiBotEngine.lua b/Core/MultiBotEngine.lua index baa1c32..52422fc 100644 --- a/Core/MultiBotEngine.lua +++ b/Core/MultiBotEngine.lua @@ -526,9 +526,23 @@ local function _mbStrategySubject(commandScope, target) return commandScope end +local function _mbStrategyReasonText(reason) + reason = tostring(reason or "") + local code = string.match(reason, "^([A-Z][A-Z0-9_]*)$") + if(not code) then + code = string.match(reason, "^([A-Z][A-Z0-9_]*)~") + end + if(not code) then + code = "UNKNOWN" + end + + local fallback = MultiBot.L("strategy.reason.UNKNOWN", "The strategy command failed for an unknown reason.") + return MultiBot.L("strategy.reason." .. code, fallback) +end + local function _mbWarnStrategyMutationBlocked(commandScope, target, reason) local subject = _mbStrategySubject(commandScope, target) - local detail = tostring(reason or "STRATEGY_REJECTED") + local detail = _mbStrategyReasonText(reason or "STRATEGY_REJECTED") local message = string.format(MultiBot.L("strategy.warning.blocked"), subject, detail) if(DEFAULT_CHAT_FRAME and DEFAULT_CHAT_FRAME.AddMessage) then diff --git a/Locales/MultiBotAceLocale-deDE.lua b/Locales/MultiBotAceLocale-deDE.lua index 3f8b84b..36e3b58 100644 --- a/Locales/MultiBotAceLocale-deDE.lua +++ b/Locales/MultiBotAceLocale-deDE.lua @@ -77,6 +77,7 @@ local deDEValues = { ["profession.recipes.craft.reason.LOST_CONTROL"] = "Der Bot kann gerade nicht handeln.", ["profession.recipes.craft.reason.CHANNELING"] = "Der Bot kanalisiert bereits einen Zauber.", ["profession.recipes.craft.reason.cast_code"] = "Der Server hat den Zauber abgelehnt (Code %s).", + ["profession.recipes.craft.reason.UNKNOWN"] = "Der Server hat einen unbekannten Herstellungsfehler gemeldet.", ["character.tab.skills"] = "Fertigkeiten", ["character.tab.reputations"] = "Ruf", ["character.tab.emblems"] = "Abzeichen", @@ -148,6 +149,9 @@ local deDEValues = { ["info.inventory.item_action.reason.BUY_FAILED"] = "Kauf fehlgeschlagen.", ["info.inventory.item_action.reason.NOT_SUPPORTED"] = "Diese Aktion wird von der Bridge noch nicht unterstützt.", ["info.inventory.item_action.reason.FAILED"] = "Die Aktion ist fehlgeschlagen.", + ["info.inventory.item_action.reason.FORBIDDEN"] = "Du darfst diesen Bot nicht steuern.", + ["info.inventory.item_action.reason.RATE_LIMIT"] = "Zu viele Gegenstandsaktionen. Versuche es gleich erneut.", + ["info.inventory.item_action.reason.UNKNOWN"] = "Der Server hat einen unbekannten Fehler bei der Gegenstandsaktion gemeldet.", ["tips.units.rti"] = "RTI", ["tips.inventory.bank.deposit"] = "In die Bank einzahlen|cffffffff\nKlicke auf einen Gegenstand, um die entsprechenden Stapel aus den Taschen des Bots in seine Bank zu verschieben.\nDer Bot muss sich in der Nähe eines Bankiers befinden.|r\n\n|cffff0000Betrifft nur den Bot, dessen Inventar geöffnet ist.|r", ["tips.inventory.gbank.deposit"] = "In die Gildenbank einzahlen|cffffffff\nKlicke auf einen Gegenstand, um die entsprechenden Stapel aus den Taschen des Bots in den ersten Reiter der Gildenbank zu verschieben.\nDer Bot muss sich in der Nähe einer Gildenbank befinden und Einzahlungsrechte besitzen.|r\n\n|cffff0000Betrifft nur den Bot, dessen Inventar geöffnet ist.|r", @@ -1012,6 +1016,7 @@ local deDEValues = { ["info.trainer.reason.NO_SPELL"] = "Zauber nicht gefunden.", ["info.trainer.reason.NO_MATCHING_SPELL"] = "Dieser Zauber ist nicht mehr verfügbar.", ["info.trainer.reason.TOO_EXPENSIVE"] = "Der Bot hat nicht genug verfügbares Geld.", + ["info.trainer.reason.UNKNOWN"] = "Der Server hat einen unbekannten Lehrerfehler gemeldet.", ["tips.outfits.equip"] = "Linksklick: Ausrüsten\nRechtsklick: Ersetzen", -- Chatless formation query ["tips.tankFace"] = "Tank Face|cffffffff\nAktiviert die Positionierungsstrategie Tank Face.\nWenn der Bot im Nahkampf Aggro hat, versucht er, das Ziel von der Gruppe wegzudrehen.\nDiese Strategie weist keine Tank-Rolle zu und ist unabhängig von Tank und Tank-Assist.|r\n\n|cffff0000Linksklicken, um Tank Face ein- oder auszuschalten|r\n|cff999999(Ausführreihenfolge: Bot)|r", @@ -1036,6 +1041,39 @@ local deDEValues = { ["formation.name.unknown"] = "Unbekannt", ["strategy.warning.blocked"] = "|cffff4444[MultiBot]|r %s: Strategiebefehl fehlgeschlagen (%s). Es wurde kein Fallback über den Chat gesendet.", ["strategy.warning.refused"] = "MultiBot: Strategiebefehl abgelehnt - %s", + ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "Die Strategie-Bridge ist nicht verfügbar.", + ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "Die Strategie-Bridge ist nicht verbunden.", + ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "Die verbundene Bridge unterstützt keine Strategieänderungen.", + ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "Strategieänderungen sind im Addon nicht verfügbar.", + ["strategy.reason.STRATEGY_UNAVAILABLE"] = "Strategieänderungen sind nicht verfügbar.", + ["strategy.reason.STRATEGY_REJECTED"] = "Der Strategiebefehl wurde abgelehnt.", + ["strategy.reason.STRATEGY_INVALID_RESULT"] = "Die Bridge hat ein ungültiges Strategieergebnis geliefert.", + ["strategy.reason.STRATEGY_SEND_FAILED"] = "Der Strategiebefehl konnte nicht gesendet werden.", + ["strategy.reason.STRATEGY_INVALID_SCOPE"] = "Ungültiger Zielbereich für die Strategie.", + ["strategy.reason.STRATEGY_TARGET_REQUIRED"] = "Ein Bot-Ziel ist erforderlich.", + ["strategy.reason.STRATEGY_TARGET_NOT_ALLOWED"] = "Für diesen Bereich ist kein Bot-Ziel erlaubt.", + ["strategy.reason.STRATEGY_INVALID_STATE_SCOPE"] = "Ungültiger Strategie-Bereich für Kampf/Nichtkampf.", + ["strategy.reason.STRATEGY_INVALID_CHANGES"] = "Ungültige Strategieänderungen.", + ["strategy.reason.STRATEGY_TOO_MANY_REQUESTS"] = "Zu viele Strategieanfragen sind noch offen.", + ["strategy.reason.STRATEGY_TIMEOUT"] = "Die Strategieanfrage hat das Zeitlimit überschritten.", + ["strategy.reason.TIMEOUT"] = "Die Strategieanfrage hat das Zeitlimit überschritten.", + ["strategy.reason.BAD_FIELD_COUNT"] = "Fehlerhaft aufgebaute Strategieanfrage.", + ["strategy.reason.BAD_SCOPE"] = "Ungültiger Zielbereich für die Strategie.", + ["strategy.reason.BAD_ENCODING"] = "Ungültig codierte Strategiedaten.", + ["strategy.reason.BAD_TARGET"] = "Ungültiges Strategieziel.", + ["strategy.reason.BAD_TOKEN"] = "Ungültiges Token der Strategieanfrage.", + ["strategy.reason.BAD_STATE"] = "Ungültiger Strategiestatus.", + ["strategy.reason.BAD_CHANGES"] = "Ungültige Strategieänderungen.", + ["strategy.reason.BAD_OPERATION"] = "Ungültige Strategieoperation.", + ["strategy.reason.BAD_STRATEGY"] = "Ungültiger Strategiename.", + ["strategy.reason.TOO_MANY_OPERATIONS"] = "Zu viele Strategieänderungen in einer Anfrage.", + ["strategy.reason.RATE_LIMIT"] = "Zu viele Strategieanfragen. Versuche es gleich erneut.", + ["strategy.reason.NO_MATCH"] = "Kein steuerbarer Bot passt zur Strategieanfrage.", + ["strategy.reason.BOT_LIMIT"] = "Zu viele Bots passen zur Strategieanfrage.", + ["strategy.reason.PARTIAL"] = "Der Strategiebefehl wurde nur teilweise angewendet.", + ["strategy.reason.FAILED"] = "Der Strategiebefehl ist fehlgeschlagen.", + ["strategy.reason.ACK_TOO_LONG"] = "Die Strategiebestätigung ist zu groß.", + ["strategy.reason.UNKNOWN"] = "Der Strategiebefehl ist aus unbekanntem Grund fehlgeschlagen.", ["info.outfits.feedback_equip"] = "Outfit „%s“ ausgerüstet.", ["info.outfits.feedback_replace"] = "Outfit „%s“ ersetzt.", ["info.outfits.feedback_update"] = "Outfit „%s“ aktualisiert.", diff --git a/Locales/MultiBotAceLocale-enGB.lua b/Locales/MultiBotAceLocale-enGB.lua index 0871468..b636961 100644 --- a/Locales/MultiBotAceLocale-enGB.lua +++ b/Locales/MultiBotAceLocale-enGB.lua @@ -77,6 +77,7 @@ local enGBValues = { ["profession.recipes.craft.reason.LOST_CONTROL"] = "The bot cannot act right now.", ["profession.recipes.craft.reason.CHANNELING"] = "The bot is already channeling a spell.", ["profession.recipes.craft.reason.cast_code"] = "The server refused the cast (code %s).", + ["profession.recipes.craft.reason.UNKNOWN"] = "The server returned an unknown crafting error.", ["character.tab.skills"] = "Skills", ["character.tab.reputations"] = "Reputations", ["character.tab.emblems"] = "Emblems", @@ -148,6 +149,9 @@ local enGBValues = { ["info.inventory.item_action.reason.BUY_FAILED"] = "Purchase failed.", ["info.inventory.item_action.reason.NOT_SUPPORTED"] = "This action is not supported by the bridge yet.", ["info.inventory.item_action.reason.FAILED"] = "The action failed.", + ["info.inventory.item_action.reason.FORBIDDEN"] = "You are not allowed to control this bot.", + ["info.inventory.item_action.reason.RATE_LIMIT"] = "Too many item actions. Try again in a moment.", + ["info.inventory.item_action.reason.UNKNOWN"] = "The server returned an unknown item-action error.", ["tips.units.rti"] = "RTI", ["tips.inventory.bank.deposit"] = "Deposit to bank|cffffffff\nClick an item to move matching stacks from the bot's bags to its bank.\nThe bot must be near a banker.|r\n\n|cffff0000Affects only the bot whose inventory is open.|r", ["tips.inventory.gbank.deposit"] = "Deposit to guild bank|cffffffff\nClick an item to move matching stacks from the bot's bags to the first guild bank tab.\nThe bot must be near a guild bank and have deposit rights.|r\n\n|cffff0000Affects only the bot whose inventory is open.|r", @@ -1015,6 +1019,7 @@ local enGBValues = { ["info.trainer.reason.NO_SPELL"] = "Spell not found.", ["info.trainer.reason.NO_MATCHING_SPELL"] = "This spell is no longer available.", ["info.trainer.reason.TOO_EXPENSIVE"] = "The bot does not have enough available money.", + ["info.trainer.reason.UNKNOWN"] = "The server returned an unknown trainer error.", ["tips.outfits.equip"] = "Left click: Equip\nRight click: Replace", -- Chatless formation query ["tips.tankFace"] = "Tank Face|cffffffff\nEnables the Tank Face positioning strategy.\nWhen the bot has aggro in melee, it tries to face the target away from the group.\nThis strategy does not assign the Tank role and is independent from Tank and Tank Assist.|r\n\n|cffff0000Left-click to toggle Tank Face|r\n|cff999999(Executed by: Bot)|r", @@ -1039,6 +1044,39 @@ local enGBValues = { ["formation.name.unknown"] = "Unknown", ["strategy.warning.blocked"] = "|cffff4444[MultiBot]|r %s: strategy command failed (%s). No chat fallback was sent.", ["strategy.warning.refused"] = "MultiBot: strategy command refused - %s", + ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "Strategy bridge is unavailable.", + ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "The strategy bridge is not connected.", + ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "Strategy mutation is not supported by the connected bridge.", + ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "Strategy mutation is unavailable in the addon.", + ["strategy.reason.STRATEGY_UNAVAILABLE"] = "Strategy mutation is unavailable.", + ["strategy.reason.STRATEGY_REJECTED"] = "The strategy command was rejected.", + ["strategy.reason.STRATEGY_INVALID_RESULT"] = "The bridge returned an invalid strategy result.", + ["strategy.reason.STRATEGY_SEND_FAILED"] = "The strategy command could not be sent.", + ["strategy.reason.STRATEGY_INVALID_SCOPE"] = "Invalid strategy target scope.", + ["strategy.reason.STRATEGY_TARGET_REQUIRED"] = "A bot target is required.", + ["strategy.reason.STRATEGY_TARGET_NOT_ALLOWED"] = "A bot target is not allowed for this scope.", + ["strategy.reason.STRATEGY_INVALID_STATE_SCOPE"] = "Invalid combat/non-combat strategy scope.", + ["strategy.reason.STRATEGY_INVALID_CHANGES"] = "Invalid strategy changes.", + ["strategy.reason.STRATEGY_TOO_MANY_REQUESTS"] = "Too many strategy requests are pending.", + ["strategy.reason.STRATEGY_TIMEOUT"] = "The strategy request timed out.", + ["strategy.reason.TIMEOUT"] = "The strategy request timed out.", + ["strategy.reason.BAD_FIELD_COUNT"] = "Malformed strategy request.", + ["strategy.reason.BAD_SCOPE"] = "Invalid strategy target scope.", + ["strategy.reason.BAD_ENCODING"] = "Invalid encoded strategy data.", + ["strategy.reason.BAD_TARGET"] = "Invalid strategy target.", + ["strategy.reason.BAD_TOKEN"] = "Invalid strategy request token.", + ["strategy.reason.BAD_STATE"] = "Invalid strategy state scope.", + ["strategy.reason.BAD_CHANGES"] = "Invalid strategy changes.", + ["strategy.reason.BAD_OPERATION"] = "Invalid strategy operation.", + ["strategy.reason.BAD_STRATEGY"] = "Invalid strategy name.", + ["strategy.reason.TOO_MANY_OPERATIONS"] = "Too many strategy changes in one request.", + ["strategy.reason.RATE_LIMIT"] = "Too many strategy requests. Try again in a moment.", + ["strategy.reason.NO_MATCH"] = "No controllable bot matched the strategy request.", + ["strategy.reason.BOT_LIMIT"] = "Too many bots matched the strategy request.", + ["strategy.reason.PARTIAL"] = "The strategy command was only partially applied.", + ["strategy.reason.FAILED"] = "The strategy command failed.", + ["strategy.reason.ACK_TOO_LONG"] = "The strategy acknowledgement was too large.", + ["strategy.reason.UNKNOWN"] = "The strategy command failed for an unknown reason.", ["info.outfits.feedback_equip"] = "Outfit \"%s\" equipped.", ["info.outfits.feedback_replace"] = "Outfit \"%s\" replaced.", ["info.outfits.feedback_update"] = "Outfit \"%s\" updated.", diff --git a/Locales/MultiBotAceLocale-enUS.lua b/Locales/MultiBotAceLocale-enUS.lua index cd83fb8..2321372 100644 --- a/Locales/MultiBotAceLocale-enUS.lua +++ b/Locales/MultiBotAceLocale-enUS.lua @@ -77,6 +77,7 @@ local enUSValues = { ["profession.recipes.craft.reason.LOST_CONTROL"] = "The bot cannot act right now.", ["profession.recipes.craft.reason.CHANNELING"] = "The bot is already channeling a spell.", ["profession.recipes.craft.reason.cast_code"] = "The server refused the cast (code %s).", + ["profession.recipes.craft.reason.UNKNOWN"] = "The server returned an unknown crafting error.", ["character.tab.skills"] = "Skills", ["character.tab.reputations"] = "Reputations", ["character.tab.emblems"] = "Emblems", @@ -148,6 +149,9 @@ local enUSValues = { ["info.inventory.item_action.reason.BUY_FAILED"] = "Purchase failed.", ["info.inventory.item_action.reason.NOT_SUPPORTED"] = "This action is not supported by the bridge yet.", ["info.inventory.item_action.reason.FAILED"] = "The action failed.", + ["info.inventory.item_action.reason.FORBIDDEN"] = "You are not allowed to control this bot.", + ["info.inventory.item_action.reason.RATE_LIMIT"] = "Too many item actions. Try again in a moment.", + ["info.inventory.item_action.reason.UNKNOWN"] = "The server returned an unknown item-action error.", ["tips.units.rti"] = "RTI", ["tips.inventory.bank.deposit"] = "Deposit to bank|cffffffff\nClick an item to move matching stacks from the bot bags to its bank.\nThe bot must be near a banker.|r\n\n|cffff0000Only affects the Bot whose inventory is open.|r", ["tips.inventory.gbank.deposit"] = "Deposit to guild bank|cffffffff\nClick an item to move matching stacks from the bot bags to the first guild bank tab.\nThe bot must be near a guild bank and have deposit rights.|r\n\n|cffff0000Only affects the Bot whose inventory is open.|r", @@ -1015,6 +1019,7 @@ local enUSValues = { ["info.trainer.reason.NO_SPELL"] = "Spell not found.", ["info.trainer.reason.NO_MATCHING_SPELL"] = "This spell is no longer available.", ["info.trainer.reason.TOO_EXPENSIVE"] = "The bot does not have enough available money.", + ["info.trainer.reason.UNKNOWN"] = "The server returned an unknown trainer error.", ["tips.outfits.equip"] = "Left click: Equip\nRight click: Replace", -- Chatless formation query ["tips.tankFace"] = "Tank Face|cffffffff\nEnables the Tank Face positioning strategy.\nWhen the bot has aggro in melee, it tries to face the target away from the group.\nThis strategy does not assign the Tank role and is independent from Tank and Tank Assist.|r\n\n|cffff0000Left-click to toggle Tank Face|r\n|cff999999(Executed by: Bot)|r", @@ -1039,6 +1044,39 @@ local enUSValues = { ["formation.name.unknown"] = "Unknown", ["strategy.warning.blocked"] = "|cffff4444[MultiBot]|r %s: strategy command failed (%s). No chat fallback was sent.", ["strategy.warning.refused"] = "MultiBot: strategy command refused - %s", + ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "Strategy bridge is unavailable.", + ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "The strategy bridge is not connected.", + ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "Strategy mutation is not supported by the connected bridge.", + ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "Strategy mutation is unavailable in the addon.", + ["strategy.reason.STRATEGY_UNAVAILABLE"] = "Strategy mutation is unavailable.", + ["strategy.reason.STRATEGY_REJECTED"] = "The strategy command was rejected.", + ["strategy.reason.STRATEGY_INVALID_RESULT"] = "The bridge returned an invalid strategy result.", + ["strategy.reason.STRATEGY_SEND_FAILED"] = "The strategy command could not be sent.", + ["strategy.reason.STRATEGY_INVALID_SCOPE"] = "Invalid strategy target scope.", + ["strategy.reason.STRATEGY_TARGET_REQUIRED"] = "A bot target is required.", + ["strategy.reason.STRATEGY_TARGET_NOT_ALLOWED"] = "A bot target is not allowed for this scope.", + ["strategy.reason.STRATEGY_INVALID_STATE_SCOPE"] = "Invalid combat/non-combat strategy scope.", + ["strategy.reason.STRATEGY_INVALID_CHANGES"] = "Invalid strategy changes.", + ["strategy.reason.STRATEGY_TOO_MANY_REQUESTS"] = "Too many strategy requests are pending.", + ["strategy.reason.STRATEGY_TIMEOUT"] = "The strategy request timed out.", + ["strategy.reason.TIMEOUT"] = "The strategy request timed out.", + ["strategy.reason.BAD_FIELD_COUNT"] = "Malformed strategy request.", + ["strategy.reason.BAD_SCOPE"] = "Invalid strategy target scope.", + ["strategy.reason.BAD_ENCODING"] = "Invalid encoded strategy data.", + ["strategy.reason.BAD_TARGET"] = "Invalid strategy target.", + ["strategy.reason.BAD_TOKEN"] = "Invalid strategy request token.", + ["strategy.reason.BAD_STATE"] = "Invalid strategy state scope.", + ["strategy.reason.BAD_CHANGES"] = "Invalid strategy changes.", + ["strategy.reason.BAD_OPERATION"] = "Invalid strategy operation.", + ["strategy.reason.BAD_STRATEGY"] = "Invalid strategy name.", + ["strategy.reason.TOO_MANY_OPERATIONS"] = "Too many strategy changes in one request.", + ["strategy.reason.RATE_LIMIT"] = "Too many strategy requests. Try again in a moment.", + ["strategy.reason.NO_MATCH"] = "No controllable bot matched the strategy request.", + ["strategy.reason.BOT_LIMIT"] = "Too many bots matched the strategy request.", + ["strategy.reason.PARTIAL"] = "The strategy command was only partially applied.", + ["strategy.reason.FAILED"] = "The strategy command failed.", + ["strategy.reason.ACK_TOO_LONG"] = "The strategy acknowledgement was too large.", + ["strategy.reason.UNKNOWN"] = "The strategy command failed for an unknown reason.", ["info.outfits.feedback_equip"] = "Outfit \"%s\" equipped.", ["info.outfits.feedback_replace"] = "Outfit \"%s\" replaced.", ["info.outfits.feedback_update"] = "Outfit \"%s\" updated.", diff --git a/Locales/MultiBotAceLocale-esES.lua b/Locales/MultiBotAceLocale-esES.lua index 414020f..5482b1f 100644 --- a/Locales/MultiBotAceLocale-esES.lua +++ b/Locales/MultiBotAceLocale-esES.lua @@ -77,6 +77,7 @@ local esESValues = { ["profession.recipes.craft.reason.LOST_CONTROL"] = "El bot no puede actuar ahora.", ["profession.recipes.craft.reason.CHANNELING"] = "El bot ya está canalizando un hechizo.", ["profession.recipes.craft.reason.cast_code"] = "El servidor rechazó el lanzamiento (código %s).", + ["profession.recipes.craft.reason.UNKNOWN"] = "El servidor devolvió un error de fabricación desconocido.", ["character.tab.skills"] = "Habilidades", ["character.tab.reputations"] = "Reputaciones", ["character.tab.emblems"] = "Emblemas", @@ -148,6 +149,9 @@ local esESValues = { ["info.inventory.item_action.reason.BUY_FAILED"] = "La compra ha fallado.", ["info.inventory.item_action.reason.NOT_SUPPORTED"] = "Esta acción aún no está soportada por el bridge.", ["info.inventory.item_action.reason.FAILED"] = "La acción ha fallado.", + ["info.inventory.item_action.reason.FORBIDDEN"] = "No tienes permiso para controlar este bot.", + ["info.inventory.item_action.reason.RATE_LIMIT"] = "Demasiadas acciones de objeto. Inténtalo de nuevo en un momento.", + ["info.inventory.item_action.reason.UNKNOWN"] = "El servidor devolvió un error desconocido de acción de objeto.", ["tips.units.rti"] = "RTI", ["tips.inventory.bank.deposit"] = "Depositar en el banco|cffffffff\nHaz clic en un objeto para mover las pilas correspondientes desde las bolsas del bot a su banco.\nEl bot debe estar cerca de un banquero.|r\n\n|cffff0000Solo afecta al bot cuyo inventario está abierto.|r", ["tips.inventory.gbank.deposit"] = "Depositar en el banco de hermandad|cffffffff\nHaz clic en un objeto para mover las pilas correspondientes desde las bolsas del bot al primer tab del banco de hermandad.\nEl bot debe estar cerca de un banco de hermandad y tener permisos de depósito.|r\n\n|cffff0000Solo afecta al bot cuyo inventario está abierto.|r", @@ -1013,6 +1017,7 @@ local esESValues = { ["info.trainer.reason.NO_SPELL"] = "Hechizo no encontrado.", ["info.trainer.reason.NO_MATCHING_SPELL"] = "Este hechizo ya no está disponible.", ["info.trainer.reason.TOO_EXPENSIVE"] = "El bot no tiene suficiente dinero disponible.", + ["info.trainer.reason.UNKNOWN"] = "El servidor devolvió un error desconocido del instructor.", ["tips.outfits.equip"] = "Clic izquierdo: Equipar\nClic derecho: Reemplazar", -- Chatless formation query ["tips.tankFace"] = "Tank Face|cffffffff\nActiva la estrategia de posicionamiento Tank Face.\nCuando el bot tiene la amenaza en cuerpo a cuerpo, intenta orientar al objetivo en dirección opuesta al grupo.\nEsta estrategia no asigna el rol de tanque y es independiente de Tank y Asistencia Tank.|r\n\n|cffff0000Clic izquierdo para activar o desactivar Tank Face|r\n|cff999999(Orden de ejecución: Bot)|r", @@ -1037,6 +1042,39 @@ local esESValues = { ["formation.name.unknown"] = "Desconocida", ["strategy.warning.blocked"] = "|cffff4444[MultiBot]|r %s: fallo del comando de estrategia (%s). No se envió ningún fallback por chat.", ["strategy.warning.refused"] = "MultiBot: comando de estrategia rechazado - %s", + ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "El bridge de estrategia no está disponible.", + ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "El bridge de estrategia no está conectado.", + ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "El bridge conectado no admite la modificación de estrategias.", + ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "La modificación de estrategias no está disponible en el addon.", + ["strategy.reason.STRATEGY_UNAVAILABLE"] = "La modificación de estrategias no está disponible.", + ["strategy.reason.STRATEGY_REJECTED"] = "La orden de estrategia fue rechazada.", + ["strategy.reason.STRATEGY_INVALID_RESULT"] = "El bridge devolvió un resultado de estrategia no válido.", + ["strategy.reason.STRATEGY_SEND_FAILED"] = "No se pudo enviar la orden de estrategia.", + ["strategy.reason.STRATEGY_INVALID_SCOPE"] = "Ámbito de destino de estrategia no válido.", + ["strategy.reason.STRATEGY_TARGET_REQUIRED"] = "Se requiere un bot como objetivo.", + ["strategy.reason.STRATEGY_TARGET_NOT_ALLOWED"] = "No se permite un bot como objetivo para este ámbito.", + ["strategy.reason.STRATEGY_INVALID_STATE_SCOPE"] = "Ámbito de estrategia de combate/no combate no válido.", + ["strategy.reason.STRATEGY_INVALID_CHANGES"] = "Cambios de estrategia no válidos.", + ["strategy.reason.STRATEGY_TOO_MANY_REQUESTS"] = "Hay demasiadas solicitudes de estrategia pendientes.", + ["strategy.reason.STRATEGY_TIMEOUT"] = "La solicitud de estrategia agotó el tiempo de espera.", + ["strategy.reason.TIMEOUT"] = "La solicitud de estrategia agotó el tiempo de espera.", + ["strategy.reason.BAD_FIELD_COUNT"] = "Solicitud de estrategia mal formada.", + ["strategy.reason.BAD_SCOPE"] = "Ámbito de destino de estrategia no válido.", + ["strategy.reason.BAD_ENCODING"] = "Datos de estrategia codificados no válidos.", + ["strategy.reason.BAD_TARGET"] = "Objetivo de estrategia no válido.", + ["strategy.reason.BAD_TOKEN"] = "Token de solicitud de estrategia no válido.", + ["strategy.reason.BAD_STATE"] = "Estado de estrategia no válido.", + ["strategy.reason.BAD_CHANGES"] = "Cambios de estrategia no válidos.", + ["strategy.reason.BAD_OPERATION"] = "Operación de estrategia no válida.", + ["strategy.reason.BAD_STRATEGY"] = "Nombre de estrategia no válido.", + ["strategy.reason.TOO_MANY_OPERATIONS"] = "Demasiados cambios de estrategia en una sola solicitud.", + ["strategy.reason.RATE_LIMIT"] = "Demasiadas solicitudes de estrategia. Inténtalo de nuevo en un momento.", + ["strategy.reason.NO_MATCH"] = "Ningún bot controlable coincide con la solicitud de estrategia.", + ["strategy.reason.BOT_LIMIT"] = "Demasiados bots coinciden con la solicitud de estrategia.", + ["strategy.reason.PARTIAL"] = "La orden de estrategia solo se aplicó parcialmente.", + ["strategy.reason.FAILED"] = "La orden de estrategia falló.", + ["strategy.reason.ACK_TOO_LONG"] = "La confirmación de estrategia es demasiado grande.", + ["strategy.reason.UNKNOWN"] = "La orden de estrategia falló por un motivo desconocido.", ["info.outfits.feedback_equip"] = "Conjunto «%s» equipado.", ["info.outfits.feedback_replace"] = "Conjunto «%s» reemplazado.", ["info.outfits.feedback_update"] = "Conjunto «%s» actualizado.", diff --git a/Locales/MultiBotAceLocale-frFR.lua b/Locales/MultiBotAceLocale-frFR.lua index 590ee50..cd7a1f4 100644 --- a/Locales/MultiBotAceLocale-frFR.lua +++ b/Locales/MultiBotAceLocale-frFR.lua @@ -77,6 +77,7 @@ local frFRValues = { ["profession.recipes.craft.reason.LOST_CONTROL"] = "Le bot ne peut pas agir maintenant.", ["profession.recipes.craft.reason.CHANNELING"] = "Le bot canalise déjà un sort.", ["profession.recipes.craft.reason.cast_code"] = "Le serveur a refusé le cast (code %s).", + ["profession.recipes.craft.reason.UNKNOWN"] = "Le serveur a renvoyé une erreur de fabrication inconnue.", ["character.tab.skills"] = "Compétences", ["character.tab.reputations"] = "Réputations", ["character.tab.emblems"] = "Monaies", @@ -148,6 +149,9 @@ local frFRValues = { ["info.inventory.item_action.reason.BUY_FAILED"] = "L'achat a échoué.", ["info.inventory.item_action.reason.NOT_SUPPORTED"] = "Cette action n'est pas encore supportée par le bridge.", ["info.inventory.item_action.reason.FAILED"] = "L'action a échoué.", + ["info.inventory.item_action.reason.FORBIDDEN"] = "Tu n'es pas autorisé à contrôler ce bot.", + ["info.inventory.item_action.reason.RATE_LIMIT"] = "Trop d'actions d'objet. Réessaie dans un instant.", + ["info.inventory.item_action.reason.UNKNOWN"] = "Le serveur a renvoyé une erreur d'action d'objet inconnue.", ["tips.units.rti"] = "RTI", ["tips.inventory.bank.deposit"] = "Déposer en banque|cffffffff\nClique un objet pour déplacer les piles correspondantes des sacs du bot vers sa banque.\nLe bot doit être près d'un banquier.|r\n\n|cffff0000N'affecte que le Bot dont l'inventaire est ouvert.|r", ["tips.inventory.gbank.deposit"] = "Déposer en banque de guilde|cffffffff\nClique un objet pour déplacer les piles correspondantes des sacs du bot vers le premier onglet de banque de guilde.\nLe bot doit être près d'une banque de guilde et avoir les droits de dépôt.|r\n\n|cffff0000N'affecte que le Bot dont l'inventaire est ouvert.|r", @@ -1012,6 +1016,7 @@ local frFRValues = { ["info.trainer.reason.NO_SPELL"] = "Sort introuvable.", ["info.trainer.reason.NO_MATCHING_SPELL"] = "Ce sort n'est plus disponible.", ["info.trainer.reason.TOO_EXPENSIVE"] = "Le bot n'a pas assez d'argent disponible.", + ["info.trainer.reason.UNKNOWN"] = "Le serveur a renvoyé une erreur de maître de classe inconnue.", ["tips.outfits.equip"] = "Clic gauche : Équiper\nClic droit : Remplacer", -- Chatless formation query ["tips.tankFace"] = "Tank Face|cffffffff\nActive la stratégie de positionnement Tank Face.\nLorsque le bot a l'aggro au corps à corps, il tente d'orienter la cible à l'opposé du groupe.\nCette stratégie n'attribue pas le rôle de Tank et reste indépendante de Tank et Assistance Tank.|r\n\n|cffff0000Clic gauche pour activer ou désactiver Tank Face|r\n|cff999999(Ordre d'exécution : Bot)|r", @@ -1036,6 +1041,39 @@ local frFRValues = { ["formation.name.unknown"] = "Inconnue", ["strategy.warning.blocked"] = "|cffff4444[MultiBot]|r %s : échec de la commande de stratégie (%s). Aucun fallback chat n'a été envoyé.", ["strategy.warning.refused"] = "MultiBot : commande de stratégie refusée - %s", + ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "Le bridge de stratégie est indisponible.", + ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "Le bridge de stratégie n'est pas connecté.", + ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "La modification des stratégies n'est pas prise en charge par le bridge connecté.", + ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "La modification des stratégies est indisponible dans l'addon.", + ["strategy.reason.STRATEGY_UNAVAILABLE"] = "La modification des stratégies est indisponible.", + ["strategy.reason.STRATEGY_REJECTED"] = "La commande de stratégie a été refusée.", + ["strategy.reason.STRATEGY_INVALID_RESULT"] = "Le bridge a renvoyé un résultat de stratégie invalide.", + ["strategy.reason.STRATEGY_SEND_FAILED"] = "La commande de stratégie n'a pas pu être envoyée.", + ["strategy.reason.STRATEGY_INVALID_SCOPE"] = "Portée de cible de stratégie invalide.", + ["strategy.reason.STRATEGY_TARGET_REQUIRED"] = "Une cible bot est requise.", + ["strategy.reason.STRATEGY_TARGET_NOT_ALLOWED"] = "Une cible bot n'est pas autorisée pour cette portée.", + ["strategy.reason.STRATEGY_INVALID_STATE_SCOPE"] = "Portée combat/hors combat de stratégie invalide.", + ["strategy.reason.STRATEGY_INVALID_CHANGES"] = "Modifications de stratégie invalides.", + ["strategy.reason.STRATEGY_TOO_MANY_REQUESTS"] = "Trop de demandes de stratégie sont en attente.", + ["strategy.reason.STRATEGY_TIMEOUT"] = "La demande de stratégie a expiré.", + ["strategy.reason.TIMEOUT"] = "La demande de stratégie a expiré.", + ["strategy.reason.BAD_FIELD_COUNT"] = "Demande de stratégie mal formée.", + ["strategy.reason.BAD_SCOPE"] = "Portée de cible de stratégie invalide.", + ["strategy.reason.BAD_ENCODING"] = "Données de stratégie encodées invalides.", + ["strategy.reason.BAD_TARGET"] = "Cible de stratégie invalide.", + ["strategy.reason.BAD_TOKEN"] = "Jeton de demande de stratégie invalide.", + ["strategy.reason.BAD_STATE"] = "État de stratégie invalide.", + ["strategy.reason.BAD_CHANGES"] = "Modifications de stratégie invalides.", + ["strategy.reason.BAD_OPERATION"] = "Opération de stratégie invalide.", + ["strategy.reason.BAD_STRATEGY"] = "Nom de stratégie invalide.", + ["strategy.reason.TOO_MANY_OPERATIONS"] = "Trop de modifications de stratégie dans une seule demande.", + ["strategy.reason.RATE_LIMIT"] = "Trop de demandes de stratégie. Réessaie dans un instant.", + ["strategy.reason.NO_MATCH"] = "Aucun bot contrôlable ne correspond à la demande de stratégie.", + ["strategy.reason.BOT_LIMIT"] = "Trop de bots correspondent à la demande de stratégie.", + ["strategy.reason.PARTIAL"] = "La commande de stratégie n'a été appliquée que partiellement.", + ["strategy.reason.FAILED"] = "La commande de stratégie a échoué.", + ["strategy.reason.ACK_TOO_LONG"] = "L'accusé de réception de stratégie est trop volumineux.", + ["strategy.reason.UNKNOWN"] = "La commande de stratégie a échoué pour une raison inconnue.", ["info.outfits.feedback_equip"] = "Tenue « %s » équipée.", ["info.outfits.feedback_replace"] = "Tenue « %s » remplacée.", ["info.outfits.feedback_update"] = "Tenue « %s » mise à jour.", diff --git a/Locales/MultiBotAceLocale-koKR.lua b/Locales/MultiBotAceLocale-koKR.lua index c26dc07..01754ea 100644 --- a/Locales/MultiBotAceLocale-koKR.lua +++ b/Locales/MultiBotAceLocale-koKR.lua @@ -77,6 +77,7 @@ local koKRValues = { ["profession.recipes.craft.reason.LOST_CONTROL"] = "봇이 지금 행동할 수 없습니다.", ["profession.recipes.craft.reason.CHANNELING"] = "봇이 이미 주문을 시전 중입니다.", ["profession.recipes.craft.reason.cast_code"] = "서버가 시전을 거부했습니다(코드 %s).", + ["profession.recipes.craft.reason.UNKNOWN"] = "서버가 알 수 없는 제작 오류를 반환했습니다.", ["character.tab.skills"] = "기술", ["character.tab.reputations"] = "평판", ["character.tab.emblems"] = "엠블렘", @@ -148,6 +149,9 @@ local koKRValues = { ["info.inventory.item_action.reason.BUY_FAILED"] = "구매 실패.", ["info.inventory.item_action.reason.NOT_SUPPORTED"] = "이 작업은 아직 브릿지에서 지원되지 않습니다.", ["info.inventory.item_action.reason.FAILED"] = "작업 실패.", + ["info.inventory.item_action.reason.FORBIDDEN"] = "이 봇을 제어할 권한이 없습니다.", + ["info.inventory.item_action.reason.RATE_LIMIT"] = "아이템 작업 요청이 너무 많습니다. 잠시 후 다시 시도하세요.", + ["info.inventory.item_action.reason.UNKNOWN"] = "서버가 알 수 없는 아이템 작업 오류를 반환했습니다.", ["tips.units.rti"] = "RTI", ["tips.inventory.bank.deposit"] = "은행에 보관|cffffffff\n아이템을 클릭하면 봇의 가방에서 은행으로 해당 스택을 이동합니다.\n봇은 은행원 근처에 있어야 합니다.|r\n\n|cffff0000열려 있는 인벤토리의 봇에게만 적용됩니다.|r", ["tips.inventory.gbank.deposit"] = "길드 은행에 보관|cffffffff\n아이템을 클릭하면 봇의 가방에서 길드 은행 첫 번째 탭으로 해당 스택을 이동합니다.\n봇은 길드 은행 근처에 있어야 하며 입금 권한이 필요합니다.|r\n\n|cffff0000열려 있는 인벤토리의 봇에게만 적용됩니다.|r", @@ -1004,6 +1008,7 @@ local koKRValues = { ["info.trainer.reason.NO_SPELL"] = "주문을 찾을 수 없습니다.", ["info.trainer.reason.NO_MATCHING_SPELL"] = "이 주문은 더 이상 사용할 수 없습니다.", ["info.trainer.reason.TOO_EXPENSIVE"] = "봇의 사용 가능한 돈이 부족합니다.", + ["info.trainer.reason.UNKNOWN"] = "서버가 알 수 없는 상급자 오류를 반환했습니다.", ["tips.outfits.equip"] = "왼쪽 클릭: 장착\n오른쪽 클릭: 바꾸기", -- Chatless formation query ["tips.tankFace"] = "Tank Face|cffffffff\nTank Face 위치 선정 전략을 활성화합니다.\n봇이 근접 거리에서 위협을 확보하면 대상이 파티를 등지도록 방향을 조정합니다.\n이 전략은 탱커 역할을 부여하지 않으며 Tank 및 Tank Assist와 독립적입니다.|r\n\n|cffff0000Tank Face를 켜거나 끄려면 왼쪽 클릭|r\n|cff999999(실행 주체: 봇)|r", @@ -1028,6 +1033,39 @@ local koKRValues = { ["formation.name.unknown"] = "알 수 없음", ["strategy.warning.blocked"] = "|cffff4444[MultiBot]|r %s: 전략 명령에 실패했습니다 (%s). 채팅 대체 전송을 사용하지 않았습니다.", ["strategy.warning.refused"] = "MultiBot: 전략 명령이 거부되었습니다 - %s", + ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "전략 브리지를 사용할 수 없습니다.", + ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "전략 브리지가 연결되어 있지 않습니다.", + ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "연결된 브리지가 전략 변경을 지원하지 않습니다.", + ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "애드온에서 전략 변경을 사용할 수 없습니다.", + ["strategy.reason.STRATEGY_UNAVAILABLE"] = "전략 변경을 사용할 수 없습니다.", + ["strategy.reason.STRATEGY_REJECTED"] = "전략 명령이 거부되었습니다.", + ["strategy.reason.STRATEGY_INVALID_RESULT"] = "브리지가 잘못된 전략 결과를 반환했습니다.", + ["strategy.reason.STRATEGY_SEND_FAILED"] = "전략 명령을 전송하지 못했습니다.", + ["strategy.reason.STRATEGY_INVALID_SCOPE"] = "전략 대상 범위가 올바르지 않습니다.", + ["strategy.reason.STRATEGY_TARGET_REQUIRED"] = "봇 대상이 필요합니다.", + ["strategy.reason.STRATEGY_TARGET_NOT_ALLOWED"] = "이 범위에서는 봇 대상을 지정할 수 없습니다.", + ["strategy.reason.STRATEGY_INVALID_STATE_SCOPE"] = "전투/비전투 전략 범위가 올바르지 않습니다.", + ["strategy.reason.STRATEGY_INVALID_CHANGES"] = "전략 변경 내용이 올바르지 않습니다.", + ["strategy.reason.STRATEGY_TOO_MANY_REQUESTS"] = "대기 중인 전략 요청이 너무 많습니다.", + ["strategy.reason.STRATEGY_TIMEOUT"] = "전략 요청 시간이 초과되었습니다.", + ["strategy.reason.TIMEOUT"] = "전략 요청 시간이 초과되었습니다.", + ["strategy.reason.BAD_FIELD_COUNT"] = "전략 요청 형식이 올바르지 않습니다.", + ["strategy.reason.BAD_SCOPE"] = "전략 대상 범위가 올바르지 않습니다.", + ["strategy.reason.BAD_ENCODING"] = "인코딩된 전략 데이터가 올바르지 않습니다.", + ["strategy.reason.BAD_TARGET"] = "전략 대상이 올바르지 않습니다.", + ["strategy.reason.BAD_TOKEN"] = "전략 요청 토큰이 올바르지 않습니다.", + ["strategy.reason.BAD_STATE"] = "전략 상태가 올바르지 않습니다.", + ["strategy.reason.BAD_CHANGES"] = "전략 변경 내용이 올바르지 않습니다.", + ["strategy.reason.BAD_OPERATION"] = "전략 작업이 올바르지 않습니다.", + ["strategy.reason.BAD_STRATEGY"] = "전략 이름이 올바르지 않습니다.", + ["strategy.reason.TOO_MANY_OPERATIONS"] = "한 요청에 전략 변경이 너무 많습니다.", + ["strategy.reason.RATE_LIMIT"] = "전략 요청이 너무 많습니다. 잠시 후 다시 시도하세요.", + ["strategy.reason.NO_MATCH"] = "전략 요청과 일치하는 제어 가능한 봇이 없습니다.", + ["strategy.reason.BOT_LIMIT"] = "전략 요청과 일치하는 봇이 너무 많습니다.", + ["strategy.reason.PARTIAL"] = "전략 명령이 일부만 적용되었습니다.", + ["strategy.reason.FAILED"] = "전략 명령이 실패했습니다.", + ["strategy.reason.ACK_TOO_LONG"] = "전략 응답이 너무 큽니다.", + ["strategy.reason.UNKNOWN"] = "알 수 없는 이유로 전략 명령이 실패했습니다.", ["info.outfits.feedback_equip"] = "장비 세트 \"%s\": 장착 완료.", ["info.outfits.feedback_replace"] = "장비 세트 \"%s\": 교체 완료.", ["info.outfits.feedback_update"] = "장비 세트 \"%s\": 업데이트 완료.", diff --git a/Locales/MultiBotAceLocale-ruRU.lua b/Locales/MultiBotAceLocale-ruRU.lua index bd09cfa..07e074a 100644 --- a/Locales/MultiBotAceLocale-ruRU.lua +++ b/Locales/MultiBotAceLocale-ruRU.lua @@ -77,6 +77,7 @@ local ruRUValues = { ["profession.recipes.craft.reason.LOST_CONTROL"] = "Бот сейчас не может действовать.", ["profession.recipes.craft.reason.CHANNELING"] = "Бот уже поддерживает заклинание.", ["profession.recipes.craft.reason.cast_code"] = "Сервер отклонил применение (код %s).", + ["profession.recipes.craft.reason.UNKNOWN"] = "Сервер вернул неизвестную ошибку создания предмета.", ["character.tab.skills"] = "Навыки", ["character.tab.reputations"] = "Репутации", ["character.tab.emblems"] = "Знаки", @@ -148,6 +149,9 @@ local ruRUValues = { ["info.inventory.item_action.reason.BUY_FAILED"] = "Покупка не удалась.", ["info.inventory.item_action.reason.NOT_SUPPORTED"] = "Это действие ещё не поддерживается мостом.", ["info.inventory.item_action.reason.FAILED"] = "Действие не удалось.", + ["info.inventory.item_action.reason.FORBIDDEN"] = "У вас нет прав на управление этим ботом.", + ["info.inventory.item_action.reason.RATE_LIMIT"] = "Слишком много действий с предметами. Повторите попытку чуть позже.", + ["info.inventory.item_action.reason.UNKNOWN"] = "Сервер вернул неизвестную ошибку операции с предметом.", ["tips.units.rti"] = "RTI", ["tips.inventory.bank.deposit"] = "Положить в банк|cffffffff\nНажмите на предмет, чтобы переместить соответствующие стопки из сумок бота в его банк.\nБот должен находиться рядом с банкиром.|r\n\n|cffff0000Применяется только к боту, чей инвентарь открыт.|r", ["tips.inventory.gbank.deposit"] = "Положить в банк гильдии|cffffffff\nНажмите на предмет, чтобы переместить соответствующие стопки из сумок бота в первую вкладку банка гильдии.\nБот должен быть рядом с банком гильдии и иметь права на вклад.|r\n\n|cffff0000Применяется только к боту, чей инвентарь открыт.|r", @@ -1013,6 +1017,7 @@ local ruRUValues = { ["info.trainer.reason.NO_SPELL"] = "Заклинание не найдено.", ["info.trainer.reason.NO_MATCHING_SPELL"] = "Это заклинание больше недоступно.", ["info.trainer.reason.TOO_EXPENSIVE"] = "У бота недостаточно доступных денег.", + ["info.trainer.reason.UNKNOWN"] = "Сервер вернул неизвестную ошибку тренера.", ["tips.outfits.equip"] = "ЛКМ: Надеть\nПКМ: Заменить", -- Chatless formation query ["tips.tankFace"] = "Tank Face|cffffffff\nВключает позиционную стратегию Tank Face.\nЕсли бот удерживает угрозу в ближнем бою, он старается развернуть цель от группы.\nЭта стратегия не назначает роль танка и работает независимо от Tank и Tank Assist.|r\n\n|cffff0000Левый клик — включить или выключить Tank Face|r\n|cff999999(Порядок выполнения: Бот)|r", @@ -1037,6 +1042,39 @@ local ruRUValues = { ["formation.name.unknown"] = "Неизвестно", ["strategy.warning.blocked"] = "|cffff4444[MultiBot]|r %s: команда стратегии не выполнена (%s). Резервная отправка через чат не выполнялась.", ["strategy.warning.refused"] = "MultiBot: команда стратегии отклонена - %s", + ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "Мост стратегий недоступен.", + ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "Мост стратегий не подключён.", + ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "Подключённый мост не поддерживает изменение стратегий.", + ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "Изменение стратегий недоступно в аддоне.", + ["strategy.reason.STRATEGY_UNAVAILABLE"] = "Изменение стратегий недоступно.", + ["strategy.reason.STRATEGY_REJECTED"] = "Команда стратегии отклонена.", + ["strategy.reason.STRATEGY_INVALID_RESULT"] = "Мост вернул недопустимый результат стратегии.", + ["strategy.reason.STRATEGY_SEND_FAILED"] = "Не удалось отправить команду стратегии.", + ["strategy.reason.STRATEGY_INVALID_SCOPE"] = "Недопустимая область цели стратегии.", + ["strategy.reason.STRATEGY_TARGET_REQUIRED"] = "Требуется указать бота-цель.", + ["strategy.reason.STRATEGY_TARGET_NOT_ALLOWED"] = "Для этой области нельзя указывать бота-цель.", + ["strategy.reason.STRATEGY_INVALID_STATE_SCOPE"] = "Недопустимая область стратегии боя/вне боя.", + ["strategy.reason.STRATEGY_INVALID_CHANGES"] = "Недопустимые изменения стратегии.", + ["strategy.reason.STRATEGY_TOO_MANY_REQUESTS"] = "Слишком много ожидающих запросов стратегии.", + ["strategy.reason.STRATEGY_TIMEOUT"] = "Истекло время ожидания запроса стратегии.", + ["strategy.reason.TIMEOUT"] = "Истекло время ожидания запроса стратегии.", + ["strategy.reason.BAD_FIELD_COUNT"] = "Некорректно сформирован запрос стратегии.", + ["strategy.reason.BAD_SCOPE"] = "Недопустимая область цели стратегии.", + ["strategy.reason.BAD_ENCODING"] = "Некорректно закодированы данные стратегии.", + ["strategy.reason.BAD_TARGET"] = "Недопустимая цель стратегии.", + ["strategy.reason.BAD_TOKEN"] = "Недопустимый токен запроса стратегии.", + ["strategy.reason.BAD_STATE"] = "Недопустимое состояние стратегии.", + ["strategy.reason.BAD_CHANGES"] = "Недопустимые изменения стратегии.", + ["strategy.reason.BAD_OPERATION"] = "Недопустимая операция стратегии.", + ["strategy.reason.BAD_STRATEGY"] = "Недопустимое имя стратегии.", + ["strategy.reason.TOO_MANY_OPERATIONS"] = "Слишком много изменений стратегии в одном запросе.", + ["strategy.reason.RATE_LIMIT"] = "Слишком много запросов стратегии. Повторите попытку чуть позже.", + ["strategy.reason.NO_MATCH"] = "Ни один управляемый бот не соответствует запросу стратегии.", + ["strategy.reason.BOT_LIMIT"] = "Слишком много ботов соответствует запросу стратегии.", + ["strategy.reason.PARTIAL"] = "Команда стратегии применена только частично.", + ["strategy.reason.FAILED"] = "Команда стратегии завершилась ошибкой.", + ["strategy.reason.ACK_TOO_LONG"] = "Подтверждение стратегии слишком велико.", + ["strategy.reason.UNKNOWN"] = "Команда стратегии завершилась ошибкой по неизвестной причине.", ["info.outfits.feedback_equip"] = "Комплект «%s» экипирован.", ["info.outfits.feedback_replace"] = "Комплект «%s» заменён.", ["info.outfits.feedback_update"] = "Комплект «%s» обновлён.", diff --git a/Locales/MultiBotAceLocale-zhCN.lua b/Locales/MultiBotAceLocale-zhCN.lua index 37440d9..e8f3013 100644 --- a/Locales/MultiBotAceLocale-zhCN.lua +++ b/Locales/MultiBotAceLocale-zhCN.lua @@ -77,6 +77,7 @@ local zhCNValues = { ["profession.recipes.craft.reason.LOST_CONTROL"] = "机器人现在无法行动。", ["profession.recipes.craft.reason.CHANNELING"] = "机器人已经在引导法术。", ["profession.recipes.craft.reason.cast_code"] = "服务器拒绝施法(代码 %s)。", + ["profession.recipes.craft.reason.UNKNOWN"] = "服务器返回了未知的制造错误。", ["character.tab.skills"] = "技能", ["character.tab.reputations"] = "声望", ["character.tab.emblems"] = "徽章", @@ -148,6 +149,9 @@ local zhCNValues = { ["info.inventory.item_action.reason.BUY_FAILED"] = "购买失败。", ["info.inventory.item_action.reason.NOT_SUPPORTED"] = "该操作尚未被桥接模块支持。", ["info.inventory.item_action.reason.FAILED"] = "操作失败。", + ["info.inventory.item_action.reason.FORBIDDEN"] = "你无权控制此机器人。", + ["info.inventory.item_action.reason.RATE_LIMIT"] = "物品操作请求过多,请稍后重试。", + ["info.inventory.item_action.reason.UNKNOWN"] = "服务器返回了未知的物品操作错误。", ["tips.units.rti"] = "RTI", ["tips.inventory.bank.deposit"] = "存入银行|cffffffff\n点击物品可将机器人背包中的对应堆叠移动到其银行。\n机器人必须在银行职员附近。|r\n\n|cffff0000仅影响当前打开背包的机器人。|r", ["tips.inventory.gbank.deposit"] = "存入公会银行|cffffffff\n点击物品可将机器人背包中的对应堆叠移动到公会银行的第一个标签页。\n机器人必须在公会银行附近并拥有存款权限。|r\n\n|cffff0000仅影响当前打开背包的机器人。|r", @@ -1013,6 +1017,7 @@ local zhCNValues = { ["info.trainer.reason.NO_SPELL"] = "找不到法术。", ["info.trainer.reason.NO_MATCHING_SPELL"] = "该法术已不可用。", ["info.trainer.reason.TOO_EXPENSIVE"] = "机器人的可用金币不足。", + ["info.trainer.reason.UNKNOWN"] = "服务器返回了未知的训练师错误。", ["tips.outfits.equip"] = "左键:装备\n右键:替换", -- Chatless formation query ["tips.tankFace"] = "Tank Face|cffffffff\n启用 Tank Face 站位策略。\n当机器人在近战范围内拥有仇恨时,它会尝试让目标背对队伍。\n此策略不会赋予坦克职责,并且独立于 Tank 和 Tank Assist。|r\n\n|cffff0000左键点击启用或禁用 Tank Face|r\n|cff999999(执行命令:机器人)|r", @@ -1037,6 +1042,39 @@ local zhCNValues = { ["formation.name.unknown"] = "未知", ["strategy.warning.blocked"] = "|cffff4444[MultiBot]|r %s:策略命令失败(%s)。未通过聊天备用通道发送。", ["strategy.warning.refused"] = "MultiBot:策略命令被拒绝 - %s", + ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "策略桥接不可用。", + ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "策略桥接未连接。", + ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "已连接的桥接不支持策略修改。", + ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "插件中的策略修改不可用。", + ["strategy.reason.STRATEGY_UNAVAILABLE"] = "策略修改不可用。", + ["strategy.reason.STRATEGY_REJECTED"] = "策略命令被拒绝。", + ["strategy.reason.STRATEGY_INVALID_RESULT"] = "桥接返回了无效的策略结果。", + ["strategy.reason.STRATEGY_SEND_FAILED"] = "无法发送策略命令。", + ["strategy.reason.STRATEGY_INVALID_SCOPE"] = "策略目标范围无效。", + ["strategy.reason.STRATEGY_TARGET_REQUIRED"] = "必须指定一个机器人目标。", + ["strategy.reason.STRATEGY_TARGET_NOT_ALLOWED"] = "此范围不允许指定机器人目标。", + ["strategy.reason.STRATEGY_INVALID_STATE_SCOPE"] = "战斗/非战斗策略范围无效。", + ["strategy.reason.STRATEGY_INVALID_CHANGES"] = "策略修改无效。", + ["strategy.reason.STRATEGY_TOO_MANY_REQUESTS"] = "等待中的策略请求过多。", + ["strategy.reason.STRATEGY_TIMEOUT"] = "策略请求超时。", + ["strategy.reason.TIMEOUT"] = "策略请求超时。", + ["strategy.reason.BAD_FIELD_COUNT"] = "策略请求格式错误。", + ["strategy.reason.BAD_SCOPE"] = "策略目标范围无效。", + ["strategy.reason.BAD_ENCODING"] = "策略编码数据无效。", + ["strategy.reason.BAD_TARGET"] = "策略目标无效。", + ["strategy.reason.BAD_TOKEN"] = "策略请求令牌无效。", + ["strategy.reason.BAD_STATE"] = "策略状态无效。", + ["strategy.reason.BAD_CHANGES"] = "策略修改无效。", + ["strategy.reason.BAD_OPERATION"] = "策略操作无效。", + ["strategy.reason.BAD_STRATEGY"] = "策略名称无效。", + ["strategy.reason.TOO_MANY_OPERATIONS"] = "单个请求中的策略修改过多。", + ["strategy.reason.RATE_LIMIT"] = "策略请求过多,请稍后重试。", + ["strategy.reason.NO_MATCH"] = "没有可控制的机器人符合策略请求。", + ["strategy.reason.BOT_LIMIT"] = "符合策略请求的机器人过多。", + ["strategy.reason.PARTIAL"] = "策略命令只应用了一部分。", + ["strategy.reason.FAILED"] = "策略命令失败。", + ["strategy.reason.ACK_TOO_LONG"] = "策略确认消息过大。", + ["strategy.reason.UNKNOWN"] = "策略命令因未知原因失败。", ["info.outfits.feedback_equip"] = "配装“%s”已装备。", ["info.outfits.feedback_replace"] = "配装“%s”已替换。", ["info.outfits.feedback_update"] = "配装“%s”已更新。", diff --git a/UI/MultiBotBankFrame.lua b/UI/MultiBotBankFrame.lua index 3e276b9..74724e8 100644 --- a/UI/MultiBotBankFrame.lua +++ b/UI/MultiBotBankFrame.lua @@ -172,7 +172,7 @@ local function getBankReasonText(reason) return "" end - return L("info.inventory.item_action.reason." .. reason, reason) + return L("info.inventory.item_action.reason." .. reason, L("info.inventory.item_action.reason.UNKNOWN", "The server returned an unknown item-action error.")) end local function getBankModeTitle(mode) diff --git a/UI/MultiBotCharacterInfoFrame.lua b/UI/MultiBotCharacterInfoFrame.lua index 5bae70a..723cc5e 100644 --- a/UI/MultiBotCharacterInfoFrame.lua +++ b/UI/MultiBotCharacterInfoFrame.lua @@ -483,7 +483,7 @@ local function getCraftReasonText(reason, skillId) return string.format(L("profession.recipes.craft.reason.cast_code", "The server refused the cast (code %s)."), castCode) end - return L("profession.recipes.craft.reason." .. reason, reason) + return L("profession.recipes.craft.reason." .. reason, L("profession.recipes.craft.reason.UNKNOWN", "The server returned an unknown crafting error.")) end local function scheduleRecipeRefresh(botName, skillId) diff --git a/UI/MultiBotInventoryItem.lua b/UI/MultiBotInventoryItem.lua index 489f554..38ea056 100644 --- a/UI/MultiBotInventoryItem.lua +++ b/UI/MultiBotInventoryItem.lua @@ -526,7 +526,11 @@ local function getInventoryItemActionReason(reason) return "" end - return inventoryItemL("inventory.item_action.reason." .. reason, reason) + local fallback = inventoryItemL( + "inventory.item_action.reason.UNKNOWN", + "The server returned an unknown item-action error." + ) + return inventoryItemL("inventory.item_action.reason." .. reason, fallback) end function MultiBot.OnBridgeInventoryItemActionResult(botName, action, itemId, result, reason, moved) @@ -577,7 +581,7 @@ function MultiBot.OnBridgeInventoryItemActionResult(botName, action, itemId, res and MultiBot.bankFrame and MultiBot.bankFrame.IsShown and MultiBot.bankFrame:IsShown() and MultiBot.bankFrame.botName == botName then if MultiBot.bankFrame.status then - MultiBot.bankFrame.status:SetText(reasonText ~= "" and reasonText or tostring(reason or "")) + MultiBot.bankFrame.status:SetText(reasonText ~= "" and reasonText or inventoryItemL("inventory.item_action.reason.UNKNOWN", "The server returned an unknown item-action error.")) end if MultiBot.bankFrame.render then MultiBot.bankFrame:render() @@ -589,7 +593,7 @@ function MultiBot.OnBridgeInventoryItemActionResult(botName, action, itemId, res and MultiBot.professionRecipeFrame.status then MultiBot.professionRecipeFrame.status:SetText(string.format( inventoryItemL("inventory.item_action.buy.err", "Purchase failed: %s"), - reasonText ~= "" and reasonText or tostring(reason or "") + reasonText ~= "" and reasonText or inventoryItemL("inventory.item_action.reason.UNKNOWN", "The server returned an unknown item-action error.") )) end diff --git a/UI/MultiBotTrainerUI.lua b/UI/MultiBotTrainerUI.lua index 9ad77c3..41c7097 100644 --- a/UI/MultiBotTrainerUI.lua +++ b/UI/MultiBotTrainerUI.lua @@ -76,7 +76,7 @@ local function getReasonText(reason) return "" end - return L("info.trainer.reason." .. reason, reason) + return L("info.trainer.reason." .. reason, L("info.trainer.reason.UNKNOWN", "The server returned an unknown trainer error.")) end local function getWindowTitle(botName) From ec9148e9d7cf9a6d4ba410736a57314f4f64758f Mon Sep 17 00:00:00 2001 From: Alex Dcnh <140754794+Wishmaster117@users.noreply.github.com> Date: Tue, 11 Aug 2026 15:55:54 +0200 Subject: [PATCH 2/2] Fix PR review localization issues --- Locales/MultiBotAceLocale-deDE.lua | 1 + Locales/MultiBotAceLocale-enGB.lua | 1 + Locales/MultiBotAceLocale-enUS.lua | 1 + Locales/MultiBotAceLocale-esES.lua | 3 ++- Locales/MultiBotAceLocale-frFR.lua | 1 + Locales/MultiBotAceLocale-koKR.lua | 1 + Locales/MultiBotAceLocale-ruRU.lua | 1 + Locales/MultiBotAceLocale-zhCN.lua | 1 + 8 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Locales/MultiBotAceLocale-deDE.lua b/Locales/MultiBotAceLocale-deDE.lua index 36e3b58..4a8cbb6 100644 --- a/Locales/MultiBotAceLocale-deDE.lua +++ b/Locales/MultiBotAceLocale-deDE.lua @@ -1043,6 +1043,7 @@ local deDEValues = { ["strategy.warning.refused"] = "MultiBot: Strategiebefehl abgelehnt - %s", ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "Die Strategie-Bridge ist nicht verfügbar.", ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "Die Strategie-Bridge ist nicht verbunden.", + ["strategy.reason.DISCONNECTED"] = "Die Verbindung zur Strategie-Bridge wurde getrennt.", ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "Die verbundene Bridge unterstützt keine Strategieänderungen.", ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "Strategieänderungen sind im Addon nicht verfügbar.", ["strategy.reason.STRATEGY_UNAVAILABLE"] = "Strategieänderungen sind nicht verfügbar.", diff --git a/Locales/MultiBotAceLocale-enGB.lua b/Locales/MultiBotAceLocale-enGB.lua index b636961..9bba4e6 100644 --- a/Locales/MultiBotAceLocale-enGB.lua +++ b/Locales/MultiBotAceLocale-enGB.lua @@ -1046,6 +1046,7 @@ local enGBValues = { ["strategy.warning.refused"] = "MultiBot: strategy command refused - %s", ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "Strategy bridge is unavailable.", ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "The strategy bridge is not connected.", + ["strategy.reason.DISCONNECTED"] = "The strategy bridge connection was lost.", ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "Strategy mutation is not supported by the connected bridge.", ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "Strategy mutation is unavailable in the addon.", ["strategy.reason.STRATEGY_UNAVAILABLE"] = "Strategy mutation is unavailable.", diff --git a/Locales/MultiBotAceLocale-enUS.lua b/Locales/MultiBotAceLocale-enUS.lua index 2321372..9fe8d20 100644 --- a/Locales/MultiBotAceLocale-enUS.lua +++ b/Locales/MultiBotAceLocale-enUS.lua @@ -1046,6 +1046,7 @@ local enUSValues = { ["strategy.warning.refused"] = "MultiBot: strategy command refused - %s", ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "Strategy bridge is unavailable.", ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "The strategy bridge is not connected.", + ["strategy.reason.DISCONNECTED"] = "The strategy bridge connection was lost.", ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "Strategy mutation is not supported by the connected bridge.", ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "Strategy mutation is unavailable in the addon.", ["strategy.reason.STRATEGY_UNAVAILABLE"] = "Strategy mutation is unavailable.", diff --git a/Locales/MultiBotAceLocale-esES.lua b/Locales/MultiBotAceLocale-esES.lua index 5482b1f..697c882 100644 --- a/Locales/MultiBotAceLocale-esES.lua +++ b/Locales/MultiBotAceLocale-esES.lua @@ -1017,7 +1017,7 @@ local esESValues = { ["info.trainer.reason.NO_SPELL"] = "Hechizo no encontrado.", ["info.trainer.reason.NO_MATCHING_SPELL"] = "Este hechizo ya no está disponible.", ["info.trainer.reason.TOO_EXPENSIVE"] = "El bot no tiene suficiente dinero disponible.", - ["info.trainer.reason.UNKNOWN"] = "El servidor devolvió un error desconocido del instructor.", + ["info.trainer.reason.UNKNOWN"] = "El servidor devolvió un error desconocido del entrenador.", ["tips.outfits.equip"] = "Clic izquierdo: Equipar\nClic derecho: Reemplazar", -- Chatless formation query ["tips.tankFace"] = "Tank Face|cffffffff\nActiva la estrategia de posicionamiento Tank Face.\nCuando el bot tiene la amenaza en cuerpo a cuerpo, intenta orientar al objetivo en dirección opuesta al grupo.\nEsta estrategia no asigna el rol de tanque y es independiente de Tank y Asistencia Tank.|r\n\n|cffff0000Clic izquierdo para activar o desactivar Tank Face|r\n|cff999999(Orden de ejecución: Bot)|r", @@ -1044,6 +1044,7 @@ local esESValues = { ["strategy.warning.refused"] = "MultiBot: comando de estrategia rechazado - %s", ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "El bridge de estrategia no está disponible.", ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "El bridge de estrategia no está conectado.", + ["strategy.reason.DISCONNECTED"] = "Se perdió la conexión con el bridge de estrategia.", ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "El bridge conectado no admite la modificación de estrategias.", ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "La modificación de estrategias no está disponible en el addon.", ["strategy.reason.STRATEGY_UNAVAILABLE"] = "La modificación de estrategias no está disponible.", diff --git a/Locales/MultiBotAceLocale-frFR.lua b/Locales/MultiBotAceLocale-frFR.lua index cd7a1f4..8303638 100644 --- a/Locales/MultiBotAceLocale-frFR.lua +++ b/Locales/MultiBotAceLocale-frFR.lua @@ -1043,6 +1043,7 @@ local frFRValues = { ["strategy.warning.refused"] = "MultiBot : commande de stratégie refusée - %s", ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "Le bridge de stratégie est indisponible.", ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "Le bridge de stratégie n'est pas connecté.", + ["strategy.reason.DISCONNECTED"] = "La connexion au bridge de stratégie a été perdue.", ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "La modification des stratégies n'est pas prise en charge par le bridge connecté.", ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "La modification des stratégies est indisponible dans l'addon.", ["strategy.reason.STRATEGY_UNAVAILABLE"] = "La modification des stratégies est indisponible.", diff --git a/Locales/MultiBotAceLocale-koKR.lua b/Locales/MultiBotAceLocale-koKR.lua index 01754ea..2394a76 100644 --- a/Locales/MultiBotAceLocale-koKR.lua +++ b/Locales/MultiBotAceLocale-koKR.lua @@ -1035,6 +1035,7 @@ local koKRValues = { ["strategy.warning.refused"] = "MultiBot: 전략 명령이 거부되었습니다 - %s", ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "전략 브리지를 사용할 수 없습니다.", ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "전략 브리지가 연결되어 있지 않습니다.", + ["strategy.reason.DISCONNECTED"] = "전략 브리지 연결이 끊어졌습니다.", ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "연결된 브리지가 전략 변경을 지원하지 않습니다.", ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "애드온에서 전략 변경을 사용할 수 없습니다.", ["strategy.reason.STRATEGY_UNAVAILABLE"] = "전략 변경을 사용할 수 없습니다.", diff --git a/Locales/MultiBotAceLocale-ruRU.lua b/Locales/MultiBotAceLocale-ruRU.lua index 07e074a..72c2751 100644 --- a/Locales/MultiBotAceLocale-ruRU.lua +++ b/Locales/MultiBotAceLocale-ruRU.lua @@ -1044,6 +1044,7 @@ local ruRUValues = { ["strategy.warning.refused"] = "MultiBot: команда стратегии отклонена - %s", ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "Мост стратегий недоступен.", ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "Мост стратегий не подключён.", + ["strategy.reason.DISCONNECTED"] = "Соединение с мостом стратегий потеряно.", ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "Подключённый мост не поддерживает изменение стратегий.", ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "Изменение стратегий недоступно в аддоне.", ["strategy.reason.STRATEGY_UNAVAILABLE"] = "Изменение стратегий недоступно.", diff --git a/Locales/MultiBotAceLocale-zhCN.lua b/Locales/MultiBotAceLocale-zhCN.lua index e8f3013..8e68fcb 100644 --- a/Locales/MultiBotAceLocale-zhCN.lua +++ b/Locales/MultiBotAceLocale-zhCN.lua @@ -1044,6 +1044,7 @@ local zhCNValues = { ["strategy.warning.refused"] = "MultiBot:策略命令被拒绝 - %s", ["strategy.reason.STRATEGY_BRIDGE_UNAVAILABLE"] = "策略桥接不可用。", ["strategy.reason.STRATEGY_NOT_CONNECTED"] = "策略桥接未连接。", + ["strategy.reason.DISCONNECTED"] = "策略桥接连接已断开。", ["strategy.reason.STRATEGY_CAPABILITY_UNAVAILABLE"] = "已连接的桥接不支持策略修改。", ["strategy.reason.STRATEGY_CLIENT_UNAVAILABLE"] = "插件中的策略修改不可用。", ["strategy.reason.STRATEGY_UNAVAILABLE"] = "策略修改不可用。",