This commit is contained in:
NoM0Re
2025-09-13 18:02:26 +02:00
committed by GitHub
parent 3c8ed9f073
commit 348bcce594
43 changed files with 669 additions and 342 deletions
+22 -20
View File
@@ -50,25 +50,6 @@ local WA_IterateGroupMembers = function(reversed, forceParty)
end
end
-- Wrapping a unit's name in its class colour is very common in custom Auras
local WA_ClassColorName = function(unit)
if unit and UnitExists(unit) then
local name = WeakAuras.UnitName(unit)
local _, class = UnitClass(unit)
if not class then
return name
else
local classData = (CUSTOM_CLASS_COLORS or RAID_CLASS_COLORS)[class]
local coloredName = ("|c%s%s|r"):format(classData.colorStr, name)
return coloredName
end
else
return "" -- ¯\_(ツ)_/¯
end
end
WeakAuras.WA_ClassColorName = WA_ClassColorName
-- UTF-8 Sub is pretty commonly needed
local WA_Utf8Sub = function(input, size)
local output = ""
@@ -113,6 +94,27 @@ end
WeakAuras.WA_Utf8Sub = WA_Utf8Sub
-- Wrapping a unit's name in its class colour is very common in custom Auras
local WA_ClassColorName = function(unit, maxlen)
if unit and UnitExists(unit) then
local name = WeakAuras.UnitName(unit)
if maxlen and maxlen > 0 then
name = WA_Utf8Sub(name, maxlen)
end
local _, class = UnitClass(unit)
if not class then
return name
else
local classData = (CUSTOM_CLASS_COLORS or RAID_CLASS_COLORS)[class]
local coloredName = ("|c%s%s|r"):format(classData.colorStr, name)
return coloredName
end
else
return "" -- ¯\_(ツ)_/¯
end
end
WeakAuras.WA_ClassColorName = WA_ClassColorName
WeakAuras.PadString = function(input, padMode, padLength)
input = tostring(input)
@@ -646,7 +648,7 @@ local function CreateFunctionCache(exec_env)
local loadedFunction, errorString = loadstring(string, firstLine(string))
if errorString then
if not silent then
print(string.format(L["Error in aura '%s'"], id), errorString)
print(string.format(L["Error in Aura '%s'"], id), errorString)
end
return nil, errorString
elseif loadedFunction then
+103 -26
View File
@@ -5,6 +5,29 @@ local Private = select(2, ...)
local timer = WeakAuras.timer;
local L = WeakAuras.L
local function TestForMultiSelect(trigger, name, checkValue)
if(trigger["use_"..name] == false) then -- multi selection
if trigger[name] and trigger[name].multi then
if trigger[name].multi[checkValue] then
return "true"
else
return "nil"
end
end
return "false"
elseif(trigger["use_"..name]) then -- single selection
local value = trigger[name] and trigger[name].single
if not value then
return "false"
end
return (value == checkValue) and "true" or "false"
else
return "nil"
end
end
Private.ExecEnv.BossMods = {}
local dbmSupportStates = {
@@ -60,7 +83,7 @@ Private.ExecEnv.BossMods.DBM = {
state.remaining = bar.remaining
end,
TimerMatches = function(self, timerId, message, operator, spellId, counter, triggerId, dbmType, noCastBar, isBarEnabled)
TimerMatches = function(self, timerId, message, operator, spellId, counter, triggerId, dbmType, noCastBar, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
if not self.bars[timerId] then
return false
end
@@ -104,11 +127,23 @@ Private.ExecEnv.BossMods.DBM = {
if dbmType and dbmType ~= v.dbmType then
return false
end
if isPullTimer or isBreakTimer or isTimer then
if (isPullTimer and v.timerType == "pull")
or (isBreakTimer and v.timerType == "break")
or (isTimer and (v.timerType ~= "break" and v.timerType ~= "pull"))
then
-- pass if one of the types match
else
return false
end
end
return true
end,
TimerMatchesGeneric = function(self, timerId, message, operator, spellId, counter, isBarEnabled)
return self:TimerMatches(timerId, message, operator, spellId, counter, nil, nil, true, isBarEnabled)
TimerMatchesGeneric = function(self, timerId, message, operator, spellId, counter, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
return self:TimerMatches(timerId, message, operator, spellId, counter, nil, nil, true, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
end,
GetStage = function()
@@ -126,10 +161,10 @@ Private.ExecEnv.BossMods.DBM = {
return self.bars[timerId]
end,
GetTimer = function(self, message, operator, spellId, extendTimer, count, triggerId, dbmType, noCastBar, isBarEnabled)
GetTimer = function(self, message, operator, spellId, extendTimer, count, triggerId, dbmType, noCastBar, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
local bestMatch
for timerId, bar in pairs(self.bars) do
if self:TimerMatches(timerId, message, operator, spellId, count, triggerId, dbmType, noCastBar, isBarEnabled)
if self:TimerMatches(timerId, message, operator, spellId, count, triggerId, dbmType, noCastBar, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
and (bestMatch == nil or bar.expirationTime < bestMatch.expirationTime)
and bar.expirationTime + extendTimer > GetTime()
then
@@ -139,8 +174,8 @@ Private.ExecEnv.BossMods.DBM = {
return bestMatch
end,
GetTimerGeneric = function(self, message, operator, spellId, extendTimer, count, isBarEnabled)
return self:GetTimer(message, operator, spellId, extendTimer, count, nil, nil, true, isBarEnabled)
GetTimerGeneric = function(self, message, operator, spellId, extendTimer, count, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
return self:GetTimer(message, operator, spellId, extendTimer, count, nil, nil, true, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
end,
RecheckTimers = function(self)
@@ -196,6 +231,11 @@ Private.ExecEnv.BossMods.DBM = {
bar.duration = duration
bar.icon = icon
bar.timerType = timerType
if timerType == "break" then
spellId = -1
elseif timerType == "pull" then
spellId = -2
end
bar.spellId = tostring(spellId)
bar.count = timerCount and tostring(timerCount) or "0"
bar.dbmType = dbmType
@@ -746,6 +786,7 @@ Private.ExecEnv.BossMods.BigWigs = {
state.text = bar.text
state.message = bar.text
state.name = bar.text
state.timerType = bar.timerType
state.duration = bar.duration + extendTimer
state.expirationTime = bar.expirationTime + extendTimer
state.bwBarColor = bar.bwBarColor
@@ -765,7 +806,7 @@ Private.ExecEnv.BossMods.BigWigs = {
state.isBarEnabled = bar.isBarEnabled
end,
TimerMatches = function(self, timerId, message, operator, spellId, counter, cast, cooldown, isBarEnabled)
TimerMatches = function(self, timerId, message, operator, spellId, counter, cast, cooldown, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
if not self.bars[timerId] then
return false
end
@@ -804,11 +845,21 @@ Private.ExecEnv.BossMods.BigWigs = {
if cooldown ~= nil and v.isCooldown ~= cooldown then
return false
end
if isPullTimer or isBreakTimer or isTimer then
if (isPullTimer and v.timerType == "pull")
or (isBreakTimer and v.timerType == "break")
or (isTimer and (v.timerType ~= "break" and v.timerType ~= "pull"))
then
-- pass if one of the types match
else
return false
end
end
return true
end,
TimerMatchesGeneric = function(self, timerId, message, operator, spellId, counter, isBarEnabled)
return self:TimerMatches(timerId, message, operator, spellId, counter, false, nil, isBarEnabled)
TimerMatchesGeneric = function(self, timerId, message, operator, spellId, counter, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
return self:TimerMatches(timerId, message, operator, spellId, counter, false, nil, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
end,
GetStage = function(self)
@@ -823,10 +874,10 @@ Private.ExecEnv.BossMods.BigWigs = {
return self.bars[timerId]
end,
GetTimer = function(self, text, operator, spellId, extendTimer, counter, cast, cooldown, isBarEnabled)
GetTimer = function(self, text, operator, spellId, extendTimer, counter, cast, cooldown, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
local bestMatch
for timerId, bar in pairs(self.bars) do
if self:TimerMatches(timerId, text, operator, spellId, counter, cast, cooldown, isBarEnabled)
if self:TimerMatches(timerId, text, operator, spellId, counter, cast, cooldown, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
and (bestMatch == nil or bar.expirationTime < bestMatch.expirationTime)
and bar.expirationTime + extendTimer > GetTime()
then
@@ -836,8 +887,8 @@ Private.ExecEnv.BossMods.BigWigs = {
return bestMatch
end,
GetTimerGeneric = function(self, text, operator, spellId, extendTimer, counter, isBarEnabled)
return self:GetTimer(text, operator, spellId, extendTimer, counter, false, nil, isBarEnabled)
GetTimerGeneric = function(self, text, operator, spellId, extendTimer, counter, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
return self:GetTimer(text, operator, spellId, extendTimer, counter, false, nil, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
end,
RecheckTimers = function(self)
@@ -889,21 +940,32 @@ Private.ExecEnv.BossMods.BigWigs = {
or event == "BigWigs_StartBreak"
or event == "BigWigs_StartPull"
then
local addon, spellId, duration, _, text, count, icon, isCooldown, isBarEnabled
local addon, spellId, duration, _, text, count, icon, isCooldown, isBarEnabled, timerType
if event == "BigWigs_Timer" then
addon, spellId, duration, _, text, count, icon, isCooldown, isBarEnabled = ...
timerType = "timer"
elseif event == "BigWigs_TargetTimer" or event == "BigWigs_CastTimer" then
addon, spellId, duration, _, text, count, icon, _, isBarEnabled = ...
isCooldown = false
elseif event == "BigWigs_StartBreak" or event == "BigWigs_StartPull" then
addon, duration = ...
local BwLocale = BigWigsAPI:GetLocale("BigWigs")
text = event == "BigWigs_StartBreak" and BwLocale.breakBar or BwLocale.pull
spellId = 0
timerType = "cast"
elseif event == "BigWigs_StartBreak" then
addon, duration, _, _, _, text, icon = ...
text = text
spellId = -1
count = 0
icon = 136116
icon = icon
isCooldown = false
isBarEnabled = true
timerType = "break"
elseif event == "BigWigs_StartPull" then
addon, duration, _, text, icon = ...
text = text
spellId = -2
count = 0
icon = "Interface\\Icons\\Spell_Nature_WispSplode"
isCooldown = false
isBarEnabled = true
timerType = "pull"
end
local now = GetTime()
local expirationTime = now + duration
@@ -919,6 +981,7 @@ Private.ExecEnv.BossMods.BigWigs = {
bar.icon = icon
bar.isCooldown = isCooldown or false
bar.expired = nil
bar.timerType = timerType
local BWColorModule = BigWigs:GetPlugin("Colors")
bar.bwBarColor = BWColorModule:GetColorTable("barColor", addon, spellId)
bar.bwTextColor = BWColorModule:GetColorTable("barText", addon, spellId)
@@ -1606,6 +1669,9 @@ Private.event_prototypes["Boss Mod Timer"] = {
local isDBM = Private.ExecEnv.BossMods.Generic == Private.ExecEnv.BossMods.DBM
return function (states, event, timerId)
local isPullTimer = %s
local isBreakTimer = %s
local isTimer = %s
local triggerSpellId = %q
local triggerText = %q
local triggerTextOperator = %q
@@ -1663,7 +1729,7 @@ Private.event_prototypes["Boss Mod Timer"] = {
or event == "BossMod_TimerPause"
or event == "BossMod_TimerResume"
then
if Private.ExecEnv.BossMods.Generic:TimerMatchesGeneric(timerId, triggerText, triggerTextOperator, triggerSpellId, counter, isBarEnabled) then
if Private.ExecEnv.BossMods.Generic:TimerMatchesGeneric(timerId, triggerText, triggerTextOperator, triggerSpellId, counter, isBarEnabled, isPullTimer, isBreakTimer, isTimer) then
local bar = Private.ExecEnv.BossMods.Generic:GetTimerById(timerId)
if bar then
return copyOrSchedule(bar, cloneId)
@@ -1679,7 +1745,7 @@ Private.event_prototypes["Boss Mod Timer"] = {
elseif event == "BossMod_TimerUpdate" or event == "BossMod_TimerUpdateIcon" then
local changed
for timerId, bar in pairs(Private.ExecEnv.BossMods.Generic:GetAllTimers()) do
if Private.ExecEnv.BossMods.Generic:TimerMatchesGeneric(timerId, triggerText, triggerTextOperator, triggerSpellId, counter, isBarEnabled) then
if Private.ExecEnv.BossMods.Generic:TimerMatchesGeneric(timerId, triggerText, triggerTextOperator, triggerSpellId, counter, isBarEnabled, isPullTimer, isBreakTimer, isTimer) then
changed = copyOrSchedule(bar, timerId) or changed
else
local state = states[timerId]
@@ -1702,7 +1768,7 @@ Private.event_prototypes["Boss Mod Timer"] = {
changed = true
end
for timerId, bar in pairs(Private.ExecEnv.BossMods.Generic:GetAllTimers()) do
if Private.ExecEnv.BossMods.Generic:TimerMatchesGeneric(timerId, triggerText, triggerTextOperator, triggerSpellId, counter, isBarEnabled) then
if Private.ExecEnv.BossMods.Generic:TimerMatchesGeneric(timerId, triggerText, triggerTextOperator, triggerSpellId, counter, isBarEnabled, isPullTimer, isBreakTimer, isTimer) then
changed = copyOrSchedule(bar, timerId) or changed
end
end
@@ -1711,13 +1777,13 @@ Private.event_prototypes["Boss Mod Timer"] = {
else
if event == "BossMod_TimerStart" or event == "BossMod_TimerUpdate" then
if extendTimer ~= 0 then
if Private.ExecEnv.BossMods.Generic:TimerMatchesGeneric(timerId, triggerText, triggerTextOperator, triggerSpellId, counter, isBarEnabled) then
if Private.ExecEnv.BossMods.Generic:TimerMatchesGeneric(timerId, triggerText, triggerTextOperator, triggerSpellId, counter, isBarEnabled, isPullTimer, isBreakTimer, isTimer) then
local bar = Private.ExecEnv.BossMods.Generic:GetTimerById(timerId)
Private.ExecEnv.BossMods.Generic:ScheduleCheck(bar.expirationTime + extendTimer)
end
end
end
local bar = Private.ExecEnv.BossMods.Generic:GetTimerGeneric(triggerText, triggerTextOperator, triggerSpellId, extendTimer, counter, isBarEnabled)
local bar = Private.ExecEnv.BossMods.Generic:GetTimerGeneric(triggerText, triggerTextOperator, triggerSpellId, extendTimer, counter, isBarEnabled, isPullTimer, isBreakTimer, isTimer)
if bar then
if extendTimer == 0
or not (state and state.show)
@@ -1741,6 +1807,9 @@ Private.event_prototypes["Boss Mod Timer"] = {
return ret:format(
trigger.use_count and trigger.count or "",
TestForMultiSelect(trigger, "timerType", "PULL"),
TestForMultiSelect(trigger, "timerType", "BREAK"),
TestForMultiSelect(trigger, "timerType", "TIMER"),
trigger.use_spellId and tostring(trigger.spellId) or "",
trigger.use_message and trigger.message or "",
trigger.use_message and trigger.message_operator or "",
@@ -1751,6 +1820,7 @@ Private.event_prototypes["Boss Mod Timer"] = {
trigger.use_isBarEnabled == nil and "nil" or trigger.use_isBarEnabled and "true" or "false",
trigger.remaining_operator or "<"
)
end,
statesParameter = "full",
args = {
@@ -1770,6 +1840,13 @@ Private.event_prototypes["Boss Mod Timer"] = {
store = true,
conditionType = "string"
},
{
name = "timerType",
desc = L["Select the type of timer to filter"],
display = L["Bar Type"],
type = "multiselect",
values = "bossmods_timerTypes"
},
{
name = "remaining",
display = L["Remaining Time"],
+2 -2
View File
@@ -9,9 +9,9 @@ WeakAuras.halfWidth = WeakAuras.normalWidth / 2
WeakAuras.doubleWidth = WeakAuras.normalWidth * 2
local versionStringFromToc = GetAddOnMetadata("WeakAuras", "Version")
local versionString = "5.20.2 Beta"
local versionString = "5.20.3 Beta"
-- Year, Month, Day, Hour, Minute, Seconds
local buildTime = "2025".."08".."15".."22".."00".."00"
local buildTime = "2025".."09".."13".."18".."00".."00"
local isAwesomeEnabled = C_VoiceChat and C_VoiceChat.SpeakText and 2 -- TTS available
or C_NamePlate and C_NamePlate.GetNamePlateForUnit and 1 -- Nameplates available
or false
+18 -6
View File
@@ -263,6 +263,8 @@ L["Bar enabled in DBM settings"] = "Bar enabled in DBM settings"
--[[Translation missing --]]
L["Bar Texture"] = "Bar Texture"
--[[Translation missing --]]
L["Bar Type"] = "Bar Type"
--[[Translation missing --]]
L["Baron Geddon"] = "Baron Geddon"
--[[Translation missing --]]
L["Battle for Azeroth"] = "Battle for Azeroth"
@@ -329,6 +331,8 @@ L["Bottom to Top"] = "Unten -> Oben"
L["Bounce"] = "Hüpfen"
L["Bounce with Decay"] = "Abklingendes Hüpfen"
--[[Translation missing --]]
L["Break"] = "Break"
--[[Translation missing --]]
L["BreakUpLargeNumbers (Blizzard)"] = "BreakUpLargeNumbers (Blizzard)"
--[[Translation missing --]]
L["Broodlord Lashlayer"] = "Broodlord Lashlayer"
@@ -744,7 +748,7 @@ L["Error Frame"] = "Fehlerfenster"
--[[Translation missing --]]
L["ERROR in '%s' unknown or incompatible sub element type '%s'"] = "ERROR in '%s' unknown or incompatible sub element type '%s'"
--[[Translation missing --]]
L["Error in aura '%s'"] = "Error in aura '%s'"
L["Error in Aura '%s'"] = "Error in Aura '%s'"
--[[Translation missing --]]
L["Error not receiving display information from %s"] = "Error not receiving display information from %s"
--[[Translation missing --]]
@@ -1049,10 +1053,10 @@ L["Install the addons BugSack and BugGrabber for detailed error logs."] = "Insta
L["Instance"] = "Instanz"
L["Instance Difficulty"] = "Instanzschwierigkeit"
--[[Translation missing --]]
L["Instance Id"] = "Instance Id"
--[[Translation missing --]]
L["Instance ID"] = "Instance ID"
--[[Translation missing --]]
L["Instance Id"] = "Instance Id"
--[[Translation missing --]]
L["Instance Info"] = "Instance Info"
--[[Translation missing --]]
L["Instance Name"] = "Instance Name"
@@ -1199,7 +1203,7 @@ L["Lowest Spell Id"] = "Lowest Spell Id"
--[[Translation missing --]]
L["Lua error"] = "Lua error"
--[[Translation missing --]]
L["Lua error in aura '%s': %s"] = "Lua error in aura '%s': %s"
L["Lua error in Aura '%s': %s"] = "Lua error in Aura '%s': %s"
--[[Translation missing --]]
L["Lucifron"] = "Lucifron"
--[[Translation missing --]]
@@ -1501,6 +1505,8 @@ L["Other Events"] = "Other Events"
--[[Translation missing --]]
L["Ouro"] = "Ouro"
L["Outline"] = "Kontur"
--[[Translation missing --]]
L["Over Energize"] = "Over Energize"
L["Overhealing"] = "Überheilung"
L["Overkill"] = "Overkill"
--[[Translation missing --]]
@@ -1619,11 +1625,13 @@ L["Progress"] = "Progress"
L["Progress Source"] = "Progress Source"
L["Progress Total"] = "Totaler Fortschritt"
L["Progress Value"] = "Fortschrittswert"
--[[Translation missing --]]
L["Pull"] = "Pull"
L["Pulse"] = "Pulsieren"
L["PvP Flagged"] = "PvP aktiv"
L["PvP Talent selected"] = "Gewähltes PvP-Talent"
--[[Translation missing --]]
L["PvP Talent Selected"] = "PvP Talent Selected"
L["PvP Talent selected"] = "Gewähltes PvP-Talent"
--[[Translation missing --]]
L["Quality Id"] = "Quality Id"
--[[Translation missing --]]
@@ -1804,6 +1812,8 @@ https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=] ] = [=[Secure f
https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=]
L["Select Frame"] = "Frame auswählen"
--[[Translation missing --]]
L["Select the type of timer to filter"] = "Select the type of timer to filter"
--[[Translation missing --]]
L["Selection Mode"] = "Selection Mode"
--[[Translation missing --]]
L["Separator"] = "Separator"
@@ -2063,8 +2073,8 @@ L["Talent |cFFFF0000Not|r Known"] = "Talent |cFFFF0000Not|r Known"
L["Talent |cFFFF0000Not|r Selected"] = "Talent |cFFFF0000Not|r Selected"
--[[Translation missing --]]
L["Talent Known"] = "Talent Known"
L["Talent Selected"] = "Talent gewählt"
L["Talent selected"] = "Gewähltes Talent"
L["Talent Selected"] = "Talent gewählt"
L["Talent Specialization"] = "Talentspezialisierung"
L["Tanking And Highest"] = "Höchster und Aggro"
L["Tanking But Not Highest"] = "Aggro aber nicht höchste"
@@ -2163,6 +2173,8 @@ L["Timed"] = "Zeitgesteuert"
--[[Translation missing --]]
L["Timed Progress"] = "Timed Progress"
--[[Translation missing --]]
L["Timer"] = "Timer"
--[[Translation missing --]]
L["Timer Id"] = "Timer Id"
L["Toggle"] = "Umschalten"
--[[Translation missing --]]
+12 -6
View File
@@ -193,6 +193,7 @@ L["Bar enabled in BigWigs settings"] = "Bar enabled in BigWigs settings"
L["Bar enabled in Boss Mod addon settings"] = "Bar enabled in Boss Mod addon settings"
L["Bar enabled in DBM settings"] = "Bar enabled in DBM settings"
L["Bar Texture"] = "Bar Texture"
L["Bar Type"] = "Bar Type"
L["Baron Geddon"] = "Baron Geddon"
L["Battle for Azeroth"] = "Battle for Azeroth"
L["Battle.net Whisper"] = "Battle.net Whisper"
@@ -237,6 +238,7 @@ L["Bottom Right"] = "Bottom Right"
L["Bottom to Top"] = "Bottom to Top"
L["Bounce"] = "Bounce"
L["Bounce with Decay"] = "Bounce with Decay"
L["Break"] = "Break"
L["BreakUpLargeNumbers (Blizzard)"] = "BreakUpLargeNumbers (Blizzard)"
L["Broodlord Lashlayer"] = "Broodlord Lashlayer"
L["Buff"] = "Buff"
@@ -499,7 +501,7 @@ L["Error decompressing. This doesn't look like a WeakAuras import."] = "Error de
L["Error deserializing"] = "Error deserializing"
L["Error Frame"] = "Error Frame"
L["ERROR in '%s' unknown or incompatible sub element type '%s'"] = "ERROR in '%s' unknown or incompatible sub element type '%s'"
L["Error in aura '%s'"] = "Error in aura '%s'"
L["Error in Aura '%s'"] = "Error in Aura '%s'"
L["Error not receiving display information from %s"] = "Error not receiving display information from %s"
L["Essence"] = "Essence"
L["Essence #1"] = "Essence #1"
@@ -691,8 +693,8 @@ L["Instakill"] = "Instakill"
L["Install the addons BugSack and BugGrabber for detailed error logs."] = "Install the addons BugSack and BugGrabber for detailed error logs."
L["Instance"] = "Instance"
L["Instance Difficulty"] = "Instance Difficulty"
L["Instance Id"] = "Instance Id"
L["Instance ID"] = "Instance ID"
L["Instance Id"] = "Instance Id"
L["Instance Info"] = "Instance Info"
L["Instance Name"] = "Instance Name"
L["Instance Size Type"] = "Instance Size Type"
@@ -780,7 +782,7 @@ L["Low Damage"] = "Low Damage"
L["Lower Than Tank"] = "Lower Than Tank"
L["Lowest Spell Id"] = "Lowest Spell Id"
L["Lua error"] = "Lua error"
L["Lua error in aura '%s': %s"] = "Lua error in aura '%s': %s"
L["Lua error in Aura '%s': %s"] = "Lua error in Aura '%s': %s"
L["Lucifron"] = "Lucifron"
L["Maexxna"] = "Maexxna"
L["Magic"] = "Magic"
@@ -806,8 +808,8 @@ Intermissions are .5
E.g. 1;2;1;2;2.5;3]=] ] = [=[Matches stage number of encounter journal.
Intermissions are .5
E.g. 1;2;1;2;2.5;3]=]
L["Max Char "] = "Max Char "
L["Max Char"] = "Max Char"
L["Max Char "] = "Max Char "
L["Max Charges"] = "Max Charges"
L["Max Health"] = "Max Health"
L["Max Power"] = "Max Power"
@@ -995,6 +997,7 @@ L["Other Addons"] = "Other Addons"
L["Other Events"] = "Other Events"
L["Ouro"] = "Ouro"
L["Outline"] = "Outline"
L["Over Energize"] = "Over Energize"
L["Overhealing"] = "Overhealing"
L["Overkill"] = "Overkill"
L["Overlay %s"] = "Overlay %s"
@@ -1069,10 +1072,11 @@ L["Progress"] = "Progress"
L["Progress Source"] = "Progress Source"
L["Progress Total"] = "Progress Total"
L["Progress Value"] = "Progress Value"
L["Pull"] = "Pull"
L["Pulse"] = "Pulse"
L["PvP Flagged"] = "PvP Flagged"
L["PvP Talent selected"] = "PvP Talent selected"
L["PvP Talent Selected"] = "PvP Talent Selected"
L["PvP Talent selected"] = "PvP Talent selected"
L["Quality Id"] = "Quality Id"
L["Quantity"] = "Quantity"
L["Quantity earned this week"] = "Quantity earned this week"
@@ -1186,6 +1190,7 @@ L[ [=[Secure frame detected. Find more information:
https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=] ] = [=[Secure frame detected. Find more information:
https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=]
L["Select Frame"] = "Select Frame"
L["Select the type of timer to filter"] = "Select the type of timer to filter"
L["Selection Mode"] = "Selection Mode"
L["Separator"] = "Separator"
L["Set IDs can be found on websites such as wowhead.com/cata/item-sets"] = "Set IDs can be found on websites such as wowhead.com/cata/item-sets"
@@ -1345,8 +1350,8 @@ L["Talent"] = "Talent"
L["Talent |cFFFF0000Not|r Known"] = "Talent |cFFFF0000Not|r Known"
L["Talent |cFFFF0000Not|r Selected"] = "Talent |cFFFF0000Not|r Selected"
L["Talent Known"] = "Talent Known"
L["Talent Selected"] = "Talent Selected"
L["Talent selected"] = "Talent selected"
L["Talent Selected"] = "Talent Selected"
L["Talent Specialization"] = "Talent Specialization"
L["Tanking And Highest"] = "Tanking And Highest"
L["Tanking But Not Highest"] = "Tanking But Not Highest"
@@ -1400,6 +1405,7 @@ L["Time since stack gain"] = "Time since stack gain"
L["Time since stack lost"] = "Time since stack lost"
L["Timed"] = "Timed"
L["Timed Progress"] = "Timed Progress"
L["Timer"] = "Timer"
L["Timer Id"] = "Timer Id"
L["Toggle"] = "Toggle"
L["Toggle List"] = "Toggle List"
+21 -11
View File
@@ -178,6 +178,8 @@ L["Bar enabled in BigWigs settings"] = "Barra activada en la configuración de B
L["Bar enabled in Boss Mod addon settings"] = "Barra activada en la configuración del addon del módulo de jefe"
L["Bar enabled in DBM settings"] = "Barra activada en la configuración de DBM"
L["Bar Texture"] = "Textura de barra"
--[[Translation missing --]]
L["Bar Type"] = "Bar Type"
L["Baron Geddon"] = "Barón Geddon"
L["Battle for Azeroth"] = "Battle for Azeroth"
L["Battle.net Whisper"] = "Battle.net Mensaje"
@@ -222,6 +224,8 @@ L["Bottom Right"] = "Abajo Derecha"
L["Bottom to Top"] = "De Abajo a Arriba"
L["Bounce"] = "Rebotar"
L["Bounce with Decay"] = "Rebotar con Amortiguación"
--[[Translation missing --]]
L["Break"] = "Break"
L["BreakUpLargeNumbers (Blizzard)"] = "BreakUpLargeNumbers (Blizzard)"
L["Broodlord Lashlayer"] = "Señor de linaje Capazote"
L["Buff"] = "Beneficio"
@@ -413,8 +417,7 @@ L["Dragonflight"] = "Dragonflight"
L["Drain"] = "Drenar"
L["Dropdown Menu"] = "Menú desplegable"
L["Dumping table"] = "Tabla de descarga"
--[[Translation missing --]]
L["Dungeon (Celestial)"] = "Dungeon (Celestial)"
L["Dungeon (Celestial)"] = "Mazmorra (Celestial)"
L["Dungeon (Heroic)"] = "Mazmorra (Heroico)"
L["Dungeon (Mythic)"] = "Mazmorra (Mítico)"
L["Dungeon (Mythic+)"] = "Mazmorra (Mítico+)"
@@ -483,7 +486,8 @@ L["Error decompressing. This doesn't look like a WeakAuras import."] = "Error al
L["Error deserializing"] = "Error de deserialización"
L["Error Frame"] = "Marco de error"
L["ERROR in '%s' unknown or incompatible sub element type '%s'"] = "ERROR en '%s' tipo de subelemento '%s' desconocido o incompatible"
L["Error in aura '%s'"] = "Error en el aura '%s'"
--[[Translation missing --]]
L["Error in Aura '%s'"] = "Error in Aura '%s'"
L["Error not receiving display information from %s"] = "Error al no recibir información de visualización de %s"
L["Essence"] = "Esencia"
L["Essence #1"] = "Esencia #1"
@@ -675,8 +679,8 @@ L["Instakill"] = "Muerte Instantanea"
L["Install the addons BugSack and BugGrabber for detailed error logs."] = "Instala los addons BugSack y BugGrabber para obtener registros de errores detallados."
L["Instance"] = "Instancia"
L["Instance Difficulty"] = "Dificultad de la instancia"
L["Instance Id"] = "ID de estancia"
L["Instance ID"] = "ID de estancia"
L["Instance Id"] = "ID de estancia"
L["Instance Info"] = "Info de estancia"
L["Instance Name"] = "Nombre de estancia"
L["Instance Size Type"] = "Tipo de tamaño de estancia"
@@ -758,14 +762,14 @@ L["Loot"] = "Botín"
L["Loot Specialization"] = "Especialización de botín"
L["Loot Specialization Id"] = "ID de especialización de botín"
L["Loot Specialization Name"] = "Nombre de especialización de botín"
--[[Translation missing --]]
L["Lorewalking"] = "Lorewalking"
L["Lorewalking"] = "Paseo por la historia"
L["Lost"] = "Perdido"
L["Low Damage"] = "Bajo Daño"
L["Lower Than Tank"] = "Menor Que el Tanque"
L["Lowest Spell Id"] = "ID de hechizo más bajo"
L["Lua error"] = "Error de lua"
L["Lua error in aura '%s': %s"] = "Error de lua en aura '%s': %s"
--[[Translation missing --]]
L["Lua error in Aura '%s': %s"] = "Lua error in Aura '%s': %s"
L["Lucifron"] = "Lucifron"
L["Maexxna"] = "Maexxna"
L["Magic"] = "Magia"
@@ -943,6 +947,7 @@ L["Other Addons"] = "Otros addons"
L["Other Events"] = "Otros eventos"
L["Ouro"] = "Ouro"
L["Outline"] = "Contorno"
L["Over Energize"] = "Sobreenergizar"
L["Overhealing"] = "Sobre Curación"
L["Overkill"] = "Muerte de Más"
L["Overlay %s"] = "Superposición %s"
@@ -1017,10 +1022,12 @@ L["Progress"] = "Progreso"
L["Progress Source"] = "Fuente de progreso"
L["Progress Total"] = "Progreso total"
L["Progress Value"] = "Valor de progreso"
--[[Translation missing --]]
L["Pull"] = "Pull"
L["Pulse"] = "Pulso"
L["PvP Flagged"] = "Marcado JcJ"
L["PvP Talent selected"] = "Talento de JcJ seleccionado"
L["PvP Talent Selected"] = "Talento de JcJ seleccionado"
L["PvP Talent selected"] = "Talento de JcJ seleccionado"
L["Quality Id"] = "ID de calidad"
L["Quantity"] = "Cantidad"
L["Quantity earned this week"] = "Cantidad ganada esta semana"
@@ -1133,6 +1140,8 @@ L["Seconds"] = "Segundos"
L[ [=[Secure frame detected. Find more information:
https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=] ] = "Marco seguro detectado. Encuentra más información: https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames"
L["Select Frame"] = "Seleccionar marco"
--[[Translation missing --]]
L["Select the type of timer to filter"] = "Select the type of timer to filter"
L["Selection Mode"] = "Modo de selección"
L["Separator"] = "Separador"
L["Set IDs can be found on websites such as wowhead.com/cata/item-sets"] = "Los IDs de conjuntos se pueden encontrar en sitios web como wowhead.com/cata/es/item-sets"
@@ -1287,8 +1296,8 @@ L["Talent"] = "Talento"
L["Talent |cFFFF0000Not|r Known"] = "Talento |cFFFF0000desconocido|r"
L["Talent |cFFFF0000Not|r Selected"] = "Talento |cFFFF0000no|r seleccionado"
L["Talent Known"] = "Talento conocido"
L["Talent Selected"] = "Talento seleccionado"
L["Talent selected"] = "Talento seleccionado"
L["Talent Selected"] = "Talento seleccionado"
L["Talent Specialization"] = "Especialización de Talentos"
L["Tanking And Highest"] = "Tanqueando y el más alto"
L["Tanking But Not Highest"] = "Tanqueando pero no el mas alto"
@@ -1308,8 +1317,7 @@ L["Texture Picker"] = "Selector de texturas"
L["Texture Rotation"] = "Rotación de textura"
L["Thaddius"] = "Thaddius"
L["The aura has overwritten the global '%s', this might affect other auras."] = "La aura ha sobrescrito el '%s' global, esto podría afectar otras auras."
--[[Translation missing --]]
L["The aura tried to overwrite the aura_env global, which is not allowed."] = "The aura tried to overwrite the aura_env global, which is not allowed."
L["The aura tried to overwrite the aura_env global, which is not allowed."] = "El aura intentó sobrescribir la variable global aura_env, lo cual no está permitido"
L["The effective level differs from the level in e.g. Time Walking dungeons."] = "El nivel efectivo difiere del nivel p.ej. mazmorras de paseo en el tiempo"
L["The Four Horsemen"] = "Los cuatro jinetes"
L["The 'ID' value can be found in the BigWigs options of a specific spell"] = "El valor 'ID' se puede encontrar en las opciones de BigWigs de un hechizo específico."
@@ -1343,6 +1351,8 @@ L["Time since stack gain"] = "Tiempo desde gana de acumulación"
L["Time since stack lost"] = "Tiempo desde que se perdió la acumulación"
L["Timed"] = "Temporizado"
L["Timed Progress"] = "Progreso temporizado"
--[[Translation missing --]]
L["Timer"] = "Timer"
L["Timer Id"] = "ID de temporizador"
L["Toggle"] = "Mostrar"
L["Toggle List"] = "Mostar lista"
+20 -10
View File
@@ -178,6 +178,8 @@ L["Bar enabled in BigWigs settings"] = "Barra activada en la configuración de B
L["Bar enabled in Boss Mod addon settings"] = "Barra activada en la configuración del addon del módulo de jefe"
L["Bar enabled in DBM settings"] = "Barra activada en la configuración de DBM"
L["Bar Texture"] = "Textura de barra"
--[[Translation missing --]]
L["Bar Type"] = "Bar Type"
L["Baron Geddon"] = "Barón Geddon"
L["Battle for Azeroth"] = "Battle for Azeroth"
L["Battle.net Whisper"] = "Battle.net Mensaje"
@@ -222,6 +224,8 @@ L["Bottom Right"] = "Abajo Derecha"
L["Bottom to Top"] = "De Abajo a Arriba"
L["Bounce"] = "Rebotar"
L["Bounce with Decay"] = "Rebotar con Amortiguación"
--[[Translation missing --]]
L["Break"] = "Break"
L["BreakUpLargeNumbers (Blizzard)"] = "BreakUpLargeNumbers (Blizzard)"
L["Broodlord Lashlayer"] = "Señor de linaje Capazote"
L["Buff"] = "Beneficio"
@@ -413,8 +417,7 @@ L["Dragonflight"] = "Dragonflight"
L["Drain"] = "Drenar"
L["Dropdown Menu"] = "Menú desplegable"
L["Dumping table"] = "Tabla de descarga"
--[[Translation missing --]]
L["Dungeon (Celestial)"] = "Dungeon (Celestial)"
L["Dungeon (Celestial)"] = "Calabozo (Celestial)"
L["Dungeon (Heroic)"] = "Mazmorra (Heroico)"
L["Dungeon (Mythic)"] = "Mazmorra (Mítico)"
L["Dungeon (Mythic+)"] = "Mazmorra (Mítico+)"
@@ -483,7 +486,8 @@ L["Error decompressing. This doesn't look like a WeakAuras import."] = "Error al
L["Error deserializing"] = "Error de deserialización"
L["Error Frame"] = "Marco de error"
L["ERROR in '%s' unknown or incompatible sub element type '%s'"] = "ERROR en '%s' tipo de subelemento '%s' desconocido o incompatible"
L["Error in aura '%s'"] = "Error en el aura '%s'"
--[[Translation missing --]]
L["Error in Aura '%s'"] = "Error in Aura '%s'"
L["Error not receiving display information from %s"] = "Error al no recibir información de visualización de %s"
L["Essence"] = "Esencia"
L["Essence #1"] = "Esencia #1"
@@ -639,8 +643,8 @@ L["Hybrid"] = "Híbrido"
L["Icon"] = "Icono"
L["Icon Function"] = "Función de icono"
L["Icon Function (fallback state)"] = "Función de icono (estado de reserva)"
L["Id"] = "ID"
L["ID"] = "ID"
L["Id"] = "ID"
L["If you require additional assistance, please open a ticket on GitHub or visit our Discord at https://discord.gg/weakauras!"] = "Si necesitas más ayuda, abre un ticket en GitHub o visita nuestro Discord en https://discord.gg/weakauras."
L["Ignore Dead"] = "Ignorar muertos"
L["Ignore Disconnected"] = "Ignorar desconectados"
@@ -759,14 +763,14 @@ L["Loot"] = "Botín"
L["Loot Specialization"] = "Especialización de botín"
L["Loot Specialization Id"] = "ID de especialización de botín"
L["Loot Specialization Name"] = "Nombre de especialización de botín"
--[[Translation missing --]]
L["Lorewalking"] = "Lorewalking"
L["Lorewalking"] = "Cronoleyenda"
L["Lost"] = "Perdido"
L["Low Damage"] = "Bajo Daño"
L["Lower Than Tank"] = "Menor Que el Tanque"
L["Lowest Spell Id"] = "ID de hechizo más bajo"
L["Lua error"] = "Error de lua"
L["Lua error in aura '%s': %s"] = "Error de lua en aura '%s': %s"
--[[Translation missing --]]
L["Lua error in Aura '%s': %s"] = "Lua error in Aura '%s': %s"
L["Lucifron"] = "Lucifron"
L["Maexxna"] = "Maexxna"
L["Magic"] = "Magia"
@@ -944,6 +948,7 @@ L["Other Addons"] = "Otros addons"
L["Other Events"] = "Otros eventos"
L["Ouro"] = "Ouro"
L["Outline"] = "Contorno"
L["Over Energize"] = "Sobreenergizar"
L["Overhealing"] = "Sobre Curación"
L["Overkill"] = "Muerte de Más"
L["Overlay %s"] = "Superposición %s"
@@ -1018,10 +1023,12 @@ L["Progress"] = "Progreso"
L["Progress Source"] = "Fuente de progreso"
L["Progress Total"] = "Progreso total"
L["Progress Value"] = "Valor de progreso"
--[[Translation missing --]]
L["Pull"] = "Pull"
L["Pulse"] = "Pulso"
L["PvP Flagged"] = "Marcado JcJ"
L["PvP Talent selected"] = "Talento de JcJ seleccionado"
L["PvP Talent Selected"] = "Talento de JcJ seleccionado"
L["PvP Talent selected"] = "Talento de JcJ seleccionado"
L["Quality Id"] = "ID de calidad"
L["Quantity"] = "Cantidad"
L["Quantity earned this week"] = "Cantidad ganada esta semana"
@@ -1134,6 +1141,8 @@ L["Seconds"] = "Segundos"
L[ [=[Secure frame detected. Find more information:
https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=] ] = "Marco seguro detectado. Encuentra más información: https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames"
L["Select Frame"] = "Seleccionar marco"
--[[Translation missing --]]
L["Select the type of timer to filter"] = "Select the type of timer to filter"
L["Selection Mode"] = "Modo de selección"
L["Separator"] = "Separador"
L["Set IDs can be found on websites such as wowhead.com/cata/item-sets"] = "Los ID de conjuntos se pueden encontrar en sitios web como wowhead.com/cata/mx/item-sets"
@@ -1309,8 +1318,7 @@ L["Texture Picker"] = "Selector de texturas"
L["Texture Rotation"] = "Rotación de textura"
L["Thaddius"] = "Thaddius"
L["The aura has overwritten the global '%s', this might affect other auras."] = "La aura ha sobrescrito el '%s' global, esto podría afectar otras auras."
--[[Translation missing --]]
L["The aura tried to overwrite the aura_env global, which is not allowed."] = "The aura tried to overwrite the aura_env global, which is not allowed."
L["The aura tried to overwrite the aura_env global, which is not allowed."] = "El aura intentó sobrescribir la variable global aura_env, lo cual no está permitido."
L["The effective level differs from the level in e.g. Time Walking dungeons."] = "El nivel efectivo difiere del nivel p.ej. mazmorras de paseo en el tiempo"
L["The Four Horsemen"] = "Los cuatro jinetes"
L["The 'ID' value can be found in the BigWigs options of a specific spell"] = "El valor 'ID' se puede encontrar en las opciones de BigWigs de un hechizo específico."
@@ -1344,6 +1352,8 @@ L["Time since stack gain"] = "Tiempo desde gana de acumulación"
L["Time since stack lost"] = "Tiempo desde que se perdió la acumulación"
L["Timed"] = "Temporizado"
L["Timed Progress"] = "Progreso temporizado"
--[[Translation missing --]]
L["Timer"] = "Timer"
L["Timer Id"] = "ID de temporizador"
L["Toggle"] = "Mostrar"
L["Toggle List"] = "Mostar lista"
+17 -5
View File
@@ -202,6 +202,8 @@ L["Bar enabled in DBM settings"] = [=[Barre activée dans les paramètres de DBM
]=]
L["Bar Texture"] = "Texture de la barre"
--[[Translation missing --]]
L["Bar Type"] = "Bar Type"
L["Baron Geddon"] = "Baron Geddon"
L["Battle for Azeroth"] = "Battle for Azeroth"
L["Battle.net Whisper"] = "Message Battle.net"
@@ -260,6 +262,8 @@ L["Bottom to Top"] = "De Bas en Haut"
L["Bounce"] = "Rebond"
L["Bounce with Decay"] = "Rebond décroissant"
--[[Translation missing --]]
L["Break"] = "Break"
--[[Translation missing --]]
L["BreakUpLargeNumbers (Blizzard)"] = "BreakUpLargeNumbers (Blizzard)"
--[[Translation missing --]]
L["Broodlord Lashlayer"] = "Broodlord Lashlayer"
@@ -645,7 +649,7 @@ L["Error Frame"] = "Fenêtre d'erreur"
--[[Translation missing --]]
L["ERROR in '%s' unknown or incompatible sub element type '%s'"] = "ERROR in '%s' unknown or incompatible sub element type '%s'"
--[[Translation missing --]]
L["Error in aura '%s'"] = "Error in aura '%s'"
L["Error in Aura '%s'"] = "Error in Aura '%s'"
L["Error not receiving display information from %s"] = "Erreur de non-réception d'informations d'affichage de %s"
--[[Translation missing --]]
L["Essence"] = "Essence"
@@ -928,10 +932,10 @@ L["Install the addons BugSack and BugGrabber for detailed error logs."] = "Insta
L["Instance"] = "Instance"
L["Instance Difficulty"] = "Difficulté de l'Instance"
--[[Translation missing --]]
L["Instance Id"] = "Instance Id"
--[[Translation missing --]]
L["Instance ID"] = "Instance ID"
--[[Translation missing --]]
L["Instance Id"] = "Instance Id"
--[[Translation missing --]]
L["Instance Info"] = "Instance Info"
--[[Translation missing --]]
L["Instance Name"] = "Instance Name"
@@ -1063,7 +1067,7 @@ L["Lowest Spell Id"] = "Lowest Spell Id"
--[[Translation missing --]]
L["Lua error"] = "Lua error"
--[[Translation missing --]]
L["Lua error in aura '%s': %s"] = "Lua error in aura '%s': %s"
L["Lua error in Aura '%s': %s"] = "Lua error in Aura '%s': %s"
--[[Translation missing --]]
L["Lucifron"] = "Lucifron"
--[[Translation missing --]]
@@ -1327,6 +1331,8 @@ L["Other Addons"] = "Autre Addons"
L["Other Events"] = "Autre Événements"
L["Ouro"] = "Ouro"
L["Outline"] = "Contour"
--[[Translation missing --]]
L["Over Energize"] = "Over Energize"
L["Overhealing"] = "Soin en excès"
L["Overkill"] = "Dégâts en excès"
L["Overlay %s"] = "Superposer %s"
@@ -1425,11 +1431,13 @@ L["Progress"] = "Progrès"
L["Progress Source"] = "Progress Source"
L["Progress Total"] = "Progrès Total"
L["Progress Value"] = "Valeur de progression"
--[[Translation missing --]]
L["Pull"] = "Pull"
L["Pulse"] = "Pulsation"
L["PvP Flagged"] = "JcJ activé"
L["PvP Talent selected"] = "Talent JcJ sélectionné"
--[[Translation missing --]]
L["PvP Talent Selected"] = "PvP Talent Selected"
L["PvP Talent selected"] = "Talent JcJ sélectionné"
--[[Translation missing --]]
L["Quality Id"] = "Quality Id"
--[[Translation missing --]]
@@ -1588,6 +1596,8 @@ https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=] ] = [=[Secure f
https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=]
L["Select Frame"] = "Sélectionner le cadre"
--[[Translation missing --]]
L["Select the type of timer to filter"] = "Select the type of timer to filter"
--[[Translation missing --]]
L["Selection Mode"] = "Selection Mode"
L["Separator"] = "Séparateur"
--[[Translation missing --]]
@@ -1923,6 +1933,8 @@ L["Timed"] = "Temporisé"
--[[Translation missing --]]
L["Timed Progress"] = "Timed Progress"
--[[Translation missing --]]
L["Timer"] = "Timer"
--[[Translation missing --]]
L["Timer Id"] = "Timer Id"
L["Toggle"] = "Basculer"
L["Toggle List"] = "Basculer la liste"
+18 -6
View File
@@ -208,6 +208,8 @@ L["Bar enabled in Boss Mod addon settings"] = "Bar enabled in Boss Mod addon set
L["Bar enabled in DBM settings"] = "Bar enabled in DBM settings"
--[[Translation missing --]]
L["Bar Texture"] = "Bar Texture"
--[[Translation missing --]]
L["Bar Type"] = "Bar Type"
L["Baron Geddon"] = "Barone Geddon"
--[[Translation missing --]]
L["Battle for Azeroth"] = "Battle for Azeroth"
@@ -267,6 +269,8 @@ L["Bottom to Top"] = "Basso verso l'alto"
L["Bounce"] = "Balzo"
L["Bounce with Decay"] = "Bounce with Decay"
--[[Translation missing --]]
L["Break"] = "Break"
--[[Translation missing --]]
L["BreakUpLargeNumbers (Blizzard)"] = "BreakUpLargeNumbers (Blizzard)"
L["Broodlord Lashlayer"] = "Signore della Progenie Lashlayer"
L["Buff"] = "Buff"
@@ -696,7 +700,7 @@ L["Error Frame"] = "Error Frame"
--[[Translation missing --]]
L["ERROR in '%s' unknown or incompatible sub element type '%s'"] = "ERROR in '%s' unknown or incompatible sub element type '%s'"
--[[Translation missing --]]
L["Error in aura '%s'"] = "Error in aura '%s'"
L["Error in Aura '%s'"] = "Error in Aura '%s'"
--[[Translation missing --]]
L["Error not receiving display information from %s"] = "Error not receiving display information from %s"
--[[Translation missing --]]
@@ -1256,7 +1260,7 @@ L["Lowest Spell Id"] = "Lowest Spell Id"
--[[Translation missing --]]
L["Lua error"] = "Lua error"
--[[Translation missing --]]
L["Lua error in aura '%s': %s"] = "Lua error in aura '%s': %s"
L["Lua error in Aura '%s': %s"] = "Lua error in Aura '%s': %s"
--[[Translation missing --]]
L["Lucifron"] = "Lucifron"
--[[Translation missing --]]
@@ -1612,6 +1616,8 @@ L["Ouro"] = "Ouro"
--[[Translation missing --]]
L["Outline"] = "Outline"
--[[Translation missing --]]
L["Over Energize"] = "Over Energize"
--[[Translation missing --]]
L["Overhealing"] = "Overhealing"
--[[Translation missing --]]
L["Overkill"] = "Overkill"
@@ -1760,14 +1766,16 @@ L["Progress Total"] = "Progress Total"
--[[Translation missing --]]
L["Progress Value"] = "Progress Value"
--[[Translation missing --]]
L["Pull"] = "Pull"
--[[Translation missing --]]
L["Pulse"] = "Pulse"
--[[Translation missing --]]
L["PvP Flagged"] = "PvP Flagged"
--[[Translation missing --]]
L["PvP Talent selected"] = "PvP Talent selected"
--[[Translation missing --]]
L["PvP Talent Selected"] = "PvP Talent Selected"
--[[Translation missing --]]
L["PvP Talent selected"] = "PvP Talent selected"
--[[Translation missing --]]
L["Quality Id"] = "Quality Id"
--[[Translation missing --]]
L["Quantity"] = "Quantity"
@@ -1992,6 +2000,8 @@ https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=]
--[[Translation missing --]]
L["Select Frame"] = "Select Frame"
--[[Translation missing --]]
L["Select the type of timer to filter"] = "Select the type of timer to filter"
--[[Translation missing --]]
L["Selection Mode"] = "Selection Mode"
--[[Translation missing --]]
L["Separator"] = "Separator"
@@ -2300,10 +2310,10 @@ L["Talent |cFFFF0000Not|r Selected"] = "Talent |cFFFF0000Not|r Selected"
--[[Translation missing --]]
L["Talent Known"] = "Talent Known"
--[[Translation missing --]]
L["Talent Selected"] = "Talent Selected"
--[[Translation missing --]]
L["Talent selected"] = "Talent selected"
--[[Translation missing --]]
L["Talent Selected"] = "Talent Selected"
--[[Translation missing --]]
L["Talent Specialization"] = "Talent Specialization"
--[[Translation missing --]]
L["Tanking And Highest"] = "Tanking And Highest"
@@ -2410,6 +2420,8 @@ L["Timed"] = "Timed"
--[[Translation missing --]]
L["Timed Progress"] = "Timed Progress"
--[[Translation missing --]]
L["Timer"] = "Timer"
--[[Translation missing --]]
L["Timer Id"] = "Timer Id"
--[[Translation missing --]]
L["Toggle"] = "Toggle"
+21 -17
View File
@@ -191,10 +191,11 @@ L["Background"] = "배경"
L["Background Color"] = "배경색"
L["Balnazzar"] = "발나자르"
L["Bar Color/Gradient Start"] = "바 색상/그라디언트 첫 색상"
L["Bar enabled in BigWigs settings"] = "타이머 바 BigWigs 설정에서 활성화됨"
L["Bar enabled in Boss Mod addon settings"] = "타이머 바 보스모드 애드온 설정에서 활성화됨"
L["Bar enabled in DBM settings"] = "타이머 바가 DBM 설정에서 활성화됨"
L["Bar enabled in BigWigs settings"] = "타이머 바 설정을 BigWigs에서 사용 중"
L["Bar enabled in Boss Mod addon settings"] = "타이머 바 설정을 보스모드 애드온에서 사용 중"
L["Bar enabled in DBM settings"] = "타이머 바 설정을 DBM에서 사용 중"
L["Bar Texture"] = "바 텍스처"
L["Bar Type"] = "타이머 바 종류"
L["Baron Geddon"] = "남작 게돈"
L["Battle for Azeroth"] = "격전의 아제로스"
L["Battle.net Whisper"] = "Battle.net 귓속말"
@@ -239,6 +240,7 @@ L["Bottom Right"] = "오른쪽 아래"
L["Bottom to Top"] = "아래에서 위로"
L["Bounce"] = "튕기기"
L["Bounce with Decay"] = "튕기기 (점점 약하게)"
L["Break"] = "휴식"
L["BreakUpLargeNumbers (Blizzard)"] = "단위에 쉼표 표기 (블리자드)"
L["Broodlord Lashlayer"] = "용기대장 래쉬레이어"
L["Buff"] = "버프"
@@ -333,7 +335,7 @@ L["Cooldown Reduction changes the duration of seconds instead of showing the rea
L["Cooldown/Charges/Count"] = "쿨타임/충전량/사용 가능 횟수"
L["Copper"] = "코퍼"
L["Could not load WeakAuras Archive, the addon is %s"] = "WeakAuras Archive를 불러올 수 없습니다. 애드온이 %s 상태입니다"
L["Count"] = ""
L["Count"] = ""
L["Counter Clockwise"] = "반시계 방향"
L["Create"] = "생성"
L["Creature Family"] = "생물 계열"
@@ -431,8 +433,7 @@ L["Dragonflight"] = "용군단"
L["Drain"] = "마력 소진"
L["Dropdown Menu"] = "드롭다운 메뉴"
L["Dumping table"] = "테이블 덤프"
--[[Translation missing --]]
L["Dungeon (Celestial)"] = "Dungeon (Celestial)"
L["Dungeon (Celestial)"] = "던전 (천신)"
L["Dungeon (Heroic)"] = "던전 (영웅)"
L["Dungeon (Mythic)"] = "던전 (신화)"
L["Dungeon (Mythic+)"] = "던전 (신화+)"
@@ -502,7 +503,7 @@ L["Error decompressing. This doesn't look like a WeakAuras import."] = "압축
L["Error deserializing"] = "역직렬화 오류"
L["Error Frame"] = "오류창"
L["ERROR in '%s' unknown or incompatible sub element type '%s'"] = "'%s'에서 오류 알 수 없거나 비호환 하위 요소 유형 '%s'"
L["Error in aura '%s'"] = "'%s' 위크오라에 오류 발생"
L["Error in Aura '%s'"] = "'%s' 위크오라에 오류 발생"
L["Error not receiving display information from %s"] = "%s에게서 디스플레이 정보를 받지 못하는 오류"
L["Essence"] = "정수"
L["Essence #1"] = "정수 #1"
@@ -658,8 +659,8 @@ L["Hybrid"] = "혼합"
L["Icon"] = "아이콘"
L["Icon Function"] = "아이콘 함수"
L["Icon Function (fallback state)"] = "Icon 함수 (고장 대체 상태)"
L["Id"] = "ID"
L["ID"] = "ID"
L["Id"] = "ID"
L["If you require additional assistance, please open a ticket on GitHub or visit our Discord at https://discord.gg/weakauras!"] = "더 많은 도움이 필요하다면 GitHub에서 티켓을 열거나 저희 Discord (https://discord.gg/weakauras)를 방문해 주세요!"
L["Ignore Dead"] = "죽음 무시"
L["Ignore Disconnected"] = "오프라인 무시"
@@ -777,14 +778,13 @@ L["Loot"] = "전리품 획득"
L["Loot Specialization"] = "전리품 획득 전문화"
L["Loot Specialization Id"] = "전리품 획득 전문화 ID"
L["Loot Specialization Name"] = "전리품 획득 전문화 이름"
--[[Translation missing --]]
L["Lorewalking"] = "Lorewalking"
L["Lorewalking"] = "전승"
L["Lost"] = "손실"
L["Low Damage"] = "낮은 피해"
L["Lower Than Tank"] = "탱커보다 낮을 때"
L["Lowest Spell Id"] = "가장 낮은 주문 ID"
L["Lua error"] = "Lua 오류"
L["Lua error in aura '%s': %s"] = "'%s' 위크오라에 Lua 오류: %s"
L["Lua error in Aura '%s': %s"] = "'%s' 위크오라에 Lua 오류 발생: %s"
L["Lucifron"] = "루시프론"
L["Maexxna"] = "맥스나"
L["Magic"] = "마법"
@@ -997,6 +997,7 @@ L["Other Addons"] = "다른 애드온"
L["Other Events"] = "기타 이벤트"
L["Ouro"] = "아우로"
L["Outline"] = "외곽선"
L["Over Energize"] = "과충전"
L["Overhealing"] = "초과 치유"
L["Overkill"] = "초과 피해"
L["Overlay %s"] = "오버레이 %s"
@@ -1071,10 +1072,11 @@ L["Progress"] = "진행도에 비례"
L["Progress Source"] = "진행 출처"
L["Progress Total"] = "진행 현황"
L["Progress Value"] = "진행도 값"
L["Pull"] = "풀링"
L["Pulse"] = "맥박"
L["PvP Flagged"] = "플레이어 간 전투 활성화"
L["PvP Talent selected"] = "선택한 PvP 특성"
L["PvP Talent Selected"] = "선택한 PvP 특성"
L["PvP Talent selected"] = "선택한 PvP 특성"
L["Quality Id"] = "품질 Id"
L["Quantity"] = "수량"
L["Quantity earned this week"] = "이번주 획득량"
@@ -1188,6 +1190,7 @@ L[ [=[Secure frame detected. Find more information:
https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=] ] = [=[보안 프레임이 감지됐습니다. 자세한 정보:
https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=]
L["Select Frame"] = "프레임 선택"
L["Select the type of timer to filter"] = "필터링할 타이머 유형을 선택합니다"
L["Selection Mode"] = "선택 모드"
L["Separator"] = "구분자"
L["Set IDs can be found on websites such as wowhead.com/cata/item-sets"] = "세트 ID는 wowhead.com/cata/item-sets 같은 웹사이트에서 찾아볼 수 있습니다"
@@ -1330,7 +1333,7 @@ L[ [=[Supports multiple entries, separated by commas. To include child zone ids,
Group Zone IDs must be prefixed with 'g', e.g. 'g277'.
Supports Area IDs from https://wago.tools/db2/AreaTable prefixed with 'a'.
Supports Instance IDs prefixed with 'i'.
Entries can be prefixed with '-' to negate.]=] ] = "여러 항목을 지원하며 쉼표로 구분됩니다. 자식 지역(Child Zone) ID 를 포함하려면 'c2022'처럼 'c'를 접두사로 사용하세요. 그룹 지역(Group Zone) ID는 'g277'처럼 'g'를 접두사로 사용해야 합니다. 구역(Area) ID는 https://wago.tools/db2/AreaTable에서 확인할 수 있으며 'a'를 접두사로 사용합니다. 인스턴스(Instance) ID는 'i'를 접두사로 사용하세요. 이들 항목은 '-'를 접두사로 사용하면 조건이 반대로 해당 지역에 없을 때가 됩니다."
Entries can be prefixed with '-' to negate.]=] ] = "여러 항목을 지원하며 쉼표로 구분됩니다. 자식 지역(Child Zone) ID를 포함하려면 'c2022'처럼 'c'를 접두사로 사용하세요. 그룹 지역(Group Zone) ID는 'g277'처럼 'g'를 접두사로 사용해야 합니다. 구역(Area) ID는 https://wago.tools/db2/AreaTable에서 확인할 수 있으며 'a'를 접두사로 사용합니다. 인스턴스(Instance) ID는 'i'를 접두사로 사용하세요. 이들 항목은 '-'를 접두사로 사용하면 조건이 반대로 해당 지역에 없을 때가 됩니다."
L["Swing"] = "근접 평타"
L["Swing Timer"] = "근접 평타 타이머"
L["Swipe"] = "쿨타임 진행"
@@ -1342,17 +1345,17 @@ L["Talent"] = "특성"
L["Talent |cFFFF0000Not|r Known"] = "습득하지 |cFFFF0000않은|r 특성"
L["Talent |cFFFF0000Not|r Selected"] = "선택하지 |cFFFF0000않은|r 특성"
L["Talent Known"] = "습득한 특성"
L["Talent Selected"] = "선택한 특성"
L["Talent selected"] = "선택한 특성"
L["Talent Selected"] = "선택한 특성"
L["Talent Specialization"] = "특성 전문화"
L["Tanking And Highest"] = "탱커이면서 제일 높을 때"
L["Tanking But Not Highest"] = "탱커지만 제일 높지 않을 때"
L["Target"] = "대상"
L["Targeted"] = "대상이 됨"
L["Tertiary Stats"] = "3차 능력치"
L["Test if bar is enabled in BigWigs settings"] = "타이머 바가 BigWigs 설정에서 활성화되어 있는지 테스트합니다"
L["Test if bar is enabled in Boss Mod addon settings"] = "타이머 바가 보스모드 애드온 설정에서 활성화되어 있는지 테스트합니다"
L["Test if bar is enabled in DBM settings"] = "타이머 바가 DBM 설정에서 활성화되어 있는지 테스트합니다"
L["Test if bar is enabled in BigWigs settings"] = "타이머 바가 BigWigs 설정에서 활성화되어 있는지 체크합니다"
L["Test if bar is enabled in Boss Mod addon settings"] = "타이머 바가 보스모드 애드온 설정에서 활성화되어 있는지 체크합니다"
L["Test if bar is enabled in DBM settings"] = "타이머 바가 DBM 설정에서 활성화되어 있는지 체크합니다"
L["Text"] = "텍스트"
L["Text To Speech"] = "텍스트 음성 변환"
L["Text-to-speech"] = "텍스트 음성 변환"
@@ -1397,6 +1400,7 @@ L["Time since stack gain"] = "중첩 획득 이후 시간"
L["Time since stack lost"] = "중첩 감소 이후 시간"
L["Timed"] = "일정 시간"
L["Timed Progress"] = "시간으로 진행"
L["Timer"] = "타이머"
L["Timer Id"] = "타이머 ID"
L["Toggle"] = "켜기/끄기"
L["Toggle List"] = "목록 열기/닫기"
+20 -8
View File
@@ -256,6 +256,8 @@ L["Bar enabled in Boss Mod addon settings"] = "Bar enabled in Boss Mod addon set
L["Bar enabled in DBM settings"] = "Bar enabled in DBM settings"
--[[Translation missing --]]
L["Bar Texture"] = "Bar Texture"
--[[Translation missing --]]
L["Bar Type"] = "Bar Type"
L["Baron Geddon"] = "Barão Geddon"
--[[Translation missing --]]
L["Battle for Azeroth"] = "Battle for Azeroth"
@@ -316,6 +318,8 @@ L["Bottom to Top"] = "De baixo para cima"
L["Bounce"] = "Salto"
L["Bounce with Decay"] = "Salto com declínio"
--[[Translation missing --]]
L["Break"] = "Break"
--[[Translation missing --]]
L["BreakUpLargeNumbers (Blizzard)"] = "BreakUpLargeNumbers (Blizzard)"
L["Broodlord Lashlayer"] = "Prolemestre Flagelador"
L["Buff"] = "Buff"
@@ -779,7 +783,7 @@ L["Error Frame"] = "Error Frame"
--[[Translation missing --]]
L["ERROR in '%s' unknown or incompatible sub element type '%s'"] = "ERROR in '%s' unknown or incompatible sub element type '%s'"
--[[Translation missing --]]
L["Error in aura '%s'"] = "Error in aura '%s'"
L["Error in Aura '%s'"] = "Error in Aura '%s'"
--[[Translation missing --]]
L["Error not receiving display information from %s"] = "Error not receiving display information from %s"
--[[Translation missing --]]
@@ -1078,10 +1082,10 @@ L["Icon Function"] = "Icon Function"
--[[Translation missing --]]
L["Icon Function (fallback state)"] = "Icon Function (fallback state)"
--[[Translation missing --]]
L["Id"] = "Id"
--[[Translation missing --]]
L["ID"] = "ID"
--[[Translation missing --]]
L["Id"] = "Id"
--[[Translation missing --]]
L["If you require additional assistance, please open a ticket on GitHub or visit our Discord at https://discord.gg/weakauras!"] = "If you require additional assistance, please open a ticket on GitHub or visit our Discord at https://discord.gg/weakauras!"
--[[Translation missing --]]
L["Ignore Dead"] = "Ignore Dead"
@@ -1142,10 +1146,10 @@ L["Install the addons BugSack and BugGrabber for detailed error logs."] = "Insta
L["Instance"] = "Instance"
L["Instance Difficulty"] = "Dificuldade da Instância"
--[[Translation missing --]]
L["Instance Id"] = "Instance Id"
--[[Translation missing --]]
L["Instance ID"] = "Instance ID"
--[[Translation missing --]]
L["Instance Id"] = "Instance Id"
--[[Translation missing --]]
L["Instance Info"] = "Instance Info"
--[[Translation missing --]]
L["Instance Name"] = "Instance Name"
@@ -1312,7 +1316,7 @@ L["Lowest Spell Id"] = "Lowest Spell Id"
--[[Translation missing --]]
L["Lua error"] = "Lua error"
--[[Translation missing --]]
L["Lua error in aura '%s': %s"] = "Lua error in aura '%s': %s"
L["Lua error in Aura '%s': %s"] = "Lua error in Aura '%s': %s"
--[[Translation missing --]]
L["Lucifron"] = "Lucifron"
--[[Translation missing --]]
@@ -1644,6 +1648,8 @@ L["Other Events"] = "Other Events"
L["Ouro"] = "Ouro"
--[[Translation missing --]]
L["Outline"] = "Outline"
--[[Translation missing --]]
L["Over Energize"] = "Over Energize"
L["Overhealing"] = "Sobrecura"
L["Overkill"] = "Sobreassassinato"
--[[Translation missing --]]
@@ -1772,13 +1778,15 @@ L["Progress Source"] = "Progress Source"
L["Progress Total"] = "Progress Total"
--[[Translation missing --]]
L["Progress Value"] = "Progress Value"
--[[Translation missing --]]
L["Pull"] = "Pull"
L["Pulse"] = "Pulsar"
L["PvP Flagged"] = "Marcado para JxJ"
--[[Translation missing --]]
L["PvP Talent selected"] = "PvP Talent selected"
--[[Translation missing --]]
L["PvP Talent Selected"] = "PvP Talent Selected"
--[[Translation missing --]]
L["PvP Talent selected"] = "PvP Talent selected"
--[[Translation missing --]]
L["Quality Id"] = "Quality Id"
--[[Translation missing --]]
L["Quantity"] = "Quantity"
@@ -1977,6 +1985,8 @@ https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=]
--[[Translation missing --]]
L["Select Frame"] = "Select Frame"
--[[Translation missing --]]
L["Select the type of timer to filter"] = "Select the type of timer to filter"
--[[Translation missing --]]
L["Selection Mode"] = "Selection Mode"
--[[Translation missing --]]
L["Separator"] = "Separator"
@@ -2360,6 +2370,8 @@ L["Timed"] = "Temporizado"
--[[Translation missing --]]
L["Timed Progress"] = "Timed Progress"
--[[Translation missing --]]
L["Timer"] = "Timer"
--[[Translation missing --]]
L["Timer Id"] = "Timer Id"
--[[Translation missing --]]
L["Toggle"] = "Toggle"
+20 -7
View File
@@ -192,6 +192,8 @@ L["Bar enabled in Boss Mod addon settings"] = "Bar enabled in Boss Mod addon set
--[[Translation missing --]]
L["Bar enabled in DBM settings"] = "Bar enabled in DBM settings"
L["Bar Texture"] = "Текстура полосы"
--[[Translation missing --]]
L["Bar Type"] = "Bar Type"
L["Baron Geddon"] = "Барон Геддон"
L["Battle for Azeroth"] = "Battle for Azeroth"
L["Battle.net Whisper"] = "Шепот в сети Battle.net"
@@ -236,6 +238,8 @@ L["Bottom Right"] = "Снизу справа"
L["Bottom to Top"] = "Снизу вверх"
L["Bounce"] = "Отскок"
L["Bounce with Decay"] = "Отскок с затуханием"
--[[Translation missing --]]
L["Break"] = "Break"
L["BreakUpLargeNumbers (Blizzard)"] = "РазделениеБольшихЧисел (Blizzard)"
L["Broodlord Lashlayer"] = "Предводитель драконов Разящий Бич"
L["Buff"] = "Бафф"
@@ -511,7 +515,7 @@ L["Error deserializing"] = "Ошибка десериализации"
L["Error Frame"] = "Область вывода ошибок"
L["ERROR in '%s' unknown or incompatible sub element type '%s'"] = "Ошибка в индикации %s. Внутренний элемент неизвестного или несовместимого типа %s."
--[[Translation missing --]]
L["Error in aura '%s'"] = "Error in aura '%s'"
L["Error in Aura '%s'"] = "Error in Aura '%s'"
L["Error not receiving display information from %s"] = [=[Ошибка при получении информации об индикации
от %s]=]
L["Essence"] = "Сущность"
@@ -673,8 +677,8 @@ L["Hybrid"] = "Гибридная"
L["Icon"] = "Иконка"
L["Icon Function"] = "Функция иконки"
L["Icon Function (fallback state)"] = "Функция иконки (резервное состояние)"
L["Id"] = "ID"
L["ID"] = "ID"
L["Id"] = "ID"
L["If you require additional assistance, please open a ticket on GitHub or visit our Discord at https://discord.gg/weakauras!"] = "Если вам необходима дополнительная помощь, пожалуйста, откройте запрос на GitHub или посетите наш сервер в Discord по адресу https://discord.gg/weakauras."
L["Ignore Dead"] = "Не учитывать мёртвые цели"
L["Ignore Disconnected"] = "Не учитывать игроков не в сети"
@@ -710,8 +714,8 @@ L["Instakill"] = "Моментальное убийство"
L["Install the addons BugSack and BugGrabber for detailed error logs."] = "Установите аддоны BugSack и BugGrabber для получения подробных записей об ошибках."
L["Instance"] = "Подземелье"
L["Instance Difficulty"] = "Сложность подземелья"
L["Instance Id"] = "ID подземелья"
L["Instance ID"] = "Идентификатор подземелья"
L["Instance Id"] = "ID подземелья"
L["Instance Info"] = "Информация о подземелье"
L["Instance Name"] = "Название подземелья"
L["Instance Size Type"] = "Тип размера подземелья"
@@ -802,7 +806,8 @@ L["Lower Than Tank"] = "Меньше чем у основной цели"
--[[Translation missing --]]
L["Lowest Spell Id"] = "Lowest Spell Id"
L["Lua error"] = "Ошибка Lua"
L["Lua error in aura '%s': %s"] = "Ошибка Lua в индикации '%s': %s"
--[[Translation missing --]]
L["Lua error in Aura '%s': %s"] = "Lua error in Aura '%s': %s"
L["Lucifron"] = "Люцифрон"
L["Maexxna"] = "Мексна"
L["Magic"] = "Магия"
@@ -828,9 +833,9 @@ L[ [=[Matches stage number of encounter journal.
Intermissions are .5
E.g. 1;2;1;2;2.5;3]=] ] = [=[Совпадает с номером фазы в журнале сражения с боссом. Смена фаз нумеруется как x.5
Например: 1, 2, 1, 2, 2.5, 3.]=]
L["Max Char "] = "Макс. количество символов"
--[[Translation missing --]]
L["Max Char"] = "Max Char"
L["Max Char "] = "Макс. количество символов"
L["Max Charges"] = "Макс. количество зарядов"
L["Max Health"] = "Макс. запас здоровья"
L["Max Power"] = "Макс. запас энергии"
@@ -984,6 +989,8 @@ L["Other Addons"] = "Другие аддоны"
L["Other Events"] = "Другие события"
L["Ouro"] = "Оуро"
L["Outline"] = "Контур"
--[[Translation missing --]]
L["Over Energize"] = "Over Energize"
L["Overhealing"] = "Избыточное исцеление"
L["Overkill"] = "Избыточный урон"
L["Overlay %s"] = "Наложение %s"
@@ -1061,10 +1068,12 @@ L["Progress"] = "Прогресс"
L["Progress Source"] = "Источник прогресса"
L["Progress Total"] = "Общее значение"
L["Progress Value"] = "Текущее значение"
--[[Translation missing --]]
L["Pull"] = "Pull"
L["Pulse"] = "Пульсация"
L["PvP Flagged"] = "В режиме PvP"
L["PvP Talent selected"] = "PvP талант выбран"
L["PvP Talent Selected"] = "PvP талант выбран"
L["PvP Talent selected"] = "PvP талант выбран"
L["Quality Id"] = "ID качества"
L["Quantity"] = "Количество"
L["Quantity earned this week"] = "Заработано на этой неделе"
@@ -1181,6 +1190,8 @@ L[ [=[Secure frame detected. Find more information:
https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=] ] = [=[Обнаружен защищённый кадр. Подробная информация на странице:
https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=]
L["Select Frame"] = "Выбрать кадр"
--[[Translation missing --]]
L["Select the type of timer to filter"] = "Select the type of timer to filter"
L["Selection Mode"] = "Режим выбора"
L["Separator"] = "Разделитель"
L["Set IDs can be found on websites such as wowhead.com/cata/item-sets"] = "Идентификаторы комплектов можно найти здесь - wowhead.com/cata/item-sets"
@@ -1343,8 +1354,8 @@ L["Talent"] = "Талант"
L["Talent |cFFFF0000Not|r Known"] = "Талант |cFFFF0000НЕ|rизвестен"
L["Talent |cFFFF0000Not|r Selected"] = "Талант |cFFFF0000НЕ|r выбран"
L["Talent Known"] = "Талант известен"
L["Talent Selected"] = "Талант выбран"
L["Talent selected"] = "Выбран талант"
L["Talent Selected"] = "Талант выбран"
L["Talent Specialization"] = "Специализация"
L["Tanking And Highest"] = "Вы основная цель; макс. угроза"
L["Tanking But Not Highest"] = "Вы основная цель; не макс. угроза"
@@ -1404,6 +1415,8 @@ L["Time since stack gain"] = "Время с момента увеличения
L["Time since stack lost"] = "Время с момента потери стака"
L["Timed"] = "По истечении времени"
L["Timed Progress"] = "Прогресс по времени"
--[[Translation missing --]]
L["Timer"] = "Timer"
L["Timer Id"] = "ID таймера"
L["Toggle"] = "Переключатель (флажок)"
L["Toggle List"] = "Список переключателей (флажков)"
+19 -5
View File
@@ -193,6 +193,8 @@ L["Bar enabled in BigWigs settings"] = "BigWigs 设置中已启用进度条"
L["Bar enabled in Boss Mod addon settings"] = "首领模组插件设置中已启用进度条"
L["Bar enabled in DBM settings"] = "DBM 设置中已启用进度条"
L["Bar Texture"] = "进度条材质"
--[[Translation missing --]]
L["Bar Type"] = "Bar Type"
L["Baron Geddon"] = "迦顿男爵"
L["Battle for Azeroth"] = "争霸艾泽拉斯"
L["Battle.net Whisper"] = "战网密语"
@@ -237,6 +239,8 @@ L["Bottom Right"] = "右下"
L["Bottom to Top"] = "从下到上"
L["Bounce"] = "弹跳"
L["Bounce with Decay"] = "衰减地弹跳"
--[[Translation missing --]]
L["Break"] = "Break"
L["BreakUpLargeNumbers (Blizzard)"] = "分隔大数字(暴雪)"
L["Broodlord Lashlayer"] = "勒什雷尔"
L["Buff"] = "增益效果"
@@ -498,7 +502,8 @@ L["Error decompressing. This doesn't look like a WeakAuras import."] = "解压
L["Error deserializing"] = "反序列化错误。"
L["Error Frame"] = "错误信息框架"
L["ERROR in '%s' unknown or incompatible sub element type '%s'"] = "错误:光环 %s 中存在未知或不兼容的子元素类型 %s 。"
L["Error in aura '%s'"] = "光环'%s'发生错误"
--[[Translation missing --]]
L["Error in Aura '%s'"] = "Error in Aura '%s'"
L["Error not receiving display information from %s"] = "错误:未收到来自 %s 的图示信息"
L["Essence"] = "精华"
L["Essence #1"] = "精华 #1"
@@ -655,8 +660,8 @@ L["Hybrid"] = "混合"
L["Icon"] = "图标"
L["Icon Function"] = "图标函数"
L["Icon Function (fallback state)"] = "图标函数(后备状态)"
L["Id"] = "ID"
L["ID"] = "ID"
L["Id"] = "ID"
L["If you require additional assistance, please open a ticket on GitHub or visit our Discord at https://discord.gg/weakauras!"] = "如果你需要进一步的协助,请在 GitHub 上提交工单或是访问我们的 Discordhttps://discord.gg/weakauras"
L["Ignore Dead"] = "忽略已死亡"
L["Ignore Disconnected"] = "忽略已离线"
@@ -781,7 +786,8 @@ L["Low Damage"] = "低伤害"
L["Lower Than Tank"] = "比MT低"
L["Lowest Spell Id"] = "最低法术 Id"
L["Lua error"] = "Lua错误"
L["Lua error in aura '%s': %s"] = "光环'%s'的Lua错误:%s"
--[[Translation missing --]]
L["Lua error in Aura '%s': %s"] = "Lua error in Aura '%s': %s"
L["Lucifron"] = "鲁西弗隆"
L["Maexxna"] = "迈克斯纳"
L["Magic"] = "魔法"
@@ -805,8 +811,8 @@ L["Matches (Pattern)"] = "匹配(表达式)"
L[ [=[Matches stage number of encounter journal.
Intermissions are .5
E.g. 1;2;1;2;2.5;3]=] ] = "符合冒险指南的阶段。转阶段为.5。例如1;2;1;2;2.5;3"
L["Max Char "] = "最大字符数"
L["Max Char"] = "最大字符数"
L["Max Char "] = "最大字符数"
L["Max Charges"] = "最大充能次数"
L["Max Health"] = "最大生命值"
L["Max Power"] = "最大能量值"
@@ -998,6 +1004,8 @@ L["Other Addons"] = "其他插件"
L["Other Events"] = "其他事件"
L["Ouro"] = "奥罗"
L["Outline"] = "轮廓"
--[[Translation missing --]]
L["Over Energize"] = "Over Energize"
L["Overhealing"] = "过量治疗"
L["Overkill"] = "过量伤害"
L["Overlay %s"] = "覆盖层 %s"
@@ -1072,10 +1080,12 @@ L["Progress"] = "进度"
L["Progress Source"] = "进度来源"
L["Progress Total"] = "进度总计"
L["Progress Value"] = "进度值"
--[[Translation missing --]]
L["Pull"] = "Pull"
L["Pulse"] = "脉动"
L["PvP Flagged"] = "PvP 状态"
L["PvP Talent selected"] = "PvP 天赋选择"
L["PvP Talent Selected"] = "已选择PvP天赋"
L["PvP Talent selected"] = "PvP 天赋选择"
L["Quality Id"] = "品质ID"
L["Quantity"] = "数量"
L["Quantity earned this week"] = "本周获取数量"
@@ -1188,6 +1198,8 @@ L["Seconds"] = "秒"
L[ [=[Secure frame detected. Find more information:
https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=] ] = "检测到安全框架。请查阅:https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames"
L["Select Frame"] = "选择框体"
--[[Translation missing --]]
L["Select the type of timer to filter"] = "Select the type of timer to filter"
L["Selection Mode"] = "选择模式"
L["Separator"] = "分隔符"
L["Set IDs can be found on websites such as wowhead.com/cata/item-sets"] = "套装 ID 可以在一些数据网站上找到(例如:wowhead.com/cata/item-sets"
@@ -1402,6 +1414,8 @@ L["Time since stack gain"] = "自从获得层数后的时间"
L["Time since stack lost"] = "自从失去层数后的时间"
L["Timed"] = "指定时间"
L["Timed Progress"] = "计时进度"
--[[Translation missing --]]
L["Timer"] = "Timer"
L["Timer Id"] = "计时器 ID"
L["Toggle"] = "切换"
L["Toggle List"] = "打开或关闭列表"
+19 -5
View File
@@ -182,6 +182,8 @@ L["Bar enabled in BigWigs settings"] = "BigWigs 設定中已啟用進度條"
L["Bar enabled in Boss Mod addon settings"] = "首領模組插件的設定中已啟用進度條"
L["Bar enabled in DBM settings"] = "DBM 設定中已啟用進度條"
L["Bar Texture"] = "進度條材質"
--[[Translation missing --]]
L["Bar Type"] = "Bar Type"
L["Baron Geddon"] = "迦頓男爵"
L["Battle for Azeroth"] = "決戰艾澤拉斯"
L["Battle.net Whisper"] = "Battle.net 悄悄話"
@@ -227,6 +229,8 @@ L["Bottom Right"] = "右下"
L["Bottom to Top"] = "下到上"
L["Bounce"] = "彈跳"
L["Bounce with Decay"] = "彈跳衰減"
--[[Translation missing --]]
L["Break"] = "Break"
L["BreakUpLargeNumbers (Blizzard)"] = "BreakUpLargeNumbers (暴雪)"
L["Broodlord Lashlayer"] = "龍領主勒西雷爾"
L["Buff"] = "增益"
@@ -489,7 +493,8 @@ L["Error decompressing. This doesn't look like a WeakAuras import."] = "解壓
L["Error deserializing"] = "反序列化時出錯"
L["Error Frame"] = "錯誤訊息框架"
L["ERROR in '%s' unknown or incompatible sub element type '%s'"] = "'%s' 發生錯誤,未知或不相容的子元素類型 '%s'"
L["Error in aura '%s'"] = "WA 提醒效果 '%s' 發生錯誤"
--[[Translation missing --]]
L["Error in Aura '%s'"] = "Error in Aura '%s'"
L["Error not receiving display information from %s"] = "錯誤:無法收到來自 %s 的顯示資訊"
L["Essence"] = "精華"
L["Essence #1"] = "精華 #1"
@@ -771,7 +776,8 @@ L["Low Damage"] = "低傷害"
L["Lower Than Tank"] = "低於坦克"
L["Lowest Spell Id"] = "最低的法術 ID"
L["Lua error"] = "Lua 錯誤"
L["Lua error in aura '%s': %s"] = "Lua 錯誤,在 WA 提醒效果 '%s': %s"
--[[Translation missing --]]
L["Lua error in Aura '%s': %s"] = "Lua error in Aura '%s': %s"
L["Lucifron"] = "魯西弗隆"
L["Maexxna"] = "梅克絲娜"
L["Magic"] = "魔法"
@@ -796,8 +802,8 @@ L["Matches (Pattern)"] = "符合模式 (Pattern)"
L[ [=[Matches stage number of encounter journal.
Intermissions are .5
E.g. 1;2;1;2;2.5;3]=] ] = "匹配戰鬥日誌的階段號碼。中場為 0.5 例如1;2;1;2;2.5;3"
L["Max Char "] = "最多字元數"
L["Max Char"] = "最多字元數"
L["Max Char "] = "最多字元數"
L["Max Charges"] = "最多可用次數"
L["Max Health"] = "最大血量"
L["Max Power"] = "最大能量"
@@ -972,6 +978,8 @@ L["Other Addons"] = "其他插件"
L["Other Events"] = "其他事件"
L["Ouro"] = "奧羅"
L["Outline"] = "外框"
--[[Translation missing --]]
L["Over Energize"] = "Over Energize"
L["Overhealing"] = "過量治療"
L["Overkill"] = "過量擊殺"
L["Overlay %s"] = "疊加圖層 %s"
@@ -1046,10 +1054,12 @@ L["Progress"] = "進度"
L["Progress Source"] = "進度來源"
L["Progress Total"] = "總進度"
L["Progress Value"] = "進度值"
--[[Translation missing --]]
L["Pull"] = "Pull"
L["Pulse"] = "跳動"
L["PvP Flagged"] = "PvP 標幟"
L["PvP Talent selected"] = "選擇的 PvP 天賦"
L["PvP Talent Selected"] = "已選擇的 PvP 天賦"
L["PvP Talent selected"] = "選擇的 PvP 天賦"
L["Quality Id"] = "品質id"
L["Quantity"] = "數量"
L["Quantity earned this week"] = "本週獲取數量"
@@ -1163,6 +1173,8 @@ L["Seconds"] = "秒數"
L[ [=[Secure frame detected. Find more information:
https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=] ] = "檢測到安全框架。查詢更多訊息:https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames"
L["Select Frame"] = "選擇的框架"
--[[Translation missing --]]
L["Select the type of timer to filter"] = "Select the type of timer to filter"
L["Selection Mode"] = "選擇模式"
L["Separator"] = "分隔線"
L["Set IDs can be found on websites such as wowhead.com/cata/item-sets"] = "套裝 ID 可在 wowhead.com/cata/item-sets 等網站上找到"
@@ -1322,8 +1334,8 @@ L["Talent"] = "天賦"
L["Talent |cFFFF0000Not|r Known"] = "|cFFFF0000未知的|r天賦"
L["Talent |cFFFF0000Not|r Selected"] = "|cFFFF0000沒有選擇|r天賦"
L["Talent Known"] = "已知的天賦"
L["Talent Selected"] = "選擇的天賦"
L["Talent selected"] = "選擇的天賦"
L["Talent Selected"] = "選擇的天賦"
L["Talent Specialization"] = "天賦專精"
L["Tanking And Highest"] = "坦怪中並且是最高"
L["Tanking But Not Highest"] = "坦怪中但不是最高"
@@ -1377,6 +1389,8 @@ L["Time since stack gain"] = "自層數獲取以來的時間"
L["Time since stack lost"] = "自層數失去以來的時間"
L["Timed"] = "計時"
L["Timed Progress"] = "計時進度"
--[[Translation missing --]]
L["Timer"] = "Timer"
L["Timer Id"] = "計時條 ID"
L["Toggle"] = "勾選方塊"
L["Toggle List"] = "勾選方塊清單"
+15 -10
View File
@@ -3595,10 +3595,16 @@ Private.event_prototypes = {
conditionType = "number"
},
{
name = "overEnergize",
display = L["Over Energize"],
type = "number",
init = "arg",
store = true,
conditionType = "number",
enable = function(trigger)
return trigger.subeventSuffix and (trigger.subeventSuffix == "_ENERGIZE")
end
}, -- unknown argument for _ENERGIZE ignored
},
{
name = "powerType",
display = L["Power Type"],
@@ -3617,7 +3623,7 @@ Private.event_prototypes = {
type = "number",
init = "arg",
enable = function(trigger)
return trigger.subeventSuffix and (trigger.subeventSuffix == "_ENERGIZE" or trigger.subeventSuffix == "_DRAIN" or trigger.subeventSuffix == "_LEECH")
return trigger.subeventSuffix and (trigger.subeventSuffix == "_DRAIN" or trigger.subeventSuffix == "_LEECH")
end,
store = true,
conditionType = "number"
@@ -5512,12 +5518,18 @@ Private.event_prototypes = {
operator_types = "only_equal",
store = true,
},
{
name = "inverse",
display = L["Inverse"],
type = "toggle",
test = "true",
},
{
name = "clones",
display = L["Clone per Match"],
type = "toggle",
test = "true",
enable = function(trigger) return not trigger.use_totemType end,
enable = function(trigger) return not (trigger.use_totemType or trigger.use_inverse) end,
},
{
name = "remaining",
@@ -5525,13 +5537,6 @@ Private.event_prototypes = {
type = "number",
enable = function(trigger) return not(trigger.use_inverse) end
},
{
name = "inverse",
display = L["Inverse"],
type = "toggle",
test = "true",
enable = function(trigger) return (trigger.use_totemName or trigger.use_totemNamePattern) and not trigger.use_clones end
}
},
automaticrequired = true
},
+1 -1
View File
@@ -236,7 +236,7 @@ local function SendChat(self, options)
if (not options or WeakAuras.IsOptionsOpen()) then
return
end
Private.HandleChatAction(options.message_type, options.message, options.message_dest, options.message_dest_isunit, options.message_channel, options.r, options.g, options.b, self, options.message_custom, nil, options.message_formaters, options.message_voice);
Private.HandleChatAction(options.message_type, options.message, options.message_dest, options.message_dest_isunit, options.message_channel, options.r, options.g, options.b, self, options.message_custom, nil, options.message_formaters);
end
local function RunCode(self, func)
+2
View File
@@ -195,11 +195,13 @@ local funcs = {
self.tick_color[1], self.tick_color[2], self.tick_color[3], self.tick_color[4] = r, g, b, a or 1
if self.use_texture then
for _, tick in ipairs(self.ticks) do
tick:SetTexture(r, g, b, a or 1)
tick:SetVertexColor(r, g, b, a or 1)
end
self:UpdateTickDesaturated()
else
for _, tick in ipairs(self.ticks) do
tick:SetVertexColor(r, g, b, a or 1)
tick:SetTexture(r, g, b, a or 1)
end
end
+114 -41
View File
@@ -11,7 +11,7 @@ local time, format, floor = time, format, floor
-- WoW APIs
local GetLocale = GetLocale
local TIME_UTIL_WHITE_SPACE_STRIPPABLE = true;
local TIME_UTIL_WHITE_SPACE_STRIPPABLE = not (GetLocale() == "deDE" or GetLocale() == "ruRU");
local SECONDS_PER_MIN = 60;
local SECONDS_PER_HOUR = 60 * SECONDS_PER_MIN;
local SECONDS_PER_DAY = 24 * SECONDS_PER_HOUR;
@@ -39,6 +39,8 @@ SecondsFormatterConstants =
DontConvertToLower = false,
RoundUpLastUnit = true,
DontRoundUpLastUnit = false,
RoundUpIntervals = true,
DontRoundUpIntervals = false,
}
SecondsFormatter.Abbreviation =
@@ -72,11 +74,13 @@ SecondsFormatterMixin = {}
-- approximationSeconds: threshold for representing the seconds as an approximation (ex. "< 2 hours").
-- roundUpLastUnit: determines if the last unit in the output format string is ceiled (floored by default).
-- convertToLower: converts the format string to lowercase.
function SecondsFormatterMixin:Init(approximationSeconds, defaultAbbreviation, roundUpLastUnit, convertToLower)
-- roundUpIntervals: determines if units can be promoted to a higher interval after (ex. 60m -> 1h).
function SecondsFormatterMixin:Init(approximationSeconds, defaultAbbreviation, roundUpLastUnit, convertToLower, roundUpIntervals)
self:SetApproximationSeconds(approximationSeconds or 0);
self:SetMinInterval(SecondsFormatter.Interval.Seconds);
self:SetDefaultAbbreviation(defaultAbbreviation or SecondsFormatter.Abbreviation.None);
self:SetCanRoundUpLastUnit(roundUpLastUnit or false);
self:SetCanRoundUpLastUnit(roundUpLastUnit or SecondsFormatterConstants.DontRoundUpLastUnit);
self:SetCanRoundUpIntervals(roundUpIntervals or SecondsFormatterConstants.DontRoundUpIntervals);
self:SetDesiredUnitCount(2);
self:SetStripIntervalWhitespace(false);
self:SetConvertToLower(convertToLower or false);
@@ -112,7 +116,7 @@ function SecondsFormatterMixin:CanApproximate(seconds)
end
function SecondsFormatterMixin:SetDefaultAbbreviation(defaultAbbreviation)
self.defaultAbbreviation = defaultAbbreviation;
self.defaultAbbreviation = defaultAbbreviation;
end
function SecondsFormatterMixin:GetDefaultAbbreviation()
@@ -135,6 +139,14 @@ function SecondsFormatterMixin:CanRoundUpLastUnit()
return self.roundUpLastUnit;
end
function SecondsFormatterMixin:SetCanRoundUpIntervals(roundUpIntervals)
self.roundUpIntervals = roundUpIntervals;
end
function SecondsFormatterMixin:CanRoundUpIntervals()
return self.roundUpIntervals;
end
function SecondsFormatterMixin:SetDesiredUnitCount(unitCount)
self.unitCount = unitCount;
end
@@ -209,26 +221,27 @@ function SecondsFormatterMixin:Format(seconds, abbreviation)
local desiredCount = self:GetDesiredUnitCount(seconds);
local convertToLower = self.convertToLower;
local intervalUnits = {};
for interval, value in pairs(SecondsFormatter.Interval) do
intervalUnits[value] = 0;
end
local currentInterval = maxInterval;
while ((appendedCount < desiredCount) and (currentInterval >= minInterval)) do
local intervalDescription = self:GetIntervalDescription(currentInterval);
local intervalSeconds = intervalDescription.seconds;
if (seconds >= intervalSeconds) then
appendedCount = appendedCount + 1;
if (output ~= "") then
output = output..L["TIME_UNIT_DELIMITER"];
end
local formatString = self:GetFormatString(currentInterval, abbreviation, convertToLower);
local quotient = seconds / intervalSeconds;
if (quotient > 0) then
if (self:CanRoundUpLastUnit() and ((minInterval == currentInterval) or (appendedCount == desiredCount))) then
output = output..formatString:format(math.ceil(quotient));
else
output = output..formatString:format(math.floor(quotient));
if (self:CanRoundUpLastUnit() and ((minInterval == currentInterval) or (appendedCount == desiredCount))) then
intervalUnits[currentInterval] = math.ceil(quotient);
else
intervalUnits[currentInterval] = math.floor(quotient);
end
else
break;
break;
end
seconds = math.fmod(seconds, intervalSeconds);
@@ -237,6 +250,35 @@ function SecondsFormatterMixin:Format(seconds, abbreviation)
currentInterval = currentInterval - 1;
end
if self:CanRoundUpIntervals() then
-- Intervals are promoted to a higher interval if possible (60m -> 1h) so that a value isn't expressed
-- as 1h 60m as a result of individual interval round-up. This promotion can only happen within the
-- min interval, max interval band so that we don't promote to an interval we don't intend to display.
for interval, value in ipairs(intervalUnits) do
local intervalDescription = self:GetIntervalDescription(interval);
local intervalSeconds = intervalDescription.seconds;
if value == intervalSeconds then
local nextInterval = interval + 1;
if nextInterval <= maxInterval then
intervalUnits[nextInterval] = intervalUnits[nextInterval] + 1;
intervalUnits[interval] = 0;
end
end
end
end
for interval, value in ipairs_reverse(intervalUnits) do
if value > 0 then
if (output ~= "") then
output = output..TIME_UNIT_DELIMITER;
end
local formatString = self:GetFormatString(interval, abbreviation, convertToLower);
output = output..formatString:format(value);
end
end
-- Return the zero format if an acceptable representation couldn't be formed.
if (output == "") then
return self:FormatZero(abbreviation);
@@ -430,38 +472,69 @@ function BreakUpLargeNumbers(value)
return retString;
end
function AbbreviateLargeNumbers(value)
local strLen = strlen(value);
local retString = value;
if ( strLen > 8 ) then
retString = string.sub(value, 1, -7)..L["SECOND_NUMBER_CAP"];
elseif ( strLen > 5 ) then
retString = string.sub(value, 1, -4)..L["FIRST_NUMBER_CAP"];
elseif (strLen > 3 ) then
retString = BreakUpLargeNumbers(value);
end
return retString;
if GetLocale() ~= "zhCN" or GetLocale() ~= "zhTW" or GetLocale() ~= "koKR" then -- non Asian locales use different number abbreviations
function AbbreviateLargeNumbers(value)
local strLen = strlen(value);
local retString = value;
if ( strLen > 8 ) then
retString = string.sub(value, 1, -7)..L["SECOND_NUMBER_CAP"];
elseif ( strLen > 5 ) then
retString = string.sub(value, 1, -4)..L["FIRST_NUMBER_CAP"];
elseif (strLen > 3 ) then
retString = BreakUpLargeNumbers(value);
end
return retString;
end
else -- Asian locales use different number abbreviations
function AbbreviateLargeNumbers(value)
local strLen = strlen(value);
local retString = value;
if ( strLen >= 11 ) then
retString = string.sub(value, 1, -8)..L["SECOND_NUMBER_CAP"];
elseif ( strLen >= 9 ) then
retString = string.sub(value, 1, -9).."."..string.sub(value, -8, -7)..L["SECOND_NUMBER_CAP"];
elseif ( strLen >= 7 ) then
retString = string.sub(value, 1, -5)..L["FIRST_NUMBER_CAP"];
elseif (strLen > 3 ) then
retString = BreakUpLargeNumbers(value);
end
return retString;
end
end
NUMBER_ABBREVIATION_DATA = {
-- Order these from largest to smallest
-- (significandDivisor and fractionDivisor should multiply to be equal to breakpoint)
{ breakpoint = 10000000000000, abbreviation = L["FOURTH_NUMBER_CAP_NO_SPACE"], significandDivisor = 1000000000000, fractionDivisor = 1 },
{ breakpoint = 1000000000000, abbreviation = L["FOURTH_NUMBER_CAP_NO_SPACE"], significandDivisor = 100000000000, fractionDivisor = 10 },
{ breakpoint = 10000000000, abbreviation = L["THIRD_NUMBER_CAP_NO_SPACE"], significandDivisor = 1000000000, fractionDivisor = 1 },
{ breakpoint = 1000000000, abbreviation = L["THIRD_NUMBER_CAP_NO_SPACE"], significandDivisor = 100000000, fractionDivisor = 10 },
{ breakpoint = 10000000, abbreviation = L["SECOND_NUMBER_CAP_NO_SPACE"], significandDivisor = 1000000, fractionDivisor = 1 },
{ breakpoint = 1000000, abbreviation = L["SECOND_NUMBER_CAP_NO_SPACE"], significandDivisor = 100000, fractionDivisor = 10 },
{ breakpoint = 10000, abbreviation = L["FIRST_NUMBER_CAP_NO_SPACE"], significandDivisor = 1000, fractionDivisor = 1 },
{ breakpoint = 1000, abbreviation = L["FIRST_NUMBER_CAP_NO_SPACE"], significandDivisor = 100, fractionDivisor = 10 },
}
if GetLocale() ~= "zhCN" or GetLocale() ~= "zhTW" or GetLocale() ~= "koKR" then -- Asian locales use different number abbreviations
NUMBER_ABBREVIATION_DATA = {
-- Order these from largest to smallest
-- (significandDivisor and fractionDivisor should multiply to be equal to breakpoint)
{ breakpoint = 10000000000000, abbreviation = L["FOURTH_NUMBER_CAP_NO_SPACE"], significandDivisor = 1000000000000, fractionDivisor = 1 },
{ breakpoint = 1000000000000, abbreviation = L["FOURTH_NUMBER_CAP_NO_SPACE"], significandDivisor = 100000000000, fractionDivisor = 10 },
{ breakpoint = 10000000000, abbreviation = L["THIRD_NUMBER_CAP_NO_SPACE"], significandDivisor = 1000000000, fractionDivisor = 1 },
{ breakpoint = 1000000000, abbreviation = L["THIRD_NUMBER_CAP_NO_SPACE"], significandDivisor = 100000000, fractionDivisor = 10 },
{ breakpoint = 10000000, abbreviation = L["SECOND_NUMBER_CAP_NO_SPACE"], significandDivisor = 1000000, fractionDivisor = 1 },
{ breakpoint = 1000000, abbreviation = L["SECOND_NUMBER_CAP_NO_SPACE"], significandDivisor = 100000, fractionDivisor = 10 },
{ breakpoint = 10000, abbreviation = L["FIRST_NUMBER_CAP_NO_SPACE"], significandDivisor = 1000, fractionDivisor = 1 },
{ breakpoint = 1000, abbreviation = L["FIRST_NUMBER_CAP_NO_SPACE"], significandDivisor = 100, fractionDivisor = 10 },
};
else
NUMBER_ABBREVIATION_DATA = {
-- Order these from largest to smallest.
{ breakpoint = 1000000000, abbreviation = L["SECOND_NUMBER_CAP_NO_SPACE"], significandDivisor = 100000000, fractionDivisor = 1 },
{ breakpoint = 100000000, abbreviation = L["SECOND_NUMBER_CAP_NO_SPACE"], significandDivisor = 10000000, fractionDivisor = 10 },
{ breakpoint = 100000, abbreviation = L["FIRST_NUMBER_CAP_NO_SPACE"], significandDivisor = 10000, fractionDivisor = 1 },
{ breakpoint = 10000, abbreviation = L["FIRST_NUMBER_CAP_NO_SPACE"], significandDivisor = 1000, fractionDivisor = 10 },
};
end
function GetLocalizedNumberAbbreviationData()
return NUMBER_ABBREVIATION_DATA;
end
function AbbreviateNumbers(value)
for i, data in ipairs(NUMBER_ABBREVIATION_DATA) do
if value >= data.breakpoint then
local finalValue = math.floor(value / data.significandDivisor) / data.fractionDivisor;
return finalValue .. data.abbreviation;
end
for i, data in ipairs(GetLocalizedNumberAbbreviationData()) do
if value >= data.breakpoint then
local finalValue = math.floor(value / data.significandDivisor) / data.fractionDivisor;
return finalValue .. data.abbreviation;
end
end
return tostring(value);
end
+12 -60
View File
@@ -161,43 +161,6 @@ timeFormatter.GetMaxInterval = function(self)
return #timeFormatIntervalDescriptionFixed
end
local AbbreviateNumbers = AbbreviateNumbers
local gameLocale = GetLocale()
if gameLocale == "koKR" or gameLocale == "zhCN" or gameLocale == "zhTW" then
-- Work around https://github.com/Stanzilla/WoWUIBugs/issues/515
--
local NUMBER_ABBREVIATION_DATA_FIXED={
[1]={
breakpoint = 10000 * 10000,
significandDivisor = 10000 * 10000,
abbreviation = L["SECOND_NUMBER_CAP_NO_SPACE"],
fractionDivisor = 1
},
[2]={
breakpoint = 1000 * 10000,
significandDivisor = 1000 * 10000,
abbreviation = L["SECOND_NUMBER_CAP_NO_SPACE"],
fractionDivisor = 10
},
[3]={
breakpoint = 10000,
significandDivisor = 1000,
abbreviation = L["FIRST_NUMBER_CAP_NO_SPACE"],
fractionDivisor = 10
}
}
AbbreviateNumbers = function(value)
for i, data in ipairs(NUMBER_ABBREVIATION_DATA_FIXED) do
if value >= data.breakpoint then
local finalValue = math.floor(value / data.significandDivisor) / data.fractionDivisor;
return finalValue .. data.abbreviation;
end
end
return tostring(value);
end
end
local simpleFormatters = {
AbbreviateNumbers = function(value)
if type(value) == "string" then value = tonumber(value) end
@@ -1065,16 +1028,16 @@ Private.format_types = {
if cast then
local _, _, _, _, endTime = UnitCastingInfo("player")
local castExpirationTIme = endTime and endTime > 0 and (endTime / 1000) or 0
if castExpirationTIme > 0 then
result = min(result, now + value - castExpirationTIme)
local castExpirationTime = endTime and endTime > 0 and (endTime / 1000) or 0
if castExpirationTime > 0 then
result = min(result, now + value - castExpirationTime)
end
end
if channel then
local _, _, _, _, endTime = UnitChannelInfo("player")
local castExpirationTIme = endTime and endTime > 0 and (endTime / 1000) or 0
if castExpirationTIme > 0 then
result = min(result, now + value - castExpirationTIme)
local castExpirationTime = endTime and endTime > 0 and (endTime / 1000) or 0
if castExpirationTime > 0 then
result = min(result, now + value - castExpirationTime)
end
end
@@ -2854,25 +2817,8 @@ Private.send_chat_message_types = {
PRINT = L["Chat Frame"],
ERROR = L["Error Frame"]
}
Private.tts_voices = {}
if WeakAuras.IsAwesomeEnabled() == 2 then
Private.send_chat_message_types.TTS = L["Text-to-speech"]
local function updateTts()
wipe(Private.tts_voices)
for i, voiceInfo in pairs(C_VoiceChat.GetTtsVoices()) do
Private.tts_voices[voiceInfo.voiceID] = voiceInfo.name
end
end
updateTts()
local TtsUpdateFrame = CreateFrame("FRAME")
TtsUpdateFrame:RegisterEvent("VOICE_CHAT_TTS_VOICES_UPDATE")
TtsUpdateFrame:SetScript("OnEvent", updateTts)
end
Private.group_aura_name_info_types = {
@@ -3634,6 +3580,12 @@ Private.dbm_types = {
[7] = L["Important"]
}
Private.bossmods_timerTypes = {
PULL = L["Pull"],
BREAK = L["Break"],
TIMER = L["Timer"],
}
Private.weapon_enchant_types = {
showOnActive = L["Enchant Found"],
showOnMissing = L["Enchant Missing"],
+17 -9
View File
@@ -110,7 +110,7 @@ do
if data then
Private.AuraWarnings.UpdateWarning(data.uid, "LuaError", "error",
L["This aura has caused a Lua error."] .. "\n" .. L["Install the addons BugSack and BugGrabber for detailed error logs."], true)
table.insert(juicedMessage, L["Lua error in aura '%s': %s"]:format(data.id, currentErrorHandlerContext or L["unknown location"]))
table.insert(juicedMessage, L["Lua error in Aura '%s': %s"]:format(data.id, currentErrorHandlerContext or L["unknown location"]))
else
table.insert(juicedMessage, L["Lua error"])
end
@@ -1421,6 +1421,10 @@ local function GetInstanceTypeAndSize()
if inInstance or instanceType ~= "none" then
local ZoneMapID = GetCurrentMapAreaID()
size = Type
-- WORKAROUND Tol'Viron arena returning a difficulty index of 1
if Type == "arena" or Type == "pvp" then
difficultyIndex = 0
end
if Type == "raid" then
if maxPlayers == 10 then
size = "ten"
@@ -3260,7 +3264,7 @@ function Private.ReleaseClone(id, cloneId, regionType)
end
end
function Private.HandleChatAction(message_type, message, message_dest, message_dest_isunit, message_channel, r, g, b, region, customFunc, when, formatters, voice)
function Private.HandleChatAction(message_type, message, message_dest, message_dest_isunit, message_channel, r, g, b, region, customFunc, when, formatters)
local useHiddenStates = when == "finish"
if (message:find('%%')) then
message = Private.ReplacePlaceHolders(message, region, customFunc, useHiddenStates, formatters);
@@ -3269,11 +3273,12 @@ function Private.HandleChatAction(message_type, message, message_dest, message_d
DEFAULT_CHAT_FRAME:AddMessage(message, r or 1, g or 1, b or 1);
elseif message_type == "TTS" then
if WeakAuras.IsAwesomeEnabled() == 2 then
local validVoice = voice and Private.tts_voices[voice]
if not Private.SquelchingActions() then
pcall(function()
local voice = C_TTSSettings and C_TTSSettings.GetSpeechVoiceID()
if not voice then return end
C_VoiceChat.SpeakText(
validVoice and voice or next(Private.tts_voices) or 0,
voice,
message,
1,
C_TTSSettings and C_TTSSettings.GetSpeechRate() or 0,
@@ -3557,7 +3562,7 @@ function Private.PerformActions(data, when, region)
if(actions.do_message and actions.message_type and actions.message) then
local customFunc = Private.customActionsFunctions[data.id][when .. "_message"];
Private.HandleChatAction(actions.message_type, actions.message, actions.message_dest, actions.message_dest_isunit, actions.message_channel, actions.r, actions.g, actions.b, region, customFunc, when, formatters, actions.message_tts_voice);
Private.HandleChatAction(actions.message_type, actions.message, actions.message_dest, actions.message_dest_isunit, actions.message_channel, actions.r, actions.g, actions.b, region, customFunc, when, formatters);
end
if (actions.stop_sound) then
@@ -4750,7 +4755,10 @@ end
local function ReplaceValuePlaceHolders(textStr, region, customFunc, state, formatter, trigger)
local value;
if string.sub(textStr, 1, 1) == "c" then
local customIndexSubStr = textStr:match("^c(%d*)$")
if customIndexSubStr then
local custom
if customFunc then
custom = Private.RunCustomTextFunc(region, customFunc)
@@ -4758,7 +4766,7 @@ local function ReplaceValuePlaceHolders(textStr, region, customFunc, state, form
custom = region.values.custom
end
local index = tonumber(textStr:match("^c(%d+)$") or 1)
local index = tonumber(customIndexSubStr) or 1
if custom then
value = custom[index]
@@ -4957,8 +4965,8 @@ function Private.ReplacePlaceHolders(textStr, region, customFunc, useHiddenState
return textStr;
end
if (endPos == 2) then
if string.byte(textStr, 1) == 37 then
if (endPos == 2) then -- Two byte string, quickly check for all cases
if string.byte(textStr, 1) == 37 then -- "%"
local symbol = string.sub(textStr, 2)
if symbol == "%" then
return "%" -- Double % input
+2 -2
View File
@@ -1,7 +1,7 @@
## Interface: 30300
## Title: WeakAuras
## Author: The WeakAuras Team
## Version: 5.20.2
## Version: 5.20.3
## IconTexture: Interface\AddOns\WeakAuras\Media\Textures\icon.blp
## X-Flavor: 3.3.5
## Notes: A powerful, comprehensive utility for displaying graphics and information based on buffs, debuffs, and other triggers.
@@ -19,7 +19,7 @@
## DefaultState: Enabled
## LoadOnDemand: 0
## SavedVariables: WeakAurasSaved
## OptionalDeps: Ace3, LibCompress, LibSharedMedia-3.0, AceGUI-3.0-SharedMediaWidgets, Masque, GTFO, LibButtonGlow-1.0, LibSpellRange-1.0, LibRangeCheck-2.0, LibDBIcon-1.0, LibGetFrame-1.0, LibGroupTalents, !!AddonLocale, CustomNames, BigWigs, DBM-Core
## OptionalDeps: Ace3, LibCompress, LibSharedMedia-3.0, AceGUI-3.0-SharedMediaWidgets, Masque, GTFO, LibButtonGlow-1.0, LibSpellRange-1.0, LibRangeCheck-2.0, LibDBIcon-1.0, LibGetFrame-1.0, LibGroupTalents, !!AddonLocale, CustomNames, BigWigs, DBM-Core, AwesomeCVar
Compatibility.lua
Pools.lua