Mercurial > wow > mailopener
diff Modules/OpenAll.lua @ 68:eadff31e61e8
Localization of all files. Testing packager settings (especially automatic locale exports), localization is not yet finished.
| author | Zerotorescue |
|---|---|
| date | Wed, 15 Sep 2010 13:10:56 +0200 |
| parents | 1a4b2e73cef3 |
| children | 136aa3dd4dda |
line wrap: on
line diff
--- a/Modules/OpenAll.lua Tue Sep 14 11:17:38 2010 +0200 +++ b/Modules/OpenAll.lua Wed Sep 15 13:10:56 2010 +0200 @@ -1,7 +1,8 @@ local MailOpener = LibStub("AceAddon-3.0"):GetAddon("MailOpener"); local mod = MailOpener:NewModule("OpenAll", "AceEvent-3.0", "AceTimer-3.0"); +local L = LibStub("AceLocale-3.0"):GetLocale("MailOpener"); -mod.moduleDescription = "The actual mail opening initiated by the core."; +mod.moduleDescription = L["The actual mail opening initiated by the core."]; mod.moduleRequired = true; --[[ @@ -41,7 +42,7 @@ if not self.btnOpenAll then -- Open all button local button = CreateFrame("Button", "btnMailOpenerOpenAll", InboxFrame, "UIPanelButtonTemplate"); - button:SetText("Open all"); + button:SetText(L["Open all"]); button:SetHeight(26); button:SetWidth(120); button:SetPoint("BOTTOM", InboxFrame, "CENTER", -10, -165); @@ -63,7 +64,7 @@ if level == 1 then -- Create the title of the menu info.isTitle = true; - info.text = "Toggle filters for " .. MailOpener.db:GetCurrentProfile() .. " profile."; + info.text = L["Toggle filters for %s profile."]:format(MailOpener.db:GetCurrentProfile()); info.notCheckable = true; UIDropDownMenu_AddButton(info, level); @@ -76,43 +77,43 @@ info.keepShownOnClick = true; -- Make Auction canceled option - info.text = "Auction canceled"; + info.text = L["Auction canceled"]; info.func = function(this) mod.db.profile.filter.AH.canceled = this.checked; end; info.checked = mod.db.profile.filter.AH.canceled; UIDropDownMenu_AddButton(info, level); -- Make Auction expired option - info.text = "Auction expired"; + info.text = L["Auction expired"]; info.func = function(this) mod.db.profile.filter.AH.expired = this.checked; end; info.checked = mod.db.profile.filter.AH.expired; UIDropDownMenu_AddButton(info, level); -- Make Auction outbid option - info.text = "Auction outbid"; + info.text = L["Auction outbid"]; info.func = function(this) mod.db.profile.filter.AH.outbid = this.checked; end; info.checked = mod.db.profile.filter.AH.outbid; UIDropDownMenu_AddButton(info, level); -- Make Auction successful option - info.text = "Auction successful"; + info.text = L["Auction successful"]; info.func = function(this) mod.db.profile.filter.AH.success = this.checked; end; info.checked = mod.db.profile.filter.AH.success; UIDropDownMenu_AddButton(info, level); -- Make Auction won option - info.text = "Auction won"; + info.text = L["Auction won"]; info.func = function(this) mod.db.profile.filter.AH.won = this.checked; end; info.checked = mod.db.profile.filter.AH.won; UIDropDownMenu_AddButton(info, level); -- Make Other mail with attachments - info.text = "Other mail with attachments"; + info.text = L["Other mail with attachments"]; info.func = function(this) mod.db.profile.filter.normalAttachments = this.checked; end; info.checked = mod.db.profile.filter.normalAttachments; UIDropDownMenu_AddButton(info, level); -- Make Other mail with gold - info.text = "Other mail with gold"; + info.text = L["Other mail with gold"]; info.func = function(this) mod.db.profile.filter.normalMoney = this.checked; end; info.checked = mod.db.profile.filter.normalMoney; UIDropDownMenu_AddButton(info, level); @@ -136,8 +137,8 @@ mod:Open(true, IsShiftKeyDown()); end end); - button.tooltipTitle = "Open all"; - button.tooltip = "Hold |cfffed000shift|r while clicking this button to temporarily override your filters and loot every single mail containing attachments and/or gold.\n\n|cfffed000Right|r click this button to quickly adjust mail opening filters for this profile."; + button.tooltipTitle = L["Open all"]; + button.tooltip = L["Hold |cfffed000shift|r while clicking this button to temporarily override your filters and loot every single mail containing attachments and/or gold.\n\n|cfffed000Right|r click this button to quickly adjust mail opening filters for this profile."]; button:SetScript("OnEnter", function(self) if MailOpener.db.profile.general.showHelpTooltips then GameTooltip:SetOwner(self, "ANCHOR_NONE") @@ -380,7 +381,7 @@ if everything and self.db.profile.filter.allowShiftClick then MAIL_OPEN_EVERYTHING = true; - print("|cff15ff00Mail Opener|r: Shift key was held while pressing the open all button. Temporarily overriding filters; going to open every mail with attachments."); + MailOpener:Print(L["Shift key was held while pressing the open all button. Temporarily overriding filters; going to open every mail with attachments."]); else MAIL_OPEN_EVERYTHING = nil; end @@ -392,7 +393,7 @@ self:OpenNext(); else if MailOpener.db.profile.notifications.mailboxIsEmpty then - print("|cffff0000There is currently no mail available.|r"); + print(L["|cffff0000There is currently no mail available.|r"]); end self:Debug("MO_OPEN_COMPLETE"); @@ -431,16 +432,20 @@ end function mod:OpenMail(index) - if index > 0 then + if index and index > 0 then -- LUA arrays start at 1, so mail with index 0 doesn't exist, so we're finished local sender, subject, gold, cod, _, items, _, _, _, _, isGM = select(3, GetInboxHeaderInfo(index)); local auctionMailType = self:GetAuctionMailType(subject); + if not subject then subject = ""; end + + local skippingString = L["Skipping %d: %s (%s)"]; + if isGM then - -- GM Mail + -- Blizzard Mail if MailOpener.db.profile.notifications.skipped.all and MailOpener.db.profile.notifications.skipped.GMMail then - print("Skipping " .. index .. ": " .. subject .. " (GM mail)"); + print(skippingString:format(index, subject, L["Blizzard mail"])); end self:OpenNext(); @@ -449,7 +454,7 @@ elseif cod and cod > 0 then -- Cost on delivery if MailOpener.db.profile.notifications.skipped.all and MailOpener.db.profile.notifications.skipped.COD then - print("Skipping " .. index .. ": " .. subject .. " (C.O.D.)"); + print(skippingString:format(index, subject, L["C.O.D."])); end self:OpenNext(); @@ -468,7 +473,7 @@ if inventoryFull and not MAIL_OPEN_EVERYTHING and not MailOpener.db.profile.general.continueOpeningStackableItems and items and items > 0 then if MailOpener.db.profile.notifications.skipped.all and MailOpener.db.profile.notifications.skipped.inventoryFull then - print("Skipping " .. index .. ": " .. subject .. " (inventory is full)"); + print(skippingString:format(index, subject, L["inventory is full"])); end self:OpenNext(); @@ -476,7 +481,7 @@ return; elseif self.db.profile.keepFreeSpace > 0 and items and ( slotsAvailable - items ) < self.db.profile.keepFreeSpace then if MailOpener.db.profile.notifications.skipped.all and MailOpener.db.profile.notifications.skipped.keepFreeSpaceLimit then - print("Skipping " .. index .. ": " .. subject .. " (keep free space limit)"); + print(skippingString:format(index, subject, L["keep free space limit"])); end self:OpenNext(); @@ -502,7 +507,7 @@ if not MAIL_OPEN_EVERYTHING and not self.db.profile.filter.normalMoney and mailType == "normalGoldMail" then if MailOpener.db.profile.notifications.skipped.all and MailOpener.db.profile.notifications.skipped[mailType] then - print("Skipping " .. index .. ": " .. subject .. " (normal mail with gold)"); + print(skippingString:format(index, subject, L["normal mail with gold"])); end self:OpenNext(); @@ -510,7 +515,7 @@ return; elseif not MAIL_OPEN_EVERYTHING and not self.db.profile.filter.normalAttachments and mailType == "normalItemsMail" then if MailOpener.db.profile.notifications.skipped.all and MailOpener.db.profile.notifications.skipped[mailType] then - print("Skipping " .. index .. ": " .. subject .. " (normal mail with attachments)"); + print(skippingString:format(index, subject, L["normal mail with attachments"])); end self:OpenNext(); @@ -518,7 +523,7 @@ return; elseif not MAIL_OPEN_EVERYTHING and not self.db.profile.filter.AH.expired and mailType == "AHexpired" then if MailOpener.db.profile.notifications.skipped.all and MailOpener.db.profile.notifications.skipped[mailType] then - print("Skipping " .. index .. ": " .. subject .. " (expired auction)"); + print(skippingString:format(index, subject, L["expired auction"])); end self:OpenNext(); @@ -526,7 +531,7 @@ return; elseif not MAIL_OPEN_EVERYTHING and not self.db.profile.filter.AH.success and mailType == "AHsuccess" then if MailOpener.db.profile.notifications.skipped.all and MailOpener.db.profile.notifications.skipped[mailType] then - print("Skipping " .. index .. ": " .. subject .. " (successful auction)"); + print(skippingString:format(index, subject, L["successful auction"])); end self:OpenNext(); @@ -534,7 +539,7 @@ return; elseif not MAIL_OPEN_EVERYTHING and not self.db.profile.filter.AH.won and mailType == "AHwon" then if MailOpener.db.profile.notifications.skipped.all and MailOpener.db.profile.notifications.skipped[mailType] then - print("Skipping " .. index .. ": " .. subject .. " (auction won)"); + print(skippingString:format(index, subject, L["auction won"])); end self:OpenNext(); @@ -542,7 +547,7 @@ return; elseif not MAIL_OPEN_EVERYTHING and not self.db.profile.filter.AH.canceled and mailType == "AHcanceled" then if MailOpener.db.profile.notifications.skipped.all and MailOpener.db.profile.notifications.skipped[mailType] then - print("Skipping " .. index .. ": " .. subject .. " (canceled auction)"); + print(skippingString:format(index, subject, L["canceled auction"])); end self:OpenNext(); @@ -550,7 +555,7 @@ return; elseif not MAIL_OPEN_EVERYTHING and not self.db.profile.filter.AH.outbid and mailType == "AHoutbid" then if MailOpener.db.profile.notifications.skipped.all and MailOpener.db.profile.notifications.skipped[mailType] then - print("Skipping " .. index .. ": " .. subject .. " (outbid on auction)"); + print(skippingString:format(index, subject, L["outbid on auction"])); end self:OpenNext(); @@ -569,9 +574,9 @@ if MailOpener.db.profile.notifications.processed.all and MailOpener.db.profile.notifications.processed[mailType] then if gold and gold > 0 then - print("Processing " .. index .. ": " .. subject .. " (" .. MailOpener:FormatMoney(gold) .. ")"); + print(L["Processing %d: %s (%s)"]:format(index, subject, MailOpener:FormatMoney(gold))); else - print("Processing " .. index .. ": " .. subject); + print(L["Processing %d: %s"]:format(index, subject)); end end @@ -582,11 +587,7 @@ else -- Unknown, probably just text if MailOpener.db.profile.notifications.skipped.all and MailOpener.db.profile.notifications.skipped.other then - if subject then - print("Skipping " .. index .. ": " .. subject); - else - print("Skipping " .. index); - end + print(L["Skipping %d: %s"]:format(index, subject)); end self:OpenNext(); @@ -594,7 +595,7 @@ else -- Finished! if MailOpener.db.profile.notifications.finishedCurrentBatch then - print("Finished opening the current batch."); + print(L["Finished opening the current batch."]); end self:SetOpeningStatus(false); @@ -628,13 +629,13 @@ end local mailRemainingPatterns = { - minutesSeconds = "|cffffffff%d|r/|cffffffff%d|r mail remaining, opening everything will take about |cffffffff%d|r minutes and |cffffffff%d|r seconds (next refresh in |cffffffff%d|r seconds)."; - minutes = "|cffffffff%d|r/|cffffffff%d|r mail remaining, opening everything will take about |cffffffff%d|r minutes (next refresh in |cffffffff%d|r seconds)."; - seconds = "|cffffffff%d|r/|cffffffff%d|r mail remaining, opening everything will take about |cffffffff%d|r seconds (next refresh in |cffffffff%d|r seconds)."; - nextRefresh = "|cffffffff%d|r/|cffffffff%d|r mail remaining, next refresh in |cffffffff%d|r seconds."; - waitingBatch = "|cffffffff%d|r/|cffffffff%d|r mail remaining - waiting for something from the current batch to be opened..."; - waitingSync = "|cffffffff%d|r/|cffffffff%d|r mail remaining - waiting for the next mailbox refresh..."; - soon = "|cffffffff%d|r/|cffffffff%d|r mail remaining - everything will be opened soon..."; + minutesSeconds = L["|cffffffff%d|r/|cffffffff%d|r mail remaining, opening everything will take about |cffffffff%d|r minutes and |cffffffff%d|r seconds (next refresh in |cffffffff%d|r seconds)."], + minutes = L["|cffffffff%d|r/|cffffffff%d|r mail remaining, opening everything will take about |cffffffff%d|r minutes (next refresh in |cffffffff%d|r seconds)."], + seconds = L["|cffffffff%d|r/|cffffffff%d|r mail remaining, opening everything will take about |cffffffff%d|r seconds (next refresh in |cffffffff%d|r seconds)."], + nextRefresh = L["|cffffffff%d|r/|cffffffff%d|r mail remaining, next refresh in |cffffffff%d|r seconds."], + waitingBatch = L["|cffffffff%d|r/|cffffffff%d|r mail remaining - waiting for something from the current batch to be opened..."], + waitingSync = L["|cffffffff%d|r/|cffffffff%d|r mail remaining - waiting for the next mailbox refresh..."], + soon = L["|cffffffff%d|r/|cffffffff%d|r mail remaining - everything will be opened soon..."], }; function mod:UpdateTimer() @@ -739,9 +740,9 @@ opening = openingStatus; if openingStatus then - self.btnOpenAll:SetText("Opening..."); + self.btnOpenAll:SetText(L["Opening..."]); else - self.btnOpenAll:SetText("Open all"); + self.btnOpenAll:SetText(L["Open all"]); end end @@ -749,30 +750,30 @@ local configGroup = { order = 300, type = "group", - name = "Open All", - desc = "Change open all settings.", + name = L["Open All"], + desc = L["Change open all settings."], args = { filters = { order = 10, type = "group", inline = true, - name = "Filters", + name = L["Filters"], args = { description = { order = 10, type = "description", - name = "Toggle which mail the opener should autoloot.", + name = L["Toggle which mail the opener should autoloot."], }, AHHeader = { order = 15, type = "header", - name = "Auction House Mail", + name = L["Auction House Mail"], }, canceled = { order = 20, type = "toggle", - name = "Open all |cfffed000auction canceled|r mail", - desc = "Automatically loot all auction canceled mail from the auction house.", + name = L["Open all |cfffed000auction canceled|r mail"], + desc = L["Automatically loot all auction canceled mail from the auction house."], set = function(i, v) self.db.profile.filter.AH.canceled = v; end, get = function() return self.db.profile.filter.AH.canceled; end, width = "double", @@ -780,8 +781,8 @@ expired = { order = 21, type = "toggle", - name = "Open all |cfffed000auction expired|r mail", - desc = "Automatically loot all auction canceled mail from the auction house.", + name = L["Open all |cfffed000auction expired|r mail"], + desc = L["Automatically loot all auction expired mail from the auction house."], set = function(i, v) self.db.profile.filter.AH.expired = v; end, get = function() return self.db.profile.filter.AH.expired; end, width = "double", @@ -789,8 +790,8 @@ outbid = { order = 22, type = "toggle", - name = "Open all |cfffed000outbid on|r mail", - desc = "Automatically loot all auction outbid mail from the auction house.", + name = L["Open all |cfffed000outbid on|r mail"], + desc = L["Automatically loot all auction outbid mail from the auction house."], set = function(i, v) self.db.profile.filter.AH.outbid = v; end, get = function() return self.db.profile.filter.AH.outbid; end, width = "double", @@ -798,8 +799,8 @@ success = { order = 23, type = "toggle", - name = "Open all |cfffed000auction successful|r mail", - desc = "Automatically loot all auction successful mail from the auction house.", + name = L["Open all |cfffed000auction successful|r mail"], + desc = L["Automatically loot all auction successful mail from the auction house."], set = function(i, v) self.db.profile.filter.AH.success = v; end, get = function() return self.db.profile.filter.AH.success; end, width = "double", @@ -807,8 +808,8 @@ won = { order = 24, type = "toggle", - name = "Open all |cfffed000auction won|r mail", - desc = "Automatically loot all auction won mail from the auction house.", + name = L["Open all |cfffed000auction won|r mail"], + desc = L["Automatically loot all auction won mail from the auction house."], set = function(i, v) self.db.profile.filter.AH.won = v; end, get = function() return self.db.profile.filter.AH.won; end, width = "double", @@ -816,13 +817,13 @@ normalHeader = { order = 30, type = "header", - name = "Remaining Mail", + name = L["Remaining Mail"], }, normalAttachments = { order = 40, type = "toggle", - name = "Normal mail with |cfffed000attachments|r", - desc = "Automatically loot all normal mail containing attachments (CoDs and Blizzard mail will be skipped).", + name = L["Normal mail with |cfffed000attachments|r"], + desc = L["Automatically loot all normal mail containing attachments (CoDs and Blizzard mail will be skipped)."], set = function(i, v) self.db.profile.filter.normalAttachments = v; end, get = function() return self.db.profile.filter.normalAttachments; end, width = "double", @@ -830,8 +831,8 @@ normalMoney = { order = 50, type = "toggle", - name = "Normal mail with |cfffed000gold|r", - desc = "Automatically loot all normal mail containing gold (CoDs and Blizzard mail will be skipped).", + name = L["Normal mail with |cfffed000gold|r"], + desc = L["Automatically loot all normal mail containing gold (CoDs and Blizzard mail will be skipped)."], set = function(i, v) self.db.profile.filter.normalMoney = v; end, get = function() return self.db.profile.filter.normalMoney; end, width = "double", @@ -839,8 +840,8 @@ allowShiftClick = { order = 60, type = "toggle", - name = "Allow shift-clicking of the |cfffed000Open All|r button to autoloot |cfffed000everything|r, regardless of the above filters.", - desc = "Allow shift-clicking of the |cfffed000Open All|r button to autoloot |cfffed000everything|r with attachments, temporarily overriding all filters.", + name = L["Allow shift-clicking of the |cfffed000Open All|r button to autoloot |cfffed000everything|r, regardless of the above filters."], + desc = L["Allow shift-clicking of the |cfffed000Open All|r button to autoloot |cfffed000everything|r with attachments, temporarily overriding all filters."], set = function(i, v) self.db.profile.filter.allowShiftClick = v; end, get = function() return self.db.profile.filter.allowShiftClick; end, width = "full", @@ -852,21 +853,21 @@ order = 20, type = "group", inline = true, - name = "Opening Interval", + name = L["Opening Interval"], args = { description = { order = 10, type = "description", name = function() - local defaultString = "The default behaviour for opening mail is to only do so right after new mail was received from the server. If you close the mailbox or your inventory is full before everything is opened you will have to click the open all button manually or wait for a next mailbox refresh.\n\n"; + local defaultString = L["The default behavior for opening mail is to only do so right after new mail was received from the server. If you close the mailbox or your inventory is full before everything is opened you will have to click the open all button manually or wait for a next mailbox refresh."] .. "\n\n"; local currentSettings = ""; if MailOpener.db.profile.general.continueOpening then - currentSettings = currentSettings .. "Mail Opener will |cff00ff00continue|r to attempt to open the remaining mail every |cfffed000" .. MailOpener.db.profile.general.waitTime .. " seconds|r. "; + currentSettings = currentSettings .. L["Mail Opener will |cff00ff00continue|r to attempt to open the remaining mail every |cfffed000%d seconds|r."]:format(MailOpener.db.profile.general.waitTime) .. " "; else - currentSettings = currentSettings .. "Mail Opener will |cffff0000not|r continue to attempt to open the remaining mail and will only start opening when new mail has just been received from the server. "; + currentSettings = currentSettings .. L["Mail Opener will |cffff0000not|r continue to attempt to open the remaining mail and will only start opening when new mail has just been received from the server."] .. " "; end - currentSettings = currentSettings .. "The first batch after each server refresh will be opened after waiting |cfffed000" .. MailOpener.db.profile.general.initialDelay .. " seconds|r."; + currentSettings = currentSettings .. L["The first batch after each server refresh will be opened after waiting |cfffed000%d seconds|r."]:format(MailOpener.db.profile.general.initialDelay); return defaultString .. currentSettings; end, }, @@ -878,8 +879,8 @@ continueOpening = { order = 20, type = "toggle", - name = "Continue opening mail", - desc = "Continue opening mail at the interval set below, even if the mailbox wasn't refreshed recently.", + name = L["Continue opening mail"], + desc = L["Continue opening mail at the interval set below, even if the mailbox wasn't refreshed recently."], width = "full", get = function() return MailOpener.db.profile.general.continueOpening; end, set = function(i, v) MailOpener.db.profile.general.continueOpening = v; end, @@ -891,8 +892,8 @@ min = 0.5, max = 60, step = 0.5, - name = "Continued Mail Opening Interval", - desc = "Change the interval at which Mail Opener tries to continue opening mail after opening the mailbox. Please note that this setting does not reduce the game's normal 60 seconds wait time for mail.\n\nThe default value is 5 seconds.", + name = L["Continued Mail Opening Interval"], + desc = L["Change the interval at which Mail Opener tries to continue opening mail after opening the mailbox. Please note that this setting does not reduce the game's normal 60 seconds wait time for mail.\n\nThe default value is 5 seconds."], get = function() return MailOpener.db.profile.general.waitTime; end, set = function(i, v) MailOpener.db.profile.general.waitTime = v; end, disabled = function() return (not MailOpener.db.profile.general.continueOpening); end, @@ -904,8 +905,8 @@ min = 0.5, max = 60, step = 0.5, - name = "Initial Mail Opening Delay", - desc = "Change the delay before Mail Opener tries opening mail after opening the mailbox or new mail has been received from the server.\n\nThe default value is 0.5 seconds.", + name = L["Initial Mail Opening Delay"], + desc = L["Change the delay before Mail Opener tries opening mail after opening the mailbox or new mail has been received from the server.\n\nThe default value is 0.5 seconds."], get = function() return MailOpener.db.profile.general.initialDelay; end, set = function(i, v) MailOpener.db.profile.general.initialDelay = v; end, }, @@ -915,12 +916,12 @@ order = 30, type = "group", inline = true, - name = "Keep Free Space", + name = L["Keep Free Space"], args = { description = { order = 10, type = "description", - name = "You can set an amount of bag space you wish to reserve when opening mail. Mail with a higher amount of attachments than available space will be skipped completely with this option set above 0.", + name = L["You can set an amount of bag space you wish to reserve when opening mail. Mail with a higher amount of attachments than available space will be skipped completely with this option set above 0."], }, header = { order = 15, @@ -934,8 +935,8 @@ max = 100, step = 1, width = "double", - name = "Keep free space", - desc = "Change the amount of space to reserve for other things when opening mail. If this option is set higher than 0, mail with a higher amount of attachments than available space will be skipped completely.\n\nE.g. If this is set to 1 and you have a total of 12 slots left then any mail with 12 attachments will be skipped while one with 11 attachments would be opened.", + name = L["Keep free space"], + desc = L["Change the amount of space to reserve for other things when opening mail. If this option is set higher than 0, mail with a higher amount of attachments than available space will be skipped completely.\n\nE.g. If this is set to 1 and you have a total of 12 slots left then any mail with 12 attachments will be skipped while one with 11 attachments would be opened."], set = function(i, v) self.db.profile.keepFreeSpace = v; end, get = function() return self.db.profile.keepFreeSpace; end, }, @@ -950,7 +951,7 @@ description = { order = 10, type = "description", - name = "Change the speed at which mail is opened. You should set the opening speed to the lowest latency you have in a city or experiment with setting it to the minimum.", + name = L["Change the speed at which mail is opened. You should set the opening speed to the lowest latency you have in a city or experiment with setting it to the minimum."], }, header = { order = 15, @@ -964,8 +965,8 @@ max = 2500, step = 5, width = "double", - name = "Open single mail interval", - desc = "Change the mail opening speed (in microseconds) for each mail. Lower may not always be faster.", + name = L["Open single mail interval"], + desc = L["Change the mail opening speed (in microseconds) for each mail. Lower may not always be faster."], get = function() return ( self.db.profile.speed * 1000 ); end, set = function(i, v) self.db.profile.speed = ( v / 1000 ); end, }, @@ -978,5 +979,5 @@ end function mod:Debug(t) - return MailOpener:Debug("|cff00ff00OpenAll|r:" .. t); + return MailOpener:Debug(("|cff00ff00OpenAll|r:%s"):format(t)); end \ No newline at end of file
