Multientry (#7)

* from retail

* from retail

* from retail

* from retail

* from retail

* from retail

* remove new threat functions as they are not well implemented for now
This commit is contained in:
NoM0Re
2024-11-27 12:09:02 +01:00
committed by GitHub
parent eb8221cf89
commit 13f734038d
67 changed files with 3493 additions and 969 deletions
+1
View File
@@ -565,6 +565,7 @@ local globalConditions =
["rangecheck"] = {
display = WeakAuras.newFeatureString .. L["Range Check"],
type = "range",
control = "WeakAurasSpinBox",
events = {"WA_SPELL_RANGECHECK"}
},
["attackabletarget"] = {
+139 -59
View File
@@ -194,52 +194,98 @@ function TestForMultiSelect(trigger, arg)
return test;
end
function ConstructTest(trigger, arg)
local function singleTest(arg, trigger, name, value, operator, use_exact)
local number = tonumber(value)
if(arg.type == "tristate") then
return TestForTriState(trigger, arg);
elseif(arg.type == "multiselect") then
return TestForMultiSelect(trigger, arg);
elseif(arg.type == "toggle") then
return TestForToggle(trigger, arg);
elseif (arg.type == "spell" or arg.type == "item") then
if arg.test then
if arg.showExactOption then
return "("..arg.test:format(value, tostring(use_exact) or "false") ..")";
else
return "("..arg.test:format(value)..")";
end
else
return "(".. name .." and "..name.."==" ..(number or ("\""..(tostring(value) or "").."\""))..")";
end
elseif(arg.test) then
return "("..arg.test:format(tostring(value) or "")..")";
elseif(arg.type == "longstring" and operator) then
return TestForLongString(trigger, arg);
elseif (arg.type == "string" or arg.type == "select") then
return "(".. name .." and "..name.."==" ..(number or ("\""..(tostring(value) or "").."\""))..")";
elseif (arg.type == "number") then
return "(".. name .." and "..name..(operator or "==")..(number or 0) ..")";
else
-- Should be unused
return "(".. name .." and "..name..(operator or "==")..(number or ("\""..(tostring(value) or 0).."\""))..")";
end
end
function ConstructTest(trigger, arg, testGroups, preambleGroups)
local test
local preamble
local name = arg.name;
if(arg.hidden or arg.type == "tristate" or arg.type == "toggle" or (arg.type == "multiselect" and trigger["use_"..name] ~= nil) or ((trigger["use_"..name] or arg.required) and trigger[name])) then
local number = tonumber(trigger[name]);
if(arg.type == "tristate") then
test = TestForTriState(trigger, arg);
elseif(arg.type == "multiselect") then
test = TestForMultiSelect(trigger, arg);
elseif(arg.type == "toggle") then
test = TestForToggle(trigger, arg);
elseif (arg.type == "spell") then
if arg.test then
if arg.showExactOption then
test = "("..arg.test:format(trigger[name], tostring(trigger["use_exact_" .. name]) or "false") ..")";
else
test = "("..arg.test:format(trigger[name])..")";
end
else
test = "(".. name .." and "..name.."==" ..(number or "\""..(trigger[name] or "").."\"")..")";
end
elseif(arg.test) then
test = "("..arg.test:format(tostring(trigger[name]) or "")..")";
elseif(arg.type == "longstring" and trigger[name.."_operator"]) then
test = TestForLongString(trigger, arg);
elseif (arg.type == "string" or arg.type == "select" or arg.type == "item") and not (type(trigger[name]) == "table") then
test = "(".. name .." and "..name.."==" ..(number or "\""..(trigger[name] or "").."\"")..")";
else
-- if (type(trigger[name]) == "table") or type(trigger[name.."_operator"]) == "table" then
-- 3.4.0 auras fix
if (type(trigger[name]) == "table") then
trigger[name] = trigger[name][1] or "error";
end
if (type(trigger[name.."_operator"]) == "table") then
trigger[name.."_operator"] = trigger[name.."_operator"][1] or "error";
end
test = "(".. name .." and "..name..(trigger[name.."_operator"] or "==")..(number or ("\""..(trigger[name])) or ("".."\""))..")";
if arg.preamble then
if not arg.preambleGroup or not preambleGroups[arg.preambleGroup] then
preamble = arg.preamble:format(trigger[name] or "")
end
if arg.preambleGroup then
preambleGroups[arg.preambleGroup] = true
end
end
if arg.preamble then
preamble = arg.preamble:format(trigger[name] or "")
if arg.hidden
or arg.type == "tristate"
or arg.type == "toggle"
or (arg.type == "multiselect" and trigger["use_"..name] ~= nil)
or ((trigger["use_"..name] or arg.required) and trigger[name])
then
if arg.multiEntry then
if type(trigger[name]) == "table" and #trigger[name] > 0 then
test = ""
for i, value in ipairs(trigger[name]) do
local operator = name and type(trigger[name.."_operator"]) == "table" and trigger[name.."_operator"][i]
local use_exact = name and type(trigger["use_exact_" .. name]) == "table" and trigger["use_exact_" .. name][i]
if arg.multiEntry.operator == "preamble" then
preamble = preamble and (preamble .. "\n") or ""
preamble = preamble .. arg.multiEntry.preambleAdd:format(value)
else
local single = singleTest(arg, trigger, name, value, operator, use_exact)
if single then
if test ~= "" then
test = test .. arg.multiEntry.operator
end
test = test .. single
end
end
end
if arg.multiEntry.operator == "preamble" then
test = arg.test
end
if test == "" then
test = nil
else
test = "(" .. test .. ")"
end
end
else
local value = trigger[name]
local operator = name and trigger[name.."_operator"]
local use_exact = name and trigger["use_exact_" .. name]
test = singleTest(arg, trigger, name, value, operator, use_exact)
end
end
if (test == "(true)") then
if not test or test == "(true)" or arg.testGroup and testGroups[arg.testGroup] then
return nil, preamble
end
@@ -253,9 +299,17 @@ function ConstructFunction(prototype, trigger)
local input;
if (prototype.statesParameter) then
input = {"state", "event"};
if prototype.countEvents then
input = {"state", "counter", "event"};
else
input = {"state", "event"};
end
else
input = {"event"};
if prototype.countEvents then
input = {"counter", "event"};
else
input = {"event"};
end
end
local required = {};
@@ -264,6 +318,9 @@ function ConstructFunction(prototype, trigger)
local store = {};
local init;
local preambles = "\n"
local orConjunctionGroups = {}
local preambleGroups = {}
local testGroups = {}
if(prototype.init) then
init = prototype.init(trigger);
else
@@ -289,12 +346,17 @@ function ConstructFunction(prototype, trigger)
if (arg.store) then
tinsert(store, name);
end
local test, preamble = ConstructTest(trigger, arg);
local test, preamble = ConstructTest(trigger, arg, testGroups, preambleGroups);
if (test) then
if(arg.required) then
tinsert(required, test);
else
tinsert(tests, test);
if arg.orConjunctionGroup then
orConjunctionGroups[arg.orConjunctionGroup] = orConjunctionGroups[arg.orConjunctionGroup] or {}
tinsert(orConjunctionGroups[arg.orConjunctionGroup], test)
else
tinsert(tests, test);
end
end
if(arg.debug) then
tinsert(debug, arg.debug:format(trigger[name]));
@@ -306,34 +368,51 @@ function ConstructFunction(prototype, trigger)
end
end
end
local ret = preambles .. "return function("..tconcat(input, ", ")..")\n";
ret = ret..(init or "");
ret = ret..(#debug > 0 and tconcat(debug, "\n") or "");
for _, orConjunctionGroup in pairs(orConjunctionGroups) do
tinsert(tests, "("..table.concat(orConjunctionGroup, " or ")..")")
end
ret = ret.."if(";
ret = ret..((#required > 0) and tconcat(required, " and ").." and " or "");
ret = ret..(#tests > 0 and tconcat(tests, " and ") or "true");
ret = ret..") then\n";
local ret = {preambles .. "return function("..tconcat(input, ", ")..")\n"}
if init then
table.insert(ret, init)
end
if #debug > 0 then
table.insert(ret, tconcat(debug, "\n") or "")
end
table.insert(ret, "if("..((#required > 0) and tconcat(required, " and ").." and " or ""))
table.insert(ret, #tests > 0 and tconcat(tests, " and ") or "true")
table.insert(ret, ") then\n")
if(#debug > 0) then
ret = ret.."print('ret: true');\n";
table.insert(ret, "print('ret: true');\n")
end
if (prototype.statesParameter == "all") then
ret = ret .. " state[cloneId] = state[cloneId] or {}\n"
ret = ret .. " state = state[cloneId]\n"
ret = ret .. " state.changed = true\n"
table.insert(ret, " state[cloneId] = state[cloneId] or {}\n")
table.insert(ret, " state = state[cloneId]\n")
table.insert(ret, " state.changed = true\n")
end
if prototype.countEvents then
table.insert(ret, " local count = counter:GetNext()\n")
if trigger.use_count and type(trigger.count) == "string" and trigger.count ~= "" then
table.insert(ret, " local match = counter:Match()")
table.insert(ret, " if not match then return false end\n")
end
table.insert(ret, " state.count = count\n")
table.insert(ret, " state.changed = true\n")
end
for _, v in ipairs(store) do
ret = ret .. " if (state." .. v .. " ~= " .. v .. ") then\n"
ret = ret .. " state." .. v .. " = " .. v .. "\n"
ret = ret .. " state.changed = true\n"
ret = ret .. " end\n"
table.insert(ret, " if (state." .. v .. " ~= " .. v .. ") then\n")
table.insert(ret, " state." .. v .. " = " .. v .. "\n")
table.insert(ret, " state.changed = true\n")
table.insert(ret, " end\n")
end
ret = ret.."return true else return false end end";
table.insert(ret, "return true else return false end end")
return ret;
return table.concat(ret);
end
function Private.EndEvent(id, triggernum, force, state)
@@ -921,6 +1000,7 @@ function HandleEvent(frame, event, arg1, arg2, ...)
timer:ScheduleTimer(function()
Private.StartProfileSystem("generictrigger WA_DELAYED_PLAYER_ENTERING_WORLD");
HandleEvent(frame, "WA_DELAYED_PLAYER_ENTERING_WORLD");
Private.ScanForLoads(nil, "WA_DELAYED_PLAYER_ENTERING_WORLD")
Private.CheckCooldownReady();
Private.StopProfileSystem("generictrigger WA_DELAYED_PLAYER_ENTERING_WORLD");
Private.PreShowModels()
+1 -1
View File
@@ -8,7 +8,7 @@ WeakAuras.halfWidth = WeakAuras.normalWidth / 2
WeakAuras.doubleWidth = WeakAuras.normalWidth * 2
local versionStringFromToc = GetAddOnMetadata("WeakAuras", "Version")
local versionString = "4.1.0"
local versionString = "4.1.1"
local buildTime = "20240701180000"
local isAwesomeEnabled = C_NamePlate and C_NamePlate.GetNamePlateForUnit or false
+32
View File
@@ -258,6 +258,8 @@ L["Buru the Gorger"] = "Buru the Gorger"
L["Can be used for e.g. checking if \"boss1target\" is the same as \"player\"."] = "Kann genutzt werden um z.B zu checken ob \"Ziel\" dieselbe Einheit ist wie \"Spieler\""
L["Cancel"] = "Abbrechen"
--[[Translation missing --]]
L["Case Insensitive"] = "Case Insensitive"
--[[Translation missing --]]
L["Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."] = "Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."
L["Cast"] = "Zauberwirken"
L["Cast Bar"] = "Zauberleiste"
@@ -367,6 +369,8 @@ L["Debuff Class"] = "Debuff Class"
L["Debuff Class Icon"] = "Debuff Class Icon"
--[[Translation missing --]]
L["Debuff Type"] = "Debuff Type"
--[[Translation missing --]]
L["Defensive Stats"] = "Defensive Stats"
L["Deflect"] = "Umlenken"
L["Desaturate"] = "Entsättigen"
L["Desaturate Background"] = "Hintergrund entsättigen"
@@ -378,6 +382,8 @@ L["Dest Raid Mark"] = "Zielmarkierung"
L["Destination Affiliation"] = "Destination Affiliation"
--[[Translation missing --]]
L["Destination GUID"] = "Destination GUID"
--[[Translation missing --]]
L["Destination Info"] = "Destination Info"
L["Destination Name"] = "Zielname"
--[[Translation missing --]]
L["Destination NPC Id"] = "Destination NPC Id"
@@ -458,6 +464,8 @@ L["Entering/Leaving Combat"] = "Kampf Betreten/Verlassen"
L["Entry Order"] = "Entry Order"
L["Environment Type"] = "Umgebungstyp"
L["Environmental"] = "Umgebung (ENVIRONMENTAL)"
--[[Translation missing --]]
L["Equipment"] = "Equipment"
L["Equipment Set"] = "Ausrüstungsset"
L["Equipment Set Equipped"] = "Angelegtes Ausrüstungsset"
L["Equipment Slot"] = "Ausrüstungsplatz"
@@ -561,6 +569,8 @@ L["Garr"] = "Garr"
--[[Translation missing --]]
L["Gehennas"] = "Gehennas"
--[[Translation missing --]]
L["General"] = "General"
--[[Translation missing --]]
L["General Rajaxx"] = "General Rajaxx"
L["Glancing"] = "Gestreift (GLANCING)"
L["Global Cooldown"] = "Globale Abklingzeit"
@@ -663,6 +673,8 @@ L["Instakill"] = "Sofortiger Tod (INSTAKILL)"
L["Instance"] = "Instanz"
L["Instance Difficulty"] = "Instanzschwierigkeit"
--[[Translation missing --]]
L["Instance Info"] = "Instance Info"
--[[Translation missing --]]
L["Instance Size Type"] = "Instance Size Type"
L["Instance Type"] = "Instanztyp"
--[[Translation missing --]]
@@ -805,6 +817,10 @@ L["Matches (Pattern)"] = "Abgleichen (Muster)"
L["Max Char "] = "Max Char "
--[[Translation missing --]]
L["Max Charges"] = "Max Charges"
--[[Translation missing --]]
L["Max Health"] = "Max Health"
--[[Translation missing --]]
L["Max Power"] = "Max Power"
L["Maximum"] = "Maximum"
--[[Translation missing --]]
L["Maximum Estimate"] = "Maximum Estimate"
@@ -823,6 +839,8 @@ L["Minimum Estimate"] = "Minimum Estimate"
--[[Translation missing --]]
L["Minus (Small Nameplate)"] = "Minus (Small Nameplate)"
L["Mirror"] = "Spiegel"
--[[Translation missing --]]
L["Miscellaneous"] = "Miscellaneous"
L["Miss"] = "Verfehlen"
L["Miss Type"] = "Verfehlengrund"
L["Missed"] = "Verfehlt (MISSED)"
@@ -1017,6 +1035,8 @@ L["Power Type"] = "Ressourcentyp"
L["Precision"] = "Precision"
L["Preset"] = "Standard"
--[[Translation missing --]]
L["Primary Stats"] = "Primary Stats"
--[[Translation missing --]]
L["Princess Huhuran"] = "Princess Huhuran"
--[[Translation missing --]]
L["Print Profiling Results"] = "Print Profiling Results"
@@ -1100,6 +1120,8 @@ L["Requested display not authorized"] = "Angeforderte Anzeige ist nicht autorisi
L["Requesting display information from %s ..."] = "Requesting display information from %s ..."
L["Require Valid Target"] = "Erfordert gültiges Ziel"
L["Resist"] = "Widerstehen"
--[[Translation missing --]]
L["Resistances"] = "Resistances"
L["Resisted"] = "Widerstanden (RESISTED)"
L["Resolve collisions dialog"] = [=[
Ein aktiviertes externes Addon definiert |cFF8800FFWeakAuras|r-Anzeigen, die den selben Namen besitzen wie bereits existierende Anzeigen.
@@ -1171,6 +1193,8 @@ L["Screen/Parent Group"] = "Bildschirm/Elterngruppe"
L["Second"] = "Second"
--[[Translation missing --]]
L["Second Value of Tooltip Text"] = "Second Value of Tooltip Text"
--[[Translation missing --]]
L["Secondary Stats"] = "Secondary Stats"
L["Seconds"] = "Sekunden"
L["Select Frame"] = "Frame auswählen"
--[[Translation missing --]]
@@ -1240,6 +1264,8 @@ L["Source"] = "Source"
L["Source Affiliation"] = "Source Affiliation"
--[[Translation missing --]]
L["Source GUID"] = "Source GUID"
--[[Translation missing --]]
L["Source Info"] = "Source Info"
L["Source Name"] = "Quellname"
--[[Translation missing --]]
L["Source NPC Id"] = "Source NPC Id"
@@ -1261,6 +1287,8 @@ L["Spark"] = "Spark"
L["Spec Role"] = "Spec Role"
--[[Translation missing --]]
L["Specific Type"] = "Specific Type"
--[[Translation missing --]]
L["Specific Currency ID"] = "Specific Currency ID"
L["Specific Unit"] = "Konkrete Einheit"
L["Spell"] = "Zauber"
L["Spell (Building)"] = "Zauber, Gebäude (SPELL_BUILDING)"
@@ -1302,6 +1330,8 @@ L["Strength"] = "Stärke"
--[[Translation missing --]]
L["String"] = "String"
--[[Translation missing --]]
L["Subevent Info"] = "Subevent Info"
--[[Translation missing --]]
L["Subtract Cast"] = "Subtract Cast"
--[[Translation missing --]]
L["Subtract Channel"] = "Subtract Channel"
@@ -1342,6 +1372,8 @@ L["Tanking And Highest"] = "Höchster und Aggro"
L["Tanking But Not Highest"] = "Aggro aber nicht höchste"
L["Target"] = "Ziel"
L["Targeted"] = "Anvisiert"
--[[Translation missing --]]
L["Tertiary Stats"] = "Tertiary Stats"
L["Text"] = "Text"
--[[Translation missing --]]
L["Thaddius"] = "Thaddius"
+14
View File
@@ -277,6 +277,7 @@ L["Debuff"] = "Debuff"
L["Debuff Class"] = "Debuff Class"
L["Debuff Class Icon"] = "Debuff Class Icon"
L["Debuff Type"] = "Debuff Type"
L["Defensive Stats"] = "Defensive Stats"
L["Deflect"] = "Deflect"
L["Desaturate"] = "Desaturate"
L["Desaturate Background"] = "Desaturate Background"
@@ -286,6 +287,7 @@ L["Description"] = "Description"
L["Dest Raid Mark"] = "Dest Raid Mark"
L["Destination Affiliation"] = "Destination Affiliation"
L["Destination GUID"] = "Destination GUID"
L["Destination Info"] = "Destination Info"
L["Destination Name"] = "Destination Name"
L["Destination NPC Id"] = "Destination NPC Id"
L["Destination Object Type"] = "Destination Object Type"
@@ -340,6 +342,7 @@ L["Entering/Leaving Combat"] = "Entering/Leaving Combat"
L["Entry Order"] = "Entry Order"
L["Environment Type"] = "Environment Type"
L["Environmental"] = "Environmental"
L["Equipment"] = "Equipment"
L["Equipment Set"] = "Equipment Set"
L["Equipment Set Equipped"] = "Equipment Set Equipped"
L["Equipment Slot"] = "Equipment Slot"
@@ -409,6 +412,7 @@ L["Gahz'ranka"] = "Gahz'ranka"
L["Gained"] = "Gained"
L["Garr"] = "Garr"
L["Gehennas"] = "Gehennas"
L["General"] = "General"
L["General Rajaxx"] = "General Rajaxx"
L["Glancing"] = "Glancing"
L["Global Cooldown"] = "Global Cooldown"
@@ -485,6 +489,7 @@ L["Inherited"] = "Inherited"
L["Instakill"] = "Instakill"
L["Instance"] = "Instance"
L["Instance Difficulty"] = "Instance Difficulty"
L["Instance Info"] = "Instance Info"
L["Instance Size Type"] = "Instance Size Type"
L["Instance Type"] = "Instance Type"
L["Instructor Razuvious"] = "Instructor Razuvious"
@@ -575,6 +580,8 @@ L["Match Count per Unit"] = "Match Count per Unit"
L["Matches (Pattern)"] = "Matches (Pattern)"
L["Max Char "] = "Max Char "
L["Max Charges"] = "Max Charges"
L["Max Health"] = "Max Health"
L["Max Power"] = "Max Power"
L["Maximum"] = "Maximum"
L["Maximum Estimate"] = "Maximum Estimate"
L["Medium"] = "Medium"
@@ -587,6 +594,7 @@ L["Minimum"] = "Minimum"
L["Minimum Estimate"] = "Minimum Estimate"
L["Minus (Small Nameplate)"] = "Minus (Small Nameplate)"
L["Mirror"] = "Mirror"
L["Miscellaneous"] = "Miscellaneous"
L["Miss"] = "Miss"
L["Miss Type"] = "Miss Type"
L["Missed"] = "Missed"
@@ -720,6 +728,7 @@ L["Power (%)"] = "Power (%)"
L["Power Type"] = "Power Type"
L["Precision"] = "Precision"
L["Preset"] = "Preset"
L["Primary Stats"] = "Primary Stats"
L["Princess Huhuran"] = "Princess Huhuran"
L["Print Profiling Results"] = "Print Profiling Results"
L["Profiling already started."] = "Profiling already started."
@@ -775,6 +784,7 @@ L["Requested display not authorized"] = "Requested display not authorized"
L["Requesting display information from %s ..."] = "Requesting display information from %s ..."
L["Require Valid Target"] = "Require Valid Target"
L["Resist"] = "Resist"
L["Resistances"] = "Resistances"
L["Resisted"] = "Resisted"
L["Resolve collisions dialog"] = "Resolve collisions dialog"
L["Resolve collisions dialog singular"] = "Resolve collisions dialog singular"
@@ -814,6 +824,7 @@ L["Scenario (Normal)"] = "Scenario (Normal)"
L["Screen/Parent Group"] = "Screen/Parent Group"
L["Second"] = "Second"
L["Second Value of Tooltip Text"] = "Second Value of Tooltip Text"
L["Secondary Stats"] = "Secondary Stats"
L["Seconds"] = "Seconds"
L["Select Frame"] = "Select Frame"
L["Separator"] = "Separator"
@@ -861,6 +872,7 @@ L["Sound by Kit ID"] = "Sound by Kit ID"
L["Source"] = "Source"
L["Source Affiliation"] = "Source Affiliation"
L["Source GUID"] = "Source GUID"
L["Source Info"] = "Source Info"
L["Source Name"] = "Source Name"
L["Source NPC Id"] = "Source NPC Id"
L["Source Object Type"] = "Source Object Type"
@@ -905,6 +917,7 @@ L["Stolen"] = "Stolen"
L["Stop"] = "Stop"
L["Strength"] = "Strength"
L["String"] = "String"
L["Subevent Info"] = "Subevent Info"
L["Subtract Cast"] = "Subtract Cast"
L["Subtract Channel"] = "Subtract Channel"
L["Subtract GCD"] = "Subtract GCD"
@@ -932,6 +945,7 @@ L["Tanking And Highest"] = "Tanking And Highest"
L["Tanking But Not Highest"] = "Tanking But Not Highest"
L["Target"] = "Target"
L["Targeted"] = "Targeted"
L["Tertiary Stats"] = "Tertiary Stats"
L["Text"] = "Text"
L["Thaddius"] = "Thaddius"
L["The aura has overwritten the global '%s', this might affect other auras."] = "The aura has overwritten the global '%s', this might affect other auras."
+16
View File
@@ -252,6 +252,7 @@ L["Buru the Gorger"] = "Buru the Gorger"
L["Can be used for e.g. checking if \"boss1target\" is the same as \"player\"."] = "Can be used for e.g. checking if \"boss1target\" is the same as \"player\"."
--[[Translation missing --]]
L["Cancel"] = "Cancel"
L["Case Insensitive"] = "Insensible a mayúsculas/minúsculas"
--[[Translation missing --]]
L["Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."] = "Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."
L["Cast"] = "Lanzar Hechizo"
@@ -377,6 +378,7 @@ L["Debuff"] = "Perjuicio"
L["Debuff Class"] = "Clase del perjuicio"
L["Debuff Class Icon"] = "Icono de clase del perjuicio"
L["Debuff Type"] = "Tipo de Perjuicio"
L["Defensive Stats"] = "Estadísticas defensivas"
L["Deflect"] = "Desviar"
--[[Translation missing --]]
L["Desaturate"] = "Desaturate"
@@ -393,6 +395,7 @@ L["Dest Raid Mark"] = "Dest Raid Mark"
L["Destination Affiliation"] = "Destination Affiliation"
--[[Translation missing --]]
L["Destination GUID"] = "Destination GUID"
L["Destination Info"] = "Info del destino"
L["Destination Name"] = "Nombre del Destino"
--[[Translation missing --]]
L["Destination NPC Id"] = "Destination NPC Id"
@@ -485,6 +488,7 @@ L["Entering/Leaving Combat"] = "Entering/Leaving Combat"
L["Entry Order"] = "Entry Order"
L["Environment Type"] = "Tipo de Entorno"
L["Environmental"] = "Ambiental"
L["Equipment"] = "Equipo"
--[[Translation missing --]]
L["Equipment Set"] = "Equipment Set"
--[[Translation missing --]]
@@ -602,6 +606,7 @@ L["Gained"] = "Obtenido"
L["Garr"] = "Garr"
--[[Translation missing --]]
L["Gehennas"] = "Gehennas"
L["General"] = "General"
--[[Translation missing --]]
L["General Rajaxx"] = "General Rajaxx"
L["Glancing"] = "de refilón"
@@ -724,6 +729,7 @@ L["Instakill"] = "Muerte Instantanea"
L["Instance"] = "Instance"
--[[Translation missing --]]
L["Instance Difficulty"] = "Instance Difficulty"
L["Instance Info"] = "Info de estancia"
--[[Translation missing --]]
L["Instance Size Type"] = "Instance Size Type"
L["Instance Type"] = "Tipo de Instancia"
@@ -884,6 +890,8 @@ L["Matches (Pattern)"] = "Corresponde (Patrón)"
L["Max Char "] = "Max Char "
--[[Translation missing --]]
L["Max Charges"] = "Max Charges"
L["Max Health"] = "Salud máx."
L["Max Power"] = "Poder máx."
--[[Translation missing --]]
L["Maximum"] = "Maximum"
--[[Translation missing --]]
@@ -905,6 +913,7 @@ L["Minimum Estimate"] = "Minimum Estimate"
L["Minus (Small Nameplate)"] = "Minus (Small Nameplate)"
--[[Translation missing --]]
L["Mirror"] = "Mirror"
L["Miscellaneous"] = "Misceláneos"
L["Miss"] = "Fallo"
L["Miss Type"] = "Tipo de Fallo"
L["Missed"] = "Fallado"
@@ -1121,6 +1130,7 @@ L["Power Type"] = "Tipo de Poder"
--[[Translation missing --]]
L["Precision"] = "Precision"
L["Preset"] = "Predefinido"
L["Primary Stats"] = "Estadísticas primarias"
--[[Translation missing --]]
L["Princess Huhuran"] = "Princess Huhuran"
--[[Translation missing --]]
@@ -1216,6 +1226,7 @@ L["Requested display not authorized"] = "El aura requerida no está autorizada"
L["Requesting display information from %s ..."] = "Requesting display information from %s ..."
L["Require Valid Target"] = "Requiere Objetivo Válido"
L["Resist"] = "Resistir"
L["Resistances"] = "Resistencias"
L["Resisted"] = "Resistido"
L["Resolve collisions dialog"] = "Resolver colisiones en dialogos"
L["Resolve collisions dialog singular"] = "Resolver colisiones en dialogos singulares"
@@ -1281,6 +1292,7 @@ L["Screen/Parent Group"] = "Screen/Parent Group"
L["Second"] = "Second"
--[[Translation missing --]]
L["Second Value of Tooltip Text"] = "Second Value of Tooltip Text"
L["Secondary Stats"] = "Estadísticas secundarias"
L["Seconds"] = "Segundos"
--[[Translation missing --]]
L["Select Frame"] = "Select Frame"
@@ -1363,6 +1375,7 @@ L["Source"] = "Source"
L["Source Affiliation"] = "Source Affiliation"
--[[Translation missing --]]
L["Source GUID"] = "Source GUID"
L["Source Info"] = "Info de la fuente"
L["Source Name"] = "Nombre de Origen"
--[[Translation missing --]]
L["Source NPC Id"] = "Source NPC Id"
@@ -1384,6 +1397,7 @@ L["Spacing"] = "Espaciado"
L["Spark"] = "Spark"
--[[Translation missing --]]
L["Spec Role"] = "Spec Role"
L["Specific Currency ID"] = "ID de moneda específica"
--[[Translation missing --]]
L["Specific Type"] = "Specific Type"
L["Specific Unit"] = "Unidad Específica"
@@ -1437,6 +1451,7 @@ L["Stop"] = "Stop"
L["Strength"] = "Strength"
--[[Translation missing --]]
L["String"] = "String"
L["Subevent Info"] = "Info de subevento"
--[[Translation missing --]]
L["Subtract Cast"] = "Subtract Cast"
--[[Translation missing --]]
@@ -1480,6 +1495,7 @@ L["Tanking But Not Highest"] = "Tanqueando pero no el mas alto"
L["Target"] = "Objetivo"
--[[Translation missing --]]
L["Targeted"] = "Targeted"
L["Tertiary Stats"] = "Estadísticas terciarias"
--[[Translation missing --]]
L["Text"] = "Text"
--[[Translation missing --]]
+16
View File
@@ -252,6 +252,7 @@ L["Buru the Gorger"] = "Buru the Gorger"
L["Can be used for e.g. checking if \"boss1target\" is the same as \"player\"."] = "Can be used for e.g. checking if \"boss1target\" is the same as \"player\"."
--[[Translation missing --]]
L["Cancel"] = "Cancel"
L["Case Insensitive"] = "Insensible a mayúsculas/minúsculas"
--[[Translation missing --]]
L["Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."] = "Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."
L["Cast"] = "Lanzar hechizo"
@@ -372,6 +373,7 @@ L["Debuff Class"] = "Debuff Class"
L["Debuff Class Icon"] = "Debuff Class Icon"
--[[Translation missing --]]
L["Debuff Type"] = "Debuff Type"
L["Defensive Stats"] = "Estadísticas defensivas"
L["Deflect"] = "Desviar"
L["Desaturate"] = "Desaturar"
L["Desaturate Background"] = "Desaturar fondo"
@@ -385,6 +387,7 @@ L["Dest Raid Mark"] = "Dest Raid Mark"
L["Destination Affiliation"] = "Destination Affiliation"
--[[Translation missing --]]
L["Destination GUID"] = "Destination GUID"
L["Destination Info"] = "Info del destino"
L["Destination Name"] = "Nombre de destino"
--[[Translation missing --]]
L["Destination NPC Id"] = "Destination NPC Id"
@@ -474,6 +477,7 @@ L["Entering/Leaving Combat"] = "Entrando/abandonando batalla"
L["Entry Order"] = "Entry Order"
L["Environment Type"] = "Tipo de entorno"
L["Environmental"] = "Ambiental"
L["Equipment"] = "Equipo"
L["Equipment Set"] = "Equipamiento"
--[[Translation missing --]]
L["Equipment Set Equipped"] = "Equipment Set Equipped"
@@ -584,6 +588,7 @@ L["Gained"] = "Obtenido"
L["Garr"] = "Garr"
--[[Translation missing --]]
L["Gehennas"] = "Gehennas"
L["General"] = "General"
--[[Translation missing --]]
L["General Rajaxx"] = "General Rajaxx"
L["Glancing"] = "Observar de refilón"
@@ -701,6 +706,7 @@ L["Instakill"] = "Muerte instantánea "
L["Instance"] = "Instancia"
--[[Translation missing --]]
L["Instance Difficulty"] = "Instance Difficulty"
L["Instance Info"] = "Info de estancia"
--[[Translation missing --]]
L["Instance Size Type"] = "Instance Size Type"
L["Instance Type"] = "Tipo de instancia"
@@ -853,6 +859,8 @@ L["Matches (Pattern)"] = "Coincidencias (Patrones)"
L["Max Char "] = "Max Char "
--[[Translation missing --]]
L["Max Charges"] = "Max Charges"
L["Max Health"] = "Salud máx."
L["Max Power"] = "Poder máx."
--[[Translation missing --]]
L["Maximum"] = "Maximum"
--[[Translation missing --]]
@@ -874,6 +882,7 @@ L["Minimum Estimate"] = "Minimum Estimate"
L["Minus (Small Nameplate)"] = "Minus (Small Nameplate)"
--[[Translation missing --]]
L["Mirror"] = "Mirror"
L["Miscellaneous"] = "Misceláneos"
L["Miss"] = "Fallo"
L["Miss Type"] = "Tipo de fallo"
L["Missed"] = "Fallado"
@@ -1081,6 +1090,7 @@ L["Power Type"] = "Tipo de poder"
--[[Translation missing --]]
L["Precision"] = "Precision"
L["Preset"] = "Predefinido"
L["Primary Stats"] = "Estadísticas primarias"
--[[Translation missing --]]
L["Princess Huhuran"] = "Princess Huhuran"
--[[Translation missing --]]
@@ -1170,6 +1180,7 @@ L["Requested display not authorized"] = "El aura requerida no está autorizada"
L["Requesting display information from %s ..."] = "Requesting display information from %s ..."
L["Require Valid Target"] = "Requiere un objetivo válido"
L["Resist"] = "Resistir"
L["Resistances"] = "Resistencias"
L["Resisted"] = "Resistido"
L["Resolve collisions dialog"] = "Resolver colisiones en diálogos"
L["Resolve collisions dialog singular"] = "Resolver colisiones en diálogos singulares"
@@ -1226,6 +1237,7 @@ L["Screen/Parent Group"] = "Pantalla/Grupo primario"
L["Second"] = "Second"
--[[Translation missing --]]
L["Second Value of Tooltip Text"] = "Second Value of Tooltip Text"
L["Secondary Stats"] = "Estadísticas secundarias"
L["Seconds"] = "Segundos"
L["Select Frame"] = "Seleccionar macro"
--[[Translation missing --]]
@@ -1304,6 +1316,7 @@ L["Source"] = "Source"
L["Source Affiliation"] = "Source Affiliation"
--[[Translation missing --]]
L["Source GUID"] = "Source GUID"
L["Source Info"] = "Info de la fuente"
L["Source Name"] = "Nombre de origen"
--[[Translation missing --]]
L["Source NPC Id"] = "Source NPC Id"
@@ -1325,6 +1338,7 @@ L["Spacing"] = "Espaciar"
L["Spark"] = "Spark"
--[[Translation missing --]]
L["Spec Role"] = "Spec Role"
L["Specific Currency ID"] = "ID de moneda específica"
--[[Translation missing --]]
L["Specific Type"] = "Specific Type"
L["Specific Unit"] = "Unidad específica"
@@ -1374,6 +1388,7 @@ L["Stop"] = "Stop"
L["Strength"] = "Strength"
--[[Translation missing --]]
L["String"] = "String"
L["Subevent Info"] = "Info de subevento"
--[[Translation missing --]]
L["Subtract Cast"] = "Subtract Cast"
--[[Translation missing --]]
@@ -1416,6 +1431,7 @@ L["Tanking But Not Highest"] = "Tanqueando - No el más alto"
L["Target"] = "Objetivo"
--[[Translation missing --]]
L["Targeted"] = "Targeted"
L["Tertiary Stats"] = "Estadísticas terciarias"
--[[Translation missing --]]
L["Text"] = "Text"
L["Thaddius"] = "Thaddius"
+30
View File
@@ -233,6 +233,8 @@ L["Buru the Gorger"] = "Buru the Gorger"
L["Can be used for e.g. checking if \"boss1target\" is the same as \"player\"."] = "Peut être utilisé pour par exemple vérifier si l'unité \"boss1target\" est la même que \"player\"."
L["Cancel"] = "Annuler"
--[[Translation missing --]]
L["Case Insensitive"] = "Case Insensitive"
--[[Translation missing --]]
L["Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."] = "Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."
L["Cast"] = "Incantation"
L["Cast Bar"] = "Barre d'incantation"
@@ -336,6 +338,8 @@ L["Debuff Class"] = "Debuff Class"
L["Debuff Class Icon"] = "Debuff Class Icon"
--[[Translation missing --]]
L["Debuff Type"] = "Debuff Type"
--[[Translation missing --]]
L["Defensive Stats"] = "Defensive Stats"
L["Deflect"] = "Déviation"
L["Desaturate"] = "Désaturer"
L["Desaturate Background"] = "Désaturer l'Arrière-plan"
@@ -347,6 +351,8 @@ L["Dest Raid Mark"] = "Marqueurs de Raid"
L["Destination Affiliation"] = "Destination Affiliation"
--[[Translation missing --]]
L["Destination GUID"] = "Destination GUID"
--[[Translation missing --]]
L["Destination Info"] = "Destination Info"
L["Destination Name"] = "Nom de destination"
--[[Translation missing --]]
L["Destination NPC Id"] = "Destination NPC Id"
@@ -424,6 +430,7 @@ L["Entering/Leaving Combat"] = "Entrer/Sortir de Combat"
L["Entry Order"] = "Entry Order"
L["Environment Type"] = "Type d'environnement"
L["Environmental"] = "Environnement"
L["Equipment"] = "Équipement"
L["Equipment Set"] = "Ensemble d'Equipement"
L["Equipment Set Equipped"] = "Ensemble d'Equipement Équipé"
L["Equipment Slot"] = "Emplacement d'équipement"
@@ -520,6 +527,8 @@ L["Garr"] = "Garr"
--[[Translation missing --]]
L["Gehennas"] = "Gehennas"
--[[Translation missing --]]
L["General"] = "General"
--[[Translation missing --]]
L["General Rajaxx"] = "General Rajaxx"
L["Glancing"] = "Erafle"
L["Global Cooldown"] = "Temps de recharge global"
@@ -618,6 +627,8 @@ L["Instakill"] = "Mort instant."
L["Instance"] = "Instance"
L["Instance Difficulty"] = "Difficulté de l'Instance"
--[[Translation missing --]]
L["Instance Info"] = "Instance Info"
--[[Translation missing --]]
L["Instance Size Type"] = "Instance Size Type"
L["Instance Type"] = "Type d'instance"
--[[Translation missing --]]
@@ -743,6 +754,10 @@ L["Matches (Pattern)"] = "Correspond (format)"
--[[Translation missing --]]
L["Max Char "] = "Max Char "
L["Max Charges"] = "Charges Max"
--[[Translation missing --]]
L["Max Health"] = "Max Health"
--[[Translation missing --]]
L["Max Power"] = "Max Power"
L["Maximum"] = "Maximum"
L["Maximum Estimate"] = "Estimation Maximale"
L["Medium"] = "Moyen"
@@ -757,6 +772,8 @@ L["Minimum Estimate"] = "Estimation minimale"
--[[Translation missing --]]
L["Minus (Small Nameplate)"] = "Minus (Small Nameplate)"
L["Mirror"] = "Miroir"
--[[Translation missing --]]
L["Miscellaneous"] = "Miscellaneous"
L["Miss"] = "Raté"
L["Miss Type"] = "Type de raté"
L["Missed"] = "Raté"
@@ -937,6 +954,8 @@ L["Power Type"] = "Type de puissance"
L["Precision"] = "Précision"
L["Preset"] = "Préréglé"
--[[Translation missing --]]
L["Primary Stats"] = "Primary Stats"
--[[Translation missing --]]
L["Princess Huhuran"] = "Princess Huhuran"
--[[Translation missing --]]
L["Print Profiling Results"] = "Print Profiling Results"
@@ -1011,6 +1030,8 @@ L["Requested display not authorized"] = "L'affichage demandé n'est pas autoris
L["Requesting display information from %s ..."] = "Demande des informations de l'affichage depuis %s ..."
L["Require Valid Target"] = "Nécessite une cible valide"
L["Resist"] = "Résiste"
--[[Translation missing --]]
L["Resistances"] = "Resistances"
L["Resisted"] = "Résisté"
L["Resolve collisions dialog"] = [=[
Vous avez activé un addon qui crée des graphiques |cFF8800FFWeakAuras|r ayant les même noms que certains de vos graphiques existants.
@@ -1075,6 +1096,8 @@ L["Scenario (Normal)"] = "Scenario (Normal)"
L["Screen/Parent Group"] = "Écran/Groupe parent"
L["Second"] = "Deuxième"
L["Second Value of Tooltip Text"] = "Deuxième valeur du texte de l'info-bulle"
--[[Translation missing --]]
L["Secondary Stats"] = "Secondary Stats"
L["Seconds"] = "Secondes"
L["Select Frame"] = "Sélectionner le cadre"
L["Separator"] = "Séparateur"
@@ -1138,6 +1161,7 @@ L["Source"] = "Source"
L["Source Affiliation"] = "Source Affiliation"
--[[Translation missing --]]
L["Source GUID"] = "Source GUID"
L["Source Info"] = "Source Info"
L["Source Name"] = "Nom de source"
--[[Translation missing --]]
L["Source NPC Id"] = "Source NPC Id"
@@ -1156,6 +1180,8 @@ L["Spacing"] = "Ecartement"
L["Spark"] = "Étincelle"
L["Spec Role"] = "Rôle de Spécification"
--[[Translation missing --]]
L["Specific Currency ID"] = "Specific Currency ID"
--[[Translation missing --]]
L["Specific Type"] = "Specific Type"
L["Specific Unit"] = "Unité spécifique"
L["Spell"] = "Sort"
@@ -1193,6 +1219,8 @@ L["Stop"] = "Arrêter"
L["Strength"] = "Force"
L["String"] = "Séquence"
--[[Translation missing --]]
L["Subevent Info"] = "Subevent Info"
--[[Translation missing --]]
L["Subtract Cast"] = "Subtract Cast"
--[[Translation missing --]]
L["Subtract Channel"] = "Subtract Channel"
@@ -1227,6 +1255,8 @@ L["Tanking And Highest"] = "Tank et le plus haut"
L["Tanking But Not Highest"] = "Tank mais pas le plus haut"
L["Target"] = "Cible"
L["Targeted"] = "Ciblé"
--[[Translation missing --]]
L["Tertiary Stats"] = "Tertiary Stats"
L["Text"] = "Texte"
--[[Translation missing --]]
L["Thaddius"] = "Thaddius"
+32
View File
@@ -244,6 +244,8 @@ L["Buru the Gorger"] = "Buru the Gorger"
L["Can be used for e.g. checking if \"boss1target\" is the same as \"player\"."] = "Può essere usato per esempio per controllare se \"boss1target\" sia uguale a \"player\"."
L["Cancel"] = "Cancella"
--[[Translation missing --]]
L["Case Insensitive"] = "Case Insensitive"
--[[Translation missing --]]
L["Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."] = "Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."
L["Cast"] = "Cast"
--[[Translation missing --]]
@@ -381,6 +383,8 @@ L["Debuff Class Icon"] = "Debuff Class Icon"
--[[Translation missing --]]
L["Debuff Type"] = "Debuff Type"
--[[Translation missing --]]
L["Defensive Stats"] = "Defensive Stats"
--[[Translation missing --]]
L["Deflect"] = "Deflect"
--[[Translation missing --]]
L["Desaturate"] = "Desaturate"
@@ -398,6 +402,8 @@ L["Destination Affiliation"] = "Destination Affiliation"
--[[Translation missing --]]
L["Destination GUID"] = "Destination GUID"
--[[Translation missing --]]
L["Destination Info"] = "Destination Info"
--[[Translation missing --]]
L["Destination Name"] = "Destination Name"
--[[Translation missing --]]
L["Destination NPC Id"] = "Destination NPC Id"
@@ -505,6 +511,8 @@ L["Environment Type"] = "Environment Type"
--[[Translation missing --]]
L["Environmental"] = "Environmental"
--[[Translation missing --]]
L["Equipment"] = "Equipment"
--[[Translation missing --]]
L["Equipment Set"] = "Equipment Set"
--[[Translation missing --]]
L["Equipment Set Equipped"] = "Equipment Set Equipped"
@@ -638,6 +646,8 @@ L["Garr"] = "Garr"
--[[Translation missing --]]
L["Gehennas"] = "Gehennas"
--[[Translation missing --]]
L["General"] = "General"
--[[Translation missing --]]
L["General Rajaxx"] = "General Rajaxx"
--[[Translation missing --]]
L["Glancing"] = "Glancing"
@@ -790,6 +800,8 @@ L["Instance"] = "Instance"
--[[Translation missing --]]
L["Instance Difficulty"] = "Instance Difficulty"
--[[Translation missing --]]
L["Instance Info"] = "Instance Info"
--[[Translation missing --]]
L["Instance Size Type"] = "Instance Size Type"
--[[Translation missing --]]
L["Instance Type"] = "Instance Type"
@@ -970,6 +982,10 @@ L["Max Char "] = "Max Char "
--[[Translation missing --]]
L["Max Charges"] = "Max Charges"
--[[Translation missing --]]
L["Max Health"] = "Max Health"
--[[Translation missing --]]
L["Max Power"] = "Max Power"
--[[Translation missing --]]
L["Maximum"] = "Maximum"
--[[Translation missing --]]
L["Maximum Estimate"] = "Maximum Estimate"
@@ -994,6 +1010,8 @@ L["Minus (Small Nameplate)"] = "Minus (Small Nameplate)"
--[[Translation missing --]]
L["Mirror"] = "Mirror"
--[[Translation missing --]]
L["Miscellaneous"] = "Miscellaneous"
--[[Translation missing --]]
L["Miss"] = "Miss"
--[[Translation missing --]]
L["Miss Type"] = "Miss Type"
@@ -1260,6 +1278,8 @@ L["Precision"] = "Precision"
--[[Translation missing --]]
L["Preset"] = "Preset"
--[[Translation missing --]]
L["Primary Stats"] = "Primary Stats"
--[[Translation missing --]]
L["Princess Huhuran"] = "Princess Huhuran"
--[[Translation missing --]]
L["Print Profiling Results"] = "Print Profiling Results"
@@ -1370,6 +1390,8 @@ L["Require Valid Target"] = "Require Valid Target"
--[[Translation missing --]]
L["Resist"] = "Resist"
--[[Translation missing --]]
L["Resistances"] = "Resistances"
--[[Translation missing --]]
L["Resisted"] = "Resisted"
--[[Translation missing --]]
L["Resolve collisions dialog"] = "Resolve collisions dialog"
@@ -1448,6 +1470,8 @@ L["Second"] = "Second"
--[[Translation missing --]]
L["Second Value of Tooltip Text"] = "Second Value of Tooltip Text"
--[[Translation missing --]]
L["Secondary Stats"] = "Secondary Stats"
--[[Translation missing --]]
L["Seconds"] = "Seconds"
--[[Translation missing --]]
L["Select Frame"] = "Select Frame"
@@ -1542,6 +1566,8 @@ L["Source Affiliation"] = "Source Affiliation"
--[[Translation missing --]]
L["Source GUID"] = "Source GUID"
--[[Translation missing --]]
L["Source Info"] = "Source Info"
--[[Translation missing --]]
L["Source Name"] = "Source Name"
--[[Translation missing --]]
L["Source NPC Id"] = "Source NPC Id"
@@ -1566,6 +1592,8 @@ L["Spark"] = "Spark"
--[[Translation missing --]]
L["Spec Role"] = "Spec Role"
--[[Translation missing --]]
L["Specific Currency ID"] = "Specific Currency ID"
--[[Translation missing --]]
L["Specific Type"] = "Specific Type"
--[[Translation missing --]]
L["Specific Unit"] = "Specific Unit"
@@ -1630,6 +1658,8 @@ L["Strength"] = "Strength"
--[[Translation missing --]]
L["String"] = "String"
--[[Translation missing --]]
L["Subevent Info"] = "Subevent Info"
--[[Translation missing --]]
L["Subtract Cast"] = "Subtract Cast"
--[[Translation missing --]]
L["Subtract Channel"] = "Subtract Channel"
@@ -1681,6 +1711,8 @@ L["Target"] = "Target"
--[[Translation missing --]]
L["Targeted"] = "Targeted"
--[[Translation missing --]]
L["Tertiary Stats"] = "Tertiary Stats"
--[[Translation missing --]]
L["Text"] = "Text"
--[[Translation missing --]]
L["Thaddius"] = "Thaddius"
+16
View File
@@ -201,6 +201,7 @@ L["Buffed/Debuffed"] = "강화 효과/약화 효과"
L["Buru the Gorger"] = "먹보 부루"
L["Can be used for e.g. checking if \"boss1target\" is the same as \"player\"."] = "예를 들어 \"우두머리1대상\"\"플레이어\"와 같은지 확인하는데 사용할 수 있습니다."
L["Cancel"] = "취소"
L["Case Insensitive"] = "대소문자 구분 안함"
--[[Translation missing --]]
L["Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."] = "Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."
L["Cast"] = "시전"
@@ -293,6 +294,7 @@ L["Debuff"] = "약화 효과"
L["Debuff Class"] = "약화 효과 직업"
L["Debuff Class Icon"] = "약화 효과 직업 아이콘"
L["Debuff Type"] = "약화 효과 유형"
L["Defensive Stats"] = "방어 능력치"
L["Deflect"] = "튕김"
L["Desaturate"] = "흑백"
L["Desaturate Background"] = "흑백 배경"
@@ -303,6 +305,7 @@ L["Dest Raid Mark"] = "대상 공격대 징표"
--[[Translation missing --]]
L["Destination Affiliation"] = "Destination Affiliation"
L["Destination GUID"] = "대상 GUID"
L["Destination Info"] = "대상자 정보"
L["Destination Name"] = "대상 이름"
L["Destination NPC Id"] = "대상 NPC Id"
--[[Translation missing --]]
@@ -372,6 +375,7 @@ L["Entering/Leaving Combat"] = "전투 시작/종료"
L["Entry Order"] = "항목 순서"
L["Environment Type"] = "환경 종류"
L["Environmental"] = "환경"
L["Equipment"] = "장비"
L["Equipment Set"] = "장비 구성"
L["Equipment Set Equipped"] = "장비 구성 착용"
L["Equipment Slot"] = "장비 칸"
@@ -455,6 +459,7 @@ L["Gahz'ranka"] = "가즈란카"
L["Gained"] = "획득"
L["Garr"] = "가르"
L["Gehennas"] = "게헨나스"
L["General"] = "일반"
L["General Rajaxx"] = "장군 라작스"
L["Glancing"] = "비껴맞음"
L["Global Cooldown"] = "전역 재사용 대기시간"
@@ -536,6 +541,7 @@ L["Inherited"] = "상속"
L["Instakill"] = "죽임"
L["Instance"] = "인스턴스"
L["Instance Difficulty"] = "인스턴스 난이도"
L["Instance Info"] = "인스턴스 던전 정보"
L["Instance Size Type"] = "인스턴스 크기 유형"
L["Instance Type"] = "인스턴스 유형"
L["Instructor Razuvious"] = "훈련교관 라주비어스"
@@ -642,6 +648,8 @@ L["Match Count per Unit"] = "유닛당 일치 횟수"
L["Matches (Pattern)"] = "일치 (패턴)"
L["Max Char "] = "최대 글자수"
L["Max Charges"] = "최대 충전량"
L["Max Health"] = "최대 생명력"
L["Max Power"] = "최대 기력"
L["Maximum"] = "최대"
L["Maximum Estimate"] = "최대 예상치"
L["Medium"] = "중간"
@@ -656,6 +664,7 @@ L["Minimum Estimate"] = "최소 예상치"
L["Minus (Small Nameplate)"] = "빼기 (작은 이름표)"
--[[Translation missing --]]
L["Mirror"] = "Mirror"
L["Miscellaneous"] = "기타"
L["Miss"] = "빗나감"
L["Miss Type"] = "적중 실패 유형"
L["Missed"] = "적중 실패"
@@ -812,6 +821,7 @@ L["Power (%)"] = "자원 (%)"
L["Power Type"] = "자원 유형"
L["Precision"] = "정밀도"
L["Preset"] = "프리셋"
L["Primary Stats"] = "주 능력치"
L["Princess Huhuran"] = "공주 후후란"
L["Print Profiling Results"] = "프로파일링 결과 출력"
L["Profiling already started."] = "프로파일링이 이미 시작되었습니다."
@@ -870,6 +880,7 @@ L["Requested display not authorized"] = "요청한 디스플레이가 올바르
L["Requesting display information from %s ..."] = "%s의 디스플레이 정보 요청 중 ..."
L["Require Valid Target"] = "유효 대상 필요"
L["Resist"] = "저항"
L["Resistances"] = "저항"
L["Resisted"] = "저항함"
L["Resolve collisions dialog"] = [=[
같은 이름을 가진 |cFF8800FFWeakAuras|r 디스플레이가 있습니다.
@@ -932,6 +943,7 @@ L["Scenario (Normal)"] = "시나리오 (일반)"
L["Screen/Parent Group"] = "화면/부모 그룹"
L["Second"] = "두 번째"
L["Second Value of Tooltip Text"] = "툴팁 문자의 두 번째 값"
L["Secondary Stats"] = "2차 능력치"
L["Seconds"] = ""
L["Select Frame"] = "프레임 선택"
--[[Translation missing --]]
@@ -994,6 +1006,7 @@ L["Source"] = "Source"
--[[Translation missing --]]
L["Source Affiliation"] = "Source Affiliation"
L["Source GUID"] = "행위자 GUID"
L["Source Info"] = "시전자 정보"
L["Source Name"] = "행위자 이름"
L["Source NPC Id"] = "행위자 NPC Id"
--[[Translation missing --]]
@@ -1007,6 +1020,7 @@ L["Space"] = "공간"
L["Spacing"] = "간격"
L["Spark"] = "섬광"
L["Spec Role"] = "전문화 역할"
L["Specific Currency ID"] = "화폐 ID 지정"
--[[Translation missing --]]
L["Specific Type"] = "Specific Type"
L["Specific Unit"] = "특정 유닛"
@@ -1042,6 +1056,7 @@ L["Stolen"] = "훔침"
L["Stop"] = "중지"
L["Strength"] = ""
L["String"] = "문자열"
L["Subevent Info"] = "서브이벤트 정보"
--[[Translation missing --]]
L["Subtract Cast"] = "Subtract Cast"
--[[Translation missing --]]
@@ -1079,6 +1094,7 @@ L["Tanking But Not Highest"] = "탱커지만 제일 높지 않을 때"
L["Target"] = "대상"
--[[Translation missing --]]
L["Targeted"] = "Targeted"
L["Tertiary Stats"] = "3차 능력치"
L["Text"] = "문자"
L["Thaddius"] = "타디우스"
--[[Translation missing --]]
+32
View File
@@ -210,6 +210,8 @@ L["Buffed/Debuffed"] = "Buffado/Debuffado"
L["Buru the Gorger"] = "Buru, o Banqueteador"
L["Can be used for e.g. checking if \"boss1target\" is the same as \"player\"."] = "Pode ser usado, por exemplo, para checar se \"chefe1alvo\" é o mesmo que \"jogador\"."
L["Cancel"] = "Cancelar"
--[[Translation missing --]]
L["Case Insensitive"] = "Case Insensitive"
L["Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."] = "Não é possível agendar o cronômetro com %i, devido a um bug do World of Warcraft com alto tempo de atividade do computador. (Tempo de atividade: %i). Por favor, reinicie o seu computador."
L["Cast"] = "Lançar"
L["Cast Bar"] = "Barra de Lançamento"
@@ -322,6 +324,8 @@ L["Debuff Class Icon"] = "Debuff Class Icon"
--[[Translation missing --]]
L["Debuff Type"] = "Debuff Type"
--[[Translation missing --]]
L["Defensive Stats"] = "Defensive Stats"
--[[Translation missing --]]
L["Deflect"] = "Deflect"
--[[Translation missing --]]
L["Desaturate"] = "Desaturate"
@@ -339,6 +343,8 @@ L["Destination Affiliation"] = "Destination Affiliation"
--[[Translation missing --]]
L["Destination GUID"] = "Destination GUID"
--[[Translation missing --]]
L["Destination Info"] = "Destination Info"
--[[Translation missing --]]
L["Destination Name"] = "Destination Name"
--[[Translation missing --]]
L["Destination NPC Id"] = "Destination NPC Id"
@@ -446,6 +452,8 @@ L["Environment Type"] = "Environment Type"
--[[Translation missing --]]
L["Environmental"] = "Environmental"
--[[Translation missing --]]
L["Equipment"] = "Equipment"
--[[Translation missing --]]
L["Equipment Set"] = "Equipment Set"
--[[Translation missing --]]
L["Equipment Set Equipped"] = "Equipment Set Equipped"
@@ -574,6 +582,8 @@ L["Garr"] = "Garr"
--[[Translation missing --]]
L["Gehennas"] = "Gehennas"
--[[Translation missing --]]
L["General"] = "General"
--[[Translation missing --]]
L["General Rajaxx"] = "General Rajaxx"
--[[Translation missing --]]
L["Glancing"] = "Glancing"
@@ -726,6 +736,8 @@ L["Instance"] = "Instance"
--[[Translation missing --]]
L["Instance Difficulty"] = "Instance Difficulty"
--[[Translation missing --]]
L["Instance Info"] = "Instance Info"
--[[Translation missing --]]
L["Instance Size Type"] = "Instance Size Type"
--[[Translation missing --]]
L["Instance Type"] = "Instance Type"
@@ -897,6 +909,10 @@ L["Max Char "] = "Max Char "
--[[Translation missing --]]
L["Max Charges"] = "Max Charges"
--[[Translation missing --]]
L["Max Health"] = "Max Health"
--[[Translation missing --]]
L["Max Power"] = "Max Power"
--[[Translation missing --]]
L["Maximum"] = "Maximum"
--[[Translation missing --]]
L["Maximum Estimate"] = "Maximum Estimate"
@@ -917,6 +933,8 @@ L["Minimum Estimate"] = "Minimum Estimate"
L["Minus (Small Nameplate)"] = "Minus (Small Nameplate)"
--[[Translation missing --]]
L["Mirror"] = "Mirror"
--[[Translation missing --]]
L["Miscellaneous"] = "Miscellaneous"
L["Miss"] = "Falha"
L["Miss Type"] = "Tipo de falha"
L["Missed"] = "Falho"
@@ -1148,6 +1166,8 @@ L["Power Type"] = "Tipo de poder"
L["Precision"] = "Precision"
L["Preset"] = "Predefinido"
--[[Translation missing --]]
L["Primary Stats"] = "Primary Stats"
--[[Translation missing --]]
L["Princess Huhuran"] = "Princess Huhuran"
--[[Translation missing --]]
L["Print Profiling Results"] = "Print Profiling Results"
@@ -1244,6 +1264,8 @@ L["Requested display not authorized"] = "Exibição requerida não autorizada"
L["Requesting display information from %s ..."] = "Requesting display information from %s ..."
L["Require Valid Target"] = "Requer um alvo válido"
L["Resist"] = "Resistir"
--[[Translation missing --]]
L["Resistances"] = "Resistances"
L["Resisted"] = "Resistido"
--[[Translation missing --]]
L["Resolve collisions dialog"] = "Resolve collisions dialog"
@@ -1313,6 +1335,8 @@ L["Screen/Parent Group"] = "Screen/Parent Group"
L["Second"] = "Second"
--[[Translation missing --]]
L["Second Value of Tooltip Text"] = "Second Value of Tooltip Text"
--[[Translation missing --]]
L["Secondary Stats"] = "Secondary Stats"
L["Seconds"] = "Segundos"
--[[Translation missing --]]
L["Select Frame"] = "Select Frame"
@@ -1395,6 +1419,8 @@ L["Source"] = "Source"
L["Source Affiliation"] = "Source Affiliation"
--[[Translation missing --]]
L["Source GUID"] = "Source GUID"
--[[Translation missing --]]
L["Source Info"] = "Source Info"
L["Source Name"] = "Origem do nome"
--[[Translation missing --]]
L["Source NPC Id"] = "Source NPC Id"
@@ -1417,6 +1443,8 @@ L["Spark"] = "Spark"
--[[Translation missing --]]
L["Spec Role"] = "Spec Role"
--[[Translation missing --]]
L["Specific Currency ID"] = "Specific Currency ID"
--[[Translation missing --]]
L["Specific Type"] = "Specific Type"
L["Specific Unit"] = "Unidade específica"
L["Spell"] = "Feitiço"
@@ -1470,6 +1498,8 @@ L["Strength"] = "Strength"
--[[Translation missing --]]
L["String"] = "String"
--[[Translation missing --]]
L["Subevent Info"] = "Subevent Info"
--[[Translation missing --]]
L["Subtract Cast"] = "Subtract Cast"
--[[Translation missing --]]
L["Subtract Channel"] = "Subtract Channel"
@@ -1517,6 +1547,8 @@ L["Target"] = "Alvo"
--[[Translation missing --]]
L["Targeted"] = "Targeted"
--[[Translation missing --]]
L["Tertiary Stats"] = "Tertiary Stats"
--[[Translation missing --]]
L["Text"] = "Text"
--[[Translation missing --]]
L["Thaddius"] = "Thaddius"
+26
View File
@@ -238,6 +238,7 @@ L["Buru the Gorger"] = "Буру Ненасытный"
L["Can be used for e.g. checking if \"boss1target\" is the same as \"player\"."] = [=[Используется для проверки того факта, что две единицы - одна и та же сущность, объект.
Например: выбрав в качестве единицы игрока и указав для данного параметра значение "boss1target", можно определить, являетесь ли вы целью босса.]=]
L["Cancel"] = "Отмена"
L["Case Insensitive"] = "Без учета регистра"
L["Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."] = "Невозможно запустить таймер на %i c. из-за ошибки WoW (переполнение), связанной с большим временем непрерывной работы вашего компьютера - %i с. Пожалуйста, перезагрузите компьютер."
L["Cast"] = "Применение заклинания"
L["Cast Bar"] = "Полоса применения заклинания"
@@ -327,6 +328,8 @@ L["Debuff"] = "Дебафф"
L["Debuff Class"] = "Тип дебаффа"
L["Debuff Class Icon"] = "Иконка дебаффа"
L["Debuff Type"] = "Тип дебаффа"
--[[Translation missing --]]
L["Defensive Stats"] = "Defensive Stats"
L["Defense"] = "Защита"
L["Deflect"] = "Отклонение"
L["Desaturate"] = "Обесцветить"
@@ -337,6 +340,8 @@ L["Description"] = "Описание"
L["Dest Raid Mark"] = "Метка получателя"
L["Destination Affiliation"] = "Принадлежность получателя"
L["Destination GUID"] = "GUID получателя"
--[[Translation missing --]]
L["Destination Info"] = "Destination Info"
L["Destination Name"] = "Имя получателя"
L["Destination NPC Id"] = "ID NPC-получателя"
L["Destination Object Type"] = "Тип объекта получателя"
@@ -395,6 +400,7 @@ L["Entering/Leaving Combat"] = "Вход / Выход из боя"
L["Entry Order"] = "Порядок записей"
L["Environment Type"] = "Тип окружения"
L["Environmental"] = "Окружающий мир"
L["Equipment"] = "Экипировка"
L["Equipment Set"] = "Комплект экипировки"
L["Equipment Set Equipped"] = "Комплект экипировки надет"
L["Equipment Slot"] = "Ячейка экипировки"
@@ -467,6 +473,7 @@ L["Gahz'ranka"] = "Газ'ранка"
L["Gained"] = "Получен"
L["Garr"] = "Гарр"
L["Gehennas"] = "Гееннас"
L["General"] = "Общее"
L["General Rajaxx"] = "Генерал Раджакс"
L["Glancing"] = "Скользящий удар"
L["Global Cooldown"] = "Общее время восстановления (GCD)"
@@ -549,6 +556,8 @@ L["Inherited"] = "Наследуемый атрибут"
L["Instakill"] = "Моментальное убийство"
L["Instance"] = "Подземелье"
L["Instance Difficulty"] = "Сложность подземелья"
--[[Translation missing --]]
L["Instance Info"] = "Instance Info"
L["Instance Size Type"] = "Тип размера подземелья"
L["Instance Type"] = "Тип подземелья"
L["Instructor Razuvious"] = "Инструктор Разувий"
@@ -643,6 +652,8 @@ L["Match Count per Unit"] = "Кол-во совпадений на единиц
L["Matches (Pattern)"] = "Совпадения по шаблону"
L["Max Char "] = "Макс. количество символов"
L["Max Charges"] = "Макс. количество зарядов"
L["Max Health"] = "Макс. запас здоровья"
L["Max Power"] = "Макс. запас энергии"
L["Maximum"] = "Макс. значение"
L["Maximum Estimate"] = "Макс. оценка"
L["Medium"] = "Средний"
@@ -655,6 +666,8 @@ L["Minimum"] = "Мин. значение"
L["Minimum Estimate"] = "Мин. оценка"
L["Minus (Small Nameplate)"] = "Незначительный"
L["Mirror"] = "Отразить"
--[[Translation missing --]]
L["Miscellaneous"] = "Miscellaneous"
L["Miss"] = "Промах"
L["Miss Type"] = "Тип промаха"
L["Missed"] = "Промах"
@@ -801,6 +814,8 @@ L["Power Deficit"] = "Недостающая энергия"
L["Power Type"] = "Тип энергии"
L["Precision"] = "Точность"
L["Preset"] = "Набор эффектов"
--[[Translation missing --]]
L["Primary Stats"] = "Primary Stats"
L["Princess Huhuran"] = "Принцесса Хухуран"
L["Print Profiling Results"] = "Вывести результаты профилирования"
L["Profiling already started."] = "Профилирование уже запущено."
@@ -859,6 +874,8 @@ L["Requested display not authorized"] = "Запрошенная индикаци
L["Requesting display information from %s ..."] = "Запрос информации об индикации от %s ..."
L["Require Valid Target"] = "Требуется допустимая цель"
L["Resist"] = "Сопротивление"
--[[Translation missing --]]
L["Resistances"] = "Resistances"
L["Resisted"] = "Сопротивление"
L["Resolve collisions dialog"] = [=[Вы включили аддон в котором определены индикации |cFF8800FFWeakAuras|r которые имеют те же имена, что и существующие.
@@ -916,6 +933,8 @@ L["Scenario (Normal)"] = "Сценарий (обычный)"
L["Screen/Parent Group"] = "Экран / Исходная группа"
L["Second"] = "Второе"
L["Second Value of Tooltip Text"] = "Второе значение из текста подсказки"
--[[Translation missing --]]
L["Secondary Stats"] = "Secondary Stats"
L["Seconds"] = "Секунды"
L["Select Frame"] = "Выбрать кадр"
L["Separator"] = "Разделитель"
@@ -965,6 +984,8 @@ L["Sound by Kit ID"] = "Звук по ID набора"
L["Source"] = "Источник"
L["Source Affiliation"] = "Принадлежность источника"
L["Source GUID"] = "GUID источника"
--[[Translation missing --]]
L["Source Info"] = "Source Info"
L["Source Name"] = "Имя источника"
L["Source NPC Id"] = "ID NPC-источника"
L["Source Object Type"] = "Тип объекта источника"
@@ -977,6 +998,7 @@ L["Space"] = "Отступ"
L["Spacing"] = "Расстояние"
L["Spark"] = "Искра"
L["Spec Role"] = "Роль специализации"
L["Specific Currency ID"] = "ID валюты"
L["Specific Type"] = "Конкретный тип"
L["Specific Unit"] = "Конкретная единица"
L["Spell"] = "Заклинание"
@@ -1013,6 +1035,8 @@ L["Stolen"] = "Кража"
L["Stop"] = "Остановить"
L["Strength"] = "Сила"
L["String"] = "Строка"
--[[Translation missing --]]
L["Subevent Info"] = "Subevent Info"
L["Subtract Cast"] = "Вычесть применение заклинания"
L["Subtract Channel"] = "Вычесть поддержание заклинания"
L["Subtract GCD"] = "Вычесть GCD"
@@ -1044,6 +1068,8 @@ L["Tanking And Highest"] = "Вы основная цель; макс. угроз
L["Tanking But Not Highest"] = "Вы основная цель; не макс. угроза"
L["Target"] = "Цель"
L["Targeted"] = "Цель"
--[[Translation missing --]]
L["Tertiary Stats"] = "Tertiary Stats"
L["Text"] = "Текст"
L["Thaddius"] = "Таддиус"
L["The aura has overwritten the global '%s', this might affect other auras."] = "Индикация перезаписала значение глобальной переменной %s. Это может повлиять как на другие индикации, так и на ваш интерфейс!"
+16
View File
@@ -192,6 +192,7 @@ L["Buffed/Debuffed"] = "获得增益/减益效果"
L["Buru the Gorger"] = "吞咽者布鲁"
L["Can be used for e.g. checking if \"boss1target\" is the same as \"player\"."] = "可以用来检测类似于一号首领的目标(boss1target)是不是玩家自身(player)之类的信息。"
L["Cancel"] = "取消"
L["Case Insensitive"] = "大小写不敏感"
L["Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."] = "由于计算机长时间开机造成的魔兽世界故障,无法设置 %i 秒后的计时器。(开机时间:%i)。请重启你的计算机。"
L["Cast"] = "施法"
L["Cast Bar"] = "施法条"
@@ -274,6 +275,7 @@ L["Debuff"] = "Debuff"
L["Debuff Class"] = "减益效果类型"
L["Debuff Class Icon"] = "减益效果类型图标"
L["Debuff Type"] = "Debuff 类型"
L["Defensive Stats"] = "防御属性"
L["Deflect"] = "偏斜"
L["Desaturate"] = "褪色"
L["Desaturate Background"] = "背景褪色"
@@ -283,6 +285,7 @@ L["Description"] = "描述"
L["Dest Raid Mark"] = "目标团队标记"
L["Destination Affiliation"] = "目标所属"
L["Destination GUID"] = "目标GUID"
L["Destination Info"] = "目标信息"
L["Destination Name"] = "目标名称"
L["Destination NPC Id"] = "目标 NPC ID"
L["Destination Object Type"] = "目标类型"
@@ -337,6 +340,7 @@ L["Entering/Leaving Combat"] = "进入/离开战斗"
L["Entry Order"] = "条目排序"
L["Environment Type"] = "环境伤害类型"
L["Environmental"] = "环境伤害"
L["Equipment"] = "装备"
L["Equipment Set"] = "装备方案"
L["Equipment Set Equipped"] = "装备方案已使用"
L["Equipment Slot"] = "装备栏"
@@ -405,6 +409,7 @@ L["Gahz'ranka"] = "加兹兰卡"
L["Gained"] = "获得了"
L["Garr"] = "加尔"
L["Gehennas"] = "基赫纳斯"
L["General"] = "一般"
L["General Rajaxx"] = "拉贾克斯将军"
L["Glancing"] = "躲闪"
L["Global Cooldown"] = "公共冷却"
@@ -481,6 +486,7 @@ L["Inherited"] = "继承"
L["Instakill"] = "术士牺牲爪牙"
L["Instance"] = "副本"
L["Instance Difficulty"] = "副本难度"
L["Instance Info"] = "副本信息"
L["Instance Size Type"] = "副本大小类型"
L["Instance Type"] = "副本类型"
L["Instructor Razuvious"] = "教官拉苏维奥斯"
@@ -571,6 +577,8 @@ L["Match Count per Unit"] = "每个单位的匹配数量"
L["Matches (Pattern)"] = "匹配(表达式)"
L["Max Char "] = "最大字符数"
L["Max Charges"] = "最大充能次数"
L["Max Health"] = "最大生命值"
L["Max Power"] = "最大能量值"
L["Maximum"] = "最大"
L["Maximum Estimate"] = "最大预估"
L["Medium"] = ""
@@ -583,6 +591,7 @@ L["Minimum"] = "最小"
L["Minimum Estimate"] = "最小预估"
L["Minus (Small Nameplate)"] = "次要目标(小型姓名版)"
L["Mirror"] = "镜像"
L["Miscellaneous"] = "其他"
L["Miss"] = "未命中"
L["Miss Type"] = "未命中类型"
L["Missed"] = "未命中"
@@ -716,6 +725,7 @@ L["Power (%)"] = "能量(%%)"
L["Power Type"] = "能量类型"
L["Precision"] = "精度"
L["Preset"] = "预设"
L["Primary Stats"] = "主属性"
L["Princess Huhuran"] = "哈霍兰公主"
L["Print Profiling Results"] = "输出性能分析结果"
L["Profiling already started."] = "性能分析已开始。"
@@ -771,6 +781,7 @@ L["Requested display not authorized"] = "请求接收的图示没有授权"
L["Requesting display information from %s ..."] = "请求来 %s 的显示信息"
L["Require Valid Target"] = "需要有效目标"
L["Resist"] = "抵抗"
L["Resistances"] = "抗性"
L["Resisted"] = "被抵抗"
L["Resolve collisions dialog"] = [=[你安装的插件中定义了与|cFF8800FFWeakAuras|r 图示相同名称的变量。
@@ -826,6 +837,7 @@ L["Scenario (Normal)"] = "场景战役(普通)"
L["Screen/Parent Group"] = "屏幕/上级群组"
L["Second"] = "第二"
L["Second Value of Tooltip Text"] = "鼠标提示文本的第二项值"
L["Secondary Stats"] = "副属性"
L["Seconds"] = ""
L["Select Frame"] = "选择框体"
L["Separator"] = "分隔符"
@@ -873,6 +885,7 @@ L["Sound by Kit ID"] = "根据 ID 选择音效"
L["Source"] = "来源"
L["Source Affiliation"] = "来源所属"
L["Source GUID"] = "来源GUID"
L["Source Info"] = "来源信息"
L["Source Name"] = "来源名称"
L["Source NPC Id"] = "来源 NPC ID"
L["Source Object Type"] = "来源类型"
@@ -885,6 +898,7 @@ L["Space"] = "空白"
L["Spacing"] = "间距"
L["Spark"] = "闪光"
L["Spec Role"] = "专精职责"
L["Specific Currency ID"] = "特定货币ID"
L["Specific Type"] = "特定类型"
L["Specific Unit"] = "指定单位"
L["Spell"] = "法术"
@@ -917,6 +931,7 @@ L["Stolen"] = "偷取"
L["Stop"] = "停止"
L["Strength"] = "力量"
L["String"] = "字符串"
L["Subevent Info"] = "子事件信息"
L["Subtract Cast"] = "减去施法时间"
L["Subtract Channel"] = "减去引导时间"
L["Subtract GCD"] = "减去 GCD"
@@ -943,6 +958,7 @@ L["Tanking And Highest"] = "做T并且最高"
L["Tanking But Not Highest"] = "做T但不是最高"
L["Target"] = "目标"
L["Targeted"] = "被选中"
L["Tertiary Stats"] = "第三属性"
L["Text"] = "文本"
L["Thaddius"] = "塔迪乌斯"
L["The aura has overwritten the global '%s', this might affect other auras."] = "此光环覆盖了全局变量'%s',可能会影响其他光环。"
+16
View File
@@ -194,6 +194,7 @@ L["Buffed/Debuffed"] = "有增益/減益效果"
L["Buru the Gorger"] = "『暴食者』布魯"
L["Can be used for e.g. checking if \"boss1target\" is the same as \"player\"."] = "可用於,例如檢查 \"boss1target\"\"player\" 是否相同。"
L["Cancel"] = "取消"
L["Case Insensitive"] = "不區分大小寫"
L["Can't schedule timer with %i, due to a World of Warcraft bug with high computer uptime. (Uptime: %i). Please restart your computer."] = "由於魔獸世界的 bug 導致電腦運算時間很長 (運算時間: %i),因此無法為 %i 排程計時器,請重新啟動電腦。"
L["Cast"] = "施法"
L["Cast Bar"] = "施法條"
@@ -276,6 +277,7 @@ L["Debuff"] = "減益"
L["Debuff Class"] = "減益類別"
L["Debuff Class Icon"] = "減益類別圖示"
L["Debuff Type"] = "減益類型"
L["Defensive Stats"] = "防守屬性"
L["Deflect"] = "偏斜"
L["Desaturate"] = "去色"
L["Desaturate Background"] = "背景去色"
@@ -286,6 +288,7 @@ L["Dest Raid Mark"] = "目標的標記圖示"
--[[Translation missing --]]
L["Destination Affiliation"] = "Destination Affiliation"
L["Destination GUID"] = "目標 GUID"
L["Destination Info"] = "目的地資訊"
L["Destination Name"] = "目標名稱"
L["Destination NPC Id"] = "目標 NPC ID"
L["Destination Object Type"] = "目標物件類型"
@@ -340,6 +343,7 @@ L["Entering/Leaving Combat"] = "進入/離開戰鬥"
L["Entry Order"] = "項目順序"
L["Environment Type"] = "環境類型"
L["Environmental"] = "環境"
L["Equipment"] = "裝備"
L["Equipment Set"] = "裝備管理員設定"
L["Equipment Set Equipped"] = "已裝備裝備管理員設定"
L["Equipment Slot"] = "裝備欄位"
@@ -408,6 +412,7 @@ L["Gahz'ranka"] = "加茲蘭卡"
L["Gained"] = "獲得"
L["Garr"] = "加爾"
L["Gehennas"] = "基赫納斯"
L["General"] = "一般"
L["General Rajaxx"] = "拉賈克斯將軍"
L["Glancing"] = "偏斜"
L["Global Cooldown"] = "共用冷卻 (GCD)"
@@ -485,6 +490,7 @@ L["Inherited"] = "繼承"
L["Instakill"] = "秒殺"
L["Instance"] = "副本"
L["Instance Difficulty"] = "副本難度"
L["Instance Info"] = "副本資訊"
L["Instance Size Type"] = "副本大小類型"
L["Instance Type"] = "副本類型"
L["Instructor Razuvious"] = "講師拉祖維斯"
@@ -576,6 +582,8 @@ L["Match Count per Unit"] = "每個單位符合的數量"
L["Matches (Pattern)"] = "符合模式 (Pattern)"
L["Max Char "] = "最多字元數"
L["Max Charges"] = "最大可用次數"
L["Max Health"] = "最大血量"
L["Max Power"] = "最大能量"
L["Maximum"] = "最大值"
L["Maximum Estimate"] = "最大估計"
L["Medium"] = ""
@@ -588,6 +596,7 @@ L["Minimum"] = "最小值"
L["Minimum Estimate"] = "最小估計"
L["Minus (Small Nameplate)"] = "減去 (小型血條/名條)"
L["Mirror"] = "鏡像"
L["Miscellaneous"] = "雜項"
L["Miss"] = "未命中"
L["Miss Type"] = "未命中類型"
L["Missed"] = "未命中"
@@ -724,6 +733,7 @@ L["Power (%)"] = "能量 (%)"
L["Power Type"] = "能量類型"
L["Precision"] = "精確度"
L["Preset"] = "預設"
L["Primary Stats"] = "主要屬性"
L["Princess Huhuran"] = "哈霍蘭公主"
L["Print Profiling Results"] = "顯示分析結果"
L["Profiling already started."] = "分析早已開始了。"
@@ -779,6 +789,7 @@ L["Requested display not authorized"] = "需求的提醒效果沒有授權"
L["Requesting display information from %s ..."] = "正在請求來自於 %s 的顯示資訊..."
L["Require Valid Target"] = "需要有效目標"
L["Resist"] = "抵抗"
L["Resistances"] = "抗性"
L["Resisted"] = "被抵抗"
L["Resolve collisions dialog"] = [=[你已經啟用插件定義|cFF8800FFWeakAuras|r顯示與你已存在的顯示有相同名稱。
@@ -826,6 +837,7 @@ L["Scenario (Normal)"] = "事件(普通)"
L["Screen/Parent Group"] = "螢幕/所屬群組"
L["Second"] = "第二個"
L["Second Value of Tooltip Text"] = "滑鼠提示文字中的第二個值"
L["Secondary Stats"] = "次要屬性"
L["Seconds"] = "秒數"
L["Select Frame"] = "選擇的框架"
L["Separator"] = "分隔線"
@@ -874,6 +886,7 @@ L["Source"] = "來源"
--[[Translation missing --]]
L["Source Affiliation"] = "Source Affiliation"
L["Source GUID"] = "來源 GUID"
L["Source Info"] = "來源資訊"
L["Source Name"] = "來源的名稱"
L["Source NPC Id"] = "來源 NPC ID"
L["Source Object Type"] = "來源物件類型"
@@ -886,6 +899,7 @@ L["Space"] = "間距"
L["Spacing"] = "間距"
L["Spark"] = "亮點"
L["Spec Role"] = "專精角色"
L["Specific Currency ID"] = "特定兌換通貨ID"
L["Specific Type"] = "指定類型"
L["Specific Unit"] = "指定單位"
L["Spell"] = "法術"
@@ -918,6 +932,7 @@ L["Stolen"] = "被偷竊"
L["Stop"] = "停止"
L["Strength"] = "力量"
L["String"] = "文字字串"
L["Subevent Info"] = "子事件資訊"
L["Subtract Cast"] = "減去施法"
L["Subtract Channel"] = "減去頻道"
L["Subtract GCD"] = "減去 GCD"
@@ -944,6 +959,7 @@ L["Tanking And Highest"] = "坦怪中並且是最高"
L["Tanking But Not Highest"] = "坦怪中但不是最高"
L["Target"] = "目標"
L["Targeted"] = "當前目標"
L["Tertiary Stats"] = "第三屬性"
L["Text"] = "文字"
L["Thaddius"] = "泰迪斯"
L["The aura has overwritten the global '%s', this might affect other auras."] = "這個提醒效果會覆蓋全域的 '%s',將會影響其他提醒效果。"
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+174
View File
@@ -1195,5 +1195,179 @@ function Private.Modernize(data)
end
end
if data.internalVersion < 67 then
local function migrateToTable(tab, field)
local value = tab[field]
if value ~= nil and type(value) ~= "table" then
tab[field] = { value }
end
end
do
local trigger_migration = {
["Cast"] = {
"stage",
"stage_operator",
},
["Experience"] = {
"level",
"level_operator",
"currentXP",
"currentXP_operator",
"totalXP",
"totalXP_operator",
"percentXP",
"percentXP_operator",
"restedXP",
"restedXP_operator",
"percentrested",
"percentrested_operator",
},
["Health"] = {
"health",
"health_operator",
"percenthealth",
"percenthealth_operator",
"deficit",
"deficit_operator",
"maxhealth",
"maxhealth_operator",
},
["Power"] = {
"power",
"power_operator",
"percentpower",
"percentpower_operator",
"deficit",
"deficit_operator",
"maxpower",
"maxpower_operator",
},
["Character Stats"] = {
"strength",
"strength_operator",
"agility",
"agility_operator",
"stamina",
"stamina_operator",
"intellect",
"intellect_operator",
"spirit",
"spirit_operator",
"meleecriticalrating",
"meleecriticalrating_operator",
"rangedcriticalrating",
"rangedcriticalrating_operator",
"spellcriticalrating",
"spellcriticalrating_operator",
"meleecriticalpercent",
"meleecriticalpercent_operator",
"rangedcriticalpercent",
"rangedcriticalpercent_operator",
"spellcriticalpercent",
"spellcriticalpercent_operator",
"meleehasterating",
"meleehasterating_operator",
"rangedhasterating",
"rangedhasterating_operator",
"spellhasterating",
"spellhasterating_operator",
"resistancefire",
"resistancefire_operator",
"resistancenature",
"resistancenature_operator",
"resistancefrost",
"resistancefrost_operator",
"resistanceshadow",
"resistanceshadow_operator",
"resistancearcane",
"resistancearcane_operator",
"movespeedpercent",
"movespeedpercent_operator",
"dodgerating",
"dodgerating_operator",
"dodgepercent",
"dodgepercent_operator",
"parryrating",
"parryrating_operator",
"parrypercent",
"parrypercent_operator",
"blockrating",
"blockrating_operator",
"blockpercent",
"blockpercent_operator",
"armorrating",
"armorrating_operator",
"armorpercent",
"armorpercent_operator",
},
["Threat Situation"] = {
"threatpct",
"threatpct_operator",
"rawthreatpct",
"rawthreatpct_operator",
"threatvalue",
"threatvalue_operator",
},
["Unit Characteristics"] = {
"level",
"level_operator",
},
["Combat Log"] = {
"spellId",
"spellName",
},
["Location"] = {
"zone",
"zone_operator",
"subzone",
"subzone_operator",
}
}
for _, triggerData in ipairs(data.triggers) do
local t = triggerData.trigger
local fieldsToMigrate = trigger_migration[t.event]
if fieldsToMigrate then
for _, field in ipairs(fieldsToMigrate) do
migrateToTable(t, field)
end
end
-- cast trigger move data from 'spell' & 'spellId' to 'spellIds' & 'spellNames'
if t.event == "Cast" and t.type == "unit" then
if t.spellId then
if t.useExactSpellId then
t.use_spellIds = t.use_spellId
t.spellIds = t.spellIds or {}
tinsert(t.spellIds, t.spellId)
else
t.use_spellNames = t.use_spellId
t.spellNames = t.spellNames or {}
tinsert(t.spellNames, t.spellId)
end
end
if t.use_spell and t.spell then
t.use_spellNames = true
t.spellNames = t.spellNames or {}
tinsert(t.spellNames, t.spell)
end
t.use_spellId = nil
t.spellId = nil
t.use_spell = nil
t.spell = nil
end
end
end
do
local loadFields = {
"level", "itemequiped", "itemequiped"
}
for _, field in ipairs(loadFields) do
migrateToTable(data.load, field)
migrateToTable(data.load, field .. "_operator")
end
end
end
data.internalVersion = max(data.internalVersion or 0, WeakAuras.InternalVersion());
end
+590 -82
View File
File diff suppressed because it is too large Load Diff
+4
View File
@@ -171,6 +171,7 @@ Private.format_types = {
})
addOption(symbol .. "_abbreviate_max", {
type = "range",
control = "WeakAurasSpinBox",
name = L["Max Char "],
width = WeakAuras.normalWidth,
min = 1,
@@ -206,6 +207,7 @@ Private.format_types = {
addOption(symbol .. "_time_dynamic_threshold", {
type = "range",
control = "WeakAurasSpinBox",
min = 0,
max = 60,
step = 1,
@@ -365,6 +367,7 @@ Private.format_types = {
})
addOption(symbol .. "_abbreviate_max", {
type = "range",
control = "WeakAurasSpinBox",
name = L["Max Char "],
width = WeakAuras.normalWidth,
min = 1,
@@ -492,6 +495,7 @@ Private.format_types = {
})
addOption(symbol .. "_abbreviate_max", {
type = "range",
control = "WeakAurasSpinBox",
name = L["Max Char "],
width = WeakAuras.normalWidth,
min = 1,
+275 -137
View File
@@ -1,6 +1,6 @@
local AddonName, Private = ...
local internalVersion = 52
local internalVersion = 67
-- Lua APIs
local insert = table.insert
@@ -537,6 +537,147 @@ function Private.ParseNumber(numString)
end
end
local function EvalBooleanArg(arg, trigger, default)
if(type(arg) == "function") then
return arg(trigger);
elseif type(arg) == "boolean" then
return arg
elseif type(arg) == "nil" then
return default
end
end
local function singleTest(arg, trigger, use, name, value, operator, use_exact, caseInsensitive)
local number = value and tonumber(value) or nil
if(arg.type == "tristate") then
if(use == false) then
return "(not "..name..")";
elseif(use) then
if(arg.test) then
return "("..arg.test:format(value)..")";
else
return name;
end
end
elseif(arg.type == "tristatestring") then
if(use == false) then
return "("..name.. "~=".. (number or string.format("%s", Private.QuotedString(value or ""))) .. ")"
elseif(use) then
return "("..name.. "==".. (number or string.format("%s", Private.QuotedString(value or ""))) .. ")"
end
elseif(arg.type == "multiselect") then
if arg.multiNoSingle then
-- convert single to multi
-- this is a lazy migration because multiNoSingle is not set for all game versions
if use == true then
trigger["use_"..name] = false
trigger[name] = trigger[name] or {}
trigger[name].multi = {};
if trigger[name].single ~= nil then
trigger[name].multi[trigger[name].single] = true;
trigger[name].single = nil
end
end
end
if(use == false) then -- multi selection
local any = false;
if (value and value.multi) then
local test = "(";
for value, positive in pairs(value.multi) do
local arg1 = tonumber(value) or ("[["..value.."]]")
local arg2
if arg.extraOption then
arg2 = trigger[name .. "_extraOption"] or 0
elseif arg.multiTristate then
arg2 = positive and 4 or 5
end
local testEnabled = true
if type(arg.enableTest) == "function" then
testEnabled = arg.enableTest(trigger, arg1, arg2)
end
if testEnabled then
local check
if not arg.test then
check = name.."=="..arg1
else
check = arg.test:format(arg1, arg2)
end
if arg.multiAll then
test = test..check.." and "
else
test = test..check.." or "
end
any = true;
end
end
if(any) then
test = test:sub(1, -6);
else
test = "(false";
end
test = test..")"
if arg.inverse then
if type(arg.inverse) == "boolean" then
test = "not " .. test
elseif type(arg.inverse) == "function" then
if arg.inverse(trigger) then
test = "not " .. test
end
end
end
return test
end
elseif(use) then -- single selection
local value = value and value.single or nil;
if not arg.test then
return value and "("..name.."=="..(tonumber(value) or ("[["..value.."]]"))..")";
else
return value and "("..arg.test:format(tonumber(value) or ("[["..value.."]]"))..")";
end
end
elseif(arg.type == "toggle") then
if(use) then
if(arg.test) then
return "("..arg.test:format(value)..")";
else
return name;
end
end
elseif (arg.type == "spell") then
if arg.showExactOption then
return "("..arg.test:format(value, tostring(use_exact) or "false") ..")";
else
return "("..arg.test:format(value)..")";
end
elseif(arg.test) then
return "("..arg.test:format(value)..")";
elseif(arg.type == "longstring" and operator) then
if(operator == "==") then
if caseInsensitive then
return ("(%s and %s:lower() == [[%s]]:lower())"):format(name, name, value)
else
return "("..name.."==[["..value.."]])";
end
else
if caseInsensitive then
local op = operator:format(value:lower())
return ("(%s:lower():%s)"):format(name, op)
else
return "("..name..":"..operator:format(value)..")";
end
end
elseif(arg.type == "number") then
if number then
return "("..name..(operator or "==").. number ..")";
end
else
if(type(value) == "table") then
value = "error";
end
return "("..name..(operator or "==")..(number or ("[["..(value or "").."]]"))..")";
end
end
-- Used for the load function, could be simplified a bit
-- It used to be also used for the generic trigger system
local function ConstructFunction(prototype, trigger, skipOptional)
@@ -547,164 +688,108 @@ local function ConstructFunction(prototype, trigger, skipOptional)
local events = {}
local init;
local preambles = ""
local orConjunctionGroups = {}
if(prototype.init) then
init = prototype.init(trigger);
else
init = "";
end
for index, arg in pairs(prototype.args) do
local enable = arg.type ~= "collpase";
if(type(arg.enable) == "function") then
enable = arg.enable(trigger);
elseif type(arg.enable) == "boolean" then
enable = arg.enable
local enable = EvalBooleanArg(arg.enable, trigger, true)
local init = arg.init
local name = arg.name;
if(arg.init == "arg") then
tinsert(input, name);
end
if(enable) then
local name = arg.name;
if not(arg.name or arg.hidden) then
tinsert(input, "_");
else
if(arg.init == "arg") then
tinsert(input, name);
end
if (arg.optional and skipOptional) then
-- Do nothing
elseif(arg.hidden or arg.type == "tristate" or arg.type == "toggle" or arg.type == "tristatestring"
or (arg.type == "multiselect" and trigger["use_"..name] ~= nil)
or ((trigger["use_"..name] or arg.required) and trigger[name])) then
if(arg.init and arg.init ~= "arg") then
init = init.."local "..name.." = "..arg.init.."\n";
end
local number = trigger[name] and tonumber(trigger[name]);
local test;
if(arg.type == "tristate") then
if(trigger["use_"..name] == false) then
test = "(not "..name..")";
elseif(trigger["use_"..name]) then
if(arg.test) then
test = "("..arg.test:format(trigger[name])..")";
else
test = name;
end
end
elseif(arg.type == "tristatestring") then
if(trigger["use_"..name] == false) then
test = "("..name.. "~=".. (number or string.format("%s", Private.QuotedString(trigger[name] or ""))) .. ")"
elseif(trigger["use_"..name]) then
test = "("..name.. "==".. (number or string.format("%s", Private.QuotedString(trigger[name] or ""))) .. ")"
end
elseif(arg.type == "multiselect") then
if(trigger["use_"..name] == false) then -- multi selection
local any = false;
if (trigger[name] and trigger[name].multi) then
test = "(";
for value, _ in pairs(trigger[name].multi) do
if not arg.test then
test = test..name.."=="..(tonumber(value) or "[["..value.."]]").." or ";
else
if arg.extraOption then
test = test..arg.test:format(tonumber(value) or "[["..value.."]]", trigger[name .. "_extraOption"] or 0).." or ";
else
test = test..arg.test:format(tonumber(value) or "[["..value.."]]").." or ";
end
end
any = true;
end
if(any) then
test = test:sub(1, -5);
else
test = "(false";
end
test = test..")"
if arg.inverse then
if type(arg.inverse) == "boolean" then
test = "not " .. test
elseif type(arg.inverse) == "function" then
if arg.inverse(trigger) then
test = "not " .. test
end
end
end
end
elseif(trigger["use_"..name]) then -- single selection
local value = trigger[name] and trigger[name].single;
if not arg.test then
test = trigger[name] and trigger[name].single and "("..name.."=="..(tonumber(value) or "[["..value.."]]")..")";
else
test = trigger[name] and trigger[name].single and "("..arg.test:format(tonumber(value) or "[["..value.."]]")..")";
end
end
elseif(arg.type == "toggle") then
if(trigger["use_"..name]) then
if(arg.test) then
test = "("..arg.test:format(trigger[name])..")";
else
test = name;
end
end
elseif (arg.type == "spell") then
if arg.showExactOption then
test = "("..arg.test:format(trigger[name], tostring(trigger["use_exact_" .. name]) or "false") ..")";
else
test = "("..arg.test:format(trigger[name])..")";
end
elseif(arg.test) then
test = "("..arg.test:format(trigger[name])..")";
elseif(arg.type == "longstring" and trigger[name.."_operator"]) then
if(trigger[name.."_operator"] == "==") then
test = "("..name.."==[["..trigger[name].."]])";
else
test = "("..name..":"..trigger[name.."_operator"]:format(trigger[name])..")";
end
elseif(arg.type == "number") then
if number then
test = "("..name..(trigger[name.."_operator"] or "==").. number ..")";
end
else
if(type(trigger[name]) == "table") then
trigger[name] = "error";
end
test = "("..name..(trigger[name.."_operator"] or "==")..(number or "[["..(trigger[name] or "").."]]")..")";
end
if (arg.preamble) then
preambles = preambles .. arg.preamble:format(trigger[name]) .. "\n"
end
if test ~= "(test)" then
if(arg.required) then
tinsert(required, test);
if(enable) then
if (arg.optional and skipOptional) then
-- Do nothing
elseif arg.type == "tristate"
or arg.type == "toggle"
or arg.type == "tristatestring"
or (arg.type == "multiselect" and trigger["use_"..name] ~= nil)
or ((trigger["use_"..name] or arg.required) and trigger[name])
then
local test;
if arg.multiEntry then
if type(trigger[name]) == "table" and #trigger[name] > 0 then
test = ""
for i, value in ipairs(trigger[name]) do
local operator = name and type(trigger[name.."_operator"]) == "table" and trigger[name.."_operator"][i]
local caseInsensitive = name and arg.canBeCaseInsensitive and type(trigger[name.."_caseInsensitive"]) == "table" and trigger[name.."_caseInsensitive"][i]
local use_exact = name and type(trigger["use_exact_" .. name]) == "table" and trigger["use_exact_" .. name][i]
local use = name and trigger["use_"..name]
local single = singleTest(arg, trigger, use, name, value, operator, use_exact, caseInsensitive)
if single then
if test ~= "" then
test = test .. arg.multiEntry.operator
end
test = test .. single
end
end
if test == "" then
test = nil
else
test = "(" .. test .. ")"
end
end
else
local value = trigger[name]
local operator = name and trigger[name.."_operator"]
local caseInsensitive = name and trigger[name.."_caseInsensitive"]
local use_exact = name and trigger["use_exact_" .. name]
local use = name and trigger["use_"..name]
test = singleTest(arg, trigger, use, name, value, operator, use_exact, caseInsensitive)
end
if (arg.preamble) then
preambles = preambles .. arg.preamble:format(trigger[name]) .. "\n"
end
if test ~= "(test)" then
if(arg.required) then
tinsert(required, test);
elseif test ~= nil then
if arg.orConjunctionGroup then
orConjunctionGroups[arg.orConjunctionGroup ] = orConjunctionGroups[arg.orConjunctionGroup ] or {}
tinsert(orConjunctionGroups[arg.orConjunctionGroup ], test)
else
tinsert(tests, test);
end
end
end
if test and arg.events then
for index, event in ipairs(arg.events) do
events[event] = true
end
if test and arg.events then
for index, event in ipairs(arg.events) do
events[event] = true
end
end
if(arg.debug) then
tinsert(debug, arg.debug:format(trigger[name]));
end
if(arg.debug) then
tinsert(debug, arg.debug:format(trigger[name]));
end
end
end
end
local ret = preambles .. "return function("..table.concat(input, ", ")..")\n";
ret = ret..(init or "");
ret = ret..(#debug > 0 and table.concat(debug, "\n") or "");
ret = ret.."if(";
ret = ret..((#required > 0) and table.concat(required, " and ").." and " or "");
ret = ret..(#tests > 0 and table.concat(tests, " and ") or "true");
ret = ret..") then\n";
if(#debug > 0) then
ret = ret.."print('ret: true');\n";
for _, orConjunctionGroup in pairs(orConjunctionGroups) do
tinsert(tests, "("..table.concat(orConjunctionGroup , " or ")..")")
end
ret = ret.."return true else return false end end";
local ret = {preambles .. "return function("..table.concat(input, ", ")..")\n"};
table.insert(ret, (init or ""));
table.insert(ret, (#debug > 0 and table.concat(debug, "\n") or ""));
table.insert(ret, "if(");
table.insert(ret, ((#required > 0) and table.concat(required, " and ").." and " or ""));
table.insert(ret, (#tests > 0 and table.concat(tests, " and ") or "true"));
table.insert(ret, ") then\n");
if(#debug > 0) then
table.insert(ret, "print('ret: true');\n");
end
table.insert(ret, "return true else return false end end");
return ret, events;
return table.concat(ret), events;
end
function WeakAuras.GetActiveConditions(id, cloneId)
@@ -4846,6 +4931,37 @@ function WeakAuras.IsAuraLoaded(id)
return Private.loaded[id]
end
function WeakAuras.CreateSpellChecker()
local matcher = {
names = {},
spellIds = {},
AddName = function(self, name)
local spellId = tonumber(name)
if spellId then
name = GetSpellInfo(spellId)
if name then
self.names[name] = true
end
else
self.names[name] = true
end
end,
AddExact = function(self, spellId)
spellId = tonumber(spellId)
self.spellIds[spellId] = true
end,
Check = function(self, spellId)
if spellId then
return self.spellIds[spellId] or self.names[GetSpellInfo(spellId)]
end
end,
CheckName = function(self, name)
return self.names[name]
end
}
return matcher
end
function Private.IconSources(data)
local values = {
[-1] = L["Dynamic Information"],
@@ -4874,6 +4990,28 @@ function WeakAuras.GetTriggerCategoryFor(triggerType)
return prototype and prototype.type
end
function Private.SortOrderForValues(values)
local sortOrder = {}
for key, value in pairs(values) do
tinsert(sortOrder, key)
end
table.sort(sortOrder, function(aKey, bKey)
local aValue = values[aKey]
local bValue = values[bKey]
if aValue:sub(1, #WeakAuras.newFeatureString) == WeakAuras.newFeatureString then
aValue = aValue:sub(#WeakAuras.newFeatureString + 1)
end
if bValue:sub(1, #WeakAuras.newFeatureString) == WeakAuras.newFeatureString then
bValue = bValue:sub(#WeakAuras.newFeatureString + 1)
end
return aValue < bValue
end)
return sortOrder
end
do
local function shouldInclude(data, includeGroups, includeLeafs)
if data.controlledChildren then
+1 -1
View File
@@ -1,7 +1,7 @@
## Interface: 30300
## Title: WeakAuras
## Author: The WeakAuras Team
## Version: 4.1.0
## Version: 4.1.1
## Notes: A powerful, comprehensive utility for displaying graphics and information based on buffs, debuffs, and other triggers.
## Notes-esES: Potente y completa aplicación que te permitirá mostrar por pantalla múltiples diseños, basados en beneficios, perjuicios y otros activadores.
## Notes-deDE: Ein leistungsfähiges, umfassendes Addon zur grafischen Darstellung von Informationen von Auren, Cooldowns, Timern und vielem mehr.