diff --git a/.gitignore b/.gitignore
index 0982f5bd..5476b429 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,14 @@ Libs/DF/feedback_sites.blp
Libs/DF/icons.blp
Libs/DF/mail.blp
plugins/Details_EncounterDetails/images/boss_icons.png
+locales/Details-zhTW.lua
+locales/Details-zhCN.lua
+locales/Details-ruRU.lua
+locales/Details-ptBR.lua
+locales/Details-koKR.lua
+locales/Details-itIT.lua
+locales/Details-frFR.lua
+locales/Details-esMX.lua
+locales/Details-esES.lua
+locales/Details-enUS.lua
+locales/Details-deDE.lua
diff --git a/Libs/AceAddon-3.0/AceAddon-3.0.lua b/Libs/AceAddon-3.0/AceAddon-3.0.lua
index 60215b7b..791bc772 100644
--- a/Libs/AceAddon-3.0/AceAddon-3.0.lua
+++ b/Libs/AceAddon-3.0/AceAddon-3.0.lua
@@ -6,29 +6,29 @@
-- * **OnEnable** which gets called during the PLAYER_LOGIN event, when most of the data provided by the game is already present.
-- * **OnDisable**, which is only called when your addon is manually being disabled.
-- @usage
--- -- A small (but complete) addon, that doesn't do anything,
+-- -- A small (but complete) addon, that doesn't do anything,
-- -- but shows usage of the callbacks.
-- local MyAddon = LibStub("AceAddon-3.0"):NewAddon("MyAddon")
---
+--
-- function MyAddon:OnInitialize()
--- -- do init tasks here, like loading the Saved Variables,
+-- -- do init tasks here, like loading the Saved Variables,
-- -- or setting up slash commands.
-- end
---
+--
-- function MyAddon:OnEnable()
-- -- Do more initialization here, that really enables the use of your addon.
--- -- Register Events, Hook functions, Create Frames, Get information from
+-- -- Register Events, Hook functions, Create Frames, Get information from
-- -- the game that wasn't available in OnInitialize
-- end
--
-- function MyAddon:OnDisable()
-- -- Unhook, Unregister Events, Hide frames that you created.
--- -- You would probably only use an OnDisable if you want to
+-- -- You would probably only use an OnDisable if you want to
-- -- build a "standby" mode, or be able to toggle modules on/off.
-- end
-- @class file
-- @name AceAddon-3.0.lua
--- @release $Id: AceAddon-3.0.lua 1184 2018-07-21 14:13:14Z nevcairiel $
+-- @release $Id: AceAddon-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $
local MAJOR, MINOR = "AceAddon-3.0", 12
local AceAddon, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
@@ -75,7 +75,7 @@ end
local Enable, Disable, EnableModule, DisableModule, Embed, NewModule, GetModule, GetName, SetDefaultModuleState, SetDefaultModuleLibraries, SetEnabledState, SetDefaultModulePrototype
-- used in the addon metatable
-local function addontostring( self ) return self.name end
+local function addontostring( self ) return self.name end
-- Check if the addon is queued for initialization
local function queuedForInitialization(addon)
@@ -88,14 +88,14 @@ local function queuedForInitialization(addon)
end
--- Create a new AceAddon-3.0 addon.
--- Any libraries you specified will be embeded, and the addon will be scheduled for
+-- Any libraries you specified will be embeded, and the addon will be scheduled for
-- its OnInitialize and OnEnable callbacks.
-- The final addon object, with all libraries embeded, will be returned.
-- @paramsig [object ,]name[, lib, ...]
-- @param object Table to use as a base for the addon (optional)
-- @param name Name of the addon object to create
-- @param lib List of libraries to embed into the addon
--- @usage
+-- @usage
-- -- Create a simple addon object
-- MyAddon = LibStub("AceAddon-3.0"):NewAddon("MyAddon", "AceEvent-3.0")
--
@@ -115,10 +115,10 @@ function AceAddon:NewAddon(objectorname, ...)
if type(name)~="string" then
error(("Usage: NewAddon([object,] name, [lib, lib, lib, ...]): 'name' - string expected got '%s'."):format(type(name)), 2)
end
- if self.addons[name] then
+ if self.addons[name] then
error(("Usage: NewAddon([object,] name, [lib, lib, lib, ...]): 'name' - Addon '%s' already exists."):format(name), 2)
end
-
+
object = object or {}
object.name = name
@@ -128,7 +128,7 @@ function AceAddon:NewAddon(objectorname, ...)
for k, v in pairs(oldmeta) do addonmeta[k] = v end
end
addonmeta.__tostring = addontostring
-
+
setmetatable( object, addonmeta )
self.addons[name] = object
object.modules = {}
@@ -136,7 +136,7 @@ function AceAddon:NewAddon(objectorname, ...)
object.defaultModuleLibraries = {}
Embed( object ) -- embed NewModule, GetModule methods
self:EmbedLibraries(object, select(i,...))
-
+
-- add to queue of addons to be initialized upon ADDON_LOADED
tinsert(self.initializequeue, object)
return object
@@ -147,7 +147,7 @@ end
-- Throws an error if the addon object cannot be found (except if silent is set).
-- @param name unique name of the addon object
-- @param silent if true, the addon is optional, silently return nil if its not found
--- @usage
+-- @usage
-- -- Get the Addon
-- MyAddon = LibStub("AceAddon-3.0"):GetAddon("MyAddon")
function AceAddon:GetAddon(name, silent)
@@ -202,7 +202,7 @@ end
-- @paramsig name[, silent]
-- @param name unique name of the module
-- @param silent if true, the module is optional, silently return nil if its not found (optional)
--- @usage
+-- @usage
-- -- Get the Addon
-- MyAddon = LibStub("AceAddon-3.0"):GetAddon("MyAddon")
-- -- Get the Module
@@ -225,23 +225,23 @@ local function IsModuleTrue(self) return true end
-- @param name unique name of the module
-- @param prototype object to derive this module from, methods and values from this table will be mixed into the module (optional)
-- @param lib List of libraries to embed into the addon
--- @usage
+-- @usage
-- -- Create a module with some embeded libraries
-- MyModule = MyAddon:NewModule("MyModule", "AceEvent-3.0", "AceHook-3.0")
---
+--
-- -- Create a module with a prototype
-- local prototype = { OnEnable = function(self) print("OnEnable called!") end }
-- MyModule = MyAddon:NewModule("MyModule", prototype, "AceEvent-3.0", "AceHook-3.0")
function NewModule(self, name, prototype, ...)
if type(name) ~= "string" then error(("Usage: NewModule(name, [prototype, [lib, lib, lib, ...]): 'name' - string expected got '%s'."):format(type(name)), 2) end
if type(prototype) ~= "string" and type(prototype) ~= "table" and type(prototype) ~= "nil" then error(("Usage: NewModule(name, [prototype, [lib, lib, lib, ...]): 'prototype' - table (prototype), string (lib) or nil expected got '%s'."):format(type(prototype)), 2) end
-
+
if self.modules[name] then error(("Usage: NewModule(name, [prototype, [lib, lib, lib, ...]): 'name' - Module '%s' already exists."):format(name), 2) end
-
+
-- modules are basically addons. We treat them as such. They will be added to the initializequeue properly as well.
-- NewModule can only be called after the parent addon is present thus the modules will be initialized after their parent is.
local module = AceAddon:NewAddon(fmt("%s_%s", self.name or tostring(self), name))
-
+
module.IsModule = IsModuleTrue
module:SetEnabledState(self.defaultModuleState)
module.moduleName = name
@@ -256,24 +256,24 @@ function NewModule(self, name, prototype, ...)
if not prototype or type(prototype) == "string" then
prototype = self.defaultModulePrototype or nil
end
-
+
if type(prototype) == "table" then
local mt = getmetatable(module)
mt.__index = prototype
setmetatable(module, mt) -- More of a Base class type feel.
end
-
+
safecall(self.OnModuleCreated, self, module) -- Was in Ace2 and I think it could be a cool thing to have handy.
self.modules[name] = module
tinsert(self.orderedModules, module)
-
+
return module
end
--- Returns the real name of the addon or module, without any prefix.
-- @name //addon//:GetName
--- @paramsig
--- @usage
+-- @paramsig
+-- @usage
-- print(MyAddon:GetName())
-- -- prints "MyAddon"
function GetName(self)
@@ -285,8 +285,8 @@ end
-- and enabling all modules of the addon (unless explicitly disabled).\\
-- :Enable() also sets the internal `enableState` variable to true
-- @name //addon//:Enable
--- @paramsig
--- @usage
+-- @paramsig
+-- @usage
-- -- Enable MyModule
-- MyAddon = LibStub("AceAddon-3.0"):GetAddon("MyAddon")
-- MyModule = MyAddon:GetModule("MyModule")
@@ -306,8 +306,8 @@ end
-- and disabling all modules of the addon.\\
-- :Disable() also sets the internal `enableState` variable to false
-- @name //addon//:Disable
--- @paramsig
--- @usage
+-- @paramsig
+-- @usage
-- -- Disable MyAddon
-- MyAddon = LibStub("AceAddon-3.0"):GetAddon("MyAddon")
-- MyAddon:Disable()
@@ -320,7 +320,7 @@ end
-- Short-hand function that retrieves the module via `:GetModule` and calls `:Enable` on the module object.
-- @name //addon//:EnableModule
-- @paramsig name
--- @usage
+-- @usage
-- -- Enable MyModule using :GetModule
-- MyAddon = LibStub("AceAddon-3.0"):GetAddon("MyAddon")
-- MyModule = MyAddon:GetModule("MyModule")
@@ -338,7 +338,7 @@ end
-- Short-hand function that retrieves the module via `:GetModule` and calls `:Disable` on the module object.
-- @name //addon//:DisableModule
-- @paramsig name
--- @usage
+-- @usage
-- -- Disable MyModule using :GetModule
-- MyAddon = LibStub("AceAddon-3.0"):GetAddon("MyAddon")
-- MyModule = MyAddon:GetModule("MyModule")
@@ -357,7 +357,7 @@ end
-- @name //addon//:SetDefaultModuleLibraries
-- @paramsig lib[, lib, ...]
-- @param lib List of libraries to embed into the addon
--- @usage
+-- @usage
-- -- Create the addon object
-- MyAddon = LibStub("AceAddon-3.0"):NewAddon("MyAddon")
-- -- Configure default libraries for modules (all modules need AceEvent-3.0)
@@ -376,7 +376,7 @@ end
-- @name //addon//:SetDefaultModuleState
-- @paramsig state
-- @param state Default state for new modules, true for enabled, false for disabled
--- @usage
+-- @usage
-- -- Create the addon object
-- MyAddon = LibStub("AceAddon-3.0"):NewAddon("MyAddon")
-- -- Set the default state to "disabled"
@@ -396,7 +396,7 @@ end
-- @name //addon//:SetDefaultModulePrototype
-- @paramsig prototype
-- @param prototype Default prototype for the new modules (table)
--- @usage
+-- @usage
-- -- Define a prototype
-- local prototype = { OnEnable = function(self) print("OnEnable called!") end }
-- -- Set the default prototype
@@ -428,8 +428,8 @@ end
--- Return an iterator of all modules associated to the addon.
-- @name //addon//:IterateModules
--- @paramsig
--- @usage
+-- @paramsig
+-- @usage
-- -- Enable all modules
-- for name, module in MyAddon:IterateModules() do
-- module:Enable()
@@ -438,13 +438,13 @@ local function IterateModules(self) return pairs(self.modules) end
-- Returns an iterator of all embeds in the addon
-- @name //addon//:IterateEmbeds
--- @paramsig
+-- @paramsig
local function IterateEmbeds(self) return pairs(AceAddon.embeds[self]) end
--- Query the enabledState of an addon.
-- @name //addon//:IsEnabled
--- @paramsig
--- @usage
+-- @paramsig
+-- @usage
-- if MyAddon:IsEnabled() then
-- MyAddon:Disable()
-- end
@@ -489,20 +489,20 @@ end
-- - Initialize the addon after creation.
-- This function is only used internally during the ADDON_LOADED event
--- It will call the **OnInitialize** function on the addon object (if present),
+-- It will call the **OnInitialize** function on the addon object (if present),
-- and the **OnEmbedInitialize** function on all embeded libraries.
---
+--
-- **Note:** Do not call this function manually, unless you're absolutely sure that you know what you are doing.
-- @param addon addon object to intialize
function AceAddon:InitializeAddon(addon)
safecall(addon.OnInitialize, addon)
-
+
local embeds = self.embeds[addon]
for i = 1, #embeds do
local lib = LibStub:GetLibrary(embeds[i], true)
if lib then safecall(lib.OnEmbedInitialize, lib, addon) end
end
-
+
-- we don't call InitializeAddon on modules specifically, this is handled
-- from the event handler and only done _once_
end
@@ -510,7 +510,7 @@ end
-- - Enable the addon after creation.
-- Note: This function is only used internally during the PLAYER_LOGIN event, or during ADDON_LOADED,
-- if IsLoggedIn() already returns true at that point, e.g. for LoD Addons.
--- It will call the **OnEnable** function on the addon object (if present),
+-- It will call the **OnEnable** function on the addon object (if present),
-- and the **OnEmbedEnable** function on all embeded libraries.\\
-- This function does not toggle the enable state of the addon itself, and will return early if the addon is disabled.
--
@@ -520,12 +520,12 @@ end
function AceAddon:EnableAddon(addon)
if type(addon) == "string" then addon = AceAddon:GetAddon(addon) end
if self.statuses[addon.name] or not addon.enabledState then return false end
-
+
-- set the statuses first, before calling the OnEnable. this allows for Disabling of the addon in OnEnable.
self.statuses[addon.name] = true
-
+
safecall(addon.OnEnable, addon)
-
+
-- make sure we're still enabled before continueing
if self.statuses[addon.name] then
local embeds = self.embeds[addon]
@@ -533,7 +533,7 @@ function AceAddon:EnableAddon(addon)
local lib = LibStub:GetLibrary(embeds[i], true)
if lib then safecall(lib.OnEmbedEnable, lib, addon) end
end
-
+
-- enable possible modules.
local modules = addon.orderedModules
for i = 1, #modules do
@@ -545,24 +545,24 @@ end
-- - Disable the addon
-- Note: This function is only used internally.
--- It will call the **OnDisable** function on the addon object (if present),
+-- It will call the **OnDisable** function on the addon object (if present),
-- and the **OnEmbedDisable** function on all embeded libraries.\\
-- This function does not toggle the enable state of the addon itself, and will return early if the addon is still enabled.
--
--- **Note:** Do not call this function manually, unless you're absolutely sure that you know what you are doing.
+-- **Note:** Do not call this function manually, unless you're absolutely sure that you know what you are doing.
-- Use :Disable on the addon itself instead.
-- @param addon addon object to enable
function AceAddon:DisableAddon(addon)
if type(addon) == "string" then addon = AceAddon:GetAddon(addon) end
if not self.statuses[addon.name] then return false end
-
+
-- set statuses first before calling OnDisable, this allows for aborting the disable in OnDisable.
self.statuses[addon.name] = false
-
+
safecall( addon.OnDisable, addon )
-
+
-- make sure we're still disabling...
- if not self.statuses[addon.name] then
+ if not self.statuses[addon.name] then
local embeds = self.embeds[addon]
for i = 1, #embeds do
local lib = LibStub:GetLibrary(embeds[i], true)
@@ -574,12 +574,12 @@ function AceAddon:DisableAddon(addon)
self:DisableAddon(modules[i])
end
end
-
+
return not self.statuses[addon.name] -- return true if we're disabled
end
--- Get an iterator over all registered addons.
--- @usage
+-- @usage
-- -- Print a list of all installed AceAddon's
-- for name, addon in AceAddon:IterateAddons() do
-- print("Addon: " .. name)
@@ -587,7 +587,7 @@ end
function AceAddon:IterateAddons() return pairs(self.addons) end
--- Get an iterator over the internal status registry.
--- @usage
+-- @usage
-- -- Print a list of all enabled addons
-- for name, status in AceAddon:IterateAddonStatus() do
-- if status then
@@ -613,7 +613,7 @@ local function onEvent(this, event, arg1)
AceAddon:InitializeAddon(addon)
tinsert(AceAddon.enablequeue, addon)
end
-
+
if IsLoggedIn() then
while(#AceAddon.enablequeue > 0) do
local addon = tremove(AceAddon.enablequeue, 1)
diff --git a/Libs/AceBucket-3.0/AceBucket-3.0.lua b/Libs/AceBucket-3.0/AceBucket-3.0.lua
new file mode 100644
index 00000000..514c05e8
--- /dev/null
+++ b/Libs/AceBucket-3.0/AceBucket-3.0.lua
@@ -0,0 +1,264 @@
+--- A bucket to catch events in. **AceBucket-3.0** provides throttling of events that fire in bursts and
+-- your addon only needs to know about the full burst.
+--
+-- This Bucket implementation works as follows:\\
+-- Initially, no schedule is running, and its waiting for the first event to happen.\\
+-- The first event will start the bucket, and get the scheduler running, which will collect all
+-- events in the given interval. When that interval is reached, the bucket is pushed to the
+-- callback and a new schedule is started. When a bucket is empty after its interval, the scheduler is
+-- stopped, and the bucket is only listening for the next event to happen, basically back in its initial state.
+--
+-- In addition, the buckets collect information about the "arg1" argument of the events that fire, and pass those as a
+-- table to your callback. This functionality was mostly designed for the UNIT_* events.\\
+-- The table will have the different values of "arg1" as keys, and the number of occurances as their value, e.g.\\
+-- { ["player"] = 2, ["target"] = 1, ["party1"] = 1 }
+--
+-- **AceBucket-3.0** can be embeded into your addon, either explicitly by calling AceBucket:Embed(MyAddon) or by
+-- specifying it as an embeded library in your AceAddon. All functions will be available on your addon object
+-- and can be accessed directly, without having to explicitly call AceBucket itself.\\
+-- It is recommended to embed AceBucket, otherwise you'll have to specify a custom `self` on all calls you
+-- make into AceBucket.
+-- @usage
+-- MyAddon = LibStub("AceAddon-3.0"):NewAddon("BucketExample", "AceBucket-3.0")
+--
+-- function MyAddon:OnEnable()
+-- -- Register a bucket that listens to all the HP related events,
+-- -- and fires once per second
+-- self:RegisterBucketEvent({"UNIT_HEALTH", "UNIT_MAXHEALTH"}, 1, "UpdateHealth")
+-- end
+--
+-- function MyAddon:UpdateHealth(units)
+-- if units.player then
+-- print("Your HP changed!")
+-- end
+-- end
+-- @class file
+-- @name AceBucket-3.0.lua
+-- @release $Id: AceBucket-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $
+
+local MAJOR, MINOR = "AceBucket-3.0", 4
+local AceBucket, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
+
+if not AceBucket then return end -- No Upgrade needed
+
+AceBucket.buckets = AceBucket.buckets or {}
+AceBucket.embeds = AceBucket.embeds or {}
+
+-- the libraries will be lazyly bound later, to avoid errors due to loading order issues
+local AceEvent, AceTimer
+
+-- Lua APIs
+local tconcat = table.concat
+local type, next, pairs, select = type, next, pairs, select
+local tonumber, tostring, rawset = tonumber, tostring, rawset
+local assert, loadstring, error = assert, loadstring, error
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: LibStub, geterrorhandler
+
+local bucketCache = setmetatable({}, {__mode='k'})
+
+--[[
+ xpcall safecall implementation
+]]
+local xpcall = xpcall
+
+local function errorhandler(err)
+ return geterrorhandler()(err)
+end
+
+local function safecall(func, ...)
+ if func then
+ return xpcall(func, errorhandler, ...)
+ end
+end
+
+-- FireBucket ( bucket )
+--
+-- send the bucket to the callback function and schedule the next FireBucket in interval seconds
+local function FireBucket(bucket)
+ local received = bucket.received
+
+ -- we dont want to fire empty buckets
+ if next(received) ~= nil then
+ local callback = bucket.callback
+ if type(callback) == "string" then
+ safecall(bucket.object[callback], bucket.object, received)
+ else
+ safecall(callback, received)
+ end
+
+ for k in pairs(received) do
+ received[k] = nil
+ end
+
+ -- if the bucket was not empty, schedule another FireBucket in interval seconds
+ bucket.timer = AceTimer.ScheduleTimer(bucket, FireBucket, bucket.interval, bucket)
+ else -- if it was empty, clear the timer and wait for the next event
+ bucket.timer = nil
+ end
+end
+
+-- BucketHandler ( event, arg1 )
+--
+-- callback func for AceEvent
+-- stores arg1 in the received table, and schedules the bucket if necessary
+local function BucketHandler(self, event, arg1)
+ if arg1 == nil then
+ arg1 = "nil"
+ end
+
+ self.received[arg1] = (self.received[arg1] or 0) + 1
+
+ -- if we are not scheduled yet, start a timer on the interval for our bucket to be cleared
+ if not self.timer then
+ self.timer = AceTimer.ScheduleTimer(self, FireBucket, self.interval, self)
+ end
+end
+
+-- RegisterBucket( event, interval, callback, isMessage )
+--
+-- event(string or table) - the event, or a table with the events, that this bucket listens to
+-- interval(int) - time between bucket fireings
+-- callback(func or string) - function pointer, or method name of the object, that gets called when the bucket is cleared
+-- isMessage(boolean) - register AceEvent Messages instead of game events
+local function RegisterBucket(self, event, interval, callback, isMessage)
+ -- try to fetch the librarys
+ if not AceEvent or not AceTimer then
+ AceEvent = LibStub:GetLibrary("AceEvent-3.0", true)
+ AceTimer = LibStub:GetLibrary("AceTimer-3.0", true)
+ if not AceEvent or not AceTimer then
+ error(MAJOR .. " requires AceEvent-3.0 and AceTimer-3.0", 3)
+ end
+ end
+
+ if type(event) ~= "string" and type(event) ~= "table" then error("Usage: RegisterBucket(event, interval, callback): 'event' - string or table expected.", 3) end
+ if not callback then
+ if type(event) == "string" then
+ callback = event
+ else
+ error("Usage: RegisterBucket(event, interval, callback): cannot omit callback when event is not a string.", 3)
+ end
+ end
+ if not tonumber(interval) then error("Usage: RegisterBucket(event, interval, callback): 'interval' - number expected.", 3) end
+ if type(callback) ~= "string" and type(callback) ~= "function" then error("Usage: RegisterBucket(event, interval, callback): 'callback' - string or function or nil expected.", 3) end
+ if type(callback) == "string" and type(self[callback]) ~= "function" then error("Usage: RegisterBucket(event, interval, callback): 'callback' - method not found on target object.", 3) end
+
+ local bucket = next(bucketCache)
+ if bucket then
+ bucketCache[bucket] = nil
+ else
+ bucket = { handler = BucketHandler, received = {} }
+ end
+ bucket.object, bucket.callback, bucket.interval = self, callback, tonumber(interval)
+
+ local regFunc = isMessage and AceEvent.RegisterMessage or AceEvent.RegisterEvent
+
+ if type(event) == "table" then
+ for _,e in pairs(event) do
+ regFunc(bucket, e, "handler")
+ end
+ else
+ regFunc(bucket, event, "handler")
+ end
+
+ local handle = tostring(bucket)
+ AceBucket.buckets[handle] = bucket
+
+ return handle
+end
+
+--- Register a Bucket for an event (or a set of events)
+-- @param event The event to listen for, or a table of events.
+-- @param interval The Bucket interval (burst interval)
+-- @param callback The callback function, either as a function reference, or a string pointing to a method of the addon object.
+-- @return The handle of the bucket (for unregistering)
+-- @usage
+-- MyAddon = LibStub("AceAddon-3.0"):NewAddon("MyAddon", "AceBucket-3.0")
+-- MyAddon:RegisterBucketEvent("BAG_UPDATE", 0.2, "UpdateBags")
+--
+-- function MyAddon:UpdateBags()
+-- -- do stuff
+-- end
+function AceBucket:RegisterBucketEvent(event, interval, callback)
+ return RegisterBucket(self, event, interval, callback, false)
+end
+
+--- Register a Bucket for an AceEvent-3.0 addon message (or a set of messages)
+-- @param message The message to listen for, or a table of messages.
+-- @param interval The Bucket interval (burst interval)
+-- @param callback The callback function, either as a function reference, or a string pointing to a method of the addon object.
+-- @return The handle of the bucket (for unregistering)
+-- @usage
+-- MyAddon = LibStub("AceAddon-3.0"):NewAddon("MyAddon", "AceBucket-3.0")
+-- MyAddon:RegisterBucketEvent("SomeAddon_InformationMessage", 0.2, "ProcessData")
+--
+-- function MyAddon:ProcessData()
+-- -- do stuff
+-- end
+function AceBucket:RegisterBucketMessage(message, interval, callback)
+ return RegisterBucket(self, message, interval, callback, true)
+end
+
+--- Unregister any events and messages from the bucket and clear any remaining data.
+-- @param handle The handle of the bucket as returned by RegisterBucket*
+function AceBucket:UnregisterBucket(handle)
+ local bucket = AceBucket.buckets[handle]
+ if bucket then
+ AceEvent.UnregisterAllEvents(bucket)
+ AceEvent.UnregisterAllMessages(bucket)
+
+ -- clear any remaining data in the bucket
+ for k in pairs(bucket.received) do
+ bucket.received[k] = nil
+ end
+
+ if bucket.timer then
+ AceTimer.CancelTimer(bucket, bucket.timer)
+ bucket.timer = nil
+ end
+
+ AceBucket.buckets[handle] = nil
+ -- store our bucket in the cache
+ bucketCache[bucket] = true
+ end
+end
+
+--- Unregister all buckets of the current addon object (or custom "self").
+function AceBucket:UnregisterAllBuckets()
+ -- hmm can we do this more efficient? (it is not done often so shouldn't matter much)
+ for handle, bucket in pairs(AceBucket.buckets) do
+ if bucket.object == self then
+ AceBucket.UnregisterBucket(self, handle)
+ end
+ end
+end
+
+
+
+-- embedding and embed handling
+local mixins = {
+ "RegisterBucketEvent",
+ "RegisterBucketMessage",
+ "UnregisterBucket",
+ "UnregisterAllBuckets",
+}
+
+-- Embeds AceBucket into the target object making the functions from the mixins list available on target:..
+-- @param target target object to embed AceBucket in
+function AceBucket:Embed( target )
+ for _, v in pairs( mixins ) do
+ target[v] = self[v]
+ end
+ self.embeds[target] = true
+ return target
+end
+
+function AceBucket:OnEmbedDisable( target )
+ target:UnregisterAllBuckets()
+end
+
+for addon in pairs(AceBucket.embeds) do
+ AceBucket:Embed(addon)
+end
diff --git a/Libs/AceBucket-3.0/AceBucket-3.0.xml b/Libs/AceBucket-3.0/AceBucket-3.0.xml
new file mode 100644
index 00000000..06ab7128
--- /dev/null
+++ b/Libs/AceBucket-3.0/AceBucket-3.0.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/Libs/AceComm-3.0/AceComm-3.0.lua b/Libs/AceComm-3.0/AceComm-3.0.lua
index 87e55f8e..3fca6923 100644
--- a/Libs/AceComm-3.0/AceComm-3.0.lua
+++ b/Libs/AceComm-3.0/AceComm-3.0.lua
@@ -2,14 +2,14 @@
-- It'll automatically split the messages into multiple parts and rebuild them on the receiving end.\\
-- **ChatThrottleLib** is of course being used to avoid being disconnected by the server.
--
--- **AceComm-3.0** can be embeded into your addon, either explicitly by calling AceComm:Embed(MyAddon) or by
+-- **AceComm-3.0** can be embeded into your addon, either explicitly by calling AceComm:Embed(MyAddon) or by
-- specifying it as an embeded library in your AceAddon. All functions will be available on your addon object
-- and can be accessed directly, without having to explicitly call AceComm itself.\\
-- It is recommended to embed AceComm, otherwise you'll have to specify a custom `self` on all calls you
-- make into AceComm.
-- @class file
-- @name AceComm-3.0
--- @release $Id: AceComm-3.0.lua 1174 2018-05-14 17:29:49Z h.leppkes@gmail.com $
+-- @release $Id: AceComm-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $
--[[ AceComm-3.0
@@ -52,7 +52,7 @@ AceComm.multipart_origprefixes = nil
AceComm.multipart_reassemblers = nil
-- the multipart message spool: indexed by a combination of sender+distribution+
-AceComm.multipart_spool = AceComm.multipart_spool or {}
+AceComm.multipart_spool = AceComm.multipart_spool or {}
--- Register for Addon Traffic on a specified prefix
-- @param prefix A printable character (\032-\255) classification of the message (typically AddonName or AddonNameEvent), max 16 characters
@@ -90,7 +90,7 @@ function AceComm:SendCommMessage(prefix, text, distribution, target, prio, callb
type(text)=="string" and
type(distribution)=="string" and
(target==nil or type(target)=="string" or type(target)=="number") and
- (prio=="BULK" or prio=="NORMAL" or prio=="ALERT")
+ (prio=="BULK" or prio=="NORMAL" or prio=="ALERT")
) then
error('Usage: SendCommMessage(addon, "prefix", "text", "distribution"[, "target"[, "prio"[, callbackFn, callbackarg]]])', 2)
end
@@ -105,7 +105,7 @@ function AceComm:SendCommMessage(prefix, text, distribution, target, prio, callb
return callbackFn(callbackArg, sent, textlen)
end
end
-
+
local forceMultipart
if match(text, "^[\001-\009]") then -- 4.1+: see if the first character is a control character
-- we need to escape the first character with a \004
@@ -150,17 +150,17 @@ do
local compost = setmetatable({}, {__mode = "k"})
local function new()
local t = next(compost)
- if t then
+ if t then
compost[t]=nil
for i=#t,3,-1 do -- faster than pairs loop. don't even nil out 1/2 since they'll be overwritten
t[i]=nil
end
return t
end
-
+
return {}
end
-
+
local function lostdatawarning(prefix,sender,where)
DEFAULT_CHAT_FRAME:AddMessage(MAJOR..": Warning: lost network data regarding '"..tostring(prefix).."' from '"..tostring(sender).."' (in "..where..")")
end
@@ -168,14 +168,14 @@ do
function AceComm:OnReceiveMultipartFirst(prefix, message, distribution, sender)
local key = prefix.."\t"..distribution.."\t"..sender -- a unique stream is defined by the prefix + distribution + sender
local spool = AceComm.multipart_spool
-
+
--[[
- if spool[key] then
+ if spool[key] then
lostdatawarning(prefix,sender,"First")
-- continue and overwrite
end
--]]
-
+
spool[key] = message -- plain string for now
end
@@ -183,7 +183,7 @@ do
local key = prefix.."\t"..distribution.."\t"..sender -- a unique stream is defined by the prefix + distribution + sender
local spool = AceComm.multipart_spool
local olddata = spool[key]
-
+
if not olddata then
--lostdatawarning(prefix,sender,"Next")
return
@@ -204,14 +204,14 @@ do
local key = prefix.."\t"..distribution.."\t"..sender -- a unique stream is defined by the prefix + distribution + sender
local spool = AceComm.multipart_spool
local olddata = spool[key]
-
+
if not olddata then
--lostdatawarning(prefix,sender,"End")
return
end
spool[key] = nil
-
+
if type(olddata) == "table" then
-- if we've received a "next", the spooled data will be a table for rapid & garbage-free tconcat
tinsert(olddata, message)
diff --git a/Libs/AceComm-3.0/ChatThrottleLib.lua b/Libs/AceComm-3.0/ChatThrottleLib.lua
index 3b7db009..aca68268 100644
--- a/Libs/AceComm-3.0/ChatThrottleLib.lua
+++ b/Libs/AceComm-3.0/ChatThrottleLib.lua
@@ -3,7 +3,7 @@
--
-- Manages AddOn chat output to keep player from getting kicked off.
--
--- ChatThrottleLib:SendChatMessage/:SendAddonMessage functions that accept
+-- ChatThrottleLib:SendChatMessage/:SendAddonMessage functions that accept
-- a Priority ("BULK", "NORMAL", "ALERT") as well as prefix for SendChatMessage.
--
-- Priorities get an equal share of available bandwidth when fully loaded.
@@ -118,7 +118,7 @@ end
-----------------------------------------------------------------------
--- Recycling bin for pipes
+-- Recycling bin for pipes
-- A pipe is a plain integer-indexed queue of messages
-- Pipes normally live in Rings of pipes (3 rings total, one per priority)
@@ -169,7 +169,7 @@ end
-- Initialize queues, set up frame for OnUpdate, etc
-function ChatThrottleLib:Init()
+function ChatThrottleLib:Init()
-- Set up queues
if not self.Prio then
@@ -356,8 +356,8 @@ function ChatThrottleLib.OnUpdate(this,delay)
-- See how many of our priorities have queued messages (we only have 3, don't worry about the loop)
local n = 0
for prioname,Prio in pairs(self.Prio) do
- if Prio.Ring.pos or Prio.avail < 0 then
- n = n + 1
+ if Prio.Ring.pos or Prio.avail < 0 then
+ n = n + 1
end
end
diff --git a/Libs/AceConfig-3.0/AceConfig-3.0.lua b/Libs/AceConfig-3.0/AceConfig-3.0.lua
new file mode 100644
index 00000000..5071cdcf
--- /dev/null
+++ b/Libs/AceConfig-3.0/AceConfig-3.0.lua
@@ -0,0 +1,58 @@
+--- AceConfig-3.0 wrapper library.
+-- Provides an API to register an options table with the config registry,
+-- as well as associate it with a slash command.
+-- @class file
+-- @name AceConfig-3.0
+-- @release $Id: AceConfig-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $
+
+--[[
+AceConfig-3.0
+
+Very light wrapper library that combines all the AceConfig subcomponents into one more easily used whole.
+
+]]
+
+local cfgreg = LibStub("AceConfigRegistry-3.0")
+local cfgcmd = LibStub("AceConfigCmd-3.0")
+
+local MAJOR, MINOR = "AceConfig-3.0", 3
+local AceConfig = LibStub:NewLibrary(MAJOR, MINOR)
+
+if not AceConfig then return end
+
+--TODO: local cfgdlg = LibStub("AceConfigDialog-3.0", true)
+--TODO: local cfgdrp = LibStub("AceConfigDropdown-3.0", true)
+
+-- Lua APIs
+local pcall, error, type, pairs = pcall, error, type, pairs
+
+-- -------------------------------------------------------------------
+-- :RegisterOptionsTable(appName, options, slashcmd, persist)
+--
+-- - appName - (string) application name
+-- - options - table or function ref, see AceConfigRegistry
+-- - slashcmd - slash command (string) or table with commands, or nil to NOT create a slash command
+
+--- Register a option table with the AceConfig registry.
+-- You can supply a slash command (or a table of slash commands) to register with AceConfigCmd directly.
+-- @paramsig appName, options [, slashcmd]
+-- @param appName The application name for the config table.
+-- @param options The option table (or a function to generate one on demand). http://www.wowace.com/addons/ace3/pages/ace-config-3-0-options-tables/
+-- @param slashcmd A slash command to register for the option table, or a table of slash commands.
+-- @usage
+-- local AceConfig = LibStub("AceConfig-3.0")
+-- AceConfig:RegisterOptionsTable("MyAddon", myOptions, {"/myslash", "/my"})
+function AceConfig:RegisterOptionsTable(appName, options, slashcmd)
+ local ok,msg = pcall(cfgreg.RegisterOptionsTable, self, appName, options)
+ if not ok then error(msg, 2) end
+
+ if slashcmd then
+ if type(slashcmd) == "table" then
+ for _,cmd in pairs(slashcmd) do
+ cfgcmd:CreateChatCommand(cmd, appName)
+ end
+ else
+ cfgcmd:CreateChatCommand(slashcmd, appName)
+ end
+ end
+end
diff --git a/Libs/AceConfig-3.0/AceConfig-3.0.xml b/Libs/AceConfig-3.0/AceConfig-3.0.xml
new file mode 100644
index 00000000..a3569b73
--- /dev/null
+++ b/Libs/AceConfig-3.0/AceConfig-3.0.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
diff --git a/Libs/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua b/Libs/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua
new file mode 100644
index 00000000..5113875a
--- /dev/null
+++ b/Libs/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua
@@ -0,0 +1,794 @@
+--- AceConfigCmd-3.0 handles access to an options table through the "command line" interface via the ChatFrames.
+-- @class file
+-- @name AceConfigCmd-3.0
+-- @release $Id: AceConfigCmd-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $
+
+--[[
+AceConfigCmd-3.0
+
+Handles commandline optionstable access
+
+REQUIRES: AceConsole-3.0 for command registration (loaded on demand)
+
+]]
+
+-- TODO: plugin args
+
+local cfgreg = LibStub("AceConfigRegistry-3.0")
+
+local MAJOR, MINOR = "AceConfigCmd-3.0", 14
+local AceConfigCmd = LibStub:NewLibrary(MAJOR, MINOR)
+
+if not AceConfigCmd then return end
+
+AceConfigCmd.commands = AceConfigCmd.commands or {}
+local commands = AceConfigCmd.commands
+
+local AceConsole -- LoD
+local AceConsoleName = "AceConsole-3.0"
+
+-- Lua APIs
+local strsub, strsplit, strlower, strmatch, strtrim = string.sub, string.split, string.lower, string.match, string.trim
+local format, tonumber, tostring = string.format, tonumber, tostring
+local tsort, tinsert = table.sort, table.insert
+local select, pairs, next, type = select, pairs, next, type
+local error, assert = error, assert
+
+-- WoW APIs
+local _G = _G
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: LibStub, SELECTED_CHAT_FRAME, DEFAULT_CHAT_FRAME
+
+
+local L = setmetatable({}, { -- TODO: replace with proper locale
+ __index = function(self,k) return k end
+})
+
+
+
+local function print(msg)
+ (SELECTED_CHAT_FRAME or DEFAULT_CHAT_FRAME):AddMessage(msg)
+end
+
+-- constants used by getparam() calls below
+
+local handlertypes = {["table"]=true}
+local handlermsg = "expected a table"
+
+local functypes = {["function"]=true, ["string"]=true}
+local funcmsg = "expected function or member name"
+
+
+-- pickfirstset() - picks the first non-nil value and returns it
+
+local function pickfirstset(...)
+ for i=1,select("#",...) do
+ if select(i,...)~=nil then
+ return select(i,...)
+ end
+ end
+end
+
+
+-- err() - produce real error() regarding malformed options tables etc
+
+local function err(info,inputpos,msg )
+ local cmdstr=" "..strsub(info.input, 1, inputpos-1)
+ error(MAJOR..": /" ..info[0] ..cmdstr ..": "..(msg or "malformed options table"), 2)
+end
+
+
+-- usererr() - produce chatframe message regarding bad slash syntax etc
+
+local function usererr(info,inputpos,msg )
+ local cmdstr=strsub(info.input, 1, inputpos-1);
+ print("/" ..info[0] .. " "..cmdstr ..": "..(msg or "malformed options table"))
+end
+
+
+-- callmethod() - call a given named method (e.g. "get", "set") with given arguments
+
+local function callmethod(info, inputpos, tab, methodtype, ...)
+ local method = info[methodtype]
+ if not method then
+ err(info, inputpos, "'"..methodtype.."': not set")
+ end
+
+ info.arg = tab.arg
+ info.option = tab
+ info.type = tab.type
+
+ if type(method)=="function" then
+ return method(info, ...)
+ elseif type(method)=="string" then
+ if type(info.handler[method])~="function" then
+ err(info, inputpos, "'"..methodtype.."': '"..method.."' is not a member function of "..tostring(info.handler))
+ end
+ return info.handler[method](info.handler, info, ...)
+ else
+ assert(false) -- type should have already been checked on read
+ end
+end
+
+-- callfunction() - call a given named function (e.g. "name", "desc") with given arguments
+
+local function callfunction(info, tab, methodtype, ...)
+ local method = tab[methodtype]
+
+ info.arg = tab.arg
+ info.option = tab
+ info.type = tab.type
+
+ if type(method)=="function" then
+ return method(info, ...)
+ else
+ assert(false) -- type should have already been checked on read
+ end
+end
+
+-- do_final() - do the final step (set/execute) along with validation and confirmation
+
+local function do_final(info, inputpos, tab, methodtype, ...)
+ if info.validate then
+ local res = callmethod(info,inputpos,tab,"validate",...)
+ if type(res)=="string" then
+ usererr(info, inputpos, "'"..strsub(info.input, inputpos).."' - "..res)
+ return
+ end
+ end
+ -- console ignores .confirm
+
+ callmethod(info,inputpos,tab,methodtype, ...)
+end
+
+
+-- getparam() - used by handle() to retreive and store "handler", "get", "set", etc
+
+local function getparam(info, inputpos, tab, depth, paramname, types, errormsg)
+ local old,oldat = info[paramname], info[paramname.."_at"]
+ local val=tab[paramname]
+ if val~=nil then
+ if val==false then
+ val=nil
+ elseif not types[type(val)] then
+ err(info, inputpos, "'" .. paramname.. "' - "..errormsg)
+ end
+ info[paramname] = val
+ info[paramname.."_at"] = depth
+ end
+ return old,oldat
+end
+
+
+-- iterateargs(tab) - custom iterator that iterates both t.args and t.plugins.*
+local dummytable={}
+
+local function iterateargs(tab)
+ if not tab.plugins then
+ return pairs(tab.args)
+ end
+
+ local argtabkey,argtab=next(tab.plugins)
+ local v
+
+ return function(_, k)
+ while argtab do
+ k,v = next(argtab, k)
+ if k then return k,v end
+ if argtab==tab.args then
+ argtab=nil
+ else
+ argtabkey,argtab = next(tab.plugins, argtabkey)
+ if not argtabkey then
+ argtab=tab.args
+ end
+ end
+ end
+ end
+end
+
+local function checkhidden(info, inputpos, tab)
+ if tab.cmdHidden~=nil then
+ return tab.cmdHidden
+ end
+ local hidden = tab.hidden
+ if type(hidden) == "function" or type(hidden) == "string" then
+ info.hidden = hidden
+ hidden = callmethod(info, inputpos, tab, 'hidden')
+ info.hidden = nil
+ end
+ return hidden
+end
+
+local function showhelp(info, inputpos, tab, depth, noHead)
+ if not noHead then
+ print("|cff33ff99"..info.appName.."|r: Arguments to |cffffff78/"..info[0].."|r "..strsub(info.input,1,inputpos-1)..":")
+ end
+
+ local sortTbl = {} -- [1..n]=name
+ local refTbl = {} -- [name]=tableref
+
+ for k,v in iterateargs(tab) do
+ if not refTbl[k] then -- a plugin overriding something in .args
+ tinsert(sortTbl, k)
+ refTbl[k] = v
+ end
+ end
+
+ tsort(sortTbl, function(one, two)
+ local o1 = refTbl[one].order or 100
+ local o2 = refTbl[two].order or 100
+ if type(o1) == "function" or type(o1) == "string" then
+ info.order = o1
+ info[#info+1] = one
+ o1 = callmethod(info, inputpos, refTbl[one], "order")
+ info[#info] = nil
+ info.order = nil
+ end
+ if type(o2) == "function" or type(o1) == "string" then
+ info.order = o2
+ info[#info+1] = two
+ o2 = callmethod(info, inputpos, refTbl[two], "order")
+ info[#info] = nil
+ info.order = nil
+ end
+ if o1<0 and o2<0 then return o1 4) and not _G["KEY_" .. text] then
+ return false
+ end
+ local s = text
+ if shift then
+ s = "SHIFT-" .. s
+ end
+ if ctrl then
+ s = "CTRL-" .. s
+ end
+ if alt then
+ s = "ALT-" .. s
+ end
+ return s
+end
+
+-- handle() - selfrecursing function that processes input->optiontable
+-- - depth - starts at 0
+-- - retfalse - return false rather than produce error if a match is not found (used by inlined groups)
+
+local function handle(info, inputpos, tab, depth, retfalse)
+
+ if not(type(tab)=="table" and type(tab.type)=="string") then err(info,inputpos) end
+
+ -------------------------------------------------------------------
+ -- Grab hold of handler,set,get,func,etc if set (and remember old ones)
+ -- Note that we do NOT validate if method names are correct at this stage,
+ -- the handler may change before they're actually used!
+
+ local oldhandler,oldhandler_at = getparam(info,inputpos,tab,depth,"handler",handlertypes,handlermsg)
+ local oldset,oldset_at = getparam(info,inputpos,tab,depth,"set",functypes,funcmsg)
+ local oldget,oldget_at = getparam(info,inputpos,tab,depth,"get",functypes,funcmsg)
+ local oldfunc,oldfunc_at = getparam(info,inputpos,tab,depth,"func",functypes,funcmsg)
+ local oldvalidate,oldvalidate_at = getparam(info,inputpos,tab,depth,"validate",functypes,funcmsg)
+ --local oldconfirm,oldconfirm_at = getparam(info,inputpos,tab,depth,"confirm",functypes,funcmsg)
+
+ -------------------------------------------------------------------
+ -- Act according to .type of this table
+
+ if tab.type=="group" then
+ ------------ group --------------------------------------------
+
+ if type(tab.args)~="table" then err(info, inputpos) end
+ if tab.plugins and type(tab.plugins)~="table" then err(info,inputpos) end
+
+ -- grab next arg from input
+ local _,nextpos,arg = (info.input):find(" *([^ ]+) *", inputpos)
+ if not arg then
+ showhelp(info, inputpos, tab, depth)
+ return
+ end
+ nextpos=nextpos+1
+
+ -- loop .args and try to find a key with a matching name
+ for k,v in iterateargs(tab) do
+ if not(type(k)=="string" and type(v)=="table" and type(v.type)=="string") then err(info,inputpos, "options table child '"..tostring(k).."' is malformed") end
+
+ -- is this child an inline group? if so, traverse into it
+ if v.type=="group" and pickfirstset(v.cmdInline, v.inline, false) then
+ info[depth+1] = k
+ if handle(info, inputpos, v, depth+1, true)==false then
+ info[depth+1] = nil
+ -- wasn't found in there, but that's ok, we just keep looking down here
+ else
+ return -- done, name was found in inline group
+ end
+ -- matching name and not a inline group
+ elseif strlower(arg)==strlower(k:gsub(" ", "_")) then
+ info[depth+1] = k
+ return handle(info,nextpos,v,depth+1)
+ end
+ end
+
+ -- no match
+ if retfalse then
+ -- restore old infotable members and return false to indicate failure
+ info.handler,info.handler_at = oldhandler,oldhandler_at
+ info.set,info.set_at = oldset,oldset_at
+ info.get,info.get_at = oldget,oldget_at
+ info.func,info.func_at = oldfunc,oldfunc_at
+ info.validate,info.validate_at = oldvalidate,oldvalidate_at
+ --info.confirm,info.confirm_at = oldconfirm,oldconfirm_at
+ return false
+ end
+
+ -- couldn't find the command, display error
+ usererr(info, inputpos, "'"..arg.."' - " .. L["unknown argument"])
+ return
+ end
+
+ local str = strsub(info.input,inputpos);
+
+ if tab.type=="execute" then
+ ------------ execute --------------------------------------------
+ do_final(info, inputpos, tab, "func")
+
+
+
+ elseif tab.type=="input" then
+ ------------ input --------------------------------------------
+
+ local res = true
+ if tab.pattern then
+ if not(type(tab.pattern)=="string") then err(info, inputpos, "'pattern' - expected a string") end
+ if not strmatch(str, tab.pattern) then
+ usererr(info, inputpos, "'"..str.."' - " .. L["invalid input"])
+ return
+ end
+ end
+
+ do_final(info, inputpos, tab, "set", str)
+
+
+
+ elseif tab.type=="toggle" then
+ ------------ toggle --------------------------------------------
+ local b
+ local str = strtrim(strlower(str))
+ if str=="" then
+ b = callmethod(info, inputpos, tab, "get")
+
+ if tab.tristate then
+ --cycle in true, nil, false order
+ if b then
+ b = nil
+ elseif b == nil then
+ b = false
+ else
+ b = true
+ end
+ else
+ b = not b
+ end
+
+ elseif str==L["on"] then
+ b = true
+ elseif str==L["off"] then
+ b = false
+ elseif tab.tristate and str==L["default"] then
+ b = nil
+ else
+ if tab.tristate then
+ usererr(info, inputpos, format(L["'%s' - expected 'on', 'off' or 'default', or no argument to toggle."], str))
+ else
+ usererr(info, inputpos, format(L["'%s' - expected 'on' or 'off', or no argument to toggle."], str))
+ end
+ return
+ end
+
+ do_final(info, inputpos, tab, "set", b)
+
+
+ elseif tab.type=="range" then
+ ------------ range --------------------------------------------
+ local val = tonumber(str)
+ if not val then
+ usererr(info, inputpos, "'"..str.."' - "..L["expected number"])
+ return
+ end
+ if type(info.step)=="number" then
+ val = val- (val % info.step)
+ end
+ if type(info.min)=="number" and valinfo.max then
+ usererr(info, inputpos, val.." - "..format(L["must be equal to or lower than %s"], tostring(info.max)) )
+ return
+ end
+
+ do_final(info, inputpos, tab, "set", val)
+
+
+ elseif tab.type=="select" then
+ ------------ select ------------------------------------
+ local str = strtrim(strlower(str))
+
+ local values = tab.values
+ if type(values) == "function" or type(values) == "string" then
+ info.values = values
+ values = callmethod(info, inputpos, tab, "values")
+ info.values = nil
+ end
+
+ if str == "" then
+ local b = callmethod(info, inputpos, tab, "get")
+ local fmt = "|cffffff78- [%s]|r %s"
+ local fmt_sel = "|cffffff78- [%s]|r %s |cffff0000*|r"
+ print(L["Options for |cffffff78"..info[#info].."|r:"])
+ for k, v in pairs(values) do
+ if b == k then
+ print(fmt_sel:format(k, v))
+ else
+ print(fmt:format(k, v))
+ end
+ end
+ return
+ end
+
+ local ok
+ for k,v in pairs(values) do
+ if strlower(k)==str then
+ str = k -- overwrite with key (in case of case mismatches)
+ ok = true
+ break
+ end
+ end
+ if not ok then
+ usererr(info, inputpos, "'"..str.."' - "..L["unknown selection"])
+ return
+ end
+
+ do_final(info, inputpos, tab, "set", str)
+
+ elseif tab.type=="multiselect" then
+ ------------ multiselect -------------------------------------------
+ local str = strtrim(strlower(str))
+
+ local values = tab.values
+ if type(values) == "function" or type(values) == "string" then
+ info.values = values
+ values = callmethod(info, inputpos, tab, "values")
+ info.values = nil
+ end
+
+ if str == "" then
+ local fmt = "|cffffff78- [%s]|r %s"
+ local fmt_sel = "|cffffff78- [%s]|r %s |cffff0000*|r"
+ print(L["Options for |cffffff78"..info[#info].."|r (multiple possible):"])
+ for k, v in pairs(values) do
+ if callmethod(info, inputpos, tab, "get", k) then
+ print(fmt_sel:format(k, v))
+ else
+ print(fmt:format(k, v))
+ end
+ end
+ return
+ end
+
+ --build a table of the selections, checking that they exist
+ --parse for =on =off =default in the process
+ --table will be key = true for options that should toggle, key = [on|off|default] for options to be set
+ local sels = {}
+ for v in str:gmatch("[^ ]+") do
+ --parse option=on etc
+ local opt, val = v:match('(.+)=(.+)')
+ --get option if toggling
+ if not opt then
+ opt = v
+ end
+
+ --check that the opt is valid
+ local ok
+ for k,v in pairs(values) do
+ if strlower(k)==opt then
+ opt = k -- overwrite with key (in case of case mismatches)
+ ok = true
+ break
+ end
+ end
+
+ if not ok then
+ usererr(info, inputpos, "'"..opt.."' - "..L["unknown selection"])
+ return
+ end
+
+ --check that if val was supplied it is valid
+ if val then
+ if val == L["on"] or val == L["off"] or (tab.tristate and val == L["default"]) then
+ --val is valid insert it
+ sels[opt] = val
+ else
+ if tab.tristate then
+ usererr(info, inputpos, format(L["'%s' '%s' - expected 'on', 'off' or 'default', or no argument to toggle."], v, val))
+ else
+ usererr(info, inputpos, format(L["'%s' '%s' - expected 'on' or 'off', or no argument to toggle."], v, val))
+ end
+ return
+ end
+ else
+ -- no val supplied, toggle
+ sels[opt] = true
+ end
+ end
+
+ for opt, val in pairs(sels) do
+ local newval
+
+ if (val == true) then
+ --toggle the option
+ local b = callmethod(info, inputpos, tab, "get", opt)
+
+ if tab.tristate then
+ --cycle in true, nil, false order
+ if b then
+ b = nil
+ elseif b == nil then
+ b = false
+ else
+ b = true
+ end
+ else
+ b = not b
+ end
+ newval = b
+ else
+ --set the option as specified
+ if val==L["on"] then
+ newval = true
+ elseif val==L["off"] then
+ newval = false
+ elseif val==L["default"] then
+ newval = nil
+ end
+ end
+
+ do_final(info, inputpos, tab, "set", opt, newval)
+ end
+
+
+ elseif tab.type=="color" then
+ ------------ color --------------------------------------------
+ local str = strtrim(strlower(str))
+ if str == "" then
+ --TODO: Show current value
+ return
+ end
+
+ local r, g, b, a
+
+ local hasAlpha = tab.hasAlpha
+ if type(hasAlpha) == "function" or type(hasAlpha) == "string" then
+ info.hasAlpha = hasAlpha
+ hasAlpha = callmethod(info, inputpos, tab, 'hasAlpha')
+ info.hasAlpha = nil
+ end
+
+ if hasAlpha then
+ if str:len() == 8 and str:find("^%x*$") then
+ --parse a hex string
+ r,g,b,a = tonumber(str:sub(1, 2), 16) / 255, tonumber(str:sub(3, 4), 16) / 255, tonumber(str:sub(5, 6), 16) / 255, tonumber(str:sub(7, 8), 16) / 255
+ else
+ --parse seperate values
+ r,g,b,a = str:match("^([%d%.]+) ([%d%.]+) ([%d%.]+) ([%d%.]+)$")
+ r,g,b,a = tonumber(r), tonumber(g), tonumber(b), tonumber(a)
+ end
+ if not (r and g and b and a) then
+ usererr(info, inputpos, format(L["'%s' - expected 'RRGGBBAA' or 'r g b a'."], str))
+ return
+ end
+
+ if r >= 0.0 and r <= 1.0 and g >= 0.0 and g <= 1.0 and b >= 0.0 and b <= 1.0 and a >= 0.0 and a <= 1.0 then
+ --values are valid
+ elseif r >= 0 and r <= 255 and g >= 0 and g <= 255 and b >= 0 and b <= 255 and a >= 0 and a <= 255 then
+ --values are valid 0..255, convert to 0..1
+ r = r / 255
+ g = g / 255
+ b = b / 255
+ a = a / 255
+ else
+ --values are invalid
+ usererr(info, inputpos, format(L["'%s' - values must all be either in the range 0..1 or 0..255."], str))
+ end
+ else
+ a = 1.0
+ if str:len() == 6 and str:find("^%x*$") then
+ --parse a hex string
+ r,g,b = tonumber(str:sub(1, 2), 16) / 255, tonumber(str:sub(3, 4), 16) / 255, tonumber(str:sub(5, 6), 16) / 255
+ else
+ --parse seperate values
+ r,g,b = str:match("^([%d%.]+) ([%d%.]+) ([%d%.]+)$")
+ r,g,b = tonumber(r), tonumber(g), tonumber(b)
+ end
+ if not (r and g and b) then
+ usererr(info, inputpos, format(L["'%s' - expected 'RRGGBB' or 'r g b'."], str))
+ return
+ end
+ if r >= 0.0 and r <= 1.0 and g >= 0.0 and g <= 1.0 and b >= 0.0 and b <= 1.0 then
+ --values are valid
+ elseif r >= 0 and r <= 255 and g >= 0 and g <= 255 and b >= 0 and b <= 255 then
+ --values are valid 0..255, convert to 0..1
+ r = r / 255
+ g = g / 255
+ b = b / 255
+ else
+ --values are invalid
+ usererr(info, inputpos, format(L["'%s' - values must all be either in the range 0-1 or 0-255."], str))
+ end
+ end
+
+ do_final(info, inputpos, tab, "set", r,g,b,a)
+
+ elseif tab.type=="keybinding" then
+ ------------ keybinding --------------------------------------------
+ local str = strtrim(strlower(str))
+ if str == "" then
+ --TODO: Show current value
+ return
+ end
+ local value = keybindingValidateFunc(str:upper())
+ if value == false then
+ usererr(info, inputpos, format(L["'%s' - Invalid Keybinding."], str))
+ return
+ end
+
+ do_final(info, inputpos, tab, "set", value)
+
+ elseif tab.type=="description" then
+ ------------ description --------------------
+ -- ignore description, GUI config only
+ else
+ err(info, inputpos, "unknown options table item type '"..tostring(tab.type).."'")
+ end
+end
+
+--- Handle the chat command.
+-- This is usually called from a chat command handler to parse the command input as operations on an aceoptions table.\\
+-- AceConfigCmd uses this function internally when a slash command is registered with `:CreateChatCommand`
+-- @param slashcmd The slash command WITHOUT leading slash (only used for error output)
+-- @param appName The application name as given to `:RegisterOptionsTable()`
+-- @param input The commandline input (as given by the WoW handler, i.e. without the command itself)
+-- @usage
+-- MyAddon = LibStub("AceAddon-3.0"):NewAddon("MyAddon", "AceConsole-3.0")
+-- -- Use AceConsole-3.0 to register a Chat Command
+-- MyAddon:RegisterChatCommand("mychat", "ChatCommand")
+--
+-- -- Show the GUI if no input is supplied, otherwise handle the chat input.
+-- function MyAddon:ChatCommand(input)
+-- -- Assuming "MyOptions" is the appName of a valid options table
+-- if not input or input:trim() == "" then
+-- LibStub("AceConfigDialog-3.0"):Open("MyOptions")
+-- else
+-- LibStub("AceConfigCmd-3.0").HandleCommand(MyAddon, "mychat", "MyOptions", input)
+-- end
+-- end
+function AceConfigCmd:HandleCommand(slashcmd, appName, input)
+
+ local optgetter = cfgreg:GetOptionsTable(appName)
+ if not optgetter then
+ error([[Usage: HandleCommand("slashcmd", "appName", "input"): 'appName' - no options table "]]..tostring(appName)..[[" has been registered]], 2)
+ end
+ local options = assert( optgetter("cmd", MAJOR) )
+
+ local info = { -- Don't try to recycle this, it gets handed off to callbacks and whatnot
+ [0] = slashcmd,
+ appName = appName,
+ options = options,
+ input = input,
+ self = self,
+ handler = self,
+ uiType = "cmd",
+ uiName = MAJOR,
+ }
+
+ handle(info, 1, options, 0) -- (info, inputpos, table, depth)
+end
+
+--- Utility function to create a slash command handler.
+-- Also registers tab completion with AceTab
+-- @param slashcmd The slash command WITHOUT leading slash (only used for error output)
+-- @param appName The application name as given to `:RegisterOptionsTable()`
+function AceConfigCmd:CreateChatCommand(slashcmd, appName)
+ if not AceConsole then
+ AceConsole = LibStub(AceConsoleName)
+ end
+ if AceConsole.RegisterChatCommand(self, slashcmd, function(input)
+ AceConfigCmd.HandleCommand(self, slashcmd, appName, input) -- upgradable
+ end,
+ true) then -- succesfully registered so lets get the command -> app table in
+ commands[slashcmd] = appName
+ end
+end
+
+--- Utility function that returns the options table that belongs to a slashcommand.
+-- Designed to be used for the AceTab interface.
+-- @param slashcmd The slash command WITHOUT leading slash (only used for error output)
+-- @return The options table associated with the slash command (or nil if the slash command was not registered)
+function AceConfigCmd:GetChatCommandOptions(slashcmd)
+ return commands[slashcmd]
+end
diff --git a/Libs/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.xml b/Libs/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.xml
new file mode 100644
index 00000000..9e157b5b
--- /dev/null
+++ b/Libs/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua b/Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua
new file mode 100644
index 00000000..e5fcb2ee
--- /dev/null
+++ b/Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua
@@ -0,0 +1,2015 @@
+--- AceConfigDialog-3.0 generates AceGUI-3.0 based windows based on option tables.
+-- @class file
+-- @name AceConfigDialog-3.0
+-- @release $Id: AceConfigDialog-3.0.lua 1225 2019-08-06 13:37:52Z nevcairiel $
+
+local LibStub = LibStub
+local gui = LibStub("AceGUI-3.0")
+local reg = LibStub("AceConfigRegistry-3.0")
+
+local MAJOR, MINOR = "AceConfigDialog-3.0", 78
+local AceConfigDialog, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
+
+if not AceConfigDialog then return end
+
+AceConfigDialog.OpenFrames = AceConfigDialog.OpenFrames or {}
+AceConfigDialog.Status = AceConfigDialog.Status or {}
+AceConfigDialog.frame = AceConfigDialog.frame or CreateFrame("Frame")
+AceConfigDialog.tooltip = AceConfigDialog.tooltip or CreateFrame("GameTooltip", "AceConfigDialogTooltip", UIParent, "GameTooltipTemplate")
+
+AceConfigDialog.frame.apps = AceConfigDialog.frame.apps or {}
+AceConfigDialog.frame.closing = AceConfigDialog.frame.closing or {}
+AceConfigDialog.frame.closeAllOverride = AceConfigDialog.frame.closeAllOverride or {}
+
+-- Lua APIs
+local tinsert, tsort, tremove = table.insert, table.sort, table.remove
+local strmatch, format = string.match, string.format
+local error = error
+local pairs, next, select, type, unpack, wipe, ipairs = pairs, next, select, type, unpack, wipe, ipairs
+local tostring, tonumber = tostring, tonumber
+local math_min, math_max, math_floor = math.min, math.max, math.floor
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: NORMAL_FONT_COLOR, ACCEPT, CANCEL
+-- GLOBALS: PlaySound, GameFontHighlight, GameFontHighlightSmall, GameFontHighlightLarge
+-- GLOBALS: CloseSpecialWindows, InterfaceOptions_AddCategory, geterrorhandler
+
+local emptyTbl = {}
+
+--[[
+ xpcall safecall implementation
+]]
+local xpcall = xpcall
+
+local function errorhandler(err)
+ return geterrorhandler()(err)
+end
+
+local function safecall(func, ...)
+ if func then
+ return xpcall(func, errorhandler, ...)
+ end
+end
+
+local width_multiplier = 170
+
+--[[
+Group Types
+ Tree - All Descendant Groups will all become nodes on the tree, direct child options will appear above the tree
+ - Descendant Groups with inline=true and thier children will not become nodes
+
+ Tab - Direct Child Groups will become tabs, direct child options will appear above the tab control
+ - Grandchild groups will default to inline unless specified otherwise
+
+ Select- Same as Tab but with entries in a dropdown rather than tabs
+
+
+ Inline Groups
+ - Will not become nodes of a select group, they will be effectivly part of thier parent group seperated by a border
+ - If declared on a direct child of a root node of a select group, they will appear above the group container control
+ - When a group is displayed inline, all descendants will also be inline members of the group
+
+]]
+
+-- Recycling functions
+local new, del, copy
+--newcount, delcount,createdcount,cached = 0,0,0
+do
+ local pool = setmetatable({},{__mode="k"})
+ function new()
+ --newcount = newcount + 1
+ local t = next(pool)
+ if t then
+ pool[t] = nil
+ return t
+ else
+ --createdcount = createdcount + 1
+ return {}
+ end
+ end
+ function copy(t)
+ local c = new()
+ for k, v in pairs(t) do
+ c[k] = v
+ end
+ return c
+ end
+ function del(t)
+ --delcount = delcount + 1
+ wipe(t)
+ pool[t] = true
+ end
+-- function cached()
+-- local n = 0
+-- for k in pairs(pool) do
+-- n = n + 1
+-- end
+-- return n
+-- end
+end
+
+-- picks the first non-nil value and returns it
+local function pickfirstset(...)
+ for i=1,select("#",...) do
+ if select(i,...)~=nil then
+ return select(i,...)
+ end
+ end
+end
+
+--gets an option from a given group, checking plugins
+local function GetSubOption(group, key)
+ if group.plugins then
+ for plugin, t in pairs(group.plugins) do
+ if t[key] then
+ return t[key]
+ end
+ end
+ end
+
+ return group.args[key]
+end
+
+--Option member type definitions, used to decide how to access it
+
+--Is the member Inherited from parent options
+local isInherited = {
+ set = true,
+ get = true,
+ func = true,
+ confirm = true,
+ validate = true,
+ disabled = true,
+ hidden = true
+}
+
+--Does a string type mean a literal value, instead of the default of a method of the handler
+local stringIsLiteral = {
+ name = true,
+ desc = true,
+ icon = true,
+ usage = true,
+ width = true,
+ image = true,
+ fontSize = true,
+}
+
+--Is Never a function or method
+local allIsLiteral = {
+ type = true,
+ descStyle = true,
+ imageWidth = true,
+ imageHeight = true,
+}
+
+--gets the value for a member that could be a function
+--function refs are called with an info arg
+--every other type is returned
+local function GetOptionsMemberValue(membername, option, options, path, appName, ...)
+ --get definition for the member
+ local inherits = isInherited[membername]
+
+
+ --get the member of the option, traversing the tree if it can be inherited
+ local member
+
+ if inherits then
+ local group = options
+ if group[membername] ~= nil then
+ member = group[membername]
+ end
+ for i = 1, #path do
+ group = GetSubOption(group, path[i])
+ if group[membername] ~= nil then
+ member = group[membername]
+ end
+ end
+ else
+ member = option[membername]
+ end
+
+ --check if we need to call a functon, or if we have a literal value
+ if ( not allIsLiteral[membername] ) and ( type(member) == "function" or ((not stringIsLiteral[membername]) and type(member) == "string") ) then
+ --We have a function to call
+ local info = new()
+ --traverse the options table, picking up the handler and filling the info with the path
+ local handler
+ local group = options
+ handler = group.handler or handler
+
+ for i = 1, #path do
+ group = GetSubOption(group, path[i])
+ info[i] = path[i]
+ handler = group.handler or handler
+ end
+
+ info.options = options
+ info.appName = appName
+ info[0] = appName
+ info.arg = option.arg
+ info.handler = handler
+ info.option = option
+ info.type = option.type
+ info.uiType = "dialog"
+ info.uiName = MAJOR
+
+ local a, b, c ,d
+ --using 4 returns for the get of a color type, increase if a type needs more
+ if type(member) == "function" then
+ --Call the function
+ a,b,c,d = member(info, ...)
+ else
+ --Call the method
+ if handler and handler[member] then
+ a,b,c,d = handler[member](handler, info, ...)
+ else
+ error(format("Method %s doesn't exist in handler for type %s", member, membername))
+ end
+ end
+ del(info)
+ return a,b,c,d
+ else
+ --The value isnt a function to call, return it
+ return member
+ end
+end
+
+--[[calls an options function that could be inherited, method name or function ref
+local function CallOptionsFunction(funcname ,option, options, path, appName, ...)
+ local info = new()
+
+ local func
+ local group = options
+ local handler
+
+ --build the info table containing the path
+ -- pick up functions while traversing the tree
+ if group[funcname] ~= nil then
+ func = group[funcname]
+ end
+ handler = group.handler or handler
+
+ for i, v in ipairs(path) do
+ group = GetSubOption(group, v)
+ info[i] = v
+ if group[funcname] ~= nil then
+ func = group[funcname]
+ end
+ handler = group.handler or handler
+ end
+
+ info.options = options
+ info[0] = appName
+ info.arg = option.arg
+
+ local a, b, c ,d
+ if type(func) == "string" then
+ if handler and handler[func] then
+ a,b,c,d = handler[func](handler, info, ...)
+ else
+ error(string.format("Method %s doesn't exist in handler for type func", func))
+ end
+ elseif type(func) == "function" then
+ a,b,c,d = func(info, ...)
+ end
+ del(info)
+ return a,b,c,d
+end
+--]]
+
+--tables to hold orders and names for options being sorted, will be created with new()
+--prevents needing to call functions repeatedly while sorting
+local tempOrders
+local tempNames
+
+local function compareOptions(a,b)
+ if not a then
+ return true
+ end
+ if not b then
+ return false
+ end
+ local OrderA, OrderB = tempOrders[a] or 100, tempOrders[b] or 100
+ if OrderA == OrderB then
+ local NameA = (type(tempNames[a]) == "string") and tempNames[a] or ""
+ local NameB = (type(tempNames[b]) == "string") and tempNames[b] or ""
+ return NameA:upper() < NameB:upper()
+ end
+ if OrderA < 0 then
+ if OrderB >= 0 then
+ return false
+ end
+ else
+ if OrderB < 0 then
+ return true
+ end
+ end
+ return OrderA < OrderB
+end
+
+
+
+--builds 2 tables out of an options group
+-- keySort, sorted keys
+-- opts, combined options from .plugins and args
+local function BuildSortedOptionsTable(group, keySort, opts, options, path, appName)
+ tempOrders = new()
+ tempNames = new()
+
+ if group.plugins then
+ for plugin, t in pairs(group.plugins) do
+ for k, v in pairs(t) do
+ if not opts[k] then
+ tinsert(keySort, k)
+ opts[k] = v
+
+ path[#path+1] = k
+ tempOrders[k] = GetOptionsMemberValue("order", v, options, path, appName)
+ tempNames[k] = GetOptionsMemberValue("name", v, options, path, appName)
+ path[#path] = nil
+ end
+ end
+ end
+ end
+
+ for k, v in pairs(group.args) do
+ if not opts[k] then
+ tinsert(keySort, k)
+ opts[k] = v
+
+ path[#path+1] = k
+ tempOrders[k] = GetOptionsMemberValue("order", v, options, path, appName)
+ tempNames[k] = GetOptionsMemberValue("name", v, options, path, appName)
+ path[#path] = nil
+ end
+ end
+
+ tsort(keySort, compareOptions)
+
+ del(tempOrders)
+ del(tempNames)
+end
+
+local function DelTree(tree)
+ if tree.children then
+ local childs = tree.children
+ for i = 1, #childs do
+ DelTree(childs[i])
+ del(childs[i])
+ end
+ del(childs)
+ end
+end
+
+local function CleanUserData(widget, event)
+
+ local user = widget:GetUserDataTable()
+
+ if user.path then
+ del(user.path)
+ end
+
+ if widget.type == "TreeGroup" then
+ local tree = user.tree
+ widget:SetTree(nil)
+ if tree then
+ for i = 1, #tree do
+ DelTree(tree[i])
+ del(tree[i])
+ end
+ del(tree)
+ end
+ end
+
+ if widget.type == "TabGroup" then
+ widget:SetTabs(nil)
+ if user.tablist then
+ del(user.tablist)
+ end
+ end
+
+ if widget.type == "DropdownGroup" then
+ widget:SetGroupList(nil)
+ if user.grouplist then
+ del(user.grouplist)
+ end
+ if user.orderlist then
+ del(user.orderlist)
+ end
+ end
+end
+
+-- - Gets a status table for the given appname and options path.
+-- @param appName The application name as given to `:RegisterOptionsTable()`
+-- @param path The path to the options (a table with all group keys)
+-- @return
+function AceConfigDialog:GetStatusTable(appName, path)
+ local status = self.Status
+
+ if not status[appName] then
+ status[appName] = {}
+ status[appName].status = {}
+ status[appName].children = {}
+ end
+
+ status = status[appName]
+
+ if path then
+ for i = 1, #path do
+ local v = path[i]
+ if not status.children[v] then
+ status.children[v] = {}
+ status.children[v].status = {}
+ status.children[v].children = {}
+ end
+ status = status.children[v]
+ end
+ end
+
+ return status.status
+end
+
+--- Selects the specified path in the options window.
+-- The path specified has to match the keys of the groups in the table.
+-- @param appName The application name as given to `:RegisterOptionsTable()`
+-- @param ... The path to the key that should be selected
+function AceConfigDialog:SelectGroup(appName, ...)
+ local path = new()
+
+
+ local app = reg:GetOptionsTable(appName)
+ if not app then
+ error(("%s isn't registed with AceConfigRegistry, unable to open config"):format(appName), 2)
+ end
+ local options = app("dialog", MAJOR)
+ local group = options
+ local status = self:GetStatusTable(appName, path)
+ if not status.groups then
+ status.groups = {}
+ end
+ status = status.groups
+ local treevalue
+ local treestatus
+
+ for n = 1, select("#",...) do
+ local key = select(n, ...)
+
+ if group.childGroups == "tab" or group.childGroups == "select" then
+ --if this is a tab or select group, select the group
+ status.selected = key
+ --children of this group are no longer extra levels of a tree
+ treevalue = nil
+ else
+ --tree group by default
+ if treevalue then
+ --this is an extra level of a tree group, build a uniquevalue for it
+ treevalue = treevalue.."\001"..key
+ else
+ --this is the top level of a tree group, the uniquevalue is the same as the key
+ treevalue = key
+ if not status.groups then
+ status.groups = {}
+ end
+ --save this trees status table for any extra levels or groups
+ treestatus = status
+ end
+ --make sure that the tree entry is open, and select it.
+ --the selected group will be overwritten if a child is the final target but still needs to be open
+ treestatus.selected = treevalue
+ treestatus.groups[treevalue] = true
+
+ end
+
+ --move to the next group in the path
+ group = GetSubOption(group, key)
+ if not group then
+ break
+ end
+ tinsert(path, key)
+ status = self:GetStatusTable(appName, path)
+ if not status.groups then
+ status.groups = {}
+ end
+ status = status.groups
+ end
+
+ del(path)
+ reg:NotifyChange(appName)
+end
+
+local function OptionOnMouseOver(widget, event)
+ --show a tooltip/set the status bar to the desc text
+ local user = widget:GetUserDataTable()
+ local opt = user.option
+ local options = user.options
+ local path = user.path
+ local appName = user.appName
+ local tooltip = AceConfigDialog.tooltip
+
+ tooltip:SetOwner(widget.frame, "ANCHOR_TOPRIGHT")
+ local name = GetOptionsMemberValue("name", opt, options, path, appName)
+ local desc = GetOptionsMemberValue("desc", opt, options, path, appName)
+ local usage = GetOptionsMemberValue("usage", opt, options, path, appName)
+ local descStyle = opt.descStyle
+
+ if descStyle and descStyle ~= "tooltip" then return end
+
+ tooltip:SetText(name, 1, .82, 0, true)
+
+ if opt.type == "multiselect" then
+ tooltip:AddLine(user.text, 0.5, 0.5, 0.8, true)
+ end
+ if type(desc) == "string" then
+ tooltip:AddLine(desc, 1, 1, 1, true)
+ end
+ if type(usage) == "string" then
+ tooltip:AddLine("Usage: "..usage, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, true)
+ end
+
+ tooltip:Show()
+end
+
+local function OptionOnMouseLeave(widget, event)
+ AceConfigDialog.tooltip:Hide()
+end
+
+local function GetFuncName(option)
+ local type = option.type
+ if type == "execute" then
+ return "func"
+ else
+ return "set"
+ end
+end
+do
+ local frame = AceConfigDialog.popup
+ if not frame then
+ frame = CreateFrame("Frame", nil, UIParent)
+ AceConfigDialog.popup = frame
+ frame:Hide()
+ frame:SetPoint("CENTER", UIParent, "CENTER")
+ frame:SetSize(320, 72)
+ frame:SetFrameStrata("TOOLTIP")
+ frame:SetScript("OnKeyDown", function(self, key)
+ if key == "ESCAPE" then
+ self:SetPropagateKeyboardInput(false)
+ if self.cancel:IsShown() then
+ self.cancel:Click()
+ else -- Showing a validation error
+ self:Hide()
+ end
+ else
+ self:SetPropagateKeyboardInput(true)
+ end
+ end)
+
+ if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC then
+ frame:SetBackdrop({
+ bgFile = [[Interface\DialogFrame\UI-DialogBox-Background-Dark]],
+ edgeFile = [[Interface\DialogFrame\UI-DialogBox-Border]],
+ tile = true,
+ tileSize = 32,
+ edgeSize = 32,
+ insets = { left = 11, right = 11, top = 11, bottom = 11 },
+ })
+ else
+ local border = CreateFrame("Frame", nil, frame, "DialogBorderDarkTemplate")
+ border:SetAllPoints(frame)
+ end
+
+ local text = frame:CreateFontString(nil, "ARTWORK", "GameFontHighlight")
+ text:SetSize(290, 0)
+ text:SetPoint("TOP", 0, -16)
+ frame.text = text
+
+ local function newButton(text)
+ local button = CreateFrame("Button", nil, frame)
+ button:SetSize(128, 21)
+ button:SetNormalFontObject(GameFontNormal)
+ button:SetHighlightFontObject(GameFontHighlight)
+ button:SetNormalTexture(130763) -- "Interface\\Buttons\\UI-DialogBox-Button-Up"
+ button:GetNormalTexture():SetTexCoord(0.0, 1.0, 0.0, 0.71875)
+ button:SetPushedTexture(130761) -- "Interface\\Buttons\\UI-DialogBox-Button-Down"
+ button:GetPushedTexture():SetTexCoord(0.0, 1.0, 0.0, 0.71875)
+ button:SetHighlightTexture(130762) -- "Interface\\Buttons\\UI-DialogBox-Button-Highlight"
+ button:GetHighlightTexture():SetTexCoord(0.0, 1.0, 0.0, 0.71875)
+ button:SetText(text)
+ return button
+ end
+
+ local accept = newButton(ACCEPT)
+ accept:SetPoint("BOTTOMRIGHT", frame, "BOTTOM", -6, 16)
+ frame.accept = accept
+
+ local cancel = newButton(CANCEL)
+ cancel:SetPoint("LEFT", accept, "RIGHT", 13, 0)
+ frame.cancel = cancel
+ end
+end
+local function confirmPopup(appName, rootframe, basepath, info, message, func, ...)
+ local frame = AceConfigDialog.popup
+ frame:Show()
+ frame.text:SetText(message)
+ -- From StaticPopup.lua
+ -- local height = 32 + text:GetHeight() + 2;
+ -- height = height + 6 + accept:GetHeight()
+ -- We add 32 + 2 + 6 + 21 (button height) == 61
+ local height = 61 + frame.text:GetHeight()
+ frame:SetHeight(height)
+
+ frame.accept:ClearAllPoints()
+ frame.accept:SetPoint("BOTTOMRIGHT", frame, "BOTTOM", -6, 16)
+ frame.cancel:Show()
+
+ local t = {...}
+ local tCount = select("#", ...)
+ frame.accept:SetScript("OnClick", function(self)
+ safecall(func, unpack(t, 1, tCount)) -- Manually set count as unpack() stops on nil (bug with #table)
+ AceConfigDialog:Open(appName, rootframe, unpack(basepath or emptyTbl))
+ frame:Hide()
+ self:SetScript("OnClick", nil)
+ frame.cancel:SetScript("OnClick", nil)
+ del(info)
+ end)
+ frame.cancel:SetScript("OnClick", function(self)
+ AceConfigDialog:Open(appName, rootframe, unpack(basepath or emptyTbl))
+ frame:Hide()
+ self:SetScript("OnClick", nil)
+ frame.accept:SetScript("OnClick", nil)
+ del(info)
+ end)
+end
+
+local function validationErrorPopup(message)
+ local frame = AceConfigDialog.popup
+ frame:Show()
+ frame.text:SetText(message)
+ -- From StaticPopup.lua
+ -- local height = 32 + text:GetHeight() + 2;
+ -- height = height + 6 + accept:GetHeight()
+ -- We add 32 + 2 + 6 + 21 (button height) == 61
+ local height = 61 + frame.text:GetHeight()
+ frame:SetHeight(height)
+
+ frame.accept:ClearAllPoints()
+ frame.accept:SetPoint("BOTTOM", frame, "BOTTOM", 0, 16)
+ frame.cancel:Hide()
+
+ frame.accept:SetScript("OnClick", function()
+ frame:Hide()
+ end)
+end
+
+local function ActivateControl(widget, event, ...)
+ --This function will call the set / execute handler for the widget
+ --widget:GetUserDataTable() contains the needed info
+ local user = widget:GetUserDataTable()
+ local option = user.option
+ local options = user.options
+ local path = user.path
+ local info = new()
+
+ local func
+ local group = options
+ local funcname = GetFuncName(option)
+ local handler
+ local confirm
+ local validate
+ --build the info table containing the path
+ -- pick up functions while traversing the tree
+ if group[funcname] ~= nil then
+ func = group[funcname]
+ end
+ handler = group.handler or handler
+ confirm = group.confirm
+ validate = group.validate
+ for i = 1, #path do
+ local v = path[i]
+ group = GetSubOption(group, v)
+ info[i] = v
+ if group[funcname] ~= nil then
+ func = group[funcname]
+ end
+ handler = group.handler or handler
+ if group.confirm ~= nil then
+ confirm = group.confirm
+ end
+ if group.validate ~= nil then
+ validate = group.validate
+ end
+ end
+
+ info.options = options
+ info.appName = user.appName
+ info.arg = option.arg
+ info.handler = handler
+ info.option = option
+ info.type = option.type
+ info.uiType = "dialog"
+ info.uiName = MAJOR
+
+ local name
+ if type(option.name) == "function" then
+ name = option.name(info)
+ elseif type(option.name) == "string" then
+ name = option.name
+ else
+ name = ""
+ end
+ local usage = option.usage
+ local pattern = option.pattern
+
+ local validated = true
+
+ if option.type == "input" then
+ if type(pattern)=="string" then
+ if not strmatch(..., pattern) then
+ validated = false
+ end
+ end
+ end
+
+ local success
+ if validated and option.type ~= "execute" then
+ if type(validate) == "string" then
+ if handler and handler[validate] then
+ success, validated = safecall(handler[validate], handler, info, ...)
+ if not success then validated = false end
+ else
+ error(format("Method %s doesn't exist in handler for type execute", validate))
+ end
+ elseif type(validate) == "function" then
+ success, validated = safecall(validate, info, ...)
+ if not success then validated = false end
+ end
+ end
+
+ local rootframe = user.rootframe
+ if not validated or type(validated) == "string" then
+ if not validated then
+ if usage then
+ validated = name..": "..usage
+ else
+ if pattern then
+ validated = name..": Expected "..pattern
+ else
+ validated = name..": Invalid Value"
+ end
+ end
+ end
+
+ -- show validate message
+ if rootframe.SetStatusText then
+ rootframe:SetStatusText(validated)
+ else
+ validationErrorPopup(validated)
+ end
+ PlaySound(882) -- SOUNDKIT.IG_PLAYER_INVITE_DECLINE || _DECLINE is actually missing from the table
+ del(info)
+ return true
+ else
+
+ local confirmText = option.confirmText
+ --call confirm func/method
+ if type(confirm) == "string" then
+ if handler and handler[confirm] then
+ success, confirm = safecall(handler[confirm], handler, info, ...)
+ if success and type(confirm) == "string" then
+ confirmText = confirm
+ confirm = true
+ elseif not success then
+ confirm = false
+ end
+ else
+ error(format("Method %s doesn't exist in handler for type confirm", confirm))
+ end
+ elseif type(confirm) == "function" then
+ success, confirm = safecall(confirm, info, ...)
+ if success and type(confirm) == "string" then
+ confirmText = confirm
+ confirm = true
+ elseif not success then
+ confirm = false
+ end
+ end
+
+ --confirm if needed
+ if type(confirm) == "boolean" then
+ if confirm then
+ if not confirmText then
+ local name, desc = option.name, option.desc
+ if type(name) == "function" then
+ name = name(info)
+ end
+ if type(desc) == "function" then
+ desc = desc(info)
+ end
+ confirmText = name
+ if desc then
+ confirmText = confirmText.." - "..desc
+ end
+ end
+
+ local iscustom = user.rootframe:GetUserData("iscustom")
+ local rootframe
+
+ if iscustom then
+ rootframe = user.rootframe
+ end
+ local basepath = user.rootframe:GetUserData("basepath")
+ if type(func) == "string" then
+ if handler and handler[func] then
+ confirmPopup(user.appName, rootframe, basepath, info, confirmText, handler[func], handler, info, ...)
+ else
+ error(format("Method %s doesn't exist in handler for type func", func))
+ end
+ elseif type(func) == "function" then
+ confirmPopup(user.appName, rootframe, basepath, info, confirmText, func, info, ...)
+ end
+ --func will be called and info deleted when the confirm dialog is responded to
+ return
+ end
+ end
+
+ --call the function
+ if type(func) == "string" then
+ if handler and handler[func] then
+ safecall(handler[func],handler, info, ...)
+ else
+ error(format("Method %s doesn't exist in handler for type func", func))
+ end
+ elseif type(func) == "function" then
+ safecall(func,info, ...)
+ end
+
+
+
+ local iscustom = user.rootframe:GetUserData("iscustom")
+ local basepath = user.rootframe:GetUserData("basepath") or emptyTbl
+ --full refresh of the frame, some controls dont cause this on all events
+ if option.type == "color" then
+ if event == "OnValueConfirmed" then
+
+ if iscustom then
+ AceConfigDialog:Open(user.appName, user.rootframe, unpack(basepath))
+ else
+ AceConfigDialog:Open(user.appName, unpack(basepath))
+ end
+ end
+ elseif option.type == "range" then
+ if event == "OnMouseUp" then
+ if iscustom then
+ AceConfigDialog:Open(user.appName, user.rootframe, unpack(basepath))
+ else
+ AceConfigDialog:Open(user.appName, unpack(basepath))
+ end
+ end
+ --multiselects don't cause a refresh on 'OnValueChanged' only 'OnClosed'
+ elseif option.type == "multiselect" then
+ user.valuechanged = true
+ else
+ if iscustom then
+ AceConfigDialog:Open(user.appName, user.rootframe, unpack(basepath))
+ else
+ AceConfigDialog:Open(user.appName, unpack(basepath))
+ end
+ end
+
+ end
+ del(info)
+end
+
+local function ActivateSlider(widget, event, value)
+ local option = widget:GetUserData("option")
+ local min, max, step = option.min or (not option.softMin and 0 or nil), option.max or (not option.softMax and 100 or nil), option.step
+ if min then
+ if step then
+ value = math_floor((value - min) / step + 0.5) * step + min
+ end
+ value = math_max(value, min)
+ end
+ if max then
+ value = math_min(value, max)
+ end
+ ActivateControl(widget,event,value)
+end
+
+--called from a checkbox that is part of an internally created multiselect group
+--this type is safe to refresh on activation of one control
+local function ActivateMultiControl(widget, event, ...)
+ ActivateControl(widget, event, widget:GetUserData("value"), ...)
+ local user = widget:GetUserDataTable()
+ local iscustom = user.rootframe:GetUserData("iscustom")
+ local basepath = user.rootframe:GetUserData("basepath") or emptyTbl
+ if iscustom then
+ AceConfigDialog:Open(user.appName, user.rootframe, unpack(basepath))
+ else
+ AceConfigDialog:Open(user.appName, unpack(basepath))
+ end
+end
+
+local function MultiControlOnClosed(widget, event, ...)
+ local user = widget:GetUserDataTable()
+ if user.valuechanged then
+ local iscustom = user.rootframe:GetUserData("iscustom")
+ local basepath = user.rootframe:GetUserData("basepath") or emptyTbl
+ if iscustom then
+ AceConfigDialog:Open(user.appName, user.rootframe, unpack(basepath))
+ else
+ AceConfigDialog:Open(user.appName, unpack(basepath))
+ end
+ end
+end
+
+local function FrameOnClose(widget, event)
+ local appName = widget:GetUserData("appName")
+ AceConfigDialog.OpenFrames[appName] = nil
+ gui:Release(widget)
+end
+
+local function CheckOptionHidden(option, options, path, appName)
+ --check for a specific boolean option
+ local hidden = pickfirstset(option.dialogHidden,option.guiHidden)
+ if hidden ~= nil then
+ return hidden
+ end
+
+ return GetOptionsMemberValue("hidden", option, options, path, appName)
+end
+
+local function CheckOptionDisabled(option, options, path, appName)
+ --check for a specific boolean option
+ local disabled = pickfirstset(option.dialogDisabled,option.guiDisabled)
+ if disabled ~= nil then
+ return disabled
+ end
+
+ return GetOptionsMemberValue("disabled", option, options, path, appName)
+end
+--[[
+local function BuildTabs(group, options, path, appName)
+ local tabs = new()
+ local text = new()
+ local keySort = new()
+ local opts = new()
+
+ BuildSortedOptionsTable(group, keySort, opts, options, path, appName)
+
+ for i = 1, #keySort do
+ local k = keySort[i]
+ local v = opts[k]
+ if v.type == "group" then
+ path[#path+1] = k
+ local inline = pickfirstset(v.dialogInline,v.guiInline,v.inline, false)
+ local hidden = CheckOptionHidden(v, options, path, appName)
+ if not inline and not hidden then
+ tinsert(tabs, k)
+ text[k] = GetOptionsMemberValue("name", v, options, path, appName)
+ end
+ path[#path] = nil
+ end
+ end
+
+ del(keySort)
+ del(opts)
+
+ return tabs, text
+end
+]]
+local function BuildSelect(group, options, path, appName)
+ local groups = new()
+ local order = new()
+ local keySort = new()
+ local opts = new()
+
+ BuildSortedOptionsTable(group, keySort, opts, options, path, appName)
+
+ for i = 1, #keySort do
+ local k = keySort[i]
+ local v = opts[k]
+ if v.type == "group" then
+ path[#path+1] = k
+ local inline = pickfirstset(v.dialogInline,v.guiInline,v.inline, false)
+ local hidden = CheckOptionHidden(v, options, path, appName)
+ if not inline and not hidden then
+ groups[k] = GetOptionsMemberValue("name", v, options, path, appName)
+ tinsert(order, k)
+ end
+ path[#path] = nil
+ end
+ end
+
+ del(opts)
+ del(keySort)
+
+ return groups, order
+end
+
+local function BuildSubGroups(group, tree, options, path, appName)
+ local keySort = new()
+ local opts = new()
+
+ BuildSortedOptionsTable(group, keySort, opts, options, path, appName)
+
+ for i = 1, #keySort do
+ local k = keySort[i]
+ local v = opts[k]
+ if v.type == "group" then
+ path[#path+1] = k
+ local inline = pickfirstset(v.dialogInline,v.guiInline,v.inline, false)
+ local hidden = CheckOptionHidden(v, options, path, appName)
+ if not inline and not hidden then
+ local entry = new()
+ entry.value = k
+ entry.text = GetOptionsMemberValue("name", v, options, path, appName)
+ entry.icon = GetOptionsMemberValue("icon", v, options, path, appName)
+ entry.iconCoords = GetOptionsMemberValue("iconCoords", v, options, path, appName)
+ entry.disabled = CheckOptionDisabled(v, options, path, appName)
+ if not tree.children then tree.children = new() end
+ tinsert(tree.children,entry)
+ if (v.childGroups or "tree") == "tree" then
+ BuildSubGroups(v,entry, options, path, appName)
+ end
+ end
+ path[#path] = nil
+ end
+ end
+
+ del(keySort)
+ del(opts)
+end
+
+local function BuildGroups(group, options, path, appName, recurse)
+ local tree = new()
+ local keySort = new()
+ local opts = new()
+
+ BuildSortedOptionsTable(group, keySort, opts, options, path, appName)
+
+ for i = 1, #keySort do
+ local k = keySort[i]
+ local v = opts[k]
+ if v.type == "group" then
+ path[#path+1] = k
+ local inline = pickfirstset(v.dialogInline,v.guiInline,v.inline, false)
+ local hidden = CheckOptionHidden(v, options, path, appName)
+ if not inline and not hidden then
+ local entry = new()
+ entry.value = k
+ entry.text = GetOptionsMemberValue("name", v, options, path, appName)
+ entry.icon = GetOptionsMemberValue("icon", v, options, path, appName)
+ entry.iconCoords = GetOptionsMemberValue("iconCoords", v, options, path, appName)
+ entry.disabled = CheckOptionDisabled(v, options, path, appName)
+ tinsert(tree,entry)
+ if recurse and (v.childGroups or "tree") == "tree" then
+ BuildSubGroups(v,entry, options, path, appName)
+ end
+ end
+ path[#path] = nil
+ end
+ end
+ del(keySort)
+ del(opts)
+ return tree
+end
+
+local function InjectInfo(control, options, option, path, rootframe, appName)
+ local user = control:GetUserDataTable()
+ for i = 1, #path do
+ user[i] = path[i]
+ end
+ user.rootframe = rootframe
+ user.option = option
+ user.options = options
+ user.path = copy(path)
+ user.appName = appName
+ control:SetCallback("OnRelease", CleanUserData)
+ control:SetCallback("OnLeave", OptionOnMouseLeave)
+ control:SetCallback("OnEnter", OptionOnMouseOver)
+end
+
+local function CreateControl(userControlType, fallbackControlType)
+ local control
+ if userControlType then
+ control = gui:Create(userControlType)
+ if not control then
+ geterrorhandler()(("Invalid Custom Control Type - %s"):format(tostring(userControlType)))
+ end
+ end
+ if not control then
+ control = gui:Create(fallbackControlType)
+ end
+ return control
+end
+
+local function sortTblAsStrings(x,y)
+ return tostring(x) < tostring(y) -- Support numbers as keys
+end
+
+--[[
+ options - root of the options table being fed
+ container - widget that controls will be placed in
+ rootframe - Frame object the options are in
+ path - table with the keys to get to the group being fed
+--]]
+
+local function FeedOptions(appName, options,container,rootframe,path,group,inline)
+ local keySort = new()
+ local opts = new()
+
+ BuildSortedOptionsTable(group, keySort, opts, options, path, appName)
+
+ for i = 1, #keySort do
+ local k = keySort[i]
+ local v = opts[k]
+ tinsert(path, k)
+ local hidden = CheckOptionHidden(v, options, path, appName)
+ local name = GetOptionsMemberValue("name", v, options, path, appName)
+ if not hidden then
+ if v.type == "group" then
+ if inline or pickfirstset(v.dialogInline,v.guiInline,v.inline, false) then
+ --Inline group
+ local GroupContainer
+ if name and name ~= "" then
+ GroupContainer = gui:Create("InlineGroup")
+ GroupContainer:SetTitle(name or "")
+ else
+ GroupContainer = gui:Create("SimpleGroup")
+ end
+
+ GroupContainer.width = "fill"
+ GroupContainer:SetLayout("flow")
+ container:AddChild(GroupContainer)
+ FeedOptions(appName,options,GroupContainer,rootframe,path,v,true)
+ end
+ else
+ --Control to feed
+ local control
+
+ local name = GetOptionsMemberValue("name", v, options, path, appName)
+
+ if v.type == "execute" then
+
+ local imageCoords = GetOptionsMemberValue("imageCoords",v, options, path, appName)
+ local image, width, height = GetOptionsMemberValue("image",v, options, path, appName)
+
+ local iconControl = type(image) == "string" or type(image) == "number"
+ control = CreateControl(v.dialogControl or v.control, iconControl and "Icon" or "Button")
+ if iconControl then
+ if not width then
+ width = GetOptionsMemberValue("imageWidth",v, options, path, appName)
+ end
+ if not height then
+ height = GetOptionsMemberValue("imageHeight",v, options, path, appName)
+ end
+ if type(imageCoords) == "table" then
+ control:SetImage(image, unpack(imageCoords))
+ else
+ control:SetImage(image)
+ end
+ if type(width) ~= "number" then
+ width = 32
+ end
+ if type(height) ~= "number" then
+ height = 32
+ end
+ control:SetImageSize(width, height)
+ control:SetLabel(name)
+ else
+ control:SetText(name)
+ end
+ control:SetCallback("OnClick",ActivateControl)
+
+ elseif v.type == "input" then
+ control = CreateControl(v.dialogControl or v.control, v.multiline and "MultiLineEditBox" or "EditBox")
+
+ if v.multiline and control.SetNumLines then
+ control:SetNumLines(tonumber(v.multiline) or 4)
+ end
+ control:SetLabel(name)
+ control:SetCallback("OnEnterPressed",ActivateControl)
+ local text = GetOptionsMemberValue("get",v, options, path, appName)
+ if type(text) ~= "string" then
+ text = ""
+ end
+ control:SetText(text)
+
+ elseif v.type == "toggle" then
+ control = CreateControl(v.dialogControl or v.control, "CheckBox")
+ control:SetLabel(name)
+ control:SetTriState(v.tristate)
+ local value = GetOptionsMemberValue("get",v, options, path, appName)
+ control:SetValue(value)
+ control:SetCallback("OnValueChanged",ActivateControl)
+
+ if v.descStyle == "inline" then
+ local desc = GetOptionsMemberValue("desc", v, options, path, appName)
+ control:SetDescription(desc)
+ end
+
+ local image = GetOptionsMemberValue("image", v, options, path, appName)
+ local imageCoords = GetOptionsMemberValue("imageCoords", v, options, path, appName)
+
+ if type(image) == "string" or type(image) == "number" then
+ if type(imageCoords) == "table" then
+ control:SetImage(image, unpack(imageCoords))
+ else
+ control:SetImage(image)
+ end
+ end
+ elseif v.type == "range" then
+ control = CreateControl(v.dialogControl or v.control, "Slider")
+ control:SetLabel(name)
+ control:SetSliderValues(v.softMin or v.min or 0, v.softMax or v.max or 100, v.bigStep or v.step or 0)
+ control:SetIsPercent(v.isPercent)
+ local value = GetOptionsMemberValue("get",v, options, path, appName)
+ if type(value) ~= "number" then
+ value = 0
+ end
+ control:SetValue(value)
+ control:SetCallback("OnValueChanged",ActivateSlider)
+ control:SetCallback("OnMouseUp",ActivateSlider)
+
+ elseif v.type == "select" then
+ local values = GetOptionsMemberValue("values", v, options, path, appName)
+ local sorting = GetOptionsMemberValue("sorting", v, options, path, appName)
+ if v.style == "radio" then
+ local disabled = CheckOptionDisabled(v, options, path, appName)
+ local width = GetOptionsMemberValue("width",v,options,path,appName)
+ control = gui:Create("InlineGroup")
+ control:SetLayout("Flow")
+ control:SetTitle(name)
+ control.width = "fill"
+
+ control:PauseLayout()
+ local optionValue = GetOptionsMemberValue("get",v, options, path, appName)
+ if not sorting then
+ sorting = {}
+ for value, text in pairs(values) do
+ sorting[#sorting+1]=value
+ end
+ tsort(sorting, sortTblAsStrings)
+ end
+ for k, value in ipairs(sorting) do
+ local text = values[value]
+ local radio = gui:Create("CheckBox")
+ radio:SetLabel(text)
+ radio:SetUserData("value", value)
+ radio:SetUserData("text", text)
+ radio:SetDisabled(disabled)
+ radio:SetType("radio")
+ radio:SetValue(optionValue == value)
+ radio:SetCallback("OnValueChanged", ActivateMultiControl)
+ InjectInfo(radio, options, v, path, rootframe, appName)
+ control:AddChild(radio)
+ if width == "double" then
+ radio:SetWidth(width_multiplier * 2)
+ elseif width == "half" then
+ radio:SetWidth(width_multiplier / 2)
+ elseif (type(width) == "number") then
+ radio:SetWidth(width_multiplier * width)
+ elseif width == "full" then
+ radio.width = "fill"
+ else
+ radio:SetWidth(width_multiplier)
+ end
+ end
+ control:ResumeLayout()
+ control:DoLayout()
+ else
+ control = CreateControl(v.dialogControl or v.control, "Dropdown")
+ local itemType = v.itemControl
+ if itemType and not gui:GetWidgetVersion(itemType) then
+ geterrorhandler()(("Invalid Custom Item Type - %s"):format(tostring(itemType)))
+ itemType = nil
+ end
+ control:SetLabel(name)
+ control:SetList(values, sorting, itemType)
+ local value = GetOptionsMemberValue("get",v, options, path, appName)
+ if not values[value] then
+ value = nil
+ end
+ control:SetValue(value)
+ control:SetCallback("OnValueChanged", ActivateControl)
+ end
+
+ elseif v.type == "multiselect" then
+ local values = GetOptionsMemberValue("values", v, options, path, appName)
+ local disabled = CheckOptionDisabled(v, options, path, appName)
+
+ local valuesort = new()
+ if values then
+ for value, text in pairs(values) do
+ tinsert(valuesort, value)
+ end
+ end
+ tsort(valuesort)
+
+ local controlType = v.dialogControl or v.control
+ if controlType then
+ control = gui:Create(controlType)
+ if not control then
+ geterrorhandler()(("Invalid Custom Control Type - %s"):format(tostring(controlType)))
+ end
+ end
+ if control then
+ control:SetMultiselect(true)
+ control:SetLabel(name)
+ control:SetList(values)
+ control:SetDisabled(disabled)
+ control:SetCallback("OnValueChanged",ActivateControl)
+ control:SetCallback("OnClosed", MultiControlOnClosed)
+ local width = GetOptionsMemberValue("width",v,options,path,appName)
+ if width == "double" then
+ control:SetWidth(width_multiplier * 2)
+ elseif width == "half" then
+ control:SetWidth(width_multiplier / 2)
+ elseif (type(width) == "number") then
+ control:SetWidth(width_multiplier * width)
+ elseif width == "full" then
+ control.width = "fill"
+ else
+ control:SetWidth(width_multiplier)
+ end
+ --check:SetTriState(v.tristate)
+ for i = 1, #valuesort do
+ local key = valuesort[i]
+ local value = GetOptionsMemberValue("get",v, options, path, appName, key)
+ control:SetItemValue(key,value)
+ end
+ else
+ control = gui:Create("InlineGroup")
+ control:SetLayout("Flow")
+ control:SetTitle(name)
+ control.width = "fill"
+
+ control:PauseLayout()
+ local width = GetOptionsMemberValue("width",v,options,path,appName)
+ for i = 1, #valuesort do
+ local value = valuesort[i]
+ local text = values[value]
+ local check = gui:Create("CheckBox")
+ check:SetLabel(text)
+ check:SetUserData("value", value)
+ check:SetUserData("text", text)
+ check:SetDisabled(disabled)
+ check:SetTriState(v.tristate)
+ check:SetValue(GetOptionsMemberValue("get",v, options, path, appName, value))
+ check:SetCallback("OnValueChanged",ActivateMultiControl)
+ InjectInfo(check, options, v, path, rootframe, appName)
+ control:AddChild(check)
+ if width == "double" then
+ check:SetWidth(width_multiplier * 2)
+ elseif width == "half" then
+ check:SetWidth(width_multiplier / 2)
+ elseif (type(width) == "number") then
+ control:SetWidth(width_multiplier * width)
+ elseif width == "full" then
+ check.width = "fill"
+ else
+ check:SetWidth(width_multiplier)
+ end
+ end
+ control:ResumeLayout()
+ control:DoLayout()
+
+
+ end
+
+ del(valuesort)
+
+ elseif v.type == "color" then
+ control = CreateControl(v.dialogControl or v.control, "ColorPicker")
+ control:SetLabel(name)
+ control:SetHasAlpha(GetOptionsMemberValue("hasAlpha",v, options, path, appName))
+ control:SetColor(GetOptionsMemberValue("get",v, options, path, appName))
+ control:SetCallback("OnValueChanged",ActivateControl)
+ control:SetCallback("OnValueConfirmed",ActivateControl)
+
+ elseif v.type == "keybinding" then
+ control = CreateControl(v.dialogControl or v.control, "Keybinding")
+ control:SetLabel(name)
+ control:SetKey(GetOptionsMemberValue("get",v, options, path, appName))
+ control:SetCallback("OnKeyChanged",ActivateControl)
+
+ elseif v.type == "header" then
+ control = CreateControl(v.dialogControl or v.control, "Heading")
+ control:SetText(name)
+ control.width = "fill"
+
+ elseif v.type == "description" then
+ control = CreateControl(v.dialogControl or v.control, "Label")
+ control:SetText(name)
+
+ local fontSize = GetOptionsMemberValue("fontSize",v, options, path, appName)
+ if fontSize == "medium" then
+ control:SetFontObject(GameFontHighlight)
+ elseif fontSize == "large" then
+ control:SetFontObject(GameFontHighlightLarge)
+ else -- small or invalid
+ control:SetFontObject(GameFontHighlightSmall)
+ end
+
+ local imageCoords = GetOptionsMemberValue("imageCoords",v, options, path, appName)
+ local image, width, height = GetOptionsMemberValue("image",v, options, path, appName)
+
+ if type(image) == "string" or type(image) == "number" then
+ if not width then
+ width = GetOptionsMemberValue("imageWidth",v, options, path, appName)
+ end
+ if not height then
+ height = GetOptionsMemberValue("imageHeight",v, options, path, appName)
+ end
+ if type(imageCoords) == "table" then
+ control:SetImage(image, unpack(imageCoords))
+ else
+ control:SetImage(image)
+ end
+ if type(width) ~= "number" then
+ width = 32
+ end
+ if type(height) ~= "number" then
+ height = 32
+ end
+ control:SetImageSize(width, height)
+ end
+ local width = GetOptionsMemberValue("width",v,options,path,appName)
+ control.width = not width and "fill"
+ end
+
+ --Common Init
+ if control then
+ if control.width ~= "fill" then
+ local width = GetOptionsMemberValue("width",v,options,path,appName)
+ if width == "double" then
+ control:SetWidth(width_multiplier * 2)
+ elseif width == "half" then
+ control:SetWidth(width_multiplier / 2)
+ elseif (type(width) == "number") then
+ control:SetWidth(width_multiplier * width)
+ elseif width == "full" then
+ control.width = "fill"
+ else
+ control:SetWidth(width_multiplier)
+ end
+ end
+ if control.SetDisabled then
+ local disabled = CheckOptionDisabled(v, options, path, appName)
+ control:SetDisabled(disabled)
+ end
+
+ InjectInfo(control, options, v, path, rootframe, appName)
+ container:AddChild(control)
+ end
+
+ end
+ end
+ tremove(path)
+ end
+ container:ResumeLayout()
+ container:DoLayout()
+ del(keySort)
+ del(opts)
+end
+
+local function BuildPath(path, ...)
+ for i = 1, select("#",...) do
+ tinsert(path, (select(i,...)))
+ end
+end
+
+
+local function TreeOnButtonEnter(widget, event, uniquevalue, button)
+ local user = widget:GetUserDataTable()
+ if not user then return end
+ local options = user.options
+ local option = user.option
+ local path = user.path
+ local appName = user.appName
+ local tooltip = AceConfigDialog.tooltip
+
+ local feedpath = new()
+ for i = 1, #path do
+ feedpath[i] = path[i]
+ end
+
+ BuildPath(feedpath, ("\001"):split(uniquevalue))
+ local group = options
+ for i = 1, #feedpath do
+ if not group then return end
+ group = GetSubOption(group, feedpath[i])
+ end
+
+ local name = GetOptionsMemberValue("name", group, options, feedpath, appName)
+ local desc = GetOptionsMemberValue("desc", group, options, feedpath, appName)
+
+ tooltip:SetOwner(button, "ANCHOR_NONE")
+ tooltip:ClearAllPoints()
+ if widget.type == "TabGroup" then
+ tooltip:SetPoint("BOTTOM",button,"TOP")
+ else
+ tooltip:SetPoint("LEFT",button,"RIGHT")
+ end
+
+ tooltip:SetText(name, 1, .82, 0, true)
+
+ if type(desc) == "string" then
+ tooltip:AddLine(desc, 1, 1, 1, true)
+ end
+
+ tooltip:Show()
+end
+
+local function TreeOnButtonLeave(widget, event, value, button)
+ AceConfigDialog.tooltip:Hide()
+end
+
+
+local function GroupExists(appName, options, path, uniquevalue)
+ if not uniquevalue then return false end
+
+ local feedpath = new()
+ local temppath = new()
+ for i = 1, #path do
+ feedpath[i] = path[i]
+ end
+
+ BuildPath(feedpath, ("\001"):split(uniquevalue))
+
+ local group = options
+ for i = 1, #feedpath do
+ local v = feedpath[i]
+ temppath[i] = v
+ group = GetSubOption(group, v)
+
+ if not group or group.type ~= "group" or CheckOptionHidden(group, options, temppath, appName) then
+ del(feedpath)
+ del(temppath)
+ return false
+ end
+ end
+ del(feedpath)
+ del(temppath)
+ return true
+end
+
+local function GroupSelected(widget, event, uniquevalue)
+
+ local user = widget:GetUserDataTable()
+
+ local options = user.options
+ local option = user.option
+ local path = user.path
+ local rootframe = user.rootframe
+
+ local feedpath = new()
+ for i = 1, #path do
+ feedpath[i] = path[i]
+ end
+
+ BuildPath(feedpath, ("\001"):split(uniquevalue))
+ widget:ReleaseChildren()
+ AceConfigDialog:FeedGroup(user.appName,options,widget,rootframe,feedpath)
+
+ del(feedpath)
+end
+
+
+
+--[[
+-- INTERNAL --
+This function will feed one group, and any inline child groups into the given container
+Select Groups will only have the selection control (tree, tabs, dropdown) fed in
+and have a group selected, this event will trigger the feeding of child groups
+
+Rules:
+ If the group is Inline, FeedOptions
+ If the group has no child groups, FeedOptions
+
+ If the group is a tab or select group, FeedOptions then add the Group Control
+ If the group is a tree group FeedOptions then
+ its parent isnt a tree group: then add the tree control containing this and all child tree groups
+ if its parent is a tree group, its already a node on a tree
+--]]
+
+function AceConfigDialog:FeedGroup(appName,options,container,rootframe,path, isRoot)
+ local group = options
+ --follow the path to get to the curent group
+ local inline
+ local grouptype, parenttype = options.childGroups, "none"
+
+
+ for i = 1, #path do
+ local v = path[i]
+ group = GetSubOption(group, v)
+ inline = inline or pickfirstset(v.dialogInline,v.guiInline,v.inline, false)
+ parenttype = grouptype
+ grouptype = group.childGroups
+ end
+
+ if not parenttype then
+ parenttype = "tree"
+ end
+
+ --check if the group has child groups
+ local hasChildGroups
+ for k, v in pairs(group.args) do
+ if v.type == "group" and not pickfirstset(v.dialogInline,v.guiInline,v.inline, false) and not CheckOptionHidden(v, options, path, appName) then
+ hasChildGroups = true
+ end
+ end
+ if group.plugins then
+ for plugin, t in pairs(group.plugins) do
+ for k, v in pairs(t) do
+ if v.type == "group" and not pickfirstset(v.dialogInline,v.guiInline,v.inline, false) and not CheckOptionHidden(v, options, path, appName) then
+ hasChildGroups = true
+ end
+ end
+ end
+ end
+
+ container:SetLayout("flow")
+ local scroll
+
+ --Add a scrollframe if we are not going to add a group control, this is the inverse of the conditions for that later on
+ if (not (hasChildGroups and not inline)) or (grouptype ~= "tab" and grouptype ~= "select" and (parenttype == "tree" and not isRoot)) then
+ if container.type ~= "InlineGroup" and container.type ~= "SimpleGroup" then
+ scroll = gui:Create("ScrollFrame")
+ scroll:SetLayout("flow")
+ scroll.width = "fill"
+ scroll.height = "fill"
+ container:SetLayout("fill")
+ container:AddChild(scroll)
+ container = scroll
+ end
+ end
+
+ FeedOptions(appName,options,container,rootframe,path,group,nil)
+
+ if scroll then
+ container:PerformLayout()
+ local status = self:GetStatusTable(appName, path)
+ if not status.scroll then
+ status.scroll = {}
+ end
+ scroll:SetStatusTable(status.scroll)
+ end
+
+ if hasChildGroups and not inline then
+ local name = GetOptionsMemberValue("name", group, options, path, appName)
+ if grouptype == "tab" then
+
+ local tab = gui:Create("TabGroup")
+ InjectInfo(tab, options, group, path, rootframe, appName)
+ tab:SetCallback("OnGroupSelected", GroupSelected)
+ tab:SetCallback("OnTabEnter", TreeOnButtonEnter)
+ tab:SetCallback("OnTabLeave", TreeOnButtonLeave)
+
+ local status = AceConfigDialog:GetStatusTable(appName, path)
+ if not status.groups then
+ status.groups = {}
+ end
+ tab:SetStatusTable(status.groups)
+ tab.width = "fill"
+ tab.height = "fill"
+
+ local tabs = BuildGroups(group, options, path, appName)
+ tab:SetTabs(tabs)
+ tab:SetUserData("tablist", tabs)
+
+ for i = 1, #tabs do
+ local entry = tabs[i]
+ if not entry.disabled then
+ tab:SelectTab((GroupExists(appName, options, path,status.groups.selected) and status.groups.selected) or entry.value)
+ break
+ end
+ end
+
+ container:AddChild(tab)
+
+ elseif grouptype == "select" then
+
+ local select = gui:Create("DropdownGroup")
+ select:SetTitle(name)
+ InjectInfo(select, options, group, path, rootframe, appName)
+ select:SetCallback("OnGroupSelected", GroupSelected)
+ local status = AceConfigDialog:GetStatusTable(appName, path)
+ if not status.groups then
+ status.groups = {}
+ end
+ select:SetStatusTable(status.groups)
+ local grouplist, orderlist = BuildSelect(group, options, path, appName)
+ select:SetGroupList(grouplist, orderlist)
+ select:SetUserData("grouplist", grouplist)
+ select:SetUserData("orderlist", orderlist)
+
+ local firstgroup = orderlist[1]
+ if firstgroup then
+ select:SetGroup((GroupExists(appName, options, path,status.groups.selected) and status.groups.selected) or firstgroup)
+ end
+
+ select.width = "fill"
+ select.height = "fill"
+
+ container:AddChild(select)
+
+ --assume tree group by default
+ --if parenttype is tree then this group is already a node on that tree
+ elseif (parenttype ~= "tree") or isRoot then
+ local tree = gui:Create("TreeGroup")
+ InjectInfo(tree, options, group, path, rootframe, appName)
+ tree:EnableButtonTooltips(false)
+
+ tree.width = "fill"
+ tree.height = "fill"
+
+ tree:SetCallback("OnGroupSelected", GroupSelected)
+ tree:SetCallback("OnButtonEnter", TreeOnButtonEnter)
+ tree:SetCallback("OnButtonLeave", TreeOnButtonLeave)
+
+ local status = AceConfigDialog:GetStatusTable(appName, path)
+ if not status.groups then
+ status.groups = {}
+ end
+ local treedefinition = BuildGroups(group, options, path, appName, true)
+ tree:SetStatusTable(status.groups)
+
+ tree:SetTree(treedefinition)
+ tree:SetUserData("tree",treedefinition)
+
+ for i = 1, #treedefinition do
+ local entry = treedefinition[i]
+ if not entry.disabled then
+ tree:SelectByValue((GroupExists(appName, options, path,status.groups.selected) and status.groups.selected) or entry.value)
+ break
+ end
+ end
+
+ container:AddChild(tree)
+ end
+ end
+end
+
+local old_CloseSpecialWindows
+
+
+local function RefreshOnUpdate(this)
+ for appName in pairs(this.closing) do
+ if AceConfigDialog.OpenFrames[appName] then
+ AceConfigDialog.OpenFrames[appName]:Hide()
+ end
+ if AceConfigDialog.BlizOptions and AceConfigDialog.BlizOptions[appName] then
+ for key, widget in pairs(AceConfigDialog.BlizOptions[appName]) do
+ if not widget:IsVisible() then
+ widget:ReleaseChildren()
+ end
+ end
+ end
+ this.closing[appName] = nil
+ end
+
+ if this.closeAll then
+ for k, v in pairs(AceConfigDialog.OpenFrames) do
+ if not this.closeAllOverride[k] then
+ v:Hide()
+ end
+ end
+ this.closeAll = nil
+ wipe(this.closeAllOverride)
+ end
+
+ for appName in pairs(this.apps) do
+ if AceConfigDialog.OpenFrames[appName] then
+ local user = AceConfigDialog.OpenFrames[appName]:GetUserDataTable()
+ AceConfigDialog:Open(appName, unpack(user.basepath or emptyTbl))
+ end
+ if AceConfigDialog.BlizOptions and AceConfigDialog.BlizOptions[appName] then
+ for key, widget in pairs(AceConfigDialog.BlizOptions[appName]) do
+ local user = widget:GetUserDataTable()
+ if widget:IsVisible() then
+ AceConfigDialog:Open(widget:GetUserData("appName"), widget, unpack(user.basepath or emptyTbl))
+ end
+ end
+ end
+ this.apps[appName] = nil
+ end
+ this:SetScript("OnUpdate", nil)
+end
+
+-- Upgrade the OnUpdate script as well, if needed.
+if AceConfigDialog.frame:GetScript("OnUpdate") then
+ AceConfigDialog.frame:SetScript("OnUpdate", RefreshOnUpdate)
+end
+
+--- Close all open options windows
+function AceConfigDialog:CloseAll()
+ AceConfigDialog.frame.closeAll = true
+ AceConfigDialog.frame:SetScript("OnUpdate", RefreshOnUpdate)
+ if next(self.OpenFrames) then
+ return true
+ end
+end
+
+--- Close a specific options window.
+-- @param appName The application name as given to `:RegisterOptionsTable()`
+function AceConfigDialog:Close(appName)
+ if self.OpenFrames[appName] then
+ AceConfigDialog.frame.closing[appName] = true
+ AceConfigDialog.frame:SetScript("OnUpdate", RefreshOnUpdate)
+ return true
+ end
+end
+
+-- Internal -- Called by AceConfigRegistry
+function AceConfigDialog:ConfigTableChanged(event, appName)
+ AceConfigDialog.frame.apps[appName] = true
+ AceConfigDialog.frame:SetScript("OnUpdate", RefreshOnUpdate)
+end
+
+reg.RegisterCallback(AceConfigDialog, "ConfigTableChange", "ConfigTableChanged")
+
+--- Sets the default size of the options window for a specific application.
+-- @param appName The application name as given to `:RegisterOptionsTable()`
+-- @param width The default width
+-- @param height The default height
+function AceConfigDialog:SetDefaultSize(appName, width, height)
+ local status = AceConfigDialog:GetStatusTable(appName)
+ if type(width) == "number" and type(height) == "number" then
+ status.width = width
+ status.height = height
+ end
+end
+
+--- Open an option window at the specified path (if any).
+-- This function can optionally feed the group into a pre-created container
+-- instead of creating a new container frame.
+-- @paramsig appName [, container][, ...]
+-- @param appName The application name as given to `:RegisterOptionsTable()`
+-- @param container An optional container frame to feed the options into
+-- @param ... The path to open after creating the options window (see `:SelectGroup` for details)
+function AceConfigDialog:Open(appName, container, ...)
+ if not old_CloseSpecialWindows then
+ old_CloseSpecialWindows = CloseSpecialWindows
+ CloseSpecialWindows = function()
+ local found = old_CloseSpecialWindows()
+ return self:CloseAll() or found
+ end
+ end
+ local app = reg:GetOptionsTable(appName)
+ if not app then
+ error(("%s isn't registed with AceConfigRegistry, unable to open config"):format(appName), 2)
+ end
+ local options = app("dialog", MAJOR)
+
+ local f
+
+ local path = new()
+ local name = GetOptionsMemberValue("name", options, options, path, appName)
+
+ --If an optional path is specified add it to the path table before feeding the options
+ --as container is optional as well it may contain the first element of the path
+ if type(container) == "string" then
+ tinsert(path, container)
+ container = nil
+ end
+ for n = 1, select("#",...) do
+ tinsert(path, (select(n, ...)))
+ end
+
+ local option = options
+ if type(container) == "table" and container.type == "BlizOptionsGroup" and #path > 0 then
+ for i = 1, #path do
+ option = options.args[path[i]]
+ end
+ name = format("%s - %s", name, GetOptionsMemberValue("name", option, options, path, appName))
+ end
+
+ --if a container is given feed into that
+ if container then
+ f = container
+ f:ReleaseChildren()
+ f:SetUserData("appName", appName)
+ f:SetUserData("iscustom", true)
+ if #path > 0 then
+ f:SetUserData("basepath", copy(path))
+ end
+ local status = AceConfigDialog:GetStatusTable(appName)
+ if not status.width then
+ status.width = 700
+ end
+ if not status.height then
+ status.height = 500
+ end
+ if f.SetStatusTable then
+ f:SetStatusTable(status)
+ end
+ if f.SetTitle then
+ f:SetTitle(name or "")
+ end
+ else
+ if not self.OpenFrames[appName] then
+ f = gui:Create("Frame")
+ self.OpenFrames[appName] = f
+ else
+ f = self.OpenFrames[appName]
+ end
+ f:ReleaseChildren()
+ f:SetCallback("OnClose", FrameOnClose)
+ f:SetUserData("appName", appName)
+ if #path > 0 then
+ f:SetUserData("basepath", copy(path))
+ end
+ f:SetTitle(name or "")
+ local status = AceConfigDialog:GetStatusTable(appName)
+ f:SetStatusTable(status)
+ end
+
+ self:FeedGroup(appName,options,f,f,path,true)
+ if f.Show then
+ f:Show()
+ end
+ del(path)
+
+ if AceConfigDialog.frame.closeAll then
+ -- close all is set, but thats not good, since we're just opening here, so force it
+ AceConfigDialog.frame.closeAllOverride[appName] = true
+ end
+end
+
+-- convert pre-39 BlizOptions structure to the new format
+if oldminor and oldminor < 39 and AceConfigDialog.BlizOptions then
+ local old = AceConfigDialog.BlizOptions
+ local new = {}
+ for key, widget in pairs(old) do
+ local appName = widget:GetUserData("appName")
+ if not new[appName] then new[appName] = {} end
+ new[appName][key] = widget
+ end
+ AceConfigDialog.BlizOptions = new
+else
+ AceConfigDialog.BlizOptions = AceConfigDialog.BlizOptions or {}
+end
+
+local function FeedToBlizPanel(widget, event)
+ local path = widget:GetUserData("path")
+ AceConfigDialog:Open(widget:GetUserData("appName"), widget, unpack(path or emptyTbl))
+end
+
+local function ClearBlizPanel(widget, event)
+ local appName = widget:GetUserData("appName")
+ AceConfigDialog.frame.closing[appName] = true
+ AceConfigDialog.frame:SetScript("OnUpdate", RefreshOnUpdate)
+end
+
+--- Add an option table into the Blizzard Interface Options panel.
+-- You can optionally supply a descriptive name to use and a parent frame to use,
+-- as well as a path in the options table.\\
+-- If no name is specified, the appName will be used instead.
+--
+-- If you specify a proper `parent` (by name), the interface options will generate a
+-- tree layout. Note that only one level of children is supported, so the parent always
+-- has to be a head-level note.
+--
+-- This function returns a reference to the container frame registered with the Interface
+-- Options. You can use this reference to open the options with the API function
+-- `InterfaceOptionsFrame_OpenToCategory`.
+-- @param appName The application name as given to `:RegisterOptionsTable()`
+-- @param name A descriptive name to display in the options tree (defaults to appName)
+-- @param parent The parent to use in the interface options tree.
+-- @param ... The path in the options table to feed into the interface options panel.
+-- @return The reference to the frame registered into the Interface Options.
+function AceConfigDialog:AddToBlizOptions(appName, name, parent, ...)
+ local BlizOptions = AceConfigDialog.BlizOptions
+
+ local key = appName
+ for n = 1, select("#", ...) do
+ key = key.."\001"..select(n, ...)
+ end
+
+ if not BlizOptions[appName] then
+ BlizOptions[appName] = {}
+ end
+
+ if not BlizOptions[appName][key] then
+ local group = gui:Create("BlizOptionsGroup")
+ BlizOptions[appName][key] = group
+ group:SetName(name or appName, parent)
+
+ group:SetTitle(name or appName)
+ group:SetUserData("appName", appName)
+ if select("#", ...) > 0 then
+ local path = {}
+ for n = 1, select("#",...) do
+ tinsert(path, (select(n, ...)))
+ end
+ group:SetUserData("path", path)
+ end
+ group:SetCallback("OnShow", FeedToBlizPanel)
+ group:SetCallback("OnHide", ClearBlizPanel)
+ InterfaceOptions_AddCategory(group.frame)
+ return group.frame
+ else
+ error(("%s has already been added to the Blizzard Options Window with the given path"):format(appName), 2)
+ end
+end
diff --git a/Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.xml b/Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.xml
new file mode 100644
index 00000000..8e1e6063
--- /dev/null
+++ b/Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua b/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua
new file mode 100644
index 00000000..f8d9225f
--- /dev/null
+++ b/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua
@@ -0,0 +1,371 @@
+--- AceConfigRegistry-3.0 handles central registration of options tables in use by addons and modules.\\
+-- Options tables can be registered as raw tables, OR as function refs that return a table.\\
+-- Such functions receive three arguments: "uiType", "uiName", "appName". \\
+-- * Valid **uiTypes**: "cmd", "dropdown", "dialog". This is verified by the library at call time. \\
+-- * The **uiName** field is expected to contain the full name of the calling addon, including version, e.g. "FooBar-1.0". This is verified by the library at call time.\\
+-- * The **appName** field is the options table name as given at registration time \\
+--
+-- :IterateOptionsTables() (and :GetOptionsTable() if only given one argument) return a function reference that the requesting config handling addon must call with valid "uiType", "uiName".
+-- @class file
+-- @name AceConfigRegistry-3.0
+-- @release $Id: AceConfigRegistry-3.0.lua 1207 2019-06-23 12:08:33Z nevcairiel $
+local CallbackHandler = LibStub("CallbackHandler-1.0")
+
+local MAJOR, MINOR = "AceConfigRegistry-3.0", 20
+local AceConfigRegistry = LibStub:NewLibrary(MAJOR, MINOR)
+
+if not AceConfigRegistry then return end
+
+AceConfigRegistry.tables = AceConfigRegistry.tables or {}
+
+if not AceConfigRegistry.callbacks then
+ AceConfigRegistry.callbacks = CallbackHandler:New(AceConfigRegistry)
+end
+
+-- Lua APIs
+local tinsert, tconcat = table.insert, table.concat
+local strfind, strmatch = string.find, string.match
+local type, tostring, select, pairs = type, tostring, select, pairs
+local error, assert = error, assert
+
+-----------------------------------------------------------------------
+-- Validating options table consistency:
+
+
+AceConfigRegistry.validated = {
+ -- list of options table names ran through :ValidateOptionsTable automatically.
+ -- CLEARED ON PURPOSE, since newer versions may have newer validators
+ cmd = {},
+ dropdown = {},
+ dialog = {},
+}
+
+
+
+local function err(msg, errlvl, ...)
+ local t = {}
+ for i=select("#",...),1,-1 do
+ tinsert(t, (select(i, ...)))
+ end
+ error(MAJOR..":ValidateOptionsTable(): "..tconcat(t,".")..msg, errlvl+2)
+end
+
+
+local isstring={["string"]=true, _="string"}
+local isstringfunc={["string"]=true,["function"]=true, _="string or funcref"}
+local istable={["table"]=true, _="table"}
+local ismethodtable={["table"]=true,["string"]=true,["function"]=true, _="methodname, funcref or table"}
+local optstring={["nil"]=true,["string"]=true, _="string"}
+local optstringfunc={["nil"]=true,["string"]=true,["function"]=true, _="string or funcref"}
+local optstringnumberfunc={["nil"]=true,["string"]=true,["number"]=true,["function"]=true, _="string, number or funcref"}
+local optnumber={["nil"]=true,["number"]=true, _="number"}
+local optmethodfalse={["nil"]=true,["string"]=true,["function"]=true,["boolean"]={[false]=true}, _="methodname, funcref or false"}
+local optmethodnumber={["nil"]=true,["string"]=true,["function"]=true,["number"]=true, _="methodname, funcref or number"}
+local optmethodtable={["nil"]=true,["string"]=true,["function"]=true,["table"]=true, _="methodname, funcref or table"}
+local optmethodbool={["nil"]=true,["string"]=true,["function"]=true,["boolean"]=true, _="methodname, funcref or boolean"}
+local opttable={["nil"]=true,["table"]=true, _="table"}
+local optbool={["nil"]=true,["boolean"]=true, _="boolean"}
+local optboolnumber={["nil"]=true,["boolean"]=true,["number"]=true, _="boolean or number"}
+local optstringnumber={["nil"]=true,["string"]=true,["number"]=true, _="string or number"}
+
+local basekeys={
+ type=isstring,
+ name=isstringfunc,
+ desc=optstringfunc,
+ descStyle=optstring,
+ order=optmethodnumber,
+ validate=optmethodfalse,
+ confirm=optmethodbool,
+ confirmText=optstring,
+ disabled=optmethodbool,
+ hidden=optmethodbool,
+ guiHidden=optmethodbool,
+ dialogHidden=optmethodbool,
+ dropdownHidden=optmethodbool,
+ cmdHidden=optmethodbool,
+ icon=optstringnumberfunc,
+ iconCoords=optmethodtable,
+ handler=opttable,
+ get=optmethodfalse,
+ set=optmethodfalse,
+ func=optmethodfalse,
+ arg={["*"]=true},
+ width=optstringnumber,
+}
+
+local typedkeys={
+ header={
+ control=optstring,
+ dialogControl=optstring,
+ dropdownControl=optstring,
+ },
+ description={
+ image=optstringnumberfunc,
+ imageCoords=optmethodtable,
+ imageHeight=optnumber,
+ imageWidth=optnumber,
+ fontSize=optstringfunc,
+ control=optstring,
+ dialogControl=optstring,
+ dropdownControl=optstring,
+ },
+ group={
+ args=istable,
+ plugins=opttable,
+ inline=optbool,
+ cmdInline=optbool,
+ guiInline=optbool,
+ dropdownInline=optbool,
+ dialogInline=optbool,
+ childGroups=optstring,
+ },
+ execute={
+ image=optstringnumberfunc,
+ imageCoords=optmethodtable,
+ imageHeight=optnumber,
+ imageWidth=optnumber,
+ control=optstring,
+ dialogControl=optstring,
+ dropdownControl=optstring,
+ },
+ input={
+ pattern=optstring,
+ usage=optstring,
+ control=optstring,
+ dialogControl=optstring,
+ dropdownControl=optstring,
+ multiline=optboolnumber,
+ },
+ toggle={
+ tristate=optbool,
+ image=optstringnumberfunc,
+ imageCoords=optmethodtable,
+ control=optstring,
+ dialogControl=optstring,
+ dropdownControl=optstring,
+ },
+ tristate={
+ },
+ range={
+ min=optnumber,
+ softMin=optnumber,
+ max=optnumber,
+ softMax=optnumber,
+ step=optnumber,
+ bigStep=optnumber,
+ isPercent=optbool,
+ control=optstring,
+ dialogControl=optstring,
+ dropdownControl=optstring,
+ },
+ select={
+ values=ismethodtable,
+ sorting=optmethodtable,
+ style={
+ ["nil"]=true,
+ ["string"]={dropdown=true,radio=true},
+ _="string: 'dropdown' or 'radio'"
+ },
+ control=optstring,
+ dialogControl=optstring,
+ dropdownControl=optstring,
+ itemControl=optstring,
+ },
+ multiselect={
+ values=ismethodtable,
+ style=optstring,
+ tristate=optbool,
+ control=optstring,
+ dialogControl=optstring,
+ dropdownControl=optstring,
+ },
+ color={
+ hasAlpha=optmethodbool,
+ control=optstring,
+ dialogControl=optstring,
+ dropdownControl=optstring,
+ },
+ keybinding={
+ control=optstring,
+ dialogControl=optstring,
+ dropdownControl=optstring,
+ },
+}
+
+local function validateKey(k,errlvl,...)
+ errlvl=(errlvl or 0)+1
+ if type(k)~="string" then
+ err("["..tostring(k).."] - key is not a string", errlvl,...)
+ end
+ if strfind(k, "[%c\127]") then
+ err("["..tostring(k).."] - key name contained control characters", errlvl,...)
+ end
+end
+
+local function validateVal(v, oktypes, errlvl,...)
+ errlvl=(errlvl or 0)+1
+ local isok=oktypes[type(v)] or oktypes["*"]
+
+ if not isok then
+ err(": expected a "..oktypes._..", got '"..tostring(v).."'", errlvl,...)
+ end
+ if type(isok)=="table" then -- isok was a table containing specific values to be tested for!
+ if not isok[v] then
+ err(": did not expect "..type(v).." value '"..tostring(v).."'", errlvl,...)
+ end
+ end
+end
+
+local function validate(options,errlvl,...)
+ errlvl=(errlvl or 0)+1
+ -- basic consistency
+ if type(options)~="table" then
+ err(": expected a table, got a "..type(options), errlvl,...)
+ end
+ if type(options.type)~="string" then
+ err(".type: expected a string, got a "..type(options.type), errlvl,...)
+ end
+
+ -- get type and 'typedkeys' member
+ local tk = typedkeys[options.type]
+ if not tk then
+ err(".type: unknown type '"..options.type.."'", errlvl,...)
+ end
+
+ -- make sure that all options[] are known parameters
+ for k,v in pairs(options) do
+ if not (tk[k] or basekeys[k]) then
+ err(": unknown parameter", errlvl,tostring(k),...)
+ end
+ end
+
+ -- verify that required params are there, and that everything is the right type
+ for k,oktypes in pairs(basekeys) do
+ validateVal(options[k], oktypes, errlvl,k,...)
+ end
+ for k,oktypes in pairs(tk) do
+ validateVal(options[k], oktypes, errlvl,k,...)
+ end
+
+ -- extra logic for groups
+ if options.type=="group" then
+ for k,v in pairs(options.args) do
+ validateKey(k,errlvl,"args",...)
+ validate(v, errlvl,k,"args",...)
+ end
+ if options.plugins then
+ for plugname,plugin in pairs(options.plugins) do
+ if type(plugin)~="table" then
+ err(": expected a table, got '"..tostring(plugin).."'", errlvl,tostring(plugname),"plugins",...)
+ end
+ for k,v in pairs(plugin) do
+ validateKey(k,errlvl,tostring(plugname),"plugins",...)
+ validate(v, errlvl,k,tostring(plugname),"plugins",...)
+ end
+ end
+ end
+ end
+end
+
+
+--- Validates basic structure and integrity of an options table \\
+-- Does NOT verify that get/set etc actually exist, since they can be defined at any depth
+-- @param options The table to be validated
+-- @param name The name of the table to be validated (shown in any error message)
+-- @param errlvl (optional number) error level offset, default 0 (=errors point to the function calling :ValidateOptionsTable)
+function AceConfigRegistry:ValidateOptionsTable(options,name,errlvl)
+ errlvl=(errlvl or 0)+1
+ name = name or "Optionstable"
+ if not options.name then
+ options.name=name -- bit of a hack, the root level doesn't really need a .name :-/
+ end
+ validate(options,errlvl,name)
+end
+
+--- Fires a "ConfigTableChange" callback for those listening in on it, allowing config GUIs to refresh.
+-- You should call this function if your options table changed from any outside event, like a game event
+-- or a timer.
+-- @param appName The application name as given to `:RegisterOptionsTable()`
+function AceConfigRegistry:NotifyChange(appName)
+ if not AceConfigRegistry.tables[appName] then return end
+ AceConfigRegistry.callbacks:Fire("ConfigTableChange", appName)
+end
+
+-- -------------------------------------------------------------------
+-- Registering and retreiving options tables:
+
+
+-- validateGetterArgs: helper function for :GetOptionsTable (or, rather, the getter functions returned by it)
+
+local function validateGetterArgs(uiType, uiName, errlvl)
+ errlvl=(errlvl or 0)+2
+ if uiType~="cmd" and uiType~="dropdown" and uiType~="dialog" then
+ error(MAJOR..": Requesting options table: 'uiType' - invalid configuration UI type, expected 'cmd', 'dropdown' or 'dialog'", errlvl)
+ end
+ if not strmatch(uiName, "[A-Za-z]%-[0-9]") then -- Expecting e.g. "MyLib-1.2"
+ error(MAJOR..": Requesting options table: 'uiName' - badly formatted or missing version number. Expected e.g. 'MyLib-1.2'", errlvl)
+ end
+end
+
+--- Register an options table with the config registry.
+-- @param appName The application name as given to `:RegisterOptionsTable()`
+-- @param options The options table, OR a function reference that generates it on demand. \\
+-- See the top of the page for info on arguments passed to such functions.
+-- @param skipValidation Skip options table validation (primarily useful for extremely huge options, with a noticeable slowdown)
+function AceConfigRegistry:RegisterOptionsTable(appName, options, skipValidation)
+ if type(options)=="table" then
+ if options.type~="group" then -- quick sanity checker
+ error(MAJOR..": RegisterOptionsTable(appName, options): 'options' - missing type='group' member in root group", 2)
+ end
+ AceConfigRegistry.tables[appName] = function(uiType, uiName, errlvl)
+ errlvl=(errlvl or 0)+1
+ validateGetterArgs(uiType, uiName, errlvl)
+ if not AceConfigRegistry.validated[uiType][appName] and not skipValidation then
+ AceConfigRegistry:ValidateOptionsTable(options, appName, errlvl) -- upgradable
+ AceConfigRegistry.validated[uiType][appName] = true
+ end
+ return options
+ end
+ elseif type(options)=="function" then
+ AceConfigRegistry.tables[appName] = function(uiType, uiName, errlvl)
+ errlvl=(errlvl or 0)+1
+ validateGetterArgs(uiType, uiName, errlvl)
+ local tab = assert(options(uiType, uiName, appName))
+ if not AceConfigRegistry.validated[uiType][appName] and not skipValidation then
+ AceConfigRegistry:ValidateOptionsTable(tab, appName, errlvl) -- upgradable
+ AceConfigRegistry.validated[uiType][appName] = true
+ end
+ return tab
+ end
+ else
+ error(MAJOR..": RegisterOptionsTable(appName, options): 'options' - expected table or function reference", 2)
+ end
+end
+
+--- Returns an iterator of ["appName"]=funcref pairs
+function AceConfigRegistry:IterateOptionsTables()
+ return pairs(AceConfigRegistry.tables)
+end
+
+
+
+
+--- Query the registry for a specific options table.
+-- If only appName is given, a function is returned which you
+-- can call with (uiType,uiName) to get the table.\\
+-- If uiType&uiName are given, the table is returned.
+-- @param appName The application name as given to `:RegisterOptionsTable()`
+-- @param uiType The type of UI to get the table for, one of "cmd", "dropdown", "dialog"
+-- @param uiName The name of the library/addon querying for the table, e.g. "MyLib-1.0"
+function AceConfigRegistry:GetOptionsTable(appName, uiType, uiName)
+ local f = AceConfigRegistry.tables[appName]
+ if not f then
+ return nil
+ end
+
+ if uiType then
+ return f(uiType,uiName,1) -- get the table for us
+ else
+ return f -- return the function
+ end
+end
diff --git a/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.xml b/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.xml
new file mode 100644
index 00000000..4ea69caf
--- /dev/null
+++ b/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/Libs/AceConsole-3.0/AceConsole-3.0.lua b/Libs/AceConsole-3.0/AceConsole-3.0.lua
new file mode 100644
index 00000000..678fa95e
--- /dev/null
+++ b/Libs/AceConsole-3.0/AceConsole-3.0.lua
@@ -0,0 +1,250 @@
+--- **AceConsole-3.0** provides registration facilities for slash commands.
+-- You can register slash commands to your custom functions and use the `GetArgs` function to parse them
+-- to your addons individual needs.
+--
+-- **AceConsole-3.0** can be embeded into your addon, either explicitly by calling AceConsole:Embed(MyAddon) or by
+-- specifying it as an embeded library in your AceAddon. All functions will be available on your addon object
+-- and can be accessed directly, without having to explicitly call AceConsole itself.\\
+-- It is recommended to embed AceConsole, otherwise you'll have to specify a custom `self` on all calls you
+-- make into AceConsole.
+-- @class file
+-- @name AceConsole-3.0
+-- @release $Id: AceConsole-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $
+local MAJOR,MINOR = "AceConsole-3.0", 7
+
+local AceConsole, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
+
+if not AceConsole then return end -- No upgrade needed
+
+AceConsole.embeds = AceConsole.embeds or {} -- table containing objects AceConsole is embedded in.
+AceConsole.commands = AceConsole.commands or {} -- table containing commands registered
+AceConsole.weakcommands = AceConsole.weakcommands or {} -- table containing self, command => func references for weak commands that don't persist through enable/disable
+
+-- Lua APIs
+local tconcat, tostring, select = table.concat, tostring, select
+local type, pairs, error = type, pairs, error
+local format, strfind, strsub = string.format, string.find, string.sub
+local max = math.max
+
+-- WoW APIs
+local _G = _G
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: DEFAULT_CHAT_FRAME, SlashCmdList, hash_SlashCmdList
+
+local tmp={}
+local function Print(self,frame,...)
+ local n=0
+ if self ~= AceConsole then
+ n=n+1
+ tmp[n] = "|cff33ff99"..tostring( self ).."|r:"
+ end
+ for i=1, select("#", ...) do
+ n=n+1
+ tmp[n] = tostring(select(i, ...))
+ end
+ frame:AddMessage( tconcat(tmp," ",1,n) )
+end
+
+--- Print to DEFAULT_CHAT_FRAME or given ChatFrame (anything with an .AddMessage function)
+-- @paramsig [chatframe ,] ...
+-- @param chatframe Custom ChatFrame to print to (or any frame with an .AddMessage function)
+-- @param ... List of any values to be printed
+function AceConsole:Print(...)
+ local frame = ...
+ if type(frame) == "table" and frame.AddMessage then -- Is first argument something with an .AddMessage member?
+ return Print(self, frame, select(2,...))
+ else
+ return Print(self, DEFAULT_CHAT_FRAME, ...)
+ end
+end
+
+
+--- Formatted (using format()) print to DEFAULT_CHAT_FRAME or given ChatFrame (anything with an .AddMessage function)
+-- @paramsig [chatframe ,] "format"[, ...]
+-- @param chatframe Custom ChatFrame to print to (or any frame with an .AddMessage function)
+-- @param format Format string - same syntax as standard Lua format()
+-- @param ... Arguments to the format string
+function AceConsole:Printf(...)
+ local frame = ...
+ if type(frame) == "table" and frame.AddMessage then -- Is first argument something with an .AddMessage member?
+ return Print(self, frame, format(select(2,...)))
+ else
+ return Print(self, DEFAULT_CHAT_FRAME, format(...))
+ end
+end
+
+
+
+
+--- Register a simple chat command
+-- @param command Chat command to be registered WITHOUT leading "/"
+-- @param func Function to call when the slash command is being used (funcref or methodname)
+-- @param persist if false, the command will be soft disabled/enabled when aceconsole is used as a mixin (default: true)
+function AceConsole:RegisterChatCommand( command, func, persist )
+ if type(command)~="string" then error([[Usage: AceConsole:RegisterChatCommand( "command", func[, persist ]): 'command' - expected a string]], 2) end
+
+ if persist==nil then persist=true end -- I'd rather have my addon's "/addon enable" around if the author screws up. Having some extra slash regged when it shouldnt be isn't as destructive. True is a better default. /Mikk
+
+ local name = "ACECONSOLE_"..command:upper()
+
+ if type( func ) == "string" then
+ SlashCmdList[name] = function(input, editBox)
+ self[func](self, input, editBox)
+ end
+ else
+ SlashCmdList[name] = func
+ end
+ _G["SLASH_"..name.."1"] = "/"..command:lower()
+ AceConsole.commands[command] = name
+ -- non-persisting commands are registered for enabling disabling
+ if not persist then
+ if not AceConsole.weakcommands[self] then AceConsole.weakcommands[self] = {} end
+ AceConsole.weakcommands[self][command] = func
+ end
+ return true
+end
+
+--- Unregister a chatcommand
+-- @param command Chat command to be unregistered WITHOUT leading "/"
+function AceConsole:UnregisterChatCommand( command )
+ local name = AceConsole.commands[command]
+ if name then
+ SlashCmdList[name] = nil
+ _G["SLASH_" .. name .. "1"] = nil
+ hash_SlashCmdList["/" .. command:upper()] = nil
+ AceConsole.commands[command] = nil
+ end
+end
+
+--- Get an iterator over all Chat Commands registered with AceConsole
+-- @return Iterator (pairs) over all commands
+function AceConsole:IterateChatCommands() return pairs(AceConsole.commands) end
+
+
+local function nils(n, ...)
+ if n>1 then
+ return nil, nils(n-1, ...)
+ elseif n==1 then
+ return nil, ...
+ else
+ return ...
+ end
+end
+
+
+--- Retreive one or more space-separated arguments from a string.
+-- Treats quoted strings and itemlinks as non-spaced.
+-- @param str The raw argument string
+-- @param numargs How many arguments to get (default 1)
+-- @param startpos Where in the string to start scanning (default 1)
+-- @return Returns arg1, arg2, ..., nextposition\\
+-- Missing arguments will be returned as nils. 'nextposition' is returned as 1e9 at the end of the string.
+function AceConsole:GetArgs(str, numargs, startpos)
+ numargs = numargs or 1
+ startpos = max(startpos or 1, 1)
+
+ local pos=startpos
+
+ -- find start of new arg
+ pos = strfind(str, "[^ ]", pos)
+ if not pos then -- whoops, end of string
+ return nils(numargs, 1e9)
+ end
+
+ if numargs<1 then
+ return pos
+ end
+
+ -- quoted or space separated? find out which pattern to use
+ local delim_or_pipe
+ local ch = strsub(str, pos, pos)
+ if ch=='"' then
+ pos = pos + 1
+ delim_or_pipe='([|"])'
+ elseif ch=="'" then
+ pos = pos + 1
+ delim_or_pipe="([|'])"
+ else
+ delim_or_pipe="([| ])"
+ end
+
+ startpos = pos
+
+ while true do
+ -- find delimiter or hyperlink
+ local ch,_
+ pos,_,ch = strfind(str, delim_or_pipe, pos)
+
+ if not pos then break end
+
+ if ch=="|" then
+ -- some kind of escape
+
+ if strsub(str,pos,pos+1)=="|H" then
+ -- It's a |H....|hhyper link!|h
+ pos=strfind(str, "|h", pos+2) -- first |h
+ if not pos then break end
+
+ pos=strfind(str, "|h", pos+2) -- second |h
+ if not pos then break end
+ elseif strsub(str,pos, pos+1) == "|T" then
+ -- It's a |T....|t texture
+ pos=strfind(str, "|t", pos+2)
+ if not pos then break end
+ end
+
+ pos=pos+2 -- skip past this escape (last |h if it was a hyperlink)
+
+ else
+ -- found delimiter, done with this arg
+ return strsub(str, startpos, pos-1), AceConsole:GetArgs(str, numargs-1, pos+1)
+ end
+
+ end
+
+ -- search aborted, we hit end of string. return it all as one argument. (yes, even if it's an unterminated quote or hyperlink)
+ return strsub(str, startpos), nils(numargs-1, 1e9)
+end
+
+
+--- embedding and embed handling
+
+local mixins = {
+ "Print",
+ "Printf",
+ "RegisterChatCommand",
+ "UnregisterChatCommand",
+ "GetArgs",
+}
+
+-- Embeds AceConsole into the target object making the functions from the mixins list available on target:..
+-- @param target target object to embed AceBucket in
+function AceConsole:Embed( target )
+ for k, v in pairs( mixins ) do
+ target[v] = self[v]
+ end
+ self.embeds[target] = true
+ return target
+end
+
+function AceConsole:OnEmbedEnable( target )
+ if AceConsole.weakcommands[target] then
+ for command, func in pairs( AceConsole.weakcommands[target] ) do
+ target:RegisterChatCommand( command, func, false, true ) -- nonpersisting and silent registry
+ end
+ end
+end
+
+function AceConsole:OnEmbedDisable( target )
+ if AceConsole.weakcommands[target] then
+ for command, func in pairs( AceConsole.weakcommands[target] ) do
+ target:UnregisterChatCommand( command ) -- TODO: this could potentially unregister a command from another application in case of command conflicts. Do we care?
+ end
+ end
+end
+
+for addon in pairs(AceConsole.embeds) do
+ AceConsole:Embed(addon)
+end
diff --git a/Libs/AceConsole-3.0/AceConsole-3.0.xml b/Libs/AceConsole-3.0/AceConsole-3.0.xml
new file mode 100644
index 00000000..4f4699a9
--- /dev/null
+++ b/Libs/AceConsole-3.0/AceConsole-3.0.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/Libs/AceDB-3.0/AceDB-3.0.lua b/Libs/AceDB-3.0/AceDB-3.0.lua
new file mode 100644
index 00000000..440330f2
--- /dev/null
+++ b/Libs/AceDB-3.0/AceDB-3.0.lua
@@ -0,0 +1,744 @@
+--- **AceDB-3.0** manages the SavedVariables of your addon.
+-- It offers profile management, smart defaults and namespaces for modules.\\
+-- Data can be saved in different data-types, depending on its intended usage.
+-- The most common data-type is the `profile` type, which allows the user to choose
+-- the active profile, and manage the profiles of all of his characters.\\
+-- The following data types are available:
+-- * **char** Character-specific data. Every character has its own database.
+-- * **realm** Realm-specific data. All of the players characters on the same realm share this database.
+-- * **class** Class-specific data. All of the players characters of the same class share this database.
+-- * **race** Race-specific data. All of the players characters of the same race share this database.
+-- * **faction** Faction-specific data. All of the players characters of the same faction share this database.
+-- * **factionrealm** Faction and realm specific data. All of the players characters on the same realm and of the same faction share this database.
+-- * **locale** Locale specific data, based on the locale of the players game client.
+-- * **global** Global Data. All characters on the same account share this database.
+-- * **profile** Profile-specific data. All characters using the same profile share this database. The user can control which profile should be used.
+--
+-- Creating a new Database using the `:New` function will return a new DBObject. A database will inherit all functions
+-- of the DBObjectLib listed here. \\
+-- If you create a new namespaced child-database (`:RegisterNamespace`), you'll get a DBObject as well, but note
+-- that the child-databases cannot individually change their profile, and are linked to their parents profile - and because of that,
+-- the profile related APIs are not available. Only `:RegisterDefaults` and `:ResetProfile` are available on child-databases.
+--
+-- For more details on how to use AceDB-3.0, see the [[AceDB-3.0 Tutorial]].
+--
+-- You may also be interested in [[libdualspec-1-0|LibDualSpec-1.0]] to do profile switching automatically when switching specs.
+--
+-- @usage
+-- MyAddon = LibStub("AceAddon-3.0"):NewAddon("DBExample")
+--
+-- -- declare defaults to be used in the DB
+-- local defaults = {
+-- profile = {
+-- setting = true,
+-- }
+-- }
+--
+-- function MyAddon:OnInitialize()
+-- -- Assuming the .toc says ## SavedVariables: MyAddonDB
+-- self.db = LibStub("AceDB-3.0"):New("MyAddonDB", defaults, true)
+-- end
+-- @class file
+-- @name AceDB-3.0.lua
+-- @release $Id: AceDB-3.0.lua 1217 2019-07-11 03:06:18Z funkydude $
+local ACEDB_MAJOR, ACEDB_MINOR = "AceDB-3.0", 27
+local AceDB = LibStub:NewLibrary(ACEDB_MAJOR, ACEDB_MINOR)
+
+if not AceDB then return end -- No upgrade needed
+
+-- Lua APIs
+local type, pairs, next, error = type, pairs, next, error
+local setmetatable, rawset, rawget = setmetatable, rawset, rawget
+
+-- WoW APIs
+local _G = _G
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: LibStub
+
+AceDB.db_registry = AceDB.db_registry or {}
+AceDB.frame = AceDB.frame or CreateFrame("Frame")
+
+local CallbackHandler
+local CallbackDummy = { Fire = function() end }
+
+local DBObjectLib = {}
+
+--[[-------------------------------------------------------------------------
+ AceDB Utility Functions
+---------------------------------------------------------------------------]]
+
+-- Simple shallow copy for copying defaults
+local function copyTable(src, dest)
+ if type(dest) ~= "table" then dest = {} end
+ if type(src) == "table" then
+ for k,v in pairs(src) do
+ if type(v) == "table" then
+ -- try to index the key first so that the metatable creates the defaults, if set, and use that table
+ v = copyTable(v, dest[k])
+ end
+ dest[k] = v
+ end
+ end
+ return dest
+end
+
+-- Called to add defaults to a section of the database
+--
+-- When a ["*"] default section is indexed with a new key, a table is returned
+-- and set in the host table. These tables must be cleaned up by removeDefaults
+-- in order to ensure we don't write empty default tables.
+local function copyDefaults(dest, src)
+ -- this happens if some value in the SV overwrites our default value with a non-table
+ --if type(dest) ~= "table" then return end
+ for k, v in pairs(src) do
+ if k == "*" or k == "**" then
+ if type(v) == "table" then
+ -- This is a metatable used for table defaults
+ local mt = {
+ -- This handles the lookup and creation of new subtables
+ __index = function(t,k)
+ if k == nil then return nil end
+ local tbl = {}
+ copyDefaults(tbl, v)
+ rawset(t, k, tbl)
+ return tbl
+ end,
+ }
+ setmetatable(dest, mt)
+ -- handle already existing tables in the SV
+ for dk, dv in pairs(dest) do
+ if not rawget(src, dk) and type(dv) == "table" then
+ copyDefaults(dv, v)
+ end
+ end
+ else
+ -- Values are not tables, so this is just a simple return
+ local mt = {__index = function(t,k) return k~=nil and v or nil end}
+ setmetatable(dest, mt)
+ end
+ elseif type(v) == "table" then
+ if not rawget(dest, k) then rawset(dest, k, {}) end
+ if type(dest[k]) == "table" then
+ copyDefaults(dest[k], v)
+ if src['**'] then
+ copyDefaults(dest[k], src['**'])
+ end
+ end
+ else
+ if rawget(dest, k) == nil then
+ rawset(dest, k, v)
+ end
+ end
+ end
+end
+
+-- Called to remove all defaults in the default table from the database
+local function removeDefaults(db, defaults, blocker)
+ -- remove all metatables from the db, so we don't accidentally create new sub-tables through them
+ setmetatable(db, nil)
+ -- loop through the defaults and remove their content
+ for k,v in pairs(defaults) do
+ if k == "*" or k == "**" then
+ if type(v) == "table" then
+ -- Loop through all the actual k,v pairs and remove
+ for key, value in pairs(db) do
+ if type(value) == "table" then
+ -- if the key was not explicitly specified in the defaults table, just strip everything from * and ** tables
+ if defaults[key] == nil and (not blocker or blocker[key] == nil) then
+ removeDefaults(value, v)
+ -- if the table is empty afterwards, remove it
+ if next(value) == nil then
+ db[key] = nil
+ end
+ -- if it was specified, only strip ** content, but block values which were set in the key table
+ elseif k == "**" then
+ removeDefaults(value, v, defaults[key])
+ end
+ end
+ end
+ elseif k == "*" then
+ -- check for non-table default
+ for key, value in pairs(db) do
+ if defaults[key] == nil and v == value then
+ db[key] = nil
+ end
+ end
+ end
+ elseif type(v) == "table" and type(db[k]) == "table" then
+ -- if a blocker was set, dive into it, to allow multi-level defaults
+ removeDefaults(db[k], v, blocker and blocker[k])
+ if next(db[k]) == nil then
+ db[k] = nil
+ end
+ else
+ -- check if the current value matches the default, and that its not blocked by another defaults table
+ if db[k] == defaults[k] and (not blocker or blocker[k] == nil) then
+ db[k] = nil
+ end
+ end
+ end
+end
+
+-- This is called when a table section is first accessed, to set up the defaults
+local function initSection(db, section, svstore, key, defaults)
+ local sv = rawget(db, "sv")
+
+ local tableCreated
+ if not sv[svstore] then sv[svstore] = {} end
+ if not sv[svstore][key] then
+ sv[svstore][key] = {}
+ tableCreated = true
+ end
+
+ local tbl = sv[svstore][key]
+
+ if defaults then
+ copyDefaults(tbl, defaults)
+ end
+ rawset(db, section, tbl)
+
+ return tableCreated, tbl
+end
+
+-- Metatable to handle the dynamic creation of sections and copying of sections.
+local dbmt = {
+ __index = function(t, section)
+ local keys = rawget(t, "keys")
+ local key = keys[section]
+ if key then
+ local defaultTbl = rawget(t, "defaults")
+ local defaults = defaultTbl and defaultTbl[section]
+
+ if section == "profile" then
+ local new = initSection(t, section, "profiles", key, defaults)
+ if new then
+ -- Callback: OnNewProfile, database, newProfileKey
+ t.callbacks:Fire("OnNewProfile", t, key)
+ end
+ elseif section == "profiles" then
+ local sv = rawget(t, "sv")
+ if not sv.profiles then sv.profiles = {} end
+ rawset(t, "profiles", sv.profiles)
+ elseif section == "global" then
+ local sv = rawget(t, "sv")
+ if not sv.global then sv.global = {} end
+ if defaults then
+ copyDefaults(sv.global, defaults)
+ end
+ rawset(t, section, sv.global)
+ else
+ initSection(t, section, section, key, defaults)
+ end
+ end
+
+ return rawget(t, section)
+ end
+}
+
+local function validateDefaults(defaults, keyTbl, offset)
+ if not defaults then return end
+ offset = offset or 0
+ for k in pairs(defaults) do
+ if not keyTbl[k] or k == "profiles" then
+ error(("Usage: AceDBObject:RegisterDefaults(defaults): '%s' is not a valid datatype."):format(k), 3 + offset)
+ end
+ end
+end
+
+local preserve_keys = {
+ ["callbacks"] = true,
+ ["RegisterCallback"] = true,
+ ["UnregisterCallback"] = true,
+ ["UnregisterAllCallbacks"] = true,
+ ["children"] = true,
+}
+
+local realmKey = GetRealmName()
+local charKey = UnitName("player") .. " - " .. realmKey
+local _, classKey = UnitClass("player")
+local _, raceKey = UnitRace("player")
+local factionKey = UnitFactionGroup("player")
+local factionrealmKey = factionKey .. " - " .. realmKey
+local localeKey = GetLocale():lower()
+
+local regionTable = { "US", "KR", "EU", "TW", "CN" }
+local regionKey = regionTable[GetCurrentRegion()]
+local factionrealmregionKey = factionrealmKey .. " - " .. regionKey
+
+-- Actual database initialization function
+local function initdb(sv, defaults, defaultProfile, olddb, parent)
+ -- Generate the database keys for each section
+
+ -- map "true" to our "Default" profile
+ if defaultProfile == true then defaultProfile = "Default" end
+
+ local profileKey
+ if not parent then
+ -- Make a container for profile keys
+ if not sv.profileKeys then sv.profileKeys = {} end
+
+ -- Try to get the profile selected from the char db
+ profileKey = sv.profileKeys[charKey] or defaultProfile or charKey
+
+ -- save the selected profile for later
+ sv.profileKeys[charKey] = profileKey
+ else
+ -- Use the profile of the parents DB
+ profileKey = parent.keys.profile or defaultProfile or charKey
+
+ -- clear the profileKeys in the DB, namespaces don't need to store them
+ sv.profileKeys = nil
+ end
+
+ -- This table contains keys that enable the dynamic creation
+ -- of each section of the table. The 'global' and 'profiles'
+ -- have a key of true, since they are handled in a special case
+ local keyTbl= {
+ ["char"] = charKey,
+ ["realm"] = realmKey,
+ ["class"] = classKey,
+ ["race"] = raceKey,
+ ["faction"] = factionKey,
+ ["factionrealm"] = factionrealmKey,
+ ["factionrealmregion"] = factionrealmregionKey,
+ ["profile"] = profileKey,
+ ["locale"] = localeKey,
+ ["global"] = true,
+ ["profiles"] = true,
+ }
+
+ validateDefaults(defaults, keyTbl, 1)
+
+ -- This allows us to use this function to reset an entire database
+ -- Clear out the old database
+ if olddb then
+ for k,v in pairs(olddb) do if not preserve_keys[k] then olddb[k] = nil end end
+ end
+
+ -- Give this database the metatable so it initializes dynamically
+ local db = setmetatable(olddb or {}, dbmt)
+
+ if not rawget(db, "callbacks") then
+ -- try to load CallbackHandler-1.0 if it loaded after our library
+ if not CallbackHandler then CallbackHandler = LibStub:GetLibrary("CallbackHandler-1.0", true) end
+ db.callbacks = CallbackHandler and CallbackHandler:New(db) or CallbackDummy
+ end
+
+ -- Copy methods locally into the database object, to avoid hitting
+ -- the metatable when calling methods
+
+ if not parent then
+ for name, func in pairs(DBObjectLib) do
+ db[name] = func
+ end
+ else
+ -- hack this one in
+ db.RegisterDefaults = DBObjectLib.RegisterDefaults
+ db.ResetProfile = DBObjectLib.ResetProfile
+ end
+
+ -- Set some properties in the database object
+ db.profiles = sv.profiles
+ db.keys = keyTbl
+ db.sv = sv
+ --db.sv_name = name
+ db.defaults = defaults
+ db.parent = parent
+
+ -- store the DB in the registry
+ AceDB.db_registry[db] = true
+
+ return db
+end
+
+-- handle PLAYER_LOGOUT
+-- strip all defaults from all databases
+-- and cleans up empty sections
+local function logoutHandler(frame, event)
+ if event == "PLAYER_LOGOUT" then
+ for db in pairs(AceDB.db_registry) do
+ db.callbacks:Fire("OnDatabaseShutdown", db)
+ db:RegisterDefaults(nil)
+
+ -- cleanup sections that are empty without defaults
+ local sv = rawget(db, "sv")
+ for section in pairs(db.keys) do
+ if rawget(sv, section) then
+ -- global is special, all other sections have sub-entrys
+ -- also don't delete empty profiles on main dbs, only on namespaces
+ if section ~= "global" and (section ~= "profiles" or rawget(db, "parent")) then
+ for key in pairs(sv[section]) do
+ if not next(sv[section][key]) then
+ sv[section][key] = nil
+ end
+ end
+ end
+ if not next(sv[section]) then
+ sv[section] = nil
+ end
+ end
+ end
+ end
+ end
+end
+
+AceDB.frame:RegisterEvent("PLAYER_LOGOUT")
+AceDB.frame:SetScript("OnEvent", logoutHandler)
+
+
+--[[-------------------------------------------------------------------------
+ AceDB Object Method Definitions
+---------------------------------------------------------------------------]]
+
+--- Sets the defaults table for the given database object by clearing any
+-- that are currently set, and then setting the new defaults.
+-- @param defaults A table of defaults for this database
+function DBObjectLib:RegisterDefaults(defaults)
+ if defaults and type(defaults) ~= "table" then
+ error(("Usage: AceDBObject:RegisterDefaults(defaults): 'defaults' - table or nil expected, got %q."):format(type(defaults)), 2)
+ end
+
+ validateDefaults(defaults, self.keys)
+
+ -- Remove any currently set defaults
+ if self.defaults then
+ for section,key in pairs(self.keys) do
+ if self.defaults[section] and rawget(self, section) then
+ removeDefaults(self[section], self.defaults[section])
+ end
+ end
+ end
+
+ -- Set the DBObject.defaults table
+ self.defaults = defaults
+
+ -- Copy in any defaults, only touching those sections already created
+ if defaults then
+ for section,key in pairs(self.keys) do
+ if defaults[section] and rawget(self, section) then
+ copyDefaults(self[section], defaults[section])
+ end
+ end
+ end
+end
+
+--- Changes the profile of the database and all of it's namespaces to the
+-- supplied named profile
+-- @param name The name of the profile to set as the current profile
+function DBObjectLib:SetProfile(name)
+ if type(name) ~= "string" then
+ error(("Usage: AceDBObject:SetProfile(name): 'name' - string expected, got %q."):format(type(name)), 2)
+ end
+
+ -- changing to the same profile, dont do anything
+ if name == self.keys.profile then return end
+
+ local oldProfile = self.profile
+ local defaults = self.defaults and self.defaults.profile
+
+ -- Callback: OnProfileShutdown, database
+ self.callbacks:Fire("OnProfileShutdown", self)
+
+ if oldProfile and defaults then
+ -- Remove the defaults from the old profile
+ removeDefaults(oldProfile, defaults)
+ end
+
+ self.profile = nil
+ self.keys["profile"] = name
+
+ -- if the storage exists, save the new profile
+ -- this won't exist on namespaces.
+ if self.sv.profileKeys then
+ self.sv.profileKeys[charKey] = name
+ end
+
+ -- populate to child namespaces
+ if self.children then
+ for _, db in pairs(self.children) do
+ DBObjectLib.SetProfile(db, name)
+ end
+ end
+
+ -- Callback: OnProfileChanged, database, newProfileKey
+ self.callbacks:Fire("OnProfileChanged", self, name)
+end
+
+--- Returns a table with the names of the existing profiles in the database.
+-- You can optionally supply a table to re-use for this purpose.
+-- @param tbl A table to store the profile names in (optional)
+function DBObjectLib:GetProfiles(tbl)
+ if tbl and type(tbl) ~= "table" then
+ error(("Usage: AceDBObject:GetProfiles(tbl): 'tbl' - table or nil expected, got %q."):format(type(tbl)), 2)
+ end
+
+ -- Clear the container table
+ if tbl then
+ for k,v in pairs(tbl) do tbl[k] = nil end
+ else
+ tbl = {}
+ end
+
+ local curProfile = self.keys.profile
+
+ local i = 0
+ for profileKey in pairs(self.profiles) do
+ i = i + 1
+ tbl[i] = profileKey
+ if curProfile and profileKey == curProfile then curProfile = nil end
+ end
+
+ -- Add the current profile, if it hasn't been created yet
+ if curProfile then
+ i = i + 1
+ tbl[i] = curProfile
+ end
+
+ return tbl, i
+end
+
+--- Returns the current profile name used by the database
+function DBObjectLib:GetCurrentProfile()
+ return self.keys.profile
+end
+
+--- Deletes a named profile. This profile must not be the active profile.
+-- @param name The name of the profile to be deleted
+-- @param silent If true, do not raise an error when the profile does not exist
+function DBObjectLib:DeleteProfile(name, silent)
+ if type(name) ~= "string" then
+ error(("Usage: AceDBObject:DeleteProfile(name): 'name' - string expected, got %q."):format(type(name)), 2)
+ end
+
+ if self.keys.profile == name then
+ error(("Cannot delete the active profile (%q) in an AceDBObject."):format(name), 2)
+ end
+
+ if not rawget(self.profiles, name) and not silent then
+ error(("Cannot delete profile %q as it does not exist."):format(name), 2)
+ end
+
+ self.profiles[name] = nil
+
+ -- populate to child namespaces
+ if self.children then
+ for _, db in pairs(self.children) do
+ DBObjectLib.DeleteProfile(db, name, true)
+ end
+ end
+
+ -- switch all characters that use this profile back to the default
+ if self.sv.profileKeys then
+ for key, profile in pairs(self.sv.profileKeys) do
+ if profile == name then
+ self.sv.profileKeys[key] = nil
+ end
+ end
+ end
+
+ -- Callback: OnProfileDeleted, database, profileKey
+ self.callbacks:Fire("OnProfileDeleted", self, name)
+end
+
+--- Copies a named profile into the current profile, overwriting any conflicting
+-- settings.
+-- @param name The name of the profile to be copied into the current profile
+-- @param silent If true, do not raise an error when the profile does not exist
+function DBObjectLib:CopyProfile(name, silent)
+ if type(name) ~= "string" then
+ error(("Usage: AceDBObject:CopyProfile(name): 'name' - string expected, got %q."):format(type(name)), 2)
+ end
+
+ if name == self.keys.profile then
+ error(("Cannot have the same source and destination profiles (%q)."):format(name), 2)
+ end
+
+ if not rawget(self.profiles, name) and not silent then
+ error(("Cannot copy profile %q as it does not exist."):format(name), 2)
+ end
+
+ -- Reset the profile before copying
+ DBObjectLib.ResetProfile(self, nil, true)
+
+ local profile = self.profile
+ local source = self.profiles[name]
+
+ copyTable(source, profile)
+
+ -- populate to child namespaces
+ if self.children then
+ for _, db in pairs(self.children) do
+ DBObjectLib.CopyProfile(db, name, true)
+ end
+ end
+
+ -- Callback: OnProfileCopied, database, sourceProfileKey
+ self.callbacks:Fire("OnProfileCopied", self, name)
+end
+
+--- Resets the current profile to the default values (if specified).
+-- @param noChildren if set to true, the reset will not be populated to the child namespaces of this DB object
+-- @param noCallbacks if set to true, won't fire the OnProfileReset callback
+function DBObjectLib:ResetProfile(noChildren, noCallbacks)
+ local profile = self.profile
+
+ for k,v in pairs(profile) do
+ profile[k] = nil
+ end
+
+ local defaults = self.defaults and self.defaults.profile
+ if defaults then
+ copyDefaults(profile, defaults)
+ end
+
+ -- populate to child namespaces
+ if self.children and not noChildren then
+ for _, db in pairs(self.children) do
+ DBObjectLib.ResetProfile(db, nil, noCallbacks)
+ end
+ end
+
+ -- Callback: OnProfileReset, database
+ if not noCallbacks then
+ self.callbacks:Fire("OnProfileReset", self)
+ end
+end
+
+--- Resets the entire database, using the string defaultProfile as the new default
+-- profile.
+-- @param defaultProfile The profile name to use as the default
+function DBObjectLib:ResetDB(defaultProfile)
+ if defaultProfile and type(defaultProfile) ~= "string" then
+ error(("Usage: AceDBObject:ResetDB(defaultProfile): 'defaultProfile' - string or nil expected, got %q."):format(type(defaultProfile)), 2)
+ end
+
+ local sv = self.sv
+ for k,v in pairs(sv) do
+ sv[k] = nil
+ end
+
+ initdb(sv, self.defaults, defaultProfile, self)
+
+ -- fix the child namespaces
+ if self.children then
+ if not sv.namespaces then sv.namespaces = {} end
+ for name, db in pairs(self.children) do
+ if not sv.namespaces[name] then sv.namespaces[name] = {} end
+ initdb(sv.namespaces[name], db.defaults, self.keys.profile, db, self)
+ end
+ end
+
+ -- Callback: OnDatabaseReset, database
+ self.callbacks:Fire("OnDatabaseReset", self)
+ -- Callback: OnProfileChanged, database, profileKey
+ self.callbacks:Fire("OnProfileChanged", self, self.keys["profile"])
+
+ return self
+end
+
+--- Creates a new database namespace, directly tied to the database. This
+-- is a full scale database in it's own rights other than the fact that
+-- it cannot control its profile individually
+-- @param name The name of the new namespace
+-- @param defaults A table of values to use as defaults
+function DBObjectLib:RegisterNamespace(name, defaults)
+ if type(name) ~= "string" then
+ error(("Usage: AceDBObject:RegisterNamespace(name, defaults): 'name' - string expected, got %q."):format(type(name)), 2)
+ end
+ if defaults and type(defaults) ~= "table" then
+ error(("Usage: AceDBObject:RegisterNamespace(name, defaults): 'defaults' - table or nil expected, got %q."):format(type(defaults)), 2)
+ end
+ if self.children and self.children[name] then
+ error(("Usage: AceDBObject:RegisterNamespace(name, defaults): 'name' - a namespace called %q already exists."):format(name), 2)
+ end
+
+ local sv = self.sv
+ if not sv.namespaces then sv.namespaces = {} end
+ if not sv.namespaces[name] then
+ sv.namespaces[name] = {}
+ end
+
+ local newDB = initdb(sv.namespaces[name], defaults, self.keys.profile, nil, self)
+
+ if not self.children then self.children = {} end
+ self.children[name] = newDB
+ return newDB
+end
+
+--- Returns an already existing namespace from the database object.
+-- @param name The name of the new namespace
+-- @param silent if true, the addon is optional, silently return nil if its not found
+-- @usage
+-- local namespace = self.db:GetNamespace('namespace')
+-- @return the namespace object if found
+function DBObjectLib:GetNamespace(name, silent)
+ if type(name) ~= "string" then
+ error(("Usage: AceDBObject:GetNamespace(name): 'name' - string expected, got %q."):format(type(name)), 2)
+ end
+ if not silent and not (self.children and self.children[name]) then
+ error(("Usage: AceDBObject:GetNamespace(name): 'name' - namespace %q does not exist."):format(name), 2)
+ end
+ if not self.children then self.children = {} end
+ return self.children[name]
+end
+
+--[[-------------------------------------------------------------------------
+ AceDB Exposed Methods
+---------------------------------------------------------------------------]]
+
+--- Creates a new database object that can be used to handle database settings and profiles.
+-- By default, an empty DB is created, using a character specific profile.
+--
+-- You can override the default profile used by passing any profile name as the third argument,
+-- or by passing //true// as the third argument to use a globally shared profile called "Default".
+--
+-- Note that there is no token replacement in the default profile name, passing a defaultProfile as "char"
+-- will use a profile named "char", and not a character-specific profile.
+-- @param tbl The name of variable, or table to use for the database
+-- @param defaults A table of database defaults
+-- @param defaultProfile The name of the default profile. If not set, a character specific profile will be used as the default.
+-- You can also pass //true// to use a shared global profile called "Default".
+-- @usage
+-- -- Create an empty DB using a character-specific default profile.
+-- self.db = LibStub("AceDB-3.0"):New("MyAddonDB")
+-- @usage
+-- -- Create a DB using defaults and using a shared default profile
+-- self.db = LibStub("AceDB-3.0"):New("MyAddonDB", defaults, true)
+function AceDB:New(tbl, defaults, defaultProfile)
+ if type(tbl) == "string" then
+ local name = tbl
+ tbl = _G[name]
+ if not tbl then
+ tbl = {}
+ _G[name] = tbl
+ end
+ end
+
+ if type(tbl) ~= "table" then
+ error(("Usage: AceDB:New(tbl, defaults, defaultProfile): 'tbl' - table expected, got %q."):format(type(tbl)), 2)
+ end
+
+ if defaults and type(defaults) ~= "table" then
+ error(("Usage: AceDB:New(tbl, defaults, defaultProfile): 'defaults' - table expected, got %q."):format(type(defaults)), 2)
+ end
+
+ if defaultProfile and type(defaultProfile) ~= "string" and defaultProfile ~= true then
+ error(("Usage: AceDB:New(tbl, defaults, defaultProfile): 'defaultProfile' - string or true expected, got %q."):format(type(defaultProfile)), 2)
+ end
+
+ return initdb(tbl, defaults, defaultProfile)
+end
+
+-- upgrade existing databases
+for db in pairs(AceDB.db_registry) do
+ if not db.parent then
+ for name,func in pairs(DBObjectLib) do
+ db[name] = func
+ end
+ else
+ db.RegisterDefaults = DBObjectLib.RegisterDefaults
+ db.ResetProfile = DBObjectLib.ResetProfile
+ end
+end
diff --git a/Libs/AceDB-3.0/AceDB-3.0.xml b/Libs/AceDB-3.0/AceDB-3.0.xml
new file mode 100644
index 00000000..108fc700
--- /dev/null
+++ b/Libs/AceDB-3.0/AceDB-3.0.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/Libs/AceDBOptions-3.0/AceDBOptions-3.0.lua b/Libs/AceDBOptions-3.0/AceDBOptions-3.0.lua
new file mode 100644
index 00000000..6ed3103e
--- /dev/null
+++ b/Libs/AceDBOptions-3.0/AceDBOptions-3.0.lua
@@ -0,0 +1,460 @@
+--- AceDBOptions-3.0 provides a universal AceConfig options screen for managing AceDB-3.0 profiles.
+-- @class file
+-- @name AceDBOptions-3.0
+-- @release $Id: AceDBOptions-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $
+local ACEDBO_MAJOR, ACEDBO_MINOR = "AceDBOptions-3.0", 15
+local AceDBOptions = LibStub:NewLibrary(ACEDBO_MAJOR, ACEDBO_MINOR)
+
+if not AceDBOptions then return end -- No upgrade needed
+
+-- Lua APIs
+local pairs, next = pairs, next
+
+-- WoW APIs
+local UnitClass = UnitClass
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: NORMAL_FONT_COLOR_CODE, FONT_COLOR_CODE_CLOSE
+
+AceDBOptions.optionTables = AceDBOptions.optionTables or {}
+AceDBOptions.handlers = AceDBOptions.handlers or {}
+
+--[[
+ Localization of AceDBOptions-3.0
+]]
+
+local L = {
+ choose = "Existing Profiles",
+ choose_desc = "You can either create a new profile by entering a name in the editbox, or choose one of the already existing profiles.",
+ choose_sub = "Select one of your currently available profiles.",
+ copy = "Copy From",
+ copy_desc = "Copy the settings from one existing profile into the currently active profile.",
+ current = "Current Profile:",
+ default = "Default",
+ delete = "Delete a Profile",
+ delete_confirm = "Are you sure you want to delete the selected profile?",
+ delete_desc = "Delete existing and unused profiles from the database to save space, and cleanup the SavedVariables file.",
+ delete_sub = "Deletes a profile from the database.",
+ intro = "You can change the active database profile, so you can have different settings for every character.",
+ new = "New",
+ new_sub = "Create a new empty profile.",
+ profiles = "Profiles",
+ profiles_sub = "Manage Profiles",
+ reset = "Reset Profile",
+ reset_desc = "Reset the current profile back to its default values, in case your configuration is broken, or you simply want to start over.",
+ reset_sub = "Reset the current profile to the default",
+}
+
+local LOCALE = GetLocale()
+if LOCALE == "deDE" then
+ L["choose"] = "Vorhandene Profile"
+ L["choose_desc"] = "Du kannst ein neues Profil erstellen, indem du einen neuen Namen in der Eingabebox 'Neu' eingibst, oder wähle eines der vorhandenen Profile aus."
+ L["choose_sub"] = "Wählt ein bereits vorhandenes Profil aus."
+ L["copy"] = "Kopieren von..."
+ L["copy_desc"] = "Kopiere die Einstellungen von einem vorhandenen Profil in das aktive Profil."
+ L["current"] = "Aktuelles Profil:"
+ L["default"] = "Standard"
+ L["delete"] = "Profil löschen"
+ L["delete_confirm"] = "Willst du das ausgewählte Profil wirklich löschen?"
+ L["delete_desc"] = "Lösche vorhandene oder unbenutzte Profile aus der Datenbank, um Platz zu sparen und die SavedVariables-Datei 'sauber' zu halten."
+ L["delete_sub"] = "Löscht ein Profil aus der Datenbank."
+ L["intro"] = "Hier kannst du das aktive Datenbankprofil ändern, damit du verschiedene Einstellungen für jeden Charakter erstellen kannst, wodurch eine sehr flexible Konfiguration möglich wird."
+ L["new"] = "Neu"
+ L["new_sub"] = "Ein neues Profil erstellen."
+ L["profiles"] = "Profile"
+ L["profiles_sub"] = "Profile verwalten"
+ L["reset"] = "Profil zurücksetzen"
+ L["reset_desc"] = "Setzt das momentane Profil auf Standardwerte zurück, für den Fall, dass mit der Konfiguration etwas schief lief oder weil du einfach neu starten willst."
+ L["reset_sub"] = "Das aktuelle Profil auf Standard zurücksetzen."
+elseif LOCALE == "frFR" then
+ L["choose"] = "Profils existants"
+ L["choose_desc"] = "Vous pouvez créer un nouveau profil en entrant un nouveau nom dans la boîte de saisie, ou en choississant un des profils déjà existants."
+ L["choose_sub"] = "Permet de choisir un des profils déjà disponibles."
+ L["copy"] = "Copier à partir de"
+ L["copy_desc"] = "Copie les paramètres d'un profil déjà existant dans le profil actuellement actif."
+ L["current"] = "Profil actuel :"
+ L["default"] = "Défaut"
+ L["delete"] = "Supprimer un profil"
+ L["delete_confirm"] = "Etes-vous sûr de vouloir supprimer le profil sélectionné ?"
+ L["delete_desc"] = "Supprime les profils existants inutilisés de la base de données afin de gagner de la place et de nettoyer le fichier SavedVariables."
+ L["delete_sub"] = "Supprime un profil de la base de données."
+ L["intro"] = "Vous pouvez changer le profil actuel afin d'avoir des paramètres différents pour chaque personnage, permettant ainsi d'avoir une configuration très flexible."
+ L["new"] = "Nouveau"
+ L["new_sub"] = "Créée un nouveau profil vierge."
+ L["profiles"] = "Profils"
+ L["profiles_sub"] = "Gestion des profils"
+ L["reset"] = "Réinitialiser le profil"
+ L["reset_desc"] = "Réinitialise le profil actuel au cas où votre configuration est corrompue ou si vous voulez tout simplement faire table rase."
+ L["reset_sub"] = "Réinitialise le profil actuel avec les paramètres par défaut."
+elseif LOCALE == "koKR" then
+ L["choose"] = "저장 중인 프로필"
+ L["choose_desc"] = "입력창에 새로운 이름을 입력하거나 저장 중인 프로필 중 하나를 선택하여 새로운 프로필을 만들 수 있습니다."
+ L["choose_sub"] = "현재 이용할 수 있는 프로필 중 하나를 선택합니다."
+ L["copy"] = "복사해오기"
+ L["copy_desc"] = "현재 사용 중인 프로필에 선택한 프로필의 설정을 복사합니다."
+ L["current"] = "현재 프로필:"
+ L["default"] = "기본값"
+ L["delete"] = "프로필 삭제"
+ L["delete_confirm"] = "정말로 선택한 프로필을 삭제할까요?"
+ L["delete_desc"] = "저장 공간 절약과 SavedVariables 파일의 정리를 위해 데이터베이스에서 사용하지 않는 프로필을 삭제하세요."
+ L["delete_sub"] = "데이터베이스의 프로필을 삭제합니다."
+ L["intro"] = "활성 데이터베이스 프로필을 변경할 수 있고, 각 캐릭터 별로 다른 설정을 할 수 있습니다."
+ L["new"] = "새로운 프로필"
+ L["new_sub"] = "새로운 프로필을 만듭니다."
+ L["profiles"] = "프로필"
+ L["profiles_sub"] = "프로필 관리"
+ L["reset"] = "프로필 초기화"
+ L["reset_desc"] = "설정이 깨졌거나 처음부터 다시 설정을 원하는 경우, 현재 프로필을 기본값으로 초기화하세요."
+ L["reset_sub"] = "현재 프로필을 기본값으로 초기화합니다"
+elseif LOCALE == "esES" or LOCALE == "esMX" then
+ L["choose"] = "Perfiles existentes"
+ L["choose_desc"] = "Puedes crear un nuevo perfil introduciendo un nombre en el recuadro o puedes seleccionar un perfil de los ya existentes."
+ L["choose_sub"] = "Selecciona uno de los perfiles disponibles."
+ L["copy"] = "Copiar de"
+ L["copy_desc"] = "Copia los ajustes de un perfil existente al perfil actual."
+ L["current"] = "Perfil actual:"
+ L["default"] = "Por defecto"
+ L["delete"] = "Borrar un Perfil"
+ L["delete_confirm"] = "¿Estas seguro que quieres borrar el perfil seleccionado?"
+ L["delete_desc"] = "Borra los perfiles existentes y sin uso de la base de datos para ganar espacio y limpiar el archivo SavedVariables."
+ L["delete_sub"] = "Borra un perfil de la base de datos."
+ L["intro"] = "Puedes cambiar el perfil activo de tal manera que cada personaje tenga diferentes configuraciones."
+ L["new"] = "Nuevo"
+ L["new_sub"] = "Crear un nuevo perfil vacio."
+ L["profiles"] = "Perfiles"
+ L["profiles_sub"] = "Manejar Perfiles"
+ L["reset"] = "Reiniciar Perfil"
+ L["reset_desc"] = "Reinicia el perfil actual a los valores por defectos, en caso de que se haya estropeado la configuración o quieras volver a empezar de nuevo."
+ L["reset_sub"] = "Reinicar el perfil actual al de por defecto"
+elseif LOCALE == "zhTW" then
+ L["choose"] = "現有的設定檔"
+ L["choose_desc"] = "您可以在文字方塊內輸入名字以建立新的設定檔,或是選擇一個現有的設定檔使用。"
+ L["choose_sub"] = "從當前可用的設定檔裡面選擇一個。"
+ L["copy"] = "複製自"
+ L["copy_desc"] = "從一個現有的設定檔,將設定複製到現在使用中的設定檔。"
+ L["current"] = "目前設定檔:"
+ L["default"] = "預設"
+ L["delete"] = "刪除一個設定檔"
+ L["delete_confirm"] = "確定要刪除所選擇的設定檔嗎?"
+ L["delete_desc"] = "從資料庫裡刪除不再使用的設定檔,以節省空間,並且清理 SavedVariables 檔案。"
+ L["delete_sub"] = "從資料庫裡刪除一個設定檔。"
+ L["intro"] = "您可以從資料庫中選擇一個設定檔來使用,如此就可以讓每個角色使用不同的設定。"
+ L["new"] = "新建"
+ L["new_sub"] = "新建一個空的設定檔。"
+ L["profiles"] = "設定檔"
+ L["profiles_sub"] = "管理設定檔"
+ L["reset"] = "重置設定檔"
+ L["reset_desc"] = "將現用的設定檔重置為預設值;用於設定檔損壞,或者單純想要重來的情況。"
+ L["reset_sub"] = "將目前的設定檔重置為預設值"
+elseif LOCALE == "zhCN" then
+ L["choose"] = "现有的配置文件"
+ L["choose_desc"] = "你可以通过在文本框内输入一个名字创立一个新的配置文件,也可以选择一个已经存在的配置文件。"
+ L["choose_sub"] = "从当前可用的配置文件里面选择一个。"
+ L["copy"] = "复制自"
+ L["copy_desc"] = "从当前某个已保存的配置文件复制到当前正使用的配置文件。"
+ L["current"] = "当前配置文件:"
+ L["default"] = "默认"
+ L["delete"] = "删除一个配置文件"
+ L["delete_confirm"] = "你确定要删除所选择的配置文件么?"
+ L["delete_desc"] = "从数据库里删除不再使用的配置文件,以节省空间,并且清理SavedVariables文件。"
+ L["delete_sub"] = "从数据库里删除一个配置文件。"
+ L["intro"] = "你可以选择一个活动的数据配置文件,这样你的每个角色就可以拥有不同的设置值,可以给你的插件配置带来极大的灵活性。"
+ L["new"] = "新建"
+ L["new_sub"] = "新建一个空的配置文件。"
+ L["profiles"] = "配置文件"
+ L["profiles_sub"] = "管理配置文件"
+ L["reset"] = "重置配置文件"
+ L["reset_desc"] = "将当前的配置文件恢复到它的默认值,用于你的配置文件损坏,或者你只是想重来的情况。"
+ L["reset_sub"] = "将当前的配置文件恢复为默认值"
+elseif LOCALE == "ruRU" then
+ L["choose"] = "Существующие профили"
+ L["choose_desc"] = "Вы можете создать новый профиль, введя название в поле ввода, или выбрать один из уже существующих профилей."
+ L["choose_sub"] = "Выбор одиного из уже доступных профилей"
+ L["copy"] = "Скопировать из"
+ L["copy_desc"] = "Скопировать настройки из выбранного профиля в активный."
+ L["current"] = "Текущий профиль:"
+ L["default"] = "По умолчанию"
+ L["delete"] = "Удалить профиль"
+ L["delete_confirm"] = "Вы уверены, что вы хотите удалить выбранный профиль?"
+ L["delete_desc"] = "Удалить существующий и неиспользуемый профиль из БД для сохранения места, и очистить SavedVariables файл."
+ L["delete_sub"] = "Удаление профиля из БД"
+ L["intro"] = "Изменяя активный профиль, вы можете задать различные настройки модификаций для каждого персонажа."
+ L["new"] = "Новый"
+ L["new_sub"] = "Создать новый чистый профиль"
+ L["profiles"] = "Профили"
+ L["profiles_sub"] = "Управление профилями"
+ L["reset"] = "Сброс профиля"
+ L["reset_desc"] = "Сбросить текущий профиль к стандартным настройкам, если ваша конфигурация испорчена или вы хотите настроить всё заново."
+ L["reset_sub"] = "Сброс текущего профиля на стандартный"
+elseif LOCALE == "itIT" then
+ L["choose"] = "Profili Esistenti"
+ L["choose_desc"] = "Puoi creare un nuovo profilo digitando il nome della casella di testo, oppure scegliendone uno tra i profili già esistenti."
+ L["choose_sub"] = "Seleziona uno dei profili attualmente disponibili."
+ L["copy"] = "Copia Da"
+ L["copy_desc"] = "Copia le impostazioni da un profilo esistente, nel profilo attivo in questo momento."
+ L["current"] = "Profilo Attivo:"
+ L["default"] = "Standard"
+ L["delete"] = "Cancella un Profilo"
+ L["delete_confirm"] = "Sei sicuro di voler cancellare il profilo selezionato?"
+ L["delete_desc"] = "Cancella i profili non utilizzati dal database per risparmiare spazio e mantenere puliti i file di configurazione SavedVariables."
+ L["delete_sub"] = "Cancella un profilo dal Database."
+ L["intro"] = "Puoi cambiare il profilo attivo, in modo da usare impostazioni diverse per ogni personaggio."
+ L["new"] = "Nuovo"
+ L["new_sub"] = "Crea un nuovo profilo vuoto."
+ L["profiles"] = "Profili"
+ L["profiles_sub"] = "Gestisci Profili"
+ L["reset"] = "Reimposta Profilo"
+ L["reset_desc"] = "Riporta il tuo profilo attivo alle sue impostazioni predefinite, nel caso in cui la tua configurazione si sia corrotta, o semplicemente tu voglia re-inizializzarla."
+ L["reset_sub"] = "Reimposta il profilo ai suoi valori predefiniti."
+elseif LOCALE == "ptBR" then
+ L["choose"] = "Perfis Existentes"
+ L["choose_desc"] = "Você pode tanto criar um perfil novo tanto digitando um nome na caixa de texto, quanto escolher um dos perfis já existentes."
+ L["choose_sub"] = "Selecione um de seus perfis atualmente disponíveis."
+ L["copy"] = "Copiar De"
+ L["copy_desc"] = "Copia as definições de um perfil existente no perfil atualmente ativo."
+ L["current"] = "Perfil Autal:"
+ L["default"] = "Padrão"
+ L["delete"] = "Remover um Perfil"
+ L["delete_confirm"] = "Tem certeza que deseja remover o perfil selecionado?"
+ L["delete_desc"] = "Remove perfis existentes e inutilizados do banco de dados para economizar espaço, e limpar o arquivo SavedVariables."
+ L["delete_sub"] = "Remove um perfil do banco de dados."
+ L["intro"] = "Você pode alterar o perfil do banco de dados ativo, para que possa ter definições diferentes para cada personagem."
+ L["new"] = "Novo"
+ L["new_sub"] = "Cria um novo perfil vazio."
+ L["profiles"] = "Perfis"
+ L["profiles_sub"] = "Gerenciar Perfis"
+ L["reset"] = "Resetar Perfil"
+ L["reset_desc"] = "Reseta o perfil atual para os valores padrões, no caso de sua configuração estar quebrada, ou simplesmente se deseja começar novamente."
+ L["reset_sub"] = "Resetar o perfil atual ao padrão"
+end
+
+local defaultProfiles
+local tmpprofiles = {}
+
+-- Get a list of available profiles for the specified database.
+-- You can specify which profiles to include/exclude in the list using the two boolean parameters listed below.
+-- @param db The db object to retrieve the profiles from
+-- @param common If true, getProfileList will add the default profiles to the return list, even if they have not been created yet
+-- @param nocurrent If true, then getProfileList will not display the current profile in the list
+-- @return Hashtable of all profiles with the internal name as keys and the display name as value.
+local function getProfileList(db, common, nocurrent)
+ local profiles = {}
+
+ -- copy existing profiles into the table
+ local currentProfile = db:GetCurrentProfile()
+ for i,v in pairs(db:GetProfiles(tmpprofiles)) do
+ if not (nocurrent and v == currentProfile) then
+ profiles[v] = v
+ end
+ end
+
+ -- add our default profiles to choose from ( or rename existing profiles)
+ for k,v in pairs(defaultProfiles) do
+ if (common or profiles[k]) and not (nocurrent and k == currentProfile) then
+ profiles[k] = v
+ end
+ end
+
+ return profiles
+end
+
+--[[
+ OptionsHandlerPrototype
+ prototype class for handling the options in a sane way
+]]
+local OptionsHandlerPrototype = {}
+
+--[[ Reset the profile ]]
+function OptionsHandlerPrototype:Reset()
+ self.db:ResetProfile()
+end
+
+--[[ Set the profile to value ]]
+function OptionsHandlerPrototype:SetProfile(info, value)
+ self.db:SetProfile(value)
+end
+
+--[[ returns the currently active profile ]]
+function OptionsHandlerPrototype:GetCurrentProfile()
+ return self.db:GetCurrentProfile()
+end
+
+--[[
+ List all active profiles
+ you can control the output with the .arg variable
+ currently four modes are supported
+
+ (empty) - return all available profiles
+ "nocurrent" - returns all available profiles except the currently active profile
+ "common" - returns all avaialble profiles + some commonly used profiles ("char - realm", "realm", "class", "Default")
+ "both" - common except the active profile
+]]
+function OptionsHandlerPrototype:ListProfiles(info)
+ local arg = info.arg
+ local profiles
+ if arg == "common" and not self.noDefaultProfiles then
+ profiles = getProfileList(self.db, true, nil)
+ elseif arg == "nocurrent" then
+ profiles = getProfileList(self.db, nil, true)
+ elseif arg == "both" then -- currently not used
+ profiles = getProfileList(self.db, (not self.noDefaultProfiles) and true, true)
+ else
+ profiles = getProfileList(self.db)
+ end
+
+ return profiles
+end
+
+function OptionsHandlerPrototype:HasNoProfiles(info)
+ local profiles = self:ListProfiles(info)
+ return ((not next(profiles)) and true or false)
+end
+
+--[[ Copy a profile ]]
+function OptionsHandlerPrototype:CopyProfile(info, value)
+ self.db:CopyProfile(value)
+end
+
+--[[ Delete a profile from the db ]]
+function OptionsHandlerPrototype:DeleteProfile(info, value)
+ self.db:DeleteProfile(value)
+end
+
+--[[ fill defaultProfiles with some generic values ]]
+local function generateDefaultProfiles(db)
+ defaultProfiles = {
+ ["Default"] = L["default"],
+ [db.keys.char] = db.keys.char,
+ [db.keys.realm] = db.keys.realm,
+ [db.keys.class] = UnitClass("player")
+ }
+end
+
+--[[ create and return a handler object for the db, or upgrade it if it already existed ]]
+local function getOptionsHandler(db, noDefaultProfiles)
+ if not defaultProfiles then
+ generateDefaultProfiles(db)
+ end
+
+ local handler = AceDBOptions.handlers[db] or { db = db, noDefaultProfiles = noDefaultProfiles }
+
+ for k,v in pairs(OptionsHandlerPrototype) do
+ handler[k] = v
+ end
+
+ AceDBOptions.handlers[db] = handler
+ return handler
+end
+
+--[[
+ the real options table
+]]
+local optionsTable = {
+ desc = {
+ order = 1,
+ type = "description",
+ name = L["intro"] .. "\n",
+ },
+ descreset = {
+ order = 9,
+ type = "description",
+ name = L["reset_desc"],
+ },
+ reset = {
+ order = 10,
+ type = "execute",
+ name = L["reset"],
+ desc = L["reset_sub"],
+ func = "Reset",
+ },
+ current = {
+ order = 11,
+ type = "description",
+ name = function(info) return L["current"] .. " " .. NORMAL_FONT_COLOR_CODE .. info.handler:GetCurrentProfile() .. FONT_COLOR_CODE_CLOSE end,
+ width = "default",
+ },
+ choosedesc = {
+ order = 20,
+ type = "description",
+ name = "\n" .. L["choose_desc"],
+ },
+ new = {
+ name = L["new"],
+ desc = L["new_sub"],
+ type = "input",
+ order = 30,
+ get = false,
+ set = "SetProfile",
+ },
+ choose = {
+ name = L["choose"],
+ desc = L["choose_sub"],
+ type = "select",
+ order = 40,
+ get = "GetCurrentProfile",
+ set = "SetProfile",
+ values = "ListProfiles",
+ arg = "common",
+ },
+ copydesc = {
+ order = 50,
+ type = "description",
+ name = "\n" .. L["copy_desc"],
+ },
+ copyfrom = {
+ order = 60,
+ type = "select",
+ name = L["copy"],
+ desc = L["copy_desc"],
+ get = false,
+ set = "CopyProfile",
+ values = "ListProfiles",
+ disabled = "HasNoProfiles",
+ arg = "nocurrent",
+ },
+ deldesc = {
+ order = 70,
+ type = "description",
+ name = "\n" .. L["delete_desc"],
+ },
+ delete = {
+ order = 80,
+ type = "select",
+ name = L["delete"],
+ desc = L["delete_sub"],
+ get = false,
+ set = "DeleteProfile",
+ values = "ListProfiles",
+ disabled = "HasNoProfiles",
+ arg = "nocurrent",
+ confirm = true,
+ confirmText = L["delete_confirm"],
+ },
+}
+
+--- Get/Create a option table that you can use in your addon to control the profiles of AceDB-3.0.
+-- @param db The database object to create the options table for.
+-- @return The options table to be used in AceConfig-3.0
+-- @usage
+-- -- Assuming `options` is your top-level options table and `self.db` is your database:
+-- options.args.profiles = LibStub("AceDBOptions-3.0"):GetOptionsTable(self.db)
+function AceDBOptions:GetOptionsTable(db, noDefaultProfiles)
+ local tbl = AceDBOptions.optionTables[db] or {
+ type = "group",
+ name = L["profiles"],
+ desc = L["profiles_sub"],
+ }
+
+ tbl.handler = getOptionsHandler(db, noDefaultProfiles)
+ tbl.args = optionsTable
+
+ AceDBOptions.optionTables[db] = tbl
+ return tbl
+end
+
+-- upgrade existing tables
+for db,tbl in pairs(AceDBOptions.optionTables) do
+ tbl.handler = getOptionsHandler(db)
+ tbl.args = optionsTable
+end
diff --git a/Libs/AceDBOptions-3.0/AceDBOptions-3.0.xml b/Libs/AceDBOptions-3.0/AceDBOptions-3.0.xml
new file mode 100644
index 00000000..51305f97
--- /dev/null
+++ b/Libs/AceDBOptions-3.0/AceDBOptions-3.0.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/Libs/AceEvent-3.0/AceEvent-3.0.lua b/Libs/AceEvent-3.0/AceEvent-3.0.lua
new file mode 100644
index 00000000..7ccd8807
--- /dev/null
+++ b/Libs/AceEvent-3.0/AceEvent-3.0.lua
@@ -0,0 +1,126 @@
+--- AceEvent-3.0 provides event registration and secure dispatching.
+-- All dispatching is done using **CallbackHandler-1.0**. AceEvent is a simple wrapper around
+-- CallbackHandler, and dispatches all game events or addon message to the registrees.
+--
+-- **AceEvent-3.0** can be embeded into your addon, either explicitly by calling AceEvent:Embed(MyAddon) or by
+-- specifying it as an embeded library in your AceAddon. All functions will be available on your addon object
+-- and can be accessed directly, without having to explicitly call AceEvent itself.\\
+-- It is recommended to embed AceEvent, otherwise you'll have to specify a custom `self` on all calls you
+-- make into AceEvent.
+-- @class file
+-- @name AceEvent-3.0
+-- @release $Id: AceEvent-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $
+local CallbackHandler = LibStub("CallbackHandler-1.0")
+
+local MAJOR, MINOR = "AceEvent-3.0", 4
+local AceEvent = LibStub:NewLibrary(MAJOR, MINOR)
+
+if not AceEvent then return end
+
+-- Lua APIs
+local pairs = pairs
+
+AceEvent.frame = AceEvent.frame or CreateFrame("Frame", "AceEvent30Frame") -- our event frame
+AceEvent.embeds = AceEvent.embeds or {} -- what objects embed this lib
+
+-- APIs and registry for blizzard events, using CallbackHandler lib
+if not AceEvent.events then
+ AceEvent.events = CallbackHandler:New(AceEvent,
+ "RegisterEvent", "UnregisterEvent", "UnregisterAllEvents")
+end
+
+function AceEvent.events:OnUsed(target, eventname)
+ AceEvent.frame:RegisterEvent(eventname)
+end
+
+function AceEvent.events:OnUnused(target, eventname)
+ AceEvent.frame:UnregisterEvent(eventname)
+end
+
+
+-- APIs and registry for IPC messages, using CallbackHandler lib
+if not AceEvent.messages then
+ AceEvent.messages = CallbackHandler:New(AceEvent,
+ "RegisterMessage", "UnregisterMessage", "UnregisterAllMessages"
+ )
+ AceEvent.SendMessage = AceEvent.messages.Fire
+end
+
+--- embedding and embed handling
+local mixins = {
+ "RegisterEvent", "UnregisterEvent",
+ "RegisterMessage", "UnregisterMessage",
+ "SendMessage",
+ "UnregisterAllEvents", "UnregisterAllMessages",
+}
+
+--- Register for a Blizzard Event.
+-- The callback will be called with the optional `arg` as the first argument (if supplied), and the event name as the second (or first, if no arg was supplied)
+-- Any arguments to the event will be passed on after that.
+-- @name AceEvent:RegisterEvent
+-- @class function
+-- @paramsig event[, callback [, arg]]
+-- @param event The event to register for
+-- @param callback The callback function to call when the event is triggered (funcref or method, defaults to a method with the event name)
+-- @param arg An optional argument to pass to the callback function
+
+--- Unregister an event.
+-- @name AceEvent:UnregisterEvent
+-- @class function
+-- @paramsig event
+-- @param event The event to unregister
+
+--- Register for a custom AceEvent-internal message.
+-- The callback will be called with the optional `arg` as the first argument (if supplied), and the event name as the second (or first, if no arg was supplied)
+-- Any arguments to the event will be passed on after that.
+-- @name AceEvent:RegisterMessage
+-- @class function
+-- @paramsig message[, callback [, arg]]
+-- @param message The message to register for
+-- @param callback The callback function to call when the message is triggered (funcref or method, defaults to a method with the event name)
+-- @param arg An optional argument to pass to the callback function
+
+--- Unregister a message
+-- @name AceEvent:UnregisterMessage
+-- @class function
+-- @paramsig message
+-- @param message The message to unregister
+
+--- Send a message over the AceEvent-3.0 internal message system to other addons registered for this message.
+-- @name AceEvent:SendMessage
+-- @class function
+-- @paramsig message, ...
+-- @param message The message to send
+-- @param ... Any arguments to the message
+
+
+-- Embeds AceEvent into the target object making the functions from the mixins list available on target:..
+-- @param target target object to embed AceEvent in
+function AceEvent:Embed(target)
+ for k, v in pairs(mixins) do
+ target[v] = self[v]
+ end
+ self.embeds[target] = true
+ return target
+end
+
+-- AceEvent:OnEmbedDisable( target )
+-- target (object) - target object that is being disabled
+--
+-- Unregister all events messages etc when the target disables.
+-- this method should be called by the target manually or by an addon framework
+function AceEvent:OnEmbedDisable(target)
+ target:UnregisterAllEvents()
+ target:UnregisterAllMessages()
+end
+
+-- Script to fire blizzard events into the event listeners
+local events = AceEvent.events
+AceEvent.frame:SetScript("OnEvent", function(this, event, ...)
+ events:Fire(event, ...)
+end)
+
+--- Finally: upgrade our old embeds
+for target, v in pairs(AceEvent.embeds) do
+ AceEvent:Embed(target)
+end
diff --git a/Libs/AceEvent-3.0/AceEvent-3.0.xml b/Libs/AceEvent-3.0/AceEvent-3.0.xml
new file mode 100644
index 00000000..41ef7915
--- /dev/null
+++ b/Libs/AceEvent-3.0/AceEvent-3.0.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/Libs/AceGUI-3.0/AceGUI-3.0.lua b/Libs/AceGUI-3.0/AceGUI-3.0.lua
new file mode 100644
index 00000000..f59edda0
--- /dev/null
+++ b/Libs/AceGUI-3.0/AceGUI-3.0.lua
@@ -0,0 +1,1003 @@
+--- **AceGUI-3.0** provides access to numerous widgets which can be used to create GUIs.
+-- AceGUI is used by AceConfigDialog to create the option GUIs, but you can use it by itself
+-- to create any custom GUI. There are more extensive examples in the test suite in the Ace3
+-- stand-alone distribution.
+--
+-- **Note**: When using AceGUI-3.0 directly, please do not modify the frames of the widgets directly,
+-- as any "unknown" change to the widgets will cause addons that get your widget out of the widget pool
+-- to misbehave. If you think some part of a widget should be modifiable, please open a ticket, and we"ll
+-- implement a proper API to modify it.
+-- @usage
+-- local AceGUI = LibStub("AceGUI-3.0")
+-- -- Create a container frame
+-- local f = AceGUI:Create("Frame")
+-- f:SetCallback("OnClose",function(widget) AceGUI:Release(widget) end)
+-- f:SetTitle("AceGUI-3.0 Example")
+-- f:SetStatusText("Status Bar")
+-- f:SetLayout("Flow")
+-- -- Create a button
+-- local btn = AceGUI:Create("Button")
+-- btn:SetWidth(170)
+-- btn:SetText("Button !")
+-- btn:SetCallback("OnClick", function() print("Click!") end)
+-- -- Add the button to the container
+-- f:AddChild(btn)
+-- @class file
+-- @name AceGUI-3.0
+-- @release $Id: AceGUI-3.0.lua 1221 2019-07-20 18:23:00Z nevcairiel $
+local ACEGUI_MAJOR, ACEGUI_MINOR = "AceGUI-3.0", 39
+local AceGUI, oldminor = LibStub:NewLibrary(ACEGUI_MAJOR, ACEGUI_MINOR)
+
+if not AceGUI then return end -- No upgrade needed
+
+-- Lua APIs
+local tinsert = table.insert
+local select, pairs, next, type = select, pairs, next, type
+local error, assert = error, assert
+local setmetatable, rawget = setmetatable, rawget
+local math_max = math.max
+
+-- WoW APIs
+local UIParent = UIParent
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: geterrorhandler, LibStub
+
+--local con = LibStub("AceConsole-3.0",true)
+
+AceGUI.WidgetRegistry = AceGUI.WidgetRegistry or {}
+AceGUI.LayoutRegistry = AceGUI.LayoutRegistry or {}
+AceGUI.WidgetBase = AceGUI.WidgetBase or {}
+AceGUI.WidgetContainerBase = AceGUI.WidgetContainerBase or {}
+AceGUI.WidgetVersions = AceGUI.WidgetVersions or {}
+AceGUI.tooltip = AceGUI.tooltip or CreateFrame("GameTooltip", "AceGUITooltip", UIParent, "GameTooltipTemplate")
+
+-- local upvalues
+local WidgetRegistry = AceGUI.WidgetRegistry
+local LayoutRegistry = AceGUI.LayoutRegistry
+local WidgetVersions = AceGUI.WidgetVersions
+
+--[[
+ xpcall safecall implementation
+]]
+local xpcall = xpcall
+
+local function errorhandler(err)
+ return geterrorhandler()(err)
+end
+
+local function safecall(func, ...)
+ if func then
+ return xpcall(func, errorhandler, ...)
+ end
+end
+
+-- Recycling functions
+local newWidget, delWidget
+do
+ -- Version Upgrade in Minor 29
+ -- Internal Storage of the objects changed, from an array table
+ -- to a hash table, and additionally we introduced versioning on
+ -- the widgets which would discard all widgets from a pre-29 version
+ -- anyway, so we just clear the storage now, and don't try to
+ -- convert the storage tables to the new format.
+ -- This should generally not cause *many* widgets to end up in trash,
+ -- since once dialogs are opened, all addons should be loaded already
+ -- and AceGUI should be on the latest version available on the users
+ -- setup.
+ -- -- nevcairiel - Nov 2nd, 2009
+ if oldminor and oldminor < 29 and AceGUI.objPools then
+ AceGUI.objPools = nil
+ end
+
+ AceGUI.objPools = AceGUI.objPools or {}
+ local objPools = AceGUI.objPools
+ --Returns a new instance, if none are available either returns a new table or calls the given contructor
+ function newWidget(type)
+ if not WidgetRegistry[type] then
+ error("Attempt to instantiate unknown widget type", 2)
+ end
+
+ if not objPools[type] then
+ objPools[type] = {}
+ end
+
+ local newObj = next(objPools[type])
+ if not newObj then
+ newObj = WidgetRegistry[type]()
+ newObj.AceGUIWidgetVersion = WidgetVersions[type]
+ else
+ objPools[type][newObj] = nil
+ -- if the widget is older then the latest, don't even try to reuse it
+ -- just forget about it, and grab a new one.
+ if not newObj.AceGUIWidgetVersion or newObj.AceGUIWidgetVersion < WidgetVersions[type] then
+ return newWidget(type)
+ end
+ end
+ return newObj
+ end
+ -- Releases an instance to the Pool
+ function delWidget(obj,type)
+ if not objPools[type] then
+ objPools[type] = {}
+ end
+ if objPools[type][obj] then
+ error("Attempt to Release Widget that is already released", 2)
+ end
+ objPools[type][obj] = true
+ end
+end
+
+
+-------------------
+-- API Functions --
+-------------------
+
+-- Gets a widget Object
+
+--- Create a new Widget of the given type.
+-- This function will instantiate a new widget (or use one from the widget pool), and call the
+-- OnAcquire function on it, before returning.
+-- @param type The type of the widget.
+-- @return The newly created widget.
+function AceGUI:Create(type)
+ if WidgetRegistry[type] then
+ local widget = newWidget(type)
+
+ if rawget(widget, "Acquire") then
+ widget.OnAcquire = widget.Acquire
+ widget.Acquire = nil
+ elseif rawget(widget, "Aquire") then
+ widget.OnAcquire = widget.Aquire
+ widget.Aquire = nil
+ end
+
+ if rawget(widget, "Release") then
+ widget.OnRelease = rawget(widget, "Release")
+ widget.Release = nil
+ end
+
+ if widget.OnAcquire then
+ widget:OnAcquire()
+ else
+ error(("Widget type %s doesn't supply an OnAcquire Function"):format(type))
+ end
+ -- Set the default Layout ("List")
+ safecall(widget.SetLayout, widget, "List")
+ safecall(widget.ResumeLayout, widget)
+ return widget
+ end
+end
+
+--- Releases a widget Object.
+-- This function calls OnRelease on the widget and places it back in the widget pool.
+-- Any data on the widget is being erased, and the widget will be hidden.\\
+-- If this widget is a Container-Widget, all of its Child-Widgets will be releases as well.
+-- @param widget The widget to release
+function AceGUI:Release(widget)
+ safecall(widget.PauseLayout, widget)
+ widget.frame:Hide()
+ widget:Fire("OnRelease")
+ safecall(widget.ReleaseChildren, widget)
+
+ if widget.OnRelease then
+ widget:OnRelease()
+-- else
+-- error(("Widget type %s doesn't supply an OnRelease Function"):format(widget.type))
+ end
+ for k in pairs(widget.userdata) do
+ widget.userdata[k] = nil
+ end
+ for k in pairs(widget.events) do
+ widget.events[k] = nil
+ end
+ widget.width = nil
+ widget.relWidth = nil
+ widget.height = nil
+ widget.relHeight = nil
+ widget.noAutoHeight = nil
+ widget.frame:ClearAllPoints()
+ widget.frame:Hide()
+ widget.frame:SetParent(UIParent)
+ widget.frame.width = nil
+ widget.frame.height = nil
+ if widget.content then
+ widget.content.width = nil
+ widget.content.height = nil
+ end
+ delWidget(widget, widget.type)
+end
+
+-----------
+-- Focus --
+-----------
+
+
+--- Called when a widget has taken focus.
+-- e.g. Dropdowns opening, Editboxes gaining kb focus
+-- @param widget The widget that should be focused
+function AceGUI:SetFocus(widget)
+ if self.FocusedWidget and self.FocusedWidget ~= widget then
+ safecall(self.FocusedWidget.ClearFocus, self.FocusedWidget)
+ end
+ self.FocusedWidget = widget
+end
+
+
+--- Called when something has happened that could cause widgets with focus to drop it
+-- e.g. titlebar of a frame being clicked
+function AceGUI:ClearFocus()
+ if self.FocusedWidget then
+ safecall(self.FocusedWidget.ClearFocus, self.FocusedWidget)
+ self.FocusedWidget = nil
+ end
+end
+
+-------------
+-- Widgets --
+-------------
+--[[
+ Widgets must provide the following functions
+ OnAcquire() - Called when the object is acquired, should set everything to a default hidden state
+
+ And the following members
+ frame - the frame or derivitive object that will be treated as the widget for size and anchoring purposes
+ type - the type of the object, same as the name given to :RegisterWidget()
+
+ Widgets contain a table called userdata, this is a safe place to store data associated with the wigdet
+ It will be cleared automatically when a widget is released
+ Placing values directly into a widget object should be avoided
+
+ If the Widget can act as a container for other Widgets the following
+ content - frame or derivitive that children will be anchored to
+
+ The Widget can supply the following Optional Members
+ :OnRelease() - Called when the object is Released, should remove any additional anchors and clear any data
+ :OnWidthSet(width) - Called when the width of the widget is changed
+ :OnHeightSet(height) - Called when the height of the widget is changed
+ Widgets should not use the OnSizeChanged events of thier frame or content members, use these methods instead
+ AceGUI already sets a handler to the event
+ :LayoutFinished(width, height) - called after a layout has finished, the width and height will be the width and height of the
+ area used for controls. These can be nil if the layout used the existing size to layout the controls.
+
+]]
+
+--------------------------
+-- Widget Base Template --
+--------------------------
+do
+ local WidgetBase = AceGUI.WidgetBase
+
+ WidgetBase.SetParent = function(self, parent)
+ local frame = self.frame
+ frame:SetParent(nil)
+ frame:SetParent(parent.content)
+ self.parent = parent
+ end
+
+ WidgetBase.SetCallback = function(self, name, func)
+ if type(func) == "function" then
+ self.events[name] = func
+ end
+ end
+
+ WidgetBase.Fire = function(self, name, ...)
+ if self.events[name] then
+ local success, ret = safecall(self.events[name], self, name, ...)
+ if success then
+ return ret
+ end
+ end
+ end
+
+ WidgetBase.SetWidth = function(self, width)
+ self.frame:SetWidth(width)
+ self.frame.width = width
+ if self.OnWidthSet then
+ self:OnWidthSet(width)
+ end
+ end
+
+ WidgetBase.SetRelativeWidth = function(self, width)
+ if width <= 0 or width > 1 then
+ error(":SetRelativeWidth(width): Invalid relative width.", 2)
+ end
+ self.relWidth = width
+ self.width = "relative"
+ end
+
+ WidgetBase.SetHeight = function(self, height)
+ self.frame:SetHeight(height)
+ self.frame.height = height
+ if self.OnHeightSet then
+ self:OnHeightSet(height)
+ end
+ end
+
+ --[[ WidgetBase.SetRelativeHeight = function(self, height)
+ if height <= 0 or height > 1 then
+ error(":SetRelativeHeight(height): Invalid relative height.", 2)
+ end
+ self.relHeight = height
+ self.height = "relative"
+ end ]]
+
+ WidgetBase.IsVisible = function(self)
+ return self.frame:IsVisible()
+ end
+
+ WidgetBase.IsShown= function(self)
+ return self.frame:IsShown()
+ end
+
+ WidgetBase.Release = function(self)
+ AceGUI:Release(self)
+ end
+
+ WidgetBase.SetPoint = function(self, ...)
+ return self.frame:SetPoint(...)
+ end
+
+ WidgetBase.ClearAllPoints = function(self)
+ return self.frame:ClearAllPoints()
+ end
+
+ WidgetBase.GetNumPoints = function(self)
+ return self.frame:GetNumPoints()
+ end
+
+ WidgetBase.GetPoint = function(self, ...)
+ return self.frame:GetPoint(...)
+ end
+
+ WidgetBase.GetUserDataTable = function(self)
+ return self.userdata
+ end
+
+ WidgetBase.SetUserData = function(self, key, value)
+ self.userdata[key] = value
+ end
+
+ WidgetBase.GetUserData = function(self, key)
+ return self.userdata[key]
+ end
+
+ WidgetBase.IsFullHeight = function(self)
+ return self.height == "fill"
+ end
+
+ WidgetBase.SetFullHeight = function(self, isFull)
+ if isFull then
+ self.height = "fill"
+ else
+ self.height = nil
+ end
+ end
+
+ WidgetBase.IsFullWidth = function(self)
+ return self.width == "fill"
+ end
+
+ WidgetBase.SetFullWidth = function(self, isFull)
+ if isFull then
+ self.width = "fill"
+ else
+ self.width = nil
+ end
+ end
+
+-- local function LayoutOnUpdate(this)
+-- this:SetScript("OnUpdate",nil)
+-- this.obj:PerformLayout()
+-- end
+
+ local WidgetContainerBase = AceGUI.WidgetContainerBase
+
+ WidgetContainerBase.PauseLayout = function(self)
+ self.LayoutPaused = true
+ end
+
+ WidgetContainerBase.ResumeLayout = function(self)
+ self.LayoutPaused = nil
+ end
+
+ WidgetContainerBase.PerformLayout = function(self)
+ if self.LayoutPaused then
+ return
+ end
+ safecall(self.LayoutFunc, self.content, self.children)
+ end
+
+ --call this function to layout, makes sure layed out objects get a frame to get sizes etc
+ WidgetContainerBase.DoLayout = function(self)
+ self:PerformLayout()
+-- if not self.parent then
+-- self.frame:SetScript("OnUpdate", LayoutOnUpdate)
+-- end
+ end
+
+ WidgetContainerBase.AddChild = function(self, child, beforeWidget)
+ if beforeWidget then
+ local siblingIndex = 1
+ for _, widget in pairs(self.children) do
+ if widget == beforeWidget then
+ break
+ end
+ siblingIndex = siblingIndex + 1
+ end
+ tinsert(self.children, siblingIndex, child)
+ else
+ tinsert(self.children, child)
+ end
+ child:SetParent(self)
+ child.frame:Show()
+ self:DoLayout()
+ end
+
+ WidgetContainerBase.AddChildren = function(self, ...)
+ for i = 1, select("#", ...) do
+ local child = select(i, ...)
+ tinsert(self.children, child)
+ child:SetParent(self)
+ child.frame:Show()
+ end
+ self:DoLayout()
+ end
+
+ WidgetContainerBase.ReleaseChildren = function(self)
+ local children = self.children
+ for i = 1,#children do
+ AceGUI:Release(children[i])
+ children[i] = nil
+ end
+ end
+
+ WidgetContainerBase.SetLayout = function(self, Layout)
+ self.LayoutFunc = AceGUI:GetLayout(Layout)
+ end
+
+ WidgetContainerBase.SetAutoAdjustHeight = function(self, adjust)
+ if adjust then
+ self.noAutoHeight = nil
+ else
+ self.noAutoHeight = true
+ end
+ end
+
+ local function FrameResize(this)
+ local self = this.obj
+ if this:GetWidth() and this:GetHeight() then
+ if self.OnWidthSet then
+ self:OnWidthSet(this:GetWidth())
+ end
+ if self.OnHeightSet then
+ self:OnHeightSet(this:GetHeight())
+ end
+ end
+ end
+
+ local function ContentResize(this)
+ if this:GetWidth() and this:GetHeight() then
+ this.width = this:GetWidth()
+ this.height = this:GetHeight()
+ this.obj:DoLayout()
+ end
+ end
+
+ setmetatable(WidgetContainerBase, {__index=WidgetBase})
+
+ --One of these function should be called on each Widget Instance as part of its creation process
+
+ --- Register a widget-class as a container for newly created widgets.
+ -- @param widget The widget class
+ function AceGUI:RegisterAsContainer(widget)
+ widget.children = {}
+ widget.userdata = {}
+ widget.events = {}
+ widget.base = WidgetContainerBase
+ widget.content.obj = widget
+ widget.frame.obj = widget
+ widget.content:SetScript("OnSizeChanged", ContentResize)
+ widget.frame:SetScript("OnSizeChanged", FrameResize)
+ setmetatable(widget, {__index = WidgetContainerBase})
+ widget:SetLayout("List")
+ return widget
+ end
+
+ --- Register a widget-class as a widget.
+ -- @param widget The widget class
+ function AceGUI:RegisterAsWidget(widget)
+ widget.userdata = {}
+ widget.events = {}
+ widget.base = WidgetBase
+ widget.frame.obj = widget
+ widget.frame:SetScript("OnSizeChanged", FrameResize)
+ setmetatable(widget, {__index = WidgetBase})
+ return widget
+ end
+end
+
+
+
+
+------------------
+-- Widget API --
+------------------
+
+--- Registers a widget Constructor, this function returns a new instance of the Widget
+-- @param Name The name of the widget
+-- @param Constructor The widget constructor function
+-- @param Version The version of the widget
+function AceGUI:RegisterWidgetType(Name, Constructor, Version)
+ assert(type(Constructor) == "function")
+ assert(type(Version) == "number")
+
+ local oldVersion = WidgetVersions[Name]
+ if oldVersion and oldVersion >= Version then return end
+
+ WidgetVersions[Name] = Version
+ WidgetRegistry[Name] = Constructor
+end
+
+--- Registers a Layout Function
+-- @param Name The name of the layout
+-- @param LayoutFunc Reference to the layout function
+function AceGUI:RegisterLayout(Name, LayoutFunc)
+ assert(type(LayoutFunc) == "function")
+ if type(Name) == "string" then
+ Name = Name:upper()
+ end
+ LayoutRegistry[Name] = LayoutFunc
+end
+
+--- Get a Layout Function from the registry
+-- @param Name The name of the layout
+function AceGUI:GetLayout(Name)
+ if type(Name) == "string" then
+ Name = Name:upper()
+ end
+ return LayoutRegistry[Name]
+end
+
+AceGUI.counts = AceGUI.counts or {}
+
+--- A type-based counter to count the number of widgets created.
+-- This is used by widgets that require a named frame, e.g. when a Blizzard
+-- Template requires it.
+-- @param type The widget type
+function AceGUI:GetNextWidgetNum(type)
+ if not self.counts[type] then
+ self.counts[type] = 0
+ end
+ self.counts[type] = self.counts[type] + 1
+ return self.counts[type]
+end
+
+--- Return the number of created widgets for this type.
+-- In contrast to GetNextWidgetNum, the number is not incremented.
+-- @param type The widget type
+function AceGUI:GetWidgetCount(type)
+ return self.counts[type] or 0
+end
+
+--- Return the version of the currently registered widget type.
+-- @param type The widget type
+function AceGUI:GetWidgetVersion(type)
+ return WidgetVersions[type]
+end
+
+-------------
+-- Layouts --
+-------------
+
+--[[
+ A Layout is a func that takes 2 parameters
+ content - the frame that widgets will be placed inside
+ children - a table containing the widgets to layout
+]]
+
+-- Very simple Layout, Children are stacked on top of each other down the left side
+AceGUI:RegisterLayout("List",
+ function(content, children)
+ local height = 0
+ local width = content.width or content:GetWidth() or 0
+ for i = 1, #children do
+ local child = children[i]
+
+ local frame = child.frame
+ frame:ClearAllPoints()
+ frame:Show()
+ if i == 1 then
+ frame:SetPoint("TOPLEFT", content)
+ else
+ frame:SetPoint("TOPLEFT", children[i-1].frame, "BOTTOMLEFT")
+ end
+
+ if child.width == "fill" then
+ child:SetWidth(width)
+ frame:SetPoint("RIGHT", content)
+
+ if child.DoLayout then
+ child:DoLayout()
+ end
+ elseif child.width == "relative" then
+ child:SetWidth(width * child.relWidth)
+
+ if child.DoLayout then
+ child:DoLayout()
+ end
+ end
+
+ height = height + (frame.height or frame:GetHeight() or 0)
+ end
+ safecall(content.obj.LayoutFinished, content.obj, nil, height)
+ end)
+
+-- A single control fills the whole content area
+AceGUI:RegisterLayout("Fill",
+ function(content, children)
+ if children[1] then
+ children[1]:SetWidth(content:GetWidth() or 0)
+ children[1]:SetHeight(content:GetHeight() or 0)
+ children[1].frame:ClearAllPoints()
+ children[1].frame:SetAllPoints(content)
+ children[1].frame:Show()
+ safecall(content.obj.LayoutFinished, content.obj, nil, children[1].frame:GetHeight())
+ end
+ end)
+
+local layoutrecursionblock = nil
+local function safelayoutcall(object, func, ...)
+ layoutrecursionblock = true
+ object[func](object, ...)
+ layoutrecursionblock = nil
+end
+
+AceGUI:RegisterLayout("Flow",
+ function(content, children)
+ if layoutrecursionblock then return end
+ --used height so far
+ local height = 0
+ --width used in the current row
+ local usedwidth = 0
+ --height of the current row
+ local rowheight = 0
+ local rowoffset = 0
+
+ local width = content.width or content:GetWidth() or 0
+
+ --control at the start of the row
+ local rowstart
+ local rowstartoffset
+ local isfullheight
+
+ local frameoffset
+ local lastframeoffset
+ local oversize
+ for i = 1, #children do
+ local child = children[i]
+ oversize = nil
+ local frame = child.frame
+ local frameheight = frame.height or frame:GetHeight() or 0
+ local framewidth = frame.width or frame:GetWidth() or 0
+ lastframeoffset = frameoffset
+ -- HACK: Why did we set a frameoffset of (frameheight / 2) ?
+ -- That was moving all widgets half the widgets size down, is that intended?
+ -- Actually, it seems to be neccessary for many cases, we'll leave it in for now.
+ -- If widgets seem to anchor weirdly with this, provide a valid alignoffset for them.
+ -- TODO: Investigate moar!
+ frameoffset = child.alignoffset or (frameheight / 2)
+
+ if child.width == "relative" then
+ framewidth = width * child.relWidth
+ end
+
+ frame:Show()
+ frame:ClearAllPoints()
+ if i == 1 then
+ -- anchor the first control to the top left
+ frame:SetPoint("TOPLEFT", content)
+ rowheight = frameheight
+ rowoffset = frameoffset
+ rowstart = frame
+ rowstartoffset = frameoffset
+ usedwidth = framewidth
+ if usedwidth > width then
+ oversize = true
+ end
+ else
+ -- if there isn't available width for the control start a new row
+ -- if a control is "fill" it will be on a row of its own full width
+ if usedwidth == 0 or ((framewidth) + usedwidth > width) or child.width == "fill" then
+ if isfullheight then
+ -- a previous row has already filled the entire height, there's nothing we can usefully do anymore
+ -- (maybe error/warn about this?)
+ break
+ end
+ --anchor the previous row, we will now know its height and offset
+ rowstart:SetPoint("TOPLEFT", content, "TOPLEFT", 0, -(height + (rowoffset - rowstartoffset) + 3))
+ height = height + rowheight + 3
+ --save this as the rowstart so we can anchor it after the row is complete and we have the max height and offset of controls in it
+ rowstart = frame
+ rowstartoffset = frameoffset
+ rowheight = frameheight
+ rowoffset = frameoffset
+ usedwidth = framewidth
+ if usedwidth > width then
+ oversize = true
+ end
+ -- put the control on the current row, adding it to the width and checking if the height needs to be increased
+ else
+ --handles cases where the new height is higher than either control because of the offsets
+ --math.max(rowheight-rowoffset+frameoffset, frameheight-frameoffset+rowoffset)
+
+ --offset is always the larger of the two offsets
+ rowoffset = math_max(rowoffset, frameoffset)
+ rowheight = math_max(rowheight, rowoffset + (frameheight / 2))
+
+ frame:SetPoint("TOPLEFT", children[i-1].frame, "TOPRIGHT", 0, frameoffset - lastframeoffset)
+ usedwidth = framewidth + usedwidth
+ end
+ end
+
+ if child.width == "fill" then
+ safelayoutcall(child, "SetWidth", width)
+ frame:SetPoint("RIGHT", content)
+
+ usedwidth = 0
+ rowstart = frame
+ rowstartoffset = frameoffset
+
+ if child.DoLayout then
+ child:DoLayout()
+ end
+ rowheight = frame.height or frame:GetHeight() or 0
+ rowoffset = child.alignoffset or (rowheight / 2)
+ rowstartoffset = rowoffset
+ elseif child.width == "relative" then
+ safelayoutcall(child, "SetWidth", width * child.relWidth)
+
+ if child.DoLayout then
+ child:DoLayout()
+ end
+ elseif oversize then
+ if width > 1 then
+ frame:SetPoint("RIGHT", content)
+ end
+ end
+
+ if child.height == "fill" then
+ frame:SetPoint("BOTTOM", content)
+ isfullheight = true
+ end
+ end
+
+ --anchor the last row, if its full height needs a special case since its height has just been changed by the anchor
+ if isfullheight then
+ rowstart:SetPoint("TOPLEFT", content, "TOPLEFT", 0, -height)
+ elseif rowstart then
+ rowstart:SetPoint("TOPLEFT", content, "TOPLEFT", 0, -(height + (rowoffset - rowstartoffset) + 3))
+ end
+
+ height = height + rowheight + 3
+ safecall(content.obj.LayoutFinished, content.obj, nil, height)
+ end)
+
+-- Get alignment method and value. Possible alignment methods are a callback, a number, "start", "middle", "end", "fill" or "TOPLEFT", "BOTTOMRIGHT" etc.
+local GetCellAlign = function (dir, tableObj, colObj, cellObj, cell, child)
+ local fn = cellObj and (cellObj["align" .. dir] or cellObj.align)
+ or colObj and (colObj["align" .. dir] or colObj.align)
+ or tableObj["align" .. dir] or tableObj.align
+ or "CENTERLEFT"
+ local child, cell, val = child or 0, cell or 0, nil
+
+ if type(fn) == "string" then
+ fn = fn:lower()
+ fn = dir == "V" and (fn:sub(1, 3) == "top" and "start" or fn:sub(1, 6) == "bottom" and "end" or fn:sub(1, 6) == "center" and "middle")
+ or dir == "H" and (fn:sub(-4) == "left" and "start" or fn:sub(-5) == "right" and "end" or fn:sub(-6) == "center" and "middle")
+ or fn
+ val = (fn == "start" or fn == "fill") and 0 or fn == "end" and cell - child or (cell - child) / 2
+ elseif type(fn) == "function" then
+ val = fn(child or 0, cell, dir)
+ else
+ val = fn
+ end
+
+ return fn, max(0, min(val, cell))
+end
+
+-- Get width or height for multiple cells combined
+local GetCellDimension = function (dir, laneDim, from, to, space)
+ local dim = 0
+ for cell=from,to do
+ dim = dim + (laneDim[cell] or 0)
+ end
+ return dim + max(0, to - from) * (space or 0)
+end
+
+--[[ Options
+============
+Container:
+ - columns ({col, col, ...}): Column settings. "col" can be a number (<= 0: content width, <1: rel. width, <10: weight, >=10: abs. width) or a table with column setting.
+ - space, spaceH, spaceV: Overall, horizontal and vertical spacing between cells.
+ - align, alignH, alignV: Overall, horizontal and vertical cell alignment. See GetCellAlign() for possible values.
+Columns:
+ - width: Fixed column width (nil or <=0: content width, <1: rel. width, >=1: abs. width).
+ - min or 1: Min width for content based width
+ - max or 2: Max width for content based width
+ - weight: Flexible column width. The leftover width after accounting for fixed-width columns is distributed to weighted columns according to their weights.
+ - align, alignH, alignV: Overwrites the container setting for alignment.
+Cell:
+ - colspan: Makes a cell span multiple columns.
+ - rowspan: Makes a cell span multiple rows.
+ - align, alignH, alignV: Overwrites the container and column setting for alignment.
+]]
+AceGUI:RegisterLayout("Table",
+ function (content, children)
+ local obj = content.obj
+ obj:PauseLayout()
+
+ local tableObj = obj:GetUserData("table")
+ local cols = tableObj.columns
+ local spaceH = tableObj.spaceH or tableObj.space or 0
+ local spaceV = tableObj.spaceV or tableObj.space or 0
+ local totalH = (content:GetWidth() or content.width or 0) - spaceH * (#cols - 1)
+
+ -- We need to reuse these because layout events can come in very frequently
+ local layoutCache = obj:GetUserData("layoutCache")
+ if not layoutCache then
+ layoutCache = {{}, {}, {}, {}, {}, {}}
+ obj:SetUserData("layoutCache", layoutCache)
+ end
+ local t, laneH, laneV, rowspans, rowStart, colStart = unpack(layoutCache)
+
+ -- Create the grid
+ local n, slotFound = 0
+ for i,child in ipairs(children) do
+ if child:IsShown() then
+ repeat
+ n = n + 1
+ local col = (n - 1) % #cols + 1
+ local row = ceil(n / #cols)
+ local rowspan = rowspans[col]
+ local cell = rowspan and rowspan.child or child
+ local cellObj = cell:GetUserData("cell")
+ slotFound = not rowspan
+
+ -- Rowspan
+ if not rowspan and cellObj and cellObj.rowspan then
+ rowspan = {child = child, from = row, to = row + cellObj.rowspan - 1}
+ rowspans[col] = rowspan
+ end
+ if rowspan and i == #children then
+ rowspan.to = row
+ end
+
+ -- Colspan
+ local colspan = max(0, min((cellObj and cellObj.colspan or 1) - 1, #cols - col))
+ n = n + colspan
+
+ -- Place the cell
+ if not rowspan or rowspan.to == row then
+ t[n] = cell
+ rowStart[cell] = rowspan and rowspan.from or row
+ colStart[cell] = col
+
+ if rowspan then
+ rowspans[col] = nil
+ end
+ end
+ until slotFound
+ end
+ end
+
+ local rows = ceil(n / #cols)
+
+ -- Determine fixed size cols and collect weights
+ local extantH, totalWeight = totalH, 0
+ for col,colObj in ipairs(cols) do
+ laneH[col] = 0
+
+ if type(colObj) == "number" then
+ colObj = {[colObj >= 1 and colObj < 10 and "weight" or "width"] = colObj}
+ cols[col] = colObj
+ end
+
+ if colObj.weight then
+ -- Weight
+ totalWeight = totalWeight + (colObj.weight or 1)
+ else
+ if not colObj.width or colObj.width <= 0 then
+ -- Content width
+ for row=1,rows do
+ local child = t[(row - 1) * #cols + col]
+ if child then
+ local f = child.frame
+ f:ClearAllPoints()
+ local childH = f:GetWidth() or 0
+
+ laneH[col] = max(laneH[col], childH - GetCellDimension("H", laneH, colStart[child], col - 1, spaceH))
+ end
+ end
+
+ laneH[col] = max(colObj.min or colObj[1] or 0, min(laneH[col], colObj.max or colObj[2] or laneH[col]))
+ else
+ -- Rel./Abs. width
+ laneH[col] = colObj.width < 1 and colObj.width * totalH or colObj.width
+ end
+ extantH = max(0, extantH - laneH[col])
+ end
+ end
+
+ -- Determine sizes based on weight
+ local scale = totalWeight > 0 and extantH / totalWeight or 0
+ for col,colObj in pairs(cols) do
+ if colObj.weight then
+ laneH[col] = scale * colObj.weight
+ end
+ end
+
+ -- Arrange children
+ for row=1,rows do
+ local rowV = 0
+
+ -- Horizontal placement and sizing
+ for col=1,#cols do
+ local child = t[(row - 1) * #cols + col]
+ if child then
+ local colObj = cols[colStart[child]]
+ local cellObj = child:GetUserData("cell")
+ local offsetH = GetCellDimension("H", laneH, 1, colStart[child] - 1, spaceH) + (colStart[child] == 1 and 0 or spaceH)
+ local cellH = GetCellDimension("H", laneH, colStart[child], col, spaceH)
+
+ local f = child.frame
+ f:ClearAllPoints()
+ local childH = f:GetWidth() or 0
+
+ local alignFn, align = GetCellAlign("H", tableObj, colObj, cellObj, cellH, childH)
+ f:SetPoint("LEFT", content, offsetH + align, 0)
+ if child:IsFullWidth() or alignFn == "fill" or childH > cellH then
+ f:SetPoint("RIGHT", content, "LEFT", offsetH + align + cellH, 0)
+ end
+
+ if child.DoLayout then
+ child:DoLayout()
+ end
+
+ rowV = max(rowV, (f:GetHeight() or 0) - GetCellDimension("V", laneV, rowStart[child], row - 1, spaceV))
+ end
+ end
+
+ laneV[row] = rowV
+
+ -- Vertical placement and sizing
+ for col=1,#cols do
+ local child = t[(row - 1) * #cols + col]
+ if child then
+ local colObj = cols[colStart[child]]
+ local cellObj = child:GetUserData("cell")
+ local offsetV = GetCellDimension("V", laneV, 1, rowStart[child] - 1, spaceV) + (rowStart[child] == 1 and 0 or spaceV)
+ local cellV = GetCellDimension("V", laneV, rowStart[child], row, spaceV)
+
+ local f = child.frame
+ local childV = f:GetHeight() or 0
+
+ local alignFn, align = GetCellAlign("V", tableObj, colObj, cellObj, cellV, childV)
+ if child:IsFullHeight() or alignFn == "fill" then
+ f:SetHeight(cellV)
+ end
+ f:SetPoint("TOP", content, 0, -(offsetV + align))
+ end
+ end
+ end
+
+ -- Calculate total height
+ local totalV = GetCellDimension("V", laneV, 1, #laneV, spaceV)
+
+ -- Cleanup
+ for _,v in pairs(layoutCache) do wipe(v) end
+
+ safecall(obj.LayoutFinished, obj, nil, totalV)
+ obj:ResumeLayout()
+ end)
diff --git a/Libs/AceGUI-3.0/AceGUI-3.0.xml b/Libs/AceGUI-3.0/AceGUI-3.0.xml
new file mode 100644
index 00000000..b515077a
--- /dev/null
+++ b/Libs/AceGUI-3.0/AceGUI-3.0.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIContainer-BlizOptionsGroup.lua b/Libs/AceGUI-3.0/widgets/AceGUIContainer-BlizOptionsGroup.lua
new file mode 100644
index 00000000..9a48f8bd
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIContainer-BlizOptionsGroup.lua
@@ -0,0 +1,138 @@
+--[[-----------------------------------------------------------------------------
+BlizOptionsGroup Container
+Simple container widget for the integration of AceGUI into the Blizzard Interface Options
+-------------------------------------------------------------------------------]]
+local Type, Version = "BlizOptionsGroup", 21
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local pairs = pairs
+
+-- WoW APIs
+local CreateFrame = CreateFrame
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+
+local function OnShow(frame)
+ frame.obj:Fire("OnShow")
+end
+
+local function OnHide(frame)
+ frame.obj:Fire("OnHide")
+end
+
+--[[-----------------------------------------------------------------------------
+Support functions
+-------------------------------------------------------------------------------]]
+
+local function okay(frame)
+ frame.obj:Fire("okay")
+end
+
+local function cancel(frame)
+ frame.obj:Fire("cancel")
+end
+
+local function default(frame)
+ frame.obj:Fire("default")
+end
+
+local function refresh(frame)
+ frame.obj:Fire("refresh")
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+
+local methods = {
+ ["OnAcquire"] = function(self)
+ self:SetName()
+ self:SetTitle()
+ end,
+
+ -- ["OnRelease"] = nil,
+
+ ["OnWidthSet"] = function(self, width)
+ local content = self.content
+ local contentwidth = width - 63
+ if contentwidth < 0 then
+ contentwidth = 0
+ end
+ content:SetWidth(contentwidth)
+ content.width = contentwidth
+ end,
+
+ ["OnHeightSet"] = function(self, height)
+ local content = self.content
+ local contentheight = height - 26
+ if contentheight < 0 then
+ contentheight = 0
+ end
+ content:SetHeight(contentheight)
+ content.height = contentheight
+ end,
+
+ ["SetName"] = function(self, name, parent)
+ self.frame.name = name
+ self.frame.parent = parent
+ end,
+
+ ["SetTitle"] = function(self, title)
+ local content = self.content
+ content:ClearAllPoints()
+ if not title or title == "" then
+ content:SetPoint("TOPLEFT", 10, -10)
+ self.label:SetText("")
+ else
+ content:SetPoint("TOPLEFT", 10, -40)
+ self.label:SetText(title)
+ end
+ content:SetPoint("BOTTOMRIGHT", -10, 10)
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local function Constructor()
+ local frame = CreateFrame("Frame")
+ frame:Hide()
+
+ -- support functions for the Blizzard Interface Options
+ frame.okay = okay
+ frame.cancel = cancel
+ frame.default = default
+ frame.refresh = refresh
+
+ frame:SetScript("OnHide", OnHide)
+ frame:SetScript("OnShow", OnShow)
+
+ local label = frame:CreateFontString(nil, "OVERLAY", "GameFontNormalLarge")
+ label:SetPoint("TOPLEFT", 10, -15)
+ label:SetPoint("BOTTOMRIGHT", frame, "TOPRIGHT", 10, -45)
+ label:SetJustifyH("LEFT")
+ label:SetJustifyV("TOP")
+
+ --Container Support
+ local content = CreateFrame("Frame", nil, frame)
+ content:SetPoint("TOPLEFT", 10, -10)
+ content:SetPoint("BOTTOMRIGHT", -10, 10)
+
+ local widget = {
+ label = label,
+ frame = frame,
+ content = content,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+
+ return AceGUI:RegisterAsContainer(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIContainer-DropDownGroup.lua b/Libs/AceGUI-3.0/widgets/AceGUIContainer-DropDownGroup.lua
new file mode 100644
index 00000000..4b09d649
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIContainer-DropDownGroup.lua
@@ -0,0 +1,157 @@
+--[[-----------------------------------------------------------------------------
+DropdownGroup Container
+Container controlled by a dropdown on the top.
+-------------------------------------------------------------------------------]]
+local Type, Version = "DropdownGroup", 21
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local assert, pairs, type = assert, pairs, type
+
+-- WoW APIs
+local CreateFrame = CreateFrame
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+local function SelectedGroup(self, event, value)
+ local group = self.parentgroup
+ local status = group.status or group.localstatus
+ status.selected = value
+ self.parentgroup:Fire("OnGroupSelected", value)
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self.dropdown:SetText("")
+ self:SetDropdownWidth(200)
+ self:SetTitle("")
+ end,
+
+ ["OnRelease"] = function(self)
+ self.dropdown.list = nil
+ self.status = nil
+ for k in pairs(self.localstatus) do
+ self.localstatus[k] = nil
+ end
+ end,
+
+ ["SetTitle"] = function(self, title)
+ self.titletext:SetText(title)
+ self.dropdown.frame:ClearAllPoints()
+ if title and title ~= "" then
+ self.dropdown.frame:SetPoint("TOPRIGHT", -2, 0)
+ else
+ self.dropdown.frame:SetPoint("TOPLEFT", -1, 0)
+ end
+ end,
+
+ ["SetGroupList"] = function(self,list,order)
+ self.dropdown:SetList(list,order)
+ end,
+
+ ["SetStatusTable"] = function(self, status)
+ assert(type(status) == "table")
+ self.status = status
+ end,
+
+ ["SetGroup"] = function(self,group)
+ self.dropdown:SetValue(group)
+ local status = self.status or self.localstatus
+ status.selected = group
+ self:Fire("OnGroupSelected", group)
+ end,
+
+ ["OnWidthSet"] = function(self, width)
+ local content = self.content
+ local contentwidth = width - 26
+ if contentwidth < 0 then
+ contentwidth = 0
+ end
+ content:SetWidth(contentwidth)
+ content.width = contentwidth
+ end,
+
+ ["OnHeightSet"] = function(self, height)
+ local content = self.content
+ local contentheight = height - 63
+ if contentheight < 0 then
+ contentheight = 0
+ end
+ content:SetHeight(contentheight)
+ content.height = contentheight
+ end,
+
+ ["LayoutFinished"] = function(self, width, height)
+ self:SetHeight((height or 0) + 63)
+ end,
+
+ ["SetDropdownWidth"] = function(self, width)
+ self.dropdown:SetWidth(width)
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local PaneBackdrop = {
+ bgFile = "Interface\\ChatFrame\\ChatFrameBackground",
+ edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
+ tile = true, tileSize = 16, edgeSize = 16,
+ insets = { left = 3, right = 3, top = 5, bottom = 3 }
+}
+
+local function Constructor()
+ local frame = CreateFrame("Frame")
+ frame:SetHeight(100)
+ frame:SetWidth(100)
+ frame:SetFrameStrata("FULLSCREEN_DIALOG")
+
+ local titletext = frame:CreateFontString(nil, "OVERLAY", "GameFontNormal")
+ titletext:SetPoint("TOPLEFT", 4, -5)
+ titletext:SetPoint("TOPRIGHT", -4, -5)
+ titletext:SetJustifyH("LEFT")
+ titletext:SetHeight(18)
+
+ local dropdown = AceGUI:Create("Dropdown")
+ dropdown.frame:SetParent(frame)
+ dropdown.frame:SetFrameLevel(dropdown.frame:GetFrameLevel() + 2)
+ dropdown:SetCallback("OnValueChanged", SelectedGroup)
+ dropdown.frame:SetPoint("TOPLEFT", -1, 0)
+ dropdown.frame:Show()
+ dropdown:SetLabel("")
+
+ local border = CreateFrame("Frame", nil, frame)
+ border:SetPoint("TOPLEFT", 0, -26)
+ border:SetPoint("BOTTOMRIGHT", 0, 3)
+ border:SetBackdrop(PaneBackdrop)
+ border:SetBackdropColor(0.1,0.1,0.1,0.5)
+ border:SetBackdropBorderColor(0.4,0.4,0.4)
+
+ --Container Support
+ local content = CreateFrame("Frame", nil, border)
+ content:SetPoint("TOPLEFT", 10, -10)
+ content:SetPoint("BOTTOMRIGHT", -10, 10)
+
+ local widget = {
+ frame = frame,
+ localstatus = {},
+ titletext = titletext,
+ dropdown = dropdown,
+ border = border,
+ content = content,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+ dropdown.parentgroup = widget
+
+ return AceGUI:RegisterAsContainer(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIContainer-Frame.lua b/Libs/AceGUI-3.0/widgets/AceGUIContainer-Frame.lua
new file mode 100644
index 00000000..ec98f4b5
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIContainer-Frame.lua
@@ -0,0 +1,316 @@
+--[[-----------------------------------------------------------------------------
+Frame Container
+-------------------------------------------------------------------------------]]
+local Type, Version = "Frame", 26
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local pairs, assert, type = pairs, assert, type
+local wipe = table.wipe
+
+-- WoW APIs
+local PlaySound = PlaySound
+local CreateFrame, UIParent = CreateFrame, UIParent
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: CLOSE
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+local function Button_OnClick(frame)
+ PlaySound(799) -- SOUNDKIT.GS_TITLE_OPTION_EXIT
+ frame.obj:Hide()
+end
+
+local function Frame_OnShow(frame)
+ frame.obj:Fire("OnShow")
+end
+
+local function Frame_OnClose(frame)
+ frame.obj:Fire("OnClose")
+end
+
+local function Frame_OnMouseDown(frame)
+ AceGUI:ClearFocus()
+end
+
+local function Title_OnMouseDown(frame)
+ frame:GetParent():StartMoving()
+ AceGUI:ClearFocus()
+end
+
+local function MoverSizer_OnMouseUp(mover)
+ local frame = mover:GetParent()
+ frame:StopMovingOrSizing()
+ local self = frame.obj
+ local status = self.status or self.localstatus
+ status.width = frame:GetWidth()
+ status.height = frame:GetHeight()
+ status.top = frame:GetTop()
+ status.left = frame:GetLeft()
+end
+
+local function SizerSE_OnMouseDown(frame)
+ frame:GetParent():StartSizing("BOTTOMRIGHT")
+ AceGUI:ClearFocus()
+end
+
+local function SizerS_OnMouseDown(frame)
+ frame:GetParent():StartSizing("BOTTOM")
+ AceGUI:ClearFocus()
+end
+
+local function SizerE_OnMouseDown(frame)
+ frame:GetParent():StartSizing("RIGHT")
+ AceGUI:ClearFocus()
+end
+
+local function StatusBar_OnEnter(frame)
+ frame.obj:Fire("OnEnterStatusBar")
+end
+
+local function StatusBar_OnLeave(frame)
+ frame.obj:Fire("OnLeaveStatusBar")
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self.frame:SetParent(UIParent)
+ self.frame:SetFrameStrata("FULLSCREEN_DIALOG")
+ self:SetTitle()
+ self:SetStatusText()
+ self:ApplyStatus()
+ self:Show()
+ self:EnableResize(true)
+ end,
+
+ ["OnRelease"] = function(self)
+ self.status = nil
+ wipe(self.localstatus)
+ end,
+
+ ["OnWidthSet"] = function(self, width)
+ local content = self.content
+ local contentwidth = width - 34
+ if contentwidth < 0 then
+ contentwidth = 0
+ end
+ content:SetWidth(contentwidth)
+ content.width = contentwidth
+ end,
+
+ ["OnHeightSet"] = function(self, height)
+ local content = self.content
+ local contentheight = height - 57
+ if contentheight < 0 then
+ contentheight = 0
+ end
+ content:SetHeight(contentheight)
+ content.height = contentheight
+ end,
+
+ ["SetTitle"] = function(self, title)
+ self.titletext:SetText(title)
+ self.titlebg:SetWidth((self.titletext:GetWidth() or 0) + 10)
+ end,
+
+ ["SetStatusText"] = function(self, text)
+ self.statustext:SetText(text)
+ end,
+
+ ["Hide"] = function(self)
+ self.frame:Hide()
+ end,
+
+ ["Show"] = function(self)
+ self.frame:Show()
+ end,
+
+ ["EnableResize"] = function(self, state)
+ local func = state and "Show" or "Hide"
+ self.sizer_se[func](self.sizer_se)
+ self.sizer_s[func](self.sizer_s)
+ self.sizer_e[func](self.sizer_e)
+ end,
+
+ -- called to set an external table to store status in
+ ["SetStatusTable"] = function(self, status)
+ assert(type(status) == "table")
+ self.status = status
+ self:ApplyStatus()
+ end,
+
+ ["ApplyStatus"] = function(self)
+ local status = self.status or self.localstatus
+ local frame = self.frame
+ self:SetWidth(status.width or 700)
+ self:SetHeight(status.height or 500)
+ frame:ClearAllPoints()
+ if status.top and status.left then
+ frame:SetPoint("TOP", UIParent, "BOTTOM", 0, status.top)
+ frame:SetPoint("LEFT", UIParent, "LEFT", status.left, 0)
+ else
+ frame:SetPoint("CENTER")
+ end
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local FrameBackdrop = {
+ bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background",
+ edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border",
+ tile = true, tileSize = 32, edgeSize = 32,
+ insets = { left = 8, right = 8, top = 8, bottom = 8 }
+}
+
+local PaneBackdrop = {
+ bgFile = "Interface\\ChatFrame\\ChatFrameBackground",
+ edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
+ tile = true, tileSize = 16, edgeSize = 16,
+ insets = { left = 3, right = 3, top = 5, bottom = 3 }
+}
+
+local function Constructor()
+ local frame = CreateFrame("Frame", nil, UIParent)
+ frame:Hide()
+
+ frame:EnableMouse(true)
+ frame:SetMovable(true)
+ frame:SetResizable(true)
+ frame:SetFrameStrata("FULLSCREEN_DIALOG")
+ frame:SetBackdrop(FrameBackdrop)
+ frame:SetBackdropColor(0, 0, 0, 1)
+ frame:SetMinResize(400, 200)
+ frame:SetToplevel(true)
+ frame:SetScript("OnShow", Frame_OnShow)
+ frame:SetScript("OnHide", Frame_OnClose)
+ frame:SetScript("OnMouseDown", Frame_OnMouseDown)
+
+ local closebutton = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
+ closebutton:SetScript("OnClick", Button_OnClick)
+ closebutton:SetPoint("BOTTOMRIGHT", -27, 17)
+ closebutton:SetHeight(20)
+ closebutton:SetWidth(100)
+ closebutton:SetText(CLOSE)
+
+ local statusbg = CreateFrame("Button", nil, frame)
+ statusbg:SetPoint("BOTTOMLEFT", 15, 15)
+ statusbg:SetPoint("BOTTOMRIGHT", -132, 15)
+ statusbg:SetHeight(24)
+ statusbg:SetBackdrop(PaneBackdrop)
+ statusbg:SetBackdropColor(0.1,0.1,0.1)
+ statusbg:SetBackdropBorderColor(0.4,0.4,0.4)
+ statusbg:SetScript("OnEnter", StatusBar_OnEnter)
+ statusbg:SetScript("OnLeave", StatusBar_OnLeave)
+
+ local statustext = statusbg:CreateFontString(nil, "OVERLAY", "GameFontNormal")
+ statustext:SetPoint("TOPLEFT", 7, -2)
+ statustext:SetPoint("BOTTOMRIGHT", -7, 2)
+ statustext:SetHeight(20)
+ statustext:SetJustifyH("LEFT")
+ statustext:SetText("")
+
+ local titlebg = frame:CreateTexture(nil, "OVERLAY")
+ titlebg:SetTexture(131080) -- Interface\\DialogFrame\\UI-DialogBox-Header
+ titlebg:SetTexCoord(0.31, 0.67, 0, 0.63)
+ titlebg:SetPoint("TOP", 0, 12)
+ titlebg:SetWidth(100)
+ titlebg:SetHeight(40)
+
+ local title = CreateFrame("Frame", nil, frame)
+ title:EnableMouse(true)
+ title:SetScript("OnMouseDown", Title_OnMouseDown)
+ title:SetScript("OnMouseUp", MoverSizer_OnMouseUp)
+ title:SetAllPoints(titlebg)
+
+ local titletext = title:CreateFontString(nil, "OVERLAY", "GameFontNormal")
+ titletext:SetPoint("TOP", titlebg, "TOP", 0, -14)
+
+ local titlebg_l = frame:CreateTexture(nil, "OVERLAY")
+ titlebg_l:SetTexture(131080) -- Interface\\DialogFrame\\UI-DialogBox-Header
+ titlebg_l:SetTexCoord(0.21, 0.31, 0, 0.63)
+ titlebg_l:SetPoint("RIGHT", titlebg, "LEFT")
+ titlebg_l:SetWidth(30)
+ titlebg_l:SetHeight(40)
+
+ local titlebg_r = frame:CreateTexture(nil, "OVERLAY")
+ titlebg_r:SetTexture(131080) -- Interface\\DialogFrame\\UI-DialogBox-Header
+ titlebg_r:SetTexCoord(0.67, 0.77, 0, 0.63)
+ titlebg_r:SetPoint("LEFT", titlebg, "RIGHT")
+ titlebg_r:SetWidth(30)
+ titlebg_r:SetHeight(40)
+
+ local sizer_se = CreateFrame("Frame", nil, frame)
+ sizer_se:SetPoint("BOTTOMRIGHT")
+ sizer_se:SetWidth(25)
+ sizer_se:SetHeight(25)
+ sizer_se:EnableMouse()
+ sizer_se:SetScript("OnMouseDown",SizerSE_OnMouseDown)
+ sizer_se:SetScript("OnMouseUp", MoverSizer_OnMouseUp)
+
+ local line1 = sizer_se:CreateTexture(nil, "BACKGROUND")
+ line1:SetWidth(14)
+ line1:SetHeight(14)
+ line1:SetPoint("BOTTOMRIGHT", -8, 8)
+ line1:SetTexture(137057) -- Interface\\Tooltips\\UI-Tooltip-Border
+ local x = 0.1 * 14/17
+ line1:SetTexCoord(0.05 - x, 0.5, 0.05, 0.5 + x, 0.05, 0.5 - x, 0.5 + x, 0.5)
+
+ local line2 = sizer_se:CreateTexture(nil, "BACKGROUND")
+ line2:SetWidth(8)
+ line2:SetHeight(8)
+ line2:SetPoint("BOTTOMRIGHT", -8, 8)
+ line2:SetTexture(137057) -- Interface\\Tooltips\\UI-Tooltip-Border
+ local x = 0.1 * 8/17
+ line2:SetTexCoord(0.05 - x, 0.5, 0.05, 0.5 + x, 0.05, 0.5 - x, 0.5 + x, 0.5)
+
+ local sizer_s = CreateFrame("Frame", nil, frame)
+ sizer_s:SetPoint("BOTTOMRIGHT", -25, 0)
+ sizer_s:SetPoint("BOTTOMLEFT")
+ sizer_s:SetHeight(25)
+ sizer_s:EnableMouse(true)
+ sizer_s:SetScript("OnMouseDown", SizerS_OnMouseDown)
+ sizer_s:SetScript("OnMouseUp", MoverSizer_OnMouseUp)
+
+ local sizer_e = CreateFrame("Frame", nil, frame)
+ sizer_e:SetPoint("BOTTOMRIGHT", 0, 25)
+ sizer_e:SetPoint("TOPRIGHT")
+ sizer_e:SetWidth(25)
+ sizer_e:EnableMouse(true)
+ sizer_e:SetScript("OnMouseDown", SizerE_OnMouseDown)
+ sizer_e:SetScript("OnMouseUp", MoverSizer_OnMouseUp)
+
+ --Container Support
+ local content = CreateFrame("Frame", nil, frame)
+ content:SetPoint("TOPLEFT", 17, -27)
+ content:SetPoint("BOTTOMRIGHT", -17, 40)
+
+ local widget = {
+ localstatus = {},
+ titletext = titletext,
+ statustext = statustext,
+ titlebg = titlebg,
+ sizer_se = sizer_se,
+ sizer_s = sizer_s,
+ sizer_e = sizer_e,
+ content = content,
+ frame = frame,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+ closebutton.obj, statusbg.obj = widget, widget
+
+ return AceGUI:RegisterAsContainer(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIContainer-InlineGroup.lua b/Libs/AceGUI-3.0/widgets/AceGUIContainer-InlineGroup.lua
new file mode 100644
index 00000000..f3db7d65
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIContainer-InlineGroup.lua
@@ -0,0 +1,103 @@
+--[[-----------------------------------------------------------------------------
+InlineGroup Container
+Simple container widget that creates a visible "box" with an optional title.
+-------------------------------------------------------------------------------]]
+local Type, Version = "InlineGroup", 21
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local pairs = pairs
+
+-- WoW APIs
+local CreateFrame, UIParent = CreateFrame, UIParent
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self:SetWidth(300)
+ self:SetHeight(100)
+ self:SetTitle("")
+ end,
+
+ -- ["OnRelease"] = nil,
+
+ ["SetTitle"] = function(self,title)
+ self.titletext:SetText(title)
+ end,
+
+
+ ["LayoutFinished"] = function(self, width, height)
+ if self.noAutoHeight then return end
+ self:SetHeight((height or 0) + 40)
+ end,
+
+ ["OnWidthSet"] = function(self, width)
+ local content = self.content
+ local contentwidth = width - 20
+ if contentwidth < 0 then
+ contentwidth = 0
+ end
+ content:SetWidth(contentwidth)
+ content.width = contentwidth
+ end,
+
+ ["OnHeightSet"] = function(self, height)
+ local content = self.content
+ local contentheight = height - 20
+ if contentheight < 0 then
+ contentheight = 0
+ end
+ content:SetHeight(contentheight)
+ content.height = contentheight
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local PaneBackdrop = {
+ bgFile = "Interface\\ChatFrame\\ChatFrameBackground",
+ edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
+ tile = true, tileSize = 16, edgeSize = 16,
+ insets = { left = 3, right = 3, top = 5, bottom = 3 }
+}
+
+local function Constructor()
+ local frame = CreateFrame("Frame", nil, UIParent)
+ frame:SetFrameStrata("FULLSCREEN_DIALOG")
+
+ local titletext = frame:CreateFontString(nil, "OVERLAY", "GameFontNormal")
+ titletext:SetPoint("TOPLEFT", 14, 0)
+ titletext:SetPoint("TOPRIGHT", -14, 0)
+ titletext:SetJustifyH("LEFT")
+ titletext:SetHeight(18)
+
+ local border = CreateFrame("Frame", nil, frame)
+ border:SetPoint("TOPLEFT", 0, -17)
+ border:SetPoint("BOTTOMRIGHT", -1, 3)
+ border:SetBackdrop(PaneBackdrop)
+ border:SetBackdropColor(0.1, 0.1, 0.1, 0.5)
+ border:SetBackdropBorderColor(0.4, 0.4, 0.4)
+
+ --Container Support
+ local content = CreateFrame("Frame", nil, border)
+ content:SetPoint("TOPLEFT", 10, -10)
+ content:SetPoint("BOTTOMRIGHT", -10, 10)
+
+ local widget = {
+ frame = frame,
+ content = content,
+ titletext = titletext,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+
+ return AceGUI:RegisterAsContainer(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIContainer-ScrollFrame.lua b/Libs/AceGUI-3.0/widgets/AceGUIContainer-ScrollFrame.lua
new file mode 100644
index 00000000..d110d035
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIContainer-ScrollFrame.lua
@@ -0,0 +1,215 @@
+--[[-----------------------------------------------------------------------------
+ScrollFrame Container
+Plain container that scrolls its content and doesn't grow in height.
+-------------------------------------------------------------------------------]]
+local Type, Version = "ScrollFrame", 26
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local pairs, assert, type = pairs, assert, type
+local min, max, floor = math.min, math.max, math.floor
+
+-- WoW APIs
+local CreateFrame, UIParent = CreateFrame, UIParent
+
+--[[-----------------------------------------------------------------------------
+Support functions
+-------------------------------------------------------------------------------]]
+local function FixScrollOnUpdate(frame)
+ frame:SetScript("OnUpdate", nil)
+ frame.obj:FixScroll()
+end
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+local function ScrollFrame_OnMouseWheel(frame, value)
+ frame.obj:MoveScroll(value)
+end
+
+local function ScrollFrame_OnSizeChanged(frame)
+ frame:SetScript("OnUpdate", FixScrollOnUpdate)
+end
+
+local function ScrollBar_OnScrollValueChanged(frame, value)
+ frame.obj:SetScroll(value)
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self:SetScroll(0)
+ self.scrollframe:SetScript("OnUpdate", FixScrollOnUpdate)
+ end,
+
+ ["OnRelease"] = function(self)
+ self.status = nil
+ for k in pairs(self.localstatus) do
+ self.localstatus[k] = nil
+ end
+ self.scrollframe:SetPoint("BOTTOMRIGHT")
+ self.scrollbar:Hide()
+ self.scrollBarShown = nil
+ self.content.height, self.content.width, self.content.original_width = nil, nil, nil
+ end,
+
+ ["SetScroll"] = function(self, value)
+ local status = self.status or self.localstatus
+ local viewheight = self.scrollframe:GetHeight()
+ local height = self.content:GetHeight()
+ local offset
+
+ if viewheight > height then
+ offset = 0
+ else
+ offset = floor((height - viewheight) / 1000.0 * value)
+ end
+ self.content:ClearAllPoints()
+ self.content:SetPoint("TOPLEFT", 0, offset)
+ self.content:SetPoint("TOPRIGHT", 0, offset)
+ status.offset = offset
+ status.scrollvalue = value
+ end,
+
+ ["MoveScroll"] = function(self, value)
+ local status = self.status or self.localstatus
+ local height, viewheight = self.scrollframe:GetHeight(), self.content:GetHeight()
+
+ if self.scrollBarShown then
+ local diff = height - viewheight
+ local delta = 1
+ if value < 0 then
+ delta = -1
+ end
+ self.scrollbar:SetValue(min(max(status.scrollvalue + delta*(1000/(diff/45)),0), 1000))
+ end
+ end,
+
+ ["FixScroll"] = function(self)
+ if self.updateLock then return end
+ self.updateLock = true
+ local status = self.status or self.localstatus
+ local height, viewheight = self.scrollframe:GetHeight(), self.content:GetHeight()
+ local offset = status.offset or 0
+ -- Give us a margin of error of 2 pixels to stop some conditions that i would blame on floating point inaccuracys
+ -- No-one is going to miss 2 pixels at the bottom of the frame, anyhow!
+ if viewheight < height + 2 then
+ if self.scrollBarShown then
+ self.scrollBarShown = nil
+ self.scrollbar:Hide()
+ self.scrollbar:SetValue(0)
+ self.scrollframe:SetPoint("BOTTOMRIGHT")
+ if self.content.original_width then
+ self.content.width = self.content.original_width
+ end
+ self:DoLayout()
+ end
+ else
+ if not self.scrollBarShown then
+ self.scrollBarShown = true
+ self.scrollbar:Show()
+ self.scrollframe:SetPoint("BOTTOMRIGHT", -20, 0)
+ if self.content.original_width then
+ self.content.width = self.content.original_width - 20
+ end
+ self:DoLayout()
+ end
+ local value = (offset / (viewheight - height) * 1000)
+ if value > 1000 then value = 1000 end
+ self.scrollbar:SetValue(value)
+ self:SetScroll(value)
+ if value < 1000 then
+ self.content:ClearAllPoints()
+ self.content:SetPoint("TOPLEFT", 0, offset)
+ self.content:SetPoint("TOPRIGHT", 0, offset)
+ status.offset = offset
+ end
+ end
+ self.updateLock = nil
+ end,
+
+ ["LayoutFinished"] = function(self, width, height)
+ self.content:SetHeight(height or 0 + 20)
+
+ -- update the scrollframe
+ self:FixScroll()
+
+ -- schedule another update when everything has "settled"
+ self.scrollframe:SetScript("OnUpdate", FixScrollOnUpdate)
+ end,
+
+ ["SetStatusTable"] = function(self, status)
+ assert(type(status) == "table")
+ self.status = status
+ if not status.scrollvalue then
+ status.scrollvalue = 0
+ end
+ end,
+
+ ["OnWidthSet"] = function(self, width)
+ local content = self.content
+ content.width = width - (self.scrollBarShown and 20 or 0)
+ content.original_width = width
+ end,
+
+ ["OnHeightSet"] = function(self, height)
+ local content = self.content
+ content.height = height
+ end
+}
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local function Constructor()
+ local frame = CreateFrame("Frame", nil, UIParent)
+ local num = AceGUI:GetNextWidgetNum(Type)
+
+ local scrollframe = CreateFrame("ScrollFrame", nil, frame)
+ scrollframe:SetPoint("TOPLEFT")
+ scrollframe:SetPoint("BOTTOMRIGHT")
+ scrollframe:EnableMouseWheel(true)
+ scrollframe:SetScript("OnMouseWheel", ScrollFrame_OnMouseWheel)
+ scrollframe:SetScript("OnSizeChanged", ScrollFrame_OnSizeChanged)
+
+ local scrollbar = CreateFrame("Slider", ("AceConfigDialogScrollFrame%dScrollBar"):format(num), scrollframe, "UIPanelScrollBarTemplate")
+ scrollbar:SetPoint("TOPLEFT", scrollframe, "TOPRIGHT", 4, -16)
+ scrollbar:SetPoint("BOTTOMLEFT", scrollframe, "BOTTOMRIGHT", 4, 16)
+ scrollbar:SetMinMaxValues(0, 1000)
+ scrollbar:SetValueStep(1)
+ scrollbar:SetValue(0)
+ scrollbar:SetWidth(16)
+ scrollbar:Hide()
+ -- set the script as the last step, so it doesn't fire yet
+ scrollbar:SetScript("OnValueChanged", ScrollBar_OnScrollValueChanged)
+
+ local scrollbg = scrollbar:CreateTexture(nil, "BACKGROUND")
+ scrollbg:SetAllPoints(scrollbar)
+ scrollbg:SetColorTexture(0, 0, 0, 0.4)
+
+ --Container Support
+ local content = CreateFrame("Frame", nil, scrollframe)
+ content:SetPoint("TOPLEFT")
+ content:SetPoint("TOPRIGHT")
+ content:SetHeight(400)
+ scrollframe:SetScrollChild(content)
+
+ local widget = {
+ localstatus = { scrollvalue = 0 },
+ scrollframe = scrollframe,
+ scrollbar = scrollbar,
+ content = content,
+ frame = frame,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+ scrollframe.obj, scrollbar.obj = widget, widget
+
+ return AceGUI:RegisterAsContainer(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIContainer-SimpleGroup.lua b/Libs/AceGUI-3.0/widgets/AceGUIContainer-SimpleGroup.lua
new file mode 100644
index 00000000..57512c38
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIContainer-SimpleGroup.lua
@@ -0,0 +1,69 @@
+--[[-----------------------------------------------------------------------------
+SimpleGroup Container
+Simple container widget that just groups widgets.
+-------------------------------------------------------------------------------]]
+local Type, Version = "SimpleGroup", 20
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local pairs = pairs
+
+-- WoW APIs
+local CreateFrame, UIParent = CreateFrame, UIParent
+
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self:SetWidth(300)
+ self:SetHeight(100)
+ end,
+
+ -- ["OnRelease"] = nil,
+
+ ["LayoutFinished"] = function(self, width, height)
+ if self.noAutoHeight then return end
+ self:SetHeight(height or 0)
+ end,
+
+ ["OnWidthSet"] = function(self, width)
+ local content = self.content
+ content:SetWidth(width)
+ content.width = width
+ end,
+
+ ["OnHeightSet"] = function(self, height)
+ local content = self.content
+ content:SetHeight(height)
+ content.height = height
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local function Constructor()
+ local frame = CreateFrame("Frame", nil, UIParent)
+ frame:SetFrameStrata("FULLSCREEN_DIALOG")
+
+ --Container Support
+ local content = CreateFrame("Frame", nil, frame)
+ content:SetPoint("TOPLEFT")
+ content:SetPoint("BOTTOMRIGHT")
+
+ local widget = {
+ frame = frame,
+ content = content,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+
+ return AceGUI:RegisterAsContainer(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIContainer-TabGroup.lua b/Libs/AceGUI-3.0/widgets/AceGUIContainer-TabGroup.lua
new file mode 100644
index 00000000..053e27dc
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIContainer-TabGroup.lua
@@ -0,0 +1,349 @@
+--[[-----------------------------------------------------------------------------
+TabGroup Container
+Container that uses tabs on top to switch between groups.
+-------------------------------------------------------------------------------]]
+local Type, Version = "TabGroup", 36
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local pairs, ipairs, assert, type, wipe = pairs, ipairs, assert, type, wipe
+
+-- WoW APIs
+local PlaySound = PlaySound
+local CreateFrame, UIParent = CreateFrame, UIParent
+local _G = _G
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: PanelTemplates_TabResize, PanelTemplates_SetDisabledTabState, PanelTemplates_SelectTab, PanelTemplates_DeselectTab
+
+-- local upvalue storage used by BuildTabs
+local widths = {}
+local rowwidths = {}
+local rowends = {}
+
+--[[-----------------------------------------------------------------------------
+Support functions
+-------------------------------------------------------------------------------]]
+local function UpdateTabLook(frame)
+ if frame.disabled then
+ PanelTemplates_SetDisabledTabState(frame)
+ elseif frame.selected then
+ PanelTemplates_SelectTab(frame)
+ else
+ PanelTemplates_DeselectTab(frame)
+ end
+end
+
+local function Tab_SetText(frame, text)
+ frame:_SetText(text)
+ local width = frame.obj.frame.width or frame.obj.frame:GetWidth() or 0
+ PanelTemplates_TabResize(frame, 0, nil, nil, width, frame:GetFontString():GetStringWidth())
+end
+
+local function Tab_SetSelected(frame, selected)
+ frame.selected = selected
+ UpdateTabLook(frame)
+end
+
+local function Tab_SetDisabled(frame, disabled)
+ frame.disabled = disabled
+ UpdateTabLook(frame)
+end
+
+local function BuildTabsOnUpdate(frame)
+ local self = frame.obj
+ self:BuildTabs()
+ frame:SetScript("OnUpdate", nil)
+end
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+local function Tab_OnClick(frame)
+ if not (frame.selected or frame.disabled) then
+ PlaySound(841) -- SOUNDKIT.IG_CHARACTER_INFO_TAB
+ frame.obj:SelectTab(frame.value)
+ end
+end
+
+local function Tab_OnEnter(frame)
+ local self = frame.obj
+ self:Fire("OnTabEnter", self.tabs[frame.id].value, frame)
+end
+
+local function Tab_OnLeave(frame)
+ local self = frame.obj
+ self:Fire("OnTabLeave", self.tabs[frame.id].value, frame)
+end
+
+local function Tab_OnShow(frame)
+ _G[frame:GetName().."HighlightTexture"]:SetWidth(frame:GetTextWidth() + 30)
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self:SetTitle()
+ end,
+
+ ["OnRelease"] = function(self)
+ self.status = nil
+ for k in pairs(self.localstatus) do
+ self.localstatus[k] = nil
+ end
+ self.tablist = nil
+ for _, tab in pairs(self.tabs) do
+ tab:Hide()
+ end
+ end,
+
+ ["CreateTab"] = function(self, id)
+ local tabname = ("AceGUITabGroup%dTab%d"):format(self.num, id)
+ local tab = CreateFrame("Button", tabname, self.border, "OptionsFrameTabButtonTemplate")
+ tab.obj = self
+ tab.id = id
+
+ tab.text = _G[tabname .. "Text"]
+ tab.text:ClearAllPoints()
+ tab.text:SetPoint("LEFT", 14, -3)
+ tab.text:SetPoint("RIGHT", -12, -3)
+
+ tab:SetScript("OnClick", Tab_OnClick)
+ tab:SetScript("OnEnter", Tab_OnEnter)
+ tab:SetScript("OnLeave", Tab_OnLeave)
+ tab:SetScript("OnShow", Tab_OnShow)
+
+ tab._SetText = tab.SetText
+ tab.SetText = Tab_SetText
+ tab.SetSelected = Tab_SetSelected
+ tab.SetDisabled = Tab_SetDisabled
+
+ return tab
+ end,
+
+ ["SetTitle"] = function(self, text)
+ self.titletext:SetText(text or "")
+ if text and text ~= "" then
+ self.alignoffset = 25
+ else
+ self.alignoffset = 18
+ end
+ self:BuildTabs()
+ end,
+
+ ["SetStatusTable"] = function(self, status)
+ assert(type(status) == "table")
+ self.status = status
+ end,
+
+ ["SelectTab"] = function(self, value)
+ local status = self.status or self.localstatus
+ local found
+ for i, v in ipairs(self.tabs) do
+ if v.value == value then
+ v:SetSelected(true)
+ found = true
+ else
+ v:SetSelected(false)
+ end
+ end
+ status.selected = value
+ if found then
+ self:Fire("OnGroupSelected",value)
+ end
+ end,
+
+ ["SetTabs"] = function(self, tabs)
+ self.tablist = tabs
+ self:BuildTabs()
+ end,
+
+
+ ["BuildTabs"] = function(self)
+ local hastitle = (self.titletext:GetText() and self.titletext:GetText() ~= "")
+ local tablist = self.tablist
+ local tabs = self.tabs
+
+ if not tablist then return end
+
+ local width = self.frame.width or self.frame:GetWidth() or 0
+
+ wipe(widths)
+ wipe(rowwidths)
+ wipe(rowends)
+
+ --Place Text into tabs and get thier initial width
+ for i, v in ipairs(tablist) do
+ local tab = tabs[i]
+ if not tab then
+ tab = self:CreateTab(i)
+ tabs[i] = tab
+ end
+
+ tab:Show()
+ tab:SetText(v.text)
+ tab:SetDisabled(v.disabled)
+ tab.value = v.value
+
+ widths[i] = tab:GetWidth() - 6 --tabs are anchored 10 pixels from the right side of the previous one to reduce spacing, but add a fixed 4px padding for the text
+ end
+
+ for i = (#tablist)+1, #tabs, 1 do
+ tabs[i]:Hide()
+ end
+
+ --First pass, find the minimum number of rows needed to hold all tabs and the initial tab layout
+ local numtabs = #tablist
+ local numrows = 1
+ local usedwidth = 0
+
+ for i = 1, #tablist do
+ --If this is not the first tab of a row and there isn't room for it
+ if usedwidth ~= 0 and (width - usedwidth - widths[i]) < 0 then
+ rowwidths[numrows] = usedwidth + 10 --first tab in each row takes up an extra 10px
+ rowends[numrows] = i - 1
+ numrows = numrows + 1
+ usedwidth = 0
+ end
+ usedwidth = usedwidth + widths[i]
+ end
+ rowwidths[numrows] = usedwidth + 10 --first tab in each row takes up an extra 10px
+ rowends[numrows] = #tablist
+
+ --Fix for single tabs being left on the last row, move a tab from the row above if applicable
+ if numrows > 1 then
+ --if the last row has only one tab
+ if rowends[numrows-1] == numtabs-1 then
+ --if there are more than 2 tabs in the 2nd last row
+ if (numrows == 2 and rowends[numrows-1] > 2) or (rowends[numrows] - rowends[numrows-1] > 2) then
+ --move 1 tab from the second last row to the last, if there is enough space
+ if (rowwidths[numrows] + widths[numtabs-1]) <= width then
+ rowends[numrows-1] = rowends[numrows-1] - 1
+ rowwidths[numrows] = rowwidths[numrows] + widths[numtabs-1]
+ rowwidths[numrows-1] = rowwidths[numrows-1] - widths[numtabs-1]
+ end
+ end
+ end
+ end
+
+ --anchor the rows as defined and resize tabs to fill thier row
+ local starttab = 1
+ for row, endtab in ipairs(rowends) do
+ local first = true
+ for tabno = starttab, endtab do
+ local tab = tabs[tabno]
+ tab:ClearAllPoints()
+ if first then
+ tab:SetPoint("TOPLEFT", self.frame, "TOPLEFT", 0, -(hastitle and 14 or 7)-(row-1)*20 )
+ first = false
+ else
+ tab:SetPoint("LEFT", tabs[tabno-1], "RIGHT", -10, 0)
+ end
+ end
+
+ -- equal padding for each tab to fill the available width,
+ -- if the used space is above 75% already
+ -- the 18 pixel is the typical width of a scrollbar, so we can have a tab group inside a scrolling frame,
+ -- and not have the tabs jump around funny when switching between tabs that need scrolling and those that don't
+ local padding = 0
+ if not (numrows == 1 and rowwidths[1] < width*0.75 - 18) then
+ padding = (width - rowwidths[row]) / (endtab - starttab+1)
+ end
+
+ for i = starttab, endtab do
+ PanelTemplates_TabResize(tabs[i], padding + 4, nil, nil, width, tabs[i]:GetFontString():GetStringWidth())
+ end
+ starttab = endtab + 1
+ end
+
+ self.borderoffset = (hastitle and 17 or 10)+((numrows)*20)
+ self.border:SetPoint("TOPLEFT", 1, -self.borderoffset)
+ end,
+
+ ["OnWidthSet"] = function(self, width)
+ local content = self.content
+ local contentwidth = width - 60
+ if contentwidth < 0 then
+ contentwidth = 0
+ end
+ content:SetWidth(contentwidth)
+ content.width = contentwidth
+ self:BuildTabs(self)
+ self.frame:SetScript("OnUpdate", BuildTabsOnUpdate)
+ end,
+
+ ["OnHeightSet"] = function(self, height)
+ local content = self.content
+ local contentheight = height - (self.borderoffset + 23)
+ if contentheight < 0 then
+ contentheight = 0
+ end
+ content:SetHeight(contentheight)
+ content.height = contentheight
+ end,
+
+ ["LayoutFinished"] = function(self, width, height)
+ if self.noAutoHeight then return end
+ self:SetHeight((height or 0) + (self.borderoffset + 23))
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local PaneBackdrop = {
+ bgFile = "Interface\\ChatFrame\\ChatFrameBackground",
+ edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
+ tile = true, tileSize = 16, edgeSize = 16,
+ insets = { left = 3, right = 3, top = 5, bottom = 3 }
+}
+
+local function Constructor()
+ local num = AceGUI:GetNextWidgetNum(Type)
+ local frame = CreateFrame("Frame",nil,UIParent)
+ frame:SetHeight(100)
+ frame:SetWidth(100)
+ frame:SetFrameStrata("FULLSCREEN_DIALOG")
+
+ local titletext = frame:CreateFontString(nil,"OVERLAY","GameFontNormal")
+ titletext:SetPoint("TOPLEFT", 14, 0)
+ titletext:SetPoint("TOPRIGHT", -14, 0)
+ titletext:SetJustifyH("LEFT")
+ titletext:SetHeight(18)
+ titletext:SetText("")
+
+ local border = CreateFrame("Frame", nil, frame)
+ border:SetPoint("TOPLEFT", 1, -27)
+ border:SetPoint("BOTTOMRIGHT", -1, 3)
+ border:SetBackdrop(PaneBackdrop)
+ border:SetBackdropColor(0.1, 0.1, 0.1, 0.5)
+ border:SetBackdropBorderColor(0.4, 0.4, 0.4)
+
+ local content = CreateFrame("Frame", nil, border)
+ content:SetPoint("TOPLEFT", 10, -7)
+ content:SetPoint("BOTTOMRIGHT", -10, 7)
+
+ local widget = {
+ num = num,
+ frame = frame,
+ localstatus = {},
+ alignoffset = 18,
+ titletext = titletext,
+ border = border,
+ borderoffset = 27,
+ tabs = {},
+ content = content,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+
+ return AceGUI:RegisterAsContainer(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua b/Libs/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua
new file mode 100644
index 00000000..eb94c04a
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua
@@ -0,0 +1,718 @@
+--[[-----------------------------------------------------------------------------
+TreeGroup Container
+Container that uses a tree control to switch between groups.
+-------------------------------------------------------------------------------]]
+local Type, Version = "TreeGroup", 44
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+local WoW80 = select(4, GetBuildInfo()) >= 80000
+
+-- Lua APIs
+local next, pairs, ipairs, assert, type = next, pairs, ipairs, assert, type
+local math_min, math_max, floor = math.min, math.max, floor
+local select, tremove, unpack, tconcat = select, table.remove, unpack, table.concat
+
+-- WoW APIs
+local CreateFrame, UIParent = CreateFrame, UIParent
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: FONT_COLOR_CODE_CLOSE
+
+-- Recycling functions
+local new, del
+do
+ local pool = setmetatable({},{__mode='k'})
+ function new()
+ local t = next(pool)
+ if t then
+ pool[t] = nil
+ return t
+ else
+ return {}
+ end
+ end
+ function del(t)
+ for k in pairs(t) do
+ t[k] = nil
+ end
+ pool[t] = true
+ end
+end
+
+local DEFAULT_TREE_WIDTH = 175
+local DEFAULT_TREE_SIZABLE = true
+
+--[[-----------------------------------------------------------------------------
+Support functions
+-------------------------------------------------------------------------------]]
+local function GetButtonUniqueValue(line)
+ local parent = line.parent
+ if parent and parent.value then
+ return GetButtonUniqueValue(parent).."\001"..line.value
+ else
+ return line.value
+ end
+end
+
+local function UpdateButton(button, treeline, selected, canExpand, isExpanded)
+ local self = button.obj
+ local toggle = button.toggle
+ local text = treeline.text or ""
+ local icon = treeline.icon
+ local iconCoords = treeline.iconCoords
+ local level = treeline.level
+ local value = treeline.value
+ local uniquevalue = treeline.uniquevalue
+ local disabled = treeline.disabled
+
+ button.treeline = treeline
+ button.value = value
+ button.uniquevalue = uniquevalue
+ if selected then
+ button:LockHighlight()
+ button.selected = true
+ else
+ button:UnlockHighlight()
+ button.selected = false
+ end
+ button.level = level
+ if ( level == 1 ) then
+ button:SetNormalFontObject("GameFontNormal")
+ button:SetHighlightFontObject("GameFontHighlight")
+ button.text:SetPoint("LEFT", (icon and 16 or 0) + 8, 2)
+ else
+ button:SetNormalFontObject("GameFontHighlightSmall")
+ button:SetHighlightFontObject("GameFontHighlightSmall")
+ button.text:SetPoint("LEFT", (icon and 16 or 0) + 8 * level, 2)
+ end
+
+ if disabled then
+ button:EnableMouse(false)
+ button.text:SetText("|cff808080"..text..FONT_COLOR_CODE_CLOSE)
+ else
+ button.text:SetText(text)
+ button:EnableMouse(true)
+ end
+
+ if icon then
+ button.icon:SetTexture(icon)
+ button.icon:SetPoint("LEFT", 8 * level, (level == 1) and 0 or 1)
+ else
+ button.icon:SetTexture(nil)
+ end
+
+ if iconCoords then
+ button.icon:SetTexCoord(unpack(iconCoords))
+ else
+ button.icon:SetTexCoord(0, 1, 0, 1)
+ end
+
+ if canExpand then
+ if not isExpanded then
+ toggle:SetNormalTexture(130838) -- Interface\\Buttons\\UI-PlusButton-UP
+ toggle:SetPushedTexture(130836) -- Interface\\Buttons\\UI-PlusButton-DOWN
+ else
+ toggle:SetNormalTexture(130821) -- Interface\\Buttons\\UI-MinusButton-UP
+ toggle:SetPushedTexture(130820) -- Interface\\Buttons\\UI-MinusButton-DOWN
+ end
+ toggle:Show()
+ else
+ toggle:Hide()
+ end
+end
+
+local function ShouldDisplayLevel(tree)
+ local result = false
+ for k, v in ipairs(tree) do
+ if v.children == nil and v.visible ~= false then
+ result = true
+ elseif v.children then
+ result = result or ShouldDisplayLevel(v.children)
+ end
+ if result then return result end
+ end
+ return false
+end
+
+local function addLine(self, v, tree, level, parent)
+ local line = new()
+ line.value = v.value
+ line.text = v.text
+ line.icon = v.icon
+ line.iconCoords = v.iconCoords
+ line.disabled = v.disabled
+ line.tree = tree
+ line.level = level
+ line.parent = parent
+ line.visible = v.visible
+ line.uniquevalue = GetButtonUniqueValue(line)
+ if v.children then
+ line.hasChildren = true
+ else
+ line.hasChildren = nil
+ end
+ self.lines[#self.lines+1] = line
+ return line
+end
+
+--fire an update after one frame to catch the treeframes height
+local function FirstFrameUpdate(frame)
+ local self = frame.obj
+ frame:SetScript("OnUpdate", nil)
+ self:RefreshTree(nil, true)
+end
+
+local function BuildUniqueValue(...)
+ local n = select('#', ...)
+ if n == 1 then
+ return ...
+ else
+ return (...).."\001"..BuildUniqueValue(select(2,...))
+ end
+end
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+local function Expand_OnClick(frame)
+ local button = frame.button
+ local self = button.obj
+ local status = (self.status or self.localstatus).groups
+ status[button.uniquevalue] = not status[button.uniquevalue]
+ self:RefreshTree()
+end
+
+local function Button_OnClick(frame)
+ local self = frame.obj
+ self:Fire("OnClick", frame.uniquevalue, frame.selected)
+ if not frame.selected then
+ self:SetSelected(frame.uniquevalue)
+ frame.selected = true
+ frame:LockHighlight()
+ self:RefreshTree()
+ end
+ AceGUI:ClearFocus()
+end
+
+local function Button_OnDoubleClick(button)
+ local self = button.obj
+ local status = (self.status or self.localstatus).groups
+ status[button.uniquevalue] = not status[button.uniquevalue]
+ self:RefreshTree()
+end
+
+local function Button_OnEnter(frame)
+ local self = frame.obj
+ self:Fire("OnButtonEnter", frame.uniquevalue, frame)
+
+ if self.enabletooltips then
+ local tooltip = AceGUI.tooltip
+ tooltip:SetOwner(frame, "ANCHOR_NONE")
+ tooltip:ClearAllPoints()
+ tooltip:SetPoint("LEFT",frame,"RIGHT")
+ tooltip:SetText(frame.text:GetText() or "", 1, .82, 0, true)
+
+ tooltip:Show()
+ end
+end
+
+local function Button_OnLeave(frame)
+ local self = frame.obj
+ self:Fire("OnButtonLeave", frame.uniquevalue, frame)
+
+ if self.enabletooltips then
+ AceGUI.tooltip:Hide()
+ end
+end
+
+local function OnScrollValueChanged(frame, value)
+ if frame.obj.noupdate then return end
+ local self = frame.obj
+ local status = self.status or self.localstatus
+ status.scrollvalue = floor(value + 0.5)
+ self:RefreshTree()
+ AceGUI:ClearFocus()
+end
+
+local function Tree_OnSizeChanged(frame)
+ frame.obj:RefreshTree()
+end
+
+local function Tree_OnMouseWheel(frame, delta)
+ local self = frame.obj
+ if self.showscroll then
+ local scrollbar = self.scrollbar
+ local min, max = scrollbar:GetMinMaxValues()
+ local value = scrollbar:GetValue()
+ local newvalue = math_min(max,math_max(min,value - delta))
+ if value ~= newvalue then
+ scrollbar:SetValue(newvalue)
+ end
+ end
+end
+
+local function Dragger_OnLeave(frame)
+ frame:SetBackdropColor(1, 1, 1, 0)
+end
+
+local function Dragger_OnEnter(frame)
+ frame:SetBackdropColor(1, 1, 1, 0.8)
+end
+
+local function Dragger_OnMouseDown(frame)
+ local treeframe = frame:GetParent()
+ treeframe:StartSizing("RIGHT")
+end
+
+local function Dragger_OnMouseUp(frame)
+ local treeframe = frame:GetParent()
+ local self = treeframe.obj
+ local treeframeParent = treeframe:GetParent()
+ treeframe:StopMovingOrSizing()
+ --treeframe:SetScript("OnUpdate", nil)
+ treeframe:SetUserPlaced(false)
+ --Without this :GetHeight will get stuck on the current height, causing the tree contents to not resize
+ treeframe:SetHeight(0)
+ treeframe:ClearAllPoints()
+ treeframe:SetPoint("TOPLEFT", treeframeParent, "TOPLEFT",0,0)
+ treeframe:SetPoint("BOTTOMLEFT", treeframeParent, "BOTTOMLEFT",0,0)
+
+ local status = self.status or self.localstatus
+ status.treewidth = treeframe:GetWidth()
+
+ treeframe.obj:Fire("OnTreeResize",treeframe:GetWidth())
+ -- recalculate the content width
+ treeframe.obj:OnWidthSet(status.fullwidth)
+ -- update the layout of the content
+ treeframe.obj:DoLayout()
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self:SetTreeWidth(DEFAULT_TREE_WIDTH, DEFAULT_TREE_SIZABLE)
+ self:EnableButtonTooltips(true)
+ self.frame:SetScript("OnUpdate", FirstFrameUpdate)
+ end,
+
+ ["OnRelease"] = function(self)
+ self.status = nil
+ self.tree = nil
+ self.frame:SetScript("OnUpdate", nil)
+ for k, v in pairs(self.localstatus) do
+ if k == "groups" then
+ for k2 in pairs(v) do
+ v[k2] = nil
+ end
+ else
+ self.localstatus[k] = nil
+ end
+ end
+ self.localstatus.scrollvalue = 0
+ self.localstatus.treewidth = DEFAULT_TREE_WIDTH
+ self.localstatus.treesizable = DEFAULT_TREE_SIZABLE
+ end,
+
+ ["EnableButtonTooltips"] = function(self, enable)
+ self.enabletooltips = enable
+ end,
+
+ ["CreateButton"] = function(self)
+ local num = AceGUI:GetNextWidgetNum("TreeGroupButton")
+ local button = CreateFrame("Button", ("AceGUI30TreeButton%d"):format(num), self.treeframe, "OptionsListButtonTemplate")
+ button.obj = self
+
+ local icon = button:CreateTexture(nil, "OVERLAY")
+ icon:SetWidth(14)
+ icon:SetHeight(14)
+ button.icon = icon
+
+ button:SetScript("OnClick",Button_OnClick)
+ button:SetScript("OnDoubleClick", Button_OnDoubleClick)
+ button:SetScript("OnEnter",Button_OnEnter)
+ button:SetScript("OnLeave",Button_OnLeave)
+
+ button.toggle.button = button
+ button.toggle:SetScript("OnClick",Expand_OnClick)
+
+ button.text:SetHeight(14) -- Prevents text wrapping
+
+ return button
+ end,
+
+ ["SetStatusTable"] = function(self, status)
+ assert(type(status) == "table")
+ self.status = status
+ if not status.groups then
+ status.groups = {}
+ end
+ if not status.scrollvalue then
+ status.scrollvalue = 0
+ end
+ if not status.treewidth then
+ status.treewidth = DEFAULT_TREE_WIDTH
+ end
+ if status.treesizable == nil then
+ status.treesizable = DEFAULT_TREE_SIZABLE
+ end
+ self:SetTreeWidth(status.treewidth,status.treesizable)
+ self:RefreshTree()
+ end,
+
+ --sets the tree to be displayed
+ ["SetTree"] = function(self, tree, filter)
+ self.filter = filter
+ if tree then
+ assert(type(tree) == "table")
+ end
+ self.tree = tree
+ self:RefreshTree()
+ end,
+
+ ["BuildLevel"] = function(self, tree, level, parent)
+ local groups = (self.status or self.localstatus).groups
+
+ for i, v in ipairs(tree) do
+ if v.children then
+ if not self.filter or ShouldDisplayLevel(v.children) then
+ local line = addLine(self, v, tree, level, parent)
+ if groups[line.uniquevalue] then
+ self:BuildLevel(v.children, level+1, line)
+ end
+ end
+ elseif v.visible ~= false or not self.filter then
+ addLine(self, v, tree, level, parent)
+ end
+ end
+ end,
+
+ ["RefreshTree"] = function(self,scrollToSelection,fromOnUpdate)
+ local buttons = self.buttons
+ local lines = self.lines
+
+ for i, v in ipairs(buttons) do
+ v:Hide()
+ end
+ while lines[1] do
+ local t = tremove(lines)
+ for k in pairs(t) do
+ t[k] = nil
+ end
+ del(t)
+ end
+
+ if not self.tree then return end
+ --Build the list of visible entries from the tree and status tables
+ local status = self.status or self.localstatus
+ local groupstatus = status.groups
+ local tree = self.tree
+
+ local treeframe = self.treeframe
+
+ status.scrollToSelection = status.scrollToSelection or scrollToSelection -- needs to be cached in case the control hasn't been drawn yet (code bails out below)
+
+ self:BuildLevel(tree, 1)
+
+ local numlines = #lines
+
+ local maxlines = (floor(((self.treeframe:GetHeight()or 0) - 20 ) / 18))
+ if maxlines <= 0 then return end
+
+ -- workaround for lag spikes on WoW 8.0
+ if WoW80 and self.frame:GetParent() == UIParent and not fromOnUpdate then
+ self.frame:SetScript("OnUpdate", FirstFrameUpdate)
+ return
+ end
+
+ local first, last
+
+ scrollToSelection = status.scrollToSelection
+ status.scrollToSelection = nil
+
+ if numlines <= maxlines then
+ --the whole tree fits in the frame
+ status.scrollvalue = 0
+ self:ShowScroll(false)
+ first, last = 1, numlines
+ else
+ self:ShowScroll(true)
+ --scrolling will be needed
+ self.noupdate = true
+ self.scrollbar:SetMinMaxValues(0, numlines - maxlines)
+ --check if we are scrolled down too far
+ if numlines - status.scrollvalue < maxlines then
+ status.scrollvalue = numlines - maxlines
+ end
+ self.noupdate = nil
+ first, last = status.scrollvalue+1, status.scrollvalue + maxlines
+ --show selection?
+ if scrollToSelection and status.selected then
+ local show
+ for i,line in ipairs(lines) do -- find the line number
+ if line.uniquevalue==status.selected then
+ show=i
+ end
+ end
+ if not show then
+ -- selection was deleted or something?
+ elseif show>=first and show<=last then
+ -- all good
+ else
+ -- scrolling needed!
+ if show 100 and status.treewidth > maxtreewidth then
+ self:SetTreeWidth(maxtreewidth, status.treesizable)
+ end
+ treeframe:SetMaxResize(maxtreewidth, 1600)
+ end,
+
+ ["OnHeightSet"] = function(self, height)
+ local content = self.content
+ local contentheight = height - 20
+ if contentheight < 0 then
+ contentheight = 0
+ end
+ content:SetHeight(contentheight)
+ content.height = contentheight
+ end,
+
+ ["SetTreeWidth"] = function(self, treewidth, resizable)
+ if not resizable then
+ if type(treewidth) == 'number' then
+ resizable = false
+ elseif type(treewidth) == 'boolean' then
+ resizable = treewidth
+ treewidth = DEFAULT_TREE_WIDTH
+ else
+ resizable = false
+ treewidth = DEFAULT_TREE_WIDTH
+ end
+ end
+ self.treeframe:SetWidth(treewidth)
+ self.dragger:EnableMouse(resizable)
+
+ local status = self.status or self.localstatus
+ status.treewidth = treewidth
+ status.treesizable = resizable
+
+ -- recalculate the content width
+ if status.fullwidth then
+ self:OnWidthSet(status.fullwidth)
+ end
+ end,
+
+ ["GetTreeWidth"] = function(self)
+ local status = self.status or self.localstatus
+ return status.treewidth or DEFAULT_TREE_WIDTH
+ end,
+
+ ["LayoutFinished"] = function(self, width, height)
+ if self.noAutoHeight then return end
+ self:SetHeight((height or 0) + 20)
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local PaneBackdrop = {
+ bgFile = "Interface\\ChatFrame\\ChatFrameBackground",
+ edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
+ tile = true, tileSize = 16, edgeSize = 16,
+ insets = { left = 3, right = 3, top = 5, bottom = 3 }
+}
+
+local DraggerBackdrop = {
+ bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
+ edgeFile = nil,
+ tile = true, tileSize = 16, edgeSize = 0,
+ insets = { left = 3, right = 3, top = 7, bottom = 7 }
+}
+
+local function Constructor()
+ local num = AceGUI:GetNextWidgetNum(Type)
+ local frame = CreateFrame("Frame", nil, UIParent)
+
+ local treeframe = CreateFrame("Frame", nil, frame)
+ treeframe:SetPoint("TOPLEFT")
+ treeframe:SetPoint("BOTTOMLEFT")
+ treeframe:SetWidth(DEFAULT_TREE_WIDTH)
+ treeframe:EnableMouseWheel(true)
+ treeframe:SetBackdrop(PaneBackdrop)
+ treeframe:SetBackdropColor(0.1, 0.1, 0.1, 0.5)
+ treeframe:SetBackdropBorderColor(0.4, 0.4, 0.4)
+ treeframe:SetResizable(true)
+ treeframe:SetMinResize(100, 1)
+ treeframe:SetMaxResize(400, 1600)
+ treeframe:SetScript("OnUpdate", FirstFrameUpdate)
+ treeframe:SetScript("OnSizeChanged", Tree_OnSizeChanged)
+ treeframe:SetScript("OnMouseWheel", Tree_OnMouseWheel)
+
+ local dragger = CreateFrame("Frame", nil, treeframe)
+ dragger:SetWidth(8)
+ dragger:SetPoint("TOP", treeframe, "TOPRIGHT")
+ dragger:SetPoint("BOTTOM", treeframe, "BOTTOMRIGHT")
+ dragger:SetBackdrop(DraggerBackdrop)
+ dragger:SetBackdropColor(1, 1, 1, 0)
+ dragger:SetScript("OnEnter", Dragger_OnEnter)
+ dragger:SetScript("OnLeave", Dragger_OnLeave)
+ dragger:SetScript("OnMouseDown", Dragger_OnMouseDown)
+ dragger:SetScript("OnMouseUp", Dragger_OnMouseUp)
+
+ local scrollbar = CreateFrame("Slider", ("AceConfigDialogTreeGroup%dScrollBar"):format(num), treeframe, "UIPanelScrollBarTemplate")
+ scrollbar:SetScript("OnValueChanged", nil)
+ scrollbar:SetPoint("TOPRIGHT", -10, -26)
+ scrollbar:SetPoint("BOTTOMRIGHT", -10, 26)
+ scrollbar:SetMinMaxValues(0,0)
+ scrollbar:SetValueStep(1)
+ scrollbar:SetValue(0)
+ scrollbar:SetWidth(16)
+ scrollbar:SetScript("OnValueChanged", OnScrollValueChanged)
+
+ local scrollbg = scrollbar:CreateTexture(nil, "BACKGROUND")
+ scrollbg:SetAllPoints(scrollbar)
+ scrollbg:SetColorTexture(0,0,0,0.4)
+
+ local border = CreateFrame("Frame",nil,frame)
+ border:SetPoint("TOPLEFT", treeframe, "TOPRIGHT")
+ border:SetPoint("BOTTOMRIGHT")
+ border:SetBackdrop(PaneBackdrop)
+ border:SetBackdropColor(0.1, 0.1, 0.1, 0.5)
+ border:SetBackdropBorderColor(0.4, 0.4, 0.4)
+
+ --Container Support
+ local content = CreateFrame("Frame", nil, border)
+ content:SetPoint("TOPLEFT", 10, -10)
+ content:SetPoint("BOTTOMRIGHT", -10, 10)
+
+ local widget = {
+ frame = frame,
+ lines = {},
+ levels = {},
+ buttons = {},
+ hasChildren = {},
+ localstatus = { groups = {}, scrollvalue = 0 },
+ filter = false,
+ treeframe = treeframe,
+ dragger = dragger,
+ scrollbar = scrollbar,
+ border = border,
+ content = content,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+ treeframe.obj, dragger.obj, scrollbar.obj = widget, widget, widget
+
+ return AceGUI:RegisterAsContainer(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIContainer-Window.lua b/Libs/AceGUI-3.0/widgets/AceGUIContainer-Window.lua
new file mode 100644
index 00000000..2e28a3dd
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIContainer-Window.lua
@@ -0,0 +1,336 @@
+local AceGUI = LibStub("AceGUI-3.0")
+
+-- Lua APIs
+local pairs, assert, type = pairs, assert, type
+
+-- WoW APIs
+local PlaySound = PlaySound
+local CreateFrame, UIParent = CreateFrame, UIParent
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: GameFontNormal
+
+----------------
+-- Main Frame --
+----------------
+--[[
+ Events :
+ OnClose
+
+]]
+do
+ local Type = "Window"
+ local Version = 6
+
+ local function frameOnShow(this)
+ this.obj:Fire("OnShow")
+ end
+
+ local function frameOnClose(this)
+ this.obj:Fire("OnClose")
+ end
+
+ local function closeOnClick(this)
+ PlaySound(799) -- SOUNDKIT.GS_TITLE_OPTION_EXIT
+ this.obj:Hide()
+ end
+
+ local function frameOnMouseDown(this)
+ AceGUI:ClearFocus()
+ end
+
+ local function titleOnMouseDown(this)
+ this:GetParent():StartMoving()
+ AceGUI:ClearFocus()
+ end
+
+ local function frameOnMouseUp(this)
+ local frame = this:GetParent()
+ frame:StopMovingOrSizing()
+ local self = frame.obj
+ local status = self.status or self.localstatus
+ status.width = frame:GetWidth()
+ status.height = frame:GetHeight()
+ status.top = frame:GetTop()
+ status.left = frame:GetLeft()
+ end
+
+ local function sizerseOnMouseDown(this)
+ this:GetParent():StartSizing("BOTTOMRIGHT")
+ AceGUI:ClearFocus()
+ end
+
+ local function sizersOnMouseDown(this)
+ this:GetParent():StartSizing("BOTTOM")
+ AceGUI:ClearFocus()
+ end
+
+ local function sizereOnMouseDown(this)
+ this:GetParent():StartSizing("RIGHT")
+ AceGUI:ClearFocus()
+ end
+
+ local function sizerOnMouseUp(this)
+ this:GetParent():StopMovingOrSizing()
+ end
+
+ local function SetTitle(self,title)
+ self.titletext:SetText(title)
+ end
+
+ local function SetStatusText(self,text)
+ -- self.statustext:SetText(text)
+ end
+
+ local function Hide(self)
+ self.frame:Hide()
+ end
+
+ local function Show(self)
+ self.frame:Show()
+ end
+
+ local function OnAcquire(self)
+ self.frame:SetParent(UIParent)
+ self.frame:SetFrameStrata("FULLSCREEN_DIALOG")
+ self:ApplyStatus()
+ self:EnableResize(true)
+ self:Show()
+ end
+
+ local function OnRelease(self)
+ self.status = nil
+ for k in pairs(self.localstatus) do
+ self.localstatus[k] = nil
+ end
+ end
+
+ -- called to set an external table to store status in
+ local function SetStatusTable(self, status)
+ assert(type(status) == "table")
+ self.status = status
+ self:ApplyStatus()
+ end
+
+ local function ApplyStatus(self)
+ local status = self.status or self.localstatus
+ local frame = self.frame
+ self:SetWidth(status.width or 700)
+ self:SetHeight(status.height or 500)
+ if status.top and status.left then
+ frame:SetPoint("TOP",UIParent,"BOTTOM",0,status.top)
+ frame:SetPoint("LEFT",UIParent,"LEFT",status.left,0)
+ else
+ frame:SetPoint("CENTER",UIParent,"CENTER")
+ end
+ end
+
+ local function OnWidthSet(self, width)
+ local content = self.content
+ local contentwidth = width - 34
+ if contentwidth < 0 then
+ contentwidth = 0
+ end
+ content:SetWidth(contentwidth)
+ content.width = contentwidth
+ end
+
+
+ local function OnHeightSet(self, height)
+ local content = self.content
+ local contentheight = height - 57
+ if contentheight < 0 then
+ contentheight = 0
+ end
+ content:SetHeight(contentheight)
+ content.height = contentheight
+ end
+
+ local function EnableResize(self, state)
+ local func = state and "Show" or "Hide"
+ self.sizer_se[func](self.sizer_se)
+ self.sizer_s[func](self.sizer_s)
+ self.sizer_e[func](self.sizer_e)
+ end
+
+ local function Constructor()
+ local frame = CreateFrame("Frame",nil,UIParent)
+ local self = {}
+ self.type = "Window"
+
+ self.Hide = Hide
+ self.Show = Show
+ self.SetTitle = SetTitle
+ self.OnRelease = OnRelease
+ self.OnAcquire = OnAcquire
+ self.SetStatusText = SetStatusText
+ self.SetStatusTable = SetStatusTable
+ self.ApplyStatus = ApplyStatus
+ self.OnWidthSet = OnWidthSet
+ self.OnHeightSet = OnHeightSet
+ self.EnableResize = EnableResize
+
+ self.localstatus = {}
+
+ self.frame = frame
+ frame.obj = self
+ frame:SetWidth(700)
+ frame:SetHeight(500)
+ frame:SetPoint("CENTER",UIParent,"CENTER",0,0)
+ frame:EnableMouse()
+ frame:SetMovable(true)
+ frame:SetResizable(true)
+ frame:SetFrameStrata("FULLSCREEN_DIALOG")
+ frame:SetScript("OnMouseDown", frameOnMouseDown)
+
+ frame:SetScript("OnShow",frameOnShow)
+ frame:SetScript("OnHide",frameOnClose)
+ frame:SetMinResize(240,240)
+ frame:SetToplevel(true)
+
+ local titlebg = frame:CreateTexture(nil, "BACKGROUND")
+ titlebg:SetTexture(251966) -- Interface\\PaperDollInfoFrame\\UI-GearManager-Title-Background
+ titlebg:SetPoint("TOPLEFT", 9, -6)
+ titlebg:SetPoint("BOTTOMRIGHT", frame, "TOPRIGHT", -28, -24)
+
+ local dialogbg = frame:CreateTexture(nil, "BACKGROUND")
+ dialogbg:SetTexture(137056) -- Interface\\Tooltips\\UI-Tooltip-Background
+ dialogbg:SetPoint("TOPLEFT", 8, -24)
+ dialogbg:SetPoint("BOTTOMRIGHT", -6, 8)
+ dialogbg:SetVertexColor(0, 0, 0, .75)
+
+ local topleft = frame:CreateTexture(nil, "BORDER")
+ topleft:SetTexture(251963) -- Interface\\PaperDollInfoFrame\\UI-GearManager-Border
+ topleft:SetWidth(64)
+ topleft:SetHeight(64)
+ topleft:SetPoint("TOPLEFT")
+ topleft:SetTexCoord(0.501953125, 0.625, 0, 1)
+
+ local topright = frame:CreateTexture(nil, "BORDER")
+ topright:SetTexture(251963) -- Interface\\PaperDollInfoFrame\\UI-GearManager-Border
+ topright:SetWidth(64)
+ topright:SetHeight(64)
+ topright:SetPoint("TOPRIGHT")
+ topright:SetTexCoord(0.625, 0.75, 0, 1)
+
+ local top = frame:CreateTexture(nil, "BORDER")
+ top:SetTexture(251963) -- Interface\\PaperDollInfoFrame\\UI-GearManager-Border
+ top:SetHeight(64)
+ top:SetPoint("TOPLEFT", topleft, "TOPRIGHT")
+ top:SetPoint("TOPRIGHT", topright, "TOPLEFT")
+ top:SetTexCoord(0.25, 0.369140625, 0, 1)
+
+ local bottomleft = frame:CreateTexture(nil, "BORDER")
+ bottomleft:SetTexture(251963) -- Interface\\PaperDollInfoFrame\\UI-GearManager-Border
+ bottomleft:SetWidth(64)
+ bottomleft:SetHeight(64)
+ bottomleft:SetPoint("BOTTOMLEFT")
+ bottomleft:SetTexCoord(0.751953125, 0.875, 0, 1)
+
+ local bottomright = frame:CreateTexture(nil, "BORDER")
+ bottomright:SetTexture(251963) -- Interface\\PaperDollInfoFrame\\UI-GearManager-Border
+ bottomright:SetWidth(64)
+ bottomright:SetHeight(64)
+ bottomright:SetPoint("BOTTOMRIGHT")
+ bottomright:SetTexCoord(0.875, 1, 0, 1)
+
+ local bottom = frame:CreateTexture(nil, "BORDER")
+ bottom:SetTexture(251963) -- Interface\\PaperDollInfoFrame\\UI-GearManager-Border
+ bottom:SetHeight(64)
+ bottom:SetPoint("BOTTOMLEFT", bottomleft, "BOTTOMRIGHT")
+ bottom:SetPoint("BOTTOMRIGHT", bottomright, "BOTTOMLEFT")
+ bottom:SetTexCoord(0.376953125, 0.498046875, 0, 1)
+
+ local left = frame:CreateTexture(nil, "BORDER")
+ left:SetTexture(251963) -- Interface\\PaperDollInfoFrame\\UI-GearManager-Border
+ left:SetWidth(64)
+ left:SetPoint("TOPLEFT", topleft, "BOTTOMLEFT")
+ left:SetPoint("BOTTOMLEFT", bottomleft, "TOPLEFT")
+ left:SetTexCoord(0.001953125, 0.125, 0, 1)
+
+ local right = frame:CreateTexture(nil, "BORDER")
+ right:SetTexture(251963) -- Interface\\PaperDollInfoFrame\\UI-GearManager-Border
+ right:SetWidth(64)
+ right:SetPoint("TOPRIGHT", topright, "BOTTOMRIGHT")
+ right:SetPoint("BOTTOMRIGHT", bottomright, "TOPRIGHT")
+ right:SetTexCoord(0.1171875, 0.2421875, 0, 1)
+
+ local close = CreateFrame("Button", nil, frame, "UIPanelCloseButton")
+ close:SetPoint("TOPRIGHT", 2, 1)
+ close:SetScript("OnClick", closeOnClick)
+ self.closebutton = close
+ close.obj = self
+
+ local titletext = frame:CreateFontString(nil, "ARTWORK")
+ titletext:SetFontObject(GameFontNormal)
+ titletext:SetPoint("TOPLEFT", 12, -8)
+ titletext:SetPoint("TOPRIGHT", -32, -8)
+ self.titletext = titletext
+
+ local title = CreateFrame("Button", nil, frame)
+ title:SetPoint("TOPLEFT", titlebg)
+ title:SetPoint("BOTTOMRIGHT", titlebg)
+ title:EnableMouse()
+ title:SetScript("OnMouseDown",titleOnMouseDown)
+ title:SetScript("OnMouseUp", frameOnMouseUp)
+ self.title = title
+
+ local sizer_se = CreateFrame("Frame",nil,frame)
+ sizer_se:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT",0,0)
+ sizer_se:SetWidth(25)
+ sizer_se:SetHeight(25)
+ sizer_se:EnableMouse()
+ sizer_se:SetScript("OnMouseDown",sizerseOnMouseDown)
+ sizer_se:SetScript("OnMouseUp", sizerOnMouseUp)
+ self.sizer_se = sizer_se
+
+ local line1 = sizer_se:CreateTexture(nil, "BACKGROUND")
+ self.line1 = line1
+ line1:SetWidth(14)
+ line1:SetHeight(14)
+ line1:SetPoint("BOTTOMRIGHT", -8, 8)
+ line1:SetTexture(137057) -- Interface\\Tooltips\\UI-Tooltip-Border
+ local x = 0.1 * 14/17
+ line1:SetTexCoord(0.05 - x, 0.5, 0.05, 0.5 + x, 0.05, 0.5 - x, 0.5 + x, 0.5)
+
+ local line2 = sizer_se:CreateTexture(nil, "BACKGROUND")
+ self.line2 = line2
+ line2:SetWidth(8)
+ line2:SetHeight(8)
+ line2:SetPoint("BOTTOMRIGHT", -8, 8)
+ line2:SetTexture(137057) -- Interface\\Tooltips\\UI-Tooltip-Border
+ local x = 0.1 * 8/17
+ line2:SetTexCoord(0.05 - x, 0.5, 0.05, 0.5 + x, 0.05, 0.5 - x, 0.5 + x, 0.5)
+
+ local sizer_s = CreateFrame("Frame",nil,frame)
+ sizer_s:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT",-25,0)
+ sizer_s:SetPoint("BOTTOMLEFT",frame,"BOTTOMLEFT",0,0)
+ sizer_s:SetHeight(25)
+ sizer_s:EnableMouse()
+ sizer_s:SetScript("OnMouseDown",sizersOnMouseDown)
+ sizer_s:SetScript("OnMouseUp", sizerOnMouseUp)
+ self.sizer_s = sizer_s
+
+ local sizer_e = CreateFrame("Frame",nil,frame)
+ sizer_e:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT",0,25)
+ sizer_e:SetPoint("TOPRIGHT",frame,"TOPRIGHT",0,0)
+ sizer_e:SetWidth(25)
+ sizer_e:EnableMouse()
+ sizer_e:SetScript("OnMouseDown",sizereOnMouseDown)
+ sizer_e:SetScript("OnMouseUp", sizerOnMouseUp)
+ self.sizer_e = sizer_e
+
+ --Container Support
+ local content = CreateFrame("Frame",nil,frame)
+ self.content = content
+ content.obj = self
+ content:SetPoint("TOPLEFT",frame,"TOPLEFT",12,-32)
+ content:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT",-12,13)
+
+ AceGUI:RegisterAsContainer(self)
+ return self
+ end
+
+ AceGUI:RegisterWidgetType(Type,Constructor,Version)
+end
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIWidget-Button.lua b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Button.lua
new file mode 100644
index 00000000..0e286ca4
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Button.lua
@@ -0,0 +1,103 @@
+--[[-----------------------------------------------------------------------------
+Button Widget
+Graphical Button.
+-------------------------------------------------------------------------------]]
+local Type, Version = "Button", 24
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local pairs = pairs
+
+-- WoW APIs
+local _G = _G
+local PlaySound, CreateFrame, UIParent = PlaySound, CreateFrame, UIParent
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+local function Button_OnClick(frame, ...)
+ AceGUI:ClearFocus()
+ PlaySound(852) -- SOUNDKIT.IG_MAINMENU_OPTION
+ frame.obj:Fire("OnClick", ...)
+end
+
+local function Control_OnEnter(frame)
+ frame.obj:Fire("OnEnter")
+end
+
+local function Control_OnLeave(frame)
+ frame.obj:Fire("OnLeave")
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ -- restore default values
+ self:SetHeight(24)
+ self:SetWidth(200)
+ self:SetDisabled(false)
+ self:SetAutoWidth(false)
+ self:SetText()
+ end,
+
+ -- ["OnRelease"] = nil,
+
+ ["SetText"] = function(self, text)
+ self.text:SetText(text)
+ if self.autoWidth then
+ self:SetWidth(self.text:GetStringWidth() + 30)
+ end
+ end,
+
+ ["SetAutoWidth"] = function(self, autoWidth)
+ self.autoWidth = autoWidth
+ if self.autoWidth then
+ self:SetWidth(self.text:GetStringWidth() + 30)
+ end
+ end,
+
+ ["SetDisabled"] = function(self, disabled)
+ self.disabled = disabled
+ if disabled then
+ self.frame:Disable()
+ else
+ self.frame:Enable()
+ end
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local function Constructor()
+ local name = "AceGUI30Button" .. AceGUI:GetNextWidgetNum(Type)
+ local frame = CreateFrame("Button", name, UIParent, "UIPanelButtonTemplate")
+ frame:Hide()
+
+ frame:EnableMouse(true)
+ frame:SetScript("OnClick", Button_OnClick)
+ frame:SetScript("OnEnter", Control_OnEnter)
+ frame:SetScript("OnLeave", Control_OnLeave)
+
+ local text = frame:GetFontString()
+ text:ClearAllPoints()
+ text:SetPoint("TOPLEFT", 15, -1)
+ text:SetPoint("BOTTOMRIGHT", -15, 1)
+ text:SetJustifyV("MIDDLE")
+
+ local widget = {
+ text = text,
+ frame = frame,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+
+ return AceGUI:RegisterAsWidget(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIWidget-CheckBox.lua b/Libs/AceGUI-3.0/widgets/AceGUIWidget-CheckBox.lua
new file mode 100644
index 00000000..53ef6180
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-CheckBox.lua
@@ -0,0 +1,296 @@
+--[[-----------------------------------------------------------------------------
+Checkbox Widget
+-------------------------------------------------------------------------------]]
+local Type, Version = "CheckBox", 26
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local select, pairs = select, pairs
+
+-- WoW APIs
+local PlaySound = PlaySound
+local CreateFrame, UIParent = CreateFrame, UIParent
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: SetDesaturation, GameFontHighlight
+
+--[[-----------------------------------------------------------------------------
+Support functions
+-------------------------------------------------------------------------------]]
+local function AlignImage(self)
+ local img = self.image:GetTexture()
+ self.text:ClearAllPoints()
+ if not img then
+ self.text:SetPoint("LEFT", self.checkbg, "RIGHT")
+ self.text:SetPoint("RIGHT")
+ else
+ self.text:SetPoint("LEFT", self.image, "RIGHT", 1, 0)
+ self.text:SetPoint("RIGHT")
+ end
+end
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+local function Control_OnEnter(frame)
+ frame.obj:Fire("OnEnter")
+end
+
+local function Control_OnLeave(frame)
+ frame.obj:Fire("OnLeave")
+end
+
+local function CheckBox_OnMouseDown(frame)
+ local self = frame.obj
+ if not self.disabled then
+ if self.image:GetTexture() then
+ self.text:SetPoint("LEFT", self.image,"RIGHT", 2, -1)
+ else
+ self.text:SetPoint("LEFT", self.checkbg, "RIGHT", 1, -1)
+ end
+ end
+ AceGUI:ClearFocus()
+end
+
+local function CheckBox_OnMouseUp(frame)
+ local self = frame.obj
+ if not self.disabled then
+ self:ToggleChecked()
+
+ if self.checked then
+ PlaySound(856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON
+ else -- for both nil and false (tristate)
+ PlaySound(857) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_OFF
+ end
+
+ self:Fire("OnValueChanged", self.checked)
+ AlignImage(self)
+ end
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self:SetType()
+ self:SetValue(false)
+ self:SetTriState(nil)
+ -- height is calculated from the width and required space for the description
+ self:SetWidth(200)
+ self:SetImage()
+ self:SetDisabled(nil)
+ self:SetDescription(nil)
+ end,
+
+ -- ["OnRelease"] = nil,
+
+ ["OnWidthSet"] = function(self, width)
+ if self.desc then
+ self.desc:SetWidth(width - 30)
+ if self.desc:GetText() and self.desc:GetText() ~= "" then
+ self:SetHeight(28 + self.desc:GetStringHeight())
+ end
+ end
+ end,
+
+ ["SetDisabled"] = function(self, disabled)
+ self.disabled = disabled
+ if disabled then
+ self.frame:Disable()
+ self.text:SetTextColor(0.5, 0.5, 0.5)
+ SetDesaturation(self.check, true)
+ if self.desc then
+ self.desc:SetTextColor(0.5, 0.5, 0.5)
+ end
+ else
+ self.frame:Enable()
+ self.text:SetTextColor(1, 1, 1)
+ if self.tristate and self.checked == nil then
+ SetDesaturation(self.check, true)
+ else
+ SetDesaturation(self.check, false)
+ end
+ if self.desc then
+ self.desc:SetTextColor(1, 1, 1)
+ end
+ end
+ end,
+
+ ["SetValue"] = function(self, value)
+ local check = self.check
+ self.checked = value
+ if value then
+ SetDesaturation(check, false)
+ check:Show()
+ else
+ --Nil is the unknown tristate value
+ if self.tristate and value == nil then
+ SetDesaturation(check, true)
+ check:Show()
+ else
+ SetDesaturation(check, false)
+ check:Hide()
+ end
+ end
+ self:SetDisabled(self.disabled)
+ end,
+
+ ["GetValue"] = function(self)
+ return self.checked
+ end,
+
+ ["SetTriState"] = function(self, enabled)
+ self.tristate = enabled
+ self:SetValue(self:GetValue())
+ end,
+
+ ["SetType"] = function(self, type)
+ local checkbg = self.checkbg
+ local check = self.check
+ local highlight = self.highlight
+
+ local size
+ if type == "radio" then
+ size = 16
+ checkbg:SetTexture(130843) -- Interface\\Buttons\\UI-RadioButton
+ checkbg:SetTexCoord(0, 0.25, 0, 1)
+ check:SetTexture(130843) -- Interface\\Buttons\\UI-RadioButton
+ check:SetTexCoord(0.25, 0.5, 0, 1)
+ check:SetBlendMode("ADD")
+ highlight:SetTexture(130843) -- Interface\\Buttons\\UI-RadioButton
+ highlight:SetTexCoord(0.5, 0.75, 0, 1)
+ else
+ size = 24
+ checkbg:SetTexture(130755) -- Interface\\Buttons\\UI-CheckBox-Up
+ checkbg:SetTexCoord(0, 1, 0, 1)
+ check:SetTexture(130751) -- Interface\\Buttons\\UI-CheckBox-Check
+ check:SetTexCoord(0, 1, 0, 1)
+ check:SetBlendMode("BLEND")
+ highlight:SetTexture(130753) -- Interface\\Buttons\\UI-CheckBox-Highlight
+ highlight:SetTexCoord(0, 1, 0, 1)
+ end
+ checkbg:SetHeight(size)
+ checkbg:SetWidth(size)
+ end,
+
+ ["ToggleChecked"] = function(self)
+ local value = self:GetValue()
+ if self.tristate then
+ --cycle in true, nil, false order
+ if value then
+ self:SetValue(nil)
+ elseif value == nil then
+ self:SetValue(false)
+ else
+ self:SetValue(true)
+ end
+ else
+ self:SetValue(not self:GetValue())
+ end
+ end,
+
+ ["SetLabel"] = function(self, label)
+ self.text:SetText(label)
+ end,
+
+ ["SetDescription"] = function(self, desc)
+ if desc then
+ if not self.desc then
+ local desc = self.frame:CreateFontString(nil, "OVERLAY", "GameFontHighlightSmall")
+ desc:ClearAllPoints()
+ desc:SetPoint("TOPLEFT", self.checkbg, "TOPRIGHT", 5, -21)
+ desc:SetWidth(self.frame.width - 30)
+ desc:SetPoint("RIGHT", self.frame, "RIGHT", -30, 0)
+ desc:SetJustifyH("LEFT")
+ desc:SetJustifyV("TOP")
+ self.desc = desc
+ end
+ self.desc:Show()
+ --self.text:SetFontObject(GameFontNormal)
+ self.desc:SetText(desc)
+ self:SetHeight(28 + self.desc:GetStringHeight())
+ else
+ if self.desc then
+ self.desc:SetText("")
+ self.desc:Hide()
+ end
+ --self.text:SetFontObject(GameFontHighlight)
+ self:SetHeight(24)
+ end
+ end,
+
+ ["SetImage"] = function(self, path, ...)
+ local image = self.image
+ image:SetTexture(path)
+
+ if image:GetTexture() then
+ local n = select("#", ...)
+ if n == 4 or n == 8 then
+ image:SetTexCoord(...)
+ else
+ image:SetTexCoord(0, 1, 0, 1)
+ end
+ end
+ AlignImage(self)
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local function Constructor()
+ local frame = CreateFrame("Button", nil, UIParent)
+ frame:Hide()
+
+ frame:EnableMouse(true)
+ frame:SetScript("OnEnter", Control_OnEnter)
+ frame:SetScript("OnLeave", Control_OnLeave)
+ frame:SetScript("OnMouseDown", CheckBox_OnMouseDown)
+ frame:SetScript("OnMouseUp", CheckBox_OnMouseUp)
+
+ local checkbg = frame:CreateTexture(nil, "ARTWORK")
+ checkbg:SetWidth(24)
+ checkbg:SetHeight(24)
+ checkbg:SetPoint("TOPLEFT")
+ checkbg:SetTexture(130755) -- Interface\\Buttons\\UI-CheckBox-Up
+
+ local check = frame:CreateTexture(nil, "OVERLAY")
+ check:SetAllPoints(checkbg)
+ check:SetTexture(130751) -- Interface\\Buttons\\UI-CheckBox-Check
+
+ local text = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight")
+ text:SetJustifyH("LEFT")
+ text:SetHeight(18)
+ text:SetPoint("LEFT", checkbg, "RIGHT")
+ text:SetPoint("RIGHT")
+
+ local highlight = frame:CreateTexture(nil, "HIGHLIGHT")
+ highlight:SetTexture(130753) -- Interface\\Buttons\\UI-CheckBox-Highlight
+ highlight:SetBlendMode("ADD")
+ highlight:SetAllPoints(checkbg)
+
+ local image = frame:CreateTexture(nil, "OVERLAY")
+ image:SetHeight(16)
+ image:SetWidth(16)
+ image:SetPoint("LEFT", checkbg, "RIGHT", 1, 0)
+
+ local widget = {
+ checkbg = checkbg,
+ check = check,
+ text = text,
+ highlight = highlight,
+ image = image,
+ frame = frame,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+
+ return AceGUI:RegisterAsWidget(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIWidget-ColorPicker.lua b/Libs/AceGUI-3.0/widgets/AceGUIWidget-ColorPicker.lua
new file mode 100644
index 00000000..11011629
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-ColorPicker.lua
@@ -0,0 +1,190 @@
+--[[-----------------------------------------------------------------------------
+ColorPicker Widget
+-------------------------------------------------------------------------------]]
+local Type, Version = "ColorPicker", 25
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local pairs = pairs
+
+-- WoW APIs
+local CreateFrame, UIParent = CreateFrame, UIParent
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: ColorPickerFrame, OpacitySliderFrame
+
+--[[-----------------------------------------------------------------------------
+Support functions
+-------------------------------------------------------------------------------]]
+local function ColorCallback(self, r, g, b, a, isAlpha)
+ if not self.HasAlpha then
+ a = 1
+ end
+ self:SetColor(r, g, b, a)
+ if ColorPickerFrame:IsVisible() then
+ --colorpicker is still open
+ self:Fire("OnValueChanged", r, g, b, a)
+ else
+ --colorpicker is closed, color callback is first, ignore it,
+ --alpha callback is the final call after it closes so confirm now
+ if isAlpha then
+ self:Fire("OnValueConfirmed", r, g, b, a)
+ end
+ end
+end
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+local function Control_OnEnter(frame)
+ frame.obj:Fire("OnEnter")
+end
+
+local function Control_OnLeave(frame)
+ frame.obj:Fire("OnLeave")
+end
+
+local function ColorSwatch_OnClick(frame)
+ ColorPickerFrame:Hide()
+ local self = frame.obj
+ if not self.disabled then
+ ColorPickerFrame:SetFrameStrata("FULLSCREEN_DIALOG")
+ ColorPickerFrame:SetFrameLevel(frame:GetFrameLevel() + 10)
+ ColorPickerFrame:SetClampedToScreen(true)
+
+ ColorPickerFrame.func = function()
+ local r, g, b = ColorPickerFrame:GetColorRGB()
+ local a = 1 - OpacitySliderFrame:GetValue()
+ ColorCallback(self, r, g, b, a)
+ end
+
+ ColorPickerFrame.hasOpacity = self.HasAlpha
+ ColorPickerFrame.opacityFunc = function()
+ local r, g, b = ColorPickerFrame:GetColorRGB()
+ local a = 1 - OpacitySliderFrame:GetValue()
+ ColorCallback(self, r, g, b, a, true)
+ end
+
+ local r, g, b, a = self.r, self.g, self.b, self.a
+ if self.HasAlpha then
+ ColorPickerFrame.opacity = 1 - (a or 0)
+ end
+ ColorPickerFrame:SetColorRGB(r, g, b)
+
+ ColorPickerFrame.cancelFunc = function()
+ ColorCallback(self, r, g, b, a, true)
+ end
+
+ ColorPickerFrame:Show()
+ end
+ AceGUI:ClearFocus()
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self:SetHeight(24)
+ self:SetWidth(200)
+ self:SetHasAlpha(false)
+ self:SetColor(0, 0, 0, 1)
+ self:SetDisabled(nil)
+ self:SetLabel(nil)
+ end,
+
+ -- ["OnRelease"] = nil,
+
+ ["SetLabel"] = function(self, text)
+ self.text:SetText(text)
+ end,
+
+ ["SetColor"] = function(self, r, g, b, a)
+ self.r = r
+ self.g = g
+ self.b = b
+ self.a = a or 1
+ self.colorSwatch:SetVertexColor(r, g, b, a)
+ end,
+
+ ["SetHasAlpha"] = function(self, HasAlpha)
+ self.HasAlpha = HasAlpha
+ end,
+
+ ["SetDisabled"] = function(self, disabled)
+ self.disabled = disabled
+ if self.disabled then
+ self.frame:Disable()
+ self.text:SetTextColor(0.5, 0.5, 0.5)
+ else
+ self.frame:Enable()
+ self.text:SetTextColor(1, 1, 1)
+ end
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local function Constructor()
+ local frame = CreateFrame("Button", nil, UIParent)
+ frame:Hide()
+
+ frame:EnableMouse(true)
+ frame:SetScript("OnEnter", Control_OnEnter)
+ frame:SetScript("OnLeave", Control_OnLeave)
+ frame:SetScript("OnClick", ColorSwatch_OnClick)
+
+ local colorSwatch = frame:CreateTexture(nil, "OVERLAY")
+ colorSwatch:SetWidth(19)
+ colorSwatch:SetHeight(19)
+ colorSwatch:SetTexture(130939) -- Interface\\ChatFrame\\ChatFrameColorSwatch
+ colorSwatch:SetPoint("LEFT")
+
+ local texture = frame:CreateTexture(nil, "BACKGROUND")
+ colorSwatch.background = texture
+ texture:SetWidth(16)
+ texture:SetHeight(16)
+ texture:SetColorTexture(1, 1, 1)
+ texture:SetPoint("CENTER", colorSwatch)
+ texture:Show()
+
+ local checkers = frame:CreateTexture(nil, "BACKGROUND")
+ colorSwatch.checkers = checkers
+ checkers:SetWidth(14)
+ checkers:SetHeight(14)
+ checkers:SetTexture(188523) -- Tileset\\Generic\\Checkers
+ checkers:SetTexCoord(.25, 0, 0.5, .25)
+ checkers:SetDesaturated(true)
+ checkers:SetVertexColor(1, 1, 1, 0.75)
+ checkers:SetPoint("CENTER", colorSwatch)
+ checkers:Show()
+
+ local text = frame:CreateFontString(nil,"OVERLAY","GameFontHighlight")
+ text:SetHeight(24)
+ text:SetJustifyH("LEFT")
+ text:SetTextColor(1, 1, 1)
+ text:SetPoint("LEFT", colorSwatch, "RIGHT", 2, 0)
+ text:SetPoint("RIGHT")
+
+ --local highlight = frame:CreateTexture(nil, "HIGHLIGHT")
+ --highlight:SetTexture(136810) -- Interface\\QuestFrame\\UI-QuestTitleHighlight
+ --highlight:SetBlendMode("ADD")
+ --highlight:SetAllPoints(frame)
+
+ local widget = {
+ colorSwatch = colorSwatch,
+ text = text,
+ frame = frame,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+
+ return AceGUI:RegisterAsWidget(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown-Items.lua b/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown-Items.lua
new file mode 100644
index 00000000..7ae1401f
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown-Items.lua
@@ -0,0 +1,471 @@
+--[[ $Id: AceGUIWidget-DropDown-Items.lua 1202 2019-05-15 23:11:22Z nevcairiel $ ]]--
+
+local AceGUI = LibStub("AceGUI-3.0")
+
+-- Lua APIs
+local select, assert = select, assert
+
+-- WoW APIs
+local PlaySound = PlaySound
+local CreateFrame = CreateFrame
+
+local function fixlevels(parent,...)
+ local i = 1
+ local child = select(i, ...)
+ while child do
+ child:SetFrameLevel(parent:GetFrameLevel()+1)
+ fixlevels(child, child:GetChildren())
+ i = i + 1
+ child = select(i, ...)
+ end
+end
+
+local function fixstrata(strata, parent, ...)
+ local i = 1
+ local child = select(i, ...)
+ parent:SetFrameStrata(strata)
+ while child do
+ fixstrata(strata, child, child:GetChildren())
+ i = i + 1
+ child = select(i, ...)
+ end
+end
+
+-- ItemBase is the base "class" for all dropdown items.
+-- Each item has to use ItemBase.Create(widgetType) to
+-- create an initial 'self' value.
+-- ItemBase will add common functions and ui event handlers.
+-- Be sure to keep basic usage when you override functions.
+
+local ItemBase = {
+ -- NOTE: The ItemBase version is added to each item's version number
+ -- to ensure proper updates on ItemBase changes.
+ -- Use at least 1000er steps.
+ version = 1000,
+ counter = 0,
+}
+
+function ItemBase.Frame_OnEnter(this)
+ local self = this.obj
+
+ if self.useHighlight then
+ self.highlight:Show()
+ end
+ self:Fire("OnEnter")
+
+ if self.specialOnEnter then
+ self.specialOnEnter(self)
+ end
+end
+
+function ItemBase.Frame_OnLeave(this)
+ local self = this.obj
+
+ self.highlight:Hide()
+ self:Fire("OnLeave")
+
+ if self.specialOnLeave then
+ self.specialOnLeave(self)
+ end
+end
+
+-- exported, AceGUI callback
+function ItemBase.OnAcquire(self)
+ self.frame:SetToplevel(true)
+ self.frame:SetFrameStrata("FULLSCREEN_DIALOG")
+end
+
+-- exported, AceGUI callback
+function ItemBase.OnRelease(self)
+ self:SetDisabled(false)
+ self.pullout = nil
+ self.frame:SetParent(nil)
+ self.frame:ClearAllPoints()
+ self.frame:Hide()
+end
+
+-- exported
+-- NOTE: this is called by a Dropdown-Pullout.
+-- Do not call this method directly
+function ItemBase.SetPullout(self, pullout)
+ self.pullout = pullout
+
+ self.frame:SetParent(nil)
+ self.frame:SetParent(pullout.itemFrame)
+ self.parent = pullout.itemFrame
+ fixlevels(pullout.itemFrame, pullout.itemFrame:GetChildren())
+end
+
+-- exported
+function ItemBase.SetText(self, text)
+ self.text:SetText(text or "")
+end
+
+-- exported
+function ItemBase.GetText(self)
+ return self.text:GetText()
+end
+
+-- exported
+function ItemBase.SetPoint(self, ...)
+ self.frame:SetPoint(...)
+end
+
+-- exported
+function ItemBase.Show(self)
+ self.frame:Show()
+end
+
+-- exported
+function ItemBase.Hide(self)
+ self.frame:Hide()
+end
+
+-- exported
+function ItemBase.SetDisabled(self, disabled)
+ self.disabled = disabled
+ if disabled then
+ self.useHighlight = false
+ self.text:SetTextColor(.5, .5, .5)
+ else
+ self.useHighlight = true
+ self.text:SetTextColor(1, 1, 1)
+ end
+end
+
+-- exported
+-- NOTE: this is called by a Dropdown-Pullout.
+-- Do not call this method directly
+function ItemBase.SetOnLeave(self, func)
+ self.specialOnLeave = func
+end
+
+-- exported
+-- NOTE: this is called by a Dropdown-Pullout.
+-- Do not call this method directly
+function ItemBase.SetOnEnter(self, func)
+ self.specialOnEnter = func
+end
+
+function ItemBase.Create(type)
+ -- NOTE: Most of the following code is copied from AceGUI-3.0/Dropdown widget
+ local count = AceGUI:GetNextWidgetNum(type)
+ local frame = CreateFrame("Button", "AceGUI30DropDownItem"..count)
+ local self = {}
+ self.frame = frame
+ frame.obj = self
+ self.type = type
+
+ self.useHighlight = true
+
+ frame:SetHeight(17)
+ frame:SetFrameStrata("FULLSCREEN_DIALOG")
+
+ local text = frame:CreateFontString(nil,"OVERLAY","GameFontNormalSmall")
+ text:SetTextColor(1,1,1)
+ text:SetJustifyH("LEFT")
+ text:SetPoint("TOPLEFT",frame,"TOPLEFT",18,0)
+ text:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT",-8,0)
+ self.text = text
+
+ local highlight = frame:CreateTexture(nil, "OVERLAY")
+ highlight:SetTexture(136810) -- Interface\\QuestFrame\\UI-QuestTitleHighlight
+ highlight:SetBlendMode("ADD")
+ highlight:SetHeight(14)
+ highlight:ClearAllPoints()
+ highlight:SetPoint("RIGHT",frame,"RIGHT",-3,0)
+ highlight:SetPoint("LEFT",frame,"LEFT",5,0)
+ highlight:Hide()
+ self.highlight = highlight
+
+ local check = frame:CreateTexture("OVERLAY")
+ check:SetWidth(16)
+ check:SetHeight(16)
+ check:SetPoint("LEFT",frame,"LEFT",3,-1)
+ check:SetTexture(130751) -- Interface\\Buttons\\UI-CheckBox-Check
+ check:Hide()
+ self.check = check
+
+ local sub = frame:CreateTexture("OVERLAY")
+ sub:SetWidth(16)
+ sub:SetHeight(16)
+ sub:SetPoint("RIGHT",frame,"RIGHT",-3,-1)
+ sub:SetTexture(130940) -- Interface\\ChatFrame\\ChatFrameExpandArrow
+ sub:Hide()
+ self.sub = sub
+
+ frame:SetScript("OnEnter", ItemBase.Frame_OnEnter)
+ frame:SetScript("OnLeave", ItemBase.Frame_OnLeave)
+
+ self.OnAcquire = ItemBase.OnAcquire
+ self.OnRelease = ItemBase.OnRelease
+
+ self.SetPullout = ItemBase.SetPullout
+ self.GetText = ItemBase.GetText
+ self.SetText = ItemBase.SetText
+ self.SetDisabled = ItemBase.SetDisabled
+
+ self.SetPoint = ItemBase.SetPoint
+ self.Show = ItemBase.Show
+ self.Hide = ItemBase.Hide
+
+ self.SetOnLeave = ItemBase.SetOnLeave
+ self.SetOnEnter = ItemBase.SetOnEnter
+
+ return self
+end
+
+-- Register a dummy LibStub library to retrieve the ItemBase, so other addons can use it.
+local IBLib = LibStub:NewLibrary("AceGUI-3.0-DropDown-ItemBase", ItemBase.version)
+if IBLib then
+ IBLib.GetItemBase = function() return ItemBase end
+end
+
+--[[
+ Template for items:
+
+-- Item:
+--
+do
+ local widgetType = "Dropdown-Item-"
+ local widgetVersion = 1
+
+ local function Constructor()
+ local self = ItemBase.Create(widgetType)
+
+ AceGUI:RegisterAsWidget(self)
+ return self
+ end
+
+ AceGUI:RegisterWidgetType(widgetType, Constructor, widgetVersion + ItemBase.version)
+end
+--]]
+
+-- Item: Header
+-- A single text entry.
+-- Special: Different text color and no highlight
+do
+ local widgetType = "Dropdown-Item-Header"
+ local widgetVersion = 1
+
+ local function OnEnter(this)
+ local self = this.obj
+ self:Fire("OnEnter")
+
+ if self.specialOnEnter then
+ self.specialOnEnter(self)
+ end
+ end
+
+ local function OnLeave(this)
+ local self = this.obj
+ self:Fire("OnLeave")
+
+ if self.specialOnLeave then
+ self.specialOnLeave(self)
+ end
+ end
+
+ -- exported, override
+ local function SetDisabled(self, disabled)
+ ItemBase.SetDisabled(self, disabled)
+ if not disabled then
+ self.text:SetTextColor(1, 1, 0)
+ end
+ end
+
+ local function Constructor()
+ local self = ItemBase.Create(widgetType)
+
+ self.SetDisabled = SetDisabled
+
+ self.frame:SetScript("OnEnter", OnEnter)
+ self.frame:SetScript("OnLeave", OnLeave)
+
+ self.text:SetTextColor(1, 1, 0)
+
+ AceGUI:RegisterAsWidget(self)
+ return self
+ end
+
+ AceGUI:RegisterWidgetType(widgetType, Constructor, widgetVersion + ItemBase.version)
+end
+
+-- Item: Execute
+-- A simple button
+do
+ local widgetType = "Dropdown-Item-Execute"
+ local widgetVersion = 1
+
+ local function Frame_OnClick(this, button)
+ local self = this.obj
+ if self.disabled then return end
+ self:Fire("OnClick")
+ if self.pullout then
+ self.pullout:Close()
+ end
+ end
+
+ local function Constructor()
+ local self = ItemBase.Create(widgetType)
+
+ self.frame:SetScript("OnClick", Frame_OnClick)
+
+ AceGUI:RegisterAsWidget(self)
+ return self
+ end
+
+ AceGUI:RegisterWidgetType(widgetType, Constructor, widgetVersion + ItemBase.version)
+end
+
+-- Item: Toggle
+-- Some sort of checkbox for dropdown menus.
+-- Does not close the pullout on click.
+do
+ local widgetType = "Dropdown-Item-Toggle"
+ local widgetVersion = 4
+
+ local function UpdateToggle(self)
+ if self.value then
+ self.check:Show()
+ else
+ self.check:Hide()
+ end
+ end
+
+ local function OnRelease(self)
+ ItemBase.OnRelease(self)
+ self:SetValue(nil)
+ end
+
+ local function Frame_OnClick(this, button)
+ local self = this.obj
+ if self.disabled then return end
+ self.value = not self.value
+ if self.value then
+ PlaySound(856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON
+ else
+ PlaySound(857) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_OFF
+ end
+ UpdateToggle(self)
+ self:Fire("OnValueChanged", self.value)
+ end
+
+ -- exported
+ local function SetValue(self, value)
+ self.value = value
+ UpdateToggle(self)
+ end
+
+ -- exported
+ local function GetValue(self)
+ return self.value
+ end
+
+ local function Constructor()
+ local self = ItemBase.Create(widgetType)
+
+ self.frame:SetScript("OnClick", Frame_OnClick)
+
+ self.SetValue = SetValue
+ self.GetValue = GetValue
+ self.OnRelease = OnRelease
+
+ AceGUI:RegisterAsWidget(self)
+ return self
+ end
+
+ AceGUI:RegisterWidgetType(widgetType, Constructor, widgetVersion + ItemBase.version)
+end
+
+-- Item: Menu
+-- Shows a submenu on mouse over
+-- Does not close the pullout on click
+do
+ local widgetType = "Dropdown-Item-Menu"
+ local widgetVersion = 2
+
+ local function OnEnter(this)
+ local self = this.obj
+ self:Fire("OnEnter")
+
+ if self.specialOnEnter then
+ self.specialOnEnter(self)
+ end
+
+ self.highlight:Show()
+
+ if not self.disabled and self.submenu then
+ self.submenu:Open("TOPLEFT", self.frame, "TOPRIGHT", self.pullout:GetRightBorderWidth(), 0, self.frame:GetFrameLevel() + 100)
+ end
+ end
+
+ local function OnHide(this)
+ local self = this.obj
+ if self.submenu then
+ self.submenu:Close()
+ end
+ end
+
+ -- exported
+ local function SetMenu(self, menu)
+ assert(menu.type == "Dropdown-Pullout")
+ self.submenu = menu
+ end
+
+ -- exported
+ local function CloseMenu(self)
+ self.submenu:Close()
+ end
+
+ local function Constructor()
+ local self = ItemBase.Create(widgetType)
+
+ self.sub:Show()
+
+ self.frame:SetScript("OnEnter", OnEnter)
+ self.frame:SetScript("OnHide", OnHide)
+
+ self.SetMenu = SetMenu
+ self.CloseMenu = CloseMenu
+
+ AceGUI:RegisterAsWidget(self)
+ return self
+ end
+
+ AceGUI:RegisterWidgetType(widgetType, Constructor, widgetVersion + ItemBase.version)
+end
+
+-- Item: Separator
+-- A single line to separate items
+do
+ local widgetType = "Dropdown-Item-Separator"
+ local widgetVersion = 2
+
+ -- exported, override
+ local function SetDisabled(self, disabled)
+ ItemBase.SetDisabled(self, disabled)
+ self.useHighlight = false
+ end
+
+ local function Constructor()
+ local self = ItemBase.Create(widgetType)
+
+ self.SetDisabled = SetDisabled
+
+ local line = self.frame:CreateTexture(nil, "OVERLAY")
+ line:SetHeight(1)
+ line:SetColorTexture(.5, .5, .5)
+ line:SetPoint("LEFT", self.frame, "LEFT", 10, 0)
+ line:SetPoint("RIGHT", self.frame, "RIGHT", -10, 0)
+
+ self.text:Hide()
+
+ self.useHighlight = false
+
+ AceGUI:RegisterAsWidget(self)
+ return self
+ end
+
+ AceGUI:RegisterWidgetType(widgetType, Constructor, widgetVersion + ItemBase.version)
+end
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown.lua b/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown.lua
new file mode 100644
index 00000000..0d6308fa
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown.lua
@@ -0,0 +1,745 @@
+--[[ $Id: AceGUIWidget-DropDown.lua 1209 2019-06-24 21:01:01Z nevcairiel $ ]]--
+local AceGUI = LibStub("AceGUI-3.0")
+
+-- Lua APIs
+local min, max, floor = math.min, math.max, math.floor
+local select, pairs, ipairs, type, tostring = select, pairs, ipairs, type, tostring
+local tsort = table.sort
+
+-- WoW APIs
+local PlaySound = PlaySound
+local UIParent, CreateFrame = UIParent, CreateFrame
+local _G = _G
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: CLOSE
+
+local function fixlevels(parent,...)
+ local i = 1
+ local child = select(i, ...)
+ while child do
+ child:SetFrameLevel(parent:GetFrameLevel()+1)
+ fixlevels(child, child:GetChildren())
+ i = i + 1
+ child = select(i, ...)
+ end
+end
+
+local function fixstrata(strata, parent, ...)
+ local i = 1
+ local child = select(i, ...)
+ parent:SetFrameStrata(strata)
+ while child do
+ fixstrata(strata, child, child:GetChildren())
+ i = i + 1
+ child = select(i, ...)
+ end
+end
+
+do
+ local widgetType = "Dropdown-Pullout"
+ local widgetVersion = 3
+
+ --[[ Static data ]]--
+
+ local backdrop = {
+ bgFile = "Interface\\ChatFrame\\ChatFrameBackground",
+ edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border",
+ edgeSize = 32,
+ tileSize = 32,
+ tile = true,
+ insets = { left = 11, right = 12, top = 12, bottom = 11 },
+ }
+ local sliderBackdrop = {
+ bgFile = "Interface\\Buttons\\UI-SliderBar-Background",
+ edgeFile = "Interface\\Buttons\\UI-SliderBar-Border",
+ tile = true, tileSize = 8, edgeSize = 8,
+ insets = { left = 3, right = 3, top = 3, bottom = 3 }
+ }
+
+ local defaultWidth = 200
+ local defaultMaxHeight = 600
+
+ --[[ UI Event Handlers ]]--
+
+ -- HACK: This should be no part of the pullout, but there
+ -- is no other 'clean' way to response to any item-OnEnter
+ -- Used to close Submenus when an other item is entered
+ local function OnEnter(item)
+ local self = item.pullout
+ for k, v in ipairs(self.items) do
+ if v.CloseMenu and v ~= item then
+ v:CloseMenu()
+ end
+ end
+ end
+
+ -- See the note in Constructor() for each scroll related function
+ local function OnMouseWheel(this, value)
+ this.obj:MoveScroll(value)
+ end
+
+ local function OnScrollValueChanged(this, value)
+ this.obj:SetScroll(value)
+ end
+
+ local function OnSizeChanged(this)
+ this.obj:FixScroll()
+ end
+
+ --[[ Exported methods ]]--
+
+ -- exported
+ local function SetScroll(self, value)
+ local status = self.scrollStatus
+ local frame, child = self.scrollFrame, self.itemFrame
+ local height, viewheight = frame:GetHeight(), child:GetHeight()
+
+ local offset
+ if height > viewheight then
+ offset = 0
+ else
+ offset = floor((viewheight - height) / 1000 * value)
+ end
+ child:ClearAllPoints()
+ child:SetPoint("TOPLEFT", frame, "TOPLEFT", 0, offset)
+ child:SetPoint("TOPRIGHT", frame, "TOPRIGHT", self.slider:IsShown() and -12 or 0, offset)
+ status.offset = offset
+ status.scrollvalue = value
+ end
+
+ -- exported
+ local function MoveScroll(self, value)
+ local status = self.scrollStatus
+ local frame, child = self.scrollFrame, self.itemFrame
+ local height, viewheight = frame:GetHeight(), child:GetHeight()
+
+ if height > viewheight then
+ self.slider:Hide()
+ else
+ self.slider:Show()
+ local diff = height - viewheight
+ local delta = 1
+ if value < 0 then
+ delta = -1
+ end
+ self.slider:SetValue(min(max(status.scrollvalue + delta*(1000/(diff/45)),0), 1000))
+ end
+ end
+
+ -- exported
+ local function FixScroll(self)
+ local status = self.scrollStatus
+ local frame, child = self.scrollFrame, self.itemFrame
+ local height, viewheight = frame:GetHeight(), child:GetHeight()
+ local offset = status.offset or 0
+
+ if viewheight < height then
+ self.slider:Hide()
+ child:SetPoint("TOPRIGHT", frame, "TOPRIGHT", 0, offset)
+ self.slider:SetValue(0)
+ else
+ self.slider:Show()
+ local value = (offset / (viewheight - height) * 1000)
+ if value > 1000 then value = 1000 end
+ self.slider:SetValue(value)
+ self:SetScroll(value)
+ if value < 1000 then
+ child:ClearAllPoints()
+ child:SetPoint("TOPLEFT", frame, "TOPLEFT", 0, offset)
+ child:SetPoint("TOPRIGHT", frame, "TOPRIGHT", -12, offset)
+ status.offset = offset
+ end
+ end
+ end
+
+ -- exported, AceGUI callback
+ local function OnAcquire(self)
+ self.frame:SetParent(UIParent)
+ --self.itemFrame:SetToplevel(true)
+ end
+
+ -- exported, AceGUI callback
+ local function OnRelease(self)
+ self:Clear()
+ self.frame:ClearAllPoints()
+ self.frame:Hide()
+ end
+
+ -- exported
+ local function AddItem(self, item)
+ self.items[#self.items + 1] = item
+
+ local h = #self.items * 16
+ self.itemFrame:SetHeight(h)
+ self.frame:SetHeight(min(h + 34, self.maxHeight)) -- +34: 20 for scrollFrame placement (10 offset) and +14 for item placement
+
+ item.frame:SetPoint("LEFT", self.itemFrame, "LEFT")
+ item.frame:SetPoint("RIGHT", self.itemFrame, "RIGHT")
+
+ item:SetPullout(self)
+ item:SetOnEnter(OnEnter)
+ end
+
+ -- exported
+ local function Open(self, point, relFrame, relPoint, x, y)
+ local items = self.items
+ local frame = self.frame
+ local itemFrame = self.itemFrame
+
+ frame:SetPoint(point, relFrame, relPoint, x, y)
+
+
+ local height = 8
+ for i, item in pairs(items) do
+ if i == 1 then
+ item:SetPoint("TOP", itemFrame, "TOP", 0, -2)
+ else
+ item:SetPoint("TOP", items[i-1].frame, "BOTTOM", 0, 1)
+ end
+
+ item:Show()
+
+ height = height + 16
+ end
+ itemFrame:SetHeight(height)
+ fixstrata("TOOLTIP", frame, frame:GetChildren())
+ frame:Show()
+ self:Fire("OnOpen")
+ end
+
+ -- exported
+ local function Close(self)
+ self.frame:Hide()
+ self:Fire("OnClose")
+ end
+
+ -- exported
+ local function Clear(self)
+ local items = self.items
+ for i, item in pairs(items) do
+ AceGUI:Release(item)
+ items[i] = nil
+ end
+ end
+
+ -- exported
+ local function IterateItems(self)
+ return ipairs(self.items)
+ end
+
+ -- exported
+ local function SetHideOnLeave(self, val)
+ self.hideOnLeave = val
+ end
+
+ -- exported
+ local function SetMaxHeight(self, height)
+ self.maxHeight = height or defaultMaxHeight
+ if self.frame:GetHeight() > height then
+ self.frame:SetHeight(height)
+ elseif (self.itemFrame:GetHeight() + 34) < height then
+ self.frame:SetHeight(self.itemFrame:GetHeight() + 34) -- see :AddItem
+ end
+ end
+
+ -- exported
+ local function GetRightBorderWidth(self)
+ return 6 + (self.slider:IsShown() and 12 or 0)
+ end
+
+ -- exported
+ local function GetLeftBorderWidth(self)
+ return 6
+ end
+
+ --[[ Constructor ]]--
+
+ local function Constructor()
+ local count = AceGUI:GetNextWidgetNum(widgetType)
+ local frame = CreateFrame("Frame", "AceGUI30Pullout"..count, UIParent)
+ local self = {}
+ self.count = count
+ self.type = widgetType
+ self.frame = frame
+ frame.obj = self
+
+ self.OnAcquire = OnAcquire
+ self.OnRelease = OnRelease
+
+ self.AddItem = AddItem
+ self.Open = Open
+ self.Close = Close
+ self.Clear = Clear
+ self.IterateItems = IterateItems
+ self.SetHideOnLeave = SetHideOnLeave
+
+ self.SetScroll = SetScroll
+ self.MoveScroll = MoveScroll
+ self.FixScroll = FixScroll
+
+ self.SetMaxHeight = SetMaxHeight
+ self.GetRightBorderWidth = GetRightBorderWidth
+ self.GetLeftBorderWidth = GetLeftBorderWidth
+
+ self.items = {}
+
+ self.scrollStatus = {
+ scrollvalue = 0,
+ }
+
+ self.maxHeight = defaultMaxHeight
+
+ frame:SetBackdrop(backdrop)
+ frame:SetBackdropColor(0, 0, 0)
+ frame:SetFrameStrata("FULLSCREEN_DIALOG")
+ frame:SetClampedToScreen(true)
+ frame:SetWidth(defaultWidth)
+ frame:SetHeight(self.maxHeight)
+ --frame:SetToplevel(true)
+
+ -- NOTE: The whole scroll frame code is copied from the AceGUI-3.0 widget ScrollFrame
+ local scrollFrame = CreateFrame("ScrollFrame", nil, frame)
+ local itemFrame = CreateFrame("Frame", nil, scrollFrame)
+
+ self.scrollFrame = scrollFrame
+ self.itemFrame = itemFrame
+
+ scrollFrame.obj = self
+ itemFrame.obj = self
+
+ local slider = CreateFrame("Slider", "AceGUI30PulloutScrollbar"..count, scrollFrame)
+ slider:SetOrientation("VERTICAL")
+ slider:SetHitRectInsets(0, 0, -10, 0)
+ slider:SetBackdrop(sliderBackdrop)
+ slider:SetWidth(8)
+ slider:SetThumbTexture("Interface\\Buttons\\UI-SliderBar-Button-Vertical")
+ slider:SetFrameStrata("FULLSCREEN_DIALOG")
+ self.slider = slider
+ slider.obj = self
+
+ scrollFrame:SetScrollChild(itemFrame)
+ scrollFrame:SetPoint("TOPLEFT", frame, "TOPLEFT", 6, -12)
+ scrollFrame:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -6, 12)
+ scrollFrame:EnableMouseWheel(true)
+ scrollFrame:SetScript("OnMouseWheel", OnMouseWheel)
+ scrollFrame:SetScript("OnSizeChanged", OnSizeChanged)
+ scrollFrame:SetToplevel(true)
+ scrollFrame:SetFrameStrata("FULLSCREEN_DIALOG")
+
+ itemFrame:SetPoint("TOPLEFT", scrollFrame, "TOPLEFT", 0, 0)
+ itemFrame:SetPoint("TOPRIGHT", scrollFrame, "TOPRIGHT", -12, 0)
+ itemFrame:SetHeight(400)
+ itemFrame:SetToplevel(true)
+ itemFrame:SetFrameStrata("FULLSCREEN_DIALOG")
+
+ slider:SetPoint("TOPLEFT", scrollFrame, "TOPRIGHT", -16, 0)
+ slider:SetPoint("BOTTOMLEFT", scrollFrame, "BOTTOMRIGHT", -16, 0)
+ slider:SetScript("OnValueChanged", OnScrollValueChanged)
+ slider:SetMinMaxValues(0, 1000)
+ slider:SetValueStep(1)
+ slider:SetValue(0)
+
+ scrollFrame:Show()
+ itemFrame:Show()
+ slider:Hide()
+
+ self:FixScroll()
+
+ AceGUI:RegisterAsWidget(self)
+ return self
+ end
+
+ AceGUI:RegisterWidgetType(widgetType, Constructor, widgetVersion)
+end
+
+do
+ local widgetType = "Dropdown"
+ local widgetVersion = 34
+
+ --[[ Static data ]]--
+
+ --[[ UI event handler ]]--
+
+ local function Control_OnEnter(this)
+ this.obj.button:LockHighlight()
+ this.obj:Fire("OnEnter")
+ end
+
+ local function Control_OnLeave(this)
+ this.obj.button:UnlockHighlight()
+ this.obj:Fire("OnLeave")
+ end
+
+ local function Dropdown_OnHide(this)
+ local self = this.obj
+ if self.open then
+ self.pullout:Close()
+ end
+ end
+
+ local function Dropdown_TogglePullout(this)
+ local self = this.obj
+ PlaySound(856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON
+ if self.open then
+ self.open = nil
+ self.pullout:Close()
+ AceGUI:ClearFocus()
+ else
+ self.open = true
+ self.pullout:SetWidth(self.pulloutWidth or self.frame:GetWidth())
+ self.pullout:Open("TOPLEFT", self.frame, "BOTTOMLEFT", 0, self.label:IsShown() and -2 or 0)
+ AceGUI:SetFocus(self)
+ end
+ end
+
+ local function OnPulloutOpen(this)
+ local self = this.userdata.obj
+ local value = self.value
+
+ if not self.multiselect then
+ for i, item in this:IterateItems() do
+ item:SetValue(item.userdata.value == value)
+ end
+ end
+
+ self.open = true
+ self:Fire("OnOpened")
+ end
+
+ local function OnPulloutClose(this)
+ local self = this.userdata.obj
+ self.open = nil
+ self:Fire("OnClosed")
+ end
+
+ local function ShowMultiText(self)
+ local text
+ for i, widget in self.pullout:IterateItems() do
+ if widget.type == "Dropdown-Item-Toggle" then
+ if widget:GetValue() then
+ if text then
+ text = text..", "..widget:GetText()
+ else
+ text = widget:GetText()
+ end
+ end
+ end
+ end
+ self:SetText(text)
+ end
+
+ local function OnItemValueChanged(this, event, checked)
+ local self = this.userdata.obj
+
+ if self.multiselect then
+ self:Fire("OnValueChanged", this.userdata.value, checked)
+ ShowMultiText(self)
+ else
+ if checked then
+ self:SetValue(this.userdata.value)
+ self:Fire("OnValueChanged", this.userdata.value)
+ else
+ this:SetValue(true)
+ end
+ if self.open then
+ self.pullout:Close()
+ end
+ end
+ end
+
+ --[[ Exported methods ]]--
+
+ -- exported, AceGUI callback
+ local function OnAcquire(self)
+ local pullout = AceGUI:Create("Dropdown-Pullout")
+ self.pullout = pullout
+ pullout.userdata.obj = self
+ pullout:SetCallback("OnClose", OnPulloutClose)
+ pullout:SetCallback("OnOpen", OnPulloutOpen)
+ self.pullout.frame:SetFrameLevel(self.frame:GetFrameLevel() + 1)
+ fixlevels(self.pullout.frame, self.pullout.frame:GetChildren())
+
+ self:SetHeight(44)
+ self:SetWidth(200)
+ self:SetLabel()
+ self:SetPulloutWidth(nil)
+ end
+
+ -- exported, AceGUI callback
+ local function OnRelease(self)
+ if self.open then
+ self.pullout:Close()
+ end
+ AceGUI:Release(self.pullout)
+ self.pullout = nil
+
+ self:SetText("")
+ self:SetDisabled(false)
+ self:SetMultiselect(false)
+
+ self.value = nil
+ self.list = nil
+ self.open = nil
+ self.hasClose = nil
+
+ self.frame:ClearAllPoints()
+ self.frame:Hide()
+ end
+
+ -- exported
+ local function SetDisabled(self, disabled)
+ self.disabled = disabled
+ if disabled then
+ self.text:SetTextColor(0.5,0.5,0.5)
+ self.button:Disable()
+ self.button_cover:Disable()
+ self.label:SetTextColor(0.5,0.5,0.5)
+ else
+ self.button:Enable()
+ self.button_cover:Enable()
+ self.label:SetTextColor(1,.82,0)
+ self.text:SetTextColor(1,1,1)
+ end
+ end
+
+ -- exported
+ local function ClearFocus(self)
+ if self.open then
+ self.pullout:Close()
+ end
+ end
+
+ -- exported
+ local function SetText(self, text)
+ self.text:SetText(text or "")
+ end
+
+ -- exported
+ local function SetLabel(self, text)
+ if text and text ~= "" then
+ self.label:SetText(text)
+ self.label:Show()
+ self.dropdown:SetPoint("TOPLEFT",self.frame,"TOPLEFT",-15,-14)
+ self:SetHeight(40)
+ self.alignoffset = 26
+ else
+ self.label:SetText("")
+ self.label:Hide()
+ self.dropdown:SetPoint("TOPLEFT",self.frame,"TOPLEFT",-15,0)
+ self:SetHeight(26)
+ self.alignoffset = 12
+ end
+ end
+
+ -- exported
+ local function SetValue(self, value)
+ if self.list then
+ self:SetText(self.list[value] or "")
+ end
+ self.value = value
+ end
+
+ -- exported
+ local function GetValue(self)
+ return self.value
+ end
+
+ -- exported
+ local function SetItemValue(self, item, value)
+ if not self.multiselect then return end
+ for i, widget in self.pullout:IterateItems() do
+ if widget.userdata.value == item then
+ if widget.SetValue then
+ widget:SetValue(value)
+ end
+ end
+ end
+ ShowMultiText(self)
+ end
+
+ -- exported
+ local function SetItemDisabled(self, item, disabled)
+ for i, widget in self.pullout:IterateItems() do
+ if widget.userdata.value == item then
+ widget:SetDisabled(disabled)
+ end
+ end
+ end
+
+ local function AddListItem(self, value, text, itemType)
+ if not itemType then itemType = "Dropdown-Item-Toggle" end
+ local exists = AceGUI:GetWidgetVersion(itemType)
+ if not exists then error(("The given item type, %q, does not exist within AceGUI-3.0"):format(tostring(itemType)), 2) end
+
+ local item = AceGUI:Create(itemType)
+ item:SetText(text)
+ item.userdata.obj = self
+ item.userdata.value = value
+ item:SetCallback("OnValueChanged", OnItemValueChanged)
+ self.pullout:AddItem(item)
+ end
+
+ local function AddCloseButton(self)
+ if not self.hasClose then
+ local close = AceGUI:Create("Dropdown-Item-Execute")
+ close:SetText(CLOSE)
+ self.pullout:AddItem(close)
+ self.hasClose = true
+ end
+ end
+
+ -- exported
+ local sortlist = {}
+ local function sortTbl(x,y)
+ local num1, num2 = tonumber(x), tonumber(y)
+ if num1 and num2 then -- numeric comparison, either two numbers or numeric strings
+ return num1 < num2
+ else -- compare everything else tostring'ed
+ return tostring(x) < tostring(y)
+ end
+ end
+ local function SetList(self, list, order, itemType)
+ self.list = list
+ self.pullout:Clear()
+ self.hasClose = nil
+ if not list then return end
+
+ if type(order) ~= "table" then
+ for v in pairs(list) do
+ sortlist[#sortlist + 1] = v
+ end
+ tsort(sortlist, sortTbl)
+
+ for i, key in ipairs(sortlist) do
+ AddListItem(self, key, list[key], itemType)
+ sortlist[i] = nil
+ end
+ else
+ for i, key in ipairs(order) do
+ AddListItem(self, key, list[key], itemType)
+ end
+ end
+ if self.multiselect then
+ ShowMultiText(self)
+ AddCloseButton(self)
+ end
+ end
+
+ -- exported
+ local function AddItem(self, value, text, itemType)
+ if self.list then
+ self.list[value] = text
+ AddListItem(self, value, text, itemType)
+ end
+ end
+
+ -- exported
+ local function SetMultiselect(self, multi)
+ self.multiselect = multi
+ if multi then
+ ShowMultiText(self)
+ AddCloseButton(self)
+ end
+ end
+
+ -- exported
+ local function GetMultiselect(self)
+ return self.multiselect
+ end
+
+ local function SetPulloutWidth(self, width)
+ self.pulloutWidth = width
+ end
+
+ --[[ Constructor ]]--
+
+ local function Constructor()
+ local count = AceGUI:GetNextWidgetNum(widgetType)
+ local frame = CreateFrame("Frame", nil, UIParent)
+ local dropdown = CreateFrame("Frame", "AceGUI30DropDown"..count, frame, "UIDropDownMenuTemplate")
+
+ local self = {}
+ self.type = widgetType
+ self.frame = frame
+ self.dropdown = dropdown
+ self.count = count
+ frame.obj = self
+ dropdown.obj = self
+
+ self.OnRelease = OnRelease
+ self.OnAcquire = OnAcquire
+
+ self.ClearFocus = ClearFocus
+
+ self.SetText = SetText
+ self.SetValue = SetValue
+ self.GetValue = GetValue
+ self.SetList = SetList
+ self.SetLabel = SetLabel
+ self.SetDisabled = SetDisabled
+ self.AddItem = AddItem
+ self.SetMultiselect = SetMultiselect
+ self.GetMultiselect = GetMultiselect
+ self.SetItemValue = SetItemValue
+ self.SetItemDisabled = SetItemDisabled
+ self.SetPulloutWidth = SetPulloutWidth
+
+ self.alignoffset = 26
+
+ frame:SetScript("OnHide",Dropdown_OnHide)
+
+ dropdown:ClearAllPoints()
+ dropdown:SetPoint("TOPLEFT",frame,"TOPLEFT",-15,0)
+ dropdown:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT",17,0)
+ dropdown:SetScript("OnHide", nil)
+
+ local left = _G[dropdown:GetName() .. "Left"]
+ local middle = _G[dropdown:GetName() .. "Middle"]
+ local right = _G[dropdown:GetName() .. "Right"]
+
+ middle:ClearAllPoints()
+ right:ClearAllPoints()
+
+ middle:SetPoint("LEFT", left, "RIGHT", 0, 0)
+ middle:SetPoint("RIGHT", right, "LEFT", 0, 0)
+ right:SetPoint("TOPRIGHT", dropdown, "TOPRIGHT", 0, 17)
+
+ local button = _G[dropdown:GetName() .. "Button"]
+ self.button = button
+ button.obj = self
+ button:SetScript("OnEnter",Control_OnEnter)
+ button:SetScript("OnLeave",Control_OnLeave)
+ button:SetScript("OnClick",Dropdown_TogglePullout)
+
+ local button_cover = CreateFrame("BUTTON",nil,self.frame)
+ self.button_cover = button_cover
+ button_cover.obj = self
+ button_cover:SetPoint("TOPLEFT",self.frame,"BOTTOMLEFT",0,25)
+ button_cover:SetPoint("BOTTOMRIGHT",self.frame,"BOTTOMRIGHT")
+ button_cover:SetScript("OnEnter",Control_OnEnter)
+ button_cover:SetScript("OnLeave",Control_OnLeave)
+ button_cover:SetScript("OnClick",Dropdown_TogglePullout)
+
+ local text = _G[dropdown:GetName() .. "Text"]
+ self.text = text
+ text.obj = self
+ text:ClearAllPoints()
+ text:SetPoint("RIGHT", right, "RIGHT" ,-43, 2)
+ text:SetPoint("LEFT", left, "LEFT", 25, 2)
+
+ local label = frame:CreateFontString(nil,"OVERLAY","GameFontNormalSmall")
+ label:SetPoint("TOPLEFT",frame,"TOPLEFT",0,0)
+ label:SetPoint("TOPRIGHT",frame,"TOPRIGHT",0,0)
+ label:SetJustifyH("LEFT")
+ label:SetHeight(18)
+ label:Hide()
+ self.label = label
+
+ AceGUI:RegisterAsWidget(self)
+ return self
+ end
+
+ AceGUI:RegisterWidgetType(widgetType, Constructor, widgetVersion)
+end
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIWidget-EditBox.lua b/Libs/AceGUI-3.0/widgets/AceGUIWidget-EditBox.lua
new file mode 100644
index 00000000..29f7e00e
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-EditBox.lua
@@ -0,0 +1,263 @@
+--[[-----------------------------------------------------------------------------
+EditBox Widget
+-------------------------------------------------------------------------------]]
+local Type, Version = "EditBox", 28
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local tostring, pairs = tostring, pairs
+
+-- WoW APIs
+local PlaySound = PlaySound
+local GetCursorInfo, ClearCursor, GetSpellInfo = GetCursorInfo, ClearCursor, GetSpellInfo
+local CreateFrame, UIParent = CreateFrame, UIParent
+local _G = _G
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: AceGUIEditBoxInsertLink, ChatFontNormal, OKAY
+
+--[[-----------------------------------------------------------------------------
+Support functions
+-------------------------------------------------------------------------------]]
+if not AceGUIEditBoxInsertLink then
+ -- upgradeable hook
+ hooksecurefunc("ChatEdit_InsertLink", function(...) return _G.AceGUIEditBoxInsertLink(...) end)
+end
+
+function _G.AceGUIEditBoxInsertLink(text)
+ for i = 1, AceGUI:GetWidgetCount(Type) do
+ local editbox = _G["AceGUI-3.0EditBox"..i]
+ if editbox and editbox:IsVisible() and editbox:HasFocus() then
+ editbox:Insert(text)
+ return true
+ end
+ end
+end
+
+local function ShowButton(self)
+ if not self.disablebutton then
+ self.button:Show()
+ self.editbox:SetTextInsets(0, 20, 3, 3)
+ end
+end
+
+local function HideButton(self)
+ self.button:Hide()
+ self.editbox:SetTextInsets(0, 0, 3, 3)
+end
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+local function Control_OnEnter(frame)
+ frame.obj:Fire("OnEnter")
+end
+
+local function Control_OnLeave(frame)
+ frame.obj:Fire("OnLeave")
+end
+
+local function Frame_OnShowFocus(frame)
+ frame.obj.editbox:SetFocus()
+ frame:SetScript("OnShow", nil)
+end
+
+local function EditBox_OnEscapePressed(frame)
+ AceGUI:ClearFocus()
+end
+
+local function EditBox_OnEnterPressed(frame)
+ local self = frame.obj
+ local value = frame:GetText()
+ local cancel = self:Fire("OnEnterPressed", value)
+ if not cancel then
+ PlaySound(856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON
+ HideButton(self)
+ end
+end
+
+local function EditBox_OnReceiveDrag(frame)
+ local self = frame.obj
+ local type, id, info = GetCursorInfo()
+ local name
+ if type == "item" then
+ name = info
+ elseif type == "spell" then
+ name = GetSpellInfo(id, info)
+ elseif type == "macro" then
+ name = GetMacroInfo(id)
+ end
+ if name then
+ self:SetText(name)
+ self:Fire("OnEnterPressed", name)
+ ClearCursor()
+ HideButton(self)
+ AceGUI:ClearFocus()
+ end
+end
+
+local function EditBox_OnTextChanged(frame)
+ local self = frame.obj
+ local value = frame:GetText()
+ if tostring(value) ~= tostring(self.lasttext) then
+ self:Fire("OnTextChanged", value)
+ self.lasttext = value
+ ShowButton(self)
+ end
+end
+
+local function EditBox_OnFocusGained(frame)
+ AceGUI:SetFocus(frame.obj)
+end
+
+local function Button_OnClick(frame)
+ local editbox = frame.obj.editbox
+ editbox:ClearFocus()
+ EditBox_OnEnterPressed(editbox)
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ -- height is controlled by SetLabel
+ self:SetWidth(200)
+ self:SetDisabled(false)
+ self:SetLabel()
+ self:SetText()
+ self:DisableButton(false)
+ self:SetMaxLetters(0)
+ end,
+
+ ["OnRelease"] = function(self)
+ self:ClearFocus()
+ end,
+
+ ["SetDisabled"] = function(self, disabled)
+ self.disabled = disabled
+ if disabled then
+ self.editbox:EnableMouse(false)
+ self.editbox:ClearFocus()
+ self.editbox:SetTextColor(0.5,0.5,0.5)
+ self.label:SetTextColor(0.5,0.5,0.5)
+ else
+ self.editbox:EnableMouse(true)
+ self.editbox:SetTextColor(1,1,1)
+ self.label:SetTextColor(1,.82,0)
+ end
+ end,
+
+ ["SetText"] = function(self, text)
+ self.lasttext = text or ""
+ self.editbox:SetText(text or "")
+ self.editbox:SetCursorPosition(0)
+ HideButton(self)
+ end,
+
+ ["GetText"] = function(self, text)
+ return self.editbox:GetText()
+ end,
+
+ ["SetLabel"] = function(self, text)
+ if text and text ~= "" then
+ self.label:SetText(text)
+ self.label:Show()
+ self.editbox:SetPoint("TOPLEFT",self.frame,"TOPLEFT",7,-18)
+ self:SetHeight(44)
+ self.alignoffset = 30
+ else
+ self.label:SetText("")
+ self.label:Hide()
+ self.editbox:SetPoint("TOPLEFT",self.frame,"TOPLEFT",7,0)
+ self:SetHeight(26)
+ self.alignoffset = 12
+ end
+ end,
+
+ ["DisableButton"] = function(self, disabled)
+ self.disablebutton = disabled
+ if disabled then
+ HideButton(self)
+ end
+ end,
+
+ ["SetMaxLetters"] = function (self, num)
+ self.editbox:SetMaxLetters(num or 0)
+ end,
+
+ ["ClearFocus"] = function(self)
+ self.editbox:ClearFocus()
+ self.frame:SetScript("OnShow", nil)
+ end,
+
+ ["SetFocus"] = function(self)
+ self.editbox:SetFocus()
+ if not self.frame:IsShown() then
+ self.frame:SetScript("OnShow", Frame_OnShowFocus)
+ end
+ end,
+
+ ["HighlightText"] = function(self, from, to)
+ self.editbox:HighlightText(from, to)
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local function Constructor()
+ local num = AceGUI:GetNextWidgetNum(Type)
+ local frame = CreateFrame("Frame", nil, UIParent)
+ frame:Hide()
+
+ local editbox = CreateFrame("EditBox", "AceGUI-3.0EditBox"..num, frame, "InputBoxTemplate")
+ editbox:SetAutoFocus(false)
+ editbox:SetFontObject(ChatFontNormal)
+ editbox:SetScript("OnEnter", Control_OnEnter)
+ editbox:SetScript("OnLeave", Control_OnLeave)
+ editbox:SetScript("OnEscapePressed", EditBox_OnEscapePressed)
+ editbox:SetScript("OnEnterPressed", EditBox_OnEnterPressed)
+ editbox:SetScript("OnTextChanged", EditBox_OnTextChanged)
+ editbox:SetScript("OnReceiveDrag", EditBox_OnReceiveDrag)
+ editbox:SetScript("OnMouseDown", EditBox_OnReceiveDrag)
+ editbox:SetScript("OnEditFocusGained", EditBox_OnFocusGained)
+ editbox:SetTextInsets(0, 0, 3, 3)
+ editbox:SetMaxLetters(256)
+ editbox:SetPoint("BOTTOMLEFT", 6, 0)
+ editbox:SetPoint("BOTTOMRIGHT")
+ editbox:SetHeight(19)
+
+ local label = frame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
+ label:SetPoint("TOPLEFT", 0, -2)
+ label:SetPoint("TOPRIGHT", 0, -2)
+ label:SetJustifyH("LEFT")
+ label:SetHeight(18)
+
+ local button = CreateFrame("Button", nil, editbox, "UIPanelButtonTemplate")
+ button:SetWidth(40)
+ button:SetHeight(20)
+ button:SetPoint("RIGHT", -2, 0)
+ button:SetText(OKAY)
+ button:SetScript("OnClick", Button_OnClick)
+ button:Hide()
+
+ local widget = {
+ alignoffset = 30,
+ editbox = editbox,
+ label = label,
+ button = button,
+ frame = frame,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+ editbox.obj, button.obj = widget, widget
+
+ return AceGUI:RegisterAsWidget(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIWidget-Heading.lua b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Heading.lua
new file mode 100644
index 00000000..862ae88a
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Heading.lua
@@ -0,0 +1,78 @@
+--[[-----------------------------------------------------------------------------
+Heading Widget
+-------------------------------------------------------------------------------]]
+local Type, Version = "Heading", 20
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local pairs = pairs
+
+-- WoW APIs
+local CreateFrame, UIParent = CreateFrame, UIParent
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self:SetText()
+ self:SetFullWidth()
+ self:SetHeight(18)
+ end,
+
+ -- ["OnRelease"] = nil,
+
+ ["SetText"] = function(self, text)
+ self.label:SetText(text or "")
+ if text and text ~= "" then
+ self.left:SetPoint("RIGHT", self.label, "LEFT", -5, 0)
+ self.right:Show()
+ else
+ self.left:SetPoint("RIGHT", -3, 0)
+ self.right:Hide()
+ end
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local function Constructor()
+ local frame = CreateFrame("Frame", nil, UIParent)
+ frame:Hide()
+
+ local label = frame:CreateFontString(nil, "BACKGROUND", "GameFontNormal")
+ label:SetPoint("TOP")
+ label:SetPoint("BOTTOM")
+ label:SetJustifyH("CENTER")
+
+ local left = frame:CreateTexture(nil, "BACKGROUND")
+ left:SetHeight(8)
+ left:SetPoint("LEFT", 3, 0)
+ left:SetPoint("RIGHT", label, "LEFT", -5, 0)
+ left:SetTexture(137057) -- Interface\\Tooltips\\UI-Tooltip-Border
+ left:SetTexCoord(0.81, 0.94, 0.5, 1)
+
+ local right = frame:CreateTexture(nil, "BACKGROUND")
+ right:SetHeight(8)
+ right:SetPoint("RIGHT", -3, 0)
+ right:SetPoint("LEFT", label, "RIGHT", 5, 0)
+ right:SetTexture(137057) -- Interface\\Tooltips\\UI-Tooltip-Border
+ right:SetTexCoord(0.81, 0.94, 0.5, 1)
+
+ local widget = {
+ label = label,
+ left = left,
+ right = right,
+ frame = frame,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+
+ return AceGUI:RegisterAsWidget(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIWidget-Icon.lua b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Icon.lua
new file mode 100644
index 00000000..378e8132
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Icon.lua
@@ -0,0 +1,140 @@
+--[[-----------------------------------------------------------------------------
+Icon Widget
+-------------------------------------------------------------------------------]]
+local Type, Version = "Icon", 21
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local select, pairs, print = select, pairs, print
+
+-- WoW APIs
+local CreateFrame, UIParent = CreateFrame, UIParent
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+local function Control_OnEnter(frame)
+ frame.obj:Fire("OnEnter")
+end
+
+local function Control_OnLeave(frame)
+ frame.obj:Fire("OnLeave")
+end
+
+local function Button_OnClick(frame, button)
+ frame.obj:Fire("OnClick", button)
+ AceGUI:ClearFocus()
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self:SetHeight(110)
+ self:SetWidth(110)
+ self:SetLabel()
+ self:SetImage(nil)
+ self:SetImageSize(64, 64)
+ self:SetDisabled(false)
+ end,
+
+ -- ["OnRelease"] = nil,
+
+ ["SetLabel"] = function(self, text)
+ if text and text ~= "" then
+ self.label:Show()
+ self.label:SetText(text)
+ self:SetHeight(self.image:GetHeight() + 25)
+ else
+ self.label:Hide()
+ self:SetHeight(self.image:GetHeight() + 10)
+ end
+ end,
+
+ ["SetImage"] = function(self, path, ...)
+ local image = self.image
+ image:SetTexture(path)
+
+ if image:GetTexture() then
+ local n = select("#", ...)
+ if n == 4 or n == 8 then
+ image:SetTexCoord(...)
+ else
+ image:SetTexCoord(0, 1, 0, 1)
+ end
+ end
+ end,
+
+ ["SetImageSize"] = function(self, width, height)
+ self.image:SetWidth(width)
+ self.image:SetHeight(height)
+ --self.frame:SetWidth(width + 30)
+ if self.label:IsShown() then
+ self:SetHeight(height + 25)
+ else
+ self:SetHeight(height + 10)
+ end
+ end,
+
+ ["SetDisabled"] = function(self, disabled)
+ self.disabled = disabled
+ if disabled then
+ self.frame:Disable()
+ self.label:SetTextColor(0.5, 0.5, 0.5)
+ self.image:SetVertexColor(0.5, 0.5, 0.5, 0.5)
+ else
+ self.frame:Enable()
+ self.label:SetTextColor(1, 1, 1)
+ self.image:SetVertexColor(1, 1, 1, 1)
+ end
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local function Constructor()
+ local frame = CreateFrame("Button", nil, UIParent)
+ frame:Hide()
+
+ frame:EnableMouse(true)
+ frame:SetScript("OnEnter", Control_OnEnter)
+ frame:SetScript("OnLeave", Control_OnLeave)
+ frame:SetScript("OnClick", Button_OnClick)
+
+ local label = frame:CreateFontString(nil, "BACKGROUND", "GameFontHighlight")
+ label:SetPoint("BOTTOMLEFT")
+ label:SetPoint("BOTTOMRIGHT")
+ label:SetJustifyH("CENTER")
+ label:SetJustifyV("TOP")
+ label:SetHeight(18)
+
+ local image = frame:CreateTexture(nil, "BACKGROUND")
+ image:SetWidth(64)
+ image:SetHeight(64)
+ image:SetPoint("TOP", 0, -5)
+
+ local highlight = frame:CreateTexture(nil, "HIGHLIGHT")
+ highlight:SetAllPoints(image)
+ highlight:SetTexture(136580) -- Interface\\PaperDollInfoFrame\\UI-Character-Tab-Highlight
+ highlight:SetTexCoord(0, 1, 0.23, 0.77)
+ highlight:SetBlendMode("ADD")
+
+ local widget = {
+ label = label,
+ image = image,
+ frame = frame,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+
+ widget.SetText = function(self, ...) print("AceGUI-3.0-Icon: SetText is deprecated! Use SetLabel instead!"); self:SetLabel(...) end
+
+ return AceGUI:RegisterAsWidget(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIWidget-InteractiveLabel.lua b/Libs/AceGUI-3.0/widgets/AceGUIWidget-InteractiveLabel.lua
new file mode 100644
index 00000000..255dd977
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-InteractiveLabel.lua
@@ -0,0 +1,94 @@
+--[[-----------------------------------------------------------------------------
+InteractiveLabel Widget
+-------------------------------------------------------------------------------]]
+local Type, Version = "InteractiveLabel", 21
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local select, pairs = select, pairs
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+local function Control_OnEnter(frame)
+ frame.obj:Fire("OnEnter")
+end
+
+local function Control_OnLeave(frame)
+ frame.obj:Fire("OnLeave")
+end
+
+local function Label_OnClick(frame, button)
+ frame.obj:Fire("OnClick", button)
+ AceGUI:ClearFocus()
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self:LabelOnAcquire()
+ self:SetHighlight()
+ self:SetHighlightTexCoord()
+ self:SetDisabled(false)
+ end,
+
+ -- ["OnRelease"] = nil,
+
+ ["SetHighlight"] = function(self, ...)
+ self.highlight:SetTexture(...)
+ end,
+
+ ["SetHighlightTexCoord"] = function(self, ...)
+ local c = select("#", ...)
+ if c == 4 or c == 8 then
+ self.highlight:SetTexCoord(...)
+ else
+ self.highlight:SetTexCoord(0, 1, 0, 1)
+ end
+ end,
+
+ ["SetDisabled"] = function(self,disabled)
+ self.disabled = disabled
+ if disabled then
+ self.frame:EnableMouse(false)
+ self.label:SetTextColor(0.5, 0.5, 0.5)
+ else
+ self.frame:EnableMouse(true)
+ self.label:SetTextColor(1, 1, 1)
+ end
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local function Constructor()
+ -- create a Label type that we will hijack
+ local label = AceGUI:Create("Label")
+
+ local frame = label.frame
+ frame:EnableMouse(true)
+ frame:SetScript("OnEnter", Control_OnEnter)
+ frame:SetScript("OnLeave", Control_OnLeave)
+ frame:SetScript("OnMouseDown", Label_OnClick)
+
+ local highlight = frame:CreateTexture(nil, "HIGHLIGHT")
+ highlight:SetTexture(nil)
+ highlight:SetAllPoints()
+ highlight:SetBlendMode("ADD")
+
+ label.highlight = highlight
+ label.type = Type
+ label.LabelOnAcquire = label.OnAcquire
+ for method, func in pairs(methods) do
+ label[method] = func
+ end
+
+ return label
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
+
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIWidget-Keybinding.lua b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Keybinding.lua
new file mode 100644
index 00000000..ec4cead4
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Keybinding.lua
@@ -0,0 +1,249 @@
+--[[-----------------------------------------------------------------------------
+Keybinding Widget
+Set Keybindings in the Config UI.
+-------------------------------------------------------------------------------]]
+local Type, Version = "Keybinding", 25
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local pairs = pairs
+
+-- WoW APIs
+local IsShiftKeyDown, IsControlKeyDown, IsAltKeyDown = IsShiftKeyDown, IsControlKeyDown, IsAltKeyDown
+local CreateFrame, UIParent = CreateFrame, UIParent
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: NOT_BOUND
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+
+local function Control_OnEnter(frame)
+ frame.obj:Fire("OnEnter")
+end
+
+local function Control_OnLeave(frame)
+ frame.obj:Fire("OnLeave")
+end
+
+local function Keybinding_OnClick(frame, button)
+ if button == "LeftButton" or button == "RightButton" then
+ local self = frame.obj
+ if self.waitingForKey then
+ frame:EnableKeyboard(false)
+ frame:EnableMouseWheel(false)
+ self.msgframe:Hide()
+ frame:UnlockHighlight()
+ self.waitingForKey = nil
+ else
+ frame:EnableKeyboard(true)
+ frame:EnableMouseWheel(true)
+ self.msgframe:Show()
+ frame:LockHighlight()
+ self.waitingForKey = true
+ end
+ end
+ AceGUI:ClearFocus()
+end
+
+local ignoreKeys = {
+ ["BUTTON1"] = true, ["BUTTON2"] = true,
+ ["UNKNOWN"] = true,
+ ["LSHIFT"] = true, ["LCTRL"] = true, ["LALT"] = true,
+ ["RSHIFT"] = true, ["RCTRL"] = true, ["RALT"] = true,
+}
+local function Keybinding_OnKeyDown(frame, key)
+ local self = frame.obj
+ if self.waitingForKey then
+ local keyPressed = key
+ if keyPressed == "ESCAPE" then
+ keyPressed = ""
+ else
+ if ignoreKeys[keyPressed] then return end
+ if IsShiftKeyDown() then
+ keyPressed = "SHIFT-"..keyPressed
+ end
+ if IsControlKeyDown() then
+ keyPressed = "CTRL-"..keyPressed
+ end
+ if IsAltKeyDown() then
+ keyPressed = "ALT-"..keyPressed
+ end
+ end
+
+ frame:EnableKeyboard(false)
+ frame:EnableMouseWheel(false)
+ self.msgframe:Hide()
+ frame:UnlockHighlight()
+ self.waitingForKey = nil
+
+ if not self.disabled then
+ self:SetKey(keyPressed)
+ self:Fire("OnKeyChanged", keyPressed)
+ end
+ end
+end
+
+local function Keybinding_OnMouseDown(frame, button)
+ if button == "LeftButton" or button == "RightButton" then
+ return
+ elseif button == "MiddleButton" then
+ button = "BUTTON3"
+ elseif button == "Button4" then
+ button = "BUTTON4"
+ elseif button == "Button5" then
+ button = "BUTTON5"
+ end
+ Keybinding_OnKeyDown(frame, button)
+end
+
+local function Keybinding_OnMouseWheel(frame, direction)
+ local button
+ if direction >= 0 then
+ button = "MOUSEWHEELUP"
+ else
+ button = "MOUSEWHEELDOWN"
+ end
+ Keybinding_OnKeyDown(frame, button)
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self:SetWidth(200)
+ self:SetLabel("")
+ self:SetKey("")
+ self.waitingForKey = nil
+ self.msgframe:Hide()
+ self:SetDisabled(false)
+ self.button:EnableKeyboard(false)
+ self.button:EnableMouseWheel(false)
+ end,
+
+ -- ["OnRelease"] = nil,
+
+ ["SetDisabled"] = function(self, disabled)
+ self.disabled = disabled
+ if disabled then
+ self.button:Disable()
+ self.label:SetTextColor(0.5,0.5,0.5)
+ else
+ self.button:Enable()
+ self.label:SetTextColor(1,1,1)
+ end
+ end,
+
+ ["SetKey"] = function(self, key)
+ if (key or "") == "" then
+ self.button:SetText(NOT_BOUND)
+ self.button:SetNormalFontObject("GameFontNormal")
+ else
+ self.button:SetText(key)
+ self.button:SetNormalFontObject("GameFontHighlight")
+ end
+ end,
+
+ ["GetKey"] = function(self)
+ local key = self.button:GetText()
+ if key == NOT_BOUND then
+ key = nil
+ end
+ return key
+ end,
+
+ ["SetLabel"] = function(self, label)
+ self.label:SetText(label or "")
+ if (label or "") == "" then
+ self.alignoffset = nil
+ self:SetHeight(24)
+ else
+ self.alignoffset = 30
+ self:SetHeight(44)
+ end
+ end,
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+
+local ControlBackdrop = {
+ bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
+ edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
+ tile = true, tileSize = 16, edgeSize = 16,
+ insets = { left = 3, right = 3, top = 3, bottom = 3 }
+}
+
+local function keybindingMsgFixWidth(frame)
+ frame:SetWidth(frame.msg:GetWidth() + 10)
+ frame:SetScript("OnUpdate", nil)
+end
+
+local function Constructor()
+ local name = "AceGUI30KeybindingButton" .. AceGUI:GetNextWidgetNum(Type)
+
+ local frame = CreateFrame("Frame", nil, UIParent)
+ local button = CreateFrame("Button", name, frame, "UIPanelButtonTemplate")
+
+ button:EnableMouse(true)
+ button:EnableMouseWheel(false)
+ button:RegisterForClicks("AnyDown")
+ button:SetScript("OnEnter", Control_OnEnter)
+ button:SetScript("OnLeave", Control_OnLeave)
+ button:SetScript("OnClick", Keybinding_OnClick)
+ button:SetScript("OnKeyDown", Keybinding_OnKeyDown)
+ button:SetScript("OnMouseDown", Keybinding_OnMouseDown)
+ button:SetScript("OnMouseWheel", Keybinding_OnMouseWheel)
+ button:SetPoint("BOTTOMLEFT")
+ button:SetPoint("BOTTOMRIGHT")
+ button:SetHeight(24)
+ button:EnableKeyboard(false)
+
+ local text = button:GetFontString()
+ text:SetPoint("LEFT", 7, 0)
+ text:SetPoint("RIGHT", -7, 0)
+
+ local label = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight")
+ label:SetPoint("TOPLEFT")
+ label:SetPoint("TOPRIGHT")
+ label:SetJustifyH("CENTER")
+ label:SetHeight(18)
+
+ local msgframe = CreateFrame("Frame", nil, UIParent)
+ msgframe:SetHeight(30)
+ msgframe:SetBackdrop(ControlBackdrop)
+ msgframe:SetBackdropColor(0,0,0)
+ msgframe:SetFrameStrata("FULLSCREEN_DIALOG")
+ msgframe:SetFrameLevel(1000)
+ msgframe:SetToplevel(true)
+
+ local msg = msgframe:CreateFontString(nil, "OVERLAY", "GameFontNormal")
+ msg:SetText("Press a key to bind, ESC to clear the binding or click the button again to cancel.")
+ msgframe.msg = msg
+ msg:SetPoint("TOPLEFT", 5, -5)
+ msgframe:SetScript("OnUpdate", keybindingMsgFixWidth)
+ msgframe:SetPoint("BOTTOM", button, "TOP")
+ msgframe:Hide()
+
+ local widget = {
+ button = button,
+ label = label,
+ msgframe = msgframe,
+ frame = frame,
+ alignoffset = 30,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+ button.obj = widget
+
+ return AceGUI:RegisterAsWidget(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIWidget-Label.lua b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Label.lua
new file mode 100644
index 00000000..eec999e3
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Label.lua
@@ -0,0 +1,178 @@
+--[[-----------------------------------------------------------------------------
+Label Widget
+Displays text and optionally an icon.
+-------------------------------------------------------------------------------]]
+local Type, Version = "Label", 26
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local max, select, pairs = math.max, select, pairs
+
+-- WoW APIs
+local CreateFrame, UIParent = CreateFrame, UIParent
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: GameFontHighlightSmall
+
+--[[-----------------------------------------------------------------------------
+Support functions
+-------------------------------------------------------------------------------]]
+
+local function UpdateImageAnchor(self)
+ if self.resizing then return end
+ local frame = self.frame
+ local width = frame.width or frame:GetWidth() or 0
+ local image = self.image
+ local label = self.label
+ local height
+
+ label:ClearAllPoints()
+ image:ClearAllPoints()
+
+ if self.imageshown then
+ local imagewidth = image:GetWidth()
+ if (width - imagewidth) < 200 or (label:GetText() or "") == "" then
+ -- image goes on top centered when less than 200 width for the text, or if there is no text
+ image:SetPoint("TOP")
+ label:SetPoint("TOP", image, "BOTTOM")
+ label:SetPoint("LEFT")
+ label:SetWidth(width)
+ height = image:GetHeight() + label:GetStringHeight()
+ else
+ -- image on the left
+ image:SetPoint("TOPLEFT")
+ if image:GetHeight() > label:GetStringHeight() then
+ label:SetPoint("LEFT", image, "RIGHT", 4, 0)
+ else
+ label:SetPoint("TOPLEFT", image, "TOPRIGHT", 4, 0)
+ end
+ label:SetWidth(width - imagewidth - 4)
+ height = max(image:GetHeight(), label:GetStringHeight())
+ end
+ else
+ -- no image shown
+ label:SetPoint("TOPLEFT")
+ label:SetWidth(width)
+ height = label:GetStringHeight()
+ end
+
+ -- avoid zero-height labels, since they can used as spacers
+ if not height or height == 0 then
+ height = 1
+ end
+
+ self.resizing = true
+ frame:SetHeight(height)
+ frame.height = height
+ self.resizing = nil
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ -- set the flag to stop constant size updates
+ self.resizing = true
+ -- height is set dynamically by the text and image size
+ self:SetWidth(200)
+ self:SetText()
+ self:SetImage(nil)
+ self:SetImageSize(16, 16)
+ self:SetColor()
+ self:SetFontObject()
+ self:SetJustifyH("LEFT")
+ self:SetJustifyV("TOP")
+
+ -- reset the flag
+ self.resizing = nil
+ -- run the update explicitly
+ UpdateImageAnchor(self)
+ end,
+
+ -- ["OnRelease"] = nil,
+
+ ["OnWidthSet"] = function(self, width)
+ UpdateImageAnchor(self)
+ end,
+
+ ["SetText"] = function(self, text)
+ self.label:SetText(text)
+ UpdateImageAnchor(self)
+ end,
+
+ ["SetColor"] = function(self, r, g, b)
+ if not (r and g and b) then
+ r, g, b = 1, 1, 1
+ end
+ self.label:SetVertexColor(r, g, b)
+ end,
+
+ ["SetImage"] = function(self, path, ...)
+ local image = self.image
+ image:SetTexture(path)
+
+ if image:GetTexture() then
+ self.imageshown = true
+ local n = select("#", ...)
+ if n == 4 or n == 8 then
+ image:SetTexCoord(...)
+ else
+ image:SetTexCoord(0, 1, 0, 1)
+ end
+ else
+ self.imageshown = nil
+ end
+ UpdateImageAnchor(self)
+ end,
+
+ ["SetFont"] = function(self, font, height, flags)
+ self.label:SetFont(font, height, flags)
+ end,
+
+ ["SetFontObject"] = function(self, font)
+ self:SetFont((font or GameFontHighlightSmall):GetFont())
+ end,
+
+ ["SetImageSize"] = function(self, width, height)
+ self.image:SetWidth(width)
+ self.image:SetHeight(height)
+ UpdateImageAnchor(self)
+ end,
+
+ ["SetJustifyH"] = function(self, justifyH)
+ self.label:SetJustifyH(justifyH)
+ end,
+
+ ["SetJustifyV"] = function(self, justifyV)
+ self.label:SetJustifyV(justifyV)
+ end,
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local function Constructor()
+ local frame = CreateFrame("Frame", nil, UIParent)
+ frame:Hide()
+
+ local label = frame:CreateFontString(nil, "BACKGROUND", "GameFontHighlightSmall")
+ local image = frame:CreateTexture(nil, "BACKGROUND")
+
+ -- create widget
+ local widget = {
+ label = label,
+ image = image,
+ frame = frame,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+
+ return AceGUI:RegisterAsWidget(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIWidget-MultiLineEditBox.lua b/Libs/AceGUI-3.0/widgets/AceGUIWidget-MultiLineEditBox.lua
new file mode 100644
index 00000000..f7021107
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-MultiLineEditBox.lua
@@ -0,0 +1,366 @@
+local Type, Version = "MultiLineEditBox", 28
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local pairs = pairs
+
+-- WoW APIs
+local GetCursorInfo, GetSpellInfo, ClearCursor = GetCursorInfo, GetSpellInfo, ClearCursor
+local CreateFrame, UIParent = CreateFrame, UIParent
+local _G = _G
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: ACCEPT, ChatFontNormal
+
+--[[-----------------------------------------------------------------------------
+Support functions
+-------------------------------------------------------------------------------]]
+
+if not AceGUIMultiLineEditBoxInsertLink then
+ -- upgradeable hook
+ hooksecurefunc("ChatEdit_InsertLink", function(...) return _G.AceGUIMultiLineEditBoxInsertLink(...) end)
+end
+
+function _G.AceGUIMultiLineEditBoxInsertLink(text)
+ for i = 1, AceGUI:GetWidgetCount(Type) do
+ local editbox = _G[("MultiLineEditBox%uEdit"):format(i)]
+ if editbox and editbox:IsVisible() and editbox:HasFocus() then
+ editbox:Insert(text)
+ return true
+ end
+ end
+end
+
+
+local function Layout(self)
+ self:SetHeight(self.numlines * 14 + (self.disablebutton and 19 or 41) + self.labelHeight)
+
+ if self.labelHeight == 0 then
+ self.scrollBar:SetPoint("TOP", self.frame, "TOP", 0, -23)
+ else
+ self.scrollBar:SetPoint("TOP", self.label, "BOTTOM", 0, -19)
+ end
+
+ if self.disablebutton then
+ self.scrollBar:SetPoint("BOTTOM", self.frame, "BOTTOM", 0, 21)
+ self.scrollBG:SetPoint("BOTTOMLEFT", 0, 4)
+ else
+ self.scrollBar:SetPoint("BOTTOM", self.button, "TOP", 0, 18)
+ self.scrollBG:SetPoint("BOTTOMLEFT", self.button, "TOPLEFT")
+ end
+end
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+local function OnClick(self) -- Button
+ self = self.obj
+ self.editBox:ClearFocus()
+ if not self:Fire("OnEnterPressed", self.editBox:GetText()) then
+ self.button:Disable()
+ end
+end
+
+local function OnCursorChanged(self, _, y, _, cursorHeight) -- EditBox
+ self, y = self.obj.scrollFrame, -y
+ local offset = self:GetVerticalScroll()
+ if y < offset then
+ self:SetVerticalScroll(y)
+ else
+ y = y + cursorHeight - self:GetHeight()
+ if y > offset then
+ self:SetVerticalScroll(y)
+ end
+ end
+end
+
+local function OnEditFocusLost(self) -- EditBox
+ self:HighlightText(0, 0)
+ self.obj:Fire("OnEditFocusLost")
+end
+
+local function OnEnter(self) -- EditBox / ScrollFrame
+ self = self.obj
+ if not self.entered then
+ self.entered = true
+ self:Fire("OnEnter")
+ end
+end
+
+local function OnLeave(self) -- EditBox / ScrollFrame
+ self = self.obj
+ if self.entered then
+ self.entered = nil
+ self:Fire("OnLeave")
+ end
+end
+
+local function OnMouseUp(self) -- ScrollFrame
+ self = self.obj.editBox
+ self:SetFocus()
+ self:SetCursorPosition(self:GetNumLetters())
+end
+
+local function OnReceiveDrag(self) -- EditBox / ScrollFrame
+ local type, id, info = GetCursorInfo()
+ if type == "spell" then
+ info = GetSpellInfo(id, info)
+ elseif type ~= "item" then
+ return
+ end
+ ClearCursor()
+ self = self.obj
+ local editBox = self.editBox
+ if not editBox:HasFocus() then
+ editBox:SetFocus()
+ editBox:SetCursorPosition(editBox:GetNumLetters())
+ end
+ editBox:Insert(info)
+ self.button:Enable()
+end
+
+local function OnSizeChanged(self, width, height) -- ScrollFrame
+ self.obj.editBox:SetWidth(width)
+end
+
+local function OnTextChanged(self, userInput) -- EditBox
+ if userInput then
+ self = self.obj
+ self:Fire("OnTextChanged", self.editBox:GetText())
+ self.button:Enable()
+ end
+end
+
+local function OnTextSet(self) -- EditBox
+ self:HighlightText(0, 0)
+ self:SetCursorPosition(self:GetNumLetters())
+ self:SetCursorPosition(0)
+ self.obj.button:Disable()
+end
+
+local function OnVerticalScroll(self, offset) -- ScrollFrame
+ local editBox = self.obj.editBox
+ editBox:SetHitRectInsets(0, 0, offset, editBox:GetHeight() - offset - self:GetHeight())
+end
+
+local function OnShowFocus(frame)
+ frame.obj.editBox:SetFocus()
+ frame:SetScript("OnShow", nil)
+end
+
+local function OnEditFocusGained(frame)
+ AceGUI:SetFocus(frame.obj)
+ frame.obj:Fire("OnEditFocusGained")
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self.editBox:SetText("")
+ self:SetDisabled(false)
+ self:SetWidth(200)
+ self:DisableButton(false)
+ self:SetNumLines()
+ self.entered = nil
+ self:SetMaxLetters(0)
+ end,
+
+ ["OnRelease"] = function(self)
+ self:ClearFocus()
+ end,
+
+ ["SetDisabled"] = function(self, disabled)
+ local editBox = self.editBox
+ if disabled then
+ editBox:ClearFocus()
+ editBox:EnableMouse(false)
+ editBox:SetTextColor(0.5, 0.5, 0.5)
+ self.label:SetTextColor(0.5, 0.5, 0.5)
+ self.scrollFrame:EnableMouse(false)
+ self.button:Disable()
+ else
+ editBox:EnableMouse(true)
+ editBox:SetTextColor(1, 1, 1)
+ self.label:SetTextColor(1, 0.82, 0)
+ self.scrollFrame:EnableMouse(true)
+ end
+ end,
+
+ ["SetLabel"] = function(self, text)
+ if text and text ~= "" then
+ self.label:SetText(text)
+ if self.labelHeight ~= 10 then
+ self.labelHeight = 10
+ self.label:Show()
+ end
+ elseif self.labelHeight ~= 0 then
+ self.labelHeight = 0
+ self.label:Hide()
+ end
+ Layout(self)
+ end,
+
+ ["SetNumLines"] = function(self, value)
+ if not value or value < 4 then
+ value = 4
+ end
+ self.numlines = value
+ Layout(self)
+ end,
+
+ ["SetText"] = function(self, text)
+ self.editBox:SetText(text)
+ end,
+
+ ["GetText"] = function(self)
+ return self.editBox:GetText()
+ end,
+
+ ["SetMaxLetters"] = function (self, num)
+ self.editBox:SetMaxLetters(num or 0)
+ end,
+
+ ["DisableButton"] = function(self, disabled)
+ self.disablebutton = disabled
+ if disabled then
+ self.button:Hide()
+ else
+ self.button:Show()
+ end
+ Layout(self)
+ end,
+
+ ["ClearFocus"] = function(self)
+ self.editBox:ClearFocus()
+ self.frame:SetScript("OnShow", nil)
+ end,
+
+ ["SetFocus"] = function(self)
+ self.editBox:SetFocus()
+ if not self.frame:IsShown() then
+ self.frame:SetScript("OnShow", OnShowFocus)
+ end
+ end,
+
+ ["HighlightText"] = function(self, from, to)
+ self.editBox:HighlightText(from, to)
+ end,
+
+ ["GetCursorPosition"] = function(self)
+ return self.editBox:GetCursorPosition()
+ end,
+
+ ["SetCursorPosition"] = function(self, ...)
+ return self.editBox:SetCursorPosition(...)
+ end,
+
+
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local backdrop = {
+ bgFile = [[Interface\Tooltips\UI-Tooltip-Background]],
+ edgeFile = [[Interface\Tooltips\UI-Tooltip-Border]], edgeSize = 16,
+ insets = { left = 4, right = 3, top = 4, bottom = 3 }
+}
+
+local function Constructor()
+ local frame = CreateFrame("Frame", nil, UIParent)
+ frame:Hide()
+
+ local widgetNum = AceGUI:GetNextWidgetNum(Type)
+
+ local label = frame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
+ label:SetPoint("TOPLEFT", frame, "TOPLEFT", 0, -4)
+ label:SetPoint("TOPRIGHT", frame, "TOPRIGHT", 0, -4)
+ label:SetJustifyH("LEFT")
+ label:SetText(ACCEPT)
+ label:SetHeight(10)
+
+ local button = CreateFrame("Button", ("%s%dButton"):format(Type, widgetNum), frame, "UIPanelButtonTemplate")
+ button:SetPoint("BOTTOMLEFT", 0, 4)
+ button:SetHeight(22)
+ button:SetWidth(label:GetStringWidth() + 24)
+ button:SetText(ACCEPT)
+ button:SetScript("OnClick", OnClick)
+ button:Disable()
+
+ local text = button:GetFontString()
+ text:ClearAllPoints()
+ text:SetPoint("TOPLEFT", button, "TOPLEFT", 5, -5)
+ text:SetPoint("BOTTOMRIGHT", button, "BOTTOMRIGHT", -5, 1)
+ text:SetJustifyV("MIDDLE")
+
+ local scrollBG = CreateFrame("Frame", nil, frame)
+ scrollBG:SetBackdrop(backdrop)
+ scrollBG:SetBackdropColor(0, 0, 0)
+ scrollBG:SetBackdropBorderColor(0.4, 0.4, 0.4)
+
+ local scrollFrame = CreateFrame("ScrollFrame", ("%s%dScrollFrame"):format(Type, widgetNum), frame, "UIPanelScrollFrameTemplate")
+
+ local scrollBar = _G[scrollFrame:GetName() .. "ScrollBar"]
+ scrollBar:ClearAllPoints()
+ scrollBar:SetPoint("TOP", label, "BOTTOM", 0, -19)
+ scrollBar:SetPoint("BOTTOM", button, "TOP", 0, 18)
+ scrollBar:SetPoint("RIGHT", frame, "RIGHT")
+
+ scrollBG:SetPoint("TOPRIGHT", scrollBar, "TOPLEFT", 0, 19)
+ scrollBG:SetPoint("BOTTOMLEFT", button, "TOPLEFT")
+
+ scrollFrame:SetPoint("TOPLEFT", scrollBG, "TOPLEFT", 5, -6)
+ scrollFrame:SetPoint("BOTTOMRIGHT", scrollBG, "BOTTOMRIGHT", -4, 4)
+ scrollFrame:SetScript("OnEnter", OnEnter)
+ scrollFrame:SetScript("OnLeave", OnLeave)
+ scrollFrame:SetScript("OnMouseUp", OnMouseUp)
+ scrollFrame:SetScript("OnReceiveDrag", OnReceiveDrag)
+ scrollFrame:SetScript("OnSizeChanged", OnSizeChanged)
+ scrollFrame:HookScript("OnVerticalScroll", OnVerticalScroll)
+
+ local editBox = CreateFrame("EditBox", ("%s%dEdit"):format(Type, widgetNum), scrollFrame)
+ editBox:SetAllPoints()
+ editBox:SetFontObject(ChatFontNormal)
+ editBox:SetMultiLine(true)
+ editBox:EnableMouse(true)
+ editBox:SetAutoFocus(false)
+ editBox:SetCountInvisibleLetters(false)
+ editBox:SetScript("OnCursorChanged", OnCursorChanged)
+ editBox:SetScript("OnEditFocusLost", OnEditFocusLost)
+ editBox:SetScript("OnEnter", OnEnter)
+ editBox:SetScript("OnEscapePressed", editBox.ClearFocus)
+ editBox:SetScript("OnLeave", OnLeave)
+ editBox:SetScript("OnMouseDown", OnReceiveDrag)
+ editBox:SetScript("OnReceiveDrag", OnReceiveDrag)
+ editBox:SetScript("OnTextChanged", OnTextChanged)
+ editBox:SetScript("OnTextSet", OnTextSet)
+ editBox:SetScript("OnEditFocusGained", OnEditFocusGained)
+
+
+ scrollFrame:SetScrollChild(editBox)
+
+ local widget = {
+ button = button,
+ editBox = editBox,
+ frame = frame,
+ label = label,
+ labelHeight = 10,
+ numlines = 4,
+ scrollBar = scrollBar,
+ scrollBG = scrollBG,
+ scrollFrame = scrollFrame,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+ button.obj, editBox.obj, scrollFrame.obj = widget, widget, widget
+
+ return AceGUI:RegisterAsWidget(widget)
+end
+
+AceGUI:RegisterWidgetType(Type, Constructor, Version)
diff --git a/Libs/AceGUI-3.0/widgets/AceGUIWidget-Slider.lua b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Slider.lua
new file mode 100644
index 00000000..019c84e2
--- /dev/null
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Slider.lua
@@ -0,0 +1,284 @@
+--[[-----------------------------------------------------------------------------
+Slider Widget
+Graphical Slider, like, for Range values.
+-------------------------------------------------------------------------------]]
+local Type, Version = "Slider", 22
+local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
+if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
+
+-- Lua APIs
+local min, max, floor = math.min, math.max, math.floor
+local tonumber, pairs = tonumber, pairs
+
+-- WoW APIs
+local PlaySound = PlaySound
+local CreateFrame, UIParent = CreateFrame, UIParent
+
+-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
+-- List them here for Mikk's FindGlobals script
+-- GLOBALS: GameFontHighlightSmall
+
+--[[-----------------------------------------------------------------------------
+Support functions
+-------------------------------------------------------------------------------]]
+local function UpdateText(self)
+ local value = self.value or 0
+ if self.ispercent then
+ self.editbox:SetText(("%s%%"):format(floor(value * 1000 + 0.5) / 10))
+ else
+ self.editbox:SetText(floor(value * 100 + 0.5) / 100)
+ end
+end
+
+local function UpdateLabels(self)
+ local min, max = (self.min or 0), (self.max or 100)
+ if self.ispercent then
+ self.lowtext:SetFormattedText("%s%%", (min * 100))
+ self.hightext:SetFormattedText("%s%%", (max * 100))
+ else
+ self.lowtext:SetText(min)
+ self.hightext:SetText(max)
+ end
+end
+
+--[[-----------------------------------------------------------------------------
+Scripts
+-------------------------------------------------------------------------------]]
+local function Control_OnEnter(frame)
+ frame.obj:Fire("OnEnter")
+end
+
+local function Control_OnLeave(frame)
+ frame.obj:Fire("OnLeave")
+end
+
+local function Frame_OnMouseDown(frame)
+ frame.obj.slider:EnableMouseWheel(true)
+ AceGUI:ClearFocus()
+end
+
+local function Slider_OnValueChanged(frame, newvalue)
+ local self = frame.obj
+ if not frame.setup then
+ if self.step and self.step > 0 then
+ local min_value = self.min or 0
+ newvalue = floor((newvalue - min_value) / self.step + 0.5) * self.step + min_value
+ end
+ if newvalue ~= self.value and not self.disabled then
+ self.value = newvalue
+ self:Fire("OnValueChanged", newvalue)
+ end
+ if self.value then
+ UpdateText(self)
+ end
+ end
+end
+
+local function Slider_OnMouseUp(frame)
+ local self = frame.obj
+ self:Fire("OnMouseUp", self.value)
+end
+
+local function Slider_OnMouseWheel(frame, v)
+ local self = frame.obj
+ if not self.disabled then
+ local value = self.value
+ if v > 0 then
+ value = min(value + (self.step or 1), self.max)
+ else
+ value = max(value - (self.step or 1), self.min)
+ end
+ self.slider:SetValue(value)
+ end
+end
+
+local function EditBox_OnEscapePressed(frame)
+ frame:ClearFocus()
+end
+
+local function EditBox_OnEnterPressed(frame)
+ local self = frame.obj
+ local value = frame:GetText()
+ if self.ispercent then
+ value = value:gsub('%%', '')
+ value = tonumber(value) / 100
+ else
+ value = tonumber(value)
+ end
+
+ if value then
+ PlaySound(856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON
+ self.slider:SetValue(value)
+ self:Fire("OnMouseUp", value)
+ end
+end
+
+local function EditBox_OnEnter(frame)
+ frame:SetBackdropBorderColor(0.5, 0.5, 0.5, 1)
+end
+
+local function EditBox_OnLeave(frame)
+ frame:SetBackdropBorderColor(0.3, 0.3, 0.3, 0.8)
+end
+
+--[[-----------------------------------------------------------------------------
+Methods
+-------------------------------------------------------------------------------]]
+local methods = {
+ ["OnAcquire"] = function(self)
+ self:SetWidth(200)
+ self:SetHeight(44)
+ self:SetDisabled(false)
+ self:SetIsPercent(nil)
+ self:SetSliderValues(0,100,1)
+ self:SetValue(0)
+ self.slider:EnableMouseWheel(false)
+ end,
+
+ -- ["OnRelease"] = nil,
+
+ ["SetDisabled"] = function(self, disabled)
+ self.disabled = disabled
+ if disabled then
+ self.slider:EnableMouse(false)
+ self.label:SetTextColor(.5, .5, .5)
+ self.hightext:SetTextColor(.5, .5, .5)
+ self.lowtext:SetTextColor(.5, .5, .5)
+ --self.valuetext:SetTextColor(.5, .5, .5)
+ self.editbox:SetTextColor(.5, .5, .5)
+ self.editbox:EnableMouse(false)
+ self.editbox:ClearFocus()
+ else
+ self.slider:EnableMouse(true)
+ self.label:SetTextColor(1, .82, 0)
+ self.hightext:SetTextColor(1, 1, 1)
+ self.lowtext:SetTextColor(1, 1, 1)
+ --self.valuetext:SetTextColor(1, 1, 1)
+ self.editbox:SetTextColor(1, 1, 1)
+ self.editbox:EnableMouse(true)
+ end
+ end,
+
+ ["SetValue"] = function(self, value)
+ self.slider.setup = true
+ self.slider:SetValue(value)
+ self.value = value
+ UpdateText(self)
+ self.slider.setup = nil
+ end,
+
+ ["GetValue"] = function(self)
+ return self.value
+ end,
+
+ ["SetLabel"] = function(self, text)
+ self.label:SetText(text)
+ end,
+
+ ["SetSliderValues"] = function(self, min, max, step)
+ local frame = self.slider
+ frame.setup = true
+ self.min = min
+ self.max = max
+ self.step = step
+ frame:SetMinMaxValues(min or 0,max or 100)
+ UpdateLabels(self)
+ frame:SetValueStep(step or 1)
+ if self.value then
+ frame:SetValue(self.value)
+ end
+ frame.setup = nil
+ end,
+
+ ["SetIsPercent"] = function(self, value)
+ self.ispercent = value
+ UpdateLabels(self)
+ UpdateText(self)
+ end
+}
+
+--[[-----------------------------------------------------------------------------
+Constructor
+-------------------------------------------------------------------------------]]
+local SliderBackdrop = {
+ bgFile = "Interface\\Buttons\\UI-SliderBar-Background",
+ edgeFile = "Interface\\Buttons\\UI-SliderBar-Border",
+ tile = true, tileSize = 8, edgeSize = 8,
+ insets = { left = 3, right = 3, top = 6, bottom = 6 }
+}
+
+local ManualBackdrop = {
+ bgFile = "Interface\\ChatFrame\\ChatFrameBackground",
+ edgeFile = "Interface\\ChatFrame\\ChatFrameBackground",
+ tile = true, edgeSize = 1, tileSize = 5,
+}
+
+local function Constructor()
+ local frame = CreateFrame("Frame", nil, UIParent)
+
+ frame:EnableMouse(true)
+ frame:SetScript("OnMouseDown", Frame_OnMouseDown)
+
+ local label = frame:CreateFontString(nil, "OVERLAY", "GameFontNormal")
+ label:SetPoint("TOPLEFT")
+ label:SetPoint("TOPRIGHT")
+ label:SetJustifyH("CENTER")
+ label:SetHeight(15)
+
+ local slider = CreateFrame("Slider", nil, frame)
+ slider:SetOrientation("HORIZONTAL")
+ slider:SetHeight(15)
+ slider:SetHitRectInsets(0, 0, -10, 0)
+ slider:SetBackdrop(SliderBackdrop)
+ slider:SetThumbTexture("Interface\\Buttons\\UI-SliderBar-Button-Horizontal")
+ slider:SetPoint("TOP", label, "BOTTOM")
+ slider:SetPoint("LEFT", 3, 0)
+ slider:SetPoint("RIGHT", -3, 0)
+ slider:SetValue(0)
+ slider:SetScript("OnValueChanged",Slider_OnValueChanged)
+ slider:SetScript("OnEnter", Control_OnEnter)
+ slider:SetScript("OnLeave", Control_OnLeave)
+ slider:SetScript("OnMouseUp", Slider_OnMouseUp)
+ slider:SetScript("OnMouseWheel", Slider_OnMouseWheel)
+
+ local lowtext = slider:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+ lowtext:SetPoint("TOPLEFT", slider, "BOTTOMLEFT", 2, 3)
+
+ local hightext = slider:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+ hightext:SetPoint("TOPRIGHT", slider, "BOTTOMRIGHT", -2, 3)
+
+ local editbox = CreateFrame("EditBox", nil, frame)
+ editbox:SetAutoFocus(false)
+ editbox:SetFontObject(GameFontHighlightSmall)
+ editbox:SetPoint("TOP", slider, "BOTTOM")
+ editbox:SetHeight(14)
+ editbox:SetWidth(70)
+ editbox:SetJustifyH("CENTER")
+ editbox:EnableMouse(true)
+ editbox:SetBackdrop(ManualBackdrop)
+ editbox:SetBackdropColor(0, 0, 0, 0.5)
+ editbox:SetBackdropBorderColor(0.3, 0.3, 0.30, 0.80)
+ editbox:SetScript("OnEnter", EditBox_OnEnter)
+ editbox:SetScript("OnLeave", EditBox_OnLeave)
+ editbox:SetScript("OnEnterPressed", EditBox_OnEnterPressed)
+ editbox:SetScript("OnEscapePressed", EditBox_OnEscapePressed)
+
+ local widget = {
+ label = label,
+ slider = slider,
+ lowtext = lowtext,
+ hightext = hightext,
+ editbox = editbox,
+ alignoffset = 25,
+ frame = frame,
+ type = Type
+ }
+ for method, func in pairs(methods) do
+ widget[method] = func
+ end
+ slider.obj, editbox.obj = widget, widget
+
+ return AceGUI:RegisterAsWidget(widget)
+end
+
+AceGUI:RegisterWidgetType(Type,Constructor,Version)
diff --git a/Libs/AceHook-3.0/AceHook-3.0.lua b/Libs/AceHook-3.0/AceHook-3.0.lua
new file mode 100644
index 00000000..d91c36fd
--- /dev/null
+++ b/Libs/AceHook-3.0/AceHook-3.0.lua
@@ -0,0 +1,511 @@
+--- **AceHook-3.0** offers safe Hooking/Unhooking of functions, methods and frame scripts.
+-- Using AceHook-3.0 is recommended when you need to unhook your hooks again, so the hook chain isn't broken
+-- when you manually restore the original function.
+--
+-- **AceHook-3.0** can be embeded into your addon, either explicitly by calling AceHook:Embed(MyAddon) or by
+-- specifying it as an embeded library in your AceAddon. All functions will be available on your addon object
+-- and can be accessed directly, without having to explicitly call AceHook itself.\\
+-- It is recommended to embed AceHook, otherwise you'll have to specify a custom `self` on all calls you
+-- make into AceHook.
+-- @class file
+-- @name AceHook-3.0
+-- @release $Id: AceHook-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $
+local ACEHOOK_MAJOR, ACEHOOK_MINOR = "AceHook-3.0", 8
+local AceHook, oldminor = LibStub:NewLibrary(ACEHOOK_MAJOR, ACEHOOK_MINOR)
+
+if not AceHook then return end -- No upgrade needed
+
+AceHook.embeded = AceHook.embeded or {}
+AceHook.registry = AceHook.registry or setmetatable({}, {__index = function(tbl, key) tbl[key] = {} return tbl[key] end })
+AceHook.handlers = AceHook.handlers or {}
+AceHook.actives = AceHook.actives or {}
+AceHook.scripts = AceHook.scripts or {}
+AceHook.onceSecure = AceHook.onceSecure or {}
+AceHook.hooks = AceHook.hooks or {}
+
+-- local upvalues
+local registry = AceHook.registry
+local handlers = AceHook.handlers
+local actives = AceHook.actives
+local scripts = AceHook.scripts
+local onceSecure = AceHook.onceSecure
+
+-- Lua APIs
+local pairs, next, type = pairs, next, type
+local format = string.format
+local assert, error = assert, error
+
+-- WoW APIs
+local issecurevariable, hooksecurefunc = issecurevariable, hooksecurefunc
+local _G = _G
+
+-- functions for later definition
+local donothing, createHook, hook
+
+local protectedScripts = {
+ OnClick = true,
+}
+
+-- upgrading of embeded is done at the bottom of the file
+
+local mixins = {
+ "Hook", "SecureHook",
+ "HookScript", "SecureHookScript",
+ "Unhook", "UnhookAll",
+ "IsHooked",
+ "RawHook", "RawHookScript"
+}
+
+-- AceHook:Embed( target )
+-- target (object) - target object to embed AceHook in
+--
+-- Embeds AceEevent into the target object making the functions from the mixins list available on target:..
+function AceHook:Embed( target )
+ for k, v in pairs( mixins ) do
+ target[v] = self[v]
+ end
+ self.embeded[target] = true
+ -- inject the hooks table safely
+ target.hooks = target.hooks or {}
+ return target
+end
+
+-- AceHook:OnEmbedDisable( target )
+-- target (object) - target object that is being disabled
+--
+-- Unhooks all hooks when the target disables.
+-- this method should be called by the target manually or by an addon framework
+function AceHook:OnEmbedDisable( target )
+ target:UnhookAll()
+end
+
+function createHook(self, handler, orig, secure, failsafe)
+ local uid
+ local method = type(handler) == "string"
+ if failsafe and not secure then
+ -- failsafe hook creation
+ uid = function(...)
+ if actives[uid] then
+ if method then
+ self[handler](self, ...)
+ else
+ handler(...)
+ end
+ end
+ return orig(...)
+ end
+ -- /failsafe hook
+ else
+ -- all other hooks
+ uid = function(...)
+ if actives[uid] then
+ if method then
+ return self[handler](self, ...)
+ else
+ return handler(...)
+ end
+ elseif not secure then -- backup on non secure
+ return orig(...)
+ end
+ end
+ -- /hook
+ end
+ return uid
+end
+
+function donothing() end
+
+function hook(self, obj, method, handler, script, secure, raw, forceSecure, usage)
+ if not handler then handler = method end
+
+ -- These asserts make sure AceHooks's devs play by the rules.
+ assert(not script or type(script) == "boolean")
+ assert(not secure or type(secure) == "boolean")
+ assert(not raw or type(raw) == "boolean")
+ assert(not forceSecure or type(forceSecure) == "boolean")
+ assert(usage)
+
+ -- Error checking Battery!
+ if obj and type(obj) ~= "table" then
+ error(format("%s: 'object' - nil or table expected got %s", usage, type(obj)), 3)
+ end
+ if type(method) ~= "string" then
+ error(format("%s: 'method' - string expected got %s", usage, type(method)), 3)
+ end
+ if type(handler) ~= "string" and type(handler) ~= "function" then
+ error(format("%s: 'handler' - nil, string, or function expected got %s", usage, type(handler)), 3)
+ end
+ if type(handler) == "string" and type(self[handler]) ~= "function" then
+ error(format("%s: 'handler' - Handler specified does not exist at self[handler]", usage), 3)
+ end
+ if script then
+ if not obj or not obj.GetScript or not obj:HasScript(method) then
+ error(format("%s: You can only hook a script on a frame object", usage), 3)
+ end
+ if not secure and obj.IsProtected and obj:IsProtected() and protectedScripts[method] then
+ error(format("Cannot hook secure script %q; Use SecureHookScript(obj, method, [handler]) instead.", method), 3)
+ end
+ else
+ local issecure
+ if obj then
+ issecure = onceSecure[obj] and onceSecure[obj][method] or issecurevariable(obj, method)
+ else
+ issecure = onceSecure[method] or issecurevariable(method)
+ end
+ if issecure then
+ if forceSecure then
+ if obj then
+ onceSecure[obj] = onceSecure[obj] or {}
+ onceSecure[obj][method] = true
+ else
+ onceSecure[method] = true
+ end
+ elseif not secure then
+ error(format("%s: Attempt to hook secure function %s. Use `SecureHook' or add `true' to the argument list to override.", usage, method), 3)
+ end
+ end
+ end
+
+ local uid
+ if obj then
+ uid = registry[self][obj] and registry[self][obj][method]
+ else
+ uid = registry[self][method]
+ end
+
+ if uid then
+ if actives[uid] then
+ -- Only two sane choices exist here. We either a) error 100% of the time or b) always unhook and then hook
+ -- choice b would likely lead to odd debuging conditions or other mysteries so we're going with a.
+ error(format("Attempting to rehook already active hook %s.", method))
+ end
+
+ if handlers[uid] == handler then -- turn on a decative hook, note enclosures break this ability, small memory leak
+ actives[uid] = true
+ return
+ elseif obj then -- is there any reason not to call unhook instead of doing the following several lines?
+ if self.hooks and self.hooks[obj] then
+ self.hooks[obj][method] = nil
+ end
+ registry[self][obj][method] = nil
+ else
+ if self.hooks then
+ self.hooks[method] = nil
+ end
+ registry[self][method] = nil
+ end
+ handlers[uid], actives[uid], scripts[uid] = nil, nil, nil
+ uid = nil
+ end
+
+ local orig
+ if script then
+ orig = obj:GetScript(method) or donothing
+ elseif obj then
+ orig = obj[method]
+ else
+ orig = _G[method]
+ end
+
+ if not orig then
+ error(format("%s: Attempting to hook a non existing target", usage), 3)
+ end
+
+ uid = createHook(self, handler, orig, secure, not (raw or secure))
+
+ if obj then
+ self.hooks[obj] = self.hooks[obj] or {}
+ registry[self][obj] = registry[self][obj] or {}
+ registry[self][obj][method] = uid
+
+ if not secure then
+ self.hooks[obj][method] = orig
+ end
+
+ if script then
+ if not secure then
+ obj:SetScript(method, uid)
+ else
+ obj:HookScript(method, uid)
+ end
+ else
+ if not secure then
+ obj[method] = uid
+ else
+ hooksecurefunc(obj, method, uid)
+ end
+ end
+ else
+ registry[self][method] = uid
+
+ if not secure then
+ _G[method] = uid
+ self.hooks[method] = orig
+ else
+ hooksecurefunc(method, uid)
+ end
+ end
+
+ actives[uid], handlers[uid], scripts[uid] = true, handler, script and true or nil
+end
+
+--- Hook a function or a method on an object.
+-- The hook created will be a "safe hook", that means that your handler will be called
+-- before the hooked function ("Pre-Hook"), and you don't have to call the original function yourself,
+-- however you cannot stop the execution of the function, or modify any of the arguments/return values.\\
+-- This type of hook is typically used if you need to know if some function got called, and don't want to modify it.
+-- @paramsig [object], method, [handler], [hookSecure]
+-- @param object The object to hook a method from
+-- @param method If object was specified, the name of the method, or the name of the function to hook.
+-- @param handler The handler for the hook, a funcref or a method name. (Defaults to the name of the hooked function)
+-- @param hookSecure If true, AceHook will allow hooking of secure functions.
+-- @usage
+-- -- create an addon with AceHook embeded
+-- MyAddon = LibStub("AceAddon-3.0"):NewAddon("HookDemo", "AceHook-3.0")
+--
+-- function MyAddon:OnEnable()
+-- -- Hook ActionButton_UpdateHotkeys, overwriting the secure status
+-- self:Hook("ActionButton_UpdateHotkeys", true)
+-- end
+--
+-- function MyAddon:ActionButton_UpdateHotkeys(button, type)
+-- print(button:GetName() .. " is updating its HotKey")
+-- end
+function AceHook:Hook(object, method, handler, hookSecure)
+ if type(object) == "string" then
+ method, handler, hookSecure, object = object, method, handler, nil
+ end
+
+ if handler == true then
+ handler, hookSecure = nil, true
+ end
+
+ hook(self, object, method, handler, false, false, false, hookSecure or false, "Usage: Hook([object], method, [handler], [hookSecure])")
+end
+
+--- RawHook a function or a method on an object.
+-- The hook created will be a "raw hook", that means that your handler will completly replace
+-- the original function, and your handler has to call the original function (or not, depending on your intentions).\\
+-- The original function will be stored in `self.hooks[object][method]` or `self.hooks[functionName]` respectively.\\
+-- This type of hook can be used for all purposes, and is usually the most common case when you need to modify arguments
+-- or want to control execution of the original function.
+-- @paramsig [object], method, [handler], [hookSecure]
+-- @param object The object to hook a method from
+-- @param method If object was specified, the name of the method, or the name of the function to hook.
+-- @param handler The handler for the hook, a funcref or a method name. (Defaults to the name of the hooked function)
+-- @param hookSecure If true, AceHook will allow hooking of secure functions.
+-- @usage
+-- -- create an addon with AceHook embeded
+-- MyAddon = LibStub("AceAddon-3.0"):NewAddon("HookDemo", "AceHook-3.0")
+--
+-- function MyAddon:OnEnable()
+-- -- Hook ActionButton_UpdateHotkeys, overwriting the secure status
+-- self:RawHook("ActionButton_UpdateHotkeys", true)
+-- end
+--
+-- function MyAddon:ActionButton_UpdateHotkeys(button, type)
+-- if button:GetName() == "MyButton" then
+-- -- do stuff here
+-- else
+-- self.hooks.ActionButton_UpdateHotkeys(button, type)
+-- end
+-- end
+function AceHook:RawHook(object, method, handler, hookSecure)
+ if type(object) == "string" then
+ method, handler, hookSecure, object = object, method, handler, nil
+ end
+
+ if handler == true then
+ handler, hookSecure = nil, true
+ end
+
+ hook(self, object, method, handler, false, false, true, hookSecure or false, "Usage: RawHook([object], method, [handler], [hookSecure])")
+end
+
+--- SecureHook a function or a method on an object.
+-- This function is a wrapper around the `hooksecurefunc` function in the WoW API. Using AceHook
+-- extends the functionality of secure hooks, and adds the ability to unhook once the hook isn't
+-- required anymore, or the addon is being disabled.\\
+-- Secure Hooks should be used if the secure-status of the function is vital to its function,
+-- and taint would block execution. Secure Hooks are always called after the original function was called
+-- ("Post Hook"), and you cannot modify the arguments, return values or control the execution.
+-- @paramsig [object], method, [handler]
+-- @param object The object to hook a method from
+-- @param method If object was specified, the name of the method, or the name of the function to hook.
+-- @param handler The handler for the hook, a funcref or a method name. (Defaults to the name of the hooked function)
+function AceHook:SecureHook(object, method, handler)
+ if type(object) == "string" then
+ method, handler, object = object, method, nil
+ end
+
+ hook(self, object, method, handler, false, true, false, false, "Usage: SecureHook([object], method, [handler])")
+end
+
+--- Hook a script handler on a frame.
+-- The hook created will be a "safe hook", that means that your handler will be called
+-- before the hooked script ("Pre-Hook"), and you don't have to call the original function yourself,
+-- however you cannot stop the execution of the function, or modify any of the arguments/return values.\\
+-- This is the frame script equivalent of the :Hook safe-hook. It would typically be used to be notified
+-- when a certain event happens to a frame.
+-- @paramsig frame, script, [handler]
+-- @param frame The Frame to hook the script on
+-- @param script The script to hook
+-- @param handler The handler for the hook, a funcref or a method name. (Defaults to the name of the hooked script)
+-- @usage
+-- -- create an addon with AceHook embeded
+-- MyAddon = LibStub("AceAddon-3.0"):NewAddon("HookDemo", "AceHook-3.0")
+--
+-- function MyAddon:OnEnable()
+-- -- Hook the OnShow of FriendsFrame
+-- self:HookScript(FriendsFrame, "OnShow", "FriendsFrameOnShow")
+-- end
+--
+-- function MyAddon:FriendsFrameOnShow(frame)
+-- print("The FriendsFrame was shown!")
+-- end
+function AceHook:HookScript(frame, script, handler)
+ hook(self, frame, script, handler, true, false, false, false, "Usage: HookScript(object, method, [handler])")
+end
+
+--- RawHook a script handler on a frame.
+-- The hook created will be a "raw hook", that means that your handler will completly replace
+-- the original script, and your handler has to call the original script (or not, depending on your intentions).\\
+-- The original script will be stored in `self.hooks[frame][script]`.\\
+-- This type of hook can be used for all purposes, and is usually the most common case when you need to modify arguments
+-- or want to control execution of the original script.
+-- @paramsig frame, script, [handler]
+-- @param frame The Frame to hook the script on
+-- @param script The script to hook
+-- @param handler The handler for the hook, a funcref or a method name. (Defaults to the name of the hooked script)
+-- @usage
+-- -- create an addon with AceHook embeded
+-- MyAddon = LibStub("AceAddon-3.0"):NewAddon("HookDemo", "AceHook-3.0")
+--
+-- function MyAddon:OnEnable()
+-- -- Hook the OnShow of FriendsFrame
+-- self:RawHookScript(FriendsFrame, "OnShow", "FriendsFrameOnShow")
+-- end
+--
+-- function MyAddon:FriendsFrameOnShow(frame)
+-- -- Call the original function
+-- self.hooks[frame].OnShow(frame)
+-- -- Do our processing
+-- -- .. stuff
+-- end
+function AceHook:RawHookScript(frame, script, handler)
+ hook(self, frame, script, handler, true, false, true, false, "Usage: RawHookScript(object, method, [handler])")
+end
+
+--- SecureHook a script handler on a frame.
+-- This function is a wrapper around the `frame:HookScript` function in the WoW API. Using AceHook
+-- extends the functionality of secure hooks, and adds the ability to unhook once the hook isn't
+-- required anymore, or the addon is being disabled.\\
+-- Secure Hooks should be used if the secure-status of the function is vital to its function,
+-- and taint would block execution. Secure Hooks are always called after the original function was called
+-- ("Post Hook"), and you cannot modify the arguments, return values or control the execution.
+-- @paramsig frame, script, [handler]
+-- @param frame The Frame to hook the script on
+-- @param script The script to hook
+-- @param handler The handler for the hook, a funcref or a method name. (Defaults to the name of the hooked script)
+function AceHook:SecureHookScript(frame, script, handler)
+ hook(self, frame, script, handler, true, true, false, false, "Usage: SecureHookScript(object, method, [handler])")
+end
+
+--- Unhook from the specified function, method or script.
+-- @paramsig [obj], method
+-- @param obj The object or frame to unhook from
+-- @param method The name of the method, function or script to unhook from.
+function AceHook:Unhook(obj, method)
+ local usage = "Usage: Unhook([obj], method)"
+ if type(obj) == "string" then
+ method, obj = obj, nil
+ end
+
+ if obj and type(obj) ~= "table" then
+ error(format("%s: 'obj' - expecting nil or table got %s", usage, type(obj)), 2)
+ end
+ if type(method) ~= "string" then
+ error(format("%s: 'method' - expeting string got %s", usage, type(method)), 2)
+ end
+
+ local uid
+ if obj then
+ uid = registry[self][obj] and registry[self][obj][method]
+ else
+ uid = registry[self][method]
+ end
+
+ if not uid or not actives[uid] then
+ -- Declining to error on an unneeded unhook since the end effect is the same and this would just be annoying.
+ return false
+ end
+
+ actives[uid], handlers[uid] = nil, nil
+
+ if obj then
+ registry[self][obj][method] = nil
+ registry[self][obj] = next(registry[self][obj]) and registry[self][obj] or nil
+
+ -- if the hook reference doesnt exist, then its a secure hook, just bail out and dont do any unhooking
+ if not self.hooks[obj] or not self.hooks[obj][method] then return true end
+
+ if scripts[uid] and obj:GetScript(method) == uid then -- unhooks scripts
+ obj:SetScript(method, self.hooks[obj][method] ~= donothing and self.hooks[obj][method] or nil)
+ scripts[uid] = nil
+ elseif obj and self.hooks[obj] and self.hooks[obj][method] and obj[method] == uid then -- unhooks methods
+ obj[method] = self.hooks[obj][method]
+ end
+
+ self.hooks[obj][method] = nil
+ self.hooks[obj] = next(self.hooks[obj]) and self.hooks[obj] or nil
+ else
+ registry[self][method] = nil
+
+ -- if self.hooks[method] doesn't exist, then this is a SecureHook, just bail out
+ if not self.hooks[method] then return true end
+
+ if self.hooks[method] and _G[method] == uid then -- unhooks functions
+ _G[method] = self.hooks[method]
+ end
+
+ self.hooks[method] = nil
+ end
+ return true
+end
+
+--- Unhook all existing hooks for this addon.
+function AceHook:UnhookAll()
+ for key, value in pairs(registry[self]) do
+ if type(key) == "table" then
+ for method in pairs(value) do
+ self:Unhook(key, method)
+ end
+ else
+ self:Unhook(key)
+ end
+ end
+end
+
+--- Check if the specific function, method or script is already hooked.
+-- @paramsig [obj], method
+-- @param obj The object or frame to unhook from
+-- @param method The name of the method, function or script to unhook from.
+function AceHook:IsHooked(obj, method)
+ -- we don't check if registry[self] exists, this is done by evil magicks in the metatable
+ if type(obj) == "string" then
+ if registry[self][obj] and actives[registry[self][obj]] then
+ return true, handlers[registry[self][obj]]
+ end
+ else
+ if registry[self][obj] and registry[self][obj][method] and actives[registry[self][obj][method]] then
+ return true, handlers[registry[self][obj][method]]
+ end
+ end
+
+ return false, nil
+end
+
+--- Upgrade our old embeded
+for target, v in pairs( AceHook.embeded ) do
+ AceHook:Embed( target )
+end
diff --git a/Libs/AceHook-3.0/AceHook-3.0.xml b/Libs/AceHook-3.0/AceHook-3.0.xml
new file mode 100644
index 00000000..fe513365
--- /dev/null
+++ b/Libs/AceHook-3.0/AceHook-3.0.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/Libs/AceSerializer-3.0/AceSerializer-3.0.lua b/Libs/AceSerializer-3.0/AceSerializer-3.0.lua
index b9f2c756..8b294171 100644
--- a/Libs/AceSerializer-3.0/AceSerializer-3.0.lua
+++ b/Libs/AceSerializer-3.0/AceSerializer-3.0.lua
@@ -1,16 +1,16 @@
--- **AceSerializer-3.0** can serialize any variable (except functions or userdata) into a string format,
--- that can be send over the addon comm channel. AceSerializer was designed to keep all data intact, especially
+-- that can be send over the addon comm channel. AceSerializer was designed to keep all data intact, especially
-- very large numbers or floating point numbers, and table structures. The only caveat currently is, that multiple
-- references to the same table will be send individually.
--
--- **AceSerializer-3.0** can be embeded into your addon, either explicitly by calling AceSerializer:Embed(MyAddon) or by
+-- **AceSerializer-3.0** can be embeded into your addon, either explicitly by calling AceSerializer:Embed(MyAddon) or by
-- specifying it as an embeded library in your AceAddon. All functions will be available on your addon object
-- and can be accessed directly, without having to explicitly call AceSerializer itself.\\
-- It is recommended to embed AceSerializer, otherwise you'll have to specify a custom `self` on all calls you
-- make into AceSerializer.
-- @class file
-- @name AceSerializer-3.0
--- @release $Id: AceSerializer-3.0.lua 1135 2015-09-19 20:39:16Z nevcairiel $
+-- @release $Id: AceSerializer-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $
local MAJOR,MINOR = "AceSerializer-3.0", 5
local AceSerializer, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
@@ -40,7 +40,7 @@ local function SerializeStringHelper(ch) -- Used by SerializeValue for strings
return "\126\122"
elseif n<=32 then -- nonprint + space
return "\126"..strchar(n+64)
- elseif n==94 then -- value separator
+ elseif n==94 then -- value separator
return "\126\125"
elseif n==126 then -- our own escape character
return "\126\124"
@@ -54,12 +54,12 @@ end
local function SerializeValue(v, res, nres)
-- We use "^" as a value separator, followed by one byte for type indicator
local t=type(v)
-
+
if t=="string" then -- ^S = string (escaped to remove nonprints, "^"s, etc)
res[nres+1] = "^S"
res[nres+2] = gsub(v,"[%c \94\126\127]", SerializeStringHelper)
nres=nres+2
-
+
elseif t=="number" then -- ^N = number (just tostring()ed) or ^F (float components)
local str = tostring(v)
if tonumber(str)==v --[[not in 4.3 or str==serNaN]] then
@@ -79,7 +79,7 @@ local function SerializeValue(v, res, nres)
res[nres+4] = tostring(e-53) -- adjust exponent to counteract mantissa manipulation
nres=nres+4
end
-
+
elseif t=="table" then -- ^T...^t = table (list of key,value pairs)
nres=nres+1
res[nres] = "^T"
@@ -89,7 +89,7 @@ local function SerializeValue(v, res, nres)
end
nres=nres+1
res[nres] = "^t"
-
+
elseif t=="boolean" then -- ^B = true, ^b = false
nres=nres+1
if v then
@@ -97,15 +97,15 @@ local function SerializeValue(v, res, nres)
else
res[nres] = "^b" -- false
end
-
+
elseif t=="nil" then -- ^Z = nil (zero, "N" was taken :P)
nres=nres+1
res[nres] = "^Z"
-
+
else
error(MAJOR..": Cannot serialize a value of type '"..t.."'") -- can't produce error on right level, this is wildly recursive
end
-
+
return nres
end
@@ -121,14 +121,14 @@ local serializeTbl = { "^1" } -- "^1" = Hi, I'm data serialized by AceSerializer
-- @return The data in its serialized form (string)
function AceSerializer:Serialize(...)
local nres = 1
-
+
for i=1,select("#", ...) do
local v = select(i, ...)
nres = SerializeValue(v, serializeTbl, nres)
end
-
+
serializeTbl[nres+1] = "^^" -- "^^" = End of serialized data
-
+
return tconcat(serializeTbl, "", 1, nres+1)
end
@@ -175,9 +175,9 @@ local function DeserializeValue(iter,single,ctl,data)
ctl,data = iter()
end
- if not ctl then
+ if not ctl then
error("Supplied data misses AceSerializer terminator ('^^')")
- end
+ end
if ctl=="^^" then
-- ignore extraneous data
@@ -185,7 +185,7 @@ local function DeserializeValue(iter,single,ctl,data)
end
local res
-
+
if ctl=="^S" then
res = gsub(data, "~.", DeserializeStringHelper)
elseif ctl=="^N" then
@@ -218,7 +218,7 @@ local function DeserializeValue(iter,single,ctl,data)
ctl,data = iter()
if ctl=="^t" then break end -- ignore ^t's data
k = DeserializeValue(iter,true,ctl,data)
- if k==nil then
+ if k==nil then
error("Invalid AceSerializer table format (no table end marker)")
end
ctl,data = iter()
@@ -231,7 +231,7 @@ local function DeserializeValue(iter,single,ctl,data)
else
error("Invalid AceSerializer control code '"..ctl.."'")
end
-
+
if not single then
return res,DeserializeValue(iter)
else
diff --git a/Libs/AceTab-3.0/AceTab-3.0.lua b/Libs/AceTab-3.0/AceTab-3.0.lua
new file mode 100644
index 00000000..aa67ef80
--- /dev/null
+++ b/Libs/AceTab-3.0/AceTab-3.0.lua
@@ -0,0 +1,446 @@
+--- AceTab-3.0 provides support for tab-completion.
+-- Note: This library is not yet finalized.
+-- @class file
+-- @name AceTab-3.0
+-- @release $Id: AceTab-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $
+
+local ACETAB_MAJOR, ACETAB_MINOR = 'AceTab-3.0', 9
+local AceTab, oldminor = LibStub:NewLibrary(ACETAB_MAJOR, ACETAB_MINOR)
+
+if not AceTab then return end -- No upgrade needed
+
+AceTab.registry = AceTab.registry or {}
+
+-- local upvalues
+local _G = _G
+local pairs = pairs
+local ipairs = ipairs
+local type = type
+local registry = AceTab.registry
+
+local strfind = string.find
+local strsub = string.sub
+local strlower = string.lower
+local strformat = string.format
+local strmatch = string.match
+
+local function printf(...)
+ DEFAULT_CHAT_FRAME:AddMessage(strformat(...))
+end
+
+local function getTextBeforeCursor(this, start)
+ return strsub(this:GetText(), start or 1, this:GetCursorPosition())
+end
+
+-- Hook OnTabPressed and OnTextChanged for the frame, give it an empty matches table, and set its curMatch to 0, if we haven't done so already.
+local function hookFrame(f)
+ if f.hookedByAceTab3 then return end
+ f.hookedByAceTab3 = true
+ if f == ChatEdit_GetActiveWindow() then
+ local origCTP = ChatEdit_CustomTabPressed
+ function ChatEdit_CustomTabPressed(...)
+ if AceTab:OnTabPressed(f) then
+ return origCTP(...)
+ else
+ return true
+ end
+ end
+ else
+ local origOTP = f:GetScript('OnTabPressed')
+ if type(origOTP) ~= 'function' then
+ origOTP = function() end
+ end
+ f:SetScript('OnTabPressed', function(...)
+ if AceTab:OnTabPressed(f) then
+ return origOTP(...)
+ end
+ end)
+ end
+ f.at3curMatch = 0
+ f.at3matches = {}
+end
+
+local firstPMLength
+
+local fallbacks, notfallbacks = {}, {} -- classifies completions into those which have preconditions and those which do not. Those without preconditions are only considered if no other completions have matches.
+local pmolengths = {} -- holds the number of characters to overwrite according to pmoverwrite and the current prematch
+-- ------------------------------------------------------------------------------
+-- RegisterTabCompletion( descriptor, prematches, wordlist, usagefunc, listenframes, postfunc, pmoverwrite )
+-- See http://www.wowace.com/wiki/AceTab-2.0 for detailed API documentation
+--
+-- descriptor string Unique identifier for this tab completion set
+--
+-- prematches string|table|nil String match(es) AFTER which this tab completion will apply.
+-- AceTab will ignore tabs NOT preceded by the string(s).
+-- If no value is passed, will check all tabs pressed in the specified editframe(s) UNLESS a more-specific tab complete applies.
+--
+-- wordlist function|table Function that will be passed a table into which it will insert strings corresponding to all possible completions, or an equivalent table.
+-- The text in the editbox, the position of the start of the word to be completed, and the uncompleted partial word
+-- are passed as second, third, and fourth arguments, to facilitate pre-filtering or conditional formatting, if desired.
+--
+-- usagefunc function|boolean|nil Usage statement function. Defaults to the wordlist, one per line. A boolean true squelches usage output.
+--
+-- listenframes string|table|nil EditFrames to monitor. Defaults to ChatFrameEditBox.
+--
+-- postfunc function|nil Post-processing function. If supplied, matches will be passed through this function after they've been identified as a match.
+--
+-- pmoverwrite boolean|number|nil Offset the beginning of the completion string in the editbox when making a completion. Passing a boolean true indicates that we want to overwrite
+-- the entire prematch string, and passing a number will overwrite that many characters prior to the cursor.
+-- This is useful when you want to use the prematch as an indicator character, but ultimately do not want it as part of the text, itself.
+--
+-- no return
+-- ------------------------------------------------------------------------------
+function AceTab:RegisterTabCompletion(descriptor, prematches, wordlist, usagefunc, listenframes, postfunc, pmoverwrite)
+ -- Arg checks
+ if type(descriptor) ~= 'string' then error("Usage: RegisterTabCompletion(descriptor, prematches, wordlist, usagefunc, listenframes, postfunc, pmoverwrite): 'descriptor' - string expected.", 3) end
+ if prematches and type(prematches) ~= 'string' and type(prematches) ~= 'table' then error("Usage: RegisterTabCompletion(descriptor, prematches, wordlist, usagefunc, listenframes, postfunc, pmoverwrite): 'prematches' - string, table, or nil expected.", 3) end
+ if type(wordlist) ~= 'function' and type(wordlist) ~= 'table' then error("Usage: RegisterTabCompletion(descriptor, prematches, wordlist, usagefunc, listenframes, postfunc, pmoverwrite): 'wordlist' - function or table expected.", 3) end
+ if usagefunc and type(usagefunc) ~= 'function' and type(usagefunc) ~= 'boolean' then error("Usage: RegisterTabCompletion(descriptor, prematches, wordlist, usagefunc, listenframes, postfunc, pmoverwrite): 'usagefunc' - function or boolean expected.", 3) end
+ if listenframes and type(listenframes) ~= 'string' and type(listenframes) ~= 'table' then error("Usage: RegisterTabCompletion(descriptor, prematches, wordlist, usagefunc, listenframes, postfunc, pmoverwrite): 'listenframes' - string or table expected.", 3) end
+ if postfunc and type(postfunc) ~= 'function' then error("Usage: RegisterTabCompletion(descriptor, prematches, wordlist, usagefunc, listenframes, postfunc, pmoverwrite): 'postfunc' - function expected.", 3) end
+ if pmoverwrite and type(pmoverwrite) ~= 'boolean' and type(pmoverwrite) ~= 'number' then error("Usage: RegisterTabCompletion(descriptor, prematches, wordlist, usagefunc, listenframes, postfunc, pmoverwrite): 'pmoverwrite' - boolean or number expected.", 3) end
+
+ local pmtable
+
+ if type(prematches) == 'table' then
+ pmtable = prematches
+ notfallbacks[descriptor] = true
+ else
+ pmtable = {}
+ -- Mark this group as a fallback group if no value was passed.
+ if not prematches then
+ pmtable[1] = ""
+ fallbacks[descriptor] = true
+ -- Make prematches into a one-element table if it was passed as a string.
+ elseif type(prematches) == 'string' then
+ pmtable[1] = prematches
+ if prematches == "" then
+ fallbacks[descriptor] = true
+ else
+ notfallbacks[descriptor] = true
+ end
+ end
+ end
+
+ -- Make listenframes into a one-element table if it was not passed a table of frames.
+ if not listenframes then -- default
+ listenframes = {}
+ for i = 1, NUM_CHAT_WINDOWS do
+ listenframes[i] = _G["ChatFrame"..i.."EditBox"]
+ end
+ elseif type(listenframes) ~= 'table' or type(listenframes[0]) == 'userdata' and type(listenframes.IsObjectType) == 'function' then -- single frame or framename
+ listenframes = { listenframes }
+ end
+
+ -- Hook each registered listenframe and give it a matches table.
+ for _, f in pairs(listenframes) do
+ if type(f) == 'string' then
+ f = _G[f]
+ end
+ if type(f) ~= 'table' or type(f[0]) ~= 'userdata' or type(f.IsObjectType) ~= 'function' then
+ error(format(ACETAB_MAJOR..": Cannot register frame %q; it does not exist", f:GetName()))
+ end
+ if f then
+ if f:GetObjectType() ~= 'EditBox' then
+ error(format(ACETAB_MAJOR..": Cannot register frame %q; it is not an EditBox", f:GetName()))
+ else
+ hookFrame(f)
+ end
+ end
+ end
+
+ -- Everything checks out; register this completion.
+ if not registry[descriptor] then
+ registry[descriptor] = { prematches = pmtable, wordlist = wordlist, usagefunc = usagefunc, listenframes = listenframes, postfunc = postfunc, pmoverwrite = pmoverwrite }
+ end
+end
+
+function AceTab:IsTabCompletionRegistered(descriptor)
+ return registry and registry[descriptor]
+end
+
+function AceTab:UnregisterTabCompletion(descriptor)
+ registry[descriptor] = nil
+ pmolengths[descriptor] = nil
+ fallbacks[descriptor] = nil
+ notfallbacks[descriptor] = nil
+end
+
+-- ------------------------------------------------------------------------------
+-- gcbs( s1, s2 )
+--
+-- s1 string First string to be compared
+--
+-- s2 string Second string to be compared
+--
+-- returns the greatest common substring beginning s1 and s2
+-- ------------------------------------------------------------------------------
+local function gcbs(s1, s2)
+ if not s1 and not s2 then return end
+ if not s1 then s1 = s2 end
+ if not s2 then s2 = s1 end
+ if #s2 < #s1 then
+ s1, s2 = s2, s1
+ end
+ if strfind(strlower(s2), "^"..strlower(s1)) then
+ return s1
+ else
+ return gcbs(strsub(s1, 1, -2), s2)
+ end
+end
+
+local cursor -- Holds cursor position. Set in :OnTabPressed().
+-- ------------------------------------------------------------------------------
+-- cycleTab()
+-- For when a tab press has multiple possible completions, we need to allow the user to press tab repeatedly to cycle through them.
+-- If we have multiple possible completions, all tab presses after the first will call this function to cycle through and insert the different possible matches.
+-- This function will stop being called after OnTextChanged() is triggered by something other than AceTab (i.e. the user inputs a character).
+-- ------------------------------------------------------------------------------
+local previousLength, cMatch, matched, postmatch
+local function cycleTab(this)
+ cMatch = 0 -- Counter across all sets. The pseudo-index relevant to this value and corresponding to the current match is held in this.at3curMatch
+ matched = false
+
+ -- Check each completion group registered to this frame.
+ for desc, compgrp in pairs(this.at3matches) do
+
+ -- Loop through the valid completions for this set.
+ for m, pm in pairs(compgrp) do
+ cMatch = cMatch + 1
+ if cMatch == this.at3curMatch then -- we're back to where we left off last time through the combined list
+ this.at3lastMatch = m
+ this.at3lastWord = pm
+ this.at3curMatch = cMatch + 1 -- save the new cMatch index
+ matched = true
+ break
+ end
+ end
+ if matched then break end
+ end
+
+ -- If our index is beyond the end of the list, reset the original uncompleted substring and let the cycle start over next time tab is pressed.
+ if not matched then
+ this.at3lastMatch = this.at3origMatch
+ this.at3lastWord = this.at3origWord
+ this.at3curMatch = 1
+ end
+
+ -- Insert the completion.
+ this:HighlightText(this.at3matchStart-1, cursor)
+ this:Insert(this.at3lastWord or '')
+ this.at3_last_precursor = getTextBeforeCursor(this) or ''
+end
+
+local IsSecureCmd = IsSecureCmd
+
+local cands, candUsage = {}, {}
+local numMatches = 0
+local firstMatch, hasNonFallback, allGCBS, setGCBS, usage
+local text_precursor, text_all, text_pmendToCursor
+local matches, usagefunc -- convenience locals
+
+-- Fill the this.at3matches[descriptor] tables with matching completion pairs for each entry, based on
+-- the partial string preceding the cursor position and using the corresponding registered wordlist.
+--
+-- The entries of the matches tables are of the format raw_match = formatted_match, where raw_match is the plaintext completion and
+-- formatted_match is the match after being formatted/altered/processed by the registered postfunc.
+-- If no postfunc exists, then the formatted and raw matches are the same.
+local pms, pme, pmt, prematchStart, prematchEnd, text_prematch, entry
+local function fillMatches(this, desc, fallback)
+ entry = registry[desc]
+ -- See what frames are registered for this completion group. If the frame in which we pressed tab is one of them, then we start building matches.
+ for _, f in ipairs(entry.listenframes) do
+ if f == this then
+
+ -- Try each precondition string registered for this completion group.
+ for _, prematch in ipairs(entry.prematches) do
+
+ -- Test if our prematch string is satisfied.
+ -- If it is, then we find its last occurence prior to the cursor, calculate and store its pmoverwrite value (if applicable), and start considering completions.
+ if fallback then prematch = "%s" end
+
+ -- Find the last occurence of the prematch before the cursor.
+ pms, pme, pmt = nil, 1, ''
+ text_prematch, prematchEnd, prematchStart = nil, nil, nil
+ while true do
+ pms, pme, pmt = strfind(text_precursor, "("..prematch..")", pme)
+ if pms then
+ prematchStart, prematchEnd, text_prematch = pms, pme, pmt
+ pme = pme + 1
+ else
+ break
+ end
+ end
+
+ if not prematchStart and fallback then
+ prematchStart, prematchEnd, text_prematch = 0, 0, ''
+ end
+ if prematchStart then
+ -- text_pmendToCursor should be the sub-word/phrase to be completed.
+ text_pmendToCursor = strsub(text_precursor, prematchEnd + 1)
+
+ -- How many characters should we eliminate before the completion before writing it in.
+ pmolengths[desc] = entry.pmoverwrite == true and #text_prematch or entry.pmoverwrite or 0
+
+ -- This is where we will insert completions, taking the prematch overwrite into account.
+ this.at3matchStart = prematchEnd + 1 - (pmolengths[desc] or 0)
+
+ -- We're either a non-fallback set or all completions thus far have been fallback sets, and the precondition matches.
+ -- Create cands from the registered wordlist, filling it with all potential (unfiltered) completion strings.
+ local wordlist = entry.wordlist
+ local cands = type(wordlist) == 'table' and wordlist or {}
+ if type(wordlist) == 'function' then
+ wordlist(cands, text_all, prematchEnd + 1, text_pmendToCursor)
+ end
+ if cands ~= false then
+ matches = this.at3matches[desc] or {}
+ for i in pairs(matches) do matches[i] = nil end
+
+ -- Check each of the entries in cands to see if it completes the word before the cursor.
+ -- Finally, increment our match count and set firstMatch, if appropriate.
+ for _, m in ipairs(cands) do
+ if strfind(strlower(m), strlower(text_pmendToCursor), 1, 1) == 1 then -- we have a matching completion!
+ hasNonFallback = hasNonFallback or (not fallback)
+ matches[m] = entry.postfunc and entry.postfunc(m, prematchEnd + 1, text_all) or m
+ numMatches = numMatches + 1
+ if numMatches == 1 then
+ firstMatch = matches[m]
+ firstPMLength = pmolengths[desc] or 0
+ end
+ end
+ end
+ this.at3matches[desc] = numMatches > 0 and matches or nil
+ end
+ end
+ end
+ end
+ end
+end
+
+function AceTab:OnTabPressed(this)
+ if this:GetText() == '' then return true end
+
+ -- allow Blizzard to handle slash commands, themselves
+ if this == ChatEdit_GetActiveWindow() then
+ local command = this:GetText()
+ if strfind(command, "^/[%a%d_]+$") then
+ return true
+ end
+ local cmd = strmatch(command, "^/[%a%d_]+")
+ if cmd and IsSecureCmd(cmd) then
+ return true
+ end
+ end
+
+ cursor = this:GetCursorPosition()
+
+ text_all = this:GetText()
+ text_precursor = getTextBeforeCursor(this) or ''
+
+ -- If we've already found some matches and haven't done anything since the last tab press, then (continue) cycling matches.
+ -- Otherwise, reset this frame's matches and proceed to creating our list of possible completions.
+ this.at3lastMatch = this.at3curMatch > 0 and (this.at3lastMatch or this.at3origWord)
+ -- Detects if we've made any edits since the last tab press. If not, continue cycling completions.
+ if text_precursor == this.at3_last_precursor then
+ return cycleTab(this)
+ else
+ for i in pairs(this.at3matches) do this.at3matches[i] = nil end
+ this.at3curMatch = 0
+ this.at3origWord = nil
+ this.at3origMatch = nil
+ this.at3lastWord = nil
+ this.at3lastMatch = nil
+ this.at3_last_precursor = text_precursor
+ end
+
+ numMatches = 0
+ firstMatch = nil
+ firstPMLength = 0
+ hasNonFallback = false
+ for i in pairs(pmolengths) do pmolengths[i] = nil end
+
+ for desc in pairs(notfallbacks) do
+ fillMatches(this, desc)
+ end
+ if not hasNonFallback then
+ for desc in pairs(fallbacks) do
+ fillMatches(this, desc, true)
+ end
+ end
+
+ if not firstMatch then
+ this.at3_last_precursor = "\0"
+ return true
+ end
+
+ -- We want to replace the entire word with our completion, so highlight it up to the cursor.
+ -- If only one match exists, then stick it in there and append a space.
+ if numMatches == 1 then
+ -- HighlightText takes the value AFTER which the highlighting starts, so we have to subtract 1 to have it start before the first character.
+ this:HighlightText(this.at3matchStart-1, cursor)
+
+ this:Insert(firstMatch)
+ this:Insert(" ")
+ else
+ -- Otherwise, we want to begin cycling through the valid completions.
+ -- Beginning a cycle also causes the usage statement to be printed, if one exists.
+
+ -- Print usage statements for each possible completion (and gather up the GCBS of all matches while we're walking the tables).
+ allGCBS = nil
+ for desc, matches in pairs(this.at3matches) do
+ -- Don't print usage statements for fallback completion groups if we have 'real' completion groups with matches.
+ if hasNonFallback and fallbacks[desc] then break end
+
+ -- Use the group's description as a heading for its usage statements.
+ DEFAULT_CHAT_FRAME:AddMessage(desc..":")
+
+ usagefunc = registry[desc].usagefunc
+ if not usagefunc then
+ -- No special usage processing; just print a list of the (formatted) matches.
+ for m, fm in pairs(matches) do
+ DEFAULT_CHAT_FRAME:AddMessage(fm)
+ allGCBS = gcbs(allGCBS, m)
+ end
+ else
+ -- Print a usage statement based on the corresponding registered usagefunc.
+ -- candUsage is the table passed to usagefunc to be filled with candidate = usage_statement pairs.
+ if type(usagefunc) == 'function' then
+ for i in pairs(candUsage) do candUsage[i] = nil end
+
+ -- usagefunc takes the greatest common substring of valid matches as one of its args, so let's find that now.
+ -- TODO: Make the GCBS function accept a vararg or table, after which we can just pass in the list of matches.
+ setGCBS = nil
+ for m in pairs(matches) do
+ setGCBS = gcbs(setGCBS, m)
+ end
+ allGCBS = gcbs(allGCBS, setGCBS)
+ usage = usagefunc(candUsage, matches, setGCBS, strsub(text_precursor, 1, prematchEnd))
+
+ -- If the usagefunc returns a string, then the entire usage statement has been taken care of by usagefunc, and we need only to print it...
+ if type(usage) == 'string' then
+ DEFAULT_CHAT_FRAME:AddMessage(usage)
+
+ -- ...otherwise, it should have filled candUsage with candidate-usage statement pairs, and we need to print the matching ones.
+ elseif next(candUsage) and numMatches > 0 then
+ for m, fm in pairs(matches) do
+ if candUsage[m] then DEFAULT_CHAT_FRAME:AddMessage(strformat("%s - %s", fm, candUsage[m])) end
+ end
+ end
+ end
+ end
+
+ if next(matches) then
+ -- Replace the original string with the greatest common substring of all valid completions.
+ this.at3curMatch = 1
+ this.at3origWord = strsub(text_precursor, this.at3matchStart, this.at3matchStart + pmolengths[desc] - 1) .. allGCBS or ""
+ this.at3origMatch = allGCBS or ""
+ this.at3lastWord = this.at3origWord
+ this.at3lastMatch = this.at3origMatch
+
+ this:HighlightText(this.at3matchStart-1, cursor)
+ this:Insert(this.at3origWord)
+ this.at3_last_precursor = getTextBeforeCursor(this) or ''
+ end
+ end
+ end
+end
diff --git a/Libs/AceTab-3.0/AceTab-3.0.xml b/Libs/AceTab-3.0/AceTab-3.0.xml
new file mode 100644
index 00000000..2e509043
--- /dev/null
+++ b/Libs/AceTab-3.0/AceTab-3.0.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/Libs/AceTimer-3.0/AceTimer-3.0.lua b/Libs/AceTimer-3.0/AceTimer-3.0.lua
index 7d89500d..f576fe7e 100644
--- a/Libs/AceTimer-3.0/AceTimer-3.0.lua
+++ b/Libs/AceTimer-3.0/AceTimer-3.0.lua
@@ -15,7 +15,7 @@
-- make into AceTimer.
-- @class file
-- @name AceTimer-3.0
--- @release $Id: AceTimer-3.0.lua 1170 2018-03-29 17:38:58Z funkydude $
+-- @release $Id: AceTimer-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $
local MAJOR, MINOR = "AceTimer-3.0", 17 -- Bump minor on changes
local AceTimer, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
@@ -47,7 +47,7 @@ local function new(self, loop, func, delay, ...)
activeTimers[timer] = timer
-- Create new timer closure to wrap the "timer" object
- timer.callback = function()
+ timer.callback = function()
if not timer.cancelled then
if type(timer.func) == "string" then
-- We manually set the unpack count to prevent issues with an arg set that contains nil and ends with nil
diff --git a/Libs/DF/fw.lua b/Libs/DF/fw.lua
index b672eb84..bbb04609 100644
--- a/Libs/DF/fw.lua
+++ b/Libs/DF/fw.lua
@@ -1,5 +1,5 @@
-local dversion = 152
+local dversion = 153
local major, minor = "DetailsFramework-1.0", dversion
local DF, oldminor = LibStub:NewLibrary (major, minor)
diff --git a/Libs/DF/panel.lua b/Libs/DF/panel.lua
index db1986d4..e7c4a608 100644
--- a/Libs/DF/panel.lua
+++ b/Libs/DF/panel.lua
@@ -5211,225 +5211,354 @@ end
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> ~header
+--mixed functions
DF.HeaderFunctions = {
AddFrameToHeaderAlignment = function (self, frame)
self.FramesToAlign = self.FramesToAlign or {}
tinsert (self.FramesToAlign, frame)
end,
+ --@self: an object like a line
+ --@headerFrame: the main header frame
+ --@anchor: which side the columnHeaders are attach
AlignWithHeader = function (self, headerFrame, anchor)
- local headerFrames = headerFrame.HeadersCreated
+ local columnHeaderFrames = headerFrame.columnHeadersCreated
anchor = anchor or "topleft"
for i = 1, #self.FramesToAlign do
local frame = self.FramesToAlign [i]
frame:ClearAllPoints()
- local headerFrame = headerFrames [i]
+ local columnHeader = columnHeaderFrames [i]
local offset = 0
- if (headerFrame.columnAlign == "right") then
- offset = headerFrame:GetWidth()
+ if (columnHeader.columnAlign == "right") then
+ offset = columnHeader:GetWidth()
if (frame:GetObjectType() == "FontString") then
frame:SetJustifyH ("right")
end
end
- frame:SetPoint (headerFrame.columnAlign, self, anchor, headerFrame.XPosition + headerFrame.columnOffset + offset, 0)
+ frame:SetPoint (columnHeader.columnAlign, self, anchor, columnHeader.XPosition + columnHeader.columnOffset + offset, 0)
+ end
+ end,
+
+ --@self: column header button
+ OnClick = function (self, buttonClicked)
+
+ --get the header main frame
+ local headerFrame = self:GetParent()
+
+ --if this header does not have a clickable header, just ignore
+ if (not headerFrame.columnSelected) then
+ return
+ end
+
+ --get the latest column header selected
+ local previousColumnHeader = headerFrame.columnHeadersCreated [headerFrame.columnSelected]
+ previousColumnHeader.Arrow:Hide()
+ headerFrame:ResetColumnHeaderBackdrop (previousColumnHeader)
+ headerFrame:SetBackdropColorForSelectedColumnHeader (self)
+
+ if (headerFrame.columnSelected == self.columnIndex) then
+ self.order = self.order ~= "ASC" and "ASC" or "DESC"
+ end
+ headerFrame.columnOrder = self.order
+
+ --set the new column header selected
+ headerFrame.columnSelected = self.columnIndex
+
+ headerFrame:UpdateSortArrow (self)
+
+ if (headerFrame.options.header_click_callback) then
+ --callback with the main header frame, column header, column index and column order as payload
+ local okay, errortext = pcall (headerFrame.options.header_click_callback, headerFrame, self, self.columnIndex, self.order)
+ if (not okay) then
+ print ("DF: Header onClick callback error:", errortext)
+ end
end
end,
}
DF.HeaderCoreFunctions = {
SetHeaderTable = function (self, newTable)
- self.HeadersCreated = self.HeadersCreated or {}
+ self.columnHeadersCreated = self.columnHeadersCreated or {}
self.HeaderTable = newTable
self.NextHeader = 1
self.HeaderWidth = 0
self.HeaderHeight = 0
self:Refresh()
end,
+
+ --return which header is current selected and the the order ASC DESC
+ GetSelectedColumn = function (self)
+ return self.columnSelected, self.columnHeadersCreated [self.columnSelected or 1].order
+ end,
+ --clean up and rebuild the header following the header options
+ --@self: main header frame
Refresh = function (self)
-
--> refresh background frame
self:SetBackdrop (self.options.backdrop)
self:SetBackdropColor (unpack (self.options.backdrop_color))
self:SetBackdropBorderColor (unpack (self.options.backdrop_border_color))
--> reset all header frames
- for i = 1, #self.HeadersCreated do
- self.HeadersCreated [i].InUse = false
- self.HeadersCreated [i]:Hide()
+ for i = 1, #self.columnHeadersCreated do
+ local columnHeader = self.columnHeadersCreated [i]
+ columnHeader.InUse = false
+ columnHeader:Hide()
end
- local previousHeaderFrame
+ local previousColumnHeader
local growDirection = string.lower (self.options.grow_direction)
--> update header frames
local headerSize = #self.HeaderTable
for i = 1, headerSize do
- local headerFrame = self:GetNextHeader()
- self:UpdateHeaderFrame (headerFrame, i)
+
+ --> get the header button, a new one is created if it doesn't exists yet
+ local columnHeader = self:GetNextHeader()
+ self:UpdateColumnHeader (columnHeader, i)
--> grow direction
- if (not previousHeaderFrame) then
- headerFrame:SetPoint ("topleft", self, "topleft", 0, 0)
+ if (not previousColumnHeader) then
+ columnHeader:SetPoint ("topleft", self, "topleft", 0, 0)
if (growDirection == "right") then
if (self.options.use_line_separators) then
- headerFrame.Separator:Show()
- headerFrame.Separator:SetWidth (self.options.line_separator_width)
- headerFrame.Separator:SetColorTexture (unpack (self.options.line_separator_color))
+ columnHeader.Separator:Show()
+ columnHeader.Separator:SetWidth (self.options.line_separator_width)
+ columnHeader.Separator:SetColorTexture (unpack (self.options.line_separator_color))
- headerFrame.Separator:ClearAllPoints()
+ columnHeader.Separator:ClearAllPoints()
if (self.options.line_separator_gap_align) then
- headerFrame.Separator:SetPoint ("topleft", headerFrame, "topright", 0, 0)
+ columnHeader.Separator:SetPoint ("topleft", columnHeader, "topright", 0, 0)
else
- headerFrame.Separator:SetPoint ("topright", headerFrame, "topright", 0, 0)
+ columnHeader.Separator:SetPoint ("topright", columnHeader, "topright", 0, 0)
end
- headerFrame.Separator:SetHeight (self.options.line_separator_height)
+ columnHeader.Separator:SetHeight (self.options.line_separator_height)
end
end
else
if (growDirection == "right") then
- headerFrame:SetPoint ("topleft", previousHeaderFrame, "topright", self.options.padding, 0)
+ columnHeader:SetPoint ("topleft", previousColumnHeader, "topright", self.options.padding, 0)
if (self.options.use_line_separators) then
- headerFrame.Separator:Show()
- headerFrame.Separator:SetWidth (self.options.line_separator_width)
- headerFrame.Separator:SetColorTexture (unpack (self.options.line_separator_color))
+ columnHeader.Separator:Show()
+ columnHeader.Separator:SetWidth (self.options.line_separator_width)
+ columnHeader.Separator:SetColorTexture (unpack (self.options.line_separator_color))
- headerFrame.Separator:ClearAllPoints()
+ columnHeader.Separator:ClearAllPoints()
if (self.options.line_separator_gap_align) then
- headerFrame.Separator:SetPoint ("topleft", headerFrame, "topright", 0, 0)
+ columnHeader.Separator:SetPoint ("topleft", columnHeader, "topright", 0, 0)
else
- headerFrame.Separator:SetPoint ("topleft", headerFrame, "topright", 0, 0)
+ columnHeader.Separator:SetPoint ("topleft", columnHeader, "topright", 0, 0)
end
- headerFrame.Separator:SetHeight (self.options.line_separator_height)
+ columnHeader.Separator:SetHeight (self.options.line_separator_height)
if (headerSize == i) then
- headerFrame.Separator:Hide()
+ columnHeader.Separator:Hide()
end
end
elseif (growDirection == "left") then
- headerFrame:SetPoint ("topright", previousHeaderFrame, "topleft", -self.options.padding, 0)
+ columnHeader:SetPoint ("topright", previousColumnHeader, "topleft", -self.options.padding, 0)
elseif (growDirection == "bottom") then
- headerFrame:SetPoint ("topleft", previousHeaderFrame, "bottomleft", 0, -self.options.padding)
+ columnHeader:SetPoint ("topleft", previousColumnHeader, "bottomleft", 0, -self.options.padding)
elseif (growDirection == "top") then
- headerFrame:SetPoint ("bottomleft", previousHeaderFrame, "topleft", 0, self.options.padding)
+ columnHeader:SetPoint ("bottomleft", previousColumnHeader, "topleft", 0, self.options.padding)
end
end
- previousHeaderFrame = headerFrame
+ previousColumnHeader = columnHeader
end
self:SetSize (self.HeaderWidth, self.HeaderHeight)
end,
- UpdateHeaderFrame = function (self, headerFrame, headerIndex)
+ --@self: main header frame
+ UpdateSortArrow = function (self, columnHeader, defaultShown, defaultOrder)
+
+ local options = self.options
+ local order = defaultOrder or columnHeader.order
+ local arrowIcon = columnHeader.Arrow
+
+ if (type (defaultShown) ~= "boolean") then
+ arrowIcon:Show()
+ else
+ arrowIcon:SetShown (defaultShown)
+ if (defaultShown) then
+ self:SetBackdropColorForSelectedColumnHeader (columnHeader)
+ end
+ end
+
+ arrowIcon:SetAlpha (options.arrow_alpha)
+
+ if (order == "ASC") then
+ arrowIcon:SetTexture (options.arrow_up_texture)
+ arrowIcon:SetTexCoord (unpack (options.arrow_up_texture_coords))
+ arrowIcon:SetSize (unpack (options.arrow_up_size))
+
+ elseif (order == "DESC") then
+ arrowIcon:SetTexture (options.arrow_down_texture)
+ arrowIcon:SetTexCoord (unpack (options.arrow_down_texture_coords))
+ arrowIcon:SetSize (unpack (options.arrow_down_size))
+ end
+
+ end,
+
+ --@self: main header frame
+ UpdateColumnHeader = function (self, columnHeader, headerIndex)
local headerData = self.HeaderTable [headerIndex]
if (headerData.icon) then
- headerFrame.Icon:SetTexture (headerData.icon)
+ columnHeader.Icon:SetTexture (headerData.icon)
if (headerData.texcoord) then
- headerFrame.Icon:SetTexCoord (unpack (headerData.texcoord))
+ columnHeader.Icon:SetTexCoord (unpack (headerData.texcoord))
else
- headerFrame.Icon:SetTexCoord (0, 1, 0, 1)
+ columnHeader.Icon:SetTexCoord (0, 1, 0, 1)
end
- headerFrame.Icon:SetPoint ("left", headerFrame, "left", self.options.padding, 0)
- headerFrame.Icon:Show()
+ columnHeader.Icon:SetPoint ("left", columnHeader, "left", self.options.padding, 0)
+ columnHeader.Icon:Show()
end
if (headerData.text) then
- headerFrame.Text:SetText (headerData.text)
+ columnHeader.Text:SetText (headerData.text)
--> text options
- DF:SetFontColor (headerFrame.Text, self.options.text_color)
- DF:SetFontSize (headerFrame.Text, self.options.text_size)
- DF:SetFontOutline (headerFrame.Text, self.options.text_shadow)
+ DF:SetFontColor (columnHeader.Text, self.options.text_color)
+ DF:SetFontSize (columnHeader.Text, self.options.text_size)
+ DF:SetFontOutline (columnHeader.Text, self.options.text_shadow)
--> point
if (not headerData.icon) then
- headerFrame.Text:SetPoint ("left", headerFrame, "left", self.options.padding, 0)
+ columnHeader.Text:SetPoint ("left", columnHeader, "left", self.options.padding, 0)
else
- headerFrame.Text:SetPoint ("left", headerFrame.Icon, "right", self.options.padding, 0)
+ columnHeader.Text:SetPoint ("left", columnHeader.Icon, "right", self.options.padding, 0)
end
- headerFrame.Text:Show()
+ columnHeader.Text:Show()
+ end
+
+ --column header index
+ columnHeader.columnIndex = headerIndex
+
+ if (headerData.canSort) then
+ columnHeader.order = "DESC"
+ columnHeader.Arrow:SetTexture (self.options.arrow_up_texture)
+ else
+ columnHeader.Arrow:Hide()
+ end
+
+ if (headerData.selected) then
+ columnHeader.Arrow:Show()
+ columnHeader.Arrow:SetAlpha (.843)
+ self:UpdateSortArrow (columnHeader, true, columnHeader.order)
+ self.columnSelected = headerIndex
+ else
+ if (headerData.canSort) then
+ self:UpdateSortArrow (columnHeader, false, columnHeader.order)
+ end
end
--> size
if (headerData.width) then
- headerFrame:SetWidth (headerData.width)
+ columnHeader:SetWidth (headerData.width)
end
if (headerData.height) then
- headerFrame:SetHeight (headerData.height)
+ columnHeader:SetHeight (headerData.height)
end
- headerFrame.XPosition = self.HeaderWidth-- + self.options.padding
- headerFrame.YPosition = self.HeaderHeight-- + self.options.padding
+ columnHeader.XPosition = self.HeaderWidth-- + self.options.padding
+ columnHeader.YPosition = self.HeaderHeight-- + self.options.padding
- headerFrame.columnAlign = headerData.align or "left"
- headerFrame.columnOffset = headerData.offset or 0
+ columnHeader.columnAlign = headerData.align or "left"
+ columnHeader.columnOffset = headerData.offset or 0
--> add the header piece size to the total header size
local growDirection = string.lower (self.options.grow_direction)
if (growDirection == "right" or growDirection == "left") then
- self.HeaderWidth = self.HeaderWidth + headerFrame:GetWidth() + self.options.padding
- self.HeaderHeight = math.max (self.HeaderHeight, headerFrame:GetHeight())
+ self.HeaderWidth = self.HeaderWidth + columnHeader:GetWidth() + self.options.padding
+ self.HeaderHeight = math.max (self.HeaderHeight, columnHeader:GetHeight())
elseif (growDirection == "top" or growDirection == "bottom") then
- self.HeaderWidth = math.max (self.HeaderWidth, headerFrame:GetWidth())
- self.HeaderHeight = self.HeaderHeight + headerFrame:GetHeight() + self.options.padding
+ self.HeaderWidth = math.max (self.HeaderWidth, columnHeader:GetWidth())
+ self.HeaderHeight = self.HeaderHeight + columnHeader:GetHeight() + self.options.padding
end
- headerFrame:Show()
- headerFrame.InUse = true
+ columnHeader:Show()
+ columnHeader.InUse = true
end,
- RefreshHeader = function (self, headerFrame)
- headerFrame:SetSize (self.options.header_width, self.options.header_height)
- headerFrame:SetBackdrop (self.options.header_backdrop)
- headerFrame:SetBackdropColor (unpack (self.options.header_backdrop_color))
- headerFrame:SetBackdropBorderColor (unpack (self.options.header_backdrop_border_color))
+ --reset column header backdrop
+ --@self: main header frame
+ ResetColumnHeaderBackdrop = function (self, columnHeader)
+ columnHeader:SetBackdrop (self.options.header_backdrop)
+ columnHeader:SetBackdropColor (unpack (self.options.header_backdrop_color))
+ columnHeader:SetBackdropBorderColor (unpack (self.options.header_backdrop_border_color))
+ end,
+
+ --@self: main header frame
+ SetBackdropColorForSelectedColumnHeader = function (self, columnHeader)
+ columnHeader:SetBackdropColor (unpack (self.options.header_backdrop_color_selected))
+ end,
+
+ --clear the column header
+ --@self: main header frame
+ ClearColumnHeader = function (self, columnHeader)
+ columnHeader:SetSize (self.options.header_width, self.options.header_height)
+ self:ResetColumnHeaderBackdrop (columnHeader)
- headerFrame:ClearAllPoints()
+ columnHeader:ClearAllPoints()
- headerFrame.Icon:SetTexture ("")
- headerFrame.Icon:Hide()
- headerFrame.Text:SetText ("")
- headerFrame.Text:Hide()
+ columnHeader.Icon:SetTexture ("")
+ columnHeader.Icon:Hide()
+ columnHeader.Text:SetText ("")
+ columnHeader.Text:Hide()
end,
+ --get the next column header, create one if doesn't exists
+ --@self: main header frame
GetNextHeader = function (self)
local nextHeader = self.NextHeader
- local headerFrame = self.HeadersCreated [nextHeader]
+ local columnHeader = self.columnHeadersCreated [nextHeader]
- if (not headerFrame) then
- local newHeader = CreateFrame ("frame", "$parentHeaderIndex" .. nextHeader, self)
-
+ if (not columnHeader) then
+ --create a new column header
+ local newHeader = CreateFrame ("button", "$parentHeaderIndex" .. nextHeader, self)
+ newHeader:SetScript ("OnClick", DF.HeaderFunctions.OnClick)
+
+ --header icon
DF:CreateImage (newHeader, "", self.options.header_height, self.options.header_height, "ARTWORK", nil, "Icon", "$parentIcon")
+ --header separator
DF:CreateImage (newHeader, "", 1, 1, "ARTWORK", nil, "Separator", "$parentSeparator")
+ --header name text
DF:CreateLabel (newHeader, "", self.options.text_size, self.options.text_color, "GameFontNormal", "Text", "$parentText", "ARTWORK")
-
+ --header selected and order icon
+ DF:CreateImage (newHeader, self.options.arrow_up_texture, 12, 12, "ARTWORK", nil, "Arrow", "$parentArrow")
+
+ newHeader.Arrow:SetPoint ("right", newHeader, "right", -1, 0)
+
newHeader.Separator:Hide()
+ newHeader.Arrow:Hide()
+
+ self:UpdateSortArrow (newHeader, false, "DESC")
- tinsert (self.HeadersCreated, newHeader)
- headerFrame = newHeader
+ tinsert (self.columnHeadersCreated, newHeader)
+ columnHeader = newHeader
end
- self:RefreshHeader (headerFrame)
+ self:ClearColumnHeader (columnHeader)
self.NextHeader = self.NextHeader + 1
- return headerFrame
+ return columnHeader
end,
NextHeader = 1,
@@ -5451,10 +5580,19 @@ local default_header_options = {
--each piece of the header
header_backdrop = {bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true},
header_backdrop_color = {0, 0, 0, 0.5},
+ header_backdrop_color_selected = {0.3, 0.3, 0.3, 0.5},
header_backdrop_border_color = {0, 0, 0, 0},
header_width = 120,
header_height = 20,
-
+
+ arrow_up_texture = [[Interface\Buttons\Arrow-Up-Down]],
+ arrow_up_texture_coords = {0, 1, 6/16, 1},
+ arrow_up_size = {12, 11},
+ arrow_down_texture = [[Interface\Buttons\Arrow-Down-Down]],
+ arrow_down_texture_coords = {0, 1, 0, 11/16},
+ arrow_down_size = {12, 11},
+ arrow_alpha = 0.659,
+
use_line_separators = false,
line_separator_color = {.1, .1, .1, .6},
line_separator_width = 1,
@@ -5462,8 +5600,8 @@ local default_header_options = {
line_separator_gap_align = false,
}
-function DF:CreateHeader (parent, headerTable, options)
- local f = CreateFrame ("frame", "$parentHeaderLine", parent)
+function DF:CreateHeader (parent, headerTable, options, frameName)
+ local f = CreateFrame ("frame", frameName or "$parentHeaderLine", parent)
DF:Mixin (f, DF.OptionsFunctions)
DF:Mixin (f, DF.HeaderCoreFunctions)
@@ -5475,7 +5613,7 @@ function DF:CreateHeader (parent, headerTable, options)
f:SetBackdropBorderColor (unpack (f.options.backdrop_border_color))
f:SetHeaderTable (headerTable)
-
+
return f
end
@@ -9599,4 +9737,4 @@ end
---functionn falsee truee breakk elsea endz
\ No newline at end of file
+--functionn falsee truee breakk elsea endz
diff --git a/Libs/LibCompress/LibCompress.lua b/Libs/LibCompress/LibCompress.lua
index 87ce1e4f..c75a470c 100644
--- a/Libs/LibCompress/LibCompress.lua
+++ b/Libs/LibCompress/LibCompress.lua
@@ -1252,4 +1252,4 @@ end
function LibCompress:fcs32final(uFcs32)
return bit_bnot(uFcs32)
-end
\ No newline at end of file
+end
diff --git a/Libs/LibCompress/LibCompress.toc b/Libs/LibCompress/LibCompress.toc
index ca237574..2d808cff 100644
--- a/Libs/LibCompress/LibCompress.toc
+++ b/Libs/LibCompress/LibCompress.toc
@@ -1,4 +1,4 @@
-## Interface: 70300
+## Interface: 70300
## Title: Lib: Compress
## Notes: Compression and Decompression library
@@ -11,4 +11,4 @@
## LoadOnDemand: 1
LibStub\LibStub.lua
-lib.xml
\ No newline at end of file
+lib.xml
diff --git a/Libs/LibCompress/lib.xml b/Libs/LibCompress/lib.xml
index c85b2134..d35c6a9f 100644
--- a/Libs/LibCompress/lib.xml
+++ b/Libs/LibCompress/lib.xml
@@ -1,4 +1,4 @@
-
\ No newline at end of file
+
diff --git a/Libs/LibSharedMedia-3.0/LibSharedMedia-3.0.lua b/Libs/LibSharedMedia-3.0/LibSharedMedia-3.0.lua
index 1e1e25f0..605ae8f1 100644
--- a/Libs/LibSharedMedia-3.0/LibSharedMedia-3.0.lua
+++ b/Libs/LibSharedMedia-3.0/LibSharedMedia-3.0.lua
@@ -1,6 +1,6 @@
--[[
Name: LibSharedMedia-3.0
-Revision: $Revision: 106 $
+Revision: $Revision: 113 $
Author: Elkano (elkano@gmx.de)
Inspired By: SurfaceLib by Haste/Otravi (troeks@gmail.com)
Website: http://www.wowace.com/projects/libsharedmedia-3-0/
@@ -9,7 +9,7 @@ Dependencies: LibStub, CallbackHandler-1.0
License: LGPL v2.1
]]
-local MAJOR, MINOR = "LibSharedMedia-3.0", 6010002 -- 6.1.0 v2 / increase manually on changes
+local MAJOR, MINOR = "LibSharedMedia-3.0", 8020002 -- 8.2.0 v2 / increase manually on changes
local lib = LibStub:NewLibrary(MAJOR, MINOR)
if not lib then return end
@@ -22,6 +22,8 @@ local type = _G.type
local band = _G.bit.band
local table_sort = _G.table.sort
+local RESTRICTED_FILE_ACCESS = not not C_RaidLocks -- starting with 8.2, some rules for file access have changed; classic still uses the old way
+
local locale = GetLocale()
local locale_is_western
local LOCALE_MASK = 0
@@ -191,11 +193,12 @@ if not lib.MediaTable.statusbar then lib.MediaTable.statusbar = {} end
lib.MediaTable.statusbar["Blizzard"] = [[Interface\TargetingFrame\UI-StatusBar]]
lib.MediaTable.statusbar["Blizzard Character Skills Bar"] = [[Interface\PaperDollInfoFrame\UI-Character-Skills-Bar]]
lib.MediaTable.statusbar["Blizzard Raid Bar"] = [[Interface\RaidFrame\Raid-Bar-Hp-Fill]]
+lib.MediaTable.statusbar["Solid"] = [[Interface\Buttons\WHITE8X8]]
lib.DefaultMedia.statusbar = "Blizzard"
-- SOUND
if not lib.MediaTable.sound then lib.MediaTable.sound = {} end
-lib.MediaTable.sound["None"] = [[Interface\Quiet.ogg]] -- Relies on the fact that PlaySound[File] doesn't error on non-existing input.
+lib.MediaTable.sound["None"] = RESTRICTED_FILE_ACCESS and 1 or [[Interface\Quiet.ogg]] -- Relies on the fact that PlaySound[File] doesn't error on these values.
lib.DefaultMedia.sound = "None"
local function rebuildMediaList(mediatype)
@@ -220,18 +223,25 @@ function lib:Register(mediatype, key, data, langmask)
error(MAJOR..":Register(mediatype, key, data, langmask) - key must be string, got "..type(key))
end
mediatype = mediatype:lower()
- if mediatype == lib.MediaType.FONT and ((langmask and band(langmask, LOCALE_MASK) == 0) or not (langmask or locale_is_western)) then return false end
- if mediatype == lib.MediaType.SOUND and type(data) == "string" then
+ if mediatype == lib.MediaType.FONT and ((langmask and band(langmask, LOCALE_MASK) == 0) or not (langmask or locale_is_western)) then
+ -- ignore fonts that aren't flagged as supporting local glyphs on non-western clients
+ return false
+ end
+ if type(data) == "string" and (mediatype == lib.MediaType.BACKGROUND or mediatype == lib.MediaType.BORDER or mediatype == lib.MediaType.STATUSBAR or mediatype == lib.MediaType.SOUND) then
local path = data:lower()
- -- Only ogg and mp3 are valid sounds.
- if not path:find(".ogg", nil, true) and not path:find(".mp3", nil, true) then
+ if RESTRICTED_FILE_ACCESS and not path:find("^interface") then
+ -- files accessed via path only allowed from interface folder
+ return false
+ end
+ if mediatype == lib.MediaType.SOUND and not (path:find(".ogg", nil, true) or not path:find(".mp3", nil, true)) then
+ -- Only ogg and mp3 are valid sounds.
return false
end
end
if not mediaTable[mediatype] then mediaTable[mediatype] = {} end
local mtable = mediaTable[mediatype]
if mtable[key] then return false end
-
+
mtable[key] = data
rebuildMediaList(mediatype)
self.callbacks:Fire("LibSharedMedia_Registered", mediatype, key)
diff --git a/Libs/LibSharedMedia-3.0/lib.xml b/Libs/LibSharedMedia-3.0/lib.xml
index 5b4a5c87..7313228b 100644
--- a/Libs/LibSharedMedia-3.0/lib.xml
+++ b/Libs/LibSharedMedia-3.0/lib.xml
@@ -1,4 +1,4 @@
-
\ No newline at end of file
+
diff --git a/Libs/NickTag-1.0/NickTag-1.0.lua b/Libs/NickTag-1.0/NickTag-1.0.lua
index 757f60d0..5ce71fc4 100644
--- a/Libs/NickTag-1.0/NickTag-1.0.lua
+++ b/Libs/NickTag-1.0/NickTag-1.0.lua
@@ -42,6 +42,10 @@ end
_G.NickTag = NickTag --> nicktag object over global container
local pool = {default = true} --> pointer to the cache pool and the default pool if no cache
+ local siblingsPools = {} --> pools registered by other addons
+ --when this instance was the first to load
+ local isMaster = false
+
NickTag.debug = false
LibStub:GetLibrary ("AceComm-3.0"):Embed (NickTag)
@@ -232,68 +236,65 @@ end
storedPersona = NickTag:Create (source)
end
- --what's the point of the revision if there's no more revision checks? -- feels deprecated
- --will leave this as a comment for now, might remove in the future
- --if (storedPersona [CONST_INDEX_REVISION] < receivedPersona [CONST_INDEX_REVISION]) then
- storedPersona [CONST_INDEX_REVISION] = receivedPersona [CONST_INDEX_REVISION]
-
- --> we need to check if the received nickname fit in our rules.
- local allowNickName = NickTag:CheckName (receivedPersona [CONST_INDEX_NICKNAME])
- if (allowNickName) then
- storedPersona [CONST_INDEX_NICKNAME] = receivedPersona [CONST_INDEX_NICKNAME]
- else
- storedPersona [CONST_INDEX_NICKNAME] = LibStub ("AceLocale-3.0"):GetLocale ("NickTag-1.0")["STRING_INVALID_NAME"]
- end
-
+ storedPersona [CONST_INDEX_REVISION] = receivedPersona [CONST_INDEX_REVISION]
+
+ --> we need to check if the received nickname fit in our rules.
+ local allowNickName = NickTag:CheckName (receivedPersona [CONST_INDEX_NICKNAME])
+ if (allowNickName) then
storedPersona [CONST_INDEX_NICKNAME] = receivedPersona [CONST_INDEX_NICKNAME]
+ else
+ storedPersona [CONST_INDEX_NICKNAME] = LibStub ("AceLocale-3.0"):GetLocale ("NickTag-1.0")["STRING_INVALID_NAME"]
+ end
+
+ storedPersona [CONST_INDEX_NICKNAME] = receivedPersona [CONST_INDEX_NICKNAME]
+
+ --> update the rest
+ --avatar path
+ storedPersona [CONST_INDEX_AVATAR_PATH] = type (receivedPersona [CONST_INDEX_AVATAR_PATH]) == "string" and receivedPersona [CONST_INDEX_AVATAR_PATH] or ""
+
+ --avatar texcoord
+ if (type (receivedPersona [CONST_INDEX_AVATAR_TEXCOORD]) == "boolean") then
+ storedPersona [CONST_INDEX_AVATAR_TEXCOORD] = {0, 1, 0, 1}
- --> update the rest
- --avatar path
- storedPersona [CONST_INDEX_AVATAR_PATH] = type (receivedPersona [CONST_INDEX_AVATAR_PATH]) == "string" and receivedPersona [CONST_INDEX_AVATAR_PATH] or ""
+ elseif (type (receivedPersona [CONST_INDEX_AVATAR_TEXCOORD]) == "table") then
+ storedPersona [CONST_INDEX_AVATAR_TEXCOORD] = storedPersona [CONST_INDEX_AVATAR_TEXCOORD] or {}
+ storedPersona [CONST_INDEX_AVATAR_TEXCOORD][1] = type (receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][1]) == "number" and receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][1] or 0
+ storedPersona [CONST_INDEX_AVATAR_TEXCOORD][2] = type (receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][2]) == "number" and receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][2] or 1
+ storedPersona [CONST_INDEX_AVATAR_TEXCOORD][3] = type (receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][3]) == "number" and receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][3] or 0
+ storedPersona [CONST_INDEX_AVATAR_TEXCOORD][4] = type (receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][4]) == "number" and receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][4] or 1
+ else
+ storedPersona [CONST_INDEX_AVATAR_TEXCOORD] = {0, 1, 0, 1}
+ end
+
+ --background texcoord
+ if (type (receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD]) == "boolean") then
+ storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD] = {0, 1, 0, 1}
- --avatar texcoord
- if (type (receivedPersona [CONST_INDEX_AVATAR_TEXCOORD]) == "boolean") then
- storedPersona [CONST_INDEX_AVATAR_TEXCOORD] = {0, 1, 0, 1}
-
- elseif (type (receivedPersona [CONST_INDEX_AVATAR_TEXCOORD]) == "table") then
- storedPersona [CONST_INDEX_AVATAR_TEXCOORD] = storedPersona [CONST_INDEX_AVATAR_TEXCOORD] or {}
- storedPersona [CONST_INDEX_AVATAR_TEXCOORD][1] = type (receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][1]) == "number" and receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][1] or 0
- storedPersona [CONST_INDEX_AVATAR_TEXCOORD][2] = type (receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][2]) == "number" and receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][2] or 1
- storedPersona [CONST_INDEX_AVATAR_TEXCOORD][3] = type (receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][3]) == "number" and receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][3] or 0
- storedPersona [CONST_INDEX_AVATAR_TEXCOORD][4] = type (receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][4]) == "number" and receivedPersona [CONST_INDEX_AVATAR_TEXCOORD][4] or 1
- else
- storedPersona [CONST_INDEX_AVATAR_TEXCOORD] = {0, 1, 0, 1}
- end
-
- --background texcoord
- if (type (receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD]) == "boolean") then
- storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD] = {0, 1, 0, 1}
-
- elseif (type (receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD]) == "table") then
- storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD] = storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD] or {}
- storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][1] = type (receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][1]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][1] or 0
- storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][2] = type (receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][2]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][2] or 1
- storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][3] = type (receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][3]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][3] or 0
- storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][4] = type (receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][4]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][4] or 1
- else
- storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD] = {0, 1, 0, 1}
- end
-
- --background path
- storedPersona [CONST_INDEX_BACKGROUND_PATH] = type (receivedPersona [CONST_INDEX_BACKGROUND_PATH]) == "string" and receivedPersona [CONST_INDEX_BACKGROUND_PATH] or ""
-
- --background color
- if (type (receivedPersona [CONST_INDEX_BACKGROUND_COLOR]) == "table") then
- storedPersona [CONST_INDEX_BACKGROUND_COLOR] = storedPersona [CONST_INDEX_BACKGROUND_COLOR] or {}
- storedPersona [CONST_INDEX_BACKGROUND_COLOR][1] = type (receivedPersona [CONST_INDEX_BACKGROUND_COLOR][1]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_COLOR][1] or 1
- storedPersona [CONST_INDEX_BACKGROUND_COLOR][2] = type (receivedPersona [CONST_INDEX_BACKGROUND_COLOR][2]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_COLOR][2] or 1
- storedPersona [CONST_INDEX_BACKGROUND_COLOR][3] = type (receivedPersona [CONST_INDEX_BACKGROUND_COLOR][3]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_COLOR][3] or 1
- else
- storedPersona [CONST_INDEX_BACKGROUND_COLOR] = {1, 1, 1}
- end
-
- NickTag:Msg ("FULLPERSONA received and updated for character: ", source, "new nickname: ", receivedPersona [CONST_INDEX_NICKNAME])
- --end
+ elseif (type (receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD]) == "table") then
+ storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD] = storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD] or {}
+ storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][1] = type (receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][1]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][1] or 0
+ storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][2] = type (receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][2]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][2] or 1
+ storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][3] = type (receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][3]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][3] or 0
+ storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][4] = type (receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][4]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_TEXCOORD][4] or 1
+ else
+ storedPersona [CONST_INDEX_BACKGROUND_TEXCOORD] = {0, 1, 0, 1}
+ end
+
+ --background path
+ storedPersona [CONST_INDEX_BACKGROUND_PATH] = type (receivedPersona [CONST_INDEX_BACKGROUND_PATH]) == "string" and receivedPersona [CONST_INDEX_BACKGROUND_PATH] or ""
+
+ --background color
+ if (type (receivedPersona [CONST_INDEX_BACKGROUND_COLOR]) == "table") then
+ storedPersona [CONST_INDEX_BACKGROUND_COLOR] = storedPersona [CONST_INDEX_BACKGROUND_COLOR] or {}
+ storedPersona [CONST_INDEX_BACKGROUND_COLOR][1] = type (receivedPersona [CONST_INDEX_BACKGROUND_COLOR][1]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_COLOR][1] or 1
+ storedPersona [CONST_INDEX_BACKGROUND_COLOR][2] = type (receivedPersona [CONST_INDEX_BACKGROUND_COLOR][2]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_COLOR][2] or 1
+ storedPersona [CONST_INDEX_BACKGROUND_COLOR][3] = type (receivedPersona [CONST_INDEX_BACKGROUND_COLOR][3]) == "number" and receivedPersona [CONST_INDEX_BACKGROUND_COLOR][3] or 1
+ else
+ storedPersona [CONST_INDEX_BACKGROUND_COLOR] = {1, 1, 1}
+ end
+
+ NickTag:SyncSiblings()
+ NickTag:Msg ("FULLPERSONA received and updated for character: ", source, "new nickname: ", receivedPersona [CONST_INDEX_NICKNAME])
end
end
@@ -349,6 +350,9 @@ end
--> broadcast over guild channel
if (IsInGuild()) then
+ if (isMaster) then
+ NickTag:SyncSiblings()
+ end
NickTag:SendCommMessage ("NickTag", NickTag:Serialize (CONST_COMM_FULLPERSONA, 0, NickTag:GetNicknameTable (UnitName ("player")), minor), "GUILD")
end
@@ -403,12 +407,24 @@ end
end
end
+ --register a table where data can be saved
function NickTag:NickTagSetCache (_table)
if (not pool.default) then
- return table.wipe (_table)
+ --already have a place to save
+ --save the new table as sibling
+ --so all addons using nicktag can have the data synchronized
+ siblingsPools [#siblingsPools + 1] = _table
+
+ --copy all players into the sibling table
+ for key, value in pairs (pool) do
+ _table [key] = value
+ end
+
+ return
end
pool = _table
+ isMaster = true --> this instance of nicktag will save data
if (not pool.nextreset) then
pool.nextreset = time() + (60*60*24*15)
@@ -424,6 +440,15 @@ end
end
end
+ function NickTag:SyncSiblings()
+ --copy all data into siblings table
+ for _, syblingTable in ipairs (siblingsPools) do
+ for key, value in pairs (pool) do
+ syblingTable [key] = value
+ end
+ end
+ end
+
------------------------------------------------------------------------------------------------------------------------------------------------------
--> basic functions
diff --git a/boot.lua b/boot.lua
index 9ef4247d..93786a8d 100644
--- a/boot.lua
+++ b/boot.lua
@@ -4,7 +4,7 @@
_ = nil
_detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0")
- _detalhes.build_counter = 7183
+ _detalhes.build_counter = 7184
_detalhes.alpha_build_counter = 7183 --if this is higher than the regular counter, use it instead
_detalhes.game_version = "v8.2.0"
_detalhes.userversion = "v8.2.0." .. _detalhes.build_counter
diff --git a/locales/Details-deDE.lua b/locales/Details-deDE.lua
index 2be08586..88b3ff4a 100644
--- a/locales/Details-deDE.lua
+++ b/locales/Details-deDE.lua
@@ -1,4 +1,1669 @@
local L = LibStub("AceLocale-3.0"):NewLocale("Details", "deDE")
if not L then return end
-@localization(locale="deDE", format="lua_additive_table")@
\ No newline at end of file
+L["ABILITY_ID"] = "Zauber-ID"
+L["STRING_"] = ""
+L["STRING_ABSORBED"] = "Absorbiert"
+L["STRING_ACTORFRAME_NOTHING"] = "Oops, es gibt keine zu berichtenden Daten"
+L["STRING_ACTORFRAME_REPORTAT"] = "auf"
+L["STRING_ACTORFRAME_REPORTOF"] = "von"
+L["STRING_ACTORFRAME_REPORTTARGETS"] = "Bericht für Ziele von"
+L["STRING_ACTORFRAME_REPORTTO"] = "Bericht für"
+L["STRING_ACTORFRAME_SPELLDETAILS"] = "Zauberdetails"
+L["STRING_ACTORFRAME_SPELLSOF"] = "Zauber von"
+L["STRING_ACTORFRAME_SPELLUSED"] = "Verwendete Zauber"
+L["STRING_AGAINST"] = "gegen"
+L["STRING_ALIVE"] = "lebend"
+L["STRING_ALPHA"] = "Transparenz"
+L["STRING_ANCHOR_BOTTOM"] = "Unten"
+L["STRING_ANCHOR_BOTTOMLEFT"] = "Unten links"
+L["STRING_ANCHOR_BOTTOMRIGHT"] = "Unten rechts"
+L["STRING_ANCHOR_LEFT"] = "Links"
+L["STRING_ANCHOR_RIGHT"] = "Rechts"
+L["STRING_ANCHOR_TOP"] = "Oben"
+L["STRING_ANCHOR_TOPLEFT"] = "Oben links"
+L["STRING_ANCHOR_TOPRIGHT"] = "Oben rechts"
+L["STRING_ASCENDING"] = "Aufsteigend"
+L["STRING_ATACH_DESC"] = "Fenster #%d stellt eine Gruppe mit Fenster #%d her."
+L["STRING_ATTRIBUTE_CUSTOM"] = "Benutzerdefiniert"
+L["STRING_ATTRIBUTE_DAMAGE"] = "Schaden"
+L["STRING_ATTRIBUTE_DAMAGE_BYSPELL"] = "Erlittener Schaden durch Zauber"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS"] = "Auren & Leerenfelder"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS_REPORT"] = "Schwächungszauberschaden und -laufzeit"
+L["STRING_ATTRIBUTE_DAMAGE_DONE"] = "Verursachter Schaden"
+L["STRING_ATTRIBUTE_DAMAGE_DPS"] = "DPS"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES"] = "Gegnerischer Erlittener Schaden"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES_DONE"] = "Gegnerischer Verursachter Schaden"
+L["STRING_ATTRIBUTE_DAMAGE_FRAGS"] = "Todesstöße"
+L["STRING_ATTRIBUTE_DAMAGE_FRIENDLYFIRE"] = "Eigenbeschuss"
+L["STRING_ATTRIBUTE_DAMAGE_TAKEN"] = "Erlittener Schaden"
+L["STRING_ATTRIBUTE_ENERGY"] = "Ressourcen"
+L["STRING_ATTRIBUTE_ENERGY_ALTERNATEPOWER"] = "Alternative Energie"
+L["STRING_ATTRIBUTE_ENERGY_ENERGY"] = "Erzeugte Energie"
+L["STRING_ATTRIBUTE_ENERGY_MANA"] = "Wiederhergestelltes Mana"
+L["STRING_ATTRIBUTE_ENERGY_RAGE"] = "Erzeugte Wut"
+L["STRING_ATTRIBUTE_ENERGY_RESOURCES"] = "Andere Ressourcen"
+L["STRING_ATTRIBUTE_ENERGY_RUNEPOWER"] = "Erzeugte Runenmacht"
+L["STRING_ATTRIBUTE_HEAL"] = "Heilung"
+L["STRING_ATTRIBUTE_HEAL_ABSORBED"] = "Absorbierte Heilung"
+L["STRING_ATTRIBUTE_HEAL_DONE"] = "Gewirkte Heilung"
+L["STRING_ATTRIBUTE_HEAL_ENEMY"] = "Gegnerische Gewirkte Heilung"
+L["STRING_ATTRIBUTE_HEAL_HPS"] = "HPS"
+L["STRING_ATTRIBUTE_HEAL_OVERHEAL"] = "Überheilung"
+L["STRING_ATTRIBUTE_HEAL_PREVENT"] = "Verhinderter Schaden"
+L["STRING_ATTRIBUTE_HEAL_TAKEN"] = "Erhaltene Heilung"
+L["STRING_ATTRIBUTE_MISC"] = "Sonstiges"
+L["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"] = "Stärkungszauberlaufzeit"
+L["STRING_ATTRIBUTE_MISC_CCBREAK"] = "CC-Abbrüche"
+L["STRING_ATTRIBUTE_MISC_DEAD"] = "Tode"
+L["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"] = "Schwächungszauberlaufzeit"
+L["STRING_ATTRIBUTE_MISC_DEFENSIVE_COOLDOWNS"] = "Abklingzeiten"
+L["STRING_ATTRIBUTE_MISC_DISPELL"] = "Bannungen"
+L["STRING_ATTRIBUTE_MISC_INTERRUPT"] = "Unterbrechungen"
+L["STRING_ATTRIBUTE_MISC_RESS"] = "Wiederbelebungen"
+L["STRING_AUTO"] = "auto"
+L["STRING_AUTOSHOT"] = "Automatische Angriffe"
+L["STRING_AVERAGE"] = "Mittelwert"
+L["STRING_BLOCKED"] = "Blockiert"
+L["STRING_BOTTOM"] = "unten"
+L["STRING_BOTTOM_TO_TOP"] = "Unten nach Oben"
+L["STRING_CAST"] = "Wirkungen"
+L["STRING_CAUGHT"] = "gefangen"
+L["STRING_CCBROKE"] = "Entfernte Massenkontrolle"
+L["STRING_CENTER"] = "Mitte"
+L["STRING_CENTER_UPPER"] = "Mitte"
+L["STRING_CHANGED_TO_CURRENT"] = "Segement gewechselt: |cFFFFFF00Aktuell|r"
+L["STRING_CHANNEL_PRINT"] = "Beobachter"
+L["STRING_CHANNEL_RAID"] = "Schlachtzug"
+L["STRING_CHANNEL_SAY"] = "Sagen"
+L["STRING_CHANNEL_WHISPER"] = "Flüstern"
+L["STRING_CHANNEL_WHISPER_TARGET_COOLDOWN"] = "Ziel anflüstern für Abklingzeit"
+L["STRING_CHANNEL_YELL"] = "Schreien"
+L["STRING_CLICK_REPORT_LINE1"] = "|cFFFFCC22Klick|r: |cFFFFEE00Bericht|r"
+L["STRING_CLICK_REPORT_LINE2"] = "|cFFFFCC22Shift+Click|r: |cFFFFEE00Fenstermodus|r"
+L["STRING_CLOSEALL"] = "Alle Details!-Fenster sind geschlossen, schreibe '/details show', um sie wieder zu öffnen."
+L["STRING_COLOR"] = "Farbe"
+L["STRING_COMMAND_LIST"] = "Befehlsliste"
+L["STRING_COOLTIP_NOOPTIONS"] = "Keine Optionen"
+L["STRING_CREATEAURA"] = "Aura erstellen"
+L["STRING_CRITICAL_HITS"] = "Kritische Treffer"
+L["STRING_CRITICAL_ONLY"] = "kritisch"
+L["STRING_CURRENT"] = "Aktuell"
+L["STRING_CURRENTFIGHT"] = "Aktueller Kampf"
+L["STRING_CUSTOM_ACTIVITY_ALL"] = "Aktiv-Zeit"
+L["STRING_CUSTOM_ACTIVITY_ALL_DESC"] = "Zeigt die Aktiv-Zeiten für jeden Spieler im Schlachtzug."
+L["STRING_CUSTOM_ACTIVITY_DPS"] = "Aktive Schadenzeit"
+L["STRING_CUSTOM_ACTIVITY_DPS_DESC"] = "Zeigt für jeden Charakter die Zeit, in der aktiv Schaden verursacht wurde."
+L["STRING_CUSTOM_ACTIVITY_HPS"] = "Aktive Heilzeit"
+L["STRING_CUSTOM_ACTIVITY_HPS_DESC"] = "Zeigt für jeden Charakter die Zeit, in der aktiv Heilung gewirkt wurde."
+L["STRING_CUSTOM_ATTRIBUTE_DAMAGE"] = "Schaden"
+L["STRING_CUSTOM_ATTRIBUTE_HEAL"] = "Heilung"
+L["STRING_CUSTOM_ATTRIBUTE_SCRIPT"] = "Benutzerdefiniertes Skript"
+L["STRING_CUSTOM_AUTHOR"] = "Autor:"
+L["STRING_CUSTOM_AUTHOR_DESC"] = "Wer erstellte diese Anzeige."
+L["STRING_CUSTOM_CANCEL"] = "Abbrechen"
+L["STRING_CUSTOM_CC_DONE"] = "Verursachte Massenkontrolle"
+L["STRING_CUSTOM_CC_RECEIVED"] = "Erhaltene Massenkontrolle"
+L["STRING_CUSTOM_CREATE"] = "Erstellen"
+L["STRING_CUSTOM_CREATED"] = "Die neue Anzeige wurde erstellt."
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET"] = "Schaden auf anderweitig markierte Ziele"
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET_DESC"] = "Zeigt den Schaden, der anderweitig markierten Zielen zugefügt wurde."
+L["STRING_CUSTOM_DAMAGEONSHIELDS"] = "Schaden auf Schilde"
+L["STRING_CUSTOM_DAMAGEONSKULL"] = "Schaden auf mit dem Totenschädel markierte Ziele"
+L["STRING_CUSTOM_DAMAGEONSKULL_DESC"] = "Zeigt den Schaden, der mit Totenkopf markierten Zielen zugefügt wurde"
+L["STRING_CUSTOM_DESCRIPTION"] = "Beschreibung:"
+L["STRING_CUSTOM_DESCRIPTION_DESC"] = "Beschreibung, was diese Anzeige macht."
+L["STRING_CUSTOM_DONE"] = "Fertig"
+L["STRING_CUSTOM_DTBS"] = "Erlittener Schaden von Zauber"
+L["STRING_CUSTOM_DTBS_DESC"] = "Zeigt den Schaden von feindlichen Zaubern gegen deine Gruppe. "
+L["STRING_CUSTOM_DYNAMICOVERAL"] = "Dynamischer Gesamtschaden"
+L["STRING_CUSTOM_EDIT"] = "Bearbeiten"
+L["STRING_CUSTOM_EDIT_SEARCH_CODE"] = "Suchcode bearbeiten"
+L["STRING_CUSTOM_EDIT_TOOLTIP_CODE"] = "Tooltip-Code bearbeiten"
+L["STRING_CUSTOM_EDITCODE_DESC"] = "Das ist eine erweiterte Funktion, womit der Benutzer eigenen Code für die Anzeige erstellen kann."
+L["STRING_CUSTOM_EDITTOOLTIP_DESC"] = "Dies ist der Tooltip-Code, der ausgeführt wird, wenn der Benutzer mit der Maus über die Leiste fährt."
+L["STRING_CUSTOM_ENEMY_DT"] = "Erlittener Schaden"
+L["STRING_CUSTOM_EXPORT"] = "Exportieren"
+L["STRING_CUSTOM_FUNC_INVALID"] = "Benutzerspezifisches Skript ist ungültig und das Fenster kann nicht aktualisiert werden."
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT"] = "Benutzte Heiltränke & Gesundheitssteine"
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT_DESC"] = "Zeigt, wer im Schlachtzug den Gesundheitsstein oder einen Heiltrank benutzt hat."
+L["STRING_CUSTOM_ICON"] = "Symbol:"
+L["STRING_CUSTOM_IMPORT"] = "Importieren"
+L["STRING_CUSTOM_IMPORT_ALERT"] = "Anzeige wurde geladen, klicke auf 'Importieren', um zu bestätigen."
+L["STRING_CUSTOM_IMPORT_BUTTON"] = "Importieren"
+L["STRING_CUSTOM_IMPORT_ERROR"] = "Import fehlgeschlagen, fehlerhafte Zeichenfolge."
+L["STRING_CUSTOM_IMPORTED"] = "Die Anzeige wurde erfolgreich importiert."
+L["STRING_CUSTOM_LONGNAME"] = "Name zu lang, maximal 32 Zeichen erlaubt."
+L["STRING_CUSTOM_MYSPELLS"] = "Meine Zauber"
+L["STRING_CUSTOM_MYSPELLS_DESC"] = "Zeigt deine Zauber im Fenster."
+L["STRING_CUSTOM_NAME"] = "Name:"
+L["STRING_CUSTOM_NAME_DESC"] = "Gib einen Namen für deine neue Anzeige ein."
+L["STRING_CUSTOM_NEW"] = "Verwalten eigener Anzeigen"
+L["STRING_CUSTOM_PASTE"] = "Hier Einfügen:"
+L["STRING_CUSTOM_POT_DEFAULT"] = "Benutzte Tränke"
+L["STRING_CUSTOM_POT_DEFAULT_DESC"] = "Zeigt, wer im Schlachtzug einen Trank benutzt hat."
+L["STRING_CUSTOM_REMOVE"] = "Entfernen"
+L["STRING_CUSTOM_REPORT"] = "(Benutzerdefiniert)"
+L["STRING_CUSTOM_SAVE"] = "Änderungen speichern"
+L["STRING_CUSTOM_SAVED"] = "Die Anzeige wurde gespeichert."
+L["STRING_CUSTOM_SHORTNAME"] = "Der Name muss mindestens 5 Zeichen lang sein"
+L["STRING_CUSTOM_SKIN_TEXTURE"] = "Benutzerdef. Datei"
+L["STRING_CUSTOM_SKIN_TEXTURE_DESC"] = [=[Der Name einer *.tga-Datei.
+
+Sie muss in folgendem Ordner zu finden sein:
+
+|cFFFFFF00WoW/Interface/|r
+
+|cFFFFFF00Achtung:|r vor der Dateierstellung unbedingt das Spiel beenden. Nach einem Neustart wird die neue Textur übernommen.]=]
+L["STRING_CUSTOM_SOURCE"] = "Quelle:"
+L["STRING_CUSTOM_SOURCE_DESC"] = [=[Wer löst den Effekt aus.
+
+Die Schaltfläche auf der rechten Seite zeigt eine Liste der NPCs aus Schlachtzugsbegegnungen.]=]
+L["STRING_CUSTOM_SPELLID"] = "Zauber-ID:"
+L["STRING_CUSTOM_SPELLID_DESC"] = [=[Optional, die Zauberquelle, die auf das Ziel wirkt.
+
+Die Schaltfläche in der rechten Seite zeigt eine Liste der Zauber von Schlachtzugsbegegnungen.]=]
+L["STRING_CUSTOM_TARGET"] = "Ziel:"
+L["STRING_CUSTOM_TARGET_DESC"] = [=[Das ist das Ziel einer Quelle.
+
+Die Schaltfläche auf der rechten Seite zeigt eine Liste der NPCs aus Schlachtzugsbegegnungen.]=]
+L["STRING_CUSTOM_TEMPORARILY"] = "(|cFFFFC000temporär|r)"
+L["STRING_DAMAGE"] = "Schaden"
+L["STRING_DAMAGE_DPS_IN"] = "DPS erhalten von"
+L["STRING_DAMAGE_FROM"] = "Erlitt Schaden von"
+L["STRING_DAMAGE_TAKEN_FROM"] = "Erlittener Schaden von"
+L["STRING_DAMAGE_TAKEN_FROM2"] = "Schaden zugefügt mit"
+L["STRING_DEFENSES"] = "Verteidigung "
+L["STRING_DESCENDING"] = "Absteigend"
+L["STRING_DETACH_DESC"] = "Löst die Fenstergruppe auf"
+L["STRING_DISCARD"] = "Verwerfen"
+L["STRING_DISPELLED"] = "Entfernte Stärkungs-/Schwächungszauber"
+L["STRING_DODGE"] = "Ausweichen"
+L["STRING_DOT"] = "(DoT)"
+L["STRING_DPS"] = "DPS"
+L["STRING_EMPTY_SEGMENT"] = "Leeres Segment"
+L["STRING_ENABLED"] = "Aktiviert"
+L["STRING_ENVIRONMENTAL_DROWNING"] = "Umgebung: (Ertrinken)"
+L["STRING_ENVIRONMENTAL_FALLING"] = "Umgebung: (Fallen)"
+L["STRING_ENVIRONMENTAL_FATIGUE"] = "Umgebung: (Erschöpfung)"
+L["STRING_ENVIRONMENTAL_FIRE"] = "Umgebung: (Feuer)"
+L["STRING_ENVIRONMENTAL_LAVA"] = "Umgebung: (Lava)"
+L["STRING_ENVIRONMENTAL_SLIME"] = "Umgebung: (Schleim)"
+L["STRING_EQUILIZING"] = "Begegnungsdaten teilen"
+L["STRING_ERASE"] = "Löschen"
+L["STRING_ERASE_DATA"] = "Alle Daten zurücksetzen"
+L["STRING_ERASE_DATA_OVERALL"] = "Gesamtdaten zurücksetzen"
+L["STRING_ERASE_IN_COMBAT"] = "Plane vollständige Löschung nach dem aktuellen Kampf."
+L["STRING_EXAMPLE"] = "Beispiel"
+L["STRING_EXPLOSION"] = "Explosion"
+L["STRING_FAIL_ATTACKS"] = "Fehlgeschlagene Attacken"
+L["STRING_FEEDBACK_CURSE_DESC"] = "Eröffne ein Ticket oder hinterlasse eine Nachricht auf der Details!-Seite."
+L["STRING_FEEDBACK_MMOC_DESC"] = "Poste in unserem Thema im Forum von MMO-Champion."
+L["STRING_FEEDBACK_PREFERED_SITE"] = "Wähle deine bevorzugte Community-Seite:"
+L["STRING_FEEDBACK_SEND_FEEDBACK"] = "Sende eine Rückmeldung"
+L["STRING_FEEDBACK_WOWI_DESC"] = "Schreibe ein Kommentar auf der Details!-Projektseite."
+L["STRING_FIGHTNUMBER"] = "Kampf #"
+L["STRING_FORGE_BUTTON_ALLSPELLS"] = "Alle Zauber"
+L["STRING_FORGE_BUTTON_ALLSPELLS_DESC"] = "Listet alle Zauber von Spielern und NSCs."
+L["STRING_FORGE_BUTTON_BWTIMERS"] = "BigWigs-Timer"
+L["STRING_FORGE_BUTTON_BWTIMERS_DESC"] = "Listet Timer von BigWigs auf"
+L["STRING_FORGE_BUTTON_DBMTIMERS"] = "DBM-Timer"
+L["STRING_FORGE_BUTTON_DBMTIMERS_DESC"] = "Listet Timer von Deadly Boss Mods auf"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS"] = "Bosszauber"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS_DESC"] = "Listet nur Zauber von Schlachtzugs- und Dungeon-Kämpfen auf."
+L["STRING_FORGE_BUTTON_ENEMIES"] = "Gegner"
+L["STRING_FORGE_BUTTON_ENEMIES_DESC"] = "Listet Gegner des aktuellen Kampfes auf."
+L["STRING_FORGE_BUTTON_PETS"] = "Begleiter"
+L["STRING_FORGE_BUTTON_PETS_DESC"] = "Listet Begleiter des aktuellen Kampfes auf."
+L["STRING_FORGE_BUTTON_PLAYERS"] = "Spieler"
+L["STRING_FORGE_BUTTON_PLAYERS_DESC"] = "Listet Spieler des aktuellen Kampfes auf."
+L["STRING_FORGE_ENABLEPLUGINS"] = "\"Bitte aktiviere die Details!-Module mit Schlachtzugsnamen im Escape-Menü > AddOns, z.B. Details: Tomb of Sargeras.\""
+L["STRING_FORGE_FILTER_BARTEXT"] = "Leistenname"
+L["STRING_FORGE_FILTER_CASTERNAME"] = "Zauberwirker-Name"
+L["STRING_FORGE_FILTER_ENCOUNTERNAME"] = "Begegnungsname"
+L["STRING_FORGE_FILTER_ENEMYNAME"] = "Gegnername"
+L["STRING_FORGE_FILTER_OWNERNAME"] = "Besitzername"
+L["STRING_FORGE_FILTER_PETNAME"] = "Begleitername"
+L["STRING_FORGE_FILTER_PLAYERNAME"] = "Spielername"
+L["STRING_FORGE_FILTER_SPELLNAME"] = "Zaubername"
+L["STRING_FORGE_HEADER_BARTEXT"] = "Leistentext"
+L["STRING_FORGE_HEADER_CASTER"] = "Zauberwirker"
+L["STRING_FORGE_HEADER_CLASS"] = "Klasse"
+L["STRING_FORGE_HEADER_CREATEAURA"] = "Aura erstellen"
+L["STRING_FORGE_HEADER_ENCOUNTERID"] = "Begegnungs-ID"
+L["STRING_FORGE_HEADER_ENCOUNTERNAME"] = "Begegnungsname"
+L["STRING_FORGE_HEADER_EVENT"] = "Ereignis"
+L["STRING_FORGE_HEADER_FLAG"] = "Flag"
+L["STRING_FORGE_HEADER_GUID"] = "GUID"
+L["STRING_FORGE_HEADER_ICON"] = "Symbol"
+L["STRING_FORGE_HEADER_ID"] = "ID"
+L["STRING_FORGE_HEADER_INDEX"] = "Index"
+L["STRING_FORGE_HEADER_NAME"] = "Name"
+L["STRING_FORGE_HEADER_NPCID"] = "NSC-ID"
+L["STRING_FORGE_HEADER_OWNER"] = "Besitzer"
+L["STRING_FORGE_HEADER_SCHOOL"] = "Kategorie"
+L["STRING_FORGE_HEADER_SPELLID"] = "Zauber-ID"
+L["STRING_FORGE_HEADER_TIMER"] = "Timer"
+L["STRING_FORGE_TUTORIAL_DESC"] = [=[
+ Durchsuche Zauber- und Boss-Mods-Timer, um Auren durch Klicken auf '|cFFFFFF00Aura Erstellen|r' zu erstellen.]=]
+L["STRING_FORGE_TUTORIAL_TITLE"] = "Willkommen bei Details! Forge"
+L["STRING_FORGE_TUTORIAL_VIDEO"] = "Beispiel einer Aura bei Verwendung von Bossmod-Timern:"
+L["STRING_FREEZE"] = "Dieses Segment ist im Moment nicht verfügbar "
+L["STRING_FROM"] = "Von"
+L["STRING_GERAL"] = "Allgemein"
+L["STRING_GLANCING"] = "nur gestreift"
+L["STRING_GUILDDAMAGERANK_BOSS"] = "Boss"
+L["STRING_GUILDDAMAGERANK_DATABASEERROR"] = "'|cFFFFFF00Details! Storage|r' konnte nicht geöffnet werden, ist das Addon deaktiviert?"
+L["STRING_GUILDDAMAGERANK_DIFF"] = "Schwierigkeit"
+L["STRING_GUILDDAMAGERANK_GUILD"] = "Gilde"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE"] = "Spielerbasis"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_INDIVIDUAL"] = "Einzelspieler"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_PLAYER"] = "Spieler"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_RAID"] = "Alle Spieler"
+L["STRING_GUILDDAMAGERANK_RAID"] = "Schlachtzug"
+L["STRING_GUILDDAMAGERANK_ROLE"] = "Rolle"
+L["STRING_GUILDDAMAGERANK_SHOWHISTORY"] = "Verlauf zeigen"
+L["STRING_GUILDDAMAGERANK_SHOWRANK"] = "Gildenbank zeigen"
+L["STRING_GUILDDAMAGERANK_SYNCBUTTONTEXT"] = "Mit Gilde synchronisieren"
+L["STRING_GUILDDAMAGERANK_TUTORIAL_DESC"] = "Details! speichert den Schaden und die Heilung für jeden Boss, den du mit deiner Gilde triffst. Durchsuche den Verlauf, indem du das Kästchen'|cFFFFFF00Zeige Gerschichte|r' anklickst. Die Ergebnisse für alle Kämpfe werden angezeigt.\\n Durch Auswahl von '|cFFFFFF00Zeige Gilden Rang|r' werden die Top-Ergebnisse für den ausgewählten Boss angezeigt.\\n\\n\\nWenn Sie dieses Tool zum ersten Mal verwenden oder wenn Sie einen Tag des Schlachtzuges verloren haben, klicken Sie auf die Schaltfläche '|cFFFFFFFFFF00Synchroniesiere mit Gilde|r'."
+L["STRING_GUILDDAMAGERANK_WINDOWALERT"] = "Boss besiegt! Rangliste zeigen"
+L["STRING_HEAL"] = "Heilung"
+L["STRING_HEAL_ABSORBED"] = "Absorbierte Heilung"
+L["STRING_HEAL_CRIT"] = "Kritische Heilung"
+L["STRING_HEALING_FROM"] = "Erhaltene Heilung von"
+L["STRING_HEALING_HPS_FROM"] = "Erhaltene HPS von"
+L["STRING_HITS"] = "Treffer"
+L["STRING_HPS"] = "HPS"
+L["STRING_IMAGEEDIT_ALPHA"] = "Transparenz"
+L["STRING_IMAGEEDIT_CROPBOTTOM"] = "Unten abschneiden"
+L["STRING_IMAGEEDIT_CROPLEFT"] = "Links abschneiden"
+L["STRING_IMAGEEDIT_CROPRIGHT"] = "Rechts abschneiden"
+L["STRING_IMAGEEDIT_CROPTOP"] = "Oben abschneiden"
+L["STRING_IMAGEEDIT_DONE"] = "FERTIG"
+L["STRING_IMAGEEDIT_FLIPH"] = "Horizontal spiegeln"
+L["STRING_IMAGEEDIT_FLIPV"] = "Vertikal spiegeln"
+L["STRING_INFO_TAB_AVOIDANCE"] = "Vermeidung"
+L["STRING_INFO_TAB_COMPARISON"] = "Vergleichen"
+L["STRING_INFO_TAB_SUMMARY"] = "Zusammenfassung"
+L["STRING_INFO_TUTORIAL_COMPARISON1"] = "Klicke auf den |cFFFFDD00Vergleichen|r-Reiter für Vergleiche zwischen Spielern derselben Klasse."
+L["STRING_INSTANCE_CHAT"] = "Instanzchat"
+L["STRING_INSTANCE_LIMIT"] = "Maximale Fensteranzahl erreicht. Dieses Limit kann in den Optionen geändert werden. Geschlossene Fenster können via (#) Fenstermenü wieder angezeigt werden."
+L["STRING_INTERFACE_OPENOPTIONS"] = "Konfigurationsmenü öffnen"
+L["STRING_ISA_PET"] = "Dies ist ein Begleiter"
+L["STRING_KEYBIND_BOOKMARK"] = "Lesezeichen"
+L["STRING_KEYBIND_BOOKMARK_NUMBER"] = "Lesezeichen #%s"
+L["STRING_KEYBIND_RESET_SEGMENTS"] = "Segmente zurücksetzen"
+L["STRING_KEYBIND_SCROLL_DOWN"] = "Alle Fenster runterscrollen"
+L["STRING_KEYBIND_SCROLL_UP"] = "Alle Fenster raufscrollen"
+L["STRING_KEYBIND_SCROLLING"] = "Scrollen"
+L["STRING_KEYBIND_SEGMENTCONTROL"] = "Segmente"
+L["STRING_KEYBIND_TOGGLE_WINDOW"] = "Fenster #%s umschalten"
+L["STRING_KEYBIND_TOGGLE_WINDOWS"] = "Alle umschalten"
+L["STRING_KEYBIND_WINDOW_CONTROL"] = "Fenster"
+L["STRING_KEYBIND_WINDOW_REPORT"] = "Bericht aus Fenster #%s."
+L["STRING_KEYBIND_WINDOW_REPORT_HEADER"] = "Berichtsdaten"
+L["STRING_KILLED"] = "Getötet"
+L["STRING_LAST_COOLDOWN"] = "Letzter benutzter Cooldown"
+L["STRING_LEFT"] = "links"
+L["STRING_LEFT_CLICK_SHARE"] = "Linksklick, um zu berichten"
+L["STRING_LEFT_TO_RIGHT"] = "Links nach Rechts"
+L["STRING_LOCK_DESC"] = "Fenster fixieren/freigeben"
+L["STRING_LOCK_WINDOW"] = "fixieren"
+L["STRING_MASTERY"] = "Meisterschaft"
+L["STRING_MAXIMUM"] = "Maximum"
+L["STRING_MAXIMUM_SHORT"] = "Max."
+L["STRING_MEDIA"] = "Medien"
+L["STRING_MELEE"] = "Nahkampf"
+L["STRING_MEMORY_ALERT_BUTTON"] = "Ich habe verstanden"
+L["STRING_MEMORY_ALERT_TEXT1"] = "Details! benötigt viel Speicher, aber |cFFFF8800entgegen landläufiger Meinungen|r, hat der Speicherverbrauch |cFFFF8800keinerlei Einfluß|r auf die Spielleistung oder die FPS."
+L["STRING_MEMORY_ALERT_TEXT2"] = "Also keine Panik, wenn du bemerkst, dass Details! viel Speicher benötigt :D. |cFFFF8800Alles ist gut !|r - ein Großteil des Speichers wird |cFFFF8800nur als Zwischenspeicher benutzt|r, um das Addon ein wenig schneller zu machen."
+L["STRING_MEMORY_ALERT_TEXT3"] = "Wie auch immer - wenn du herausbekommen möchtest, |cFFFF8800welche Addons viel 'anspruchsvoller'|r sind oder am stärksten die FPS drücken, installiere dir das Addon: '|cFFFFFF00AddOns Cpu Usage|r'."
+L["STRING_MEMORY_ALERT_TITLE"] = "Bitte aufmerksam lesen !!"
+L["STRING_MENU_CLOSE_INSTANCE"] = "Dieses Fenster schließen"
+L["STRING_MENU_CLOSE_INSTANCE_DESC"] = "Ein geschlossenes Fenster wird als inaktiv betrachtet und kann jederzeit über das Fensterkontrollmenü wieder geöffnet werden."
+L["STRING_MENU_CLOSE_INSTANCE_DESC2"] = "Um ein Fenster vollständig zu löschen, gehe in die sonstigen Einstellungen des Optionsmenüs."
+L["STRING_MENU_INSTANCE_CONTROL"] = "Fensterkontrolle"
+L["STRING_MINIMAP_TOOLTIP1"] = "|cFFCFCFCFLinksklick|r: Optionsmenü öffnen"
+L["STRING_MINIMAP_TOOLTIP11"] = "|cFFCFCFCFLinksklick|r: Alle Segmente löschen"
+L["STRING_MINIMAP_TOOLTIP12"] = "|cFFCFCFCFLinksklick|r: Zeige/Verstecke Fenster"
+L["STRING_MINIMAP_TOOLTIP2"] = "|cFFCFCFCFRechtsklick|r: Schnellmenü"
+L["STRING_MINIMAPMENU_CLOSEALL"] = "Alle Fenster schließen"
+L["STRING_MINIMAPMENU_HIDEICON"] = "Minikartensymbol verstecken"
+L["STRING_MINIMAPMENU_LOCK"] = "Fixieren"
+L["STRING_MINIMAPMENU_NEWWINDOW"] = "Neues Fenster erstellen"
+L["STRING_MINIMAPMENU_REOPENALL"] = "Alle Fenster wieder öffnen"
+L["STRING_MINIMAPMENU_UNLOCK"] = "Freigeben"
+L["STRING_MINIMUM"] = "Minimum"
+L["STRING_MINIMUM_SHORT"] = "Min."
+L["STRING_MINITUTORIAL_BOOKMARK1"] = "Rechtsklick an beliebiger Stelle über dem Fenster, um die Lesezeichen zu öffnen!"
+L["STRING_MINITUTORIAL_BOOKMARK2"] = "Lesezeichen geben schnellen Zugriff auf Favoriten-Anzeigen."
+L["STRING_MINITUTORIAL_BOOKMARK3"] = "Rechtsklick, um das Lesezeichenmenü zu schließen."
+L["STRING_MINITUTORIAL_BOOKMARK4"] = "Nicht noch einmal anzeigen."
+L["STRING_MINITUTORIAL_CLOSECTRL1"] = "|cFFFFFF00Strg + Rechtsklick |r schließt das Fenster!"
+L["STRING_MINITUTORIAL_CLOSECTRL2"] = "Zum Wiedereröffnen gehe ins Mode-Menü -> Fensterkontrolle oder Optionsmenü."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL1"] = "Welches Fenster wird bearbeitet."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL2"] = "Ist diese Option aktiviert, werden alle Fenster in der Gruppe ebenfalls geändert."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL3"] = [=[So erstellt man eine Gruppe: Ziehe Fenster #2 in die Nähe von Fenster #1.
+
+Klicke auf |cFFFFFF00Aus Gruppe lösen|r, um das Fenster aus der Fenstergruppe zu entfernen.]=]
+L["STRING_MINITUTORIAL_OPTIONS_PANEL4"] = "Erstellt Testleisten, um die Konfiguration zu testen."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL5"] = "Wenn Gruppeneditierung aktiviert ist, werden alle Fenster in einer Gruppe geändert."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL6"] = "Wähle hier, welche Fensterdarstellung geändert werden soll."
+L["STRING_MINITUTORIAL_WINDOWS1"] = [=[Eine Fenstergruppe wurde gerade gebildet.
+
+Zum Auflösen das Schlosssymbol anklicken.]=]
+L["STRING_MINITUTORIAL_WINDOWS2"] = [=[Das Fenster ist fixiert worden.
+
+Klicke auf die Titelleiste und ziehe es auf.]=]
+L["STRING_MIRROR_IMAGE"] = "Bilder spiegeln"
+L["STRING_MISS"] = "Verfehlen"
+L["STRING_MODE_ALL"] = "Alles"
+L["STRING_MODE_GROUP"] = "Standard"
+L["STRING_MODE_OPENFORGE"] = "Zauberliste"
+L["STRING_MODE_PLUGINS"] = "Zusatzmodule"
+L["STRING_MODE_RAID"] = "Zusatzmodule: Schlachtzug"
+L["STRING_MODE_SELF"] = "Zusatzmodule: Solospiel"
+L["STRING_MORE_INFO"] = "Siehe rechte Box für mehr Informationen"
+L["STRING_MULTISTRIKE"] = "Mehrfachschlag"
+L["STRING_MULTISTRIKE_HITS"] = "Mehrfachschlagtreffer"
+L["STRING_MUSIC_DETAILS_ROBERTOCARLOS"] = [=[Song von Roberto Carlos: Details
+Keine deutsche Übersetzung
+Spanischer/englischer Text: http://lyricstranslate.com/de/detalhes-details.html ]=]
+L["STRING_NEWROW"] = "warte Aktualisierung ab ..."
+L["STRING_NEWS_REINSTALL"] = "Treten nach einem Update Fehler auf? Probier '/details reinstall'."
+L["STRING_NEWS_TITLE"] = "Was ist neu in dieser Version?"
+L["STRING_NO"] = "Nein"
+L["STRING_NO_DATA"] = "Daten wurden bereits bereinigt."
+L["STRING_NO_SPELL"] = "Kein Zauber wurde benutzt."
+L["STRING_NO_TARGET"] = "Kein Ziel gefunden."
+L["STRING_NO_TARGET_BOX"] = "Keine Ziele verfügbar"
+L["STRING_NOCLOSED_INSTANCES"] = [=[Es gibt keine geschlossenen Fenster,
+klicke, um ein neues zu erstellen.]=]
+L["STRING_NOLAST_COOLDOWN"] = "Kein Cooldown benutzt."
+L["STRING_NOMORE_INSTANCES"] = [=[Max Fensteranzahl wurde erreicht.
+Ändere die Anzahl im Optionsmenü.]=]
+L["STRING_NORMAL_HITS"] = "Normale Treffer"
+L["STRING_NUMERALSYSTEM"] = "Zahlensystem"
+L["STRING_NUMERALSYSTEM_ARABIC_MYRIAD_EASTASIA"] = "In ost-asiatischen Ländern benutzt, unterteilt in Tausendern und einer Unzahl."
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN"] = "Westlich"
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN_DESC"] = "Übliche Schreibweise, unterteilt in Tausendern und Millionen."
+L["STRING_NUMERALSYSTEM_DESC"] = "Wähle das zu benutzende Zahlensystem aus."
+L["STRING_NUMERALSYSTEM_MYRIAD_EASTASIA"] = "Ost-Asien"
+L["STRING_OFFHAND_HITS"] = "Nebenhand"
+L["STRING_OPTIONS_3D_LALPHA_DESC"] = [=[Wähle einen Wert für die Transparenz.
+
+|cFFFFFF00Achtung|r: Einige Modelle ignorieren den Transparenzwert.]=]
+L["STRING_OPTIONS_3D_LANCHOR"] = "Unteres 3D-Modell:"
+L["STRING_OPTIONS_3D_LENABLED_DESC"] = "Aktiviert oder deaktiviert die Nutzung eines 3D-Modells unter den Balken."
+L["STRING_OPTIONS_3D_LSELECT_DESC"] = "Wähle das zu benutzende 3D-Modell für die Balken."
+L["STRING_OPTIONS_3D_SELECT"] = "Modell wählen"
+L["STRING_OPTIONS_3D_UALPHA_DESC"] = [=[Wähle einen Wert für die Transparenz des oberen Modells.
+
+|cFFFFFF00Achtung|r: Einige Modelle ignorieren den Transparenzwert.]=]
+L["STRING_OPTIONS_3D_UANCHOR"] = "Oberes 3D-Modell:"
+L["STRING_OPTIONS_3D_UENABLED_DESC"] = "Aktiviert oder deaktiviert die Nutzung eines 3D-Modells über den Balken."
+L["STRING_OPTIONS_3D_USELECT_DESC"] = "Wähle das zu benutzende 3D-Modell für die Balken."
+L["STRING_OPTIONS_ADVANCED"] = "Erweitert"
+L["STRING_OPTIONS_ALPHAMOD_ANCHOR"] = "Automatisch Verbergen:"
+L["STRING_OPTIONS_ALWAYS_USE"] = "Bei allen Charakteren benutzen"
+L["STRING_OPTIONS_ALWAYS_USE_DESC"] = "Wenn aktiviert, nutzen alle Charaktere das ausgewählte Profil. Andernfalls erscheint eine Anzeige, in der nach einem zu benutzenden Profil gefragt wird."
+L["STRING_OPTIONS_ALWAYSSHOWPLAYERS"] = "Alle Spieler anzeigen"
+L["STRING_OPTIONS_ALWAYSSHOWPLAYERS_DESC"] = "Wenn du den standardmäßigen Standardmodus verwendest, zeigt er Spielercharaktere an, auch wenn sie nicht in einer Gruppen mit dir sind. "
+L["STRING_OPTIONS_ANCHOR"] = "Seite"
+L["STRING_OPTIONS_ANIMATEBARS"] = "Balken animieren"
+L["STRING_OPTIONS_ANIMATEBARS_DESC"] = "Aktiviert Animationen für alle Balken."
+L["STRING_OPTIONS_ANIMATESCROLL"] = "Scrollbalken animieren"
+L["STRING_OPTIONS_ANIMATESCROLL_DESC"] = "Aktiviert: Scrollbalken werden animiert ein- oder ausgeblendet."
+L["STRING_OPTIONS_APPEARANCE"] = "Aussehen"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT"] = "Titeltext-Einstellungen"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT_DESC"] = "Diese Einstellungen kontrollieren den Titeltext des Fensters."
+L["STRING_OPTIONS_AUTO_SWITCH"] = "Alle Rollen |cFFFFAA00(im Kampf)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_COMBAT"] = "|cFFFFAA00(im Kampf)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_DAMAGER_DESC"] = "In Schadensspezialisierung zeigt dieses Fenster das ausgewählte Attribut oder Zusatzmodul an."
+L["STRING_OPTIONS_AUTO_SWITCH_DESC"] = [=[Während des Kampfes zeigt das Fenster das gewählte Attribut oder Zusatzmodul an.
+
+|cFFFFFF00Achtung|r: Das Individuelle Rollenattribut, das für jede Rolle ausgewählt wurde, überschreibt das hier gewählte.]=]
+L["STRING_OPTIONS_AUTO_SWITCH_HEALER_DESC"] = "In Heilerspezialisierung zeigt dieses Fenster das ausgewählte Attribut oder Zusatzmodul an."
+L["STRING_OPTIONS_AUTO_SWITCH_TANK_DESC"] = "In Schutzspezialisierung zeigt dieses Fenster das ausgewählte Attribut oder Zusatzmodul an."
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE"] = "Nach einem Wipe"
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE_DESC"] = "Nach fehlgeschlagener Begegnung wird automatisch dieses Attribut angezeigt."
+L["STRING_OPTIONS_AVATAR"] = "Wähle dein Avatar"
+L["STRING_OPTIONS_AVATAR_ANCHOR"] = "Identität:"
+L["STRING_OPTIONS_AVATAR_DESC"] = "Avatare werden an Gildenmitglieder gesendet und auch oberhalb der Tooltips und dem Spieler-Detailfenster angezeigt."
+L["STRING_OPTIONS_BAR_BACKDROP_ANCHOR"] = "Rahmen:"
+L["STRING_OPTIONS_BAR_BACKDROP_COLOR_DESC"] = "Ändert die Rahmenfarbe."
+L["STRING_OPTIONS_BAR_BACKDROP_ENABLED_DESC"] = "Aktiviert oder deaktiviert den Balkenrahmen."
+L["STRING_OPTIONS_BAR_BACKDROP_SIZE_DESC"] = "Ändert die Rahmengröße."
+L["STRING_OPTIONS_BAR_BACKDROP_TEXTURE_DESC"] = "Ändert das Aussehen des Rahmens."
+L["STRING_OPTIONS_BAR_BCOLOR"] = "Hintergrundfarbe"
+L["STRING_OPTIONS_BAR_BTEXTURE_DESC"] = "Diese Textur liegt unterhalb der obersten Textur und hat dieselbe Größe wie das Fenster."
+L["STRING_OPTIONS_BAR_COLOR_DESC"] = [=[Farbe und Transparenz dieser Textur.
+
+|cFFFFFF00Achtung|r: Die gewählte Farbe wird ignoriert, wenn Klassenfarben benutzt werden!]=]
+L["STRING_OPTIONS_BAR_COLORBYCLASS"] = "Spieler-Klassenfarben"
+L["STRING_OPTIONS_BAR_COLORBYCLASS_DESC"] = "Aktiviert: Die Textur verwendet immer Klassenfarben"
+L["STRING_OPTIONS_BAR_FOLLOWING"] = "Immer mich anzeigen"
+L["STRING_OPTIONS_BAR_FOLLOWING_ANCHOR"] = "Spielerbalken:"
+L["STRING_OPTIONS_BAR_FOLLOWING_DESC"] = "Aktiviert: Der Balken wird immer angezeigt, auch wenn Du nicht an der Spitze stehst."
+L["STRING_OPTIONS_BAR_GROW"] = "Balkenausrichtung"
+L["STRING_OPTIONS_BAR_GROW_DESC"] = "Die Balken werden von oben oder unten ergänzt."
+L["STRING_OPTIONS_BAR_HEIGHT"] = "Höhe"
+L["STRING_OPTIONS_BAR_HEIGHT_DESC"] = "Vergrößert oder verkleinert die Balkenhöhe."
+L["STRING_OPTIONS_BAR_ICONFILE"] = "Symboldatei"
+L["STRING_OPTIONS_BAR_ICONFILE_DESC"] = [=[Pfad zur eigenen Symboldatei.
+
+Das Bild muss als *.tga, 256x256 Pixel mit Alphakanal vorliegen.]=]
+L["STRING_OPTIONS_BAR_ICONFILE_DESC2"] = "Wähle das zu verwendende Symbolpaket."
+L["STRING_OPTIONS_BAR_ICONFILE1"] = "Kein Symbol"
+L["STRING_OPTIONS_BAR_ICONFILE2"] = "Standard"
+L["STRING_OPTIONS_BAR_ICONFILE3"] = "Standard (schwarz/weiß)"
+L["STRING_OPTIONS_BAR_ICONFILE4"] = "Standard (transparent)"
+L["STRING_OPTIONS_BAR_ICONFILE5"] = "Runde Symbole"
+L["STRING_OPTIONS_BAR_ICONFILE6"] = "Standard (transparent-schwarz/weiß)"
+L["STRING_OPTIONS_BAR_SPACING"] = "Abstand"
+L["STRING_OPTIONS_BAR_SPACING_DESC"] = "Abstand zwischen den Balken."
+L["STRING_OPTIONS_BAR_TEXTURE_DESC"] = "Textur, die für die Balkenoberseite verwendet wird."
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM"] = "Benutzerdefinierter Text aktiviert"
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM_DESC"] = "Aktiviert: Der linke Text wird nach den Regeln in der Box formatiert."
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2"] = ""
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{data1}|r: representiert generell die Spielerposition.
+
+|cFFFFFF00{data2}|r: ist immer der Spielername.
+
+|cFFFFFF00{data3}|r: ist in einigen Fällen die Fraktion oder das Klassensymbol.
+
+|cFFFFFF00{func}|r: durch eine LUA-Funktion bestimmter Wert im Text.
+Beispiel:
+{func gibt 'Hallo Azeroth' aus}
+
+|cFFFFFF00Escape Sequences|r: benutzt zur Farbänderung oder für Texturen. Suche nach 'UI escape sequences' für mehr Information.]=]
+L["STRING_OPTIONS_BARORIENTATION"] = "Balkenausrichtung"
+L["STRING_OPTIONS_BARORIENTATION_DESC"] = "Richtung, in der Balken aufgefüllt werden."
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM"] = "Benutzerdefinierter Text aktiviert"
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM_DESC"] = "Aktiviert: Der rechte Text wird nach den Regeln in der Box formatiert."
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2"] = ""
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{data1}|r: ist das erste bearbeitete Argument - generell die Gesamtsumme.
+
+|cFFFFFF00{data2}|r: zweites Argument - meistens der Mittelwert pro Sekunde.
+
+|cFFFFFF00{data3}|r: drittes Argument - i.d.R. der Prozentwert.
+
+|cFFFFFF00{func}|r: durch eine LUA-Funktion bestimmter Wert im Text.
+Beispiel:
+{func gibt 'Hallo Azeroth' aus}
+
+|cFFFFFF00Escape Sequences|r: benutzt zur Farbänderung oder für Texturen. Suche nach 'UI escape sequences' für mehr Information.]=]
+L["STRING_OPTIONS_BARS"] = "Allgemeine Balkeneinstellungen"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE"] = "Benutzerdefinierte Texturdatei"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE_DESC"] = "|cFFFFFF00Wichtig|r: Das Foto muss aus 256x32 Pixeln bestehen."
+L["STRING_OPTIONS_BARS_DESC"] = "Diese Option kontrolliert das Aussehen der Balken."
+L["STRING_OPTIONS_BARSORT"] = "Rangordnung"
+L["STRING_OPTIONS_BARSORT_DESC"] = "Ordnet Balken absteigend oder aufsteigend."
+L["STRING_OPTIONS_BARSTART"] = "Balkenanfang nach dem Symbol"
+L["STRING_OPTIONS_BARSTART_DESC"] = [=[Deaktiviert: Die oberste Textur beginnt am linken Rand des Symbols anstatt am rechten.
+
+Sinnvoll bei Symbolen mit transparenten Rändern.]=]
+L["STRING_OPTIONS_BARUR_ANCHOR"] = "Schnelle Aktualisierung"
+L["STRING_OPTIONS_BARUR_DESC"] = "Aktiviert: DPS/HPS-Werte werden etwas häufiger aktualisiert als üblich."
+L["STRING_OPTIONS_BG_ALL_ALLY"] = "Alle zeigen"
+L["STRING_OPTIONS_BG_ALL_ALLY_DESC"] = [=[Aktiviert: Zeigt auch gegnerische Spieler, wenn das Fenster gruppiert ist.
+
+|cFFFFFF00Wichtig|r: Änderungen werden erst beim nächsten Kampf übernommen.]=]
+L["STRING_OPTIONS_BG_ANCHOR"] = "Schlachtfelder:"
+L["STRING_OPTIONS_BG_UNIQUE_SEGMENT"] = "Einzigartiges Segment"
+L["STRING_OPTIONS_BG_UNIQUE_SEGMENT_DESC"] = "Ein Segment wird beim Start eines Schlachtfeldes erstellt und besteht bis das Schlachtfeld endet."
+L["STRING_OPTIONS_CAURAS"] = "Auren erfassen"
+L["STRING_OPTIONS_CAURAS_DESC"] = [=[Aktiviert die Erfassung von:
+
+- |cFFFFFF00Stärkungszauberlaufzeit|r
+- |cFFFFFF00Schwächungszauberlaufzeit|r
+- |cFFFFFF00Leerenfelder|r
+-|cFFFFFF00 Abklingzeiten|r]=]
+L["STRING_OPTIONS_CDAMAGE"] = "Schaden erfassen"
+L["STRING_OPTIONS_CDAMAGE_DESC"] = [=[Aktiviert die Erfassung von:
+
+- |cFFFFFF00Verursachter Schaden|r
+- |cFFFFFF00Schaden pro Sekunde|r
+- |cFFFFFF00Eigenbeschuss|r
+- |cFFFFFF00Erlittener Schaden|r]=]
+L["STRING_OPTIONS_CENERGY"] = "Ressourcen erfassen"
+L["STRING_OPTIONS_CENERGY_DESC"] = [=[Aktiviert die Erfassung von:
+
+- |cFFFFFF00Wiederhergestelltes Mana|r
+- |cFFFFFF00Erzeugte Wut|r
+- |cFFFFFF00Erzeugte Energie|r
+- |cFFFFFF00Erzeugte Runenmacht|r]=]
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS"] = "Klassenfarben ändern"
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS_DESC"] = "Wähle neue Klassenfarben aus."
+L["STRING_OPTIONS_CHANGECOLOR"] = "Farbe ändern"
+L["STRING_OPTIONS_CHANGELOG"] = "Versionshinweise"
+L["STRING_OPTIONS_CHART_ADD"] = "Daten hinzufügen"
+L["STRING_OPTIONS_CHART_ADD2"] = "Hinzufügen"
+L["STRING_OPTIONS_CHART_ADDAUTHOR"] = "Autor:"
+L["STRING_OPTIONS_CHART_ADDCODE"] = "Code: "
+L["STRING_OPTIONS_CHART_ADDICON"] = "Symbol:"
+L["STRING_OPTIONS_CHART_ADDNAME"] = "Name:"
+L["STRING_OPTIONS_CHART_ADDVERSION"] = "Version:"
+L["STRING_OPTIONS_CHART_AUTHOR"] = "Autor"
+L["STRING_OPTIONS_CHART_AUTHORERROR"] = "Der Autorenname ist ungültig."
+L["STRING_OPTIONS_CHART_CANCEL"] = "Abbrechen"
+L["STRING_OPTIONS_CHART_CLOSE"] = "Schließen"
+L["STRING_OPTIONS_CHART_CODELOADED"] = "Der Code ist bereits geladen und kann nicht angezeigt werden."
+L["STRING_OPTIONS_CHART_EDIT"] = "Code editieren"
+L["STRING_OPTIONS_CHART_EXPORT"] = "Export"
+L["STRING_OPTIONS_CHART_FUNCERROR"] = "Die Funktion ist ungültig."
+L["STRING_OPTIONS_CHART_ICON"] = "Symbol"
+L["STRING_OPTIONS_CHART_IMPORT"] = "Import"
+L["STRING_OPTIONS_CHART_IMPORTERROR"] = "Die Import-Zeichenfolge ist ungültig."
+L["STRING_OPTIONS_CHART_NAME"] = "Name"
+L["STRING_OPTIONS_CHART_NAMEERROR"] = "Der Name ist ungültig."
+L["STRING_OPTIONS_CHART_PLUGINWARNING"] = "Installiere das Zusatzmodul 'Chart Viewer' für benutzerdefinierte Ranglisten."
+L["STRING_OPTIONS_CHART_REMOVE"] = "Ersetzen"
+L["STRING_OPTIONS_CHART_SAVE"] = "Speichern"
+L["STRING_OPTIONS_CHART_VERSION"] = "Version"
+L["STRING_OPTIONS_CHART_VERSIONERROR"] = "Die Version ist ungültig."
+L["STRING_OPTIONS_CHEAL"] = "Heilung erfassen"
+L["STRING_OPTIONS_CHEAL_DESC"] = [=[Aktiviert die Erfassung von:
+
+- |cFFFFFF00Verursachte Heilung|r
+- |cFFFFFF00Absorptionen|r
+- |cFFFFFF00Heilung pro Sekunde|r
+- |cFFFFFF00Überheilung|r
+- |cFFFFFF00Erhaltene Heilungr
+- |cFFFFFF00Fremdheilung|r
+- |cFFFFFF00Verhinderter Schaden|r]=]
+L["STRING_OPTIONS_CLASSCOLOR_MODIFY"] = "Klassenfarben ändern"
+L["STRING_OPTIONS_CLASSCOLOR_RESET"] = "Rechtsklick, um zurückzusetzen"
+L["STRING_OPTIONS_CLEANUP"] = "Trash-Segmente automatisch löschen"
+L["STRING_OPTIONS_CLEANUP_DESC"] = "Aktiviert: Trash-Segmente werden automatisch nach zwei anderen Segmenten gelöscht."
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS"] = "Klicken, um Menüs zu öffnen"
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS_DESC"] = [=[Titelleistenschaltflächen werden nicht deren Menüs anzeigen, wenn der Mauszeiger darüber fährt.
+
+Stattdessen musst du darauf klicken.]=]
+L["STRING_OPTIONS_CLOUD"] = "Massensammlung"
+L["STRING_OPTIONS_CLOUD_DESC"] = "Aktiviert: Die Daten aus deaktivierten Sammlern werden bei anderen Schlachtzugsteilnehmern gesammelt."
+L["STRING_OPTIONS_CMISC"] = "Sonstiges erfassen"
+L["STRING_OPTIONS_CMISC_DESC"] = [=[Aktiviert die Erfassung von:
+
+- |cFFFFFF00Massenkontroll-Abbruch|r
+- |cFFFFFF00Bannungen|r
+- |cFFFFFF00Unterbrechungen|r
+- |cFFFFFF00Wiederbelebung|r
+- |cFFFFFF00Tode|r]=]
+L["STRING_OPTIONS_COLORANDALPHA"] = "Farbe & Transparenz"
+L["STRING_OPTIONS_COLORFIXED"] = "Festgelegte Farbe"
+L["STRING_OPTIONS_COMBAT_ALPHA"] = "Wann?"
+L["STRING_OPTIONS_COMBAT_ALPHA_1"] = "Niemals"
+L["STRING_OPTIONS_COMBAT_ALPHA_2"] = "Innerhalb eines Kampfes"
+L["STRING_OPTIONS_COMBAT_ALPHA_3"] = "Außerhalb eines Kampfes"
+L["STRING_OPTIONS_COMBAT_ALPHA_4"] = "Außerhalb einer Gruppe"
+L["STRING_OPTIONS_COMBAT_ALPHA_5"] = "Außerhalb einer Instanz"
+L["STRING_OPTIONS_COMBAT_ALPHA_6"] = "Innerhalb einer Instanz"
+L["STRING_OPTIONS_COMBAT_ALPHA_7"] = "Im Schlachtzug"
+L["STRING_OPTIONS_COMBAT_ALPHA_DESC"] = [=[Wähle, wie ein Kampf die Fenstertransparenz beeinflussen soll.
+
+|cFFFFFF00Keine Änderung|r: Transparenz unverändert.
+
+|cFFFFFF00Innerhalb eines Kampfes|r: Bei Kampfbeginn wird die gewählte Transparenz angewandt.
+
+|cFFFFFF00Außerhalb eines Kampfes|r: Außerhalb von Kämpfen wird die gewählte Transparenz angewandt.
+
+|cFFFFFF00Außerhalb einer Gruppe|r: Außerhalb einer Gruppe oder eines Schlachtzugs wird die gewählte Transparenz angewandt.
+
+|cFFFFFF00Achtung|r: Diese Option überschreibt den Wert der automatischen Transparenzanpassung.]=]
+L["STRING_OPTIONS_COMBATTWEEKS"] = "Kampfoptimierung"
+L["STRING_OPTIONS_COMBATTWEEKS_DESC"] = "Verhaltensanpassungen darüber, wie Details! mit einigen Kampfaspekten umgeht."
+L["STRING_OPTIONS_CONFIRM_ERASE"] = "Daten wirklich löschen?"
+L["STRING_OPTIONS_CUSTOMSPELL_ADD"] = "Zauber hinzufügen"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE"] = "Zaubereinstellungen editieren"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE_DESC"] = "Dieses Menü erlaubt es Dir, den Namen und das Symbol von Zaubern zu ändern."
+L["STRING_OPTIONS_DATABROKER"] = "Data-Broker:"
+L["STRING_OPTIONS_DATABROKER_TEXT"] = "Text"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD1"] = "Verursachter Schaden"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD2"] = "Effektive DPS"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD3"] = "Schadensposition"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD4"] = "Schadensdifferenz"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD5"] = "Gewirkte Heilung"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD6"] = "Effektive HPS"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD7"] = "Heilungsposition"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD8"] = "Heilungsdifferenz"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD9"] = "Kampflaufzeit"
+L["STRING_OPTIONS_DATABROKER_TEXT1_DESC"] = [=[|cFFFFFF00{dmg}|r: Schaden durch Spieler.
+
+|cFFFFFF00{dps}|r: Effektivschaden pro Sekunde durch Spieler.
+
+|cFFFFFF00{dpos}|r: Rangfolge im Schaden von Schlachtzugmitgliedern oder Gruppen.
+
+|cFFFFFF00{ddiff}|r: Schadensdifferenz zwischen dir und dem ersten Platz.
+
+|cFFFFFF00{heal}|r: Verursachte Heilung durch Spieler.
+
+|cFFFFFF00{hps}|r: Effektivheilung pro Sekunde durch Spieler.
+
+|cFFFFFF00{hpos}|r: Rangposition in der Heilung von Schlachtzugmitgliedern oder Gruppen.
+
+|cFFFFFF00{hdiff}|r: Heilungsdifferenz zwischen dir und dem ersten Platz.
+
+|cFFFFFF00{time}|r: Kampfdauer.]=]
+L["STRING_OPTIONS_DATACHARTTITLE"] = "Erstellt gezeitete Daten für Ranglisten"
+L["STRING_OPTIONS_DATACHARTTITLE_DESC"] = "Dieses Menü erlaubt Dir, benutzerdefinierte Datenerfassung zur Ranglistenerstellung zu erstellen."
+L["STRING_OPTIONS_DATACOLLECT_ANCHOR"] = "Datentypen:"
+L["STRING_OPTIONS_DEATHLIMIT"] = "Todesereignisanzahl"
+L["STRING_OPTIONS_DEATHLIMIT_DESC"] = [=[Stelle die Anzahl an Ereignissen für die Todesanzeige ein.
+
+|cFFFFFF00Wichtig|r: Wird nach der Änderung nur auf neue Tode angewendet.]=]
+L["STRING_OPTIONS_DEATHLOG_MINHEALING"] = "Mindestheilung für Todesprotokoll"
+L["STRING_OPTIONS_DEATHLOG_MINHEALING_DESC"] = "|cFFFFFF00Tip|r: Rechtsklicken, um einen manuellen Wert einzugeben."
+L["STRING_OPTIONS_DESATURATE_MENU"] = "Entfärbt"
+L["STRING_OPTIONS_DESATURATE_MENU_DESC"] = "Aktiviert: Alle Symbole der Werkzeugleiste werden schwarz-weiß."
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW"] = "Das Menü 'Alle Anzeigen' deaktivieren"
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW_DESC"] = "Aktiviert: Ein Rechtsklick auf die Titelleiste zeigt stattdessen deine Lesezeichen."
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT"] = "Balkenhervorhebung deaktivieren"
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT_DESC"] = "Aktiviert: Der Balken wird nicht heller, wenn der Mauszeiger darüberfährt."
+L["STRING_OPTIONS_DISABLE_GROUPS"] = "Gruppierung deaktivieren"
+L["STRING_OPTIONS_DISABLE_GROUPS_DESC"] = "Aktiviert: Ein Fenster wird bei Annäherung an ein anderes nicht gruppiert."
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE"] = "Größenänderungsschaltflächen deaktivieren"
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE_DESC"] = "Größenänderungs-, Fixier-/Entsperr- und Abkoppel-Schaltflächen werden nicht angezeigt, wenn du mit der Maus über das Fenster fährst."
+L["STRING_OPTIONS_DISABLE_RESET"] = "Zurücksetz-Schaltfläche deaktivieren"
+L["STRING_OPTIONS_DISABLE_RESET_DESC"] = "Aktiviert: Es muss das Tooltipmenü der Zurücksetz-Schaltfläche benutzt werden, anstatt darauf zu klicken."
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON"] = "Ausweitungsschaltfläche deaktivieren"
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON_DESC"] = "Aktiviert: Die Ausweitungsschaltfläche oberhalb der Fenster wird nicht angezeigt."
+L["STRING_OPTIONS_DISABLED_RESET"] = "Zurücksetzen durch diese Schaltfläche momentan nicht möglich. Gehe dazu ins Tooltipmenü."
+L["STRING_OPTIONS_DTAKEN_EVERYTHING"] = "Erweiterter Erlittener Schaden"
+L["STRING_OPTIONS_DTAKEN_EVERYTHING_DESC"] = "Aktiviert: Der erlittene Schaden wird immer im Modus |cFFFFFF00Alles|r angezeigt"
+L["STRING_OPTIONS_ED"] = "Daten löschen"
+L["STRING_OPTIONS_ED_DESC"] = [=[|cFFFFFF00Manuell|r: Der Benutzer muss auf den Zurücksetzen-Button klicken.
+
+|cFFFFFF00Eingabeaufforderung|r: Bei Instanzeintritt nachfragen, ob zurückgesetzt werden soll.
+
+|cFFFFFF00Automatisch|r: Daten bei Instanzeintritt automatisch löschen.]=]
+L["STRING_OPTIONS_ED1"] = "Manuell"
+L["STRING_OPTIONS_ED2"] = "Eingabeaufforderung"
+L["STRING_OPTIONS_ED3"] = "Automatisch"
+L["STRING_OPTIONS_EDITIMAGE"] = "Bild bearbeiten"
+L["STRING_OPTIONS_EDITINSTANCE"] = "Bearbeitungsfenster:"
+L["STRING_OPTIONS_ERASECHARTDATA"] = "Ranglisten löschen"
+L["STRING_OPTIONS_ERASECHARTDATA_DESC"] = "Beim Ausloggen werden alle gesammelten Daten für Ranglisten gelöscht."
+L["STRING_OPTIONS_EXTERNALS_TITLE"] = "Externe Widgets"
+L["STRING_OPTIONS_EXTERNALS_TITLE2"] = "Diese Optionen bestimmen das Verhalten vieler fremder Widgets."
+L["STRING_OPTIONS_GENERAL"] = "Allgemeine Einstellungen"
+L["STRING_OPTIONS_GENERAL_ANCHOR"] = "Allgemein:"
+L["STRING_OPTIONS_HIDE_ICON"] = "Symbol verstecken"
+L["STRING_OPTIONS_HIDE_ICON_DESC"] = [=[Aktiviert: Das Symbol des entsprechenden Fensters wird nicht gezeigt.
+
+|cFFFFFF00Wichtig|r: Nach der Aktivierung des Symbols muss der Titeltext ausgerichtet werden.]=]
+L["STRING_OPTIONS_HIDECOMBATALPHA_DESC"] = [=[Ändert die Transparenz auf diesen Wert, wenn dein Charakter mit der gewählten Rolle spielt.
+
+|cFFFFFF00Null|r: Versteckt. Keine Interaktion mit dem Fenster möglich.
+
+|cFFFFFF001 - 100|r: Sichtbar. Nur bei diesen Werten ist eine Interaktion mit dem Fenster möglich.]=]
+L["STRING_OPTIONS_HOTCORNER"] = "Schaltfläche anzeigen"
+L["STRING_OPTIONS_HOTCORNER_ACTION"] = "Bei Klick"
+L["STRING_OPTIONS_HOTCORNER_ACTION_DESC"] = "Wähle, was geschehen soll, wenn die Schaltfläche auf der Hotcorner-Leiste mit der linken Maustaste angeklickt wird."
+L["STRING_OPTIONS_HOTCORNER_ANCHOR"] = "Hotcorner:"
+L["STRING_OPTIONS_HOTCORNER_DESC"] = "Die Schaltfläche im Hotcorner-Menü zeigen oder verstecken."
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK"] = "Schnellklick aktivieren"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_DESC"] = [=[Aktiviert oder deaktiviert die Schnellklick-Funktion von Hotcorners.
+
+Der Schnellklick-Button befindet sich weiter oben bei den Pixeln. Überfahren der Gegend mit dem Cursor aktiviert die obere linke aktive Ecke und löst bei Klick eine Aktion aus.]=]
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC"] = "Schnellklick bei Klick"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC_DESC"] = "Wähle, was beim Klick auf die Schnellklick-Schaltfläche von Hotcorner geschehen soll."
+L["STRING_OPTIONS_IGNORENICKNAME"] = "Spitznamen und Avatare ignorieren"
+L["STRING_OPTIONS_IGNORENICKNAME_DESC"] = "Wenn aktiviert, werden Spitznamen und Avatare, die von anderen Gildenmitgliedern festgelegt wurden, ignoriert."
+L["STRING_OPTIONS_ILVL_TRACKER"] = "Itemlevelfinder:"
+L["STRING_OPTIONS_ILVL_TRACKER_DESC"] = [=[Aktiviert und außerhalb eines Kampfes verfolgt das Addon die Gegenstandsstufe der Schlachtzugsteilnehmer.
+
+Deaktiviert liest es weiterhin die Gegenstandsstufe auf Anfrage von anderen Addons oder beim manuellen Inspizieren anderer Spieler.]=]
+L["STRING_OPTIONS_ILVL_TRACKER_TEXT"] = "Aktiviert"
+L["STRING_OPTIONS_INSTANCE_ALPHA2"] = "Hintergrundfarbe"
+L["STRING_OPTIONS_INSTANCE_ALPHA2_DESC"] = "Mit dieser Option kann die Farbe des Fensterhintergrundes geändert werden."
+L["STRING_OPTIONS_INSTANCE_BACKDROP"] = "Hintergrundtextur"
+L["STRING_OPTIONS_INSTANCE_BACKDROP_DESC"] = [=[Wähle die Hintergrundtextur dieses Fensters.
+
+|cFFFFFF00Standard|r: Details! Hintergrund.]=]
+L["STRING_OPTIONS_INSTANCE_COLOR"] = "Fensterfarbe"
+L["STRING_OPTIONS_INSTANCE_COLOR_DESC"] = [=[Ändert Farbe und Transparenz dieses Fensters.
+
+|cFFFFFF00Wichtig|r: Die hier gewählte Transparenz wird mit |cFFFFFF00Auto-Transparenz|r-Werten überschrieben, wenn aktiviert.
+
+|cFFFFFF00Wichtig|r: Ändern der Fensterfarbe überschreibt die benutzerdefinierte Farbe der Statusleiste.]=]
+L["STRING_OPTIONS_INSTANCE_CURRENT"] = "Automatisch wechseln zu momentan"
+L["STRING_OPTIONS_INSTANCE_CURRENT_DESC"] = "Wenn ein Kampf beginnt, schaltet das Fenster automatisch zum momentanen Segment."
+L["STRING_OPTIONS_INSTANCE_DELETE"] = "Löschen"
+L["STRING_OPTIONS_INSTANCE_DELETE_DESC"] = [=[Entfernt dauerhaft ein Fenster.
+Das Interface kann während des Löschvorganges neustarten.]=]
+L["STRING_OPTIONS_INSTANCE_SKIN"] = "Skin"
+L["STRING_OPTIONS_INSTANCE_SKIN_DESC"] = "Ändert das Fensteraussehen abhängig vom Skin."
+L["STRING_OPTIONS_INSTANCE_STATUSBAR_ANCHOR"] = "Statusbalken:"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR"] = "Farbe und Transparenz"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR_DESC"] = [=[Wähle die Farbe des Statusbalkens.
+
+|cFFFFFF00Wichtig|r: Diese Option überschreibt Farbe und Transparenz, die per Fensterfarbe gewählt wurden.]=]
+L["STRING_OPTIONS_INSTANCE_STRATA"] = "Schicht/Ebene"
+L["STRING_OPTIONS_INSTANCE_STRATA_DESC"] = [=[Wähle die Ebene auf die Details! gelegt wird.
+
+Standard ist eine niedere Ebene, damit die Fenster unter den meisten Interface-Anteilen liegen.
+
+Auf einer höheren Ebene könnten die Fenster über anderen wichtigen Anzeigen liegen.
+
+Beim Ändern der Fensterebene könnte es Konflikte durch Überlappung mit anderen Fenstern geben.]=]
+L["STRING_OPTIONS_INSTANCES"] = "Fenster:"
+L["STRING_OPTIONS_INTERFACEDIT"] = "Interface-Änderungsmodus"
+L["STRING_OPTIONS_LEFT_MENU_ANCHOR"] = "Menüeinstellungen:"
+L["STRING_OPTIONS_LOCKSEGMENTS"] = "Segmente gesperrt"
+L["STRING_OPTIONS_LOCKSEGMENTS_DESC"] = "Aktiviert: Bei Änderungen am Segment schalten alle anderen Fenster zu der gewählten Sektion."
+L["STRING_OPTIONS_MANAGE_BOOKMARKS"] = "Lesezeichen verwalten"
+L["STRING_OPTIONS_MAXINSTANCES"] = "Fensteranzahl"
+L["STRING_OPTIONS_MAXINSTANCES_DESC"] = [=[Limitiert die Anzahl erstellbarer Fenster.
+
+Du kannst deine Fenster im Fensterkontrollmenü verwalten.]=]
+L["STRING_OPTIONS_MAXSEGMENTS"] = "Segmentanzahl"
+L["STRING_OPTIONS_MAXSEGMENTS_DESC"] = "Bestimmt, wieviele Segmente du verwalten möchtest."
+L["STRING_OPTIONS_MENU_ALPHA"] = "Mausinteraktion:"
+L["STRING_OPTIONS_MENU_ALPHAENABLED_DESC"] = [=[Aktiviert: Die Transparenz ändert sich automatisch, wenn der Cursor über dem Fenster schwebt und es wieder verlässt.
+
+|cFFFFFF00Wichtig|r: Diese Einstellung überschreibt die in den Fensteroptionen gewählte Fensterfarbe.]=]
+L["STRING_OPTIONS_MENU_ALPHAENTER"] = "Beim Darüberschweben"
+L["STRING_OPTIONS_MENU_ALPHAENTER_DESC"] = "Wenn der Cursor über dem Fenster schwebt, ändert sich die Transparenz auf diesen Wert."
+L["STRING_OPTIONS_MENU_ALPHALEAVE"] = "Keine Interaktion"
+L["STRING_OPTIONS_MENU_ALPHALEAVE_DESC"] = "Wenn der Cursor nicht über dem Fenster schwebt, ändert sich die Transparenz auf diesen Wert."
+L["STRING_OPTIONS_MENU_ALPHAWARNING"] = "Mausinteraktion ist aktiviert. Die Transparenz kann sich nicht ändern."
+L["STRING_OPTIONS_MENU_ANCHOR"] = "Schaltflächen rechts ausrichten"
+L["STRING_OPTIONS_MENU_ANCHOR_DESC"] = "Aktiviert: Die Schaltflächen werden rechts am Fenster ausgerichtet."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX"] = "Position X"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX_DESC"] = "Richtet den Attributtext horizontal im Fenster aus."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY"] = "Position Y"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY_DESC"] = "Richtet den Attributtext vertikal im Fenster aus."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENABLED_DESC"] = "Aktiviert: Der Anzeigenname wird derzeit im Fenster angezeigt."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER"] = "Begegnungszeit"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER_DESC"] = "Aktiviert: Eine Stoppuhr wird links vom Text angezeigt."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT"] = "Schriftart"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT_DESC"] = "Wähle die Schriftart für den Attributtext."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SHADOW_DESC"] = "Aktiviert oder deaktiviert den Schatten um den Text."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE"] = "Oben anheften"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE_DESC"] = "Wähle, wo der Text verankert werden soll."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR"] = "Textfarbe"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR_DESC"] = "Ändert die Attributtextfarbe."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE"] = "Textgröße"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE_DESC"] = "Stelle die Attributtextgröße ein."
+L["STRING_OPTIONS_MENU_ATTRIBUTESETTINGS_ANCHOR"] = "Einstellungen:"
+L["STRING_OPTIONS_MENU_AUTOHIDE_DESC"] = "Aktiviert: Die Schaltflächen verschwinden automatisch, wenn der Cursor das Fenster verlässt und erscheinen bei Interaktionen wieder."
+L["STRING_OPTIONS_MENU_AUTOHIDE_LEFT"] = "Schaltflächen automatisch verstecken"
+L["STRING_OPTIONS_MENU_BUTTONSSIZE_DESC"] = "Wähle die Schaltflächengröße. Dies verändert auch die Schaltflächen von Zusatzmodulen."
+L["STRING_OPTIONS_MENU_FONT_FACE"] = "Menüschriftart"
+L["STRING_OPTIONS_MENU_FONT_FACE_DESC"] = "Ändert die Schriftart aller Menüs."
+L["STRING_OPTIONS_MENU_FONT_SIZE"] = "Menüschriftgröße"
+L["STRING_OPTIONS_MENU_FONT_SIZE_DESC"] = "Ändert die Schriftgröße aller Menüs."
+L["STRING_OPTIONS_MENU_IGNOREBARS"] = "Balken ignorieren"
+L["STRING_OPTIONS_MENU_IGNOREBARS_DESC"] = "Aktiviert: Kein Balken dieses Fensters wird beeinflusst."
+L["STRING_OPTIONS_MENU_SHOWBUTTONS"] = "Schaltflächen anzeigen"
+L["STRING_OPTIONS_MENU_SHOWBUTTONS_DESC"] = "Wähle, welche Schaltflächen auf der Titelleiste angezeigt werden sollen."
+L["STRING_OPTIONS_MENU_X"] = "Position X"
+L["STRING_OPTIONS_MENU_X_DESC"] = "Ändert die Position in X-Richtung."
+L["STRING_OPTIONS_MENU_Y"] = "Position Y"
+L["STRING_OPTIONS_MENU_Y_DESC"] = "Ändert die Position in Y-Richtung."
+L["STRING_OPTIONS_MENUS_SHADOW"] = "Schatten"
+L["STRING_OPTIONS_MENUS_SHADOW_DESC"] = "Fügt allen Schaltflächen einen dünnen Schattenrand hinzu."
+L["STRING_OPTIONS_MENUS_SPACEMENT"] = "Abstand"
+L["STRING_OPTIONS_MENUS_SPACEMENT_DESC"] = "Kontrolliert, wie viel Abstand die Schaltflächen zwischen einander haben."
+L["STRING_OPTIONS_MICRODISPLAY_ANCHOR"] = "Microanzeigen:"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK"] = "Microanzeigen sperren"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK_DESC"] = "Gesperrt: Keine Interaktion mit Maus und Klicks."
+L["STRING_OPTIONS_MICRODISPLAYS_DROPDOWN_TOOLTIP"] = "Wähle, welche Microanzeige an dieser Seite gezeigt werden soll."
+L["STRING_OPTIONS_MICRODISPLAYS_OPTION_TOOLTIP"] = "Diese Microanzeige konfigurieren."
+L["STRING_OPTIONS_MICRODISPLAYS_SHOWHIDE_TOOLTIP"] = "Diese Microanzeige zeigen oder verstecken"
+L["STRING_OPTIONS_MICRODISPLAYS_WARNING"] = [=[|cFFFFFF00Beachte|r: Microanzeigen können nicht gezeigt werden, wenn
+- sie an der unteren Seite verankert sind
+- die Seite und Statusanzeige deaktiviert sind.]=]
+L["STRING_OPTIONS_MICRODISPLAYSSIDE"] = "Microanzeigen auf der Oberseite"
+L["STRING_OPTIONS_MICRODISPLAYSSIDE_DESC"] = "Platziert die Microanzeige über dem Fenster oder an der oberen Seite."
+L["STRING_OPTIONS_MICRODISPLAYWARNING"] = "Microanzeigen werden nicht gezeigt, weil der Statusbalken deaktiviert ist."
+L["STRING_OPTIONS_MINIMAP"] = "Symbol anzeigen"
+L["STRING_OPTIONS_MINIMAP_ACTION"] = "Bei Klick"
+L["STRING_OPTIONS_MINIMAP_ACTION_DESC"] = "Wähle, was bei Linksklick auf das Minikartensymbol geschehen soll."
+L["STRING_OPTIONS_MINIMAP_ACTION1"] = "Optionsmenü öffnen"
+L["STRING_OPTIONS_MINIMAP_ACTION2"] = "Segmente zurücksetzen"
+L["STRING_OPTIONS_MINIMAP_ACTION3"] = "Fenster zeigen/verstecken"
+L["STRING_OPTIONS_MINIMAP_ANCHOR"] = "Minikarte:"
+L["STRING_OPTIONS_MINIMAP_DESC"] = "Minikartensymbol anzeigen/verstecken"
+L["STRING_OPTIONS_MISCTITLE"] = "Sonstige Einstellungen"
+L["STRING_OPTIONS_MISCTITLE2"] = "Dies kontrolliert etliche Optionen."
+L["STRING_OPTIONS_NICKNAME"] = "Spitzname:"
+L["STRING_OPTIONS_NICKNAME_DESC"] = [=[Lege deinen Spitznamen fest.
+
+Spitznamen werden an Gildenmitglieder gesendet und von Details! anstelle deines Charakternamens angezeigt.]=]
+L["STRING_OPTIONS_OPEN_ROWTEXT_EDITOR"] = "Balkentexteditor"
+L["STRING_OPTIONS_OPEN_TEXT_EDITOR"] = "Texteditor öffnen"
+L["STRING_OPTIONS_OVERALL_ALL"] = "Alle Segmente"
+L["STRING_OPTIONS_OVERALL_ALL_DESC"] = "Alle Segmente werden den Gesamtdaten hinzugefügt."
+L["STRING_OPTIONS_OVERALL_ANCHOR"] = "Gesamtdaten:"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS"] = "Dungeonbosse"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS_DESC"] = "Segmente mit Dungeonbossen werden den Gesamtdaten hinzugefügt."
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN"] = "Dungeon-Trash"
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN_DESC"] = "Segmente mit abgräumtem Dungeon-Trash werden den Gesamtdaten zugefügt."
+L["STRING_OPTIONS_OVERALL_LOGOFF"] = "Beim Ausloggen löschen"
+L["STRING_OPTIONS_OVERALL_LOGOFF_DESC"] = "Aktiviert: Die Gesamtdaten werden automatisch beim Ausloggen des Charakters gelöscht."
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS"] = "Beim Start einer Mythic+ löschen"
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS_DESC"] = "Wenn aktiviert, werden sämtliche Daten automatisch gelöscht, wenn ein neuer Mythisch+-Durchlauf gestartet wird."
+L["STRING_OPTIONS_OVERALL_NEWBOSS"] = "Bei neuem Boss löschen"
+L["STRING_OPTIONS_OVERALL_NEWBOSS_DESC"] = "Aktiviert: Die Gesamtdaten werden automatisch bei einem neuen Boss gelöscht."
+L["STRING_OPTIONS_OVERALL_RAIDBOSS"] = "Schlachtzugsbosse"
+L["STRING_OPTIONS_OVERALL_RAIDBOSS_DESC"] = "Segmente mit Begegnungen werden den Gesamtdaten hinzugefügt."
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN"] = "Schlachtzug-Trash"
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN_DESC"] = "Segmente mit abgräumtem Schlachtzug-Trash werden den Gesamtdaten hinzugefügt."
+L["STRING_OPTIONS_PANIMODE"] = "Panikmodus"
+L["STRING_OPTIONS_PANIMODE_DESC"] = "Aktiviert: Wenn man aus dem Spiel geworfen wird (z.B. durch Verbindungsabbruch) und man kämpft gerade gegen einen Boss, werden alle Segmente gelöscht. Dies beschleunigt den Abmeldeprozess."
+L["STRING_OPTIONS_PDW_ANCHOR"] = "Menüs:"
+L["STRING_OPTIONS_PDW_SKIN_DESC"] = [=[Ändert den Skin des Spielerdetailfensters, Berichtsfensters und Optionsmenüs.
+Manche Änderungen erfordern ein '/reload'.]=]
+L["STRING_OPTIONS_PERCENT_TYPE"] = "Prozent-Typ"
+L["STRING_OPTIONS_PERCENT_TYPE_DESC"] = [=[Ändert die Berechnungsmethode der Prozentangabe:
+
+|cFFFFFF00Relativ zum Gesamtwert|r: die Prozentangabe gibt den Anteil eines Spielers in Bezug auf den Gesamtwert an.
+
+|cFFFFFF00Relativ zum Topspieler|r: die Prozentangabe gibt den Anteil in Bezug auf den Topspieler an.]=]
+L["STRING_OPTIONS_PERFORMANCE"] = "Leistung"
+L["STRING_OPTIONS_PERFORMANCE_ANCHOR"] = "Allgemein:"
+L["STRING_OPTIONS_PERFORMANCE_ARENA"] = "Arena"
+L["STRING_OPTIONS_PERFORMANCE_BG15"] = "Schlachtfeld 15"
+L["STRING_OPTIONS_PERFORMANCE_BG40"] = "Schlachtfeld 40"
+L["STRING_OPTIONS_PERFORMANCE_DUNGEON"] = "Dungeon"
+L["STRING_OPTIONS_PERFORMANCE_ENABLE_DESC"] = "Aktiviert: Diese Einstellung wird angewendet, wenn dein Schlachtzug mit dem gewählten Typ übereinstimmt."
+L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD"] = "Weltsegmente automatisch löschen"
+L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD_DESC"] = "Löscht automatisch Segmente von Kämpfen außerhalb von Instanzen."
+L["STRING_OPTIONS_PERFORMANCE_MYTHIC"] = "Mythisch"
+L["STRING_OPTIONS_PERFORMANCE_PROFILE_LOAD"] = "Leistungsprofil geändert:"
+L["STRING_OPTIONS_PERFORMANCE_RAID15"] = "Schlachtzug 10-15"
+L["STRING_OPTIONS_PERFORMANCE_RAID30"] = "Schlachtzug 16-30"
+L["STRING_OPTIONS_PERFORMANCE_RF"] = "Schlachtzugsbrowser"
+L["STRING_OPTIONS_PERFORMANCE_TYPES"] = "Typ"
+L["STRING_OPTIONS_PERFORMANCE_TYPES_DESC"] = "Dies sind die Schlachtzugstypen, bei denen sich unterschiedliche Optionen automatisch ändern."
+L["STRING_OPTIONS_PERFORMANCE1"] = "Leistungsverbesserungen"
+L["STRING_OPTIONS_PERFORMANCE1_DESC"] = "Diese Option kann die CPU-Auslastung reduzieren."
+L["STRING_OPTIONS_PERFORMANCECAPTURES"] = "Datensammler"
+L["STRING_OPTIONS_PERFORMANCECAPTURES_DESC"] = "Diese Optionen sind verantwortlich für Analysen und Sammlung von Kampfdaten."
+L["STRING_OPTIONS_PERFORMANCEPROFILES_ANCHOR"] = "Leistungsprofile:"
+L["STRING_OPTIONS_PICONS_DIRECTION"] = "Zusatzmodule rechts anordnen"
+L["STRING_OPTIONS_PICONS_DIRECTION_DESC"] = "Aktiviert: Zusatzmodulschaltflächen werden rechts von den Menüschaltflächen angezeigt."
+L["STRING_OPTIONS_PLUGINS"] = "Zusatzmodule"
+L["STRING_OPTIONS_PLUGINS_AUTHOR"] = "Autor"
+L["STRING_OPTIONS_PLUGINS_NAME"] = "Name"
+L["STRING_OPTIONS_PLUGINS_OPTIONS"] = "Optionen"
+L["STRING_OPTIONS_PLUGINS_RAID_ANCHOR"] = "Schlachtzugszusatzmodule"
+L["STRING_OPTIONS_PLUGINS_SOLO_ANCHOR"] = "Einzelspielerzusatzmodule"
+L["STRING_OPTIONS_PLUGINS_TOOLBAR_ANCHOR"] = "Werkzeugleistenzusatzmodule"
+L["STRING_OPTIONS_PLUGINS_VERSION"] = "Version"
+L["STRING_OPTIONS_PRESETNONAME"] = "Vergib einen Namen für deine Vorgabe."
+L["STRING_OPTIONS_PRESETTOOLD"] = "Die Vorgabe ist zu alt und kann nicht mit dieser Details!-Version geladen werden."
+L["STRING_OPTIONS_PROFILE_COPYOKEY"] = "Profil erfolgreich kopiert."
+L["STRING_OPTIONS_PROFILE_FIELDEMPTY"] = "Namensfeld ist leer."
+L["STRING_OPTIONS_PROFILE_GLOBAL"] = "Wähle das Profil, welches du für alle Charaktere verwenden möchtest."
+L["STRING_OPTIONS_PROFILE_LOADED"] = "Profil geladen:"
+L["STRING_OPTIONS_PROFILE_NOTCREATED"] = "Profil nicht erstellt."
+L["STRING_OPTIONS_PROFILE_OVERWRITTEN"] = "Du hast ein spezifisches Profil für diesen Charakter ausgewählt "
+L["STRING_OPTIONS_PROFILE_POSSIZE"] = "Größe und Position speichern"
+L["STRING_OPTIONS_PROFILE_POSSIZE_DESC"] = "Aktiviert: Das Profil speichert die Position und Größe von Fenstern. Wenn diese Option deaktiviert ist, hat jeder Charakter seine eigenen Werte."
+L["STRING_OPTIONS_PROFILE_REMOVEOKEY"] = "Profil erfolgreich entfernt."
+L["STRING_OPTIONS_PROFILE_SELECT"] = "Wähle ein Profil."
+L["STRING_OPTIONS_PROFILE_SELECTEXISTING"] = "Wähle ein bestehendes Profil oder benutze dieses Profil weiter für deinen Charakter:"
+L["STRING_OPTIONS_PROFILE_USENEW"] = "Neues Profil verwenden"
+L["STRING_OPTIONS_PROFILES_ANCHOR"] = "Einstellungen:"
+L["STRING_OPTIONS_PROFILES_COPY"] = "Kopiere Profil von"
+L["STRING_OPTIONS_PROFILES_COPY_DESC"] = "Kopiert alle Einstellungen des gewählten Profils in das momentane und überschreibt alle Werte."
+L["STRING_OPTIONS_PROFILES_CREATE"] = "Profil erstellen"
+L["STRING_OPTIONS_PROFILES_CREATE_DESC"] = "Erstelle ein neues Profil."
+L["STRING_OPTIONS_PROFILES_CURRENT"] = "Momentanes Profil:"
+L["STRING_OPTIONS_PROFILES_CURRENT_DESC"] = "Dies ist der Name des gerade aktiven Profils."
+L["STRING_OPTIONS_PROFILES_ERASE"] = "Profil entfernen"
+L["STRING_OPTIONS_PROFILES_ERASE_DESC"] = "Entfernt das gewählte Profil."
+L["STRING_OPTIONS_PROFILES_RESET"] = "Aktuelles Profil zurücksetzen"
+L["STRING_OPTIONS_PROFILES_RESET_DESC"] = "Setzt alle Einstellungen auf Standardwerte zurück."
+L["STRING_OPTIONS_PROFILES_SELECT"] = "Wähle Profil"
+L["STRING_OPTIONS_PROFILES_SELECT_DESC"] = "Lädt ein existierendes Profil. Wenn du dasselbe Profil für alle Charaktere (Option 'Bei allen Charakteren benutzen') verwendest, wird eine Ausnahme für diesen Charakter erstellt."
+L["STRING_OPTIONS_PROFILES_TITLE"] = "Profile"
+L["STRING_OPTIONS_PROFILES_TITLE_DESC"] = "Diese Option erlaubt es Dir, die gleichen Einstellungen zwischen verschiedenen Charakteren zu teilen."
+L["STRING_OPTIONS_PS_ABBREVIATE"] = "Zahlenformat"
+L["STRING_OPTIONS_PS_ABBREVIATE_COMMA"] = "Komma"
+L["STRING_OPTIONS_PS_ABBREVIATE_DESC"] = [=[Wähle ein Zahlenformat.
+
+|cFFFFFF00ToK I|r:
+520600 = 520.6K
+19530000 = 19.53M
+
+|cFFFFFF00ToK II|r:
+520600 = 520K
+19530000 = 19.53M
+
+|cFFFFFF00ToM I|r:
+520600 = 520.6K
+19530000 = 19M
+
+|cFFFFFF00Komma|r:
+19530000 = 19.530.000
+
+|cFFFFFF00Kilo|r und |cFFFFFF00Mega|r: sind Referenzen zu den Buchstaben 'K' und 'M' für große Zahlen.]=]
+L["STRING_OPTIONS_PS_ABBREVIATE_NONE"] = "Keine"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK"] = "oberes ToK I"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK0"] = "oberes ToM I"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK0MIN"] = "unteres ToM I"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK2"] = "oberes ToK II"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK2MIN"] = "unteres ToK II"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOKMIN"] = "unteres ToK I"
+L["STRING_OPTIONS_PVPFRAGS"] = "Nur PvP-Todesstöße"
+L["STRING_OPTIONS_PVPFRAGS_DESC"] = "Aktiviert: Nur Tötungen von feindlichen Spielern werden in der |cFFFFFF00Schaden > Todesstöße|r-Anzeige gezählt."
+L["STRING_OPTIONS_REALMNAME"] = "Realmnamen entfernen"
+L["STRING_OPTIONS_REALMNAME_DESC"] = [=[Wenn aktiviert, werden Realmnamen von Charakteren ausgeblendet.
+
+|cFFFFFF00Deaktiviert: Niemand-Irgendwo|r
+|cFFFFFF00Aktiviert : Niemand|r]=]
+L["STRING_OPTIONS_REPORT_ANCHOR"] = "Bericht:"
+L["STRING_OPTIONS_REPORT_HEALLINKS"] = "Hilfreiche Zauberhinweise"
+L["STRING_OPTIONS_REPORT_HEALLINKS_DESC"] = [=[Beim Senden mit aktivierter Option werden |cFF55FF55hilfreiche|r Zauber mit ihrer Verlinkung berichtet, anstatt mit dem Namen.
+
+|cFFFF5555Schaden verursachende|r Zauber werden generell mit der Verlinkung berichtet.]=]
+L["STRING_OPTIONS_REPORT_SCHEMA"] = "Format"
+L["STRING_OPTIONS_REPORT_SCHEMA_DESC"] = "Wähle das Format mit dem der Text zum Chatkanal verlinkt wird."
+L["STRING_OPTIONS_REPORT_SCHEMA1"] = "Gesamt / Pro Sekunde / Prozent"
+L["STRING_OPTIONS_REPORT_SCHEMA2"] = "Prozent / Pro Sekunde / Gesamt"
+L["STRING_OPTIONS_REPORT_SCHEMA3"] = "Prozent / Gesamt / Pro Sekunde"
+L["STRING_OPTIONS_RESET_TO_DEFAULT"] = "Auf Standard zurücksetzen"
+L["STRING_OPTIONS_ROW_SETTING_ANCHOR"] = "Ausrichtung:"
+L["STRING_OPTIONS_ROWADV_TITLE"] = "Erweiterte Balkeneinstellungen"
+L["STRING_OPTIONS_ROWADV_TITLE_DESC"] = "Diese Optionen erlauben Dir, die Balken ausführlicher zu modifizieren."
+L["STRING_OPTIONS_RT_COOLDOWN1"] = "%s gewirkt auf %s!"
+L["STRING_OPTIONS_RT_COOLDOWN2"] = "%s gewirkt!"
+L["STRING_OPTIONS_RT_COOLDOWNS_ANCHOR"] = "Abklingzeiten bekanntgeben:"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL"] = "Kanal"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL_DESC"] = [=[Der benutzte Chatkanal für Alarmmeldungen.
+
+Wenn |cFFFFFF00Beobachter|r gewählt ist, werden alle Abklingzeiten in deinen Chat geschrieben, mit Ausnahme individueller Abklingzeiten.]=]
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM"] = "Benutzerdefinierter Text"
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM_DESC"] = [=[Gib deinen eigenen zu sendenden Text ein.
+
+Benutze |cFFFFFF00{Zauber}|r, um den Zaubername der "Abklingzeit" hinzuzufügen
+
+Benutze |cFFFFFF00{Ziel}|r, um den Spielernamen des Ziels hinzuzufügen.]=]
+L["STRING_OPTIONS_RT_COOLDOWNS_ONOFF_DESC"] = "Beim Wirken von \"Abklingzeiten\" wird eine Nachricht im gewählten Kanal geschrieben."
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT"] = "Liste ignorierter Abklingzeiten"
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT_DESC"] = "Wähle zu ignorierende Abklingzeiten."
+L["STRING_OPTIONS_RT_DEATH_MSG"] = "Details! %s's Tod"
+L["STRING_OPTIONS_RT_DEATHS_ANCHOR"] = "Tode bekannt geben:"
+L["STRING_OPTIONS_RT_DEATHS_FIRST"] = "Nur Erste"
+L["STRING_OPTIONS_RT_DEATHS_FIRST_DESC"] = "Gibt nur die ersten X Tode während der Begegnung aus."
+L["STRING_OPTIONS_RT_DEATHS_HITS"] = "Trefferanzahl"
+L["STRING_OPTIONS_RT_DEATHS_HITS_DESC"] = "Zeigt bei Bekanntgabe des Todes die Trefferanzahl."
+L["STRING_OPTIONS_RT_DEATHS_ONOFF_DESC"] = "Wenn ein Schlachtzugsmitglied stirbt, wird die Todesursache im Schlachtzugskanal ausgegeben."
+L["STRING_OPTIONS_RT_DEATHS_WHERE"] = "Instanzen"
+L["STRING_OPTIONS_RT_DEATHS_WHERE_DESC"] = [=[Wähle, wo Tode bekanntgegeben werden können.
+
+|cFFFFFF00Wichtig|r in Schalachtzügen |cFFFFFF00/raid|r und |cFFFFFF00/p|r in Dungeons.
+
+Wenn |cFFFFFF00Beobachter|r gewählt ist, werden Tode NUR in deinem Chat gezeigt.]=]
+L["STRING_OPTIONS_RT_DEATHS_WHERE1"] = "Schlachtzug & Dungeon"
+L["STRING_OPTIONS_RT_DEATHS_WHERE2"] = "Nur Schlachtzug"
+L["STRING_OPTIONS_RT_DEATHS_WHERE3"] = "Nur Dungeon"
+L["STRING_OPTIONS_RT_FIRST_HIT"] = "Erster Treffer"
+L["STRING_OPTIONS_RT_FIRST_HIT_DESC"] = "Schreibt per Chatfenster (|cFFFFFF00nur für dich|r), wer den ersten Treffer ausführte - in der Regel der Kampfbeginner."
+L["STRING_OPTIONS_RT_IGNORE_TITLE"] = "Abklingzeiten ignorieren"
+L["STRING_OPTIONS_RT_INFOS"] = "Zusatzinformationen:"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION"] = "Voraustrank-Verwendung"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION_DESC"] = "Aktiviert: Schreibt nach einer Begegnung in deinen Chat (|cFFFFFF00nur für dich|r), wer vor dem Pull einen Trank benutzte."
+L["STRING_OPTIONS_RT_INTERRUPT"] = "%s unterbrochen!"
+L["STRING_OPTIONS_RT_INTERRUPT_ANCHOR"] = "Unterbrechungen bekannt geben:"
+L["STRING_OPTIONS_RT_INTERRUPT_NEXT"] = "Nächster: %s"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL"] = "Kanal"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL_DESC"] = [=[Welcher Kanal wird für Alarmmeldungen benutzt.
+
+Wenn |cFFFFFF00Beobachter|r gewählt ist, werden alle Unterbrechungen NUR in deinem Chat angezeigt.]=]
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM"] = "Benutzerdefinierter Text"
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM_DESC"] = [=[Gib deinen eigenen zu sendenden Text ein.
+
+Benutze |cFFFFFF00{spell}|r zur Angabe des unterbrochenen Zaubers.
+
+Benutze |cFFFFFF00{next}|r zur Angabe des nächsten Spielers im Feld 'Nächster']=]
+L["STRING_OPTIONS_RT_INTERRUPTS_NEXT"] = "Nächster Spieler"
+L["STRING_OPTIONS_RT_INTERRUPTS_NEXT_DESC"] = "Wenn eine Unterbrechungsserie läuft, nenne den Spielernamen für die nächste Unterbrechung."
+L["STRING_OPTIONS_RT_INTERRUPTS_ONOFF_DESC"] = "Wenn du erfolgreich einen Zauber unterbrichst, wird eine Nachricht gesendet."
+L["STRING_OPTIONS_RT_INTERRUPTS_WHISPER"] = "Flüstern an"
+L["STRING_OPTIONS_RT_OTHER_ANCHOR"] = "Allgemein:"
+L["STRING_OPTIONS_RT_TITLE"] = "Werkzeuge für Raider"
+L["STRING_OPTIONS_RT_TITLE_DESC"] = "In diesem Menü kannst du verschiedene Mechanismen aktivieren, die dir in Schlachtzügen helfen."
+L["STRING_OPTIONS_SAVELOAD"] = "Speichern und Laden"
+L["STRING_OPTIONS_SAVELOAD_APPLYALL"] = "Der derzeitige Skin ist bei allen anderen Fenstern aktiv."
+L["STRING_OPTIONS_SAVELOAD_APPLYALL_DESC"] = "Wendet den derzeitigen Skin auf alle erstellten Fenster an."
+L["STRING_OPTIONS_SAVELOAD_APPLYTOALL"] = "Auf alle Fenster anwenden"
+L["STRING_OPTIONS_SAVELOAD_CREATE_DESC"] = "Speichert den momentanen Skin als Vorlage, du kannst ihn exportieren oder als Backup aufbewahren."
+L["STRING_OPTIONS_SAVELOAD_DESC"] = "Mit dieser Option kannst Du vordefinierte Einstellungen speichern oder laden. "
+L["STRING_OPTIONS_SAVELOAD_ERASE_DESC"] = "Option zum Löschen eines gespeicherten Skins."
+L["STRING_OPTIONS_SAVELOAD_EXPORT"] = "Export"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_COPY"] = "Drücke Strg + C"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_DESC"] = "Speichert den Skin im Textformat."
+L["STRING_OPTIONS_SAVELOAD_IMPORT"] = "Importiere benutzerdefinierte Skin"
+L["STRING_OPTIONS_SAVELOAD_IMPORT_DESC"] = "Lädt einen Skin im Textformat."
+L["STRING_OPTIONS_SAVELOAD_IMPORT_OKEY"] = "Skin erfolgreich aus deiner Liste geladen. Zum Anwenden gehe zu 'Anwenden'."
+L["STRING_OPTIONS_SAVELOAD_LOAD"] = "Anwenden"
+L["STRING_OPTIONS_SAVELOAD_LOAD_DESC"] = "Wähle einen gespeicherten Skin zur Anwendung auf das derzeit gewählte Fenster."
+L["STRING_OPTIONS_SAVELOAD_MAKEDEFAULT"] = "Standard setzen"
+L["STRING_OPTIONS_SAVELOAD_PNAME"] = "Name"
+L["STRING_OPTIONS_SAVELOAD_REMOVE"] = "Löschen"
+L["STRING_OPTIONS_SAVELOAD_RESET"] = "Standardskin laden"
+L["STRING_OPTIONS_SAVELOAD_SAVE"] = "Speichern"
+L["STRING_OPTIONS_SAVELOAD_SKINCREATED"] = "Skin erstellt."
+L["STRING_OPTIONS_SAVELOAD_STD_DESC"] = [=[Setzt derzeitige Oberfläche als Standard.
+
+Diese Oberfläche wird auf alle erzeugten Fenster angewendet.]=]
+L["STRING_OPTIONS_SAVELOAD_STDSAVE"] = "Standardoberfläche gespeichert. Neue Fenster verwenden diese standardmäßig."
+L["STRING_OPTIONS_SCROLLBAR"] = "Scrollbalken"
+L["STRING_OPTIONS_SCROLLBAR_DESC"] = [=[Schaltet den Scrollbalken ein/aus.
+
+Standardmäßig werden |cFF00EEEEDetails!|r-Scrollbalken beim Aufziehen eines Fensters ersetzt.
+
+Der |cFFFFFF00'Aufzieher'|r ist der Reiter oben außerhalb des Fensters.]=]
+L["STRING_OPTIONS_SEGMENTSSAVE"] = "Segmente gespeichert"
+L["STRING_OPTIONS_SEGMENTSSAVE_DESC"] = [=[Zeigt die Anzahl der zu speichernden Segmente nach Spielende.
+
+Ein hoher Wert kann das Ausloggen verzögern.]=]
+L["STRING_OPTIONS_SENDFEEDBACK"] = "Rückmeldung"
+L["STRING_OPTIONS_SHOW_SIDEBARS"] = "Rahmen zeigen"
+L["STRING_OPTIONS_SHOW_SIDEBARS_DESC"] = "Zeigt oder versteckt Fensterrahmen."
+L["STRING_OPTIONS_SHOW_STATUSBAR"] = "Statusbalken zeigen"
+L["STRING_OPTIONS_SHOW_STATUSBAR_DESC"] = "Zeigt oder versteckt den unteren Statusbalken."
+L["STRING_OPTIONS_SHOW_TOTALBAR_COLOR_DESC"] = "Wähle die Farbe. Die Transparenz entspricht der der Balken."
+L["STRING_OPTIONS_SHOW_TOTALBAR_DESC"] = "Zeigt oder versteckt den Gesamtbalken."
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON"] = "Symbol"
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON_DESC"] = "Wähle das auf dem Gesamtbalken gezeigte Symbol."
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP"] = "Nur in Gruppe"
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP_DESC"] = "Der Gesamtbalken wird nur in einer Gruppe angezeigt."
+L["STRING_OPTIONS_SIZE"] = "Größe"
+L["STRING_OPTIONS_SKIN_A"] = "Skineinstellungen"
+L["STRING_OPTIONS_SKIN_A_DESC"] = "Diese Option erlaubt es dir, deinen Skin zu ändern."
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1"] = "Ausrichten im rechten Chat"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1_DESC"] = "Richtet die Fenster |cFFFFFF00#1|r und |cFFFFFF00#2|r oberhalb des rechten Chatfensters aus."
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2"] = "Tooltiprahmen schwarz"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2_DESC"] = [=[Ändert die Tooltips:
+
+Rahmenfarbe auf: |cFFFFFF00schwarz|r.
+Rahmengröße auf: |cFFFFFF0016|r.
+Textur auf: |cFFFFFF00Blizzard Tooltip|r.]=]
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3"] = "Tooltiprahmen entfernen"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3_DESC"] = [=[Ändert die Tooltips:
+
+Rahmenfarbe auf: |cFFFFFF00transparent|r.]=]
+L["STRING_OPTIONS_SKIN_EXTRA_OPTIONS_ANCHOR"] = "Skinoptionen:"
+L["STRING_OPTIONS_SKIN_LOADED"] = "Skin erfolgreich geladen."
+L["STRING_OPTIONS_SKIN_PRESETS_ANCHOR"] = "Skin speichern:"
+L["STRING_OPTIONS_SKIN_PRESETSCONFIG_ANCHOR"] = "Verwalte gespeicherte benutzerdefinierte Skins"
+L["STRING_OPTIONS_SKIN_REMOVED"] = "Skin gelöscht."
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP"] = "Tooltiprahmen zurücksetzen "
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP_DESC"] = "Setzt die Rahmenfarbe und Textur des Tooltips auf die Standardeinstellung zurück."
+L["STRING_OPTIONS_SKIN_SELECT"] = "Skin wählen"
+L["STRING_OPTIONS_SKIN_SELECT_ANCHOR"] = "Skin-Auswahl:"
+L["STRING_OPTIONS_SOCIAL"] = "Gemeinschaft"
+L["STRING_OPTIONS_SOCIAL_DESC"] = "Wähle deinen Namen innerhalb der Gilde."
+L["STRING_OPTIONS_SPELL_ADD"] = "Hinzufügen"
+L["STRING_OPTIONS_SPELL_ADDICON"] = "Neues Symbol: "
+L["STRING_OPTIONS_SPELL_ADDNAME"] = "Neuer Name: "
+L["STRING_OPTIONS_SPELL_ADDSPELL"] = "Zauber hinzufügen"
+L["STRING_OPTIONS_SPELL_ADDSPELLID"] = "Zauber-ID: "
+L["STRING_OPTIONS_SPELL_CLOSE"] = "Schließen"
+L["STRING_OPTIONS_SPELL_ICON"] = "Symbol"
+L["STRING_OPTIONS_SPELL_IDERROR"] = "Ungültige Zauber-ID."
+L["STRING_OPTIONS_SPELL_INDEX"] = "Index"
+L["STRING_OPTIONS_SPELL_NAME"] = "Name"
+L["STRING_OPTIONS_SPELL_NAMEERROR"] = "Ungültiger Zaubername."
+L["STRING_OPTIONS_SPELL_NOTFOUND"] = "Zauber nicht gefunden."
+L["STRING_OPTIONS_SPELL_REMOVE"] = "Entfernen"
+L["STRING_OPTIONS_SPELL_RESET"] = "Zurücksetzen"
+L["STRING_OPTIONS_SPELL_SPELLID"] = "Zauber-ID"
+L["STRING_OPTIONS_STRETCH"] = "Ausweitungsschaltfläche auf der Oberseite"
+L["STRING_OPTIONS_STRETCH_DESC"] = "Platziert die Ausweitungsschaltfläche oberhalb des Fensters."
+L["STRING_OPTIONS_STRETCHTOP"] = "Ausweitungsschaltfläche immer oben"
+L["STRING_OPTIONS_STRETCHTOP_DESC"] = [=[Die Ausweitungsschaltfläche wird auf die Vollbildebene gelegt und steht damit immer über den anderen Fenstern.
+
+|cFFFFFF00Achtung|r: Ist der Griff auf höherer Ebene, kann er vor anderen Fenstern, wie dem Rucksack, liegen. Verwende dies nur, wenn es unbedingt nötig ist.]=]
+L["STRING_OPTIONS_SWITCH_ANCHOR"] = "Schalter:"
+L["STRING_OPTIONS_SWITCHINFO"] = "|cFFF79F81 LINKS DEAKTIVIERT|r |cFF81BEF7 RECHTS AKTIVIERT|r"
+L["STRING_OPTIONS_TABEMB_ANCHOR"] = "Chat-Tab einbetten"
+L["STRING_OPTIONS_TABEMB_ENABLED_DESC"] = "Aktiviert: Ein oder mehr Fenster sind an einem Chat-Tab befestigt."
+L["STRING_OPTIONS_TABEMB_SINGLE"] = "Einzelfenster"
+L["STRING_OPTIONS_TABEMB_SINGLE_DESC"] = "Aktiviert: Nur ein Fenster anstatt zwei befestigen."
+L["STRING_OPTIONS_TABEMB_TABNAME"] = "Tab-Name"
+L["STRING_OPTIONS_TABEMB_TABNAME_DESC"] = "Der Name des Tabs, an dem die Fenster befestigt sind."
+L["STRING_OPTIONS_TESTBARS"] = "Testbalken erzeugen"
+L["STRING_OPTIONS_TEXT"] = "Balkentext-Einstellungen"
+L["STRING_OPTIONS_TEXT_DESC"] = "Diese Optionen verändern das Aussehen der Balkentexte."
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR"] = "Schriftfarbe"
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR_DESC"] = [=[Ändert die Schriftfarbe linker und rechter Texte.
+
+Wird ignoriert, wenn |cFFFFFFFFKlassenfarbe|r aktiviert ist.]=]
+L["STRING_OPTIONS_TEXT_FONT"] = "Schriftart"
+L["STRING_OPTIONS_TEXT_FONT_DESC"] = "Ändert die Schriftart linker und rechter Texte."
+L["STRING_OPTIONS_TEXT_LCLASSCOLOR_DESC"] = "Aktiviert: Die Schriftfarbe entspricht immer der Klassenfarbe."
+L["STRING_OPTIONS_TEXT_LEFT_ANCHOR"] = "Linker Text:"
+L["STRING_OPTIONS_TEXT_LOUTILINE"] = "Textschatten"
+L["STRING_OPTIONS_TEXT_LOUTILINE_DESC"] = "Aktiviert oder deaktiviert den Umriss des linken Textes."
+L["STRING_OPTIONS_TEXT_LPOSITION"] = "Nummer zeigen"
+L["STRING_OPTIONS_TEXT_LPOSITION_DESC"] = "Zeigt die Positionsnummer eines Spielers links vom Namen."
+L["STRING_OPTIONS_TEXT_RIGHT_ANCHOR"] = "Rechter Text:"
+L["STRING_OPTIONS_TEXT_ROUTILINE_DESC"] = "Aktiviert oder deaktiviert den Umriss des rechten Textes."
+L["STRING_OPTIONS_TEXT_ROWICONS_ANCHOR"] = "Symbole:"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET"] = "Einklammern"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET_DESC"] = "Wähle das Zeichen, das den Pro-Sekunde- und Prozent-Block umschließt."
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT"] = "Prozent zeigen"
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT_DESC"] = "Prozentangabe zeigen."
+L["STRING_OPTIONS_TEXT_SHOW_PS"] = "Zeige pro Sekunde"
+L["STRING_OPTIONS_TEXT_SHOW_PS_DESC"] = "Zeigt Schaden pro Sekunde und Heilung pro Sekunde an."
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR"] = "Trennzeichen"
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR_DESC"] = "Wähle das Zeichen, das den Pro-Sekunde-Wert vom Prozentwert trennt."
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL"] = "Gesamt zeigen"
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL_DESC"] = [=[Zeigt den verursachten Gesamtwert eines Spielers.
+
+Zum Beispiel: Gesamtschaden, erhaltene Gesamtheilung.]=]
+L["STRING_OPTIONS_TEXT_SIZE"] = "Schriftgröße"
+L["STRING_OPTIONS_TEXT_SIZE_DESC"] = "Ändert die Schriftgröße linker und rechter Texte."
+L["STRING_OPTIONS_TEXT_TEXTUREL_ANCHOR"] = "Hintergrund:"
+L["STRING_OPTIONS_TEXT_TEXTUREU_ANCHOR"] = "Aussehen:"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL"] = "Abbrechen"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL_TOOLTIP"] = "Beendet die Editierung und ignoriert jegliche Änderungen im Code."
+L["STRING_OPTIONS_TEXTEDITOR_COLOR_TOOLTIP"] = "Markiere den Text und klicke auf die Farbschaltfläche, um ihn mit der ausgewählten Farbe zu färben. "
+L["STRING_OPTIONS_TEXTEDITOR_COMMA"] = "Komma"
+L["STRING_OPTIONS_TEXTEDITOR_COMMA_TOOLTIP"] = [=[Fügt eine Funktion zur Formatierung von Zahlen hinzu.
+Beispiel: 1000000 nach 1.000.000.]=]
+L["STRING_OPTIONS_TEXTEDITOR_DATA"] = "[Daten %s]"
+L["STRING_OPTIONS_TEXTEDITOR_DATA_TOOLTIP"] = [=[Fügt Daten hinzu:
+
+|cFFFFFF00Data 1|r: normalerweise das Gesamtergebnis eines Spielers oder Positionsnummer.
+
+|cFFFFFF00Data 2|r: in den meisten Fällen DpS, HpS oder der Spielername.
+
+|cFFFFFF00Data 3|r: Prozentangabe, Spezialisierung oder Fraktionssymbol.]=]
+L["STRING_OPTIONS_TEXTEDITOR_DONE"] = "Fertig"
+L["STRING_OPTIONS_TEXTEDITOR_DONE_TOOLTIP"] = "Beendet die Editierung und speichert den Code."
+L["STRING_OPTIONS_TEXTEDITOR_FUNC"] = "Funktion"
+L["STRING_OPTIONS_TEXTEDITOR_FUNC_TOOLTIP"] = [=[Fügt eine leere Funktion hinzu.
+Funktionen müssen immer eine Zahl zurückgeben.]=]
+L["STRING_OPTIONS_TEXTEDITOR_RESET"] = "Zurücksetzen"
+L["STRING_OPTIONS_TEXTEDITOR_RESET_TOOLTIP"] = "Entfernt sämtlichen Code und fügt den Standardcode ein."
+L["STRING_OPTIONS_TEXTEDITOR_TOK"] = "ToK"
+L["STRING_OPTIONS_TEXTEDITOR_TOK_TOOLTIP"] = [=[Fügt eine Funktion zum Kürzen von Zahlen und deren Formatierung ein.
+Beispiel: 1500000 nach 1.5kk ]=]
+L["STRING_OPTIONS_TIMEMEASURE"] = "Zeitmessung"
+L["STRING_OPTIONS_TIMEMEASURE_DESC"] = [=[|cFFFFFF00Aktivität|r: Die Teilnehmer-Uhr stoppt, wenn er inaktiv ist, und läuft bei Aktivitäten weiter. Gewöhnliche Art zur Messung von DpS und HpS.
+
+|cFFFFFF00Effektiv|r: gebräuchlich für Ranglisten. Diese Methode nutzt die Kampfzeit für DpS-/HpS-Messungen aller Schlachtzugteilnehmer.]=]
+L["STRING_OPTIONS_TOOLBAR_SETTINGS"] = "Titelleistenbutton-Enstellungen"
+L["STRING_OPTIONS_TOOLBAR_SETTINGS_DESC"] = "Diese Optionen ändern das Hauptmenü auf dem oberen Rand des Fensters."
+L["STRING_OPTIONS_TOOLBARSIDE"] = "Titelleiste oben"
+L["STRING_OPTIONS_TOOLBARSIDE_DESC"] = [=[Platziert die Titelleiste oben am Fenster.
+
+|cFFFFFF00Wichtig|r: Beim Umschalten der Position ändert sich der Titeltext nicht. Siehe |cFFFFFF00Titelleiste: Text|r für mehr Optionen.]=]
+L["STRING_OPTIONS_TOOLS_ANCHOR"] = "Werkzeuge:"
+L["STRING_OPTIONS_TOOLTIP_ANCHOR"] = "Einstellungen:"
+L["STRING_OPTIONS_TOOLTIP_ANCHORTEXTS"] = "Texte:"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION"] = "Kürzungsart"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION_DESC"] = "Wähle das Zahlenformat in den Tooltips."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH"] = "Tooltipseite"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH_DESC"] = "Wähle die Tooltipseite, auf der die Tooltips gezeigt werden."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_BORDER"] = "Rahmen:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_POINT"] = "Ankerpunkt:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE"] = "Ankerpunktseite"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE_DESC"] = "Auf welcher Seite des Ankerpunkts der Tooltip platziert wird."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT"] = "Tooltip-Ankerpunkt"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT_DESC"] = "Rechtsklick, um zu fixieren."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO"] = "Ankerpunkt"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE"] = "Ankerpunkt bewegen"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE_DESC"] = "Bewege den Ankerpunkt, wenn der Ankerpunkt auf |cFFFFFF00Bildschirmpunkt|r gesetzt ist."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_DESC"] = "Die Tooltips docken an der gewählten Reihe oder am Bildschirmpunkt an."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO1"] = "Fensterreihe"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO2"] = "Bildschirmpunkt"
+L["STRING_OPTIONS_TOOLTIPS_ANCHORCOLOR"] = "Überschrift"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR"] = "Hintergrundfarbe"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR_DESC"] = "Wähle die Farbe für den Hintergrund."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_COLOR_DESC"] = "Ändert die Rahmenfarbe."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_SIZE_DESC"] = "Ändert die Rahmengröße."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_TEXTURE_DESC"] = "Wechselt die Rahmentextur."
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR"] = "Schriftfarbe"
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR_DESC"] = "Ändert die Schriftfarbe der Tooltips."
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE"] = "Schriftart"
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE_DESC"] = "Wähle die Schriftart der Tooltips."
+L["STRING_OPTIONS_TOOLTIPS_FONTSHADOW_DESC"] = "Aktiviert oder deaktiviert den Textschatten."
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE"] = "Schriftgröße"
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE_DESC"] = "Ändert die Schriftgröße der Tooltips"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER"] = "Untermenühintergrund"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER_DESC"] = "Wenn aktiviert, zeigen einige Menüs ihren eigenen Hintergrund."
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE"] = "Maximierungsmethode"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE_DESC"] = [=[Wähle die Expandierungsmethode in den Tooltips.
+
+|cFFFFFF00 mit Sondertasten|r: die Tooltipbox wird maximiert mithilfe der Shift-, Strg- oder Alt-Taste.
+
+|cFFFFFF00 Immer maximiert|r: Der Tooltip zeigt ohne Einschränkungen alle Informationen.
+
+|cFFFFFF00 Nur Shift-Block|r: Der erste Block ist immer maximiert.
+
+|cFFFFFF00 Nur Strg-Block|r: Der zweite Block ist immer maximiert.
+
+|cFFFFFF00 Nur Alt-Block|r: Der dritte Block ist immer maximiert.]=]
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE1"] = "mit Shift/Strg/Alt"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE2"] = "Immer maximiert"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE3"] = "Nur den Shift-Block"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE4"] = "Nur den Strg-Block"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE5"] = "Nur den Alt-Block"
+L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP"] = "Hintergrund ändern"
+L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP_DESC"] = "Ändert den Hintergrund für das Titelleisten-Menü."
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX"] = "Abstand X"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX_DESC"] = "Wie weit wird der Tooltip horizontal von seinem Ankerpunkt gesetzt."
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY"] = "Abstand Y"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY_DESC"] = "Wie weit wird der Tooltip vertikal von seinem Ankerpunkt gesetzt."
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT"] = "Anzahl zeigen"
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT_DESC"] = "Zeigt die Anzahl an Zaubern, Zielen und Begleitern in den Tooltips."
+L["STRING_OPTIONS_TOOLTIPS_TITLE"] = "Tooltips"
+L["STRING_OPTIONS_TOOLTIPS_TITLE_DESC"] = "Diese Optionen bestimmen das Aussehen der Tooltips."
+L["STRING_OPTIONS_TOTALBAR_ANCHOR"] = "Gesamtbalken:"
+L["STRING_OPTIONS_TRASH_SUPPRESSION"] = "Trash-Unterdrückung"
+L["STRING_OPTIONS_TRASH_SUPPRESSION_DESC"] = "Deaktiviert für |cFFFFFF00X|r Sekunden das automatische Umschalten auf Trash-Segmente (|cFFFFFF00nur nach erfolgreichem Bosskampf|r)."
+L["STRING_OPTIONS_WALLPAPER_ALPHA"] = "Transparenz:"
+L["STRING_OPTIONS_WALLPAPER_ANCHOR"] = "Hintergrundwahl:"
+L["STRING_OPTIONS_WALLPAPER_BLUE"] = "Blau:"
+L["STRING_OPTIONS_WALLPAPER_CBOTTOM"] = "Abschneiden (|cFFC0C0C0unten|r):"
+L["STRING_OPTIONS_WALLPAPER_CLEFT"] = "Abschneiden (|cFFC0C0C0links|r):"
+L["STRING_OPTIONS_WALLPAPER_CRIGHT"] = "Abschneiden (|cFFC0C0C0rechts|r):"
+L["STRING_OPTIONS_WALLPAPER_CTOP"] = "Abschneiden (|cFFC0C0C0oben|r):"
+L["STRING_OPTIONS_WALLPAPER_FILE"] = "Datei:"
+L["STRING_OPTIONS_WALLPAPER_GREEN"] = "Grün:"
+L["STRING_OPTIONS_WALLPAPER_LOAD"] = "Bild laden"
+L["STRING_OPTIONS_WALLPAPER_LOAD_DESC"] = "Wähle eine Bilddatei aus einem Ordner als Hintergrund."
+L["STRING_OPTIONS_WALLPAPER_LOAD_EXCLAMATION"] = [=[Das Bild muss:
+- im Truevision-TGA-Format (*.tga) vorliegen.
+- sich im Ordner WOW/Interface befinden.
+- eine Größe von 256 x 256 Pixel haben.
+|cFFFF2200Achtung:|r vor dem Einfügen der Datei muss das Spiel beendet werden!!]=]
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME"] = "Dateiname:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME_DESC"] = "Gib nur den Dateinamen ein, ohne Pfad und Endung."
+L["STRING_OPTIONS_WALLPAPER_LOAD_OKEY"] = "Laden"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TITLE"] = "Vom Computer:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT"] = "Fehlerbeseitigung"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT_TEXT"] = [=[Wenn der Hintergrund nur grün ist:
+
+- starte den WoW-Clienten neu.
+- überprüfe die Bildgröße ob sie auch (256x256 Pixel) entspricht.
+- überprüfe die Dateiendung (*.tga) und die Farbtiefe (32bit/pixel).
+- überprüfe den Dateipfad. Beispiel: C:/Program Files/World of Warcraft/Interface/]=]
+L["STRING_OPTIONS_WALLPAPER_RED"] = "Rot:"
+L["STRING_OPTIONS_WC_ANCHOR"] = "Schnelle Fensterkontrolle (#%s):"
+L["STRING_OPTIONS_WC_BOOKMARK"] = "Lesezeichen verwalten"
+L["STRING_OPTIONS_WC_BOOKMARK_DESC"] = "Öffnet das Lesezeichenmenü."
+L["STRING_OPTIONS_WC_CLOSE"] = "Schließen"
+L["STRING_OPTIONS_WC_CLOSE_DESC"] = [=[Schließt das gerade editierte Fenster.
+
+Geschlossen ist das Fenster inaktiv und kann wieder im Fensterkontrollmenü geöffnet werden.
+
+|cFFFFFF00Achtung:|r zum endgültigen Löschen eines Fensters gehe zu 'Fenster: Allgemein'.]=]
+L["STRING_OPTIONS_WC_CREATE"] = "Fenster erstellen"
+L["STRING_OPTIONS_WC_CREATE_DESC"] = "Erstellt ein neues Fenster."
+L["STRING_OPTIONS_WC_LOCK"] = "Fixieren"
+L["STRING_OPTIONS_WC_LOCK_DESC"] = [=[Fixieren/Freigeben des Fensters.
+
+Fixierte Fenster können nicht verschoben werden!]=]
+L["STRING_OPTIONS_WC_REOPEN"] = "Erneut öffnen"
+L["STRING_OPTIONS_WC_UNLOCK"] = "Freigeben"
+L["STRING_OPTIONS_WC_UNSNAP"] = "Aus Gruppe lösen"
+L["STRING_OPTIONS_WC_UNSNAP_DESC"] = "Löst dieses Fenster aus der Fenstergruppe."
+L["STRING_OPTIONS_WHEEL_SPEED"] = "Mausradgeschw."
+L["STRING_OPTIONS_WHEEL_SPEED_DESC"] = "Legt die Anzahl der Scrollschritte für das Mausrad fest."
+L["STRING_OPTIONS_WINDOW"] = "Optionsmenü"
+L["STRING_OPTIONS_WINDOW_ANCHOR_ANCHORS"] = "Anker:"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE"] = "Massenumschaltung ignorieren"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE_DESC"] = "Aktiviert: Dieses Fenster ignoriert das Verstecken, Zeigen und Umschalten aller Fenster."
+L["STRING_OPTIONS_WINDOW_SCALE"] = "Skalierung"
+L["STRING_OPTIONS_WINDOW_SCALE_DESC"] = [=[Bestimmt die Skalierung des Fensters.
+
+|cFFFFFF00Tipp|r: Rechtsklick, um einen Wert einzugeben
+
+|cFFFFFF00Aktuell|r: %s]=]
+L["STRING_OPTIONS_WINDOW_TITLE"] = "Allgemeine Fenstereinstellungen"
+L["STRING_OPTIONS_WINDOW_TITLE_DESC"] = "Diese Optionen kontrollieren das Aussehen des gewählten Fensters."
+L["STRING_OPTIONS_WINDOWSPEED"] = "Aktual.-Intervall"
+L["STRING_OPTIONS_WINDOWSPEED_DESC"] = [=[Zeit zwischen den Aktualisierungen.
+
+|cFFFFFF000.05|r: Echtzeit.
+
+|cFFFFFF000.3|r: 3,33x pro Sekunde
+
+|cFFFFFF003.0|r: 1x alle 3 Sekunden]=]
+L["STRING_OPTIONS_WP"] = "Hintergrundeinstellungen"
+L["STRING_OPTIONS_WP_ALIGN"] = "Ausrichtung"
+L["STRING_OPTIONS_WP_ALIGN_DESC"] = [=[Wie der Hintergrund zum Fenster ausgerichtet ist.
+
+- |cFFFFFF00voll|r: automatische Anpassung an den Ecken.
+
+- |cFFFFFF00zentriert|r: ohne Größenanpssung mittig im Fenster.
+
+-|cFFFFFF00angepasst|r: automatisch vertikal/horizontal an Breite oder Höhe.
+
+-|cFFFFFF00vier Ecken|r: angepasst an definierte Ecken ohne Größenveränderung.]=]
+L["STRING_OPTIONS_WP_DESC"] = "Diese Optionen bestimmen den Hintergrund der Fenster."
+L["STRING_OPTIONS_WP_EDIT"] = "Bild bearbeiten"
+L["STRING_OPTIONS_WP_EDIT_DESC"] = "Öffnet den Bildeditor, um das gewählte Bild anzupassen."
+L["STRING_OPTIONS_WP_ENABLE_DESC"] = "Zeigt den Hintergrund."
+L["STRING_OPTIONS_WP_GROUP"] = "Kategorie"
+L["STRING_OPTIONS_WP_GROUP_DESC"] = "Wähle die Bildgruppe."
+L["STRING_OPTIONS_WP_GROUP2"] = "Hintergrund"
+L["STRING_OPTIONS_WP_GROUP2_DESC"] = "Das Bild, welches als Hintergrund genommen werden soll."
+L["STRING_OPTIONSMENU_AUTOMATIC"] = "Fenster: Automatisierung"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE"] = "Fensterautomatisierungseinstellungen"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE_DESC"] = "Diese Einstellungen steuern das automatische Verhalten des Fensters, wie z.B. automatisches Verstecken und Umschalten."
+L["STRING_OPTIONSMENU_COMBAT"] = "PvE/PvP"
+L["STRING_OPTIONSMENU_DATACHART"] = "Daten für Ranglisten"
+L["STRING_OPTIONSMENU_DATACOLLECT"] = "Datensammler"
+L["STRING_OPTIONSMENU_DATAFEED"] = "Datenzufuhr"
+L["STRING_OPTIONSMENU_DISPLAY"] = "Anzeige"
+L["STRING_OPTIONSMENU_DISPLAY_DESC"] = "Gesamte Grundeinstellungen und schnelle Fensterkontrolle"
+L["STRING_OPTIONSMENU_LEFTMENU"] = "Titelleiste: Allgemein"
+L["STRING_OPTIONSMENU_MISC"] = "Sonstiges"
+L["STRING_OPTIONSMENU_PERFORMANCE"] = "Leistungsverbesserungen"
+L["STRING_OPTIONSMENU_PLUGINS"] = "Zusatzmodulverwaltung"
+L["STRING_OPTIONSMENU_PROFILES"] = "Profile"
+L["STRING_OPTIONSMENU_RAIDTOOLS"] = "Schlachtzugswerkzeuge"
+L["STRING_OPTIONSMENU_RIGHTMENU"] = "-- x -- x --"
+L["STRING_OPTIONSMENU_ROWMODELS"] = "Balken: Erweitert"
+L["STRING_OPTIONSMENU_ROWSETTINGS"] = "Balken: Allgemein"
+L["STRING_OPTIONSMENU_ROWTEXTS"] = "Balken: Texte"
+L["STRING_OPTIONSMENU_SKIN"] = "Skinauswahl"
+L["STRING_OPTIONSMENU_SPELLS"] = "Benutzerdefinierte Zauber"
+L["STRING_OPTIONSMENU_SPELLS_CONSOLIDATE"] = "Gleichnamige Zauber zusammenfassen"
+L["STRING_OPTIONSMENU_TITLETEXT"] = "Titelleiste: Text"
+L["STRING_OPTIONSMENU_TOOLTIP"] = "Tooltips"
+L["STRING_OPTIONSMENU_WALLPAPER"] = "Fenster: Hintergrund"
+L["STRING_OPTIONSMENU_WINDOW"] = "Fenster: Allgemein"
+L["STRING_OVERALL"] = "Gesamt"
+L["STRING_OVERHEAL"] = "Überheilung"
+L["STRING_OVERHEALED"] = "überheilt"
+L["STRING_PARRY"] = "Parieren"
+L["STRING_PERCENTAGE"] = "Prozentsatz"
+L["STRING_PET"] = "Begleiter"
+L["STRING_PETS"] = "Begleiter"
+L["STRING_PLAYER_DETAILS"] = "Spielerdetails!"
+L["STRING_PLAYERS"] = "Spieler"
+L["STRING_PLEASE_WAIT"] = "Bitte warten"
+L["STRING_PLUGIN_CLEAN"] = "kein"
+L["STRING_PLUGIN_CLOCKNAME"] = "Begegnungszeit"
+L["STRING_PLUGIN_CLOCKTYPE"] = "Uhrzeittyp"
+L["STRING_PLUGIN_DURABILITY"] = "Haltbarkeit"
+L["STRING_PLUGIN_FPS"] = "Bildfrequenz"
+L["STRING_PLUGIN_GOLD"] = "Gold"
+L["STRING_PLUGIN_LATENCY"] = "Latenz"
+L["STRING_PLUGIN_MINSEC"] = "Minuten & Sekunden"
+L["STRING_PLUGIN_NAMEALREADYTAKEN"] = "Details! kann das Zusatzmodul nicht installieren. Name bereits vergeben."
+L["STRING_PLUGIN_PATTRIBUTENAME"] = "Attribut"
+L["STRING_PLUGIN_PDPSNAME"] = "Schlachtzug-DPS"
+L["STRING_PLUGIN_PSEGMENTNAME"] = "Segment"
+L["STRING_PLUGIN_SECONLY"] = "Nur Sekunden"
+L["STRING_PLUGIN_SEGMENTTYPE"] = "Segmenttyp"
+L["STRING_PLUGIN_SEGMENTTYPE_1"] = "Kampf #X"
+L["STRING_PLUGIN_SEGMENTTYPE_2"] = "Begegnungsname"
+L["STRING_PLUGIN_SEGMENTTYPE_3"] = "Begegnungsname und Segment"
+L["STRING_PLUGIN_THREATNAME"] = "Meine Bedrohung"
+L["STRING_PLUGIN_TIME"] = "Uhr"
+L["STRING_PLUGIN_TIMEDIFF"] = "Differenz zum letzten Kampf"
+L["STRING_PLUGIN_TOOLTIP_LEFTBUTTON"] = "Bestehendes Zusatzmodul konfigurieren"
+L["STRING_PLUGIN_TOOLTIP_RIGHTBUTTON"] = "Ein anderes Zusatzmodul wählen"
+L["STRING_PLUGINOPTIONS_ABBREVIATE"] = "Kürzung"
+L["STRING_PLUGINOPTIONS_COMMA"] = "Komma"
+L["STRING_PLUGINOPTIONS_FONTFACE"] = "Schriftart wählen"
+L["STRING_PLUGINOPTIONS_NOFORMAT"] = "kein"
+L["STRING_PLUGINOPTIONS_TEXTALIGN"] = "Textausrichtung"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_X"] = "Text X-Achse"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_Y"] = "Text Y-Achse"
+L["STRING_PLUGINOPTIONS_TEXTCOLOR"] = "Schriftfarbe"
+L["STRING_PLUGINOPTIONS_TEXTSIZE"] = "Schriftgröße"
+L["STRING_PLUGINOPTIONS_TEXTSTYLE"] = "Schriftart"
+L["STRING_QUERY_INSPECT"] = "Talente und Gegenstandsstufe abfragen."
+L["STRING_QUERY_INSPECT_FAIL1"] = "keine Abfrage im Kampf möglich."
+L["STRING_QUERY_INSPECT_REFRESH"] = "Aktualisierung benötigt"
+L["STRING_RAID_WIDE"] = "[*] Schlachtzugsweite Abklingzeiten"
+L["STRING_RAIDCHECK_PLUGIN_DESC"] = "Zeigt innerhalb von Schlachtzugsinstanzen ein Symbol auf der Details!-Titelleiste, das Fläschchen-, Essen- und Voraustrank-Nutzung anzeigt."
+L["STRING_RAIDCHECK_PLUGIN_NAME"] = "Raid-Nachprüfung"
+L["STRING_REPORT"] = "für"
+L["STRING_REPORT_BUTTON_TOOLTIP"] = "Klicke, um den Berichtsdialog zu öffnen"
+L["STRING_REPORT_FIGHT"] = "Kampf"
+L["STRING_REPORT_FIGHTS"] = "Kämpfe"
+L["STRING_REPORT_INVALIDTARGET"] = "Flüsterziel nicht gefunden"
+L["STRING_REPORT_LAST"] = "zuletzt"
+L["STRING_REPORT_LASTFIGHT"] = "letzter Kampf"
+L["STRING_REPORT_LEFTCLICK"] = "Klicke zum Bericht"
+L["STRING_REPORT_PREVIOUSFIGHTS"] = "vorherige Kämpfe"
+L["STRING_REPORT_SINGLE_BUFFUPTIME"] = "Stärkungszauberlaufzeit für"
+L["STRING_REPORT_SINGLE_COOLDOWN"] = "Cooldown benutzt von"
+L["STRING_REPORT_SINGLE_DEATH"] = "Tod von"
+L["STRING_REPORT_SINGLE_DEBUFFUPTIME"] = "Schwächungszauberlaufzeit für"
+L["STRING_REPORT_TOOLTIP"] = "Ergebnisbericht"
+L["STRING_REPORTFRAME_COPY"] = "Kopieren & Einfügen"
+L["STRING_REPORTFRAME_CURRENT"] = "Momentan"
+L["STRING_REPORTFRAME_CURRENTINFO"] = "Nur momentane Daten anzeigen (wenn unterstützt)."
+L["STRING_REPORTFRAME_GUILD"] = "Gilde"
+L["STRING_REPORTFRAME_INSERTNAME"] = "Gib den Spielernamen ein"
+L["STRING_REPORTFRAME_LINES"] = "Zeilen"
+L["STRING_REPORTFRAME_OFFICERS"] = "Offizierskanal"
+L["STRING_REPORTFRAME_PARTY"] = "Gruppe"
+L["STRING_REPORTFRAME_RAID"] = "Schlachtzug"
+L["STRING_REPORTFRAME_REVERT"] = "Umkehr"
+L["STRING_REPORTFRAME_REVERTED"] = "umgekehrt"
+L["STRING_REPORTFRAME_REVERTINFO"] = "sendet in aufsteigender Reihenfolge."
+L["STRING_REPORTFRAME_SAY"] = "sagen"
+L["STRING_REPORTFRAME_SEND"] = "senden"
+L["STRING_REPORTFRAME_WHISPER"] = "Flüstern"
+L["STRING_REPORTFRAME_WHISPERTARGET"] = "Ziel anflüstern"
+L["STRING_REPORTFRAME_WINDOW_TITLE"] = "verlinkt Details!"
+L["STRING_REPORTHISTORY"] = "Berichtsverlauf"
+L["STRING_RESISTED"] = "Widerstanden"
+L["STRING_RESIZE_ALL"] = "Freie Größenänderung aller Fenster"
+L["STRING_RESIZE_COMMON"] = [=[verändert die Größe
+ aller Gruppenfenster]=]
+L["STRING_RESIZE_HORIZONTAL"] = [=[Verändert die Breite
+ aller Gruppenfenster]=]
+L["STRING_RESIZE_VERTICAL"] = [=[Verändert die Höhe
+ aller Gruppenfenster]=]
+L["STRING_RIGHT"] = "rechts"
+L["STRING_RIGHT_TO_LEFT"] = "Rechts nach Links"
+L["STRING_RIGHTCLICK_CLOSE_LARGE"] = "Klicke mit der rechten Maustaste, um das Fenster zu schließen."
+L["STRING_RIGHTCLICK_CLOSE_MEDIUM"] = "Rechte Maustaste, um das Fenster zu schließen"
+L["STRING_RIGHTCLICK_CLOSE_SHORT"] = "Rechtsklick zum Schließen"
+L["STRING_RIGHTCLICK_TYPEVALUE"] = "Rechtsklick, um den Wert einzugeben"
+L["STRING_SCORE_BEST"] = "Du erzieltest |cFF00FF00%s|r - dein bestes Ergebnis !Gratulation!"
+L["STRING_SCORE_NOTBEST"] = "Du erzieltest |cFFFFFF00%s|r, bester Wert ist |cFFFFFF00%s|r von %s mit %d Itemlevel."
+L["STRING_SEE_BELOW"] = "siehe unten"
+L["STRING_SEGMENT"] = "Segment"
+L["STRING_SEGMENT_EMPTY"] = "dieses Segment ist leer"
+L["STRING_SEGMENT_END"] = "Ende"
+L["STRING_SEGMENT_ENEMY"] = "Gegner"
+L["STRING_SEGMENT_LOWER"] = "Segment"
+L["STRING_SEGMENT_OVERALL"] = "Gesamtdaten"
+L["STRING_SEGMENT_START"] = "Start"
+L["STRING_SEGMENT_TRASH"] = "Trash abgräumt"
+L["STRING_SEGMENTS"] = "Segmente"
+L["STRING_SEGMENTS_LIST_BOSS"] = "Bosskampf"
+L["STRING_SEGMENTS_LIST_COMBATTIME"] = "Kampfzeit"
+L["STRING_SEGMENTS_LIST_OVERALL"] = "insgesamt"
+L["STRING_SEGMENTS_LIST_TIMEINCOMBAT"] = "Zeit im Kampf"
+L["STRING_SEGMENTS_LIST_TOTALTIME"] = "Insgesamte Zeit"
+L["STRING_SEGMENTS_LIST_TRASH"] = "Trash"
+L["STRING_SEGMENTS_LIST_WASTED_TIME"] = "Nicht im Kampf"
+L["STRING_SHIELD_HEAL"] = "verhindert"
+L["STRING_SHIELD_OVERHEAL"] = "Vergeudet"
+L["STRING_SHORTCUT_RIGHTCLICK"] = "Rechtsklick, um zu schließen"
+L["STRING_SLASH_API_DESC"] = "Öffne das API-Menü zur Erzeugung von Zusatzmodulen, benutzerdefinierten Anzeigen, Auren etc."
+L["STRING_SLASH_CAPTURE_DESC"] = "Alle Datenerfassungen ein-/ausschalten."
+L["STRING_SLASH_CAPTUREOFF"] = "Jede Datenerfassung deaktiviert."
+L["STRING_SLASH_CAPTUREON"] = "Erfassung ein."
+L["STRING_SLASH_CHANGES"] = "Updates"
+L["STRING_SLASH_CHANGES_ALIAS1"] = "Neuigkeiten"
+L["STRING_SLASH_CHANGES_ALIAS2"] = "Änderungen"
+L["STRING_SLASH_CHANGES_DESC"] = "Zeigt was Neu ist und Änderungen in Details!."
+L["STRING_SLASH_DISABLE"] = "deaktivieren"
+L["STRING_SLASH_ENABLE"] = "aktivieren"
+L["STRING_SLASH_HIDE"] = "verstecken"
+L["STRING_SLASH_HIDE_ALIAS1"] = "schließen"
+L["STRING_SLASH_HISTORY"] = "Historie"
+L["STRING_SLASH_NEW"] = "neu"
+L["STRING_SLASH_NEW_DESC"] = "erstellt ein neues Fenster."
+L["STRING_SLASH_OPTIONS"] = "Optionen"
+L["STRING_SLASH_OPTIONS_DESC"] = "öffnet die Optionen"
+L["STRING_SLASH_RESET"] = "reset"
+L["STRING_SLASH_RESET_ALIAS1"] = "löschen"
+L["STRING_SLASH_RESET_DESC"] = "Löscht alle Segmente"
+L["STRING_SLASH_SHOW"] = "zeigen"
+L["STRING_SLASH_SHOW_ALIAS1"] = "öffnen"
+L["STRING_SLASH_SHOWHIDETOGGLE_DESC"] = "alle Fenster, falls nicht funktioniert."
+L["STRING_SLASH_TOGGLE"] = "umschalten"
+L["STRING_SLASH_WIPE"] = "wipe"
+L["STRING_SLASH_WIPECONFIG"] = "neuinstallieren"
+L["STRING_SLASH_WIPECONFIG_CONFIRM"] = "Klicke, um mit der Neuinstallation fortzufahren!"
+L["STRING_SLASH_WIPECONFIG_DESC"] = "setzt alle Einstellungen auf Standard. Nutze es, falls Details! nicht ordnungsgemäß läuft."
+L["STRING_SLASH_WORLDBOSS"] = "Weltboss"
+L["STRING_SLASH_WORLDBOSS_DESC"] = "startet ein Makro, das dir anzeigt, welche Bosse du in dieser Woche getötet hast."
+L["STRING_SPELL_INTERRUPTED"] = "Zauber unterbrochen"
+L["STRING_SPELLLIST"] = "Zauberliste"
+L["STRING_SPELLS"] = "Zauber"
+L["STRING_SPIRIT_LINK_TOTEM"] = "Lebenspunkte-Austausch"
+L["STRING_SPIRIT_LINK_TOTEM_DESC"] = [=[Anzahl an ausgetauschten Lebenspunkten zwischen
+Spielern in Totemreichweite.
+
+Diese Heilung wird nicht zur
+verursachten Heilung eines Spielers gezählt.]=]
+L["STRING_STATISTICS"] = "Statistik"
+L["STRING_STATUSBAR_NOOPTIONS"] = "Dieses Widget hat keine Optionen"
+L["STRING_SWITCH_CLICKME"] = "Lesezeichen hinzufügen"
+L["STRING_SWITCH_SELECTMSG"] = "Wähle die Anzeige für Lesezeichen #%d"
+L["STRING_SWITCH_TO"] = "Wechseln zu"
+L["STRING_SWITCH_WARNING"] = "Rolle geändert. Wechsel: |cFFFFAA00%s|r "
+L["STRING_TARGET"] = "Ziel"
+L["STRING_TARGETS"] = "Ziele"
+L["STRING_TARGETS_OTHER1"] = "Begleiter und andere Ziele"
+L["STRING_TEXTURE"] = "Textur"
+L["STRING_TIME_OF_DEATH"] = "Tod"
+L["STRING_TOOOLD"] = "konnte nicht installiert werden, weil deine Details!-Version zu alt ist."
+L["STRING_TOP"] = "oben"
+L["STRING_TOP_TO_BOTTOM"] = "Oben nach Unten"
+L["STRING_TOTAL"] = "Gesamt"
+L["STRING_TRANSLATE_LANGUAGE"] = "Hilf mit bei der Details!-Übersetzung"
+L["STRING_TUTORIAL_FULLY_DELETE_WINDOW"] = [=[Du hast ein Fenster geschlossen, du kannst es jederzeit erneut öffnen.
+Um ein Fenster komplett zu löschen, gehe zu den Optionen -> Fenster: Allgemein -> Löschen.]=]
+L["STRING_TUTORIAL_OVERALL1"] = "Anpassen der Gesamteinstellungen auf dem Optionsmenü > PvE/PvP"
+L["STRING_UNKNOW"] = "Unbekannt"
+L["STRING_UNKNOWSPELL"] = "Unbekannter Zauber"
+L["STRING_UNLOCK"] = [=[Fenstergruppe auflösen
+ mit dieser Schaltfläche]=]
+L["STRING_UNLOCK_WINDOW"] = "freigeben"
+L["STRING_UPTADING"] = "aktualisiere"
+L["STRING_VERSION_AVAILABLE"] = "Eine neue Version ist verfügbar, lade es von der Twitch App oder der Curse Webseite herunter."
+L["STRING_VERSION_UPDATE"] = "Neue Version: Was hat sich geändert? Klicke hier"
+L["STRING_VOIDZONE_TOOLTIP"] = "Schaden und Zeit"
+L["STRING_WAITPLUGIN"] = [=[warte auf
+Zusatzmodule]=]
+L["STRING_WAVE"] = "Welle"
+L["STRING_WELCOME_1"] = [=[|cFFFFFFFFWillkommen bei Details! Schnelleinrichtungsassistent!
+
+|rDieser Assistent hilft Dir bei einigen wichtigen Einstellungen.
+Du kannst ihn jederzeit durch Klick auf das rote Symbol neben 'Weiter' überspringen.]=]
+L["STRING_WELCOME_11"] = "Solltest Du deine Meinung ändern, kannst Du jederzeit im Optionsmenü modifizieren"
+L["STRING_WELCOME_12"] = "Wähle, wie oft das Fenster aktualisiert werden soll; eventuell möchtest du ebenfalls Animationen und Echtzeitaktualisierungen der HPS- und DPS-Zahlen aktivieren"
+L["STRING_WELCOME_13"] = ""
+L["STRING_WELCOME_14"] = "Aktualisierungsrate"
+L["STRING_WELCOME_15"] = [=[Wartezeit zwischen jeder Fensteraktualisierung.
+
+|cffffff00Wichtig|r: Youtuber/Streamer mögen möglicherweise |cFFFF55000.05|r verwenden, um ihre Zuschauer besser zu unterhalten.]=]
+L["STRING_WELCOME_16"] = "Animationen aktivieren"
+L["STRING_WELCOME_17"] = [=[Wenn aktiviert, werden die Balken sanft animiert, anstatt auf neue Werte zu 'springen'.
+
+Sehr empfohlen für Youtuber und Streamer.]=]
+L["STRING_WELCOME_2"] = "Solltest Du deine Meinung ändern, kannst Du sie jederzeit im Optionsmenü modifizieren"
+L["STRING_WELCOME_26"] = "Interface: Ausweiten"
+L["STRING_WELCOME_27"] = [=[Die leuchtende Schaltfläche ist der |cFFFFFF00'Ausweiter'|r.
+|cFFFFFF00Klicken|r und |cFFFFFF00ziehen!|r.
+
+Wenn das Fenster fixiert ist, wird die ganze Titelleiste zum 'Ausweiter".]=]
+L["STRING_WELCOME_28"] = "Interface: Fensterkontrolle"
+L["STRING_WELCOME_29"] = [=[Fensterkontrolle macht grundsätzlich zwei Dinge:
+
+- öffnet ein |cFFFFFF00neues Fenster|r.
+- zeigt ein Menü mit |cFFFFFF00geschlossenen Fenstern|r, die wieder geöffnet werden können.]=]
+L["STRING_WELCOME_3"] = "Wähle deine bevorzugte DPS-/HPS-Methode:"
+L["STRING_WELCOME_30"] = "Interface: Lesezeichen"
+L["STRING_WELCOME_31"] = [=[|cFFFFFF00Rechtsklick|r irgendwo im Fenster zeigt das |cFFFFAA00Lesezeichen|r-Menü.
+|cFFFFFF00Erneuter Rechtsklick|r schließt das Menü
+ oder wähle mit
+|cFFFFFF00Klick|r auf ein Symbol eine andere Ansicht
+|TInterface\AddOns\Details\images\key_shift:14:30:0:0:64:64:0:64:0:40|t + Rechtsklick öffnet stattdessen die |cFFFFAA00Lesezeichen|r.
+
+|TInterface\AddOns\Details\images\key_ctrl:14:30:0:0:64:64:0:64:0:40|t + Rechtsklick schließt das Fenster.]=]
+L["STRING_WELCOME_32"] = "Interface: Fenstergruppierung"
+L["STRING_WELCOME_34"] = "Interface: Tooltips"
+L["STRING_WELCOME_36"] = "Interface: Zusatzmodule"
+L["STRING_WELCOME_38"] = "Du bist nun kampfbereit !"
+L["STRING_WELCOME_39"] = [=[Ein Dankeschön zur Wahl von Details!
+
+Wir sind immer für Feedback und Fehlerberichte dankbar !
+
+
+|cFFFFAA00/details feedback|r]=]
+L["STRING_WELCOME_4"] = "Aktivzeit:"
+L["STRING_WELCOME_41"] = "Interface-Unterhaltungsoptimierung:"
+L["STRING_WELCOME_42"] = "Schnelle Ansichtseinstellungen"
+L["STRING_WELCOME_43"] = "Bevorzugter Skin:"
+L["STRING_WELCOME_44"] = "Hintergrund"
+L["STRING_WELCOME_45"] = "Mehr Individualisierungsmöglichkeiten findest du im Optionsmenü."
+L["STRING_WELCOME_46"] = "Importeinstellungen"
+L["STRING_WELCOME_5"] = "Effektivzeit: "
+L["STRING_WELCOME_57"] = [=[Importierte Grundeinstellungen von Addons bereits installiert.
+
+Jeder Skin reagiert anders auf importierte Einstellungen.]=]
+L["STRING_WELCOME_58"] = [=[Vordefinierte Ansichtseinstellungen.
+
+|cFFFFFF00Wichtig|r: alle Einstellungen können später im Options-Menü geändert werden.]=]
+L["STRING_WELCOME_59"] = "Hintergrundbild aktivieren."
+L["STRING_WELCOME_6"] = "Der Timer jedes Gruppenmitglieds wird angehalten, wenn Ihre Aktivitäten eingestellt werden und wieder gestartet, wenn Sie wieder beginnen."
+L["STRING_WELCOME_60"] = "Spitzname und Avatar"
+L["STRING_WELCOME_61"] = "Avatare werden in den Tooltips und dem Spieler-Detailfenster angezeigt."
+L["STRING_WELCOME_62"] = "Beides wird an Glidenmitglieder gesendet, falls sie auch Details! benutzen. Der Spitzname ersetzt den Charakternamen."
+L["STRING_WELCOME_63"] = "DPS-/HPS-Aktualisierung in Echtzeit"
+L["STRING_WELCOME_64"] = [=[Wenn aktiviert, werden die gezeigten DpS-/HpS-Zahlen sehr schnell aktualisiert, so musst Du nicht auf die nächste Fensteraktualisierung warten.
+
+|cffffff00Wichtig|r: Youtuber/Streamer mögen möglicherweise |cFFFF55000.05|r verwenden, um ihre Zuschauer besser zu unterhalten.]=]
+L["STRING_WELCOME_65"] = "Drücke die rechte Schaltfläche!"
+L["STRING_WELCOME_66"] = [=[Zur Gruppenbildung ziehe ein Fenster zu einem anderen.
+
+Gruppierte Fenster werden gemeinsam größer oder kleiner.
+
+So wird es übersichtlicher.]=]
+L["STRING_WELCOME_67"] = [=[Drücke auf
+ |cFFFFFF00Shift:|r für erweiterte Tooltips zur Zaubernutzung
+ |cFFFFFF00Strg :|r für Ziele
+ |cFFFFFF00Alt :|r für Begleiter.]=]
+L["STRING_WELCOME_68"] = [=[Details! wird unterstützt von
+Zusatzmodulen namens 'Plugins'.
+
+Es gibt sie überall und sie
+helfen Dir bei vielen Aufgaben.
+Beispiele :
+Gefahrenmessung, DPS-Analysen, Zusammenfassung, Ranglistenerstellung und mehr.]=]
+L["STRING_WELCOME_69"] = "Überspringen"
+L["STRING_WELCOME_7"] = "Für Ranglisten verwendet diese Methode die Kampflaufzeit, um für alle Schlachtzugsteilnehmer DPS / HPS zu bemessen."
+L["STRING_WELCOME_70"] = "Titelleisteneinstellungen"
+L["STRING_WELCOME_71"] = "Leisteneinstellungen"
+L["STRING_WELCOME_72"] = "Fenstereinstellungen"
+L["STRING_WELCOME_73"] = "Wähle das Alphabet oder die Region:"
+L["STRING_WELCOME_74"] = "Lateinisches Alphabet"
+L["STRING_WELCOME_75"] = "Kyrillisches Alphabet"
+L["STRING_WELCOME_76"] = "China"
+L["STRING_WELCOME_77"] = "Korea"
+L["STRING_WELCOME_78"] = "Taiwan"
+L["STRING_WELCOME_79"] = "Zweites Fenster erstellen"
+L["STRING_WINDOW_NOTFOUND"] = "Kein Fenster gefunden."
+L["STRING_WINDOW_NUMBER"] = "Fensternummer"
+L["STRING_WINDOW1ATACH_DESC"] = "Zur Bildung einer Fenstergruppe, ziehe Fenster #2 in die Nähe von Fenster #1."
+L["STRING_WIPE_ALERT"] = "Schlachtzugsleiter ruft: Wipe!"
+L["STRING_WIPE_ERROR1"] = "ein Wipe wurde bereits ausgerufen."
+L["STRING_WIPE_ERROR2"] = "wir sind in keiner Schlachtzugsbegegnung."
+L["STRING_WIPE_ERROR3"] = "konnten die Begegnung nicht beenden."
+L["STRING_YES"] = "Ja"
+
diff --git a/locales/Details-enUS.lua b/locales/Details-enUS.lua
index 87b5e663..4b71ced9 100644
--- a/locales/Details-enUS.lua
+++ b/locales/Details-enUS.lua
@@ -3,4 +3,1689 @@ if not L then return end
--------------------------------------------------------------------------------------------------------------------------------------------
-@localization(locale="enUS", format="lua_additive_table")@
\ No newline at end of file
+L["ABILITY_ID"] = "ability id"
+L["STRING_"] = ""
+L["STRING_ABSORBED"] = "Absorbed"
+L["STRING_ACTORFRAME_NOTHING"] = "oops, there is no data to report :("
+L["STRING_ACTORFRAME_REPORTAT"] = "at"
+L["STRING_ACTORFRAME_REPORTOF"] = "of"
+L["STRING_ACTORFRAME_REPORTTARGETS"] = "report for targets of"
+L["STRING_ACTORFRAME_REPORTTO"] = "report for"
+L["STRING_ACTORFRAME_SPELLDETAILS"] = "Spell details"
+L["STRING_ACTORFRAME_SPELLSOF"] = "Spells of"
+L["STRING_ACTORFRAME_SPELLUSED"] = "All spells used"
+L["STRING_AGAINST"] = "against"
+L["STRING_ALIVE"] = "Alive"
+L["STRING_ALPHA"] = "Alpha"
+L["STRING_ANCHOR_BOTTOM"] = "Bottom"
+L["STRING_ANCHOR_BOTTOMLEFT"] = "Bottom Left"
+L["STRING_ANCHOR_BOTTOMRIGHT"] = "Bottom Right"
+L["STRING_ANCHOR_LEFT"] = "Left"
+L["STRING_ANCHOR_RIGHT"] = "Right"
+L["STRING_ANCHOR_TOP"] = "Top"
+L["STRING_ANCHOR_TOPLEFT"] = "Top Left"
+L["STRING_ANCHOR_TOPRIGHT"] = "Top Right"
+L["STRING_ASCENDING"] = "Ascending"
+L["STRING_ATACH_DESC"] = "Window #%d makes group with the window #%d."
+L["STRING_ATTRIBUTE_CUSTOM"] = "Custom"
+L["STRING_ATTRIBUTE_DAMAGE"] = "Damage"
+L["STRING_ATTRIBUTE_DAMAGE_BYSPELL"] = "Damage Taken By Spell"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS"] = "Auras & Voidzones"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS_REPORT"] = "Debuff Damage and Uptime"
+L["STRING_ATTRIBUTE_DAMAGE_DONE"] = "Damage Done"
+L["STRING_ATTRIBUTE_DAMAGE_DPS"] = "DPS"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES"] = "Enemy Damage Taken"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES_DONE"] = "Enemy Damage Done"
+L["STRING_ATTRIBUTE_DAMAGE_FRAGS"] = "Frags"
+L["STRING_ATTRIBUTE_DAMAGE_FRIENDLYFIRE"] = "Friendly Fire"
+L["STRING_ATTRIBUTE_DAMAGE_TAKEN"] = "Damage Taken"
+L["STRING_ATTRIBUTE_ENERGY"] = "Resources"
+L["STRING_ATTRIBUTE_ENERGY_ALTERNATEPOWER"] = "Alternate Power"
+L["STRING_ATTRIBUTE_ENERGY_ENERGY"] = "Energy Generated"
+L["STRING_ATTRIBUTE_ENERGY_MANA"] = "Mana Restored"
+L["STRING_ATTRIBUTE_ENERGY_RAGE"] = "Rage Generated"
+L["STRING_ATTRIBUTE_ENERGY_RESOURCES"] = "Other Resources"
+L["STRING_ATTRIBUTE_ENERGY_RUNEPOWER"] = "Runic Power Generated"
+L["STRING_ATTRIBUTE_HEAL"] = "Heal"
+L["STRING_ATTRIBUTE_HEAL_ABSORBED"] = "Heal Absorbed"
+L["STRING_ATTRIBUTE_HEAL_DONE"] = "Healing Done"
+L["STRING_ATTRIBUTE_HEAL_ENEMY"] = "Enemy Healing Done"
+L["STRING_ATTRIBUTE_HEAL_HPS"] = "HPS"
+L["STRING_ATTRIBUTE_HEAL_OVERHEAL"] = "Overhealing"
+L["STRING_ATTRIBUTE_HEAL_PREVENT"] = "Damage Prevented"
+L["STRING_ATTRIBUTE_HEAL_TAKEN"] = "Healing Taken"
+L["STRING_ATTRIBUTE_MISC"] = "Miscellaneous"
+L["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"] = "Buff Uptime"
+L["STRING_ATTRIBUTE_MISC_CCBREAK"] = "CC Breaks"
+L["STRING_ATTRIBUTE_MISC_DEAD"] = "Deaths"
+L["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"] = "Debuff Uptime"
+L["STRING_ATTRIBUTE_MISC_DEFENSIVE_COOLDOWNS"] = "Cooldowns"
+L["STRING_ATTRIBUTE_MISC_DISPELL"] = "Dispells"
+L["STRING_ATTRIBUTE_MISC_INTERRUPT"] = "Interrupts"
+L["STRING_ATTRIBUTE_MISC_RESS"] = "Ress"
+L["STRING_AUTO"] = "auto"
+L["STRING_AUTOSHOT"] = "Auto Shot"
+L["STRING_AVERAGE"] = "Average"
+L["STRING_BLOCKED"] = "Blocked"
+L["STRING_BOTTOM"] = "bottom"
+L["STRING_BOTTOM_TO_TOP"] = "Bottom to Top"
+L["STRING_CAST"] = "Casts"
+L["STRING_CAUGHT"] = "caught"
+L["STRING_CCBROKE"] = "Crowd Control Removed"
+L["STRING_CENTER"] = "center"
+L["STRING_CENTER_UPPER"] = "Center"
+L["STRING_CHANGED_TO_CURRENT"] = "Segment Changed: |cFFFFFF00Current|r"
+L["STRING_CHANNEL_PRINT"] = "Observer"
+L["STRING_CHANNEL_RAID"] = "Raid"
+L["STRING_CHANNEL_SAY"] = "Say"
+L["STRING_CHANNEL_WHISPER"] = "Whisper"
+L["STRING_CHANNEL_WHISPER_TARGET_COOLDOWN"] = "Whisper Cooldown Target"
+L["STRING_CHANNEL_YELL"] = "Yell"
+L["STRING_CLICK_REPORT_LINE1"] = "|cFFFFCC22Click|r: |cFFFFEE00report|r"
+L["STRING_CLICK_REPORT_LINE2"] = "|cFFFFCC22Shift+Click|r: |cFFFFEE00window mode|r"
+L["STRING_CLOSEALL"] = "All windows are closed, you may type '/details show' to re-open."
+L["STRING_COLOR"] = "Color"
+L["STRING_COMMAND_LIST"] = "command list"
+L["STRING_COOLTIP_NOOPTIONS"] = "no options"
+L["STRING_CREATEAURA"] = "Create Aura"
+L["STRING_CRITICAL_HITS"] = "Critical Hits"
+L["STRING_CRITICAL_ONLY"] = "critical"
+L["STRING_CURRENT"] = "Current"
+L["STRING_CURRENTFIGHT"] = "Current Segment"
+L["STRING_CUSTOM_ACTIVITY_ALL"] = "Activity Time"
+L["STRING_CUSTOM_ACTIVITY_ALL_DESC"] = "Shows the activity results for each player in the raid group."
+L["STRING_CUSTOM_ACTIVITY_DPS"] = "Damage Activity Time"
+L["STRING_CUSTOM_ACTIVITY_DPS_DESC"] = "Tells how much time each character spent doing damage."
+L["STRING_CUSTOM_ACTIVITY_HPS"] = "Healing Activity Time"
+L["STRING_CUSTOM_ACTIVITY_HPS_DESC"] = "Tells how much time each character spent doing healing."
+L["STRING_CUSTOM_ATTRIBUTE_DAMAGE"] = "Damage"
+L["STRING_CUSTOM_ATTRIBUTE_HEAL"] = "Heal"
+L["STRING_CUSTOM_ATTRIBUTE_SCRIPT"] = "Custom Script"
+L["STRING_CUSTOM_AUTHOR"] = "Author:"
+L["STRING_CUSTOM_AUTHOR_DESC"] = "Who created this display."
+L["STRING_CUSTOM_CANCEL"] = "Cancel"
+L["STRING_CUSTOM_CC_DONE"] = "Crowd Control Done"
+L["STRING_CUSTOM_CC_RECEIVED"] = "Crowd Control Received"
+L["STRING_CUSTOM_CREATE"] = "Create"
+L["STRING_CUSTOM_CREATED"] = "The new display has been created."
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET"] = "Damage On Other Marked Targets"
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET_DESC"] = "Show the amount of damage applied on targets marked with any other mark."
+L["STRING_CUSTOM_DAMAGEONSHIELDS"] = "Damage on Shields"
+L["STRING_CUSTOM_DAMAGEONSKULL"] = "Damage On Skull Marked Targets"
+L["STRING_CUSTOM_DAMAGEONSKULL_DESC"] = "Show the amount of damage applied on targets marked with skull."
+L["STRING_CUSTOM_DESCRIPTION"] = "Desc:"
+L["STRING_CUSTOM_DESCRIPTION_DESC"] = "Description about what this display does."
+L["STRING_CUSTOM_DONE"] = "Done"
+L["STRING_CUSTOM_DTBS"] = "Damage Taken By Spell"
+L["STRING_CUSTOM_DTBS_DESC"] = "Show the damage of enemy spells against your group."
+L["STRING_CUSTOM_DYNAMICOVERAL"] = "Dynamic Overall Damage"
+L["STRING_CUSTOM_EDIT"] = "Edit"
+L["STRING_CUSTOM_EDIT_SEARCH_CODE"] = "Edit Search Code"
+L["STRING_CUSTOM_EDIT_TOOLTIP_CODE"] = "Edit Tooltip Code"
+L["STRING_CUSTOM_EDITCODE_DESC"] = "This is an advanced function where the user can create their own display code."
+L["STRING_CUSTOM_EDITTOOLTIP_DESC"] = "This is the tooltip code, runs when the user hovers over a bar."
+L["STRING_CUSTOM_ENEMY_DT"] = " Damage Taken"
+L["STRING_CUSTOM_EXPORT"] = "Export"
+L["STRING_CUSTOM_FUNC_INVALID"] = "Custom script is invalid and cannot refresh the window."
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT"] = "Health Potion & Stone"
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT_DESC"] = "Show who in your raid group used the healthstone or a heal potion."
+L["STRING_CUSTOM_ICON"] = "Icon:"
+L["STRING_CUSTOM_IMPORT"] = "Import"
+L["STRING_CUSTOM_IMPORT_ALERT"] = "Display loaded, click Import to confirm."
+L["STRING_CUSTOM_IMPORT_BUTTON"] = "Import"
+L["STRING_CUSTOM_IMPORT_ERROR"] = "Import failed, invalid string."
+L["STRING_CUSTOM_IMPORTED"] = "The display has been successfully imported."
+L["STRING_CUSTOM_LONGNAME"] = "Name too long, maximum allowed 32 characters."
+L["STRING_CUSTOM_MYSPELLS"] = "My Spells"
+L["STRING_CUSTOM_MYSPELLS_DESC"] = "Show your spells in the window."
+L["STRING_CUSTOM_NAME"] = "Name:"
+L["STRING_CUSTOM_NAME_DESC"] = "Insert the name of your new custom display."
+L["STRING_CUSTOM_NEW"] = "Manage Custom Displays"
+L["STRING_CUSTOM_PASTE"] = "Paste Here:"
+L["STRING_CUSTOM_POT_DEFAULT"] = "Potion Used"
+L["STRING_CUSTOM_POT_DEFAULT_DESC"] = "Show who in your raid used a potion during the encounter."
+L["STRING_CUSTOM_REMOVE"] = "Remove"
+L["STRING_CUSTOM_REPORT"] = "(custom)"
+L["STRING_CUSTOM_SAVE"] = "Save Changes"
+L["STRING_CUSTOM_SAVED"] = "The display has been saved."
+L["STRING_CUSTOM_SHORTNAME"] = "Name needs at least 5 characters."
+L["STRING_CUSTOM_SKIN_TEXTURE"] = "Custom Skin File"
+L["STRING_CUSTOM_SKIN_TEXTURE_DESC"] = [=[The name of the .tga file.
+
+It must be placed inside the folder:
+
+|cFFFFFF00WoW/Interface/|r
+
+|cFFFFFF00Important:|r before creating the file, close your game client. After that, a /reload will apply the changes saved on the texture file.]=]
+L["STRING_CUSTOM_SOURCE"] = "Source:"
+L["STRING_CUSTOM_SOURCE_DESC"] = [=[Who is triggering the effect.
+
+The button on the right shows a list of npcs from raid encounters.]=]
+L["STRING_CUSTOM_SPELLID"] = "Spell Id:"
+L["STRING_CUSTOM_SPELLID_DESC"] = [=[Optional, the spell is used by the source to apply the effect on the target.
+
+The button in the right shows a list of spells from raid encounters.]=]
+L["STRING_CUSTOM_TARGET"] = "Target:"
+L["STRING_CUSTOM_TARGET_DESC"] = [=[This is the target of the source.
+
+The button in the right shows a list of npcs from raid encounters.]=]
+L["STRING_CUSTOM_TEMPORARILY"] = " (|cFFFFC000temporarily|r)"
+L["STRING_DAMAGE"] = "Damage"
+L["STRING_DAMAGE_DPS_IN"] = "DPS received from"
+L["STRING_DAMAGE_FROM"] = "Took damage from"
+L["STRING_DAMAGE_TAKEN_FROM"] = "Damage Taken From"
+L["STRING_DAMAGE_TAKEN_FROM2"] = "applied damage with"
+L["STRING_DEFENSES"] = "Defenses"
+L["STRING_DESCENDING"] = "Descending"
+L["STRING_DETACH_DESC"] = "Break Window Group"
+L["STRING_DISCARD"] = "Discard"
+L["STRING_DISPELLED"] = "Buffs/Debuffs Removed"
+L["STRING_DODGE"] = "Dodge"
+L["STRING_DOT"] = " (DoT)"
+L["STRING_DPS"] = "DPS"
+L["STRING_EMPTY_SEGMENT"] = "Empty Segment"
+L["STRING_ENABLED"] = "Enabled"
+L["STRING_ENVIRONMENTAL_DROWNING"] = "Environment (Drowning)"
+L["STRING_ENVIRONMENTAL_FALLING"] = "Environment (Falling)"
+L["STRING_ENVIRONMENTAL_FATIGUE"] = "Environment (Fatigue)"
+L["STRING_ENVIRONMENTAL_FIRE"] = "Environment (Fire)"
+L["STRING_ENVIRONMENTAL_LAVA"] = "Environment (Lava)"
+L["STRING_ENVIRONMENTAL_SLIME"] = "Environment (Slime)"
+L["STRING_EQUILIZING"] = "Sharing encounter data"
+L["STRING_ERASE"] = "delete"
+L["STRING_ERASE_DATA"] = "Reset All Data"
+L["STRING_ERASE_DATA_OVERALL"] = "Reset Overall Data"
+L["STRING_ERASE_IN_COMBAT"] = "Scheduled overall wipe after current combat."
+L["STRING_EXAMPLE"] = "Example"
+L["STRING_EXPLOSION"] = "explosion"
+L["STRING_FAIL_ATTACKS"] = "Attack Failures"
+L["STRING_FEEDBACK_CURSE_DESC"] = "Open a ticket or leave a message on Details! page."
+L["STRING_FEEDBACK_MMOC_DESC"] = "Post on our thread at mmo-champion's forum."
+L["STRING_FEEDBACK_PREFERED_SITE"] = "Choose your preferred community site:"
+L["STRING_FEEDBACK_SEND_FEEDBACK"] = "Send Feedback"
+L["STRING_FEEDBACK_WOWI_DESC"] = "Leave a comment on Details! project page."
+L["STRING_FIGHTNUMBER"] = "Fight #"
+L["STRING_FORGE_BUTTON_ALLSPELLS"] = "All Spells"
+L["STRING_FORGE_BUTTON_ALLSPELLS_DESC"] = "List all spells from players and npcs."
+L["STRING_FORGE_BUTTON_BWTIMERS"] = "BigWigs Timers"
+L["STRING_FORGE_BUTTON_BWTIMERS_DESC"] = "List timers from BigWigs"
+L["STRING_FORGE_BUTTON_DBMTIMERS"] = "DBM Timers"
+L["STRING_FORGE_BUTTON_DBMTIMERS_DESC"] = "List timers from Deadly Boss Mods"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS"] = "Boss Spells"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS_DESC"] = "List only spells from raid and dungeon encounters."
+L["STRING_FORGE_BUTTON_ENEMIES"] = "Enemies"
+L["STRING_FORGE_BUTTON_ENEMIES_DESC"] = "List enemies from the current combat."
+L["STRING_FORGE_BUTTON_PETS"] = "Pets"
+L["STRING_FORGE_BUTTON_PETS_DESC"] = "List pets from the current combat."
+L["STRING_FORGE_BUTTON_PLAYERS"] = "Players"
+L["STRING_FORGE_BUTTON_PLAYERS_DESC"] = "List players from the current combat."
+L["STRING_FORGE_ENABLEPLUGINS"] = "\"Please turn on Details! plugins with Raid Names on the Escape Menu > AddOns, e.g. Details: Tomb of Sargeras.\""
+L["STRING_FORGE_FILTER_BARTEXT"] = "Bar Name"
+L["STRING_FORGE_FILTER_CASTERNAME"] = "Caster Name"
+L["STRING_FORGE_FILTER_ENCOUNTERNAME"] = "Encounter Name"
+L["STRING_FORGE_FILTER_ENEMYNAME"] = "Enemy Name"
+L["STRING_FORGE_FILTER_OWNERNAME"] = "Owner Name"
+L["STRING_FORGE_FILTER_PETNAME"] = "Pet Name"
+L["STRING_FORGE_FILTER_PLAYERNAME"] = "Player Name"
+L["STRING_FORGE_FILTER_SPELLNAME"] = "Spell Name"
+L["STRING_FORGE_HEADER_BARTEXT"] = "Bar Text"
+L["STRING_FORGE_HEADER_CASTER"] = "Caster"
+L["STRING_FORGE_HEADER_CLASS"] = "Class"
+L["STRING_FORGE_HEADER_CREATEAURA"] = "Create Aura"
+L["STRING_FORGE_HEADER_ENCOUNTERID"] = "Encounter ID"
+L["STRING_FORGE_HEADER_ENCOUNTERNAME"] = "Encounter Name"
+L["STRING_FORGE_HEADER_EVENT"] = "Event"
+L["STRING_FORGE_HEADER_FLAG"] = "Flag"
+L["STRING_FORGE_HEADER_GUID"] = "GUID"
+L["STRING_FORGE_HEADER_ICON"] = "Icon"
+L["STRING_FORGE_HEADER_ID"] = "ID"
+L["STRING_FORGE_HEADER_INDEX"] = "Index"
+L["STRING_FORGE_HEADER_NAME"] = "Name"
+L["STRING_FORGE_HEADER_NPCID"] = "NpcID"
+L["STRING_FORGE_HEADER_OWNER"] = "Owner"
+L["STRING_FORGE_HEADER_SCHOOL"] = "School"
+L["STRING_FORGE_HEADER_SPELLID"] = "SpellID"
+L["STRING_FORGE_HEADER_TIMER"] = "Timer"
+L["STRING_FORGE_TUTORIAL_DESC"] = "Browse spells and boss mods timers to create auras by clicking on '|cFFFFFF00Create Aura|r'."
+L["STRING_FORGE_TUTORIAL_TITLE"] = "Welcome to Details! Forge"
+L["STRING_FORGE_TUTORIAL_VIDEO"] = "Example of an Aura using boss mods timers:"
+L["STRING_FREEZE"] = "This segment is not available at this moment"
+L["STRING_FROM"] = "From"
+L["STRING_GERAL"] = "General"
+L["STRING_GLANCING"] = "Glancing"
+L["STRING_GUILDDAMAGERANK_BOSS"] = "Boss"
+L["STRING_GUILDDAMAGERANK_DATABASEERROR"] = "Fail to open '|cFFFFFF00Details! Storage|r', maybe the addon is disabled?"
+L["STRING_GUILDDAMAGERANK_DIFF"] = "Difficulty"
+L["STRING_GUILDDAMAGERANK_GUILD"] = "Guild"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE"] = "Player Base"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_INDIVIDUAL"] = "Individual"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_PLAYER"] = "Player"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_RAID"] = "All Players"
+L["STRING_GUILDDAMAGERANK_RAID"] = "Raid"
+L["STRING_GUILDDAMAGERANK_ROLE"] = "Role"
+L["STRING_GUILDDAMAGERANK_SHOWHISTORY"] = "Show History"
+L["STRING_GUILDDAMAGERANK_SHOWRANK"] = "Show Guild Rank"
+L["STRING_GUILDDAMAGERANK_SYNCBUTTONTEXT"] = "Sync With Guild"
+L["STRING_GUILDDAMAGERANK_TUTORIAL_DESC"] = "Details! store the damage and healing done for each boss encounter you run with your guild.\\n\\nBrowse the history by checking the box '|cFFFFFF00Show History|r', results for all fights will be displayed.\\n By selecting '|cFFFFFF00Show Guild Rank|r', the top scores for the selected boss is shown.\\n\\nIf you are using this tool for the first time or if you lost a day of raiding, click on the '|cFFFFFF00Sync With Guild|r' button."
+L["STRING_GUILDDAMAGERANK_WINDOWALERT"] = "Boss Defeated! Show Ranking"
+L["STRING_HEAL"] = "Heal"
+L["STRING_HEAL_ABSORBED"] = "Heal absorbed"
+L["STRING_HEAL_CRIT"] = "Heal Critical"
+L["STRING_HEALING_FROM"] = "Healing received from"
+L["STRING_HEALING_HPS_FROM"] = "HPS received from"
+L["STRING_HITS"] = "Hits"
+L["STRING_HPS"] = "HPS"
+L["STRING_IMAGEEDIT_ALPHA"] = "Transparency"
+L["STRING_IMAGEEDIT_CROPBOTTOM"] = "Crop Bottom"
+L["STRING_IMAGEEDIT_CROPLEFT"] = "Crop Left"
+L["STRING_IMAGEEDIT_CROPRIGHT"] = "Crop Right"
+L["STRING_IMAGEEDIT_CROPTOP"] = "Crop Top"
+L["STRING_IMAGEEDIT_DONE"] = "DONE"
+L["STRING_IMAGEEDIT_FLIPH"] = "Flip Horizontal"
+L["STRING_IMAGEEDIT_FLIPV"] = "Flip Vertical"
+L["STRING_INFO_TAB_AVOIDANCE"] = "Avoidance"
+L["STRING_INFO_TAB_COMPARISON"] = "Compare"
+L["STRING_INFO_TAB_SUMMARY"] = "Summary"
+L["STRING_INFO_TUTORIAL_COMPARISON1"] = "Click on |cFFFFDD00Compare|r tab to see the comparisons between players of the same class."
+L["STRING_INSTANCE_CHAT"] = "Instance Chat"
+L["STRING_INSTANCE_LIMIT"] = "max window amount has been reached, you can modify this limit on options panel. Also you can reopen closed windows from (#) window menu."
+L["STRING_INTERFACE_OPENOPTIONS"] = "Open Options Panel"
+L["STRING_ISA_PET"] = "This Actor is a Pet"
+L["STRING_KEYBIND_BOOKMARK"] = "Bookmark"
+L["STRING_KEYBIND_BOOKMARK_NUMBER"] = "Bookmark #%s"
+L["STRING_KEYBIND_RESET_SEGMENTS"] = "Reset Segments"
+L["STRING_KEYBIND_SCROLL_DOWN"] = "Scroll Down All Windows"
+L["STRING_KEYBIND_SCROLL_UP"] = "Scroll Up All Windows"
+L["STRING_KEYBIND_SCROLLING"] = "Scrolling"
+L["STRING_KEYBIND_SEGMENTCONTROL"] = "Segments"
+L["STRING_KEYBIND_TOGGLE_WINDOW"] = "Toggle Window #%s"
+L["STRING_KEYBIND_TOGGLE_WINDOWS"] = "Toggle All"
+L["STRING_KEYBIND_WINDOW_CONTROL"] = "Windows"
+L["STRING_KEYBIND_WINDOW_REPORT"] = "Report data shown on window #%s."
+L["STRING_KEYBIND_WINDOW_REPORT_HEADER"] = "Report Data"
+L["STRING_KILLED"] = "Killed"
+L["STRING_LAST_COOLDOWN"] = "last cooldown used"
+L["STRING_LEFT"] = "left"
+L["STRING_LEFT_CLICK_SHARE"] = "Left click to report."
+L["STRING_LEFT_TO_RIGHT"] = "Left to Right"
+L["STRING_LOCK_DESC"] = "Lock or unlock the window"
+L["STRING_LOCK_WINDOW"] = "lock"
+L["STRING_MASTERY"] = "Mastery"
+L["STRING_MAXIMUM"] = "Maximum"
+L["STRING_MAXIMUM_SHORT"] = "Max"
+L["STRING_MEDIA"] = "Media"
+L["STRING_MELEE"] = "Melee"
+L["STRING_MEMORY_ALERT_BUTTON"] = "I Understand"
+L["STRING_MEMORY_ALERT_TEXT1"] = "Details! uses a lot of memory, but, |cFFFF8800contrary to popular belief|r, memory usage by addons |cFFFF8800doesn't affect|r game performance or your FPS."
+L["STRING_MEMORY_ALERT_TEXT2"] = "So, if you see Details! using lots of memory, don't panic :D |cFFFF8800It's all fine!|r, A part of this memory is even |cFFFF8800used in caching|r to make the addon faster."
+L["STRING_MEMORY_ALERT_TEXT3"] = "However, if you wish to know |cFFFF8800which addons are 'heavier'|r or which are decreasing your FPS, install the addon: '|cFFFFFF00AddOns Cpu Usage|r'."
+L["STRING_MEMORY_ALERT_TITLE"] = "Please Read Carefully!"
+L["STRING_MENU_CLOSE_INSTANCE"] = "Close This Window"
+L["STRING_MENU_CLOSE_INSTANCE_DESC"] = "A closed window is considered inactive and can be reopened at any time using the window control menu."
+L["STRING_MENU_CLOSE_INSTANCE_DESC2"] = "To fully destroy a window, check out the miscellaneous section in the options panel."
+L["STRING_MENU_INSTANCE_CONTROL"] = "Window Control"
+L["STRING_MINIMAP_TOOLTIP1"] = "|cFFCFCFCFleft click|r: open options panel"
+L["STRING_MINIMAP_TOOLTIP11"] = "|cFFCFCFCFleft click|r: clear all segments"
+L["STRING_MINIMAP_TOOLTIP12"] = "|cFFCFCFCFleft click|r: show/hide windows"
+L["STRING_MINIMAP_TOOLTIP2"] = "|cFFCFCFCFright click|r: quick menu"
+L["STRING_MINIMAPMENU_CLOSEALL"] = "Close All"
+L["STRING_MINIMAPMENU_HIDEICON"] = "Hide Minimap Icon"
+L["STRING_MINIMAPMENU_LOCK"] = "Lock"
+L["STRING_MINIMAPMENU_NEWWINDOW"] = "Create New Window"
+L["STRING_MINIMAPMENU_REOPENALL"] = "Reopen All"
+L["STRING_MINIMAPMENU_UNLOCK"] = "Unlock"
+L["STRING_MINIMUM"] = "Minimum"
+L["STRING_MINIMUM_SHORT"] = "Min"
+L["STRING_MINITUTORIAL_BOOKMARK1"] = "Right click at any point over the window to open the bookmarks!"
+L["STRING_MINITUTORIAL_BOOKMARK2"] = "Bookmarks give quick access to favorite displays."
+L["STRING_MINITUTORIAL_BOOKMARK3"] = "Use right click to close the bookmark panel."
+L["STRING_MINITUTORIAL_BOOKMARK4"] = "Don't show this again."
+L["STRING_MINITUTORIAL_CLOSECTRL1"] = "|cFFFFFF00Ctrl + Right Click|r closes the window!"
+L["STRING_MINITUTORIAL_CLOSECTRL2"] = "If you want reopen it, go to Mode Menu -> Window Control or Option Panel."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL1"] = "Which window is being edited."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL2"] = "When checked, all windows in the group are also changed."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL3"] = [=[To create a group, drag window #2 near window #1.
+
+Break a group clicking on |cFFFFFF00ungroup|r button.]=]
+L["STRING_MINITUTORIAL_OPTIONS_PANEL4"] = "Test your configuration by creating test bars."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL5"] = "When Editing Group is enabled, all windows in a group are changed."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL6"] = "Select here to to choose and change window appearance."
+L["STRING_MINITUTORIAL_WINDOWS1"] = [=[You just created a group of windows.
+
+To break it, click on the padlock icon.]=]
+L["STRING_MINITUTORIAL_WINDOWS2"] = [=[The window has been locked.
+
+Click on title bar and drag it up to stretch.]=]
+L["STRING_MIRROR_IMAGE"] = "Mirror Image"
+L["STRING_MISS"] = "Miss"
+L["STRING_MODE_ALL"] = "Everything"
+L["STRING_MODE_GROUP"] = "Standard"
+L["STRING_MODE_OPENFORGE"] = "Spell List"
+L["STRING_MODE_PLUGINS"] = "plugins"
+L["STRING_MODE_RAID"] = "Plugins: Raid"
+L["STRING_MODE_SELF"] = "Plugins: Solo Play"
+L["STRING_MORE_INFO"] = "See right box for more info."
+L["STRING_MULTISTRIKE"] = "Multistrike"
+L["STRING_MULTISTRIKE_HITS"] = "Multistrike Hits"
+L["STRING_MUSIC_DETAILS_ROBERTOCARLOS"] = [=[There's no use trying to forget
+For a long time in your life I will live
+Details as small of us]=]
+L["STRING_NEWROW"] = "waiting for refresh..."
+L["STRING_NEWS_REINSTALL"] = "Found problems after a update? try '/details reinstall' command."
+L["STRING_NEWS_TITLE"] = "What's New In This Version"
+L["STRING_NO"] = "No"
+L["STRING_NO_DATA"] = "data already has been cleaned"
+L["STRING_NO_SPELL"] = "no spell has been used"
+L["STRING_NO_TARGET"] = "No target found."
+L["STRING_NO_TARGET_BOX"] = "No Targets Avaliable"
+L["STRING_NOCLOSED_INSTANCES"] = [=[There are no closed windows,
+click to open a new one.]=]
+L["STRING_NOLAST_COOLDOWN"] = "no cooldown used"
+L["STRING_NOMORE_INSTANCES"] = [=[Max amount of windows reached.
+Change the limit in options panel.]=]
+L["STRING_NORMAL_HITS"] = "Normal Hits"
+L["STRING_NUMERALSYSTEM"] = "Numeral System"
+L["STRING_NUMERALSYSTEM_ARABIC_MYRIAD_EASTASIA"] = "used by east Asian countries, separate into thousands and myriads."
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN"] = "Western"
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN_DESC"] = "most common way, separate into thousands and millions."
+L["STRING_NUMERALSYSTEM_DESC"] = "Select which numeral system to use"
+L["STRING_NUMERALSYSTEM_MYRIAD_EASTASIA"] = "East Asia"
+L["STRING_OFFHAND_HITS"] = "Off Hand"
+L["STRING_OPTIONS_3D_LALPHA_DESC"] = [=[Adjust the amount of transparency in the lower model.
+
+|cFFFFFF00Important|r: some models ignore the amount of transparency.]=]
+L["STRING_OPTIONS_3D_LANCHOR"] = "Lower 3D Model:"
+L["STRING_OPTIONS_3D_LENABLED_DESC"] = "Enabled or Disable the usage of a 3d model frame behind the bars."
+L["STRING_OPTIONS_3D_LSELECT_DESC"] = "Choose which model will be used on the lower model bar."
+L["STRING_OPTIONS_3D_SELECT"] = "Select Model"
+L["STRING_OPTIONS_3D_UALPHA_DESC"] = [=[Adjust the amount of transparency in the upper model.
+
+|cFFFFFF00Important|r: some models ignore the amount of transparency.]=]
+L["STRING_OPTIONS_3D_UANCHOR"] = "Upper 3D Model:"
+L["STRING_OPTIONS_3D_UENABLED_DESC"] = "Enabled or Disable the usage of a 3d model frame above the bars."
+L["STRING_OPTIONS_3D_USELECT_DESC"] = "Choose which model will be used on the upper model bar."
+L["STRING_OPTIONS_ADVANCED"] = "Advanced"
+L["STRING_OPTIONS_ALPHAMOD_ANCHOR"] = "Auto Hide:"
+L["STRING_OPTIONS_ALWAYS_USE"] = "Use On All Characters"
+L["STRING_OPTIONS_ALWAYS_USE_DESC"] = "The same profile is used on all characters. You may override this on any character by just selecting another existing profile."
+L["STRING_OPTIONS_ALWAYSSHOWPLAYERS"] = "Show Ungrouped Players"
+L["STRING_OPTIONS_ALWAYSSHOWPLAYERS_DESC"] = "When using the default Standard mode, show player characters even if they aren't in group with you."
+L["STRING_OPTIONS_ANCHOR"] = "Side"
+L["STRING_OPTIONS_ANIMATEBARS"] = "Animate Bars"
+L["STRING_OPTIONS_ANIMATEBARS_DESC"] = "Enable animations for all bars."
+L["STRING_OPTIONS_ANIMATESCROLL"] = "Animate Scroll Bar"
+L["STRING_OPTIONS_ANIMATESCROLL_DESC"] = "When enabled, scrollbar uses a animation when showing up or hiding."
+L["STRING_OPTIONS_APPEARANCE"] = "Appearance"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT"] = "Title Text Settings"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT_DESC"] = "These options control the title text of window."
+L["STRING_OPTIONS_AUTO_SWITCH"] = "All Roles |cFFFFAA00(in combat)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_COMBAT"] = "|cFFFFAA00(in combat)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_DAMAGER_DESC"] = "When in damager specialization, this window show the selected attribute or plugin."
+L["STRING_OPTIONS_AUTO_SWITCH_DESC"] = [=[When you enter into combat, this window show the selected attribute or plugin.
+
+|cFFFFFF00Important|r: The individual attribute chosen for each role overwrites the attribute selected here.]=]
+L["STRING_OPTIONS_AUTO_SWITCH_HEALER_DESC"] = "When in healer specialization, this window shows the selected attribute or plugin."
+L["STRING_OPTIONS_AUTO_SWITCH_TANK_DESC"] = "When in tank specialization, this window shows the selected attribute or plugin."
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE"] = "After Wipe"
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE_DESC"] = "After a fail attempt or defeat in a raid encounter, this window automatically shows this attribute."
+L["STRING_OPTIONS_AVATAR"] = "Choose Avatar"
+L["STRING_OPTIONS_AVATAR_ANCHOR"] = "Identity:"
+L["STRING_OPTIONS_AVATAR_DESC"] = "Avatars are also sent to guild members and shown on the top of tooltips and at the player details window."
+L["STRING_OPTIONS_BAR_BACKDROP_ANCHOR"] = "Border:"
+L["STRING_OPTIONS_BAR_BACKDROP_COLOR_DESC"] = "Changes the border color."
+L["STRING_OPTIONS_BAR_BACKDROP_ENABLED_DESC"] = "Enable or disable row borders."
+L["STRING_OPTIONS_BAR_BACKDROP_SIZE_DESC"] = "Adjust the border size."
+L["STRING_OPTIONS_BAR_BACKDROP_TEXTURE_DESC"] = "Changes the border appearance."
+L["STRING_OPTIONS_BAR_BCOLOR"] = "Background Color"
+L["STRING_OPTIONS_BAR_BTEXTURE_DESC"] = "This texture lies below the top texture and its size is always the same as the window width."
+L["STRING_OPTIONS_BAR_COLOR_DESC"] = [=[Color and Transparency for this texture.
+
+|cFFFFFF00Important|r: The color chosen is ignored when using class colors.]=]
+L["STRING_OPTIONS_BAR_COLORBYCLASS"] = "Color by Player Class"
+L["STRING_OPTIONS_BAR_COLORBYCLASS_DESC"] = "When enabled, this texture always uses the color of the player class."
+L["STRING_OPTIONS_BAR_FOLLOWING"] = "Always Show Me"
+L["STRING_OPTIONS_BAR_FOLLOWING_ANCHOR"] = "Player Bar:"
+L["STRING_OPTIONS_BAR_FOLLOWING_DESC"] = "When enabled, your bar will always be shown even when you aren't one of the top ranked players."
+L["STRING_OPTIONS_BAR_GROW"] = "Bar Growth Direction"
+L["STRING_OPTIONS_BAR_GROW_DESC"] = "Bars grow from the top or bottom of the window."
+L["STRING_OPTIONS_BAR_HEIGHT"] = "Bar Height"
+L["STRING_OPTIONS_BAR_HEIGHT_DESC"] = "Increase or decrease the bar height."
+L["STRING_OPTIONS_BAR_ICONFILE"] = "Icon File"
+L["STRING_OPTIONS_BAR_ICONFILE_DESC"] = [=[Path for a custom icon file.
+
+The image needs to be a .tga file, 256x256 pixels with alpha channel.]=]
+L["STRING_OPTIONS_BAR_ICONFILE_DESC2"] = "Select the icon pack to use."
+L["STRING_OPTIONS_BAR_ICONFILE1"] = "No Icon"
+L["STRING_OPTIONS_BAR_ICONFILE2"] = "Default"
+L["STRING_OPTIONS_BAR_ICONFILE3"] = "Default (black white)"
+L["STRING_OPTIONS_BAR_ICONFILE4"] = "Default (transparent)"
+L["STRING_OPTIONS_BAR_ICONFILE5"] = "Rounded Icons"
+L["STRING_OPTIONS_BAR_ICONFILE6"] = "Default (transparent black white)"
+L["STRING_OPTIONS_BAR_SPACING"] = "Spacing"
+L["STRING_OPTIONS_BAR_SPACING_DESC"] = "Gap size between each bar."
+L["STRING_OPTIONS_BAR_TEXTURE_DESC"] = "Texture used on the top of the bar."
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM"] = "Custom Text Enabled"
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM_DESC"] = "When enabled, left text is formated following the rules in the box."
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2"] = ""
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{data1}|r: generally represents the player position number.
+
+|cFFFFFF00{data2}|r: is always the player name.
+
+|cFFFFFF00{data3}|r: in some cases, this value represents the player's faction or role icon.
+
+|cFFFFFF00{func}|r: runs a customized Lua function adding its return value to the text.
+Example:
+{func return 'hello azeroth'}
+
+|cFFFFFF00Escape Sequences|r: use to change color or add textures. Search 'UI escape sequences' for more information.]=]
+L["STRING_OPTIONS_BARORIENTATION"] = "Bar Orientation"
+L["STRING_OPTIONS_BARORIENTATION_DESC"] = "Direction which the bars are filled in."
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM"] = "Custom Text Enabled"
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM_DESC"] = "When enabled, right text is formated following the rules in the box."
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2"] = ""
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{data1}|r: is the first number passed, generally this number represents the total done.
+
+|cFFFFFF00{data2}|r: is the second number passed, most of the time represents the per second average.
+
+|cFFFFFF00{data3}|r: third number passed, normally is the percentage.
+
+|cFFFFFF00{func}|r: runs a customized Lua function adding its return value to the text.
+Example:
+{func return 'hello azeroth'}
+
+|cFFFFFF00Escape Sequences|r: use to change color or add textures. Search 'UI escape sequences' for more information.]=]
+L["STRING_OPTIONS_BARS"] = "General Bar Settings"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE"] = "Custom Texture File"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE_DESC"] = [=[
+
+|cFFFFFF00Important|r: the image must be 256x32 pixels.]=]
+L["STRING_OPTIONS_BARS_DESC"] = "These options control the bar appearance."
+L["STRING_OPTIONS_BARSORT"] = "Bar Rank Sort Order"
+L["STRING_OPTIONS_BARSORT_DESC"] = "Sort bars on descending or ascending order."
+L["STRING_OPTIONS_BARSTART"] = "Bar Start After Icon"
+L["STRING_OPTIONS_BARSTART_DESC"] = [=[When disabled the top texture starts at the icon left side instead of the right
+
+This is useful when using an icon pack with transparent areas.]=]
+L["STRING_OPTIONS_BARUR_ANCHOR"] = "Fast Updates:"
+L["STRING_OPTIONS_BARUR_DESC"] = "When enabled, DPS and HPS values are updated just a little bit faster than usual."
+L["STRING_OPTIONS_BG_ALL_ALLY"] = "Show All"
+L["STRING_OPTIONS_BG_ALL_ALLY_DESC"] = [=[When enabled, enemy players are also shown when the window is in Group Mode.
+
+|cFFFFFF00Important|r: changes are applied after the next time entering combat.]=]
+L["STRING_OPTIONS_BG_ANCHOR"] = "Battlegrounds:"
+L["STRING_OPTIONS_BG_UNIQUE_SEGMENT"] = "Unique Segment"
+L["STRING_OPTIONS_BG_UNIQUE_SEGMENT_DESC"] = "One segment is created on the begining of the battleground and last until it ends."
+L["STRING_OPTIONS_CAURAS"] = "Collect Auras"
+L["STRING_OPTIONS_CAURAS_DESC"] = [=[Enable capture of:
+
+- |cFFFFFF00Buffs Uptime|r
+- |cFFFFFF00Debuffs Uptime|r
+- |cFFFFFF00Void Zones|r
+-|cFFFFFF00 Cooldowns|r]=]
+L["STRING_OPTIONS_CDAMAGE"] = "Collect Damage"
+L["STRING_OPTIONS_CDAMAGE_DESC"] = [=[Enable capture of:
+
+- |cFFFFFF00Damage Done|r
+- |cFFFFFF00Damage Per Second|r
+- |cFFFFFF00Friendly Fire|r
+- |cFFFFFF00Damage Taken|r]=]
+L["STRING_OPTIONS_CENERGY"] = "Collect Energy"
+L["STRING_OPTIONS_CENERGY_DESC"] = [=[Enable capture of:
+
+- |cFFFFFF00Mana Restored|r
+- |cFFFFFF00Rage Generated|r
+- |cFFFFFF00Energy Generated|r
+- |cFFFFFF00Runic Power Generated|r]=]
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS"] = "Modify Class Colors"
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS_DESC"] = "Select new colors for classes."
+L["STRING_OPTIONS_CHANGECOLOR"] = "Change Color"
+L["STRING_OPTIONS_CHANGELOG"] = "Version Notes"
+L["STRING_OPTIONS_CHART_ADD"] = "Add Data"
+L["STRING_OPTIONS_CHART_ADD2"] = "Add"
+L["STRING_OPTIONS_CHART_ADDAUTHOR"] = "Author: "
+L["STRING_OPTIONS_CHART_ADDCODE"] = "Code: "
+L["STRING_OPTIONS_CHART_ADDICON"] = "Icon: "
+L["STRING_OPTIONS_CHART_ADDNAME"] = "Name: "
+L["STRING_OPTIONS_CHART_ADDVERSION"] = "Version: "
+L["STRING_OPTIONS_CHART_AUTHOR"] = "Author"
+L["STRING_OPTIONS_CHART_AUTHORERROR"] = "Author name is invalid."
+L["STRING_OPTIONS_CHART_CANCEL"] = "Cancel"
+L["STRING_OPTIONS_CHART_CLOSE"] = "Close"
+L["STRING_OPTIONS_CHART_CODELOADED"] = "The code is already loaded and cannot be displayed."
+L["STRING_OPTIONS_CHART_EDIT"] = "Edit Code"
+L["STRING_OPTIONS_CHART_EXPORT"] = "Export"
+L["STRING_OPTIONS_CHART_FUNCERROR"] = "Function is invalid."
+L["STRING_OPTIONS_CHART_ICON"] = "Icon"
+L["STRING_OPTIONS_CHART_IMPORT"] = "Import"
+L["STRING_OPTIONS_CHART_IMPORTERROR"] = "The import string is invalid."
+L["STRING_OPTIONS_CHART_NAME"] = "Name"
+L["STRING_OPTIONS_CHART_NAMEERROR"] = "The name is invalid."
+L["STRING_OPTIONS_CHART_PLUGINWARNING"] = "Install Chart Viewer Plugin for display custom charts."
+L["STRING_OPTIONS_CHART_REMOVE"] = "Remove"
+L["STRING_OPTIONS_CHART_SAVE"] = "Save"
+L["STRING_OPTIONS_CHART_VERSION"] = "Version"
+L["STRING_OPTIONS_CHART_VERSIONERROR"] = "Version is invalid."
+L["STRING_OPTIONS_CHEAL"] = "Collect Heal"
+L["STRING_OPTIONS_CHEAL_DESC"] = [=[Enable capture of:
+
+- |cFFFFFF00Healing Done|r
+- |cFFFFFF00Absorbs|r
+- |cFFFFFF00Healing Per Second|r
+- |cFFFFFF00Overhealing|r
+- |cFFFFFF00Healing Taken|r
+- |cFFFFFF00Enemy Healed|r
+- |cFFFFFF00Damage Prevented|r]=]
+L["STRING_OPTIONS_CLASSCOLOR_MODIFY"] = "Modify Class Colors"
+L["STRING_OPTIONS_CLASSCOLOR_RESET"] = "Right Click to Reset"
+L["STRING_OPTIONS_CLEANUP"] = "Auto Erase Trash Segments"
+L["STRING_OPTIONS_CLEANUP_DESC"] = "When enabled, trash cleanup segments are removed automatically after two other segments."
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS"] = "Click to Open Menus"
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS_DESC"] = [=[Title bar buttons won't show their menus when hovering over them.
+
+Instead, you need to click them to open.]=]
+L["STRING_OPTIONS_CLOUD"] = "Cloud Capture"
+L["STRING_OPTIONS_CLOUD_DESC"] = "When enabled, the data of disabled collectors are collected among others raid members."
+L["STRING_OPTIONS_CMISC"] = "Collect Misc"
+L["STRING_OPTIONS_CMISC_DESC"] = [=[Enable capture of:
+
+- |cFFFFFF00Crowd Control Break|r
+- |cFFFFFF00Dispells|r
+- |cFFFFFF00Interrupts|r
+- |cFFFFFF00Resurrection|r
+- |cFFFFFF00Deaths|r]=]
+L["STRING_OPTIONS_COLORANDALPHA"] = "Color & Alpha"
+L["STRING_OPTIONS_COLORFIXED"] = "Fixed Color"
+L["STRING_OPTIONS_COMBAT_ALPHA"] = "When"
+L["STRING_OPTIONS_COMBAT_ALPHA_1"] = "None"
+L["STRING_OPTIONS_COMBAT_ALPHA_2"] = "While In Combat"
+L["STRING_OPTIONS_COMBAT_ALPHA_3"] = "While Out of Combat"
+L["STRING_OPTIONS_COMBAT_ALPHA_4"] = "While Not in a Group"
+L["STRING_OPTIONS_COMBAT_ALPHA_5"] = "While Not Inside Instance"
+L["STRING_OPTIONS_COMBAT_ALPHA_6"] = "While Inside Instance"
+L["STRING_OPTIONS_COMBAT_ALPHA_7"] = "Raid Debug"
+L["STRING_OPTIONS_COMBAT_ALPHA_DESC"] = [=[Select how combat affects the window transparency.
+
+|cFFFFFF00No Changes|r: Doesn't modify the alpha.
+
+|cFFFFFF00While In Combat|r: When your character enters combat, the alpha chosen is applied to the window.
+
+|cFFFFFF00While Out of Combat|r: The alpha is applied whenever your character isn't in combat.
+
+|cFFFFFF00While Not in a Group|r: When you aren't in party or a raid group, the window assumes the selected alpha.
+
+|cFFFFFF00Important|r: This option overwrites the alpha determined by Auto Transparency feature.]=]
+L["STRING_OPTIONS_COMBATTWEEKS"] = "Combat Tweaks"
+L["STRING_OPTIONS_COMBATTWEEKS_DESC"] = "Behavioral adjustments on how Details! deal with some combat aspects."
+L["STRING_OPTIONS_CONFIRM_ERASE"] = "Do you want to erase data?"
+L["STRING_OPTIONS_CUSTOMSPELL_ADD"] = "Add Spell"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE"] = "Edit Spell Settings"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE_DESC"] = "This panel alows you modify the name and icon of spells."
+L["STRING_OPTIONS_DATABROKER"] = "Data Broker:"
+L["STRING_OPTIONS_DATABROKER_TEXT"] = "Text"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD1"] = "Player Damage Done"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD2"] = "Player Effective Dps"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD3"] = "Damage Position"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD4"] = "Damage Difference"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD5"] = "Player Healing Done"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD6"] = "Player Effective HPS"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD7"] = "Healing Position"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD8"] = "Healing Difference"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD9"] = "Elapsed Combat Time"
+L["STRING_OPTIONS_DATABROKER_TEXT1_DESC"] = [=[|cFFFFFF00{dmg}|r: player damage done.
+
+|cFFFFFF00{dps}|r: player effective damage per second.
+
+|cFFFFFF00{rdps}|r: raid effective damage per second.
+
+|cFFFFFF00{dpos}|r: rank position between members of the raid or party group damage.
+
+|cFFFFFF00{ddiff}|r: damage difference between you and the first place position.
+
+|cFFFFFF00{heal}|r: player healing done.
+
+|cFFFFFF00{hps}|r: player effective healing per second.
+
+|cFFFFFF00{rhps}|r: raid effective healing per second.
+
+|cFFFFFF00{hpos}|r: rank position between members of the raid or party group healing.
+
+|cFFFFFF00{hdiff}|r: healing difference between you and the first place.
+
+|cFFFFFF00{time}|r: fight elapsed time.]=]
+L["STRING_OPTIONS_DATACHARTTITLE"] = "Create Timed Data for Charts"
+L["STRING_OPTIONS_DATACHARTTITLE_DESC"] = "This panel alows you to create customized data capture for charts creation."
+L["STRING_OPTIONS_DATACOLLECT_ANCHOR"] = "Data Types:"
+L["STRING_OPTIONS_DEATHLIMIT"] = "Death Events Amount"
+L["STRING_OPTIONS_DEATHLIMIT_DESC"] = [=[Set the amount of events to show on death display.
+
+|cFFFFFF00Important|r: only applies to new deaths after change.]=]
+L["STRING_OPTIONS_DEATHLOG_MINHEALING"] = "Death Log Minimum Healing"
+L["STRING_OPTIONS_DEATHLOG_MINHEALING_DESC"] = [=[Death log won't show heals below this threshold.
+
+|cFFFFFF00Tip|r: right click to manually enter the value.]=]
+L["STRING_OPTIONS_DESATURATE_MENU"] = "Desaturated"
+L["STRING_OPTIONS_DESATURATE_MENU_DESC"] = "Enabling this option, all menu icons on toolbar become black and white."
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW"] = "Disable 'All Displays' Menu"
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW_DESC"] = "If enabled, right clicking on title bar shows your bookmark instead."
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT"] = "Disable Bar Highlight"
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT_DESC"] = "Hovering over a bar won't make it brighter."
+L["STRING_OPTIONS_DISABLE_GROUPS"] = "Disable Grouping"
+L["STRING_OPTIONS_DISABLE_GROUPS_DESC"] = "Windows won't make groups anymore when placed near each other."
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE"] = "Disable Resize Buttons"
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE_DESC"] = "Resize, lock/unlock and ungroup buttons won't show up when you hover over a window."
+L["STRING_OPTIONS_DISABLE_RESET"] = "Disable Reset Button Click"
+L["STRING_OPTIONS_DISABLE_RESET_DESC"] = "When enabled, clicking on reset button won't work, must select to reset data from its tooltip menu."
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON"] = "Disable Stretch Button"
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON_DESC"] = "Stretch button won't be shown when this option is enabled."
+L["STRING_OPTIONS_DISABLED_RESET"] = "Reset through this button is currently disabled, select it on the tooltip menu."
+L["STRING_OPTIONS_DTAKEN_EVERYTHING"] = "Advanced Damage Taken"
+L["STRING_OPTIONS_DTAKEN_EVERYTHING_DESC"] = "Damage taken is always shown in '|cFFFFFF00Everything|r' Mode."
+L["STRING_OPTIONS_ED"] = "Erase Data"
+L["STRING_OPTIONS_ED_DESC"] = [=[|cFFFFFF00Manually|r: the user needs to click on the reset button.
+
+|cFFFFFF00Prompt|r: ask to reset on entering a new instance.
+
+|cFFFFFF00Auto|r: clear data after entering a new instance.]=]
+L["STRING_OPTIONS_ED1"] = "Manually"
+L["STRING_OPTIONS_ED2"] = "Prompt"
+L["STRING_OPTIONS_ED3"] = "Auto"
+L["STRING_OPTIONS_EDITIMAGE"] = "Edit Image"
+L["STRING_OPTIONS_EDITINSTANCE"] = "Editing Window:"
+L["STRING_OPTIONS_ERASECHARTDATA"] = "Erase Charts"
+L["STRING_OPTIONS_ERASECHARTDATA_DESC"] = "During logout, all combat data gathered to create charts is erased."
+L["STRING_OPTIONS_EXTERNALS_TITLE"] = "Externals Widgets"
+L["STRING_OPTIONS_EXTERNALS_TITLE2"] = "These options control the behavior of many foreign widgets."
+L["STRING_OPTIONS_GENERAL"] = "General Settings"
+L["STRING_OPTIONS_GENERAL_ANCHOR"] = "General:"
+L["STRING_OPTIONS_HIDE_ICON"] = "Hide Icon"
+L["STRING_OPTIONS_HIDE_ICON_DESC"] = [=[When enabled, the icon representing the selected display isn't shown.
+
+|cFFFFFF00Important|r: after enabling the icon, it's recommended to adjust the title text placement.]=]
+L["STRING_OPTIONS_HIDECOMBATALPHA_DESC"] = [=[Changes the transparency to this value when your character matches with the chosen rule.
+
+|cFFFFFF00Zero|r: fully hidden, can't interact within the window.
+
+|cFFFFFF001 - 100|r: not hidden, only the transparency is changed, you can interact with the window.]=]
+L["STRING_OPTIONS_HOTCORNER"] = "Show button"
+L["STRING_OPTIONS_HOTCORNER_ACTION"] = "On Click"
+L["STRING_OPTIONS_HOTCORNER_ACTION_DESC"] = "Select what to do when the button on the Hotcorner bar is clicked with the left mouse button."
+L["STRING_OPTIONS_HOTCORNER_ANCHOR"] = "Hotcorner:"
+L["STRING_OPTIONS_HOTCORNER_DESC"] = "Show or hide the button over Hotcorner panel."
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK"] = "Enable Quick Click"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_DESC"] = [=[Enable oe disable the Quick Click feature for Hotcorners.
+
+Quick button is localized at the furthest top left pixel, moving your mouse all the way to there, activates the top left hot corner and if clicked, an action is performed.]=]
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC"] = "Quick Click On Click"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC_DESC"] = "Select what to do when the Quick Click button on Hotcorner is clicked."
+L["STRING_OPTIONS_IGNORENICKNAME"] = "Ignore Nicknames and Avatars"
+L["STRING_OPTIONS_IGNORENICKNAME_DESC"] = "When enabled, nicknames and avatars set by other guild members are ignored."
+L["STRING_OPTIONS_ILVL_TRACKER"] = "Item Level Tracker:"
+L["STRING_OPTIONS_ILVL_TRACKER_DESC"] = [=[When enabled and out of combat, the addon queries and tracks the item level of players in the raid.
+
+If disabled, it still reads item level from queries of other addons or when you manually inspect another player.]=]
+L["STRING_OPTIONS_ILVL_TRACKER_TEXT"] = "Enabled"
+L["STRING_OPTIONS_INSTANCE_ALPHA2"] = "Background Color"
+L["STRING_OPTIONS_INSTANCE_ALPHA2_DESC"] = "This option lets you change the color of the window background."
+L["STRING_OPTIONS_INSTANCE_BACKDROP"] = "Background Texture"
+L["STRING_OPTIONS_INSTANCE_BACKDROP_DESC"] = [=[Select the background texture used by this window.
+
+|cFFFFFF00Default|r: Details Background.]=]
+L["STRING_OPTIONS_INSTANCE_COLOR"] = "Window Color"
+L["STRING_OPTIONS_INSTANCE_COLOR_DESC"] = [=[Change the color and alpha of this window.
+
+|cFFFFFF00Important|r: the alpha chosen here is overwritten with |cFFFFFF00Auto Transparency|r values when enabled.
+
+|cFFFFFF00Important|r: selecting the window color overwrites any color customization over the statusbar.]=]
+L["STRING_OPTIONS_INSTANCE_CURRENT"] = "Auto Switch To Current"
+L["STRING_OPTIONS_INSTANCE_CURRENT_DESC"] = "Whenever a combat starts, this window automatically switches to current segment."
+L["STRING_OPTIONS_INSTANCE_DELETE"] = "Delete"
+L["STRING_OPTIONS_INSTANCE_DELETE_DESC"] = [=[Remove a window permanently.
+Your game screen may reload during the erase process.]=]
+L["STRING_OPTIONS_INSTANCE_SKIN"] = "Skin"
+L["STRING_OPTIONS_INSTANCE_SKIN_DESC"] = "Modify window appearance based on a skin theme."
+L["STRING_OPTIONS_INSTANCE_STATUSBAR_ANCHOR"] = "Statusbar:"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR"] = "Color and Transparency"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR_DESC"] = [=[Select the color used by the statusbar.
+
+|cFFFFFF00Important|r: this option overwrites the color and transparency chosen over Window Color.]=]
+L["STRING_OPTIONS_INSTANCE_STRATA"] = "Layer Strata"
+L["STRING_OPTIONS_INSTANCE_STRATA_DESC"] = [=[Selects the layer height that the frame will be placed on.
+
+Low layer is the default and makes the window stay behind most other interface panels.
+
+Using high layer the window might stay in front of the other major panels.
+
+When changing the layer height you may find some conflicts with other panels overlapping each other.]=]
+L["STRING_OPTIONS_INSTANCES"] = "Windows:"
+L["STRING_OPTIONS_INTERFACEDIT"] = "Interface Edit Mode"
+L["STRING_OPTIONS_LEFT_MENU_ANCHOR"] = "Menu Settings:"
+L["STRING_OPTIONS_LOCKSEGMENTS"] = "Segments Locked"
+L["STRING_OPTIONS_LOCKSEGMENTS_DESC"] = "When enabled, changing the segment makes all other windows also switch to the selected section."
+L["STRING_OPTIONS_MANAGE_BOOKMARKS"] = "Manage Bookmarks"
+L["STRING_OPTIONS_MAXINSTANCES"] = "Window Amount"
+L["STRING_OPTIONS_MAXINSTANCES_DESC"] = [=[Limit the amount of windows that can be created.
+
+You may manage your windows through Window Control menu.]=]
+L["STRING_OPTIONS_MAXSEGMENTS"] = "Segments Amount"
+L["STRING_OPTIONS_MAXSEGMENTS_DESC"] = "Controls how many segments you want to maintain."
+L["STRING_OPTIONS_MENU_ALPHA"] = "Mouse Interaction:"
+L["STRING_OPTIONS_MENU_ALPHAENABLED_DESC"] = [=[When enabled, the transparency changes automatically when you hover and leave the window.
+
+|cFFFFFF00Important|r: This settings overwrites the alpha selected on Window Color option under Window Settings section.]=]
+L["STRING_OPTIONS_MENU_ALPHAENTER"] = "On Hover Over"
+L["STRING_OPTIONS_MENU_ALPHAENTER_DESC"] = "When you have the mouse over the window, the transparency changes to this value."
+L["STRING_OPTIONS_MENU_ALPHALEAVE"] = "No Interaction"
+L["STRING_OPTIONS_MENU_ALPHALEAVE_DESC"] = "When you don't have the mouse over the window, the transparency changes to this value."
+L["STRING_OPTIONS_MENU_ALPHAWARNING"] = "Mouse Interaction is enabled, alpha may not be affected."
+L["STRING_OPTIONS_MENU_ANCHOR"] = "Buttons Attach on Right"
+L["STRING_OPTIONS_MENU_ANCHOR_DESC"] = "When checked, buttons are attached to the right side of the window."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX"] = "Position X"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX_DESC"] = "Adjust the attribute text location on the X axis."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY"] = "Position Y"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY_DESC"] = "Adjust the attribute text location on the Y axis."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENABLED_DESC"] = "Active shows the display name currently shown in the window."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER"] = "Encounter Timer"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER_DESC"] = "When enabled, a stopwatch is shown on the left side of the text."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT"] = ""--]]
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT_DESC"] = "Select the text font for attribute text."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SHADOW_DESC"] = "Enable or disable the shadow on the text."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE"] = "Attach to Top Side"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE_DESC"] = "Choose where the text is anchored."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR"] = "Text Color"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR_DESC"] = "Change the attribute text color."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE"] = ""--]]
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE_DESC"] = "Adjust the size of attribute text."
+L["STRING_OPTIONS_MENU_ATTRIBUTESETTINGS_ANCHOR"] = "Settings:"
+L["STRING_OPTIONS_MENU_AUTOHIDE_DESC"] = "Hide buttons automatically when the mouse leaves the window and shows up when you back to interact within the window again."
+L["STRING_OPTIONS_MENU_AUTOHIDE_LEFT"] = "Auto Hide Buttons"
+L["STRING_OPTIONS_MENU_BUTTONSSIZE_DESC"] = "Choose the buttons size. This also modify the buttons added by plugins."
+L["STRING_OPTIONS_MENU_FONT_FACE"] = "Menus Text Font"
+L["STRING_OPTIONS_MENU_FONT_FACE_DESC"] = "Modify the font used on all menus."
+L["STRING_OPTIONS_MENU_FONT_SIZE"] = "Menus Text Size"
+L["STRING_OPTIONS_MENU_FONT_SIZE_DESC"] = "Modify the font size on all menus."
+L["STRING_OPTIONS_MENU_IGNOREBARS"] = "Ignore Bars"
+L["STRING_OPTIONS_MENU_IGNOREBARS_DESC"] = "When enabled, all rows on this window aren't affected by this mechanism."
+L["STRING_OPTIONS_MENU_SHOWBUTTONS"] = "Show Buttons"
+L["STRING_OPTIONS_MENU_SHOWBUTTONS_DESC"] = "Choose which buttons are shown on title bar."
+L["STRING_OPTIONS_MENU_X"] = "Position X"
+L["STRING_OPTIONS_MENU_X_DESC"] = "Changes the X axis position."
+L["STRING_OPTIONS_MENU_Y"] = "Position Y"
+L["STRING_OPTIONS_MENU_Y_DESC"] = "Changes the Y axis position"
+L["STRING_OPTIONS_MENUS_SHADOW"] = "Shadow"
+L["STRING_OPTIONS_MENUS_SHADOW_DESC"] = "Adds a thin shadow border on all buttons."
+L["STRING_OPTIONS_MENUS_SPACEMENT"] = "Spacing"
+L["STRING_OPTIONS_MENUS_SPACEMENT_DESC"] = "Controls how much distance the buttons have between each other."
+L["STRING_OPTIONS_MICRODISPLAY_ANCHOR"] = "Micro Displays:"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK"] = "Lock Micro Displays"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK_DESC"] = "When locked, they won't interact with mouse over and clicks."
+L["STRING_OPTIONS_MICRODISPLAYS_DROPDOWN_TOOLTIP"] = "Select the micro display you want to show on this side."
+L["STRING_OPTIONS_MICRODISPLAYS_OPTION_TOOLTIP"] = "Set the config for this micro display."
+L["STRING_OPTIONS_MICRODISPLAYS_SHOWHIDE_TOOLTIP"] = "Show or Hide this Micro Display"
+L["STRING_OPTIONS_MICRODISPLAYS_WARNING"] = [=[|cFFFFFF00Note|r: micro displays can't be shown because
+they are anchored on bottom
+side and the statusbar is disabled.]=]
+L["STRING_OPTIONS_MICRODISPLAYSSIDE"] = "Micro Displays on Top Side"
+L["STRING_OPTIONS_MICRODISPLAYSSIDE_DESC"] = "Place the micro displays on the top of the window or on the bottom side."
+L["STRING_OPTIONS_MICRODISPLAYWARNING"] = "Micro displays isn't shown because statusbar is disabled."
+L["STRING_OPTIONS_MINIMAP"] = "Show Icon"
+L["STRING_OPTIONS_MINIMAP_ACTION"] = "On Click"
+L["STRING_OPTIONS_MINIMAP_ACTION_DESC"] = "Select what to do when the icon on the minimap is clicked with the left mouse button."
+L["STRING_OPTIONS_MINIMAP_ACTION1"] = "Open Options Panel"
+L["STRING_OPTIONS_MINIMAP_ACTION2"] = "Reset Segments"
+L["STRING_OPTIONS_MINIMAP_ACTION3"] = "Show/Hide Windows"
+L["STRING_OPTIONS_MINIMAP_ANCHOR"] = "Minimap:"
+L["STRING_OPTIONS_MINIMAP_DESC"] = "Show or Hide minimap icon."
+L["STRING_OPTIONS_MISCTITLE"] = "Miscellaneous Settings"
+L["STRING_OPTIONS_MISCTITLE2"] = "These control several options."
+L["STRING_OPTIONS_NICKNAME"] = "Nickname"
+L["STRING_OPTIONS_NICKNAME_DESC"] = [=[Set a nickname for you.
+
+Nicknames are sent to guild members and Details! uses it instead of your character name.]=]
+L["STRING_OPTIONS_OPEN_ROWTEXT_EDITOR"] = "Row Text Editor"
+L["STRING_OPTIONS_OPEN_TEXT_EDITOR"] = "Open Text Editor"
+L["STRING_OPTIONS_OVERALL_ALL"] = "All Segments"
+L["STRING_OPTIONS_OVERALL_ALL_DESC"] = "All segments are added to overall data."
+L["STRING_OPTIONS_OVERALL_ANCHOR"] = "Overall Data:"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS"] = "Dungeon Bosses"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS_DESC"] = "Segments with dungeon bosses are added to overall data."
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN"] = "Dungeon Trash"
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN_DESC"] = "Segments with dungeon trash mobs cleanup are added to overall data."
+L["STRING_OPTIONS_OVERALL_LOGOFF"] = "Clear On Logoff"
+L["STRING_OPTIONS_OVERALL_LOGOFF_DESC"] = "When enabled, overall data is automatically wiped when you logoff the character."
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS"] = "Clear On Start Mythic+"
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS_DESC"] = "When enabled, overall data is automatically wiped when a new mythic+ run begins."
+L["STRING_OPTIONS_OVERALL_NEWBOSS"] = "Clear On New Raid Boss"
+L["STRING_OPTIONS_OVERALL_NEWBOSS_DESC"] = "When enabled, overall data is automatically wiped when facing a different raid boss."
+L["STRING_OPTIONS_OVERALL_RAIDBOSS"] = "Raid Bosses"
+L["STRING_OPTIONS_OVERALL_RAIDBOSS_DESC"] = "Segments with raid encounters are added to overall data."
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN"] = "Raid Trash"
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN_DESC"] = "Segments with raid trash mobs cleanup are added to overall data."
+L["STRING_OPTIONS_PANIMODE"] = "Panic Mode"
+L["STRING_OPTIONS_PANIMODE_DESC"] = "When enabled and you get dropped from the game (by a disconnect, for instance) and you are fighting against a boss encounter, all segments are erased, this make your logoff process faster."
+L["STRING_OPTIONS_PDW_ANCHOR"] = "Panels:"
+L["STRING_OPTIONS_PDW_SKIN_DESC"] = [=[Skin to be used on Player Detail Window, Report Window and Options Panel.
+Some changes require /reload.]=]
+L["STRING_OPTIONS_PERCENT_TYPE"] = "Percentage Type"
+L["STRING_OPTIONS_PERCENT_TYPE_DESC"] = [=[Changes the percentage method:
+
+|cFFFFFF00Relative Total|r: the percentage shows the active fraction of the total amount made by all raid members.
+
+|cFFFFFF00Relative Top Player|r: the percentage is relative within the amount of the score of the top player.]=]
+L["STRING_OPTIONS_PERFORMANCE"] = "Performance"
+L["STRING_OPTIONS_PERFORMANCE_ANCHOR"] = "General:"
+L["STRING_OPTIONS_PERFORMANCE_ARENA"] = "Arena"
+L["STRING_OPTIONS_PERFORMANCE_BG15"] = "Battleground 15"
+L["STRING_OPTIONS_PERFORMANCE_BG40"] = "Battleground 40"
+L["STRING_OPTIONS_PERFORMANCE_DUNGEON"] = "Dungeon"
+L["STRING_OPTIONS_PERFORMANCE_ENABLE_DESC"] = "If enabled, this settings is applied when your raid matches with the raid type selected."
+L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD"] = "Auto Erase World Segments"
+L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD_DESC"] = "Auto erase segments when in combat outdoors."
+L["STRING_OPTIONS_PERFORMANCE_MYTHIC"] = "Mythic"
+L["STRING_OPTIONS_PERFORMANCE_PROFILE_LOAD"] = "Performance Profile Changed: "
+L["STRING_OPTIONS_PERFORMANCE_RAID15"] = "Raid 10-15"
+L["STRING_OPTIONS_PERFORMANCE_RAID30"] = "Raid 16-30"
+L["STRING_OPTIONS_PERFORMANCE_RF"] = "Raid Finder"
+L["STRING_OPTIONS_PERFORMANCE_TYPES"] = "Type"
+L["STRING_OPTIONS_PERFORMANCE_TYPES_DESC"] = "This is the type of raid where different options can automatically change."
+L["STRING_OPTIONS_PERFORMANCE1"] = "Performance Tweaks"
+L["STRING_OPTIONS_PERFORMANCE1_DESC"] = "These options can help save some cpu usage."
+L["STRING_OPTIONS_PERFORMANCECAPTURES"] = "Data Collector"
+L["STRING_OPTIONS_PERFORMANCECAPTURES_DESC"] = "These options are responsible for analysis and collection of combat data."
+L["STRING_OPTIONS_PERFORMANCEPROFILES_ANCHOR"] = "Performance Profiles:"
+L["STRING_OPTIONS_PICONS_DIRECTION"] = "Plugins Attach on Right"
+L["STRING_OPTIONS_PICONS_DIRECTION_DESC"] = "When checked, plugin buttons are shown on right side of the menu buttons."
+L["STRING_OPTIONS_PLUGINS"] = "Plugins"
+L["STRING_OPTIONS_PLUGINS_AUTHOR"] = "Author"
+L["STRING_OPTIONS_PLUGINS_NAME"] = "Name"
+L["STRING_OPTIONS_PLUGINS_OPTIONS"] = "Options"
+L["STRING_OPTIONS_PLUGINS_RAID_ANCHOR"] = "Raid Plugins"
+L["STRING_OPTIONS_PLUGINS_SOLO_ANCHOR"] = "Solo Plugins"
+L["STRING_OPTIONS_PLUGINS_TOOLBAR_ANCHOR"] = "Toolbar Plugins"
+L["STRING_OPTIONS_PLUGINS_VERSION"] = "Version"
+L["STRING_OPTIONS_PRESETNONAME"] = "Give a name to your preset."
+L["STRING_OPTIONS_PRESETTOOLD"] = "This preset is too old and cannot be loaded with this version of Details!."
+L["STRING_OPTIONS_PROFILE_COPYOKEY"] = "Profile successful copied."
+L["STRING_OPTIONS_PROFILE_FIELDEMPTY"] = "Name field is empty."
+L["STRING_OPTIONS_PROFILE_GLOBAL"] = "Select the profile to use on all characters."
+L["STRING_OPTIONS_PROFILE_LOADED"] = "Profile loaded:"
+L["STRING_OPTIONS_PROFILE_NOTCREATED"] = "Profile not created."
+L["STRING_OPTIONS_PROFILE_OVERWRITTEN"] = "you have selected a specific profile for this character"
+L["STRING_OPTIONS_PROFILE_POSSIZE"] = "Save Size and Position"
+L["STRING_OPTIONS_PROFILE_POSSIZE_DESC"] = "Save the window's positioning and size within the profile. When disabled each character has its own values."
+L["STRING_OPTIONS_PROFILE_REMOVEOKEY"] = "Profile successful removed."
+L["STRING_OPTIONS_PROFILE_SELECT"] = "select a profile."
+L["STRING_OPTIONS_PROFILE_SELECTEXISTING"] = "Select an existing profile or continue using a new one for this character:"
+L["STRING_OPTIONS_PROFILE_USENEW"] = "Use New Profile"
+L["STRING_OPTIONS_PROFILES_ANCHOR"] = "Settings:"
+L["STRING_OPTIONS_PROFILES_COPY"] = "Copy Profile From"
+L["STRING_OPTIONS_PROFILES_COPY_DESC"] = "Copy all settings from the selected profile to current profile overwriting all values."
+L["STRING_OPTIONS_PROFILES_CREATE"] = "Create Profile"
+L["STRING_OPTIONS_PROFILES_CREATE_DESC"] = "Create a new profile."
+L["STRING_OPTIONS_PROFILES_CURRENT"] = "Current Profile:"
+L["STRING_OPTIONS_PROFILES_CURRENT_DESC"] = "This is the name of the current actived profile."
+L["STRING_OPTIONS_PROFILES_ERASE"] = "Remove Profile"
+L["STRING_OPTIONS_PROFILES_ERASE_DESC"] = "Remove the selected profile."
+L["STRING_OPTIONS_PROFILES_RESET"] = "Reset Current Profile"
+L["STRING_OPTIONS_PROFILES_RESET_DESC"] = "Reset all settings of the selected profile to default values."
+L["STRING_OPTIONS_PROFILES_SELECT"] = "Select Profile"
+L["STRING_OPTIONS_PROFILES_SELECT_DESC"] = "Load an existing profile. If you are using the same profile o all characters (Use on All Characters option), an exception is created for this character. "
+L["STRING_OPTIONS_PROFILES_TITLE"] = "Profiles"
+L["STRING_OPTIONS_PROFILES_TITLE_DESC"] = "These options allow you share the same settings between different characters."
+L["STRING_OPTIONS_PS_ABBREVIATE"] = "Number Format"
+L["STRING_OPTIONS_PS_ABBREVIATE_COMMA"] = "Comma"
+L["STRING_OPTIONS_PS_ABBREVIATE_DESC"] = [=[Choose the abbreviation method.
+
+|cFFFFFF00ToK I|r:
+520600 = 520.6K
+19530000 = 19.53M
+
+|cFFFFFF00ToK II|r:
+520600 = 520K
+19530000 = 19.53M
+
+|cFFFFFF00ToM I|r:
+520600 = 520.6K
+19530000 = 19M
+
+|cFFFFFF00Comma|r:
+19530000 = 19.530.000
+
+|cFFFFFF00Lower|r and |cFFFFFF00Upper|r: are references to 'K' and 'M' letters if lowercase or uppercase.]=]
+L["STRING_OPTIONS_PS_ABBREVIATE_NONE"] = "None"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK"] = "ToK I Upper"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK0"] = "ToM I Upper"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK0MIN"] = "ToM I Lower"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK2"] = "ToK II Upper"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK2MIN"] = "ToK II Lower"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOKMIN"] = "ToK I Lower"
+L["STRING_OPTIONS_PVPFRAGS"] = "Only Pvp Frags"
+L["STRING_OPTIONS_PVPFRAGS_DESC"] = "When enabled, only kills against enemy players count on |cFFFFFF00damage > frags|r display."
+L["STRING_OPTIONS_REALMNAME"] = "Remove Realm Name"
+L["STRING_OPTIONS_REALMNAME_DESC"] = [=[When enabled, the character realm name isn't displayed.
+
+|cFFFFFF00Disabled|r: Charles-Netherwing
+|cFFFFFF00Enabled|r: Charles]=]
+L["STRING_OPTIONS_REPORT_ANCHOR"] = "Report:"
+L["STRING_OPTIONS_REPORT_HEALLINKS"] = "Helpful Spell Links"
+L["STRING_OPTIONS_REPORT_HEALLINKS_DESC"] = [=[When sending a report and this option is enabled, |cFF55FF55helpful|r spells are reported with the spell link instead of its name.
+
+|cFFFF5555Harmful|r spells are reported with links by default.]=]
+L["STRING_OPTIONS_REPORT_SCHEMA"] = "Format"
+L["STRING_OPTIONS_REPORT_SCHEMA_DESC"] = "Select the text format for the text linked on the chat channel."
+L["STRING_OPTIONS_REPORT_SCHEMA1"] = "Total / Per Second / Percent"
+L["STRING_OPTIONS_REPORT_SCHEMA2"] = "Percent / Per Second / Total"
+L["STRING_OPTIONS_REPORT_SCHEMA3"] = "Percent / Total / Per Second"
+L["STRING_OPTIONS_RESET_TO_DEFAULT"] = "Reset to Default"
+L["STRING_OPTIONS_ROW_SETTING_ANCHOR"] = "Layout:"
+L["STRING_OPTIONS_ROWADV_TITLE"] = "Row Advanced Settings"
+L["STRING_OPTIONS_ROWADV_TITLE_DESC"] = "These options allow you modify the rows more deeply."
+L["STRING_OPTIONS_RT_COOLDOWN1"] = "%s used on %s!"
+L["STRING_OPTIONS_RT_COOLDOWN2"] = "%s used!"
+L["STRING_OPTIONS_RT_COOLDOWNS_ANCHOR"] = "Announce Cooldowns:"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL"] = "Channel"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL_DESC"] = [=[Which chat channel is used to send the alert message.
+
+If |cFFFFFF00Observer|r is selected, all cooldowns are printed to your chat, except individual cooldowns.]=]
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM"] = "Custom Text"
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM_DESC"] = [=[Type your own phrase to send.
+
+Use |cFFFFFF00{spell}|r to add the cooldown spell name.
+
+Use |cFFFFFF00{target}|r to add the player target name.]=]
+L["STRING_OPTIONS_RT_COOLDOWNS_ONOFF_DESC"] = "When you use a cooldown, a message is sent through the selected channel."
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT"] = "Ignored Cooldown List"
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT_DESC"] = "Choose which cooldowns should be ignored."
+L["STRING_OPTIONS_RT_DEATH_MSG"] = "Details! %s's Death"
+L["STRING_OPTIONS_RT_DEATHS_ANCHOR"] = "Announce Deaths:"
+L["STRING_OPTIONS_RT_DEATHS_FIRST"] = "Only First"
+L["STRING_OPTIONS_RT_DEATHS_FIRST_DESC"] = "Make it only annouce the first X deaths during the encounter."
+L["STRING_OPTIONS_RT_DEATHS_HITS"] = "Hits Amount"
+L["STRING_OPTIONS_RT_DEATHS_HITS_DESC"] = "When annoucing the death, show how many hits."
+L["STRING_OPTIONS_RT_DEATHS_ONOFF_DESC"] = "When a raid member dies, it sends to raid channel what killed that player."
+L["STRING_OPTIONS_RT_DEATHS_WHERE"] = "Instances"
+L["STRING_OPTIONS_RT_DEATHS_WHERE_DESC"] = [=[Select where deaths can be reported.
+
+|cFFFFFF00Important|r for raids /raid channel is used, /p while in dungeons.
+
+If |cFFFFFF00Observer|r is selected, deaths are shown only for you in the chat.]=]
+L["STRING_OPTIONS_RT_DEATHS_WHERE1"] = "Raid & Dungeon"
+L["STRING_OPTIONS_RT_DEATHS_WHERE2"] = "Only Raid"
+L["STRING_OPTIONS_RT_DEATHS_WHERE3"] = "Only Dungeon"
+L["STRING_OPTIONS_RT_FIRST_HIT"] = "First Hit"
+L["STRING_OPTIONS_RT_FIRST_HIT_DESC"] = "Prints over chat panel (|cFFFFFF00only for you|r) who delivered the first hit, usually is who started the fight."
+L["STRING_OPTIONS_RT_IGNORE_TITLE"] = "Ignore Cooldowns"
+L["STRING_OPTIONS_RT_INFOS"] = "Extra Informations:"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION"] = "Pre Potion Usage"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION_DESC"] = "When enabled and after a raid encounter, prints in your chat (|cFFFFFF00only for you|r) who used a potion before the pull."
+L["STRING_OPTIONS_RT_INTERRUPT"] = "%s interrupted!"
+L["STRING_OPTIONS_RT_INTERRUPT_ANCHOR"] = "Announce Interrupts:"
+L["STRING_OPTIONS_RT_INTERRUPT_NEXT"] = "Next: %s"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL"] = "Channel"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL_DESC"] = [=[Which chat channel is used to send the alert message.
+
+If |cFFFFFF00Observer|r is selected, all interrupts are printed only to you in the chat.]=]
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM"] = "Custom Text"
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM_DESC"] = [=[Type your own phrase to send.
+
+Use |cFFFFFF00{spell}|r to add the interrupted spell name.
+
+Use |cFFFFFF00{next}|r to add the name of the next player filled in the 'next' box.]=]
+L["STRING_OPTIONS_RT_INTERRUPTS_NEXT"] = "Next Player"
+L["STRING_OPTIONS_RT_INTERRUPTS_NEXT_DESC"] = "When exists, an interrupt sequence, place the player name responsible for the next interrupt."
+L["STRING_OPTIONS_RT_INTERRUPTS_ONOFF_DESC"] = "When you successfully interrupt a spell cast, a message is sent."
+L["STRING_OPTIONS_RT_INTERRUPTS_WHISPER"] = "Whisper To"
+L["STRING_OPTIONS_RT_OTHER_ANCHOR"] = "General:"
+L["STRING_OPTIONS_RT_TITLE"] = "Tools for Raiders"
+L["STRING_OPTIONS_RT_TITLE_DESC"] = "In this panel you can activate several mechanisms to help you during raids."
+L["STRING_OPTIONS_SAVELOAD"] = "Save and Load"
+L["STRING_OPTIONS_SAVELOAD_APPLYALL"] = "The current skin has been applied to all other windows."
+L["STRING_OPTIONS_SAVELOAD_APPLYALL_DESC"] = "Apply the current skin on all windows created."
+L["STRING_OPTIONS_SAVELOAD_APPLYTOALL"] = "Apply to all Windows"
+L["STRING_OPTIONS_SAVELOAD_CREATE_DESC"] = "Save the current skin as a preset, you may export or maintain it as a backup."
+L["STRING_OPTIONS_SAVELOAD_DESC"] = "These options allow you to save or load predefined settings."
+L["STRING_OPTIONS_SAVELOAD_ERASE_DESC"] = "This option erases a previous saved skin."
+L["STRING_OPTIONS_SAVELOAD_EXPORT"] = "Export"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_COPY"] = "Press CTRL + C"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_DESC"] = "Saves the skin in text format."
+L["STRING_OPTIONS_SAVELOAD_IMPORT"] = "Import Custom Skin"
+L["STRING_OPTIONS_SAVELOAD_IMPORT_DESC"] = "Import a skin in text format."
+L["STRING_OPTIONS_SAVELOAD_IMPORT_OKEY"] = "Skin successfully imported to your saved skins list. You can now apply it through the 'Apply' dropbox."
+L["STRING_OPTIONS_SAVELOAD_LOAD"] = "Apply"
+L["STRING_OPTIONS_SAVELOAD_LOAD_DESC"] = "Choose one of the previous saved skins to apply on the current selected window."
+L["STRING_OPTIONS_SAVELOAD_MAKEDEFAULT"] = "Set Standard"
+L["STRING_OPTIONS_SAVELOAD_PNAME"] = "Name"
+L["STRING_OPTIONS_SAVELOAD_REMOVE"] = "Erase"
+L["STRING_OPTIONS_SAVELOAD_RESET"] = "Load Default Skin"
+L["STRING_OPTIONS_SAVELOAD_SAVE"] = "save"
+L["STRING_OPTIONS_SAVELOAD_SKINCREATED"] = "Skin created."
+L["STRING_OPTIONS_SAVELOAD_STD_DESC"] = [=[Set the current appearance as Standard Skin.
+
+This skin is applied on all new windows created.]=]
+L["STRING_OPTIONS_SAVELOAD_STDSAVE"] = "Standard Skin has been saved, new windows will be using this skin by default."
+L["STRING_OPTIONS_SCROLLBAR"] = "Scroll Bar"
+L["STRING_OPTIONS_SCROLLBAR_DESC"] = [=[Enable or Disable the scroll bar.
+
+By default, Details! scroll bars are replaced by a mechanism that stretches the window.
+
+The |cFFFFFF00stretch handle|r is outside over the window button/menu (left of close button).]=]
+L["STRING_OPTIONS_SEGMENTSSAVE"] = "Segments Saved"
+L["STRING_OPTIONS_SEGMENTSSAVE_DESC"] = [=[How many segments you want to save between game sessions.
+
+High values may increase the time your character takes to logoff.]=]
+L["STRING_OPTIONS_SENDFEEDBACK"] = "Feedback"
+L["STRING_OPTIONS_SHOW_SIDEBARS"] = "Show Borders"
+L["STRING_OPTIONS_SHOW_SIDEBARS_DESC"] = "Show or hide window borders."
+L["STRING_OPTIONS_SHOW_STATUSBAR"] = "Show Statusbar"
+L["STRING_OPTIONS_SHOW_STATUSBAR_DESC"] = "Show or hide the bottom statusbar."
+L["STRING_OPTIONS_SHOW_TOTALBAR_COLOR_DESC"] = "Select the color. The transparency value follows the row alpha value."
+L["STRING_OPTIONS_SHOW_TOTALBAR_DESC"] = "Show or hide the total bar."
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON"] = "Icon"
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON_DESC"] = "Select the icon shown on the total bar."
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP"] = "Only in Group"
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP_DESC"] = "Total bar isn't shown if you aren't in a group."
+L["STRING_OPTIONS_SIZE"] = "Size"
+L["STRING_OPTIONS_SKIN_A"] = "Skin Settings"
+L["STRING_OPTIONS_SKIN_A_DESC"] = "These options allow you to change the skin."
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1"] = "Align Within Right Chat"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1_DESC"] = "Move and resize the windows |cFFFFFF00#1|r and |cFFFFFF00#2|r place over the right chat window."
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2"] = "Set Tooltip Border to Black"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2_DESC"] = [=[Modify tooltip's:
+
+Border Color to: |cFFFFFF00Black|r.
+Border Size to: |cFFFFFF0016|r.
+Texture to: |cFFFFFF00Blizzard Tooltip|r.]=]
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3"] = "Remove Tooltip Border"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3_DESC"] = [=[Modify tooltip's:
+
+Border Color to: |cFFFFFF00Transparent|r.]=]
+L["STRING_OPTIONS_SKIN_EXTRA_OPTIONS_ANCHOR"] = "Skin Options:"
+L["STRING_OPTIONS_SKIN_LOADED"] = "skin successfully loaded."
+L["STRING_OPTIONS_SKIN_PRESETS_ANCHOR"] = "Save Current Settings as Custom Skin:"
+L["STRING_OPTIONS_SKIN_PRESETSCONFIG_ANCHOR"] = "Manage Saved Custom Skins:"
+L["STRING_OPTIONS_SKIN_REMOVED"] = "skin removed."
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP"] = "Reset Tooltip Border"
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP_DESC"] = "Set the tooltip's border color and texture to default."
+L["STRING_OPTIONS_SKIN_SELECT"] = "select a skin"
+L["STRING_OPTIONS_SKIN_SELECT_ANCHOR"] = "Skin Selection:"
+L["STRING_OPTIONS_SOCIAL"] = "Social"
+L["STRING_OPTIONS_SOCIAL_DESC"] = "Tell how you want to be known in your guild environment."
+L["STRING_OPTIONS_SPELL_ADD"] = "Add"
+L["STRING_OPTIONS_SPELL_ADDICON"] = "New Icon: "
+L["STRING_OPTIONS_SPELL_ADDNAME"] = "New Name: "
+L["STRING_OPTIONS_SPELL_ADDSPELL"] = "Add Spell"
+L["STRING_OPTIONS_SPELL_ADDSPELLID"] = "SpellId: "
+L["STRING_OPTIONS_SPELL_CLOSE"] = "Close"
+L["STRING_OPTIONS_SPELL_ICON"] = "Icon"
+L["STRING_OPTIONS_SPELL_IDERROR"] = "Invalid spell id."
+L["STRING_OPTIONS_SPELL_INDEX"] = "Index"
+L["STRING_OPTIONS_SPELL_NAME"] = "Name"
+L["STRING_OPTIONS_SPELL_NAMEERROR"] = "Invalid spell name."
+L["STRING_OPTIONS_SPELL_NOTFOUND"] = "Spell not found."
+L["STRING_OPTIONS_SPELL_REMOVE"] = "Remove"
+L["STRING_OPTIONS_SPELL_RESET"] = "Reset"
+L["STRING_OPTIONS_SPELL_SPELLID"] = "Spell ID"
+L["STRING_OPTIONS_STRETCH"] = "Stretch Button on Top Side"
+L["STRING_OPTIONS_STRETCH_DESC"] = "Places the stretch button at the top of the window."
+L["STRING_OPTIONS_STRETCHTOP"] = "Stretch Button Always On Top"
+L["STRING_OPTIONS_STRETCHTOP_DESC"] = [=[The stretch button will be placed on the FULLSCREEN strata and always stay higher than the others frames.
+
+|cFFFFFF00Important|r: Moving the grab for a high layer, it might stay in front of others frames like backpacks, use only if you really need.]=]
+L["STRING_OPTIONS_SWITCH_ANCHOR"] = "Switches:"
+L["STRING_OPTIONS_SWITCHINFO"] = "|cFFF79F81 LEFT DISABLED|r |cFF81BEF7 RIGHT ENABLED|r"
+L["STRING_OPTIONS_TABEMB_ANCHOR"] = "Chat Tab Embed"
+L["STRING_OPTIONS_TABEMB_ENABLED_DESC"] = "When enabled, one or more windows are attached on a chat tab."
+L["STRING_OPTIONS_TABEMB_SINGLE"] = "Single Window"
+L["STRING_OPTIONS_TABEMB_SINGLE_DESC"] = "When enabled, will only attach one window instead of two."
+L["STRING_OPTIONS_TABEMB_TABNAME"] = "Tab Name"
+L["STRING_OPTIONS_TABEMB_TABNAME_DESC"] = "The name of the tab where the windows will be attached to."
+L["STRING_OPTIONS_TESTBARS"] = "Create Test Bars"
+L["STRING_OPTIONS_TEXT"] = "Bar Text Settings"
+L["STRING_OPTIONS_TEXT_DESC"] = "These options control the appearance of the window row texts."
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR"] = "Text Color"
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR_DESC"] = [=[Change the text color of both left and right texts.
+
+Ignored if |cFFFFFFFFcolor by class|r is enabled.]=]
+L["STRING_OPTIONS_TEXT_FONT"] = "Text Font"
+L["STRING_OPTIONS_TEXT_FONT_DESC"] = "Change the font of both left and right texts."
+L["STRING_OPTIONS_TEXT_LCLASSCOLOR_DESC"] = "When enabled, the text always uses the color of the player class."
+L["STRING_OPTIONS_TEXT_LEFT_ANCHOR"] = "Left Text:"
+L["STRING_OPTIONS_TEXT_LOUTILINE"] = "Text Shadow"
+L["STRING_OPTIONS_TEXT_LOUTILINE_DESC"] = "Enable or disable the outline for left text."
+L["STRING_OPTIONS_TEXT_LPOSITION"] = "Show Number"
+L["STRING_OPTIONS_TEXT_LPOSITION_DESC"] = "Show position number on the player's name left side."
+L["STRING_OPTIONS_TEXT_RIGHT_ANCHOR"] = "Right Text:"
+L["STRING_OPTIONS_TEXT_ROUTILINE_DESC"] = "Enable or disable the outline for right text."
+L["STRING_OPTIONS_TEXT_ROWICONS_ANCHOR"] = "Icons:"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET"] = "Bracket"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET_DESC"] = "Choose which character is used to open and close the per second and percent block."
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT"] = "Show Percent"
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT_DESC"] = [=[Show the percentage.
+
+When disabling the percent, you might want to set 'Separator' to 'none' to avoid an extra comma after the DPS.]=]
+L["STRING_OPTIONS_TEXT_SHOW_PS"] = "Show Per Second"
+L["STRING_OPTIONS_TEXT_SHOW_PS_DESC"] = "Show Damage per Second and Healing per Second."
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR"] = "Separator"
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR_DESC"] = "Choose which character is used to separate the per second amount from percent amount."
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL"] = "Show Total"
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL_DESC"] = [=[Show the total done by the actor.
+
+For example: total damage, total heal received.]=]
+L["STRING_OPTIONS_TEXT_SIZE"] = "Text Size"
+L["STRING_OPTIONS_TEXT_SIZE_DESC"] = "Change the size of both left and right texts."
+L["STRING_OPTIONS_TEXT_TEXTUREL_ANCHOR"] = "Background:"
+L["STRING_OPTIONS_TEXT_TEXTUREU_ANCHOR"] = "Appearance:"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL"] = "Cancel"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL_TOOLTIP"] = "Finish the editing and ignore any change in the code."
+L["STRING_OPTIONS_TEXTEDITOR_COLOR_TOOLTIP"] = "Select the text and then click on the color button to change selected text color."
+L["STRING_OPTIONS_TEXTEDITOR_COMMA"] = "Comma"
+L["STRING_OPTIONS_TEXTEDITOR_COMMA_TOOLTIP"] = [=[Add a function to format numbers, separating with commas.
+Example: 1000000 to 1.000.000.]=]
+L["STRING_OPTIONS_TEXTEDITOR_DATA"] = "[Data %s]"
+L["STRING_OPTIONS_TEXTEDITOR_DATA_TOOLTIP"] = [=[Add a data feed:
+
+|cFFFFFF00Data 1|r: normaly represents the total done by the actor or the position number.
+
+|cFFFFFF00Data 2|r: in most cases represents the DPS, HPS or player's name.
+
+|cFFFFFF00Data 3|r: represents the percent done by the actor, spec or faction icon.]=]
+L["STRING_OPTIONS_TEXTEDITOR_DONE"] = "Done"
+L["STRING_OPTIONS_TEXTEDITOR_DONE_TOOLTIP"] = "Finish the editing and save the code."
+L["STRING_OPTIONS_TEXTEDITOR_FUNC"] = "Function"
+L["STRING_OPTIONS_TEXTEDITOR_FUNC_TOOLTIP"] = [=[Add an empty function.
+Functions must always return a number.]=]
+L["STRING_OPTIONS_TEXTEDITOR_RESET"] = "Reset"
+L["STRING_OPTIONS_TEXTEDITOR_RESET_TOOLTIP"] = "Clear all code and add the default code."
+L["STRING_OPTIONS_TEXTEDITOR_TOK"] = "ToK"
+L["STRING_OPTIONS_TEXTEDITOR_TOK_TOOLTIP"] = [=[Add a function to format numbers abbreviating its values.
+Example: 1500000 to 1.5kk.]=]
+L["STRING_OPTIONS_TIMEMEASURE"] = "Time Measure"
+L["STRING_OPTIONS_TIMEMEASURE_DESC"] = [=[|cFFFFFF00Activity|r: the timer of each raid member is put on hold if their activity is ceased and back again to count when resumed, common way of measuring DPS and HPS.
+
+|cFFFFFF00Effective|r: used on rankings, this method uses the elapsed combat time to measure the DPS and HPS of all raid members.]=]
+L["STRING_OPTIONS_TOOLBAR_SETTINGS"] = "Title Bar Button Settings"
+L["STRING_OPTIONS_TOOLBAR_SETTINGS_DESC"] = "These options change the main menu on the top of the window."
+L["STRING_OPTIONS_TOOLBARSIDE"] = "Title Bar on Top Side"
+L["STRING_OPTIONS_TOOLBARSIDE_DESC"] = [=[Places the title bar on the top of the window.
+
+|cFFFFFF00Important|r: when alternating the position, title text won't change, check out |cFFFFFF00Title Bar: Text|r section for more options.]=]
+L["STRING_OPTIONS_TOOLS_ANCHOR"] = "Tools:"
+L["STRING_OPTIONS_TOOLTIP_ANCHOR"] = "Settings:"
+L["STRING_OPTIONS_TOOLTIP_ANCHORTEXTS"] = "Texts:"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION"] = "Abbreviation Type"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION_DESC"] = "Choose how the numbers displayed on tooltips are formated."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH"] = "Tooltip Side"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH_DESC"] = "Which side of tooltip is used to fit with the anchor attach side."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_BORDER"] = "Border:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_POINT"] = "Anchor:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE"] = "Anchor Side"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE_DESC"] = "Which side of the anchor the tooltip will be placed."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT"] = "Tooltip Anchor"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT_DESC"] = "right click to lock."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO"] = "Anchor"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE"] = "Move Anchor Point"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE_DESC"] = "Move the anchor position when Anchor is set to |cFFFFFF00Point on Screen|r."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_DESC"] = "Tooltips attaches on the hovered row or on a chosen point in the game screen."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO1"] = "Window Row"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO2"] = "Point on Screen"
+L["STRING_OPTIONS_TOOLTIPS_ANCHORCOLOR"] = "header"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR"] = "Background Color"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR_DESC"] = "Choose the color used on the background."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_COLOR_DESC"] = "Change the border color."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_SIZE_DESC"] = "Change the border size."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_TEXTURE_DESC"] = "Modify the border texture file."
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR"] = "Text Color"
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR_DESC"] = "Change the color used on tooltip texts."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTFACE"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE_DESC"] = "Choose the font used on tooltip texts."
+L["STRING_OPTIONS_TOOLTIPS_FONTSHADOW_DESC"] = "Enable or disable the shadow in the text."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTSIZE"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE_DESC"] = "Increase or decrease the size of tooltip texts"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER"] = "Sub Menu Wallpaper"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER_DESC"] = "When enabled, some menus may use their own wallpaper on sub menus."
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE"] = "Maximize Method"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE_DESC"] = [=[Select the method used to expand the information shown on the tooltip.
+
+|cFFFFFF00 On Control Keys|r: tooltip box is expanded when Shift, Ctrl or Alt keys is pressed.
+
+|cFFFFFF00 Always Maximized|r: the tooltip always show all information without any amount limitations.
+
+|cFFFFFF00 Only Shift Block|r: the first block on the tooltip is always expanded by default.
+
+|cFFFFFF00 Only Ctrl Block|r: the second block is always expanded by default.
+
+|cFFFFFF00 Only Alt Block|r: the third block is always expanded by default.]=]
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE1"] = "On Shift Ctrl Alt"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE2"] = "Always Maximized"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE3"] = "Only Shift Block"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE4"] = "Only Ctrl Block"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE5"] = "Only Alt Block"
+L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP"] = "Edit Menu Wallpaper"
+L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP_DESC"] = "Change the aspects of the wallpaper for title bar menus."
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX"] = "Distance X"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX_DESC"] = "How far horizontally the tooltip is placed from its anchor."
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY"] = "Distance Y"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY_DESC"] = "How far vertically the tooltip is placed from its anchor."
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT"] = "Show Amount"
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT_DESC"] = "Shows a number indicating how many spells, targets and pets have in the tooltip."
+L["STRING_OPTIONS_TOOLTIPS_TITLE"] = "Tooltips"
+L["STRING_OPTIONS_TOOLTIPS_TITLE_DESC"] = "These options controls the appearance of tooltips."
+L["STRING_OPTIONS_TOTALBAR_ANCHOR"] = "Total Bar:"
+L["STRING_OPTIONS_TRASH_SUPPRESSION"] = "Trash Suppression"
+L["STRING_OPTIONS_TRASH_SUPPRESSION_DESC"] = "For |cFFFFFF00X|r seconds, suppress auto switching to show trash segments (|cFFFFFF00only after defeating a boss encounter|r)."
+L["STRING_OPTIONS_WALLPAPER_ALPHA"] = "Alpha:"
+L["STRING_OPTIONS_WALLPAPER_ANCHOR"] = "Wallpaper Selection:"
+L["STRING_OPTIONS_WALLPAPER_BLUE"] = "Blue:"
+L["STRING_OPTIONS_WALLPAPER_CBOTTOM"] = "Crop (|cFFC0C0C0bottom|r):"
+L["STRING_OPTIONS_WALLPAPER_CLEFT"] = "Crop (|cFFC0C0C0left|r):"
+L["STRING_OPTIONS_WALLPAPER_CRIGHT"] = "Crop (|cFFC0C0C0right|r):"
+L["STRING_OPTIONS_WALLPAPER_CTOP"] = "Crop (|cFFC0C0C0top|r):"
+L["STRING_OPTIONS_WALLPAPER_FILE"] = "File:"
+L["STRING_OPTIONS_WALLPAPER_GREEN"] = "Green:"
+L["STRING_OPTIONS_WALLPAPER_LOAD"] = "Load Image"
+L["STRING_OPTIONS_WALLPAPER_LOAD_DESC"] = "Select a image from your hard drive to use as wallpaper."
+L["STRING_OPTIONS_WALLPAPER_LOAD_EXCLAMATION"] = [=[The image needs:
+
+- To be in Truevision TGA format (.tga extension).
+- Be inside WOW/Interface/ root folder.
+- The size must be 256 x 256 pixels.
+- The game must be closed before copying the file.]=]
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME"] = "File Name:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME_DESC"] = "Insert only the name of the file, excluding path and extension."
+L["STRING_OPTIONS_WALLPAPER_LOAD_OKEY"] = "Load"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TITLE"] = "From Computer:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT"] = "Troubleshoot"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT_TEXT"] = [=[If the wallpaper displays full green color:
+
+- Restart the wow client.
+- Make sure the image is 256 width and 256 height.
+- Check if the image is in .TGA format and make sure it's saved with 32 bits/pixel.
+- Is inside Interface folder, for example: C:/Program Files/World of Warcraft/Interface/]=]
+L["STRING_OPTIONS_WALLPAPER_RED"] = "Red:"
+L["STRING_OPTIONS_WC_ANCHOR"] = "Quick Window Control (#%s):"
+L["STRING_OPTIONS_WC_BOOKMARK"] = "Manage Bookmarks"
+L["STRING_OPTIONS_WC_BOOKMARK_DESC"] = "Open config panel for bookmarks."
+L["STRING_OPTIONS_WC_CLOSE"] = "Close"
+L["STRING_OPTIONS_WC_CLOSE_DESC"] = [=[Close the current editing window.
+
+When closed, the window is considered inactive and can be reopened at any time using the Window Control menu.
+
+|cFFFFFF00Important:|r to completely remove a window, go to 'Window: General' section.]=]
+L["STRING_OPTIONS_WC_CREATE"] = "Create Window"
+L["STRING_OPTIONS_WC_CREATE_DESC"] = "Create a new window."
+L["STRING_OPTIONS_WC_LOCK"] = "Lock"
+L["STRING_OPTIONS_WC_LOCK_DESC"] = [=[Lock or Unlock the window.
+
+When locked, the window can not be moved.]=]
+L["STRING_OPTIONS_WC_REOPEN"] = "Reopen"
+L["STRING_OPTIONS_WC_UNLOCK"] = "Unlock"
+L["STRING_OPTIONS_WC_UNSNAP"] = "Ungroup"
+L["STRING_OPTIONS_WC_UNSNAP_DESC"] = "Remove this window from the window group."
+L["STRING_OPTIONS_WHEEL_SPEED"] = "Wheel Speed"
+L["STRING_OPTIONS_WHEEL_SPEED_DESC"] = "Changes how fast the scroll goes when rolling the mouse wheel over a window."
+L["STRING_OPTIONS_WINDOW"] = "Options Panel"
+L["STRING_OPTIONS_WINDOW_ANCHOR_ANCHORS"] = "Anchors:"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE"] = "Ignore Mass Toggle"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE_DESC"] = "When enabled, this window is not affected when hiding, showing, or toggling all windows."
+L["STRING_OPTIONS_WINDOW_SCALE"] = "Scale"
+L["STRING_OPTIONS_WINDOW_SCALE_DESC"] = [=[Adjust the scale of the window.
+
+|cFFFFFF00Tip|r: right click to type the value.
+
+|cFFFFFF00Current|r: %s]=]
+L["STRING_OPTIONS_WINDOW_TITLE"] = "General Window Settings"
+L["STRING_OPTIONS_WINDOW_TITLE_DESC"] = "These options control the window appearance of selected window."
+L["STRING_OPTIONS_WINDOWSPEED"] = "Update Interval"
+L["STRING_OPTIONS_WINDOWSPEED_DESC"] = [=[Time interval between each update.
+
+|cFFFFFF000.05|r: real time update.
+
+|cFFFFFF000.3|r: update about 3 times each second.
+
+|cFFFFFF003.0|r: update once every 3 seconds.]=]
+L["STRING_OPTIONS_WP"] = "Wallpaper Settings"
+L["STRING_OPTIONS_WP_ALIGN"] = "Align"
+L["STRING_OPTIONS_WP_ALIGN_DESC"] = [=[How the wallpaper will align within the window.
+
+- |cFFFFFF00Fill|r: auto resize and align with all corners.
+
+- |cFFFFFF00Center|r: doesn`t resize and align with the center of the window.
+
+-|cFFFFFF00Stretch|r: auto resize on vertical or horizontal and align with left-right or top-bottom sides.
+
+-|cFFFFFF00Four Corners|r: align with specified corner, no auto resize is made.]=]
+L["STRING_OPTIONS_WP_DESC"] = "These options control the wallpaper of window."
+L["STRING_OPTIONS_WP_EDIT"] = "Edit Image"
+L["STRING_OPTIONS_WP_EDIT_DESC"] = "Open the image editor to change some aspects of the selected image."
+L["STRING_OPTIONS_WP_ENABLE_DESC"] = "Show wallpaper."
+L["STRING_OPTIONS_WP_GROUP"] = "Category"
+L["STRING_OPTIONS_WP_GROUP_DESC"] = "Select the image group."
+L["STRING_OPTIONS_WP_GROUP2"] = "Wallpaper"
+L["STRING_OPTIONS_WP_GROUP2_DESC"] = "The image which will be used as wallpaper."
+L["STRING_OPTIONSMENU_AUTOMATIC"] = "Window: Automatization"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE"] = "Window Automatization Settings"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE_DESC"] = "These settings controls the automatic behaviors the window has, such as auto hide and auto switch."
+L["STRING_OPTIONSMENU_COMBAT"] = "PvE PvP"
+L["STRING_OPTIONSMENU_DATACHART"] = "Data for Charts"
+L["STRING_OPTIONSMENU_DATACOLLECT"] = "Data Collector"
+L["STRING_OPTIONSMENU_DATAFEED"] = "Data Feed"
+L["STRING_OPTIONSMENU_DISPLAY"] = "Display"
+L["STRING_OPTIONSMENU_DISPLAY_DESC"] = "Overall basic adjustments and quick window control."
+L["STRING_OPTIONSMENU_LEFTMENU"] = "Title Bar: General"
+L["STRING_OPTIONSMENU_MISC"] = "Miscellaneous"
+L["STRING_OPTIONSMENU_PERFORMANCE"] = "Performance Tweaks"
+L["STRING_OPTIONSMENU_PLUGINS"] = "Plugins Management"
+L["STRING_OPTIONSMENU_PROFILES"] = "Profiles"
+L["STRING_OPTIONSMENU_RAIDTOOLS"] = "Raid Tools"
+L["STRING_OPTIONSMENU_RIGHTMENU"] = "-- x -- x --"
+L["STRING_OPTIONSMENU_ROWMODELS"] = "Bars: Advanced"
+L["STRING_OPTIONSMENU_ROWSETTINGS"] = "Bars: General"
+L["STRING_OPTIONSMENU_ROWTEXTS"] = "Bars: Texts"
+L["STRING_OPTIONSMENU_SKIN"] = "Skin Selection"
+L["STRING_OPTIONSMENU_SPELLS"] = "Spell Customization"
+L["STRING_OPTIONSMENU_SPELLS_CONSOLIDATE"] = "Consolidate common spells with the same name"
+L["STRING_OPTIONSMENU_TITLETEXT"] = "Title Bar: Text"
+L["STRING_OPTIONSMENU_TOOLTIP"] = "Tooltips"
+L["STRING_OPTIONSMENU_WALLPAPER"] = "Window: Wallpaper"
+L["STRING_OPTIONSMENU_WINDOW"] = "Window: General"
+L["STRING_OVERALL"] = "Overall"
+L["STRING_OVERHEAL"] = "Overheal"
+L["STRING_OVERHEALED"] = "Overhealed"
+L["STRING_PARRY"] = "Parry"
+L["STRING_PERCENTAGE"] = "Percentage"
+L["STRING_PET"] = "Pet"
+L["STRING_PETS"] = "Pets"
+L["STRING_PLAYER_DETAILS"] = "Player Details! Breakdown"
+L["STRING_PLAYERS"] = "Players"
+L["STRING_PLEASE_WAIT"] = "Please wait"
+L["STRING_PLUGIN_CLEAN"] = "None"
+L["STRING_PLUGIN_CLOCKNAME"] = "Encounter Time"
+L["STRING_PLUGIN_CLOCKTYPE"] = "Clock Type"
+L["STRING_PLUGIN_DURABILITY"] = "Durability"
+L["STRING_PLUGIN_FPS"] = "Framerate"
+L["STRING_PLUGIN_GOLD"] = "Gold"
+L["STRING_PLUGIN_LATENCY"] = "Latency"
+L["STRING_PLUGIN_MINSEC"] = "Minutes & Seconds"
+L["STRING_PLUGIN_NAMEALREADYTAKEN"] = "Details! can't install plugin because name already has been taken"
+L["STRING_PLUGIN_PATTRIBUTENAME"] = "Attribute"
+L["STRING_PLUGIN_PDPSNAME"] = "Raid DPS"
+L["STRING_PLUGIN_PSEGMENTNAME"] = "Segment"
+L["STRING_PLUGIN_SECONLY"] = "Seconds Only"
+L["STRING_PLUGIN_SEGMENTTYPE"] = "Segment Type"
+L["STRING_PLUGIN_SEGMENTTYPE_1"] = "Fight #X"
+L["STRING_PLUGIN_SEGMENTTYPE_2"] = "Encounter Name"
+L["STRING_PLUGIN_SEGMENTTYPE_3"] = "Encounter Name Plus Segment"
+L["STRING_PLUGIN_THREATNAME"] = "My Threat"
+L["STRING_PLUGIN_TIME"] = "Clock"
+L["STRING_PLUGIN_TIMEDIFF"] = "Last Combat Difference"
+L["STRING_PLUGIN_TOOLTIP_LEFTBUTTON"] = "Config current plugin"
+L["STRING_PLUGIN_TOOLTIP_RIGHTBUTTON"] = "Choose another plugin"
+L["STRING_PLUGINOPTIONS_ABBREVIATE"] = "Abbreviate"
+L["STRING_PLUGINOPTIONS_COMMA"] = "Comma"
+L["STRING_PLUGINOPTIONS_FONTFACE"] = "Select Font"
+L["STRING_PLUGINOPTIONS_NOFORMAT"] = "None"
+L["STRING_PLUGINOPTIONS_TEXTALIGN"] = "Text Align"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_X"] = "Text Align X"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_Y"] = "Text Align Y"
+L["STRING_PLUGINOPTIONS_TEXTCOLOR"] = "Text Color"
+L["STRING_PLUGINOPTIONS_TEXTSIZE"] = "Font Size"
+L["STRING_PLUGINOPTIONS_TEXTSTYLE"] = "Text Style"
+L["STRING_QUERY_INSPECT"] = "retrieve talents and item level."
+L["STRING_QUERY_INSPECT_FAIL1"] = "can't query while in combat."
+L["STRING_QUERY_INSPECT_REFRESH"] = "need refresh"
+L["STRING_RAID_WIDE"] = "[*] raid wide cooldown"
+L["STRING_RAIDCHECK_PLUGIN_DESC"] = "While inside a raid instance, shows icon on Details! title bar showing flask, food, pre-potion usage."
+L["STRING_RAIDCHECK_PLUGIN_NAME"] = "Raid Check"
+L["STRING_REPORT"] = "for"
+L["STRING_REPORT_BUTTON_TOOLTIP"] = "Click to open Report Dialog"
+L["STRING_REPORT_FIGHT"] = "fight"
+L["STRING_REPORT_FIGHTS"] = "fights"
+L["STRING_REPORT_INVALIDTARGET"] = "Whisper target not found"
+L["STRING_REPORT_LAST"] = "Last"
+L["STRING_REPORT_LASTFIGHT"] = "last fight"
+L["STRING_REPORT_LEFTCLICK"] = "Click to open report dialog"
+L["STRING_REPORT_PREVIOUSFIGHTS"] = "previous fights"
+L["STRING_REPORT_SINGLE_BUFFUPTIME"] = "buff uptime for"
+L["STRING_REPORT_SINGLE_COOLDOWN"] = "cooldowns used by"
+L["STRING_REPORT_SINGLE_DEATH"] = "Death of"
+L["STRING_REPORT_SINGLE_DEBUFFUPTIME"] = "debuff uptime for"
+L["STRING_REPORT_TOOLTIP"] = "Report Results"
+L["STRING_REPORTFRAME_COPY"] = "Copy & Paste"
+L["STRING_REPORTFRAME_CURRENT"] = "Current"
+L["STRING_REPORTFRAME_CURRENTINFO"] = "Display only data which are currently being shown (if supported)."
+L["STRING_REPORTFRAME_GUILD"] = "Guild"
+L["STRING_REPORTFRAME_INSERTNAME"] = "insert player name"
+L["STRING_REPORTFRAME_LINES"] = "Lines"
+L["STRING_REPORTFRAME_OFFICERS"] = "Officer Channel"
+L["STRING_REPORTFRAME_PARTY"] = "Party"
+L["STRING_REPORTFRAME_RAID"] = "Raid"
+L["STRING_REPORTFRAME_REVERT"] = "Reverse"
+L["STRING_REPORTFRAME_REVERTED"] = "reversed"
+L["STRING_REPORTFRAME_REVERTINFO"] = "send in ascending order."
+L["STRING_REPORTFRAME_SAY"] = "Say"
+L["STRING_REPORTFRAME_SEND"] = "Send"
+L["STRING_REPORTFRAME_WHISPER"] = "Whisper"
+L["STRING_REPORTFRAME_WHISPERTARGET"] = "Whisper Target"
+L["STRING_REPORTFRAME_WINDOW_TITLE"] = "Link Details!"
+L["STRING_REPORTHISTORY"] = "Last Reports"
+L["STRING_RESISTED"] = "Resisted"
+L["STRING_RESIZE_ALL"] = "Freely resize all windows"
+L["STRING_RESIZE_COMMON"] = [=[Resize
+]=]
+L["STRING_RESIZE_HORIZONTAL"] = [=[Resize the width of all
+ windows in the group]=]
+L["STRING_RESIZE_VERTICAL"] = [=[Resize the heigth of all
+ windows in the group]=]
+L["STRING_RIGHT"] = "right"
+L["STRING_RIGHT_TO_LEFT"] = "Right to Left"
+L["STRING_RIGHTCLICK_CLOSE_LARGE"] = "Click with right mouse button to close this window."
+L["STRING_RIGHTCLICK_CLOSE_MEDIUM"] = "Use right click to close this window."
+L["STRING_RIGHTCLICK_CLOSE_SHORT"] = "Right click to close."
+L["STRING_RIGHTCLICK_TYPEVALUE"] = "right click to type the value"
+L["STRING_SCORE_BEST"] = "you scored |cFFFFFF00%s|r, this is your best score, congratulations!"
+L["STRING_SCORE_NOTBEST"] = "you scored |cFFFFFF00%s|r, your best score is |cFFFFFF00%s|r on %s with %d item level."
+L["STRING_SEE_BELOW"] = "see below"
+L["STRING_SEGMENT"] = "Segment"
+L["STRING_SEGMENT_EMPTY"] = "this segment is empty"
+L["STRING_SEGMENT_END"] = "End"
+L["STRING_SEGMENT_ENEMY"] = "Enemy"
+L["STRING_SEGMENT_LOWER"] = "segment"
+L["STRING_SEGMENT_OVERALL"] = "Overall Data"
+L["STRING_SEGMENT_START"] = "Start"
+L["STRING_SEGMENT_TRASH"] = "Trash Cleanup"
+L["STRING_SEGMENTS"] = "Segments"
+L["STRING_SEGMENTS_LIST_BOSS"] = "boss fight"
+L["STRING_SEGMENTS_LIST_COMBATTIME"] = "Combat Time"
+L["STRING_SEGMENTS_LIST_OVERALL"] = "overall"
+L["STRING_SEGMENTS_LIST_TIMEINCOMBAT"] = "Time in Combat"
+L["STRING_SEGMENTS_LIST_TOTALTIME"] = "Total Time"
+L["STRING_SEGMENTS_LIST_TRASH"] = "trash"
+L["STRING_SEGMENTS_LIST_WASTED_TIME"] = "Not In Combat"
+L["STRING_SHIELD_HEAL"] = "Prevented"
+L["STRING_SHIELD_OVERHEAL"] = "Wasted"
+L["STRING_SHORTCUT_RIGHTCLICK"] = "right click to close"
+L["STRING_SLASH_API_DESC"] = "open the API panel for build plugins, custom displays, auras, etc."
+L["STRING_SLASH_CAPTURE_DESC"] = "turn on or off all captures of data."
+L["STRING_SLASH_CAPTUREOFF"] = "all captures has been turned off."
+L["STRING_SLASH_CAPTUREON"] = "all captures has been turned on."
+L["STRING_SLASH_CHANGES"] = "updates"
+L["STRING_SLASH_CHANGES_ALIAS1"] = "news"
+L["STRING_SLASH_CHANGES_ALIAS2"] = "changes"
+L["STRING_SLASH_CHANGES_DESC"] = "shows what's new, what changed in Details!."
+L["STRING_SLASH_DISABLE"] = "disable"
+L["STRING_SLASH_ENABLE"] = "enable"
+L["STRING_SLASH_HIDE"] = "hide"
+L["STRING_SLASH_HIDE_ALIAS1"] = "close"
+L["STRING_SLASH_HISTORY"] = "history"
+L["STRING_SLASH_NEW"] = "new"
+L["STRING_SLASH_NEW_DESC"] = "create a new window."
+L["STRING_SLASH_OPTIONS"] = "options"
+L["STRING_SLASH_OPTIONS_DESC"] = "open the options panel."
+L["STRING_SLASH_RESET"] = "reset"
+L["STRING_SLASH_RESET_ALIAS1"] = "clear"
+L["STRING_SLASH_RESET_DESC"] = "clear all segments."
+L["STRING_SLASH_SHOW"] = "show"
+L["STRING_SLASH_SHOW_ALIAS1"] = "open"
+L["STRING_SLASH_SHOWHIDETOGGLE_DESC"] = "all windows if isn't passed."
+L["STRING_SLASH_TOGGLE"] = "toggle"
+L["STRING_SLASH_WIPE"] = "wipe"
+L["STRING_SLASH_WIPECONFIG"] = "reinstall"
+L["STRING_SLASH_WIPECONFIG_CONFIRM"] = "Click To Continue With The Reinstall"
+L["STRING_SLASH_WIPECONFIG_DESC"] = "set all configurations to default, use this if Details! isn't working properly."
+L["STRING_SLASH_WORLDBOSS"] = "worldboss"
+L["STRING_SLASH_WORLDBOSS_DESC"] = "run a macro showing which boss you killed this week."
+L["STRING_SPELL_INTERRUPTED"] = "Spells interrupted"
+L["STRING_SPELLLIST"] = "Spell List"
+L["STRING_SPELLS"] = "Spells"
+L["STRING_SPIRIT_LINK_TOTEM"] = "Health Exchange"
+L["STRING_SPIRIT_LINK_TOTEM_DESC"] = [=[Amount of health exchanged between
+players inside the totem's circle.
+
+This healing isn't added on the
+player's healing done total.]=]
+L["STRING_STATISTICS"] = "Statistics"
+L["STRING_STATUSBAR_NOOPTIONS"] = "This widget doesn't have options."
+L["STRING_SWITCH_CLICKME"] = "add bookmark"
+L["STRING_SWITCH_SELECTMSG"] = "Select the display for Bookmark #%d."
+L["STRING_SWITCH_TO"] = "Switch To"
+L["STRING_SWITCH_WARNING"] = "Role changed. Switching: |cFFFFAA00%s|r "
+L["STRING_TARGET"] = "Target"
+L["STRING_TARGETS"] = "Targets"
+L["STRING_TARGETS_OTHER1"] = "Pets and Other Targets"
+L["STRING_TEXTURE"] = "Texture"
+L["STRING_TIME_OF_DEATH"] = "Death"
+L["STRING_TOOOLD"] = "could not be installed because your Details! version is too old."
+L["STRING_TOP"] = "top"
+L["STRING_TOP_TO_BOTTOM"] = "Top to Bottom"
+L["STRING_TOTAL"] = "Total"
+L["STRING_TRANSLATE_LANGUAGE"] = "Help Translate Details!"
+L["STRING_TUTORIAL_FULLY_DELETE_WINDOW"] = [=[You closed a window and you may reopen it at any time.
+To fully delete a window, go to Options -> Window: General -> Delete.]=]
+L["STRING_TUTORIAL_OVERALL1"] = [=[adjust overall settings on options panel > PvE/PvP
+overall data updates when you leave combat, use 'Dynamic Overall Damage' from 'Custom' to update on real time.]=]
+L["STRING_UNKNOW"] = "Unknown"
+L["STRING_UNKNOWSPELL"] = "Unknow Spell"
+L["STRING_UNLOCK"] = [=[Ungroup windows
+ in this button]=]
+L["STRING_UNLOCK_WINDOW"] = "unlock"
+L["STRING_UPTADING"] = "updating"
+L["STRING_VERSION_AVAILABLE"] = "a new version is available, download it from Twitch App or Curse website."
+L["STRING_VERSION_UPDATE"] = "new version: what's changed? click here"
+L["STRING_VOIDZONE_TOOLTIP"] = "Damage and Time"
+L["STRING_WAITPLUGIN"] = [=[waiting for
+plugins]=]
+L["STRING_WAVE"] = "wave"
+L["STRING_WELCOME_1"] = [=[|cFFFFFFFFWelcome to Details! Quick Setup Wizard|r
+
+Use the arrows in the bottom right to navigate.]=]
+L["STRING_WELCOME_11"] = "if you change your mind, you can always modify again through options panel"
+L["STRING_WELCOME_12"] = "Choose how fast the window get updated, you may also enable animations and real time updates for Hps and Dps numbers."
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_13"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_14"] = ""--]]
+L["STRING_WELCOME_15"] = "Tooltip for the update speed in the welcome window."
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_16"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_17"] = ""--]]
+L["STRING_WELCOME_2"] = "if you change your mind, you can always modify again through options panel"
+L["STRING_WELCOME_26"] = "Using the Interface: Stretch"
+L["STRING_WELCOME_27"] = [=[The highlighted button is the Stretcher. |cFFFFFF00Click|r and |cFFFFFF00drag up!|r.
+
+
+If the window is locked, the entire title bar becomes a stretch button.]=]
+L["STRING_WELCOME_28"] = "Using the Interface: Window Control"
+L["STRING_WELCOME_29"] = [=[Window Control basically does two things:
+
+- open a |cFFFFFF00new window|r.
+- show a menu with |cFFFFFF00closed windows|r which can be reopened at any time.]=]
+L["STRING_WELCOME_3"] = "Choose your DPS and HPS prefered method:"
+L["STRING_WELCOME_30"] = "Using the Interface: Bookmarks"
+L["STRING_WELCOME_31"] = [=[|cFFFFFF00Right clicking|r anywhere in the window shows the |cFFFFAA00Bookmark|r panel.
+
+|cFFFFFF00Right click again|r closes the panel or chooses another display if clicked on a icon.
+
+|cFFFFFF00Right click|r on title bar to open the 'All Displays' panel.
+
+|TInterface\AddOns\Details\images\key_ctrl:14:30:0:0:64:64:0:64:0:40|t + Right Click to close the window.]=]
+L["STRING_WELCOME_32"] = "Using the Interface: Group Windows"
+L["STRING_WELCOME_34"] = "Using the Interface: Expand Tooltip"
+L["STRING_WELCOME_36"] = "Using the Interface: Plugins"
+L["STRING_WELCOME_38"] = "Ready to Raid!"
+L["STRING_WELCOME_39"] = [=[Thank you for choosing Details!
+
+Feel free to always send feedbacks and bug reports to us.
+
+
+ |cFFFFAA00/details feedback|r]=]
+L["STRING_WELCOME_4"] = "Activity Time: "
+L["STRING_WELCOME_41"] = "Interface Entertainment Tweaks:"
+L["STRING_WELCOME_42"] = "Quick Appearance Settings"
+L["STRING_WELCOME_43"] = "Choose your prefered skin:"
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_44"] = ""--]]
+L["STRING_WELCOME_45"] = "For more customization options, check the options panel."
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_46"] = ""--]]
+L["STRING_WELCOME_5"] = "Effective Time: "
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_57"] = ""--]]
+L["STRING_WELCOME_58"] = [=[Predefined sets of appearance configurations.
+
+|cFFFFFF00Important|r: all settings can be modified later on the options panel.]=]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_59"] = ""--]]
+L["STRING_WELCOME_6"] = "the timer of each raid member is put on hold if their activity is ceased and back again to count when resumed."
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_60"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_61"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_62"] = ""--]]
+L["STRING_WELCOME_63"] = "Update DPS/HPS on Real Time"
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_64"] = ""--]]
+L["STRING_WELCOME_65"] = "Press Right Button!"
+L["STRING_WELCOME_66"] = [=[Drag a window near other to create a group.
+
+Grouped windows stretch and resize together.
+
+They also live happier as a couple.]=]
+L["STRING_WELCOME_67"] = [=[Press shift to expand player's tooltip to show all spells used.
+
+Ctrl for targets and Alt for Pets.]=]
+L["STRING_WELCOME_68"] = [=[Details! is infested by
+a plague called 'Plugins'.
+
+They are everywhere and
+helps you with many tasks.
+
+Examples are: threat meter, dps analysis, encounter summary, charts creation, and more.]=]
+L["STRING_WELCOME_69"] = "Skip"
+L["STRING_WELCOME_7"] = "used for rankings, this method uses the elapsed combat time for measure the DPS and HPS of all raid members."
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_70"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_71"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_72"] = ""--]]
+L["STRING_WELCOME_73"] = "Select the Alphabet or Region:"
+L["STRING_WELCOME_74"] = "Latin Alphabet"
+L["STRING_WELCOME_75"] = "Cyrillic Alphabet"
+L["STRING_WELCOME_76"] = "China"
+L["STRING_WELCOME_77"] = "Korea"
+L["STRING_WELCOME_78"] = "Taiwan"
+L["STRING_WELCOME_79"] = "Create 2nd Window"
+L["STRING_WINDOW_NOTFOUND"] = "No window found."
+L["STRING_WINDOW_NUMBER"] = "window number"
+L["STRING_WINDOW1ATACH_DESC"] = "To create a group of windows, drag window #2 near window #1."
+L["STRING_WIPE_ALERT"] = "Raid Leader Call: Wipe!"
+L["STRING_WIPE_ERROR1"] = "a wipe already has been call."
+L["STRING_WIPE_ERROR2"] = "we aren't in a raid encounter."
+L["STRING_WIPE_ERROR3"] = "couldn't end the encounter."
+L["STRING_YES"] = "Yes"
+
diff --git a/locales/Details-esES.lua b/locales/Details-esES.lua
index 037ecf4b..02fff72d 100644
--- a/locales/Details-esES.lua
+++ b/locales/Details-esES.lua
@@ -1,4 +1,2035 @@
local L = LibStub("AceLocale-3.0"):NewLocale("Details", "esES")
if not L then return end
-@localization(locale="esES", format="lua_additive_table")@
\ No newline at end of file
+L["ABILITY_ID"] = "ID de habilidad"
+L["STRING_"] = ""
+L["STRING_ABSORBED"] = "Absorbida"
+L["STRING_ACTORFRAME_NOTHING"] = "opps, no hay nada para informar"
+L["STRING_ACTORFRAME_REPORTAT"] = "en"
+L["STRING_ACTORFRAME_REPORTOF"] = "de"
+L["STRING_ACTORFRAME_REPORTTARGETS"] = "informe de objetivos de"
+L["STRING_ACTORFRAME_REPORTTO"] = "Informe para"
+L["STRING_ACTORFRAME_SPELLDETAILS"] = "Detalles de hechizos"
+L["STRING_ACTORFRAME_SPELLSOF"] = "Hechizos de"
+L["STRING_ACTORFRAME_SPELLUSED"] = "Todos hechizos usados"
+L["STRING_AGAINST"] = "contra"
+L["STRING_ALIVE"] = "Vivo"
+L["STRING_ALPHA"] = "Alpha"
+L["STRING_ANCHOR_BOTTOM"] = "Inferior"
+L["STRING_ANCHOR_BOTTOMLEFT"] = "Inferior izquierda"
+L["STRING_ANCHOR_BOTTOMRIGHT"] = "Inferior derecha"
+L["STRING_ANCHOR_LEFT"] = "Izquierda"
+L["STRING_ANCHOR_RIGHT"] = "Derecha"
+L["STRING_ANCHOR_TOP"] = "Superior"
+L["STRING_ANCHOR_TOPLEFT"] = "Superior izquierda"
+L["STRING_ANCHOR_TOPRIGHT"] = "Superior derecha"
+--[[Translation missing --]]
+--[[ L["STRING_ASCENDING"] = ""--]]
+L["STRING_ATACH_DESC"] = "Agrupar la ventana #%d con la ventana #%d."
+L["STRING_ATTRIBUTE_CUSTOM"] = "Personalizado"
+L["STRING_ATTRIBUTE_DAMAGE"] = "Daño"
+L["STRING_ATTRIBUTE_DAMAGE_BYSPELL"] = "Daño recibido por cada habilidad"
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS"] = ""--]]
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS_REPORT"] = "Daño y tiempo activo de perjuicios"
+L["STRING_ATTRIBUTE_DAMAGE_DONE"] = "Daño infligido"
+L["STRING_ATTRIBUTE_DAMAGE_DPS"] = "Daño por segundo"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES"] = "Daño de Enemigos Recibido"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES_DONE"] = "Daño enemigo realizado"
+L["STRING_ATTRIBUTE_DAMAGE_FRAGS"] = "Matanzas"
+L["STRING_ATTRIBUTE_DAMAGE_FRIENDLYFIRE"] = "Fuego amigo"
+L["STRING_ATTRIBUTE_DAMAGE_TAKEN"] = "Daño recibido"
+L["STRING_ATTRIBUTE_ENERGY"] = "Recursos"
+L["STRING_ATTRIBUTE_ENERGY_ALTERNATEPOWER"] = "Poder alternativo"
+L["STRING_ATTRIBUTE_ENERGY_ENERGY"] = "Energía generada"
+L["STRING_ATTRIBUTE_ENERGY_MANA"] = "Mana restaurado"
+L["STRING_ATTRIBUTE_ENERGY_RAGE"] = "Ira generada"
+L["STRING_ATTRIBUTE_ENERGY_RESOURCES"] = "Otros recursos"
+L["STRING_ATTRIBUTE_ENERGY_RUNEPOWER"] = "Poder runico generado"
+L["STRING_ATTRIBUTE_HEAL"] = "Sanación"
+L["STRING_ATTRIBUTE_HEAL_ABSORBED"] = "Sanación absorbida"
+L["STRING_ATTRIBUTE_HEAL_DONE"] = "Sanación realizada"
+L["STRING_ATTRIBUTE_HEAL_ENEMY"] = "Sanación de Enemigos"
+L["STRING_ATTRIBUTE_HEAL_HPS"] = "Sanación por segundo"
+L["STRING_ATTRIBUTE_HEAL_OVERHEAL"] = "Sobresanacion"
+L["STRING_ATTRIBUTE_HEAL_PREVENT"] = "Daño prevenido"
+L["STRING_ATTRIBUTE_HEAL_TAKEN"] = "Sanación recibida"
+L["STRING_ATTRIBUTE_MISC"] = "Misceláneo"
+L["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"] = "Bufos arriba"
+L["STRING_ATTRIBUTE_MISC_CCBREAK"] = "CC interrumpidos"
+L["STRING_ATTRIBUTE_MISC_DEAD"] = "Muertes"
+L["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"] = "Tiempo activos de perjuicios "
+L["STRING_ATTRIBUTE_MISC_DEFENSIVE_COOLDOWNS"] = "Reutilizaciones"
+L["STRING_ATTRIBUTE_MISC_DISPELL"] = "Disipaciones"
+L["STRING_ATTRIBUTE_MISC_INTERRUPT"] = "Interrupciones"
+L["STRING_ATTRIBUTE_MISC_RESS"] = "Resurrecion"
+L["STRING_AUTO"] = "auto"
+L["STRING_AUTOSHOT"] = "Disparo automático"
+L["STRING_AVERAGE"] = "Media"
+L["STRING_BLOCKED"] = "Bloqueado"
+L["STRING_BOTTOM"] = "inferior"
+L["STRING_BOTTOM_TO_TOP"] = "Abajo hacia arriba"
+L["STRING_CAST"] = "lanzar"
+--[[Translation missing --]]
+--[[ L["STRING_CAUGHT"] = ""--]]
+L["STRING_CCBROKE"] = "CC removido"
+L["STRING_CENTER"] = "centro"
+L["STRING_CENTER_UPPER"] = "Centro"
+L["STRING_CHANGED_TO_CURRENT"] = "Segmento cambiado al actual"
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_PRINT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_SAY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_WHISPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_WHISPER_TARGET_COOLDOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_YELL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CLICK_REPORT_LINE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CLICK_REPORT_LINE2"] = ""--]]
+L["STRING_CLOSEALL"] = "Todos las ventanas de Detalles se ocultan. Usar '/details new' para mostrarlos de nuevo."
+--[[Translation missing --]]
+--[[ L["STRING_COLOR"] = ""--]]
+L["STRING_COMMAND_LIST"] = "lista de comandos"
+L["STRING_COOLTIP_NOOPTIONS"] = "ningún opciones"
+--[[Translation missing --]]
+--[[ L["STRING_CREATEAURA"] = ""--]]
+L["STRING_CRITICAL_HITS"] = "Golpes críticos"
+L["STRING_CRITICAL_ONLY"] = "crítico"
+L["STRING_CURRENT"] = "Actual"
+L["STRING_CURRENTFIGHT"] = "Combate actual"
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_ALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_ALL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_DPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_DPS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_HPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_HPS_DESC"] = ""--]]
+L["STRING_CUSTOM_ATTRIBUTE_DAMAGE"] = "Daño"
+L["STRING_CUSTOM_ATTRIBUTE_HEAL"] = "Sanación"
+L["STRING_CUSTOM_ATTRIBUTE_SCRIPT"] = "Script personalizado"
+L["STRING_CUSTOM_AUTHOR"] = "Autór:"
+L["STRING_CUSTOM_AUTHOR_DESC"] = "El autór de esta visualización."
+L["STRING_CUSTOM_CANCEL"] = "Cancelar"
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_CC_DONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_CC_RECEIVED"] = ""--]]
+L["STRING_CUSTOM_CREATE"] = "Crear"
+L["STRING_CUSTOM_CREATED"] = "La nueva visualización se ha creado."
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONSHIELDS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONSKULL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONSKULL_DESC"] = ""--]]
+L["STRING_CUSTOM_DESCRIPTION"] = "Desc:"
+L["STRING_CUSTOM_DESCRIPTION_DESC"] = "Descripción de la funcionalidad de esta visualización."
+L["STRING_CUSTOM_DONE"] = "Guardar"
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DTBS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DTBS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DYNAMICOVERAL"] = ""--]]
+L["STRING_CUSTOM_EDIT"] = "Editar"
+L["STRING_CUSTOM_EDIT_SEARCH_CODE"] = "Editar código de busca"
+L["STRING_CUSTOM_EDIT_TOOLTIP_CODE"] = "Editar código de descripción"
+L["STRING_CUSTOM_EDITCODE_DESC"] = "Crear su propio código de visualización. Esta es una opción para usarios avanzados."
+L["STRING_CUSTOM_EDITTOOLTIP_DESC"] = "Este código se ejecuta al pasar el ratón en una fila con esta visualización."
+L["STRING_CUSTOM_ENEMY_DT"] = " Daño recibido"
+L["STRING_CUSTOM_EXPORT"] = "Exportir"
+L["STRING_CUSTOM_FUNC_INVALID"] = "El script personalizato no es valido y no puede actualizar la ventana."
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT"] = "Piedra de salud usado"
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT_DESC"] = "Mostrar los miembres del grupo o banda que utilizan una piedra de salud mientras del encuentro."
+L["STRING_CUSTOM_ICON"] = "Icono:"
+L["STRING_CUSTOM_IMPORT"] = "Importar"
+L["STRING_CUSTOM_IMPORT_ALERT"] = "Visualización cargada, clic 'Importar' para confirmar."
+L["STRING_CUSTOM_IMPORT_BUTTON"] = "Importar"
+L["STRING_CUSTOM_IMPORT_ERROR"] = "Importación fracasó -- cadena no valido."
+L["STRING_CUSTOM_IMPORTED"] = "La visualización se ha importado con éxito."
+L["STRING_CUSTOM_LONGNAME"] = "El nombre no puede tener más de 32 caracteres."
+L["STRING_CUSTOM_MYSPELLS"] = "Mis habilidades"
+L["STRING_CUSTOM_MYSPELLS_DESC"] = "Muestra tus habilidades en la ventana"
+L["STRING_CUSTOM_NAME"] = "Nombre:"
+L["STRING_CUSTOM_NAME_DESC"] = "Introducir un nombre para la nueva visualización personalizada."
+L["STRING_CUSTOM_NEW"] = "Crear nueva visualización"
+L["STRING_CUSTOM_PASTE"] = "Empastar aquí:"
+L["STRING_CUSTOM_POT_DEFAULT"] = "Poción usado"
+L["STRING_CUSTOM_POT_DEFAULT_DESC"] = "Mostrar los miembres del grupo o banda que utilizan una poción mientras del encuentro."
+L["STRING_CUSTOM_REMOVE"] = "Eliminar"
+L["STRING_CUSTOM_REPORT"] = "(personalizado)"
+L["STRING_CUSTOM_SAVE"] = "Guardar cambios"
+L["STRING_CUSTOM_SAVED"] = "La visualización se ha guardado."
+L["STRING_CUSTOM_SHORTNAME"] = "El nombre debe tener al menos 5 caracteres."
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SKIN_TEXTURE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SKIN_TEXTURE_DESC"] = ""--]]
+L["STRING_CUSTOM_SOURCE"] = "Fuente:"
+L["STRING_CUSTOM_SOURCE_DESC"] = [=[Qué cause el efecto.
+
+El botón a la dercha muestra una lista de PNJs de los encuentros de banda.]=]
+L["STRING_CUSTOM_SPELLID"] = "ID de hechizo:"
+L["STRING_CUSTOM_SPELLID_DESC"] = [=[Opcional. El hechizo que la fuente utiliza para aplicar el efecto en el objetivo.
+
+El botón a la derecha muestra una lista de PNJs de los encuentros de banda.]=]
+L["STRING_CUSTOM_TARGET"] = "Objetivo:"
+L["STRING_CUSTOM_TARGET_DESC"] = [=[Este está el objetivo del fuente.
+
+El botón a la derecha muestra una lista de PNJs de los encuentros de banda.]=]
+L["STRING_CUSTOM_TEMPORARILY"] = " (|cFFFFC000temporalmente|r)"
+L["STRING_DAMAGE"] = "Daño"
+L["STRING_DAMAGE_DPS_IN"] = "DPS recibido por"
+L["STRING_DAMAGE_FROM"] = "Recibió daño por"
+L["STRING_DAMAGE_TAKEN_FROM"] = "Daño recibido por"
+L["STRING_DAMAGE_TAKEN_FROM2"] = "infligió daño por"
+L["STRING_DEFENSES"] = "Defensas"
+--[[Translation missing --]]
+--[[ L["STRING_DESCENDING"] = ""--]]
+L["STRING_DETACH_DESC"] = "Desagrupar ventanas"
+--[[Translation missing --]]
+--[[ L["STRING_DISCARD"] = ""--]]
+L["STRING_DISPELLED"] = "Bufos/debufos disipados"
+L["STRING_DODGE"] = "Esquivado"
+L["STRING_DOT"] = " (DoT)"
+L["STRING_DPS"] = "DPS"
+L["STRING_EMPTY_SEGMENT"] = "Segmento vacío"
+--[[Translation missing --]]
+--[[ L["STRING_ENABLED"] = ""--]]
+L["STRING_ENVIRONMENTAL_DROWNING"] = "Entorno (Ahogamiento)"
+L["STRING_ENVIRONMENTAL_FALLING"] = "Entorno (Caída)"
+L["STRING_ENVIRONMENTAL_FATIGUE"] = "Entorno (Fatiga)"
+L["STRING_ENVIRONMENTAL_FIRE"] = "Entorno (Fuego)"
+L["STRING_ENVIRONMENTAL_LAVA"] = "Entorno (Lava)"
+L["STRING_ENVIRONMENTAL_SLIME"] = "Entorno (Cieno)"
+L["STRING_EQUILIZING"] = "Compartiendo datos de encuentro"
+L["STRING_ERASE"] = "eliminar"
+L["STRING_ERASE_DATA"] = "Eliminar datos"
+L["STRING_ERASE_DATA_OVERALL"] = "Eliminar datos globales"
+L["STRING_ERASE_IN_COMBAT"] = "Eliminar todos los datos después del combate actual."
+L["STRING_EXAMPLE"] = "Ejemplo"
+--[[Translation missing --]]
+--[[ L["STRING_EXPLOSION"] = ""--]]
+L["STRING_FAIL_ATTACKS"] = "Ataques fracasados"
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_CURSE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_MMOC_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_PREFERED_SITE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_SEND_FEEDBACK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_WOWI_DESC"] = ""--]]
+L["STRING_FIGHTNUMBER"] = "Combate #"
+L["STRING_FORGE_BUTTON_ALLSPELLS"] = "Todas las habilidades"
+L["STRING_FORGE_BUTTON_ALLSPELLS_DESC"] = "Lista todas las habilidades de los jugadores y npcs"
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_BWTIMERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_BWTIMERS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_DBMTIMERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_DBMTIMERS_DESC"] = ""--]]
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS"] = "Habilidades de los jefes"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS_DESC"] = "Muestra solo las habilidades de los encuentros de bandas y mazmorras"
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENEMIES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENEMIES_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PETS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PETS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PLAYERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PLAYERS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_ENABLEPLUGINS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_BARTEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_CASTERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_ENCOUNTERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_ENEMYNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_OWNERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_PETNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_PLAYERNAME"] = ""--]]
+L["STRING_FORGE_FILTER_SPELLNAME"] = "Nombre de la habilidad"
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_BARTEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_CASTER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_CLASS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_CREATEAURA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ENCOUNTERID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ENCOUNTERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_EVENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_FLAG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_GUID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_INDEX"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_NAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_NPCID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_OWNER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_SCHOOL"] = ""--]]
+L["STRING_FORGE_HEADER_SPELLID"] = "Id de habilidad"
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_TIMER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_VIDEO"] = ""--]]
+L["STRING_FREEZE"] = "Este segmento no es disponible ahora."
+L["STRING_FROM"] = "Por"
+L["STRING_GERAL"] = "General"
+L["STRING_GLANCING"] = "Refilón"
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_BOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_DATABASEERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_DIFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_GUILD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE_INDIVIDUAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE_PLAYER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_ROLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_SHOWHISTORY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_SHOWRANK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_SYNCBUTTONTEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_TUTORIAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_WINDOWALERT"] = ""--]]
+L["STRING_HEAL"] = "Sanación"
+L["STRING_HEAL_ABSORBED"] = "Sanación absorbida"
+L["STRING_HEAL_CRIT"] = "Sanación crítica"
+L["STRING_HEALING_FROM"] = "Sanación recibida por"
+L["STRING_HEALING_HPS_FROM"] = "HPS recibida por"
+L["STRING_HITS"] = "Golpes"
+L["STRING_HPS"] = "HPS"
+L["STRING_IMAGEEDIT_ALPHA"] = "Transparencia"
+L["STRING_IMAGEEDIT_CROPBOTTOM"] = "Cortar la inferior"
+L["STRING_IMAGEEDIT_CROPLEFT"] = "Cortar la izquierda"
+L["STRING_IMAGEEDIT_CROPRIGHT"] = "Cortar la derecha"
+L["STRING_IMAGEEDIT_CROPTOP"] = "Cortar la superior"
+L["STRING_IMAGEEDIT_DONE"] = "Guardar"
+L["STRING_IMAGEEDIT_FLIPH"] = "Poner al revés horizontalmente"
+L["STRING_IMAGEEDIT_FLIPV"] = "Poner al revés verticalmente"
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TAB_AVOIDANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TAB_COMPARISON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TAB_SUMMARY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TUTORIAL_COMPARISON1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INSTANCE_CHAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INSTANCE_LIMIT"] = ""--]]
+L["STRING_INTERFACE_OPENOPTIONS"] = "Mostrar opciones"
+L["STRING_ISA_PET"] = "Esta unidad es una mascota"
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_BOOKMARK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_BOOKMARK_NUMBER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_RESET_SEGMENTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SCROLL_DOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SCROLL_UP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SCROLLING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SEGMENTCONTROL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_TOGGLE_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_TOGGLE_WINDOWS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_WINDOW_CONTROL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_WINDOW_REPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_WINDOW_REPORT_HEADER"] = ""--]]
+L["STRING_KILLED"] = "Asesinado"
+--[[Translation missing --]]
+--[[ L["STRING_LAST_COOLDOWN"] = ""--]]
+L["STRING_LEFT"] = "izquierda"
+L["STRING_LEFT_CLICK_SHARE"] = "Hacer clic para enviar un informe."
+--[[Translation missing --]]
+--[[ L["STRING_LEFT_TO_RIGHT"] = ""--]]
+L["STRING_LOCK_DESC"] = "Bloquear o desbloquear la ventana"
+L["STRING_LOCK_WINDOW"] = "Bloquear"
+L["STRING_MASTERY"] = "Maestría"
+L["STRING_MAXIMUM"] = "Máximo"
+--[[Translation missing --]]
+--[[ L["STRING_MAXIMUM_SHORT"] = ""--]]
+L["STRING_MEDIA"] = "Medios"
+L["STRING_MELEE"] = "Mano a mano"
+L["STRING_MEMORY_ALERT_BUTTON"] = "Entendí"
+L["STRING_MEMORY_ALERT_TEXT1"] = "Details! utiliza una gran cantidad de memoria, pero, |cFFFF8800contrariamente a la creencia popular de|r, el uso de memoria por los complementos |cFFFF8800no afecta|r en nada el rendimiento del juego o el FPS."
+L["STRING_MEMORY_ALERT_TEXT2"] = "Por lo tanto, si usted ve Details! usando mucha memoria, no se asuste :D! |cFFFF8800Está todo bien|r y, una parte de esta memoria está aun |cFFFF8800utilizado en cachés|r para hacer el addon aún más rápido."
+L["STRING_MEMORY_ALERT_TEXT3"] = "Sin embargo, si es su deseo de saber |cFFFF8800addons que son más 'pesado'|r o que están disminuyendo más su FPS, instale el complemento: '|cFFFFFF00AddOns Cpu Usage|r'."
+L["STRING_MEMORY_ALERT_TITLE"] = "¡Por favor lea cuidadosamente!"
+L["STRING_MENU_CLOSE_INSTANCE"] = "Cerrar esta ventana"
+L["STRING_MENU_CLOSE_INSTANCE_DESC"] = "Una ventana cerrada se puede mostrar de nuevo en cualquier momento por el uso del botón # en la ventana."
+L["STRING_MENU_CLOSE_INSTANCE_DESC2"] = "Para eliminar una ventana permanentemente, consultar la sección miscelánea en las opciones."
+--[[Translation missing --]]
+--[[ L["STRING_MENU_INSTANCE_CONTROL"] = ""--]]
+L["STRING_MINIMAP_TOOLTIP1"] = "|cFFCFCFCFHacer clic|r: mostrar opciones"
+L["STRING_MINIMAP_TOOLTIP11"] = "|cFFCFCFCFHacer clic|r: eliminar todos segmentos"
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAP_TOOLTIP12"] = ""--]]
+L["STRING_MINIMAP_TOOLTIP2"] = "|cFFCFCFCFHacer clic derecho|r: menú rapido"
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAPMENU_CLOSEALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAPMENU_HIDEICON"] = ""--]]
+L["STRING_MINIMAPMENU_LOCK"] = "Bloquear"
+L["STRING_MINIMAPMENU_NEWWINDOW"] = "Crear nueva ventana"
+L["STRING_MINIMAPMENU_REOPENALL"] = "Mostrar todas de nuevo"
+L["STRING_MINIMAPMENU_UNLOCK"] = "Desbloquear"
+L["STRING_MINIMUM"] = "Mínimo"
+--[[Translation missing --]]
+--[[ L["STRING_MINIMUM_SHORT"] = ""--]]
+L["STRING_MINITUTORIAL_BOOKMARK1"] = "¡Haga clic derecho en cualquier lugar de la ventana para abrir los marcadores!"
+L["STRING_MINITUTORIAL_BOOKMARK2"] = "Marcadores da acceso rápido a pantallas favoritas."
+L["STRING_MINITUTORIAL_BOOKMARK3"] = "Haga clic derecho para cerrar el panel de marcadores."
+L["STRING_MINITUTORIAL_BOOKMARK4"] = "No mostrar esto de nuevo."
+L["STRING_MINITUTORIAL_CLOSECTRL1"] = "|cFFFFFF00Ctrl + Haga clic derecho |r cierra la ventana!"
+--[[Translation missing --]]
+--[[ L["STRING_MINITUTORIAL_CLOSECTRL2"] = ""--]]
+L["STRING_MINITUTORIAL_OPTIONS_PANEL1"] = "Qué ventana se está editando."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL2"] = "Cuando está marcada, también se cambian todas las ventanas en el grupo."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL3"] = [=[Para crear un grupo, arrastre la ventana # 2 cerca de la ventana # 1.
+
+Romper un clic en el botón de grupo desagrupar.]=]
+L["STRING_MINITUTORIAL_OPTIONS_PANEL4"] = "Pon a prueba tu configuración creando barras de prueba."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL5"] = "Cuando Edición de grupo está habilitada, se cambian todas las ventanas en un grupo."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL6"] = "Seleccione aquí de qué ventana desea cambiar la apariencia."
+--[[Translation missing --]]
+--[[ L["STRING_MINITUTORIAL_WINDOWS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINITUTORIAL_WINDOWS2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MIRROR_IMAGE"] = ""--]]
+L["STRING_MISS"] = "Fallado"
+L["STRING_MODE_ALL"] = "Todos"
+L["STRING_MODE_GROUP"] = "Grupo & Banda"
+--[[Translation missing --]]
+--[[ L["STRING_MODE_OPENFORGE"] = ""--]]
+L["STRING_MODE_PLUGINS"] = "plugins"
+L["STRING_MODE_RAID"] = "Plugins: banda"
+L["STRING_MODE_SELF"] = "Plugins: sin grupo"
+L["STRING_MORE_INFO"] = "Consultar la caja a la derecha para más información."
+--[[Translation missing --]]
+--[[ L["STRING_MULTISTRIKE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MULTISTRIKE_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MUSIC_DETAILS_ROBERTOCARLOS"] = ""--]]
+L["STRING_NEWROW"] = "esperando para actualizar..."
+--[[Translation missing --]]
+--[[ L["STRING_NEWS_REINSTALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NEWS_TITLE"] = ""--]]
+L["STRING_NO"] = "No"
+L["STRING_NO_DATA"] = "Los datos ya se han limpiados."
+L["STRING_NO_SPELL"] = "No se ha usado ninguna habilidad"
+L["STRING_NO_TARGET"] = "No se encuentra un objetivo."
+L["STRING_NO_TARGET_BOX"] = "Ningún objetivos disponibles"
+L["STRING_NOCLOSED_INSTANCES"] = [=[No hay ningún ventanas cerradas.
+Hacer clic para crear una nueva ventana.]=]
+--[[Translation missing --]]
+--[[ L["STRING_NOLAST_COOLDOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NOMORE_INSTANCES"] = ""--]]
+L["STRING_NORMAL_HITS"] = "Golpes normales"
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_ARABIC_MYRIAD_EASTASIA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_ARABIC_WESTERN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_ARABIC_WESTERN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_MYRIAD_EASTASIA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OFFHAND_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LALPHA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LSELECT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_UALPHA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_UANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_UENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_USELECT_DESC"] = ""--]]
+L["STRING_OPTIONS_ADVANCED"] = "Avanzado"
+L["STRING_OPTIONS_ALPHAMOD_ANCHOR"] = "Modificadores de opacidad:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYS_USE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYS_USE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYSSHOWPLAYERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYSSHOWPLAYERS_DESC"] = ""--]]
+L["STRING_OPTIONS_ANCHOR"] = "Lado"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATEBARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATEBARS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATESCROLL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATESCROLL_DESC"] = ""--]]
+L["STRING_OPTIONS_APPEARANCE"] = "Aparencia"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT"] = "Configuración del texto del título"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT_DESC"] = "Estas opciones configurar el texto del título de la ventana."
+L["STRING_OPTIONS_AUTO_SWITCH"] = "Todos roles |cFFFFAA00(en combate)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_COMBAT"] = "|cFFFFAA00(en combate)|r"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_DAMAGER_DESC"] = ""--]]
+L["STRING_OPTIONS_AUTO_SWITCH_DESC"] = [=[Al entrar en combate, esta ventana muestra el atributo o plugin seleccionado.
+
+|cffffff00¡Advertencia!|r El atributo específico para cada rol anula el atributo seleccionado aquí.]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_HEALER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_TANK_DESC"] = ""--]]
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE"] = "Después de limpiar"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_WIPE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AVATAR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AVATAR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AVATAR_DESC"] = ""--]]
+L["STRING_OPTIONS_BAR_BACKDROP_ANCHOR"] = "Borde:"
+L["STRING_OPTIONS_BAR_BACKDROP_COLOR_DESC"] = "Cambiar el color del borde."
+L["STRING_OPTIONS_BAR_BACKDROP_ENABLED_DESC"] = "Activar o desactivar los bordes de las filas."
+L["STRING_OPTIONS_BAR_BACKDROP_SIZE_DESC"] = "Cambiar el tamaño del borde."
+L["STRING_OPTIONS_BAR_BACKDROP_TEXTURE_DESC"] = "Escoger la textura del borde."
+L["STRING_OPTIONS_BAR_BCOLOR"] = "Color del fondo"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BTEXTURE_DESC"] = ""--]]
+L["STRING_OPTIONS_BAR_COLOR_DESC"] = [=[Cambiar el color de la textura.
+Esta opción no se aplica si está activada la opción para colorear por clase.]=]
+L["STRING_OPTIONS_BAR_COLORBYCLASS"] = "Colorear por clase"
+L["STRING_OPTIONS_BAR_COLORBYCLASS_DESC"] = "Colorear la barra por el clase de la unidad en vez del uso del color seleccionado."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_FOLLOWING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_FOLLOWING_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_FOLLOWING_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_GROW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_GROW_DESC"] = ""--]]
+L["STRING_OPTIONS_BAR_HEIGHT"] = "Altura"
+L["STRING_OPTIONS_BAR_HEIGHT_DESC"] = "Cambiar la altura de la barra."
+L["STRING_OPTIONS_BAR_ICONFILE"] = "Archivo del icono"
+L["STRING_OPTIONS_BAR_ICONFILE_DESC"] = [=[Ruta del archivo para un icono personalizado.
+
+La imagen debe ser un archivo .tga con las dimensiones de 256x256 pixels y un canal de opacidad.]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE_DESC2"] = ""--]]
+L["STRING_OPTIONS_BAR_ICONFILE1"] = "Ningún icono"
+L["STRING_OPTIONS_BAR_ICONFILE2"] = "Defecto"
+L["STRING_OPTIONS_BAR_ICONFILE3"] = "Defecto (negro y blanco)"
+L["STRING_OPTIONS_BAR_ICONFILE4"] = "Defecto (transparente)"
+L["STRING_OPTIONS_BAR_ICONFILE5"] = "Iconos redondeados"
+L["STRING_OPTIONS_BAR_ICONFILE6"] = "Defecto (negro y blanco transparente)"
+L["STRING_OPTIONS_BAR_SPACING"] = "Espacamiento"
+L["STRING_OPTIONS_BAR_SPACING_DESC"] = "Cambiar el tamaño del espacio entre cada fila."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_TEXTURE_DESC"] = ""--]]
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM"] = "Texto personalizado activado"
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM_DESC"] = "Si activada, se formate el texto a la izquierda por las reglas definidas en el cuadro."
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2"] = ""
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARORIENTATION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARORIENTATION_DESC"] = ""--]]
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM"] = "Texto personalizado activado"
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM_DESC"] = "Si activada, se formate el texto a la derecho por las reglas definidas en el cuadro."
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2"] = ""
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2_DESC"] = ""--]]
+L["STRING_OPTIONS_BARS"] = "Configuración de barras"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE_DESC"] = ""--]]
+L["STRING_OPTIONS_BARS_DESC"] = "Estas opciónes cambien la aparencia de las barras."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARSORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARSORT_DESC"] = ""--]]
+L["STRING_OPTIONS_BARSTART"] = "Barra después del icono"
+L["STRING_OPTIONS_BARSTART_DESC"] = "La barra comenza al borde derecho del icono. Desactivar para que la barra comenza al borde izquierda, en caso de iconos transparentes."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARUR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARUR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_ALL_ALLY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_ALL_ALLY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_UNIQUE_SEGMENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_UNIQUE_SEGMENT_DESC"] = ""--]]
+L["STRING_OPTIONS_CAURAS"] = "Recoger auras"
+L["STRING_OPTIONS_CAURAS_DESC"] = [=[Activar la recogida de:
+
+- |cFFFFFF00Tiempos activados de bufos|r
+- |cFFFFFF00Tiempos activados de debufos|r
+- |cFFFFFF00Void Zones|r
+- |cFFFFFF00Reutiliziaciones|r]=]
+L["STRING_OPTIONS_CDAMAGE"] = "Recoger daño"
+L["STRING_OPTIONS_CDAMAGE_DESC"] = [=[Activar la recogida de:
+
+- |cFFFFFF00Daño infligido|r
+- |cFFFFFF00Daño por segundo|r
+- |cFFFFFF00Fuego amigo|r
+- |cFFFFFF00Daño recibido|r]=]
+L["STRING_OPTIONS_CENERGY"] = "Recoger poder"
+L["STRING_OPTIONS_CENERGY_DESC"] = [=[Activar la recogida de:
+
+- |cFFFFFF00Mana restaurada|r
+- |cFFFFFF00Ira generada|r
+- |cFFFFFF00Energía generada|r
+- |cFFFFFF00Poder runico generado|r]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGE_CLASSCOLORS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGE_CLASSCOLORS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGECOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGELOG"] = ""--]]
+L["STRING_OPTIONS_CHART_ADD"] = "Añadir datos"
+L["STRING_OPTIONS_CHART_ADD2"] = "Añadir"
+L["STRING_OPTIONS_CHART_ADDAUTHOR"] = "Autór: "
+L["STRING_OPTIONS_CHART_ADDCODE"] = "Código: "
+L["STRING_OPTIONS_CHART_ADDICON"] = "Icono: "
+L["STRING_OPTIONS_CHART_ADDNAME"] = "Nombre: "
+L["STRING_OPTIONS_CHART_ADDVERSION"] = "Versión: "
+L["STRING_OPTIONS_CHART_AUTHOR"] = "Autór"
+L["STRING_OPTIONS_CHART_AUTHORERROR"] = "El nombre del autór no es válido."
+L["STRING_OPTIONS_CHART_CANCEL"] = "Cancelar"
+L["STRING_OPTIONS_CHART_CLOSE"] = "Cerrar"
+L["STRING_OPTIONS_CHART_CODELOADED"] = "El código ya está cargado y no se puede mostrar."
+L["STRING_OPTIONS_CHART_EDIT"] = "Editar código"
+L["STRING_OPTIONS_CHART_EXPORT"] = "Exportir"
+L["STRING_OPTIONS_CHART_FUNCERROR"] = "La función no es válida."
+L["STRING_OPTIONS_CHART_ICON"] = "Icono"
+L["STRING_OPTIONS_CHART_IMPORT"] = "Importar"
+L["STRING_OPTIONS_CHART_IMPORTERROR"] = "Los datos de importación no son válidos."
+L["STRING_OPTIONS_CHART_NAME"] = "Nombre"
+L["STRING_OPTIONS_CHART_NAMEERROR"] = "El nombre no es válido."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_PLUGINWARNING"] = ""--]]
+L["STRING_OPTIONS_CHART_REMOVE"] = "Eliminar"
+L["STRING_OPTIONS_CHART_SAVE"] = "Guardar"
+L["STRING_OPTIONS_CHART_VERSION"] = "Versión"
+L["STRING_OPTIONS_CHART_VERSIONERROR"] = "La versión no es válida."
+L["STRING_OPTIONS_CHEAL"] = "Recoger sanación"
+L["STRING_OPTIONS_CHEAL_DESC"] = [=[Activar la recogida de:
+
+- |cFFFFFF00Sanación realizada|r
+- |cFFFFFF00Absorción|r
+- |cFFFFFF00Sanación por segundo|r
+- |cFFFFFF00Overhealing|r
+- |cFFFFFF00Sanación recibida|r
+- |cFFFFFF00Enemigos curados|r
+- |cFFFFFF00Daño impedido|r]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLASSCOLOR_MODIFY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLASSCOLOR_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLEANUP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLEANUP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS_DESC"] = ""--]]
+L["STRING_OPTIONS_CLOUD"] = "Recogida por grupo"
+L["STRING_OPTIONS_CLOUD_DESC"] = "Los datos de tipos desactivados localmente se recogerán por los otros miembres de la banda."
+L["STRING_OPTIONS_CMISC"] = "Recoger miscelánea"
+L["STRING_OPTIONS_CMISC_DESC"] = [=[Activar la recogida de:
+
+- |cFFFFFF00CC interrumpido|r
+- |cFFFFFF00Disipaciones|r
+- |cFFFFFF00Interrupciones|r
+- |cFFFFFF00Resurrecciones|r
+- |cFFFFFF00Deaths|r]=]
+L["STRING_OPTIONS_COLORANDALPHA"] = "Color y opacidad"
+L["STRING_OPTIONS_COLORFIXED"] = "Color fijado"
+L["STRING_OPTIONS_COMBAT_ALPHA"] = "Cuando cambiar"
+L["STRING_OPTIONS_COMBAT_ALPHA_1"] = "Nunca"
+L["STRING_OPTIONS_COMBAT_ALPHA_2"] = "En combate"
+L["STRING_OPTIONS_COMBAT_ALPHA_3"] = "Fuera de combate"
+L["STRING_OPTIONS_COMBAT_ALPHA_4"] = "Sin grupo"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_7"] = ""--]]
+L["STRING_OPTIONS_COMBAT_ALPHA_DESC"] = [=[Escgoer como se afecta la opacidad de la ventana por combate.
+
+|cFFFFFF00Ningún|r: La opacidad no se afecta por combate.
+
+|cFFFFFF00En combate|r: La opacidad espicificada se aplica a la ventana mientras el combate.
+
+|cFFFFFF00Fuera de combate|r: La opacidad espicificada se aplica a la ventana fuera del combate.
+
+|cFFFFFF00Sin grupo|r: La opacidad espicificada se aplica a la ventana cuando no está en un grupo o banda.
+
+|cFFFFFF00¡Advertencia!|r Esta opción se anula la opacidad especificada por la opción Opacidad automáticamente.]=]
+L["STRING_OPTIONS_COMBATTWEEKS"] = "Cambios para combate"
+L["STRING_OPTIONS_COMBATTWEEKS_DESC"] = "Cambiar como se funciona Detailles con algunos aspectos de combate."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CONFIRM_ERASE"] = ""--]]
+L["STRING_OPTIONS_CUSTOMSPELL_ADD"] = "Añadir hechizo"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE"] = "Editar configuración de las habilidades"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE_DESC"] = "Este panel te permite modificar el nombre e icono de las habilidades"
+L["STRING_OPTIONS_DATABROKER"] = "Data Broker:"
+L["STRING_OPTIONS_DATABROKER_TEXT"] = "Texto"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD7"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD8"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD9"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT1_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATACHARTTITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATACHARTTITLE_DESC"] = ""--]]
+L["STRING_OPTIONS_DATACOLLECT_ANCHOR"] = "Tipos de datos:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLIMIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLIMIT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLOG_MINHEALING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLOG_MINHEALING_DESC"] = ""--]]
+L["STRING_OPTIONS_DESATURATE_MENU"] = "Desaturar menú"
+L["STRING_OPTIONS_DESATURATE_MENU_DESC"] = "Mostrar los iconos en el menú en blanco y negro."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT_DESC"] = ""--]]
+L["STRING_OPTIONS_DISABLE_GROUPS"] = "Desactivar agrupar"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_GROUPS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_LOCK_RESIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_LOCK_RESIZE_DESC"] = ""--]]
+L["STRING_OPTIONS_DISABLE_RESET"] = "Desactivar botón para restablecer"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_RESET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLED_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DTAKEN_EVERYTHING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DTAKEN_EVERYTHING_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED3"] = ""--]]
+L["STRING_OPTIONS_EDITIMAGE"] = "Editar imagen"
+L["STRING_OPTIONS_EDITINSTANCE"] = "Configurando ventana:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ERASECHARTDATA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ERASECHARTDATA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_EXTERNALS_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_EXTERNALS_TITLE2"] = ""--]]
+L["STRING_OPTIONS_GENERAL"] = "Opciones generales"
+L["STRING_OPTIONS_GENERAL_ANCHOR"] = "General:"
+L["STRING_OPTIONS_HIDE_ICON"] = "Ocultar icono"
+L["STRING_OPTIONS_HIDE_ICON_DESC"] = [=[Ocultar el icono en la esquima superior izquierda.
+
+Esto puede verse mejor con algos skins.]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HIDECOMBATALPHA_DESC"] = ""--]]
+L["STRING_OPTIONS_HOTCORNER"] = "Mostrar botón"
+L["STRING_OPTIONS_HOTCORNER_ACTION"] = "al clic"
+L["STRING_OPTIONS_HOTCORNER_ACTION_DESC"] = "Qué hacer al clic en la barra de la esquina activa."
+L["STRING_OPTIONS_HOTCORNER_ANCHOR"] = "Esquina activa:"
+L["STRING_OPTIONS_HOTCORNER_DESC"] = "Mostrar o ocultar el botón el la esquina activa."
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK"] = "Clic rapido"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_DESC"] = [=[Activar o desactivar la funcionalidad 'clic rapido' para las esquinas activas.
+
+Al pasar el ratón en la esquina superior izquierda se activa la esquina activa. Al clic se hacer la acción.]=]
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC"] = "Clic rapido al hacer clic"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC_DESC"] = "Seleccionar un acción al hacer clic en el botón 'clic rapido' en la esquina activa."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_IGNORENICKNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_IGNORENICKNAME_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ILVL_TRACKER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ILVL_TRACKER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ILVL_TRACKER_TEXT"] = ""--]]
+L["STRING_OPTIONS_INSTANCE_ALPHA2"] = "Color del fondo"
+L["STRING_OPTIONS_INSTANCE_ALPHA2_DESC"] = "Cambiar el color del fondo de la ventana."
+L["STRING_OPTIONS_INSTANCE_BACKDROP"] = "Textura del fondo"
+L["STRING_OPTIONS_INSTANCE_BACKDROP_DESC"] = [=[Escoger la textura del fondo de la ventana.
+
+|cffffff00Defecto|r: Details Background.]=]
+L["STRING_OPTIONS_INSTANCE_COLOR"] = "Color de ventana"
+L["STRING_OPTIONS_INSTANCE_COLOR_DESC"] = [=[Cambiar el color y la opacidad de esta ventana.
+
+|cFFFFFF00¡Advertencia!|r La opacidad seleccionada aquí se anula por los valores de |cFFFFFF00opacidad automáticamente|r si se activa.
+
+|cFFFFFF00¡Advertencia!|r La selección de una color de ventana anula la personalización del color de la barra estada.]=]
+L["STRING_OPTIONS_INSTANCE_CURRENT"] = "Auto-cambiar al actual"
+L["STRING_OPTIONS_INSTANCE_CURRENT_DESC"] = "Cambiar automaticamente al segmento actual al entrar en combate si ninguna otra ventana ya lo muestra."
+L["STRING_OPTIONS_INSTANCE_DELETE"] = "Eliminar"
+L["STRING_OPTIONS_INSTANCE_DELETE_DESC"] = [=[Eliminar una ventana permanentamente.
+Es posible que la interfaz se vuelva a cargar para completar el proceso de elimicaión.]=]
+L["STRING_OPTIONS_INSTANCE_SKIN"] = "Skin"
+L["STRING_OPTIONS_INSTANCE_SKIN_DESC"] = "Cambiar la aparencia de la ventana por la aplicación de un skin."
+L["STRING_OPTIONS_INSTANCE_STATUSBAR_ANCHOR"] = "Barra:"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR"] = "Color y opacidad"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR_DESC"] = [=[Escoger el color de las barras.
+
+|cffffff00¡Advertencia!|r: Esta opción anula el color y la opacidad selecconada en las opciones del color de la ventana.]=]
+L["STRING_OPTIONS_INSTANCE_STRATA"] = "Estrato"
+L["STRING_OPTIONS_INSTANCE_STRATA_DESC"] = [=[Escoger el estrato en que colocar el objeto.
+
+El estrato 'bajo' es el valor por defecto, y hacer que la ventana aparece detrás de la mayoría de las otras ventanas en la interfaz.
+
+El estrato 'alta' hacer que la ventana parace en frente de la mayoría de las otras ventanas en la interfaz.]=]
+L["STRING_OPTIONS_INSTANCES"] = "Ventanas:"
+L["STRING_OPTIONS_INTERFACEDIT"] = "Modo de edición de interfaz"
+L["STRING_OPTIONS_LEFT_MENU_ANCHOR"] = "Configuración de menú:"
+L["STRING_OPTIONS_LOCKSEGMENTS"] = "Segmentos bloqueados"
+L["STRING_OPTIONS_LOCKSEGMENTS_DESC"] = "Al cambiar el segmento in una ventana, no se cambien los segmentos en las otras ventanas mostradas."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MANAGE_BOOKMARKS"] = ""--]]
+L["STRING_OPTIONS_MAXINSTANCES"] = "Máximo de ventanas"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MAXINSTANCES_DESC"] = ""--]]
+L["STRING_OPTIONS_MAXSEGMENTS"] = "Máximo de segmentos"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MAXSEGMENTS_DESC"] = ""--]]
+L["STRING_OPTIONS_MENU_ALPHA"] = "Opacidad al pasar del ratón:"
+L["STRING_OPTIONS_MENU_ALPHAENABLED_DESC"] = [=[Cambiar automaticamente la opacidad al pasar el ratón.
+
+|cffffff00¡Advertencia!|r: Esta opción anula la opacidad de la ventana seleccionada en las opciones de la ventana.]=]
+L["STRING_OPTIONS_MENU_ALPHAENTER"] = "Al pasar del ratón"
+L["STRING_OPTIONS_MENU_ALPHAENTER_DESC"] = "Cambiar la opacidad de la ventana a este valor al pasar del ratón."
+L["STRING_OPTIONS_MENU_ALPHALEAVE"] = "Sin ratón"
+L["STRING_OPTIONS_MENU_ALPHALEAVE_DESC"] = "Cambiar la opacidad de la ventana a este valor cuando el ratón no está sobre la ventana."
+L["STRING_OPTIONS_MENU_ALPHAWARNING"] = "Opacidad automáticamente es activado. Es posible que la opacidad se ve afectada."
+L["STRING_OPTIONS_MENU_ANCHOR"] = "Lado de menú"
+L["STRING_OPTIONS_MENU_ANCHOR_DESC"] = "Escoger si el menú izquierdo se encuentra al lado izquerdo o derecho de la ventana."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX"] = "Posición X"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX_DESC"] = "Mover el texto del atributo horizontalmente."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY"] = "Posición Y"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY_DESC"] = "Mover el texto del atributo verticalmente."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENABLED_DESC"] = "Activar el nombre del atributo que se muestra acutalmente en esta ventana."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER_DESC"] = ""--]]
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT"] = "Fuente del texto"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT_DESC"] = "Escoger la fuente del texto de atributo."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SHADOW_DESC"] = "Añadir una sombra al texto de atributo."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE"] = "Ancla del texto"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE_DESC"] = "Escoger de dónde anclar el texto de atributo."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR"] = "Color del texto"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR_DESC"] = "Cambiar el color del texto de atributo."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE"] = "Tamaño del texto"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE_DESC"] = "Cambiar el tamaño del texto de atributo."
+L["STRING_OPTIONS_MENU_ATTRIBUTESETTINGS_ANCHOR"] = "Configuración:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_AUTOHIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_AUTOHIDE_LEFT"] = ""--]]
+L["STRING_OPTIONS_MENU_BUTTONSSIZE_DESC"] = "Cambiar el tamaño de los botones. Esta opción aplica tambien a los botones que se añaden por plugins."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_FONT_FACE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_FONT_FACE_DESC"] = ""--]]
+L["STRING_OPTIONS_MENU_FONT_SIZE"] = "Tamaño de texto en menús"
+L["STRING_OPTIONS_MENU_FONT_SIZE_DESC"] = "Cambiar el tamaño del texto en todos menús."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_IGNOREBARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_IGNOREBARS_DESC"] = ""--]]
+L["STRING_OPTIONS_MENU_SHOWBUTTONS"] = "Mostrar botones"
+L["STRING_OPTIONS_MENU_SHOWBUTTONS_DESC"] = "Escoger cuál botones se muestran en la barra de herrameientas."
+L["STRING_OPTIONS_MENU_X"] = "Menú X"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_X_DESC"] = ""--]]
+L["STRING_OPTIONS_MENU_Y"] = "Menú Y"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_Y_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SHADOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SHADOW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SPACEMENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SPACEMENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAY_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAY_LOCK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAY_LOCK_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_DROPDOWN_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_OPTION_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_SHOWHIDE_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_WARNING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYSSIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYSSIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYWARNING"] = ""--]]
+L["STRING_OPTIONS_MINIMAP"] = "Mostrar icono"
+L["STRING_OPTIONS_MINIMAP_ACTION"] = "Al hacer clic"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION_DESC"] = ""--]]
+L["STRING_OPTIONS_MINIMAP_ACTION1"] = "Mostrar opciones"
+L["STRING_OPTIONS_MINIMAP_ACTION2"] = "Restablecer segmentos"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION3"] = ""--]]
+L["STRING_OPTIONS_MINIMAP_ANCHOR"] = "Minimapa:"
+L["STRING_OPTIONS_MINIMAP_DESC"] = "Mostrar el icono en el minimapa."
+L["STRING_OPTIONS_MISCTITLE"] = "Opciones misceláneas"
+L["STRING_OPTIONS_MISCTITLE2"] = "Estas opciones se permiten configurar los ajustes que no pertenecen en ninguna otra categoría."
+L["STRING_OPTIONS_NICKNAME"] = "Apodo"
+L["STRING_OPTIONS_NICKNAME_DESC"] = [=[Reemplazar el nombre de su personaje.
+
+El apodo se envía a los miembres de la hermandad, y se muestra en Detalles en vez del nombre de su personaje.]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OPEN_ROWTEXT_EDITOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OPEN_TEXT_EDITOR"] = ""--]]
+L["STRING_OPTIONS_OVERALL_ALL"] = "Todos segmentos"
+L["STRING_OPTIONS_OVERALL_ALL_DESC"] = "Todos segmentos se inclyen en los datos globales."
+L["STRING_OPTIONS_OVERALL_ANCHOR"] = "Datos globales:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONBOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONBOSS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_LOGOFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_LOGOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_MYTHICPLUS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_MYTHICPLUS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_NEWBOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_NEWBOSS_DESC"] = ""--]]
+L["STRING_OPTIONS_OVERALL_RAIDBOSS"] = "Jefes de banda"
+L["STRING_OPTIONS_OVERALL_RAIDBOSS_DESC"] = "Segmentos de encuentros con jefes de banda se incluyen en los datos globales."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_RAIDCLEAN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_RAIDCLEAN_DESC"] = ""--]]
+L["STRING_OPTIONS_PANIMODE"] = "Modo pánico"
+L["STRING_OPTIONS_PANIMODE_DESC"] = "Si se activa, todos los segmentos se borran al desconectar mientras un encuentro con un jefe de banda, para acelerar la desconexión."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PDW_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PDW_SKIN_DESC"] = ""--]]
+L["STRING_OPTIONS_PERCENT_TYPE"] = "Tipo de porcentaje"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERCENT_TYPE_DESC"] = ""--]]
+L["STRING_OPTIONS_PERFORMANCE"] = "Rendimiento"
+L["STRING_OPTIONS_PERFORMANCE_ANCHOR"] = "General:"
+L["STRING_OPTIONS_PERFORMANCE_ARENA"] = "Arena"
+L["STRING_OPTIONS_PERFORMANCE_BG15"] = "Campo de batalla de 15"
+L["STRING_OPTIONS_PERFORMANCE_BG40"] = "Campo de batalla de 40"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_DUNGEON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ENABLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_MYTHIC"] = ""--]]
+L["STRING_OPTIONS_PERFORMANCE_PROFILE_LOAD"] = "Perfil de rendimento cambiado: "
+L["STRING_OPTIONS_PERFORMANCE_RAID15"] = "Banda de 10-15"
+L["STRING_OPTIONS_PERFORMANCE_RAID30"] = "Banda de 16-30"
+L["STRING_OPTIONS_PERFORMANCE_RF"] = "Buscador de bandas"
+L["STRING_OPTIONS_PERFORMANCE_TYPES"] = "Tipo"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_TYPES_DESC"] = ""--]]
+L["STRING_OPTIONS_PERFORMANCE1"] = "Cambios de rendimiento"
+L["STRING_OPTIONS_PERFORMANCE1_DESC"] = "Estas opciones pueden reducir el uso de la CPU."
+L["STRING_OPTIONS_PERFORMANCECAPTURES"] = "Recogida de datos"
+L["STRING_OPTIONS_PERFORMANCECAPTURES_DESC"] = "Estos opciones configurar cómo se recogen y se analizaron los datos."
+L["STRING_OPTIONS_PERFORMANCEPROFILES_ANCHOR"] = "Perfiles de rendimiento:"
+L["STRING_OPTIONS_PICONS_DIRECTION"] = "Alineación de iconos de plugins"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PICONS_DIRECTION_DESC"] = ""--]]
+L["STRING_OPTIONS_PLUGINS"] = "Plugins"
+L["STRING_OPTIONS_PLUGINS_AUTHOR"] = "Autór"
+L["STRING_OPTIONS_PLUGINS_NAME"] = "Nombre"
+L["STRING_OPTIONS_PLUGINS_OPTIONS"] = "Opciones"
+L["STRING_OPTIONS_PLUGINS_RAID_ANCHOR"] = "Plugins de banda"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_SOLO_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_TOOLBAR_ANCHOR"] = ""--]]
+L["STRING_OPTIONS_PLUGINS_VERSION"] = "Versión"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PRESETNONAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PRESETTOOLD"] = ""--]]
+L["STRING_OPTIONS_PROFILE_COPYOKEY"] = "Perfil se ha copiado con éxito."
+L["STRING_OPTIONS_PROFILE_FIELDEMPTY"] = "El nombre no puede ser vacío."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_GLOBAL"] = ""--]]
+L["STRING_OPTIONS_PROFILE_LOADED"] = "Perfil cargado:"
+L["STRING_OPTIONS_PROFILE_NOTCREATED"] = "Perfio no se ha creado."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_OVERWRITTEN"] = ""--]]
+L["STRING_OPTIONS_PROFILE_POSSIZE"] = "Guardar tamaño y posición"
+L["STRING_OPTIONS_PROFILE_POSSIZE_DESC"] = "Guardar la posición y el tamaño de las ventanas en el perfil."
+L["STRING_OPTIONS_PROFILE_REMOVEOKEY"] = "Perfil se ha eliminado."
+L["STRING_OPTIONS_PROFILE_SELECT"] = "Escoger un perfil."
+L["STRING_OPTIONS_PROFILE_SELECTEXISTING"] = "Escoger un otro perfil, or usar un nuevo perfil para este personaje:"
+L["STRING_OPTIONS_PROFILE_USENEW"] = "Usar perfil nuevo"
+L["STRING_OPTIONS_PROFILES_ANCHOR"] = "Opciones:"
+L["STRING_OPTIONS_PROFILES_COPY"] = "Copiar perfil de"
+L["STRING_OPTIONS_PROFILES_COPY_DESC"] = "Copiar la confiración del perfil seleccionado al perfil actual, y sobrescribir todos sus valores."
+L["STRING_OPTIONS_PROFILES_CREATE"] = "Crear perfil"
+L["STRING_OPTIONS_PROFILES_CREATE_DESC"] = "Crear un nuevo perfil."
+L["STRING_OPTIONS_PROFILES_CURRENT"] = "Perfil actual:"
+L["STRING_OPTIONS_PROFILES_CURRENT_DESC"] = "Este es el nombre del perfil activo."
+L["STRING_OPTIONS_PROFILES_ERASE"] = "Eliminar perfil"
+L["STRING_OPTIONS_PROFILES_ERASE_DESC"] = "Eliminar el perfil seleccionado."
+L["STRING_OPTIONS_PROFILES_RESET"] = "Restablecer perfil"
+L["STRING_OPTIONS_PROFILES_RESET_DESC"] = "Restablecer toda la configuración del perfil seleccionada a los valores por defecto."
+L["STRING_OPTIONS_PROFILES_SELECT"] = "Escoger perfil"
+L["STRING_OPTIONS_PROFILES_SELECT_DESC"] = "Cargar un otro perfil. Se sobrescriba toda la configuración con los valores del perfil seleccionado."
+L["STRING_OPTIONS_PROFILES_TITLE"] = "Perfiles"
+L["STRING_OPTIONS_PROFILES_TITLE_DESC"] = "Estas opciones se permiten usar la misma configuración para personages múltiples."
+L["STRING_OPTIONS_PS_ABBREVIATE"] = "Tipo de abreviación"
+L["STRING_OPTIONS_PS_ABBREVIATE_COMMA"] = "Coma"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_DESC"] = ""--]]
+L["STRING_OPTIONS_PS_ABBREVIATE_NONE"] = "Ningún"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK0"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK0MIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK2MIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOKMIN"] = ""--]]
+L["STRING_OPTIONS_PVPFRAGS"] = "Sólo matanzas en JvJ"
+L["STRING_OPTIONS_PVPFRAGS_DESC"] = "La visualización |cffffff00daño > matanzas|r muestra solamente las mantanzas de jugadores enemigos."
+L["STRING_OPTIONS_REALMNAME"] = "Eliminar nombre de reino"
+L["STRING_OPTIONS_REALMNAME_DESC"] = [=[Eliminar los nombres de reinos de los nombres de personajes. Por ejemplo:
+
+|cffffff00Desactivado|r: Charles-Netherwing
+|cffffff00Activado|r: Charles]=]
+L["STRING_OPTIONS_REPORT_ANCHOR"] = "Informar:"
+L["STRING_OPTIONS_REPORT_HEALLINKS"] = "Vínculos de hechizos útiles"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_HEALLINKS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RESET_TO_DEFAULT"] = ""--]]
+L["STRING_OPTIONS_ROW_SETTING_ANCHOR"] = "General:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ROWADV_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ROWADV_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWN1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWN2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_ONOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_SELECT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATH_MSG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_FIRST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_FIRST_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_HITS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_ONOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_FIRST_HIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_FIRST_HIT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_IGNORE_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INFOS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INFOS_PREPOTION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INFOS_PREPOTION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPT_NEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_NEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_NEXT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_ONOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_WHISPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_OTHER_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_TITLE_DESC"] = ""--]]
+L["STRING_OPTIONS_SAVELOAD"] = "Guardar y cargar"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_APPLYALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_APPLYALL_DESC"] = ""--]]
+L["STRING_OPTIONS_SAVELOAD_APPLYTOALL"] = "Aplicar a todas ventanas"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_CREATE_DESC"] = ""--]]
+L["STRING_OPTIONS_SAVELOAD_DESC"] = "Guardar la configuración actual o cargar una configuración que se han guardado previamente."
+L["STRING_OPTIONS_SAVELOAD_ERASE_DESC"] = "Eliminar permanentemente un skin que se ha guardado previamente."
+L["STRING_OPTIONS_SAVELOAD_EXPORT"] = "Exportir"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_COPY"] = "Pulsar las teclas CTRL + C"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_DESC"] = "Guardar el skin en forma de texto."
+L["STRING_OPTIONS_SAVELOAD_IMPORT"] = "Importar"
+L["STRING_OPTIONS_SAVELOAD_IMPORT_DESC"] = "Importar una skin en forma de texto."
+L["STRING_OPTIONS_SAVELOAD_IMPORT_OKEY"] = "Skin se ha importado con éxito."
+L["STRING_OPTIONS_SAVELOAD_LOAD"] = "Aplicar"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_LOAD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_MAKEDEFAULT"] = ""--]]
+L["STRING_OPTIONS_SAVELOAD_PNAME"] = "Nombre"
+L["STRING_OPTIONS_SAVELOAD_REMOVE"] = "Eliminar"
+L["STRING_OPTIONS_SAVELOAD_RESET"] = "Cargar el skin defecto"
+L["STRING_OPTIONS_SAVELOAD_SAVE"] = "Guardar"
+L["STRING_OPTIONS_SAVELOAD_SKINCREATED"] = "Skin se ha creado."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_STD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_STDSAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SCROLLBAR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SCROLLBAR_DESC"] = ""--]]
+L["STRING_OPTIONS_SEGMENTSSAVE"] = "Segmentos se han guardados"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SEGMENTSSAVE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SENDFEEDBACK"] = ""--]]
+L["STRING_OPTIONS_SHOW_SIDEBARS"] = "Mostrar bordes"
+L["STRING_OPTIONS_SHOW_SIDEBARS_DESC"] = "Mostrar los bordes de la ventana."
+L["STRING_OPTIONS_SHOW_STATUSBAR"] = "Mostrar barra del estado"
+L["STRING_OPTIONS_SHOW_STATUSBAR_DESC"] = "Mostrar la barra del estado a la parte inferior de la ventana."
+L["STRING_OPTIONS_SHOW_TOTALBAR_COLOR_DESC"] = "Establecer el color. La opacidad de la barra del total siga la opacidad de la fila."
+L["STRING_OPTIONS_SHOW_TOTALBAR_DESC"] = "Mostrar la barra del total."
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON"] = "Icono"
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON_DESC"] = "Escoger el icono que se muestra en la barra del total."
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP"] = "Sólo en grupa"
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP_DESC"] = "La barra del total no se muestra cuando no estás en grupa."
+L["STRING_OPTIONS_SIZE"] = "Tamaño"
+L["STRING_OPTIONS_SKIN_A"] = "Configuración de skin"
+L["STRING_OPTIONS_SKIN_A_DESC"] = "Estas opciones se permiten personalizar el skin."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3_DESC"] = ""--]]
+L["STRING_OPTIONS_SKIN_EXTRA_OPTIONS_ANCHOR"] = "Opciones de skin:"
+L["STRING_OPTIONS_SKIN_LOADED"] = "Skin se ha cargado con éxito."
+L["STRING_OPTIONS_SKIN_PRESETS_ANCHOR"] = "Guardar skin:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_PRESETSCONFIG_ANCHOR"] = ""--]]
+L["STRING_OPTIONS_SKIN_REMOVED"] = "Skin se ha eliminado."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_RESET_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_RESET_TOOLTIP_DESC"] = ""--]]
+L["STRING_OPTIONS_SKIN_SELECT"] = "Escoger un skin"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_SELECT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SOCIAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SOCIAL_DESC"] = ""--]]
+L["STRING_OPTIONS_SPELL_ADD"] = "Añadir"
+L["STRING_OPTIONS_SPELL_ADDICON"] = "Nuevo icono: "
+L["STRING_OPTIONS_SPELL_ADDNAME"] = "Nuevo nombre: "
+L["STRING_OPTIONS_SPELL_ADDSPELL"] = "Añadir hechizo"
+L["STRING_OPTIONS_SPELL_ADDSPELLID"] = "ID de hechizo: "
+L["STRING_OPTIONS_SPELL_CLOSE"] = "Cerrar"
+L["STRING_OPTIONS_SPELL_ICON"] = "Icono"
+L["STRING_OPTIONS_SPELL_IDERROR"] = "ID de hechizo incorrecto"
+L["STRING_OPTIONS_SPELL_INDEX"] = "Índice"
+L["STRING_OPTIONS_SPELL_NAME"] = "Nombre"
+L["STRING_OPTIONS_SPELL_NAMEERROR"] = "El nombre no es válido"
+L["STRING_OPTIONS_SPELL_NOTFOUND"] = "Hechizo no encontrado."
+L["STRING_OPTIONS_SPELL_REMOVE"] = "Eliminar"
+L["STRING_OPTIONS_SPELL_RESET"] = "Restablecer"
+L["STRING_OPTIONS_SPELL_SPELLID"] = "ID de hechizo"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCHTOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCHTOP_DESC"] = ""--]]
+L["STRING_OPTIONS_SWITCH_ANCHOR"] = "Cambios:"
+L["STRING_OPTIONS_SWITCHINFO"] = "|cFFF79F81 IZQUIERDA DESACTIVADA|r |cFF81BEF7 DERECHA ACTIVADA|r"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_ENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_SINGLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_SINGLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_TABNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_TABNAME_DESC"] = ""--]]
+L["STRING_OPTIONS_TESTBARS"] = "Crear barras de prueba"
+L["STRING_OPTIONS_TEXT"] = "Configuración de texto de barras"
+L["STRING_OPTIONS_TEXT_DESC"] = "Estas opciones se permiten personalizar la aparencia del texto en las barras."
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR"] = "Color del texto"
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR_DESC"] = [=[Cambiar el color de tanto los textos izquierdo y derecho.
+
+No se aplica si la opcióm |cFFFFFFFFColorar por clase|r está activada.]=]
+L["STRING_OPTIONS_TEXT_FONT"] = "Fuente del texto"
+L["STRING_OPTIONS_TEXT_FONT_DESC"] = "Escoger la fuente de tanto los textos izquierdo y derecho."
+L["STRING_OPTIONS_TEXT_LCLASSCOLOR_DESC"] = "Colorar las barras por el clase de sus unidades, sin respecto al color seleccionado."
+L["STRING_OPTIONS_TEXT_LEFT_ANCHOR"] = "Texto izquierdo:"
+L["STRING_OPTIONS_TEXT_LOUTILINE"] = "Contorno del texto"
+L["STRING_OPTIONS_TEXT_LOUTILINE_DESC"] = "Añadir un contorno al texto izquierdo."
+L["STRING_OPTIONS_TEXT_LPOSITION"] = "Mostrar numero"
+L["STRING_OPTIONS_TEXT_LPOSITION_DESC"] = "Mostrar el numero de la posición al lado del nombre del personaje."
+L["STRING_OPTIONS_TEXT_RIGHT_ANCHOR"] = "Texto derecho:"
+L["STRING_OPTIONS_TEXT_ROUTILINE_DESC"] = "Añadir un contorno al texto derecho."
+L["STRING_OPTIONS_TEXT_ROWICONS_ANCHOR"] = "Iconos:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_BRACKET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_BRACKET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PERCENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PERCENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_TOTAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_TOTAL_DESC"] = ""--]]
+L["STRING_OPTIONS_TEXT_SIZE"] = "Tamaño del texto"
+L["STRING_OPTIONS_TEXT_SIZE_DESC"] = "Cambiar el tamaño de tanto los textos izquierdo y derecho."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_TEXTUREL_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_TEXTUREU_ANCHOR"] = ""--]]
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL"] = "Cancelar"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_CANCEL_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_COLOR_TOOLTIP"] = ""--]]
+L["STRING_OPTIONS_TEXTEDITOR_COMMA"] = "Coma"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_COMMA_TOOLTIP"] = ""--]]
+L["STRING_OPTIONS_TEXTEDITOR_DATA"] = "[Datos %s]"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_DATA_TOOLTIP"] = ""--]]
+L["STRING_OPTIONS_TEXTEDITOR_DONE"] = "Guardar"
+L["STRING_OPTIONS_TEXTEDITOR_DONE_TOOLTIP"] = "Terminar la edición y guardar el código."
+L["STRING_OPTIONS_TEXTEDITOR_FUNC"] = "Función"
+L["STRING_OPTIONS_TEXTEDITOR_FUNC_TOOLTIP"] = [=[Añadir una función vacía.
+Funciones deben siempre devuelven un número.]=]
+L["STRING_OPTIONS_TEXTEDITOR_RESET"] = "Restablecer"
+L["STRING_OPTIONS_TEXTEDITOR_RESET_TOOLTIP"] = "Eliminar todo el código y añadir el código defecto."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_TOK"] = ""--]]
+L["STRING_OPTIONS_TEXTEDITOR_TOK_TOOLTIP"] = [=[Añadir una función para abreviar numeros.
+Por ejemplo: 1500000 a 1.5kk.]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TIMEMEASURE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TIMEMEASURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBAR_SETTINGS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBAR_SETTINGS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBARSIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBARSIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLS_ANCHOR"] = ""--]]
+L["STRING_OPTIONS_TOOLTIP_ANCHOR"] = "Configuración:"
+L["STRING_OPTIONS_TOOLTIP_ANCHORTEXTS"] = "Textos:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION_DESC"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH"] = "Lado de descripción"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH_DESC"] = "De cuál lado se ancla la descripción."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_BORDER"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_POINT"] = "Ancla:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE"] = "Lado de ancla"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE_DESC"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT"] = "Ancla de descripción"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT_DESC"] = "Hacer clic derecho para bloquear."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO"] = "Ancla"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE"] = "Mover punto de anclage"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_DESC"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO1"] = "Fila de ventana"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO2"] = "Punto en pantalla"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHORCOLOR"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR"] = "Color del fondo"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR_DESC"] = "Cambiar el color del fondo de la descripción."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BORDER_COLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BORDER_SIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BORDER_TEXTURE_DESC"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR"] = "Color del texto"
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR_DESC"] = "Cambiar el color del texto en la descripción."
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE"] = "Fuente del texto"
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE_DESC"] = "Escoger del tipo de letra del texto en la descripción."
+L["STRING_OPTIONS_TOOLTIPS_FONTSHADOW_DESC"] = "Añadir una sombra al texto en la descripción."
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE"] = "Tamaño del texto"
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE_DESC"] = "Cambiar el tamaño del texto en la descripción."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP_DESC"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX"] = "Distancia X"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX_DESC"] = "Cuán lejos horizontalmente se coloca la descipción de su ancla."
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY"] = "Distancia Y"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY_DESC"] = "Cuán lejos verticalmente se coloca la descipción de su ancla."
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT"] = "Mostrar cantidad"
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT_DESC"] = "Mostrar la cantidad de hechizos de objetivos o mascotas en la descripción."
+L["STRING_OPTIONS_TOOLTIPS_TITLE"] = "Descripciónes"
+L["STRING_OPTIONS_TOOLTIPS_TITLE_DESC"] = "Estas opciones te perimte personalizar la aparencia de las descripciónes."
+L["STRING_OPTIONS_TOTALBAR_ANCHOR"] = "Barra de total:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TRASH_SUPPRESSION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TRASH_SUPPRESSION_DESC"] = ""--]]
+L["STRING_OPTIONS_WALLPAPER_ALPHA"] = "Opacidad:"
+L["STRING_OPTIONS_WALLPAPER_ANCHOR"] = "Fondo de pantalla:"
+L["STRING_OPTIONS_WALLPAPER_BLUE"] = "Azul:"
+L["STRING_OPTIONS_WALLPAPER_CBOTTOM"] = "Cortar (|cFFC0C0C0inferior|r):"
+L["STRING_OPTIONS_WALLPAPER_CLEFT"] = "Cortar (|cFFC0C0C0izquierdar):"
+L["STRING_OPTIONS_WALLPAPER_CRIGHT"] = "Cortar (|cFFC0C0C0derecha|r):"
+L["STRING_OPTIONS_WALLPAPER_CTOP"] = "Cortar (|cFFC0C0C0superior|r):"
+L["STRING_OPTIONS_WALLPAPER_FILE"] = "Archivo:"
+L["STRING_OPTIONS_WALLPAPER_GREEN"] = "Verde:"
+L["STRING_OPTIONS_WALLPAPER_LOAD"] = "Cargar imagen"
+L["STRING_OPTIONS_WALLPAPER_LOAD_DESC"] = "Seleccionar una imagen de su computadora para usar como el fondo de pantalla."
+L["STRING_OPTIONS_WALLPAPER_LOAD_EXCLAMATION"] = [=[La imagen debe:
+
+- ser en el formato Truevision TGA (extensión de archivo .tga),
+- ser en la carpeta raíz 'World of Warcraft/Interface/',
+- tener el tamaño 256 x 256 pixels,
+- y el juego debe volver a cargar completamente antes de empastar el archivo de imagen.]=]
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME"] = "Nombre de archivo:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME_DESC"] = "Introducir solamente el nombre de archivo, sin extensión o carpetas."
+L["STRING_OPTIONS_WALLPAPER_LOAD_OKEY"] = "Cargar"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TITLE"] = "De computadora:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT"] = "Solucionar problemas"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT_TEXT"] = [=[Si el fondo de pantalla es completamente verde:
+
+- Salir del juego completamente y reiniciarlo.
+- Confirmar que la imagen tiene la anchura de 256 pixels y la altura de 256 pixels.
+- Confirmar que la imagen es en el formata .TGA y se guarda con 32 bits/pixel.
+- Confirmar que la imagen es en el Interface folder.
+ Por ejemplo: C:/Program Files/World of Warcraft/Interface/]=]
+L["STRING_OPTIONS_WALLPAPER_RED"] = "Rojo:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_BOOKMARK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_BOOKMARK_DESC"] = ""--]]
+L["STRING_OPTIONS_WC_CLOSE"] = "Cerrar"
+L["STRING_OPTIONS_WC_CLOSE_DESC"] = [=[Cerrar esta ventana.
+
+Después de cerrar, la ventana convierte en inactivo y se puede mostrar de nuevo en cualquier momento por el uso del botón de ventana #.
+
+Para eliminar una ventana permanenemente, usar las opciones en la sección miscelánea.]=]
+L["STRING_OPTIONS_WC_CREATE"] = "Crear ventana"
+L["STRING_OPTIONS_WC_CREATE_DESC"] = "Crear una nueva ventana."
+L["STRING_OPTIONS_WC_LOCK"] = "Bloquear"
+L["STRING_OPTIONS_WC_LOCK_DESC"] = "Bloquear la ventana, para evitar que se mueva."
+L["STRING_OPTIONS_WC_REOPEN"] = "Mostrar de nuevo"
+L["STRING_OPTIONS_WC_UNLOCK"] = "Desbloquear"
+L["STRING_OPTIONS_WC_UNSNAP"] = "Desagrupar"
+L["STRING_OPTIONS_WC_UNSNAP_DESC"] = "Desagrupar las ventanas seleccionadas."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WHEEL_SPEED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WHEEL_SPEED_DESC"] = ""--]]
+L["STRING_OPTIONS_WINDOW"] = "Opciones"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_ANCHOR_ANCHORS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_SCALE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_SCALE_DESC"] = ""--]]
+L["STRING_OPTIONS_WINDOW_TITLE"] = "Configuración de ventana"
+L["STRING_OPTIONS_WINDOW_TITLE_DESC"] = "Estas opciones se permiten personalizar la aparencia de la ventana seleccionada."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOWSPEED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOWSPEED_DESC"] = ""--]]
+L["STRING_OPTIONS_WP"] = "Configuración del fondo de pantalla"
+L["STRING_OPTIONS_WP_ALIGN"] = "Alineación"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_ALIGN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_DESC"] = ""--]]
+L["STRING_OPTIONS_WP_EDIT"] = "Editar imagen"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_EDIT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_ENABLE_DESC"] = ""--]]
+L["STRING_OPTIONS_WP_GROUP"] = "Categoría"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_GROUP_DESC"] = ""--]]
+L["STRING_OPTIONS_WP_GROUP2"] = "Fondo de pantalla"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_GROUP2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_AUTOMATIC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_AUTOMATIC_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_AUTOMATIC_TITLE_DESC"] = ""--]]
+L["STRING_OPTIONSMENU_COMBAT"] = "Combate"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DATACHART"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DATACOLLECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DATAFEED"] = ""--]]
+L["STRING_OPTIONSMENU_DISPLAY"] = "Visualización"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DISPLAY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_LEFTMENU"] = ""--]]
+L["STRING_OPTIONSMENU_MISC"] = "Misceláneo"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_PERFORMANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_PLUGINS"] = ""--]]
+L["STRING_OPTIONSMENU_PROFILES"] = "Perfiles"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_RAIDTOOLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_RIGHTMENU"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_ROWMODELS"] = ""--]]
+L["STRING_OPTIONSMENU_ROWSETTINGS"] = "Configuración de filas"
+L["STRING_OPTIONSMENU_ROWTEXTS"] = "Textos en filas"
+L["STRING_OPTIONSMENU_SKIN"] = "Selección de skins"
+L["STRING_OPTIONSMENU_SPELLS"] = "Personalización de hechizos"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_SPELLS_CONSOLIDATE"] = ""--]]
+L["STRING_OPTIONSMENU_TITLETEXT"] = "Texto de título"
+L["STRING_OPTIONSMENU_TOOLTIP"] = "Descripciones"
+L["STRING_OPTIONSMENU_WALLPAPER"] = "Fondo de pantalla"
+L["STRING_OPTIONSMENU_WINDOW"] = "Configuración de ventana"
+L["STRING_OVERALL"] = "Total"
+--[[Translation missing --]]
+--[[ L["STRING_OVERHEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OVERHEALED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PARRY"] = ""--]]
+L["STRING_PERCENTAGE"] = "Porcentaje"
+L["STRING_PET"] = "Mascota"
+L["STRING_PETS"] = "Mascotas"
+L["STRING_PLAYER_DETAILS"] = "Detalles de jugador"
+L["STRING_PLAYERS"] = "Jugadores"
+L["STRING_PLEASE_WAIT"] = "Por favor, espera."
+L["STRING_PLUGIN_CLEAN"] = "Ningún"
+L["STRING_PLUGIN_CLOCKNAME"] = "Duración de encuentra"
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_CLOCKTYPE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_DURABILITY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_FPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_GOLD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_LATENCY"] = ""--]]
+L["STRING_PLUGIN_MINSEC"] = "Minutos y segundos"
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_NAMEALREADYTAKEN"] = ""--]]
+L["STRING_PLUGIN_PATTRIBUTENAME"] = "Atributo"
+L["STRING_PLUGIN_PDPSNAME"] = "DPS de banda"
+L["STRING_PLUGIN_PSEGMENTNAME"] = "Segmento"
+L["STRING_PLUGIN_SECONLY"] = "Sólo segundos"
+L["STRING_PLUGIN_SEGMENTTYPE"] = "Tipo de segmento"
+L["STRING_PLUGIN_SEGMENTTYPE_1"] = "Combate #X"
+L["STRING_PLUGIN_SEGMENTTYPE_2"] = "Nombre de encuentra"
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_SEGMENTTYPE_3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_THREATNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TIMEDIFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TOOLTIP_LEFTBUTTON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TOOLTIP_RIGHTBUTTON"] = ""--]]
+L["STRING_PLUGINOPTIONS_ABBREVIATE"] = "Abreviar"
+L["STRING_PLUGINOPTIONS_COMMA"] = "Coma"
+L["STRING_PLUGINOPTIONS_FONTFACE"] = "Seleccionar el estilo de la fuente."
+L["STRING_PLUGINOPTIONS_NOFORMAT"] = "Ningún"
+L["STRING_PLUGINOPTIONS_TEXTALIGN"] = "Alineación del texto"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_X"] = "Alineación X"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_Y"] = "Alineación Y"
+L["STRING_PLUGINOPTIONS_TEXTCOLOR"] = "Color del texto"
+L["STRING_PLUGINOPTIONS_TEXTSIZE"] = "Tamaño de fuente"
+L["STRING_PLUGINOPTIONS_TEXTSTYLE"] = "Estilo de fuente"
+--[[Translation missing --]]
+--[[ L["STRING_QUERY_INSPECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_QUERY_INSPECT_FAIL1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_QUERY_INSPECT_REFRESH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RAID_WIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RAIDCHECK_PLUGIN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RAIDCHECK_PLUGIN_NAME"] = ""--]]
+L["STRING_REPORT"] = "para"
+L["STRING_REPORT_BUTTON_TOOLTIP"] = "Hacer clic para abrir la ventana de informar."
+L["STRING_REPORT_FIGHT"] = "el combate"
+L["STRING_REPORT_FIGHTS"] = "los combates"
+L["STRING_REPORT_INVALIDTARGET"] = "No se encuentra el objetivo para susurrar."
+L["STRING_REPORT_LAST"] = "Última"
+L["STRING_REPORT_LASTFIGHT"] = "Último combate"
+L["STRING_REPORT_LEFTCLICK"] = "Hacer clic para abrir la ventana de informar."
+L["STRING_REPORT_PREVIOUSFIGHTS"] = "Combates anteriores"
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_BUFFUPTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_COOLDOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_DEATH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_DEBUFFUPTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_TOOLTIP"] = ""--]]
+L["STRING_REPORTFRAME_COPY"] = "Copiar y empastar"
+L["STRING_REPORTFRAME_CURRENT"] = "Actual"
+L["STRING_REPORTFRAME_CURRENTINFO"] = "Incluir sólo los datos que se muestran actualmente (si posible)."
+L["STRING_REPORTFRAME_GUILD"] = "Hermandad"
+L["STRING_REPORTFRAME_INSERTNAME"] = "Insertar nombre de jugador"
+L["STRING_REPORTFRAME_LINES"] = "Líneas"
+L["STRING_REPORTFRAME_OFFICERS"] = "Oficiales"
+L["STRING_REPORTFRAME_PARTY"] = "Grupo"
+L["STRING_REPORTFRAME_RAID"] = "Banda"
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_REVERT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_REVERTED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_REVERTINFO"] = ""--]]
+L["STRING_REPORTFRAME_SAY"] = "Decir"
+L["STRING_REPORTFRAME_SEND"] = "Enviar"
+L["STRING_REPORTFRAME_WHISPER"] = "Susurrar"
+L["STRING_REPORTFRAME_WHISPERTARGET"] = "Susurrar al objetivo"
+L["STRING_REPORTFRAME_WINDOW_TITLE"] = "Crear informe"
+--[[Translation missing --]]
+--[[ L["STRING_REPORTHISTORY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RESISTED"] = ""--]]
+L["STRING_RESIZE_ALL"] = "Cambiar los tamaños de todas ventanas"
+L["STRING_RESIZE_COMMON"] = "Cambiar el tamaño"
+L["STRING_RESIZE_HORIZONTAL"] = "Cambiar la anchura de todas ventanas en el grupo."
+L["STRING_RESIZE_VERTICAL"] = "Cambiar la altura de todas ventanas en el grupo."
+L["STRING_RIGHT"] = "derecho"
+--[[Translation missing --]]
+--[[ L["STRING_RIGHT_TO_LEFT"] = ""--]]
+L["STRING_RIGHTCLICK_CLOSE_LARGE"] = "Hacer clic con el botón derecho para cerrar esta ventana."
+L["STRING_RIGHTCLICK_CLOSE_MEDIUM"] = "Hacer clic derecho para cerrar esta ventana."
+L["STRING_RIGHTCLICK_CLOSE_SHORT"] = "Clic derecho para cerrar."
+L["STRING_RIGHTCLICK_TYPEVALUE"] = "Hacer clic derecho para introducir el valor."
+--[[Translation missing --]]
+--[[ L["STRING_SCORE_BEST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SCORE_NOTBEST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEE_BELOW"] = ""--]]
+L["STRING_SEGMENT"] = "Segmento"
+L["STRING_SEGMENT_EMPTY"] = "Este segmento está vacío."
+L["STRING_SEGMENT_END"] = "Terminar"
+L["STRING_SEGMENT_ENEMY"] = "Enemigo"
+L["STRING_SEGMENT_LOWER"] = "segmento"
+L["STRING_SEGMENT_OVERALL"] = "Datos globales"
+L["STRING_SEGMENT_START"] = "Iniciar"
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_TRASH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_BOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_COMBATTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_OVERALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_TIMEINCOMBAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_TOTALTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_TRASH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_WASTED_TIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SHIELD_HEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SHIELD_OVERHEAL"] = ""--]]
+L["STRING_SHORTCUT_RIGHTCLICK"] = "Hacer clic derecho para cerrar."
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_API_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CAPTURE_DESC"] = ""--]]
+L["STRING_SLASH_CAPTUREOFF"] = "Todas las recogidas de datos se han desactivada."
+L["STRING_SLASH_CAPTUREON"] = "Todas las recogidas de datos se han activada."
+L["STRING_SLASH_CHANGES"] = "actualizaciónes"
+L["STRING_SLASH_CHANGES_ALIAS1"] = "noticias"
+L["STRING_SLASH_CHANGES_ALIAS2"] = "cambios"
+L["STRING_SLASH_CHANGES_DESC"] = "mostrar los cambios en esta versión."
+L["STRING_SLASH_DISABLE"] = "desactiva"
+L["STRING_SLASH_ENABLE"] = "activa"
+L["STRING_SLASH_HIDE"] = "oculta"
+L["STRING_SLASH_HIDE_ALIAS1"] = "cerra"
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_HISTORY"] = ""--]]
+L["STRING_SLASH_NEW"] = "nueva"
+L["STRING_SLASH_NEW_DESC"] = "crear una nueva ventana."
+L["STRING_SLASH_OPTIONS"] = "Opciones"
+L["STRING_SLASH_OPTIONS_DESC"] = "mostrar la ventana de configuración."
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_RESET_ALIAS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_RESET_DESC"] = ""--]]
+L["STRING_SLASH_SHOW"] = "muestra"
+L["STRING_SLASH_SHOW_ALIAS1"] = "abre"
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_SHOWHIDETOGGLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_TOGGLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WIPE"] = ""--]]
+L["STRING_SLASH_WIPECONFIG"] = "Reinstalar"
+L["STRING_SLASH_WIPECONFIG_CONFIRM"] = "Hacer clic para continuar la reinstalación."
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WIPECONFIG_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WORLDBOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WORLDBOSS_DESC"] = ""--]]
+L["STRING_SPELL_INTERRUPTED"] = "Hechizos interrumpidos"
+L["STRING_SPELLLIST"] = "Lista de habilidades"
+L["STRING_SPELLS"] = "Hechizos"
+--[[Translation missing --]]
+--[[ L["STRING_SPIRIT_LINK_TOTEM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SPIRIT_LINK_TOTEM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_STATISTICS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_STATUSBAR_NOOPTIONS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_CLICKME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_SELECTMSG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_TO"] = ""--]]
+L["STRING_SWITCH_WARNING"] = "El rol se ha cambiado. Cambiando a: |cFFFFAA00%s|r "
+L["STRING_TARGET"] = "Objetivo"
+L["STRING_TARGETS"] = "Objetivos"
+--[[Translation missing --]]
+--[[ L["STRING_TARGETS_OTHER1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TEXTURE"] = ""--]]
+L["STRING_TIME_OF_DEATH"] = "Muerte"
+--[[Translation missing --]]
+--[[ L["STRING_TOOOLD"] = ""--]]
+L["STRING_TOP"] = "superior"
+--[[Translation missing --]]
+--[[ L["STRING_TOP_TO_BOTTOM"] = ""--]]
+L["STRING_TOTAL"] = "Total"
+--[[Translation missing --]]
+--[[ L["STRING_TRANSLATE_LANGUAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TUTORIAL_FULLY_DELETE_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TUTORIAL_OVERALL1"] = ""--]]
+L["STRING_UNKNOW"] = "Desconocido"
+L["STRING_UNKNOWSPELL"] = "Hechizo desconocido"
+L["STRING_UNLOCK"] = "Esparcir las ventanas con este botón."
+L["STRING_UNLOCK_WINDOW"] = "desbloquear"
+L["STRING_UPTADING"] = "actualizando"
+--[[Translation missing --]]
+--[[ L["STRING_VERSION_AVAILABLE"] = ""--]]
+L["STRING_VERSION_UPDATE"] = "Nueva versión: ¿qué se ha cambiado? Hacer clic aquí."
+L["STRING_VOIDZONE_TOOLTIP"] = "Daño y duración:"
+L["STRING_WAITPLUGIN"] = "esperando para plugins"
+--[[Translation missing --]]
+--[[ L["STRING_WAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_11"] = ""--]]
+L["STRING_WELCOME_12"] = "Cambiar la velocidad de acutalizaciones y animaciones. Si su computadora tiene menos de 2GB de memoria, se recomienda para reducir la cantidad de segmentos también."
+L["STRING_WELCOME_13"] = ""
+L["STRING_WELCOME_14"] = "Velocidad de actualizaciones"
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_15"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_16"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_17"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_26"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_27"] = ""--]]
+L["STRING_WELCOME_28"] = "Usar la interfaz: Botón de ventana"
+L["STRING_WELCOME_29"] = [=[- El |cffffff00#numero|r en el botón de la ventana muestra |cffffff00cuál ventana|r.
+- El botón crea una |cffffff00nueva ventana|r al hacer clic.
+- El botón muestra un menú de las |cffffff00ventanas cerradas|r, que se puedan mostrar de nuevo en cualquier momento.]=]
+L["STRING_WELCOME_3"] = "Seleconniar un método de cálculo para DPS y HPS:"
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_30"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_31"] = ""--]]
+L["STRING_WELCOME_32"] = "Usar la interfaz: Agrupar ventanas"
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_34"] = ""--]]
+L["STRING_WELCOME_36"] = "Usar la interfaz: Plugins"
+L["STRING_WELCOME_38"] = "Listo para jugar!"
+L["STRING_WELCOME_39"] = [=[Muchas gracias por elegir Detalles!
+
+Comentarios e informes de errores son siempre bienvenidos.]=]
+L["STRING_WELCOME_4"] = "Tiempo activo: "
+L["STRING_WELCOME_41"] = "Cambios de interfaz y memoria:"
+L["STRING_WELCOME_42"] = "Configuración de aparencia rapida"
+L["STRING_WELCOME_43"] = "Escoger un skin:"
+L["STRING_WELCOME_44"] = "Fondo de pantalla"
+L["STRING_WELCOME_45"] = "Para más opciones, ver a la ventana de configuración."
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_46"] = ""--]]
+L["STRING_WELCOME_5"] = "Tiempo efectivo: "
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_57"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_58"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_59"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_60"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_61"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_62"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_63"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_64"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_65"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_66"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_67"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_68"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_69"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_7"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_70"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_71"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_72"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_73"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_74"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_75"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_76"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_77"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_78"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_79"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WINDOW_NOTFOUND"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WINDOW_NUMBER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WINDOW1ATACH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ALERT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ERROR1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ERROR2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ERROR3"] = ""--]]
+L["STRING_YES"] = "Sí"
+
diff --git a/locales/Details-esMX.lua b/locales/Details-esMX.lua
index a574f5bb..32277786 100644
--- a/locales/Details-esMX.lua
+++ b/locales/Details-esMX.lua
@@ -1,4 +1,2053 @@
local L = LibStub("AceLocale-3.0"):NewLocale("Details", "esMX")
if not L then return end
-@localization(locale="esMX", format="lua_additive_table")@
\ No newline at end of file
+L["ABILITY_ID"] = "ID de habilitad"
+L["STRING_"] = ""
+L["STRING_ABSORBED"] = "Absorbida"
+L["STRING_ACTORFRAME_NOTHING"] = "nada para informar"
+L["STRING_ACTORFRAME_REPORTAT"] = "en"
+L["STRING_ACTORFRAME_REPORTOF"] = "de"
+L["STRING_ACTORFRAME_REPORTTARGETS"] = "informe de objetivos de"
+L["STRING_ACTORFRAME_REPORTTO"] = "informe de"
+L["STRING_ACTORFRAME_SPELLDETAILS"] = "Detalles de hechizos"
+L["STRING_ACTORFRAME_SPELLSOF"] = "Hechizos de"
+L["STRING_ACTORFRAME_SPELLUSED"] = "Todos hechizos usados"
+L["STRING_AGAINST"] = "contra"
+L["STRING_ALIVE"] = "Viva"
+--[[Translation missing --]]
+--[[ L["STRING_ALPHA"] = ""--]]
+L["STRING_ANCHOR_BOTTOM"] = "Inferior"
+L["STRING_ANCHOR_BOTTOMLEFT"] = "Inferior izquierda"
+L["STRING_ANCHOR_BOTTOMRIGHT"] = "Inferior derecha"
+L["STRING_ANCHOR_LEFT"] = "Izquierda"
+L["STRING_ANCHOR_RIGHT"] = "Derecha"
+L["STRING_ANCHOR_TOP"] = "Superior"
+L["STRING_ANCHOR_TOPLEFT"] = "Superior izquierda"
+L["STRING_ANCHOR_TOPRIGHT"] = "Superior derecha"
+--[[Translation missing --]]
+--[[ L["STRING_ASCENDING"] = ""--]]
+L["STRING_ATACH_DESC"] = "Agrupar la ventana #%d con la ventana #%d."
+L["STRING_ATTRIBUTE_CUSTOM"] = "Personalizado"
+L["STRING_ATTRIBUTE_DAMAGE"] = "Daño"
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_BYSPELL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS"] = ""--]]
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS_REPORT"] = "Daño y tiempo arriba de debufos"
+L["STRING_ATTRIBUTE_DAMAGE_DONE"] = "Daño infligido"
+L["STRING_ATTRIBUTE_DAMAGE_DPS"] = "DPS"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES"] = "Daño de Enemigo Recibido"
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_ENEMIES_DONE"] = ""--]]
+L["STRING_ATTRIBUTE_DAMAGE_FRAGS"] = "Matanzas"
+L["STRING_ATTRIBUTE_DAMAGE_FRIENDLYFIRE"] = "Fuego amigo"
+L["STRING_ATTRIBUTE_DAMAGE_TAKEN"] = "Daño recibido"
+L["STRING_ATTRIBUTE_ENERGY"] = "Energía"
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_ENERGY_ALTERNATEPOWER"] = ""--]]
+L["STRING_ATTRIBUTE_ENERGY_ENERGY"] = "Energía generada"
+L["STRING_ATTRIBUTE_ENERGY_MANA"] = "Mana restaurada"
+L["STRING_ATTRIBUTE_ENERGY_RAGE"] = "Ira generada"
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_ENERGY_RESOURCES"] = ""--]]
+L["STRING_ATTRIBUTE_ENERGY_RUNEPOWER"] = "Poder runico generado"
+L["STRING_ATTRIBUTE_HEAL"] = "Sanación"
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_HEAL_ABSORBED"] = ""--]]
+L["STRING_ATTRIBUTE_HEAL_DONE"] = "Sanación realizada"
+L["STRING_ATTRIBUTE_HEAL_ENEMY"] = "Curación de Enemigos"
+L["STRING_ATTRIBUTE_HEAL_HPS"] = "HPS"
+L["STRING_ATTRIBUTE_HEAL_OVERHEAL"] = "Sobrecuración (overheal)"
+L["STRING_ATTRIBUTE_HEAL_PREVENT"] = "Daño impedido"
+L["STRING_ATTRIBUTE_HEAL_TAKEN"] = "Sanación recibido"
+L["STRING_ATTRIBUTE_MISC"] = "Misceláneo"
+L["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"] = "Bufos arriba"
+L["STRING_ATTRIBUTE_MISC_CCBREAK"] = "CC roto"
+L["STRING_ATTRIBUTE_MISC_DEAD"] = "Muertes"
+L["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"] = "Debufos arriba"
+L["STRING_ATTRIBUTE_MISC_DEFENSIVE_COOLDOWNS"] = "Reutilizaciones"
+L["STRING_ATTRIBUTE_MISC_DISPELL"] = "Disipaciones"
+L["STRING_ATTRIBUTE_MISC_INTERRUPT"] = "Interrupciones"
+L["STRING_ATTRIBUTE_MISC_RESS"] = "Res"
+L["STRING_AUTO"] = "auto"
+L["STRING_AUTOSHOT"] = "Disparo automático"
+--[[Translation missing --]]
+--[[ L["STRING_AVERAGE"] = ""--]]
+L["STRING_BLOCKED"] = "Bloqueado"
+L["STRING_BOTTOM"] = "inferior"
+--[[Translation missing --]]
+--[[ L["STRING_BOTTOM_TO_TOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CAST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CAUGHT"] = ""--]]
+L["STRING_CCBROKE"] = "CC interrumpido"
+L["STRING_CENTER"] = "centro"
+--[[Translation missing --]]
+--[[ L["STRING_CENTER_UPPER"] = ""--]]
+L["STRING_CHANGED_TO_CURRENT"] = "Segmento cambiado al actual"
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_PRINT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_SAY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_WHISPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_WHISPER_TARGET_COOLDOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_YELL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CLICK_REPORT_LINE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CLICK_REPORT_LINE2"] = ""--]]
+L["STRING_CLOSEALL"] = "Todos las ventanas de Detalles se ocultan. Usar '/details new' para mostrarlos de nuevo."
+--[[Translation missing --]]
+--[[ L["STRING_COLOR"] = ""--]]
+L["STRING_COMMAND_LIST"] = "lista de comandos"
+L["STRING_COOLTIP_NOOPTIONS"] = "ningún opciones"
+--[[Translation missing --]]
+--[[ L["STRING_CREATEAURA"] = ""--]]
+L["STRING_CRITICAL_HITS"] = "Golpes críticos"
+L["STRING_CRITICAL_ONLY"] = "crítico"
+L["STRING_CURRENT"] = "Actual"
+L["STRING_CURRENTFIGHT"] = "Combate actual"
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_ALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_ALL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_DPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_DPS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_HPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_HPS_DESC"] = ""--]]
+L["STRING_CUSTOM_ATTRIBUTE_DAMAGE"] = "Daño"
+L["STRING_CUSTOM_ATTRIBUTE_HEAL"] = "Sanación"
+L["STRING_CUSTOM_ATTRIBUTE_SCRIPT"] = "Script personalizado"
+L["STRING_CUSTOM_AUTHOR"] = "Autór:"
+L["STRING_CUSTOM_AUTHOR_DESC"] = "El autór de esta visualización."
+L["STRING_CUSTOM_CANCEL"] = "Cancelar"
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_CC_DONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_CC_RECEIVED"] = ""--]]
+L["STRING_CUSTOM_CREATE"] = "Crear"
+L["STRING_CUSTOM_CREATED"] = "La nueva visualización se ha creado."
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONSHIELDS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONSKULL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONSKULL_DESC"] = ""--]]
+L["STRING_CUSTOM_DESCRIPTION"] = "Desc:"
+L["STRING_CUSTOM_DESCRIPTION_DESC"] = "Descripción de la funcionalidad de esta visualización."
+L["STRING_CUSTOM_DONE"] = "Guardar"
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DTBS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DTBS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DYNAMICOVERAL"] = ""--]]
+L["STRING_CUSTOM_EDIT"] = "Editar"
+L["STRING_CUSTOM_EDIT_SEARCH_CODE"] = "Editar código de busca"
+L["STRING_CUSTOM_EDIT_TOOLTIP_CODE"] = "Editar código de descripción"
+L["STRING_CUSTOM_EDITCODE_DESC"] = "Crear su propio código de visualización. Esta es una opción para usarios avanzados."
+L["STRING_CUSTOM_EDITTOOLTIP_DESC"] = "Este código se ejecuta al pasar el ratón en una fila con esta visualización."
+L["STRING_CUSTOM_ENEMY_DT"] = " Daño recibido"
+L["STRING_CUSTOM_EXPORT"] = "Exportir"
+L["STRING_CUSTOM_FUNC_INVALID"] = "El script personalizato no es valido y no puede actualizar la ventana."
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT"] = "Piedra de salud usado"
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT_DESC"] = "Mostrar los miembres del grupo o banda que utilizan una piedra de salud mientras del encuentro."
+L["STRING_CUSTOM_ICON"] = "Icono:"
+L["STRING_CUSTOM_IMPORT"] = "Importir"
+L["STRING_CUSTOM_IMPORT_ALERT"] = "Visualización se ha cargado. Hacer clic 'Importir' para confirmar."
+L["STRING_CUSTOM_IMPORT_BUTTON"] = "Importir"
+L["STRING_CUSTOM_IMPORT_ERROR"] = "Importación fracasó -- cadena no valido."
+L["STRING_CUSTOM_IMPORTED"] = "La visualización se ha importado con éxito."
+L["STRING_CUSTOM_LONGNAME"] = "El nombre no puede tener más de 32 caracteres."
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_MYSPELLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_MYSPELLS_DESC"] = ""--]]
+L["STRING_CUSTOM_NAME"] = "Nombre:"
+L["STRING_CUSTOM_NAME_DESC"] = "Introducir un nombre para la nueva visualización personalizada."
+L["STRING_CUSTOM_NEW"] = "Crear nueva visualización"
+L["STRING_CUSTOM_PASTE"] = "Empastar aquí:"
+L["STRING_CUSTOM_POT_DEFAULT"] = "Poción usado"
+L["STRING_CUSTOM_POT_DEFAULT_DESC"] = "Mostrar los miembres del grupo o banda que utilizan una poción mientras del encuentro."
+L["STRING_CUSTOM_REMOVE"] = "Eliminar"
+L["STRING_CUSTOM_REPORT"] = "(personalizado)"
+L["STRING_CUSTOM_SAVE"] = "Guardar cambios"
+L["STRING_CUSTOM_SAVED"] = "La visualización se ha guardado."
+L["STRING_CUSTOM_SHORTNAME"] = "El nombre debe tener al menos 5 caracteres."
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SKIN_TEXTURE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SKIN_TEXTURE_DESC"] = ""--]]
+L["STRING_CUSTOM_SOURCE"] = "Fuente:"
+L["STRING_CUSTOM_SOURCE_DESC"] = [=[Qué cause el efecto.
+
+El botón a la dercha muestra una lista de PNJs de los encuentros de banda.]=]
+L["STRING_CUSTOM_SPELLID"] = "ID de hechizo:"
+L["STRING_CUSTOM_SPELLID_DESC"] = [=[Opcional. El hechizo que la fuente utiliza para aplicar el efecto en el objetivo.
+
+El botón a la derecha muestra una lista de PNJs de los encuentros de banda.]=]
+L["STRING_CUSTOM_TARGET"] = "Objetivo:"
+L["STRING_CUSTOM_TARGET_DESC"] = [=[Este está el objetivo del fuente.
+
+El botón a la derecha muestra una lista de PNJs de los encuentros de banda.]=]
+L["STRING_CUSTOM_TEMPORARILY"] = " (|cFFFFC000temporalmente|r)"
+L["STRING_DAMAGE"] = "Daño"
+L["STRING_DAMAGE_DPS_IN"] = "DPS recibido por"
+L["STRING_DAMAGE_FROM"] = "Recibió daño por"
+L["STRING_DAMAGE_TAKEN_FROM"] = "Daño recibido por"
+L["STRING_DAMAGE_TAKEN_FROM2"] = "infligió daño por"
+L["STRING_DEFENSES"] = "Defensas"
+--[[Translation missing --]]
+--[[ L["STRING_DESCENDING"] = ""--]]
+L["STRING_DETACH_DESC"] = "Desagrupar ventanas"
+--[[Translation missing --]]
+--[[ L["STRING_DISCARD"] = ""--]]
+L["STRING_DISPELLED"] = "Bufos/debufos disipados"
+L["STRING_DODGE"] = "Esquivado"
+L["STRING_DOT"] = " (DoT)"
+L["STRING_DPS"] = "DPS"
+L["STRING_EMPTY_SEGMENT"] = "Segmento vacío"
+--[[Translation missing --]]
+--[[ L["STRING_ENABLED"] = ""--]]
+L["STRING_ENVIRONMENTAL_DROWNING"] = "Entorno (Ahogamiento)"
+L["STRING_ENVIRONMENTAL_FALLING"] = "Entorno (Caída)"
+L["STRING_ENVIRONMENTAL_FATIGUE"] = "Entorno (Fatiga)"
+L["STRING_ENVIRONMENTAL_FIRE"] = "Entorno (Fuego)"
+L["STRING_ENVIRONMENTAL_LAVA"] = "Entorno (Lava)"
+L["STRING_ENVIRONMENTAL_SLIME"] = "Entorno (Cieno)"
+L["STRING_EQUILIZING"] = "Compartiendo datos de encuentro"
+L["STRING_ERASE"] = "eliminar"
+L["STRING_ERASE_DATA"] = "Eliminar datos"
+L["STRING_ERASE_DATA_OVERALL"] = "Eliminar datos globales"
+L["STRING_ERASE_IN_COMBAT"] = "Eliminar todos los datos después del combate actual."
+L["STRING_EXAMPLE"] = "Ejemplo"
+--[[Translation missing --]]
+--[[ L["STRING_EXPLOSION"] = ""--]]
+L["STRING_FAIL_ATTACKS"] = "Ataques fracasados"
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_CURSE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_MMOC_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_PREFERED_SITE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_SEND_FEEDBACK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_WOWI_DESC"] = ""--]]
+L["STRING_FIGHTNUMBER"] = "Combate #"
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ALLSPELLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ALLSPELLS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_BWTIMERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_BWTIMERS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_DBMTIMERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_DBMTIMERS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENEMIES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENEMIES_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PETS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PETS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PLAYERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PLAYERS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_ENABLEPLUGINS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_BARTEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_CASTERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_ENCOUNTERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_ENEMYNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_OWNERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_PETNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_PLAYERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_SPELLNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_BARTEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_CASTER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_CLASS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_CREATEAURA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ENCOUNTERID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ENCOUNTERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_EVENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_FLAG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_GUID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_INDEX"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_NAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_NPCID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_OWNER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_SCHOOL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_SPELLID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_TIMER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_VIDEO"] = ""--]]
+L["STRING_FREEZE"] = "Este segmento no es disponible ahora."
+L["STRING_FROM"] = "Por"
+L["STRING_GERAL"] = "General"
+L["STRING_GLANCING"] = "Refilón"
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_BOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_DATABASEERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_DIFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_GUILD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE_INDIVIDUAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE_PLAYER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_ROLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_SHOWHISTORY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_SHOWRANK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_SYNCBUTTONTEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_TUTORIAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_WINDOWALERT"] = ""--]]
+L["STRING_HEAL"] = "Sanación"
+L["STRING_HEAL_ABSORBED"] = "Sanación absorbida"
+L["STRING_HEAL_CRIT"] = "Sanación crítica"
+L["STRING_HEALING_FROM"] = "Sanación recibida por"
+L["STRING_HEALING_HPS_FROM"] = "HPS recibida por"
+L["STRING_HITS"] = "Golpes"
+L["STRING_HPS"] = "HPS"
+L["STRING_IMAGEEDIT_ALPHA"] = "Transparencia"
+L["STRING_IMAGEEDIT_CROPBOTTOM"] = "Cortar la inferior"
+L["STRING_IMAGEEDIT_CROPLEFT"] = "Cortar la izquierda"
+L["STRING_IMAGEEDIT_CROPRIGHT"] = "Cortar la derecha"
+L["STRING_IMAGEEDIT_CROPTOP"] = "Cortar la superior"
+L["STRING_IMAGEEDIT_DONE"] = "Guardar"
+L["STRING_IMAGEEDIT_FLIPH"] = "Poner al revés horizontalmente"
+L["STRING_IMAGEEDIT_FLIPV"] = "Poner al revés verticalmente"
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TAB_AVOIDANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TAB_COMPARISON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TAB_SUMMARY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TUTORIAL_COMPARISON1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INSTANCE_CHAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INSTANCE_LIMIT"] = ""--]]
+L["STRING_INTERFACE_OPENOPTIONS"] = "Mostrar opciones"
+L["STRING_ISA_PET"] = "Esta unidad es una mascota"
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_BOOKMARK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_BOOKMARK_NUMBER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_RESET_SEGMENTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SCROLL_DOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SCROLL_UP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SCROLLING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SEGMENTCONTROL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_TOGGLE_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_TOGGLE_WINDOWS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_WINDOW_CONTROL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_WINDOW_REPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_WINDOW_REPORT_HEADER"] = ""--]]
+L["STRING_KILLED"] = "Asesinado"
+--[[Translation missing --]]
+--[[ L["STRING_LAST_COOLDOWN"] = ""--]]
+L["STRING_LEFT"] = "izquierda"
+L["STRING_LEFT_CLICK_SHARE"] = "Hacer clic para enviar un informe."
+--[[Translation missing --]]
+--[[ L["STRING_LEFT_TO_RIGHT"] = ""--]]
+L["STRING_LOCK_DESC"] = "Bloquear o desbloquear la ventana"
+L["STRING_LOCK_WINDOW"] = "Bloquear"
+L["STRING_MASTERY"] = "Maestría"
+L["STRING_MAXIMUM"] = "Máximo"
+--[[Translation missing --]]
+--[[ L["STRING_MAXIMUM_SHORT"] = ""--]]
+L["STRING_MEDIA"] = "Medios"
+L["STRING_MELEE"] = "Mano a mano"
+L["STRING_MEMORY_ALERT_BUTTON"] = "Entendí"
+L["STRING_MEMORY_ALERT_TEXT1"] = "Details! utiliza una gran cantidad de memoria, pero, |cFFFF8800contrariamente a la creencia popular de|r, el uso de memoria por los complementos |cFFFF8800no afecta|r en nada el rendimiento del juego o el FPS."
+L["STRING_MEMORY_ALERT_TEXT2"] = "Por lo tanto, si usted ve Details! usando mucha memoria, no se asuste :D! |cFFFF8800Está todo bien|r y, una parte de esta memoria está aun |cFFFF8800utilizado en cachés|r para hacer el addon aún más rápido."
+L["STRING_MEMORY_ALERT_TEXT3"] = "Sin embargo, si es su deseo de saber |cFFFF8800addons que son más 'pesado'|r o que están disminuyendo más su FPS, instale el complemento: '|cFFFFFF00AddOns Cpu Usage|r'."
+L["STRING_MEMORY_ALERT_TITLE"] = "¡Por favor lea cuidadosamente!"
+L["STRING_MENU_CLOSE_INSTANCE"] = "Cerrar esta ventana"
+L["STRING_MENU_CLOSE_INSTANCE_DESC"] = "Una ventana cerrada se puede mostrar de nuevo en cualquier momento por el uso del botón # en la ventana."
+L["STRING_MENU_CLOSE_INSTANCE_DESC2"] = "Para eliminar una ventana permanentemente, consultar la sección miscelánea en las opciones."
+--[[Translation missing --]]
+--[[ L["STRING_MENU_INSTANCE_CONTROL"] = ""--]]
+L["STRING_MINIMAP_TOOLTIP1"] = "|cFFCFCFCFHacer clic|r: mostrar opciones"
+L["STRING_MINIMAP_TOOLTIP11"] = "|cFFCFCFCFHacer clic|r: eliminar todos segmentos"
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAP_TOOLTIP12"] = ""--]]
+L["STRING_MINIMAP_TOOLTIP2"] = "|cFFCFCFCFHacer clic derecho|r: menú rapido"
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAPMENU_CLOSEALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAPMENU_HIDEICON"] = ""--]]
+L["STRING_MINIMAPMENU_LOCK"] = "Bloquear"
+L["STRING_MINIMAPMENU_NEWWINDOW"] = "Crear nueva ventana"
+L["STRING_MINIMAPMENU_REOPENALL"] = "Mostrar todas de nuevo"
+L["STRING_MINIMAPMENU_UNLOCK"] = "Desbloquear"
+L["STRING_MINIMUM"] = "Mínimo"
+--[[Translation missing --]]
+--[[ L["STRING_MINIMUM_SHORT"] = ""--]]
+L["STRING_MINITUTORIAL_BOOKMARK1"] = "Haga clic derecho en cualquier punto sobre la ventana para abrir los marcadores!"
+L["STRING_MINITUTORIAL_BOOKMARK2"] = "Marcadores da acceso rápido a pantallas favoritas."
+L["STRING_MINITUTORIAL_BOOKMARK3"] = "right click to close the bookmark panel."
+L["STRING_MINITUTORIAL_BOOKMARK4"] = "No mostrar esto de nuevo."
+L["STRING_MINITUTORIAL_CLOSECTRL1"] = "|cFFFFFF00Ctrl + Haga clic derecho |r cierra la ventana!"
+L["STRING_MINITUTORIAL_CLOSECTRL2"] = "Si quieres volver a abrirlo, vaya a la ventana Control de ningún menú Mode o Panel de opciones."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL1"] = "Qué ventana se está editando."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL2"] = "Cuando está marcada, también se cambian todas las ventanas en el grupo."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL3"] = [=[Para crear una ventana de grupo, arrastre # 2 cerca de la ventana # 1.
+
+Romper un clic en el botón de grupo desagrupar.]=]
+L["STRING_MINITUTORIAL_OPTIONS_PANEL4"] = "Pon a prueba tu configuración creando barras de ensayo."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL5"] = "Cuando Edición de grupo está habilitada, se cambian todas las ventanas en un grupo."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL6"] = "Seleccione aquí qué ventana desea cambiar la apariencia."
+--[[Translation missing --]]
+--[[ L["STRING_MINITUTORIAL_WINDOWS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINITUTORIAL_WINDOWS2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MIRROR_IMAGE"] = ""--]]
+L["STRING_MISS"] = "Fallado"
+L["STRING_MODE_ALL"] = "Todos"
+L["STRING_MODE_GROUP"] = "Grupo & Banda"
+--[[Translation missing --]]
+--[[ L["STRING_MODE_OPENFORGE"] = ""--]]
+L["STRING_MODE_PLUGINS"] = "plugins"
+L["STRING_MODE_RAID"] = "Plugins: banda"
+L["STRING_MODE_SELF"] = "Plugins: sin grupo"
+L["STRING_MORE_INFO"] = "Consultar la caja a la derecha para más información."
+--[[Translation missing --]]
+--[[ L["STRING_MULTISTRIKE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MULTISTRIKE_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MUSIC_DETAILS_ROBERTOCARLOS"] = ""--]]
+L["STRING_NEWROW"] = "esperando para actualizar..."
+--[[Translation missing --]]
+--[[ L["STRING_NEWS_REINSTALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NEWS_TITLE"] = ""--]]
+L["STRING_NO"] = "No"
+L["STRING_NO_DATA"] = "Los datos ya se han limpiados."
+L["STRING_NO_SPELL"] = "No se use un hechizo."
+L["STRING_NO_TARGET"] = "No se encuentra un objetivo."
+L["STRING_NO_TARGET_BOX"] = "Ningún objetivos disponibles"
+L["STRING_NOCLOSED_INSTANCES"] = [=[No hay ningún ventanas cerradas.
+Hacer clic para crear una nueva ventana.]=]
+--[[Translation missing --]]
+--[[ L["STRING_NOLAST_COOLDOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NOMORE_INSTANCES"] = ""--]]
+L["STRING_NORMAL_HITS"] = "Golpes normales"
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_ARABIC_MYRIAD_EASTASIA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_ARABIC_WESTERN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_ARABIC_WESTERN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_MYRIAD_EASTASIA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OFFHAND_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LALPHA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LSELECT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_UALPHA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_UANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_UENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_USELECT_DESC"] = ""--]]
+L["STRING_OPTIONS_ADVANCED"] = "Avanzado"
+L["STRING_OPTIONS_ALPHAMOD_ANCHOR"] = "Modificadores de opacidad:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYS_USE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYS_USE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYSSHOWPLAYERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYSSHOWPLAYERS_DESC"] = ""--]]
+L["STRING_OPTIONS_ANCHOR"] = "Lado"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATEBARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATEBARS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATESCROLL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATESCROLL_DESC"] = ""--]]
+L["STRING_OPTIONS_APPEARANCE"] = "Aparencia"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT"] = "Configuración del texto del título"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT_DESC"] = "Estas opciones configurar el texto del título de la ventana."
+L["STRING_OPTIONS_AUTO_SWITCH"] = "Todos roles |cFFFFAA00(en combate)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_COMBAT"] = "|cFFFFAA00(en combate)|r"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_DAMAGER_DESC"] = ""--]]
+L["STRING_OPTIONS_AUTO_SWITCH_DESC"] = [=[Al entrar en combate, esta ventana muestra el atributo o plugin seleccionado.
+
+|cffffff00¡Advertencia!|r El atributo específico para cada rol anula el atributo seleccionado aquí.]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_HEALER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_TANK_DESC"] = ""--]]
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE"] = "Después de limpiar"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_WIPE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AVATAR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AVATAR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AVATAR_DESC"] = ""--]]
+L["STRING_OPTIONS_BAR_BACKDROP_ANCHOR"] = "Borde:"
+L["STRING_OPTIONS_BAR_BACKDROP_COLOR_DESC"] = "Cambiar el color del borde."
+L["STRING_OPTIONS_BAR_BACKDROP_ENABLED_DESC"] = "Activar o desactivar los bordes de las filas."
+L["STRING_OPTIONS_BAR_BACKDROP_SIZE_DESC"] = "Cambiar el tamaño del borde."
+L["STRING_OPTIONS_BAR_BACKDROP_TEXTURE_DESC"] = "Escoger la textura del borde."
+L["STRING_OPTIONS_BAR_BCOLOR"] = "Color del fondo"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BTEXTURE_DESC"] = ""--]]
+L["STRING_OPTIONS_BAR_COLOR_DESC"] = [=[Cambiar el color de la textura.
+Esta opción no se aplica si está activada la opción para colorear por clase.]=]
+L["STRING_OPTIONS_BAR_COLORBYCLASS"] = "Colorear por clase"
+L["STRING_OPTIONS_BAR_COLORBYCLASS_DESC"] = "Colorear la barra por el clase de la unidad en vez del uso del color seleccionado."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_FOLLOWING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_FOLLOWING_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_FOLLOWING_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_GROW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_GROW_DESC"] = ""--]]
+L["STRING_OPTIONS_BAR_HEIGHT"] = "Altura"
+L["STRING_OPTIONS_BAR_HEIGHT_DESC"] = "Cambiar la altura de la barra."
+L["STRING_OPTIONS_BAR_ICONFILE"] = "Archivo del icono"
+L["STRING_OPTIONS_BAR_ICONFILE_DESC"] = [=[Ruta del archivo para un icono personalizado.
+
+La imagen debe ser un archivo .tga con las dimensiones de 256x256 pixels y un canal de opacidad.]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE_DESC2"] = ""--]]
+L["STRING_OPTIONS_BAR_ICONFILE1"] = "Ningún icono"
+L["STRING_OPTIONS_BAR_ICONFILE2"] = "Defecto"
+L["STRING_OPTIONS_BAR_ICONFILE3"] = "Defecto (negro y blanco)"
+L["STRING_OPTIONS_BAR_ICONFILE4"] = "Defecto (transparente)"
+L["STRING_OPTIONS_BAR_ICONFILE5"] = "Iconos redondeados"
+L["STRING_OPTIONS_BAR_ICONFILE6"] = "Defecto (negro y blanco transparente)"
+L["STRING_OPTIONS_BAR_SPACING"] = "Espacamiento"
+L["STRING_OPTIONS_BAR_SPACING_DESC"] = "Cambiar el tamaño del espacio entre cada fila."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_TEXTURE_DESC"] = ""--]]
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM"] = "Texto personalizado activado"
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM_DESC"] = "Si activada, se formate el texto a la izquierda por las reglas definidas en el cuadro."
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2"] = ""
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARORIENTATION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARORIENTATION_DESC"] = ""--]]
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM"] = "Texto personalizado activado"
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM_DESC"] = "Si activada, se formate el texto a la derecho por las reglas definidas en el cuadro."
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2"] = ""
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2_DESC"] = ""--]]
+L["STRING_OPTIONS_BARS"] = "Configuración de barras"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE_DESC"] = ""--]]
+L["STRING_OPTIONS_BARS_DESC"] = "Estas opciónes cambien la aparencia de las barras."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARSORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARSORT_DESC"] = ""--]]
+L["STRING_OPTIONS_BARSTART"] = "Barra después del icono"
+L["STRING_OPTIONS_BARSTART_DESC"] = "La barra comenza al borde derecho del icono. Desactivar para que la barra comenza al borde izquierda, en caso de iconos transparentes."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARUR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARUR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_ALL_ALLY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_ALL_ALLY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_UNIQUE_SEGMENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_UNIQUE_SEGMENT_DESC"] = ""--]]
+L["STRING_OPTIONS_CAURAS"] = "Recoger auras"
+L["STRING_OPTIONS_CAURAS_DESC"] = [=[Activar la recogida de:
+
+- |cFFFFFF00Tiempos activados de bufos|r
+- |cFFFFFF00Tiempos activados de debufos|r
+- |cFFFFFF00Void Zones|r
+- |cFFFFFF00Reutiliziaciones|r]=]
+L["STRING_OPTIONS_CDAMAGE"] = "Recoger daño"
+L["STRING_OPTIONS_CDAMAGE_DESC"] = [=[Activar la recogida de:
+
+- |cFFFFFF00Daño infligido|r
+- |cFFFFFF00Daño por segundo|r
+- |cFFFFFF00Fuego amigo|r
+- |cFFFFFF00Daño recibido|r]=]
+L["STRING_OPTIONS_CENERGY"] = "Recoger poder"
+L["STRING_OPTIONS_CENERGY_DESC"] = [=[Activar la recogida de:
+
+- |cFFFFFF00Mana restaurada|r
+- |cFFFFFF00Ira generada|r
+- |cFFFFFF00Energía generada|r
+- |cFFFFFF00Poder runico generado|r]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGE_CLASSCOLORS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGE_CLASSCOLORS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGECOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGELOG"] = ""--]]
+L["STRING_OPTIONS_CHART_ADD"] = "Añadir datos"
+L["STRING_OPTIONS_CHART_ADD2"] = "Añadir"
+L["STRING_OPTIONS_CHART_ADDAUTHOR"] = "Autór: "
+L["STRING_OPTIONS_CHART_ADDCODE"] = "Código: "
+L["STRING_OPTIONS_CHART_ADDICON"] = "Icono: "
+L["STRING_OPTIONS_CHART_ADDNAME"] = "Nombre: "
+L["STRING_OPTIONS_CHART_ADDVERSION"] = "Versión: "
+L["STRING_OPTIONS_CHART_AUTHOR"] = "Autór"
+L["STRING_OPTIONS_CHART_AUTHORERROR"] = "El nombre del autór no es válido."
+L["STRING_OPTIONS_CHART_CANCEL"] = "Cancelar"
+L["STRING_OPTIONS_CHART_CLOSE"] = "Cerrar"
+L["STRING_OPTIONS_CHART_CODELOADED"] = "El código ya está cargado y no se puede mostrar."
+L["STRING_OPTIONS_CHART_EDIT"] = "Editar código"
+L["STRING_OPTIONS_CHART_EXPORT"] = "Exportir"
+L["STRING_OPTIONS_CHART_FUNCERROR"] = "La función no es válida."
+L["STRING_OPTIONS_CHART_ICON"] = "Icono"
+L["STRING_OPTIONS_CHART_IMPORT"] = "Importir"
+L["STRING_OPTIONS_CHART_IMPORTERROR"] = "Los datos de importación no son válidos."
+L["STRING_OPTIONS_CHART_NAME"] = "Nombre"
+L["STRING_OPTIONS_CHART_NAMEERROR"] = "El nombre no es válido."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_PLUGINWARNING"] = ""--]]
+L["STRING_OPTIONS_CHART_REMOVE"] = "Eliminar"
+L["STRING_OPTIONS_CHART_SAVE"] = "Guardar"
+L["STRING_OPTIONS_CHART_VERSION"] = "Versión"
+L["STRING_OPTIONS_CHART_VERSIONERROR"] = "La versión no es válida."
+L["STRING_OPTIONS_CHEAL"] = "Recoger sanación"
+L["STRING_OPTIONS_CHEAL_DESC"] = [=[Activar la recogida de:
+
+- |cFFFFFF00Sanación realizada|r
+- |cFFFFFF00Absorción|r
+- |cFFFFFF00Sanación por segundo|r
+- |cFFFFFF00Overhealing|r
+- |cFFFFFF00Sanación recibida|r
+- |cFFFFFF00Enemigos curados|r
+- |cFFFFFF00Daño impedido|r]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLASSCOLOR_MODIFY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLASSCOLOR_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLEANUP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLEANUP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS_DESC"] = ""--]]
+L["STRING_OPTIONS_CLOUD"] = "Recogida por grupo"
+L["STRING_OPTIONS_CLOUD_DESC"] = "Los datos de tipos desactivados localmente se recogerán por los otros miembres de la banda."
+L["STRING_OPTIONS_CMISC"] = "Recoger miscelánea"
+L["STRING_OPTIONS_CMISC_DESC"] = [=[Activar la recogida de:
+
+- |cFFFFFF00CC interrumpido|r
+- |cFFFFFF00Disipaciones|r
+- |cFFFFFF00Interrupciones|r
+- |cFFFFFF00Resurrecciones|r
+- |cFFFFFF00Deaths|r]=]
+L["STRING_OPTIONS_COLORANDALPHA"] = "Color y opacidad"
+L["STRING_OPTIONS_COLORFIXED"] = "Color fijado"
+L["STRING_OPTIONS_COMBAT_ALPHA"] = "Cuando cambiar"
+L["STRING_OPTIONS_COMBAT_ALPHA_1"] = "Nunca"
+L["STRING_OPTIONS_COMBAT_ALPHA_2"] = "En combate"
+L["STRING_OPTIONS_COMBAT_ALPHA_3"] = "Fuera de combate"
+L["STRING_OPTIONS_COMBAT_ALPHA_4"] = "Sin grupo"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_7"] = ""--]]
+L["STRING_OPTIONS_COMBAT_ALPHA_DESC"] = [=[Escgoer como se afecta la opacidad de la ventana por combate.
+
+|cFFFFFF00Ningún|r: La opacidad no se afecta por combate.
+
+|cFFFFFF00En combate|r: La opacidad espicificada se aplica a la ventana mientras el combate.
+
+|cFFFFFF00Fuera de combate|r: La opacidad espicificada se aplica a la ventana fuera del combate.
+
+|cFFFFFF00Sin grupo|r: La opacidad espicificada se aplica a la ventana cuando no está en un grupo o banda.
+
+|cFFFFFF00¡Advertencia!|r Esta opción se anula la opacidad especificada por la opción Opacidad automáticamente.]=]
+L["STRING_OPTIONS_COMBATTWEEKS"] = "Cambios para combate"
+L["STRING_OPTIONS_COMBATTWEEKS_DESC"] = "Cambiar como se funciona Detailles con algunos aspectos de combate."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CONFIRM_ERASE"] = ""--]]
+L["STRING_OPTIONS_CUSTOMSPELL_ADD"] = "Añadir hechizo"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE"] = "Configuración de hechizos"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE_DESC"] = "Cambiar los nombres y los iconos mostrados de hechizos."
+L["STRING_OPTIONS_DATABROKER"] = "Data Broker:"
+L["STRING_OPTIONS_DATABROKER_TEXT"] = "Texto"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD7"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD8"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD9"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT1_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATACHARTTITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATACHARTTITLE_DESC"] = ""--]]
+L["STRING_OPTIONS_DATACOLLECT_ANCHOR"] = "Tipos de datos:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLIMIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLIMIT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLOG_MINHEALING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLOG_MINHEALING_DESC"] = ""--]]
+L["STRING_OPTIONS_DESATURATE_MENU"] = "Desaturar menú"
+L["STRING_OPTIONS_DESATURATE_MENU_DESC"] = "Mostrar los iconos en el menú en blanco y negro."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT_DESC"] = ""--]]
+L["STRING_OPTIONS_DISABLE_GROUPS"] = "Desactivar agrupar"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_GROUPS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_LOCK_RESIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_LOCK_RESIZE_DESC"] = ""--]]
+L["STRING_OPTIONS_DISABLE_RESET"] = "Desactivar botón para restablecer"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_RESET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLED_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DTAKEN_EVERYTHING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DTAKEN_EVERYTHING_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED3"] = ""--]]
+L["STRING_OPTIONS_EDITIMAGE"] = "Editar imagen"
+L["STRING_OPTIONS_EDITINSTANCE"] = "Configurando ventana:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ERASECHARTDATA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ERASECHARTDATA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_EXTERNALS_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_EXTERNALS_TITLE2"] = ""--]]
+L["STRING_OPTIONS_GENERAL"] = "Opciones generales"
+L["STRING_OPTIONS_GENERAL_ANCHOR"] = "General:"
+L["STRING_OPTIONS_HIDE_ICON"] = "Ocultar icono"
+L["STRING_OPTIONS_HIDE_ICON_DESC"] = [=[Ocultar el icono en la esquima superior izquierda.
+
+Esto puede verse mejor con algos skins.]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HIDECOMBATALPHA_DESC"] = ""--]]
+L["STRING_OPTIONS_HOTCORNER"] = "Mostrar botón"
+L["STRING_OPTIONS_HOTCORNER_ACTION"] = "al clic"
+L["STRING_OPTIONS_HOTCORNER_ACTION_DESC"] = "Qué hacer al clic en la barra de la esquina activa."
+L["STRING_OPTIONS_HOTCORNER_ANCHOR"] = "Esquina activa:"
+L["STRING_OPTIONS_HOTCORNER_DESC"] = "Mostrar o ocultar el botón el la esquina activa."
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK"] = "Clic rapido"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_DESC"] = [=[Activar o desactivar la funcionalidad 'clic rapido' para las esquinas activas.
+
+Al pasar el ratón en la esquina superior izquierda se activa la esquina activa. Al clic se hacer la acción.]=]
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC"] = "Clic rapido al hacer clic"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC_DESC"] = "Seleccionar un acción al hacer clic en el botón 'clic rapido' en la esquina activa."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_IGNORENICKNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_IGNORENICKNAME_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ILVL_TRACKER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ILVL_TRACKER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ILVL_TRACKER_TEXT"] = ""--]]
+L["STRING_OPTIONS_INSTANCE_ALPHA2"] = "Color del fondo"
+L["STRING_OPTIONS_INSTANCE_ALPHA2_DESC"] = "Cambiar el color del fondo de la ventana."
+L["STRING_OPTIONS_INSTANCE_BACKDROP"] = "Textura del fondo"
+L["STRING_OPTIONS_INSTANCE_BACKDROP_DESC"] = [=[Escoger la textura del fondo de la ventana.
+
+|cffffff00Defecto|r: Details Background.]=]
+L["STRING_OPTIONS_INSTANCE_COLOR"] = "Color de ventana"
+L["STRING_OPTIONS_INSTANCE_COLOR_DESC"] = [=[Cambiar el color y la opacidad de esta ventana.
+
+|cFFFFFF00¡Advertencia!|r La opacidad seleccionada aquí se anula por los valores de |cFFFFFF00opacidad automáticamente|r si se activa.
+
+|cFFFFFF00¡Advertencia!|r La selección de una color de ventana anula la personalización del color de la barra estada.]=]
+L["STRING_OPTIONS_INSTANCE_CURRENT"] = "Auto-cambiar al actual"
+L["STRING_OPTIONS_INSTANCE_CURRENT_DESC"] = "Cambiar automaticamente al segmento actual al entrar en combate si ninguna otra ventana ya lo muestra."
+L["STRING_OPTIONS_INSTANCE_DELETE"] = "Eliminar"
+L["STRING_OPTIONS_INSTANCE_DELETE_DESC"] = [=[Eliminar una ventana permanentamente.
+Es posible que la interfaz se vuelva a cargar para completar el proceso de elimicaión.]=]
+L["STRING_OPTIONS_INSTANCE_SKIN"] = "Skin"
+L["STRING_OPTIONS_INSTANCE_SKIN_DESC"] = "Cambiar la aparencia de la ventana por la aplicación de un skin."
+L["STRING_OPTIONS_INSTANCE_STATUSBAR_ANCHOR"] = "Barra:"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR"] = "Color y opacidad"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR_DESC"] = [=[Escoger el color de las barras.
+
+|cffffff00¡Advertencia!|r: Esta opción anula el color y la opacidad selecconada en las opciones del color de la ventana.]=]
+L["STRING_OPTIONS_INSTANCE_STRATA"] = "Estrato"
+L["STRING_OPTIONS_INSTANCE_STRATA_DESC"] = [=[Escoger el estrato en que colocar el objeto.
+
+El estrato 'bajo' es el valor por defecto, y hacer que la ventana aparece detrás de la mayoría de las otras ventanas en la interfaz.
+
+El estrato 'alta' hacer que la ventana parace en frente de la mayoría de las otras ventanas en la interfaz.]=]
+L["STRING_OPTIONS_INSTANCES"] = "Ventanas:"
+L["STRING_OPTIONS_INTERFACEDIT"] = "Modo de edición de interfaz"
+L["STRING_OPTIONS_LEFT_MENU_ANCHOR"] = "Configuración de menú:"
+L["STRING_OPTIONS_LOCKSEGMENTS"] = "Segmentos bloqueados"
+L["STRING_OPTIONS_LOCKSEGMENTS_DESC"] = "Al cambiar el segmento in una ventana, no se cambien los segmentos en las otras ventanas mostradas."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MANAGE_BOOKMARKS"] = ""--]]
+L["STRING_OPTIONS_MAXINSTANCES"] = "Máximo de ventanas"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MAXINSTANCES_DESC"] = ""--]]
+L["STRING_OPTIONS_MAXSEGMENTS"] = "Máximo de segmentos"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MAXSEGMENTS_DESC"] = ""--]]
+L["STRING_OPTIONS_MENU_ALPHA"] = "Opacidad al pasar del ratón:"
+L["STRING_OPTIONS_MENU_ALPHAENABLED_DESC"] = [=[Cambiar automaticamente la opacidad al pasar el ratón.
+
+|cffffff00¡Advertencia!|r: Esta opción anula la opacidad de la ventana seleccionada en las opciones de la ventana.]=]
+L["STRING_OPTIONS_MENU_ALPHAENTER"] = "Al pasar del ratón"
+L["STRING_OPTIONS_MENU_ALPHAENTER_DESC"] = "Cambiar la opacidad de la ventana a este valor al pasar del ratón."
+L["STRING_OPTIONS_MENU_ALPHALEAVE"] = "Sin ratón"
+L["STRING_OPTIONS_MENU_ALPHALEAVE_DESC"] = "Cambiar la opacidad de la ventana a este valor cuando el ratón no está sobre la ventana."
+L["STRING_OPTIONS_MENU_ALPHAWARNING"] = "Opacidad automáticamente es activado. Es posible que la opacidad se ve afectada."
+L["STRING_OPTIONS_MENU_ANCHOR"] = "Lado de menú"
+L["STRING_OPTIONS_MENU_ANCHOR_DESC"] = "Escoger si el menú izquierdo se encuentra al lado izquerdo o derecho de la ventana."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX"] = "Posición X"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX_DESC"] = "Mover el texto del atributo horizontalmente."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY"] = "Posición Y"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY_DESC"] = "Mover el texto del atributo verticalmente."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENABLED_DESC"] = "Activar el nombre del atributo que se muestra acutalmente en esta ventana."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER_DESC"] = ""--]]
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT"] = "Fuente del texto"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT_DESC"] = "Escoger la fuente del texto de atributo."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SHADOW_DESC"] = "Añadir una sombra al texto de atributo."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE"] = "Ancla del texto"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE_DESC"] = "Escoger de dónde anclar el texto de atributo."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR"] = "Color del texto"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR_DESC"] = "Cambiar el color del texto de atributo."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE"] = "Tamaño del texto"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE_DESC"] = "Cambiar el tamaño del texto de atributo."
+L["STRING_OPTIONS_MENU_ATTRIBUTESETTINGS_ANCHOR"] = "Configuración:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_AUTOHIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_AUTOHIDE_LEFT"] = ""--]]
+L["STRING_OPTIONS_MENU_BUTTONSSIZE_DESC"] = "Cambiar el tamaño de los botones. Esta opción aplica tambien a los botones que se añaden por plugins."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_FONT_FACE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_FONT_FACE_DESC"] = ""--]]
+L["STRING_OPTIONS_MENU_FONT_SIZE"] = "Tamaño de texto en menús"
+L["STRING_OPTIONS_MENU_FONT_SIZE_DESC"] = "Cambiar el tamaño del texto en todos menús."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_IGNOREBARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_IGNOREBARS_DESC"] = ""--]]
+L["STRING_OPTIONS_MENU_SHOWBUTTONS"] = "Mostrar botones"
+L["STRING_OPTIONS_MENU_SHOWBUTTONS_DESC"] = "Escoger cuál botones se muestran en la barra de herrameientas."
+L["STRING_OPTIONS_MENU_X"] = "Menú X"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_X_DESC"] = ""--]]
+L["STRING_OPTIONS_MENU_Y"] = "Menú Y"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_Y_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SHADOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SHADOW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SPACEMENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SPACEMENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAY_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAY_LOCK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAY_LOCK_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_DROPDOWN_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_OPTION_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_SHOWHIDE_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_WARNING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYSSIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYSSIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYWARNING"] = ""--]]
+L["STRING_OPTIONS_MINIMAP"] = "Mostrar icono"
+L["STRING_OPTIONS_MINIMAP_ACTION"] = "Al hacer clic"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION_DESC"] = ""--]]
+L["STRING_OPTIONS_MINIMAP_ACTION1"] = "Mostrar opciones"
+L["STRING_OPTIONS_MINIMAP_ACTION2"] = "Restablecer segmentos"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION3"] = ""--]]
+L["STRING_OPTIONS_MINIMAP_ANCHOR"] = "Minimapa:"
+L["STRING_OPTIONS_MINIMAP_DESC"] = "Mostrar el icono en el minimapa."
+L["STRING_OPTIONS_MISCTITLE"] = "Opciones misceláneas"
+L["STRING_OPTIONS_MISCTITLE2"] = "Estas opciones se permiten configurar los ajustes que no pertenecen en ninguna otra categoría."
+L["STRING_OPTIONS_NICKNAME"] = "Apodo"
+L["STRING_OPTIONS_NICKNAME_DESC"] = [=[Reemplazar el nombre de su personaje.
+
+El apodo se envía a los miembres de la hermandad, y se muestra en Detalles en vez del nombre de su personaje.]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OPEN_ROWTEXT_EDITOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OPEN_TEXT_EDITOR"] = ""--]]
+L["STRING_OPTIONS_OVERALL_ALL"] = "Todos segmentos"
+L["STRING_OPTIONS_OVERALL_ALL_DESC"] = "Todos segmentos se inclyen en los datos globales."
+L["STRING_OPTIONS_OVERALL_ANCHOR"] = "Datos globales:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONBOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONBOSS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_LOGOFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_LOGOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_MYTHICPLUS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_MYTHICPLUS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_NEWBOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_NEWBOSS_DESC"] = ""--]]
+L["STRING_OPTIONS_OVERALL_RAIDBOSS"] = "Jefes de banda"
+L["STRING_OPTIONS_OVERALL_RAIDBOSS_DESC"] = "Segmentos de encuentros con jefes de banda se incluyen en los datos globales."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_RAIDCLEAN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_RAIDCLEAN_DESC"] = ""--]]
+L["STRING_OPTIONS_PANIMODE"] = "Modo pánico"
+L["STRING_OPTIONS_PANIMODE_DESC"] = "Si se activa, todos los segmentos se borran al desconectar mientras un encuentro con un jefe de banda, para acelerar la desconexión."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PDW_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PDW_SKIN_DESC"] = ""--]]
+L["STRING_OPTIONS_PERCENT_TYPE"] = "Tipo de porcentaje"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERCENT_TYPE_DESC"] = ""--]]
+L["STRING_OPTIONS_PERFORMANCE"] = "Rendimiento"
+L["STRING_OPTIONS_PERFORMANCE_ANCHOR"] = "General:"
+L["STRING_OPTIONS_PERFORMANCE_ARENA"] = "Arena"
+L["STRING_OPTIONS_PERFORMANCE_BG15"] = "Campo de batalla de 15"
+L["STRING_OPTIONS_PERFORMANCE_BG40"] = "Campo de batalla de 40"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_DUNGEON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ENABLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_MYTHIC"] = ""--]]
+L["STRING_OPTIONS_PERFORMANCE_PROFILE_LOAD"] = "Perfil de rendimento cambiado: "
+L["STRING_OPTIONS_PERFORMANCE_RAID15"] = "Banda de 10-15"
+L["STRING_OPTIONS_PERFORMANCE_RAID30"] = "Banda de 16-30"
+L["STRING_OPTIONS_PERFORMANCE_RF"] = "Buscador de bandas"
+L["STRING_OPTIONS_PERFORMANCE_TYPES"] = "Tipo"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_TYPES_DESC"] = ""--]]
+L["STRING_OPTIONS_PERFORMANCE1"] = "Cambios de rendimiento"
+L["STRING_OPTIONS_PERFORMANCE1_DESC"] = "Estas opciones pueden reducir el uso de la CPU."
+L["STRING_OPTIONS_PERFORMANCECAPTURES"] = "Recogida de datos"
+L["STRING_OPTIONS_PERFORMANCECAPTURES_DESC"] = "Estos opciones configurar cómo se recogen y se analizaron los datos."
+L["STRING_OPTIONS_PERFORMANCEPROFILES_ANCHOR"] = "Perfiles de rendimiento:"
+L["STRING_OPTIONS_PICONS_DIRECTION"] = "Alineación de iconos de plugins"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PICONS_DIRECTION_DESC"] = ""--]]
+L["STRING_OPTIONS_PLUGINS"] = "Plugins"
+L["STRING_OPTIONS_PLUGINS_AUTHOR"] = "Autór"
+L["STRING_OPTIONS_PLUGINS_NAME"] = "Nombre"
+L["STRING_OPTIONS_PLUGINS_OPTIONS"] = "Opciones"
+L["STRING_OPTIONS_PLUGINS_RAID_ANCHOR"] = "Plugins de banda"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_SOLO_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_TOOLBAR_ANCHOR"] = ""--]]
+L["STRING_OPTIONS_PLUGINS_VERSION"] = "Versión"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PRESETNONAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PRESETTOOLD"] = ""--]]
+L["STRING_OPTIONS_PROFILE_COPYOKEY"] = "Perfil se ha copiado con éxito."
+L["STRING_OPTIONS_PROFILE_FIELDEMPTY"] = "El nombre no puede ser vacío."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_GLOBAL"] = ""--]]
+L["STRING_OPTIONS_PROFILE_LOADED"] = "Perfil cargado:"
+L["STRING_OPTIONS_PROFILE_NOTCREATED"] = "Perfio no se ha creado."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_OVERWRITTEN"] = ""--]]
+L["STRING_OPTIONS_PROFILE_POSSIZE"] = "Guardar tamaño y posición"
+L["STRING_OPTIONS_PROFILE_POSSIZE_DESC"] = "Guardar la posición y el tamaño de las ventanas en el perfil."
+L["STRING_OPTIONS_PROFILE_REMOVEOKEY"] = "Perfil se ha eliminado."
+L["STRING_OPTIONS_PROFILE_SELECT"] = "Escoger un perfil."
+L["STRING_OPTIONS_PROFILE_SELECTEXISTING"] = "Escoger un otro perfil, or usar un nuevo perfil para este personaje:"
+L["STRING_OPTIONS_PROFILE_USENEW"] = "Usar perfil nuevo"
+L["STRING_OPTIONS_PROFILES_ANCHOR"] = "Opciones:"
+L["STRING_OPTIONS_PROFILES_COPY"] = "Copiar perfil de"
+L["STRING_OPTIONS_PROFILES_COPY_DESC"] = "Copiar la confiración del perfil seleccionado al perfil actual, y sobrescribir todos sus valores."
+L["STRING_OPTIONS_PROFILES_CREATE"] = "Crear perfil"
+L["STRING_OPTIONS_PROFILES_CREATE_DESC"] = "Crear un nuevo perfil."
+L["STRING_OPTIONS_PROFILES_CURRENT"] = "Perfil actual:"
+L["STRING_OPTIONS_PROFILES_CURRENT_DESC"] = "Este es el nombre del perfil activo."
+L["STRING_OPTIONS_PROFILES_ERASE"] = "Eliminar perfil"
+L["STRING_OPTIONS_PROFILES_ERASE_DESC"] = "Eliminar el perfil seleccionado."
+L["STRING_OPTIONS_PROFILES_RESET"] = "Restablecer perfil"
+L["STRING_OPTIONS_PROFILES_RESET_DESC"] = "Restablecer toda la configuración del perfil seleccionada a los valores por defecto."
+L["STRING_OPTIONS_PROFILES_SELECT"] = "Escoger perfil"
+L["STRING_OPTIONS_PROFILES_SELECT_DESC"] = "Cargar un otro perfil. Se sobrescriba toda la configuración con los valores del perfil seleccionado."
+L["STRING_OPTIONS_PROFILES_TITLE"] = "Perfiles"
+L["STRING_OPTIONS_PROFILES_TITLE_DESC"] = "Estas opciones se permiten usar la misma configuración para personages múltiples."
+L["STRING_OPTIONS_PS_ABBREVIATE"] = "Tipo de abreviación"
+L["STRING_OPTIONS_PS_ABBREVIATE_COMMA"] = "Coma"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_DESC"] = ""--]]
+L["STRING_OPTIONS_PS_ABBREVIATE_NONE"] = "Ningún"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK0"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK0MIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK2MIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOKMIN"] = ""--]]
+L["STRING_OPTIONS_PVPFRAGS"] = "Sólo matanzas en JvJ"
+L["STRING_OPTIONS_PVPFRAGS_DESC"] = "La visualización |cffffff00daño > matanzas|r muestra solamente las mantanzas de jugadores enemigos."
+L["STRING_OPTIONS_REALMNAME"] = "Eliminar nombre de reino"
+L["STRING_OPTIONS_REALMNAME_DESC"] = [=[Eliminar los nombres de reinos de los nombres de personajes. Por ejemplo:
+
+|cffffff00Desactivado|r: Charles-Netherwing
+|cffffff00Activado|r: Charles]=]
+L["STRING_OPTIONS_REPORT_ANCHOR"] = "Informar:"
+L["STRING_OPTIONS_REPORT_HEALLINKS"] = "Vínculos de hechizos útiles"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_HEALLINKS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RESET_TO_DEFAULT"] = ""--]]
+L["STRING_OPTIONS_ROW_SETTING_ANCHOR"] = "General:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ROWADV_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ROWADV_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWN1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWN2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_ONOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_SELECT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATH_MSG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_FIRST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_FIRST_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_HITS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_ONOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_FIRST_HIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_FIRST_HIT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_IGNORE_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INFOS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INFOS_PREPOTION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INFOS_PREPOTION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPT_NEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_NEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_NEXT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_ONOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_WHISPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_OTHER_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_TITLE_DESC"] = ""--]]
+L["STRING_OPTIONS_SAVELOAD"] = "Guardar y cargar"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_APPLYALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_APPLYALL_DESC"] = ""--]]
+L["STRING_OPTIONS_SAVELOAD_APPLYTOALL"] = "Aplicar a todas ventanas"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_CREATE_DESC"] = ""--]]
+L["STRING_OPTIONS_SAVELOAD_DESC"] = "Guardar la configuración actual o cargar una configuración que se han guardado previamente."
+L["STRING_OPTIONS_SAVELOAD_ERASE_DESC"] = "Eliminar permanentemente un skin que se ha guardado previamente."
+L["STRING_OPTIONS_SAVELOAD_EXPORT"] = "Exportir"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_COPY"] = "Pulsar las teclas CTRL + C"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_DESC"] = "Guardar el skin en forma de texto."
+L["STRING_OPTIONS_SAVELOAD_IMPORT"] = "Importir"
+L["STRING_OPTIONS_SAVELOAD_IMPORT_DESC"] = "Importar una skin en forma de texto."
+L["STRING_OPTIONS_SAVELOAD_IMPORT_OKEY"] = "Skin se ha importado con éxito."
+L["STRING_OPTIONS_SAVELOAD_LOAD"] = "Aplicar"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_LOAD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_MAKEDEFAULT"] = ""--]]
+L["STRING_OPTIONS_SAVELOAD_PNAME"] = "Nombre"
+L["STRING_OPTIONS_SAVELOAD_REMOVE"] = "Eliminar"
+L["STRING_OPTIONS_SAVELOAD_RESET"] = "Cargar el skin defecto"
+L["STRING_OPTIONS_SAVELOAD_SAVE"] = "Guardar"
+L["STRING_OPTIONS_SAVELOAD_SKINCREATED"] = "Skin se ha creado."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_STD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_STDSAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SCROLLBAR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SCROLLBAR_DESC"] = ""--]]
+L["STRING_OPTIONS_SEGMENTSSAVE"] = "Segmentos se han guardados"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SEGMENTSSAVE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SENDFEEDBACK"] = ""--]]
+L["STRING_OPTIONS_SHOW_SIDEBARS"] = "Mostrar bordes"
+L["STRING_OPTIONS_SHOW_SIDEBARS_DESC"] = "Mostrar los bordes de la ventana."
+L["STRING_OPTIONS_SHOW_STATUSBAR"] = "Mostrar barra del estado"
+L["STRING_OPTIONS_SHOW_STATUSBAR_DESC"] = "Mostrar la barra del estado a la parte inferior de la ventana."
+L["STRING_OPTIONS_SHOW_TOTALBAR_COLOR_DESC"] = "Establecer el color. La opacidad de la barra del total siga la opacidad de la fila."
+L["STRING_OPTIONS_SHOW_TOTALBAR_DESC"] = "Mostrar la barra del total."
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON"] = "Icono"
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON_DESC"] = "Escoger el icono que se muestra en la barra del total."
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP"] = "Sólo en grupa"
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP_DESC"] = "La barra del total no se muestra cuando no estás en grupa."
+L["STRING_OPTIONS_SIZE"] = "Tamaño"
+L["STRING_OPTIONS_SKIN_A"] = "Configuración de skin"
+L["STRING_OPTIONS_SKIN_A_DESC"] = "Estas opciones se permiten personalizar el skin."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3_DESC"] = ""--]]
+L["STRING_OPTIONS_SKIN_EXTRA_OPTIONS_ANCHOR"] = "Opciones de skin:"
+L["STRING_OPTIONS_SKIN_LOADED"] = "Skin se ha cargado con éxito."
+L["STRING_OPTIONS_SKIN_PRESETS_ANCHOR"] = "Guardar skin:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_PRESETSCONFIG_ANCHOR"] = ""--]]
+L["STRING_OPTIONS_SKIN_REMOVED"] = "Skin se ha eliminado."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_RESET_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_RESET_TOOLTIP_DESC"] = ""--]]
+L["STRING_OPTIONS_SKIN_SELECT"] = "Escoger un skin"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_SELECT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SOCIAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SOCIAL_DESC"] = ""--]]
+L["STRING_OPTIONS_SPELL_ADD"] = "Añadir"
+L["STRING_OPTIONS_SPELL_ADDICON"] = "Añadir icono: "
+L["STRING_OPTIONS_SPELL_ADDNAME"] = "Añadir nombre: "
+L["STRING_OPTIONS_SPELL_ADDSPELL"] = "Añadir hechizo"
+L["STRING_OPTIONS_SPELL_ADDSPELLID"] = "ID de hechizo: "
+L["STRING_OPTIONS_SPELL_CLOSE"] = "Cerrar"
+L["STRING_OPTIONS_SPELL_ICON"] = "Icono"
+L["STRING_OPTIONS_SPELL_IDERROR"] = "ID de hechizo no es valido."
+L["STRING_OPTIONS_SPELL_INDEX"] = "Índice"
+L["STRING_OPTIONS_SPELL_NAME"] = "Nombre"
+L["STRING_OPTIONS_SPELL_NAMEERROR"] = "Nombre no es valido."
+L["STRING_OPTIONS_SPELL_NOTFOUND"] = "Hechizo no se encuentra."
+L["STRING_OPTIONS_SPELL_REMOVE"] = "Eliminar"
+L["STRING_OPTIONS_SPELL_RESET"] = "Restablecer"
+L["STRING_OPTIONS_SPELL_SPELLID"] = "ID de hechizo"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCHTOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCHTOP_DESC"] = ""--]]
+L["STRING_OPTIONS_SWITCH_ANCHOR"] = "Cambios:"
+L["STRING_OPTIONS_SWITCHINFO"] = "|cFFF79F81 IZQUIERDA DESACTIVADA|r |cFF81BEF7 DERECHA ACTIVADA|r"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_ENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_SINGLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_SINGLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_TABNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_TABNAME_DESC"] = ""--]]
+L["STRING_OPTIONS_TESTBARS"] = "Crear barras de prueba"
+L["STRING_OPTIONS_TEXT"] = "Configuración de texto de barras"
+L["STRING_OPTIONS_TEXT_DESC"] = "Estas opciones se permiten personalizar la aparencia del texto en las barras."
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR"] = "Color del texto"
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR_DESC"] = [=[Cambiar el color de tanto los textos izquierdo y derecho.
+
+No se aplica si la opcióm |cFFFFFFFFColorar por clase|r está activada.]=]
+L["STRING_OPTIONS_TEXT_FONT"] = "Fuente del texto"
+L["STRING_OPTIONS_TEXT_FONT_DESC"] = "Escoger la fuente de tanto los textos izquierdo y derecho."
+L["STRING_OPTIONS_TEXT_LCLASSCOLOR_DESC"] = "Colorar las barras por el clase de sus unidades, sin respecto al color seleccionado."
+L["STRING_OPTIONS_TEXT_LEFT_ANCHOR"] = "Texto izquierdo:"
+L["STRING_OPTIONS_TEXT_LOUTILINE"] = "Contorno del texto"
+L["STRING_OPTIONS_TEXT_LOUTILINE_DESC"] = "Añadir un contorno al texto izquierdo."
+L["STRING_OPTIONS_TEXT_LPOSITION"] = "Mostrar numero"
+L["STRING_OPTIONS_TEXT_LPOSITION_DESC"] = "Mostrar el numero de la posición al lado del nombre del personaje."
+L["STRING_OPTIONS_TEXT_RIGHT_ANCHOR"] = "Texto derecho:"
+L["STRING_OPTIONS_TEXT_ROUTILINE_DESC"] = "Añadir un contorno al texto derecho."
+L["STRING_OPTIONS_TEXT_ROWICONS_ANCHOR"] = "Iconos:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_BRACKET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_BRACKET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PERCENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PERCENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_TOTAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_TOTAL_DESC"] = ""--]]
+L["STRING_OPTIONS_TEXT_SIZE"] = "Tamaño del texto"
+L["STRING_OPTIONS_TEXT_SIZE_DESC"] = "Cambiar el tamaño de tanto los textos izquierdo y derecho."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_TEXTUREL_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_TEXTUREU_ANCHOR"] = ""--]]
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL"] = "Cancelar"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_CANCEL_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_COLOR_TOOLTIP"] = ""--]]
+L["STRING_OPTIONS_TEXTEDITOR_COMMA"] = "Coma"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_COMMA_TOOLTIP"] = ""--]]
+L["STRING_OPTIONS_TEXTEDITOR_DATA"] = "[Datos %s]"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_DATA_TOOLTIP"] = ""--]]
+L["STRING_OPTIONS_TEXTEDITOR_DONE"] = "Guardar"
+L["STRING_OPTIONS_TEXTEDITOR_DONE_TOOLTIP"] = "Terminar la edición y guardar el código."
+L["STRING_OPTIONS_TEXTEDITOR_FUNC"] = "Función"
+L["STRING_OPTIONS_TEXTEDITOR_FUNC_TOOLTIP"] = [=[Añadir una función vacía.
+Funciones deben siempre devuelven un número.]=]
+L["STRING_OPTIONS_TEXTEDITOR_RESET"] = "Restablecer"
+L["STRING_OPTIONS_TEXTEDITOR_RESET_TOOLTIP"] = "Eliminar todo el código y añadir el código defecto."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_TOK"] = ""--]]
+L["STRING_OPTIONS_TEXTEDITOR_TOK_TOOLTIP"] = [=[Añadir una función para abreviar numeros.
+Por ejemplo: 1500000 a 1.5kk.]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TIMEMEASURE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TIMEMEASURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBAR_SETTINGS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBAR_SETTINGS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBARSIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBARSIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLS_ANCHOR"] = ""--]]
+L["STRING_OPTIONS_TOOLTIP_ANCHOR"] = "Configuración:"
+L["STRING_OPTIONS_TOOLTIP_ANCHORTEXTS"] = "Textos:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION_DESC"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH"] = "Lado de descripción"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH_DESC"] = "De cuál lado se ancla la descripción."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_BORDER"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_POINT"] = "Ancla:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE"] = "Lado de ancla"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE_DESC"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT"] = "Ancla de descripción"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT_DESC"] = "Hacer clic derecho para bloquear."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO"] = "Ancla"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE"] = "Mover punto de anclage"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_DESC"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO1"] = "Fila de ventana"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO2"] = "Punto en pantalla"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHORCOLOR"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR"] = "Color del fondo"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR_DESC"] = "Cambiar el color del fondo de la descripción."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BORDER_COLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BORDER_SIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BORDER_TEXTURE_DESC"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR"] = "Color del texto"
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR_DESC"] = "Cambiar el color del texto en la descripción."
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE"] = "Fuente del texto"
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE_DESC"] = "Escoger del tipo de letra del texto en la descripción."
+L["STRING_OPTIONS_TOOLTIPS_FONTSHADOW_DESC"] = "Añadir una sombra al texto en la descripción."
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE"] = "Tamaño del texto"
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE_DESC"] = "Cambiar el tamaño del texto en la descripción."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP_DESC"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX"] = "Distancia X"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX_DESC"] = "Cuán lejos horizontalmente se coloca la descipción de su ancla."
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY"] = "Distancia Y"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY_DESC"] = "Cuán lejos verticalmente se coloca la descipción de su ancla."
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT"] = "Mostrar cantidad"
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT_DESC"] = "Mostrar la cantidad de hechizos de objetivos o mascotas en la descripción."
+L["STRING_OPTIONS_TOOLTIPS_TITLE"] = "Descripciónes"
+L["STRING_OPTIONS_TOOLTIPS_TITLE_DESC"] = "Estas opciones te perimte personalizar la aparencia de las descripciónes."
+L["STRING_OPTIONS_TOTALBAR_ANCHOR"] = "Barra de total:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TRASH_SUPPRESSION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TRASH_SUPPRESSION_DESC"] = ""--]]
+L["STRING_OPTIONS_WALLPAPER_ALPHA"] = "Opacidad:"
+L["STRING_OPTIONS_WALLPAPER_ANCHOR"] = "Fondo de pantalla:"
+L["STRING_OPTIONS_WALLPAPER_BLUE"] = "Azul:"
+L["STRING_OPTIONS_WALLPAPER_CBOTTOM"] = "Cortar (|cFFC0C0C0inferior|r):"
+L["STRING_OPTIONS_WALLPAPER_CLEFT"] = "Cortar (|cFFC0C0C0izquierdar):"
+L["STRING_OPTIONS_WALLPAPER_CRIGHT"] = "Cortar (|cFFC0C0C0derecha|r):"
+L["STRING_OPTIONS_WALLPAPER_CTOP"] = "Cortar (|cFFC0C0C0superior|r):"
+L["STRING_OPTIONS_WALLPAPER_FILE"] = "Archivo:"
+L["STRING_OPTIONS_WALLPAPER_GREEN"] = "Verde:"
+L["STRING_OPTIONS_WALLPAPER_LOAD"] = "Cargar imagen"
+L["STRING_OPTIONS_WALLPAPER_LOAD_DESC"] = "Seleccionar una imagen de su computadora para usar como el fondo de pantalla."
+L["STRING_OPTIONS_WALLPAPER_LOAD_EXCLAMATION"] = [=[La imagen debe:
+
+- ser en el formato Truevision TGA (extensión de archivo .tga),
+- ser en la carpeta raíz 'World of Warcraft/Interface/',
+- tener el tamaño 256 x 256 pixels,
+- y el juego debe volver a cargar completamente antes de empastar el archivo de imagen.]=]
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME"] = "Nombre de archivo:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME_DESC"] = "Introducir solamente el nombre de archivo, sin extensión o carpetas."
+L["STRING_OPTIONS_WALLPAPER_LOAD_OKEY"] = "Cargar"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TITLE"] = "De computadora:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT"] = "Solucionar problemas"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT_TEXT"] = [=[Si el fondo de pantalla es completamente verde:
+
+- Salir del juego completamente y reiniciarlo.
+- Confirmar que la imagen tiene la anchura de 256 pixels y la altura de 256 pixels.
+- Confirmar que la imagen es en el formata .TGA y se guarda con 32 bits/pixel.
+- Confirmar que la imagen es en el Interface folder.
+ Por ejemplo: C:/Program Files/World of Warcraft/Interface/]=]
+L["STRING_OPTIONS_WALLPAPER_RED"] = "Rojo:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_BOOKMARK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_BOOKMARK_DESC"] = ""--]]
+L["STRING_OPTIONS_WC_CLOSE"] = "Cerrar"
+L["STRING_OPTIONS_WC_CLOSE_DESC"] = [=[Cerrar esta ventana.
+
+Después de cerrar, la ventana convierte en inactivo y se puede mostrar de nuevo en cualquier momento por el uso del botón de ventana #.
+
+Para eliminar una ventana permanenemente, usar las opciones en la sección miscelánea.]=]
+L["STRING_OPTIONS_WC_CREATE"] = "Crear ventana"
+L["STRING_OPTIONS_WC_CREATE_DESC"] = "Crear una nueva ventana."
+L["STRING_OPTIONS_WC_LOCK"] = "Bloquear"
+L["STRING_OPTIONS_WC_LOCK_DESC"] = "Bloquear la ventana, para evitar que se mueva."
+L["STRING_OPTIONS_WC_REOPEN"] = "Mostrar de nuevo"
+L["STRING_OPTIONS_WC_UNLOCK"] = "Desbloquear"
+L["STRING_OPTIONS_WC_UNSNAP"] = "Desagrupar"
+L["STRING_OPTIONS_WC_UNSNAP_DESC"] = "Desagrupar las ventanas seleccionadas."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WHEEL_SPEED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WHEEL_SPEED_DESC"] = ""--]]
+L["STRING_OPTIONS_WINDOW"] = "Opciones"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_ANCHOR_ANCHORS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_SCALE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_SCALE_DESC"] = ""--]]
+L["STRING_OPTIONS_WINDOW_TITLE"] = "Configuración de ventana"
+L["STRING_OPTIONS_WINDOW_TITLE_DESC"] = "Estas opciones se permiten personalizar la aparencia de la ventana seleccionada."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOWSPEED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOWSPEED_DESC"] = ""--]]
+L["STRING_OPTIONS_WP"] = "Configuración del fondo de pantalla"
+L["STRING_OPTIONS_WP_ALIGN"] = "Alineación"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_ALIGN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_DESC"] = ""--]]
+L["STRING_OPTIONS_WP_EDIT"] = "Editar imagen"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_EDIT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_ENABLE_DESC"] = ""--]]
+L["STRING_OPTIONS_WP_GROUP"] = "Categoría"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_GROUP_DESC"] = ""--]]
+L["STRING_OPTIONS_WP_GROUP2"] = "Fondo de pantalla"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_GROUP2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_AUTOMATIC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_AUTOMATIC_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_AUTOMATIC_TITLE_DESC"] = ""--]]
+L["STRING_OPTIONSMENU_COMBAT"] = "Combate"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DATACHART"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DATACOLLECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DATAFEED"] = ""--]]
+L["STRING_OPTIONSMENU_DISPLAY"] = "Visualización"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DISPLAY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_LEFTMENU"] = ""--]]
+L["STRING_OPTIONSMENU_MISC"] = "Misceláneo"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_PERFORMANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_PLUGINS"] = ""--]]
+L["STRING_OPTIONSMENU_PROFILES"] = "Perfiles"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_RAIDTOOLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_RIGHTMENU"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_ROWMODELS"] = ""--]]
+L["STRING_OPTIONSMENU_ROWSETTINGS"] = "Configuración de filas"
+L["STRING_OPTIONSMENU_ROWTEXTS"] = "Textos en filas"
+L["STRING_OPTIONSMENU_SKIN"] = "Selección de skins"
+L["STRING_OPTIONSMENU_SPELLS"] = "Personalización de hechizos"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_SPELLS_CONSOLIDATE"] = ""--]]
+L["STRING_OPTIONSMENU_TITLETEXT"] = "Texto de título"
+L["STRING_OPTIONSMENU_TOOLTIP"] = "Descripciones"
+L["STRING_OPTIONSMENU_WALLPAPER"] = "Fondo de pantalla"
+L["STRING_OPTIONSMENU_WINDOW"] = "Configuración de ventana"
+L["STRING_OVERALL"] = "Total"
+--[[Translation missing --]]
+--[[ L["STRING_OVERHEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OVERHEALED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PARRY"] = ""--]]
+L["STRING_PERCENTAGE"] = "Porcentaje"
+L["STRING_PET"] = "Mascota"
+L["STRING_PETS"] = "Mascotas"
+L["STRING_PLAYER_DETAILS"] = "Detalles de jugador"
+L["STRING_PLAYERS"] = "Jugadores"
+L["STRING_PLEASE_WAIT"] = "Por favor, espera."
+L["STRING_PLUGIN_CLEAN"] = "Ningún"
+L["STRING_PLUGIN_CLOCKNAME"] = "Duración de encuentra"
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_CLOCKTYPE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_DURABILITY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_FPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_GOLD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_LATENCY"] = ""--]]
+L["STRING_PLUGIN_MINSEC"] = "Minutos y segundos"
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_NAMEALREADYTAKEN"] = ""--]]
+L["STRING_PLUGIN_PATTRIBUTENAME"] = "Atributo"
+L["STRING_PLUGIN_PDPSNAME"] = "DPS de banda"
+L["STRING_PLUGIN_PSEGMENTNAME"] = "Segmento"
+L["STRING_PLUGIN_SECONLY"] = "Sólo segundos"
+L["STRING_PLUGIN_SEGMENTTYPE"] = "Tipo de segmento"
+L["STRING_PLUGIN_SEGMENTTYPE_1"] = "Combate #X"
+L["STRING_PLUGIN_SEGMENTTYPE_2"] = "Nombre de encuentra"
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_SEGMENTTYPE_3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_THREATNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TIMEDIFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TOOLTIP_LEFTBUTTON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TOOLTIP_RIGHTBUTTON"] = ""--]]
+L["STRING_PLUGINOPTIONS_ABBREVIATE"] = "Abreviar"
+L["STRING_PLUGINOPTIONS_COMMA"] = "Coma"
+L["STRING_PLUGINOPTIONS_FONTFACE"] = "Seleccionar el estilo de la fuente."
+L["STRING_PLUGINOPTIONS_NOFORMAT"] = "Ningún"
+L["STRING_PLUGINOPTIONS_TEXTALIGN"] = "Alineación del texto"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_X"] = "Alineación X"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_Y"] = "Alineación Y"
+L["STRING_PLUGINOPTIONS_TEXTCOLOR"] = "Color del texto"
+L["STRING_PLUGINOPTIONS_TEXTSIZE"] = "Tamaño de fuente"
+L["STRING_PLUGINOPTIONS_TEXTSTYLE"] = "Estilo de fuente"
+--[[Translation missing --]]
+--[[ L["STRING_QUERY_INSPECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_QUERY_INSPECT_FAIL1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_QUERY_INSPECT_REFRESH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RAID_WIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RAIDCHECK_PLUGIN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RAIDCHECK_PLUGIN_NAME"] = ""--]]
+L["STRING_REPORT"] = "para"
+L["STRING_REPORT_BUTTON_TOOLTIP"] = "Hacer clic para abrir la ventana de informar."
+L["STRING_REPORT_FIGHT"] = "el combate"
+L["STRING_REPORT_FIGHTS"] = "los combates"
+L["STRING_REPORT_INVALIDTARGET"] = "No se encuentra el objetivo para susurrar."
+L["STRING_REPORT_LAST"] = "Última"
+L["STRING_REPORT_LASTFIGHT"] = "Último combate"
+L["STRING_REPORT_LEFTCLICK"] = "Hacer clic para abrir la ventana de informar."
+L["STRING_REPORT_PREVIOUSFIGHTS"] = "Combates anteriores"
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_BUFFUPTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_COOLDOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_DEATH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_DEBUFFUPTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_TOOLTIP"] = ""--]]
+L["STRING_REPORTFRAME_COPY"] = "Copiar y empastar"
+L["STRING_REPORTFRAME_CURRENT"] = "Actual"
+L["STRING_REPORTFRAME_CURRENTINFO"] = "Incluir sólo los datos que se muestran actualmente (si posible)."
+L["STRING_REPORTFRAME_GUILD"] = "Hermandad"
+L["STRING_REPORTFRAME_INSERTNAME"] = "Insertar nombre de jugador"
+L["STRING_REPORTFRAME_LINES"] = "Líneas"
+L["STRING_REPORTFRAME_OFFICERS"] = "Oficiales"
+L["STRING_REPORTFRAME_PARTY"] = "Grupo"
+L["STRING_REPORTFRAME_RAID"] = "Banda"
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_REVERT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_REVERTED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_REVERTINFO"] = ""--]]
+L["STRING_REPORTFRAME_SAY"] = "Decir"
+L["STRING_REPORTFRAME_SEND"] = "Enviar"
+L["STRING_REPORTFRAME_WHISPER"] = "Susurrar"
+L["STRING_REPORTFRAME_WHISPERTARGET"] = "Susurrar al objetivo"
+L["STRING_REPORTFRAME_WINDOW_TITLE"] = "Crear informe"
+--[[Translation missing --]]
+--[[ L["STRING_REPORTHISTORY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RESISTED"] = ""--]]
+L["STRING_RESIZE_ALL"] = "Cambiar los tamaños de todas ventanas"
+L["STRING_RESIZE_COMMON"] = "Cambiar el tamaño"
+L["STRING_RESIZE_HORIZONTAL"] = "Cambiar la anchura de todas ventanas en el grupo."
+L["STRING_RESIZE_VERTICAL"] = "Cambiar la altura de todas ventanas en el grupo."
+L["STRING_RIGHT"] = "derecho"
+--[[Translation missing --]]
+--[[ L["STRING_RIGHT_TO_LEFT"] = ""--]]
+L["STRING_RIGHTCLICK_CLOSE_LARGE"] = "Hacer clic con el botón derecho para cerrar esta ventana."
+L["STRING_RIGHTCLICK_CLOSE_MEDIUM"] = "Hacer clic derecho para cerrar esta ventana."
+L["STRING_RIGHTCLICK_CLOSE_SHORT"] = "Clic derecho para cerrar."
+L["STRING_RIGHTCLICK_TYPEVALUE"] = "Hacer clic derecho para introducir el valor."
+--[[Translation missing --]]
+--[[ L["STRING_SCORE_BEST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SCORE_NOTBEST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEE_BELOW"] = ""--]]
+L["STRING_SEGMENT"] = "Segmento"
+L["STRING_SEGMENT_EMPTY"] = "Este segmento está vacío."
+L["STRING_SEGMENT_END"] = "Terminar"
+L["STRING_SEGMENT_ENEMY"] = "Enemigo"
+L["STRING_SEGMENT_LOWER"] = "segmento"
+L["STRING_SEGMENT_OVERALL"] = "Datos globales"
+L["STRING_SEGMENT_START"] = "Iniciar"
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_TRASH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_BOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_COMBATTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_OVERALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_TIMEINCOMBAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_TOTALTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_TRASH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_WASTED_TIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SHIELD_HEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SHIELD_OVERHEAL"] = ""--]]
+L["STRING_SHORTCUT_RIGHTCLICK"] = "Hacer clic derecho para cerrar."
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_API_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CAPTURE_DESC"] = ""--]]
+L["STRING_SLASH_CAPTUREOFF"] = "Todas las recogidas de datos se han desactivada."
+L["STRING_SLASH_CAPTUREON"] = "Todas las recogidas de datos se han activada."
+L["STRING_SLASH_CHANGES"] = "actualizaciónes"
+L["STRING_SLASH_CHANGES_ALIAS1"] = "noticias"
+L["STRING_SLASH_CHANGES_ALIAS2"] = "cambios"
+L["STRING_SLASH_CHANGES_DESC"] = "mostrar los cambios en esta versión."
+L["STRING_SLASH_DISABLE"] = "desactiva"
+L["STRING_SLASH_ENABLE"] = "activa"
+L["STRING_SLASH_HIDE"] = "oculta"
+L["STRING_SLASH_HIDE_ALIAS1"] = "cerra"
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_HISTORY"] = ""--]]
+L["STRING_SLASH_NEW"] = "nueva"
+L["STRING_SLASH_NEW_DESC"] = "crear una nueva ventana."
+L["STRING_SLASH_OPTIONS"] = "Opciones"
+L["STRING_SLASH_OPTIONS_DESC"] = "mostrar la ventana de configuración."
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_RESET_ALIAS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_RESET_DESC"] = ""--]]
+L["STRING_SLASH_SHOW"] = "muestra"
+L["STRING_SLASH_SHOW_ALIAS1"] = "abre"
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_SHOWHIDETOGGLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_TOGGLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WIPE"] = ""--]]
+L["STRING_SLASH_WIPECONFIG"] = "Reinstalar"
+L["STRING_SLASH_WIPECONFIG_CONFIRM"] = "Hacer clic para continuar la reinstalación."
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WIPECONFIG_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WORLDBOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WORLDBOSS_DESC"] = ""--]]
+L["STRING_SPELL_INTERRUPTED"] = "Hechizos interrumpidos"
+--[[Translation missing --]]
+--[[ L["STRING_SPELLLIST"] = ""--]]
+L["STRING_SPELLS"] = "Hechizos"
+--[[Translation missing --]]
+--[[ L["STRING_SPIRIT_LINK_TOTEM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SPIRIT_LINK_TOTEM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_STATISTICS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_STATUSBAR_NOOPTIONS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_CLICKME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_SELECTMSG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_TO"] = ""--]]
+L["STRING_SWITCH_WARNING"] = "El rol se ha cambiado. Cambiando a: |cFFFFAA00%s|r "
+L["STRING_TARGET"] = "Objetivo"
+L["STRING_TARGETS"] = "Objetivos"
+--[[Translation missing --]]
+--[[ L["STRING_TARGETS_OTHER1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TEXTURE"] = ""--]]
+L["STRING_TIME_OF_DEATH"] = "Muerte"
+--[[Translation missing --]]
+--[[ L["STRING_TOOOLD"] = ""--]]
+L["STRING_TOP"] = "superior"
+--[[Translation missing --]]
+--[[ L["STRING_TOP_TO_BOTTOM"] = ""--]]
+L["STRING_TOTAL"] = "Total"
+--[[Translation missing --]]
+--[[ L["STRING_TRANSLATE_LANGUAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TUTORIAL_FULLY_DELETE_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TUTORIAL_OVERALL1"] = ""--]]
+L["STRING_UNKNOW"] = "Desconocido"
+L["STRING_UNKNOWSPELL"] = "Hechizo desconocido"
+L["STRING_UNLOCK"] = "Esparcir las ventanas con este botón."
+L["STRING_UNLOCK_WINDOW"] = "desbloquear"
+L["STRING_UPTADING"] = "actualizando"
+--[[Translation missing --]]
+--[[ L["STRING_VERSION_AVAILABLE"] = ""--]]
+L["STRING_VERSION_UPDATE"] = "Nueva versión: ¿qué se ha cambiado? Hacer clic aquí."
+L["STRING_VOIDZONE_TOOLTIP"] = "Daño y duración:"
+L["STRING_WAITPLUGIN"] = "esperando para plugins"
+--[[Translation missing --]]
+--[[ L["STRING_WAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_11"] = ""--]]
+L["STRING_WELCOME_12"] = "Cambiar la velocidad de acutalizaciones y animaciones. Si su computadora tiene menos de 2GB de memoria, se recomienda para reducir la cantidad de segmentos también."
+L["STRING_WELCOME_13"] = ""
+L["STRING_WELCOME_14"] = "Velocidad de actualizaciones"
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_15"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_16"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_17"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_26"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_27"] = ""--]]
+L["STRING_WELCOME_28"] = "Usar la interfaz: Botón de ventana"
+L["STRING_WELCOME_29"] = [=[- El |cffffff00#numero|r en el botón de la ventana muestra |cffffff00cuál ventana|r.
+- El botón crea una |cffffff00nueva ventana|r al hacer clic.
+- El botón muestra un menú de las |cffffff00ventanas cerradas|r, que se puedan mostrar de nuevo en cualquier momento.]=]
+L["STRING_WELCOME_3"] = "Seleconniar un método de cálculo para DPS y HPS:"
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_30"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_31"] = ""--]]
+L["STRING_WELCOME_32"] = "Usar la interfaz: Agrupar ventanas"
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_34"] = ""--]]
+L["STRING_WELCOME_36"] = "Usar la interfaz: Plugins"
+L["STRING_WELCOME_38"] = "Listo para jugar!"
+L["STRING_WELCOME_39"] = [=[Muchas gracias por elegir Detalles!
+
+Comentarios e informes de errores son siempre bienvenidos.]=]
+L["STRING_WELCOME_4"] = "Tiempo activo: "
+L["STRING_WELCOME_41"] = "Cambios de interfaz y memoria:"
+L["STRING_WELCOME_42"] = "Configuración de aparencia rapida"
+L["STRING_WELCOME_43"] = "Escoger un skin:"
+L["STRING_WELCOME_44"] = "Fondo de pantalla"
+L["STRING_WELCOME_45"] = "Para más opciones, ver a la ventana de configuración."
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_46"] = ""--]]
+L["STRING_WELCOME_5"] = "Tiempo efectivo: "
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_57"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_58"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_59"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_60"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_61"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_62"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_63"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_64"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_65"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_66"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_67"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_68"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_69"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_7"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_70"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_71"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_72"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_73"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_74"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_75"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_76"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_77"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_78"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_79"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WINDOW_NOTFOUND"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WINDOW_NUMBER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WINDOW1ATACH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ALERT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ERROR1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ERROR2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ERROR3"] = ""--]]
+L["STRING_YES"] = "Sí"
+
diff --git a/locales/Details-frFR.lua b/locales/Details-frFR.lua
index 7cc61325..00e7b149 100644
--- a/locales/Details-frFR.lua
+++ b/locales/Details-frFR.lua
@@ -1,4 +1,2418 @@
local L = LibStub("AceLocale-3.0"):NewLocale("Details", "frFR")
if not L then return end
-@localization(locale="frFR", format="lua_additive_table")@
\ No newline at end of file
+L["ABILITY_ID"] = "ID de la capacité"
+--[[Translation missing --]]
+--[[ L["STRING_"] = ""--]]
+L["STRING_ABSORBED"] = "Absorbé"
+L["STRING_ACTORFRAME_NOTHING"] = "oups, aucune donnée à rapporter"
+L["STRING_ACTORFRAME_REPORTAT"] = "à"
+L["STRING_ACTORFRAME_REPORTOF"] = "de"
+L["STRING_ACTORFRAME_REPORTTARGETS"] = "rapporter pour les cibles de"
+L["STRING_ACTORFRAME_REPORTTO"] = "rapporter pour"
+L["STRING_ACTORFRAME_SPELLDETAILS"] = "Détails du sort"
+L["STRING_ACTORFRAME_SPELLSOF"] = "Sorts de "
+L["STRING_ACTORFRAME_SPELLUSED"] = "Tous les sorts utilisés"
+L["STRING_AGAINST"] = "contre"
+L["STRING_ALIVE"] = "Vivant"
+L["STRING_ALPHA"] = "Transparence "
+L["STRING_ANCHOR_BOTTOM"] = "Bas"
+L["STRING_ANCHOR_BOTTOMLEFT"] = "En bas à gauche"
+L["STRING_ANCHOR_BOTTOMRIGHT"] = "En bas à droite"
+L["STRING_ANCHOR_LEFT"] = "Gauche"
+L["STRING_ANCHOR_RIGHT"] = "Droite"
+L["STRING_ANCHOR_TOP"] = "Haut"
+L["STRING_ANCHOR_TOPLEFT"] = "En haut à gauche"
+L["STRING_ANCHOR_TOPRIGHT"] = "En haut à droite"
+L["STRING_ASCENDING"] = "Croissant"
+L["STRING_ATACH_DESC"] = "La fenêtre #%d fait un groupe avec la fenêtre #%d."
+L["STRING_ATTRIBUTE_CUSTOM"] = "Personnalisé"
+L["STRING_ATTRIBUTE_DAMAGE"] = "Dégats"
+L["STRING_ATTRIBUTE_DAMAGE_BYSPELL"] = "Dégâts reçu par le sort"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS"] = "Auras & Voidzones"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS_REPORT"] = "Dégâts et Uptime des débuffs"
+L["STRING_ATTRIBUTE_DAMAGE_DONE"] = "Dégâts infligés"
+L["STRING_ATTRIBUTE_DAMAGE_DPS"] = "DPS"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES"] = "Dégâts subis (ennemis)"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES_DONE"] = "Dégâts de l'ennemi"
+L["STRING_ATTRIBUTE_DAMAGE_FRAGS"] = "Frags"
+L["STRING_ATTRIBUTE_DAMAGE_FRIENDLYFIRE"] = "Dégâts aux alliés"
+L["STRING_ATTRIBUTE_DAMAGE_TAKEN"] = "Dégâts Subis"
+L["STRING_ATTRIBUTE_ENERGY"] = "Ressources"
+L["STRING_ATTRIBUTE_ENERGY_ALTERNATEPOWER"] = "Puissance alternative"
+L["STRING_ATTRIBUTE_ENERGY_ENERGY"] = "Énergie Générée"
+L["STRING_ATTRIBUTE_ENERGY_MANA"] = "Mana Restaurée"
+L["STRING_ATTRIBUTE_ENERGY_RAGE"] = "Rage Générée"
+L["STRING_ATTRIBUTE_ENERGY_RESOURCES"] = "Autres ressources"
+L["STRING_ATTRIBUTE_ENERGY_RUNEPOWER"] = "Puissance Runique Générée"
+L["STRING_ATTRIBUTE_HEAL"] = "Soin"
+L["STRING_ATTRIBUTE_HEAL_ABSORBED"] = "Soin absorbé"
+L["STRING_ATTRIBUTE_HEAL_DONE"] = "Soins Prodigués"
+L["STRING_ATTRIBUTE_HEAL_ENEMY"] = "Soins reçus (Ennemi)"
+L["STRING_ATTRIBUTE_HEAL_HPS"] = "HPS"
+L["STRING_ATTRIBUTE_HEAL_OVERHEAL"] = "Excès de soin"
+L["STRING_ATTRIBUTE_HEAL_PREVENT"] = "Dégâts Empêchés"
+L["STRING_ATTRIBUTE_HEAL_TAKEN"] = "Soins Reçus"
+L["STRING_ATTRIBUTE_MISC"] = "Divers"
+L["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"] = "Uptime des Buffs"
+L["STRING_ATTRIBUTE_MISC_CCBREAK"] = "CC Cassés"
+L["STRING_ATTRIBUTE_MISC_DEAD"] = "Morts"
+L["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"] = "Uptime des Débuffs"
+L["STRING_ATTRIBUTE_MISC_DEFENSIVE_COOLDOWNS"] = "Cooldowns"
+L["STRING_ATTRIBUTE_MISC_DISPELL"] = "Dissipations"
+L["STRING_ATTRIBUTE_MISC_INTERRUPT"] = "Interruptions"
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_MISC_RESS"] = ""--]]
+L["STRING_AUTO"] = "automatique"
+L["STRING_AUTOSHOT"] = "Tir automatique"
+L["STRING_AVERAGE"] = "Moyenne"
+L["STRING_BLOCKED"] = "Bloqué"
+L["STRING_BOTTOM"] = "bas"
+L["STRING_BOTTOM_TO_TOP"] = "De bas en haut"
+L["STRING_CAST"] = "Incantations"
+L["STRING_CAUGHT"] = "attrapé"
+L["STRING_CCBROKE"] = "CC Brisés"
+L["STRING_CENTER"] = "centre"
+L["STRING_CENTER_UPPER"] = "Centre"
+L["STRING_CHANGED_TO_CURRENT"] = "Segment changé: |cFFFFFF00Actuel|r"
+L["STRING_CHANNEL_PRINT"] = "Observateur"
+L["STRING_CHANNEL_RAID"] = "Raid"
+L["STRING_CHANNEL_SAY"] = "Dire"
+L["STRING_CHANNEL_WHISPER"] = "Chuchoter"
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_WHISPER_TARGET_COOLDOWN"] = ""--]]
+L["STRING_CHANNEL_YELL"] = "Crier"
+L["STRING_CLICK_REPORT_LINE1"] = "|cFFFFCC22Clic|r: |cFFFFEE00rapporter|r"
+L["STRING_CLICK_REPORT_LINE2"] = "|cFFFFCC22Maj+Clic|r: |cFFFFEE00mode fenêtré|r"
+L["STRING_CLOSEALL"] = "Toutes les fenêtres de Details sont fermées. Tapez «/details show» pour rouvrir."
+L["STRING_COLOR"] = "Couleur"
+L["STRING_COMMAND_LIST"] = "liste de commandes"
+L["STRING_COOLTIP_NOOPTIONS"] = "aucune option"
+--[[Translation missing --]]
+--[[ L["STRING_CREATEAURA"] = ""--]]
+L["STRING_CRITICAL_HITS"] = "Coups Critiques"
+L["STRING_CRITICAL_ONLY"] = "critique"
+L["STRING_CURRENT"] = "Actuel"
+L["STRING_CURRENTFIGHT"] = "Segment Présent"
+L["STRING_CUSTOM_ACTIVITY_ALL"] = "Temps d'activité"
+L["STRING_CUSTOM_ACTIVITY_ALL_DESC"] = "Montre les résultats d'activité pour chaque joueur dans le groupe de raid."
+L["STRING_CUSTOM_ACTIVITY_DPS"] = "Temps d'activité des dégâts"
+L["STRING_CUSTOM_ACTIVITY_DPS_DESC"] = "Dit le temps passé à faire des dégâts pour chaque personnage."
+L["STRING_CUSTOM_ACTIVITY_HPS"] = "Temps d'activité des soins"
+L["STRING_CUSTOM_ACTIVITY_HPS_DESC"] = "Dit le temps passé à prodiguer des soins pour chaque personnage."
+L["STRING_CUSTOM_ATTRIBUTE_DAMAGE"] = "Dégâts"
+L["STRING_CUSTOM_ATTRIBUTE_HEAL"] = "Soins"
+L["STRING_CUSTOM_ATTRIBUTE_SCRIPT"] = "Script personalisé"
+L["STRING_CUSTOM_AUTHOR"] = "Auteur:"
+L["STRING_CUSTOM_AUTHOR_DESC"] = "La personne ayant créé cet affichage."
+L["STRING_CUSTOM_CANCEL"] = "Annuler"
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_CC_DONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_CC_RECEIVED"] = ""--]]
+L["STRING_CUSTOM_CREATE"] = "Créer"
+L["STRING_CUSTOM_CREATED"] = "Nouvel affichage créé."
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET"] = "Dégâts sur les autres cibles marquées"
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET_DESC"] = "Affiche le montant des dégâts infligés sur les cibles marquées avec une autre marque."
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONSHIELDS"] = ""--]]
+L["STRING_CUSTOM_DAMAGEONSKULL"] = "Dégâts sur la/les cibles ayant eu la marque Crâne"
+L["STRING_CUSTOM_DAMAGEONSKULL_DESC"] = "Affiche le montant des dégâts infligés aux cibles marquées avec la marque du crâne."
+L["STRING_CUSTOM_DESCRIPTION"] = "Desc:"
+L["STRING_CUSTOM_DESCRIPTION_DESC"] = "Description de ce qu'effectue cet affichage."
+L["STRING_CUSTOM_DONE"] = "Terminé"
+L["STRING_CUSTOM_DTBS"] = "Dégâts reçus par sorts"
+L["STRING_CUSTOM_DTBS_DESC"] = "Affiche les dégâts des sorts de l'ennemi affligés à votre groupe."
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DYNAMICOVERAL"] = ""--]]
+L["STRING_CUSTOM_EDIT"] = "Modifier"
+L["STRING_CUSTOM_EDIT_SEARCH_CODE"] = "Modifier Code de Recherche."
+L["STRING_CUSTOM_EDIT_TOOLTIP_CODE"] = "Modifier le Code du tooltip"
+L["STRING_CUSTOM_EDITCODE_DESC"] = "Ceci est une fonction avancée permettant à l'utilisateur de créer son propre code d'affichage."
+L["STRING_CUSTOM_EDITTOOLTIP_DESC"] = "Ceci est le code du tooltip, appelé lorsque l'utilisateur passe sur une barre."
+L["STRING_CUSTOM_ENEMY_DT"] = "Dégâts Pris"
+L["STRING_CUSTOM_EXPORT"] = "Exporter"
+L["STRING_CUSTOM_FUNC_INVALID"] = "Le script personnalisé est invalide et ne peut rafraîchir la fenêtre."
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT"] = "Potions de Vie et Pierre"
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT_DESC"] = "Affiche les membres de votre groupe de raid ayant utilisé une potion ou une pierre de vie."
+L["STRING_CUSTOM_ICON"] = "Icône:"
+L["STRING_CUSTOM_IMPORT"] = "Importer"
+L["STRING_CUSTOM_IMPORT_ALERT"] = "Affichage chargé, pesez sur «Importer» pour confirmer."
+L["STRING_CUSTOM_IMPORT_BUTTON"] = "Importer"
+L["STRING_CUSTOM_IMPORT_ERROR"] = "Échec de l'importation, string invalide."
+L["STRING_CUSTOM_IMPORTED"] = "Affichage importé avec succès."
+L["STRING_CUSTOM_LONGNAME"] = "Ce nom est trop long, 32 caractères alloués."
+L["STRING_CUSTOM_MYSPELLS"] = "Mes sorts"
+L["STRING_CUSTOM_MYSPELLS_DESC"] = "Affiche vos sorts dans la fenêtre."
+L["STRING_CUSTOM_NAME"] = "Nom:"
+L["STRING_CUSTOM_NAME_DESC"] = "Écrivez le nom de votre affichage personalisé."
+L["STRING_CUSTOM_NEW"] = "Gestion des Affichages Personalisés"
+L["STRING_CUSTOM_PASTE"] = "Coller Ici:"
+L["STRING_CUSTOM_POT_DEFAULT"] = "Potion Utilisée"
+L["STRING_CUSTOM_POT_DEFAULT_DESC"] = "Affiche qui, dans votre raid, a utilisé une potion lors de la rencontre."
+L["STRING_CUSTOM_REMOVE"] = "Enlever"
+L["STRING_CUSTOM_REPORT"] = "(personalisé)"
+L["STRING_CUSTOM_SAVE"] = "Enregistrer les changements"
+L["STRING_CUSTOM_SAVED"] = "L'affichage a été sauvegardé."
+L["STRING_CUSTOM_SHORTNAME"] = "Le nom doit être composé de 5 caractères minimum."
+L["STRING_CUSTOM_SKIN_TEXTURE"] = "Ficher de skin personnalisé"
+L["STRING_CUSTOM_SKIN_TEXTURE_DESC"] = [=[Le nom du fichier .tga.
+
+Il doit être placé à l'intérieur du dossier :
+
+|cFFFFFF00WoW/Interface/|r
+
+|cFFFFFF00Important :|r avant de créer le fichier, fermez le jeu. Après ça, un /reload appliquera les changements sauvegardés dans le fichier de texture.]=]
+L["STRING_CUSTOM_SOURCE"] = "Source :"
+L["STRING_CUSTOM_SOURCE_DESC"] = [=[Qui déclenche l'effet.
+
+Le bouton à droite montre une liste de pnj extraits des combats de raid.]=]
+L["STRING_CUSTOM_SPELLID"] = "Identifiant du sort :"
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SPELLID_DESC"] = ""--]]
+L["STRING_CUSTOM_TARGET"] = "Cible :"
+L["STRING_CUSTOM_TARGET_DESC"] = [=[Ceci est la cible de la source.
+
+Le bouton à droite montre une liste de pnj extraits des combats de raid.]=]
+L["STRING_CUSTOM_TEMPORARILY"] = "(|cFFFFC000temporairement|r)"
+L["STRING_DAMAGE"] = "Dégâts"
+L["STRING_DAMAGE_DPS_IN"] = "DPS reçu de"
+L["STRING_DAMAGE_FROM"] = "Reçu des dégâts de"
+L["STRING_DAMAGE_TAKEN_FROM"] = "Dégâts pris de"
+--[[Translation missing --]]
+--[[ L["STRING_DAMAGE_TAKEN_FROM2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DEFENSES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DESCENDING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DETACH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DISCARD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DISPELLED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DODGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DOT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_EMPTY_SEGMENT"] = ""--]]
+L["STRING_ENABLED"] = "Activé"
+L["STRING_ENVIRONMENTAL_DROWNING"] = "Environnement (noyade)"
+L["STRING_ENVIRONMENTAL_FALLING"] = "Environnement (chute)"
+L["STRING_ENVIRONMENTAL_FATIGUE"] = "Environnement (fatigue)"
+L["STRING_ENVIRONMENTAL_FIRE"] = "Environnement (feu)"
+L["STRING_ENVIRONMENTAL_LAVA"] = "Environnement (lave)"
+L["STRING_ENVIRONMENTAL_SLIME"] = "Environnement (vase)"
+L["STRING_EQUILIZING"] = "Partager les données des rencontres"
+L["STRING_ERASE"] = "Effacer"
+L["STRING_ERASE_DATA"] = "Réinitialiser toutes les données"
+L["STRING_ERASE_DATA_OVERALL"] = "Réinitialiser les données globales"
+--[[Translation missing --]]
+--[[ L["STRING_ERASE_IN_COMBAT"] = ""--]]
+L["STRING_EXAMPLE"] = "Exemple"
+L["STRING_EXPLOSION"] = "explosion"
+--[[Translation missing --]]
+--[[ L["STRING_FAIL_ATTACKS"] = ""--]]
+L["STRING_FEEDBACK_CURSE_DESC"] = "Ouvrez un ticket ou laissez un message sur la page de Details!"
+L["STRING_FEEDBACK_MMOC_DESC"] = "Envoyez un message sur notre fil de discussion du forum de mmo-champion."
+L["STRING_FEEDBACK_PREFERED_SITE"] = "Choisissez votre site communautaire préféré :"
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_SEND_FEEDBACK"] = ""--]]
+L["STRING_FEEDBACK_WOWI_DESC"] = "Laissez un commentaire sur la page du projet de Details!"
+L["STRING_FIGHTNUMBER"] = "Combat #"
+L["STRING_FORGE_BUTTON_ALLSPELLS"] = "Tous les sorts"
+L["STRING_FORGE_BUTTON_ALLSPELLS_DESC"] = "Liste tous les sorts des joueurs et des PNJs."
+L["STRING_FORGE_BUTTON_BWTIMERS"] = "Délais BigWigs"
+L["STRING_FORGE_BUTTON_BWTIMERS_DESC"] = "Liste les délais de BigWigs"
+L["STRING_FORGE_BUTTON_DBMTIMERS"] = "Délais DBM"
+L["STRING_FORGE_BUTTON_DBMTIMERS_DESC"] = "Liste les délais de Deadly Boss Mods"
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENEMIES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENEMIES_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PETS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PETS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PLAYERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PLAYERS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_ENABLEPLUGINS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_BARTEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_CASTERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_ENCOUNTERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_ENEMYNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_OWNERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_PETNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_PLAYERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_SPELLNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_BARTEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_CASTER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_CLASS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_CREATEAURA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ENCOUNTERID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ENCOUNTERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_EVENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_FLAG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_GUID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_INDEX"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_NAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_NPCID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_OWNER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_SCHOOL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_SPELLID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_TIMER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_VIDEO"] = ""--]]
+L["STRING_FREEZE"] = "Ce segment n'est pas disponible pour le moment"
+L["STRING_FROM"] = "De"
+L["STRING_GERAL"] = "Général"
+--[[Translation missing --]]
+--[[ L["STRING_GLANCING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_BOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_DATABASEERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_DIFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_GUILD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE_INDIVIDUAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE_PLAYER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_ROLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_SHOWHISTORY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_SHOWRANK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_SYNCBUTTONTEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_TUTORIAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_WINDOWALERT"] = ""--]]
+L["STRING_HEAL"] = "Soin"
+L["STRING_HEAL_ABSORBED"] = "Soin Absorbé"
+L["STRING_HEAL_CRIT"] = "Soin Critique"
+L["STRING_HEALING_FROM"] = "Soin reçu de"
+--[[Translation missing --]]
+--[[ L["STRING_HEALING_HPS_FROM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_HPS"] = ""--]]
+L["STRING_IMAGEEDIT_ALPHA"] = "Transparence"
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_CROPBOTTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_CROPLEFT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_CROPRIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_CROPTOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_DONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_FLIPH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_FLIPV"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TAB_AVOIDANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TAB_COMPARISON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TAB_SUMMARY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TUTORIAL_COMPARISON1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INSTANCE_CHAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INSTANCE_LIMIT"] = ""--]]
+L["STRING_INTERFACE_OPENOPTIONS"] = "Ouvrir le panneau des options"
+L["STRING_ISA_PET"] = "Cet acteur est un familier"
+L["STRING_KEYBIND_BOOKMARK"] = "Marque-pages"
+L["STRING_KEYBIND_BOOKMARK_NUMBER"] = "Marque-page #%s"
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_RESET_SEGMENTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SCROLL_DOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SCROLL_UP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SCROLLING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SEGMENTCONTROL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_TOGGLE_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_TOGGLE_WINDOWS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_WINDOW_CONTROL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_WINDOW_REPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_WINDOW_REPORT_HEADER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KILLED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_LAST_COOLDOWN"] = ""--]]
+L["STRING_LEFT"] = "gauche"
+L["STRING_LEFT_CLICK_SHARE"] = "Clic gauche pour signaler."
+--[[Translation missing --]]
+--[[ L["STRING_LEFT_TO_RIGHT"] = ""--]]
+L["STRING_LOCK_DESC"] = "Verrouille ou déverrouille la fenêtre"
+--[[Translation missing --]]
+--[[ L["STRING_LOCK_WINDOW"] = ""--]]
+L["STRING_MASTERY"] = "Maîtrise"
+L["STRING_MAXIMUM"] = "Maximum"
+L["STRING_MAXIMUM_SHORT"] = "Max"
+--[[Translation missing --]]
+--[[ L["STRING_MEDIA"] = ""--]]
+L["STRING_MELEE"] = "Mêlée"
+L["STRING_MEMORY_ALERT_BUTTON"] = "J'ai compris"
+L["STRING_MEMORY_ALERT_TEXT1"] = "Details! utilise beaucoup de mémoire, mais, |cFFFF8800contrairement à la croyance populaire|r, utilisation de la mémoire par extension |cFFFF8800n'a pas d'incidence|r en rien les performances du jeu ou de votre FPS."
+L["STRING_MEMORY_ALERT_TEXT2"] = "Donc, si vous voyez Details! en utilisant beaucoup de mémoire, ne paniquez pas :D! |cFFFF8800Tout va bien|r, et une partie de cette mémoire est encore |cFFFF8800utilisé dans caches|r pour l'addon encore plus vite."
+L["STRING_MEMORY_ALERT_TEXT3"] = "Toutefois, si votre souhait est de savoir |cFFFF8800addons qui sont plus 'lourd'|r ou qui sont en baisse plus vos FPS, installer l'addon: '|cFFFFFF00AddOns Cpu Usage|r'."
+L["STRING_MEMORY_ALERT_TITLE"] = "S'il vous plaît lire attentivement!"
+--[[Translation missing --]]
+--[[ L["STRING_MENU_CLOSE_INSTANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MENU_CLOSE_INSTANCE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MENU_CLOSE_INSTANCE_DESC2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MENU_INSTANCE_CONTROL"] = ""--]]
+L["STRING_MINIMAP_TOOLTIP1"] = "|cFFCFCFCFclic gauche| r: ouvre le panneau des options"
+L["STRING_MINIMAP_TOOLTIP11"] = "|cFFCFCFCFclic gauche|r : efface tous les segments"
+L["STRING_MINIMAP_TOOLTIP12"] = "|cFFCFCFCFclic gauche|r : affiche/cache les fenêtres"
+L["STRING_MINIMAP_TOOLTIP2"] = "|cFFCFCFCFclic droit|r : menu rapide"
+L["STRING_MINIMAPMENU_CLOSEALL"] = "Tout fermer"
+L["STRING_MINIMAPMENU_HIDEICON"] = "Cacher l'icône de la minicarte"
+L["STRING_MINIMAPMENU_LOCK"] = "Verrouiller"
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAPMENU_NEWWINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAPMENU_REOPENALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAPMENU_UNLOCK"] = ""--]]
+L["STRING_MINIMUM"] = "Minimum"
+L["STRING_MINIMUM_SHORT"] = "Min"
+L["STRING_MINITUTORIAL_BOOKMARK1"] = "Faites un clic droit à tout moment au cours de la fenêtre pour ouvrir les signets!"
+L["STRING_MINITUTORIAL_BOOKMARK2"] = "Signets donne un accès rapide aux écrans favoris."
+L["STRING_MINITUTORIAL_BOOKMARK3"] = "cliquez à droite pour fermer le panneau de signets."
+L["STRING_MINITUTORIAL_BOOKMARK4"] = "Ne montre plus cela."
+L["STRING_MINITUTORIAL_CLOSECTRL1"] = "|cFFFFFF00Ctrl + Clic droit |r ferme la fenêtre!"
+L["STRING_MINITUTORIAL_CLOSECTRL2"] = "Si vous voulez rouvrir, aller à fenêtre Contrôle aucun menu Mode ou panneau Options."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL1"] = "Quels fenêtre est en cours de modification."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL2"] = "Quand elle est cochée, toutes les fenêtres dans le groupe sont également modifiés."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL3"] = [=[Pour créer une fenêtre groupe, faites glisser # 2, près de la fenêtre # 1.
+
+Casser un groupe cliquant sur le bouton de dissocier.]=]
+L["STRING_MINITUTORIAL_OPTIONS_PANEL4"] = "Testez vos configuration créant des barreaux d'essai."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL5"] = "Lorsque Groupe Édition est activé, toutes les fenêtres dans un groupe sont modifiés."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL6"] = "Sélectionnez ici quelle fenêtre vous voulez changer l'apparence."
+--[[Translation missing --]]
+--[[ L["STRING_MINITUTORIAL_WINDOWS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINITUTORIAL_WINDOWS2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MIRROR_IMAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MISS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MODE_ALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MODE_GROUP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MODE_OPENFORGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MODE_PLUGINS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MODE_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MODE_SELF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MORE_INFO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MULTISTRIKE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MULTISTRIKE_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MUSIC_DETAILS_ROBERTOCARLOS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NEWROW"] = ""--]]
+L["STRING_NEWS_REINSTALL"] = "Des problèmes après une mise à jour ? Essayez la commande '/details reinstall'."
+L["STRING_NEWS_TITLE"] = "Quoi de neuf dans cette version"
+L["STRING_NO"] = "Non"
+L["STRING_NO_DATA"] = "les données ont déjà été nettoyées"
+L["STRING_NO_SPELL"] = "aucun sort n'a été utilisé"
+L["STRING_NO_TARGET"] = "Aucune cible trouvée."
+--[[Translation missing --]]
+--[[ L["STRING_NO_TARGET_BOX"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NOCLOSED_INSTANCES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NOLAST_COOLDOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NOMORE_INSTANCES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NORMAL_HITS"] = ""--]]
+L["STRING_NUMERALSYSTEM"] = "Système numérique"
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_ARABIC_MYRIAD_EASTASIA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_ARABIC_WESTERN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_ARABIC_WESTERN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_MYRIAD_EASTASIA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OFFHAND_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LALPHA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LSELECT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_UALPHA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_UANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_UENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_USELECT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ADVANCED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALPHAMOD_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYS_USE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYS_USE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYSSHOWPLAYERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYSSHOWPLAYERS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATEBARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATEBARS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATESCROLL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATESCROLL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_APPEARANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ATTRIBUTE_TEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ATTRIBUTE_TEXT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_COMBAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_DAMAGER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_HEALER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_TANK_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_WIPE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_WIPE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AVATAR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AVATAR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AVATAR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BACKDROP_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BACKDROP_COLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BACKDROP_ENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BACKDROP_SIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BACKDROP_TEXTURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BTEXTURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_COLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_COLORBYCLASS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_COLORBYCLASS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_FOLLOWING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_FOLLOWING_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_FOLLOWING_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_GROW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_GROW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_HEIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_HEIGHT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE_DESC2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_SPACING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_SPACING_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_TEXTURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARLEFTTEXTCUSTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARLEFTTEXTCUSTOM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARORIENTATION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARORIENTATION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARSORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARSORT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARSTART"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARSTART_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARUR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARUR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_ALL_ALLY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_ALL_ALLY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_UNIQUE_SEGMENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_UNIQUE_SEGMENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CAURAS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CAURAS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CDAMAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CDAMAGE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CENERGY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CENERGY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGE_CLASSCOLORS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGE_CLASSCOLORS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGECOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGELOG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADD2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADDAUTHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADDCODE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADDICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADDNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADDVERSION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_AUTHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_AUTHORERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_CANCEL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_CLOSE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_CODELOADED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_EDIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_EXPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_FUNCERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_IMPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_IMPORTERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_NAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_NAMEERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_PLUGINWARNING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_REMOVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_SAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_VERSION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_VERSIONERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHEAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLASSCOLOR_MODIFY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLASSCOLOR_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLEANUP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLEANUP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLOUD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLOUD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CMISC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CMISC_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COLORANDALPHA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COLORFIXED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_7"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBATTWEEKS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBATTWEEKS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CONFIRM_ERASE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CUSTOMSPELL_ADD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CUSTOMSPELLTITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CUSTOMSPELLTITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD7"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD8"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD9"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT1_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATACHARTTITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATACHARTTITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATACOLLECT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLIMIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLIMIT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLOG_MINHEALING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLOG_MINHEALING_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DESATURATE_MENU"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DESATURATE_MENU_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_GROUPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_GROUPS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_LOCK_RESIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_LOCK_RESIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_RESET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLED_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DTAKEN_EVERYTHING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DTAKEN_EVERYTHING_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_EDITIMAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_EDITINSTANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ERASECHARTDATA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ERASECHARTDATA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_EXTERNALS_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_EXTERNALS_TITLE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_GENERAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_GENERAL_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HIDE_ICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HIDE_ICON_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HIDECOMBATALPHA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_ACTION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_ACTION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_IGNORENICKNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_IGNORENICKNAME_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ILVL_TRACKER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ILVL_TRACKER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ILVL_TRACKER_TEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_ALPHA2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_ALPHA2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_BACKDROP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_BACKDROP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_COLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_COLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_CURRENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_CURRENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_DELETE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_DELETE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_SKIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_SKIN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_STATUSBAR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_STRATA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_STRATA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INTERFACEDIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_LEFT_MENU_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_LOCKSEGMENTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_LOCKSEGMENTS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MANAGE_BOOKMARKS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MAXINSTANCES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MAXINSTANCES_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MAXSEGMENTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MAXSEGMENTS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHAENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHAENTER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHAENTER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHALEAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHALEAVE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHAWARNING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ANCHOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_SHADOW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTESETTINGS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_AUTOHIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_AUTOHIDE_LEFT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_BUTTONSSIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_FONT_FACE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_FONT_FACE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_FONT_SIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_FONT_SIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_IGNOREBARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_IGNOREBARS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_SHOWBUTTONS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_SHOWBUTTONS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_X"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_X_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_Y"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_Y_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SHADOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SHADOW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SPACEMENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SPACEMENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAY_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAY_LOCK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAY_LOCK_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_DROPDOWN_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_OPTION_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_SHOWHIDE_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_WARNING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYSSIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYSSIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYWARNING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MISCTITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MISCTITLE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_NICKNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_NICKNAME_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OPEN_ROWTEXT_EDITOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OPEN_TEXT_EDITOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_ALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_ALL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONBOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONBOSS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_LOGOFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_LOGOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_MYTHICPLUS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_MYTHICPLUS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_NEWBOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_NEWBOSS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_RAIDBOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_RAIDBOSS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_RAIDCLEAN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_RAIDCLEAN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PANIMODE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PANIMODE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PDW_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PDW_SKIN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERCENT_TYPE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERCENT_TYPE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ARENA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_BG15"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_BG40"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_DUNGEON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ENABLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_MYTHIC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_PROFILE_LOAD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_RAID15"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_RAID30"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_RF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_TYPES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_TYPES_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE1_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCECAPTURES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCECAPTURES_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCEPROFILES_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PICONS_DIRECTION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PICONS_DIRECTION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_AUTHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_NAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_OPTIONS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_RAID_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_SOLO_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_TOOLBAR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_VERSION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PRESETNONAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PRESETTOOLD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_COPYOKEY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_FIELDEMPTY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_GLOBAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_LOADED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_NOTCREATED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_OVERWRITTEN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_POSSIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_POSSIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_REMOVEOKEY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_SELECTEXISTING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_USENEW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_COPY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_COPY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_CREATE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_CREATE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_CURRENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_CURRENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_ERASE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_ERASE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_RESET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_SELECT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_COMMA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_NONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK0"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK0MIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK2MIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOKMIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PVPFRAGS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PVPFRAGS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REALMNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REALMNAME_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_HEALLINKS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_HEALLINKS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RESET_TO_DEFAULT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ROW_SETTING_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ROWADV_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ROWADV_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWN1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWN2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_ONOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_SELECT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATH_MSG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_FIRST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_FIRST_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_HITS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_ONOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_FIRST_HIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_FIRST_HIT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_IGNORE_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INFOS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INFOS_PREPOTION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INFOS_PREPOTION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPT_NEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_NEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_NEXT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_ONOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_WHISPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_OTHER_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_APPLYALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_APPLYALL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_APPLYTOALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_CREATE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_ERASE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_EXPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_EXPORT_COPY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_EXPORT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_IMPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_IMPORT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_IMPORT_OKEY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_LOAD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_LOAD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_MAKEDEFAULT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_PNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_REMOVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_SAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_SKINCREATED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_STD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_STDSAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SCROLLBAR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SCROLLBAR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SEGMENTSSAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SEGMENTSSAVE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SENDFEEDBACK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_SIDEBARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_SIDEBARS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_STATUSBAR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_STATUSBAR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_TOTALBAR_COLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_TOTALBAR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_TOTALBAR_ICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_TOTALBAR_ICON_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_A"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_A_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_EXTRA_OPTIONS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_LOADED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_PRESETS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_PRESETSCONFIG_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_REMOVED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_RESET_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_RESET_TOOLTIP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_SELECT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SOCIAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SOCIAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_ADD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_ADDICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_ADDNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_ADDSPELL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_ADDSPELLID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_CLOSE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_ICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_IDERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_INDEX"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_NAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_NAMEERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_NOTFOUND"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_REMOVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_SPELLID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCHTOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCHTOP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SWITCH_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SWITCHINFO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_ENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_SINGLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_SINGLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_TABNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_TABNAME_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TESTBARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_FIXEDCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_FIXEDCOLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_FONT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_FONT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_LCLASSCOLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_LEFT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_LOUTILINE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_LOUTILINE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_LPOSITION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_LPOSITION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_RIGHT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_ROUTILINE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_ROWICONS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_BRACKET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_BRACKET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PERCENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PERCENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_TOTAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_TOTAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_TEXTUREL_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_TEXTUREU_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_CANCEL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_CANCEL_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_COLOR_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_COMMA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_COMMA_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_DATA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_DATA_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_DONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_DONE_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_FUNC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_FUNC_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_RESET_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_TOK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_TOK_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TIMEMEASURE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TIMEMEASURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBAR_SETTINGS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBAR_SETTINGS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBARSIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBARSIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIP_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIP_ANCHORTEXTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_BORDER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_POINT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHORCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BORDER_COLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BORDER_SIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BORDER_TEXTURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTFACE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTFACE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTSHADOW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTSIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTSIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_OFFSETX"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_OFFSETX_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_OFFSETY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_OFFSETY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_SHOWAMT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_SHOWAMT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOTALBAR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TRASH_SUPPRESSION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TRASH_SUPPRESSION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_ALPHA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_BLUE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_CBOTTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_CLEFT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_CRIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_CTOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_FILE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_GREEN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_EXCLAMATION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_OKEY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT_TEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_RED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_BOOKMARK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_BOOKMARK_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_CLOSE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_CLOSE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_CREATE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_CREATE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_LOCK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_LOCK_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_REOPEN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_UNLOCK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_UNSNAP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_UNSNAP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WHEEL_SPEED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WHEEL_SPEED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_ANCHOR_ANCHORS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_SCALE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_SCALE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOWSPEED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOWSPEED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_ALIGN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_ALIGN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_EDIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_EDIT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_ENABLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_GROUP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_GROUP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_GROUP2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_GROUP2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_AUTOMATIC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_AUTOMATIC_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_AUTOMATIC_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_COMBAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DATACHART"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DATACOLLECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DATAFEED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DISPLAY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DISPLAY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_LEFTMENU"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_MISC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_PERFORMANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_PLUGINS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_PROFILES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_RAIDTOOLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_RIGHTMENU"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_ROWMODELS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_ROWSETTINGS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_ROWTEXTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_SKIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_SPELLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_SPELLS_CONSOLIDATE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_TITLETEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_WALLPAPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OVERALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OVERHEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OVERHEALED"] = ""--]]
+L["STRING_PARRY"] = "Parade"
+L["STRING_PERCENTAGE"] = "Pourcentage"
+L["STRING_PET"] = "Familier"
+L["STRING_PETS"] = "Familiers"
+--[[Translation missing --]]
+--[[ L["STRING_PLAYER_DETAILS"] = ""--]]
+L["STRING_PLAYERS"] = "Joueurs"
+L["STRING_PLEASE_WAIT"] = "Veuillez patienter"
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_CLEAN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_CLOCKNAME"] = ""--]]
+L["STRING_PLUGIN_CLOCKTYPE"] = "Type d'horloge"
+L["STRING_PLUGIN_DURABILITY"] = "Durabilité"
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_FPS"] = ""--]]
+L["STRING_PLUGIN_GOLD"] = "Or"
+L["STRING_PLUGIN_LATENCY"] = "Latence"
+L["STRING_PLUGIN_MINSEC"] = "Minutes & secondes"
+L["STRING_PLUGIN_NAMEALREADYTAKEN"] = "Details! ne peut installer le plugin car le nom a déjà été pris"
+L["STRING_PLUGIN_PATTRIBUTENAME"] = "Attribut"
+L["STRING_PLUGIN_PDPSNAME"] = "DPS du raid"
+L["STRING_PLUGIN_PSEGMENTNAME"] = "Segment"
+L["STRING_PLUGIN_SECONLY"] = "Secondes uniquement"
+L["STRING_PLUGIN_SEGMENTTYPE"] = "Type de segment"
+L["STRING_PLUGIN_SEGMENTTYPE_1"] = "Combat #X"
+L["STRING_PLUGIN_SEGMENTTYPE_2"] = "Nom de la rencontre"
+L["STRING_PLUGIN_SEGMENTTYPE_3"] = "Nom de la rencontre plus segment"
+L["STRING_PLUGIN_THREATNAME"] = "Ma menace"
+L["STRING_PLUGIN_TIME"] = "Horloge"
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TIMEDIFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TOOLTIP_LEFTBUTTON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TOOLTIP_RIGHTBUTTON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_ABBREVIATE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_COMMA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_FONTFACE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_NOFORMAT"] = ""--]]
+L["STRING_PLUGINOPTIONS_TEXTALIGN"] = "Alignement du texte"
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_TEXTALIGN_X"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_TEXTALIGN_Y"] = ""--]]
+L["STRING_PLUGINOPTIONS_TEXTCOLOR"] = "Couleur du texte"
+L["STRING_PLUGINOPTIONS_TEXTSIZE"] = "Taille de la police"
+L["STRING_PLUGINOPTIONS_TEXTSTYLE"] = "Style du texte"
+--[[Translation missing --]]
+--[[ L["STRING_QUERY_INSPECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_QUERY_INSPECT_FAIL1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_QUERY_INSPECT_REFRESH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RAID_WIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RAIDCHECK_PLUGIN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RAIDCHECK_PLUGIN_NAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_BUTTON_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_FIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_FIGHTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_INVALIDTARGET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_LAST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_LASTFIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_LEFTCLICK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_PREVIOUSFIGHTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_BUFFUPTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_COOLDOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_DEATH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_DEBUFFUPTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_COPY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_CURRENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_CURRENTINFO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_GUILD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_INSERTNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_LINES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_OFFICERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_PARTY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_REVERT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_REVERTED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_REVERTINFO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_SAY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_SEND"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_WHISPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_WHISPERTARGET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_WINDOW_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTHISTORY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RESISTED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RESIZE_ALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RESIZE_COMMON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RESIZE_HORIZONTAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RESIZE_VERTICAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RIGHT_TO_LEFT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RIGHTCLICK_CLOSE_LARGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RIGHTCLICK_CLOSE_MEDIUM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RIGHTCLICK_CLOSE_SHORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RIGHTCLICK_TYPEVALUE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SCORE_BEST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SCORE_NOTBEST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEE_BELOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_EMPTY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_END"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_ENEMY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_LOWER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_OVERALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_START"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_TRASH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_BOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_COMBATTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_OVERALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_TIMEINCOMBAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_TOTALTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_TRASH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_WASTED_TIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SHIELD_HEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SHIELD_OVERHEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SHORTCUT_RIGHTCLICK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_API_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CAPTURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CAPTUREOFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CAPTUREON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CHANGES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CHANGES_ALIAS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CHANGES_ALIAS2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CHANGES_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_DISABLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_ENABLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_HIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_HIDE_ALIAS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_HISTORY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_NEW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_NEW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_OPTIONS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_OPTIONS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_RESET_ALIAS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_RESET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_SHOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_SHOW_ALIAS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_SHOWHIDETOGGLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_TOGGLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WIPE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WIPECONFIG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WIPECONFIG_CONFIRM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WIPECONFIG_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WORLDBOSS"] = ""--]]
+L["STRING_SLASH_WORLDBOSS_DESC"] = "exécute une macro indiquant quels boss vous avez tués cette semaine."
+L["STRING_SPELL_INTERRUPTED"] = "Sorts interrompus"
+L["STRING_SPELLLIST"] = "Liste des sorts"
+L["STRING_SPELLS"] = "Sorts"
+--[[Translation missing --]]
+--[[ L["STRING_SPIRIT_LINK_TOTEM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SPIRIT_LINK_TOTEM_DESC"] = ""--]]
+L["STRING_STATISTICS"] = "Statistiques"
+L["STRING_STATUSBAR_NOOPTIONS"] = "Ce widget n'a pas d'option."
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_CLICKME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_SELECTMSG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_TO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_WARNING"] = ""--]]
+L["STRING_TARGET"] = "Cible"
+L["STRING_TARGETS"] = "Cibles"
+L["STRING_TARGETS_OTHER1"] = "Familiers et autres cibles"
+L["STRING_TEXTURE"] = "Texture"
+L["STRING_TIME_OF_DEATH"] = "Mort"
+L["STRING_TOOOLD"] = "n'a pas pu être installé car votre version de Details! est trop ancienne."
+L["STRING_TOP"] = "haut"
+--[[Translation missing --]]
+--[[ L["STRING_TOP_TO_BOTTOM"] = ""--]]
+L["STRING_TOTAL"] = "Total"
+--[[Translation missing --]]
+--[[ L["STRING_TRANSLATE_LANGUAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TUTORIAL_FULLY_DELETE_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TUTORIAL_OVERALL1"] = ""--]]
+L["STRING_UNKNOW"] = "Inconnu"
+--[[Translation missing --]]
+--[[ L["STRING_UNKNOWSPELL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_UNLOCK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_UNLOCK_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_UPTADING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_VERSION_AVAILABLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_VERSION_UPDATE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_VOIDZONE_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WAITPLUGIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WAVE"] = ""--]]
+L["STRING_WELCOME_1"] = [=[|cFFFFFFFFBienvenue sur l'assistant de démarrage rapide de Details!|r
+
+Utilisez les flèches en bas à droite pour vous déplacer.]=]
+L["STRING_WELCOME_11"] = "Si vous changez d'avis, vous pouvez toujours modifier à nouveau via le panneau des options"
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_12"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_13"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_14"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_15"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_16"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_17"] = ""--]]
+L["STRING_WELCOME_2"] = "Si vous changez d'avis, vous pouvez toujours modifier à nouveau via le panneau des options"
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_26"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_27"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_28"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_29"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_30"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_31"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_32"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_34"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_36"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_38"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_39"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_41"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_42"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_43"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_44"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_45"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_46"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_57"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_58"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_59"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_60"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_61"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_62"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_63"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_64"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_65"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_66"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_67"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_68"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_69"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_7"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_70"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_71"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_72"] = ""--]]
+L["STRING_WELCOME_73"] = "Choisissez l'alphabet ou la région :"
+L["STRING_WELCOME_74"] = "Alphabet latin"
+L["STRING_WELCOME_75"] = "Alphabet cyrillique"
+L["STRING_WELCOME_76"] = "Chine"
+L["STRING_WELCOME_77"] = "Corée"
+L["STRING_WELCOME_78"] = "Taïwan"
+L["STRING_WELCOME_79"] = "Créer une 2ème fenêtre"
+L["STRING_WINDOW_NOTFOUND"] = "Aucune fenêtre trouvée."
+--[[Translation missing --]]
+--[[ L["STRING_WINDOW_NUMBER"] = ""--]]
+L["STRING_WINDOW1ATACH_DESC"] = "Pour créer un groupe de fenêtre, approchez la fenêtre #2 de la fenêtre #1."
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ALERT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ERROR1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ERROR2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ERROR3"] = ""--]]
+L["STRING_YES"] = "Oui"
+
diff --git a/locales/Details-itIT.lua b/locales/Details-itIT.lua
index ad0282d4..9b95ff9b 100644
--- a/locales/Details-itIT.lua
+++ b/locales/Details-itIT.lua
@@ -1,4 +1,2669 @@
local L = LibStub("AceLocale-3.0"):NewLocale("Details", "itIT")
if not L then return end
-@localization(locale="itIT", format="lua_additive_table")@
+--[[Translation missing --]]
+--[[ L["ABILITY_ID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ABSORBED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ACTORFRAME_NOTHING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ACTORFRAME_REPORTAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ACTORFRAME_REPORTOF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ACTORFRAME_REPORTTARGETS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ACTORFRAME_REPORTTO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ACTORFRAME_SPELLDETAILS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ACTORFRAME_SPELLSOF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ACTORFRAME_SPELLUSED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_AGAINST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ALIVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ALPHA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ANCHOR_BOTTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ANCHOR_BOTTOMLEFT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ANCHOR_BOTTOMRIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ANCHOR_LEFT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ANCHOR_RIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ANCHOR_TOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ANCHOR_TOPLEFT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ANCHOR_TOPRIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ASCENDING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATACH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_CUSTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_BYSPELL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS_REPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_DONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_DPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_ENEMIES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_ENEMIES_DONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_FRAGS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_FRIENDLYFIRE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_DAMAGE_TAKEN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_ENERGY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_ENERGY_ALTERNATEPOWER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_ENERGY_ENERGY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_ENERGY_MANA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_ENERGY_RAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_ENERGY_RESOURCES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_ENERGY_RUNEPOWER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_HEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_HEAL_ABSORBED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_HEAL_DONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_HEAL_ENEMY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_HEAL_HPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_HEAL_OVERHEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_HEAL_PREVENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_HEAL_TAKEN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_MISC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_MISC_CCBREAK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_MISC_DEAD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_MISC_DEFENSIVE_COOLDOWNS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_MISC_DISPELL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_MISC_INTERRUPT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ATTRIBUTE_MISC_RESS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_AUTO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_AUTOSHOT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_AVERAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_BLOCKED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_BOTTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_BOTTOM_TO_TOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CAST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CAUGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CCBROKE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CENTER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CENTER_UPPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANGED_TO_CURRENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_PRINT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_SAY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_WHISPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_WHISPER_TARGET_COOLDOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CHANNEL_YELL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CLICK_REPORT_LINE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CLICK_REPORT_LINE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CLOSEALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_COLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_COMMAND_LIST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_COOLTIP_NOOPTIONS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CREATEAURA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CRITICAL_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CRITICAL_ONLY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CURRENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CURRENTFIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_ALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_ALL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_DPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_DPS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_HPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ACTIVITY_HPS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ATTRIBUTE_DAMAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ATTRIBUTE_HEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ATTRIBUTE_SCRIPT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_AUTHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_AUTHOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_CANCEL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_CC_DONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_CC_RECEIVED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_CREATE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_CREATED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONSHIELDS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONSKULL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DAMAGEONSKULL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DESCRIPTION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DESCRIPTION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DTBS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DTBS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_DYNAMICOVERAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_EDIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_EDIT_SEARCH_CODE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_EDIT_TOOLTIP_CODE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_EDITCODE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_EDITTOOLTIP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ENEMY_DT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_EXPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_FUNC_INVALID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_HEALTHSTONE_DEFAULT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_HEALTHSTONE_DEFAULT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_ICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_IMPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_IMPORT_ALERT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_IMPORT_BUTTON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_IMPORT_ERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_IMPORTED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_LONGNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_MYSPELLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_MYSPELLS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_NAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_NAME_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_NEW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_PASTE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_POT_DEFAULT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_POT_DEFAULT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_REMOVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_REPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SAVED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SHORTNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SKIN_TEXTURE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SKIN_TEXTURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SOURCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SOURCE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SPELLID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_SPELLID_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_TARGET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_TARGET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_CUSTOM_TEMPORARILY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DAMAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DAMAGE_DPS_IN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DAMAGE_FROM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DAMAGE_TAKEN_FROM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DAMAGE_TAKEN_FROM2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DEFENSES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DESCENDING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DETACH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DISCARD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DISPELLED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DODGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DOT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_DPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_EMPTY_SEGMENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ENABLED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ENVIRONMENTAL_DROWNING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ENVIRONMENTAL_FALLING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ENVIRONMENTAL_FATIGUE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ENVIRONMENTAL_FIRE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ENVIRONMENTAL_LAVA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ENVIRONMENTAL_SLIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_EQUILIZING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ERASE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ERASE_DATA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ERASE_DATA_OVERALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ERASE_IN_COMBAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_EXAMPLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_EXPLOSION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FAIL_ATTACKS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_CURSE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_MMOC_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_PREFERED_SITE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_SEND_FEEDBACK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FEEDBACK_WOWI_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FIGHTNUMBER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ALLSPELLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ALLSPELLS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_BWTIMERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_BWTIMERS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_DBMTIMERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_DBMTIMERS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENEMIES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_ENEMIES_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PETS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PETS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PLAYERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_BUTTON_PLAYERS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_ENABLEPLUGINS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_BARTEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_CASTERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_ENCOUNTERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_ENEMYNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_OWNERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_PETNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_PLAYERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_SPELLNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_BARTEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_CASTER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_CLASS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_CREATEAURA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ENCOUNTERID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ENCOUNTERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_EVENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_FLAG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_GUID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_ID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_INDEX"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_NAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_NPCID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_OWNER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_SCHOOL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_SPELLID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_TIMER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_VIDEO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FREEZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FROM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GERAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GLANCING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_BOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_DATABASEERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_DIFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_GUILD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE_INDIVIDUAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE_PLAYER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_ROLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_SHOWHISTORY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_SHOWRANK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_SYNCBUTTONTEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_TUTORIAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_WINDOWALERT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_HEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_HEAL_ABSORBED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_HEAL_CRIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_HEALING_FROM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_HEALING_HPS_FROM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_HPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_ALPHA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_CROPBOTTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_CROPLEFT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_CROPRIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_CROPTOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_DONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_FLIPH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_IMAGEEDIT_FLIPV"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TAB_AVOIDANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TAB_COMPARISON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TAB_SUMMARY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INFO_TUTORIAL_COMPARISON1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INSTANCE_CHAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INSTANCE_LIMIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_INTERFACE_OPENOPTIONS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_ISA_PET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_BOOKMARK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_BOOKMARK_NUMBER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_RESET_SEGMENTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SCROLL_DOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SCROLL_UP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SCROLLING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_SEGMENTCONTROL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_TOGGLE_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_TOGGLE_WINDOWS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_WINDOW_CONTROL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_WINDOW_REPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KEYBIND_WINDOW_REPORT_HEADER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_KILLED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_LAST_COOLDOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_LEFT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_LEFT_CLICK_SHARE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_LEFT_TO_RIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_LOCK_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_LOCK_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MASTERY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MAXIMUM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MAXIMUM_SHORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MEDIA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MELEE"] = ""--]]
+L["STRING_MEMORY_ALERT_BUTTON"] = "Ho capito"
+L["STRING_MEMORY_ALERT_TEXT1"] = "Details! utilizza un sacco di memoria, ma, |cFFFF8800contrariamente alla credenza popolare|r, l'utilizzo della memoria da addons |cFFFF8800non influisce|r nelle prestazioni del gioco o gli FPS."
+L["STRING_MEMORY_ALERT_TEXT2"] = "Quindi, se vedete Details! utilizzare grandi quantità di memoria, non fatevi prendere dal panico :D |cFFFF8800Va tutto bene! |r, e una parte di questa memoria è anche |cFFFF8800utilizzato in cache |r per rendere l'addon ancora più veloce."
+L["STRING_MEMORY_ALERT_TEXT3"] = "Tuttavia, se è vorreste conoscere |cFFFF8800 quali addons influiscono maggiormente|r o che diminuiscono gli FPS, installate l'addon: '|cFFFFFF00AddOns Cpu Usage|r'."
+L["STRING_MEMORY_ALERT_TITLE"] = "Si prega di leggere con attenzione!"
+--[[Translation missing --]]
+--[[ L["STRING_MENU_CLOSE_INSTANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MENU_CLOSE_INSTANCE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MENU_CLOSE_INSTANCE_DESC2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MENU_INSTANCE_CONTROL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAP_TOOLTIP1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAP_TOOLTIP11"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAP_TOOLTIP12"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAP_TOOLTIP2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAPMENU_CLOSEALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAPMENU_HIDEICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAPMENU_LOCK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAPMENU_NEWWINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAPMENU_REOPENALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMAPMENU_UNLOCK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMUM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINIMUM_SHORT"] = ""--]]
+L["STRING_MINITUTORIAL_BOOKMARK1"] = "Tasto destro del mouse in un punto qualsiasi al di sopra della finestra per aprire i segnalibri!"
+L["STRING_MINITUTORIAL_BOOKMARK2"] = "Preferiti consente di accedere rapidamente alle schermate preferite."
+L["STRING_MINITUTORIAL_BOOKMARK3"] = "asto destro del mouse per chiudere il pannello dei segnalibri."
+L["STRING_MINITUTORIAL_BOOKMARK4"] = "Non mostrarlo più."
+L["STRING_MINITUTORIAL_CLOSECTRL1"] = "|cFFFFFF00Ctrl + Right Click |r chiude la finestra!"
+L["STRING_MINITUTORIAL_CLOSECTRL2"] = "Se si vuole riaprirla, andare a finestra di controllo nessun menu di modalità o Pannello Opzioni."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL1"] = "Quale finestra è in fase di modifica."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL2"] = "Se selezionata, tutte le finestre del gruppo vengono anche cambiati."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL3"] = [=[Per creare una finestra di gruppo, trascinare # 2 vicino alla finestra # 1.
+
+Rompere un clic sul pulsante di gruppo separare.]=]
+L["STRING_MINITUTORIAL_OPTIONS_PANEL4"] = "Metti alla prova le tue barre di prova di configurazione creazione."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL5"] = "Durante la modifica di gruppo è attivata, tutte le finestre di un gruppo vengono modificati."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL6"] = "Selezionare qui che finestra che si desidera modificare l'aspetto."
+--[[Translation missing --]]
+--[[ L["STRING_MINITUTORIAL_WINDOWS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MINITUTORIAL_WINDOWS2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MIRROR_IMAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MISS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MODE_ALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MODE_GROUP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MODE_OPENFORGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MODE_PLUGINS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MODE_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MODE_SELF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MORE_INFO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MULTISTRIKE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MULTISTRIKE_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_MUSIC_DETAILS_ROBERTOCARLOS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NEWROW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NEWS_REINSTALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NEWS_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NO_DATA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NO_SPELL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NO_TARGET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NO_TARGET_BOX"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NOCLOSED_INSTANCES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NOLAST_COOLDOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NOMORE_INSTANCES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NORMAL_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_ARABIC_MYRIAD_EASTASIA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_ARABIC_WESTERN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_ARABIC_WESTERN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_NUMERALSYSTEM_MYRIAD_EASTASIA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OFFHAND_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LALPHA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_LSELECT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_UALPHA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_UANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_UENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_3D_USELECT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ADVANCED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALPHAMOD_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYS_USE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYS_USE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYSSHOWPLAYERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYSSHOWPLAYERS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATEBARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATEBARS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATESCROLL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ANIMATESCROLL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_APPEARANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ATTRIBUTE_TEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ATTRIBUTE_TEXT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_COMBAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_DAMAGER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_HEALER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_TANK_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_WIPE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AUTO_SWITCH_WIPE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AVATAR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AVATAR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_AVATAR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BACKDROP_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BACKDROP_COLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BACKDROP_ENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BACKDROP_SIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BACKDROP_TEXTURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_BTEXTURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_COLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_COLORBYCLASS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_COLORBYCLASS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_FOLLOWING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_FOLLOWING_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_FOLLOWING_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_GROW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_GROW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_HEIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_HEIGHT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE_DESC2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_ICONFILE6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_SPACING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_SPACING_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BAR_TEXTURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARLEFTTEXTCUSTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARLEFTTEXTCUSTOM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARORIENTATION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARORIENTATION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARSORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARSORT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARSTART"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARSTART_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARUR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARUR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_ALL_ALLY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_ALL_ALLY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_UNIQUE_SEGMENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_UNIQUE_SEGMENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CAURAS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CAURAS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CDAMAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CDAMAGE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CENERGY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CENERGY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGE_CLASSCOLORS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGE_CLASSCOLORS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGECOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGELOG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADD2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADDAUTHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADDCODE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADDICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADDNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ADDVERSION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_AUTHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_AUTHORERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_CANCEL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_CLOSE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_CODELOADED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_EDIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_EXPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_FUNCERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_ICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_IMPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_IMPORTERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_NAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_NAMEERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_PLUGINWARNING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_REMOVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_SAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_VERSION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHART_VERSIONERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHEAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLASSCOLOR_MODIFY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLASSCOLOR_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLEANUP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLEANUP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLOUD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CLOUD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CMISC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CMISC_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COLORANDALPHA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COLORFIXED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_7"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBAT_ALPHA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBATTWEEKS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_COMBATTWEEKS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CONFIRM_ERASE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CUSTOMSPELL_ADD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CUSTOMSPELLTITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CUSTOMSPELLTITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD7"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD8"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT_ADD9"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATABROKER_TEXT1_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATACHARTTITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATACHARTTITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DATACOLLECT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLIMIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLIMIT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLOG_MINHEALING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLOG_MINHEALING_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DESATURATE_MENU"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DESATURATE_MENU_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_GROUPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_GROUPS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_LOCK_RESIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_LOCK_RESIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_RESET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DISABLED_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DTAKEN_EVERYTHING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DTAKEN_EVERYTHING_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ED3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_EDITIMAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_EDITINSTANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ERASECHARTDATA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ERASECHARTDATA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_EXTERNALS_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_EXTERNALS_TITLE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_GENERAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_GENERAL_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HIDE_ICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HIDE_ICON_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HIDECOMBATALPHA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_ACTION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_ACTION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_IGNORENICKNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_IGNORENICKNAME_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ILVL_TRACKER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ILVL_TRACKER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ILVL_TRACKER_TEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_ALPHA2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_ALPHA2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_BACKDROP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_BACKDROP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_COLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_COLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_CURRENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_CURRENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_DELETE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_DELETE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_SKIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_SKIN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_STATUSBAR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_STRATA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCE_STRATA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INSTANCES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_INTERFACEDIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_LEFT_MENU_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_LOCKSEGMENTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_LOCKSEGMENTS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MANAGE_BOOKMARKS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MAXINSTANCES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MAXINSTANCES_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MAXSEGMENTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MAXSEGMENTS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHAENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHAENTER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHAENTER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHALEAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHALEAVE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ALPHAWARNING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ANCHOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_SHADOW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_ATTRIBUTESETTINGS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_AUTOHIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_AUTOHIDE_LEFT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_BUTTONSSIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_FONT_FACE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_FONT_FACE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_FONT_SIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_FONT_SIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_IGNOREBARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_IGNOREBARS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_SHOWBUTTONS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_SHOWBUTTONS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_X"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_X_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_Y"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENU_Y_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SHADOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SHADOW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SPACEMENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MENUS_SPACEMENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAY_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAY_LOCK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAY_LOCK_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_DROPDOWN_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_OPTION_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_SHOWHIDE_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYS_WARNING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYSSIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYSSIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MICRODISPLAYWARNING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ACTION3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MINIMAP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MISCTITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_MISCTITLE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_NICKNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_NICKNAME_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OPEN_ROWTEXT_EDITOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OPEN_TEXT_EDITOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_ALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_ALL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONBOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONBOSS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_LOGOFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_LOGOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_MYTHICPLUS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_MYTHICPLUS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_NEWBOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_NEWBOSS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_RAIDBOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_RAIDBOSS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_RAIDCLEAN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_OVERALL_RAIDCLEAN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PANIMODE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PANIMODE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PDW_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PDW_SKIN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERCENT_TYPE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERCENT_TYPE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ARENA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_BG15"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_BG40"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_DUNGEON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ENABLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_MYTHIC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_PROFILE_LOAD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_RAID15"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_RAID30"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_RF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_TYPES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_TYPES_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE1_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCECAPTURES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCECAPTURES_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCEPROFILES_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PICONS_DIRECTION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PICONS_DIRECTION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_AUTHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_NAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_OPTIONS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_RAID_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_SOLO_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_TOOLBAR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PLUGINS_VERSION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PRESETNONAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PRESETTOOLD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_COPYOKEY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_FIELDEMPTY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_GLOBAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_LOADED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_NOTCREATED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_OVERWRITTEN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_POSSIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_POSSIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_REMOVEOKEY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_SELECTEXISTING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILE_USENEW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_COPY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_COPY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_CREATE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_CREATE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_CURRENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_CURRENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_ERASE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_ERASE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_RESET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_SELECT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PROFILES_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_COMMA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_NONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK0"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK0MIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK2MIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOKMIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PVPFRAGS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PVPFRAGS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REALMNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REALMNAME_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_HEALLINKS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_HEALLINKS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_REPORT_SCHEMA3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RESET_TO_DEFAULT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ROW_SETTING_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ROWADV_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ROWADV_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWN1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWN2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_ONOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_COOLDOWNS_SELECT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATH_MSG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_FIRST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_FIRST_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_HITS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_HITS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_ONOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_DEATHS_WHERE3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_FIRST_HIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_FIRST_HIT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_IGNORE_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INFOS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INFOS_PREPOTION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INFOS_PREPOTION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPT_NEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_NEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_NEXT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_ONOFF_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_WHISPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_OTHER_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_APPLYALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_APPLYALL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_APPLYTOALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_CREATE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_ERASE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_EXPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_EXPORT_COPY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_EXPORT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_IMPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_IMPORT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_IMPORT_OKEY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_LOAD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_LOAD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_MAKEDEFAULT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_PNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_REMOVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_SAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_SKINCREATED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_STD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SAVELOAD_STDSAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SCROLLBAR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SCROLLBAR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SEGMENTSSAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SEGMENTSSAVE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SENDFEEDBACK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_SIDEBARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_SIDEBARS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_STATUSBAR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_STATUSBAR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_TOTALBAR_COLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_TOTALBAR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_TOTALBAR_ICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_TOTALBAR_ICON_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_A"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_A_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_EXTRA_OPTIONS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_LOADED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_PRESETS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_PRESETSCONFIG_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_REMOVED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_RESET_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_RESET_TOOLTIP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_SELECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_SELECT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SOCIAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SOCIAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_ADD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_ADDICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_ADDNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_ADDSPELL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_ADDSPELLID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_CLOSE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_ICON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_IDERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_INDEX"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_NAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_NAMEERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_NOTFOUND"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_REMOVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_SPELLID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCHTOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCHTOP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SWITCH_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SWITCHINFO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_ENABLED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_SINGLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_SINGLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_TABNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TABEMB_TABNAME_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TESTBARS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_FIXEDCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_FIXEDCOLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_FONT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_FONT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_LCLASSCOLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_LEFT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_LOUTILINE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_LOUTILINE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_LPOSITION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_LPOSITION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_RIGHT_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_ROUTILINE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_ROWICONS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_BRACKET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_BRACKET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PERCENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PERCENT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_PS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_TOTAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SHOW_TOTAL_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_SIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_TEXTUREL_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXT_TEXTUREU_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_CANCEL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_CANCEL_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_COLOR_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_COMMA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_COMMA_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_DATA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_DATA_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_DONE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_DONE_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_FUNC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_FUNC_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_RESET_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_TOK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_TOK_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TIMEMEASURE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TIMEMEASURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBAR_SETTINGS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBAR_SETTINGS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBARSIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLBARSIDE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLS_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIP_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIP_ANCHORTEXTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_BORDER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_POINT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHORCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BORDER_COLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BORDER_SIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_BORDER_TEXTURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTFACE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTFACE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTSHADOW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTSIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_FONTSIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_OFFSETX"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_OFFSETX_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_OFFSETY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_OFFSETY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_SHOWAMT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_SHOWAMT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOTALBAR_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TRASH_SUPPRESSION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TRASH_SUPPRESSION_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_ALPHA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_BLUE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_CBOTTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_CLEFT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_CRIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_CTOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_FILE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_GREEN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_EXCLAMATION"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_OKEY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT_TEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_RED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_BOOKMARK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_BOOKMARK_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_CLOSE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_CLOSE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_CREATE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_CREATE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_LOCK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_LOCK_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_REOPEN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_UNLOCK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_UNSNAP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WC_UNSNAP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WHEEL_SPEED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WHEEL_SPEED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_ANCHOR_ANCHORS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_SCALE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_SCALE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOW_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOWSPEED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WINDOWSPEED_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_ALIGN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_ALIGN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_EDIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_EDIT_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_ENABLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_GROUP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_GROUP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_GROUP2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WP_GROUP2_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_AUTOMATIC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_AUTOMATIC_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_AUTOMATIC_TITLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_COMBAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DATACHART"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DATACOLLECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DATAFEED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DISPLAY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_DISPLAY_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_LEFTMENU"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_MISC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_PERFORMANCE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_PLUGINS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_PROFILES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_RAIDTOOLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_RIGHTMENU"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_ROWMODELS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_ROWSETTINGS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_ROWTEXTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_SKIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_SPELLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_SPELLS_CONSOLIDATE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_TITLETEXT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_WALLPAPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OVERALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OVERHEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OVERHEALED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PARRY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PERCENTAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PETS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLAYER_DETAILS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLAYERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLEASE_WAIT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_CLEAN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_CLOCKNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_CLOCKTYPE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_DURABILITY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_FPS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_GOLD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_LATENCY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_MINSEC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_NAMEALREADYTAKEN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_PATTRIBUTENAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_PDPSNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_PSEGMENTNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_SECONLY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_SEGMENTTYPE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_SEGMENTTYPE_1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_SEGMENTTYPE_2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_SEGMENTTYPE_3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_THREATNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TIMEDIFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TOOLTIP_LEFTBUTTON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGIN_TOOLTIP_RIGHTBUTTON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_ABBREVIATE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_COMMA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_FONTFACE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_NOFORMAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_TEXTALIGN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_TEXTALIGN_X"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_TEXTALIGN_Y"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_TEXTCOLOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_TEXTSIZE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_PLUGINOPTIONS_TEXTSTYLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_QUERY_INSPECT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_QUERY_INSPECT_FAIL1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_QUERY_INSPECT_REFRESH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RAID_WIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RAIDCHECK_PLUGIN_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RAIDCHECK_PLUGIN_NAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_BUTTON_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_FIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_FIGHTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_INVALIDTARGET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_LAST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_LASTFIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_LEFTCLICK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_PREVIOUSFIGHTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_BUFFUPTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_COOLDOWN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_DEATH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_SINGLE_DEBUFFUPTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORT_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_COPY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_CURRENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_CURRENTINFO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_GUILD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_INSERTNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_LINES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_OFFICERS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_PARTY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_RAID"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_REVERT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_REVERTED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_REVERTINFO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_SAY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_SEND"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_WHISPER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_WHISPERTARGET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTFRAME_WINDOW_TITLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_REPORTHISTORY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RESISTED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RESIZE_ALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RESIZE_COMMON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RESIZE_HORIZONTAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RESIZE_VERTICAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RIGHT_TO_LEFT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RIGHTCLICK_CLOSE_LARGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RIGHTCLICK_CLOSE_MEDIUM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RIGHTCLICK_CLOSE_SHORT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_RIGHTCLICK_TYPEVALUE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SCORE_BEST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SCORE_NOTBEST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEE_BELOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_EMPTY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_END"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_ENEMY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_LOWER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_OVERALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_START"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENT_TRASH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_BOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_COMBATTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_OVERALL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_TIMEINCOMBAT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_TOTALTIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_TRASH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_WASTED_TIME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SHIELD_HEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SHIELD_OVERHEAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SHORTCUT_RIGHTCLICK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_API_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CAPTURE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CAPTUREOFF"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CAPTUREON"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CHANGES"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CHANGES_ALIAS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CHANGES_ALIAS2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_CHANGES_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_DISABLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_ENABLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_HIDE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_HIDE_ALIAS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_HISTORY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_NEW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_NEW_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_OPTIONS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_OPTIONS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_RESET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_RESET_ALIAS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_RESET_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_SHOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_SHOW_ALIAS1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_SHOWHIDETOGGLE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_TOGGLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WIPE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WIPECONFIG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WIPECONFIG_CONFIRM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WIPECONFIG_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WORLDBOSS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SLASH_WORLDBOSS_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SPELL_INTERRUPTED"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SPELLLIST"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SPELLS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SPIRIT_LINK_TOTEM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SPIRIT_LINK_TOTEM_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_STATISTICS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_STATUSBAR_NOOPTIONS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_CLICKME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_SELECTMSG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_TO"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_SWITCH_WARNING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TARGET"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TARGETS"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TARGETS_OTHER1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TEXTURE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TIME_OF_DEATH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TOOOLD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TOP_TO_BOTTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TOTAL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TRANSLATE_LANGUAGE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TUTORIAL_FULLY_DELETE_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_TUTORIAL_OVERALL1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_UNKNOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_UNKNOWSPELL"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_UNLOCK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_UNLOCK_WINDOW"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_UPTADING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_VERSION_AVAILABLE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_VERSION_UPDATE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_VOIDZONE_TOOLTIP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WAITPLUGIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WAVE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_11"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_12"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_13"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_14"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_15"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_16"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_17"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_26"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_27"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_28"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_29"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_30"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_31"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_32"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_34"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_36"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_38"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_39"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_4"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_41"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_42"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_43"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_44"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_45"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_46"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_5"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_57"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_58"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_59"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_6"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_60"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_61"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_62"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_63"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_64"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_65"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_66"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_67"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_68"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_69"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_7"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_70"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_71"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_72"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_73"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_74"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_75"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_76"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_77"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_78"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_79"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WINDOW_NOTFOUND"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WINDOW_NUMBER"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WINDOW1ATACH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ALERT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ERROR1"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ERROR2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_WIPE_ERROR3"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_YES"] = ""--]]
+
diff --git a/locales/Details-koKR.lua b/locales/Details-koKR.lua
index 4aa439eb..7b00302d 100644
--- a/locales/Details-koKR.lua
+++ b/locales/Details-koKR.lua
@@ -1,4 +1,1675 @@
local L = LibStub("AceLocale-3.0"):NewLocale("Details", "koKR")
if not L then return end
-@localization(locale="koKR", format="lua_additive_table")@
\ No newline at end of file
+L["ABILITY_ID"] = "능력 id"
+L["STRING_"] = ""
+L["STRING_ABSORBED"] = "흡수함"
+L["STRING_ACTORFRAME_NOTHING"] = "웁스, 보고할 데이터가 없네요 :("
+L["STRING_ACTORFRAME_REPORTAT"] = "at"
+L["STRING_ACTORFRAME_REPORTOF"] = "of"
+L["STRING_ACTORFRAME_REPORTTARGETS"] = "대상 보고서:"
+L["STRING_ACTORFRAME_REPORTTO"] = "보고서:"
+L["STRING_ACTORFRAME_SPELLDETAILS"] = "세부적인 주문"
+L["STRING_ACTORFRAME_SPELLSOF"] = "주문 of"
+L["STRING_ACTORFRAME_SPELLUSED"] = "사용된 모든 주문"
+L["STRING_AGAINST"] = "against"
+L["STRING_ALIVE"] = "생존"
+L["STRING_ALPHA"] = "투명도"
+L["STRING_ANCHOR_BOTTOM"] = "하단"
+L["STRING_ANCHOR_BOTTOMLEFT"] = "좌측 하단"
+L["STRING_ANCHOR_BOTTOMRIGHT"] = "우측 하단"
+L["STRING_ANCHOR_LEFT"] = "좌측"
+L["STRING_ANCHOR_RIGHT"] = "우측"
+L["STRING_ANCHOR_TOP"] = "상단"
+L["STRING_ANCHOR_TOPLEFT"] = "좌측 상단"
+L["STRING_ANCHOR_TOPRIGHT"] = "우측 상단"
+L["STRING_ASCENDING"] = "오름차순"
+L["STRING_ATACH_DESC"] = "창 #%d|1이;가; 창 #%d|1과;와; 그룹이 되었습니다."
+L["STRING_ATTRIBUTE_CUSTOM"] = "사용자 설정"
+L["STRING_ATTRIBUTE_DAMAGE"] = "피해"
+L["STRING_ATTRIBUTE_DAMAGE_BYSPELL"] = "주문 별 받은 피해"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS"] = "효과 & 바닥"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS_REPORT"] = "약화 효과 피해와 유지 시간"
+L["STRING_ATTRIBUTE_DAMAGE_DONE"] = "피해량"
+L["STRING_ATTRIBUTE_DAMAGE_DPS"] = "DPS"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES"] = "적이 받은 피해"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES_DONE"] = "적의 피해량"
+L["STRING_ATTRIBUTE_DAMAGE_FRAGS"] = "죽임"
+L["STRING_ATTRIBUTE_DAMAGE_FRIENDLYFIRE"] = "아군에게 준 피해"
+L["STRING_ATTRIBUTE_DAMAGE_TAKEN"] = "받은 피해"
+L["STRING_ATTRIBUTE_ENERGY"] = "자원"
+L["STRING_ATTRIBUTE_ENERGY_ALTERNATEPOWER"] = "보조 마력"
+L["STRING_ATTRIBUTE_ENERGY_ENERGY"] = "기력 생성"
+L["STRING_ATTRIBUTE_ENERGY_MANA"] = "마나 회복"
+L["STRING_ATTRIBUTE_ENERGY_RAGE"] = "분노 생성"
+L["STRING_ATTRIBUTE_ENERGY_RESOURCES"] = "기타 자원"
+L["STRING_ATTRIBUTE_ENERGY_RUNEPOWER"] = "룬 마력 생성"
+L["STRING_ATTRIBUTE_HEAL"] = "치유"
+L["STRING_ATTRIBUTE_HEAL_ABSORBED"] = "흡수한 치유"
+L["STRING_ATTRIBUTE_HEAL_DONE"] = "치유량"
+L["STRING_ATTRIBUTE_HEAL_ENEMY"] = "적의 치유량"
+L["STRING_ATTRIBUTE_HEAL_HPS"] = "HPS"
+L["STRING_ATTRIBUTE_HEAL_OVERHEAL"] = "초과 치유"
+L["STRING_ATTRIBUTE_HEAL_PREVENT"] = "막은 피해"
+L["STRING_ATTRIBUTE_HEAL_TAKEN"] = "받은 치유"
+L["STRING_ATTRIBUTE_MISC"] = "기타"
+L["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"] = "강화 효과 유지 시간"
+L["STRING_ATTRIBUTE_MISC_CCBREAK"] = "CC 해제"
+L["STRING_ATTRIBUTE_MISC_DEAD"] = "죽음"
+L["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"] = "약화 효과 유지 시간"
+L["STRING_ATTRIBUTE_MISC_DEFENSIVE_COOLDOWNS"] = "생존기"
+L["STRING_ATTRIBUTE_MISC_DISPELL"] = "해제"
+L["STRING_ATTRIBUTE_MISC_INTERRUPT"] = "시전 방해"
+L["STRING_ATTRIBUTE_MISC_RESS"] = "부활"
+L["STRING_AUTO"] = "자동"
+L["STRING_AUTOSHOT"] = "자동 사격"
+L["STRING_AVERAGE"] = "평균"
+L["STRING_BLOCKED"] = "방패 막기"
+L["STRING_BOTTOM"] = "하단"
+L["STRING_BOTTOM_TO_TOP"] = "밑에서 위로"
+L["STRING_CAST"] = "시전"
+L["STRING_CAUGHT"] = "caught"
+L["STRING_CCBROKE"] = "군중 제어 제거됨"
+L["STRING_CENTER"] = "중앙"
+L["STRING_CENTER_UPPER"] = "중앙"
+L["STRING_CHANGED_TO_CURRENT"] = "세분화 변경됨: |cFFFFFF00현재 전투|r"
+L["STRING_CHANNEL_PRINT"] = "혼자 보기"
+L["STRING_CHANNEL_RAID"] = "공격대"
+L["STRING_CHANNEL_SAY"] = "일반 대화"
+L["STRING_CHANNEL_WHISPER"] = "귓속말"
+L["STRING_CHANNEL_WHISPER_TARGET_COOLDOWN"] = "생존기 대상에게 귓속말"
+L["STRING_CHANNEL_YELL"] = "외침"
+L["STRING_CLICK_REPORT_LINE1"] = "|cFFFFCC22클릭|r: |cFFFFEE00보고하기|r"
+L["STRING_CLICK_REPORT_LINE2"] = "|cFFFFCC22Shift+클릭|r: |cFFFFEE00창 모드|r"
+L["STRING_CLOSEALL"] = "모든 창이 닫혔습니다, 다시 열려면 '/details show'를 입력하세요."
+L["STRING_COLOR"] = "색상"
+L["STRING_COMMAND_LIST"] = "명령어 목록"
+L["STRING_COOLTIP_NOOPTIONS"] = "옵션 없음"
+L["STRING_CREATEAURA"] = "오라 만들기"
+L["STRING_CRITICAL_HITS"] = "치명타 및 극대화 적중"
+L["STRING_CRITICAL_ONLY"] = "치명타"
+L["STRING_CURRENT"] = "현재"
+L["STRING_CURRENTFIGHT"] = "현재 세분화"
+L["STRING_CUSTOM_ACTIVITY_ALL"] = "활동 시간"
+L["STRING_CUSTOM_ACTIVITY_ALL_DESC"] = "공격대에서 각 플레이어의 활동 결과를 보여줍니다."
+L["STRING_CUSTOM_ACTIVITY_DPS"] = "피해 활동 시간"
+L["STRING_CUSTOM_ACTIVITY_DPS_DESC"] = "캐릭터가 피해를 주는 데 사용한 시간을 말합니다."
+L["STRING_CUSTOM_ACTIVITY_HPS"] = "치유 활동 시간"
+L["STRING_CUSTOM_ACTIVITY_HPS_DESC"] = "캐릭터가 치유를 하는데 사용한 시간을 말합니다."
+L["STRING_CUSTOM_ATTRIBUTE_DAMAGE"] = "피해"
+L["STRING_CUSTOM_ATTRIBUTE_HEAL"] = "치유"
+L["STRING_CUSTOM_ATTRIBUTE_SCRIPT"] = "사용자 설정 스크립트"
+L["STRING_CUSTOM_AUTHOR"] = "제작자:"
+L["STRING_CUSTOM_AUTHOR_DESC"] = "이 디스플레이를 만든 사람."
+L["STRING_CUSTOM_CANCEL"] = "취소"
+L["STRING_CUSTOM_CC_DONE"] = "시전한 군중 제어"
+L["STRING_CUSTOM_CC_RECEIVED"] = "받은 군중 제어"
+L["STRING_CUSTOM_CREATE"] = "만들기"
+L["STRING_CUSTOM_CREATED"] = "새 디스플레이가 만들어졌습니다."
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET"] = "기타 징표 대상에게 준 피해"
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET_DESC"] = "기타 다른 징표가 지정된 대상에게 준 피해량을 표시합니다."
+L["STRING_CUSTOM_DAMAGEONSHIELDS"] = "보호막에 준 피해"
+L["STRING_CUSTOM_DAMAGEONSKULL"] = "해골 징표 대상에게 준 피해"
+L["STRING_CUSTOM_DAMAGEONSKULL_DESC"] = "해골 징표로 지정된 대상에게 준 피해량을 표시합니다."
+L["STRING_CUSTOM_DESCRIPTION"] = "설명:"
+L["STRING_CUSTOM_DESCRIPTION_DESC"] = "이 디스플레이의 역할에 대한 설명입니다."
+L["STRING_CUSTOM_DONE"] = "완료"
+L["STRING_CUSTOM_DTBS"] = "주문에 의해 받은 피해"
+L["STRING_CUSTOM_DTBS_DESC"] = "적 주문이 당신의 파티에 입힌 피해량을 표시합니다."
+L["STRING_CUSTOM_DYNAMICOVERAL"] = "유동적 종합 피해"
+L["STRING_CUSTOM_EDIT"] = "편집"
+L["STRING_CUSTOM_EDIT_SEARCH_CODE"] = "검색 코드 편집"
+L["STRING_CUSTOM_EDIT_TOOLTIP_CODE"] = "툴팁 코드 편집"
+L["STRING_CUSTOM_EDITCODE_DESC"] = "사용자가 직접 디스플레이 코드를 만들 수 있는 고급 기능입니다."
+L["STRING_CUSTOM_EDITTOOLTIP_DESC"] = "툴팁 코드입니다, 사용자가 바에 마우스를 올리면 실행됩니다."
+L["STRING_CUSTOM_ENEMY_DT"] = " 받은 피해"
+L["STRING_CUSTOM_EXPORT"] = "내보내기"
+L["STRING_CUSTOM_FUNC_INVALID"] = "사용자 설정 스크립트가 올바르지 않아서 창을 새로고치지 못했습니다."
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT"] = "치유 물약 & 생명석"
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT_DESC"] = "생명석이나 치유 물약을 사용한 공격대원을 표시합니다."
+L["STRING_CUSTOM_ICON"] = "아이콘:"
+L["STRING_CUSTOM_IMPORT"] = "가져오기"
+L["STRING_CUSTOM_IMPORT_ALERT"] = "디스플레이를 불러왔습니다, 가져오기를 클릭하여 승인하세요."
+L["STRING_CUSTOM_IMPORT_BUTTON"] = "가져오기"
+L["STRING_CUSTOM_IMPORT_ERROR"] = "가져오기 실패, 유효하지 않은 구문입니다."
+L["STRING_CUSTOM_IMPORTED"] = "디스플레이를 성공적으로 가져왔습니다."
+L["STRING_CUSTOM_LONGNAME"] = "이름이 너무 깁니다, 최대 32자까지 가능합니다."
+L["STRING_CUSTOM_MYSPELLS"] = "내 주문"
+L["STRING_CUSTOM_MYSPELLS_DESC"] = "창에 당신의 주문을 표시합니다."
+L["STRING_CUSTOM_NAME"] = "이름:"
+L["STRING_CUSTOM_NAME_DESC"] = "새로운 사용자 설정 디스플레이의 이름을 입력하세요."
+L["STRING_CUSTOM_NEW"] = "사용자 설정 디스플레이 관리"
+L["STRING_CUSTOM_PASTE"] = "여기에 붙이기:"
+L["STRING_CUSTOM_POT_DEFAULT"] = "사용한 물약"
+L["STRING_CUSTOM_POT_DEFAULT_DESC"] = "전투 중에 물약을 사용한 공격대원을 표시합니다."
+L["STRING_CUSTOM_REMOVE"] = "제거"
+L["STRING_CUSTOM_REPORT"] = "(사용자 설정)"
+L["STRING_CUSTOM_SAVE"] = "변경 내용 저장"
+L["STRING_CUSTOM_SAVED"] = "디스플레이가 저장되었습니다."
+L["STRING_CUSTOM_SHORTNAME"] = "이름은 최소 5글자여야 합니다."
+L["STRING_CUSTOM_SKIN_TEXTURE"] = "사용자 설정 스킨 파일"
+L["STRING_CUSTOM_SKIN_TEXTURE_DESC"] = [=[.tga 파일의 이름입니다.
+
+파일은 폴더 안에 있어야 합니다:
+
+|cFFFFFF00WoW/Interface/|r
+
+|cFFFFFF00중요:|r 파일을 만들기 전에 게임 클라이언트를 닫으세요. 이후부터는 /reload로 텍스쳐 파일에 저장된 변경 내용을 적용할 수 있습니다.]=]
+L["STRING_CUSTOM_SOURCE"] = "행위자:"
+L["STRING_CUSTOM_SOURCE_DESC"] = [=[효과를 발생시킨 대상입니다.
+
+오른쪽에 있는 버튼은 공격대 전투 중 npc들의 목록을 표시합니다.]=]
+L["STRING_CUSTOM_SPELLID"] = "주문 Id:"
+L["STRING_CUSTOM_SPELLID_DESC"] = [=[추가적으로, 대상에게 효과를 적용하기 위해 행위자가 사용한 주문입니다.
+
+오른쪽에 있는 버튼은 공격대 전투 중 주문의 목록을 표시합니다.]=]
+L["STRING_CUSTOM_TARGET"] = "대상:"
+L["STRING_CUSTOM_TARGET_DESC"] = [=[행위자의 대상입니다.
+
+오른쪽에 있는 버튼은 공격대 전투 중 npc들의 목록을 표시합니다.]=]
+L["STRING_CUSTOM_TEMPORARILY"] = " (|cFFFFC000임시|r)"
+L["STRING_DAMAGE"] = "피해"
+L["STRING_DAMAGE_DPS_IN"] = "받은 DPS:"
+L["STRING_DAMAGE_FROM"] = "피해 출처"
+L["STRING_DAMAGE_TAKEN_FROM"] = "받은 피해 출처:"
+L["STRING_DAMAGE_TAKEN_FROM2"] = "적용된 피해 출처:"
+L["STRING_DEFENSES"] = "방어"
+L["STRING_DESCENDING"] = "내림차순"
+L["STRING_DETACH_DESC"] = "창 그룹 해제"
+--[[Translation missing --]]
+--[[ L["STRING_DISCARD"] = ""--]]
+L["STRING_DISPELLED"] = "제거된 강화 효과/약화 효과"
+L["STRING_DODGE"] = "회피"
+L["STRING_DOT"] = " (지속 효과)"
+L["STRING_DPS"] = "Dps"
+L["STRING_EMPTY_SEGMENT"] = "빈 세분화"
+L["STRING_ENABLED"] = "사용"
+L["STRING_ENVIRONMENTAL_DROWNING"] = "환경피해 (호흡 불가)"
+L["STRING_ENVIRONMENTAL_FALLING"] = "환경피해 (낙하 충격)"
+L["STRING_ENVIRONMENTAL_FATIGUE"] = "환경피해 (피로)"
+L["STRING_ENVIRONMENTAL_FIRE"] = "환경피해 (화염)"
+L["STRING_ENVIRONMENTAL_LAVA"] = "환경피해 (용암)"
+L["STRING_ENVIRONMENTAL_SLIME"] = "환경피해 (독성)"
+L["STRING_EQUILIZING"] = "전투 데이터 공유"
+L["STRING_ERASE"] = "삭제"
+L["STRING_ERASE_DATA"] = "모든 데이터 초기화"
+L["STRING_ERASE_DATA_OVERALL"] = "종합 데이터 초기화"
+L["STRING_ERASE_IN_COMBAT"] = "현재 전투가 끝난 후 종합 데이터가 지워집니다."
+L["STRING_EXAMPLE"] = "예제"
+L["STRING_EXPLOSION"] = "폭발"
+L["STRING_FAIL_ATTACKS"] = "공격 실패"
+L["STRING_FEEDBACK_CURSE_DESC"] = "티켓 페이지를 열거나 Details! 페이지에 메시지를 남기세요."
+L["STRING_FEEDBACK_MMOC_DESC"] = "mmo-champion 포럼에 있는 스레드에 글을 작성합니다."
+L["STRING_FEEDBACK_PREFERED_SITE"] = "선호하는 커뮤니티 사이트를 선택하세요:"
+L["STRING_FEEDBACK_SEND_FEEDBACK"] = "피드백 보내기"
+L["STRING_FEEDBACK_WOWI_DESC"] = "Details! 프로젝트 페이지에 의견을 남깁니다."
+L["STRING_FIGHTNUMBER"] = "전투 #"
+L["STRING_FORGE_BUTTON_ALLSPELLS"] = "모든 주문"
+L["STRING_FORGE_BUTTON_ALLSPELLS_DESC"] = "플레이어와 npc의 모든 주문을 나열합니다."
+L["STRING_FORGE_BUTTON_BWTIMERS"] = "BigWigs 타이머"
+L["STRING_FORGE_BUTTON_BWTIMERS_DESC"] = "BigWigs의 타이머를 나열합니다"
+L["STRING_FORGE_BUTTON_DBMTIMERS"] = "DBM 타이머"
+L["STRING_FORGE_BUTTON_DBMTIMERS_DESC"] = "Deadly Boss Mods의 타이머를 나열합니다"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS"] = "우두머리 주문"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS_DESC"] = "공격대와 던전 우두머리 전투 관련 주문만 나열합니다."
+L["STRING_FORGE_BUTTON_ENEMIES"] = "적"
+L["STRING_FORGE_BUTTON_ENEMIES_DESC"] = "현재 전투의 적을 나열합니다."
+L["STRING_FORGE_BUTTON_PETS"] = "소환수"
+L["STRING_FORGE_BUTTON_PETS_DESC"] = "현재 전투의 소환수를 나열합니다."
+L["STRING_FORGE_BUTTON_PLAYERS"] = "플레이어"
+L["STRING_FORGE_BUTTON_PLAYERS_DESC"] = "현재 전투의 플레이어를 나열합니다."
+L["STRING_FORGE_ENABLEPLUGINS"] = "\"게임 메뉴 > 애드온에서 공격대 이름의 Details! 플러그인을 켜주세요. 예. Details: Tomb of Sargeras.\""
+L["STRING_FORGE_FILTER_BARTEXT"] = "바 이름"
+L["STRING_FORGE_FILTER_CASTERNAME"] = "시전자 이름"
+L["STRING_FORGE_FILTER_ENCOUNTERNAME"] = "우두머리 전투 이름"
+L["STRING_FORGE_FILTER_ENEMYNAME"] = "적 이름"
+L["STRING_FORGE_FILTER_OWNERNAME"] = "소유자 이름"
+L["STRING_FORGE_FILTER_PETNAME"] = "소환수 이름"
+L["STRING_FORGE_FILTER_PLAYERNAME"] = "플레이어 이름"
+L["STRING_FORGE_FILTER_SPELLNAME"] = "주문 이름"
+L["STRING_FORGE_HEADER_BARTEXT"] = "바 문자"
+L["STRING_FORGE_HEADER_CASTER"] = "시전자"
+L["STRING_FORGE_HEADER_CLASS"] = "직업"
+L["STRING_FORGE_HEADER_CREATEAURA"] = "오라 만들기"
+L["STRING_FORGE_HEADER_ENCOUNTERID"] = "우두머리 전투 ID"
+L["STRING_FORGE_HEADER_ENCOUNTERNAME"] = "우두머리 전투 이름"
+L["STRING_FORGE_HEADER_EVENT"] = "이벤트"
+L["STRING_FORGE_HEADER_FLAG"] = "Flag"
+L["STRING_FORGE_HEADER_GUID"] = "GUID (글로벌 유닛 ID)"
+L["STRING_FORGE_HEADER_ICON"] = "아이콘"
+L["STRING_FORGE_HEADER_ID"] = "ID"
+L["STRING_FORGE_HEADER_INDEX"] = "순서"
+L["STRING_FORGE_HEADER_NAME"] = "이름"
+L["STRING_FORGE_HEADER_NPCID"] = "NpcID"
+L["STRING_FORGE_HEADER_OWNER"] = "소유자"
+L["STRING_FORGE_HEADER_SCHOOL"] = "속성"
+L["STRING_FORGE_HEADER_SPELLID"] = "주문ID"
+L["STRING_FORGE_HEADER_TIMER"] = "타이머"
+L["STRING_FORGE_TUTORIAL_DESC"] = "'|cFFFFFF00오라 만들기|r'를 클릭하여 오라를 만들기 위해 주문과 우두머리 모듈 타이머를 탐색하세요."
+L["STRING_FORGE_TUTORIAL_TITLE"] = "Details! Forge에 오신 걸 환영합니다"
+L["STRING_FORGE_TUTORIAL_VIDEO"] = "우두머리 모듈 타이머를 사용하는 오라의 예:"
+L["STRING_FREEZE"] = "이 세분화는 지금 사용할 수 없음"
+L["STRING_FROM"] = "출처:"
+L["STRING_GERAL"] = "일반"
+L["STRING_GLANCING"] = "빗맞음"
+L["STRING_GUILDDAMAGERANK_BOSS"] = "우두머리"
+L["STRING_GUILDDAMAGERANK_DATABASEERROR"] = "'|cFFFFFF00Details! Storage|r'를 여는 데 실패했습니다, 애드온이 비활성화 되어 있나요?"
+L["STRING_GUILDDAMAGERANK_DIFF"] = "난이도"
+L["STRING_GUILDDAMAGERANK_GUILD"] = "길드"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE"] = "플레이어 기반"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_INDIVIDUAL"] = "개인 별"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_PLAYER"] = "플레이어"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_RAID"] = "모든 플레이어"
+L["STRING_GUILDDAMAGERANK_RAID"] = "공격대"
+L["STRING_GUILDDAMAGERANK_ROLE"] = "역할"
+L["STRING_GUILDDAMAGERANK_SHOWHISTORY"] = "기록 표시"
+L["STRING_GUILDDAMAGERANK_SHOWRANK"] = "길드 순위 표시"
+L["STRING_GUILDDAMAGERANK_SYNCBUTTONTEXT"] = "길드와 동기화"
+L["STRING_GUILDDAMAGERANK_TUTORIAL_DESC"] = "Details!가 길드로 진행한 각 우두머리 전투의 피해량과 치유량을 저장합니다.\\n\\n'|cFFFFFF00기록 표시|r'를 선택하여 기록을 탐색하세요, 모든 전투 결과가 표시됩니다.\\n '|cFFFFFF00길드 순위 표시|r'를 선택하면 선택한 우두머리의 상위 점수가 표시됩니다.\\n\\n이 도구를 처음 사용하거나 공격대 진행에 참여하지 않았다면 '|cFFFFFF00길드와 동기화|r' 버튼을 클릭하세요."
+L["STRING_GUILDDAMAGERANK_WINDOWALERT"] = "우두머리 처치! 순위 표시"
+L["STRING_HEAL"] = "치유"
+L["STRING_HEAL_ABSORBED"] = "흡수된 치유"
+L["STRING_HEAL_CRIT"] = "극대화 치유"
+L["STRING_HEALING_FROM"] = "받은 치유 출처:"
+L["STRING_HEALING_HPS_FROM"] = "받은 HPS 출처:"
+L["STRING_HITS"] = "횟수"
+L["STRING_HPS"] = "Hps"
+L["STRING_IMAGEEDIT_ALPHA"] = "투명도"
+L["STRING_IMAGEEDIT_CROPBOTTOM"] = "하단 자르기"
+L["STRING_IMAGEEDIT_CROPLEFT"] = "좌측 자르기"
+L["STRING_IMAGEEDIT_CROPRIGHT"] = "우측 자르기"
+L["STRING_IMAGEEDIT_CROPTOP"] = "상단 자르기"
+L["STRING_IMAGEEDIT_DONE"] = "완료"
+L["STRING_IMAGEEDIT_FLIPH"] = "수평으로 뒤집기"
+L["STRING_IMAGEEDIT_FLIPV"] = "수직으로 뒤집기"
+L["STRING_INFO_TAB_AVOIDANCE"] = "방어"
+L["STRING_INFO_TAB_COMPARISON"] = "비교"
+L["STRING_INFO_TAB_SUMMARY"] = "개요"
+L["STRING_INFO_TUTORIAL_COMPARISON1"] = "|cFFFFDD00비교|r 탭을 클릭하면 같은 직업의 다른 플레이어와 비교하여 보여줍니다."
+L["STRING_INSTANCE_CHAT"] = "인스턴스 대화"
+L["STRING_INSTANCE_LIMIT"] = "최대 창 갯수에 도달했습니다, 옵션 창에서 이 제한 갯수를 변경할 수 있습니다. 또한 창 메뉴에서 닫혀진 창(#)을 다시 열 수 있습니다."
+L["STRING_INTERFACE_OPENOPTIONS"] = "옵션 창 열기"
+L["STRING_ISA_PET"] = "소환수에 의한 행동"
+L["STRING_KEYBIND_BOOKMARK"] = "북마크"
+L["STRING_KEYBIND_BOOKMARK_NUMBER"] = "북마크 #%s"
+L["STRING_KEYBIND_RESET_SEGMENTS"] = "세분화 초기화"
+L["STRING_KEYBIND_SCROLL_DOWN"] = "모든 창 스크롤 내리기"
+L["STRING_KEYBIND_SCROLL_UP"] = "모든 창 스크롤 올리기"
+L["STRING_KEYBIND_SCROLLING"] = "스크롤"
+L["STRING_KEYBIND_SEGMENTCONTROL"] = "세분화"
+L["STRING_KEYBIND_TOGGLE_WINDOW"] = "창 #%s 표시 전환"
+L["STRING_KEYBIND_TOGGLE_WINDOWS"] = "모든 창 표시 전환"
+L["STRING_KEYBIND_WINDOW_CONTROL"] = "창"
+L["STRING_KEYBIND_WINDOW_REPORT"] = "창 #%s에 표시된 데이터를 보고합니다."
+L["STRING_KEYBIND_WINDOW_REPORT_HEADER"] = "데이터 보고하기"
+L["STRING_KILLED"] = "죽임"
+L["STRING_LAST_COOLDOWN"] = "마지막으로 사용한 생존기"
+L["STRING_LEFT"] = "좌측"
+L["STRING_LEFT_CLICK_SHARE"] = "보고하려면 클릭하세요."
+L["STRING_LEFT_TO_RIGHT"] = "왼쪽에서 오른쪽으로"
+L["STRING_LOCK_DESC"] = "창 잠금 또는 잠금해제"
+L["STRING_LOCK_WINDOW"] = "잠금"
+L["STRING_MASTERY"] = "특화"
+L["STRING_MAXIMUM"] = "최대"
+L["STRING_MAXIMUM_SHORT"] = "최대"
+L["STRING_MEDIA"] = "미디어"
+L["STRING_MELEE"] = "근접 공격"
+L["STRING_MEMORY_ALERT_BUTTON"] = "이해했습니다"
+L["STRING_MEMORY_ALERT_TEXT1"] = "Details!는 많은 메모리를 사용합니다, 하지만 |cFFFF8800많은 사람들이 생각하는 것과 달리|r, 애드온에 의한 메모리 사용량은 게임 성능이나 FPS에 |cFFFF8800영향을 주지 않습니다|r."
+L["STRING_MEMORY_ALERT_TEXT2"] = "따라서 Details!가 많은 양의 메모리를 사용하는 걸 알게 되었더라도, 혼란스러워 하지마세요 :D |cFFFF8800모두 정상입니다!|r, 그리고 이 메모리는 애드온을 더 빠르게 만들어주는 |cFFFF8800캐시를 저장하는데 사용됩니다|r."
+L["STRING_MEMORY_ALERT_TEXT3"] = "하지만 |cFFFF8800어떤 애드온이 더 \"무거운지\"|r 또는 어떤 애드온이 FPS를 저하시키는지 알고싶다면, '|cFFFFFF00AddOns Cpu Usage|r' 애드온을 설치하세요."
+L["STRING_MEMORY_ALERT_TITLE"] = "자세히 읽어주세요!"
+L["STRING_MENU_CLOSE_INSTANCE"] = "이 창 닫기"
+L["STRING_MENU_CLOSE_INSTANCE_DESC"] = "닫혀진 창은 비활성화되며 창 제어 메뉴에서 언제든지 다시 열 수 있습니다."
+L["STRING_MENU_CLOSE_INSTANCE_DESC2"] = "옵션 창의 기타 설정 란에서 창을 완전히 없앨 수 있습니다."
+L["STRING_MENU_INSTANCE_CONTROL"] = "창 제어"
+L["STRING_MINIMAP_TOOLTIP1"] = "|cFFCFCFCF클릭|r: 옵션 창 열기"
+L["STRING_MINIMAP_TOOLTIP11"] = "|cFFCFCFCF클릭|r: 모든 세분화 초기화"
+L["STRING_MINIMAP_TOOLTIP12"] = "|cFFCFCFCF클릭|r: 창 표시/숨기기"
+L["STRING_MINIMAP_TOOLTIP2"] = "|cFFCFCFCF오른쪽 클릭|r: 빠른 메뉴"
+L["STRING_MINIMAPMENU_CLOSEALL"] = "모두 닫기"
+L["STRING_MINIMAPMENU_HIDEICON"] = "미니맵 아이콘 숨기기"
+L["STRING_MINIMAPMENU_LOCK"] = "잠금"
+L["STRING_MINIMAPMENU_NEWWINDOW"] = "새 창 만들기"
+L["STRING_MINIMAPMENU_REOPENALL"] = "모두 다시 열기"
+L["STRING_MINIMAPMENU_UNLOCK"] = "잠금해제"
+L["STRING_MINIMUM"] = "최소"
+L["STRING_MINIMUM_SHORT"] = "최소"
+L["STRING_MINITUTORIAL_BOOKMARK1"] = "창의 어느 곳이든 오른쪽 클릭하면 북마크를 엽니다!"
+L["STRING_MINITUTORIAL_BOOKMARK2"] = "북마크로 자주 사용하는 디스플레이를 빠르게 볼 수 있습니다."
+L["STRING_MINITUTORIAL_BOOKMARK3"] = "오른쪽 클릭으로 북마크 창을 닫습니다."
+L["STRING_MINITUTORIAL_BOOKMARK4"] = "다시 보지 않습니다."
+L["STRING_MINITUTORIAL_CLOSECTRL1"] = "|cFFFFFF00Ctrl + 오른쪽 클릭|r으로 창 닫기!"
+L["STRING_MINITUTORIAL_CLOSECTRL2"] = "다시 열고 싶다면 Mode 메뉴 -> 창 제어 또는 옵션 창으로 가세요."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL1"] = "편집할 창을 선택합니다."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL2"] = "체크하면 그룹의 모든 창이 같이 변경됩니다."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL3"] = [=[그룹을 만들려면 창 #2를 창 #1 가까이 드래그하세요.
+
+|cFFFFFF00그룹해제|r 버튼을 클릭하면 그룹을 해제합니다.]=]
+L["STRING_MINITUTORIAL_OPTIONS_PANEL4"] = "테스트 바를 만들어 설정을 테스트합니다."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL5"] = "그룹 편집이 활성화되어 있으면 그룹의 모든 창이 변경됩니다."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL6"] = "여기서 창을 선택하고 외형을 변경하세요."
+L["STRING_MINITUTORIAL_WINDOWS1"] = [=[창의 그룹을 생성했습니다.
+
+해제하려면 자물쇠 아이콘을 클릭하세요.]=]
+L["STRING_MINITUTORIAL_WINDOWS2"] = [=[창이 고정되어 있습니다.
+
+제목 바를 클릭하고 위로 드래그하면 늘어납니다.]=]
+L["STRING_MIRROR_IMAGE"] = "미러 이미지"
+L["STRING_MISS"] = "빗나감"
+L["STRING_MODE_ALL"] = "전체"
+L["STRING_MODE_GROUP"] = "표준"
+L["STRING_MODE_OPENFORGE"] = "주문 목록"
+L["STRING_MODE_PLUGINS"] = "플러그인"
+L["STRING_MODE_RAID"] = "플러그인: 공격대"
+L["STRING_MODE_SELF"] = "플러그인: 솔로 플레이"
+L["STRING_MORE_INFO"] = "자세한 정보는 오른쪽에 있습니다."
+L["STRING_MULTISTRIKE"] = "연속타격"
+L["STRING_MULTISTRIKE_HITS"] = "연속타격 적중"
+L["STRING_MUSIC_DETAILS_ROBERTOCARLOS"] = [=[잊으려는 노력을 하지 않으면
+난 오랜 시간 당신의 삶에 머물거에요
+우리의 아주 작은 것까지도]=]
+L["STRING_NEWROW"] = "새로고침 중..."
+L["STRING_NEWS_REINSTALL"] = "업데이트 후에 문제가 생겼나요? '/details reinstall' 명령어를 입력해보세요."
+L["STRING_NEWS_TITLE"] = "버전 변경 사항"
+L["STRING_NO"] = "아니오"
+L["STRING_NO_DATA"] = "데이터가 이미 지워졌습니다"
+L["STRING_NO_SPELL"] = "사용한 주문 없음"
+L["STRING_NO_TARGET"] = "대상이 없습니다."
+L["STRING_NO_TARGET_BOX"] = "표시할 대상 없음"
+L["STRING_NOCLOSED_INSTANCES"] = [=[닫혀있는 창이 없습니다,
+클릭하면 새 창을 엽니다.]=]
+L["STRING_NOLAST_COOLDOWN"] = "사용한 생존기 없음"
+L["STRING_NOMORE_INSTANCES"] = [=[창 최대 갯수에 도달했습니다.
+옵션 창에서 제한 갯수를 변경하세요.]=]
+L["STRING_NORMAL_HITS"] = "일반 적중"
+L["STRING_NUMERALSYSTEM"] = "명수법"
+L["STRING_NUMERALSYSTEM_ARABIC_MYRIAD_EASTASIA"] = "동아시아 국가들이 사용합니다, 천 단위와 만 단위로 구분합니다."
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN"] = "서양"
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN_DESC"] = "가장 일반적인 방법입니다, 천 단위와 백만 단위로 구분합니다."
+L["STRING_NUMERALSYSTEM_DESC"] = "사용할 명수법을 선택하세요"
+L["STRING_NUMERALSYSTEM_MYRIAD_EASTASIA"] = "동아시아"
+L["STRING_OFFHAND_HITS"] = "보조무기"
+L["STRING_OPTIONS_3D_LALPHA_DESC"] = [=[하위 모델의 투명도를 조절합니다.
+
+ |cFFFFFF00중요|r: 몇몇 모델들은 투명도 설정을 무시합니다.]=]
+L["STRING_OPTIONS_3D_LANCHOR"] = "하위 3D 모델:"
+L["STRING_OPTIONS_3D_LENABLED_DESC"] = "바 뒤쪽에 3D 모델 프레임 사용을 켜거나 끕니다."
+L["STRING_OPTIONS_3D_LSELECT_DESC"] = "하위 모델 바에 사용할 모델을 선택합니다."
+L["STRING_OPTIONS_3D_SELECT"] = "모델 선택"
+L["STRING_OPTIONS_3D_UALPHA_DESC"] = [=[상위 모델의 투명도를 조정합니다.
+
+ |cFFFFFF00중요|r: 몇몇 모델들은 투명도 설정을 무시합니다.]=]
+L["STRING_OPTIONS_3D_UANCHOR"] = "상위 3D 모델:"
+L["STRING_OPTIONS_3D_UENABLED_DESC"] = "바 위에 3D 모델 프레임 사용을 켜거나 끕니다."
+L["STRING_OPTIONS_3D_USELECT_DESC"] = "상위 모델 바에 사용할 모델을 선택합니다."
+L["STRING_OPTIONS_ADVANCED"] = "고급"
+L["STRING_OPTIONS_ALPHAMOD_ANCHOR"] = "자동 숨기기:"
+L["STRING_OPTIONS_ALWAYS_USE"] = "모든 캐릭터에 사용"
+L["STRING_OPTIONS_ALWAYS_USE_DESC"] = "모든 캐릭터에 같은 프로필이 사용됩니다. 저장된 다른 프로필을 선택하면 어떤 캐릭터든 강제 적용됩니다."
+L["STRING_OPTIONS_ALWAYSSHOWPLAYERS"] = "모든 플레이어 표시"
+L["STRING_OPTIONS_ALWAYSSHOWPLAYERS_DESC"] = "기본 표준 모드를 사용 중일 때 당신과 파티/공격대 중이지 않은 플레이어 캐릭터를 표시합니다."
+L["STRING_OPTIONS_ANCHOR"] = "가장자리"
+L["STRING_OPTIONS_ANIMATEBARS"] = "바 애니메이션"
+L["STRING_OPTIONS_ANIMATEBARS_DESC"] = "모든 바에 애니메이션 효과를 줍니다."
+L["STRING_OPTIONS_ANIMATESCROLL"] = "스크롤 바 애니메이션"
+L["STRING_OPTIONS_ANIMATESCROLL_DESC"] = "활성화하면 스크롤 바가 표시되거나 숨겨질 때 애니메이션 효과를 줍니다."
+L["STRING_OPTIONS_APPEARANCE"] = "외형"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT"] = "제목 문자 설정"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT_DESC"] = "창의 제목 문자를 조정하는 옵션입니다."
+L["STRING_OPTIONS_AUTO_SWITCH"] = "모든 역할 |cFFFFAA00(전투 중)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_COMBAT"] = "|cFFFFAA00(전투 중)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_DAMAGER_DESC"] = "공격 담당일 때 이 창에 선택한 항목이나 플러그인을 표시합니다."
+L["STRING_OPTIONS_AUTO_SWITCH_DESC"] = [=[전투에 진입하면 이 창에 선택한 항목이나 플러그인을 표시합니다.
+
+|cFFFFFF00중요|r: 이곳에서 선택한 항목보다 특정 역할에서 선택된 개별 항목을 우선적으로 표시합니다.]=]
+L["STRING_OPTIONS_AUTO_SWITCH_HEALER_DESC"] = "치유 담당일 때 이 창에 선택한 항목이나 플러그인을 표시합니다."
+L["STRING_OPTIONS_AUTO_SWITCH_TANK_DESC"] = "방어 담당일 때 이 창에 선택한 항목이나 플러그인을 표시합니다."
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE"] = "전멸 후"
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE_DESC"] = "공격대 전투 공략 실패 후 이 창에 자동으로 이 항목을 표시합니다."
+L["STRING_OPTIONS_AVATAR"] = "아바타 선택"
+L["STRING_OPTIONS_AVATAR_ANCHOR"] = "신원:"
+L["STRING_OPTIONS_AVATAR_DESC"] = "아바타는 툴팁과 플레이어 상세 창 상단에 표시되며 길드원들에게도 보내집니다."
+L["STRING_OPTIONS_BAR_BACKDROP_ANCHOR"] = "테두리:"
+L["STRING_OPTIONS_BAR_BACKDROP_COLOR_DESC"] = "테두리 색상을 변경합니다."
+L["STRING_OPTIONS_BAR_BACKDROP_ENABLED_DESC"] = "바 테두리를 켜거나 끕니다."
+L["STRING_OPTIONS_BAR_BACKDROP_SIZE_DESC"] = "테두리 크기를 조절합니다."
+L["STRING_OPTIONS_BAR_BACKDROP_TEXTURE_DESC"] = "테두리 모양을 변경합니다."
+L["STRING_OPTIONS_BAR_BCOLOR"] = "배경 색상"
+L["STRING_OPTIONS_BAR_BTEXTURE_DESC"] = "이 텍스쳐를 상위 텍스쳐 밑에 놓고 크기를 항상 창의 너비와 맞춥니다."
+L["STRING_OPTIONS_BAR_COLOR_DESC"] = [=[이 무늬의 색상과 투명도입니다.
+
+|cFFFFFF00중요|r: 직업 색상을 사용하면 선택한 색상은 무시됩니다.]=]
+L["STRING_OPTIONS_BAR_COLORBYCLASS"] = "직업 색상 사용"
+L["STRING_OPTIONS_BAR_COLORBYCLASS_DESC"] = "활성화하면 이 무늬는 항상 플레이어 직업의 색상을 사용합니다."
+L["STRING_OPTIONS_BAR_FOLLOWING"] = "항상 나를 표시"
+L["STRING_OPTIONS_BAR_FOLLOWING_ANCHOR"] = "플레이어 바:"
+L["STRING_OPTIONS_BAR_FOLLOWING_DESC"] = "활성화하면 당신이 상위권에 없어도 항상 자신의 바가 표시됩니다."
+L["STRING_OPTIONS_BAR_GROW"] = "바 확장 방향"
+L["STRING_OPTIONS_BAR_GROW_DESC"] = "창의 상단이나 하단부터 바가 생성됩니다."
+L["STRING_OPTIONS_BAR_HEIGHT"] = "높이"
+L["STRING_OPTIONS_BAR_HEIGHT_DESC"] = "바의 높이를 늘리거나 줄입니다."
+L["STRING_OPTIONS_BAR_ICONFILE"] = "아이콘 파일"
+L["STRING_OPTIONS_BAR_ICONFILE_DESC"] = [=[사용자 설정 아이콘 파일의 경로입니다.
+
+이미지 파일은 .tga, 256x256 픽셀의 알파 채널이어야 합니다.]=]
+L["STRING_OPTIONS_BAR_ICONFILE_DESC2"] = "사용할 아이콘 묶음을 선택하세요."
+L["STRING_OPTIONS_BAR_ICONFILE1"] = "아이콘 없음"
+L["STRING_OPTIONS_BAR_ICONFILE2"] = "기본"
+L["STRING_OPTIONS_BAR_ICONFILE3"] = "기본 (흑백)"
+L["STRING_OPTIONS_BAR_ICONFILE4"] = "기본 (투명)"
+L["STRING_OPTIONS_BAR_ICONFILE5"] = "둥근 아이콘"
+L["STRING_OPTIONS_BAR_ICONFILE6"] = "기본 (투명한 흑백)"
+L["STRING_OPTIONS_BAR_SPACING"] = "간격"
+L["STRING_OPTIONS_BAR_SPACING_DESC"] = "바 사이의 간격 크기입니다."
+L["STRING_OPTIONS_BAR_TEXTURE_DESC"] = "바의 상단에 쓰이는 텍스쳐입니다."
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM"] = "사용자 설정 문자 활성화"
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM_DESC"] = "활성화하면 아래 입력 창에 쓰이는 규칙에 따라 좌측 문자가 표시됩니다."
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2"] = ""
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{data1}|r: 일반적으로 플레이어의 순위를 나타냅니다.
+
+|cFFFFFF00{data2}|r: 항상 플레이어 이름입니다.
+
+|cFFFFFF00{data3}|r: 경우에 따라, 이 값은 플레이어의 진영이나 역할 아이콘을 나타냅니다.
+
+
+|cFFFFFF00{func}|r: 직접 제작한 Lua 함수가 실행되어 나온 리턴 값이 문자에 추가됩니다.
+에제:
+{func return '안녕 아제로스'}
+
+|cFFFFFF00Scape Sequences|r: 색상을 변경하거나 무늬를 추가하는데 쓰입니다. 자세한 정보는 'UI escape sequences' 검색하세요.]=]
+L["STRING_OPTIONS_BARORIENTATION"] = "바 방향"
+L["STRING_OPTIONS_BARORIENTATION_DESC"] = "바가 채워질 방향입니다."
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM"] = "사용자 설정 문자 활성화"
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM_DESC"] = "활성화하면 입력 창에 입력된 형식으로 우측 문자가 표시됩니다."
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2"] = ""
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{data1}|r: 첫번째로 반환된 숫자입니다, 일반적으로 이 숫자는 전체 양을 나타냅니다.
+
+|cFFFFFF00{data2}|r: 두번째로 반환된 숫자입니다, 대부분 초당 평균양을 나타냅니다.
+
+|cFFFFFF00{data3}|r: 세번째로 반환된 숫자입니다, 보통 백분율입니다.
+
+|cFFFFFF00{func}|r: 사용자 설정 Lua 함수를 실행해서 나온 반환 값을 문자에 추가합니다.
+예제:
+{func return '안녕 아제로스'}
+
+|cFFFFFF00Escape Sequences|r: 색상 변경이나 텍스쳐를 추가합니다. 자세한 정보는 'UI escape sequences' 검색하세요.]=]
+L["STRING_OPTIONS_BARS"] = "바 일반 설정"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE"] = "사용자 설정 텍스쳐 파일"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE_DESC"] = [=[
+
+|cFFFFFF00중요|r: 이미지는 256x32 픽셀이어야 합니다.]=]
+L["STRING_OPTIONS_BARS_DESC"] = "바 모양을 설정하는 옵션들입니다."
+L["STRING_OPTIONS_BARSORT"] = "바 순위 정렬 순서"
+L["STRING_OPTIONS_BARSORT_DESC"] = "오름차순 또는 내림차순으로 바를 정렬합니다."
+L["STRING_OPTIONS_BARSTART"] = "아이콘 뒤에 바 시작"
+L["STRING_OPTIONS_BARSTART_DESC"] = [=[비활성하면 상위 무늬를 아이콘 오른쪽 대신 왼쪽면부터 시작합니다.
+
+투명 영역이 있는 아이콘 묶음을 사용할 때 유용합니다.]=]
+L["STRING_OPTIONS_BARUR_ANCHOR"] = "빠른 갱신:"
+L["STRING_OPTIONS_BARUR_DESC"] = "사용하면, DPS와 HPS 값이 보통보다 조금 더 빠르게 갱신 됩니다."
+L["STRING_OPTIONS_BG_ALL_ALLY"] = "모두 표시"
+L["STRING_OPTIONS_BG_ALL_ALLY_DESC"] = [=[활성화하면 창이 그룹 모드일 경우 적 플레이어도 보여집니다.
+
+|cFFFFFF00중요|r: 다음 전투부터 적용됩니다.]=]
+L["STRING_OPTIONS_BG_ANCHOR"] = "전장:"
+L["STRING_OPTIONS_BG_UNIQUE_SEGMENT"] = "고유 세그먼트"
+L["STRING_OPTIONS_BG_UNIQUE_SEGMENT_DESC"] = "한 세그먼트는 전장 시작 부분에 만들어지고 끝날 때까지 지속됩니다."
+L["STRING_OPTIONS_CAURAS"] = "오라 수집"
+L["STRING_OPTIONS_CAURAS_DESC"] = [=[수집 허용:
+
+- |cFFFFFF00강화 효과 유지 시간|r
+- |cFFFFFF00약화 효과 유지 시간|r
+- |cFFFFFF00피해 바닥|r
+-|cFFFFFF00 생존기|r]=]
+L["STRING_OPTIONS_CDAMAGE"] = "피해 수집"
+L["STRING_OPTIONS_CDAMAGE_DESC"] = [=[수집 허용:
+
+- |cFFFFFF00피해량|r
+- |cFFFFFF00초당 피해|r
+- |cFFFFFF00아군에게 준 피해|r
+- |cFFFFFF00받은 피해|r]=]
+L["STRING_OPTIONS_CENERGY"] = "자원 수집"
+L["STRING_OPTIONS_CENERGY_DESC"] = [=[수집 허용:
+
+- |cFFFFFF00마나 회복|r
+- |cFFFFFF00분노 생성|r
+- |cFFFFFF00기력 생성|r
+- |cFFFFFF00룬 마력 생성|r]=]
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS"] = "직업 색상 수정"
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS_DESC"] = "직업을 위한 새로운 색상을 선택합니다."
+L["STRING_OPTIONS_CHANGECOLOR"] = "색상 변경"
+L["STRING_OPTIONS_CHANGELOG"] = "버전 노트"
+L["STRING_OPTIONS_CHART_ADD"] = "데이터 추가"
+L["STRING_OPTIONS_CHART_ADD2"] = "추가"
+L["STRING_OPTIONS_CHART_ADDAUTHOR"] = "제작자:"
+L["STRING_OPTIONS_CHART_ADDCODE"] = "코드:"
+L["STRING_OPTIONS_CHART_ADDICON"] = "아이콘:"
+L["STRING_OPTIONS_CHART_ADDNAME"] = "이름:"
+L["STRING_OPTIONS_CHART_ADDVERSION"] = "버전:"
+L["STRING_OPTIONS_CHART_AUTHOR"] = "제작자"
+L["STRING_OPTIONS_CHART_AUTHORERROR"] = "제작자 이름이 올바르지 않습니다."
+L["STRING_OPTIONS_CHART_CANCEL"] = "취소"
+L["STRING_OPTIONS_CHART_CLOSE"] = "닫기"
+L["STRING_OPTIONS_CHART_CODELOADED"] = "이미 불러온 코드이며 표시되지 않습니다."
+L["STRING_OPTIONS_CHART_EDIT"] = "코드 편집"
+L["STRING_OPTIONS_CHART_EXPORT"] = "내보내기"
+L["STRING_OPTIONS_CHART_FUNCERROR"] = "함수가 올바르지 않습니다."
+L["STRING_OPTIONS_CHART_ICON"] = "아이콘"
+L["STRING_OPTIONS_CHART_IMPORT"] = "가져오기"
+L["STRING_OPTIONS_CHART_IMPORTERROR"] = "가져오기 구문이 올바르지 않습니다."
+L["STRING_OPTIONS_CHART_NAME"] = "이름"
+L["STRING_OPTIONS_CHART_NAMEERROR"] = "이름이 올바르지 않습니다."
+L["STRING_OPTIONS_CHART_PLUGINWARNING"] = "사용자 설정 차트를 표시하려면 Chart Viewer 플러그인을 설치하세요."
+L["STRING_OPTIONS_CHART_REMOVE"] = "제거"
+L["STRING_OPTIONS_CHART_SAVE"] = "저장"
+L["STRING_OPTIONS_CHART_VERSION"] = "버전"
+L["STRING_OPTIONS_CHART_VERSIONERROR"] = "버전이 올바르지 않습니다."
+L["STRING_OPTIONS_CHEAL"] = "치유 수집"
+L["STRING_OPTIONS_CHEAL_DESC"] = [=[수집 허용:
+
+- |cFFFFFF00치유량|r
+- |cFFFFFF00흡수|r
+- |cFFFFFF00초당 치유|r
+- |cFFFFFF00초과 치유|r
+- |cFFFFFF00받은 치유|r
+- |cFFFFFF00적이 받은 치유|r
+- |cFFFFFF00막은 피해|r]=]
+L["STRING_OPTIONS_CLASSCOLOR_MODIFY"] = "직업 색상 변경"
+L["STRING_OPTIONS_CLASSCOLOR_RESET"] = "오른쪽 클릭으로 초기화"
+L["STRING_OPTIONS_CLEANUP"] = "일반몹 세분화 자동 삭제"
+L["STRING_OPTIONS_CLEANUP_DESC"] = "활성화하면 두개의 다른 세분화가 만들어진 후 자동으로 일반몹 세분화를 삭제합니다."
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS"] = "클릭으로 메뉴 열기"
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS_DESC"] = [=[제목 바 버튼에 마우스를 올렸을 때 메뉴를 표시하지 않습니다.
+
+대신 아이콘을 클릭해야 메뉴가 열립니다.]=]
+L["STRING_OPTIONS_CLOUD"] = "클라우드 수집"
+L["STRING_OPTIONS_CLOUD_DESC"] = "활성화하면 비활성된 수집 목록은 다른 공격대원이 수집한 데이터에서 가져옵니다."
+L["STRING_OPTIONS_CMISC"] = "기타 수집"
+L["STRING_OPTIONS_CMISC_DESC"] = [=[수집 허용:
+
+- |cFFFFFF00군중 제어 해제|r
+- |cFFFFFF00해제|r
+- |cFFFFFF00차단|r
+- |cFFFFFF00부활|r
+- |cFFFFFF00죽음|r]=]
+L["STRING_OPTIONS_COLORANDALPHA"] = "색상 & 투명도"
+L["STRING_OPTIONS_COLORFIXED"] = "색상 고정"
+L["STRING_OPTIONS_COMBAT_ALPHA"] = "시기"
+L["STRING_OPTIONS_COMBAT_ALPHA_1"] = "숨기지 않음"
+L["STRING_OPTIONS_COMBAT_ALPHA_2"] = "전투 중일 때"
+L["STRING_OPTIONS_COMBAT_ALPHA_3"] = "전투 중이 아닐 때"
+L["STRING_OPTIONS_COMBAT_ALPHA_4"] = "파티가 아닐 때"
+L["STRING_OPTIONS_COMBAT_ALPHA_5"] = "인스턴스 밖에 있을 때"
+L["STRING_OPTIONS_COMBAT_ALPHA_6"] = "인스턴스 안에 있을 때"
+L["STRING_OPTIONS_COMBAT_ALPHA_7"] = "공격대 디버그"
+L["STRING_OPTIONS_COMBAT_ALPHA_DESC"] = [=[전투 상태가 창 투명도를 어떻게 변경할 지 선택하세요.
+
+|cFFFFFF00변경 없음|r: 투명도를 변경하지 않습니다.
+
+|cFFFFFF00전투 중일 때|r: 캐릭터가 전투를 시작하면 선택한 투명도를 창에 적용합니다.
+
+|cFFFFFF00전투 중이 아닐 때|r: 캐릭터가 전투 중이 아닐 때 투명도가 적용됩니다.
+
+|cFFFFFF00파티가 아닐 때|r: 파티나 공격대에 속해 있지 않으면 창이 선택한 투명도로 바뀝니다.
+
+|cFFFFFF00중요|r: 이 옵션은 자동 투명도 기능으로 조정된 투명도를 덮어씁니다.]=]
+L["STRING_OPTIONS_COMBATTWEEKS"] = "전투 내역 수집 조정"
+L["STRING_OPTIONS_COMBATTWEEKS_DESC"] = "Details!가 전투 내역을 다루는 방법을 조정합니다."
+L["STRING_OPTIONS_CONFIRM_ERASE"] = "데이터를 삭제할까요?"
+L["STRING_OPTIONS_CUSTOMSPELL_ADD"] = "주문 추가"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE"] = "주문 설정 편집"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE_DESC"] = "주문의 이름과 아이콘을 수정할 수 있는 창입니다."
+L["STRING_OPTIONS_DATABROKER"] = "Data Broker:"
+L["STRING_OPTIONS_DATABROKER_TEXT"] = "문자"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD1"] = "자신의 피해량"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD2"] = "자신의 실질 Dps"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD3"] = "피해량 순위"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD4"] = "피해량 차이"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD5"] = "자신의 치유량"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD6"] = "자신의 실질 Hps"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD7"] = "치유량 순위"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD8"] = "치유량 차이"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD9"] = "전투 경과 시간"
+L["STRING_OPTIONS_DATABROKER_TEXT1_DESC"] = [=[|cFFFFFF00{dmg}|r: 자신의 피해량입니다.
+
+|cFFFFFF00{dps}|r: 자신의 초당 피해량 입니다.
+
+|cFFFFFF00{dpos}|r: 공격대원이나 파티원의 피해량에서 자신의 순위입니다.
+
+|cFFFFFF00{ddiff}|r: 1등과 자신의 피해량 차이입니다.
+
+|cFFFFFF00{heal}|r: 자신의 치유량입니다.
+
+|cFFFFFF00{hps}|r: 자신의 초당 치유량입니다.
+
+|cFFFFFF00{hpos}|r: 공격대원이나 파티원의 치유량 중에서 자신의 순위입니다.
+
+|cFFFFFF00{hdiff}|r: 1등과 자신의 치유량 차이입니다.
+
+|cFFFFFF00{time}|r: 전투 경과 시간입니다.]=]
+L["STRING_OPTIONS_DATACHARTTITLE"] = "차트에 쓰일 정기적인 데이터 생성"
+L["STRING_OPTIONS_DATACHARTTITLE_DESC"] = "이 창에서 차트 구성에 쓰일 사용자 설정 데이터를 생성할 수 있습니다."
+L["STRING_OPTIONS_DATACOLLECT_ANCHOR"] = "데이터 속성:"
+L["STRING_OPTIONS_DEATHLIMIT"] = "죽음 이벤트 갯수"
+L["STRING_OPTIONS_DEATHLIMIT_DESC"] = [=[죽음 로그에 표시할 이벤트 갯수를 설정합니다.
+
+|cFFFFFF00중요|r: 변경 후 죽음부터 적용됩니다.]=]
+L["STRING_OPTIONS_DEATHLOG_MINHEALING"] = "죽음 기록 최소 치유"
+L["STRING_OPTIONS_DEATHLOG_MINHEALING_DESC"] = [=[이 임계치보다 낮은 치유는 죽음 로그에 표시하지 않습니다.
+
+|cFFFFFF00팁|r: 값을 직접 입력하려면 오른쪽 클릭하세요.]=]
+L["STRING_OPTIONS_DESATURATE_MENU"] = "색 없애기"
+L["STRING_OPTIONS_DESATURATE_MENU_DESC"] = "활성화하면 툴바에 있는 모든 메뉴 아이콘이 흑백으로 바뀝니다."
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW"] = "'모든 디스플레이' 메뉴 비활성"
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW_DESC"] = "활성화하면 제목바를 오른쪽 클릭했을 때 북마크가 대신 표시됩니다."
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT"] = "바 강조 비활성"
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT_DESC"] = "이 옵션을 사용하면 바에 마우스를 올렸을 때 바를 강조하지 않습니다."
+L["STRING_OPTIONS_DISABLE_GROUPS"] = "창 그룹 사용 안함"
+L["STRING_OPTIONS_DISABLE_GROUPS_DESC"] = "활성화하면 창끼리 가까이 위치해도 그룹을 만들지 않습니다."
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE"] = "크기 조절 버튼 비활성"
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE_DESC"] = "창에 마우스를 올렸을 때 크기변경, 잠금/잠금해제와 그룹해제 버튼을 표시하지 않습니다."
+L["STRING_OPTIONS_DISABLE_RESET"] = "초기화 버튼 클릭 사용 안함"
+L["STRING_OPTIONS_DISABLE_RESET_DESC"] = "활성화하면 초기화를 버튼 클릭 대신 툴팁 메뉴를 통해 해야 합니다."
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON"] = "늘리기 버튼 비활성"
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON_DESC"] = "이 옵션을 사용하면 늘리기 버튼이 표시되지 않습니다."
+L["STRING_OPTIONS_DISABLED_RESET"] = "이 버튼을 통한 초기화 기능은 현재 사용할 수 없습니다, 툴팁 메뉴에서 선택하세요."
+L["STRING_OPTIONS_DTAKEN_EVERYTHING"] = "고급 받은 피해"
+L["STRING_OPTIONS_DTAKEN_EVERYTHING_DESC"] = "받은 피해가 항상 '|cFFFFFF00전체|r' 모드로 표시됩니다."
+L["STRING_OPTIONS_ED"] = "데이터 삭제"
+L["STRING_OPTIONS_ED_DESC"] = [=[|cFFFFFF00수동|r: 사용자가 초기화 버튼을 클릭해야 합니다.
+
+|cFFFFFF00묻기|r: 새로운 인스턴스에 진입하면 초기화할지 묻습니다.
+
+|cFFFFFF00자동|r: 새로운 인스턴스에 진입하면 자동으로 초기화합니다.]=]
+L["STRING_OPTIONS_ED1"] = "수동"
+L["STRING_OPTIONS_ED2"] = "묻기"
+L["STRING_OPTIONS_ED3"] = "자동"
+L["STRING_OPTIONS_EDITIMAGE"] = "이미지 편집"
+L["STRING_OPTIONS_EDITINSTANCE"] = "창 편집:"
+L["STRING_OPTIONS_ERASECHARTDATA"] = "차트 삭제"
+L["STRING_OPTIONS_ERASECHARTDATA_DESC"] = "접속종료 시 차트를 만들기 위해 수집된 모든 전투 데이터가 지워집니다."
+L["STRING_OPTIONS_EXTERNALS_TITLE"] = "외부 위젯"
+L["STRING_OPTIONS_EXTERNALS_TITLE2"] = "여러 외부 위젯의 작동 방법을 조절하는 옵션입니다."
+L["STRING_OPTIONS_GENERAL"] = "일반 설정"
+L["STRING_OPTIONS_GENERAL_ANCHOR"] = "일반:"
+L["STRING_OPTIONS_HIDE_ICON"] = "아이콘 숨기기"
+L["STRING_OPTIONS_HIDE_ICON_DESC"] = [=[활성화하면 선택한 디스플레이를 나타내는 아이콘을 표시하지 않습니다.
+
+|cFFFFFF00중요|r: 아이콘을 활성화한 후 제목 글자 위치를 조정하는 것이 좋습니다.]=]
+L["STRING_OPTIONS_HIDECOMBATALPHA_DESC"] = [=[캐릭터가 선택한 상황과 일치하면 이 값으로 투명도를 변경합니다.
+
+|cFFFFFF000|r: 완벽히 숨김, 창과 상호작용 할 수 없습니다.
+|cFFFFFF001 - 100|r: 숨기지 않음, 투명도만 변경되며 창과 상호작용 할 수 있습니다.]=]
+L["STRING_OPTIONS_HOTCORNER"] = "버튼 표시"
+L["STRING_OPTIONS_HOTCORNER_ACTION"] = "클릭 시 행동"
+L["STRING_OPTIONS_HOTCORNER_ACTION_DESC"] = "Hotcorner 바에 있는 버튼을 클릭 했을 때 무엇을 할지 선택하세요."
+L["STRING_OPTIONS_HOTCORNER_ANCHOR"] = "Hotcorner:"
+L["STRING_OPTIONS_HOTCORNER_DESC"] = "Hotcorner 창 위에 버튼을 표시하거나 숨깁니다."
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK"] = "Quick Click 활성화"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_DESC"] = [=[Hotcorners의 Quick Click 기능을 켜거나 끕니다.
+
+좌측 상단 픽셀에 Quick 버튼이 생기며, 그 곳에 마우스를 갖다 대면 좌측 상단 hot corner가 활성화되며 클릭하면 동작이 실행됩니다.]=]
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC"] = "Quick Click 클릭 시 행동"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC_DESC"] = "Hotcorner의 Quick Click 버튼을 클릭했을 때 무엇을 할지 선택하세요."
+L["STRING_OPTIONS_IGNORENICKNAME"] = "별명과 아바타 무시하기"
+L["STRING_OPTIONS_IGNORENICKNAME_DESC"] = "활성화하면 다른 길드원이 설정한 별명과 아바타를 무시합니다."
+L["STRING_OPTIONS_ILVL_TRACKER"] = "아이템 레벨 추적기:"
+L["STRING_OPTIONS_ILVL_TRACKER_DESC"] = [=[활성화 하고 전투 중이 아니면, 공격대 플레이어들의 아이템 레벨을 요청하고 추적합니다.
+
+비활성하면, 다른 애드온이 요청한 아이템 레벨을 읽거나 수동으로 다른 플레이어를 살펴보기 해야합니다.]=]
+L["STRING_OPTIONS_ILVL_TRACKER_TEXT"] = "사용"
+L["STRING_OPTIONS_INSTANCE_ALPHA2"] = "배경 색상"
+L["STRING_OPTIONS_INSTANCE_ALPHA2_DESC"] = "창의 배경색을 변경하는 옵션입니다."
+L["STRING_OPTIONS_INSTANCE_BACKDROP"] = "배경 무늬"
+L["STRING_OPTIONS_INSTANCE_BACKDROP_DESC"] = [=[이 창에 사용할 배경 무늬를 선택하세요.
+
+|cFFFFFF00기본값|r: Details Background.]=]
+L["STRING_OPTIONS_INSTANCE_COLOR"] = "창 색상"
+L["STRING_OPTIONS_INSTANCE_COLOR_DESC"] = [=[이 창의 색상과 투명도를 변경합니다.
+
+|cFFFFFF00중요|r: 여기서 선택한 투명도는 |cFFFFFF00자동 투명도|r가 활성화 되어있으면 동작하지 않습니다.
+
+|cFFFFFF00중요|r: 선택한 창 색상으로 상태바에 설정된 색상을 덮어씁니다.]=]
+L["STRING_OPTIONS_INSTANCE_CURRENT"] = "현재 전투로 자동 변경"
+L["STRING_OPTIONS_INSTANCE_CURRENT_DESC"] = "전투가 시작되면 자동으로 현재 전투 세분화로 변경합니다."
+L["STRING_OPTIONS_INSTANCE_DELETE"] = "삭제"
+L["STRING_OPTIONS_INSTANCE_DELETE_DESC"] = [=[창을 완전히 제거합니다.
+제거하는 동안 게임 화면을 다시 불러옵니다.]=]
+L["STRING_OPTIONS_INSTANCE_SKIN"] = "스킨"
+L["STRING_OPTIONS_INSTANCE_SKIN_DESC"] = "스킨 테마에 맞춰 창의 외형을 변경합니다."
+L["STRING_OPTIONS_INSTANCE_STATUSBAR_ANCHOR"] = "상태바:"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR"] = "색상과 투명도"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR_DESC"] = [=[상태바에 사용할 색상을 선택하세요.
+
+|cFFFFFF00중요|r: 이 옵션은 창 색상에서 선택된 색상과 투명도를 덮어씁니다.]=]
+L["STRING_OPTIONS_INSTANCE_STRATA"] = "프레임 우선 순위"
+L["STRING_OPTIONS_INSTANCE_STRATA_DESC"] = [=[프레임의 우선 순위를 선택하세요.
+
+Low가 기본값으로 대부분의 인터페이스 뒤에 창이 위치합니다.
+
+High를 사용하면 다른 주요 창들보다 앞에 놓이게 됩니다.
+
+우선 순위를 수정하면 다른 창과 충돌이나 겹치는 문제가 발생할 수 있습니다.]=]
+L["STRING_OPTIONS_INSTANCES"] = "창:"
+L["STRING_OPTIONS_INTERFACEDIT"] = "인터페이스 편집 모드"
+L["STRING_OPTIONS_LEFT_MENU_ANCHOR"] = "메뉴 설정:"
+L["STRING_OPTIONS_LOCKSEGMENTS"] = "세분화 잠금"
+L["STRING_OPTIONS_LOCKSEGMENTS_DESC"] = "활성화하면 세분화 변경 시 다른 모든 창도 똑같이 선택한 세분화로 변경됩니다."
+L["STRING_OPTIONS_MANAGE_BOOKMARKS"] = "북마크 관리"
+L["STRING_OPTIONS_MAXINSTANCES"] = "창 갯수"
+L["STRING_OPTIONS_MAXINSTANCES_DESC"] = [=[생성할 수 있는 창의 최대 갯수를 제한합니다.
+
+창 설정 메뉴를 통해 창을 관리할 수 있습니다.]=]
+L["STRING_OPTIONS_MAXSEGMENTS"] = "세분화 갯수"
+L["STRING_OPTIONS_MAXSEGMENTS_DESC"] = "몇 개의 세분화를 유지할 지 조절합니다."
+L["STRING_OPTIONS_MENU_ALPHA"] = "마우스 상호작용:"
+L["STRING_OPTIONS_MENU_ALPHAENABLED_DESC"] = [=[활성화하면 창에 마우스 커서를 올릴 때 자동으로 투명도를 변경합니다.
+
+|cFFFFFF00중요|r: 이 설정은 창 설정 항목의 창 색상 옵션에서 설정된 투명도를 덮어씁니다.]=]
+L["STRING_OPTIONS_MENU_ALPHAENTER"] = "마우스 커서를 올렸을 때"
+L["STRING_OPTIONS_MENU_ALPHAENTER_DESC"] = "창에 마우스 커서를 올리면 투명도가 이 값으로 변경됩니다."
+L["STRING_OPTIONS_MENU_ALPHALEAVE"] = "마우스 커서를 올리지 않았을 때"
+L["STRING_OPTIONS_MENU_ALPHALEAVE_DESC"] = "창에 마우스를 올리지 않았을 때 투명도를 이 값으로 변경합니다."
+L["STRING_OPTIONS_MENU_ALPHAWARNING"] = "마우스 상호작용이 활성화 되었으며 투명도는 바뀌지 않습니다."
+L["STRING_OPTIONS_MENU_ANCHOR"] = "오른쪽에 버튼 붙이기"
+L["STRING_OPTIONS_MENU_ANCHOR_DESC"] = "체크하면 버튼을 창의 오른쪽에 배치합니다."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX"] = "X 위치"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX_DESC"] = "항목 문자의 X 좌표를 조절합니다."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY"] = "Y 위치"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY_DESC"] = "항목 문자의 Y 좌표를 조절합니다."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENABLED_DESC"] = "창에 현재 표시 중인 디스플레이의 이름을 표시합니다."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER"] = "우두머리 전투 타이머"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER_DESC"] = "활성화하면 문자 왼쪽에 초시계가 표시됩니다."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT"] = "문자 글꼴"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT_DESC"] = "항목 문자의 글꼴을 선택합니다."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SHADOW_DESC"] = "문자에 그림자 효과를 켜거나 끕니다."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE"] = "상단에 붙이기"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE_DESC"] = "문자가 고정될 위치를 선택하세요."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR"] = "글자 색상"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR_DESC"] = "항목 문자의 색상을 변경하세요."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE"] = "문자 크기"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE_DESC"] = "항목 문자의 크기를 조절합니다."
+L["STRING_OPTIONS_MENU_ATTRIBUTESETTINGS_ANCHOR"] = "설정:"
+L["STRING_OPTIONS_MENU_AUTOHIDE_DESC"] = "마우스가 창 밖에 있을 때 버튼을 자동으로 숨기고 창과 다시 상호작용을 하면 표시합니다."
+L["STRING_OPTIONS_MENU_AUTOHIDE_LEFT"] = "버튼 자동 숨기기"
+L["STRING_OPTIONS_MENU_BUTTONSSIZE_DESC"] = "버튼 크기를 선택하세요. 플러그인에서 추가된 버튼도 변경됩니다."
+L["STRING_OPTIONS_MENU_FONT_FACE"] = "메뉴 문자 글꼴"
+L["STRING_OPTIONS_MENU_FONT_FACE_DESC"] = "모든 메뉴에 사용될 글꼴을 수정합니다."
+L["STRING_OPTIONS_MENU_FONT_SIZE"] = "메뉴 문자 크기"
+L["STRING_OPTIONS_MENU_FONT_SIZE_DESC"] = "모든 메뉴의 글꼴 크기를 변경합니다."
+L["STRING_OPTIONS_MENU_IGNOREBARS"] = "바 무시하기"
+L["STRING_OPTIONS_MENU_IGNOREBARS_DESC"] = "활성화하면 이 창의 모든 바는 상호작용 설정에 영향을 받지 않습니다."
+L["STRING_OPTIONS_MENU_SHOWBUTTONS"] = "버튼 표시"
+L["STRING_OPTIONS_MENU_SHOWBUTTONS_DESC"] = "제목 바에 표시할 버튼을 고르세요."
+L["STRING_OPTIONS_MENU_X"] = "X 위치"
+L["STRING_OPTIONS_MENU_X_DESC"] = "X축 위치를 변경합니다."
+L["STRING_OPTIONS_MENU_Y"] = "Y 위치"
+L["STRING_OPTIONS_MENU_Y_DESC"] = "Y축 위치를 변경합니다"
+L["STRING_OPTIONS_MENUS_SHADOW"] = "그림자 효과"
+L["STRING_OPTIONS_MENUS_SHADOW_DESC"] = "모든 버튼에 얇은 그림자 테두리를 추가합니다."
+L["STRING_OPTIONS_MENUS_SPACEMENT"] = "간격"
+L["STRING_OPTIONS_MENUS_SPACEMENT_DESC"] = "버튼끼리 얼마나 간격을 둘 지 조정합니다."
+L["STRING_OPTIONS_MICRODISPLAY_ANCHOR"] = "소형 표시기:"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK"] = "소형 표시기 잠그기"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK_DESC"] = "잠그면 마우스 오버와 클릭에 상호작용하지 않습니다."
+L["STRING_OPTIONS_MICRODISPLAYS_DROPDOWN_TOOLTIP"] = "소형 표시기를 표시할 가장자리를 선택하세요."
+L["STRING_OPTIONS_MICRODISPLAYS_OPTION_TOOLTIP"] = "이 소형 표시기를 설정합니다."
+L["STRING_OPTIONS_MICRODISPLAYS_SHOWHIDE_TOOLTIP"] = "이 소형 표시기 표시하거나 숨기기"
+L["STRING_OPTIONS_MICRODISPLAYS_WARNING"] = [=[|cFFFFFF00참고|r: 소형 표시기를 표시하지 못했습니다
+하단에 고정됐지만
+상태바가 비활성되었습니다.]=]
+L["STRING_OPTIONS_MICRODISPLAYSSIDE"] = "소형 표시기 상단에 표시"
+L["STRING_OPTIONS_MICRODISPLAYSSIDE_DESC"] = "창의 상단 또는 하단에 소형 표시기를 위치시킵니다."
+L["STRING_OPTIONS_MICRODISPLAYWARNING"] = "상태바가 비활성 상태여서 소형 표시기가 표시되지 않습니다."
+L["STRING_OPTIONS_MINIMAP"] = "아이콘 표시"
+L["STRING_OPTIONS_MINIMAP_ACTION"] = "클릭 했을 때"
+L["STRING_OPTIONS_MINIMAP_ACTION_DESC"] = "미니맵 아이콘을 클릭했을 때 무엇을 할지 선택하세요."
+L["STRING_OPTIONS_MINIMAP_ACTION1"] = "옵션 창 열기"
+L["STRING_OPTIONS_MINIMAP_ACTION2"] = "세분화 초기화"
+L["STRING_OPTIONS_MINIMAP_ACTION3"] = "창 표시/숨기기"
+L["STRING_OPTIONS_MINIMAP_ANCHOR"] = "미니맵:"
+L["STRING_OPTIONS_MINIMAP_DESC"] = "미니맵 아이콘을 표시하거나 숨깁니다."
+L["STRING_OPTIONS_MISCTITLE"] = "기타 설정"
+L["STRING_OPTIONS_MISCTITLE2"] = "여러가지 옵션을 설정합니다."
+L["STRING_OPTIONS_NICKNAME"] = "별명"
+L["STRING_OPTIONS_NICKNAME_DESC"] = [=[당신의 별명을 정합니다.
+
+별명은 길드원들에게 보내지며 Details!에서 캐릭터 이름대신 사용합니다.]=]
+L["STRING_OPTIONS_OPEN_ROWTEXT_EDITOR"] = "바 문자 편집기"
+L["STRING_OPTIONS_OPEN_TEXT_EDITOR"] = "문자 편집기 열기"
+L["STRING_OPTIONS_OVERALL_ALL"] = "모든 세분화"
+L["STRING_OPTIONS_OVERALL_ALL_DESC"] = "모든 세분화를 종합 데이터에 추가합니다."
+L["STRING_OPTIONS_OVERALL_ANCHOR"] = "종합 데이터:"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS"] = "던전 우두머리"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS_DESC"] = "던전 우두머리 세분화를 종합 데이터에 추가합니다."
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN"] = "던전 일반몹"
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN_DESC"] = "던전 일반몹 정리 세분화를 종합 데이터에 추가합니다."
+L["STRING_OPTIONS_OVERALL_LOGOFF"] = "접속 종료시 초기화"
+L["STRING_OPTIONS_OVERALL_LOGOFF_DESC"] = "활성화하면 캐릭터를 접속 종료 시 자동으로 종합 데이터를 삭제합니다."
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS"] = "신화+를 시작할 때 초기화"
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS_DESC"] = "활성화하면 새로운 신화+ 던전을 시작할 때 종합 데이터를 자동으로 삭제합니다."
+L["STRING_OPTIONS_OVERALL_NEWBOSS"] = "새로운 공격대 우두머리에서 초기화"
+L["STRING_OPTIONS_OVERALL_NEWBOSS_DESC"] = "활성화하면 다른 공격대 우두머리를 만났을 때 자동으로 종합 데이터를 초기화 합니다."
+L["STRING_OPTIONS_OVERALL_RAIDBOSS"] = "공격대 우두머리"
+L["STRING_OPTIONS_OVERALL_RAIDBOSS_DESC"] = "공격대 전투 세분화를 종합 데이터에 추가합니다."
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN"] = "공격대 일반몹"
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN_DESC"] = "공격대 일반몹 정리 세분화를 종합 데이터에 추가합니다."
+L["STRING_OPTIONS_PANIMODE"] = "공황 모드"
+L["STRING_OPTIONS_PANIMODE_DESC"] = "활성화 시 당신이 공격대 전투 중에 게임에서 튕겼을 때 (인스턴스에서 접속 끊김), 모든 세분화가 지워지며, 접속종료 진행을 더 빠르게 합니다."
+L["STRING_OPTIONS_PDW_ANCHOR"] = "창:"
+L["STRING_OPTIONS_PDW_SKIN_DESC"] = [=[플레이어 상세내역 창, 보고 창과 옵션 창에 사용할 스킨입니다.
+몇몇 변경은 /reload를 요구합니다.]=]
+L["STRING_OPTIONS_PERCENT_TYPE"] = "백분율 형식"
+L["STRING_OPTIONS_PERCENT_TYPE_DESC"] = [=[백분율 산출법을 변경합니다:
+
+|cFFFFFF00전체 대비|r: 모든 공격대원이 쌓은 총량에서 각자의 몫을 백분율로 표시합니다.
+
+|cFFFFFF001위 대비|r: 1위 플레이어의 점수를 기준으로 한 백분율입니다.]=]
+L["STRING_OPTIONS_PERFORMANCE"] = "성능"
+L["STRING_OPTIONS_PERFORMANCE_ANCHOR"] = "일반:"
+L["STRING_OPTIONS_PERFORMANCE_ARENA"] = "투기장"
+L["STRING_OPTIONS_PERFORMANCE_BG15"] = "15인 전장"
+L["STRING_OPTIONS_PERFORMANCE_BG40"] = "40인 전장"
+L["STRING_OPTIONS_PERFORMANCE_DUNGEON"] = "던전"
+L["STRING_OPTIONS_PERFORMANCE_ENABLE_DESC"] = "활성화하면 현재 공격대가 선택된 공격대 유형과 일치할 때 이 옵션이 적용됩니다."
+L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD"] = "야외 세분화 자동 삭제"
+L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD_DESC"] = "야외에서의 전투로 생성된 세분화를 자동으로 삭제합니다."
+L["STRING_OPTIONS_PERFORMANCE_MYTHIC"] = "신화"
+L["STRING_OPTIONS_PERFORMANCE_PROFILE_LOAD"] = "성능 프로필 변경:"
+L["STRING_OPTIONS_PERFORMANCE_RAID15"] = "10-15인 공격대"
+L["STRING_OPTIONS_PERFORMANCE_RAID30"] = "16-30인 공격대"
+L["STRING_OPTIONS_PERFORMANCE_RF"] = "공격대 찾기"
+L["STRING_OPTIONS_PERFORMANCE_TYPES"] = "유형"
+L["STRING_OPTIONS_PERFORMANCE_TYPES_DESC"] = "다른 옵션으로 자동으로 변경될 공격대 유형입니다."
+L["STRING_OPTIONS_PERFORMANCE1"] = "성능 개선"
+L["STRING_OPTIONS_PERFORMANCE1_DESC"] = "이 옵션은 cpu 사용량을 줄일 수 있게 해줍니다."
+L["STRING_OPTIONS_PERFORMANCECAPTURES"] = "데이터 수집기"
+L["STRING_OPTIONS_PERFORMANCECAPTURES_DESC"] = "전투 데이터 수집과 분석을 담당하는 옵션입니다."
+L["STRING_OPTIONS_PERFORMANCEPROFILES_ANCHOR"] = "성능 프로필:"
+L["STRING_OPTIONS_PICONS_DIRECTION"] = "오른쪽에 플러그인 붙이기"
+L["STRING_OPTIONS_PICONS_DIRECTION_DESC"] = "체크하면 메뉴 버튼의 오른쪽에 플러그인 버튼이 표시됩니다."
+L["STRING_OPTIONS_PLUGINS"] = "플러그인"
+L["STRING_OPTIONS_PLUGINS_AUTHOR"] = "제작자"
+L["STRING_OPTIONS_PLUGINS_NAME"] = "이름"
+L["STRING_OPTIONS_PLUGINS_OPTIONS"] = "옵션"
+L["STRING_OPTIONS_PLUGINS_RAID_ANCHOR"] = "공격대 플러그인"
+L["STRING_OPTIONS_PLUGINS_SOLO_ANCHOR"] = "솔로 플러그인"
+L["STRING_OPTIONS_PLUGINS_TOOLBAR_ANCHOR"] = "툴바 플러그인"
+L["STRING_OPTIONS_PLUGINS_VERSION"] = "버전"
+L["STRING_OPTIONS_PRESETNONAME"] = "프리셋의 이름을 지어주세요."
+L["STRING_OPTIONS_PRESETTOOLD"] = "이 프리셋이 너무 오래되어 이 버전의 Details!에서 불러올 수 없습니다."
+L["STRING_OPTIONS_PROFILE_COPYOKEY"] = "프로필이 성공적으로 복사되었습니다."
+L["STRING_OPTIONS_PROFILE_FIELDEMPTY"] = "이름 항목이 비어있습니다."
+L["STRING_OPTIONS_PROFILE_GLOBAL"] = "모든 캐릭터에 사용할 프로필을 선택하세요."
+L["STRING_OPTIONS_PROFILE_LOADED"] = "프로필 불러옴:"
+L["STRING_OPTIONS_PROFILE_NOTCREATED"] = "프로필이 생성되지 않았습니다."
+L["STRING_OPTIONS_PROFILE_OVERWRITTEN"] = "이 캐릭터를 위한 특정 프로필을 선택했습니다."
+L["STRING_OPTIONS_PROFILE_POSSIZE"] = "크기와 위치 저장"
+L["STRING_OPTIONS_PROFILE_POSSIZE_DESC"] = "창의 위치와 크기를 프로필에 저장합니다. 비활성하면 각 캐릭터 별 개별 설정이 적용됩니다."
+L["STRING_OPTIONS_PROFILE_REMOVEOKEY"] = "프로필이 삭제되었습니다."
+L["STRING_OPTIONS_PROFILE_SELECT"] = "프로필을 선택하세요."
+L["STRING_OPTIONS_PROFILE_SELECTEXISTING"] = "저장된 프로필을 선택하거나 이 캐릭터를 위한 새 프로필을 계속 사용하세요:"
+L["STRING_OPTIONS_PROFILE_USENEW"] = "새 프로필 사용"
+L["STRING_OPTIONS_PROFILES_ANCHOR"] = "설정:"
+L["STRING_OPTIONS_PROFILES_COPY"] = "프로필 복사해오기"
+L["STRING_OPTIONS_PROFILES_COPY_DESC"] = "선택한 프로필의 모든 설정으로 현재 프로필의 모든 값을 덮어씁니다."
+L["STRING_OPTIONS_PROFILES_CREATE"] = "프로필 생성"
+L["STRING_OPTIONS_PROFILES_CREATE_DESC"] = "새 프로필을 만듭니다."
+L["STRING_OPTIONS_PROFILES_CURRENT"] = "현재 프로필:"
+L["STRING_OPTIONS_PROFILES_CURRENT_DESC"] = "현재 활성화된 프로필의 이름입니다."
+L["STRING_OPTIONS_PROFILES_ERASE"] = "프로필 삭제"
+L["STRING_OPTIONS_PROFILES_ERASE_DESC"] = "선택한 프로필을 삭제합니다."
+L["STRING_OPTIONS_PROFILES_RESET"] = "현재 프로필 초기화"
+L["STRING_OPTIONS_PROFILES_RESET_DESC"] = "선택된 프로필의 모든 설정을 기본값으로 초기화합니다."
+L["STRING_OPTIONS_PROFILES_SELECT"] = "프로필 선택"
+L["STRING_OPTIONS_PROFILES_SELECT_DESC"] = "저장 중인 프로필을 불러옵니다. 모든 캐릭터에 같은 프로필을 사용 중이면(모든 캐릭터에 사용 옵션) 이 캐릭터를 위한 예외 설정이 생성됩니다."
+L["STRING_OPTIONS_PROFILES_TITLE"] = "프로필"
+L["STRING_OPTIONS_PROFILES_TITLE_DESC"] = "캐릭터가 달라도 같은 설정을 공유할 수 있는 옵션입니다."
+L["STRING_OPTIONS_PS_ABBREVIATE"] = "숫자 형식"
+L["STRING_OPTIONS_PS_ABBREVIATE_COMMA"] = "콤마"
+L["STRING_OPTIONS_PS_ABBREVIATE_DESC"] = [=[축약 방법을 선택하세요.
+
+|cFFFFFF00천 단위 I|r:
+520600 = 52.06만
+19530000 = 1953만
+
+|cFFFFFF00천 단위 II|r:
+520600 = 52만
+19530000 = 1953만
+
+|cFFFFFF00만 단위 I|r:
+520600 = 53만
+19530000 = 1953만
+
+|cFFFFFF00콤마|r:
+19530000 = 19.530.000
+
+|cFFFFFF00소문자|r와 |cFFFFFF00대문자|r: 한글 표기엔 영향을 주지 않습니다.]=]
+L["STRING_OPTIONS_PS_ABBREVIATE_NONE"] = "안 함"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK"] = "천 단위 I 대문자"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK0"] = "만 단위 I 대문자"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK0MIN"] = "만 단위 I 소문자"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK2"] = "천 단위 II 대문자"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK2MIN"] = "천 단위 II 소문자"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOKMIN"] = "천 단위 I 소문자"
+L["STRING_OPTIONS_PVPFRAGS"] = "PvP 죽임만"
+L["STRING_OPTIONS_PVPFRAGS_DESC"] = "활성화하면 |cFFFFFF00피해 > 죽임|r 디스플레이에 적대적 플레이어를 죽인 횟수만 표시합니다."
+L["STRING_OPTIONS_REALMNAME"] = "서버 이름 제거"
+L["STRING_OPTIONS_REALMNAME_DESC"] = [=[활성화하면 캐릭터의 서버 이름을 표시하지 않습니다.
+
+|cFFFFFF00비활성|r: Voidlord-아즈샤라
+|cFFFFFF00활성|r: Voidlord]=]
+L["STRING_OPTIONS_REPORT_ANCHOR"] = "보고서:"
+L["STRING_OPTIONS_REPORT_HEALLINKS"] = "이로운 주문 링크"
+L["STRING_OPTIONS_REPORT_HEALLINKS_DESC"] = [=[이 옵션이 활성화된 상태에서 보고서를 전송하면 |cFF55FF55이로운|r 주문이 이름 대신 주문 링크로 보고됩니다.
+
+|cFFFF5555해로운|r 주문은 기본적으로 링크로 보고됩니다.]=]
+L["STRING_OPTIONS_REPORT_SCHEMA"] = "형식"
+L["STRING_OPTIONS_REPORT_SCHEMA_DESC"] = "대화 채널에 링크할 문자 형식을 선택합니다."
+L["STRING_OPTIONS_REPORT_SCHEMA1"] = "총량 / 초당 / 백분율"
+L["STRING_OPTIONS_REPORT_SCHEMA2"] = "백분율 / 초당 / 총량"
+L["STRING_OPTIONS_REPORT_SCHEMA3"] = "백분율 / 총량 / 초당"
+L["STRING_OPTIONS_RESET_TO_DEFAULT"] = "기본값으로 초기화"
+L["STRING_OPTIONS_ROW_SETTING_ANCHOR"] = "배치:"
+L["STRING_OPTIONS_ROWADV_TITLE"] = "바 고급 설정"
+L["STRING_OPTIONS_ROWADV_TITLE_DESC"] = "바를 좀 더 세부적으로 조정할 수 있는 옵션입니다."
+L["STRING_OPTIONS_RT_COOLDOWN1"] = "%s ▶ %s 사용!"
+L["STRING_OPTIONS_RT_COOLDOWN2"] = "%s 사용!"
+L["STRING_OPTIONS_RT_COOLDOWNS_ANCHOR"] = "생존기 알리기:"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL"] = "채널"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL_DESC"] = [=[경보 메시지를 출력할 채널을 선택합니다.
+
+|cFFFFFF00혼자 보기|r를 선택하면, 개인 생존기를 제외한 모든 생존기가 자신의 대화창에만 출력됩니다.]=]
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM"] = "사용자 설정 문자"
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM_DESC"] = [=[출력할 구문을 입력하세요.
+
+|cFFFFFF00{spell}|r 생존기 주문 이름을 추가합니다.
+
+|cFFFFFF00{target}|r 플레이어 대상 이름을 추가합니다.]=]
+L["STRING_OPTIONS_RT_COOLDOWNS_ONOFF_DESC"] = "생존기를 사용하면 선택한 채널에 메시지를 출력합니다."
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT"] = "무시할 생존기 목록"
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT_DESC"] = "무시할 생존기를 선택하세요."
+L["STRING_OPTIONS_RT_DEATH_MSG"] = "Details! %s 죽음"
+L["STRING_OPTIONS_RT_DEATHS_ANCHOR"] = "죽음 알리기:"
+L["STRING_OPTIONS_RT_DEATHS_FIRST"] = "최대"
+L["STRING_OPTIONS_RT_DEATHS_FIRST_DESC"] = "전투 중 처음 X 번째 죽음까지만 알리도록 합니다."
+L["STRING_OPTIONS_RT_DEATHS_HITS"] = "적중 횟수"
+L["STRING_OPTIONS_RT_DEATHS_HITS_DESC"] = "죽음을 알릴 때 적중 횟수를 표시합니다."
+L["STRING_OPTIONS_RT_DEATHS_ONOFF_DESC"] = "공격대원이 죽으면 죽은 플레이어를 공격대 채널에 알립니다."
+L["STRING_OPTIONS_RT_DEATHS_WHERE"] = "인스턴스"
+L["STRING_OPTIONS_RT_DEATHS_WHERE_DESC"] = [=[죽음을 보고할 곳을 선택합니다.
+
+|cFFFFFF00중요|r 공격대에선 /공 채널을 사용하고 던전에선 /p를 사용합니다.
+
+|cFFFFFF00혼자보기|r를 선택하면 자신의 대화창에만 표시됩니다.]=]
+L["STRING_OPTIONS_RT_DEATHS_WHERE1"] = "공격대 & 던전"
+L["STRING_OPTIONS_RT_DEATHS_WHERE2"] = "공격대만"
+L["STRING_OPTIONS_RT_DEATHS_WHERE3"] = "던전만"
+L["STRING_OPTIONS_RT_FIRST_HIT"] = "첫 타격"
+L["STRING_OPTIONS_RT_FIRST_HIT_DESC"] = "대화창에 (|cFFFFFF00자신에게만|r) 첫번째로 적중시킨 사람을 표시합니다, 대체로 전투를 시작한 사람입니다."
+L["STRING_OPTIONS_RT_IGNORE_TITLE"] = "알림을 사용할 생존기"
+L["STRING_OPTIONS_RT_INFOS"] = "추가 정보:"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION"] = "시작물약 사용"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION_DESC"] = "활성화 한 후 공격대 전투가 끝나면, 대화창에 (|cFFFFFF00자신에게만|r) 전투 시작 전 물약을 사용한 사람을 출력합니다."
+L["STRING_OPTIONS_RT_INTERRUPT"] = "%s 차단!"
+L["STRING_OPTIONS_RT_INTERRUPT_ANCHOR"] = "시전 방해 알리기:"
+L["STRING_OPTIONS_RT_INTERRUPT_NEXT"] = "다음: %s"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL"] = "채널"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL_DESC"] = [=[경보 메시지를 보내는 데 사용할 대화 채널입니다.
+
+|cFFFFFF00혼자 보기|r를 선택하면 모든 시전 방해가 자신의 대화창에만 표시됩니다.
+]=]
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM"] = "사용자 설정 문자"
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM_DESC"] = [=[출력할 구문을 입력하세요.
+
+|cFFFFFF00{spell}|r 시전 방해된 주문 이름을 추가합니다.
+
+|cFFFFFF00{next}|r '다음 플레이어'에 적은 이름을 추가합니다.
+]=]
+L["STRING_OPTIONS_RT_INTERRUPTS_NEXT"] = "다음 플레이어"
+L["STRING_OPTIONS_RT_INTERRUPTS_NEXT_DESC"] = "차단 순서가 있을 때 다음 차단 순서인 플레이어의 이름을 입력하세요."
+L["STRING_OPTIONS_RT_INTERRUPTS_ONOFF_DESC"] = "당신이 성공적으로 주문 시전을 방해하면 메시지가 출력됩니다."
+L["STRING_OPTIONS_RT_INTERRUPTS_WHISPER"] = "귓속말 대상"
+L["STRING_OPTIONS_RT_OTHER_ANCHOR"] = "일반:"
+L["STRING_OPTIONS_RT_TITLE"] = "공격대용 도구"
+L["STRING_OPTIONS_RT_TITLE_DESC"] = "이 창에서 공격대 진행에 도움이 되는 여러가지 장치를 활성화 할 수 있습니다."
+L["STRING_OPTIONS_SAVELOAD"] = "저장하고 불러오기"
+L["STRING_OPTIONS_SAVELOAD_APPLYALL"] = "모든 창에 현재 스킨이 적용되었습니다."
+L["STRING_OPTIONS_SAVELOAD_APPLYALL_DESC"] = "현재 스킨을 모든 창에 적용합니다."
+L["STRING_OPTIONS_SAVELOAD_APPLYTOALL"] = "모든 창에 적용"
+L["STRING_OPTIONS_SAVELOAD_CREATE_DESC"] = "현재 스킨을 내보내거나 백업하기 위해 프리셋으로 저장하세요."
+L["STRING_OPTIONS_SAVELOAD_DESC"] = "미리 만들어진 설정을 저장하거나 불러오는 기능을 가진 옵션입니다."
+L["STRING_OPTIONS_SAVELOAD_ERASE_DESC"] = "이전에 저장된 스킨을 삭제하는 옵션입니다."
+L["STRING_OPTIONS_SAVELOAD_EXPORT"] = "내보내기"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_COPY"] = "CTRL + C 누르기"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_DESC"] = "문자 형식으로 스킨을 저장합니다."
+L["STRING_OPTIONS_SAVELOAD_IMPORT"] = "가져오기"
+L["STRING_OPTIONS_SAVELOAD_IMPORT_DESC"] = "문자 형식으로 스킨을 가져옵니다."
+L["STRING_OPTIONS_SAVELOAD_IMPORT_OKEY"] = "저장된 스킨 목록으로 성공적으로 스킨을 가져왔습니다. 드랍박스의 '적용'을 통해 지금 적용할 수 있습니다."
+L["STRING_OPTIONS_SAVELOAD_LOAD"] = "적용"
+L["STRING_OPTIONS_SAVELOAD_LOAD_DESC"] = "현재 선택된 창에 적용할 이전에 저장된 스킨을 선택하세요."
+L["STRING_OPTIONS_SAVELOAD_MAKEDEFAULT"] = "표준으로 설정"
+L["STRING_OPTIONS_SAVELOAD_PNAME"] = "이름"
+L["STRING_OPTIONS_SAVELOAD_REMOVE"] = "삭제"
+L["STRING_OPTIONS_SAVELOAD_RESET"] = "기본 스킨 불러오기"
+L["STRING_OPTIONS_SAVELOAD_SAVE"] = "저장"
+L["STRING_OPTIONS_SAVELOAD_SKINCREATED"] = "스킨이 생성되었습니다."
+L["STRING_OPTIONS_SAVELOAD_STD_DESC"] = [=[현재 외형을 표준 스킨으로 지정합니다.
+
+새로 만들어진 모든 창에 이 스킨이 적용됩니다.]=]
+L["STRING_OPTIONS_SAVELOAD_STDSAVE"] = "표준 스킨이 저장되었습니다, 새로운 창은 이 스킨을 기본값으로 사용합니다."
+L["STRING_OPTIONS_SCROLLBAR"] = "스크롤 바"
+L["STRING_OPTIONS_SCROLLBAR_DESC"] = [=[스크롤 바를 켜거나 끕니다.
+
+기본값으로 Details!의 스크롤 바는 창 늘리기로 대체되어 있습니다.
+
+|cFFFFFF00늘리기 손잡이|r는 창 버튼/메뉴의 바깥 쪽에 있습니다 (닫기 버튼 왼쪽).]=]
+L["STRING_OPTIONS_SEGMENTSSAVE"] = "세분화 저장"
+L["STRING_OPTIONS_SEGMENTSSAVE_DESC"] = [=[게임 세션 간에 얼마나 많은 세분화를 저장할 지 설정합니다.
+
+값이 클수록 캐릭터가 접속 종료하는 데 시간이 오래 걸릴 수 있습니다.]=]
+L["STRING_OPTIONS_SENDFEEDBACK"] = "피드백"
+L["STRING_OPTIONS_SHOW_SIDEBARS"] = "테두리 표시"
+L["STRING_OPTIONS_SHOW_SIDEBARS_DESC"] = "창 테두리를 표시하거나 숨깁니다."
+L["STRING_OPTIONS_SHOW_STATUSBAR"] = "상태바 표시"
+L["STRING_OPTIONS_SHOW_STATUSBAR_DESC"] = "하단 상태바를 표시하거나 숨깁니다."
+L["STRING_OPTIONS_SHOW_TOTALBAR_COLOR_DESC"] = "색상을 선택하세요. 투명도 값은 바의 투명도 값을 따릅니다."
+L["STRING_OPTIONS_SHOW_TOTALBAR_DESC"] = "총량 바를 표시하거나 숨깁니다."
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON"] = "아이콘"
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON_DESC"] = "총량 바에 표시될 아이콘을 선택합니다."
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP"] = "파티 중일때만"
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP_DESC"] = "파티 중이 아니면 총량 바가 표시되지 않습니다."
+L["STRING_OPTIONS_SIZE"] = "크기"
+L["STRING_OPTIONS_SKIN_A"] = "스킨 설정"
+L["STRING_OPTIONS_SKIN_A_DESC"] = "스킨을 변경하는 옵션입니다."
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1"] = "우측 대화창에 정렬"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1_DESC"] = "창 |cFFFFFF00#1|r과 |cFFFFFF00#2|r를 오른쪽 대화창 옆으로 이동시키고 크기를 변경합니다."
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2"] = "툴팁 테두리를 검은색으로 설정"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2_DESC"] = [=[툴팁 수정:
+
+테두리 색상: |cFFFFFF00검은색|r으로 설정.
+테두리 크기: |cFFFFFF0016|r으로 설정.
+무늬: |cFFFFFF00Blizzard Tooltip|r으로 설정.]=]
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3"] = "툴팁 테두리 제거"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3_DESC"] = [=[툴팁 수정:
+
+테두리 색상: |cFFFFFF00투명하게|r 변경합니다.]=]
+L["STRING_OPTIONS_SKIN_EXTRA_OPTIONS_ANCHOR"] = "스킨 옵션:"
+L["STRING_OPTIONS_SKIN_LOADED"] = "스킨을 불러왔습니다."
+L["STRING_OPTIONS_SKIN_PRESETS_ANCHOR"] = "스킨 저장:"
+L["STRING_OPTIONS_SKIN_PRESETSCONFIG_ANCHOR"] = "저장된 사용자 정의 스킨 관리:"
+L["STRING_OPTIONS_SKIN_REMOVED"] = "스킨이 삭제되었습니다."
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP"] = "툴팁 테두리 초기화"
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP_DESC"] = "툴팁 테두리 색상과 무늬를 기본값으로 되돌립니다."
+L["STRING_OPTIONS_SKIN_SELECT"] = "스킨 선택"
+L["STRING_OPTIONS_SKIN_SELECT_ANCHOR"] = "스킨 선택:"
+L["STRING_OPTIONS_SOCIAL"] = "소셜"
+L["STRING_OPTIONS_SOCIAL_DESC"] = "당신의 길드 환경에 알리고 싶은 내용을 말하세요."
+L["STRING_OPTIONS_SPELL_ADD"] = "추가"
+L["STRING_OPTIONS_SPELL_ADDICON"] = "새 아이콘:"
+L["STRING_OPTIONS_SPELL_ADDNAME"] = "새 이름:"
+L["STRING_OPTIONS_SPELL_ADDSPELL"] = "주문 추가"
+L["STRING_OPTIONS_SPELL_ADDSPELLID"] = "주문Id:"
+L["STRING_OPTIONS_SPELL_CLOSE"] = "닫기"
+L["STRING_OPTIONS_SPELL_ICON"] = "아이콘"
+L["STRING_OPTIONS_SPELL_IDERROR"] = "올바르지 않은 주문 id입니다."
+L["STRING_OPTIONS_SPELL_INDEX"] = "색인"
+L["STRING_OPTIONS_SPELL_NAME"] = "이름"
+L["STRING_OPTIONS_SPELL_NAMEERROR"] = "올바르지 않은 주문 이름입니다."
+L["STRING_OPTIONS_SPELL_NOTFOUND"] = "주문을 찾을 수 없습니다."
+L["STRING_OPTIONS_SPELL_REMOVE"] = "삭제"
+L["STRING_OPTIONS_SPELL_RESET"] = "초기화"
+L["STRING_OPTIONS_SPELL_SPELLID"] = "주문 ID"
+L["STRING_OPTIONS_STRETCH"] = "상단 면에 늘리기 버튼 배치"
+L["STRING_OPTIONS_STRETCH_DESC"] = "창의 상단에 늘리기 버튼을 배치합니다."
+L["STRING_OPTIONS_STRETCHTOP"] = "늘리기 버튼 항상 위에"
+L["STRING_OPTIONS_STRETCHTOP_DESC"] = [=[늘리기 버튼이 FULLSCREEN 순위로 배치되며 다른 프레임들보다 항상 위에 오게 됩니다.
+
+|cFFFFFF00중요|r: 손잡이를 상위 우선 순위로 옮기면, 가방같은 다른 프레임보다 앞에 위치합니다, 꼭 필요할 때만 사용하세요.]=]
+L["STRING_OPTIONS_SWITCH_ANCHOR"] = "변경:"
+L["STRING_OPTIONS_SWITCHINFO"] = "|cFFF79F81 좌측 비활성|r |cFF81BEF7 우측 활성|r"
+L["STRING_OPTIONS_TABEMB_ANCHOR"] = "대화창 탭에 넣기"
+L["STRING_OPTIONS_TABEMB_ENABLED_DESC"] = "활성화하면 하나 이상의 창이 대화 탭에 붙여집니다."
+L["STRING_OPTIONS_TABEMB_SINGLE"] = "단일 창"
+L["STRING_OPTIONS_TABEMB_SINGLE_DESC"] = "활성화하면 두개 대신 하나의 창만 붙입니다."
+L["STRING_OPTIONS_TABEMB_TABNAME"] = "탭 이름"
+L["STRING_OPTIONS_TABEMB_TABNAME_DESC"] = "창이 불여질 탭의 이름"
+L["STRING_OPTIONS_TESTBARS"] = "테스트 바 만들기"
+L["STRING_OPTIONS_TEXT"] = "바 문자 설정"
+L["STRING_OPTIONS_TEXT_DESC"] = "창의 바 문자의 외형을 조정하는 옵션입니다."
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR"] = "문자 색상"
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR_DESC"] = [=[좌우 문자의 색상을 변경합니다.
+
+|cFFFFFFFF직업 색상|r이 켜져있으면 이 설정은 무시됩니다.]=]
+L["STRING_OPTIONS_TEXT_FONT"] = "문자 글꼴"
+L["STRING_OPTIONS_TEXT_FONT_DESC"] = "좌우 문자의 글꼴을 변경합니다."
+L["STRING_OPTIONS_TEXT_LCLASSCOLOR_DESC"] = "활성화하면 문자에 항상 플레이어 직업 색상을 사용합니다."
+L["STRING_OPTIONS_TEXT_LEFT_ANCHOR"] = "좌측 문자:"
+L["STRING_OPTIONS_TEXT_LOUTILINE"] = "문자 그림자"
+L["STRING_OPTIONS_TEXT_LOUTILINE_DESC"] = "좌측 문자에 외곽선을 켜거나 끕니다."
+L["STRING_OPTIONS_TEXT_LPOSITION"] = "순위 표시"
+L["STRING_OPTIONS_TEXT_LPOSITION_DESC"] = "플레이어 이름 왼쪽에 순위를 표시합니다."
+L["STRING_OPTIONS_TEXT_RIGHT_ANCHOR"] = "우측 문자:"
+L["STRING_OPTIONS_TEXT_ROUTILINE_DESC"] = "우측 문자에 외곽선을 켜거나 끕니다."
+L["STRING_OPTIONS_TEXT_ROWICONS_ANCHOR"] = "아이콘:"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET"] = "괄호"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET_DESC"] = "백분율과 초당 수치 영역을 열고 닫을 부호를 선택하세요."
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT"] = "백분율 표시"
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT_DESC"] = "백분율을 표시합니다."
+L["STRING_OPTIONS_TEXT_SHOW_PS"] = "초당 수치 표시"
+L["STRING_OPTIONS_TEXT_SHOW_PS_DESC"] = "초당 피해량과 초당 치유량을 표시합니다."
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR"] = "구분자"
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR_DESC"] = "백분율과 초당 수치를 구분할 문자를 선택하세요."
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL"] = "총량 표시"
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL_DESC"] = [=[행위자의 총량을 표시합니다.
+
+예제: 총 피해량, 총 받은 치유량.]=]
+L["STRING_OPTIONS_TEXT_SIZE"] = "문자 크기"
+L["STRING_OPTIONS_TEXT_SIZE_DESC"] = "좌측과 우측 문자의 크기를 변경합니다."
+L["STRING_OPTIONS_TEXT_TEXTUREL_ANCHOR"] = "배경:"
+L["STRING_OPTIONS_TEXT_TEXTUREU_ANCHOR"] = "모양:"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL"] = "취소"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL_TOOLTIP"] = "편집을 끝내고 코드 내 어떤 변경도 무시합니다."
+L["STRING_OPTIONS_TEXTEDITOR_COLOR_TOOLTIP"] = "글자를 선택하고 색상 버튼을 클릭해 선택한 글자의 색상을 변경합니다."
+L["STRING_OPTIONS_TEXTEDITOR_COMMA"] = "콤마"
+L["STRING_OPTIONS_TEXTEDITOR_COMMA_TOOLTIP"] = [=[숫자를 콤마로 구분하는 숫자 형식을 추가합니다.
+예제: 1000000 을 1.000.000로.]=]
+L["STRING_OPTIONS_TEXTEDITOR_DATA"] = "[Data %s]"
+L["STRING_OPTIONS_TEXTEDITOR_DATA_TOOLTIP"] = [=[데이터 입력 추가:
+
+|cFFFFFF00Data 1|r: 일반적으로 행위자나 순위의 총합량을 나타냅니다.
+
+|cFFFFFF00Data 2|r: 대부분 DPS, HPS 또는 플레이어의 이름을 나타냅니다.
+
+|cFFFFFF00Data 3|r: 행위자의 백분율, 특성 또는 진영 아이콘을 나타냅니다.]=]
+L["STRING_OPTIONS_TEXTEDITOR_DONE"] = "완료"
+L["STRING_OPTIONS_TEXTEDITOR_DONE_TOOLTIP"] = "편집을 끝내고 코드를 저장합니다."
+L["STRING_OPTIONS_TEXTEDITOR_FUNC"] = "함수"
+L["STRING_OPTIONS_TEXTEDITOR_FUNC_TOOLTIP"] = [=[빈 함수를 추가합니다.
+함수는 항상 숫자 값을 리턴합니다.]=]
+L["STRING_OPTIONS_TEXTEDITOR_RESET"] = "초기화"
+L["STRING_OPTIONS_TEXTEDITOR_RESET_TOOLTIP"] = "모든 코드를 지우고 기본 코드를 추가합니다."
+L["STRING_OPTIONS_TEXTEDITOR_TOK"] = "천 단위"
+L["STRING_OPTIONS_TEXTEDITOR_TOK_TOOLTIP"] = [=[숫자 값을 축약하는 형식의 함수를 추가합니다.
+예제: 1500000 을 1.5kk로.]=]
+L["STRING_OPTIONS_TIMEMEASURE"] = "시간 측정"
+L["STRING_OPTIONS_TIMEMEASURE_DESC"] = [=[|cFFFFFF00활동 시간|r: 각 공격대원의 타이머가 해당 공대원의 활동이 중단되면 초읽기를 중지했다가 활동 재개시 다시 초읽기에 들어갑니다. Dps와 Hps 산출의 일반적인 방법입니다.
+
+|cFFFFFF00실질 시간|r: 순위를 매길때 쓰입니다, 이 방법은 모든 공격대원의 Dps와 Hps를 산출하기 위해 측정된 전투 시간을 사용합니다.]=]
+L["STRING_OPTIONS_TOOLBAR_SETTINGS"] = "제목 바 버튼 설정"
+L["STRING_OPTIONS_TOOLBAR_SETTINGS_DESC"] = "창의 상단에 있는 메인 메뉴를 변경하는 옵션입니다."
+L["STRING_OPTIONS_TOOLBARSIDE"] = "상단 면에 제목 바 배치"
+L["STRING_OPTIONS_TOOLBARSIDE_DESC"] = [=[창의 상단에 제목 바를 배치합니다.
+
+|cFFFFFF00중요|r: 위치를 변경해도 제목 문자는 변경되지 않습니다. |cFFFFFF00제목 바: 문자|r 항목에서 더 자세한 옵션을 확인하새요..]=]
+L["STRING_OPTIONS_TOOLS_ANCHOR"] = "도구:"
+L["STRING_OPTIONS_TOOLTIP_ANCHOR"] = "설정:"
+L["STRING_OPTIONS_TOOLTIP_ANCHORTEXTS"] = "문자:"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION"] = "축약 형식"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION_DESC"] = "툴팁에 표시될 숫자 형식을 선택합니다."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH"] = "툴팁 방향"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH_DESC"] = "툴팁의 어느 방향을 기준점에 붙일 지 설정합니다."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_BORDER"] = "테두리:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_POINT"] = "기준점:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE"] = "기준점 방향"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE_DESC"] = "기준점의 어느 방향에 툴팁이 위치할 지 선택합니다."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT"] = "툴팁 기준점"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT_DESC"] = "오른쪽 클릭으로 잠급니다."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO"] = "기준점"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE"] = "기준점 위치 이동"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE_DESC"] = "기준점이 |cFFFFFF00화면에 위치|r로 설정되었을 때 기준점의 위치를 이동합니다."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_DESC"] = "툴팁을 바 위에 붙이거나 게임 화면 상의 지정한 지점에 붙입니다."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO1"] = "창의 바"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO2"] = "화면에 위치"
+L["STRING_OPTIONS_TOOLTIPS_ANCHORCOLOR"] = "제목"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR"] = "배경 색상"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR_DESC"] = "배경에 사용할 색상을 선택합니다."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_COLOR_DESC"] = "테두리 색상을 변경합니다."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_SIZE_DESC"] = "테두리 크기를 변경합니다."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_TEXTURE_DESC"] = "테두리 텍스쳐 파일을 수정합니다."
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR"] = "문자 색상"
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR_DESC"] = "툴팁 문자에 사용할 색상을 변경합니다."
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE"] = "문자 글꼴"
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE_DESC"] = "툴팁 문자에 사용할 글꼴을 선택합니다."
+L["STRING_OPTIONS_TOOLTIPS_FONTSHADOW_DESC"] = "문자에 그림자 효과를 켜거나 끕니다."
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE"] = "문자 크기"
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE_DESC"] = "툴팁 문자 크기를 키우거나 줄입니다"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER"] = "하위 메뉴 배경화면"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER_DESC"] = "활성화하면 몇몇 메뉴는 하위 메뉴에 원래의 배경화면을 사용합니다."
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE"] = "최대화 방법"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE_DESC"] = [=[툴팁에 표시되는 정보를 확장하는 방법을 선택하세요.
+
+|cFFFFFF00 제어키 누름|r: Shift, Ctrl 또는 Alt 키를 눌렀을때 툴팁 박스를 확장합니다.
+
+|cFFFFFF00 항상 최대화|r: 제한 없이 툴팁에 항상 모든 정보를 표시합니다.
+
+|cFFFFFF00 Shift 영역만|r: 기본적으로 툴팁의 첫번째 영역이 항상 확장됩니다.
+
+|cFFFFFF00 Ctrl 영역만|r: 기본적으로 두번째 영역이 항상 확장됩니다.
+
+|cFFFFFF00 Alt 영역만|r: 기본적으로 세번째 블록이 항상 확장됩니다..]=]
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE1"] = "Shift Ctrl Alt 누르기"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE2"] = "항상 최대화"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE3"] = "Shift 영역만"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE4"] = "Ctrl 영역만"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE5"] = "Alt 영역만"
+L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP"] = "메뉴 배경화면 편집"
+L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP_DESC"] = "제목 바 메뉴의 배경화면 요소를 변경합니다."
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX"] = "X 거리"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX_DESC"] = "툴팁이 기준점으로부터 수평으로 얼마나 멀리 위치할 지 정합니다."
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY"] = "Y 거리"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY_DESC"] = "툴팁이 기준점으로부터 수직으로 얼마나 멀리 위치할 지 정합니다."
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT"] = "수량 표시"
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT_DESC"] = "툴팁에 몇개의 주문과 대상, 소환수가 있는지 숫자로 표시합니다."
+L["STRING_OPTIONS_TOOLTIPS_TITLE"] = "툴팁"
+L["STRING_OPTIONS_TOOLTIPS_TITLE_DESC"] = "툴팁의 모양을 설정하는 옵션입니다."
+L["STRING_OPTIONS_TOTALBAR_ANCHOR"] = "총량 바:"
+L["STRING_OPTIONS_TRASH_SUPPRESSION"] = "일반몹 세분화 전환 방지"
+L["STRING_OPTIONS_TRASH_SUPPRESSION_DESC"] = "|cFFFFFF00우두머리를 처치한 후|r |cFFFFFF00X|r초 동안 일반몹 세분화로 자동 변경되지 않게 합니다."
+L["STRING_OPTIONS_WALLPAPER_ALPHA"] = "투명도:"
+L["STRING_OPTIONS_WALLPAPER_ANCHOR"] = "배경화면 선택:"
+L["STRING_OPTIONS_WALLPAPER_BLUE"] = "파란색:"
+L["STRING_OPTIONS_WALLPAPER_CBOTTOM"] = "자르기 (|cFFC0C0C0하단|r):"
+L["STRING_OPTIONS_WALLPAPER_CLEFT"] = "자르기 (|cFFC0C0C0좌측|r):"
+L["STRING_OPTIONS_WALLPAPER_CRIGHT"] = "자르기 (|cFFC0C0C0우측|r):"
+L["STRING_OPTIONS_WALLPAPER_CTOP"] = "자르기 (|cFFC0C0C0상단|r):"
+L["STRING_OPTIONS_WALLPAPER_FILE"] = "파일:"
+L["STRING_OPTIONS_WALLPAPER_GREEN"] = "녹색:"
+L["STRING_OPTIONS_WALLPAPER_LOAD"] = "이미지 불러오기"
+L["STRING_OPTIONS_WALLPAPER_LOAD_DESC"] = "하드 드라이브에서 배경화면으로 사용할 이미지를 선택합니다."
+L["STRING_OPTIONS_WALLPAPER_LOAD_EXCLAMATION"] = [=[이미지 파일 조건:
+
+- Truevision TGA 형식이어야 합니다. (.tga 확장자)
+- WOW/Interface/ 폴더에 있어야 합니다.
+- 크기는 반드시 256 x 256 픽셀이어야 합니다.
+- 반드시 게임이 종료된 상태에서 파일을 복사해서 넣어야 합니다.]=]
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME"] = "파일 이름:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME_DESC"] = "파일의 경로와 확장자를 제외하고 이름만 입력하세요."
+L["STRING_OPTIONS_WALLPAPER_LOAD_OKEY"] = "불러오기"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TITLE"] = "컴퓨터로부터:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT"] = "문제해결"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT_TEXT"] = [=[배경화면이 녹색으로 보일 경우:
+
+- 와우 클라이언트를 재시작합니다.
+- 이미지 파일이 너비 256 높이 256인지 확인합니다.
+- 이미지가 .TGA 형식이 맞다면 32 비트/픽셀로 저장되어 있는지 확인합니다.
+- Interface 폴더에 있는지 확인합니다. 예: C:/Program Files/World of Warcraft/Interface/]=]
+L["STRING_OPTIONS_WALLPAPER_RED"] = "붉은색:"
+L["STRING_OPTIONS_WC_ANCHOR"] = "빠른 창 제어 (#%s):"
+L["STRING_OPTIONS_WC_BOOKMARK"] = "북마크 관리"
+L["STRING_OPTIONS_WC_BOOKMARK_DESC"] = "북마크 설정 창을 엽니다."
+L["STRING_OPTIONS_WC_CLOSE"] = "닫기"
+L["STRING_OPTIONS_WC_CLOSE_DESC"] = [=[현재 편집 중인 창을 닫습니다.
+
+닫혀 있을 때 창은 비활성 상태가 되며 언제든지 창 제어 메뉴를 통해 다시 열 수 있습니다.
+
+|cFFFFFF00중요:|r 창을 완전히 제거하려면 "창: 일반" 항목으로 가세요.]=]
+L["STRING_OPTIONS_WC_CREATE"] = "창 생성"
+L["STRING_OPTIONS_WC_CREATE_DESC"] = "새 창을 만듭니다."
+L["STRING_OPTIONS_WC_LOCK"] = "잠금"
+L["STRING_OPTIONS_WC_LOCK_DESC"] = [=[창을 잠그거나 잠금해제합니다.
+
+창이 잠기면 창을 이동할 수 없습니다.]=]
+L["STRING_OPTIONS_WC_REOPEN"] = "다시 열기"
+L["STRING_OPTIONS_WC_UNLOCK"] = "잠금해제"
+L["STRING_OPTIONS_WC_UNSNAP"] = "그룹해제"
+L["STRING_OPTIONS_WC_UNSNAP_DESC"] = "창 그룹에서 이 창을 제거합니다."
+L["STRING_OPTIONS_WHEEL_SPEED"] = "휠 속도"
+L["STRING_OPTIONS_WHEEL_SPEED_DESC"] = "창에서 마우스 휠을 사용할 때 스크롤 속도를 변경합니다."
+L["STRING_OPTIONS_WINDOW"] = "옵션 창"
+L["STRING_OPTIONS_WINDOW_ANCHOR_ANCHORS"] = "기준점:"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE"] = "다수 표시 전환 무시하기"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE_DESC"] = "활성화하면 이 창은 모든 창 숨기기나 표시, 표시 전환에 영향을 받지 않습니다."
+L["STRING_OPTIONS_WINDOW_SCALE"] = "크기 비율"
+L["STRING_OPTIONS_WINDOW_SCALE_DESC"] = [=[창의 크기 비율을 조절합니다.
+
+|cFFFFFF00팁|r: 값을 입력하려면 오른쪽 클릭하세요.
+
+|cFFFFFF00현재|r: %s]=]
+L["STRING_OPTIONS_WINDOW_TITLE"] = "창 일반 설정"
+L["STRING_OPTIONS_WINDOW_TITLE_DESC"] = "선택한 창의 모양을 설정하는 옵션입니다."
+L["STRING_OPTIONS_WINDOWSPEED"] = "갱신 주기"
+L["STRING_OPTIONS_WINDOWSPEED_DESC"] = [=[갱신 주기입니다.
+
+|cFFFFFF000.05|r: 실시간으로 갱신합니다.
+
+|cFFFFFF000.3|r: 초당 3번 갱신합니다.
+
+|cFFFFFF003.0|r: 3초마다 갱신합니다.]=]
+L["STRING_OPTIONS_WP"] = "배경화면 설정"
+L["STRING_OPTIONS_WP_ALIGN"] = "위치 조정"
+L["STRING_OPTIONS_WP_ALIGN_DESC"] = [=[창에 배경화면의 위치를 조절하는 방법을 설정합니다.
+
+- |cFFFFFF00채우기|r: 자동으로 크기를 조절하고 모든 모서리에 닿도록 채웁니다.
+
+- |cFFFFFF00가운데|r: 크기를 변경하지 않고 창의 중앙을 기준으로 놓여집니다.
+
+-|cFFFFFF00늘리기|r: 자동으로 가로 또는 세로 크기를 조절해 좌-우 또는 상-하 방면으로 쏠려서 놓입니다.
+
+-|cFFFFFF00네 모서리|r: 한쪽 모서리에 맞춰 배치하며 자동으로 크기가 조절되지 않습니다.]=]
+L["STRING_OPTIONS_WP_DESC"] = "창의 배경화면을 설정하는 옵션입니다."
+L["STRING_OPTIONS_WP_EDIT"] = "이미지 편집"
+L["STRING_OPTIONS_WP_EDIT_DESC"] = "이미지 편집기를 열어 선택한 이미지의 일부 사항을 변경합니다."
+L["STRING_OPTIONS_WP_ENABLE_DESC"] = "배경화면을 표시합니다."
+L["STRING_OPTIONS_WP_GROUP"] = "이미지 종류"
+L["STRING_OPTIONS_WP_GROUP_DESC"] = "이미지 그룹을 선택합니다."
+L["STRING_OPTIONS_WP_GROUP2"] = "배경화면"
+L["STRING_OPTIONS_WP_GROUP2_DESC"] = "배경화면으로 사용 될 이미지입니다."
+L["STRING_OPTIONSMENU_AUTOMATIC"] = "창: 자동화"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE"] = "창 자동화 설정"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE_DESC"] = "자동 숨기기나 자동 전환 같은 창의 자동 동작을 제어합니다."
+L["STRING_OPTIONSMENU_COMBAT"] = "PvE PvP"
+L["STRING_OPTIONSMENU_DATACHART"] = "차트 데이터"
+L["STRING_OPTIONSMENU_DATACOLLECT"] = "데이터 수집기"
+L["STRING_OPTIONSMENU_DATAFEED"] = "데이터 제공"
+L["STRING_OPTIONSMENU_DISPLAY"] = "디스플레이"
+L["STRING_OPTIONSMENU_DISPLAY_DESC"] = "전체적인 기본 설정과 창을 조절합니다."
+L["STRING_OPTIONSMENU_LEFTMENU"] = "제목 바: 일반"
+L["STRING_OPTIONSMENU_MISC"] = "기타"
+L["STRING_OPTIONSMENU_PERFORMANCE"] = "성능 개선"
+L["STRING_OPTIONSMENU_PLUGINS"] = "플러그인 관리"
+L["STRING_OPTIONSMENU_PROFILES"] = "프로필"
+L["STRING_OPTIONSMENU_RAIDTOOLS"] = "공격대 도구"
+L["STRING_OPTIONSMENU_RIGHTMENU"] = "-- x -- x --"
+L["STRING_OPTIONSMENU_ROWMODELS"] = "바: 고급"
+L["STRING_OPTIONSMENU_ROWSETTINGS"] = "바: 일반"
+L["STRING_OPTIONSMENU_ROWTEXTS"] = "바: 문자"
+L["STRING_OPTIONSMENU_SKIN"] = "스킨 선택"
+L["STRING_OPTIONSMENU_SPELLS"] = "주문 사용자 설정"
+L["STRING_OPTIONSMENU_SPELLS_CONSOLIDATE"] = "같은 이름의 공통 주문 통합"
+L["STRING_OPTIONSMENU_TITLETEXT"] = "제목 바: 문자"
+L["STRING_OPTIONSMENU_TOOLTIP"] = "툴팁"
+L["STRING_OPTIONSMENU_WALLPAPER"] = "창: 배경화면"
+L["STRING_OPTIONSMENU_WINDOW"] = "창: 일반"
+L["STRING_OVERALL"] = "종합"
+L["STRING_OVERHEAL"] = "초과 치유"
+L["STRING_OVERHEALED"] = "초과 치유됨"
+L["STRING_PARRY"] = "무기 막기"
+L["STRING_PERCENTAGE"] = "백분율"
+L["STRING_PET"] = "소환수"
+L["STRING_PETS"] = "소환수"
+L["STRING_PLAYER_DETAILS"] = "플레이어 Details!"
+L["STRING_PLAYERS"] = "플레이어"
+L["STRING_PLEASE_WAIT"] = "기다려 주세요"
+L["STRING_PLUGIN_CLEAN"] = "없음"
+L["STRING_PLUGIN_CLOCKNAME"] = "우두머리 전투 시간"
+L["STRING_PLUGIN_CLOCKTYPE"] = "시계 형식"
+L["STRING_PLUGIN_DURABILITY"] = "내구도"
+L["STRING_PLUGIN_FPS"] = "프레임율"
+L["STRING_PLUGIN_GOLD"] = "골드"
+L["STRING_PLUGIN_LATENCY"] = "지연시간"
+L["STRING_PLUGIN_MINSEC"] = "분 & 초"
+L["STRING_PLUGIN_NAMEALREADYTAKEN"] = "이미 사용 중인 이름이 있어서 Details!가 플러그인을 설치할 수 없습니다"
+L["STRING_PLUGIN_PATTRIBUTENAME"] = "항목"
+L["STRING_PLUGIN_PDPSNAME"] = "공격대 Dps"
+L["STRING_PLUGIN_PSEGMENTNAME"] = "세분화"
+L["STRING_PLUGIN_SECONLY"] = "초만"
+L["STRING_PLUGIN_SEGMENTTYPE"] = "세분화 유형"
+L["STRING_PLUGIN_SEGMENTTYPE_1"] = "전투 #X"
+L["STRING_PLUGIN_SEGMENTTYPE_2"] = "우두머리 전투 이름"
+L["STRING_PLUGIN_SEGMENTTYPE_3"] = "세분화에 우두머리 전투 이름 추가"
+L["STRING_PLUGIN_THREATNAME"] = "나의 위협 수준"
+L["STRING_PLUGIN_TIME"] = "시계"
+L["STRING_PLUGIN_TIMEDIFF"] = "마지막 전투 비교"
+L["STRING_PLUGIN_TOOLTIP_LEFTBUTTON"] = "현재 플러그인 설정"
+L["STRING_PLUGIN_TOOLTIP_RIGHTBUTTON"] = "다른 플러그인 선택"
+L["STRING_PLUGINOPTIONS_ABBREVIATE"] = "축약"
+L["STRING_PLUGINOPTIONS_COMMA"] = "콤마"
+L["STRING_PLUGINOPTIONS_FONTFACE"] = "글꼴 선택"
+L["STRING_PLUGINOPTIONS_NOFORMAT"] = "없음"
+L["STRING_PLUGINOPTIONS_TEXTALIGN"] = "문자 정렬"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_X"] = "문자 X 정렬"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_Y"] = "문자 Y 정렬"
+L["STRING_PLUGINOPTIONS_TEXTCOLOR"] = "문자 색상"
+L["STRING_PLUGINOPTIONS_TEXTSIZE"] = "글꼴 크기"
+L["STRING_PLUGINOPTIONS_TEXTSTYLE"] = "문자 스타일"
+L["STRING_QUERY_INSPECT"] = "특성과 아이템 레벨을 요청합니다."
+L["STRING_QUERY_INSPECT_FAIL1"] = "전투 중에는 요청할 수 없습니다."
+L["STRING_QUERY_INSPECT_REFRESH"] = "새로고침 필요"
+L["STRING_RAID_WIDE"] = "[*] 공격대 단위 생존기"
+L["STRING_RAIDCHECK_PLUGIN_DESC"] = "공격대 던전에 있을 때, Details! 제목 바 위에 영약, 음식, 시작물약 사용을 보여주는 아이콘을 표시합니다."
+L["STRING_RAIDCHECK_PLUGIN_NAME"] = "공격대 확인"
+L["STRING_REPORT"] = ":"
+L["STRING_REPORT_BUTTON_TOOLTIP"] = "보고서 창을 열려면 클릭하세요"
+L["STRING_REPORT_FIGHT"] = "전투"
+L["STRING_REPORT_FIGHTS"] = "전투"
+L["STRING_REPORT_INVALIDTARGET"] = "귓속말 대상 없음"
+L["STRING_REPORT_LAST"] = "마지막"
+L["STRING_REPORT_LASTFIGHT"] = "마지막 전투"
+L["STRING_REPORT_LEFTCLICK"] = "보고서 창을 열려면 클릭하세요"
+L["STRING_REPORT_PREVIOUSFIGHTS"] = "회 이전 세분화 전투"
+L["STRING_REPORT_SINGLE_BUFFUPTIME"] = "강화 효과 유지 시간:"
+L["STRING_REPORT_SINGLE_COOLDOWN"] = "생존기 사용 :"
+L["STRING_REPORT_SINGLE_DEATH"] = "죽음:"
+L["STRING_REPORT_SINGLE_DEBUFFUPTIME"] = "약화 효과 유지 시간:"
+L["STRING_REPORT_TOOLTIP"] = "결과 보고"
+L["STRING_REPORTFRAME_COPY"] = "복사 & 붙여넣기"
+L["STRING_REPORTFRAME_CURRENT"] = "현재"
+L["STRING_REPORTFRAME_CURRENTINFO"] = "현재 보여지는 데이터만 표시합니다. (지원할때만)"
+L["STRING_REPORTFRAME_GUILD"] = "길드"
+L["STRING_REPORTFRAME_INSERTNAME"] = "플레이어 이름 입력"
+L["STRING_REPORTFRAME_LINES"] = "줄"
+L["STRING_REPORTFRAME_OFFICERS"] = "길드관리자 채널"
+L["STRING_REPORTFRAME_PARTY"] = "파티"
+L["STRING_REPORTFRAME_RAID"] = "공격대"
+L["STRING_REPORTFRAME_REVERT"] = "반대로"
+L["STRING_REPORTFRAME_REVERTED"] = "반대로"
+L["STRING_REPORTFRAME_REVERTINFO"] = "오름차순으로 전송합니다."
+L["STRING_REPORTFRAME_SAY"] = "일반 대화"
+L["STRING_REPORTFRAME_SEND"] = "전송"
+L["STRING_REPORTFRAME_WHISPER"] = "귓속말"
+L["STRING_REPORTFRAME_WHISPERTARGET"] = "대상에게 귓속말"
+L["STRING_REPORTFRAME_WINDOW_TITLE"] = "Details! 링크하기"
+L["STRING_REPORTHISTORY"] = "최근 보고 기록"
+L["STRING_RESISTED"] = "저항함"
+L["STRING_RESIZE_ALL"] = "모든 창 자유로운 크기 조절"
+L["STRING_RESIZE_COMMON"] = "크기 조절"
+L["STRING_RESIZE_HORIZONTAL"] = [=[그룹에 있는 모든 창의
+ 너비를 조절합니다]=]
+L["STRING_RESIZE_VERTICAL"] = [=[그룹에 있는 모든 창의
+ 높이를 조절합니다]=]
+L["STRING_RIGHT"] = "우측"
+L["STRING_RIGHT_TO_LEFT"] = "오른쪽에서 왼쪽으로"
+L["STRING_RIGHTCLICK_CLOSE_LARGE"] = "마우스 오른쪽 클릭으로 이 창을 닫습니다."
+L["STRING_RIGHTCLICK_CLOSE_MEDIUM"] = "오른쪽 클릭해서 이 창을 닫으세요."
+L["STRING_RIGHTCLICK_CLOSE_SHORT"] = "오른쪽 클릭으로 닫습니다."
+L["STRING_RIGHTCLICK_TYPEVALUE"] = "오른쪽 클릭으로 값 입력"
+L["STRING_SCORE_BEST"] = "|cFFFFFF00%s|r|1을;를; 기록했습니다, 이것은 최고 점수입니다, 축하합니다!"
+L["STRING_SCORE_NOTBEST"] = "|cFFFFFF00%1$s|r|1을;를; 기록했으며, 최고 점수는 %4$d 아이템 레벨로 %3$s에서 |cFFFFFF00%2$s|r입니다."
+L["STRING_SEE_BELOW"] = "아래 참고"
+L["STRING_SEGMENT"] = "세분화"
+L["STRING_SEGMENT_EMPTY"] = "이 세분화는 비었습니다"
+L["STRING_SEGMENT_END"] = "종료"
+L["STRING_SEGMENT_ENEMY"] = "적"
+L["STRING_SEGMENT_LOWER"] = "세분화"
+L["STRING_SEGMENT_OVERALL"] = "종합 데이터"
+L["STRING_SEGMENT_START"] = "시작"
+L["STRING_SEGMENT_TRASH"] = "일반몹 정리"
+L["STRING_SEGMENTS"] = "세분화"
+L["STRING_SEGMENTS_LIST_BOSS"] = "우두머리 전투"
+L["STRING_SEGMENTS_LIST_COMBATTIME"] = "전투 시간"
+L["STRING_SEGMENTS_LIST_OVERALL"] = "종합"
+L["STRING_SEGMENTS_LIST_TIMEINCOMBAT"] = "전투 참여 시간"
+L["STRING_SEGMENTS_LIST_TOTALTIME"] = "전체 시간"
+L["STRING_SEGMENTS_LIST_TRASH"] = "일반몹"
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_WASTED_TIME"] = ""--]]
+L["STRING_SHIELD_HEAL"] = "막음"
+L["STRING_SHIELD_OVERHEAL"] = "낭비됨"
+L["STRING_SHORTCUT_RIGHTCLICK"] = "오른쪽 클릭으로 닫기"
+L["STRING_SLASH_API_DESC"] = "플러그인, 사용자 설정 디스플레이, 오라 등을 만드는 API 창을 엽니다."
+L["STRING_SLASH_CAPTURE_DESC"] = "모든 데이터 수집을 켜거나 끕니다."
+L["STRING_SLASH_CAPTUREOFF"] = "모든 수집 중지."
+L["STRING_SLASH_CAPTUREON"] = "모든 수집 기능이 켜졌습니다."
+L["STRING_SLASH_CHANGES"] = "updates"
+L["STRING_SLASH_CHANGES_ALIAS1"] = "news"
+L["STRING_SLASH_CHANGES_ALIAS2"] = "changes"
+L["STRING_SLASH_CHANGES_DESC"] = "Details!에 새로 추가된 사항과 변경점을 보여줍니다."
+L["STRING_SLASH_DISABLE"] = "disable"
+L["STRING_SLASH_ENABLE"] = "enable"
+L["STRING_SLASH_HIDE"] = "hide"
+L["STRING_SLASH_HIDE_ALIAS1"] = "close"
+L["STRING_SLASH_HISTORY"] = "history"
+L["STRING_SLASH_NEW"] = "new"
+L["STRING_SLASH_NEW_DESC"] = "새 창을 만듭니다."
+L["STRING_SLASH_OPTIONS"] = "options"
+L["STRING_SLASH_OPTIONS_DESC"] = "옵션 창을 엽니다."
+L["STRING_SLASH_RESET"] = "reset"
+L["STRING_SLASH_RESET_ALIAS1"] = "clear"
+L["STRING_SLASH_RESET_DESC"] = "모든 세분화 초기화"
+L["STRING_SLASH_SHOW"] = "show"
+L["STRING_SLASH_SHOW_ALIAS1"] = "open"
+L["STRING_SLASH_SHOWHIDETOGGLE_DESC"] = "<창 번호>를 지정하지 않으면 모든 창에 적용합니다."
+L["STRING_SLASH_TOGGLE"] = "toggle"
+L["STRING_SLASH_WIPE"] = "wipe"
+L["STRING_SLASH_WIPECONFIG"] = "reinstall"
+L["STRING_SLASH_WIPECONFIG_CONFIRM"] = "클릭하면 재설치를 진행합니다"
+L["STRING_SLASH_WIPECONFIG_DESC"] = "모든 설정을 기본값으로 돌립니다, Details!가 제대로 작동하지 않을 때 사용하세요."
+L["STRING_SLASH_WORLDBOSS"] = "worldboss"
+L["STRING_SLASH_WORLDBOSS_DESC"] = "이번 주에 처치한 우두머리를 보여주는 매크로를 실행합니다."
+L["STRING_SPELL_INTERRUPTED"] = "시전 방해된 주문"
+L["STRING_SPELLLIST"] = "주문 목록"
+L["STRING_SPELLS"] = "주문"
+L["STRING_SPIRIT_LINK_TOTEM"] = "생명력 교환"
+L["STRING_SPIRIT_LINK_TOTEM_DESC"] = [=[토템 범위 안의 플레이어들 간에
+교환한 생명력의 양입니다.
+
+이 치유는 플레이어의 전체 치유량에
+합산되지 않습니다.]=]
+L["STRING_STATISTICS"] = "통계"
+L["STRING_STATUSBAR_NOOPTIONS"] = "이 위젯은 옵션이 없습니다."
+L["STRING_SWITCH_CLICKME"] = "북마크 추가"
+L["STRING_SWITCH_SELECTMSG"] = "북마크 #%d의 디스플레이를 선택하세요."
+L["STRING_SWITCH_TO"] = "전환"
+L["STRING_SWITCH_WARNING"] = "역할 바뀜. 변경: |cFFFFAA00%s|r"
+L["STRING_TARGET"] = "대상"
+L["STRING_TARGETS"] = "대상"
+L["STRING_TARGETS_OTHER1"] = "소환수와 다른 대상들"
+L["STRING_TEXTURE"] = "텍스쳐"
+L["STRING_TIME_OF_DEATH"] = "죽음"
+L["STRING_TOOOLD"] = "Details! 버전이 너무 오래되어 설치할 수 없습니다."
+L["STRING_TOP"] = "상단"
+L["STRING_TOP_TO_BOTTOM"] = "위에서 아래"
+L["STRING_TOTAL"] = "총량"
+L["STRING_TRANSLATE_LANGUAGE"] = "Details의 번역을 도와주세요!"
+L["STRING_TUTORIAL_FULLY_DELETE_WINDOW"] = [=[창을 닫았지만 언제든 다시 열수 있습니다.
+창을 완전히 삭제하려면 옵션 -> 창: 일반 -> 삭제 항목을 찾아보세요.]=]
+L["STRING_TUTORIAL_OVERALL1"] = "옵션 창 > PvE/PvP에서 종합 데이터 설정"
+L["STRING_UNKNOW"] = "알 수 없음"
+L["STRING_UNKNOWSPELL"] = "알 수 없는 주문"
+L["STRING_UNLOCK"] = [=[이 버튼으로
+창 그룹 해제]=]
+L["STRING_UNLOCK_WINDOW"] = "잠금해제"
+L["STRING_UPTADING"] = "갱신 중"
+L["STRING_VERSION_AVAILABLE"] = "Twitch App 또는 Curse 웹 사이트에서 새로운 버전을 다운로드 할 수 있습니다."
+L["STRING_VERSION_UPDATE"] = "새 버전: 변경 내용을 보려면 클릭하세요"
+L["STRING_VOIDZONE_TOOLTIP"] = "피해와 시간"
+L["STRING_WAITPLUGIN"] = [=[플러그인
+대기중]=]
+L["STRING_WAVE"] = "웨이브"
+L["STRING_WELCOME_1"] = [=[|cFFFFFFFFDetails! 빠른 구성 마법사에 오신 것을 환영합니다
+
+|r이 안내는 몇가지 중요한 설정을 도와줍니다.
+'건너뛰기' 버튼을 클릭해서 언제든지 건너뛸 수 있습니다.]=]
+L["STRING_WELCOME_11"] = "나중에 옵션 창을 통해 언제든 다시 수정할 수 있습니다"
+L["STRING_WELCOME_12"] = "창이 갱신될 속도를 선택하세요, 또한 애니메이션과 Hps, Dps 숫자의 실시간 갱신도 활성화할 수 있습니다."
+L["STRING_WELCOME_13"] = ""
+L["STRING_WELCOME_14"] = "갱신 속도"
+L["STRING_WELCOME_15"] = [=[초 단위의 창의 갱신 주기입니다.
+
+|cffffff00중요|r: 유튜브 영상 제작자나 스트리밍 방송을 하는 사용자는 시청자의 엔터테인먼트를 위해 |cFFFF55000.05|r 사용을 권장합니다.]=]
+L["STRING_WELCOME_16"] = "애니메이션 효과 사용"
+L["STRING_WELCOME_17"] = [=[활성화하면 모든 바에 왼쪽과 오른쪽으로 움직이는 애니메이션 효과를 줍니다.
+
+|cffffff00중요|r: 유튜브 영상 제작자나 스트리밍 방송을 하는 사용자는 시청자의 엔터테인먼트를 증가시키기 위해 활성화를 추천합니다.]=]
+L["STRING_WELCOME_2"] = "나중에 옵션 창을 통해 언제든 다시 수정할 수 있습니다"
+L["STRING_WELCOME_26"] = "인터페이스 사용하기: 늘리기"
+L["STRING_WELCOME_27"] = [=[강조된 버튼이 늘리기 버튼입니다. |cFFFFFF00클릭|r 하고 |cFFFFFF00위로 끄세요!|r.
+
+
+창이 잠겨 있으면 제목 바 전체가 늘리기 버튼이 됩니다.]=]
+L["STRING_WELCOME_28"] = "인터페이스 사용하기: 창 제어"
+L["STRING_WELCOME_29"] = [=[창 제어는 기본적으로 2가지 기능을 합니다:
+
+- |cFFFFFF00새 창|r을 엽니다.
+- |cFFFFFF00닫혀있는 창|r의 메뉴가 있어서 언제든 다시 열 수 있습니다.]=]
+L["STRING_WELCOME_3"] = "선호하는 DPS와 HPS 산출법을 선택하세요:"
+L["STRING_WELCOME_30"] = "인터페이스 사용하기: 북마크"
+L["STRING_WELCOME_31"] = [=[창의 아무 곳이나 |cFFFFFF00오른쪽 클릭|r하면 |cFFFFAA00북마크|r 창이 나옵니다.
+
+|cFFFFFF00다시 오른쪽 클릭|r 하여 창을 닫거나 아이콘을 클릭하여 다른 디스플레이를 선택합니다.
+
+|TInterface\AddOns\Details\images\key_shift:14:30:0:0:64:64:0:64:0:40|t + 오른쪽 클릭으로 북마크 대신 세분화를 엽니다.
+
+|TInterface\AddOns\Details\images\key_ctrl:14:30:0:0:64:64:0:64:0:40|t + 오른쪽 클릭으로 창을 닫습니다.]=]
+L["STRING_WELCOME_32"] = "인터페이스 사용하기: 창 그룹"
+L["STRING_WELCOME_34"] = "인터페이스 사용하기: 툴팁 확장"
+L["STRING_WELCOME_36"] = "인터페이스 사용하기: 플러그인"
+L["STRING_WELCOME_38"] = "공격대 준비 완료!"
+L["STRING_WELCOME_39"] = [=[Details!를 선택해주셔서 감사합니다
+
+언제든지 피드백과 버그 보고를 우리에게 보내주세요.
+
+
+ |cFFFFAA00/details feedback|r]=]
+L["STRING_WELCOME_4"] = "활동 시간:"
+L["STRING_WELCOME_41"] = "인터페이스 엔터테인먼트 개선:"
+L["STRING_WELCOME_42"] = "빠른 외형 설정"
+L["STRING_WELCOME_43"] = "선호하는 스킨 선택:"
+L["STRING_WELCOME_44"] = "배경화면"
+L["STRING_WELCOME_45"] = "그 밖의 사용자 정의 설정을 하려면 옵션 창을 확인하세요."
+L["STRING_WELCOME_46"] = "설정 가져오기"
+L["STRING_WELCOME_5"] = "실질 시간:"
+L["STRING_WELCOME_57"] = [=[애드온에서 이미 설치된 기본 설정들을 가져옵니다.
+
+각 스킨은 가져온 설정과 다르게 반응합니다.]=]
+L["STRING_WELCOME_58"] = [=[모양 구성의 미리 설정된 셋트입니다.
+
+|cFFFFFF00중요|r: 모든 설정들은 나중에 옵션 창에서 수정할 수 있습니다.]=]
+L["STRING_WELCOME_59"] = "배경화면을 사용합니다."
+L["STRING_WELCOME_6"] = "각 공격대원의 타이머가 해당 공격대원의 활동이 중단되면 데이터 산출을 중지했다가 활동 재개 시 다시 데이터 산출을 재개합니다."
+L["STRING_WELCOME_60"] = "별명과 아바타"
+L["STRING_WELCOME_61"] = "아바타는 툴팁 위쪽과 플레이어 상세 내역 창에 표시됩니다."
+L["STRING_WELCOME_62"] = "이것은 Details!를 사용하는 다른 길드원들에게 보내집니다. 별명은 당신의 캐릭터 이름을 대체합니다."
+L["STRING_WELCOME_63"] = "실시간 DPS/HPS 갱신"
+L["STRING_WELCOME_64"] = [=[활성화하면 DPS와 HPS 숫자가 창의 다음 갱신 시점까지 기다리지 않고 아주 빠르게 갱신됩니다.
+
+|cffffff00중요|r: 유튜브 영상 제작자나 스트리밍 방송을 하는 사용자는 시청자의 엔터테인먼트를 위해 활성화를 추천합니다.]=]
+L["STRING_WELCOME_65"] = "오른쪽 버튼을 누르세요!"
+L["STRING_WELCOME_66"] = [=[그룹을 만들려면 창을 다른 창에 드래그하세요.
+
+그룹화 된 창은 같이 늘어나고 크기가 조절됩니다.
+
+또한 그들은 커플로써 더 행복해질거에요.]=]
+L["STRING_WELCOME_67"] = [=[Shift를 누르면 플레이어의 툴팁이 확장되어 모든 주문이 표시됩니다.
+
+Ctrl은 대상의 툴팁이며 Alt는 소환수 툴팁입니다.]=]
+L["STRING_WELCOME_68"] = [=[Details!가 '플러그인'이란
+역병에 감염되었습니다.
+
+그들은 어디에나 있으며
+많은 기능으로 당신을 돕습니다.
+
+예: 위협수준 미터기, dps 분석, 전투 내역 요약, 차트 생성 등.]=]
+L["STRING_WELCOME_69"] = "건너뛰기"
+L["STRING_WELCOME_7"] = "순위를 매길때 쓰입니다, 이 방법은 모든 공격대원의 Dps와 Hps를 산출하기 위해 진행된 전투 시간을 사용합니다."
+L["STRING_WELCOME_70"] = "제목 바 설정"
+L["STRING_WELCOME_71"] = "바 설정"
+L["STRING_WELCOME_72"] = "창 설정"
+L["STRING_WELCOME_73"] = "알파벳 또는 지역 선택:"
+L["STRING_WELCOME_74"] = "라틴 알파벳"
+L["STRING_WELCOME_75"] = "키릴문자 알파벳"
+L["STRING_WELCOME_76"] = "중국"
+L["STRING_WELCOME_77"] = "한국"
+L["STRING_WELCOME_78"] = "대만"
+L["STRING_WELCOME_79"] = "두번째 창 만들기"
+L["STRING_WINDOW_NOTFOUND"] = "창을 찾을 수 없습니다."
+L["STRING_WINDOW_NUMBER"] = "창 번호"
+L["STRING_WINDOW1ATACH_DESC"] = "창 그룹을 만들려면 창 #2를 창 #1 가까이 드래그하세요."
+L["STRING_WIPE_ALERT"] = "공격대장 요청: 전멸하세요!"
+L["STRING_WIPE_ERROR1"] = "이미 전멸 신호를 보냈습니다."
+L["STRING_WIPE_ERROR2"] = "공격대 우두머리 전투 중이 아닙니다."
+L["STRING_WIPE_ERROR3"] = "우두머리 전투를 끝낼 수 없습니다."
+L["STRING_YES"] = "네"
+
diff --git a/locales/Details-ptBR.lua b/locales/Details-ptBR.lua
index 898ef332..dbab8834 100644
--- a/locales/Details-ptBR.lua
+++ b/locales/Details-ptBR.lua
@@ -1,7 +1,1675 @@
local L = LibStub("AceLocale-3.0"):NewLocale("Details", "ptBR")
if not L then return end
-@localization(locale="ptBR", format="lua_additive_table")@
+L["ABILITY_ID"] = "id da habilidade"
+L["STRING_"] = ""
+L["STRING_ABSORBED"] = "Absorvido"
+L["STRING_ACTORFRAME_NOTHING"] = "oops, não há nada para reportar :("
+L["STRING_ACTORFRAME_REPORTAT"] = "em"
+L["STRING_ACTORFRAME_REPORTOF"] = "de"
+L["STRING_ACTORFRAME_REPORTTARGETS"] = "relatório para os alvos de"
+L["STRING_ACTORFRAME_REPORTTO"] = "relatório para"
+L["STRING_ACTORFRAME_SPELLDETAILS"] = "detalhes da habilidade"
+L["STRING_ACTORFRAME_SPELLSOF"] = "Habilidades de"
+L["STRING_ACTORFRAME_SPELLUSED"] = "Todas as habilidades usadas"
+L["STRING_AGAINST"] = "contra"
+L["STRING_ALIVE"] = "Vivo"
+L["STRING_ALPHA"] = "Transparência"
+L["STRING_ANCHOR_BOTTOM"] = "Em Baixo"
+L["STRING_ANCHOR_BOTTOMLEFT"] = "Em Baixo a Esquerda"
+L["STRING_ANCHOR_BOTTOMRIGHT"] = "Em Baixo a Direita"
+L["STRING_ANCHOR_LEFT"] = "Esquerda"
+L["STRING_ANCHOR_RIGHT"] = "Direita"
+L["STRING_ANCHOR_TOP"] = "Em Cima"
+L["STRING_ANCHOR_TOPLEFT"] = "Em Cima a Esquerda"
+L["STRING_ANCHOR_TOPRIGHT"] = "Em Cima a Direita"
+L["STRING_ASCENDING"] = "Crescente"
+L["STRING_ATACH_DESC"] = "Janela #%d faz grupo com a janela #%d."
+L["STRING_ATTRIBUTE_CUSTOM"] = "Customizados"
+L["STRING_ATTRIBUTE_DAMAGE"] = "Dano"
+L["STRING_ATTRIBUTE_DAMAGE_BYSPELL"] = "Dano Recebido por Habilidade"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS"] = "Auras & Voidzones"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS_REPORT"] = "Dano e Tempo de Atividade da Aura"
+L["STRING_ATTRIBUTE_DAMAGE_DONE"] = "Dano Feito"
+L["STRING_ATTRIBUTE_DAMAGE_DPS"] = "Dano por Segundo"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES"] = "Dano Recebido de Inimigos"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES_DONE"] = "Dano Feito pelo Inimigo"
+L["STRING_ATTRIBUTE_DAMAGE_FRAGS"] = "Abates"
+L["STRING_ATTRIBUTE_DAMAGE_FRIENDLYFIRE"] = "Fogo Amigo"
+L["STRING_ATTRIBUTE_DAMAGE_TAKEN"] = "Dano Recebido"
+L["STRING_ATTRIBUTE_ENERGY"] = "Recursos"
+L["STRING_ATTRIBUTE_ENERGY_ALTERNATEPOWER"] = "Poder Alternativo."
+L["STRING_ATTRIBUTE_ENERGY_ENERGY"] = "Energia Gerada"
+L["STRING_ATTRIBUTE_ENERGY_MANA"] = "Mana Restaurada"
+L["STRING_ATTRIBUTE_ENERGY_RAGE"] = "Raiva Gerada"
+L["STRING_ATTRIBUTE_ENERGY_RESOURCES"] = "Outros Recursos"
+L["STRING_ATTRIBUTE_ENERGY_RUNEPOWER"] = "Poder Rúnico Gerado"
+L["STRING_ATTRIBUTE_HEAL"] = "Cura"
+L["STRING_ATTRIBUTE_HEAL_ABSORBED"] = "Cura Absorvida."
+L["STRING_ATTRIBUTE_HEAL_DONE"] = "Cura Feita"
+L["STRING_ATTRIBUTE_HEAL_ENEMY"] = "Cura Feita por Inimigos"
+L["STRING_ATTRIBUTE_HEAL_HPS"] = "Cura Por Segundo"
+L["STRING_ATTRIBUTE_HEAL_OVERHEAL"] = "Sobrecura"
+L["STRING_ATTRIBUTE_HEAL_PREVENT"] = "Dano Prevenido"
+L["STRING_ATTRIBUTE_HEAL_TAKEN"] = "Cura Recebida"
+L["STRING_ATTRIBUTE_MISC"] = "Diversos"
+L["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"] = "Tempo Ativo: Buff"
+L["STRING_ATTRIBUTE_MISC_CCBREAK"] = "Quebras de CC"
+L["STRING_ATTRIBUTE_MISC_DEAD"] = "Mortes"
+L["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"] = "Tempo Ativo: Debuff"
+L["STRING_ATTRIBUTE_MISC_DEFENSIVE_COOLDOWNS"] = "Cooldowns"
+L["STRING_ATTRIBUTE_MISC_DISPELL"] = "Dissipados"
+L["STRING_ATTRIBUTE_MISC_INTERRUPT"] = "Interrupções"
+L["STRING_ATTRIBUTE_MISC_RESS"] = "Revividos"
+L["STRING_AUTO"] = "auto"
+L["STRING_AUTOSHOT"] = "Tiro Automático"
+L["STRING_AVERAGE"] = "Média"
+L["STRING_BLOCKED"] = "Bloqueado"
+L["STRING_BOTTOM"] = "baixo"
+L["STRING_BOTTOM_TO_TOP"] = "De Baixo Para Cima"
+L["STRING_CAST"] = "Conjurada"
+L["STRING_CAUGHT"] = "pega"
+L["STRING_CCBROKE"] = "CC Quebrados"
+L["STRING_CENTER"] = "centro"
+L["STRING_CENTER_UPPER"] = "Centro"
+L["STRING_CHANGED_TO_CURRENT"] = "Segmento Trocado: |cFFFFFF00Atual|r"
+L["STRING_CHANNEL_PRINT"] = "Observador"
+L["STRING_CHANNEL_RAID"] = "Raide"
+L["STRING_CHANNEL_SAY"] = "Dizer"
+L["STRING_CHANNEL_WHISPER"] = "Sussurrar"
+L["STRING_CHANNEL_WHISPER_TARGET_COOLDOWN"] = "Sussurrar o Alvo"
+L["STRING_CHANNEL_YELL"] = "Gritar"
+L["STRING_CLICK_REPORT_LINE1"] = "|cFFFFCC22Clique|r: |cFFFFEE00reportar|r"
+L["STRING_CLICK_REPORT_LINE2"] = "|cFFFFCC22Shift+Clique|r: |cFFFFEE00modo janela|r"
+L["STRING_CLOSEALL"] = "Todas as janelas estão fechadas, digite '/details show' para reabri-las."
+L["STRING_COLOR"] = "Cor"
+L["STRING_COMMAND_LIST"] = "lista de comandos"
+L["STRING_COOLTIP_NOOPTIONS"] = "não há opções"
+L["STRING_CREATEAURA"] = "Criar Aura"
+L["STRING_CRITICAL_HITS"] = "Golpes Críticos"
+L["STRING_CRITICAL_ONLY"] = "critico"
+L["STRING_CURRENT"] = "Atual"
+L["STRING_CURRENTFIGHT"] = "Luta Atual"
+L["STRING_CUSTOM_ACTIVITY_ALL"] = "Tempo em Atividade"
+L["STRING_CUSTOM_ACTIVITY_ALL_DESC"] = "Mostra o tempo em atividade de cada membro no grupo de raide."
+L["STRING_CUSTOM_ACTIVITY_DPS"] = "Tempo de Atividade: Dano"
+L["STRING_CUSTOM_ACTIVITY_DPS_DESC"] = "Mostra quanto tempo cada jogador está gastando aplicando dano."
+L["STRING_CUSTOM_ACTIVITY_HPS"] = "Tempo de Atividade: Cura"
+L["STRING_CUSTOM_ACTIVITY_HPS_DESC"] = "Mostra quanto tempo cada jogador está gastando aplicando cura."
+L["STRING_CUSTOM_ATTRIBUTE_DAMAGE"] = "Dano"
+L["STRING_CUSTOM_ATTRIBUTE_HEAL"] = "Cura"
+L["STRING_CUSTOM_ATTRIBUTE_SCRIPT"] = "Script Customizado"
+L["STRING_CUSTOM_AUTHOR"] = "Autor:"
+L["STRING_CUSTOM_AUTHOR_DESC"] = "Quem criou este display."
+L["STRING_CUSTOM_CANCEL"] = "Cancelar"
+L["STRING_CUSTOM_CC_DONE"] = "Controle de Grupo Feito"
+L["STRING_CUSTOM_CC_RECEIVED"] = "Controle de Grupo Recebido"
+L["STRING_CUSTOM_CREATE"] = "Criar"
+L["STRING_CUSTOM_CREATED"] = "O novo display foi criado com sucesso."
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET"] = "Dano em Outros Alvos Marcados"
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET_DESC"] = "Mostra o dano causado em alvos marcados com outras marcas."
+L["STRING_CUSTOM_DAMAGEONSHIELDS"] = "Danos em Escudos"
+L["STRING_CUSTOM_DAMAGEONSKULL"] = "Dano no Alvo com Caveira"
+L["STRING_CUSTOM_DAMAGEONSKULL_DESC"] = "Mostra o dano causado em alvos marcados com caveira."
+L["STRING_CUSTOM_DESCRIPTION"] = "Descrição:"
+L["STRING_CUSTOM_DESCRIPTION_DESC"] = "Descrição do que este display faz."
+L["STRING_CUSTOM_DONE"] = "Feito"
+L["STRING_CUSTOM_DTBS"] = "Dano Recebido por Habilidade"
+L["STRING_CUSTOM_DTBS_DESC"] = "Mostra o dano das habilidades dos inimigos contra seu grupo."
+L["STRING_CUSTOM_DYNAMICOVERAL"] = "Dano Dinâmico Geral"
+L["STRING_CUSTOM_EDIT"] = "Editar"
+L["STRING_CUSTOM_EDIT_SEARCH_CODE"] = "Editar Código de Busca"
+L["STRING_CUSTOM_EDIT_TOOLTIP_CODE"] = "Editar Código do Tooltip"
+L["STRING_CUSTOM_EDITCODE_DESC"] = "Esta é uma função avançada aonde o usuário pode criar seu próprio código de display."
+L["STRING_CUSTOM_EDITTOOLTIP_DESC"] = "Este é o código do tooltip, é executado quando o usuário passa o mouse sobre uma barra."
+L["STRING_CUSTOM_ENEMY_DT"] = "Dano Recebido"
+L["STRING_CUSTOM_EXPORT"] = "Exportar"
+L["STRING_CUSTOM_FUNC_INVALID"] = "O script customizado é inválido e não foi possível atualizar a janela"
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT"] = "Pedra e Poção de Vida"
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT_DESC"] = "Mostra quem no seu grupo de raide usou a Pedra ou Poção da Vida."
+L["STRING_CUSTOM_ICON"] = "Icone:"
+L["STRING_CUSTOM_IMPORT"] = "Importar"
+L["STRING_CUSTOM_IMPORT_ALERT"] = "Display carregado, clique em importar para confirmar."
+L["STRING_CUSTOM_IMPORT_BUTTON"] = "Importar"
+L["STRING_CUSTOM_IMPORT_ERROR"] = "Falha ao importar, a linha é inválida."
+L["STRING_CUSTOM_IMPORTED"] = "O display foi importado com sucesso."
+L["STRING_CUSTOM_LONGNAME"] = "O nome está muito longo, o limite é 32 letras."
+L["STRING_CUSTOM_MYSPELLS"] = "Minhas Habilidades"
+L["STRING_CUSTOM_MYSPELLS_DESC"] = "Mostra na janela as magias de dano usadas por você."
+L["STRING_CUSTOM_NAME"] = "Nome:"
+L["STRING_CUSTOM_NAME_DESC"] = "Insira o nome do novo display."
+L["STRING_CUSTOM_NEW"] = "Gerenciar Displays Customizados"
+L["STRING_CUSTOM_PASTE"] = "Cole aqui:"
+L["STRING_CUSTOM_POT_DEFAULT"] = "Poções Usadas"
+L["STRING_CUSTOM_POT_DEFAULT_DESC"] = "Mostra quem na sua raide usou poções durante a luta."
+L["STRING_CUSTOM_REMOVE"] = "Remover"
+L["STRING_CUSTOM_REPORT"] = "(custom)"
+L["STRING_CUSTOM_SAVE"] = "Salvar Alterações"
+L["STRING_CUSTOM_SAVED"] = "O display foi salvo."
+L["STRING_CUSTOM_SHORTNAME"] = "O nome precisa ter no mínimo 5 letras."
+L["STRING_CUSTOM_SKIN_TEXTURE"] = "Arquivo de Aparência Personalizado"
+L["STRING_CUSTOM_SKIN_TEXTURE_DESC"] = [=[Nome do arquivo .tga
+
+Precisa estar dentro da pasta:
+
+|cFFFFFF00WoW/Interface/|r
+
+|cFFFFFF00Importante:|r antes de criar o arquivo, feche o jogo. Após isto, um simples /reload aplica as alterações feitas no arquivo de textura.]=]
+L["STRING_CUSTOM_SOURCE"] = "Fonte:"
+L["STRING_CUSTOM_SOURCE_DESC"] = [=[Quem está causando este efeito.
+
+O botão na direita mostra uma lista pré-definida com vários npcs.]=]
+L["STRING_CUSTOM_SPELLID"] = "Id da Habilidade:"
+L["STRING_CUSTOM_SPELLID_DESC"] = [=[Opcional, é a habilidade que esta causando o efeito no alvo.
+
+O botão na direita mostra uma lista de magias.]=]
+L["STRING_CUSTOM_TARGET"] = "Alvo:"
+L["STRING_CUSTOM_TARGET_DESC"] = [=[Este é o alvo aonde a Fonte esta causando o efeito.
+
+O botão na direita mostra uma lista pré-definida com npcs.]=]
+L["STRING_CUSTOM_TEMPORARILY"] = " (|cFFFFC000temporário|r)"
+L["STRING_DAMAGE"] = "Dano"
+L["STRING_DAMAGE_DPS_IN"] = "DPS recebido de"
+L["STRING_DAMAGE_FROM"] = "Recebeu dano de"
+L["STRING_DAMAGE_TAKEN_FROM"] = "Dano Recebido Vindo De"
+L["STRING_DAMAGE_TAKEN_FROM2"] = "aplicou dano com"
+L["STRING_DEFENSES"] = "Defesas"
+L["STRING_DESCENDING"] = "Decrescente,"
+L["STRING_DETACH_DESC"] = "Desagrupar Janelas"
+L["STRING_DISCARD"] = "Descartar"
+L["STRING_DISPELLED"] = "Auras Removidas"
+L["STRING_DODGE"] = "Desvio"
+L["STRING_DOT"] = " (DoT)"
+L["STRING_DPS"] = "Dps"
+L["STRING_EMPTY_SEGMENT"] = "Segmento Vazio"
+L["STRING_ENABLED"] = "Ativado,"
+L["STRING_ENVIRONMENTAL_DROWNING"] = "Ambiente (Afogar)"
+L["STRING_ENVIRONMENTAL_FALLING"] = "Ambiente (Queda)"
+L["STRING_ENVIRONMENTAL_FATIGUE"] = "Ambiente (Fadiga)"
+L["STRING_ENVIRONMENTAL_FIRE"] = "Ambiente (Fogo)"
+L["STRING_ENVIRONMENTAL_LAVA"] = "Ambiente (Lava)"
+L["STRING_ENVIRONMENTAL_SLIME"] = "Ambiente (Ácido)"
+L["STRING_EQUILIZING"] = "Compartilhando dados"
+L["STRING_ERASE"] = "apagar"
+L["STRING_ERASE_DATA"] = "Apagar Todos os Dados"
+L["STRING_ERASE_DATA_OVERALL"] = "Apagar Apenas os Dados Gerais"
+L["STRING_ERASE_IN_COMBAT"] = "Limpeza dos dados será efetuada após o combate."
+L["STRING_EXAMPLE"] = "Exemplo."
+L["STRING_EXPLOSION"] = "explosão"
+L["STRING_FAIL_ATTACKS"] = "Falhas de Ataque"
+L["STRING_FEEDBACK_CURSE_DESC"] = "Abra uma ocorrência ou deixe uma mensagem na página do Details!"
+L["STRING_FEEDBACK_MMOC_DESC"] = "Poste em nosso tópico no fórum do mmo-champion"
+L["STRING_FEEDBACK_PREFERED_SITE"] = "Escolha seu site preferido de comunidade:"
+L["STRING_FEEDBACK_SEND_FEEDBACK"] = "Enviar Comentários"
+L["STRING_FEEDBACK_WOWI_DESC"] = "Deixe um comentário na página do projeto Details!."
+L["STRING_FIGHTNUMBER"] = "Luta #"
+L["STRING_FORGE_BUTTON_ALLSPELLS"] = "Todas as Habilidades"
+L["STRING_FORGE_BUTTON_ALLSPELLS_DESC"] = "Listar todas as habilidades dos jogadores e NPCs."
+L["STRING_FORGE_BUTTON_BWTIMERS"] = "Temporizadores BigWigs"
+L["STRING_FORGE_BUTTON_BWTIMERS_DESC"] = "Listar contadores do BigWigs"
+L["STRING_FORGE_BUTTON_DBMTIMERS"] = "Contadores DBM"
+L["STRING_FORGE_BUTTON_DBMTIMERS_DESC"] = "Listar contadores do Deadly Boss Mods"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS"] = "Habilidades do Chefe"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS_DESC"] = "Listar apenas habilidades de encontros em masmorras e raids."
+L["STRING_FORGE_BUTTON_ENEMIES"] = "Inimigos"
+L["STRING_FORGE_BUTTON_ENEMIES_DESC"] = "Listar inimigos do combate atual."
+L["STRING_FORGE_BUTTON_PETS"] = "Pets"
+L["STRING_FORGE_BUTTON_PETS_DESC"] = "Listar pets do combate atual."
+L["STRING_FORGE_BUTTON_PLAYERS"] = "Jogadores"
+L["STRING_FORGE_BUTTON_PLAYERS_DESC"] = "Listar jogadores do combate atual."
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_ENABLEPLUGINS"] = ""--]]
+L["STRING_FORGE_FILTER_BARTEXT"] = "Nome da barra"
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_CASTERNAME"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_FILTER_ENCOUNTERNAME"] = ""--]]
+L["STRING_FORGE_FILTER_ENEMYNAME"] = "Nome do inimigo"
+L["STRING_FORGE_FILTER_OWNERNAME"] = "Nome do proprietário"
+L["STRING_FORGE_FILTER_PETNAME"] = "Nome do pet"
+L["STRING_FORGE_FILTER_PLAYERNAME"] = "Nome do jogador"
+L["STRING_FORGE_FILTER_SPELLNAME"] = "Nome da magia"
+L["STRING_FORGE_HEADER_BARTEXT"] = "Barra de texto"
+L["STRING_FORGE_HEADER_CASTER"] = "Lançador"
+L["STRING_FORGE_HEADER_CLASS"] = "Classe"
+L["STRING_FORGE_HEADER_CREATEAURA"] = "Criar Aura"
+L["STRING_FORGE_HEADER_ENCOUNTERID"] = "ID do encontro"
+L["STRING_FORGE_HEADER_ENCOUNTERNAME"] = "Nome do encontro"
+L["STRING_FORGE_HEADER_EVENT"] = "Evento"
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_FLAG"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_HEADER_GUID"] = ""--]]
+L["STRING_FORGE_HEADER_ICON"] = "Ícone"
+L["STRING_FORGE_HEADER_ID"] = "ID"
+L["STRING_FORGE_HEADER_INDEX"] = "índice"
+L["STRING_FORGE_HEADER_NAME"] = "Nome"
+L["STRING_FORGE_HEADER_NPCID"] = "ID do Npc"
+L["STRING_FORGE_HEADER_OWNER"] = "Dono"
+L["STRING_FORGE_HEADER_SCHOOL"] = "Escola"
+L["STRING_FORGE_HEADER_SPELLID"] = "ID da magia"
+L["STRING_FORGE_HEADER_TIMER"] = "Cronômetro"
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_DESC"] = ""--]]
+L["STRING_FORGE_TUTORIAL_TITLE"] = "Bem vindo ao Details! Forge"
+--[[Translation missing --]]
+--[[ L["STRING_FORGE_TUTORIAL_VIDEO"] = ""--]]
+L["STRING_FREEZE"] = "Este segmento não está disponível no momento"
+L["STRING_FROM"] = "Fonte"
+L["STRING_GERAL"] = "Geral"
+L["STRING_GLANCING"] = "Glancing"
+L["STRING_GUILDDAMAGERANK_BOSS"] = "Chefe"
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_DATABASEERROR"] = ""--]]
+L["STRING_GUILDDAMAGERANK_DIFF"] = "Dificuldade"
+L["STRING_GUILDDAMAGERANK_GUILD"] = "Guilda"
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_PLAYERBASE"] = ""--]]
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_INDIVIDUAL"] = "Individual"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_PLAYER"] = "Jogador"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_RAID"] = "Todos os jogadores"
+L["STRING_GUILDDAMAGERANK_RAID"] = "Raid"
+L["STRING_GUILDDAMAGERANK_ROLE"] = "Função"
+L["STRING_GUILDDAMAGERANK_SHOWHISTORY"] = "Mostrar histórico"
+L["STRING_GUILDDAMAGERANK_SHOWRANK"] = "Mostrar ranking da guilda"
+L["STRING_GUILDDAMAGERANK_SYNCBUTTONTEXT"] = "Sincronizar com a guilda"
+--[[Translation missing --]]
+--[[ L["STRING_GUILDDAMAGERANK_TUTORIAL_DESC"] = ""--]]
+L["STRING_GUILDDAMAGERANK_WINDOWALERT"] = "Chefe derrotado! Mostrar Ranking"
+L["STRING_HEAL"] = "Cura"
+L["STRING_HEAL_ABSORBED"] = "Cura absorvida"
+L["STRING_HEAL_CRIT"] = "Cura Critica"
+L["STRING_HEALING_FROM"] = "Cura recebida de"
+L["STRING_HEALING_HPS_FROM"] = "HPS recebido de"
+L["STRING_HITS"] = "Golpes"
+L["STRING_HPS"] = "Hps"
+L["STRING_IMAGEEDIT_ALPHA"] = "Transparência"
+L["STRING_IMAGEEDIT_CROPBOTTOM"] = "Cortar Baixo"
+L["STRING_IMAGEEDIT_CROPLEFT"] = "Cortar Esquerda"
+L["STRING_IMAGEEDIT_CROPRIGHT"] = "Cortar Direita"
+L["STRING_IMAGEEDIT_CROPTOP"] = "Cortar Topo"
+L["STRING_IMAGEEDIT_DONE"] = "TERMINAR"
+L["STRING_IMAGEEDIT_FLIPH"] = "Inverter Horizontal"
+L["STRING_IMAGEEDIT_FLIPV"] = "Inverter Vertical"
+L["STRING_INFO_TAB_AVOIDANCE"] = "Esquiva"
+L["STRING_INFO_TAB_COMPARISON"] = "Comparar"
+L["STRING_INFO_TAB_SUMMARY"] = "Geral"
+L["STRING_INFO_TUTORIAL_COMPARISON1"] = [=[Clique na aba |cFFFFDD00Comparar|r para ver a comparação entre jogadores da mesma classe.
+]=]
+L["STRING_INSTANCE_CHAT"] = "Bate-papo da instância."
+L["STRING_INSTANCE_LIMIT"] = "o limite de janelas criadas foi atingido, você pode modificar este limite no painel de opções. Você também pode reabrir janelas fechadas anteriormente no menu da engrenagem."
+L["STRING_INTERFACE_OPENOPTIONS"] = "Abrir Painel de Opções"
+L["STRING_ISA_PET"] = "Este Ator é um Ajudante"
+L["STRING_KEYBIND_BOOKMARK"] = "Atalhos"
+L["STRING_KEYBIND_BOOKMARK_NUMBER"] = "Atalho #%s"
+L["STRING_KEYBIND_RESET_SEGMENTS"] = "Apagar Dados"
+L["STRING_KEYBIND_SCROLL_DOWN"] = "Rolar Para Baixo"
+L["STRING_KEYBIND_SCROLL_UP"] = "Rolar Para Cima"
+L["STRING_KEYBIND_SCROLLING"] = "Rolagem"
+L["STRING_KEYBIND_SEGMENTCONTROL"] = "Segmentos"
+L["STRING_KEYBIND_TOGGLE_WINDOW"] = "Alterna Janela #%s"
+L["STRING_KEYBIND_TOGGLE_WINDOWS"] = "Alterna Todas as Janelas"
+L["STRING_KEYBIND_WINDOW_CONTROL"] = "Janelas"
+L["STRING_KEYBIND_WINDOW_REPORT"] = "Reporta dados mostrados na janela #%s."
+L["STRING_KEYBIND_WINDOW_REPORT_HEADER"] = "Reportar Dados"
+L["STRING_KILLED"] = "Morto"
+L["STRING_LAST_COOLDOWN"] = "último cooldown usado"
+L["STRING_LEFT"] = "esquerda"
+L["STRING_LEFT_CLICK_SHARE"] = "Clique para enviar relatório."
+L["STRING_LEFT_TO_RIGHT"] = "Esquerda para Direita"
+L["STRING_LOCK_DESC"] = "Travar ou destravar esta janela"
+L["STRING_LOCK_WINDOW"] = "travar"
+L["STRING_MASTERY"] = "Maestria"
+L["STRING_MAXIMUM"] = "Máximo"
+L["STRING_MAXIMUM_SHORT"] = "Máx"
+L["STRING_MEDIA"] = "Média"
+L["STRING_MELEE"] = "Corpo-a-Corpo"
+L["STRING_MEMORY_ALERT_BUTTON"] = "Eu Entendi"
+L["STRING_MEMORY_ALERT_TEXT1"] = "Details! usa bastante memória, mas |cFFFF8800ao contrário do que muitos pensam|r, a memória usada por addons |cFFFF8800não afeta em nada|r o desempenho do jogo nem o seu FPS."
+L["STRING_MEMORY_ALERT_TEXT2"] = "Então, se você ver o Details! usando muita memória, não entre em pânico :D |cFFFF8800É totalmente normal|r, e, uma parte desta memória |cFFFF8800é até usada em caches|r, para fazer o addon ainda mais rápido."
+L["STRING_MEMORY_ALERT_TEXT3"] = "No entanto, se o seu desejo é saber |cFFFF8800quais addons são os mais pesados|r ou saber quais deles está afetando mais o seu FPS, instale este addon: '|cFFFFFF00AddOns Cpu Usage|r'."
+L["STRING_MEMORY_ALERT_TITLE"] = "Por Favor, Leia com Atenção!"
+L["STRING_MENU_CLOSE_INSTANCE"] = "Fechar Esta Janela"
+L["STRING_MENU_CLOSE_INSTANCE_DESC"] = "A janela fechada é considerada inativa e pode ser aberta a qualquer momento através do menu da engrenagem."
+L["STRING_MENU_CLOSE_INSTANCE_DESC2"] = "Para deletar totalmente a janela, vá no menu de opções -> Janelas: Geral."
+L["STRING_MENU_INSTANCE_CONTROL"] = "Controle de Janelas"
+L["STRING_MINIMAP_TOOLTIP1"] = "|cFFCFCFCFbotão esquerdo|r: abrir o painel de opções"
+L["STRING_MINIMAP_TOOLTIP11"] = "|cFFCFCFCFbotão esquerdo|r: limpar todos os segmentos."
+L["STRING_MINIMAP_TOOLTIP12"] = "|cFFCFCFCFbotão esquerdo|r: esconde/mostra as janelas"
+L["STRING_MINIMAP_TOOLTIP2"] = "|cFFCFCFCFbotão direito|r: menu rápido"
+L["STRING_MINIMAPMENU_CLOSEALL"] = "Fechar Janelas"
+L["STRING_MINIMAPMENU_HIDEICON"] = "Esconder Ícone"
+L["STRING_MINIMAPMENU_LOCK"] = "Travar"
+L["STRING_MINIMAPMENU_NEWWINDOW"] = "Criar Nova Janela"
+L["STRING_MINIMAPMENU_REOPENALL"] = "Reabrir Todas"
+L["STRING_MINIMAPMENU_UNLOCK"] = "Destravar"
+L["STRING_MINIMUM"] = "Mínimo"
+L["STRING_MINIMUM_SHORT"] = "Min"
+L["STRING_MINITUTORIAL_BOOKMARK1"] = "Clique com o botão direito na janela para abrir o painel de atalhos"
+L["STRING_MINITUTORIAL_BOOKMARK2"] = "Os atalhos dão rápido acesso aos displays favoritos."
+L["STRING_MINITUTORIAL_BOOKMARK3"] = "Use o botão direito para fechar o painel de atalhos."
+L["STRING_MINITUTORIAL_BOOKMARK4"] = "Não mostrar novamente."
+L["STRING_MINITUTORIAL_CLOSECTRL1"] = "|cFFFFFF00Ctrl + Botão Direito|r fecha a janela!"
+L["STRING_MINITUTORIAL_CLOSECTRL2"] = "Se você desejar reabri-la, vá para o Menu de Modos -> Controle de Janelas ou Painel de Opções."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL1"] = "Qual das janelas está sendo editada."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL2"] = "Quando marcado, todas as janelas do grupo também serão alteradas."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL3"] = [=[Para criar um grupo, arraste a janela #2 para perto da janela #1.
+
+Para desfazer um grupo, basta clicar no botão |cFFFFFF00desagrupar|r.]=]
+L["STRING_MINITUTORIAL_OPTIONS_PANEL4"] = "Teste sua configuração criando barras de teste."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL5"] = "Quando o Editar Grupos está ativado, todas as janelas do grupo também serão alteradas."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL6"] = "Selecione aqui qual janela você deseja alterar a aparência."
+L["STRING_MINITUTORIAL_WINDOWS1"] = [=[Você acabou de criar um grupo de janelas.
+
+Para desfazer, clique neste cadeado.]=]
+L["STRING_MINITUTORIAL_WINDOWS2"] = [=[A janela foi trancada.
+
+Clique na barra de título e arraste-a para cima para esticar a janela.]=]
+L["STRING_MIRROR_IMAGE"] = "Imagem Espelhada"
+L["STRING_MISS"] = "Errou"
+L["STRING_MODE_ALL"] = "Modo: Tudo"
+L["STRING_MODE_GROUP"] = "Modo: Padrão"
+L["STRING_MODE_OPENFORGE"] = "Lista de feitiços"
+L["STRING_MODE_PLUGINS"] = "plugins"
+L["STRING_MODE_RAID"] = "Plugins: Raide"
+L["STRING_MODE_SELF"] = "Plugins: Individuais"
+L["STRING_MORE_INFO"] = "Veja a caixa da direita para mais informações."
+L["STRING_MULTISTRIKE"] = "Golpes Múltiplos"
+L["STRING_MULTISTRIKE_HITS"] = "Golpes Múltiplos"
+L["STRING_MUSIC_DETAILS_ROBERTOCARLOS"] = [=[Não adianta nem tentar me esquecer
+Durante muito tempo em sua vida eu vou viver
+Detalhes tão pequenos de nos dois]=]
+L["STRING_NEWROW"] = "esperando atualizar..."
+L["STRING_NEWS_REINSTALL"] = "Encontrou problemas após atualizar? tente o comando '/details reinstall'."
+L["STRING_NEWS_TITLE"] = "Quais As Novidades Desta Versão"
+L["STRING_NO"] = "Não"
+L["STRING_NO_DATA"] = "data já foi limpada"
+L["STRING_NO_SPELL"] = "Nenhuma habilidade foi usada"
+L["STRING_NO_TARGET"] = "Nenhum alvo encontrado."
+L["STRING_NO_TARGET_BOX"] = "Nenhum alvo disponível."
+L["STRING_NOCLOSED_INSTANCES"] = [=[Não há janelas fechadas,
+clique para abrir uma nova.]=]
+L["STRING_NOLAST_COOLDOWN"] = "nenhum cooldown usado"
+L["STRING_NOMORE_INSTANCES"] = [=[Limite de janelas alcançado.
+Mude o limite no painel de opções.]=]
+L["STRING_NORMAL_HITS"] = "Golpes Normais"
+L["STRING_NUMERALSYSTEM"] = "Sistema Numérico"
+L["STRING_NUMERALSYSTEM_ARABIC_MYRIAD_EASTASIA"] = "usado na Asia ocidental, separa números em milhares e myriads."
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN"] = "Oeste"
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN_DESC"] = "mais comum, usa milhares e milhões."
+L["STRING_NUMERALSYSTEM_DESC"] = "Selecione qual sistema numérico usar"
+L["STRING_NUMERALSYSTEM_MYRIAD_EASTASIA"] = "Asiático"
+L["STRING_OFFHAND_HITS"] = "Mão Secundária"
+L["STRING_OPTIONS_3D_LALPHA_DESC"] = [=[Ajusta a quantidade de transparência no modelo inferior.
+
+|cFFFFFF00Importante|r: alguns modelos ignoram a transparência ajustada.]=]
+L["STRING_OPTIONS_3D_LANCHOR"] = "Modelo 3D Inferior"
+L["STRING_OPTIONS_3D_LENABLED_DESC"] = "Ativa ou desativa o uso de modelos 3d abaixo da barra."
+L["STRING_OPTIONS_3D_LSELECT_DESC"] = "Escolha qual modelo deverá ser usado no modelo inferior."
+L["STRING_OPTIONS_3D_SELECT"] = "Selecione o Modelo"
+L["STRING_OPTIONS_3D_UALPHA_DESC"] = [=[Ajusta a quantidade de transparência no modelo superior.
+
+|cFFFFFF00Importante|r: alguns modelos ignoram a transparência ajustada.]=]
+L["STRING_OPTIONS_3D_UANCHOR"] = "Modelo 3D Superior"
+L["STRING_OPTIONS_3D_UENABLED_DESC"] = "Ativa ou desativa o uso de modelo 3d acima da barra."
+L["STRING_OPTIONS_3D_USELECT_DESC"] = "Escolha qual o modelo será usado no modelo superior."
+L["STRING_OPTIONS_ADVANCED"] = "Avançado"
+L["STRING_OPTIONS_ALPHAMOD_ANCHOR"] = "Auto Ocultar:"
+L["STRING_OPTIONS_ALWAYS_USE"] = "Usar Em Todos os Personagens"
+L["STRING_OPTIONS_ALWAYS_USE_DESC"] = "O mesmo perfil é usado em todos os personagens. Você pode sobre escrever ele em qualquer personagem apenas escolhendo um perfil na caixa de cima."
+L["STRING_OPTIONS_ALWAYSSHOWPLAYERS"] = "Mostrar todos os jogadores"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_ALWAYSSHOWPLAYERS_DESC"] = ""--]]
+L["STRING_OPTIONS_ANCHOR"] = "Lado"
+L["STRING_OPTIONS_ANIMATEBARS"] = "Animar as Barras"
+L["STRING_OPTIONS_ANIMATEBARS_DESC"] = "Ativar animações para todas as barras"
+L["STRING_OPTIONS_ANIMATESCROLL"] = "Animar Barra de Rolagem"
+L["STRING_OPTIONS_ANIMATESCROLL_DESC"] = "Quanto ativa, a barra de rolagem faz uma animação ao ser mostrada e escondida."
+L["STRING_OPTIONS_APPEARANCE"] = "Aparência"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT"] = "Configurações de Títulos"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT_DESC"] = "Essas opções controlam as configurações dos títulos de uma janela."
+L["STRING_OPTIONS_AUTO_SWITCH"] = "Todas as Funções |cFFFFAA00(em combate)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_COMBAT"] = "|cFFFFAA00(em combate)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_DAMAGER_DESC"] = "Quando estiver com especialização de dano, esta janela mostra o atributo ou plugin escolhido."
+L["STRING_OPTIONS_AUTO_SWITCH_DESC"] = [=[Quando entrar em combate, esta janela mostrará o atributo escolhido ou plugin.
+
+|cFFFFFF00Importante|r: O atributo individual escolhido para cada função, reescreverá o atributo selecionado.]=]
+L["STRING_OPTIONS_AUTO_SWITCH_HEALER_DESC"] = "Quando estiver com especialização de cura, esta janela mostra o atributo ou plugin escolhido."
+L["STRING_OPTIONS_AUTO_SWITCH_TANK_DESC"] = "Quando estiver com especialização de tanque, esta janela mostra o atributo ou plugin escolhido."
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE"] = "Depois de derrota em encontro"
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE_DESC"] = "Depois de uma tentativa fracassada de derrotar um chefe inimigo num combate de raid, esta janela automaticamente mostrará isso."
+L["STRING_OPTIONS_AVATAR"] = "Escolha o Seu Avatar"
+L["STRING_OPTIONS_AVATAR_ANCHOR"] = "Identidade:"
+L["STRING_OPTIONS_AVATAR_DESC"] = "Avatares também são enviados aos membros da guild, é exibido no topo das dicas e na janela de detalhes do jogador."
+L["STRING_OPTIONS_BAR_BACKDROP_ANCHOR"] = "Borda:"
+L["STRING_OPTIONS_BAR_BACKDROP_COLOR_DESC"] = "Muda a cor da borda."
+L["STRING_OPTIONS_BAR_BACKDROP_ENABLED_DESC"] = "Habilita ou desabilita as bordas da linha."
+L["STRING_OPTIONS_BAR_BACKDROP_SIZE_DESC"] = "Aumenta ou diminui o tamanho da borda."
+L["STRING_OPTIONS_BAR_BACKDROP_TEXTURE_DESC"] = "Muda a aparência da borda."
+L["STRING_OPTIONS_BAR_BCOLOR"] = "Cor da Textura de Fundo"
+L["STRING_OPTIONS_BAR_BTEXTURE_DESC"] = "Altere a textura do fundo da barra, lembre-se de alterar a cor da textura e diminuir sua transparência."
+L["STRING_OPTIONS_BAR_COLOR_DESC"] = [=[Escolha a cor da textura.
+Essa cor será ignorada quando a opção Usar cor da Classe estiver ativo.]=]
+L["STRING_OPTIONS_BAR_COLORBYCLASS"] = "Cor da Classe"
+L["STRING_OPTIONS_BAR_COLORBYCLASS_DESC"] = [=[Quando ativada, as barras aplicam a cor da classe do personagem na textura superior.
+
+Quando desligado, a barra ira utilizar a cor fixa determinada na caixa a direita.]=]
+L["STRING_OPTIONS_BAR_FOLLOWING"] = "Sempre Me Mostrar"
+L["STRING_OPTIONS_BAR_FOLLOWING_ANCHOR"] = "Sua Barra:"
+L["STRING_OPTIONS_BAR_FOLLOWING_DESC"] = "Quanto ativo, sempre será mostrada a barra contendo informações sobre o seu personagem."
+L["STRING_OPTIONS_BAR_GROW"] = "Direção do Crescimento"
+L["STRING_OPTIONS_BAR_GROW_DESC"] = "De qual lado da janela as barras começam a serem mostradas."
+L["STRING_OPTIONS_BAR_HEIGHT"] = "Altura"
+L["STRING_OPTIONS_BAR_HEIGHT_DESC"] = "Altera a altura das barras."
+L["STRING_OPTIONS_BAR_ICONFILE"] = "Arquivo de ícone"
+L["STRING_OPTIONS_BAR_ICONFILE_DESC"] = [=[Arquivo .tga responsável pelos ícones das classes.
+
+Há três arquivos de ícones que vem junto ao instalar o addon:
+
+- |cFFFFFF00classes|r
+- |cFFFFFF00classes_small|r
+- |cFFFFFF00classes_small_alpha|r]=]
+L["STRING_OPTIONS_BAR_ICONFILE_DESC2"] = "Selecione o pacote de ícones que deseja usar."
+L["STRING_OPTIONS_BAR_ICONFILE1"] = "Sem Icones."
+L["STRING_OPTIONS_BAR_ICONFILE2"] = "Padrão,"
+L["STRING_OPTIONS_BAR_ICONFILE3"] = "Padrão (Preto e branco)"
+L["STRING_OPTIONS_BAR_ICONFILE4"] = "Padrão (Transparente)"
+L["STRING_OPTIONS_BAR_ICONFILE5"] = "Ícones Circulares"
+L["STRING_OPTIONS_BAR_ICONFILE6"] = "Padrão (transparente preto e branco)"
+L["STRING_OPTIONS_BAR_SPACING"] = "Espaçamento"
+L["STRING_OPTIONS_BAR_SPACING_DESC"] = "Aumenta ou diminui a dimensão de tamanho entre cada linha."
+L["STRING_OPTIONS_BAR_TEXTURE_DESC"] = "Esta opção altera a textura superior das barras."
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM"] = "Texto Customizado Ativado"
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM_DESC"] = "Quando ativado, o texto da esquerda é formatado seguindo o modelo posto no campo de texto abaixo."
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2"] = "\""
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{data1}|r: simboliza o número da colocação do jogador.
+
+|cFFFFFF00{data2}|r: simboliza o nome do jogador.
+
+|cFFFFFF00{data3}|r: simboliza o ícone da facção ou da especialização do jogador (em alguns casos).
+
+|cFFFFFF00{func}|r: executa uma função Lua customizada adicionando seu valor de retorno ao texto.
+Exemplo:
+{func return 'ola azeroth'}
+
+|cFFFFFF00Sequencias de Escape|r: usado para mudar a cor do texto ou adicionar imagens, pesquise por 'UI escape sequences' para mais informações.]=]
+L["STRING_OPTIONS_BARORIENTATION"] = "Orientação das Barras"
+L["STRING_OPTIONS_BARORIENTATION_DESC"] = "Direção em que as barras são preenchidas."
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM"] = "Texto personalizado habilitado"
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM_DESC"] = "Quando habilitado, o texto a direita é formatado seguindo as regras na caixa."
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2"] = ""
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{data1}|r: é o primeiro numero passado, geralmente esse numero representa o total feito.
+
+|cFFFFFF00{data2}|r: é o segundo número passado, na maioria das vezes representa a média por segundos.
+
+|cFFFFFF00{data3}|r: terceiro número passado, normalmente é a porcentagem.
+
+|cFFFFFF00{func}|r: Executa uma função Lua customizada, adicionando seu valor retornado ao texto.
+Example:
+{func return 'hello azeroth'}
+
+|cFFFFFF00Chaves de Edição de Texto|r: use para mudar a cor ou adicionar texturas. Busque por 'UI escape sequences' para mais informações.]=]
+L["STRING_OPTIONS_BARS"] = "Configurações das Barras"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE"] = "Arquivo de Textura Customizado"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE_DESC"] = [=[
+
+|cFFFFFF00Importante|r: a imagem precisa ter 256x32 pixels.]=]
+L["STRING_OPTIONS_BARS_DESC"] = "Estas opções controlam a aparência das barra da janela."
+L["STRING_OPTIONS_BARSORT"] = "Ordem do Rank"
+L["STRING_OPTIONS_BARSORT_DESC"] = "Ordena as barras para aparecerem na ordem do menor para o maior ou maior para o menor."
+L["STRING_OPTIONS_BARSTART"] = "Barra inicia depois do ícone"
+L["STRING_OPTIONS_BARSTART_DESC"] = "Quando desabilitado, a textura superior inicia no ícone do lado esquerdo ao invés do direito (útil para ícones transparentes)."
+L["STRING_OPTIONS_BARUR_ANCHOR"] = "Atualização Dinâmica:"
+L["STRING_OPTIONS_BARUR_DESC"] = "Quando ativado, o Dano e Cura por segundo são atualizados com mais frequência do que o normal."
+L["STRING_OPTIONS_BG_ALL_ALLY"] = "Mostrar Todos"
+L["STRING_OPTIONS_BG_ALL_ALLY_DESC"] = [=[Quando ativado, jogadores inimigos também são mostrados na janela mesmo ela estando no modo de Grupo.
+
+|cFFFFFF00Importante|r: alterações são aplicadas nos combates seguintes.]=]
+L["STRING_OPTIONS_BG_ANCHOR"] = "Campos de Batalha:"
+L["STRING_OPTIONS_BG_UNIQUE_SEGMENT"] = "Segmento Exclusivo"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_UNIQUE_SEGMENT_DESC"] = ""--]]
+L["STRING_OPTIONS_CAURAS"] = "Coletar Auras"
+L["STRING_OPTIONS_CAURAS_DESC"] = [=[Ativa a Captura de:
+
+- |cFFFFFFFFTempo de Buffs|r
+- |cFFFFFFFFTempo de Debuffs|r
+- |cFFFFFFFFVoid Zones|r
+-|cFFFFFFFF Cooldowns|r]=]
+L["STRING_OPTIONS_CDAMAGE"] = "Coletar Dano"
+L["STRING_OPTIONS_CDAMAGE_DESC"] = [=[Ativa a Captura de:
+
+- |cFFFFFFFFDano Feito|r
+- |cFFFFFFFFDano Por Segundo|r
+- |cFFFFFFFFFogo Amigo|r
+- |cFFFFFFFFDano Sofrido|r]=]
+L["STRING_OPTIONS_CENERGY"] = "Coletar Energia"
+L["STRING_OPTIONS_CENERGY_DESC"] = [=[Ativa a Captura de:
+
+- |cFFFFFFFFMana Restaurada|r
+- |cFFFFFFFFRaiva Gerada|r
+- |cFFFFFFFFEnergia Gerada|r
+- |cFFFFFFFFPoder Rúnico Gerado|r]=]
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS"] = "Modificar Cores Das Classes"
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS_DESC"] = "Escolha novas cores para as cores das classes."
+L["STRING_OPTIONS_CHANGECOLOR"] = "Mudar cor"
+L["STRING_OPTIONS_CHANGELOG"] = "Notas da Versão"
+L["STRING_OPTIONS_CHART_ADD"] = "Adicionar Dados"
+L["STRING_OPTIONS_CHART_ADD2"] = "Adicionar"
+L["STRING_OPTIONS_CHART_ADDAUTHOR"] = "Autor:"
+L["STRING_OPTIONS_CHART_ADDCODE"] = "Código:"
+L["STRING_OPTIONS_CHART_ADDICON"] = "Ícone:"
+L["STRING_OPTIONS_CHART_ADDNAME"] = "Nome:"
+L["STRING_OPTIONS_CHART_ADDVERSION"] = "Versão:"
+L["STRING_OPTIONS_CHART_AUTHOR"] = "Autor"
+L["STRING_OPTIONS_CHART_AUTHORERROR"] = "O nome do autor é inválido"
+L["STRING_OPTIONS_CHART_CANCEL"] = "Cancelar"
+L["STRING_OPTIONS_CHART_CLOSE"] = "Fechar"
+L["STRING_OPTIONS_CHART_CODELOADED"] = "O código já esta carregado e não pode ser alterado."
+L["STRING_OPTIONS_CHART_EDIT"] = "Editar Código"
+L["STRING_OPTIONS_CHART_EXPORT"] = "Exportar"
+L["STRING_OPTIONS_CHART_FUNCERROR"] = "Função é Inválida"
+L["STRING_OPTIONS_CHART_ICON"] = "Ícone"
+L["STRING_OPTIONS_CHART_IMPORT"] = "Importar"
+L["STRING_OPTIONS_CHART_IMPORTERROR"] = "A linha importada é inválida."
+L["STRING_OPTIONS_CHART_NAME"] = "Nome"
+L["STRING_OPTIONS_CHART_NAMEERROR"] = "O nome é inválido"
+L["STRING_OPTIONS_CHART_PLUGINWARNING"] = "Instale Chart Viewer Plugin para mostrar os gráficos customizados."
+L["STRING_OPTIONS_CHART_REMOVE"] = "Remover"
+L["STRING_OPTIONS_CHART_SAVE"] = "Salvar"
+L["STRING_OPTIONS_CHART_VERSION"] = "Versão"
+L["STRING_OPTIONS_CHART_VERSIONERROR"] = "Versão é inválida."
+L["STRING_OPTIONS_CHEAL"] = "Coletar Cura"
+L["STRING_OPTIONS_CHEAL_DESC"] = [=[Ativa a Captura de:
+
+- |cFFFFFFFFCura Feita|r
+- |cFFFFFFFFAbsorções|r
+- |cFFFFFFFFCura Por Segundo|r
+- |cFFFFFFFFSobre Cura|r
+- |cFFFFFFFFCura Recebida|r
+- |cFFFFFFFFCura Inimiga|r
+- |cFFFFFFFFDano Prevenido|r]=]
+L["STRING_OPTIONS_CLASSCOLOR_MODIFY"] = "Modificar a Cor das Classes"
+L["STRING_OPTIONS_CLASSCOLOR_RESET"] = "Botão Direito para Resetar"
+L["STRING_OPTIONS_CLEANUP"] = "Apagar Segmentos de Limpeza"
+L["STRING_OPTIONS_CLEANUP_DESC"] = [=[Segmentos com 'trash mobs' são considerados segmentos de limpeza.
+
+Esta opção ativa a remoção automática destes segmentos quando possível.]=]
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS"] = "Clique para Abrir os Menus"
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS_DESC"] = [=[Os botão da barra de título não são mais abertos ao passar o mouse.
+É necessário clicar neles para abrir.]=]
+L["STRING_OPTIONS_CLOUD"] = "Captura Através de Nuvem"
+L["STRING_OPTIONS_CLOUD_DESC"] = "Quando ativado, as informações de capturas desligadas eh buscada em outros membros da raide."
+L["STRING_OPTIONS_CMISC"] = "Coletar Diversos"
+L["STRING_OPTIONS_CMISC_DESC"] = [=[Ativa a Captura de:
+
+- |cFFFFFFFFQuebra de CC|r
+- |cFFFFFFFFDissipações|r
+- |cFFFFFFFFInterrupções|r
+- |cFFFFFFFFRevividos|r
+- |cFFFFFFFFMortes|r]=]
+L["STRING_OPTIONS_COLORANDALPHA"] = "Cor & Transparência"
+L["STRING_OPTIONS_COLORFIXED"] = "Cor Fixada"
+L["STRING_OPTIONS_COMBAT_ALPHA"] = "Quando"
+L["STRING_OPTIONS_COMBAT_ALPHA_1"] = "Sem modificações"
+L["STRING_OPTIONS_COMBAT_ALPHA_2"] = "Durante o combate"
+L["STRING_OPTIONS_COMBAT_ALPHA_3"] = "Enquanto fora de combate"
+L["STRING_OPTIONS_COMBAT_ALPHA_4"] = "Enquanto fora de um grupo"
+L["STRING_OPTIONS_COMBAT_ALPHA_5"] = "Quando não Estiver Em Instância"
+L["STRING_OPTIONS_COMBAT_ALPHA_6"] = "Quando Estiver em Instância"
+L["STRING_OPTIONS_COMBAT_ALPHA_7"] = "Raid Debug"
+L["STRING_OPTIONS_COMBAT_ALPHA_DESC"] = [=[Seleciona a forma como o combate afeta a transparência da janela.
+
+|cFFFFFF00Nenhuma modificação|r: Não modifica o alpha.
+
+|cFFFFFF00Durante o combate|r: Quando seu personagem estiver em combate, o alpha escolhido é aplicado a janela.
+
+|cFFFFFF00Quando fora de combate|r: O alpha é aplicado sempre que seu personagem não estiver em combate.
+
+|cFFFFFF00Quando fora de um grupo|r: Quando você não estiver num grupo ou numa raid, a janela assume o alfa selecionado.
+
+|cFFFFFF00Important|r: Essa opção sobrescreve o alfa determinado pela opção de Auto Transparência.]=]
+L["STRING_OPTIONS_COMBATTWEEKS"] = "Ajustes de Combate"
+L["STRING_OPTIONS_COMBATTWEEKS_DESC"] = "Ajustes comportamentais de como Details! lida com alguns aspectos de combate."
+L["STRING_OPTIONS_CONFIRM_ERASE"] = "Você deseja apagar os dados?"
+L["STRING_OPTIONS_CUSTOMSPELL_ADD"] = "Adicionar feitiço"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE"] = "Configurações de edição de feitiço"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE_DESC"] = "Esse painel permite você modificar o nome e o ícone de feitiços."
+L["STRING_OPTIONS_DATABROKER"] = "Exportar dados:"
+L["STRING_OPTIONS_DATABROKER_TEXT"] = "Texto"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD1"] = "Dano Total"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD2"] = "Dps Efetivo"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD3"] = "Posição (Dano Causado)"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD4"] = "Diferença de Dano"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD5"] = "Cura Total"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD6"] = "Hps Efetivo"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD7"] = "Posição (Cura Causada)"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD8"] = "Diferença de Cura"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD9"] = "Tempo de Combate"
+L["STRING_OPTIONS_DATABROKER_TEXT1_DESC"] = [=[cFFFFFF00{dmg}|r: dano total do jogador.
+
+|cFFFFFF00{dps}|r: DPS efetivo.
+
+|cFFFFFF00{dpos}|r: posição do jogador entre os jogadores do grupo de raide.
+
+|cFFFFFF00{ddiff}|r: diferença entre o seu dano e o dano do primeiro colocado.
+
+|cFFFFFF00{heal}|r: cura total do jogador.
+
+|cFFFFFF00{hps}|r: HPS efetivo.
+
+|cFFFFFF00{hpos}|r: posição do jogador entre os jogadores do grupo de raide.
+
+|cFFFFFF00{hdiff}|r: diferença entre a sua cura e a cura do primeiro colocado.
+
+|cFFFFFF00{time}|r: tempo de luta.]=]
+L["STRING_OPTIONS_DATACHARTTITLE"] = "Criar dados cronometrados para tabelas"
+L["STRING_OPTIONS_DATACHARTTITLE_DESC"] = "Esse painel permite que você crie capturas de dados customizados para criação de tabelas."
+L["STRING_OPTIONS_DATACOLLECT_ANCHOR"] = "Tipos de dados:"
+L["STRING_OPTIONS_DEATHLIMIT"] = "Quantidade de Eventos de Morte"
+L["STRING_OPTIONS_DEATHLIMIT_DESC"] = [=[Ajusta a quantidade de eventos para mostrar no display de mortes.
+
+|cFFFFFF00Importante|r: apenas aplica-se as novas mortes após o ajuste.]=]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLOG_MINHEALING"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_DEATHLOG_MINHEALING_DESC"] = ""--]]
+L["STRING_OPTIONS_DESATURATE_MENU"] = "Menu de Dessaturação"
+L["STRING_OPTIONS_DESATURATE_MENU_DESC"] = "Habilitando essa opção fará com que os ícones do menu da barra de ferramentas se tornem brancos e pretos."
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW"] = "Desativar Janela 'Todos Displays'"
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW_DESC"] = "Quanto ativado, irá abrir o painel de favoritos quando clicar com o botão direito do mouse sobre a barra de título."
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT"] = "Desativar o Brilho das Barras"
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT_DESC"] = "Ao passar o mouse sobre uma barra, ela não ficará com mais brilho."
+L["STRING_OPTIONS_DISABLE_GROUPS"] = "Desativar Agrupamentos"
+L["STRING_OPTIONS_DISABLE_GROUPS_DESC"] = "Quando ativo, as janelas não formam grupo quando colocadas perto umas das outras."
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE"] = "Desativar Botões de Redimensionar"
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE_DESC"] = "Botões de redimensionar, travar a desagrupar não serão mostrado quando passar o mouse sobre a janela."
+L["STRING_OPTIONS_DISABLE_RESET"] = "Desativar Botão Reset"
+L["STRING_OPTIONS_DISABLE_RESET_DESC"] = "Quando ativo, é necessário usar o menu de tooltip do botão reset ao invés de clicar nele."
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON"] = "Desativar o Botão de Esticar"
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON_DESC"] = "O botão de esticar a janela não é mais mostrado no topo das janelas."
+L["STRING_OPTIONS_DISABLED_RESET"] = "Este botão foi desativado no painel de opções, escolha reset no menu do tooltip dele."
+L["STRING_OPTIONS_DTAKEN_EVERYTHING"] = "Dano Sofrido - Avançado"
+L["STRING_OPTIONS_DTAKEN_EVERYTHING_DESC"] = "Quando ativado, o dano sofrido sempre será mostrado no modo 'Mostrar Tudo'."
+L["STRING_OPTIONS_ED"] = "Apagar os Dados"
+L["STRING_OPTIONS_ED_DESC"] = [=[|cFFFFFF00Manualmente|r: o usuário precisa clicar no botão de reset.
+
+|cFFFFFF00Perguntar|r: pergunta se deseja apagar ao entrar em uma nova instância.
+
+|cFFFFFF00Automático|r: limpa todos os dados sem perguntar.]=]
+L["STRING_OPTIONS_ED1"] = "Manualmente"
+L["STRING_OPTIONS_ED2"] = "Perguntar"
+L["STRING_OPTIONS_ED3"] = "Automático"
+L["STRING_OPTIONS_EDITIMAGE"] = "Editar Imagem"
+L["STRING_OPTIONS_EDITINSTANCE"] = "Editando a Janela:"
+L["STRING_OPTIONS_ERASECHARTDATA"] = "Apagar Gráficos"
+L["STRING_OPTIONS_ERASECHARTDATA_DESC"] = "Quando deslogar do jogo, as informações guardadas para gerar gráficos são apagadas."
+L["STRING_OPTIONS_EXTERNALS_TITLE"] = "Widgets Externos"
+L["STRING_OPTIONS_EXTERNALS_TITLE2"] = "Esta opção controla o comportamento de vários widgets externos."
+L["STRING_OPTIONS_GENERAL"] = "Configurações Gerais"
+L["STRING_OPTIONS_GENERAL_ANCHOR"] = "Geral:"
+L["STRING_OPTIONS_HIDE_ICON"] = "Esconder ícone"
+L["STRING_OPTIONS_HIDE_ICON_DESC"] = [=[Quando habilitado, o ícone no canto superior esquerdo não será exibido.
+
+Algumas skins talvez prefiram remover esse ícone.]=]
+L["STRING_OPTIONS_HIDECOMBATALPHA_DESC"] = "A janela pode ser completamente escondida ou apenas ficar mais transparente."
+L["STRING_OPTIONS_HOTCORNER"] = "Mostrar botão"
+L["STRING_OPTIONS_HOTCORNER_ACTION"] = "no clique"
+L["STRING_OPTIONS_HOTCORNER_ACTION_DESC"] = "Selecione o que fazer quando o botão da Hotcorner bar é clicado com o botão esquerdo do mouse."
+L["STRING_OPTIONS_HOTCORNER_ANCHOR"] = "Hotcorner:"
+L["STRING_OPTIONS_HOTCORNER_DESC"] = "Exibe ou oculta o botão sobre o painel Hotcorner."
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK"] = "Habilitar clique rápido"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_DESC"] = [=[Habilita ou desabilita a opção clique rápido para os Hotcorners.
+
+O botão rápido está localizado no canto superior esquerdo do pixel, movendo seu mouse por toda essa área, ativa o hot corner superior esquerdo e quando clicado, uma ação é executada.]=]
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC"] = "Clique rápido no clique"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC_DESC"] = "Seleciona o que fazer quando o botão de clique rápido do Hotcorner é acionado."
+L["STRING_OPTIONS_IGNORENICKNAME"] = "Ignorar Apelidos"
+L["STRING_OPTIONS_IGNORENICKNAME_DESC"] = "Quando ativado, apelidos colocados por outros membros da guilda não ignorados."
+L["STRING_OPTIONS_ILVL_TRACKER"] = "Rastreador do Nível do Item"
+L["STRING_OPTIONS_ILVL_TRACKER_DESC"] = [=[Quando ativo e fora de combate, o addon consulta a rastreia o level de item dos jogadores na raide.
+
+Quando desativado, ele ainda lê o level de item a partir de consultas de outros addons ou quando você inspeciona outro jogador.]=]
+L["STRING_OPTIONS_ILVL_TRACKER_TEXT"] = "Ativado"
+L["STRING_OPTIONS_INSTANCE_ALPHA2"] = "Cor de Fundo"
+L["STRING_OPTIONS_INSTANCE_ALPHA2_DESC"] = "Seleciona a cor do fundo da janela."
+L["STRING_OPTIONS_INSTANCE_BACKDROP"] = "Textura de fundo"
+L["STRING_OPTIONS_INSTANCE_BACKDROP_DESC"] = [=[Seleciona a textura de fundo usada por essa janela.
+
+|cFFFFFF00Padrão|r: Details Background.]=]
+L["STRING_OPTIONS_INSTANCE_COLOR"] = "Cor e Transparência"
+L["STRING_OPTIONS_INSTANCE_COLOR_DESC"] = "Altera a cor e a transparência da janela."
+L["STRING_OPTIONS_INSTANCE_CURRENT"] = "Mudar Para Atual"
+L["STRING_OPTIONS_INSTANCE_CURRENT_DESC"] = "Quando qualquer combate começar e não há nenhuma janela no segmento atual, esta janela automaticamente troca para o segmento atual."
+L["STRING_OPTIONS_INSTANCE_DELETE"] = "Apagar"
+L["STRING_OPTIONS_INSTANCE_DELETE_DESC"] = [=[Remove permanentemente uma janela.
+Seu jogo poderá recarregar durante o processo de limpeza.]=]
+L["STRING_OPTIONS_INSTANCE_SKIN"] = "Pele (skin)"
+L["STRING_OPTIONS_INSTANCE_SKIN_DESC"] = "Modifica todas as texturas e opções da janela através de um padrão pré-definido."
+L["STRING_OPTIONS_INSTANCE_STATUSBAR_ANCHOR"] = "Barra de Status:"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR"] = "Cor e transparência"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR_DESC"] = [=[Seleciona a cor usada pela barra de status.
+
+|cFFFFFF00Importante|r: Essa opção sobrescreve a cor e a transparência da cor da janela escolhida.]=]
+L["STRING_OPTIONS_INSTANCE_STRATA"] = "Ajuste de Camada"
+L["STRING_OPTIONS_INSTANCE_STRATA_DESC"] = [=[Seleciona a altura da camada em que o quadro será posicionado.
+
+Camada inferior é o padrão e faz com que a janela fique atrás da maioria dos painéis de interface.
+
+Usar uma camada alta fará com que a janela fica na frente dos outros painéis..
+
+Quando alterando as camadas você pode encontar alguns conflitos com outros painéis cobrindo uns aos outros.]=]
+L["STRING_OPTIONS_INSTANCES"] = "Janelas:"
+L["STRING_OPTIONS_INTERFACEDIT"] = "Editar Interface"
+L["STRING_OPTIONS_LEFT_MENU_ANCHOR"] = "Opções de Menu:"
+L["STRING_OPTIONS_LOCKSEGMENTS"] = "Segmentos travados"
+L["STRING_OPTIONS_LOCKSEGMENTS_DESC"] = "Quando habilitado, modificar um seguimento em uma janela também modifica todas as outras."
+L["STRING_OPTIONS_MANAGE_BOOKMARKS"] = "Gerenciar Atalhos"
+L["STRING_OPTIONS_MAXINSTANCES"] = "Quantidade de Janelas"
+L["STRING_OPTIONS_MAXINSTANCES_DESC"] = [=[Limita o numero de janelas que podem ser criadas.
+
+Você pode abrir ou reabrir as janelas através do botão de janela localizado a esquerda do botão de fechar.]=]
+L["STRING_OPTIONS_MAXSEGMENTS"] = "Quantidade de Segmentos"
+L["STRING_OPTIONS_MAXSEGMENTS_DESC"] = [=[Esta opção controla quantos segmentos você deseja manter.
+
+O recomendado eh |cFFFFFFFF12|r, mas sinta-se livre para ajustar este numero como desejar.
+
+Computadores com |cFFFFFFFF2GB|r ou menos de memoria ram devem manter um numero de segmentos baixo, isto pode ajudar a preservar a memoria.]=]
+L["STRING_OPTIONS_MENU_ALPHA"] = "Interação com o Mouse:"
+L["STRING_OPTIONS_MENU_ALPHAENABLED_DESC"] = [=[Quando ativado, a transparência muda quando você passa o mouse sobre a janela.
+
+|cFFFFFF00Importante|r: Essa configuração sobrescreve a transparência selecionada para a cor de janela.]=]
+L["STRING_OPTIONS_MENU_ALPHAENTER"] = "Interagindo"
+L["STRING_OPTIONS_MENU_ALPHAENTER_DESC"] = "Quando você tiver um mouse sobre uma janela, a transparência muda para este valor."
+L["STRING_OPTIONS_MENU_ALPHALEAVE"] = "Sem Interação"
+L["STRING_OPTIONS_MENU_ALPHALEAVE_DESC"] = "Quando você não tiver o mouse sobre a janela, a transparência muda para este valor."
+L["STRING_OPTIONS_MENU_ALPHAWARNING"] = "Interação com o Mouse está habilitada, a transparência pode não ser afetada."
+L["STRING_OPTIONS_MENU_ANCHOR"] = "Lado da Âncora do Menu"
+L["STRING_OPTIONS_MENU_ANCHOR_DESC"] = "Muda a posição da âncora do menu, podendo posiciona-lo a direita ou esquerda da janela."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX"] = "Posição X"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX_DESC"] = "Ajusta a posição do texto no eixo X."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY"] = "Posição Y"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY_DESC"] = "Ajusta a posição do texto no eixo Y."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENABLED_DESC"] = "Habilita ou desabilita mostrar o nome do atributo que está sendo exibido atualmente nessa janela."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER"] = "Tempo de Combate (raid)"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER_DESC"] = "Quando ativado, o tempo decorrido da luta contra um chefe de raide é mostrado à esquerda do texto do título."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT"] = "Fonte do texto"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT_DESC"] = "Seleciona a fonte do texto."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SHADOW_DESC"] = "Habilita ou desabilita o sombreamento no texto."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE"] = "Anexado ao Lado Superior"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE_DESC"] = "Selecionar onde o texto é ancorado."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR"] = "Cor do texto"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR_DESC"] = "Muda a cor do texto."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE"] = "Tamanho do texto"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE_DESC"] = "Ajusta o tamanho do texto."
+L["STRING_OPTIONS_MENU_ATTRIBUTESETTINGS_ANCHOR"] = "Configurações:"
+L["STRING_OPTIONS_MENU_AUTOHIDE_DESC"] = "Esconde os botões automaticamente quando não estiver interagindo com a janela. Volta a mostra-los quando volta a mexer com ela novamente."
+L["STRING_OPTIONS_MENU_AUTOHIDE_LEFT"] = "Auto Esconder"
+L["STRING_OPTIONS_MENU_BUTTONSSIZE_DESC"] = "Escolher os tamanhos dos botões. Isso também modifica os ícones adicionados por plugins."
+L["STRING_OPTIONS_MENU_FONT_FACE"] = "Fonte dos Textos dos Menus"
+L["STRING_OPTIONS_MENU_FONT_FACE_DESC"] = "Modifica a fonte usada nos textos dos menus."
+L["STRING_OPTIONS_MENU_FONT_SIZE"] = "Tamanho dos Textos nos Menus"
+L["STRING_OPTIONS_MENU_FONT_SIZE_DESC"] = "Modifica o tamanho dos textos em todos os menus."
+L["STRING_OPTIONS_MENU_IGNOREBARS"] = "Ignorar as Barras"
+L["STRING_OPTIONS_MENU_IGNOREBARS_DESC"] = "Quando habilitada, as barras nessa janela não serão afetadas por esse mecanismo."
+L["STRING_OPTIONS_MENU_SHOWBUTTONS"] = "Exibir Botões"
+L["STRING_OPTIONS_MENU_SHOWBUTTONS_DESC"] = "Seleciona quais botões são exibidos na barra de título."
+L["STRING_OPTIONS_MENU_X"] = "Posição X"
+L["STRING_OPTIONS_MENU_X_DESC"] = "Muda a posição dos botões no eixo X."
+L["STRING_OPTIONS_MENU_Y"] = "Posição Y"
+L["STRING_OPTIONS_MENU_Y_DESC"] = "Muda a posição dos botões no eixo Y."
+L["STRING_OPTIONS_MENUS_SHADOW"] = "Sombra"
+L["STRING_OPTIONS_MENUS_SHADOW_DESC"] = "Adiciona uma fina sombra em todos os botões."
+L["STRING_OPTIONS_MENUS_SPACEMENT"] = "Espaçamento"
+L["STRING_OPTIONS_MENUS_SPACEMENT_DESC"] = "Altera o tamanho do espaço entre cada botão."
+L["STRING_OPTIONS_MICRODISPLAY_ANCHOR"] = "Mini Displays:"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK"] = "Travar Micro Displays"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK_DESC"] = "Quando travado, eles não irão interagir ao passar o mouse ou com cliques."
+L["STRING_OPTIONS_MICRODISPLAYS_DROPDOWN_TOOLTIP"] = "Seleciona o mini display que você deseja mostrar neste lado."
+L["STRING_OPTIONS_MICRODISPLAYS_OPTION_TOOLTIP"] = "Ajusta a configuração para este mini display."
+L["STRING_OPTIONS_MICRODISPLAYS_SHOWHIDE_TOOLTIP"] = "Mostrar ou Esconder este mini display,"
+L["STRING_OPTIONS_MICRODISPLAYS_WARNING"] = [=[|cFFFFFF00Nota|r: mini displays estão invisíveis por que
+estão ancorados no lado de baixo
+e a barra de status esta desativada.]=]
+L["STRING_OPTIONS_MICRODISPLAYSSIDE"] = "Mini Displays no Lado de Cima"
+L["STRING_OPTIONS_MICRODISPLAYSSIDE_DESC"] = "Muda a posição dos mini displays para a posição no topo ou no fundo da janela."
+L["STRING_OPTIONS_MICRODISPLAYWARNING"] = "Mini displays não estão sendo mostrados pois a barra de status esta desligada."
+L["STRING_OPTIONS_MINIMAP"] = "Ícone no Mini Mapa"
+L["STRING_OPTIONS_MINIMAP_ACTION"] = "no clique"
+L["STRING_OPTIONS_MINIMAP_ACTION_DESC"] = "Selecionar o que fazer quando o ícone do minimapa é clicado com o botão esquerdo do mouse."
+L["STRING_OPTIONS_MINIMAP_ACTION1"] = "Abrir painel de controle"
+L["STRING_OPTIONS_MINIMAP_ACTION2"] = "Resetar segmentos"
+L["STRING_OPTIONS_MINIMAP_ACTION3"] = "Esconder/Mostrar Janelas"
+L["STRING_OPTIONS_MINIMAP_ANCHOR"] = "Minimapa:"
+L["STRING_OPTIONS_MINIMAP_DESC"] = "Mostra ou esconde o ícone no mini mapa."
+L["STRING_OPTIONS_MISCTITLE"] = "Configurações Diversas"
+L["STRING_OPTIONS_MISCTITLE2"] = "Essa opção controla várias opções."
+L["STRING_OPTIONS_NICKNAME"] = "Apelido"
+L["STRING_OPTIONS_NICKNAME_DESC"] = "Digite o seu apelido neste campo. O apelido escolhido será enviado aos membros da sua guilda e o Details! ira substituir o nome do personagem pelo apelido."
+L["STRING_OPTIONS_OPEN_ROWTEXT_EDITOR"] = "Editor de Texto das Barras"
+L["STRING_OPTIONS_OPEN_TEXT_EDITOR"] = "Abrir o Editor de Texto"
+L["STRING_OPTIONS_OVERALL_ALL"] = "Todos os segmentos"
+L["STRING_OPTIONS_OVERALL_ALL_DESC"] = "Todos os segmentos são adicionados aos dados globais."
+L["STRING_OPTIONS_OVERALL_ANCHOR"] = "Dados Globais:"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS"] = "Chefes de Masmorras"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS_DESC"] = "Segmentos com chefes de masmorras são adicionados aos dados globais."
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN"] = "'Trash' de Masmorra"
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN_DESC"] = "Segmentos de limpeza de 'trash mobs' em masmorras são adicionados aos dados globais."
+L["STRING_OPTIONS_OVERALL_LOGOFF"] = "Limpar ao Deslogar"
+L["STRING_OPTIONS_OVERALL_LOGOFF_DESC"] = "Quando ativado, os dados gerais de combate são automaticamente apagados quando seu personagem efetua logoff."
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS"] = "Limpar ao Iniciar Dungeon Mítica+"
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS_DESC"] = "Limpa os dados do overall quando iniciar uma dungeon mítica+."
+L["STRING_OPTIONS_OVERALL_NEWBOSS"] = "Limpar em um novo chefe de raide"
+L["STRING_OPTIONS_OVERALL_NEWBOSS_DESC"] = "Quando habilitado, os dados gerais são limpos automaticamente quando enfrentando um novo chefe."
+L["STRING_OPTIONS_OVERALL_RAIDBOSS"] = "Chefes de raide"
+L["STRING_OPTIONS_OVERALL_RAIDBOSS_DESC"] = "Segmentos com encontros de raide são adicionados aos dados globais."
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN"] = "Trash de Raide"
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN_DESC"] = "Segmentos de limpeza de 'trash mobs' em raides são adicionados aos dados globais."
+L["STRING_OPTIONS_PANIMODE"] = "Modo de Pânico"
+L["STRING_OPTIONS_PANIMODE_DESC"] = "Quando você cair do jogo durante uma luta contra um Chefe de uma Raide e esta opção estiver ativa, todos os segmentos são apagados para o processo de logoff ser rápido."
+L["STRING_OPTIONS_PDW_ANCHOR"] = "Painéis:"
+L["STRING_OPTIONS_PDW_SKIN_DESC"] = [=[Skin a ser usada na Janela de Details, na janela de Relatório e no Painel de Opções.
+Algumas alterações exigem /reload.]=]
+L["STRING_OPTIONS_PERCENT_TYPE"] = "Tipo de porcentagem"
+L["STRING_OPTIONS_PERCENT_TYPE_DESC"] = [=[Muda o método de porcentagem:
+
+|cFFFFFF00Relativo ao Total|r: a porcentagem indica o total da fração que o jogador fez comparado ao total feito pela raide.
+
+|cFFFFFF00Relativo ao Melhor Jogador|r: A porcentagem é relativa com o total do melhor jogador.]=]
+L["STRING_OPTIONS_PERFORMANCE"] = "Performance"
+L["STRING_OPTIONS_PERFORMANCE_ANCHOR"] = "Geral:"
+L["STRING_OPTIONS_PERFORMANCE_ARENA"] = "Arena"
+L["STRING_OPTIONS_PERFORMANCE_BG15"] = "Campo de batalha 15"
+L["STRING_OPTIONS_PERFORMANCE_BG40"] = "Campo de batalha 40"
+L["STRING_OPTIONS_PERFORMANCE_DUNGEON"] = "Masmorra"
+L["STRING_OPTIONS_PERFORMANCE_ENABLE_DESC"] = "Se habilitado, essas configurações serão aplicadas quando sua raide for compatível com o tipo de raide selecionado."
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD_DESC"] = ""--]]
+L["STRING_OPTIONS_PERFORMANCE_MYTHIC"] = "Mítico"
+L["STRING_OPTIONS_PERFORMANCE_PROFILE_LOAD"] = "Perfil de desempenho alterado: "
+L["STRING_OPTIONS_PERFORMANCE_RAID15"] = "Raide 10-15"
+L["STRING_OPTIONS_PERFORMANCE_RAID30"] = "Raide 16-30"
+L["STRING_OPTIONS_PERFORMANCE_RF"] = "Localizador de raide"
+L["STRING_OPTIONS_PERFORMANCE_TYPES"] = "Tipo"
+L["STRING_OPTIONS_PERFORMANCE_TYPES_DESC"] = "Estes são os tipos de raide onde diferentes opções podem mudar automaticamente."
+L["STRING_OPTIONS_PERFORMANCE1"] = "Ajustes de Performance"
+L["STRING_OPTIONS_PERFORMANCE1_DESC"] = "Estas opções podem ajudar no desempenho deste addon."
+L["STRING_OPTIONS_PERFORMANCECAPTURES"] = "Coletor de Informação do Combate"
+L["STRING_OPTIONS_PERFORMANCECAPTURES_DESC"] = "Esta opção controla quais informações serão capturadas durante o combate."
+L["STRING_OPTIONS_PERFORMANCEPROFILES_ANCHOR"] = "Perfis de performance:"
+L["STRING_OPTIONS_PICONS_DIRECTION"] = "Direção dos ícones de plugin"
+L["STRING_OPTIONS_PICONS_DIRECTION_DESC"] = "Muda a direção dos ícones dos plugins que são exibidos na barra de ferramentas."
+L["STRING_OPTIONS_PLUGINS"] = "Plugins"
+L["STRING_OPTIONS_PLUGINS_AUTHOR"] = "Autor"
+L["STRING_OPTIONS_PLUGINS_NAME"] = "Nome"
+L["STRING_OPTIONS_PLUGINS_OPTIONS"] = "Opções"
+L["STRING_OPTIONS_PLUGINS_RAID_ANCHOR"] = "Plugins de raide"
+L["STRING_OPTIONS_PLUGINS_SOLO_ANCHOR"] = "Solo Plugins"
+L["STRING_OPTIONS_PLUGINS_TOOLBAR_ANCHOR"] = "Toolbar Plugins"
+L["STRING_OPTIONS_PLUGINS_VERSION"] = "Versão"
+L["STRING_OPTIONS_PRESETNONAME"] = "De um nome a sua predefinição."
+L["STRING_OPTIONS_PRESETTOOLD"] = "Esta predefinição requer uma versão atualizada do Details!."
+L["STRING_OPTIONS_PROFILE_COPYOKEY"] = "Cópia de perfil bem sucedida."
+L["STRING_OPTIONS_PROFILE_FIELDEMPTY"] = "Campo do nome está vazio"
+L["STRING_OPTIONS_PROFILE_GLOBAL"] = "Escolha o perfil que será usado em todos os personagens."
+L["STRING_OPTIONS_PROFILE_LOADED"] = "Perfil carregado:"
+L["STRING_OPTIONS_PROFILE_NOTCREATED"] = "Perfil não criado."
+L["STRING_OPTIONS_PROFILE_OVERWRITTEN"] = "você tem um perfil específico para este personagem"
+L["STRING_OPTIONS_PROFILE_POSSIZE"] = "Salvar tamanho e posição"
+L["STRING_OPTIONS_PROFILE_POSSIZE_DESC"] = "Quando habilitado, a posição e tamanho das janelas é salva no profile. Do contrário a posição e tamanho é salva separadamente para este personagem."
+L["STRING_OPTIONS_PROFILE_REMOVEOKEY"] = "Remoção de perfil bem sucedida."
+L["STRING_OPTIONS_PROFILE_SELECT"] = "Selecione um perfil."
+L["STRING_OPTIONS_PROFILE_SELECTEXISTING"] = "Selecione um perfil ou continue a usar um novo para este personagem:"
+L["STRING_OPTIONS_PROFILE_USENEW"] = "Usar Um Novo Perfil"
+L["STRING_OPTIONS_PROFILES_ANCHOR"] = "Configurações:"
+L["STRING_OPTIONS_PROFILES_COPY"] = "Copiar perfil de"
+L["STRING_OPTIONS_PROFILES_COPY_DESC"] = "Copia todas as configurações do perfil selecionado para o atual perfil, sobrescrevendo todos os valores."
+L["STRING_OPTIONS_PROFILES_CREATE"] = "Criar perfil"
+L["STRING_OPTIONS_PROFILES_CREATE_DESC"] = "Criar novo perfil."
+L["STRING_OPTIONS_PROFILES_CURRENT"] = "Perfil atual:"
+L["STRING_OPTIONS_PROFILES_CURRENT_DESC"] = "Este é o nome do seu perfil atualmente ativo."
+L["STRING_OPTIONS_PROFILES_ERASE"] = "Remover perfil"
+L["STRING_OPTIONS_PROFILES_ERASE_DESC"] = "Remove o perfil selecionado."
+L["STRING_OPTIONS_PROFILES_RESET"] = "Restabelecer o perfil atual"
+L["STRING_OPTIONS_PROFILES_RESET_DESC"] = "Reinicia para os valores padrão todas as configurações do perfil selecionado"
+L["STRING_OPTIONS_PROFILES_SELECT"] = "Selecionar perfil"
+L["STRING_OPTIONS_PROFILES_SELECT_DESC"] = "Carrega um perfil, se você estiver usando o mesmo perfil em todos os personagens (opção baixo), é criada uma exceção para este personagem."
+L["STRING_OPTIONS_PROFILES_TITLE"] = "Perfis"
+L["STRING_OPTIONS_PROFILES_TITLE_DESC"] = "Essa opção permite a você dividir as mesmas configurações com diferentes personagens"
+L["STRING_OPTIONS_PS_ABBREVIATE"] = "Abreviar Texto"
+L["STRING_OPTIONS_PS_ABBREVIATE_COMMA"] = "Separado por pontos"
+L["STRING_OPTIONS_PS_ABBREVIATE_DESC"] = [=[Escolha o método de abreviação para o Dps e Hps.
+
+|cFFFFFFFFNenhuma|r: sem abreviação, o numero inteiro e mostrado.
+
+|cFFFFFFFFCentenas I|r: o numero e reduzido e uma letra indica o valor.
+
+59874 = 59.8K
+100.000 = 100.0K
+19.530.000 = 19.53M
+
+|cFFFFFFFFCentenas II|r: o numero e reduzido e uma letra indica o valor.
+
+59874 = 59.8K
+100.000 = 100K
+19.530.000 = 19.53M]=]
+L["STRING_OPTIONS_PS_ABBREVIATE_NONE"] = "Sem Formatação"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK"] = "Centena I (caixa alta)"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK0"] = "Milhar I (caixa alta)"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK0MIN"] = "Milhar I"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK2"] = "Centena II (caixa alta)"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK2MIN"] = "Centena II"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOKMIN"] = "Centena I"
+L["STRING_OPTIONS_PVPFRAGS"] = "Apenas Abates de PvP"
+L["STRING_OPTIONS_PVPFRAGS_DESC"] = "Quando ativado, serão registrados apenas mortes de jogadores da facção inimiga."
+L["STRING_OPTIONS_REALMNAME"] = "Remover o Nome do Reino"
+L["STRING_OPTIONS_REALMNAME_DESC"] = [=[Quando ativado, o nome do reino junto ao nome do personagem não é mostrado.
+
+|cFFFFFFFFExemplo:|r
+
+Charles-Azralon |cFFFFFFFF(desativado)|r
+Charles |cFFFFFFFF(ativado)|r]=]
+L["STRING_OPTIONS_REPORT_ANCHOR"] = "Janela de Reportar:"
+L["STRING_OPTIONS_REPORT_HEALLINKS"] = "Links de Magias de Cura"
+L["STRING_OPTIONS_REPORT_HEALLINKS_DESC"] = [=[Quando estiver enviando um relatório de morte, as magias de cura terão um link ao invés do seu nome.
+|cFFFF5555Magias de dano|r já possuem o link por padrão.]=]
+L["STRING_OPTIONS_REPORT_SCHEMA"] = "Formato"
+L["STRING_OPTIONS_REPORT_SCHEMA_DESC"] = "Formato do texto exibido no canal de bate-papo quando algo é reportado."
+L["STRING_OPTIONS_REPORT_SCHEMA1"] = "Total / Por Segundo / Porcento"
+L["STRING_OPTIONS_REPORT_SCHEMA2"] = "Porcento / Por Segundo / Total"
+L["STRING_OPTIONS_REPORT_SCHEMA3"] = "Porcento / Total / Por Segundo"
+L["STRING_OPTIONS_RESET_TO_DEFAULT"] = "Resetar Para os Padrões"
+L["STRING_OPTIONS_ROW_SETTING_ANCHOR"] = "Layout:"
+L["STRING_OPTIONS_ROWADV_TITLE"] = "Ajustes Avançados das Barras"
+L["STRING_OPTIONS_ROWADV_TITLE_DESC"] = "Neste opções você pode alterar configurações avançadas das barras."
+L["STRING_OPTIONS_RT_COOLDOWN1"] = "%s usado em %s!"
+L["STRING_OPTIONS_RT_COOLDOWN2"] = "%s usado!"
+L["STRING_OPTIONS_RT_COOLDOWNS_ANCHOR"] = "Anunciar Cooldowns:"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL"] = "Canal"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL_DESC"] = "Qual canal de bate-papo será usado para mandar as mensagens de alerta."
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM"] = "Texto Customizado"
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM_DESC"] = [=[Digite sua frase customizada.
+
+Use |cFFFFFF00{spell}|r para adicionar o nome do cooldown.
+
+Use |cFFFFFF00{target}|r para adicionar o nome do alvo.]=]
+L["STRING_OPTIONS_RT_COOLDOWNS_ONOFF_DESC"] = "Quando você utiliza um cooldown defensivo, uma mensagem é enviada através do canal de bate-papo escolhido."
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT"] = "List de Cooldowns Ignorados"
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT_DESC"] = "Escolha quais magias não serão enviadas quando usadas."
+L["STRING_OPTIONS_RT_DEATH_MSG"] = "Details! Morte de %s"
+L["STRING_OPTIONS_RT_DEATHS_ANCHOR"] = "Anunciar Mortes:"
+L["STRING_OPTIONS_RT_DEATHS_FIRST"] = "Apenas os Primeiros"
+L["STRING_OPTIONS_RT_DEATHS_FIRST_DESC"] = "Apenas anuncia as mortes das primeiras X pessoas."
+L["STRING_OPTIONS_RT_DEATHS_HITS"] = "Quantidade de Golpes"
+L["STRING_OPTIONS_RT_DEATHS_HITS_DESC"] = "Quando anunciar uma morte, mostrar quantos golpes."
+L["STRING_OPTIONS_RT_DEATHS_ONOFF_DESC"] = "Quando um membro da raid morrer, é enviado uma mensagem para o canal de raide mostrando o motivo da morte."
+L["STRING_OPTIONS_RT_DEATHS_WHERE"] = "Instâncias"
+L["STRING_OPTIONS_RT_DEATHS_WHERE_DESC"] = [=[Seleciona aonde as mortes devem ser reportadas
+
+|cFFFFFF00Importante|r para raides o canal /raide é usado, /p para masmorras.]=]
+L["STRING_OPTIONS_RT_DEATHS_WHERE1"] = "Raide e Masmorra"
+L["STRING_OPTIONS_RT_DEATHS_WHERE2"] = "Apenas Raide"
+L["STRING_OPTIONS_RT_DEATHS_WHERE3"] = "Apenas Masmorra"
+L["STRING_OPTIONS_RT_FIRST_HIT"] = "Primeiro Golpe"
+L["STRING_OPTIONS_RT_FIRST_HIT_DESC"] = "Mostra na janela de bate-papo (|cFFFFFF00apenas para você|r) quem aplicou o primeiro golpe, normalmente é quem iniciou o combate."
+L["STRING_OPTIONS_RT_IGNORE_TITLE"] = "Ignorar Cooldowns"
+L["STRING_OPTIONS_RT_INFOS"] = "Informações Extras:"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION"] = "Mostrar Pre-Poções"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION_DESC"] = "Quando ativo, após uma luta contra uma feche de raide, é mostrado no bate-papo as pessoas que usaram uma pré-poção."
+L["STRING_OPTIONS_RT_INTERRUPT"] = "%s interrompido!"
+L["STRING_OPTIONS_RT_INTERRUPT_ANCHOR"] = "Anunciar Interrupções:"
+L["STRING_OPTIONS_RT_INTERRUPT_NEXT"] = "Próximo: %s"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL"] = "Canal"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL_DESC"] = "Qual canal de bate-papo será usado para enviar o alerta."
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM"] = "Texto Customizado"
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM_DESC"] = [=[Escreva sua própria frase.
+
+Use |cFFFFFF00{spell}|r para adicionar o nome da magia interrompida.
+
+Use |cFFFFFF00{next}|r para adicionar o nome da próxima pessoa preenchido no campo 'próximo jogador'.]=]
+L["STRING_OPTIONS_RT_INTERRUPTS_NEXT"] = "Próximo Jogador"
+L["STRING_OPTIONS_RT_INTERRUPTS_NEXT_DESC"] = "Quando existir uma sequência para interrupções, coloque o nome do jogador que deverá cortar a próxima magia."
+L["STRING_OPTIONS_RT_INTERRUPTS_ONOFF_DESC"] = "Quando você corta com sucesso uma magia, uma mensagem é enviada."
+L["STRING_OPTIONS_RT_INTERRUPTS_WHISPER"] = "Sussurrar Quem"
+L["STRING_OPTIONS_RT_OTHER_ANCHOR"] = "Geral:"
+L["STRING_OPTIONS_RT_TITLE"] = "Ferramentas para Raiders"
+L["STRING_OPTIONS_RT_TITLE_DESC"] = "Neste painel você pode ativar mecanismos extras para ajuda-lo em raides."
+L["STRING_OPTIONS_SAVELOAD"] = "Salvar e Carregar"
+L["STRING_OPTIONS_SAVELOAD_APPLYALL"] = "A skin atual foi aplicada a todas as outras instâncias."
+L["STRING_OPTIONS_SAVELOAD_APPLYALL_DESC"] = "Aplica a skin atual em todas as janelas criadas."
+L["STRING_OPTIONS_SAVELOAD_APPLYTOALL"] = "aplicar em todas as janelas"
+L["STRING_OPTIONS_SAVELOAD_CREATE_DESC"] = [=[Digite o nome da skin customizada no campo e clique no botão 'criar'.
+
+Esse processo cria uma skin customizada que você pode carregar em outras janelas ou apenas deixar salva para outra ocasião.]=]
+L["STRING_OPTIONS_SAVELOAD_DESC"] = "Estas opções permitem guardar as configurações da janela podendo carrega-las em outros personagens."
+L["STRING_OPTIONS_SAVELOAD_ERASE_DESC"] = "Essa opção apaga a skin previamente salva."
+L["STRING_OPTIONS_SAVELOAD_EXPORT"] = "Exportar"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_COPY"] = "Pressione CTRL + C"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_DESC"] = "Salva a skin no formato de texto."
+L["STRING_OPTIONS_SAVELOAD_IMPORT"] = "Importar"
+L["STRING_OPTIONS_SAVELOAD_IMPORT_DESC"] = "Importa uma skin "
+L["STRING_OPTIONS_SAVELOAD_IMPORT_OKEY"] = "Skin importada com sucesso."
+L["STRING_OPTIONS_SAVELOAD_LOAD"] = "Carregar"
+L["STRING_OPTIONS_SAVELOAD_LOAD_DESC"] = "Escolha uma das skins previamente salvas para ser aplicada a atual janela selecionada."
+L["STRING_OPTIONS_SAVELOAD_MAKEDEFAULT"] = "Salva a skin padrão."
+L["STRING_OPTIONS_SAVELOAD_PNAME"] = "Nome"
+L["STRING_OPTIONS_SAVELOAD_REMOVE"] = "Excluir"
+L["STRING_OPTIONS_SAVELOAD_RESET"] = "resetar p/ padrões"
+L["STRING_OPTIONS_SAVELOAD_SAVE"] = "salvar"
+L["STRING_OPTIONS_SAVELOAD_SKINCREATED"] = "Skin criada."
+L["STRING_OPTIONS_SAVELOAD_STD_DESC"] = "Skin padrão é aplicada em todas as novas instâncias criadas."
+L["STRING_OPTIONS_SAVELOAD_STDSAVE"] = "Skin padrão foi salva, novas janelas estarão usando essa skin por padrão."
+L["STRING_OPTIONS_SCROLLBAR"] = "Barra de Rolagem"
+L["STRING_OPTIONS_SCROLLBAR_DESC"] = [=[Ativa ou desativa a barra de rolagem.
+
+Details! usa como padrão um mecanismo para estivar a janela.
+
+A |cFFFFFFFFalça|r para estica-lo encontra-se fora da janela em cima do botão de fechar e de criar janelas.]=]
+L["STRING_OPTIONS_SEGMENTSSAVE"] = "Segmentos Salvos"
+L["STRING_OPTIONS_SEGMENTSSAVE_DESC"] = [=[Esta opção controla quantos segmentos você deseja salvar entre as sessões de jogo.
+
+Valores altos podem fazer o tempo de logoff do seu personagem demorar mais.
+
+Se você raramente olha os dados da raide do dia anterior, eh muito recomendado deixar esta opção em 1|cFFFFFFFF1|r.]=]
+L["STRING_OPTIONS_SENDFEEDBACK"] = "Feedback"
+L["STRING_OPTIONS_SHOW_SIDEBARS"] = "Mostrar Barras Laterais"
+L["STRING_OPTIONS_SHOW_SIDEBARS_DESC"] = "Mostrar ou esconder as barras laterais na esquerda e direita da janela."
+L["STRING_OPTIONS_SHOW_STATUSBAR"] = "Exibir barra de Status"
+L["STRING_OPTIONS_SHOW_STATUSBAR_DESC"] = "Exibe ou Oculta a barra de status inferior."
+L["STRING_OPTIONS_SHOW_TOTALBAR_COLOR_DESC"] = "Seleciona a cor. A transparência segue a linha do valor alfa."
+L["STRING_OPTIONS_SHOW_TOTALBAR_DESC"] = "Exibe ou oculta a barra total"
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON"] = "Ícone"
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON_DESC"] = "Seleciona o ícone exibido na barra total"
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP"] = "Apenas em grupo"
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP_DESC"] = "A barra total não é exibida se você não estiver em um grupo."
+L["STRING_OPTIONS_SIZE"] = "Tamanho"
+L["STRING_OPTIONS_SKIN_A"] = "Ajustes da Pele (Skin)"
+L["STRING_OPTIONS_SKIN_A_DESC"] = "Estas opções alteram as características gerais da janela."
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1"] = "Alinhar Com o Chat da Direita"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1_DESC"] = [=[Move e redimensiona as janelas |cFFFFFF00#1|r e |cFFFFFF00#2|r colocando-as em cima do chat da direita.
+
+Este processo não trava ou gruda as janelas.]=]
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2"] = "Definir Configurações do Tooltip"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2_DESC"] = [=[Modifica o toolip em:
+
+Cor da Borda: |cFFFFFF00Preto|r.
+Tamanho da Borda: |cFFFFFF0016|r.
+Textura: |cFFFFFF00Blizzard Tooltip|r.
+]=]
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3"] = "Remover a Borda do Tooltip."
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3_DESC"] = [=[Modifica o Tooltip em:
+
+Cor da Borda: |cFFFFFF00Transparente|r.]=]
+L["STRING_OPTIONS_SKIN_EXTRA_OPTIONS_ANCHOR"] = "Opções de Skin:"
+L["STRING_OPTIONS_SKIN_LOADED"] = "Carregamento de skin bem sucedido."
+L["STRING_OPTIONS_SKIN_PRESETS_ANCHOR"] = "Salvar Skin:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SKIN_PRESETSCONFIG_ANCHOR"] = ""--]]
+L["STRING_OPTIONS_SKIN_REMOVED"] = "skin removida."
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP"] = "Reseta a Cor e Textura do Tooltip"
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP_DESC"] = "Reconfigura a cor da borda e a textura usada nos tooltips."
+L["STRING_OPTIONS_SKIN_SELECT"] = "selecione uma skin"
+L["STRING_OPTIONS_SKIN_SELECT_ANCHOR"] = "Seleção de skin:"
+L["STRING_OPTIONS_SOCIAL"] = "Social"
+L["STRING_OPTIONS_SOCIAL_DESC"] = "Diga-nos o seu apelido ou como você é conhecido na sua guilda."
+L["STRING_OPTIONS_SPELL_ADD"] = "Adicionar"
+L["STRING_OPTIONS_SPELL_ADDICON"] = "Novo Ícone:"
+L["STRING_OPTIONS_SPELL_ADDNAME"] = "Novo Nome:"
+L["STRING_OPTIONS_SPELL_ADDSPELL"] = "Adicionar Magia"
+L["STRING_OPTIONS_SPELL_ADDSPELLID"] = "Id da Magia"
+L["STRING_OPTIONS_SPELL_CLOSE"] = "Fechar"
+L["STRING_OPTIONS_SPELL_ICON"] = "Ícone"
+L["STRING_OPTIONS_SPELL_IDERROR"] = "Id da magias esta inválido."
+L["STRING_OPTIONS_SPELL_INDEX"] = "Index"
+L["STRING_OPTIONS_SPELL_NAME"] = "Nome"
+L["STRING_OPTIONS_SPELL_NAMEERROR"] = "O nome da magia esta inválido."
+L["STRING_OPTIONS_SPELL_NOTFOUND"] = "Magia não encontrada."
+L["STRING_OPTIONS_SPELL_REMOVE"] = "Remover"
+L["STRING_OPTIONS_SPELL_RESET"] = "Resetar"
+L["STRING_OPTIONS_SPELL_SPELLID"] = "ID da Magia"
+L["STRING_OPTIONS_STRETCH"] = "Âncora do botão de esticar"
+L["STRING_OPTIONS_STRETCH_DESC"] = [=[Altera a posição da alça de esticar.
+
+|cFFFFFF00Cima|r: a alça é posta no canto direito superior da janela.
+
+|cFFFFFF00Baixo|r: a alça é posta no centro abaixo da janela.]=]
+L["STRING_OPTIONS_STRETCHTOP"] = "Botão de esticar sempre visível"
+L["STRING_OPTIONS_STRETCHTOP_DESC"] = [=[O botão de esticar será posto mais alto do que as outras janelas e estará sempre visível ao passar o mouse sobre ele.
+
+|cFFFFFF00Importante|r: Movendo a alça para cima, fará com que ela as vezes fica em cima de outras janelas como sua mochila entre outros.]=]
+L["STRING_OPTIONS_SWITCH_ANCHOR"] = "Troca de Atributos:"
+L["STRING_OPTIONS_SWITCHINFO"] = "|cFFF79F81 ESQUERDA DESATIVADO|r |cFF81BEF7 DIREITA ATIVADO|r"
+L["STRING_OPTIONS_TABEMB_ANCHOR"] = "Embutir Na Aba do Chat"
+L["STRING_OPTIONS_TABEMB_ENABLED_DESC"] = "Quando ativado, uma ou mais janelas serão embutidas na janela de bate papo."
+L["STRING_OPTIONS_TABEMB_SINGLE"] = "Apenas uma Janela"
+L["STRING_OPTIONS_TABEMB_SINGLE_DESC"] = "Quando ativado, apenas uma janela será embutida no bate-papo."
+L["STRING_OPTIONS_TABEMB_TABNAME"] = "Nome da Aba"
+L["STRING_OPTIONS_TABEMB_TABNAME_DESC"] = "Nome da aba onde as janelas serão colocadas."
+L["STRING_OPTIONS_TESTBARS"] = "Criar Barras de Teste"
+L["STRING_OPTIONS_TEXT"] = "Opções dos Textos das Barras"
+L["STRING_OPTIONS_TEXT_DESC"] = "Os ajustes abaixo personalizam os textos mostrados nas barras."
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR"] = "Cor de Texto"
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR_DESC"] = [=[Muda a cor dos textos da direita e esquerda.
+
+É ignorado se |cFFFFFFFFcor pela classe|r estiver ativado.]=]
+L["STRING_OPTIONS_TEXT_FONT"] = "Fonte"
+L["STRING_OPTIONS_TEXT_FONT_DESC"] = "Modifica a fonte do texto usado nas barras."
+L["STRING_OPTIONS_TEXT_LCLASSCOLOR_DESC"] = [=[Quando ativado a cor do texto esquerdo será automaticamente ajustado para a cor da classe do personagem mostrado.
+
+Quando desligado a cor na caixa a direita é usado.]=]
+L["STRING_OPTIONS_TEXT_LEFT_ANCHOR"] = "Texto a Esquerda:"
+L["STRING_OPTIONS_TEXT_LOUTILINE"] = "Sombra do Texto Esquerdo"
+L["STRING_OPTIONS_TEXT_LOUTILINE_DESC"] = "Quando ativado o texto esquerdo ganhara um efeito de sombra ao seu redor."
+L["STRING_OPTIONS_TEXT_LPOSITION"] = "Mostrar Número"
+L["STRING_OPTIONS_TEXT_LPOSITION_DESC"] = "Mostra o número da colocação do jogador ao lado esquerdo do seu nome."
+L["STRING_OPTIONS_TEXT_RIGHT_ANCHOR"] = "Texto a Direita:"
+L["STRING_OPTIONS_TEXT_ROUTILINE_DESC"] = "Quando ativado o texto da direita ganhara um efeito de sombra ao seu redor."
+L["STRING_OPTIONS_TEXT_ROWICONS_ANCHOR"] = "Ícones:"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET"] = "Tipo do Colchete"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET_DESC"] = "Tipo de carácter usado para abrir e fechar o bloco do DPS e porcentagem."
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT"] = "Mostrar Porcentagem"
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT_DESC"] = "Mostra a porcentagem nas barras."
+L["STRING_OPTIONS_TEXT_SHOW_PS"] = "Mostrar Dps/Hps"
+L["STRING_OPTIONS_TEXT_SHOW_PS_DESC"] = "Mostra o dano por segundo e a cura por segundo nas barras."
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR"] = "Separador"
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR_DESC"] = "Carácter usado para separar o dps/hps da porcentagem."
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL"] = "Mostrar Total"
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL_DESC"] = [=[Mostrar o total feito pelo jogador.
+
+Por exemplo: o total de dano feito, total de cura recebida.]=]
+L["STRING_OPTIONS_TEXT_SIZE"] = "Tamanho"
+L["STRING_OPTIONS_TEXT_SIZE_DESC"] = "Altera o tamanho da fonte do texto."
+L["STRING_OPTIONS_TEXT_TEXTUREL_ANCHOR"] = "Textura inferior:"
+L["STRING_OPTIONS_TEXT_TEXTUREU_ANCHOR"] = "Aparência:"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL"] = "Cancelar"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL_TOOLTIP"] = "Termina a edição sem salvar as mudanças."
+L["STRING_OPTIONS_TEXTEDITOR_COLOR_TOOLTIP"] = "Para mudar a cor do texto, selecione-o e então clique no botão da cor."
+L["STRING_OPTIONS_TEXTEDITOR_COMMA"] = "Vírgula"
+L["STRING_OPTIONS_TEXTEDITOR_COMMA_TOOLTIP"] = "Add a comma function call for use inside functions on return values."
+L["STRING_OPTIONS_TEXTEDITOR_DATA"] = "[Data %s]"
+L["STRING_OPTIONS_TEXTEDITOR_DATA_TOOLTIP"] = [=[Adiciona dados:
+
+|cFFFFFF00Data 1|r: representa o total feito ou o número da colocação do jogador.
+
+|cFFFFFF00Data 2|r: representa o valor por segundo como DPS e HPS ou o nome do jogador.
+
+|cFFFFFF00Data 3|r: representa a porcentagem ou o ícone da facção ou da especialização.]=]
+L["STRING_OPTIONS_TEXTEDITOR_DONE"] = "Terminar"
+L["STRING_OPTIONS_TEXTEDITOR_DONE_TOOLTIP"] = "Termina a edição e salva o código."
+L["STRING_OPTIONS_TEXTEDITOR_FUNC"] = "Função"
+L["STRING_OPTIONS_TEXTEDITOR_FUNC_TOOLTIP"] = "Adiciona uma função, funções sempre precisam retornar um número."
+L["STRING_OPTIONS_TEXTEDITOR_RESET"] = "Reset"
+L["STRING_OPTIONS_TEXTEDITOR_RESET_TOOLTIP"] = "Limpa todo o código e adiciona o código padrão"
+L["STRING_OPTIONS_TEXTEDITOR_TOK"] = "Centenas"
+L["STRING_OPTIONS_TEXTEDITOR_TOK_TOOLTIP"] = "Add a abbreviation function call for use inside functions on return values."
+L["STRING_OPTIONS_TIMEMEASURE"] = "Medidas do Tempo"
+L["STRING_OPTIONS_TIMEMEASURE_DESC"] = [=[|cFFFFFFFFTempo de Atividade|r: o tempo de cada membro da raide eh posto em pausa quando ele ficar ocioso e volta a contar o tempo quando ele voltar a atividade, eh a maneira mais comum de medir o Dps e Hps.
+
+|cFFFFFFFFTempo Efetivo|r: muito usado para ranqueamentos, este metodo usa o tempo total da luta para medir o Dps e Hps de todos os membros da raide.]=]
+L["STRING_OPTIONS_TOOLBAR_SETTINGS"] = "Configuração da Barra de Título"
+L["STRING_OPTIONS_TOOLBAR_SETTINGS_DESC"] = "Essa opção altera o menu principal no topo da janela"
+L["STRING_OPTIONS_TOOLBARSIDE"] = "Âncora da Barra de Ferramentas"
+L["STRING_OPTIONS_TOOLBARSIDE_DESC"] = "Coloca a barra de ferramentas no topo ou no fundo de uma janela."
+L["STRING_OPTIONS_TOOLS_ANCHOR"] = "Ferramentas:"
+L["STRING_OPTIONS_TOOLTIP_ANCHOR"] = "Configurações:"
+L["STRING_OPTIONS_TOOLTIP_ANCHORTEXTS"] = "Textos:"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION"] = "Tipo de abreviação"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION_DESC"] = "Escolha como os números exibidos nos tooltips são formatados."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH"] = "Lado do tooltip"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH_DESC"] = "Qual lado do tooltip será anexado a sua âncora."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_BORDER"] = "Borda:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_POINT"] = "Âncora:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE"] = "Lado da âncora"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE_DESC"] = "Qual lado da âncora o tooltip será colocado."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT"] = "Âncora do Tooltip"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT_DESC"] = "Clique com a direita para travar."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO"] = "Âncora"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE"] = "Mover o Ponto na Tela"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE_DESC"] = "Move a posição da âncora quando o tipo da âncora esta em |cFFFFFF00Ponto na Tela|r."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_DESC"] = "O tooltip é mostrado sobre uma barra da janela ou anexado a um ponto fixo na tela."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO1"] = "Barra da Janela"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO2"] = "Ponto na Tela"
+L["STRING_OPTIONS_TOOLTIPS_ANCHORCOLOR"] = "cabeçalho"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR"] = "Cor de fundo"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR_DESC"] = "Seleciona a cor usada no fundo."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_COLOR_DESC"] = "Muda a cor da borda."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_SIZE_DESC"] = "Muda o tamanho da borda."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_TEXTURE_DESC"] = "Modifica a textura usada na borda do tooltip."
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR"] = "Cor de texto"
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR_DESC"] = "Muda a cor usada nos textos do tooltip."
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE"] = "Fonte de texto"
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE_DESC"] = "Seleciona a fonte utilizada nos textos do tooltip."
+L["STRING_OPTIONS_TOOLTIPS_FONTSHADOW_DESC"] = "Habilita ou desabilita o sombreamento em um texto."
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE"] = "Tamanho de texto."
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE_DESC"] = "Aumenta ou diminui o tamanho do texto de um tooltip"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER"] = "Fundo do Menu Secundário"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER_DESC"] = "Quando ativado, alguns menus podem usar seu próprio fundo nos menus secundários."
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE"] = "Maximizar método"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE_DESC"] = [=[Seleciona o método utilizado para expandir a informação exibida no tooltip.
+
+|cFFFFFF00 Teclas de Controle|r: a caixa do tooltip é expandida ao pressionar Shift, Ctrl or Alt.
+
+|cFFFFFF00 Sempre Maximizado|r: O tooltip sempre mostra toda a informação sem nenhuma limitação de linhas.
+
+|cFFFFFF00Apenas o bloco Shift|r: O primeiro bloco no tooptip é sempre expandido por padrão.
+
+|cFFFFFF00Apenas o bloco Ctrl|r: o segundo bloco é sempre expandido por padrão.
+
+|cFFFFFF00Apenas o bloco Alt|r: o terceiro bloco é sempre expandido por padrão.]=]
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE1"] = "usando Shift Ctrl Alt"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE2"] = "Sempre maximizado"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE3"] = "Apenas o Bloco do SHIFT"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE4"] = "Apenas o bloco do CTRL"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE5"] = "Apenas o bloco do ALT"
+L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP"] = "Editar Papel de Parede do Menu"
+L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP_DESC"] = "Altera os aspectos do papel de parede dos menus usados na barra de título."
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX"] = "Distância X"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX_DESC"] = "Quão distante horizontalmente o tooltip é colocado da sua âncora."
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY"] = "Distância Y"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY_DESC"] = "Quão distante verticalmente o tooltip é colocado da sua âncora"
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT"] = "Mostrar quantidade"
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT_DESC"] = "Exibe um número indicando quantas abilidades, alvos e pets existem no tooptip."
+L["STRING_OPTIONS_TOOLTIPS_TITLE"] = "Tooltips"
+L["STRING_OPTIONS_TOOLTIPS_TITLE_DESC"] = "Essa opção controla a aparência dos tooltips."
+L["STRING_OPTIONS_TOTALBAR_ANCHOR"] = "Barra de Total:"
+L["STRING_OPTIONS_TRASH_SUPPRESSION"] = "Supressão de Trash"
+L["STRING_OPTIONS_TRASH_SUPPRESSION_DESC"] = "Por |cFFFFFF00X|r segundos, suprimir a troca automática de segmento para mostrar segmentos de Trash (|cFFFFFF00apenas depois de derrotar um chefe de raide|r)."
+L["STRING_OPTIONS_WALLPAPER_ALPHA"] = "Transparência:"
+L["STRING_OPTIONS_WALLPAPER_ANCHOR"] = "Seleção de papel de parede:"
+L["STRING_OPTIONS_WALLPAPER_BLUE"] = "Azul:"
+L["STRING_OPTIONS_WALLPAPER_CBOTTOM"] = "Recorte (|cFFC0C0C0baixo|r):"
+L["STRING_OPTIONS_WALLPAPER_CLEFT"] = "Recorte (|cFFC0C0C0esquerda|r):"
+L["STRING_OPTIONS_WALLPAPER_CRIGHT"] = "Recorte (|cFFC0C0C0direita|r):"
+L["STRING_OPTIONS_WALLPAPER_CTOP"] = "Recorte (|cFFC0C0C0topo|r):"
+L["STRING_OPTIONS_WALLPAPER_FILE"] = "Arquivo:"
+L["STRING_OPTIONS_WALLPAPER_GREEN"] = "Verde:"
+L["STRING_OPTIONS_WALLPAPER_LOAD"] = "Carregar Imagem"
+L["STRING_OPTIONS_WALLPAPER_LOAD_DESC"] = "Seleciona uma imagem no seu computador para usar como papel de parede."
+L["STRING_OPTIONS_WALLPAPER_LOAD_EXCLAMATION"] = [=[A imagem precisa:
+
+- Ser no formato Truevision TGA (.tga extension).
+- Estar dentro da pasta raiz WOW/Interface/.
+- Precisa ser do tamanho 256 x 256 pixels.
+- Você precisa fechar e reabrir o jogo após colar a imagem.]=]
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME"] = "Nome do Arquivo:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME_DESC"] = "Insira apenas o nome do arquivo, extensão e caminho ficam de fora."
+L["STRING_OPTIONS_WALLPAPER_LOAD_OKEY"] = "Carregar"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TITLE"] = "Do Computador:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT"] = "Solução de Problemas"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT_TEXT"] = [=[Se o papel de parede ficou todo verde:
+
+- Feche e reabra o cliente do jogo.
+- tenha certeza que o tamanho do arquivo é 256 pixels de altura e comprimento.
+- Verifique se a imagem esta no formato .TGA e esta salva com 32 bits/pixel.
+- Esta dentro da pasta Interface, exemplo: C:/Arquivos de Programas/World of Warcraft/Interface/]=]
+L["STRING_OPTIONS_WALLPAPER_RED"] = "Vermelho:"
+L["STRING_OPTIONS_WC_ANCHOR"] = "Controle Rápido da Janela (#%s):"
+L["STRING_OPTIONS_WC_BOOKMARK"] = "Configurar Atalhos"
+L["STRING_OPTIONS_WC_BOOKMARK_DESC"] = "Abre o painel de configuração de atalhos."
+L["STRING_OPTIONS_WC_CLOSE"] = "Fechar"
+L["STRING_OPTIONS_WC_CLOSE_DESC"] = [=[Fecha esta janela.
+
+Quando fechada, a janela é considerada inativa e pode ser reaberta a qualquer momento através do botão de janelas #.
+
+Para deleta-la completamente, veja a sessão Diversos -> Apagar.]=]
+L["STRING_OPTIONS_WC_CREATE"] = "Criar Janela"
+L["STRING_OPTIONS_WC_CREATE_DESC"] = "Cria uma nova janela."
+L["STRING_OPTIONS_WC_LOCK"] = "Travar"
+L["STRING_OPTIONS_WC_LOCK_DESC"] = [=[Trava ou Destrava a janela.
+
+Quando travada, a janela não pode ser movida.]=]
+L["STRING_OPTIONS_WC_REOPEN"] = "Reabrir"
+L["STRING_OPTIONS_WC_UNLOCK"] = "Destravar"
+L["STRING_OPTIONS_WC_UNSNAP"] = "Desagrupar"
+L["STRING_OPTIONS_WC_UNSNAP_DESC"] = "Remove esta janela do grupo de janelas."
+L["STRING_OPTIONS_WHEEL_SPEED"] = "Velocidade de Deslize"
+L["STRING_OPTIONS_WHEEL_SPEED_DESC"] = "Modifica a velocidade na qual as barras são movidas quando a roleta do mouse é deslizada."
+L["STRING_OPTIONS_WINDOW"] = "Painel de Opções"
+L["STRING_OPTIONS_WINDOW_ANCHOR_ANCHORS"] = "Âncoras:"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE"] = "Ignorar Alterar em Massa"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE_DESC"] = "Quanto ativa, esta janela é ignorada quando for esconder, mostrar ou alternar todas as janelas."
+L["STRING_OPTIONS_WINDOW_SCALE"] = "Escala"
+L["STRING_OPTIONS_WINDOW_SCALE_DESC"] = "Ajusta a escala da janela."
+L["STRING_OPTIONS_WINDOW_TITLE"] = "Configurações de Janela"
+L["STRING_OPTIONS_WINDOW_TITLE_DESC"] = "Essa opção controla a aparência da janela de uma instância selecionada."
+L["STRING_OPTIONS_WINDOWSPEED"] = "Velocidade de Atualização"
+L["STRING_OPTIONS_WINDOWSPEED_DESC"] = [=[Segundos entre cada atualização da janela.
+
+|cFFFFFFFF0.3|r: atualiza cerca de 3 vezes por segundo.
+
+|cFFFFFFFF3.0|r: atualiza a cada 3 segundos.]=]
+L["STRING_OPTIONS_WP"] = "Papel de Parede"
+L["STRING_OPTIONS_WP_ALIGN"] = "Alinhamento"
+L["STRING_OPTIONS_WP_ALIGN_DESC"] = [=[Selecione como o papel de parede será alinhado com a janela.
+
+- |cFFFFFFFFPreencher|r: redimensiona e alinha com os quatro cantos da janela.
+
+- |cFFFFFFFFCentralizado|r: não redimensiona e alinha com o centro da janeça.
+
+-|cFFFFFFFFEsticado|r: redimensiona na vertical ou horizontal e alinha com os cantos da esquerda-direita ou lado superior-inferior.
+
+-|cFFFFFFFFQuatro Laterais|r: alinha com um canto especifico, não há redimensionamento automático.]=]
+L["STRING_OPTIONS_WP_DESC"] = "Estas opções controlam o papel de parede que eh mostrado no fundo da janela."
+L["STRING_OPTIONS_WP_EDIT"] = "Editar Imagem"
+L["STRING_OPTIONS_WP_EDIT_DESC"] = "Abre o editor de imagens para alterar os aspectos do papel de parede escolhido."
+L["STRING_OPTIONS_WP_ENABLE_DESC"] = [=[Liga ou desliga o papel de parede.
+
+Você pode escolher qual papel de parede você deseja usar nas caixas abaixo.]=]
+L["STRING_OPTIONS_WP_GROUP"] = "Categoria"
+L["STRING_OPTIONS_WP_GROUP_DESC"] = "Nesta caixa, selecione o tipo do papel de parede, após selecionar, a caixa a direita ira mostrar as opcoes da categoria escolhida."
+L["STRING_OPTIONS_WP_GROUP2"] = "Papel de Parede"
+L["STRING_OPTIONS_WP_GROUP2_DESC"] = "Selecione qual você deseja colocar no fundo da janela, para mais opções troque de categoria na caixa da esquerda."
+L["STRING_OPTIONSMENU_AUTOMATIC"] = "Janelas: Automatização"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE"] = "Configurações de Automatização das Janelas"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE_DESC"] = "Estes ajustes controlam o comportamento automático das janelas."
+L["STRING_OPTIONSMENU_COMBAT"] = "Combate"
+L["STRING_OPTIONSMENU_DATACHART"] = "Dados Para Gráficos"
+L["STRING_OPTIONSMENU_DATACOLLECT"] = "Coletor de Dados"
+L["STRING_OPTIONSMENU_DATAFEED"] = "Alimentação de Dados"
+L["STRING_OPTIONSMENU_DISPLAY"] = "Display"
+L["STRING_OPTIONSMENU_DISPLAY_DESC"] = "Ajustes básicos gerais e controles rápidos da janela."
+L["STRING_OPTIONSMENU_LEFTMENU"] = "Barra de Título: Geral"
+L["STRING_OPTIONSMENU_MISC"] = "Diversos"
+L["STRING_OPTIONSMENU_PERFORMANCE"] = "Ajustes de Performance"
+L["STRING_OPTIONSMENU_PLUGINS"] = "Gerenciador de Plugins"
+L["STRING_OPTIONSMENU_PROFILES"] = "Perfis"
+L["STRING_OPTIONSMENU_RAIDTOOLS"] = "Ferramentas de Raide"
+L["STRING_OPTIONSMENU_RIGHTMENU"] = "-- x -- x --"
+L["STRING_OPTIONSMENU_ROWMODELS"] = "Barras: Avançado"
+L["STRING_OPTIONSMENU_ROWSETTINGS"] = "Barras: Configurações"
+L["STRING_OPTIONSMENU_ROWTEXTS"] = "Barras: Textos"
+L["STRING_OPTIONSMENU_SKIN"] = "Seletor de Skin"
+L["STRING_OPTIONSMENU_SPELLS"] = "Customização de Magia"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONSMENU_SPELLS_CONSOLIDATE"] = ""--]]
+L["STRING_OPTIONSMENU_TITLETEXT"] = "Barra de Título: Texto"
+L["STRING_OPTIONSMENU_TOOLTIP"] = "Tooltips"
+L["STRING_OPTIONSMENU_WALLPAPER"] = "Janela: Papel de Parede"
+L["STRING_OPTIONSMENU_WINDOW"] = "Janela: Configurações"
+L["STRING_OVERALL"] = "Dados Gerais"
+L["STRING_OVERHEAL"] = "Sobrecura"
+L["STRING_OVERHEALED"] = "Sobrecura"
+L["STRING_PARRY"] = "Aparo"
+L["STRING_PERCENTAGE"] = "Porcentagem"
+L["STRING_PET"] = "Ajudante"
+L["STRING_PETS"] = "Ajudantes"
+L["STRING_PLAYER_DETAILS"] = "Detalhes do Jogador"
+L["STRING_PLAYERS"] = "Jogadores"
+L["STRING_PLEASE_WAIT"] = "Por favor espere"
+L["STRING_PLUGIN_CLEAN"] = "Nenhum"
+L["STRING_PLUGIN_CLOCKNAME"] = "Tempo de Luta"
+L["STRING_PLUGIN_CLOCKTYPE"] = "Tipo do Tempo"
+L["STRING_PLUGIN_DURABILITY"] = "Durabilidade"
+L["STRING_PLUGIN_FPS"] = "Quadros por Segundo"
+L["STRING_PLUGIN_GOLD"] = "Dinheiro"
+L["STRING_PLUGIN_LATENCY"] = "Latência"
+L["STRING_PLUGIN_MINSEC"] = "Minutos & Segundos"
+L["STRING_PLUGIN_NAMEALREADYTAKEN"] = "Details! não pode instalar um plugin pois o nome dele já esta em uso"
+L["STRING_PLUGIN_PATTRIBUTENAME"] = "Atributo"
+L["STRING_PLUGIN_PDPSNAME"] = "Dps da Raide"
+L["STRING_PLUGIN_PSEGMENTNAME"] = "Segmento Mostrado"
+L["STRING_PLUGIN_SECONLY"] = "Somente Segundos"
+L["STRING_PLUGIN_SEGMENTTYPE"] = "Tipo de Segmento"
+L["STRING_PLUGIN_SEGMENTTYPE_1"] = "Combate #X"
+L["STRING_PLUGIN_SEGMENTTYPE_2"] = "Nome do Encontro"
+L["STRING_PLUGIN_SEGMENTTYPE_3"] = "Nome do encontro mais segmento"
+L["STRING_PLUGIN_THREATNAME"] = "Minha Ameaça"
+L["STRING_PLUGIN_TIME"] = "Relógio"
+L["STRING_PLUGIN_TIMEDIFF"] = "Diferença do Ultimo Combate"
+L["STRING_PLUGIN_TOOLTIP_LEFTBUTTON"] = "Configura a ferramenta atual"
+L["STRING_PLUGIN_TOOLTIP_RIGHTBUTTON"] = "Escolher uma outra ferramenta"
+L["STRING_PLUGINOPTIONS_ABBREVIATE"] = "Abreviar"
+L["STRING_PLUGINOPTIONS_COMMA"] = "Vírgula"
+L["STRING_PLUGINOPTIONS_FONTFACE"] = "Fonte"
+L["STRING_PLUGINOPTIONS_NOFORMAT"] = "Nenhum"
+L["STRING_PLUGINOPTIONS_TEXTALIGN"] = "Alinhamento"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_X"] = "Alinhamento X"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_Y"] = "Alinhamento Y"
+L["STRING_PLUGINOPTIONS_TEXTCOLOR"] = "Cor do Texto"
+L["STRING_PLUGINOPTIONS_TEXTSIZE"] = "Tamanho"
+L["STRING_PLUGINOPTIONS_TEXTSTYLE"] = "Estilo do Texto"
+L["STRING_QUERY_INSPECT"] = "re-inspecionar."
+L["STRING_QUERY_INSPECT_FAIL1"] = "não há como inspecionar durante o combate."
+L["STRING_QUERY_INSPECT_REFRESH"] = "precisa atualizar"
+L["STRING_RAID_WIDE"] = "[*] cooldown de raide"
+L["STRING_RAIDCHECK_PLUGIN_DESC"] = "Enquanto estiver dentro de uma raide, é mostrado um ícone na barra de título mostrando o uso de comida, frascos e poções."
+L["STRING_RAIDCHECK_PLUGIN_NAME"] = "Raid Check"
+L["STRING_REPORT"] = "Relatório para"
+L["STRING_REPORT_BUTTON_TOOLTIP"] = "Clique para abrir a Caixa de Relatórios."
+L["STRING_REPORT_FIGHT"] = "luta"
+L["STRING_REPORT_FIGHTS"] = "lutas"
+L["STRING_REPORT_INVALIDTARGET"] = "O alvo não pode ser encontrado"
+L["STRING_REPORT_LAST"] = "Ultimas"
+L["STRING_REPORT_LASTFIGHT"] = "ultima luta"
+L["STRING_REPORT_LEFTCLICK"] = "Clique para abrir a janela de relatório"
+L["STRING_REPORT_PREVIOUSFIGHTS"] = "lutas anteriores"
+L["STRING_REPORT_SINGLE_BUFFUPTIME"] = "duração dos buffs de"
+L["STRING_REPORT_SINGLE_COOLDOWN"] = "cooldowns usados por"
+L["STRING_REPORT_SINGLE_DEATH"] = "detalhes da morte de"
+L["STRING_REPORT_SINGLE_DEBUFFUPTIME"] = "duração dos debuffs de"
+L["STRING_REPORT_TOOLTIP"] = "Reportar Resultados"
+L["STRING_REPORTFRAME_COPY"] = "Copiar e Colar"
+L["STRING_REPORTFRAME_CURRENT"] = "Mostrando"
+L["STRING_REPORTFRAME_CURRENTINFO"] = "Reporta apenas as informações que estão sendo mostradas no momento."
+L["STRING_REPORTFRAME_GUILD"] = "Guilda"
+L["STRING_REPORTFRAME_INSERTNAME"] = "entre com um nome"
+L["STRING_REPORTFRAME_LINES"] = "Linhas"
+L["STRING_REPORTFRAME_OFFICERS"] = "Canal dos Oficiais"
+L["STRING_REPORTFRAME_PARTY"] = "Grupo"
+L["STRING_REPORTFRAME_RAID"] = "Raide"
+L["STRING_REPORTFRAME_REVERT"] = "Inverter"
+L["STRING_REPORTFRAME_REVERTED"] = "invertido"
+L["STRING_REPORTFRAME_REVERTINFO"] = "Inverte as posições colocando em ordem crescente."
+L["STRING_REPORTFRAME_SAY"] = "Dizer"
+L["STRING_REPORTFRAME_SEND"] = "Enviar"
+L["STRING_REPORTFRAME_WHISPER"] = "Sussurrar"
+L["STRING_REPORTFRAME_WHISPERTARGET"] = "Sussurrar o Alvo"
+L["STRING_REPORTFRAME_WINDOW_TITLE"] = "Emitir Relatório"
+L["STRING_REPORTHISTORY"] = "Histórico"
+L["STRING_RESISTED"] = "Resistido"
+L["STRING_RESIZE_ALL"] = [=[Redimensiona livremente
+ e reajusta todas as janelas]=]
+L["STRING_RESIZE_COMMON"] = [=[Redimensiona livremente
+]=]
+L["STRING_RESIZE_HORIZONTAL"] = [=[Redimensiona a largura
+ de todas as janelas na linha horizontal]=]
+L["STRING_RESIZE_VERTICAL"] = [=[Redimensiona a altura
+ de todas as janelas na linha horizontal]=]
+L["STRING_RIGHT"] = "direita"
+L["STRING_RIGHT_TO_LEFT"] = "Direita para Esquerda"
+L["STRING_RIGHTCLICK_CLOSE_LARGE"] = "Clique com o botão direito do mouse para fechar esta janela."
+L["STRING_RIGHTCLICK_CLOSE_MEDIUM"] = "Use o botão direito para fechar esta janela."
+L["STRING_RIGHTCLICK_CLOSE_SHORT"] = "Botão direito para fechar."
+L["STRING_RIGHTCLICK_TYPEVALUE"] = "botão direito para digitar o valor"
+L["STRING_SCORE_BEST"] = "você fez |cFFFFFF00%d|r, você bateu seu recorde, parabéns!"
+L["STRING_SCORE_NOTBEST"] = [=[você fez |cFFFFFF00%d|r, seu recorde é |cFFFFFF00%d|r em %d com %d de item level.
+]=]
+L["STRING_SEE_BELOW"] = "veja abaixo"
+L["STRING_SEGMENT"] = "Segmento"
+L["STRING_SEGMENT_EMPTY"] = "este segmento esta vazio"
+L["STRING_SEGMENT_END"] = "Fim"
+L["STRING_SEGMENT_ENEMY"] = "Contra"
+L["STRING_SEGMENT_LOWER"] = "segmento"
+L["STRING_SEGMENT_OVERALL"] = "Dados Gerais"
+L["STRING_SEGMENT_START"] = "Inicio"
+L["STRING_SEGMENT_TRASH"] = "Limpeza de Trash"
+L["STRING_SEGMENTS"] = "Segmentos"
+L["STRING_SEGMENTS_LIST_BOSS"] = "chefe"
+L["STRING_SEGMENTS_LIST_COMBATTIME"] = "Tempo do Combate"
+L["STRING_SEGMENTS_LIST_OVERALL"] = "tudo"
+L["STRING_SEGMENTS_LIST_TIMEINCOMBAT"] = "Tempo em Combate"
+L["STRING_SEGMENTS_LIST_TOTALTIME"] = "Tempo Total"
+L["STRING_SEGMENTS_LIST_TRASH"] = "trash"
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_WASTED_TIME"] = ""--]]
+L["STRING_SHIELD_HEAL"] = "Prevenido"
+L["STRING_SHIELD_OVERHEAL"] = "Desperdiçado"
+L["STRING_SHORTCUT_RIGHTCLICK"] = "Menu de Atalho (botão direito para fechar)"
+L["STRING_SLASH_API_DESC"] = "abre o painel da API (em inglês) para construir plugins, displays customizados, auras, etc."
+L["STRING_SLASH_CAPTURE_DESC"] = "liga ou desliga toda captura de dados."
+L["STRING_SLASH_CAPTUREOFF"] = "todas as capturas foram desligadas."
+L["STRING_SLASH_CAPTUREON"] = "todas as capturas foram ligadas."
+L["STRING_SLASH_CHANGES"] = "updates"
+L["STRING_SLASH_CHANGES_ALIAS1"] = "novidades"
+L["STRING_SLASH_CHANGES_ALIAS2"] = "mudanças"
+L["STRING_SLASH_CHANGES_DESC"] = "mostra o que foi implementado e corrigido nesta versão do Details."
+L["STRING_SLASH_DISABLE"] = "desativar"
+L["STRING_SLASH_ENABLE"] = "ativa"
+L["STRING_SLASH_HIDE"] = "esconder"
+L["STRING_SLASH_HIDE_ALIAS1"] = "fechar"
+L["STRING_SLASH_HISTORY"] = "historico"
+L["STRING_SLASH_NEW"] = "novo"
+L["STRING_SLASH_NEW_DESC"] = "abre ou reabre uma janela."
+L["STRING_SLASH_OPTIONS"] = "opções"
+L["STRING_SLASH_OPTIONS_DESC"] = "abre o painel de opções."
+L["STRING_SLASH_RESET"] = "resetar"
+L["STRING_SLASH_RESET_ALIAS1"] = "limpar"
+L["STRING_SLASH_RESET_DESC"] = "apagar todos os segmentos."
+L["STRING_SLASH_SHOW"] = "mostrar"
+L["STRING_SLASH_SHOW_ALIAS1"] = "abrir"
+L["STRING_SLASH_SHOWHIDETOGGLE_DESC"] = "todas as janelas se não for passado."
+L["STRING_SLASH_TOGGLE"] = "alternar"
+L["STRING_SLASH_WIPE"] = "wipe"
+L["STRING_SLASH_WIPECONFIG"] = "reinstalar"
+L["STRING_SLASH_WIPECONFIG_CONFIRM"] = "Continuar com a reinstalação?."
+L["STRING_SLASH_WIPECONFIG_DESC"] = "faz a reinstalação do addon limpando toda a configuração, use caso o Details! não esteja funcionando corretamente."
+L["STRING_SLASH_WORLDBOSS"] = "worldboss"
+L["STRING_SLASH_WORLDBOSS_DESC"] = "executa uma macro mostrando quais 'world boss' você matou esta semana."
+L["STRING_SPELL_INTERRUPTED"] = "Magias Interrompidas"
+L["STRING_SPELLLIST"] = "Lista de feitiços"
+L["STRING_SPELLS"] = "Habilidades"
+L["STRING_SPIRIT_LINK_TOTEM"] = "Troca de Vida"
+L["STRING_SPIRIT_LINK_TOTEM_DESC"] = [=[Quantidade de vida trocada entre
+jogadores dentro do círculo do totem.
+
+Esta cura não é adicionada ao
+total curado do jogador.]=]
+L["STRING_STATISTICS"] = "Estatísticas"
+L["STRING_STATUSBAR_NOOPTIONS"] = "Não há opcoes para esta ferramenta."
+L["STRING_SWITCH_CLICKME"] = "clique-me"
+L["STRING_SWITCH_SELECTMSG"] = "Selecione o display para o atalho #%d."
+L["STRING_SWITCH_TO"] = "Mudar Para"
+L["STRING_SWITCH_WARNING"] = "Especialização Alterada. Trocando: |cFFFFAA00%s|r "
+L["STRING_TARGET"] = "Alvo"
+L["STRING_TARGETS"] = "Alvos"
+L["STRING_TARGETS_OTHER1"] = "Ajudantes e Outros Alvos"
+L["STRING_TEXTURE"] = "Textura"
+L["STRING_TIME_OF_DEATH"] = "Morreu"
+L["STRING_TOOOLD"] = "não pode ser instalado pois sua versão do Details! e muito antiga."
+L["STRING_TOP"] = "topo"
+L["STRING_TOP_TO_BOTTOM"] = "Cima para Baixo"
+L["STRING_TOTAL"] = "Total"
+L["STRING_TRANSLATE_LANGUAGE"] = "Ajude a traduzir o Details!"
+L["STRING_TUTORIAL_FULLY_DELETE_WINDOW"] = [=[Você fechou uma janela e pode reabri-la quando quiser.
+Para deleta-la por completo, vá nas opções -> Janela: Geral -> Deletar.]=]
+L["STRING_TUTORIAL_OVERALL1"] = "ajuste o overall no painel de opções > PvE/PvP."
+L["STRING_UNKNOW"] = "Desconhecido"
+L["STRING_UNKNOWSPELL"] = "Magia Desconhecida"
+L["STRING_UNLOCK"] = [=[Separe as janelas
+neste botão]=]
+L["STRING_UNLOCK_WINDOW"] = "destravar"
+L["STRING_UPTADING"] = "atualizando"
+L["STRING_VERSION_AVAILABLE"] = "uma nova versão está disponível. Baixe pelo aplicativo da Twitch ou pelo site da Curse."
+L["STRING_VERSION_UPDATE"] = "nova versão: clique para ver o que mudou"
+L["STRING_VOIDZONE_TOOLTIP"] = "Dano e tempo:"
+L["STRING_WAITPLUGIN"] = [=[esperando por
+plugins]=]
+L["STRING_WAVE"] = "onda"
+L["STRING_WELCOME_1"] = [=[|cFFFFFFFFBem vindo ao Details! Setup Rápido
+
+|rEste guia ira ajuda-la a configurar rapidamente aspectos básicos desde addon.
+Você pode pular este guia a qualquer momento clicando no botão de cancelar.]=]
+L["STRING_WELCOME_11"] = "se você mudar de ideia, você pode mudar novamente no painel de opcoes"
+L["STRING_WELCOME_12"] = "Aqui você pode escolher o tempo de intervalo entre cada atualização da janela."
+L["STRING_WELCOME_13"] = ""
+L["STRING_WELCOME_14"] = "Intervalo de Atualização"
+L["STRING_WELCOME_15"] = [=[tempo entre cada atualização,
+uso da cpu pode |cFFFF9900aumentar levemente|r com valores muito baixos
+e |cFF00FF00ter redução|r com valores mais altos.]=]
+L["STRING_WELCOME_16"] = "Animar Barras"
+L["STRING_WELCOME_17"] = [=[ativa ou desativa as animações das barras.
+uso da cpu pode |cFFFF9900aumentar levemente|r com esta opção ligada.]=]
+L["STRING_WELCOME_2"] = "se você mudar de ideia, você pode mudar novamente no painel de opcoes"
+L["STRING_WELCOME_26"] = "Usando a Interface: Esticar"
+L["STRING_WELCOME_27"] = [=[- Quando o mouse esta sobre a janela, um |cFFFFFF00gancho|r aparecera no canto direito superior da janela. |cFFFFFF00Clique, segure e arraste|r para cima |cFFFFFF00para esticar|r a janela, soltando o clique o mouse |cFFFFFF00a janela volta ao tamanho original|r.
+
+- Se você sente falta da |cFFFFBB00barra de rolagem|r, você pode ativa-la no painel de opcoes.]=]
+L["STRING_WELCOME_28"] = "Usando a Interface: Botão de janelas"
+L["STRING_WELCOME_29"] = [=[Botão de janelas e usado para:
+
+- mostrar |cFFFFFF00qual janela|r ele eh, através do |cFFFFFF00#numero|r,
+- abrir uma |cFFFFFF00nova janela do Details!|r quando clicado.
+- mostrado um menu das |cFFFFFF00janelas que estão fechadas|r para reabri-las.]=]
+L["STRING_WELCOME_3"] = "Escolha o método de DPS e HPS preferido:"
+L["STRING_WELCOME_30"] = "Usando a Interface: Atalhos"
+L["STRING_WELCOME_31"] = [=[- Clicando com o Direito |cFFFFFF00em uma barra ou na janela|r abre |cFFFFFF00o menu de atalhos|r.
+- Voce pode escolher o |cFFFFFF00atributo|r que o atalho terá |cFFFFFF00clicando com o botão direito|r no seu ícone.
+- Botão esquerdo |cFFFFFF00troca para aquele atributo|r
+- Botão direito fecha o painel de atalhos.]=]
+L["STRING_WELCOME_32"] = "Usando a Interface: Agrupar Janelas"
+L["STRING_WELCOME_34"] = "Usando a Interface: Mini Displays"
+L["STRING_WELCOME_36"] = "Usando a Interface: Plugins"
+L["STRING_WELCOME_38"] = "Pronto Para Jogar!"
+L["STRING_WELCOME_39"] = [=[Obrigado por escolher o Details!
+
+Sinta-se a vontade para nos enviar feedbacks do que achou deste addon (|cFFBBFFFFno quinto botão, um azul|r).]=]
+L["STRING_WELCOME_4"] = "Atividade: "
+L["STRING_WELCOME_41"] = "Alguns ajustes bacanas na interface:"
+L["STRING_WELCOME_42"] = "Ajustes na Aparência"
+L["STRING_WELCOME_43"] = "Escolha sua Skin preferida:"
+L["STRING_WELCOME_44"] = "Papel de Parede"
+L["STRING_WELCOME_45"] = "Para mais ajustes na aparência, veja o painel de opcoes."
+L["STRING_WELCOME_46"] = "Importar Definições"
+L["STRING_WELCOME_5"] = "Efetividade: "
+L["STRING_WELCOME_57"] = "Importa configurações básicas de complementos já instalados."
+L["STRING_WELCOME_58"] = [=[Predefinições de configurações de aparência.
+ |cFFFFFF00Importante|r: todas as configurações podem ser alteradas mais tarde através do painel de opções.]=]
+L["STRING_WELCOME_59"] = "Ativar o papel de parece no fundo da janela."
+L["STRING_WELCOME_6"] = "o tempo do jogador e posto em pausa quando sua atividade e interrompida voltando a contar seu tempo quando voltar a atividade, método mais comum."
+L["STRING_WELCOME_60"] = "Apelido e Avatar"
+L["STRING_WELCOME_61"] = "Avatares são mostrados acima dos tooltips e também na janela de detalhes do jogador."
+L["STRING_WELCOME_62"] = "Ambos são enviados para membros da guilda que também utilizam Details!. O apelido substitui o nome do personagem."
+L["STRING_WELCOME_63"] = "Atualização Rápida de Dps/Hps"
+L["STRING_WELCOME_64"] = "Quando ativado, Dps e Hps mostrado é atualizado mais rápido do que o total de dano e cura."
+L["STRING_WELCOME_65"] = "Pressione o Botão Direito!"
+L["STRING_WELCOME_66"] = [=[Arraste a janela perto de outra para formar um grupo.
+
+Janelas agrupadas esticam e redimensionam juntas.
+
+Elas também são mais felizes como um casal.]=]
+L["STRING_WELCOME_67"] = [=[Pressionando shift, expande o tooltip mostrando todas as magias..
+
+Ctrl para alvos e Alt para ajudantes.]=]
+L["STRING_WELCOME_68"] = [=[Details! esta infestado
+por uma praga chamada 'Plugins'.
+
+Eles estão em toda parte e
+ajudam você com muitas tarefas.
+
+Alguns exemplos: medidor de ameaça, analise de Dps, sumário de chefes, criação de gráficos e mais.]=]
+L["STRING_WELCOME_69"] = "Pular"
+L["STRING_WELCOME_7"] = "usado em rankings, este método usa o tempo total da luta para medir o Dps e Hps de todos os membros da raide."
+L["STRING_WELCOME_70"] = "Config da Barra de Título"
+L["STRING_WELCOME_71"] = "Config das Barras"
+L["STRING_WELCOME_72"] = "Config das Janelas"
+L["STRING_WELCOME_73"] = "Selecione o alfabeto ou região"
+L["STRING_WELCOME_74"] = "Alfabeto latino"
+L["STRING_WELCOME_75"] = "Alfabeto cirílico"
+L["STRING_WELCOME_76"] = "China"
+L["STRING_WELCOME_77"] = "Coréia"
+L["STRING_WELCOME_78"] = "Taiwan"
+L["STRING_WELCOME_79"] = "Criar segunda janela"
+L["STRING_WINDOW_NOTFOUND"] = "Nenhuma janela encontrada."
+L["STRING_WINDOW_NUMBER"] = "número da janela"
+L["STRING_WINDOW1ATACH_DESC"] = "Para criar um grupo de janelas, mova a janela #2 para perto da janela #1."
+L["STRING_WIPE_ALERT"] = "Líder da Raide: Wipe!"
+L["STRING_WIPE_ERROR1"] = "um wipe já foi chamado."
+L["STRING_WIPE_ERROR2"] = "não estamos em um chefe de raide."
+L["STRING_WIPE_ERROR3"] = "não foi possível finalizar o encontro."
+L["STRING_YES"] = "Sim"
+
diff --git a/locales/Details-ruRU.lua b/locales/Details-ruRU.lua
index e9aa2868..7e7f9ce4 100644
--- a/locales/Details-ruRU.lua
+++ b/locales/Details-ruRU.lua
@@ -1,4 +1,1680 @@
local L = LibStub("AceLocale-3.0"):NewLocale("Details", "ruRU")
if not L then return end
-@localization(locale="ruRU", format="lua_additive_table")@
\ No newline at end of file
+L["ABILITY_ID"] = "id способности"
+L["STRING_"] = "_"
+L["STRING_ABSORBED"] = "Поглощено"
+L["STRING_ACTORFRAME_NOTHING"] = "к сожалению, нет данных для отчета :("
+L["STRING_ACTORFRAME_REPORTAT"] = "на"
+L["STRING_ACTORFRAME_REPORTOF"] = "от"
+L["STRING_ACTORFRAME_REPORTTARGETS"] = "отчёт для целей из"
+L["STRING_ACTORFRAME_REPORTTO"] = "отчёт для"
+L["STRING_ACTORFRAME_SPELLDETAILS"] = "Подробнее о заклинании"
+L["STRING_ACTORFRAME_SPELLSOF"] = "Заклинания"
+L["STRING_ACTORFRAME_SPELLUSED"] = "Все произнесенные заклинания"
+L["STRING_AGAINST"] = "против"
+L["STRING_ALIVE"] = "Живой"
+L["STRING_ALPHA"] = "Альфа"
+L["STRING_ANCHOR_BOTTOM"] = "Снизу"
+L["STRING_ANCHOR_BOTTOMLEFT"] = "Снизу слева"
+L["STRING_ANCHOR_BOTTOMRIGHT"] = "Снизу справа"
+L["STRING_ANCHOR_LEFT"] = "Cлева"
+L["STRING_ANCHOR_RIGHT"] = "Cправа"
+L["STRING_ANCHOR_TOP"] = "Cверху"
+L["STRING_ANCHOR_TOPLEFT"] = "Вверху cлева"
+L["STRING_ANCHOR_TOPRIGHT"] = "Вверху cправа"
+L["STRING_ASCENDING"] = "По возрастанию"
+L["STRING_ATACH_DESC"] = "Окно #%d создает группу с окном #%d."
+L["STRING_ATTRIBUTE_CUSTOM"] = "Пользовательское"
+L["STRING_ATTRIBUTE_DAMAGE"] = "Урон"
+L["STRING_ATTRIBUTE_DAMAGE_BYSPELL"] = "Урон, полученный от заклинаний"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS"] = "Ауры и войдзоны"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS_REPORT"] = "Урон дебаффа и время"
+L["STRING_ATTRIBUTE_DAMAGE_DONE"] = "Нанесённый урон"
+L["STRING_ATTRIBUTE_DAMAGE_DPS"] = "УВС"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES"] = "Получено урона врагом"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES_DONE"] = "Нанесенo урона врагом"
+L["STRING_ATTRIBUTE_DAMAGE_FRAGS"] = "Убийства"
+L["STRING_ATTRIBUTE_DAMAGE_FRIENDLYFIRE"] = "Урон по союзникам"
+L["STRING_ATTRIBUTE_DAMAGE_TAKEN"] = "Полученный урон"
+L["STRING_ATTRIBUTE_ENERGY"] = "Ресурсы"
+L["STRING_ATTRIBUTE_ENERGY_ALTERNATEPOWER"] = "Альтернативная сила"
+L["STRING_ATTRIBUTE_ENERGY_ENERGY"] = "Получено: Энергия"
+L["STRING_ATTRIBUTE_ENERGY_MANA"] = "Получено: Мана"
+L["STRING_ATTRIBUTE_ENERGY_RAGE"] = "Получено: Ярость"
+L["STRING_ATTRIBUTE_ENERGY_RESOURCES"] = "Прочие ресурсы"
+L["STRING_ATTRIBUTE_ENERGY_RUNEPOWER"] = "Получено: Сила рун"
+L["STRING_ATTRIBUTE_HEAL"] = "Исцеление"
+L["STRING_ATTRIBUTE_HEAL_ABSORBED"] = "Исцеления поглощено"
+L["STRING_ATTRIBUTE_HEAL_DONE"] = "Исцеление"
+L["STRING_ATTRIBUTE_HEAL_ENEMY"] = "Произведено исцеления врагом"
+L["STRING_ATTRIBUTE_HEAL_HPS"] = "ИВС"
+L["STRING_ATTRIBUTE_HEAL_OVERHEAL"] = "Избыточное исцеление"
+L["STRING_ATTRIBUTE_HEAL_PREVENT"] = "Урона предотвращено"
+L["STRING_ATTRIBUTE_HEAL_TAKEN"] = "Получено лечения"
+L["STRING_ATTRIBUTE_MISC"] = "Разное"
+L["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"] = "Время действия баффов"
+L["STRING_ATTRIBUTE_MISC_CCBREAK"] = "Сбитие контроля"
+L["STRING_ATTRIBUTE_MISC_DEAD"] = "Смерти"
+L["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"] = "Время действия дебаффов"
+L["STRING_ATTRIBUTE_MISC_DEFENSIVE_COOLDOWNS"] = "Кулдауны"
+L["STRING_ATTRIBUTE_MISC_DISPELL"] = "Рассеивания"
+L["STRING_ATTRIBUTE_MISC_INTERRUPT"] = "Прерывания"
+L["STRING_ATTRIBUTE_MISC_RESS"] = "Воскрешения"
+L["STRING_AUTO"] = "автo"
+L["STRING_AUTOSHOT"] = "Автоматическая стрельба"
+L["STRING_AVERAGE"] = "В среднем"
+L["STRING_BLOCKED"] = "Заблокировано"
+L["STRING_BOTTOM"] = "Cнизу"
+L["STRING_BOTTOM_TO_TOP"] = "Снизу вверх"
+L["STRING_CAST"] = "Произнесено"
+L["STRING_CAUGHT"] = "поймал"
+L["STRING_CCBROKE"] = "Спадение контроля"
+L["STRING_CENTER"] = "центр"
+L["STRING_CENTER_UPPER"] = "Центр"
+L["STRING_CHANGED_TO_CURRENT"] = "Сегмент изменен: |cFFFFFF00Текущий|r"
+L["STRING_CHANNEL_PRINT"] = "Наблюдатель"
+L["STRING_CHANNEL_RAID"] = "Рeйд"
+L["STRING_CHANNEL_SAY"] = "Сказать"
+L["STRING_CHANNEL_WHISPER"] = "Шепот"
+L["STRING_CHANNEL_WHISPER_TARGET_COOLDOWN"] = "Шепнуть цели кулдаун"
+L["STRING_CHANNEL_YELL"] = "Крикнуть"
+L["STRING_CLICK_REPORT_LINE1"] = "|cFFFFCC22Щелчок|r: |cFFFFEE00отчет|r"
+L["STRING_CLICK_REPORT_LINE2"] = "|cFFFFCC22Shift+Щелчок|r: |cFFFFEE00режим окна|r"
+L["STRING_CLOSEALL"] = "Все окна закрыты, вы можете ввести '/details show', чтобы снова открыть."
+L["STRING_COLOR"] = "Цвет"
+L["STRING_COMMAND_LIST"] = "список кoманд"
+L["STRING_COOLTIP_NOOPTIONS"] = "нет параметров"
+L["STRING_CREATEAURA"] = "Создать ауру"
+L["STRING_CRITICAL_HITS"] = "Критические попадания"
+L["STRING_CRITICAL_ONLY"] = "критический"
+L["STRING_CURRENT"] = "Текущий"
+L["STRING_CURRENTFIGHT"] = "Текущий сегмент"
+L["STRING_CUSTOM_ACTIVITY_ALL"] = "Активный режим"
+L["STRING_CUSTOM_ACTIVITY_ALL_DESC"] = "Показывает результаты активности для каждого игрока в рейдовой группе."
+L["STRING_CUSTOM_ACTIVITY_DPS"] = "Урон (активность)"
+L["STRING_CUSTOM_ACTIVITY_DPS_DESC"] = "Сообщает, сколько времени каждый персонаж провел на нанесение урона."
+L["STRING_CUSTOM_ACTIVITY_HPS"] = "Исцеление (активность)"
+L["STRING_CUSTOM_ACTIVITY_HPS_DESC"] = "Сообщает, сколько времени каждый персонаж провел, делая исцеление."
+L["STRING_CUSTOM_ATTRIBUTE_DAMAGE"] = "Урон"
+L["STRING_CUSTOM_ATTRIBUTE_HEAL"] = "Исцеление"
+L["STRING_CUSTOM_ATTRIBUTE_SCRIPT"] = "Свой скрипт"
+L["STRING_CUSTOM_AUTHOR"] = "Автор:"
+L["STRING_CUSTOM_AUTHOR_DESC"] = "Кто создал этот дисплей."
+L["STRING_CUSTOM_CANCEL"] = "Oтменить"
+L["STRING_CUSTOM_CC_DONE"] = "Контроль толпы сделано"
+L["STRING_CUSTOM_CC_RECEIVED"] = "Контроль толпы получено"
+L["STRING_CUSTOM_CREATE"] = "Создать"
+L["STRING_CUSTOM_CREATED"] = "Новый дисплей был создан."
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET"] = "Наносимый урон на другие помеченные метки"
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET_DESC"] = "Показывает количество наносимого урона по целям, отмеченным любой другой меткой."
+L["STRING_CUSTOM_DAMAGEONSHIELDS"] = "Наносимый урон по щитам"
+L["STRING_CUSTOM_DAMAGEONSKULL"] = "Наносимый урон по метки с черепом"
+L["STRING_CUSTOM_DAMAGEONSKULL_DESC"] = "Показывает количество наносимого урона по целям, меткой с черепом."
+L["STRING_CUSTOM_DESCRIPTION"] = "Описaние:"
+L["STRING_CUSTOM_DESCRIPTION_DESC"] = "Описание того, что делает этот дисплей."
+L["STRING_CUSTOM_DONE"] = "Готoво"
+L["STRING_CUSTOM_DTBS"] = "Урон, полученный от заклинаний"
+L["STRING_CUSTOM_DTBS_DESC"] = "Показать урон от вражеских заклинаний, полученный вашей группой "
+L["STRING_CUSTOM_DYNAMICOVERAL"] = "Динамический общий урон"
+L["STRING_CUSTOM_EDIT"] = "Редактировать"
+L["STRING_CUSTOM_EDIT_SEARCH_CODE"] = "Изменить поиск кода"
+L["STRING_CUSTOM_EDIT_TOOLTIP_CODE"] = "Изменить код подсказки"
+L["STRING_CUSTOM_EDITCODE_DESC"] = "Это дополнительная функция, где пользователь может создать свой собственный код дисплея."
+L["STRING_CUSTOM_EDITTOOLTIP_DESC"] = "Это код подсказки, выполняется, когда пользователь наводит указатель мыши на полосу."
+L["STRING_CUSTOM_ENEMY_DT"] = "Пoлучено урона"
+L["STRING_CUSTOM_EXPORT"] = "Экспорт"
+L["STRING_CUSTOM_FUNC_INVALID"] = "Пользовательский скрипт недопустим и не может обновить окно."
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT"] = "Лечебное зелье и камень"
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT_DESC"] = "Показать, кто в вашей рейдовой группе использовал камень здоровья или целебное зелье."
+L["STRING_CUSTOM_ICON"] = "Икoнка:"
+L["STRING_CUSTOM_IMPORT"] = "Импорт"
+L["STRING_CUSTOM_IMPORT_ALERT"] = "Дисплей загружен, нажмите для подтверждения импорта."
+L["STRING_CUSTOM_IMPORT_BUTTON"] = "Импорт"
+L["STRING_CUSTOM_IMPORT_ERROR"] = "Ошибка импорта, недопустимая строка."
+L["STRING_CUSTOM_IMPORTED"] = "Дисплей успешно импортирован."
+L["STRING_CUSTOM_LONGNAME"] = "Имя слишком длинное, максимально допустимое 32 символа."
+L["STRING_CUSTOM_MYSPELLS"] = "Мои заклинания"
+L["STRING_CUSTOM_MYSPELLS_DESC"] = "Показать свои заклинания в окне."
+L["STRING_CUSTOM_NAME"] = "Название:"
+L["STRING_CUSTOM_NAME_DESC"] = "Введите имя нового пользовательского дисплея."
+L["STRING_CUSTOM_NEW"] = "Управление настраиваемыми дисплеями"
+L["STRING_CUSTOM_PASTE"] = "Вставить сюда:"
+L["STRING_CUSTOM_POT_DEFAULT"] = "Использовано зелий"
+L["STRING_CUSTOM_POT_DEFAULT_DESC"] = "Показать, кто в вашем рейде использовал зелье во время сражения."
+L["STRING_CUSTOM_REMOVE"] = "Удалить"
+L["STRING_CUSTOM_REPORT"] = "(своё)"
+L["STRING_CUSTOM_SAVE"] = "Сохранить изменения"
+L["STRING_CUSTOM_SAVED"] = "Дисплей сохранен."
+L["STRING_CUSTOM_SHORTNAME"] = "Имя должно содержать не менее 5 символов."
+L["STRING_CUSTOM_SKIN_TEXTURE"] = "Файл вашего скина"
+L["STRING_CUSTOM_SKIN_TEXTURE_DESC"] = [=[Расширение файла .tga
+
+Файл должен быть размещен в папке:
+
+|cFFFFFF00WoW/Interface/|r
+
+|cFFFFFF00Важно:|r перед созданием файла закройте свой игровой клиент. После этого, напишите /reload далее будет принятие изменений, сохраненные в файле текстуры.]=]
+L["STRING_CUSTOM_SOURCE"] = "Источник:"
+L["STRING_CUSTOM_SOURCE_DESC"] = [=[Кто вызывал эффект.
+
+Кнопка справа показывает список нипов из сражения в рейде.]=]
+L["STRING_CUSTOM_SPELLID"] = "Id Заклинание:"
+L["STRING_CUSTOM_SPELLID_DESC"] = [=[Необязательно, что используемое заклинание, используется источником для применения эффекта к цели.
+
+Кнопка справа показывает список заклинаний из рейдовых сражений.]=]
+L["STRING_CUSTOM_TARGET"] = "Цель:"
+L["STRING_CUSTOM_TARGET_DESC"] = [=[Эта цель источник.
+
+Кнопка справа показывает список нипов из сражений в рейде.]=]
+L["STRING_CUSTOM_TEMPORARILY"] = "(|cFFFFC000временно|r)"
+L["STRING_DAMAGE"] = "Урон"
+L["STRING_DAMAGE_DPS_IN"] = "Урон, полученный от "
+L["STRING_DAMAGE_FROM"] = "Получил урон от"
+L["STRING_DAMAGE_TAKEN_FROM"] = "Урон, полученный от"
+L["STRING_DAMAGE_TAKEN_FROM2"] = "принятый урон с"
+L["STRING_DEFENSES"] = "Защита"
+L["STRING_DESCENDING"] = "По убыванию"
+L["STRING_DETACH_DESC"] = "Разделить группу окон"
+L["STRING_DISCARD"] = "Отказаться"
+L["STRING_DISPELLED"] = "Баффы/Дебафы удалены"
+L["STRING_DODGE"] = "Уклонение"
+L["STRING_DOT"] = "(ДоТ)"
+L["STRING_DPS"] = "УВС"
+L["STRING_EMPTY_SEGMENT"] = "Пустой сегмент"
+L["STRING_ENABLED"] = "Включить"
+L["STRING_ENVIRONMENTAL_DROWNING"] = "Мир (утопление)"
+L["STRING_ENVIRONMENTAL_FALLING"] = "Мир (падение)"
+L["STRING_ENVIRONMENTAL_FATIGUE"] = "Мир (усталость)"
+L["STRING_ENVIRONMENTAL_FIRE"] = "Мир (огонь)"
+L["STRING_ENVIRONMENTAL_LAVA"] = "Мир (лава)"
+L["STRING_ENVIRONMENTAL_SLIME"] = "Мир (слизь)"
+L["STRING_EQUILIZING"] = "Обмен данными при сражении"
+L["STRING_ERASE"] = "удалить"
+L["STRING_ERASE_DATA"] = "Сброс всех данных"
+L["STRING_ERASE_DATA_OVERALL"] = "Полный сброс данных"
+L["STRING_ERASE_IN_COMBAT"] = "Запланированная полная очистка после текущего боя."
+L["STRING_EXAMPLE"] = "Пример"
+L["STRING_EXPLOSION"] = "взрыв"
+L["STRING_FAIL_ATTACKS"] = "Неудачные атаки"
+L["STRING_FEEDBACK_CURSE_DESC"] = "Откройте тикет или оставьте сообщение на странице Details!."
+L["STRING_FEEDBACK_MMOC_DESC"] = "Напишите в нашей теме на форуме mmo-champion."
+L["STRING_FEEDBACK_PREFERED_SITE"] = "Выберите предпочитаемый сайт сообщества (англ):"
+L["STRING_FEEDBACK_SEND_FEEDBACK"] = "Отправить отзыв"
+L["STRING_FEEDBACK_WOWI_DESC"] = "Оставить комментарий на странице проекта Details! "
+L["STRING_FIGHTNUMBER"] = "Бой #"
+L["STRING_FORGE_BUTTON_ALLSPELLS"] = "Все заклинания"
+L["STRING_FORGE_BUTTON_ALLSPELLS_DESC"] = "Список всех заклинаний от игроков и НИПов."
+L["STRING_FORGE_BUTTON_BWTIMERS"] = "Таймеры BigWigs"
+L["STRING_FORGE_BUTTON_BWTIMERS_DESC"] = "Список таймеров из BigWigs"
+L["STRING_FORGE_BUTTON_DBMTIMERS"] = "Таймеры DBM"
+L["STRING_FORGE_BUTTON_DBMTIMERS_DESC"] = "Список таймеров из Deadly Boss Mods"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS"] = "Заклинания босса"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS_DESC"] = "Список заклинаний из рейда и подземелий с сражений."
+L["STRING_FORGE_BUTTON_ENEMIES"] = "Враги"
+L["STRING_FORGE_BUTTON_ENEMIES_DESC"] = "Список врагов из текущего боя."
+L["STRING_FORGE_BUTTON_PETS"] = "Питомцы"
+L["STRING_FORGE_BUTTON_PETS_DESC"] = "Список питомцев из текущего боя."
+L["STRING_FORGE_BUTTON_PLAYERS"] = "Игроки"
+L["STRING_FORGE_BUTTON_PLAYERS_DESC"] = "Список игроков из текущего боя."
+L["STRING_FORGE_ENABLEPLUGINS"] = "\"Пожалуйста, включите плагины Details! с именами рейдов Главное меню > Модификации, к примеру Details: Tomb of Sargeras.\""
+L["STRING_FORGE_FILTER_BARTEXT"] = "Имя полос"
+L["STRING_FORGE_FILTER_CASTERNAME"] = "Имя заклинателя"
+L["STRING_FORGE_FILTER_ENCOUNTERNAME"] = "Имя сражения"
+L["STRING_FORGE_FILTER_ENEMYNAME"] = "Имя врага"
+L["STRING_FORGE_FILTER_OWNERNAME"] = "Имя владельца"
+L["STRING_FORGE_FILTER_PETNAME"] = "Имя питомца"
+L["STRING_FORGE_FILTER_PLAYERNAME"] = "Имя игрока"
+L["STRING_FORGE_FILTER_SPELLNAME"] = "Название заклинания"
+L["STRING_FORGE_HEADER_BARTEXT"] = "Текст полос"
+L["STRING_FORGE_HEADER_CASTER"] = "Заклинатель"
+L["STRING_FORGE_HEADER_CLASS"] = "Класс"
+L["STRING_FORGE_HEADER_CREATEAURA"] = "Создать ауру"
+L["STRING_FORGE_HEADER_ENCOUNTERID"] = "ID сражения"
+L["STRING_FORGE_HEADER_ENCOUNTERNAME"] = "Имя сражения"
+L["STRING_FORGE_HEADER_EVENT"] = "Событие"
+L["STRING_FORGE_HEADER_FLAG"] = "Флаг"
+L["STRING_FORGE_HEADER_GUID"] = "ГУИ"
+L["STRING_FORGE_HEADER_ICON"] = "Значок"
+L["STRING_FORGE_HEADER_ID"] = "ID"
+L["STRING_FORGE_HEADER_INDEX"] = "Индекс"
+L["STRING_FORGE_HEADER_NAME"] = "Имя"
+L["STRING_FORGE_HEADER_NPCID"] = "ID Нипа"
+L["STRING_FORGE_HEADER_OWNER"] = "Владелец"
+L["STRING_FORGE_HEADER_SCHOOL"] = "Школа"
+L["STRING_FORGE_HEADER_SPELLID"] = "ID Заклин."
+L["STRING_FORGE_HEADER_TIMER"] = "Таймер"
+L["STRING_FORGE_TUTORIAL_DESC"] = [=[Просматривайте заклинания и босс мод таймеры, чтобы создать ауры, нажмите по
+
+'|cFFFFFF00Создать ауру|r'.]=]
+L["STRING_FORGE_TUTORIAL_TITLE"] = "Добро пожаловать в кузницу Details!"
+L["STRING_FORGE_TUTORIAL_VIDEO"] = "Пример ауры с использованием босс мод таймерами:"
+L["STRING_FREEZE"] = "Этот сегмент на данный момент недоступен"
+L["STRING_FROM"] = "От"
+L["STRING_GERAL"] = "Общие"
+L["STRING_GLANCING"] = "Вскользь"
+L["STRING_GUILDDAMAGERANK_BOSS"] = "Босс"
+L["STRING_GUILDDAMAGERANK_DATABASEERROR"] = [=[Не удается открыть '|cFFFFFF00Details! хранение|r', может аддон
+отключен?]=]
+L["STRING_GUILDDAMAGERANK_DIFF"] = "Сложность"
+L["STRING_GUILDDAMAGERANK_GUILD"] = "Гильдия"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE"] = "База игроков"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_INDIVIDUAL"] = "Индивидуальный"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_PLAYER"] = "Игрок"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_RAID"] = "Все игроки"
+L["STRING_GUILDDAMAGERANK_RAID"] = "Рейд"
+L["STRING_GUILDDAMAGERANK_ROLE"] = "Роль"
+L["STRING_GUILDDAMAGERANK_SHOWHISTORY"] = "Показать историю"
+L["STRING_GUILDDAMAGERANK_SHOWRANK"] = "Показать ранг гильдии"
+L["STRING_GUILDDAMAGERANK_SYNCBUTTONTEXT"] = "Синхронизация с гильдией"
+L["STRING_GUILDDAMAGERANK_TUTORIAL_DESC"] = [=[Details! хранит урон и исцеление с каждого босса, с которым сражалась ваша гильдия.
+
+Чтобы посмотреть историю, установите флажок на '|cFFFFFF00Показать историю|r' будут показаны результаты всех боев.
+Путем выбора '|cFFFFFF00Показать ранг гильдии|r' будут показаны высшие очки для выбранного босса.
+
+Если вы используете данный инструмент в первый раз или, вы пропустили день рейда, нажмите на кнопку '|cFFFFFF00Синхронизация с гильдией|r'.]=]
+L["STRING_GUILDDAMAGERANK_WINDOWALERT"] = "Босс побежден! показать рейтинг"
+L["STRING_HEAL"] = "Исцеление"
+L["STRING_HEAL_ABSORBED"] = "Исцелeния поглощено"
+L["STRING_HEAL_CRIT"] = "Критическое исцеление"
+L["STRING_HEALING_FROM"] = "Исцеление, полученное от"
+L["STRING_HEALING_HPS_FROM"] = "ИВС, полученное от"
+L["STRING_HITS"] = "Попадания "
+L["STRING_HPS"] = "ИВС"
+L["STRING_IMAGEEDIT_ALPHA"] = "Прозрачность"
+L["STRING_IMAGEEDIT_CROPBOTTOM"] = "Обрезать снизу"
+L["STRING_IMAGEEDIT_CROPLEFT"] = "Обрезать слева"
+L["STRING_IMAGEEDIT_CROPRIGHT"] = "Обрезать справа"
+L["STRING_IMAGEEDIT_CROPTOP"] = "Обрезать сверху"
+L["STRING_IMAGEEDIT_DONE"] = "ГОТОВО"
+L["STRING_IMAGEEDIT_FLIPH"] = "Отразить по горизонтали"
+L["STRING_IMAGEEDIT_FLIPV"] = "Отразить по вертикали"
+L["STRING_INFO_TAB_AVOIDANCE"] = "Избегание"
+L["STRING_INFO_TAB_COMPARISON"] = "Сравнение"
+L["STRING_INFO_TAB_SUMMARY"] = "Суммарно"
+L["STRING_INFO_TUTORIAL_COMPARISON1"] = "Щелкните на вкладку |cFFFFDD00Сравнение|r, чтобы увидеть сравнение между игроками одного класса."
+L["STRING_INSTANCE_CHAT"] = "Рейд, группа, лфр"
+L["STRING_INSTANCE_LIMIT"] = "максимальное количество окон было достигнуто, это ограничение можно изменить на панели параметры. Также можно открыть закрытые окна из меню окна (#)."
+L["STRING_INTERFACE_OPENOPTIONS"] = "Открыть панель параметров"
+L["STRING_ISA_PET"] = "Этот субъект является питомцем"
+L["STRING_KEYBIND_BOOKMARK"] = "Закладка"
+L["STRING_KEYBIND_BOOKMARK_NUMBER"] = "Закладка #%s"
+L["STRING_KEYBIND_RESET_SEGMENTS"] = "Сбросить сегменты"
+L["STRING_KEYBIND_SCROLL_DOWN"] = "Прокрутить вниз все окна"
+L["STRING_KEYBIND_SCROLL_UP"] = "Прокрутить вверх все окна"
+L["STRING_KEYBIND_SCROLLING"] = "Прокрутка"
+L["STRING_KEYBIND_SEGMENTCONTROL"] = "Сегменты"
+L["STRING_KEYBIND_TOGGLE_WINDOW"] = "Переключить окно #%s"
+L["STRING_KEYBIND_TOGGLE_WINDOWS"] = "Переключить всё"
+L["STRING_KEYBIND_WINDOW_CONTROL"] = "Окна"
+L["STRING_KEYBIND_WINDOW_REPORT"] = "Отчёт данных, отображаемых в окне #%s."
+L["STRING_KEYBIND_WINDOW_REPORT_HEADER"] = "Отчет данных"
+L["STRING_KILLED"] = "Убитый"
+L["STRING_LAST_COOLDOWN"] = "последние использованные кулдауны"
+L["STRING_LEFT"] = "слева"
+L["STRING_LEFT_CLICK_SHARE"] = "Левый щелчок для отчета."
+L["STRING_LEFT_TO_RIGHT"] = "Слева направо "
+L["STRING_LOCK_DESC"] = "Заблокировать или разблокировать окно"
+L["STRING_LOCK_WINDOW"] = "заблокировать"
+L["STRING_MASTERY"] = "Искусность "
+L["STRING_MAXIMUM"] = "Максимальное"
+L["STRING_MAXIMUM_SHORT"] = "Макс"
+L["STRING_MEDIA"] = "Медиа"
+L["STRING_MELEE"] = "Атака ближнего боя"
+L["STRING_MEMORY_ALERT_BUTTON"] = "Я понял"
+L["STRING_MEMORY_ALERT_TEXT1"] = "Details! использует много памяти, но, |cFFFF8800вопреки распространенному мнению|r, использование памяти аддонами |cFFFF8800не влияет|r на производительности игры или на ваш FPS."
+L["STRING_MEMORY_ALERT_TEXT2"] = [=[Итак, если вы видите что Details! использует много памяти, не паникуйте :D
+|cFFFF8800Всё в порядке!|r Часть этой памяти |cFFFF8800используется в кешировании|r, чтобы сделать аддон быстрее.]=]
+L["STRING_MEMORY_ALERT_TEXT3"] = "Однако, если вы хотите узнать |cFFFF8800какие аддоны 'тяжелее'|r или которые уменьшают FPS, установите аддон: '|cFFFFFF00AddOns Cpu Usage|r'."
+L["STRING_MEMORY_ALERT_TITLE"] = "Пожалуйста, прочитайте внимательно!"
+L["STRING_MENU_CLOSE_INSTANCE"] = "Закрыть это окно"
+L["STRING_MENU_CLOSE_INSTANCE_DESC"] = "Закрытое окно является неактивным и может быть возобновлено в любое время с помощью меню управления окнами."
+L["STRING_MENU_CLOSE_INSTANCE_DESC2"] = "Чтобы полностью уничтожить окно, проверьте раздел разное на панели параметров"
+L["STRING_MENU_INSTANCE_CONTROL"] = "Управление окном"
+L["STRING_MINIMAP_TOOLTIP1"] = "|cFFCFCFCFлевый щелчок|r: открыть панель параметров"
+L["STRING_MINIMAP_TOOLTIP11"] = "|cFFCFCFCFлевый щелчок|r: очистить все сегменты"
+L["STRING_MINIMAP_TOOLTIP12"] = "|cFFCFCFCFлевый щелчок|r: показать/скрыть окна"
+L["STRING_MINIMAP_TOOLTIP2"] = "|cFFCFCFCFправый щелчок|r: быстрое меню"
+L["STRING_MINIMAPMENU_CLOSEALL"] = "Закрыть всё"
+L["STRING_MINIMAPMENU_HIDEICON"] = "Скрыть значок у мини-карты"
+L["STRING_MINIMAPMENU_LOCK"] = "Заблокировать"
+L["STRING_MINIMAPMENU_NEWWINDOW"] = "Создать новое окно"
+L["STRING_MINIMAPMENU_REOPENALL"] = "Открыть всё"
+L["STRING_MINIMAPMENU_UNLOCK"] = "Разблокировать"
+L["STRING_MINIMUM"] = "Минимальное"
+L["STRING_MINIMUM_SHORT"] = "Мин"
+L["STRING_MINITUTORIAL_BOOKMARK1"] = "Правый щелчок в любой точке окна, чтобы открыть закладки!"
+L["STRING_MINITUTORIAL_BOOKMARK2"] = "Закладки дают быстрый доступ к избранным дисплеям."
+L["STRING_MINITUTORIAL_BOOKMARK3"] = "Правый щелчок, чтобы закрыть панель закладок."
+L["STRING_MINITUTORIAL_BOOKMARK4"] = "Не показывать это снова."
+L["STRING_MINITUTORIAL_CLOSECTRL1"] = "|cFFFFFF00Ctrl + Правый щелчок|r закрывает окно!"
+L["STRING_MINITUTORIAL_CLOSECTRL2"] = "Если вы хотите, открыть снова это, перейдите в Меню -> Управление окнами или панель параметров."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL1"] = "Окно, которое будет отредактировано."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL2"] = "При проверке все окна в группе также изменяются."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL3"] = [=[Чтобы создать группу, перетащите окно #2 рядом с окном #1.
+
+А чтобы, разорвать группу, нажмите на кнопку |cFFFFFF00разгруппировать|r.]=]
+L["STRING_MINITUTORIAL_OPTIONS_PANEL4"] = "Протестируйте конфигурацию путем создания полос тестирования."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL5"] = "При включенном, редактирование групп, все окна в группе изменяются."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL6"] = "Выберите здесь, какое окно вы хотите изменить для внешнего вида."
+L["STRING_MINITUTORIAL_WINDOWS1"] = [=[Вы только что создали группу окон.
+
+Чтобы разорвать их, щелкните по значку с замком.]=]
+L["STRING_MINITUTORIAL_WINDOWS2"] = [=[Окно заблокировано.
+
+Нажмите на строку полос и перетащите его вверх, чтобы растянуть.]=]
+L["STRING_MIRROR_IMAGE"] = "Зеркальное изображение"
+L["STRING_MISS"] = "Промах"
+L["STRING_MODE_ALL"] = "Всё и вся"
+L["STRING_MODE_GROUP"] = "Стандартный"
+L["STRING_MODE_OPENFORGE"] = "Список заклинаний"
+L["STRING_MODE_PLUGINS"] = "плагины"
+L["STRING_MODE_RAID"] = "Плагины: Рейд "
+L["STRING_MODE_SELF"] = "Плагины: Одиночная игра"
+L["STRING_MORE_INFO"] = "Смотрите на право для доп. информации."
+L["STRING_MULTISTRIKE"] = "Многократная атака"
+L["STRING_MULTISTRIKE_HITS"] = "Многократные попадания"
+L["STRING_MUSIC_DETAILS_ROBERTOCARLOS"] = [=[Нет никакой, попытки забыть
+Долгое время, в вашей жизни, я буду жить
+Как Details'a слишком - мало для нас]=]
+L["STRING_NEWROW"] = "ожидание обновления..."
+L["STRING_NEWS_REINSTALL"] = "Обнаружили проблемы после обновления? Попробуйте команду '/details reinstall'."
+L["STRING_NEWS_TITLE"] = "Что нового в этой версии"
+L["STRING_NO"] = "Нет"
+L["STRING_NO_DATA"] = "данные уже очищены"
+L["STRING_NO_SPELL"] = "способности не были использованы"
+L["STRING_NO_TARGET"] = "Не найдена цель."
+L["STRING_NO_TARGET_BOX"] = "Нет доступных целей"
+L["STRING_NOCLOSED_INSTANCES"] = [=[Закрытых окон нет,
+щелкните, чтобы открыть новое.]=]
+L["STRING_NOLAST_COOLDOWN"] = "кулдауны не использованы"
+L["STRING_NOMORE_INSTANCES"] = [=[Достигнуто максимальное количество окон.
+Измените лимит на панели параметров.]=]
+L["STRING_NORMAL_HITS"] = "Обычные попадания"
+L["STRING_NUMERALSYSTEM"] = "Система чисел"
+L["STRING_NUMERALSYSTEM_ARABIC_MYRIAD_EASTASIA"] = "используется в странах Восточной Азии, разделяет тысячи и мириады."
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN"] = "Западная"
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN_DESC"] = "самый распространенный способ, разделяет тысячи и миллионы."
+L["STRING_NUMERALSYSTEM_DESC"] = "Выбрать, какую систему счисления использовать"
+L["STRING_NUMERALSYSTEM_MYRIAD_EASTASIA"] = "Восточная Азия"
+L["STRING_OFFHAND_HITS"] = "Левая рука"
+L["STRING_OPTIONS_3D_LALPHA_DESC"] = [=[Отрегулируйте уровень прозрачности в нижней модели.
+
+|cFFFFFF00Важно|r: некоторые модели игнорируют степень прозрачности.]=]
+L["STRING_OPTIONS_3D_LANCHOR"] = "Нижняя 3D модель:"
+L["STRING_OPTIONS_3D_LENABLED_DESC"] = "Включено или отключено, использование 3D модели рамки позади полосы."
+L["STRING_OPTIONS_3D_LSELECT_DESC"] = "Выберите модель, которая будет использоваться на нижней полосе модели."
+L["STRING_OPTIONS_3D_SELECT"] = "Выбрать модель"
+L["STRING_OPTIONS_3D_UALPHA_DESC"] = [=[Отрегулируйте уровень прозрачности в верхней модели.
+
+|cFFFFFF00Важно|r: некоторые модели игнорируют степень прозрачности.]=]
+L["STRING_OPTIONS_3D_UANCHOR"] = "Верхняя 3D модель:"
+L["STRING_OPTIONS_3D_UENABLED_DESC"] = "Включено или отключено, использование 3D модели рамки над полосами."
+L["STRING_OPTIONS_3D_USELECT_DESC"] = "Выберите модель, которая будет использоваться на верхней панели полос."
+L["STRING_OPTIONS_ADVANCED"] = "Дополнительно"
+L["STRING_OPTIONS_ALPHAMOD_ANCHOR"] = "Авто-скрытие:"
+L["STRING_OPTIONS_ALWAYS_USE"] = "Использовать на всех персонажах"
+L["STRING_OPTIONS_ALWAYS_USE_DESC"] = "Один и тот же профиль используется для всех персонажей. Вы можете переопределить это для любого персонажа, просто выбрав другой существующий профиль."
+L["STRING_OPTIONS_ALWAYSSHOWPLAYERS"] = "Показать разгруппированных игроков"
+L["STRING_OPTIONS_ALWAYSSHOWPLAYERS_DESC"] = "При использовании стандартного режима по умолчанию, показывать персонажей игроков, даже если они не в группе с вами."
+L["STRING_OPTIONS_ANCHOR"] = "Сторона"
+L["STRING_OPTIONS_ANIMATEBARS"] = "Анимация полосы"
+L["STRING_OPTIONS_ANIMATEBARS_DESC"] = "Включить анимацию для всех полос."
+L["STRING_OPTIONS_ANIMATESCROLL"] = "Анимация полос прокрутки"
+L["STRING_OPTIONS_ANIMATESCROLL_DESC"] = "При включении полосы прокрутки, при отображении или скрытии используется анимация."
+L["STRING_OPTIONS_APPEARANCE"] = "Внешний вид"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT"] = "Настройки текста заголовка "
+L["STRING_OPTIONS_ATTRIBUTE_TEXT_DESC"] = "Эти параметры управляют заголовочным текстом окна."
+L["STRING_OPTIONS_AUTO_SWITCH"] = "Все роли |cFFFFAA00(в бою)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_COMBAT"] = "|cFFFFAA00(в бою)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_DAMAGER_DESC"] = "Когда в специализации боец, это окно показывает выбранный атрибут или плагин."
+L["STRING_OPTIONS_AUTO_SWITCH_DESC"] = [=[Когда вы вступаете в бой, это окно показывает выбранный атрибут или плагин.
+
+|cFFFFFF00Важно|r: Отдельный атрибут, выбранный для каждой роли, перезаписывает выбранный здесь атрибут.]=]
+L["STRING_OPTIONS_AUTO_SWITCH_HEALER_DESC"] = "Когда в специализации лекаря, это окно показывает выбранный атрибут или плагин."
+L["STRING_OPTIONS_AUTO_SWITCH_TANK_DESC"] = "Когда в специализации танка, это окно показывает выбранный атрибут или плагин."
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE"] = "После вайпа"
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE_DESC"] = "После неудачной попытки или поражения в рейдовом сражении, это окно автоматически показывает этот атрибут."
+L["STRING_OPTIONS_AVATAR"] = "Выберите аватар"
+L["STRING_OPTIONS_AVATAR_ANCHOR"] = "Идентификатор:"
+L["STRING_OPTIONS_AVATAR_DESC"] = "Аватары также отправляются участникам гильдии и отображаются в верхней части подсказок, и в окне details игрока."
+L["STRING_OPTIONS_BAR_BACKDROP_ANCHOR"] = "Граница:"
+L["STRING_OPTIONS_BAR_BACKDROP_COLOR_DESC"] = "Изменить цвет границы."
+L["STRING_OPTIONS_BAR_BACKDROP_ENABLED_DESC"] = "Включение или отключение границ строк."
+L["STRING_OPTIONS_BAR_BACKDROP_SIZE_DESC"] = "Отрегулировать размер границы."
+L["STRING_OPTIONS_BAR_BACKDROP_TEXTURE_DESC"] = "Изменить внешний вид границы."
+L["STRING_OPTIONS_BAR_BCOLOR"] = "Фоновый цвет"
+L["STRING_OPTIONS_BAR_BTEXTURE_DESC"] = "Эта текстура находится ниже верхней текстуры и ее размер всегда такой же, как ширина окна."
+L["STRING_OPTIONS_BAR_COLOR_DESC"] = [=[Цвет и прозрачность этой текстуры.
+
+|cFFFFFF00Важно|r: Выбранный цвет игнорируется при использовании цветов класса.]=]
+L["STRING_OPTIONS_BAR_COLORBYCLASS"] = "Цвет по классу игрока"
+L["STRING_OPTIONS_BAR_COLORBYCLASS_DESC"] = "Когда включено, эта текстура всегда использует цвет класса игрока."
+L["STRING_OPTIONS_BAR_FOLLOWING"] = "Всегда показывать себя"
+L["STRING_OPTIONS_BAR_FOLLOWING_ANCHOR"] = "Полоса игрока:"
+L["STRING_OPTIONS_BAR_FOLLOWING_DESC"] = "Когда включено, полоса будет всегда отображаться, даже если Вы не один из лучших игроков в рейтинге."
+L["STRING_OPTIONS_BAR_GROW"] = "Направление роста полос"
+L["STRING_OPTIONS_BAR_GROW_DESC"] = "Полосы растут сверху или снизу окна."
+L["STRING_OPTIONS_BAR_HEIGHT"] = "Высота"
+L["STRING_OPTIONS_BAR_HEIGHT_DESC"] = "Увеличить или уменьшить высоту полос."
+L["STRING_OPTIONS_BAR_ICONFILE"] = "Файл значка"
+L["STRING_OPTIONS_BAR_ICONFILE_DESC"] = [=[Путь к пользовательскому файлу значка.
+
+Изображение должно быть в .tga файле, 256x256 пикселей с альфа-каналом.]=]
+L["STRING_OPTIONS_BAR_ICONFILE_DESC2"] = "Выберите пакет значков для использования."
+L["STRING_OPTIONS_BAR_ICONFILE1"] = "Без значка"
+L["STRING_OPTIONS_BAR_ICONFILE2"] = "По умолчанию"
+L["STRING_OPTIONS_BAR_ICONFILE3"] = "По умолчанию (черный белый)"
+L["STRING_OPTIONS_BAR_ICONFILE4"] = "По умолчанию (прозрачный)"
+L["STRING_OPTIONS_BAR_ICONFILE5"] = "Округлые значки"
+L["STRING_OPTIONS_BAR_ICONFILE6"] = "По умолчанию (прозрачный черный белый)"
+L["STRING_OPTIONS_BAR_SPACING"] = "Расстояние"
+L["STRING_OPTIONS_BAR_SPACING_DESC"] = "Размер зазора, между каждой полосой."
+L["STRING_OPTIONS_BAR_TEXTURE_DESC"] = "Текстура, используемая в верхней части полос."
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM"] = "Пользовательский текст включен"
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM_DESC"] = "Когда включено, левый текст формируется в соответствии с правилами в поле."
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2"] = "."
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{data1}|r: обычно представляет собой номер позиции игрока.
+
+|cFFFFFF00{data2}|r: всегда является именем игрока.
+
+|cFFFFFF00{data3}|r: в некоторых случаях это значение представляет фракцию игрока или значок роли.
+
+|cFFFFFF00{func}|r: выполняет индивидуальные функции lua добавив ее возвращаемое значение в тексте.
+Пример:
+{func return 'привет Азерот'}
+
+|cFFFFFF00Escape Sequences|r: используется для изменения цвета или добавления текстур. Для получения более подробной информации в поисковике напишите 'UI escape sequences'.]=]
+L["STRING_OPTIONS_BARORIENTATION"] = "Направление полос"
+L["STRING_OPTIONS_BARORIENTATION_DESC"] = "Направление, в котором заполнены полосы."
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM"] = "Пользовательский текст включен"
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM_DESC"] = "Когда включено, текст справа формируется в соответствии с правилами в поле."
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2"] = "."
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{data1}|r: это первое пройденное число, обычно это число представляет итоговое выполненное.
+
+|cFFFFFF00{data2}|r: это второе пройденное число, большую часть времени представляет среднее значение в секунду.
+
+|cFFFFFF00{data3}|r: третье число пройдено, как правило, это процент.
+
+|cFFFFFF00{func}|r: выполняет индивидуальные функции lua добавив ее возвращаемое значение в тексте.
+Пример:
+{func return 'привет Азерот'}
+
+|cFFFFFF00Escape Sequences|r: используется для изменения цвета или добавления текстур. Для получения более подробной информации в поисковике напишите 'UI escape sequences'.]=]
+L["STRING_OPTIONS_BARS"] = "Основные настройки полос"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE"] = "Файл вашей текстуры"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE_DESC"] = [=[
+
+|cFFFFFF00Важно|r: изображение должно быть на 256x32 пикселей.]=]
+L["STRING_OPTIONS_BARS_DESC"] = "Эти параметры управляют внешним видом полос."
+L["STRING_OPTIONS_BARSORT"] = "Сортировка полос по месту"
+L["STRING_OPTIONS_BARSORT_DESC"] = "Сортировка полос по убыванию или возрастанию."
+L["STRING_OPTIONS_BARSTART"] = "Начало полосы, после значка"
+L["STRING_OPTIONS_BARSTART_DESC"] = [=[Когда отключено верхняя текстура начинается со значка слева, а не справа
+
+Это полезно при использовании пакета значков с прозрачными областями.]=]
+L["STRING_OPTIONS_BARUR_ANCHOR"] = "Быстрое обновление"
+L["STRING_OPTIONS_BARUR_DESC"] = "Когда включено, то значения, УВС и ИВС обновляются немного быстрее, чем обычно."
+L["STRING_OPTIONS_BG_ALL_ALLY"] = "Показать всё"
+L["STRING_OPTIONS_BG_ALL_ALLY_DESC"] = [=[Когда включено, вражеские игроки также отображаются, когда окно находится в режиме группы.
+
+|cFFFFFF00Важно|r: изменения применяются последующего вступления в бой.]=]
+L["STRING_OPTIONS_BG_ANCHOR"] = "Поля боя:"
+L["STRING_OPTIONS_BG_UNIQUE_SEGMENT"] = "Уникальный сегмент"
+L["STRING_OPTIONS_BG_UNIQUE_SEGMENT_DESC"] = "Создается один сегмент в начале поля боя и длится до его окончания."
+L["STRING_OPTIONS_CAURAS"] = "Собирать 'Ауры'"
+L["STRING_OPTIONS_CAURAS_DESC"] = [=[Включить захват:
+
+- |cFFFFFF00Время действия баффов|r
+- |cFFFFFF00Время действия дебаффов|r
+- |cFFFFFF00Войд зоны|r
+-|cFFFFFF00 Кулдауны|r]=]
+L["STRING_OPTIONS_CDAMAGE"] = "Собирать 'Урон'"
+L["STRING_OPTIONS_CDAMAGE_DESC"] = [=[Включить захват:
+
+- |cFFFFFF00Нанесённый урон|r
+- |cFFFFFF00Урон в секунду|r
+- |cFFFFFF00Урон по союзникам|r
+- |cFFFFFF00Полученный урон|r]=]
+L["STRING_OPTIONS_CENERGY"] = "Собирать 'Энергию'"
+L["STRING_OPTIONS_CENERGY_DESC"] = [=[Включить захват:
+
+- |cFFFFFF00Восстановленная мана|r
+- |cFFFFFF00Получено: ярости|r
+- |cFFFFFF00Получено: энергии|r
+- |cFFFFFF00Получено: силы рун|r]=]
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS"] = "Изменение цвета класса"
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS_DESC"] = "Выберите новые цвета для классов."
+L["STRING_OPTIONS_CHANGECOLOR"] = "Изменить цвет"
+L["STRING_OPTIONS_CHANGELOG"] = "Заметки о версии"
+L["STRING_OPTIONS_CHART_ADD"] = "Добавить данные"
+L["STRING_OPTIONS_CHART_ADD2"] = "Добавить"
+L["STRING_OPTIONS_CHART_ADDAUTHOR"] = "Автор:"
+L["STRING_OPTIONS_CHART_ADDCODE"] = "Код:"
+L["STRING_OPTIONS_CHART_ADDICON"] = "Значок:"
+L["STRING_OPTIONS_CHART_ADDNAME"] = "Название:"
+L["STRING_OPTIONS_CHART_ADDVERSION"] = "Версия:"
+L["STRING_OPTIONS_CHART_AUTHOR"] = "Автор"
+L["STRING_OPTIONS_CHART_AUTHORERROR"] = "Недопустимое имя автора."
+L["STRING_OPTIONS_CHART_CANCEL"] = "Отменить"
+L["STRING_OPTIONS_CHART_CLOSE"] = "Закрыть"
+L["STRING_OPTIONS_CHART_CODELOADED"] = "Код уже загружен и не может быть отображен."
+L["STRING_OPTIONS_CHART_EDIT"] = "Редактировать код"
+L["STRING_OPTIONS_CHART_EXPORT"] = "Экспорт"
+L["STRING_OPTIONS_CHART_FUNCERROR"] = "Недопустимая функция."
+L["STRING_OPTIONS_CHART_ICON"] = "Значок"
+L["STRING_OPTIONS_CHART_IMPORT"] = "Импорт"
+L["STRING_OPTIONS_CHART_IMPORTERROR"] = "Недопустимая строка импорта."
+L["STRING_OPTIONS_CHART_NAME"] = "Название"
+L["STRING_OPTIONS_CHART_NAMEERROR"] = "Недопустимое Название."
+L["STRING_OPTIONS_CHART_PLUGINWARNING"] = "Устан. Chart Viewer Plugin для отображения пользов. диаграмм."
+L["STRING_OPTIONS_CHART_REMOVE"] = "Удалить"
+L["STRING_OPTIONS_CHART_SAVE"] = "Сохранить"
+L["STRING_OPTIONS_CHART_VERSION"] = "Версия"
+L["STRING_OPTIONS_CHART_VERSIONERROR"] = "Недопустимая версия."
+L["STRING_OPTIONS_CHEAL"] = "Собирать 'Исцеление'"
+L["STRING_OPTIONS_CHEAL_DESC"] = [=[Включить захват:
+
+- |cFFFFFF00Исцеление|r
+- |cFFFFFF00Поглощения|r
+- |cFFFFFF00Исцеление в секунду|r
+- |cFFFFFF00Избыточное исцеление|r
+- |cFFFFFF00Исцеления получено|r
+- |cFFFFFF00Произведено исцеления врагом|r
+- |cFFFFFF00Предотвращение урона|r]=]
+L["STRING_OPTIONS_CLASSCOLOR_MODIFY"] = "Изменение цвета класса"
+L["STRING_OPTIONS_CLASSCOLOR_RESET"] = "Правый щелчок для сброса"
+L["STRING_OPTIONS_CLEANUP"] = "Авто удаление сегментов мусора"
+L["STRING_OPTIONS_CLEANUP_DESC"] = "Когда включено, сегменты очистки мусора удаляются автоматически, после двух других сегментов."
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS"] = "Нажмите, чтобы открыть меню"
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS_DESC"] = [=[Кнопки полос заголовка не будут показывать меню при наведении курсора на них.
+
+Вместо этого необходимо щелкнуть на них, чтобы открыть.]=]
+L["STRING_OPTIONS_CLOUD"] = "Облако захвата"
+L["STRING_OPTIONS_CLOUD_DESC"] = "Когда включено, данные отключенных сборщиков собираются среди других участников рейда."
+L["STRING_OPTIONS_CMISC"] = "Собирать 'Разное'"
+L["STRING_OPTIONS_CMISC_DESC"] = [=[Включить захват:
+
+- |cFFFFFF00Перерывание контроля толпы|r
+- |cFFFFFF00Рассеивания|r
+- |cFFFFFF00Прерывания|r
+- |cFFFFFF00Воскрешение|r
+- |cFFFFFF00Смертей|r]=]
+L["STRING_OPTIONS_COLORANDALPHA"] = "Цвет и альфа"
+L["STRING_OPTIONS_COLORFIXED"] = "Фиксированный цвет"
+L["STRING_OPTIONS_COMBAT_ALPHA"] = "Когда"
+L["STRING_OPTIONS_COMBAT_ALPHA_1"] = "Никогда"
+L["STRING_OPTIONS_COMBAT_ALPHA_2"] = "В бою"
+L["STRING_OPTIONS_COMBAT_ALPHA_3"] = "Не в бою"
+L["STRING_OPTIONS_COMBAT_ALPHA_4"] = "Не в группе"
+L["STRING_OPTIONS_COMBAT_ALPHA_5"] = "Не внутри подземелья"
+L["STRING_OPTIONS_COMBAT_ALPHA_6"] = "Внутри подземелья"
+L["STRING_OPTIONS_COMBAT_ALPHA_7"] = "Рейдовый отладчик"
+L["STRING_OPTIONS_COMBAT_ALPHA_DESC"] = [=[Выберите, как бой влияет на прозрачность окна.
+
+|cFFFFFF00Никаких изменений|r: Не изменять альфу.
+
+|cFFFFFF00В бою|r: Когда ваш персонаж вступает в бой, выбранная альфа применяется к окну.
+
+|cFFFFFF00Вне боя|r: Альфа применяется всякий раз, когда ваш персонаж не находится в бою.
+
+|cFFFFFF00Не в группе|r: Когда вы не находитесь в группе или рейде, окно предполагает выбранную альфу.
+
+|cFFFFFF00Важно|r: Этот параметр перезаписывает альфу, определенную функцией автоматической прозрачности.]=]
+L["STRING_OPTIONS_COMBATTWEEKS"] = "Боевые настройки"
+L["STRING_OPTIONS_COMBATTWEEKS_DESC"] = "Предустановки на то, как Details! работает некоторыми боевыми аспектами."
+L["STRING_OPTIONS_CONFIRM_ERASE"] = "Вы хотите стереть данные?"
+L["STRING_OPTIONS_CUSTOMSPELL_ADD"] = "Добавить заклинание"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE"] = "Редактор по настройки заклинаний"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE_DESC"] = "Эта панель позволяет изменять название и значок заклинаний."
+L["STRING_OPTIONS_DATABROKER"] = "Брокер данных:"
+L["STRING_OPTIONS_DATABROKER_TEXT"] = "Текст"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD1"] = "Нанесено урона игроком"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD2"] = "УВС Игрока (эффективность)"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD3"] = "Позиция по урону"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD4"] = "Разница в уроне"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD5"] = "Исцелено игроком"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD6"] = "ИВС Игрока (эффективность)"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD7"] = "Позиция по исцелению"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD8"] = "Разница в исцелении"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD9"] = "Прошедшее время боя"
+L["STRING_OPTIONS_DATABROKER_TEXT1_DESC"] = [=[|cFFFFFF00{dmg}|r: нанесённый урон игрока.
+
+|cFFFFFF00{dps}|r: эффективность нанесенного урона игрока в секунду.
+
+|cFFFFFF00{dpos}|r: позиция между участниками рейда или группы по нанесенному урону.
+
+|cFFFFFF00{ddiff}|r: разница в нанесённом уроне между вами и первым местом.
+
+|cFFFFFF00{heal}|r: исцеление игрока.
+
+|cFFFFFF00{hps}|r: эффективность исцеления игрока в секунду.
+
+|cFFFFFF00{hpos}|r: позиция между участниками рейда или группы по исцелению.
+
+|cFFFFFF00{hdiff}|r: разница в исцелении между вами и первым местом.
+
+|cFFFFFF00{time}|r: прошедшее время боя.]=]
+L["STRING_OPTIONS_DATACHARTTITLE"] = "Создание временных данных для диаграмм"
+L["STRING_OPTIONS_DATACHARTTITLE_DESC"] = "Эта панель позволяет создавать настраиваемые данные для создания диаграмм."
+L["STRING_OPTIONS_DATACOLLECT_ANCHOR"] = "Тип данных:"
+L["STRING_OPTIONS_DEATHLIMIT"] = "Счетчик смертей"
+L["STRING_OPTIONS_DEATHLIMIT_DESC"] = [=[Установите количество событий, отображаемых на дисплее смерти.
+
+|cFFFFFF00Важно|r: только для новых смертей после изменений.]=]
+L["STRING_OPTIONS_DEATHLOG_MINHEALING"] = "Журнал смерти, минимальное исцеление"
+L["STRING_OPTIONS_DEATHLOG_MINHEALING_DESC"] = [=[Журнал смерти не будет показывать исцеления ниже этого порога.
+
+|cFFFFFF00Совет|r: правый щелчок, чтобы вручную ввести значение.]=]
+L["STRING_OPTIONS_DESATURATE_MENU"] = "Ненасыщенный"
+L["STRING_OPTIONS_DESATURATE_MENU_DESC"] = "При включении этого параметра, все значки меню на панели инструментов становятся черно-белыми."
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW"] = "Отключить меню 'Все дисплеи'"
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW_DESC"] = "Если включено, при щелчке правой кнопкой на полосе заголовка появится закладка."
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT"] = "Отключение подсветки полосы"
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT_DESC"] = "При наведении курсора на полосу, не сделает его ярче."
+L["STRING_OPTIONS_DISABLE_GROUPS"] = "Отключить группировку"
+L["STRING_OPTIONS_DISABLE_GROUPS_DESC"] = "Окна больше не будет создавать группы при размещении рядом друг с другом."
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE"] = "Отключить кнопки изменения размера"
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE_DESC"] = "Кнопки изменения размера, заблокировать/разблокировать и разгруппировки не отображаются, когда вы наводите курсор на окно."
+L["STRING_OPTIONS_DISABLE_RESET"] = "Отключить кнопку сброса"
+L["STRING_OPTIONS_DISABLE_RESET_DESC"] = "Когда включено, нажатие на кнопку сброса не будет работать, необходимо выбрать, чтобы сбросить данные из меню подсказки."
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON"] = "Отключить кнопку растяжения"
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON_DESC"] = "Кнопка растянуть не отображается при включении этого параметра."
+L["STRING_OPTIONS_DISABLED_RESET"] = "Сброс через эту кнопку в данный момент отключен, выберите ее в меню подсказки."
+L["STRING_OPTIONS_DTAKEN_EVERYTHING"] = "Расширенный полученный урон"
+L["STRING_OPTIONS_DTAKEN_EVERYTHING_DESC"] = "Полученный урон отображается в режиме 'Всё и вся'."
+L["STRING_OPTIONS_ED"] = "Стирание данных"
+L["STRING_OPTIONS_ED_DESC"] = [=[|cFFFFFF00Вручную|r: пользователю нужно нажать на кнопку сброса.
+
+|cFFFFFF00Уточнять|r: спрашивать о сбросе, при входе в новое подземелье.
+
+|cFFFFFF00Авто|r: очистка данных после входа в новое подземелье.]=]
+L["STRING_OPTIONS_ED1"] = "Вручную"
+L["STRING_OPTIONS_ED2"] = "Уточнять"
+L["STRING_OPTIONS_ED3"] = "Авто"
+L["STRING_OPTIONS_EDITIMAGE"] = "Редактировать изображение"
+L["STRING_OPTIONS_EDITINSTANCE"] = "Редактирование окна:"
+L["STRING_OPTIONS_ERASECHARTDATA"] = "Стереть диаграммы"
+L["STRING_OPTIONS_ERASECHARTDATA_DESC"] = "Во время выхода, все данные боя, собранные для создания графиков, стираются."
+L["STRING_OPTIONS_EXTERNALS_TITLE"] = "Внешние виджеты"
+L["STRING_OPTIONS_EXTERNALS_TITLE2"] = "Эти параметры управляют поведением многих внешних виджетов."
+L["STRING_OPTIONS_GENERAL"] = "Общие настройки"
+L["STRING_OPTIONS_GENERAL_ANCHOR"] = "Общее:"
+L["STRING_OPTIONS_HIDE_ICON"] = "Скрыть значок"
+L["STRING_OPTIONS_HIDE_ICON_DESC"] = [=[Когда включено значок, представляющий выбранного дисплея, не отображается.
+
+|cFFFFFF00Важно|r: после включения значка рекомендуется настроить размещение текста заголовка.]=]
+L["STRING_OPTIONS_HIDECOMBATALPHA_DESC"] = [=[Изменяет прозрачность на это значение, когда ваш персонаж соответствует выбранному правилу.
+
+|cFFFFFF00Ноль|r: полностью скрыто, невозможно взаимодействовать в пределах окна.
+
+|cFFFFFF001 - 100|r: не скрыто, изменяется только прозрачность, вы можете взаимодействовать с окном.]=]
+L["STRING_OPTIONS_HOTCORNER"] = "Показать кнопку"
+L["STRING_OPTIONS_HOTCORNER_ACTION"] = "По щелчку"
+L["STRING_OPTIONS_HOTCORNER_ACTION_DESC"] = "Выберите, что делать, когда кнопка на полосе Hotcorner нажата левой кнопкой мыши."
+L["STRING_OPTIONS_HOTCORNER_ANCHOR"] = "Hotcorner:"
+L["STRING_OPTIONS_HOTCORNER_DESC"] = "Показать или скрыть кнопку на панели Hotcorner."
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK"] = "Включить быстрый щелчок"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_DESC"] = [=[Включить или отключить функцию быстрого щелчка для Hotcorners.
+
+Быстрая кнопка локализуется на самом дальнем левом верхнем пикселе, перемещая мышь до упора, активирует верхний левый hot corner и, если щелкнуть, выполняется действие.]=]
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC"] = "Быстрый щелчок по щелчку"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC_DESC"] = "Выберите, что делать при нажатии кнопки быстрого щелчка на Hotcorner."
+L["STRING_OPTIONS_IGNORENICKNAME"] = "Игнорировать псевдонимы и аватары"
+L["STRING_OPTIONS_IGNORENICKNAME_DESC"] = "Когда включено, псевдонимы и аватары, установленные другими участниками гильдии, игнорируются."
+L["STRING_OPTIONS_ILVL_TRACKER"] = "Отслеживание уровня предметов:"
+L["STRING_OPTIONS_ILVL_TRACKER_DESC"] = [=[Когда включено, и выходите из боя, аддон запрашивает и отслеживает уровень предметов игроков в рейде.
+
+Если отключено, он по-прежнему считывает уровень предметов из запросов других аддонов или когда вы вручную проверяете другого игрока.]=]
+L["STRING_OPTIONS_ILVL_TRACKER_TEXT"] = "Включить"
+L["STRING_OPTIONS_INSTANCE_ALPHA2"] = "Фоновый цвет"
+L["STRING_OPTIONS_INSTANCE_ALPHA2_DESC"] = "Этот параметр позволяет изменить цвет фона окна."
+L["STRING_OPTIONS_INSTANCE_BACKDROP"] = "Фоновая текстура"
+L["STRING_OPTIONS_INSTANCE_BACKDROP_DESC"] = [=[Выберите фоновую текстуру, используемую этим окном.
+
+|cFFFFFF00По умолчанию|r: Details Background.]=]
+L["STRING_OPTIONS_INSTANCE_COLOR"] = "Цвет окна"
+L["STRING_OPTIONS_INSTANCE_COLOR_DESC"] = [=[Изменение цвета и альфа-окна.
+
+|cFFFFFF00Важно|r: альфа, выбранная здесь, перезаписывается
+|cFFFFFF00Авто прозрачность|r значение при включении.
+
+|cFFFFFF00Важно|r: Выбор цвета окна перезаписывает любые настройки цвета на панели состояния.]=]
+L["STRING_OPTIONS_INSTANCE_CURRENT"] = "Авто переход к текущему"
+L["STRING_OPTIONS_INSTANCE_CURRENT_DESC"] = "Всякий раз, когда начинается бой, это окно автоматически переключается на текущий сегмент."
+L["STRING_OPTIONS_INSTANCE_DELETE"] = "Удалить"
+L["STRING_OPTIONS_INSTANCE_DELETE_DESC"] = [=[Удалить окно навсегда.
+Ваш игровой экран может перезагрузиться во время процесса стирания.]=]
+L["STRING_OPTIONS_INSTANCE_SKIN"] = "Скин"
+L["STRING_OPTIONS_INSTANCE_SKIN_DESC"] = "Изменение внешнего вида окна на основе темы оформления."
+L["STRING_OPTIONS_INSTANCE_STATUSBAR_ANCHOR"] = "Строка состояния:"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR"] = "Цвет и прозрачность "
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR_DESC"] = [=[Выберите цвет, используемый строкой состояния.
+
+|cFFFFFF00Важно|r: этот параметр перезаписывает цвет и прозрачность, выбранные над окном цвета.]=]
+L["STRING_OPTIONS_INSTANCE_STRATA"] = "Слой слоев"
+L["STRING_OPTIONS_INSTANCE_STRATA_DESC"] = [=[Выбор высоты слоя, на которым будет помещена рамка.
+
+Низкий слой, по умолчанию делает окно, позади большинства других интерфейсных панелей.
+
+Используя высокий слой, окно может оставаться перед другими основными панелями.
+
+При изменении высоты слоя могут возникнуть конфликты с перекрывающимися друг с другом панелями.]=]
+L["STRING_OPTIONS_INSTANCES"] = "Окна:"
+L["STRING_OPTIONS_INTERFACEDIT"] = "Режим редактирования интерфейса"
+L["STRING_OPTIONS_LEFT_MENU_ANCHOR"] = "Настройки меню:"
+L["STRING_OPTIONS_LOCKSEGMENTS"] = "Заблокировать сегменты"
+L["STRING_OPTIONS_LOCKSEGMENTS_DESC"] = "Когда включено, изменение сегмента делает все остальные окна также переключенными на выбранный раздел."
+L["STRING_OPTIONS_MANAGE_BOOKMARKS"] = "Управление закладками"
+L["STRING_OPTIONS_MAXINSTANCES"] = "Количество окон"
+L["STRING_OPTIONS_MAXINSTANCES_DESC"] = [=[Ограничить количество окон, которые могут быть созданы.
+
+Вы можете управлять окнами через меню управления окнами.]=]
+L["STRING_OPTIONS_MAXSEGMENTS"] = "Количество сегментов"
+L["STRING_OPTIONS_MAXSEGMENTS_DESC"] = "Управление количеством сегментов, которые требуется сохранять."
+L["STRING_OPTIONS_MENU_ALPHA"] = "Взаимодействие мыши:"
+L["STRING_OPTIONS_MENU_ALPHAENABLED_DESC"] = [=[При включении, прозрачность изменяется автоматически при наведении курсора мыши и выходе из окна.
+
+|cFFFFFF00Важно|r: Эти настройки перезаписывают альфу, выбранную в окне цвета параметра в разделе настройки окна.]=]
+L["STRING_OPTIONS_MENU_ALPHAENTER"] = "Наведение курсора мыши"
+L["STRING_OPTIONS_MENU_ALPHAENTER_DESC"] = "При наведении мыши на окно, прозрачность изменяется на это значение."
+L["STRING_OPTIONS_MENU_ALPHALEAVE"] = "Нет взаимодействия"
+L["STRING_OPTIONS_MENU_ALPHALEAVE_DESC"] = "Когда нет курсора мыши над окном, прозрачность меняется на это значение."
+L["STRING_OPTIONS_MENU_ALPHAWARNING"] = "Взаимодействие с мышью включено, альфа не может быть затронута."
+L["STRING_OPTIONS_MENU_ANCHOR"] = "Кнопки крепятся к правой стороне "
+L["STRING_OPTIONS_MENU_ANCHOR_DESC"] = "Когда отмечено, кнопки прикреплены к правой стороне окна."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX"] = "Положение X"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX_DESC"] = "Отрегулируйте расположение текста атрибута по оси X."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY"] = "Положение Y"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY_DESC"] = "Отрегулируйте расположение текста атрибута по оси Y."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENABLED_DESC"] = "Активно показывает отображаемое имя, отображаемое в данный момент в окне."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER"] = "Таймер сражения"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER_DESC"] = "Когда включено секундомер отображается в левой части текста."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT"] = "Шрифт текста"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT_DESC"] = "Выберите шрифт для текста атрибута."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SHADOW_DESC"] = "Включение или выключение теней в тексте."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE"] = "Прикрепить к верхней стороне"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE_DESC"] = "Выберите место привязки текста."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR"] = "Цвет текста"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR_DESC"] = "Изменить цвет текста."
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE"] = "Размера текста"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE_DESC"] = "Отрегулируйте размер текста атрибута."
+L["STRING_OPTIONS_MENU_ATTRIBUTESETTINGS_ANCHOR"] = "Настройки:"
+L["STRING_OPTIONS_MENU_AUTOHIDE_DESC"] = "Скрыть кнопки автоматически, когда мышь покидает окно и показывать, когда вы снова взаимодействуйте с окном."
+L["STRING_OPTIONS_MENU_AUTOHIDE_LEFT"] = "Авто-скрытие кнопок"
+L["STRING_OPTIONS_MENU_BUTTONSSIZE_DESC"] = "Выберите размер кнопок. Это также изменяет кнопки, добавленные в плагинах."
+L["STRING_OPTIONS_MENU_FONT_FACE"] = "Шрифт текста меню"
+L["STRING_OPTIONS_MENU_FONT_FACE_DESC"] = "Изменить шрифт во всех меню."
+L["STRING_OPTIONS_MENU_FONT_SIZE"] = "Размер текста меню"
+L["STRING_OPTIONS_MENU_FONT_SIZE_DESC"] = "Изменить размер шрифта во всех меню."
+L["STRING_OPTIONS_MENU_IGNOREBARS"] = "Игнорировать полосы"
+L["STRING_OPTIONS_MENU_IGNOREBARS_DESC"] = "При включении, все строки в этом окне не зависят от этого механизма."
+L["STRING_OPTIONS_MENU_SHOWBUTTONS"] = "Показывать кнопки"
+L["STRING_OPTIONS_MENU_SHOWBUTTONS_DESC"] = "Выбрать, какие кнопки отображаются в строке полос."
+L["STRING_OPTIONS_MENU_X"] = "Положение X"
+L["STRING_OPTIONS_MENU_X_DESC"] = "Изменение положения оси по X."
+L["STRING_OPTIONS_MENU_Y"] = "Положение Y"
+L["STRING_OPTIONS_MENU_Y_DESC"] = "Изменение положения оси по Y."
+L["STRING_OPTIONS_MENUS_SHADOW"] = "Тень"
+L["STRING_OPTIONS_MENUS_SHADOW_DESC"] = "Добавляет тонкую теневую границу на всех кнопках."
+L["STRING_OPTIONS_MENUS_SPACEMENT"] = "Расстояние"
+L["STRING_OPTIONS_MENUS_SPACEMENT_DESC"] = "Контролирует, какое расстояние в кнопках друг от друга."
+L["STRING_OPTIONS_MICRODISPLAY_ANCHOR"] = "Микро-дисплеи:"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK"] = "Заблокировать микро-дисплеи"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK_DESC"] = "При блокировке они не будут взаимодействовать с помощью мыши и щелчков."
+L["STRING_OPTIONS_MICRODISPLAYS_DROPDOWN_TOOLTIP"] = "Выберите микро-дисплей, который вы хотите показать на этой стороне."
+L["STRING_OPTIONS_MICRODISPLAYS_OPTION_TOOLTIP"] = "Установите конфигурацию для этого микро-дисплея."
+L["STRING_OPTIONS_MICRODISPLAYS_SHOWHIDE_TOOLTIP"] = "Показать или скрыть этот микро-дисплей"
+L["STRING_OPTIONS_MICRODISPLAYS_WARNING"] = [=[|cFFFFFF00Заметка|r: микро-дисплеи не могут быть показаны,
+потому что они закреплены снизу,
+а сбоку панель состояния отключена.]=]
+L["STRING_OPTIONS_MICRODISPLAYSSIDE"] = "Микро-дисплеи на верхней стороне"
+L["STRING_OPTIONS_MICRODISPLAYSSIDE_DESC"] = "Поместите микро-дисплей на верхней части окна или на нижней стороне."
+L["STRING_OPTIONS_MICRODISPLAYWARNING"] = "Микро-дисплеи не отображаются, так как панель состояния отключена."
+L["STRING_OPTIONS_MINIMAP"] = "Показать значок"
+L["STRING_OPTIONS_MINIMAP_ACTION"] = "По щелчку"
+L["STRING_OPTIONS_MINIMAP_ACTION_DESC"] = "Выберите, что делать при щелчке по значку, на мини-карте левой кнопкой мыши."
+L["STRING_OPTIONS_MINIMAP_ACTION1"] = "Открыть панель параметров"
+L["STRING_OPTIONS_MINIMAP_ACTION2"] = "Сбросить сегменты"
+L["STRING_OPTIONS_MINIMAP_ACTION3"] = "Показать/скрыть Окна"
+L["STRING_OPTIONS_MINIMAP_ANCHOR"] = "Мини-карта"
+L["STRING_OPTIONS_MINIMAP_DESC"] = "Отобразить или скрыть значок у мини-карты."
+L["STRING_OPTIONS_MISCTITLE"] = "Прочие настройки"
+L["STRING_OPTIONS_MISCTITLE2"] = "Этот элемент управляется, несколькими вариантами."
+L["STRING_OPTIONS_NICKNAME"] = "Псевдоним"
+L["STRING_OPTIONS_NICKNAME_DESC"] = [=[Задайте ваш псевдоним.
+
+Псевдонимы отправляются участникам гильдии с Details! используется вместо имени персонажа.]=]
+L["STRING_OPTIONS_OPEN_ROWTEXT_EDITOR"] = "Текстовый редактор строк"
+L["STRING_OPTIONS_OPEN_TEXT_EDITOR"] = "Открыть текстовый редактор"
+L["STRING_OPTIONS_OVERALL_ALL"] = "Все сегменты"
+L["STRING_OPTIONS_OVERALL_ALL_DESC"] = "Все сегменты добавляются к общим данным."
+L["STRING_OPTIONS_OVERALL_ANCHOR"] = "Общие данные:"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS"] = "Боссы подземелья"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS_DESC"] = "Сегменты с боссами подземелья добавляются к общим данным."
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN"] = "Мусор подземелья"
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN_DESC"] = "Сегменты с зачисткой мобов мусора, подземелья добавляются к общим данным."
+L["STRING_OPTIONS_OVERALL_LOGOFF"] = "Очищать при выходе из мира"
+L["STRING_OPTIONS_OVERALL_LOGOFF_DESC"] = "Когда включено, общие данные автоматически стираются при выходе из игрового мира."
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS"] = "Очистить при старте Эпохального+"
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS_DESC"] = "Когда включено, общие данные автоматически стираются при запуске нового эпохального+ прохождения."
+L["STRING_OPTIONS_OVERALL_NEWBOSS"] = "Очищать при новым рейдовым боссе"
+L["STRING_OPTIONS_OVERALL_NEWBOSS_DESC"] = "Когда включено, общие данные автоматически стираются при столкновении с другим рейдовым боссом."
+L["STRING_OPTIONS_OVERALL_RAIDBOSS"] = "Рейдовые боссы"
+L["STRING_OPTIONS_OVERALL_RAIDBOSS_DESC"] = "Сегменты сражений в рейде добавляются к общим данным."
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN"] = "Рейдовый мусор"
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN_DESC"] = "Сегменты с рейдовым мусором добавляются к общим данным."
+L["STRING_OPTIONS_PANIMODE"] = "Режим паники"
+L["STRING_OPTIONS_PANIMODE_DESC"] = "Если это включено и вас выбрасывает из игры (отключением в подземелье), и вы сражались с боссом, все сегменты стираются, это делает ваш процесс выхода из мира быстрее."
+L["STRING_OPTIONS_PDW_ANCHOR"] = "Панели:"
+L["STRING_OPTIONS_PDW_SKIN_DESC"] = [=[Скин, который будет использоваться в окне детальной информации игрока, окне отчета и панели параметров.
+Некоторые изменения требуют /reload.]=]
+L["STRING_OPTIONS_PERCENT_TYPE"] = "Тип процентов"
+L["STRING_OPTIONS_PERCENT_TYPE_DESC"] = [=[Изменение процентного метода:
+
+|cFFFFFF00Relative Total|r: процент показывает активную долю от общей суммы, произведенной всеми участниками рейда.
+
+|cFFFFFF00Relative Top Player|r: процент относительно предела очков лучшего игрока.]=]
+L["STRING_OPTIONS_PERFORMANCE"] = "Производительность"
+L["STRING_OPTIONS_PERFORMANCE_ANCHOR"] = "Общее:"
+L["STRING_OPTIONS_PERFORMANCE_ARENA"] = "Арена"
+L["STRING_OPTIONS_PERFORMANCE_BG15"] = "Поле боя (15)"
+L["STRING_OPTIONS_PERFORMANCE_BG40"] = "Поле боя (40)"
+L["STRING_OPTIONS_PERFORMANCE_DUNGEON"] = "Подземелье"
+L["STRING_OPTIONS_PERFORMANCE_ENABLE_DESC"] = "Если эта настройка включена, эти параметры применяются, когда рейд совпадает с выбранным типом рейда."
+L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD"] = "Авто стирание мировых сегментов"
+L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD_DESC"] = "Авто стирание сегментов боя, когда в открытом мире."
+L["STRING_OPTIONS_PERFORMANCE_MYTHIC"] = "Эпохальный"
+L["STRING_OPTIONS_PERFORMANCE_PROFILE_LOAD"] = "Изменен профиль производительности:"
+L["STRING_OPTIONS_PERFORMANCE_RAID15"] = "Рейд (10-15)"
+L["STRING_OPTIONS_PERFORMANCE_RAID30"] = "Рейд (16-30)"
+L["STRING_OPTIONS_PERFORMANCE_RF"] = "Поиск рейда (ЛФР)"
+L["STRING_OPTIONS_PERFORMANCE_TYPES"] = "Тип"
+L["STRING_OPTIONS_PERFORMANCE_TYPES_DESC"] = "Это тип рейдов, где различные параметры могут автоматически изменяться."
+L["STRING_OPTIONS_PERFORMANCE1"] = "Настройка производительности"
+L["STRING_OPTIONS_PERFORMANCE1_DESC"] = "Эти параметры могут помочь сэкономить нагрузку на ЦП."
+L["STRING_OPTIONS_PERFORMANCECAPTURES"] = "Сборщик данных"
+L["STRING_OPTIONS_PERFORMANCECAPTURES_DESC"] = "Эти параметры отвечают за анализ и сбор данных боя."
+L["STRING_OPTIONS_PERFORMANCEPROFILES_ANCHOR"] = "Профили производительности:"
+L["STRING_OPTIONS_PICONS_DIRECTION"] = "Плагины прикрепляются справа"
+L["STRING_OPTIONS_PICONS_DIRECTION_DESC"] = "Если стоит галочка, кнопки плагина отображаются в правой части кнопок меню."
+L["STRING_OPTIONS_PLUGINS"] = "Плагины"
+L["STRING_OPTIONS_PLUGINS_AUTHOR"] = "Автор"
+L["STRING_OPTIONS_PLUGINS_NAME"] = "Название"
+L["STRING_OPTIONS_PLUGINS_OPTIONS"] = "Параметры"
+L["STRING_OPTIONS_PLUGINS_RAID_ANCHOR"] = "Рейдовые плагины"
+L["STRING_OPTIONS_PLUGINS_SOLO_ANCHOR"] = "Плагины одиночной игры"
+L["STRING_OPTIONS_PLUGINS_TOOLBAR_ANCHOR"] = "Инструментарий плагинов"
+L["STRING_OPTIONS_PLUGINS_VERSION"] = "Версия"
+L["STRING_OPTIONS_PRESETNONAME"] = "Укажите имя вашей предустановки."
+L["STRING_OPTIONS_PRESETTOOLD"] = "Эта предустановка слишком старая и не может быть загружена с этой версией Details!."
+L["STRING_OPTIONS_PROFILE_COPYOKEY"] = "Профиль успешно скопирован."
+L["STRING_OPTIONS_PROFILE_FIELDEMPTY"] = "В поле с названием пусто."
+L["STRING_OPTIONS_PROFILE_GLOBAL"] = "Выбрать профиль, который будет использоваться для всех персонажей."
+L["STRING_OPTIONS_PROFILE_LOADED"] = "Профиль загружен:"
+L["STRING_OPTIONS_PROFILE_NOTCREATED"] = "Профиль не создан."
+L["STRING_OPTIONS_PROFILE_OVERWRITTEN"] = "для этого персонажа выбран определенный профиль"
+L["STRING_OPTIONS_PROFILE_POSSIZE"] = "Сохранить размер и положение"
+L["STRING_OPTIONS_PROFILE_POSSIZE_DESC"] = "Сохранить расположение и размер окна в профиле. Когда отключено, каждый персонаж имеет свои значения."
+L["STRING_OPTIONS_PROFILE_REMOVEOKEY"] = "Профиль успешно удален."
+L["STRING_OPTIONS_PROFILE_SELECT"] = "выбрать профиль."
+L["STRING_OPTIONS_PROFILE_SELECTEXISTING"] = "Выберите существующий профиль или продолжайте использовать новый для этого персонажа:"
+L["STRING_OPTIONS_PROFILE_USENEW"] = "Использовать новый профиль"
+L["STRING_OPTIONS_PROFILES_ANCHOR"] = "Настройки:"
+L["STRING_OPTIONS_PROFILES_COPY"] = "Скопировать профиль из"
+L["STRING_OPTIONS_PROFILES_COPY_DESC"] = "Скопировать все настройки из выбранного профиля в текущий профиль, перезаписывая все значения."
+L["STRING_OPTIONS_PROFILES_CREATE"] = "Создать профиль"
+L["STRING_OPTIONS_PROFILES_CREATE_DESC"] = "Создать новый профиль."
+L["STRING_OPTIONS_PROFILES_CURRENT"] = "Текущий профиль:"
+L["STRING_OPTIONS_PROFILES_CURRENT_DESC"] = "Это название текущего активированного профиля."
+L["STRING_OPTIONS_PROFILES_ERASE"] = "Удалить профиль"
+L["STRING_OPTIONS_PROFILES_ERASE_DESC"] = "Удалить выбранный профиль."
+L["STRING_OPTIONS_PROFILES_RESET"] = "Сброс текущего профиля"
+L["STRING_OPTIONS_PROFILES_RESET_DESC"] = "Сбросить все настройки выбранного профиля до значений по умолчанию."
+L["STRING_OPTIONS_PROFILES_SELECT"] = "Выбрать профиль"
+L["STRING_OPTIONS_PROFILES_SELECT_DESC"] = "Загрузить существующий профиль. Если вы используете один и тот же профиль на всех персонажей (при параметре \"Использовать на всех персонажах\"), то создается исключение для этого персонажа."
+L["STRING_OPTIONS_PROFILES_TITLE"] = "Профили"
+L["STRING_OPTIONS_PROFILES_TITLE_DESC"] = "Эти параметры позволяют использовать одни и те же настойки для разных персонажей."
+L["STRING_OPTIONS_PS_ABBREVIATE"] = "Формат чисел"
+L["STRING_OPTIONS_PS_ABBREVIATE_COMMA"] = "Запятая"
+L["STRING_OPTIONS_PS_ABBREVIATE_DESC"] = [=[Выберите метод сокращения.
+
+|cFFFFFF00ToK I|r:
+520600 = 520.6K
+19530000 = 19.53M
+
+|cFFFFFF00ToK II|r:
+520600 = 520K
+19530000 = 19.53M
+
+|cFFFFFF00ToM I|r:
+520600 = 520.6K
+19530000 = 19M
+
+|cFFFFFF00Запятая|r:
+19530000 = 19,530,000
+
+|cFFFFFF00Нижняя|r и |cFFFFFF00Верхняя|r: определяет, как будут написаны 'K' и 'M' в нижнем или верхнем регистре.]=]
+L["STRING_OPTIONS_PS_ABBREVIATE_NONE"] = "Никакой"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK"] = "ToK I Верхняя"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK0"] = "ToM I Верхняя"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK0MIN"] = "ToM I Нижняя"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK2"] = "ToK II Верхняя"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK2MIN"] = "ToK II Нижняя"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOKMIN"] = "ToK I Нижняя"
+L["STRING_OPTIONS_PVPFRAGS"] = "Только PvP убийства "
+L["STRING_OPTIONS_PVPFRAGS_DESC"] = "Когда включено, только убийства против вражеских игроков рассчитываются на |cFFFFFF00урон > убийства|r в дисплее."
+L["STRING_OPTIONS_REALMNAME"] = "Убрать название игрового мира"
+L["STRING_OPTIONS_REALMNAME_DESC"] = [=[Когда включено, название игрового мира персонажа не отображается.
+
+|cFFFFFF00Выключено|r: Возлайт-Гордунни
+|cFFFFFF00Включено|r: Возлайт]=]
+L["STRING_OPTIONS_REPORT_ANCHOR"] = "Отчет:"
+L["STRING_OPTIONS_REPORT_HEALLINKS"] = "Полезные ссылки на заклинания"
+L["STRING_OPTIONS_REPORT_HEALLINKS_DESC"] = [=[Когда отправляться отчет и при этом параметр включен, |cFF55FF55полезные|r заклинания сообщаются с помощью заклинания, а не его названия.
+
+|cFFFF5555Вредные|r заклинания, сообщаются, по ссылкам по умолчанию.]=]
+L["STRING_OPTIONS_REPORT_SCHEMA"] = "Формат"
+L["STRING_OPTIONS_REPORT_SCHEMA_DESC"] = "Выберите текстовый формат для текста, отправляемого в канал чата."
+L["STRING_OPTIONS_REPORT_SCHEMA1"] = "Всего / В секунду / Процент"
+L["STRING_OPTIONS_REPORT_SCHEMA2"] = "Процент / В секунду / Всего"
+L["STRING_OPTIONS_REPORT_SCHEMA3"] = "Процент / Всего / В секунду"
+L["STRING_OPTIONS_RESET_TO_DEFAULT"] = "Сброс до значения по умолчанию"
+L["STRING_OPTIONS_ROW_SETTING_ANCHOR"] = "Макет:"
+L["STRING_OPTIONS_ROWADV_TITLE"] = "Дополнительные настройки строки"
+L["STRING_OPTIONS_ROWADV_TITLE_DESC"] = "Эти параметры позволяют более глубоко изменять строки."
+L["STRING_OPTIONS_RT_COOLDOWN1"] = "%s использован(а) на %s!"
+L["STRING_OPTIONS_RT_COOLDOWN2"] = "%s использован(а)!"
+L["STRING_OPTIONS_RT_COOLDOWNS_ANCHOR"] = "Объявлять кулдауны:"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL"] = "Канал"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL_DESC"] = [=[Какой канал чата используется для отправки предупреждающего сообщения.
+
+Если выбран |cFFFFFF00Наблюдатель|r, то всё кулдауны отправляться в ваш чат, кроме отдельных кулдаунов.]=]
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM"] = "Ваш текст"
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM_DESC"] = [=[Введите собственную фразу для отправки.
+
+Напишите в строку |cFFFFFF00{spell}|r для того, чтобы добавить название заклинания кулдауна.
+
+Напишите в строку |cFFFFFF00{target}|r для того, чтобы добавить имя цели.]=]
+L["STRING_OPTIONS_RT_COOLDOWNS_ONOFF_DESC"] = "Когда вы используйте кулдаун, сообщение отправляться по выбранному каналу."
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT"] = "Игнорируемый список кулдаунов"
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT_DESC"] = "Выберите, какие кулдауны следует игнорировать."
+L["STRING_OPTIONS_RT_DEATH_MSG"] = "Details! %s умер(ла)"
+L["STRING_OPTIONS_RT_DEATHS_ANCHOR"] = "Объявлять смерти"
+L["STRING_OPTIONS_RT_DEATHS_FIRST"] = "Только первые"
+L["STRING_OPTIONS_RT_DEATHS_FIRST_DESC"] = "Делать объявление только до первых X смертей во время сражения."
+L["STRING_OPTIONS_RT_DEATHS_HITS"] = "Количество ударов"
+L["STRING_OPTIONS_RT_DEATHS_HITS_DESC"] = "Когда объявляется смерть, показывает сколько ударов было получено."
+L["STRING_OPTIONS_RT_DEATHS_ONOFF_DESC"] = "Когда участник рейда умирает, отправляется сообщение в рейдовый канал, отчего умер тот игрок."
+L["STRING_OPTIONS_RT_DEATHS_WHERE"] = "Подземелья"
+L["STRING_OPTIONS_RT_DEATHS_WHERE_DESC"] = [=[Выберите место, где можно сообщать о смерти.
+
+|cFFFFFF00Важно|r для рейдов используются /raid канал, а для подземелий /p.
+
+Если выбран |cFFFFFF00Наблюдатель|r, то смерти показываются только для вас в чате.]=]
+L["STRING_OPTIONS_RT_DEATHS_WHERE1"] = "Рейд и Подземелье"
+L["STRING_OPTIONS_RT_DEATHS_WHERE2"] = "Только Рейд"
+L["STRING_OPTIONS_RT_DEATHS_WHERE3"] = "Только Подземелье"
+L["STRING_OPTIONS_RT_FIRST_HIT"] = "Первый удар"
+L["STRING_OPTIONS_RT_FIRST_HIT_DESC"] = "Печатает в панель чата (|cFFFFFF00только для вас|r), кто нанёс первый удар, как правило, это тот кто начал бой."
+L["STRING_OPTIONS_RT_IGNORE_TITLE"] = "Игнорировать кулдауны"
+L["STRING_OPTIONS_RT_INFOS"] = "Дополнительная информация:"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION"] = "Использованные пре-поты (зелье)"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION_DESC"] = "Когда включено после рейдового сражения пишет в чате (|cFFFFFF00только для вас|r), кто использовал зелье в /pull."
+L["STRING_OPTIONS_RT_INTERRUPT"] = "%s прервано!"
+L["STRING_OPTIONS_RT_INTERRUPT_ANCHOR"] = "Объявлять прерывания:"
+L["STRING_OPTIONS_RT_INTERRUPT_NEXT"] = "Следующий: %s"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL"] = "Канал"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL_DESC"] = [=[Какой канал чата используется для отправки предупреждающего сообщения.
+
+Если выбран |cFFFFFF00Наблюдатель|r, то все прерывания отправляться только вам в чат.]=]
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM"] = "Ваш текст"
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM_DESC"] = [=[Введите собственную фразу для отправки.
+
+Напишите в строку |cFFFFFF00{spell}|r для того, чтобы добавить название прерванного заклинания.
+
+Напишите в строку |cFFFFFF00{next}|r для того, чтобы добавить имя следующего игрока для прерывания его нужно вписать в 'следующий игрок'.]=]
+L["STRING_OPTIONS_RT_INTERRUPTS_NEXT"] = "Следующий игрок"
+L["STRING_OPTIONS_RT_INTERRUPTS_NEXT_DESC"] = "При наличии последовательности прерываний поместите имя игрока, ответственного за следующее прерывание."
+L["STRING_OPTIONS_RT_INTERRUPTS_ONOFF_DESC"] = "При успешном прерывании заклинания отправляется сообщение."
+L["STRING_OPTIONS_RT_INTERRUPTS_WHISPER"] = "Шепот"
+L["STRING_OPTIONS_RT_OTHER_ANCHOR"] = "Общее:"
+L["STRING_OPTIONS_RT_TITLE"] = "Инструменты для рейдеров"
+L["STRING_OPTIONS_RT_TITLE_DESC"] = "На этой панели можно активировать несколько механизмов, помогающих вам во время рейдов."
+L["STRING_OPTIONS_SAVELOAD"] = "Сохранить и загрузить"
+L["STRING_OPTIONS_SAVELOAD_APPLYALL"] = "Текущий скин был применен ко всем остальным окнам."
+L["STRING_OPTIONS_SAVELOAD_APPLYALL_DESC"] = "Применить текущий скин на все созданные окна."
+L["STRING_OPTIONS_SAVELOAD_APPLYTOALL"] = "Применить ко всем окнам"
+L["STRING_OPTIONS_SAVELOAD_CREATE_DESC"] = "Сохранить текущий скин в качестве предустановки, вы можете экспортировать или сохранить ее в качестве резервной копии."
+L["STRING_OPTIONS_SAVELOAD_DESC"] = "Эти параметры позволяют сохранять или загружать предопределенные настройки."
+L["STRING_OPTIONS_SAVELOAD_ERASE_DESC"] = "Этот параметр удаляет предыдущий сохраненный скин."
+L["STRING_OPTIONS_SAVELOAD_EXPORT"] = "Экспорт"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_COPY"] = "Нажмите CTRL + C"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_DESC"] = "Сохранить скин в текстовом формате."
+L["STRING_OPTIONS_SAVELOAD_IMPORT"] = "Импорт скина"
+L["STRING_OPTIONS_SAVELOAD_IMPORT_DESC"] = "Импорт скина в текстовом формате."
+L["STRING_OPTIONS_SAVELOAD_IMPORT_OKEY"] = "Скин успешно импортирован в списке сохраненных скинов. Теперь вы можете применить его с помощью поля 'Применить'."
+L["STRING_OPTIONS_SAVELOAD_LOAD"] = "Применить"
+L["STRING_OPTIONS_SAVELOAD_LOAD_DESC"] = "Выберите один из предыдущих сохраненных скинов, чтобы применить к текущему выбранному окну."
+L["STRING_OPTIONS_SAVELOAD_MAKEDEFAULT"] = "Установить стандарт"
+L["STRING_OPTIONS_SAVELOAD_PNAME"] = "Название"
+L["STRING_OPTIONS_SAVELOAD_REMOVE"] = "Стереть"
+L["STRING_OPTIONS_SAVELOAD_RESET"] = "Загрузить скин по умолчанию"
+L["STRING_OPTIONS_SAVELOAD_SAVE"] = "сохранить"
+L["STRING_OPTIONS_SAVELOAD_SKINCREATED"] = "Скин создан."
+L["STRING_OPTIONS_SAVELOAD_STD_DESC"] = [=[Установить текущий вид в качестве стандартного скина.
+
+Этот скин применяется ко всем новым созданным окнам.]=]
+L["STRING_OPTIONS_SAVELOAD_STDSAVE"] = "Стандартный скин сохранен, новые окна будут использовать этот скин по умолчанию."
+L["STRING_OPTIONS_SCROLLBAR"] = "Полоса прокрутки"
+L["STRING_OPTIONS_SCROLLBAR_DESC"] = [=[Включение или отключение полос прокрутки.
+
+По умолчанию в, Details! полосы прокрутки заменяются механизмом, растягивающим окно.
+
+|cFFFFFF00Ручное растяжение|r находится снаружи окна над кнопками/меню (слева от кнопки закрытия).]=]
+L["STRING_OPTIONS_SEGMENTSSAVE"] = "Сохраненные сегменты"
+L["STRING_OPTIONS_SEGMENTSSAVE_DESC"] = [=[Сколько сегментов вы хотите сохранить между игровыми сеансами.
+
+Высокие значения могут увеличить время, затрачиваемое на выход из системы.]=]
+L["STRING_OPTIONS_SENDFEEDBACK"] = "Обратная связь"
+L["STRING_OPTIONS_SHOW_SIDEBARS"] = "Показывать границы:"
+L["STRING_OPTIONS_SHOW_SIDEBARS_DESC"] = "Показать или скрыть границы окна."
+L["STRING_OPTIONS_SHOW_STATUSBAR"] = "Показать строку состояния"
+L["STRING_OPTIONS_SHOW_STATUSBAR_DESC"] = "Показать или скрыть нижнюю строку состояния."
+L["STRING_OPTIONS_SHOW_TOTALBAR_COLOR_DESC"] = "Выберите цвет. Значение прозрачности соответствует альфа-значению строки."
+L["STRING_OPTIONS_SHOW_TOTALBAR_DESC"] = "Показать или скрыть панель итогов."
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON"] = "Значок"
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON_DESC"] = "Выберите значок, отображаемый на полосе итогов."
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP"] = "Только в группе"
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP_DESC"] = "Полоса итога не показывается, когда вы не в группе."
+L["STRING_OPTIONS_SIZE"] = "Размер"
+L["STRING_OPTIONS_SKIN_A"] = "Настройки: Скины"
+L["STRING_OPTIONS_SKIN_A_DESC"] = "Эти параметры позволяют изменять скин."
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1"] = "Выравнивание по правому чату"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1_DESC"] = "Перемещение и изменение размера окон |cFFFFFF00#1|r и |cFFFFFF00#2|r над правым чатом."
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2"] = "Установить границу подсказки к тёмному"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2_DESC"] = [=[Изменения в подсказках:
+
+Цвет границы: |cFFFFFF00Чёрный|r.
+Размер границы: |cFFFFFF0016|r.
+Текстура: |cFFFFFF00Blizzard Tooltip|r.]=]
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3"] = "Удалить границу подсказки"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3_DESC"] = [=[Изменения в подсказках:
+
+Цвет границы: |cFFFFFF00Прозрачный|r.]=]
+L["STRING_OPTIONS_SKIN_EXTRA_OPTIONS_ANCHOR"] = "Параметры скина:"
+L["STRING_OPTIONS_SKIN_LOADED"] = "скин успешно загружен."
+L["STRING_OPTIONS_SKIN_PRESETS_ANCHOR"] = "Сохранить скин:"
+L["STRING_OPTIONS_SKIN_PRESETSCONFIG_ANCHOR"] = "Управление сохраненными скинами:"
+L["STRING_OPTIONS_SKIN_REMOVED"] = "скин удален."
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP"] = "Сбросить границу подсказки"
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP_DESC"] = "Установить цвет и текстуру границы подсказки по умолчанию."
+L["STRING_OPTIONS_SKIN_SELECT"] = "выбрать скин"
+L["STRING_OPTIONS_SKIN_SELECT_ANCHOR"] = "Выбор скина:"
+L["STRING_OPTIONS_SOCIAL"] = "Социальное"
+L["STRING_OPTIONS_SOCIAL_DESC"] = "Расскажите, как вы хотите быть известным в среде гильдии."
+L["STRING_OPTIONS_SPELL_ADD"] = "Добавить"
+L["STRING_OPTIONS_SPELL_ADDICON"] = "Новый значок:"
+L["STRING_OPTIONS_SPELL_ADDNAME"] = "Новое название:"
+L["STRING_OPTIONS_SPELL_ADDSPELL"] = "Добавить заклинание"
+L["STRING_OPTIONS_SPELL_ADDSPELLID"] = "ID заклинания:"
+L["STRING_OPTIONS_SPELL_CLOSE"] = "Закрыть"
+L["STRING_OPTIONS_SPELL_ICON"] = "Значок"
+L["STRING_OPTIONS_SPELL_IDERROR"] = "Недопустимый id заклинания."
+L["STRING_OPTIONS_SPELL_INDEX"] = "Индекс"
+L["STRING_OPTIONS_SPELL_NAME"] = "Название"
+L["STRING_OPTIONS_SPELL_NAMEERROR"] = "Недопустимое название заклинания."
+L["STRING_OPTIONS_SPELL_NOTFOUND"] = "Заклинание не найдено."
+L["STRING_OPTIONS_SPELL_REMOVE"] = "Удалить"
+L["STRING_OPTIONS_SPELL_RESET"] = "Сбросить"
+L["STRING_OPTIONS_SPELL_SPELLID"] = "ID заклинания"
+L["STRING_OPTIONS_STRETCH"] = "Кнопка растягивания сверху"
+L["STRING_OPTIONS_STRETCH_DESC"] = "Расположить кнопку растягивания в верхней части окна."
+L["STRING_OPTIONS_STRETCHTOP"] = "Кнопка растягивать всегда поверх всех"
+L["STRING_OPTIONS_STRETCHTOP_DESC"] = [=[Кнопка растягивания будет размещена на ПОЛНОЭКРАННОМ слое и всегда оставаться выше остальных рамок.
+
+|cFFFFFF00Важно|r: Перемещение захвата на верхний слой, он может оставаться перед другими рамками, как сумки, используйте только если вам действительно нужно.]=]
+L["STRING_OPTIONS_SWITCH_ANCHOR"] = "Переключатели:"
+L["STRING_OPTIONS_SWITCHINFO"] = "|cFFF79F81 ЛЕВЫЙ ОТКЛЮЧЕН|r |cFF81BEF7 ПРАВЫЙ ВКЛЮЧЕН|r"
+L["STRING_OPTIONS_TABEMB_ANCHOR"] = "Встраивание во вкладку чата"
+L["STRING_OPTIONS_TABEMB_ENABLED_DESC"] = "Когда включено, одно или несколько окон присоединяются на вкладку чата."
+L["STRING_OPTIONS_TABEMB_SINGLE"] = "Одно окно"
+L["STRING_OPTIONS_TABEMB_SINGLE_DESC"] = "Когда включено, будет прикреплено только одно окно вместо двух."
+L["STRING_OPTIONS_TABEMB_TABNAME"] = "Название вкладки"
+L["STRING_OPTIONS_TABEMB_TABNAME_DESC"] = "Название вкладки, к которой будут присоединены окна."
+L["STRING_OPTIONS_TESTBARS"] = "Создать тестовые полосы"
+L["STRING_OPTIONS_TEXT"] = "Настройки текста полос"
+L["STRING_OPTIONS_TEXT_DESC"] = "Эти параметры управляют внешним видом текста строки окна."
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR"] = "Цвет текста"
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR_DESC"] = [=[Изменение цвета текста как левого, так и правого текста.
+
+Игнорируется, если включен |cFFFFFFFFцвет по классу|r.]=]
+L["STRING_OPTIONS_TEXT_FONT"] = "Шрифт текста"
+L["STRING_OPTIONS_TEXT_FONT_DESC"] = "Изменить шрифт как левого, так и правого текста."
+L["STRING_OPTIONS_TEXT_LCLASSCOLOR_DESC"] = "Когда включено, текст всегда использует цвет класса игрока."
+L["STRING_OPTIONS_TEXT_LEFT_ANCHOR"] = "Текст слева:"
+L["STRING_OPTIONS_TEXT_LOUTILINE"] = "Тень текста"
+L["STRING_OPTIONS_TEXT_LOUTILINE_DESC"] = "Включение или отключение контура для левого текста."
+L["STRING_OPTIONS_TEXT_LPOSITION"] = "Показывать номер"
+L["STRING_OPTIONS_TEXT_LPOSITION_DESC"] = "Показать номер позиции на левой стороне имени игрока."
+L["STRING_OPTIONS_TEXT_RIGHT_ANCHOR"] = "Текст справа:"
+L["STRING_OPTIONS_TEXT_ROUTILINE_DESC"] = "Включение или отключение контура для правого текста."
+L["STRING_OPTIONS_TEXT_ROWICONS_ANCHOR"] = "Значки:"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET"] = "Скобка"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET_DESC"] = "Выберите символ, используемый для открытия и закрытия блока в секунду и процент."
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT"] = "Показывать процент"
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT_DESC"] = "Показывать проценты."
+L["STRING_OPTIONS_TEXT_SHOW_PS"] = "Показывать в секунду"
+L["STRING_OPTIONS_TEXT_SHOW_PS_DESC"] = "Показывать урон в секунду и исцеление в секунду."
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR"] = "Разделитель"
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR_DESC"] = "Выберите символ, используемый для oтделения суммы в секунду от процентной суммы."
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL"] = "Показывать итог"
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL_DESC"] = [=[Показывать итог, сделанный субъектом.
+
+Для примера: всего нанесено урона, всего исцеления получено.]=]
+L["STRING_OPTIONS_TEXT_SIZE"] = "Размер текста"
+L["STRING_OPTIONS_TEXT_SIZE_DESC"] = "Изменить размер как левого, так и правого текста."
+L["STRING_OPTIONS_TEXT_TEXTUREL_ANCHOR"] = "Фон:"
+L["STRING_OPTIONS_TEXT_TEXTUREU_ANCHOR"] = "Внешний вид:"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL"] = "Отменить"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL_TOOLTIP"] = "Закончить редактирование и игнорировать любые изменения в коде."
+L["STRING_OPTIONS_TEXTEDITOR_COLOR_TOOLTIP"] = "Выберите текст, а затем нажмите на кнопку цвета, чтобы изменить выбранный цвет текста."
+L["STRING_OPTIONS_TEXTEDITOR_COMMA"] = "Запятая"
+L["STRING_OPTIONS_TEXTEDITOR_COMMA_TOOLTIP"] = [=[Добавить функцию для форматирования чисел, разделяя их запятыми.
+Пример: 1000000 to 1.000.000.]=]
+L["STRING_OPTIONS_TEXTEDITOR_DATA"] = "[Данные %s]"
+L["STRING_OPTIONS_TEXTEDITOR_DATA_TOOLTIP"] = [=[Добавить данные:
+
+|cFFFFFF00Данные 1|r: обычное представляет общую сумму, выполненную субъектом или номером позиции.
+
+|cFFFFFF00Данные 2|r: в большинстве случаев представляет собой УВС, ИВС или имя игрока.
+
+|cFFFFFF00Данные 3|r: представляет процент, сделанный субъектом, спецификацию или значок фракции.]=]
+L["STRING_OPTIONS_TEXTEDITOR_DONE"] = "Готово"
+L["STRING_OPTIONS_TEXTEDITOR_DONE_TOOLTIP"] = "Завершите редактирование и сохранить код."
+L["STRING_OPTIONS_TEXTEDITOR_FUNC"] = "Функция"
+L["STRING_OPTIONS_TEXTEDITOR_FUNC_TOOLTIP"] = [=[Добавить пустую функцию.
+Функции должны всегда возвращать число.]=]
+L["STRING_OPTIONS_TEXTEDITOR_RESET"] = "Сбросить"
+L["STRING_OPTIONS_TEXTEDITOR_RESET_TOOLTIP"] = "Очистить весь код и добавить код по умолчанию."
+L["STRING_OPTIONS_TEXTEDITOR_TOK"] = "ТоК"
+L["STRING_OPTIONS_TEXTEDITOR_TOK_TOOLTIP"] = [=[Добавить функцию для форматирования чисел, сокращающих их значения.
+Пример: 1500000 на 1.5kk.]=]
+L["STRING_OPTIONS_TIMEMEASURE"] = "Мера времени"
+L["STRING_OPTIONS_TIMEMEASURE_DESC"] = [=[|cFFFFFF00Активный|r: таймер каждого участника рейда ставится на удержание, если их активность прекращается, и снова подсчитывается при возобновлении, общий способ измерения УВС и ИВС.
+
+|cFFFFFF00Эффективный|r: используется в рейтинге, этот метод использует прошедшее боевое время для измерения УВС и ИВС - всех участников рейда.]=]
+L["STRING_OPTIONS_TOOLBAR_SETTINGS"] = "Настройки кнопки заголовка полос"
+L["STRING_OPTIONS_TOOLBAR_SETTINGS_DESC"] = "Эти параметры меняют главное меню в верхней части окна."
+L["STRING_OPTIONS_TOOLBARSIDE"] = "Полоса заголовка сверху"
+L["STRING_OPTIONS_TOOLBARSIDE_DESC"] = [=[Помещает полосу заголовка в верхней части окна.
+
+|cFFFFFF00Важно|r: при изменении положения, текст заголовка не изменится, проверьте раздел |cFFFFFF00Полоса заголовка: Текст|r для дополнительных параметров.]=]
+L["STRING_OPTIONS_TOOLS_ANCHOR"] = "Инструменты:"
+L["STRING_OPTIONS_TOOLTIP_ANCHOR"] = "Настройки:"
+L["STRING_OPTIONS_TOOLTIP_ANCHORTEXTS"] = "Тексты:"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION"] = "Тип сокращения"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION_DESC"] = "Выберите способ форматирования чисел, отображаемых в подсказках."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH"] = "Сторона подсказки"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH_DESC"] = "Какая сторона подсказки используется, чтобы соответствовать со стороной крепления якоря."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_BORDER"] = "Граница:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_POINT"] = "Крепление:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE"] = "Сторона крепления"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE_DESC"] = "На какой стороне крепления будет размещена подсказка."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT"] = "Крепление подсказки"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT_DESC"] = "правый щелчок, чтобы заблокировать."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO"] = "Закрепить"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE"] = "Перемещение точки привязки"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE_DESC"] = "Переместить положение крепления, когда крепление находится в |cFFFFFF00Точка на экране|r."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_DESC"] = "Подсказки прикрепляются к наведенной строке или к выбранной точке игрового экрана."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO1"] = "Строка окна"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO2"] = "Точка на экране"
+L["STRING_OPTIONS_TOOLTIPS_ANCHORCOLOR"] = "заголовок"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR"] = "Фоновый цвет"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR_DESC"] = "Выберите цвет, используемый на фоне."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_COLOR_DESC"] = "Изменить цвет границы."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_SIZE_DESC"] = "Изменить размер границы."
+L["STRING_OPTIONS_TOOLTIPS_BORDER_TEXTURE_DESC"] = "Изменить файл текстуры границы."
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR"] = "Цвет текста"
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR_DESC"] = "Изменение цвета, используемого в текстах подсказки."
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE"] = "Шрифт текста"
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE_DESC"] = "Выберите шрифт, используемый в текстах подсказках."
+L["STRING_OPTIONS_TOOLTIPS_FONTSHADOW_DESC"] = "Включить или отключить тень текста."
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE"] = "Размер текста"
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE_DESC"] = "Увеличение или уменьшение размера текста подсказки"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER"] = "Обои подменю"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER_DESC"] = "Когда включено, некоторые меню могут использовать свои собственные обои в подменю."
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE"] = "Метод развертывания"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE_DESC"] = [=[Выберите метод, используемый для развертывания информации, показанной на подсказке.
+
+|cFFFFFF00 На управлении клавишами|r: Поле подсказки расширяется при нажатии клавиш Shift, Ctrl или Alt.
+
+|cFFFFFF00 Всегда развернуто|r: подсказки всегда показывают всю информацию без каких-либо ограничений.
+
+|cFFFFFF00 Только блок Shift|r: первый блок подсказки всегда расширяется по умолчанию.
+
+|cFFFFFF00 Только блок Ctrl|r: второй блок всегда расширяется по умолчанию.
+
+|cFFFFFF00 Только блок Alt|r: третий блок всегда расширяется по умолчанию.]=]
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE1"] = "На Shift Ctrl Alt"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE2"] = "Всегда развернуто"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE3"] = "Только блок Shift"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE4"] = "Только блок Ctrl"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE5"] = "Только блок Alt"
+L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP"] = "Редактор обоев меню"
+L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP_DESC"] = "Изменение аспектов обоев для меню полос заголовка."
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX"] = "Расстояние по X"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX_DESC"] = "На сколько далеко по горизонтали подсказка от своего крепления."
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY"] = "Расстояние по Y"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY_DESC"] = "На сколько далеко по вертикали подсказка от своего крепления."
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT"] = "Показывать количество"
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT_DESC"] = "Показывает число, указывающее количество заклинаний, целей и питомцев в подсказке."
+L["STRING_OPTIONS_TOOLTIPS_TITLE"] = "Подсказки"
+L["STRING_OPTIONS_TOOLTIPS_TITLE_DESC"] = "Эти параметры управляют появлением подсказок."
+L["STRING_OPTIONS_TOTALBAR_ANCHOR"] = "Полоса итога:"
+L["STRING_OPTIONS_TRASH_SUPPRESSION"] = "Исключать мусор"
+L["STRING_OPTIONS_TRASH_SUPPRESSION_DESC"] = "В течение |cFFFFFF00X|r секунд, отключается автоматическое переключение, чтобы показать сегменты мусора (|cFFFFFF00только, после победы над боссом|r)."
+L["STRING_OPTIONS_WALLPAPER_ALPHA"] = "Альфа:"
+L["STRING_OPTIONS_WALLPAPER_ANCHOR"] = "Выбор обоев:"
+L["STRING_OPTIONS_WALLPAPER_BLUE"] = "Синий:"
+L["STRING_OPTIONS_WALLPAPER_CBOTTOM"] = "Обрезать (|cFFC0C0C0снизу|r):"
+L["STRING_OPTIONS_WALLPAPER_CLEFT"] = "Обрезать (|cFFC0C0C0слева|r):"
+L["STRING_OPTIONS_WALLPAPER_CRIGHT"] = "Обрезать (|cFFC0C0C0справа|r):"
+L["STRING_OPTIONS_WALLPAPER_CTOP"] = "Обрезать (|cFFC0C0C0сверху|r):"
+L["STRING_OPTIONS_WALLPAPER_FILE"] = "Файл:"
+L["STRING_OPTIONS_WALLPAPER_GREEN"] = "Зелёный"
+L["STRING_OPTIONS_WALLPAPER_LOAD"] = "Загрузить изображение"
+L["STRING_OPTIONS_WALLPAPER_LOAD_DESC"] = "Выберите изображение с жёсткого диска для использования в качестве обоев."
+L["STRING_OPTIONS_WALLPAPER_LOAD_EXCLAMATION"] = [=[Требования к изображению:
+
+-Должно быть в формате Truevision TGA (расширение .tga).
+-Быть внутри корневой папки WOW/Interface/.
+-Размер должен быть 256 x 256 пикселей.
+-Игра должна быть закрыта перед копированием файла.]=]
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME"] = "Наименование файла:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME_DESC"] = "Вставить только имя файла, без пути и расширения."
+L["STRING_OPTIONS_WALLPAPER_LOAD_OKEY"] = "Загрузить"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TITLE"] = "Из компьютера:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT"] = "Устранение проблем"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT_TEXT"] = [=[Если обои отображаются полностью в зелёный цвете:
+
+-Перезапустите клиент wow.
+-Убедитесь, что изображение 256 в ширину и 256 в высоту.
+-Проверьте, находится ли изображение в формате .TGA
+и убедитесь, что оно сохранено с 32 бит/пиксель.
+-Находится внутри папки Interface, для примера:
+C:/Program Files/World of Warcraft/Interface/]=]
+L["STRING_OPTIONS_WALLPAPER_RED"] = "Красный:"
+L["STRING_OPTIONS_WC_ANCHOR"] = "Быстрое управление окном (#%s)"
+L["STRING_OPTIONS_WC_BOOKMARK"] = "Управление закладками"
+L["STRING_OPTIONS_WC_BOOKMARK_DESC"] = "Открыть панель управления закладками."
+L["STRING_OPTIONS_WC_CLOSE"] = "Закрыть"
+L["STRING_OPTIONS_WC_CLOSE_DESC"] = [=[Закрыть текущее окно редактирования.
+
+Когда окно закрыто, окно является неактивным и оно может быть возобновлено в любое время с помощью меню управления.
+
+|cFFFFFF00Важно:|r чтобы полностью удалить окно, перейдите в раздел 'Окно:Общее'.]=]
+L["STRING_OPTIONS_WC_CREATE"] = "Создать окно"
+L["STRING_OPTIONS_WC_CREATE_DESC"] = "Создать новое окно."
+L["STRING_OPTIONS_WC_LOCK"] = "Заблокировать"
+L["STRING_OPTIONS_WC_LOCK_DESC"] = [=[Заблокировать или разблокировать окно.
+
+При блокировке окно не может быть перемещено.]=]
+L["STRING_OPTIONS_WC_REOPEN"] = "Вновь открыть"
+L["STRING_OPTIONS_WC_UNLOCK"] = "Разблокировать"
+L["STRING_OPTIONS_WC_UNSNAP"] = "Разгруппировать"
+L["STRING_OPTIONS_WC_UNSNAP_DESC"] = "Удалить это окно из группы окон."
+L["STRING_OPTIONS_WHEEL_SPEED"] = "Скорость прокрутки"
+L["STRING_OPTIONS_WHEEL_SPEED_DESC"] = "Изменяет скорость прокрутки при повороте колеса мыши над окном."
+L["STRING_OPTIONS_WINDOW"] = "Панель параметров"
+L["STRING_OPTIONS_WINDOW_ANCHOR_ANCHORS"] = "Крепления:"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE"] = "Игнорировать массовое переключение"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE_DESC"] = "При включении этого окна не влияет на скрытие, отображении или переключении всех окон."
+L["STRING_OPTIONS_WINDOW_SCALE"] = "Масштаб"
+L["STRING_OPTIONS_WINDOW_SCALE_DESC"] = [=[Отрегулируйте масштаб окна.
+
+|cFFFFFF00Совет|r: правый щелчок, чтобы ввести значение.
+
+|cFFFFFF00Текущий|r: %s]=]
+L["STRING_OPTIONS_WINDOW_TITLE"] = "Общие настройки окна"
+L["STRING_OPTIONS_WINDOW_TITLE_DESC"] = "Эти параметры управляют внешним видом окна, выбранного окна."
+L["STRING_OPTIONS_WINDOWSPEED"] = "Интервал обновления"
+L["STRING_OPTIONS_WINDOWSPEED_DESC"] = [=[Интервал времени между каждым обновлением.
+
+|cFFFFFF000.05|r: обновление в реальном времени.
+
+|cFFFFFF000.3|r: обновление 3 раза в секунду.
+
+|cFFFFFF003.0|r: обновление каждые 3 секунды.]=]
+L["STRING_OPTIONS_WP"] = "Настройки обоев"
+L["STRING_OPTIONS_WP_ALIGN"] = "Выравнять "
+L["STRING_OPTIONS_WP_ALIGN_DESC"] = [=[Способ выровнять обои в пределах окна.
+
+- |cFFFFFF00Заполнить|r: автоматическое изменение размера и выровнять все углы.
+
+- |cFFFFFF00Центр|r: не изменяет размер и не выравнивается с центром окна.
+
+-|cFFFFFF00Растяжение|r: автоматическое изменение размера по вертикали или горизонтали и выровнять с левой-справа или сверху-снизу.
+
+-|cFFFFFF00Четыре угла|r: выравнивание с указанным углом, автоматическое изменение размера не производится.]=]
+L["STRING_OPTIONS_WP_DESC"] = "Эти параметры управляют обоями окна."
+L["STRING_OPTIONS_WP_EDIT"] = "Редактировать изображение "
+L["STRING_OPTIONS_WP_EDIT_DESC"] = "Открыть редактор изображений, чтобы изменить некоторые аспекты выбранного изображения."
+L["STRING_OPTIONS_WP_ENABLE_DESC"] = "Показать обои."
+L["STRING_OPTIONS_WP_GROUP"] = "Категория"
+L["STRING_OPTIONS_WP_GROUP_DESC"] = "Выберите группу изображений."
+L["STRING_OPTIONS_WP_GROUP2"] = "Обои"
+L["STRING_OPTIONS_WP_GROUP2_DESC"] = "Изображение, которое будет использоваться в качестве обоев."
+L["STRING_OPTIONSMENU_AUTOMATIC"] = "Окно: Автоматизация"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE"] = "Настройки Окна автоматизации"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE_DESC"] = "Эти параметры управляют автоматическим поведением окна, таким как автоматическое скрытие и автоматическое переключение."
+L["STRING_OPTIONSMENU_COMBAT"] = "PvE PvP"
+L["STRING_OPTIONSMENU_DATACHART"] = "Данные для диаграмм"
+L["STRING_OPTIONSMENU_DATACOLLECT"] = "Данные сборщика"
+L["STRING_OPTIONSMENU_DATAFEED"] = "Канал данных"
+L["STRING_OPTIONSMENU_DISPLAY"] = "Отображение "
+L["STRING_OPTIONSMENU_DISPLAY_DESC"] = "Основные базовые регулировки и быстрое управление окном."
+L["STRING_OPTIONSMENU_LEFTMENU"] = "Заголовок полос: Общее"
+L["STRING_OPTIONSMENU_MISC"] = "Разное"
+L["STRING_OPTIONSMENU_PERFORMANCE"] = "Производительность"
+L["STRING_OPTIONSMENU_PLUGINS"] = "Плагины"
+L["STRING_OPTIONSMENU_PROFILES"] = "Профили"
+L["STRING_OPTIONSMENU_RAIDTOOLS"] = "Рейдовые инструменты"
+L["STRING_OPTIONSMENU_RIGHTMENU"] = "-- x -- x --"
+L["STRING_OPTIONSMENU_ROWMODELS"] = "Полосы: Дополнительно"
+L["STRING_OPTIONSMENU_ROWSETTINGS"] = "Полосы: Общее"
+L["STRING_OPTIONSMENU_ROWTEXTS"] = "Полосы: Тексты"
+L["STRING_OPTIONSMENU_SKIN"] = "Скины"
+L["STRING_OPTIONSMENU_SPELLS"] = "Кастомизация заклинаний"
+L["STRING_OPTIONSMENU_SPELLS_CONSOLIDATE"] = "Объединить общие заклинания с тем же названием"
+L["STRING_OPTIONSMENU_TITLETEXT"] = "Заголовок полос: Текст"
+L["STRING_OPTIONSMENU_TOOLTIP"] = "Подсказки"
+L["STRING_OPTIONSMENU_WALLPAPER"] = "Окно: Обои"
+L["STRING_OPTIONSMENU_WINDOW"] = "Окно: Общее"
+L["STRING_OVERALL"] = "Общий"
+L["STRING_OVERHEAL"] = "Избыточное лечение"
+L["STRING_OVERHEALED"] = "Избыточно исцелено"
+L["STRING_PARRY"] = "Парирование"
+L["STRING_PERCENTAGE"] = "Процент"
+L["STRING_PET"] = "Питомец"
+L["STRING_PETS"] = "Питомцы"
+L["STRING_PLAYER_DETAILS"] = "Details! Игрока"
+L["STRING_PLAYERS"] = "Игроки"
+L["STRING_PLEASE_WAIT"] = "Пожалуйста, подождите"
+L["STRING_PLUGIN_CLEAN"] = "Никакой"
+L["STRING_PLUGIN_CLOCKNAME"] = "Время сражения"
+L["STRING_PLUGIN_CLOCKTYPE"] = "Тип часов"
+L["STRING_PLUGIN_DURABILITY"] = "Прочность "
+L["STRING_PLUGIN_FPS"] = "Частота кадров"
+L["STRING_PLUGIN_GOLD"] = "Золото"
+L["STRING_PLUGIN_LATENCY"] = "Задержка "
+L["STRING_PLUGIN_MINSEC"] = "Минуты и секунды"
+L["STRING_PLUGIN_NAMEALREADYTAKEN"] = "Details! не удается установить подключаемый модуль, поскольку имя уже было принято"
+L["STRING_PLUGIN_PATTRIBUTENAME"] = "Атрибут"
+L["STRING_PLUGIN_PDPSNAME"] = "Рейдовый УВС"
+L["STRING_PLUGIN_PSEGMENTNAME"] = "Сегмент"
+L["STRING_PLUGIN_SECONLY"] = "Только секунды"
+L["STRING_PLUGIN_SEGMENTTYPE"] = "Тип сегмента"
+L["STRING_PLUGIN_SEGMENTTYPE_1"] = "Бой #X"
+L["STRING_PLUGIN_SEGMENTTYPE_2"] = "Имя сражения"
+L["STRING_PLUGIN_SEGMENTTYPE_3"] = "Имя сражения и плюс сегмент"
+L["STRING_PLUGIN_THREATNAME"] = "Моя угроза"
+L["STRING_PLUGIN_TIME"] = "Часы"
+L["STRING_PLUGIN_TIMEDIFF"] = "Разница с последним боем"
+L["STRING_PLUGIN_TOOLTIP_LEFTBUTTON"] = "Конфигурации текущего плагина"
+L["STRING_PLUGIN_TOOLTIP_RIGHTBUTTON"] = "Выбрать другой плагин"
+L["STRING_PLUGINOPTIONS_ABBREVIATE"] = "Сокращение"
+L["STRING_PLUGINOPTIONS_COMMA"] = "Запятая"
+L["STRING_PLUGINOPTIONS_FONTFACE"] = "Выбрать шрифт"
+L["STRING_PLUGINOPTIONS_NOFORMAT"] = "Никакой"
+L["STRING_PLUGINOPTIONS_TEXTALIGN"] = "Выравнивание текста"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_X"] = "Выравнивание текста по X"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_Y"] = "Выравнивание текста по Y"
+L["STRING_PLUGINOPTIONS_TEXTCOLOR"] = "Цвет текста"
+L["STRING_PLUGINOPTIONS_TEXTSIZE"] = "Размер текста"
+L["STRING_PLUGINOPTIONS_TEXTSTYLE"] = "Стиль текста"
+L["STRING_QUERY_INSPECT"] = "получение талантов и уровня предметов."
+L["STRING_QUERY_INSPECT_FAIL1"] = "нельзя запрашивать во время боя."
+L["STRING_QUERY_INSPECT_REFRESH"] = "необходимо обновить"
+L["STRING_RAID_WIDE"] = "[*] большой рейдовый кулдаун"
+L["STRING_RAIDCHECK_PLUGIN_DESC"] = "Когда внутри рейда, показывать значок Details! заголовке показывающий настой, еду, использование пре-пота."
+L["STRING_RAIDCHECK_PLUGIN_NAME"] = "Проверка рейда"
+L["STRING_REPORT"] = "c"
+L["STRING_REPORT_BUTTON_TOOLTIP"] = "Щелкните, чтобы открыть диалоговое окно отчета"
+L["STRING_REPORT_FIGHT"] = "бой"
+L["STRING_REPORT_FIGHTS"] = "бои"
+L["STRING_REPORT_INVALIDTARGET"] = "Цель для шёпота не найдена"
+L["STRING_REPORT_LAST"] = "Последний"
+L["STRING_REPORT_LASTFIGHT"] = "Последний бой"
+L["STRING_REPORT_LEFTCLICK"] = "Щелкните, чтобы открыть диалоговое окно отчета"
+L["STRING_REPORT_PREVIOUSFIGHTS"] = "предыдущий бой"
+L["STRING_REPORT_SINGLE_BUFFUPTIME"] = "Время баффов для"
+L["STRING_REPORT_SINGLE_COOLDOWN"] = "использованы кулдауны от"
+L["STRING_REPORT_SINGLE_DEATH"] = "Смерть от"
+L["STRING_REPORT_SINGLE_DEBUFFUPTIME"] = "время дебаффов для"
+L["STRING_REPORT_TOOLTIP"] = "Результат отчёта"
+L["STRING_REPORTFRAME_COPY"] = "Копировать и Вставить"
+L["STRING_REPORTFRAME_CURRENT"] = "Текущий"
+L["STRING_REPORTFRAME_CURRENTINFO"] = "Отображение только тех данных, которые отображаются в данный момент (если поддерживается)."
+L["STRING_REPORTFRAME_GUILD"] = "Гильдия"
+L["STRING_REPORTFRAME_INSERTNAME"] = "имя игрока"
+L["STRING_REPORTFRAME_LINES"] = "Строк"
+L["STRING_REPORTFRAME_OFFICERS"] = "Канал офицеров"
+L["STRING_REPORTFRAME_PARTY"] = "Группа"
+L["STRING_REPORTFRAME_RAID"] = "Рейд"
+L["STRING_REPORTFRAME_REVERT"] = "В обратном"
+L["STRING_REPORTFRAME_REVERTED"] = "обратный"
+L["STRING_REPORTFRAME_REVERTINFO"] = "отправить в порядке возрастания."
+L["STRING_REPORTFRAME_SAY"] = "Сказать"
+L["STRING_REPORTFRAME_SEND"] = "Отправить"
+L["STRING_REPORTFRAME_WHISPER"] = "Шепот"
+L["STRING_REPORTFRAME_WHISPERTARGET"] = "Шепнуть цели"
+L["STRING_REPORTFRAME_WINDOW_TITLE"] = "Поделится Details!"
+L["STRING_REPORTHISTORY"] = "Последние отчеты"
+L["STRING_RESISTED"] = "Сопротивление"
+L["STRING_RESIZE_ALL"] = "Свободно изменять размеры всех окон"
+L["STRING_RESIZE_COMMON"] = "Изменение размера"
+L["STRING_RESIZE_HORIZONTAL"] = [=[Изменяет ширину всех
+ окон в группе]=]
+L["STRING_RESIZE_VERTICAL"] = [=[Изменяет высоту всех
+ окон в группе]=]
+L["STRING_RIGHT"] = "справа"
+L["STRING_RIGHT_TO_LEFT"] = "Справа налево"
+L["STRING_RIGHTCLICK_CLOSE_LARGE"] = "Щелкните правой кнопкой мыши, чтобы закрыть это окно."
+L["STRING_RIGHTCLICK_CLOSE_MEDIUM"] = "Исп. правый щелчок, чтобы закрыть это окно."
+L["STRING_RIGHTCLICK_CLOSE_SHORT"] = "Правый щелчок, чтобы закрыть."
+L["STRING_RIGHTCLICK_TYPEVALUE"] = "правый щелчок, чтобы ввести значение"
+L["STRING_SCORE_BEST"] = "вы набрали |cFFFFFF00%s|r, это ваши лучшие очки, поздравляю!"
+L["STRING_SCORE_NOTBEST"] = "ваши очки |cFFFFFF00%s|r, ваш лучший результат был |cFFFFFF00%s|r на %s с %d уровнем предметов."
+L["STRING_SEE_BELOW"] = "смотреть ниже"
+L["STRING_SEGMENT"] = "Сегмент"
+L["STRING_SEGMENT_EMPTY"] = "этот сегмент пуст"
+L["STRING_SEGMENT_END"] = "Конец"
+L["STRING_SEGMENT_ENEMY"] = "Враг"
+L["STRING_SEGMENT_LOWER"] = "сегмент"
+L["STRING_SEGMENT_OVERALL"] = "Общие данные"
+L["STRING_SEGMENT_START"] = "Начало"
+L["STRING_SEGMENT_TRASH"] = "Зачистка мусора"
+L["STRING_SEGMENTS"] = "Сегменты"
+L["STRING_SEGMENTS_LIST_BOSS"] = "бой с боссом"
+L["STRING_SEGMENTS_LIST_COMBATTIME"] = "Время боя"
+L["STRING_SEGMENTS_LIST_OVERALL"] = "в целом"
+L["STRING_SEGMENTS_LIST_TIMEINCOMBAT"] = "Время в бою"
+L["STRING_SEGMENTS_LIST_TOTALTIME"] = "Общее время"
+L["STRING_SEGMENTS_LIST_TRASH"] = "мусор"
+L["STRING_SEGMENTS_LIST_WASTED_TIME"] = "Не в бою"
+L["STRING_SHIELD_HEAL"] = "Предотвращено"
+L["STRING_SHIELD_OVERHEAL"] = "Впустую"
+L["STRING_SHORTCUT_RIGHTCLICK"] = "правый щелчок, чтобы закрыть"
+L["STRING_SLASH_API_DESC"] = "открыть панель API для сборки плагинов, своих дисплеев, аур и т.д."
+L["STRING_SLASH_CAPTURE_DESC"] = "вкл. или выкл., всех записанных данных."
+L["STRING_SLASH_CAPTUREOFF"] = "все захваты были откл."
+L["STRING_SLASH_CAPTUREON"] = "все захваты были вкл."
+L["STRING_SLASH_CHANGES"] = "обновления"
+L["STRING_SLASH_CHANGES_ALIAS1"] = "новости"
+L["STRING_SLASH_CHANGES_ALIAS2"] = "изменения"
+L["STRING_SLASH_CHANGES_DESC"] = "показывает, что нового изменилось в Details!."
+L["STRING_SLASH_DISABLE"] = "отключить"
+L["STRING_SLASH_ENABLE"] = "включить"
+L["STRING_SLASH_HIDE"] = "скрыть"
+L["STRING_SLASH_HIDE_ALIAS1"] = "закрыть"
+L["STRING_SLASH_HISTORY"] = "история"
+L["STRING_SLASH_NEW"] = "новое"
+L["STRING_SLASH_NEW_DESC"] = "создать новое окно."
+L["STRING_SLASH_OPTIONS"] = "параметры"
+L["STRING_SLASH_OPTIONS_DESC"] = "открыть панель параметров."
+L["STRING_SLASH_RESET"] = "сброс"
+L["STRING_SLASH_RESET_ALIAS1"] = "очистить"
+L["STRING_SLASH_RESET_DESC"] = "очистить все сегменты."
+L["STRING_SLASH_SHOW"] = "Показать"
+L["STRING_SLASH_SHOW_ALIAS1"] = "открыть"
+L["STRING_SLASH_SHOWHIDETOGGLE_DESC"] = "все окна, если <номер окна> не передается."
+L["STRING_SLASH_TOGGLE"] = "переключение"
+L["STRING_SLASH_WIPE"] = "вайп"
+L["STRING_SLASH_WIPECONFIG"] = "переустановить"
+L["STRING_SLASH_WIPECONFIG_CONFIRM"] = "Нажмите для продолжения переустанов."
+L["STRING_SLASH_WIPECONFIG_DESC"] = "установить все конфигурации по умолчанию, используйте это, если Details! не работает должным образом."
+L["STRING_SLASH_WORLDBOSS"] = "мировой босс"
+L["STRING_SLASH_WORLDBOSS_DESC"] = "запустить макрос, показывающий, кого босса вы убили на этой неделе."
+L["STRING_SPELL_INTERRUPTED"] = "Заклинания прерваны"
+L["STRING_SPELLLIST"] = "Список заклинаний"
+L["STRING_SPELLS"] = "Заклинания"
+L["STRING_SPIRIT_LINK_TOTEM"] = "Обмен здоровья"
+L["STRING_SPIRIT_LINK_TOTEM_DESC"] = [=[Количество обмена здоровья между
+игроками внутри круга тотема.
+
+Это исцеление не добавляется
+в общее исцеление игрока.]=]
+L["STRING_STATISTICS"] = "Статистика"
+L["STRING_STATUSBAR_NOOPTIONS"] = "Этот графический виджет не имеет параметров."
+L["STRING_SWITCH_CLICKME"] = "добавить закладку"
+L["STRING_SWITCH_SELECTMSG"] = "Выбор отображения закладки #%d."
+L["STRING_SWITCH_TO"] = "Переключить на"
+L["STRING_SWITCH_WARNING"] = "Роль изменена. Переключение: |cFFFFAA00%s|r "
+L["STRING_TARGET"] = "Цель"
+L["STRING_TARGETS"] = "Цели"
+L["STRING_TARGETS_OTHER1"] = "Питомцы и другие цели"
+L["STRING_TEXTURE"] = "Текстура"
+L["STRING_TIME_OF_DEATH"] = "Смерть"
+L["STRING_TOOOLD"] = "не может быть установлено, потому что ваша версия Details! устарела."
+L["STRING_TOP"] = "вверх"
+L["STRING_TOP_TO_BOTTOM"] = "Сверху вниз"
+L["STRING_TOTAL"] = "Всего"
+L["STRING_TRANSLATE_LANGUAGE"] = "Помогите перевести Details!"
+L["STRING_TUTORIAL_FULLY_DELETE_WINDOW"] = [=[Вы закрыли окно, и вы можете возобновить его в любое время.
+Чтобы полностью удалить окно, перейдите к параметрам -> Окно: Общее -> Удалить.]=]
+L["STRING_TUTORIAL_OVERALL1"] = "Настройка общих настроек на панели параметров > PvE/PvP."
+L["STRING_UNKNOW"] = "Неизвестно"
+L["STRING_UNKNOWSPELL"] = "Неизвестное заклинание"
+L["STRING_UNLOCK"] = [=[Разгруппировать окна
+ в этой кнопке]=]
+L["STRING_UNLOCK_WINDOW"] = "разблокировать"
+L["STRING_UPTADING"] = "обновление"
+L["STRING_VERSION_AVAILABLE"] = "Вышла новая версия, скачать её можно из приложения Twitch либо с сайта Curse."
+L["STRING_VERSION_UPDATE"] = "новая версия: что изменилось? щелкните сюда"
+L["STRING_VOIDZONE_TOOLTIP"] = "Урон и время"
+L["STRING_WAITPLUGIN"] = [=[ожидание
+плагинов]=]
+L["STRING_WAVE"] = "волна"
+L["STRING_WELCOME_1"] = [=[|cFFFFFFFFДобро пожаловать в Details! С Вами - Мастер быстрой установки|r
+
+Используйте стрелки в правом нижнем углу для навигации.]=]
+L["STRING_WELCOME_11"] = "если вы передумали, вы всегда можете изменить снова через панель параметров"
+L["STRING_WELCOME_12"] = "Выберите скорость обновления окна, вы также можете включить анимацию обновления в режиме реального времени для чисел Ивс и Увс."
+L["STRING_WELCOME_13"] = "_"
+L["STRING_WELCOME_14"] = "Скорость обновления"
+L["STRING_WELCOME_15"] = "Скорость обновления подсказки в окне приветствия."
+L["STRING_WELCOME_16"] = "Включить анимации"
+L["STRING_WELCOME_17"] = [=[Когда включено, все полосы анимируются влево и вправо.
+
+|cffffff00Важно|r: Для Ютуберов и Стримеров, возможно, захотите включить, чтобы увеличить зрелищность для зрителей.]=]
+L["STRING_WELCOME_2"] = "если вы передумали, вы всегда можете изменить снова через панель параметров"
+L["STRING_WELCOME_26"] = "Использование интерфейса: Растягивание"
+L["STRING_WELCOME_27"] = [=[Подсвеченная кнопка это растягивание. |cFFFFFF00Удерживайте|r и |cFFFFFF00тяните вверх!|r.
+
+
+Если окно заблокировано, то вся строка заголовка становится кнопкой растягивания.]=]
+L["STRING_WELCOME_28"] = "Использование интерфейса: Управление окном"
+L["STRING_WELCOME_29"] = [=[Окно управления в основном делает две вещи:
+
+- открывает |cFFFFFF00новое окно|r.
+- показывает меню с |cFFFFFF00закрытыми окнами|r, которые можно открыть снова в любой момент.]=]
+L["STRING_WELCOME_3"] = "Выберите предпочитаемый метод УВС и ИВС:"
+L["STRING_WELCOME_30"] = "Использование интерфейса: Закладки"
+L["STRING_WELCOME_31"] = [=[|cFFFFFF00Правый щелчок|r в любом месте окна показывает панель |cFFFFAA00Закладок|r.
+
+|cFFFFFF00Правый щелчок опять|r закрывает панель или выбирает другой дисплей, если нажать на значок.
+
+|cFFFFFF00Правый щелчок|r в строке заголовка, чтобы открыть панель 'все дисплеи'.
+
+|TInterface\AddOns\Details\images\key_ctrl:14:30:0:0:64:64:0:64:0:40|t + Правый щелчок закрывает окно.]=]
+L["STRING_WELCOME_32"] = "Использование интерфейса: Группирование окон"
+L["STRING_WELCOME_34"] = "Использование интерфейса: Расширение подсказок"
+L["STRING_WELCOME_36"] = "Использование интерфейса: Плагины"
+L["STRING_WELCOME_38"] = "К рейду готов!"
+L["STRING_WELCOME_39"] = [=[Спасибо, что выбрали Details!
+
+Вы можете всегда отправлять нам отзывы и сообщения об ошибках.
+
+
+ |cFFFFAA00/details feedback|r]=]
+L["STRING_WELCOME_4"] = "По активности:"
+L["STRING_WELCOME_41"] = "Развлекательные сдвиги интерфейса:"
+L["STRING_WELCOME_42"] = "Быстрые настройки внешнего вида"
+L["STRING_WELCOME_43"] = "Выберите предпочитаемый скин:"
+L["STRING_WELCOME_44"] = "Обои"
+L["STRING_WELCOME_45"] = "Для получения дополнительных параметров, проверьте панель параметров."
+L["STRING_WELCOME_46"] = "Импорт настроек"
+L["STRING_WELCOME_5"] = "По эффективности:"
+L["STRING_WELCOME_57"] = [=[Импорт основных настроек из уже установленных аддонов.
+
+Каждый скин по-разному реагирует с импортированными настройками.]=]
+L["STRING_WELCOME_58"] = [=[Предопределенные наборы конфигураций внешнего вида.
+
+|cFFFFFF00Важно|r: все настройки можно изменить позже на панели параметров.]=]
+L["STRING_WELCOME_59"] = "Включить фоновые обои."
+L["STRING_WELCOME_6"] = "таймер каждого участника рейда будет приостановлен, если их активность будет прекращена, и снова рассчитываться при ее возобновлении."
+L["STRING_WELCOME_60"] = "Псевдоним и аватар"
+L["STRING_WELCOME_61"] = "Аватары отображаются на подсказках, а также в окне сведений об игроке."
+L["STRING_WELCOME_62"] = "Отправляется другим участникам вашей гильдии, которые тоже используют Details!. Изменяя, имя вашего персонажа на псевдоним."
+L["STRING_WELCOME_63"] = "Обновление УВС/ИВС в реальном времени"
+L["STRING_WELCOME_64"] = [=[Когда включено, УВС и ИВС обновляется очень быстро, не дожидаясь следующего обновления окна.
+
+|cffffff00Важно|r: Для Ютуберов и Стримеров, возможно, захотите включить, чтобы увеличить зрелищность для зрителей.]=]
+L["STRING_WELCOME_65"] = "Нажмите правую кнопку!"
+L["STRING_WELCOME_66"] = [=[Перетаскивание окна рядом с другим окном создает группу.
+
+Сгруппированные окна растягиваются и изменяют размер вместе.
+
+Они также живут счастливее, как пара.]=]
+L["STRING_WELCOME_67"] = [=[Нажмите shift, чтобы развернуть всплывающую подсказку игрока, чтобы показать все используемые заклинания.
+
+Ctrl для целей и Alt для питомцев.]=]
+L["STRING_WELCOME_68"] = [=[Details! заражен,
+чумой под названием 'Плагины'.
+
+Оно везде, помогая
+вам со многими задачами.
+
+Примеры: измеритель угроз, анализ увс, сводка сражения, создание диаграмм и многое другое.]=]
+L["STRING_WELCOME_69"] = "Пропустить"
+L["STRING_WELCOME_7"] = "используется для рейтинга, этот метод считывает прошедшее время боя для измерения УВС и ИВС - всех участников рейда."
+L["STRING_WELCOME_70"] = "Настройки полос заголовка"
+L["STRING_WELCOME_71"] = "Настройки полос"
+L["STRING_WELCOME_72"] = "Настройки окнa"
+L["STRING_WELCOME_73"] = "Выберите алфавит или регион:"
+L["STRING_WELCOME_74"] = "Латинский"
+L["STRING_WELCOME_75"] = "Кириллица"
+L["STRING_WELCOME_76"] = "Китай"
+L["STRING_WELCOME_77"] = "Корея"
+L["STRING_WELCOME_78"] = "Тайвань"
+L["STRING_WELCOME_79"] = "Создать второе окно"
+L["STRING_WINDOW_NOTFOUND"] = "Окно не найдено."
+L["STRING_WINDOW_NUMBER"] = "номер окна"
+L["STRING_WINDOW1ATACH_DESC"] = "Чтобы создать группу окон, перетащите окно #2 рядом с окном #1."
+L["STRING_WIPE_ALERT"] = "Рейд лидер говорит: Ложимся!"
+L["STRING_WIPE_ERROR1"] = "ложимся уже было сказано."
+L["STRING_WIPE_ERROR2"] = "вы не находитесь в рейдовом сражении."
+L["STRING_WIPE_ERROR3"] = "не удалось закончить сражение."
+L["STRING_YES"] = "Да"
+
diff --git a/locales/Details-zhCN.lua b/locales/Details-zhCN.lua
index 4b0d9944..1a586081 100644
--- a/locales/Details-zhCN.lua
+++ b/locales/Details-zhCN.lua
@@ -1,4 +1,1656 @@
local L = LibStub("AceLocale-3.0"):NewLocale("Details", "zhCN")
if not L then return end
-@localization(locale="zhCN", format="lua_additive_table")@
\ No newline at end of file
+L["ABILITY_ID"] = "技能 ID"
+L["STRING_"] = ""
+L["STRING_ABSORBED"] = "吸收"
+L["STRING_ACTORFRAME_NOTHING"] = "没有报告"
+L["STRING_ACTORFRAME_REPORTAT"] = "在"
+L["STRING_ACTORFRAME_REPORTOF"] = "的"
+L["STRING_ACTORFRAME_REPORTTARGETS"] = "报告的对象"
+L["STRING_ACTORFRAME_REPORTTO"] = "报告给"
+L["STRING_ACTORFRAME_SPELLDETAILS"] = "法术细节"
+L["STRING_ACTORFRAME_SPELLSOF"] = "法术的"
+L["STRING_ACTORFRAME_SPELLUSED"] = "所有使用的法术"
+L["STRING_AGAINST"] = "在"
+L["STRING_ALIVE"] = "存活"
+L["STRING_ALPHA"] = "Alpha"
+L["STRING_ANCHOR_BOTTOM"] = "下"
+L["STRING_ANCHOR_BOTTOMLEFT"] = "左下"
+L["STRING_ANCHOR_BOTTOMRIGHT"] = "右下"
+L["STRING_ANCHOR_LEFT"] = "左"
+L["STRING_ANCHOR_RIGHT"] = "右"
+L["STRING_ANCHOR_TOP"] = "上"
+L["STRING_ANCHOR_TOPLEFT"] = "左上"
+L["STRING_ANCHOR_TOPRIGHT"] = "右上"
+L["STRING_ASCENDING"] = "升序"
+L["STRING_ATACH_DESC"] = "窗口 #%d 和窗口 #%d 合成一个群组。"
+L["STRING_ATTRIBUTE_CUSTOM"] = "自订"
+L["STRING_ATTRIBUTE_DAMAGE"] = "伤害"
+L["STRING_ATTRIBUTE_DAMAGE_BYSPELL"] = "受到的技能伤害"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS"] = "减益"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS_REPORT"] = "减益和持续时间"
+L["STRING_ATTRIBUTE_DAMAGE_DONE"] = "造成伤害"
+L["STRING_ATTRIBUTE_DAMAGE_DPS"] = "每秒伤害"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES"] = "敌对受到伤害"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES_DONE"] = "敌方的伤害"
+L["STRING_ATTRIBUTE_DAMAGE_FRAGS"] = "击杀"
+L["STRING_ATTRIBUTE_DAMAGE_FRIENDLYFIRE"] = "队友误伤"
+L["STRING_ATTRIBUTE_DAMAGE_TAKEN"] = "受到伤害"
+L["STRING_ATTRIBUTE_ENERGY"] = "能量"
+L["STRING_ATTRIBUTE_ENERGY_ALTERNATEPOWER"] = "特殊能量"
+L["STRING_ATTRIBUTE_ENERGY_ENERGY"] = "能量生成"
+L["STRING_ATTRIBUTE_ENERGY_MANA"] = "法力恢复"
+L["STRING_ATTRIBUTE_ENERGY_RAGE"] = "怒气生成"
+L["STRING_ATTRIBUTE_ENERGY_RESOURCES"] = "资源"
+L["STRING_ATTRIBUTE_ENERGY_RUNEPOWER"] = "符文能量生成"
+L["STRING_ATTRIBUTE_HEAL"] = "治疗"
+L["STRING_ATTRIBUTE_HEAL_ABSORBED"] = "治疗吸收"
+L["STRING_ATTRIBUTE_HEAL_DONE"] = "造成治疗"
+L["STRING_ATTRIBUTE_HEAL_ENEMY"] = "敌方的治疗"
+L["STRING_ATTRIBUTE_HEAL_HPS"] = "每秒治疗"
+L["STRING_ATTRIBUTE_HEAL_OVERHEAL"] = "过量治疗"
+L["STRING_ATTRIBUTE_HEAL_PREVENT"] = "阻止治疗"
+L["STRING_ATTRIBUTE_HEAL_TAKEN"] = "受到治疗"
+L["STRING_ATTRIBUTE_MISC"] = "杂项"
+L["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"] = "增益持续时间"
+L["STRING_ATTRIBUTE_MISC_CCBREAK"] = "打破控场"
+L["STRING_ATTRIBUTE_MISC_DEAD"] = "死亡"
+L["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"] = "减益持续时间"
+L["STRING_ATTRIBUTE_MISC_DEFENSIVE_COOLDOWNS"] = "冷却"
+L["STRING_ATTRIBUTE_MISC_DISPELL"] = "驱散"
+L["STRING_ATTRIBUTE_MISC_INTERRUPT"] = "打断"
+L["STRING_ATTRIBUTE_MISC_RESS"] = "战斗复活"
+L["STRING_AUTO"] = "自动"
+L["STRING_AUTOSHOT"] = "自动射击"
+L["STRING_AVERAGE"] = "平均"
+L["STRING_BLOCKED"] = "格挡"
+L["STRING_BOTTOM"] = "底部"
+L["STRING_BOTTOM_TO_TOP"] = "从下往上"
+L["STRING_CAST"] = "释放"
+L["STRING_CAUGHT"] = "捕捉"
+L["STRING_CCBROKE"] = "移除群体控制"
+L["STRING_CENTER"] = "中间"
+L["STRING_CENTER_UPPER"] = "中间"
+L["STRING_CHANGED_TO_CURRENT"] = "片段已变化: |cFFFFFF00当前|r"
+L["STRING_CHANNEL_PRINT"] = "观察者"
+L["STRING_CHANNEL_RAID"] = "团队"
+L["STRING_CHANNEL_SAY"] = "说"
+L["STRING_CHANNEL_WHISPER"] = "密语"
+L["STRING_CHANNEL_WHISPER_TARGET_COOLDOWN"] = "密语CD目标"
+L["STRING_CHANNEL_YELL"] = "喊"
+L["STRING_CLICK_REPORT_LINE1"] = "|cFFFFCC22点击|r: |cFFFFEE00报告|r"
+L["STRING_CLICK_REPORT_LINE2"] = "|cFFFFCC22Shift+点击|r: |cFFFFEE00窗口模式|r"
+L["STRING_CLOSEALL"] = "所有的 Details 窗口都关闭了, 输入 '/details show' 来重新打开."
+L["STRING_COLOR"] = "颜色"
+L["STRING_COMMAND_LIST"] = "命令列表"
+L["STRING_COOLTIP_NOOPTIONS"] = "无选项"
+L["STRING_CREATEAURA"] = "创建一个wa监视"
+L["STRING_CRITICAL_HITS"] = "致命一击"
+L["STRING_CRITICAL_ONLY"] = "致命"
+L["STRING_CURRENT"] = "当前"
+L["STRING_CURRENTFIGHT"] = "当前片段"
+L["STRING_CUSTOM_ACTIVITY_ALL"] = "活跃时间"
+L["STRING_CUSTOM_ACTIVITY_ALL_DESC"] = "显示团队中每个玩家的活跃度"
+L["STRING_CUSTOM_ACTIVITY_DPS"] = "活跃伤害时间"
+L["STRING_CUSTOM_ACTIVITY_DPS_DESC"] = "每个人造成伤害的时间"
+L["STRING_CUSTOM_ACTIVITY_HPS"] = "活跃治疗时间"
+L["STRING_CUSTOM_ACTIVITY_HPS_DESC"] = "每个人造成治疗的时间."
+L["STRING_CUSTOM_ATTRIBUTE_DAMAGE"] = "伤害"
+L["STRING_CUSTOM_ATTRIBUTE_HEAL"] = "治疗"
+L["STRING_CUSTOM_ATTRIBUTE_SCRIPT"] = "自定义脚本"
+L["STRING_CUSTOM_AUTHOR"] = "作者:"
+L["STRING_CUSTOM_AUTHOR_DESC"] = "编写了这个统计的人"
+L["STRING_CUSTOM_CANCEL"] = "取消"
+L["STRING_CUSTOM_CC_DONE"] = "造成群体控制"
+L["STRING_CUSTOM_CC_RECEIVED"] = "受到群体控制"
+L["STRING_CUSTOM_CREATE"] = "创建"
+L["STRING_CUSTOM_CREATED"] = "新的统计方式已建立."
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET"] = "对其它标记目标造成的伤害"
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET_DESC"] = "显示对其它所有标记的目标造成的伤害数值"
+L["STRING_CUSTOM_DAMAGEONSHIELDS"] = "对护盾造成的伤害"
+L["STRING_CUSTOM_DAMAGEONSKULL"] = "对骷髅标记目标造成的伤害"
+L["STRING_CUSTOM_DAMAGEONSKULL_DESC"] = "显示对标记骷髅的目标造成的伤害数值"
+L["STRING_CUSTOM_DESCRIPTION"] = "描述:"
+L["STRING_CUSTOM_DESCRIPTION_DESC"] = "描述这项统计的用途."
+L["STRING_CUSTOM_DONE"] = "完成"
+L["STRING_CUSTOM_DTBS"] = "受到技能伤害"
+L["STRING_CUSTOM_DTBS_DESC"] = "显示敌对技能伤害."
+L["STRING_CUSTOM_DYNAMICOVERAL"] = "动态总体伤害"
+L["STRING_CUSTOM_EDIT"] = "编辑"
+L["STRING_CUSTOM_EDIT_SEARCH_CODE"] = "编辑搜索代码"
+L["STRING_CUSTOM_EDIT_TOOLTIP_CODE"] = "编辑提示框代码"
+L["STRING_CUSTOM_EDITCODE_DESC"] = "这是进阶功能,用户可以创建自己的统计用代码."
+L["STRING_CUSTOM_EDITTOOLTIP_DESC"] = "这是提示框代码,当移至统计条上时显示."
+L["STRING_CUSTOM_ENEMY_DT"] = " 受到伤害"
+L["STRING_CUSTOM_EXPORT"] = "导出"
+L["STRING_CUSTOM_FUNC_INVALID"] = "自定义脚本无效,无法刷新窗口"
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT"] = "治疗药水&治疗石"
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT_DESC"] = "显示你的队伍中谁使用过治疗药水或者治疗石"
+L["STRING_CUSTOM_ICON"] = "图标:"
+L["STRING_CUSTOM_IMPORT"] = "导入"
+L["STRING_CUSTOM_IMPORT_ALERT"] = "统计方式已加载,点击导入来确认."
+L["STRING_CUSTOM_IMPORT_BUTTON"] = "导入"
+L["STRING_CUSTOM_IMPORT_ERROR"] = "导入失败, 无效的字符串."
+L["STRING_CUSTOM_IMPORTED"] = "统计方式导入成功."
+L["STRING_CUSTOM_LONGNAME"] = "名字太长, 最大允许32个字符."
+L["STRING_CUSTOM_MYSPELLS"] = "我的技能"
+L["STRING_CUSTOM_MYSPELLS_DESC"] = "在统计中显示你的技能."
+L["STRING_CUSTOM_NAME"] = "名字:"
+L["STRING_CUSTOM_NAME_DESC"] = "给你的自定义统计起个名字"
+L["STRING_CUSTOM_NEW"] = "管理自定义统计"
+L["STRING_CUSTOM_PASTE"] = "粘贴到这里:"
+L["STRING_CUSTOM_POT_DEFAULT"] = "有使用药水"
+L["STRING_CUSTOM_POT_DEFAULT_DESC"] = "显示你的团队中谁在战斗时使用了药水."
+L["STRING_CUSTOM_REMOVE"] = "删除"
+L["STRING_CUSTOM_REPORT"] = "(自定义)"
+L["STRING_CUSTOM_SAVE"] = "保存变更"
+L["STRING_CUSTOM_SAVED"] = "自定义统计已保存."
+L["STRING_CUSTOM_SHORTNAME"] = "名字需要至少5个字符."
+L["STRING_CUSTOM_SKIN_TEXTURE"] = "自定义皮肤文件"
+L["STRING_CUSTOM_SKIN_TEXTURE_DESC"] = [=[tga图片的文件名(.tga).
+
+ 必须放在下面指定的文件夹里:
+
+ |cFFFFFF00WoW/Interface/|r
+
+ |cFFFFFF00重要提示:|r 在创建文件前,选择游戏客户端所在路径。 之后, 使用 /reload 命令来加载新的贴图文件。]=]
+L["STRING_CUSTOM_SOURCE"] = "来源:"
+L["STRING_CUSTOM_SOURCE_DESC"] = [=[是谁触发的效果.
+在右侧的按钮显示团队副本战斗中的NPC名单.]=]
+L["STRING_CUSTOM_SPELLID"] = "法术 Id:"
+L["STRING_CUSTOM_SPELLID_DESC"] = [=[可选项, 是指由来源对目标造成的法术效果.
+右侧按钮显示团队战斗中出现的法术效果.]=]
+L["STRING_CUSTOM_TARGET"] = "目标:"
+L["STRING_CUSTOM_TARGET_DESC"] = [=[这是来源的目标.
+在右侧的按钮显示团队副本战斗中的NPC名单.]=]
+L["STRING_CUSTOM_TEMPORARILY"] = " (|cFFFFC000临时|r)"
+L["STRING_DAMAGE"] = "伤害"
+L["STRING_DAMAGE_DPS_IN"] = "DPS来自"
+L["STRING_DAMAGE_FROM"] = "伤害来自"
+L["STRING_DAMAGE_TAKEN_FROM"] = "受到伤害来自"
+L["STRING_DAMAGE_TAKEN_FROM2"] = "施加伤害在"
+L["STRING_DEFENSES"] = "防御"
+L["STRING_DESCENDING"] = "降序"
+L["STRING_DETACH_DESC"] = "分离窗口组群"
+L["STRING_DISCARD"] = "忽略"
+L["STRING_DISPELLED"] = "增益/减益 移除"
+L["STRING_DODGE"] = "闪避"
+L["STRING_DOT"] = " (DoT)"
+L["STRING_DPS"] = "每秒伤害"
+L["STRING_EMPTY_SEGMENT"] = "空片段"
+L["STRING_ENABLED"] = "启用"
+L["STRING_ENVIRONMENTAL_DROWNING"] = "环境伤害 (溺水)"
+L["STRING_ENVIRONMENTAL_FALLING"] = "环境伤害 (高处坠落)"
+L["STRING_ENVIRONMENTAL_FATIGUE"] = "环境伤害 (疲劳)"
+L["STRING_ENVIRONMENTAL_FIRE"] = "环境伤害 (火烧)"
+L["STRING_ENVIRONMENTAL_LAVA"] = "环境伤害 (岩浆)"
+L["STRING_ENVIRONMENTAL_SLIME"] = "环境伤害 (粘液)"
+L["STRING_EQUILIZING"] = "分享首领战数据"
+L["STRING_ERASE"] = "删除"
+L["STRING_ERASE_DATA"] = "重置所有数据"
+L["STRING_ERASE_DATA_OVERALL"] = "重置总计数据"
+L["STRING_ERASE_IN_COMBAT"] = "安排在当前战斗结束后重置数据."
+L["STRING_EXAMPLE"] = "例子"
+L["STRING_EXPLOSION"] = "爆炸"
+L["STRING_FAIL_ATTACKS"] = "攻击失败"
+L["STRING_FEEDBACK_CURSE_DESC"] = "在Details!页面上提交一个表单或留言."
+L["STRING_FEEDBACK_MMOC_DESC"] = "在mmo-champion论坛我们的版块中发帖."
+L["STRING_FEEDBACK_PREFERED_SITE"] = "选择你偏好的社交网站:"
+L["STRING_FEEDBACK_SEND_FEEDBACK"] = "发送反馈"
+L["STRING_FEEDBACK_WOWI_DESC"] = "在Details!项目页面中发表评论."
+L["STRING_FIGHTNUMBER"] = "战斗 #"
+L["STRING_FORGE_BUTTON_ALLSPELLS"] = "所有技能"
+L["STRING_FORGE_BUTTON_ALLSPELLS_DESC"] = "列出玩家和NPC的所有技能."
+L["STRING_FORGE_BUTTON_BWTIMERS"] = "BigWigs计时器"
+L["STRING_FORGE_BUTTON_BWTIMERS_DESC"] = "列出BigWigs中的计时器"
+L["STRING_FORGE_BUTTON_DBMTIMERS"] = "DBM计时器"
+L["STRING_FORGE_BUTTON_DBMTIMERS_DESC"] = "列出Deadly Boss Mods中的计时器"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS"] = "首领技能"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS_DESC"] = "只列出团队和地下城首领战中的技能."
+L["STRING_FORGE_BUTTON_ENEMIES"] = "敌人"
+L["STRING_FORGE_BUTTON_ENEMIES_DESC"] = "列出当前战斗中的敌人."
+L["STRING_FORGE_BUTTON_PETS"] = "宠物"
+L["STRING_FORGE_BUTTON_PETS_DESC"] = "列出当前战斗中的宠物."
+L["STRING_FORGE_BUTTON_PLAYERS"] = "玩家"
+L["STRING_FORGE_BUTTON_PLAYERS_DESC"] = "列出当前战斗中的玩家."
+L["STRING_FORGE_ENABLEPLUGINS"] = "\"请在ESC菜单>插件中打开带有副本名称的Details!插件,比如Details: Tomb of Sargeras.\""
+L["STRING_FORGE_FILTER_BARTEXT"] = "条名称"
+L["STRING_FORGE_FILTER_CASTERNAME"] = "施放者名称"
+L["STRING_FORGE_FILTER_ENCOUNTERNAME"] = "首领战名称"
+L["STRING_FORGE_FILTER_ENEMYNAME"] = "敌人名称"
+L["STRING_FORGE_FILTER_OWNERNAME"] = "所有者名称"
+L["STRING_FORGE_FILTER_PETNAME"] = "宠物名称"
+L["STRING_FORGE_FILTER_PLAYERNAME"] = "玩家名称"
+L["STRING_FORGE_FILTER_SPELLNAME"] = "技能名称"
+L["STRING_FORGE_HEADER_BARTEXT"] = "条文本"
+L["STRING_FORGE_HEADER_CASTER"] = "施放者"
+L["STRING_FORGE_HEADER_CLASS"] = "职业"
+L["STRING_FORGE_HEADER_CREATEAURA"] = "创建监控"
+L["STRING_FORGE_HEADER_ENCOUNTERID"] = "首领战ID"
+L["STRING_FORGE_HEADER_ENCOUNTERNAME"] = "首领战名称"
+L["STRING_FORGE_HEADER_EVENT"] = "事件"
+L["STRING_FORGE_HEADER_FLAG"] = "标志"
+L["STRING_FORGE_HEADER_GUID"] = "GUID"
+L["STRING_FORGE_HEADER_ICON"] = "图标"
+L["STRING_FORGE_HEADER_ID"] = "ID"
+L["STRING_FORGE_HEADER_INDEX"] = "序号"
+L["STRING_FORGE_HEADER_NAME"] = "名称"
+L["STRING_FORGE_HEADER_NPCID"] = "NpcID"
+L["STRING_FORGE_HEADER_OWNER"] = "所有者"
+L["STRING_FORGE_HEADER_SCHOOL"] = "法术类别"
+L["STRING_FORGE_HEADER_SPELLID"] = "技能ID"
+L["STRING_FORGE_HEADER_TIMER"] = "计时"
+L["STRING_FORGE_TUTORIAL_DESC"] = "浏览技能和首领模块计时并点击'|cFFFFFF00创建监控|r'来创建监控."
+L["STRING_FORGE_TUTORIAL_TITLE"] = "欢迎来到Details! Forge"
+L["STRING_FORGE_TUTORIAL_VIDEO"] = "一个通过首领战斗模块监控的示例:"
+L["STRING_FREEZE"] = "这个片段在此阶段不可用"
+L["STRING_FROM"] = "从"
+L["STRING_GERAL"] = "一般"
+L["STRING_GLANCING"] = "擦过"
+L["STRING_GUILDDAMAGERANK_BOSS"] = "BOSS"
+L["STRING_GUILDDAMAGERANK_DATABASEERROR"] = "'|cFFFFFF00Details! Storage|r'打开失败,可能这个插件被禁用了?"
+L["STRING_GUILDDAMAGERANK_DIFF"] = "难度"
+L["STRING_GUILDDAMAGERANK_GUILD"] = "公会"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE"] = "玩家分组"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_INDIVIDUAL"] = "独立"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_PLAYER"] = "玩家"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_RAID"] = "所有玩家"
+L["STRING_GUILDDAMAGERANK_RAID"] = "副本"
+L["STRING_GUILDDAMAGERANK_ROLE"] = "职责"
+L["STRING_GUILDDAMAGERANK_SHOWHISTORY"] = "显示历史"
+L["STRING_GUILDDAMAGERANK_SHOWRANK"] = "显示公会排行"
+L["STRING_GUILDDAMAGERANK_SYNCBUTTONTEXT"] = "与公会同步"
+L["STRING_GUILDDAMAGERANK_TUTORIAL_DESC"] = "Details!会保存你与公会在首领战中造成的伤害和治疗量.\\n\\n勾选'|cFFFFFF00显示历史|r'以浏览历史记录,所有战斗记录都会显示.\\n'勾选|cFFFFFF00显示公会排行|r'会显示所选首领站中的排名数据.\\n\\n如果你是第一次使用这个工具或者你缺席了某次公会活动,点击'|cFFFFFF00与公会同步|r'按钮."
+L["STRING_GUILDDAMAGERANK_WINDOWALERT"] = "首领被击败!显示排行"
+L["STRING_HEAL"] = "治疗"
+L["STRING_HEAL_ABSORBED"] = "治疗吸收"
+L["STRING_HEAL_CRIT"] = "治疗爆击"
+L["STRING_HEALING_FROM"] = "受到治疗来自"
+L["STRING_HEALING_HPS_FROM"] = "每秒治疗来自"
+L["STRING_HITS"] = "命中"
+L["STRING_HPS"] = "每秒治疗"
+L["STRING_IMAGEEDIT_ALPHA"] = "透明度"
+L["STRING_IMAGEEDIT_CROPBOTTOM"] = "剪裁底部"
+L["STRING_IMAGEEDIT_CROPLEFT"] = "剪裁左部"
+L["STRING_IMAGEEDIT_CROPRIGHT"] = "剪裁右部"
+L["STRING_IMAGEEDIT_CROPTOP"] = "剪裁顶部"
+L["STRING_IMAGEEDIT_DONE"] = "完成"
+L["STRING_IMAGEEDIT_FLIPH"] = "水平翻转"
+L["STRING_IMAGEEDIT_FLIPV"] = "垂直翻转"
+L["STRING_INFO_TAB_AVOIDANCE"] = "闪避"
+L["STRING_INFO_TAB_COMPARISON"] = "比较"
+L["STRING_INFO_TAB_SUMMARY"] = "概要"
+L["STRING_INFO_TUTORIAL_COMPARISON1"] = "点击 |cFFFFDD00比较|r 标签来比较查看同一职业下的玩家。"
+L["STRING_INSTANCE_CHAT"] = "副本频道"
+L["STRING_INSTANCE_LIMIT"] = "最大窗口数量已经达到,你可以在选项面板修改这个限制。你也可以重新打开关闭的窗口 通过 (#) 窗口菜单。"
+L["STRING_INTERFACE_OPENOPTIONS"] = "打开选项面板"
+L["STRING_ISA_PET"] = "这个角色是一个宠物"
+L["STRING_KEYBIND_BOOKMARK"] = "书签"
+L["STRING_KEYBIND_BOOKMARK_NUMBER"] = "书签 #%s"
+L["STRING_KEYBIND_RESET_SEGMENTS"] = "重置片段"
+L["STRING_KEYBIND_SCROLL_DOWN"] = "向下滚动所有窗口"
+L["STRING_KEYBIND_SCROLL_UP"] = "向上滚动所有窗口"
+L["STRING_KEYBIND_SCROLLING"] = "滚动"
+L["STRING_KEYBIND_SEGMENTCONTROL"] = "片段控制"
+L["STRING_KEYBIND_TOGGLE_WINDOW"] = "切换窗口 #%s"
+L["STRING_KEYBIND_TOGGLE_WINDOWS"] = "切换所有"
+L["STRING_KEYBIND_WINDOW_CONTROL"] = "窗口控制"
+L["STRING_KEYBIND_WINDOW_REPORT"] = "将报告数据显示在窗口 #%s。"
+L["STRING_KEYBIND_WINDOW_REPORT_HEADER"] = "报告数据"
+L["STRING_KILLED"] = "已击杀"
+L["STRING_LAST_COOLDOWN"] = "使用的最后CD"
+L["STRING_LEFT"] = "左"
+L["STRING_LEFT_CLICK_SHARE"] = "左键点击报告。"
+L["STRING_LEFT_TO_RIGHT"] = "从左往右"
+L["STRING_LOCK_DESC"] = "锁定或解锁窗口"
+L["STRING_LOCK_WINDOW"] = "锁定"
+L["STRING_MASTERY"] = "精通"
+L["STRING_MAXIMUM"] = "最大"
+L["STRING_MAXIMUM_SHORT"] = "最大"
+L["STRING_MEDIA"] = "媒体"
+L["STRING_MELEE"] = "近战"
+L["STRING_MEMORY_ALERT_BUTTON"] = "我的理解"
+L["STRING_MEMORY_ALERT_TEXT1"] = "Details! 使用了大量的内存,但是,|cFFFF8800与流行的认知相反|r,插件的内存占用|cFFFF8800不影响|r任何游戏表现或你的FPS。"
+L["STRING_MEMORY_ALERT_TEXT2"] = "所以,如果你看到 Details! 使用大量内存,不要惊慌 :D!|cFFFF8800一切正常!|r,已使用内存的一部分也会|cFFFF8800用于生成缓存|r,使插件运行更加流畅。"
+L["STRING_MEMORY_ALERT_TEXT3"] = "但是,如果你想知道|cFFFF8800哪个插件占用较多内存|r或会导致游戏帧数降低,可以安装下列插件:“|cFFFFFF00AddOns Cpu Usage|r”。"
+L["STRING_MEMORY_ALERT_TITLE"] = "请仔细阅读!"
+L["STRING_MENU_CLOSE_INSTANCE"] = "关闭这个窗口"
+L["STRING_MENU_CLOSE_INSTANCE_DESC"] = "关闭窗口只是使它处于未激活状态,你可以在任何时间通过窗口控制菜单重新打开它。"
+L["STRING_MENU_CLOSE_INSTANCE_DESC2"] = "要想完全删除一个窗口,查看选项面板的杂项部分。"
+L["STRING_MENU_INSTANCE_CONTROL"] = "窗口控制"
+L["STRING_MINIMAP_TOOLTIP1"] = "|cFFCFCFCF左键点击|r: 打开选项面板"
+L["STRING_MINIMAP_TOOLTIP11"] = "|cFFCFCFCF左键点击|r: 清除所有的片段"
+L["STRING_MINIMAP_TOOLTIP12"] = "|cFFCFCFCF左键点击|r: 显示/隐藏窗口"
+L["STRING_MINIMAP_TOOLTIP2"] = "|cFFCFCFCF右键点击|r: 快捷菜单"
+L["STRING_MINIMAPMENU_CLOSEALL"] = "全部关闭"
+L["STRING_MINIMAPMENU_HIDEICON"] = "隐藏小地图图标"
+L["STRING_MINIMAPMENU_LOCK"] = "锁定"
+L["STRING_MINIMAPMENU_NEWWINDOW"] = "创建一个新窗口"
+L["STRING_MINIMAPMENU_REOPENALL"] = "打开所有"
+L["STRING_MINIMAPMENU_UNLOCK"] = "解锁"
+L["STRING_MINIMUM"] = "最小"
+L["STRING_MINIMUM_SHORT"] = "最小"
+L["STRING_MINITUTORIAL_BOOKMARK1"] = "右键点击窗口任何区域打开书签!"
+L["STRING_MINITUTORIAL_BOOKMARK2"] = "书签是快速访问你常用统计的捷径。"
+L["STRING_MINITUTORIAL_BOOKMARK3"] = "使用鼠标右键点击关闭书签面板。"
+L["STRING_MINITUTORIAL_BOOKMARK4"] = "不再显示。"
+L["STRING_MINITUTORIAL_CLOSECTRL1"] = "|cFFFFFF00Ctrl + 右键点击|r 关闭窗口!"
+L["STRING_MINITUTORIAL_CLOSECTRL2"] = "如果你想重新打开它,去模式菜单->窗口控制或选项面板。"
+L["STRING_MINITUTORIAL_OPTIONS_PANEL1"] = "窗口处于被修改状态。"
+L["STRING_MINITUTORIAL_OPTIONS_PANEL2"] = "当选中时,群组内的所有窗口都会被修改."
+L["STRING_MINITUTORIAL_OPTIONS_PANEL3"] = [=[创建一个组,拖动窗口 #2 到窗口 #1 附近。
+
+点击 |cFFFFFF00取消|r 按钮拆分群组]=]
+L["STRING_MINITUTORIAL_OPTIONS_PANEL4"] = "创建测试计量条来测试你的配置。"
+L["STRING_MINITUTORIAL_OPTIONS_PANEL5"] = "当编辑组启用时,群组中的所有窗口都改变了。"
+L["STRING_MINITUTORIAL_OPTIONS_PANEL6"] = "在此选择你想改变哪个窗口的外观。"
+L["STRING_MINITUTORIAL_WINDOWS1"] = [=[你刚创建的一组窗口。
+
+拆分它,点击锁图标。]=]
+L["STRING_MINITUTORIAL_WINDOWS2"] = [=[窗口已被锁定。
+
+单击标题栏并拖动到拉伸。]=]
+L["STRING_MIRROR_IMAGE"] = "镜像"
+L["STRING_MISS"] = "未命中"
+L["STRING_MODE_ALL"] = "所有的"
+L["STRING_MODE_GROUP"] = "标准"
+L["STRING_MODE_OPENFORGE"] = "监控生成"
+L["STRING_MODE_PLUGINS"] = "插件"
+L["STRING_MODE_RAID"] = "插件: 团队"
+L["STRING_MODE_SELF"] = "插件: 单刷"
+L["STRING_MORE_INFO"] = "详情请见右箱。"
+L["STRING_MULTISTRIKE"] = "溅射"
+L["STRING_MULTISTRIKE_HITS"] = "溅射命中"
+L["STRING_MUSIC_DETAILS_ROBERTOCARLOS"] = [=[There's no use trying to forget
+For a long time in your life I will live
+Details as small of us]=]
+L["STRING_NEWROW"] = "等待刷新..."
+L["STRING_NEWS_REINSTALL"] = "更新后发现问题? 尝试 '/details reinstall' 命令."
+L["STRING_NEWS_TITLE"] = "最近更新"
+L["STRING_NO"] = "否"
+L["STRING_NO_DATA"] = "数据已经被清除"
+L["STRING_NO_SPELL"] = "没有法术可用"
+L["STRING_NO_TARGET"] = "没有找到目标."
+L["STRING_NO_TARGET_BOX"] = "没有目标可用"
+L["STRING_NOCLOSED_INSTANCES"] = [=[没有关闭的窗口,
+点击打开一个新的。]=]
+L["STRING_NOLAST_COOLDOWN"] = "没有CD可用"
+L["STRING_NOMORE_INSTANCES"] = [=[到达最大窗口数量
+通过选项面板改变限制。]=]
+L["STRING_NORMAL_HITS"] = "普通攻击"
+L["STRING_NUMERALSYSTEM"] = "数字显示"
+L["STRING_NUMERALSYSTEM_ARABIC_MYRIAD_EASTASIA"] = "用千和万来显示数值"
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN"] = "西方"
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN_DESC"] = "通用,三位一分割"
+L["STRING_NUMERALSYSTEM_DESC"] = "选择数字显示系统"
+L["STRING_NUMERALSYSTEM_MYRIAD_EASTASIA"] = "东亚"
+L["STRING_OFFHAND_HITS"] = "副手"
+L["STRING_OPTIONS_3D_LALPHA_DESC"] = [=[在较低的模型调整透明度。
+
+|cFFFFFF00重要|r: 一些模型忽略透明度。]=]
+L["STRING_OPTIONS_3D_LANCHOR"] = "低 3D 模型:"
+L["STRING_OPTIONS_3D_LENABLED_DESC"] = "启用或禁用计量条后面的3D模型框架"
+L["STRING_OPTIONS_3D_LSELECT_DESC"] = "选择哪个模型将被用于在较低的模型栏。"
+L["STRING_OPTIONS_3D_SELECT"] = "选择模型"
+L["STRING_OPTIONS_3D_UALPHA_DESC"] = [=[在更高模型上调整透明度。
+
+|cFFFFFF00重要|r: 一些模型忽略透明度。]=]
+L["STRING_OPTIONS_3D_UANCHOR"] = "较高 3D 模型:"
+L["STRING_OPTIONS_3D_UENABLED_DESC"] = "启用或禁用计量条后面的3D模型框架"
+L["STRING_OPTIONS_3D_USELECT_DESC"] = "选择哪个模型将被用于在较高的模型栏。"
+L["STRING_OPTIONS_ADVANCED"] = "进阶"
+L["STRING_OPTIONS_ALPHAMOD_ANCHOR"] = "自动隐藏:"
+L["STRING_OPTIONS_ALWAYS_USE"] = "所有角色通用"
+L["STRING_OPTIONS_ALWAYS_USE_DESC"] = "当启用时,所有角色都使用选择的配置,否则, 将显示一个面板供选择"
+L["STRING_OPTIONS_ALWAYSSHOWPLAYERS"] = "显示未组队的玩家"
+L["STRING_OPTIONS_ALWAYSSHOWPLAYERS_DESC"] = "当使用默认标准模式时,显示和你不在一个队伍中的玩家角色"
+L["STRING_OPTIONS_ANCHOR"] = "侧"
+L["STRING_OPTIONS_ANIMATEBARS"] = "动画计量条"
+L["STRING_OPTIONS_ANIMATEBARS_DESC"] = "启用所有动画计量条"
+L["STRING_OPTIONS_ANIMATESCROLL"] = "动画滚动计量条"
+L["STRING_OPTIONS_ANIMATESCROLL_DESC"] = "当启用时,滚动计量条使用动画时显示或隐藏。"
+L["STRING_OPTIONS_APPEARANCE"] = "外观"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT"] = "标题文本设置"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT_DESC"] = "这些选项控制窗口的标题文本。"
+L["STRING_OPTIONS_AUTO_SWITCH"] = "所有角色 |cFFFFAA00(战斗中)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_COMBAT"] = "|cFFFFAA00(战斗中)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_DAMAGER_DESC"] = "在输出专用模式中,此窗口显示所选属性或插件"
+L["STRING_OPTIONS_AUTO_SWITCH_DESC"] = [=[当你进入战斗,此窗口显示选择的属性或插件。
+
+|cFFFFFF00重要|r: 为每个角色选择的个体属性覆盖这里所选择的属性。]=]
+L["STRING_OPTIONS_AUTO_SWITCH_HEALER_DESC"] = "当你是治疗专精时,窗口显示选择的属性或插件"
+L["STRING_OPTIONS_AUTO_SWITCH_TANK_DESC"] = "当你是坦克专精时,窗口显示选择的属性或插件"
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE"] = "清除后"
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE_DESC"] = "在尝试击败团队首领失败后,此窗口自动显示该属性。"
+L["STRING_OPTIONS_AVATAR"] = "选择头像"
+L["STRING_OPTIONS_AVATAR_ANCHOR"] = "身份:"
+L["STRING_OPTIONS_AVATAR_DESC"] = "头像也被送到公会成员,并显示在工具提示的顶部和玩家的详细信息窗口。"
+L["STRING_OPTIONS_BAR_BACKDROP_ANCHOR"] = "边框:"
+L["STRING_OPTIONS_BAR_BACKDROP_COLOR_DESC"] = "改变边框颜色。"
+L["STRING_OPTIONS_BAR_BACKDROP_ENABLED_DESC"] = "启用或禁用行边框。"
+L["STRING_OPTIONS_BAR_BACKDROP_SIZE_DESC"] = "调整边框大小。"
+L["STRING_OPTIONS_BAR_BACKDROP_TEXTURE_DESC"] = "改变边框外观。"
+L["STRING_OPTIONS_BAR_BCOLOR"] = "背景颜色"
+L["STRING_OPTIONS_BAR_BTEXTURE_DESC"] = "该纹理位于下方的顶部纹理和它的大小总是相同的窗口宽度。"
+L["STRING_OPTIONS_BAR_COLOR_DESC"] = [=[该纹理的颜色和透明度。
+
+|cFFFFFF00重要|r: 当时用职业颜色时,颜色选择将被忽略。]=]
+L["STRING_OPTIONS_BAR_COLORBYCLASS"] = "使用职业颜色"
+L["STRING_OPTIONS_BAR_COLORBYCLASS_DESC"] = "当启用时,该纹理始终使用玩家的职业颜色。"
+L["STRING_OPTIONS_BAR_FOLLOWING"] = "总是显示我"
+L["STRING_OPTIONS_BAR_FOLLOWING_ANCHOR"] = "玩家计量条:"
+L["STRING_OPTIONS_BAR_FOLLOWING_DESC"] = "启用后,即使排名靠前中没有你,也会始终显示你的计量条"
+L["STRING_OPTIONS_BAR_GROW"] = "计量条增长方向"
+L["STRING_OPTIONS_BAR_GROW_DESC"] = "计量条从窗口顶部或底部增长。"
+L["STRING_OPTIONS_BAR_HEIGHT"] = "高度"
+L["STRING_OPTIONS_BAR_HEIGHT_DESC"] = "增加或者减少计量条的高度"
+L["STRING_OPTIONS_BAR_ICONFILE"] = "图标文件"
+L["STRING_OPTIONS_BAR_ICONFILE_DESC"] = [=[自定义图标文件的路径。
+
+图像必须是一个的.tga结尾的文件, 256x256 像素 透明通道.]=]
+L["STRING_OPTIONS_BAR_ICONFILE_DESC2"] = "选择要使用的图标包。"
+L["STRING_OPTIONS_BAR_ICONFILE1"] = "没有图标"
+L["STRING_OPTIONS_BAR_ICONFILE2"] = "默认"
+L["STRING_OPTIONS_BAR_ICONFILE3"] = "默认 (黑白)"
+L["STRING_OPTIONS_BAR_ICONFILE4"] = "默认 (透明)"
+L["STRING_OPTIONS_BAR_ICONFILE5"] = "圆角图标"
+L["STRING_OPTIONS_BAR_ICONFILE6"] = "默认 (透明的黑色白色)"
+L["STRING_OPTIONS_BAR_SPACING"] = "间距"
+L["STRING_OPTIONS_BAR_SPACING_DESC"] = "每个计量条之间的间隙大小。"
+L["STRING_OPTIONS_BAR_TEXTURE_DESC"] = "纹理被用在顶部计量条"
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM"] = "自定义文本启用"
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM_DESC"] = "当启用时,左文本被格式化以方框中的规则。"
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2"] = ""
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{数据1}|r: 通常代表了玩家的位置编号。
+
+|cFFFFFF00{数据2}|r: 总是玩家名字。
+
+|cFFFFFF00{数据3}|r: 在某些情况下,此值代表玩家的派系或角色图标。
+
+|cFFFFFF00{func}|r: 运行一个定制的Lua函数增加它的返回值的文本。
+例如:
+{func return 'hello azeroth'}
+
+|cFFFFFF00转义序列|r: 用它来改变颜色或添加纹理。搜索“UI转义序列”以获取更多信息。]=]
+L["STRING_OPTIONS_BARORIENTATION"] = "计量条方向"
+L["STRING_OPTIONS_BARORIENTATION_DESC"] = "计量条填充方向"
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM"] = "自定义文本启用"
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM_DESC"] = "当启用时,右文本被格式化以方框中的规则。"
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2"] = ""
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{数据1}|r: 被传递的第一个数字,一般此数字代表所做的总和。
+
+|cFFFFFF00{数据2}|r: 传递第二数目,大部分的时间表示每秒平均值。
+
+|cFFFFFF00{数据3}|r: 通过第三个数字,通常是百分比。
+
+|cFFFFFF00{func}|r: 运行一个定制的Lua函数增加它的返回值的文本。
+例如:
+{func return 'hello azeroth'}
+
+|cFFFFFF00转义序列|r: 用它来改变颜色或添加纹理。搜索“UI转义序列”以获取更多信息。]=]
+L["STRING_OPTIONS_BARS"] = "计量条一般设置"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE"] = "自定义贴图文件"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE_DESC"] = [=[
+
+ |cFFFFFF00重要提示|r: 图片必须为256x32像素。]=]
+L["STRING_OPTIONS_BARS_DESC"] = "这些选项控制计量条的外观。"
+L["STRING_OPTIONS_BARSORT"] = "排序顺序"
+L["STRING_OPTIONS_BARSORT_DESC"] = "根据升序或降序排序"
+L["STRING_OPTIONS_BARSTART"] = "图标后开启计量条"
+L["STRING_OPTIONS_BARSTART_DESC"] = [=[禁用时顶部纹理开始在图标的左边而不是右边
+
+使用带有透明区域的图标包时,这是非常有用的。]=]
+L["STRING_OPTIONS_BARUR_ANCHOR"] = "快速更新:"
+L["STRING_OPTIONS_BARUR_DESC"] = "当启用时,DPS和HPS值的更新只比平常快一点。"
+L["STRING_OPTIONS_BG_ALL_ALLY"] = "全部显示"
+L["STRING_OPTIONS_BG_ALL_ALLY_DESC"] = [=[启用时,在分组模式下敌对玩家的数据也会显示。
+
+cFFFFFF00注意|r:下次进入战斗时此改动才会生效。]=]
+L["STRING_OPTIONS_BG_ANCHOR"] = "战场:"
+L["STRING_OPTIONS_BG_UNIQUE_SEGMENT"] = "独立分段"
+L["STRING_OPTIONS_BG_UNIQUE_SEGMENT_DESC"] = "每个分段都是截取的每次战斗的数据。"
+L["STRING_OPTIONS_CAURAS"] = "采集光环"
+L["STRING_OPTIONS_CAURAS_DESC"] = [=[启用捕获:
+
+- |cFFFFFF00增益持续时间|r
+- |cFFFFFF00减益持续时间|r
+- |cFFFFFF00空白区|r
+-|cFFFFFF00 冷却|r]=]
+L["STRING_OPTIONS_CDAMAGE"] = "采集伤害"
+L["STRING_OPTIONS_CDAMAGE_DESC"] = [=[启用捕获:
+
+- |cFFFFFF00造成伤害|r
+- |cFFFFFF00每秒伤害|r
+- |cFFFFFF00队友误伤|r
+- |cFFFFFF00承受伤害|r]=]
+L["STRING_OPTIONS_CENERGY"] = "采集能量"
+L["STRING_OPTIONS_CENERGY_DESC"] = [=[启用捕获:
+
+- |cFFFFFF00法力恢复|r
+- |cFFFFFF00怒气生成|r
+- |cFFFFFF00能量生成|r
+- |cFFFFFF00符文能量生成|r]=]
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS"] = "修改职业颜色"
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS_DESC"] = "选择新的职业颜色。"
+L["STRING_OPTIONS_CHANGECOLOR"] = "修改颜色"
+L["STRING_OPTIONS_CHANGELOG"] = "版本说明"
+L["STRING_OPTIONS_CHART_ADD"] = "添加数据"
+L["STRING_OPTIONS_CHART_ADD2"] = "添加"
+L["STRING_OPTIONS_CHART_ADDAUTHOR"] = "作者: "
+L["STRING_OPTIONS_CHART_ADDCODE"] = "代码: "
+L["STRING_OPTIONS_CHART_ADDICON"] = "图标: "
+L["STRING_OPTIONS_CHART_ADDNAME"] = "名字: "
+L["STRING_OPTIONS_CHART_ADDVERSION"] = "版本: "
+L["STRING_OPTIONS_CHART_AUTHOR"] = "作者"
+L["STRING_OPTIONS_CHART_AUTHORERROR"] = "作者的名字是无效的。"
+L["STRING_OPTIONS_CHART_CANCEL"] = "取消"
+L["STRING_OPTIONS_CHART_CLOSE"] = "关闭"
+L["STRING_OPTIONS_CHART_CODELOADED"] = "代码已加载,无法显示。"
+L["STRING_OPTIONS_CHART_EDIT"] = "编辑代码"
+L["STRING_OPTIONS_CHART_EXPORT"] = "导出"
+L["STRING_OPTIONS_CHART_FUNCERROR"] = "函数是无效的。"
+L["STRING_OPTIONS_CHART_ICON"] = "图标"
+L["STRING_OPTIONS_CHART_IMPORT"] = "导入"
+L["STRING_OPTIONS_CHART_IMPORTERROR"] = "导入字符串无效"
+L["STRING_OPTIONS_CHART_NAME"] = "名字"
+L["STRING_OPTIONS_CHART_NAMEERROR"] = "名字无效。"
+L["STRING_OPTIONS_CHART_PLUGINWARNING"] = "安装图表查看器插件显示自定义图表。"
+L["STRING_OPTIONS_CHART_REMOVE"] = "删除"
+L["STRING_OPTIONS_CHART_SAVE"] = "存储"
+L["STRING_OPTIONS_CHART_VERSION"] = "版本"
+L["STRING_OPTIONS_CHART_VERSIONERROR"] = "版本无效。"
+L["STRING_OPTIONS_CHEAL"] = "采集治疗"
+L["STRING_OPTIONS_CHEAL_DESC"] = [=[启用捕获:
+
+- |cFFFFFF00造成治疗|r
+- |cFFFFFF00吸收|r
+- |cFFFFFF00每秒治疗|r
+- |cFFFFFF00过量治疗|r
+- |cFFFFFF00受到治疗|r
+- |cFFFFFF00敌方的治疗|r
+- |cFFFFFF00减伤|r]=]
+L["STRING_OPTIONS_CLASSCOLOR_MODIFY"] = "修改职业颜色"
+L["STRING_OPTIONS_CLASSCOLOR_RESET"] = "右键重置"
+L["STRING_OPTIONS_CLEANUP"] = "自动清除片段"
+L["STRING_OPTIONS_CLEANUP_DESC"] = "启用后,只会保留两个分段,其他分段会自动清理"
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS"] = "点击打开菜单"
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS_DESC"] = "鼠标悬浮在标题栏按钮上时不再显示菜单,点击打开菜单。"
+L["STRING_OPTIONS_CLOUD"] = "云捕获"
+L["STRING_OPTIONS_CLOUD_DESC"] = "启用后,将在其他团队成员中收集已禁用收集器的数据"
+L["STRING_OPTIONS_CMISC"] = "采集杂项"
+L["STRING_OPTIONS_CMISC_DESC"] = [=[启用捕获:
+
+- |cFFFFFF00人群控制中断|r
+- |cFFFFFF00驱散|r
+- |cFFFFFF00打断|r
+- |cFFFFFF00复生|r
+- |cFFFFFF00死亡|r]=]
+L["STRING_OPTIONS_COLORANDALPHA"] = "颜色 & Alpha"
+L["STRING_OPTIONS_COLORFIXED"] = "修正颜色"
+L["STRING_OPTIONS_COMBAT_ALPHA"] = "当"
+L["STRING_OPTIONS_COMBAT_ALPHA_1"] = "无"
+L["STRING_OPTIONS_COMBAT_ALPHA_2"] = "战斗中"
+L["STRING_OPTIONS_COMBAT_ALPHA_3"] = "脱离战斗"
+L["STRING_OPTIONS_COMBAT_ALPHA_4"] = "当退出队伍"
+L["STRING_OPTIONS_COMBAT_ALPHA_5"] = "当不在战斗中"
+L["STRING_OPTIONS_COMBAT_ALPHA_6"] = "当在战斗中"
+L["STRING_OPTIONS_COMBAT_ALPHA_7"] = "团队副本测试"
+L["STRING_OPTIONS_COMBAT_ALPHA_DESC"] = [=[选择怎样的战斗影响窗口透明度。
+
+|cFFFFFF00没变化|r: 不修改透明度。
+
+|cFFFFFF00当在战斗|r: 当角色进入战斗时,所选的alpha将应用于窗口
+
+|cFFFFFF00脱离战斗|r: 只要角色不在战斗中,就会应用alpha.
+
+|cFFFFFF00当退出队伍|r: 当您不在队伍或团队中时,该窗口将采用所选的alpha.
+
+|cFFFFFF00重要|r: 此选项会覆盖由“自动透明度”功能决定的Alpha.]=]
+L["STRING_OPTIONS_COMBATTWEEKS"] = "战斗微调"
+L["STRING_OPTIONS_COMBATTWEEKS_DESC"] = "设定Details!如何调整一些战斗数据的细节。"
+L["STRING_OPTIONS_CONFIRM_ERASE"] = "要删除数据吗?"
+L["STRING_OPTIONS_CUSTOMSPELL_ADD"] = "添加法术"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE"] = "编辑法术设置"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE_DESC"] = "此面板允许修改法术的名称和图标"
+L["STRING_OPTIONS_DATABROKER"] = "数据代理:"
+L["STRING_OPTIONS_DATABROKER_TEXT"] = "文本"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD1"] = "玩家造成伤害"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD2"] = "玩家有效的Dps"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD3"] = "伤害定位"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD4"] = "伤害差异"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD5"] = "玩家造成治疗"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD6"] = "玩家有效的Hps"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD7"] = "治疗定位"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD8"] = "治疗差异"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD9"] = "战斗时长"
+L["STRING_OPTIONS_DATABROKER_TEXT1_DESC"] = [=[|cFFFFFF00{dmg}|r: 玩家伤害输出
+
+|cFFFFFF00{dps}|r: 玩家每秒有效伤害
+
+|cFFFFFF00{rdps}|r: 团队每秒有效伤害
+
+|cFFFFFF00{dpos}|r: 在团队或小队成员之间对伤害进行排名
+
+|cFFFFFF00{ddiff}|r: 你和第一名之间的伤害差异
+
+|cFFFFFF00{heal}|r: 玩家治疗量
+
+|cFFFFFF00{hps}|r: 玩家每秒有效治疗
+
+|cFFFFFF00{rhps}|r: 团队每秒有效治疗.
+
+|cFFFFFF00{hpos}|r: 在团队或小队成员之间对治疗进行排名
+
+|cFFFFFF00{hdiff}|r: 你和第一名之间的治疗差异
+
+|cFFFFFF00{time}|r: 战斗时间]=]
+L["STRING_OPTIONS_DATACHARTTITLE"] = "创建定时数据的图表"
+L["STRING_OPTIONS_DATACHARTTITLE_DESC"] = "该面板使您能够创建定制的数据捕获的图表制作。"
+L["STRING_OPTIONS_DATACOLLECT_ANCHOR"] = "数据类型:"
+L["STRING_OPTIONS_DEATHLIMIT"] = "死亡事件数额"
+L["STRING_OPTIONS_DEATHLIMIT_DESC"] = "设置要在死亡显示器上显示事件的数量。"
+L["STRING_OPTIONS_DEATHLOG_MINHEALING"] = "死亡记录最低治疗量"
+L["STRING_OPTIONS_DEATHLOG_MINHEALING_DESC"] = "死亡记录不会显示低于该值的治疗量"
+L["STRING_OPTIONS_DESATURATE_MENU"] = "降低饱和度"
+L["STRING_OPTIONS_DESATURATE_MENU_DESC"] = "启用该选项,所有的工具栏上的菜单图标变成黑色和白色。"
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW"] = "禁用\"全部显示\"窗口"
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW_DESC"] = "启用时,右键点击标题栏会显示书签内容。"
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT"] = "禁用计量条高亮"
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT_DESC"] = "悬浮在计量条上不会高亮显示。"
+L["STRING_OPTIONS_DISABLE_GROUPS"] = "禁用分组"
+L["STRING_OPTIONS_DISABLE_GROUPS_DESC"] = "启用后,一个窗口靠近另一个窗口是不再合成一个群组。"
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE"] = "禁用缩放按钮"
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE_DESC"] = "当你鼠标停留在视窗时,缩放与锁定/解锁以及解散按钮不会出现。"
+L["STRING_OPTIONS_DISABLE_RESET"] = "禁用复位按钮"
+L["STRING_OPTIONS_DISABLE_RESET_DESC"] = "启用后,必须使用重置按钮中的提示菜单而不是单击它"
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON"] = "禁用拉伸按钮"
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON_DESC"] = "启用后将不会显示拉伸按钮。"
+L["STRING_OPTIONS_DISABLED_RESET"] = "通过这个按钮复位当前是被禁用的,在提示菜单上选择。"
+L["STRING_OPTIONS_DTAKEN_EVERYTHING"] = "受到伤害(进阶)"
+L["STRING_OPTIONS_DTAKEN_EVERYTHING_DESC"] = "当启用时,任何模式下总是显示受到伤害。"
+L["STRING_OPTIONS_ED"] = "擦除数据"
+L["STRING_OPTIONS_ED_DESC"] = [=[|cFFFFFF00手动|r: 用户需要点击复位按钮。
+
+|cFFFFFF00提示|r: 在新的副本询问是否重置
+
+|cFFFFFF00Auto|r: 进入新的副本后自动清除数据]=]
+L["STRING_OPTIONS_ED1"] = "手动"
+L["STRING_OPTIONS_ED2"] = "提示"
+L["STRING_OPTIONS_ED3"] = "自动"
+L["STRING_OPTIONS_EDITIMAGE"] = "编辑图片"
+L["STRING_OPTIONS_EDITINSTANCE"] = "编辑窗口:"
+L["STRING_OPTIONS_ERASECHARTDATA"] = "删除图表"
+L["STRING_OPTIONS_ERASECHARTDATA_DESC"] = "注销时,所有的战斗收集的数据创建的图表将被删除。"
+L["STRING_OPTIONS_EXTERNALS_TITLE"] = "外部小工具"
+L["STRING_OPTIONS_EXTERNALS_TITLE2"] = "这些选项控制外部小工具的行为。"
+L["STRING_OPTIONS_GENERAL"] = "一般设置"
+L["STRING_OPTIONS_GENERAL_ANCHOR"] = "一般:"
+L["STRING_OPTIONS_HIDE_ICON"] = "隐藏图标"
+L["STRING_OPTIONS_HIDE_ICON_DESC"] = [=[当启用时,表示所选的展示的图标不显示。
+
+|cFFFFFF00重要|r: 启用图标后,强烈建议调整标题文本的位置。]=]
+L["STRING_OPTIONS_HIDECOMBATALPHA_DESC"] = [=[你的角色与所选择的规则匹配时改变透明度。
+
+|cFFFFFF00Zero|r: 完全隐藏,不能在窗口内进行交互。
+
+|cFFFFFF001 - 100|r: 不隐藏,只有透明才发生改变,您可以用窗口交互。]=]
+L["STRING_OPTIONS_HOTCORNER"] = "显示按钮"
+L["STRING_OPTIONS_HOTCORNER_ACTION"] = "点击"
+L["STRING_OPTIONS_HOTCORNER_ACTION_DESC"] = "选作做什么当左键点击Hotcorner计量条上的按钮是。"
+L["STRING_OPTIONS_HOTCORNER_ANCHOR"] = "Hotcorner:"
+L["STRING_OPTIONS_HOTCORNER_DESC"] = "显示或隐藏在Hotcorner面板上的按钮。"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK"] = "启用快速点击"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_DESC"] = [=[启用或禁用Hotcorners快速点击功能。
+
+快速按钮位于更左上角的像素处,将鼠标一直移动到那里,激活左上角的Hotcorners,如果点击则执行操作]=]
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC"] = "在快速点击上点击"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC_DESC"] = "选择做什么当Hotcorner的快速按钮被点击时"
+L["STRING_OPTIONS_IGNORENICKNAME"] = "忽略昵称"
+L["STRING_OPTIONS_IGNORENICKNAME_DESC"] = "当启用时,公会成员设置的昵称被忽略,并显示他们的角色的名字。"
+L["STRING_OPTIONS_ILVL_TRACKER"] = "物品等级跟踪:"
+L["STRING_OPTIONS_ILVL_TRACKER_DESC"] = "当启用并在非战斗状态,此插件查询并追踪团队内玩家的物品等级"
+L["STRING_OPTIONS_ILVL_TRACKER_TEXT"] = "启用"
+L["STRING_OPTIONS_INSTANCE_ALPHA2"] = "背景颜色"
+L["STRING_OPTIONS_INSTANCE_ALPHA2_DESC"] = "此选项让你改变窗口背景的颜色。"
+L["STRING_OPTIONS_INSTANCE_BACKDROP"] = "背景纹理"
+L["STRING_OPTIONS_INSTANCE_BACKDROP_DESC"] = [=[选择使用此窗口的背景纹理。
+
+|cFFFFFF00默认|r: Details 背景.]=]
+L["STRING_OPTIONS_INSTANCE_COLOR"] = "窗口颜色"
+L["STRING_OPTIONS_INSTANCE_COLOR_DESC"] = [=[改变这个窗口的颜色和透明度。
+
+|cFFFFFF00重要|r: 启用时,此处选择的Alpha将被|cFFFFFF00自动透明度|r值覆盖
+
+|cFFFFFF00重要|r: 选择窗口颜色覆盖任何颜色定制的状态栏。]=]
+L["STRING_OPTIONS_INSTANCE_CURRENT"] = "自动切换到当前"
+L["STRING_OPTIONS_INSTANCE_CURRENT_DESC"] = "每当战斗开始这个窗口自动切换到当前片段。"
+L["STRING_OPTIONS_INSTANCE_DELETE"] = "删除"
+L["STRING_OPTIONS_INSTANCE_DELETE_DESC"] = [=[移除永久的窗口。
+你的游戏画面可以在擦除过程重新加载。]=]
+L["STRING_OPTIONS_INSTANCE_SKIN"] = "皮肤"
+L["STRING_OPTIONS_INSTANCE_SKIN_DESC"] = "修改基于皮肤主题的窗口外观。"
+L["STRING_OPTIONS_INSTANCE_STATUSBAR_ANCHOR"] = "状态栏:"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR"] = "颜色和透明度"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR_DESC"] = [=[选择状态栏使用的颜色。
+
+|cFFFFFF00重要|r: 此选项会覆盖通过“窗口颜色”选择的颜色和透明度]=]
+L["STRING_OPTIONS_INSTANCE_STRATA"] = "层的阶层"
+L["STRING_OPTIONS_INSTANCE_STRATA_DESC"] = [=[选择要放置框架的图层高度
+
+低层是默认设置,使窗口留在大多数界面面板的后面
+
+使用高层窗口可能会停留在其他主要面板的前面
+
+更改图层高度时,可能会与其他面板发生冲突,彼此重叠]=]
+L["STRING_OPTIONS_INSTANCES"] = "窗口:"
+L["STRING_OPTIONS_INTERFACEDIT"] = "接口编辑模式"
+L["STRING_OPTIONS_LEFT_MENU_ANCHOR"] = "菜单设置:"
+L["STRING_OPTIONS_LOCKSEGMENTS"] = "片段锁定"
+L["STRING_OPTIONS_LOCKSEGMENTS_DESC"] = "当启用时,改变一个片段将使得所有其他窗口也切换到该改变。"
+L["STRING_OPTIONS_MANAGE_BOOKMARKS"] = "管理书签"
+L["STRING_OPTIONS_MAXINSTANCES"] = "窗口数量"
+L["STRING_OPTIONS_MAXINSTANCES_DESC"] = [=[限制可以创建的窗口的数量。
+
+您可以通过管理窗口控制菜单的窗口。]=]
+L["STRING_OPTIONS_MAXSEGMENTS"] = "片段数量"
+L["STRING_OPTIONS_MAXSEGMENTS_DESC"] = [=[这个选项控制你想要保持多少片段。
+
+建议值是 |cFFFFFF0012|r, 但可以随时调整这个数字。
+
+电脑内存在 |cFFFFFF001GB|r 或更少的情况下应该保持较低数量的片段,这可以提升你的系统性能。]=]
+L["STRING_OPTIONS_MENU_ALPHA"] = "鼠标交互:"
+L["STRING_OPTIONS_MENU_ALPHAENABLED_DESC"] = [=[当启用时,透明度时自动改变当悬停或离开窗口时。
+
+|cFFFFFF00重要|r: 此设置将覆盖“窗口设置”部分下“窗口颜色”选项上选择的Alpha]=]
+L["STRING_OPTIONS_MENU_ALPHAENTER"] = "将鼠标悬停在"
+L["STRING_OPTIONS_MENU_ALPHAENTER_DESC"] = "将鼠标悬停在窗口上时,透明度将更改为此值"
+L["STRING_OPTIONS_MENU_ALPHALEAVE"] = "没有互动"
+L["STRING_OPTIONS_MENU_ALPHALEAVE_DESC"] = "当没有将鼠标悬停在窗口上时,透明度将更改为此值"
+L["STRING_OPTIONS_MENU_ALPHAWARNING"] = "鼠标交互被启用,透明度可能不会受到影响。"
+L["STRING_OPTIONS_MENU_ANCHOR"] = "菜单锚点侧"
+L["STRING_OPTIONS_MENU_ANCHOR_DESC"] = "选中后,按钮将附加到窗口的右侧"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX"] = "X坐标位置"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX_DESC"] = "调节X轴属性文字的位置。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY"] = "Y坐标位置"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY_DESC"] = "调节Y轴属性文字的位置。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENABLED_DESC"] = "激活显示当前显示在窗口中的显示名称"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER"] = "交叠计时器"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER_DESC"] = "启用时,始终在文本左侧显示秒表计数器。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT"] = "文字字体"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT_DESC"] = "选择文本字体属性。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SHADOW_DESC"] = "启用或禁用文本阴影。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE"] = "文本锚点"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE_DESC"] = "选择文本被固定在哪里。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR"] = "文本颜色"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR_DESC"] = "更改文字颜色属性。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE"] = "文字大小"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE_DESC"] = "调整文字大小属性"
+L["STRING_OPTIONS_MENU_ATTRIBUTESETTINGS_ANCHOR"] = "设置:"
+L["STRING_OPTIONS_MENU_AUTOHIDE_DESC"] = "启用后,当鼠标离开窗口时,菜单会自动隐藏,并在再次与其进行交互时显示"
+L["STRING_OPTIONS_MENU_AUTOHIDE_LEFT"] = "自动隐藏菜单"
+L["STRING_OPTIONS_MENU_BUTTONSSIZE_DESC"] = "选择按钮大小. 这也改变了插件添加的按钮。"
+L["STRING_OPTIONS_MENU_FONT_FACE"] = "菜单文本字体"
+L["STRING_OPTIONS_MENU_FONT_FACE_DESC"] = "修改所有菜单中使用的字体。"
+L["STRING_OPTIONS_MENU_FONT_SIZE"] = "菜单文字大小"
+L["STRING_OPTIONS_MENU_FONT_SIZE_DESC"] = "修改所有菜单上的字体大小上。"
+L["STRING_OPTIONS_MENU_IGNOREBARS"] = "忽略计量条"
+L["STRING_OPTIONS_MENU_IGNOREBARS_DESC"] = "当启用时,在此窗口中的所有的行不受这种机制的影响。"
+L["STRING_OPTIONS_MENU_SHOWBUTTONS"] = "显示按钮"
+L["STRING_OPTIONS_MENU_SHOWBUTTONS_DESC"] = "选择哪些按钮显示在标题栏。"
+L["STRING_OPTIONS_MENU_X"] = "位置 X"
+L["STRING_OPTIONS_MENU_X_DESC"] = "改变X轴位置。"
+L["STRING_OPTIONS_MENU_Y"] = "位置 Y"
+L["STRING_OPTIONS_MENU_Y_DESC"] = "改变Y轴位置。"
+L["STRING_OPTIONS_MENUS_SHADOW"] = "阴影"
+L["STRING_OPTIONS_MENUS_SHADOW_DESC"] = "所有按键增加了一个薄的阴影边框。"
+L["STRING_OPTIONS_MENUS_SPACEMENT"] = "间距"
+L["STRING_OPTIONS_MENUS_SPACEMENT_DESC"] = "控制按钮之间的距离。"
+L["STRING_OPTIONS_MICRODISPLAY_ANCHOR"] = "微型显示:"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK"] = "锁定微缩视图"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK_DESC"] = "锁定后,它们将不再相应鼠标移动上去或是点击的操作。"
+L["STRING_OPTIONS_MICRODISPLAYS_DROPDOWN_TOOLTIP"] = "选择要显示在这一侧的微型展示。"
+L["STRING_OPTIONS_MICRODISPLAYS_OPTION_TOOLTIP"] = "设置配置为这款微展示。"
+L["STRING_OPTIONS_MICRODISPLAYS_SHOWHIDE_TOOLTIP"] = "显示或隐藏此微展示"
+L["STRING_OPTIONS_MICRODISPLAYS_WARNING"] = [=[|cFFFFFF00Note|r: 微展示无法显示,因为
+他们被固定在底部
+侧面和状态栏被禁用。]=]
+L["STRING_OPTIONS_MICRODISPLAYSSIDE"] = "微型显示锚点"
+L["STRING_OPTIONS_MICRODISPLAYSSIDE_DESC"] = "放置在微展示在窗口的顶部或者在底侧。"
+L["STRING_OPTIONS_MICRODISPLAYWARNING"] = "微展示不显示,因为状态栏被禁用。"
+L["STRING_OPTIONS_MINIMAP"] = "显示图标"
+L["STRING_OPTIONS_MINIMAP_ACTION"] = "点击"
+L["STRING_OPTIONS_MINIMAP_ACTION_DESC"] = "选择做什么当小地图图标按钮被左键点击时。"
+L["STRING_OPTIONS_MINIMAP_ACTION1"] = "打开选项面板"
+L["STRING_OPTIONS_MINIMAP_ACTION2"] = "重置片段"
+L["STRING_OPTIONS_MINIMAP_ACTION3"] = "显示/隐藏窗口"
+L["STRING_OPTIONS_MINIMAP_ANCHOR"] = "小地图:"
+L["STRING_OPTIONS_MINIMAP_DESC"] = "显示或隐藏小地图图标。"
+L["STRING_OPTIONS_MISCTITLE"] = "杂项设置"
+L["STRING_OPTIONS_MISCTITLE2"] = "这些控制几个选项。"
+L["STRING_OPTIONS_NICKNAME"] = "昵称"
+L["STRING_OPTIONS_NICKNAME_DESC"] = [=[为您设置一个昵称。
+昵称发送给公会成员和 Details!使用它代替你的名字。]=]
+L["STRING_OPTIONS_OPEN_ROWTEXT_EDITOR"] = "行文字编辑器"
+L["STRING_OPTIONS_OPEN_TEXT_EDITOR"] = "打开文本编辑器"
+L["STRING_OPTIONS_OVERALL_ALL"] = "所有片段"
+L["STRING_OPTIONS_OVERALL_ALL_DESC"] = "所有片段被添加到总体数据。"
+L["STRING_OPTIONS_OVERALL_ANCHOR"] = "总体数据:"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS"] = "地下城 Bosses"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS_DESC"] = "地下城boss片段被添加到总体数据。"
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN"] = "地下城小怪"
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN_DESC"] = "地下城清理小怪片段被添加到总体数据"
+L["STRING_OPTIONS_OVERALL_LOGOFF"] = "清除注销"
+L["STRING_OPTIONS_OVERALL_LOGOFF_DESC"] = "当启用时,总体数据将自动被清除当你退到角色界面。"
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS"] = "大秘境开始时清除"
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS_DESC"] = "启用后,当一个新的大秘境开始时,整个数据都将被自动清除。"
+L["STRING_OPTIONS_OVERALL_NEWBOSS"] = "新BOSS时清除"
+L["STRING_OPTIONS_OVERALL_NEWBOSS_DESC"] = "当启用时,总数据时将自动被清除当遭遇不同的地下城首领。"
+L["STRING_OPTIONS_OVERALL_RAIDBOSS"] = "地下城首领"
+L["STRING_OPTIONS_OVERALL_RAIDBOSS_DESC"] = "地下城首领片段被添加到总体数据。"
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN"] = "团队副本小怪"
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN_DESC"] = "地下城清理小怪片段被添加到总体数据。"
+L["STRING_OPTIONS_PANIMODE"] = "应急模式"
+L["STRING_OPTIONS_PANIMODE_DESC"] = "如果启用并且掉线(例如,通过断开连接)并且正在BOSS战斗中,则所有段都将被删除,这会使注销过程更快"
+L["STRING_OPTIONS_PDW_ANCHOR"] = "玩家详细信息窗口:"
+L["STRING_OPTIONS_PDW_SKIN_DESC"] = "更改玩家详细信息窗口的皮肤"
+L["STRING_OPTIONS_PERCENT_TYPE"] = "比例类型"
+L["STRING_OPTIONS_PERCENT_TYPE_DESC"] = [=[更改百分比法:
+
+|cFFFFFF00相对总体数据|r: 百分比显示的是RAID所有成员作出贡献。
+
+|cFFFFFF00相对最高玩家|r: 百分比是相对于最高玩家的分数。]=]
+L["STRING_OPTIONS_PERFORMANCE"] = "性能"
+L["STRING_OPTIONS_PERFORMANCE_ANCHOR"] = "一般:"
+L["STRING_OPTIONS_PERFORMANCE_ARENA"] = "竞技场"
+L["STRING_OPTIONS_PERFORMANCE_BG15"] = "战场 15"
+L["STRING_OPTIONS_PERFORMANCE_BG40"] = "战场 40"
+L["STRING_OPTIONS_PERFORMANCE_DUNGEON"] = "地下城"
+L["STRING_OPTIONS_PERFORMANCE_ENABLE_DESC"] = "如果启用此设置是当你的团队与之相匹配的RAID类型选择适用。"
+L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD"] = "自动清除世界分段"
+L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD_DESC"] = "自动清除野外战斗的分段"
+L["STRING_OPTIONS_PERFORMANCE_MYTHIC"] = "史诗"
+L["STRING_OPTIONS_PERFORMANCE_PROFILE_LOAD"] = "性能简介改为: "
+L["STRING_OPTIONS_PERFORMANCE_RAID15"] = "副本 10-15"
+L["STRING_OPTIONS_PERFORMANCE_RAID30"] = "副本 16-30"
+L["STRING_OPTIONS_PERFORMANCE_RF"] = "副本搜索"
+L["STRING_OPTIONS_PERFORMANCE_TYPES"] = "类型"
+L["STRING_OPTIONS_PERFORMANCE_TYPES_DESC"] = "这是副本类型,其中不同的选项可以自动更改"
+L["STRING_OPTIONS_PERFORMANCE1"] = "性能调整"
+L["STRING_OPTIONS_PERFORMANCE1_DESC"] = "这些选项可以帮助节省一些CPU使用率。"
+L["STRING_OPTIONS_PERFORMANCECAPTURES"] = "数据采集"
+L["STRING_OPTIONS_PERFORMANCECAPTURES_DESC"] = "这些选项是负责分析和收集战斗数据。"
+L["STRING_OPTIONS_PERFORMANCEPROFILES_ANCHOR"] = "性能配置:"
+L["STRING_OPTIONS_PICONS_DIRECTION"] = "插件图标方向"
+L["STRING_OPTIONS_PICONS_DIRECTION_DESC"] = "改变这些插件图标显示在工具栏上的方向。"
+L["STRING_OPTIONS_PLUGINS"] = "插件"
+L["STRING_OPTIONS_PLUGINS_AUTHOR"] = "作者"
+L["STRING_OPTIONS_PLUGINS_NAME"] = "名字"
+L["STRING_OPTIONS_PLUGINS_OPTIONS"] = "选项"
+L["STRING_OPTIONS_PLUGINS_RAID_ANCHOR"] = "副本插件"
+L["STRING_OPTIONS_PLUGINS_SOLO_ANCHOR"] = "单刷插件"
+L["STRING_OPTIONS_PLUGINS_TOOLBAR_ANCHOR"] = "工具栏插件"
+L["STRING_OPTIONS_PLUGINS_VERSION"] = "版本"
+L["STRING_OPTIONS_PRESETNONAME"] = "提供一个名称的预设。"
+L["STRING_OPTIONS_PRESETTOOLD"] = "此预设太旧无法在此版本的Details中加载"
+L["STRING_OPTIONS_PROFILE_COPYOKEY"] = "配置复制成功"
+L["STRING_OPTIONS_PROFILE_FIELDEMPTY"] = "名称字段为空。"
+L["STRING_OPTIONS_PROFILE_GLOBAL"] = "选择一个配置应用到全部角色。"
+L["STRING_OPTIONS_PROFILE_LOADED"] = "配置文件已加载:"
+L["STRING_OPTIONS_PROFILE_NOTCREATED"] = "配置不能创建"
+L["STRING_OPTIONS_PROFILE_OVERWRITTEN"] = "你已经给这个角色选择了一个特定的配置。"
+L["STRING_OPTIONS_PROFILE_POSSIZE"] = "保存大小和位置"
+L["STRING_OPTIONS_PROFILE_POSSIZE_DESC"] = "当启用时,此配置文件保存窗口的位置和大小。"
+L["STRING_OPTIONS_PROFILE_REMOVEOKEY"] = "配置删除成功"
+L["STRING_OPTIONS_PROFILE_SELECT"] = "选择一个配置。"
+L["STRING_OPTIONS_PROFILE_SELECTEXISTING"] = "选择一个现有的配置文件,或者继续使用一个新的这个角色:"
+L["STRING_OPTIONS_PROFILE_USENEW"] = "使用新配置"
+L["STRING_OPTIONS_PROFILES_ANCHOR"] = "设置:"
+L["STRING_OPTIONS_PROFILES_COPY"] = "复制配置从"
+L["STRING_OPTIONS_PROFILES_COPY_DESC"] = "拷贝所有设置从所选配置中并覆盖当前所有的配置"
+L["STRING_OPTIONS_PROFILES_CREATE"] = "创建配置"
+L["STRING_OPTIONS_PROFILES_CREATE_DESC"] = "创建一个新的配置。"
+L["STRING_OPTIONS_PROFILES_CURRENT"] = "当前配置:"
+L["STRING_OPTIONS_PROFILES_CURRENT_DESC"] = "这是当前在用配置文件的名称。"
+L["STRING_OPTIONS_PROFILES_ERASE"] = "删除配置"
+L["STRING_OPTIONS_PROFILES_ERASE_DESC"] = "删除选中的配置"
+L["STRING_OPTIONS_PROFILES_RESET"] = "重置当前的配置"
+L["STRING_OPTIONS_PROFILES_RESET_DESC"] = "重置所有配置并设置成默认值"
+L["STRING_OPTIONS_PROFILES_SELECT"] = "选择配置"
+L["STRING_OPTIONS_PROFILES_SELECT_DESC"] = "加载配置文件,所有设置都被新的配置文件设置覆盖。"
+L["STRING_OPTIONS_PROFILES_TITLE"] = "配置文件"
+L["STRING_OPTIONS_PROFILES_TITLE_DESC"] = "这些选项允许你不同的角色之间共享相同的设置。"
+L["STRING_OPTIONS_PS_ABBREVIATE"] = "数字格式"
+L["STRING_OPTIONS_PS_ABBREVIATE_COMMA"] = "逗号"
+L["STRING_OPTIONS_PS_ABBREVIATE_DESC"] = [=[选择缩写方法。
+
+|cFFFFFF00精确到K I|r:
+520600 = 520.6K
+19530000 = 19.53M
+
+|cFFFFFF00精确到K II|r:
+520600 = 520K
+19530000 = 19.53M
+
+|cFFFFFF00To精确到KM I|r:
+520600 = 520.6K
+19530000 = 19M
+
+|cFFFFFF00逗点|r:
+19530000 = 19.530.000
+
+|cFFFFFF00小写|r and |cFFFFFF00大写|r: 指的是字母'K'和'M']=]
+L["STRING_OPTIONS_PS_ABBREVIATE_NONE"] = "无"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK"] = "精确到K I 大写"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK0"] = "精确到M I 大写"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK0MIN"] = "精确到M I 小写"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK2"] = "精确到K II 大写"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOK2MIN"] = "精确到K II 小写"
+L["STRING_OPTIONS_PS_ABBREVIATE_TOKMIN"] = "精确到K I 小写"
+L["STRING_OPTIONS_PVPFRAGS"] = "仅PVP击杀"
+L["STRING_OPTIONS_PVPFRAGS_DESC"] = "启用时, 只在|cFFFFFF00造成伤害 > 击杀|r 标签显示被击杀的敌人数目。"
+L["STRING_OPTIONS_REALMNAME"] = "移除服务器名字"
+L["STRING_OPTIONS_REALMNAME_DESC"] = [=[当启动角色后不显示服务器名字
+
+|cFFFFFF00禁用|r: 萌丶汉丶纸-燃烧之刃
+|cFFFFFF00启用|r: 萌丶汉丶纸]=]
+L["STRING_OPTIONS_REPORT_ANCHOR"] = "报告:"
+L["STRING_OPTIONS_REPORT_HEALLINKS"] = "有益法术链接"
+L["STRING_OPTIONS_REPORT_HEALLINKS_DESC"] = [=[当发送一份报告,并启用该选项, |cFF55FF55有益|r 法术报告与法术的链接,而不是它的名字。
+
+|cFFFF5555有害|r 法术报告由默认链接.]=]
+L["STRING_OPTIONS_REPORT_SCHEMA"] = "格式化"
+L["STRING_OPTIONS_REPORT_SCHEMA_DESC"] = "选择聊天频道链接文本的文本格式。"
+L["STRING_OPTIONS_REPORT_SCHEMA1"] = "总计 / 每秒 / 百分比"
+L["STRING_OPTIONS_REPORT_SCHEMA2"] = "百分比 / 每秒 / 总计"
+L["STRING_OPTIONS_REPORT_SCHEMA3"] = "百分比 / 总计 / 每秒"
+L["STRING_OPTIONS_RESET_TO_DEFAULT"] = "重置成默认"
+L["STRING_OPTIONS_ROW_SETTING_ANCHOR"] = "一般:"
+L["STRING_OPTIONS_ROWADV_TITLE"] = "行高级设置"
+L["STRING_OPTIONS_ROWADV_TITLE_DESC"] = "这些选项让你更深入的修改行。"
+L["STRING_OPTIONS_RT_COOLDOWN1"] = "%s 使用在 %s!"
+L["STRING_OPTIONS_RT_COOLDOWN2"] = "%s 被使用!"
+L["STRING_OPTIONS_RT_COOLDOWNS_ANCHOR"] = "通报冷却时间:"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL"] = "频道"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL_DESC"] = [=[哪个聊天通道用于发送警报消息。
+
+如果 |cFFFFFF00Observer|r 被选中, 所有的冷却时间都将打印在你的聊天频道, 除了自身冷却时间.]=]
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM"] = "自定义文本"
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM_DESC"] = [=[键入自己的短语来发送。
+
+使用 |cFFFFFF00{spell}|r 添加冷却时间的法术名称。
+
+使用 |cFFFFFF00{target}|r 添加玩家目标名称。]=]
+L["STRING_OPTIONS_RT_COOLDOWNS_ONOFF_DESC"] = "当你使用一个冷却时间,消息是通过选定的频道发送。"
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT"] = "忽略冷却名单"
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT_DESC"] = "选择被忽略的冷却时间"
+L["STRING_OPTIONS_RT_DEATH_MSG"] = "Details! %s's 死亡"
+L["STRING_OPTIONS_RT_DEATHS_ANCHOR"] = "通报死亡:"
+L["STRING_OPTIONS_RT_DEATHS_FIRST"] = "仅第一次"
+L["STRING_OPTIONS_RT_DEATHS_FIRST_DESC"] = "只通报战斗中的第一次X死亡"
+L["STRING_OPTIONS_RT_DEATHS_HITS"] = "点击量"
+L["STRING_OPTIONS_RT_DEATHS_HITS_DESC"] = "当通报死亡,显示有多少点击率。"
+L["STRING_OPTIONS_RT_DEATHS_ONOFF_DESC"] = "当团队成员死亡,将其发送到RAID通道是什么杀死该玩家。"
+L["STRING_OPTIONS_RT_DEATHS_WHERE"] = "副本"
+L["STRING_OPTIONS_RT_DEATHS_WHERE_DESC"] = [=[选择在哪里通报死亡。
+
+|cFFFFFF00重要|r 当/raid频道存在使用副本频道,在地下城时使用/p
+
+如果 |cFFFFFF00观察者|r 被选中, 死亡仅仅显示在你的频道。]=]
+L["STRING_OPTIONS_RT_DEATHS_WHERE1"] = "团队 & 地下城"
+L["STRING_OPTIONS_RT_DEATHS_WHERE2"] = "仅团队"
+L["STRING_OPTIONS_RT_DEATHS_WHERE3"] = "仅地下城"
+L["STRING_OPTIONS_RT_FIRST_HIT"] = "第一下"
+L["STRING_OPTIONS_RT_FIRST_HIT_DESC"] = "打印在聊天面板 (|cFFFFFF00仅为你|r) 是谁打的第一下, 通常是谁开始的战斗。"
+L["STRING_OPTIONS_RT_IGNORE_TITLE"] = "忽略冷却时间"
+L["STRING_OPTIONS_RT_INFOS"] = "额外信息:"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION"] = "提前使用药水"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION_DESC"] = "当boss战开始时, 打印在你的聊天面板 (|cFFFFFF00only 仅仅为你|r) 谁提前喝药了。"
+L["STRING_OPTIONS_RT_INTERRUPT"] = "%s 打断!"
+L["STRING_OPTIONS_RT_INTERRUPT_ANCHOR"] = "通报打断:"
+L["STRING_OPTIONS_RT_INTERRUPT_NEXT"] = "下一个: %s"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL"] = "频道"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL_DESC"] = [=[哪个聊天通道用于发送警报消息。
+
+如果 |cFFFFFF00观察者|r 被选择, 所有打断只会打印在你自己的频道。]=]
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM"] = "自定义文本"
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM_DESC"] = [=[键入自己的短语来发送。
+
+使用 |cFFFFFF00{spell}|r 添加被打断的法术名称。
+
+使用 |cFFFFFF00{next}|r 添加下一个要打断的玩家填充在“下一步”集合中的玩家。]=]
+L["STRING_OPTIONS_RT_INTERRUPTS_NEXT"] = "下一个玩家"
+L["STRING_OPTIONS_RT_INTERRUPTS_NEXT_DESC"] = "当存在中断的序列,将负责下一个中断的玩家的名字。"
+L["STRING_OPTIONS_RT_INTERRUPTS_ONOFF_DESC"] = "当你成功打断施法,一个消息被发送。"
+L["STRING_OPTIONS_RT_INTERRUPTS_WHISPER"] = "密语 To"
+L["STRING_OPTIONS_RT_OTHER_ANCHOR"] = "一般:"
+L["STRING_OPTIONS_RT_TITLE"] = "团队工具"
+L["STRING_OPTIONS_RT_TITLE_DESC"] = "在这个面板中,你可以可以主动通过一些机制帮助你的团队。"
+L["STRING_OPTIONS_SAVELOAD"] = "保存和加载"
+L["STRING_OPTIONS_SAVELOAD_APPLYALL"] = "当前的皮肤已经在所有其他窗口被应用。"
+L["STRING_OPTIONS_SAVELOAD_APPLYALL_DESC"] = "应用当前的皮肤上创建的所有窗口。"
+L["STRING_OPTIONS_SAVELOAD_APPLYTOALL"] = "应用于所有窗口"
+L["STRING_OPTIONS_SAVELOAD_CREATE_DESC"] = [=[在字段中键入自定义皮肤的名称,然后点击创建按钮。
+
+这个过程创建一个自定义皮肤,你可以加载别人窗户或保存在另一时间。]=]
+L["STRING_OPTIONS_SAVELOAD_DESC"] = "这些选项允许你保存或加载预定义的设置。"
+L["STRING_OPTIONS_SAVELOAD_ERASE_DESC"] = "此选项删除以前保存的皮肤。"
+L["STRING_OPTIONS_SAVELOAD_EXPORT"] = "导出"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_COPY"] = "按 CTRL + C"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_DESC"] = "以文本格式保存皮肤"
+L["STRING_OPTIONS_SAVELOAD_IMPORT"] = "导入"
+L["STRING_OPTIONS_SAVELOAD_IMPORT_DESC"] = "以文本方式导入皮肤"
+L["STRING_OPTIONS_SAVELOAD_IMPORT_OKEY"] = "皮肤成功导入到您保存皮肤列表。现在你可以应用它通过“应用”保管箱。"
+L["STRING_OPTIONS_SAVELOAD_LOAD"] = "应用"
+L["STRING_OPTIONS_SAVELOAD_LOAD_DESC"] = "选择先前保存的皮肤之一,应用当前选定的窗口。"
+L["STRING_OPTIONS_SAVELOAD_MAKEDEFAULT"] = "设置标准"
+L["STRING_OPTIONS_SAVELOAD_PNAME"] = "名字"
+L["STRING_OPTIONS_SAVELOAD_REMOVE"] = "擦除"
+L["STRING_OPTIONS_SAVELOAD_RESET"] = "加载默认皮肤"
+L["STRING_OPTIONS_SAVELOAD_SAVE"] = "存储"
+L["STRING_OPTIONS_SAVELOAD_SKINCREATED"] = "皮肤被创建。"
+L["STRING_OPTIONS_SAVELOAD_STD_DESC"] = [=[设置当前的外观为标准的皮肤。
+
+此外观将应用于创建的所有新窗口。]=]
+L["STRING_OPTIONS_SAVELOAD_STDSAVE"] = "标准的皮肤已被保存,新窗口将使用该皮肤在默认情况下。"
+L["STRING_OPTIONS_SCROLLBAR"] = "滚动条"
+L["STRING_OPTIONS_SCROLLBAR_DESC"] = [=[启用或禁用滚动条。
+
+默认情况下,Details! 滚动条是由一直延伸窗口的机制替代。
+
+ |cFFFFFF00拉伸处理|r 超出了窗口键/菜单(关闭按钮左边)。]=]
+L["STRING_OPTIONS_SEGMENTSSAVE"] = "存储片段"
+L["STRING_OPTIONS_SEGMENTSSAVE_DESC"] = [=[这些选项控制你有多少片段想保存 在游戏sesions之间。
+
+较高的值可能会增加角色注销所需的时间
+
+如果您极少使用最后一天的数据, 强烈建议你设置此选择在 |cFFFFFF001|r。]=]
+L["STRING_OPTIONS_SENDFEEDBACK"] = "反馈"
+L["STRING_OPTIONS_SHOW_SIDEBARS"] = "显示边框"
+L["STRING_OPTIONS_SHOW_SIDEBARS_DESC"] = "显示或隐藏窗口边框。"
+L["STRING_OPTIONS_SHOW_STATUSBAR"] = "显示状态栏"
+L["STRING_OPTIONS_SHOW_STATUSBAR_DESC"] = "显示或隐藏状态栏下方。"
+L["STRING_OPTIONS_SHOW_TOTALBAR_COLOR_DESC"] = "选择颜色。透明度值遵循行alpha值。"
+L["STRING_OPTIONS_SHOW_TOTALBAR_DESC"] = "显示或隐藏总的计量条。"
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON"] = "图报"
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON_DESC"] = "选择总的计量条上显示的图标。"
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP"] = "仅仅在小队"
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP_DESC"] = "不在小队不显示总的计量条"
+L["STRING_OPTIONS_SIZE"] = "大小"
+L["STRING_OPTIONS_SKIN_A"] = "皮肤设置"
+L["STRING_OPTIONS_SKIN_A_DESC"] = "这些选项允许你改变皮肤。"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1"] = "对齐在右聊天"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1_DESC"] = "移动调整窗口 |cFFFFFF00#1|r 和 |cFFFFFF00#2|r 放在在右侧的聊天窗口的上面"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2"] = "设置工具提示边框为黑色"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2_DESC"] = [=[修改 tooltip's:
+
+边框颜色:|cFFFFFF00黑色|r.
+边框大小设置为: |cFFFFFF0016|r.
+纹理: |cFFFFFF00Blizzard Tooltip|r.]=]
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3"] = "移除提示边框"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3_DESC"] = [=[修改 tooltip's:
+
+边框颜色:|cFFFFFF00透明|r.]=]
+L["STRING_OPTIONS_SKIN_EXTRA_OPTIONS_ANCHOR"] = "皮肤选项:"
+L["STRING_OPTIONS_SKIN_LOADED"] = "皮肤成功加载。"
+L["STRING_OPTIONS_SKIN_PRESETS_ANCHOR"] = "保存皮肤:"
+L["STRING_OPTIONS_SKIN_PRESETSCONFIG_ANCHOR"] = "管理保存的自定义皮肤:"
+L["STRING_OPTIONS_SKIN_REMOVED"] = "删除皮肤。"
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP"] = "重置提示边框"
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP_DESC"] = "设置提示的边框颜色和纹理为默认值。"
+L["STRING_OPTIONS_SKIN_SELECT"] = "选择一个皮肤"
+L["STRING_OPTIONS_SKIN_SELECT_ANCHOR"] = "皮肤选择:"
+L["STRING_OPTIONS_SOCIAL"] = "社会"
+L["STRING_OPTIONS_SOCIAL_DESC"] = "告诉你如何在你的公会环境中被知道"
+L["STRING_OPTIONS_SPELL_ADD"] = "添加"
+L["STRING_OPTIONS_SPELL_ADDICON"] = "新图标: "
+L["STRING_OPTIONS_SPELL_ADDNAME"] = "新名字: "
+L["STRING_OPTIONS_SPELL_ADDSPELL"] = "添加法术"
+L["STRING_OPTIONS_SPELL_ADDSPELLID"] = "SpellId: "
+L["STRING_OPTIONS_SPELL_CLOSE"] = "关闭"
+L["STRING_OPTIONS_SPELL_ICON"] = "图标"
+L["STRING_OPTIONS_SPELL_IDERROR"] = "法术id无效。"
+L["STRING_OPTIONS_SPELL_INDEX"] = "索引"
+L["STRING_OPTIONS_SPELL_NAME"] = "名字"
+L["STRING_OPTIONS_SPELL_NAMEERROR"] = "法术名称无效。"
+L["STRING_OPTIONS_SPELL_NOTFOUND"] = "法术没有找到。"
+L["STRING_OPTIONS_SPELL_REMOVE"] = "删除"
+L["STRING_OPTIONS_SPELL_RESET"] = "重置"
+L["STRING_OPTIONS_SPELL_SPELLID"] = "法术 ID"
+L["STRING_OPTIONS_STRETCH"] = "拉伸按钮锚点"
+L["STRING_OPTIONS_STRETCH_DESC"] = [=[交替拉伸按钮的位置。
+
+|cFFFFFF00顶部|r: 抓取放置在右上角。
+
+|cFFFFFF00底部|r: 抓取放置在底部中心。]=]
+L["STRING_OPTIONS_STRETCHTOP"] = "拉伸按钮始终在顶部"
+L["STRING_OPTIONS_STRETCHTOP_DESC"] = [=[拉伸按钮将放置在FULLSCREEN底层上,并始终保持高于其他框架
+
+|cFFFFFF00重要|r: 将抓取器移动到高层,它可能会留在其他框架前面,如背包,只有在你真正需要的时候使用]=]
+L["STRING_OPTIONS_SWITCH_ANCHOR"] = "开关:"
+L["STRING_OPTIONS_SWITCHINFO"] = "|cFFF79F81 左边禁用|r |cFF81BEF7 右边禁用|r"
+L["STRING_OPTIONS_TABEMB_ANCHOR"] = "已嵌入聊天标签"
+L["STRING_OPTIONS_TABEMB_ENABLED_DESC"] = "启用后一个或多个窗口会被嵌入聊天标签页。"
+L["STRING_OPTIONS_TABEMB_SINGLE"] = "单窗口"
+L["STRING_OPTIONS_TABEMB_SINGLE_DESC"] = "启用后只会附加一个窗口。"
+L["STRING_OPTIONS_TABEMB_TABNAME"] = "标签名"
+L["STRING_OPTIONS_TABEMB_TABNAME_DESC"] = "将要添加到窗口的选项卡的名称。"
+L["STRING_OPTIONS_TESTBARS"] = "创建测试计量条"
+L["STRING_OPTIONS_TEXT"] = "计量条文本设置"
+L["STRING_OPTIONS_TEXT_DESC"] = "这些选项控制窗口行文本的外观。"
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR"] = "文本颜色"
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR_DESC"] = [=[改变文本左右两边的颜色。
+
+忽略 如果 |cFFFFFFFF职业化颜色|r 被启用。]=]
+L["STRING_OPTIONS_TEXT_FONT"] = "文本字体"
+L["STRING_OPTIONS_TEXT_FONT_DESC"] = "改变文本左右两边的字体"
+L["STRING_OPTIONS_TEXT_LCLASSCOLOR_DESC"] = "当启用时,文本始终使用玩家职业颜色。"
+L["STRING_OPTIONS_TEXT_LEFT_ANCHOR"] = "左文本:"
+L["STRING_OPTIONS_TEXT_LOUTILINE"] = "文本阴影"
+L["STRING_OPTIONS_TEXT_LOUTILINE_DESC"] = "启用或禁用左边文字的下划线。"
+L["STRING_OPTIONS_TEXT_LPOSITION"] = "显示数字"
+L["STRING_OPTIONS_TEXT_LPOSITION_DESC"] = "显示位置编号在玩家的名字左边。"
+L["STRING_OPTIONS_TEXT_RIGHT_ANCHOR"] = "右文本:"
+L["STRING_OPTIONS_TEXT_ROUTILINE_DESC"] = "启用或禁用右边文字的下划线。"
+L["STRING_OPTIONS_TEXT_ROWICONS_ANCHOR"] = "图标:"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET"] = "括号"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET_DESC"] = "选择哪个字符是用来打开和关闭每秒和百分比块。"
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT"] = "显示百分比"
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT_DESC"] = "显示的百分比。"
+L["STRING_OPTIONS_TEXT_SHOW_PS"] = "每秒显示"
+L["STRING_OPTIONS_TEXT_SHOW_PS_DESC"] = "显示每秒伤害和每秒治疗效果。"
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR"] = "分隔符"
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR_DESC"] = "选择用于将每秒数值与百分比数值分开的字符"
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL"] = "显示总的"
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL_DESC"] = [=[显示角色完成的总的数据。
+
+例如:总伤害,总收到的治疗]=]
+L["STRING_OPTIONS_TEXT_SIZE"] = "文本大小"
+L["STRING_OPTIONS_TEXT_SIZE_DESC"] = "同时改变左和右的文本的大小。"
+L["STRING_OPTIONS_TEXT_TEXTUREL_ANCHOR"] = "较低的纹理:"
+L["STRING_OPTIONS_TEXT_TEXTUREU_ANCHOR"] = "较高的纹理:"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL"] = "取消"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL_TOOLTIP"] = "完成编辑并忽略代码中的任何变化。"
+L["STRING_OPTIONS_TEXTEDITOR_COLOR_TOOLTIP"] = "选择文本,然后单击颜色按钮来更改所选文本的颜色。"
+L["STRING_OPTIONS_TEXTEDITOR_COMMA"] = "逗号"
+L["STRING_OPTIONS_TEXTEDITOR_COMMA_TOOLTIP"] = [=[添加一个函数来用逗号分隔格式的数字。
+例如: 1000000 到 1.000.000.]=]
+L["STRING_OPTIONS_TEXTEDITOR_DATA"] = "[数据 %s]"
+L["STRING_OPTIONS_TEXTEDITOR_DATA_TOOLTIP"] = [=[添加数据源:
+
+|cFFFFFF00数据 1|r: Normaly表示参与者完成的总数或位置编号
+
+|cFFFFFF00数据 2|r: 在大多数情况下,代表DPS,HPS或玩家的名字
+
+|cFFFFFF00数据 3|r: 表示参与者、规范或图标完成的百分比]=]
+L["STRING_OPTIONS_TEXTEDITOR_DONE"] = "完成"
+L["STRING_OPTIONS_TEXTEDITOR_DONE_TOOLTIP"] = "完成编辑并保存代码。"
+L["STRING_OPTIONS_TEXTEDITOR_FUNC"] = "函数"
+L["STRING_OPTIONS_TEXTEDITOR_FUNC_TOOLTIP"] = [=[添加一个空函数。
+函数必须总是返回一个数字。]=]
+L["STRING_OPTIONS_TEXTEDITOR_RESET"] = "重置"
+L["STRING_OPTIONS_TEXTEDITOR_RESET_TOOLTIP"] = "清除所有的代码,并添加默认的代码。"
+L["STRING_OPTIONS_TEXTEDITOR_TOK"] = "数值到K"
+L["STRING_OPTIONS_TEXTEDITOR_TOK_TOOLTIP"] = [=[添加一个函数来格式化数字的值。
+例如: 1500000 到 1.5kk.]=]
+L["STRING_OPTIONS_TIMEMEASURE"] = "时间测量"
+L["STRING_OPTIONS_TIMEMEASURE_DESC"] = [=[|cFFFFFF00活动|r: 如果活动停止,每个团队成员的计时器将被暂停,并且当恢复时,每个团队成员的计时器将再次计数,常用的测量方法Dps和Hps
+
+|cFFFFFF00有效|r: 用于排名,此方法使用经过的战斗时间来测量所有团队成员的Dps和Hps]=]
+L["STRING_OPTIONS_TOOLBAR_SETTINGS"] = "左边的菜单设置"
+L["STRING_OPTIONS_TOOLBAR_SETTINGS_DESC"] = "这些选项更改在窗口顶部的主菜单。"
+L["STRING_OPTIONS_TOOLBARSIDE"] = "工具栏锚点"
+L["STRING_OPTIONS_TOOLBARSIDE_DESC"] = [=[将工具栏(a.k.a标题栏)放在窗口的顶部或底部.
+
+|cFFFFFF00重要|r: 当交替位置时,标题文本不会改变,请查看|cFFFFFF00标题栏:文本|r部分以获取更多选项]=]
+L["STRING_OPTIONS_TOOLS_ANCHOR"] = "工具:"
+L["STRING_OPTIONS_TOOLTIP_ANCHOR"] = "设置:"
+L["STRING_OPTIONS_TOOLTIP_ANCHORTEXTS"] = "文本:"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION"] = "缩写类型"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION_DESC"] = "选择提示上显示的号码是如何被格式化。"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH"] = "提示侧"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH_DESC"] = "提示的哪一侧用于与锚固件侧配合"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_BORDER"] = "边框:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_POINT"] = "锚点:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE"] = "锚点侧"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE_DESC"] = "工具提示将放置在锚点的哪一侧"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT"] = "提示锚点"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT_DESC"] = "右键锁定"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO"] = "锚点"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE"] = "移动锚点"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE_DESC"] = "当“锚点”设置为|cFFFFFF00“屏幕上的点”|r时,移动锚点位置"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_DESC"] = "提示附加在悬停行或游戏屏幕中的选定点上"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO1"] = "窗口行"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO2"] = "屏幕上的点"
+L["STRING_OPTIONS_TOOLTIPS_ANCHORCOLOR"] = "标题"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR"] = "背景颜色"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR_DESC"] = "选择背景上使用的颜色"
+L["STRING_OPTIONS_TOOLTIPS_BORDER_COLOR_DESC"] = "更改边框颜色"
+L["STRING_OPTIONS_TOOLTIPS_BORDER_SIZE_DESC"] = "更改边框大小"
+L["STRING_OPTIONS_TOOLTIPS_BORDER_TEXTURE_DESC"] = "修改边框纹理文件"
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR"] = "文字颜色"
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR_DESC"] = "更改提示文本上使用的颜色"
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE"] = "文字字体"
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE_DESC"] = "选择提示文本上使用的字体"
+L["STRING_OPTIONS_TOOLTIPS_FONTSHADOW_DESC"] = "启用或禁用文本中的阴影"
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE"] = "字体大小"
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE_DESC"] = "增加或减少提示文本的大小"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER"] = "子菜单壁纸"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER_DESC"] = "启用后一些菜单将会使用它们自己的子菜单壁纸。"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE"] = "提示最大化方法"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE_DESC"] = [=[选择用于展开提示中显示的信息的方法.
+
+|cFFFFFF00 在控制键上|r: 按下Shift,Ctrl或Alt键时,提示框会展开
+
+|cFFFFFF00 始终最大化|r: 工具提示始终显示所有信息,没有任何数量限制
+
+|cFFFFFF00 只有Shift块|r: 默认情况下提示上的第一个块始终展开
+
+|cFFFFFF00 只有Ctrl块|r: 默认情况下第二个块始终展开
+
+|cFFFFFF00 只有Alt块|r: 默认情况下第三个块始终展开]=]
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE1"] = "在控制键上"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE2"] = "始终最大化"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE3"] = "只有Shift块"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE4"] = "只有Ctrl块"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE5"] = "只有Alt块"
+L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP"] = "编辑选单外观"
+L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP_DESC"] = "修改标题栏菜单背景图的缩放比例。"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX"] = "距离 X"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETX_DESC"] = "提示从其锚点水平放置距离"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY"] = "距离 Y"
+L["STRING_OPTIONS_TOOLTIPS_OFFSETY_DESC"] = "提示从其锚点垂直放置距离"
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT"] = "显示数量"
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT_DESC"] = "显示一个数字,表示提示中有多少法术,目标和宠物"
+L["STRING_OPTIONS_TOOLTIPS_TITLE"] = "工具提示"
+L["STRING_OPTIONS_TOOLTIPS_TITLE_DESC"] = "这些选项用来调整工具提示的外观。"
+L["STRING_OPTIONS_TOTALBAR_ANCHOR"] = "总体计量条:"
+L["STRING_OPTIONS_TRASH_SUPPRESSION"] = "垃圾回收"
+L["STRING_OPTIONS_TRASH_SUPPRESSION_DESC"] = "|cFFFFFF00X|r 秒后,自动切换到显示可回收分段(|cFFFFFF00只在遭遇首领并失败后|r)。"
+L["STRING_OPTIONS_WALLPAPER_ALPHA"] = "Alpha:"
+L["STRING_OPTIONS_WALLPAPER_ANCHOR"] = "壁纸选择:"
+L["STRING_OPTIONS_WALLPAPER_BLUE"] = "蓝:"
+L["STRING_OPTIONS_WALLPAPER_CBOTTOM"] = "裁剪 (|cFFC0C0C0底部|r):"
+L["STRING_OPTIONS_WALLPAPER_CLEFT"] = "裁剪 (|cFFC0C0C0左|r):"
+L["STRING_OPTIONS_WALLPAPER_CRIGHT"] = "裁剪 (|cFFC0C0C0右|r):"
+L["STRING_OPTIONS_WALLPAPER_CTOP"] = "裁剪 (|cFFC0C0C0顶部|r):"
+L["STRING_OPTIONS_WALLPAPER_FILE"] = "文件:"
+L["STRING_OPTIONS_WALLPAPER_GREEN"] = "绿:"
+L["STRING_OPTIONS_WALLPAPER_LOAD"] = "加载图片"
+L["STRING_OPTIONS_WALLPAPER_LOAD_DESC"] = "从硬盘驱动器中选择要用作壁纸的图片"
+L["STRING_OPTIONS_WALLPAPER_LOAD_EXCLAMATION"] = [=[图片需要:
+
+- 采用Truevision TGA格式(.tga扩展名)
+- 在WOW / Interface / root文件夹中
+- 大小必须为256 x 256像素
+- 在粘贴文件之前必须关闭游戏]=]
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME"] = "文件名称:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME_DESC"] = "仅插入文件名,不包括路径和扩展名"
+L["STRING_OPTIONS_WALLPAPER_LOAD_OKEY"] = "加载"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TITLE"] = "从电脑:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT"] = "排查"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT_TEXT"] = [=[如果壁纸得到了全绿色:
+
+- 重启了魔兽客户端
+- 确保图像宽度为256,高度为256
+- 检查图像是否为.TGA格式,并确保以32位/像素保存
+- 在Interface文件夹中,例如: C:/Program Files/World of Warcraft/Interface/]=]
+L["STRING_OPTIONS_WALLPAPER_RED"] = "红:"
+L["STRING_OPTIONS_WC_ANCHOR"] = "快速窗口控制 (#%s):"
+L["STRING_OPTIONS_WC_BOOKMARK"] = "管理书签"
+L["STRING_OPTIONS_WC_BOOKMARK_DESC"] = "打开书签的配置面板。"
+L["STRING_OPTIONS_WC_CLOSE"] = "关闭"
+L["STRING_OPTIONS_WC_CLOSE_DESC"] = [=[关闭当前编辑窗口
+
+关闭时,窗口被视为非活动状态,可以使用“窗口控制”菜单随时重新打开
+
+|cFFFFFF00重要:|r 要完全删除窗口,请转到其他部分]=]
+L["STRING_OPTIONS_WC_CREATE"] = "创建窗口"
+L["STRING_OPTIONS_WC_CREATE_DESC"] = "创建一个新的窗口。"
+L["STRING_OPTIONS_WC_LOCK"] = "锁定"
+L["STRING_OPTIONS_WC_LOCK_DESC"] = [=[锁定或解锁窗口
+
+锁定时,窗口无法移动]=]
+L["STRING_OPTIONS_WC_REOPEN"] = "重新打开"
+L["STRING_OPTIONS_WC_UNLOCK"] = "解锁"
+L["STRING_OPTIONS_WC_UNSNAP"] = "取消组合"
+L["STRING_OPTIONS_WC_UNSNAP_DESC"] = "从窗口群组中删除此窗口"
+L["STRING_OPTIONS_WHEEL_SPEED"] = "轮速"
+L["STRING_OPTIONS_WHEEL_SPEED_DESC"] = "更改在窗口上滚动鼠标滚轮时滚动的速度"
+L["STRING_OPTIONS_WINDOW"] = "选项面板"
+L["STRING_OPTIONS_WINDOW_ANCHOR_ANCHORS"] = "锚点:"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE"] = "忽略品质切换"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE_DESC"] = "启用后,隐藏,显示或切换所有窗口时,此窗口不受影响"
+L["STRING_OPTIONS_WINDOW_SCALE"] = "尺度"
+L["STRING_OPTIONS_WINDOW_SCALE_DESC"] = [=[调整窗口的比例
+
+|cFFFFFF00贴士|r: 右键单击以键入值
+
+|cFFFFFF00当前|r: %s]=]
+L["STRING_OPTIONS_WINDOW_TITLE"] = "窗口设置"
+L["STRING_OPTIONS_WINDOW_TITLE_DESC"] = "这些选项控制选择窗口的窗口外观。"
+L["STRING_OPTIONS_WINDOWSPEED"] = "更新间隔"
+L["STRING_OPTIONS_WINDOWSPEED_DESC"] = [=[每次更新之间的时间间隔
+
+|cFFFFFF000.05|r: 实时更新
+
+|cFFFFFF000.3|r: 每秒更新约3次
+
+|cFFFFFF003.0|r: 每3秒更新一次]=]
+L["STRING_OPTIONS_WP"] = "墙纸设置"
+L["STRING_OPTIONS_WP_ALIGN"] = "对齐"
+L["STRING_OPTIONS_WP_ALIGN_DESC"] = [=[壁纸如何在窗口内对齐
+
+- |cFFFFFF00平铺|r: 自动调整大小并与所有角落对齐
+
+- |cFFFFFF00居中|r: 没有调整大小并与窗口中心对齐
+
+-|cFFFFFF00伸展|r: 自动调整垂直或水平尺寸,并与左右或上下边对齐
+
+-|cFFFFFF00四角|r: 与指定的角对齐,不进行自动调整大小]=]
+L["STRING_OPTIONS_WP_DESC"] = "这些选项控制窗口的壁纸。"
+L["STRING_OPTIONS_WP_EDIT"] = "编辑图像"
+L["STRING_OPTIONS_WP_EDIT_DESC"] = "打开图像编辑器来改变所选图像的某些方面。"
+L["STRING_OPTIONS_WP_ENABLE_DESC"] = "显示墙纸。"
+L["STRING_OPTIONS_WP_GROUP"] = "类别"
+L["STRING_OPTIONS_WP_GROUP_DESC"] = "选择图片组"
+L["STRING_OPTIONS_WP_GROUP2"] = "壁纸"
+L["STRING_OPTIONS_WP_GROUP2_DESC"] = "这将被用作墙纸的图像。"
+L["STRING_OPTIONSMENU_AUTOMATIC"] = "窗口:自动"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE"] = "窗口自动化设置"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE_DESC"] = "这些设置用于控制窗口的自动行为,例如自动隐藏和自动开启。"
+L["STRING_OPTIONSMENU_COMBAT"] = "战斗"
+L["STRING_OPTIONSMENU_DATACHART"] = "图标数据"
+L["STRING_OPTIONSMENU_DATACOLLECT"] = "数据采集"
+L["STRING_OPTIONSMENU_DATAFEED"] = "数据源"
+L["STRING_OPTIONSMENU_DISPLAY"] = "展示"
+L["STRING_OPTIONSMENU_DISPLAY_DESC"] = "总体基本调整和快速的窗口控制。"
+L["STRING_OPTIONSMENU_LEFTMENU"] = "标题栏:按钮"
+L["STRING_OPTIONSMENU_MISC"] = "杂项"
+L["STRING_OPTIONSMENU_PERFORMANCE"] = "性能调整"
+L["STRING_OPTIONSMENU_PLUGINS"] = "插件管理"
+L["STRING_OPTIONSMENU_PROFILES"] = "配置文件"
+L["STRING_OPTIONSMENU_RAIDTOOLS"] = "Raid 工具"
+L["STRING_OPTIONSMENU_RIGHTMENU"] = "-- x -- x --"
+L["STRING_OPTIONSMENU_ROWMODELS"] = "行: 进阶"
+L["STRING_OPTIONSMENU_ROWSETTINGS"] = "行: 设置"
+L["STRING_OPTIONSMENU_ROWTEXTS"] = "行: 文本"
+L["STRING_OPTIONSMENU_SKIN"] = "皮肤选择"
+L["STRING_OPTIONSMENU_SPELLS"] = "法术定制"
+L["STRING_OPTIONSMENU_SPELLS_CONSOLIDATE"] = "合并拥有相同名称的普通法术"
+L["STRING_OPTIONSMENU_TITLETEXT"] = "标题栏:文本"
+L["STRING_OPTIONSMENU_TOOLTIP"] = "提示"
+L["STRING_OPTIONSMENU_WALLPAPER"] = "壁纸"
+L["STRING_OPTIONSMENU_WINDOW"] = "窗口设置"
+L["STRING_OVERALL"] = "总体"
+L["STRING_OVERHEAL"] = "过量治疗"
+L["STRING_OVERHEALED"] = "过量治疗的"
+L["STRING_PARRY"] = "招架"
+L["STRING_PERCENTAGE"] = "比例"
+L["STRING_PET"] = "宠物"
+L["STRING_PETS"] = "宠物"
+L["STRING_PLAYER_DETAILS"] = "玩家详情"
+L["STRING_PLAYERS"] = "玩家"
+L["STRING_PLEASE_WAIT"] = "请稍候"
+L["STRING_PLUGIN_CLEAN"] = "无"
+L["STRING_PLUGIN_CLOCKNAME"] = "遭遇时间"
+L["STRING_PLUGIN_CLOCKTYPE"] = "时钟类型"
+L["STRING_PLUGIN_DURABILITY"] = "耐久力"
+L["STRING_PLUGIN_FPS"] = "帧率"
+L["STRING_PLUGIN_GOLD"] = "金币"
+L["STRING_PLUGIN_LATENCY"] = "延迟"
+L["STRING_PLUGIN_MINSEC"] = "分钟 & 秒"
+L["STRING_PLUGIN_NAMEALREADYTAKEN"] = "Details! 无法安装插件,因为名称已被占用"
+L["STRING_PLUGIN_PATTRIBUTENAME"] = "属性"
+L["STRING_PLUGIN_PDPSNAME"] = "团队 Dps"
+L["STRING_PLUGIN_PSEGMENTNAME"] = "片段"
+L["STRING_PLUGIN_SECONLY"] = "只需几秒钟"
+L["STRING_PLUGIN_SEGMENTTYPE"] = "片段类型"
+L["STRING_PLUGIN_SEGMENTTYPE_1"] = "战斗 #X"
+L["STRING_PLUGIN_SEGMENTTYPE_2"] = "地下城名称"
+L["STRING_PLUGIN_SEGMENTTYPE_3"] = "地下城名称加片段"
+L["STRING_PLUGIN_THREATNAME"] = "我的威胁"
+L["STRING_PLUGIN_TIME"] = "时钟"
+L["STRING_PLUGIN_TIMEDIFF"] = "最后的战斗差异"
+L["STRING_PLUGIN_TOOLTIP_LEFTBUTTON"] = "配置当前插件"
+L["STRING_PLUGIN_TOOLTIP_RIGHTBUTTON"] = "选择另外一个插件"
+L["STRING_PLUGINOPTIONS_ABBREVIATE"] = "简略"
+L["STRING_PLUGINOPTIONS_COMMA"] = "逗号"
+L["STRING_PLUGINOPTIONS_FONTFACE"] = "选字体"
+L["STRING_PLUGINOPTIONS_NOFORMAT"] = "无"
+L["STRING_PLUGINOPTIONS_TEXTALIGN"] = "文本对齐"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_X"] = "文字对齐 X"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_Y"] = "文字对齐 Y"
+L["STRING_PLUGINOPTIONS_TEXTCOLOR"] = "文本颜色"
+L["STRING_PLUGINOPTIONS_TEXTSIZE"] = "字体大小"
+L["STRING_PLUGINOPTIONS_TEXTSTYLE"] = "文本样式"
+L["STRING_QUERY_INSPECT"] = "获取天赋和装备等级。"
+L["STRING_QUERY_INSPECT_FAIL1"] = "在战斗中无法查询。"
+L["STRING_QUERY_INSPECT_REFRESH"] = "需要刷新"
+L["STRING_RAID_WIDE"] = "[*] 团队CD"
+L["STRING_RAIDCHECK_PLUGIN_DESC"] = "当在一个团队副本中时,在Details!的标题栏上会出现一个图标显示合剂,食物,药水的使用。"
+L["STRING_RAIDCHECK_PLUGIN_NAME"] = "团队检查"
+L["STRING_REPORT"] = "到"
+L["STRING_REPORT_BUTTON_TOOLTIP"] = "点击打开报告对话框"
+L["STRING_REPORT_FIGHT"] = "战斗"
+L["STRING_REPORT_FIGHTS"] = "战斗"
+L["STRING_REPORT_INVALIDTARGET"] = "密语目标未找到"
+L["STRING_REPORT_LAST"] = "上一次"
+L["STRING_REPORT_LASTFIGHT"] = "上一次战斗"
+L["STRING_REPORT_LEFTCLICK"] = "点击打开报告对话框"
+L["STRING_REPORT_PREVIOUSFIGHTS"] = "以前的战斗"
+L["STRING_REPORT_SINGLE_BUFFUPTIME"] = "BUFF的正常运行时间"
+L["STRING_REPORT_SINGLE_COOLDOWN"] = "使用冷却时间"
+L["STRING_REPORT_SINGLE_DEATH"] = "死于"
+L["STRING_REPORT_SINGLE_DEBUFFUPTIME"] = "DEBUFF的正常运行时间"
+L["STRING_REPORT_TOOLTIP"] = "报告结果"
+L["STRING_REPORTFRAME_COPY"] = "复制和粘贴"
+L["STRING_REPORTFRAME_CURRENT"] = "当前"
+L["STRING_REPORTFRAME_CURRENTINFO"] = "只显示当前正在显示(如果支持的话)的数据。"
+L["STRING_REPORTFRAME_GUILD"] = "公会"
+L["STRING_REPORTFRAME_INSERTNAME"] = "插入玩家名称"
+L["STRING_REPORTFRAME_LINES"] = "线条"
+L["STRING_REPORTFRAME_OFFICERS"] = "官员频道"
+L["STRING_REPORTFRAME_PARTY"] = "小队"
+L["STRING_REPORTFRAME_RAID"] = "团队"
+L["STRING_REPORTFRAME_REVERT"] = "逆转"
+L["STRING_REPORTFRAME_REVERTED"] = "反向的"
+L["STRING_REPORTFRAME_REVERTINFO"] = "相反的结果,显示出以升序(如果支持的话)。"
+L["STRING_REPORTFRAME_SAY"] = "说"
+L["STRING_REPORTFRAME_SEND"] = "发送"
+L["STRING_REPORTFRAME_WHISPER"] = "密语"
+L["STRING_REPORTFRAME_WHISPERTARGET"] = "密语目标"
+L["STRING_REPORTFRAME_WINDOW_TITLE"] = "链接 Details!"
+L["STRING_REPORTHISTORY"] = "在报告窗口显示标签"
+L["STRING_RESISTED"] = "抵制"
+L["STRING_RESIZE_ALL"] = "自由调整所有窗口"
+L["STRING_RESIZE_COMMON"] = [=[调整
+]=]
+L["STRING_RESIZE_HORIZONTAL"] = "调整群组中所有窗口的宽度"
+L["STRING_RESIZE_VERTICAL"] = "调整群组中所有窗口的高度"
+L["STRING_RIGHT"] = "右"
+L["STRING_RIGHT_TO_LEFT"] = "从右往左"
+L["STRING_RIGHTCLICK_CLOSE_LARGE"] = "单击鼠标右键可关闭此窗口。"
+L["STRING_RIGHTCLICK_CLOSE_MEDIUM"] = "用鼠标右键单击关闭该窗口。"
+L["STRING_RIGHTCLICK_CLOSE_SHORT"] = "右键单击关闭。"
+L["STRING_RIGHTCLICK_TYPEVALUE"] = "右键单击输入值"
+L["STRING_SCORE_BEST"] = "你得到了 |cFFFFFF00%s|r 分,这是你的最佳得分,恭喜!"
+L["STRING_SCORE_NOTBEST"] = "你获得了 |cFFFFFF00%s|r,你的最好成绩是 |cFFFFFF00%s|r ,在 %s 装等 %d "
+L["STRING_SEE_BELOW"] = "见下文"
+L["STRING_SEGMENT"] = "片段"
+L["STRING_SEGMENT_EMPTY"] = "片段是空白"
+L["STRING_SEGMENT_END"] = "结束"
+L["STRING_SEGMENT_ENEMY"] = "敌对"
+L["STRING_SEGMENT_LOWER"] = "片段"
+L["STRING_SEGMENT_OVERALL"] = "总体数据"
+L["STRING_SEGMENT_START"] = "开始"
+L["STRING_SEGMENT_TRASH"] = "垃圾清理"
+L["STRING_SEGMENTS"] = "段落"
+L["STRING_SEGMENTS_LIST_BOSS"] = "首领战斗"
+L["STRING_SEGMENTS_LIST_COMBATTIME"] = "战斗时长"
+L["STRING_SEGMENTS_LIST_OVERALL"] = "总体"
+L["STRING_SEGMENTS_LIST_TIMEINCOMBAT"] = "处于战斗中的时长"
+L["STRING_SEGMENTS_LIST_TOTALTIME"] = "总时长"
+L["STRING_SEGMENTS_LIST_TRASH"] = "可回收"
+L["STRING_SEGMENTS_LIST_WASTED_TIME"] = "不在战斗中"
+L["STRING_SHIELD_HEAL"] = "盾治疗"
+L["STRING_SHIELD_OVERHEAL"] = "盾过量治疗"
+L["STRING_SHORTCUT_RIGHTCLICK"] = "右键点击关闭"
+L["STRING_SLASH_API_DESC"] = "打开 API 面白来创建插件,自定义显示和光环等内容。"
+L["STRING_SLASH_CAPTURE_DESC"] = "打开或关闭数据的全部捕获。"
+L["STRING_SLASH_CAPTUREOFF"] = "关闭所有数据采集。"
+L["STRING_SLASH_CAPTUREON"] = "打开所有数据采集。"
+L["STRING_SLASH_CHANGES"] = "更新"
+L["STRING_SLASH_CHANGES_ALIAS1"] = "新"
+L["STRING_SLASH_CHANGES_ALIAS2"] = "变化"
+L["STRING_SLASH_CHANGES_DESC"] = "说明了什么是新的,Details!发生了什么变化!"
+L["STRING_SLASH_DISABLE"] = "禁用"
+L["STRING_SLASH_ENABLE"] = "启用"
+L["STRING_SLASH_HIDE"] = "隐藏"
+L["STRING_SLASH_HIDE_ALIAS1"] = "关闭"
+L["STRING_SLASH_HISTORY"] = "历史记录"
+L["STRING_SLASH_NEW"] = "新"
+L["STRING_SLASH_NEW_DESC"] = "创建一个新窗口。"
+L["STRING_SLASH_OPTIONS"] = "选项"
+L["STRING_SLASH_OPTIONS_DESC"] = "打开选项面板。"
+L["STRING_SLASH_RESET"] = "重置"
+L["STRING_SLASH_RESET_ALIAS1"] = "清除"
+L["STRING_SLASH_RESET_DESC"] = "清除所有片段"
+L["STRING_SLASH_SHOW"] = "显示"
+L["STRING_SLASH_SHOW_ALIAS1"] = "打开"
+L["STRING_SLASH_SHOWHIDETOGGLE_DESC"] = "如果<窗口编号>未通过,则为所有窗口"
+L["STRING_SLASH_TOGGLE"] = "切换"
+L["STRING_SLASH_WIPE"] = "团灭"
+L["STRING_SLASH_WIPECONFIG"] = "重新安装"
+L["STRING_SLASH_WIPECONFIG_CONFIRM"] = "单击继续安装"
+L["STRING_SLASH_WIPECONFIG_DESC"] = "设置所有配置为默认设置,如果Details!不能正常工作。"
+L["STRING_SLASH_WORLDBOSS"] = "世界BOSS"
+L["STRING_SLASH_WORLDBOSS_DESC"] = "运行一个宏来显示本周你已经击杀过哪些BOSS。"
+L["STRING_SPELL_INTERRUPTED"] = "法术打断"
+L["STRING_SPELLLIST"] = "法术列表"
+L["STRING_SPELLS"] = "法术"
+L["STRING_SPIRIT_LINK_TOTEM"] = "血量交换"
+L["STRING_SPIRIT_LINK_TOTEM_DESC"] = "在图腾范围内玩家之间血量的交换数额"
+L["STRING_STATISTICS"] = "统计"
+L["STRING_STATUSBAR_NOOPTIONS"] = "这个插件没有选项。"
+L["STRING_SWITCH_CLICKME"] = "添加书签"
+L["STRING_SWITCH_SELECTMSG"] = "设置这个展示为书签 #%d."
+L["STRING_SWITCH_TO"] = "切换到"
+L["STRING_SWITCH_WARNING"] = "角色改变。 开关: |cFFFFAA00%s|r "
+L["STRING_TARGET"] = "目标"
+L["STRING_TARGETS"] = "目标"
+L["STRING_TARGETS_OTHER1"] = "宠物和其他目标"
+L["STRING_TEXTURE"] = "纹理"
+L["STRING_TIME_OF_DEATH"] = "死亡"
+L["STRING_TOOOLD"] = "不能安装因为你的Details!版本过低。"
+L["STRING_TOP"] = "顶"
+L["STRING_TOP_TO_BOTTOM"] = "从高到低"
+L["STRING_TOTAL"] = "总"
+L["STRING_TRANSLATE_LANGUAGE"] = "帮助翻译 Details!"
+L["STRING_TUTORIAL_FULLY_DELETE_WINDOW"] = "你关闭了一个窗口,你可以随时重新打开它。完全删除一个窗口请前往 选项 -> 窗口:一般设置 -> 删除。"
+L["STRING_TUTORIAL_OVERALL1"] = "调整设置面板的总体数据设置 > PvE/PvP"
+L["STRING_UNKNOW"] = "未知"
+L["STRING_UNKNOWSPELL"] = "未知法术"
+L["STRING_UNLOCK"] = [=[取消组合窗口
+在这个按钮]=]
+L["STRING_UNLOCK_WINDOW"] = "解锁"
+L["STRING_UPTADING"] = "更新中"
+L["STRING_VERSION_AVAILABLE"] = "有新版本可用,请从 Twitch 或 Curse 上下载。"
+L["STRING_VERSION_UPDATE"] = "新版本:有什么改变? 点击这里"
+L["STRING_VOIDZONE_TOOLTIP"] = "伤害和时间:"
+L["STRING_WAITPLUGIN"] = [=[等待
+插件]=]
+L["STRING_WAVE"] = "波"
+L["STRING_WELCOME_1"] = [=[|cFFFFFFFF欢迎使用Details! 快速安装向导
+
+|r本指南将帮助你一些重要的配置。
+您可以在任何时候跳过这只是点击“跳过”按钮。]=]
+L["STRING_WELCOME_11"] = "如果你改变主意,你可以随时再通过选项面板中修改"
+L["STRING_WELCOME_12"] = "选择更新速度和动画。 此外,如果你的电脑有2GB或更少的内存RAM,它可能要减少和段的数量。"
+L["STRING_WELCOME_13"] = ""
+L["STRING_WELCOME_14"] = "更新速度"
+L["STRING_WELCOME_15"] = [=[窗口中的每个更新之间的延迟长度。
+标准值是 |cFFFFFF000.5|r 秒, 建议值(对于raiders) 是 |cFFFFFF001.0|r.]=]
+L["STRING_WELCOME_16"] = "启用动画"
+L["STRING_WELCOME_17"] = "当启用时,此功能使得计量条在窗口轻轻滑动,而不是“跳”到相应的大小。"
+L["STRING_WELCOME_2"] = "如果你改变主意,你可以随时再通过选项面板中修改"
+L["STRING_WELCOME_26"] = "使用界面:拉伸"
+L["STRING_WELCOME_27"] = [=[高亮显示的按钮是担架。 |cFFFFFF00点击|r 并 |cFFFFFF00拖动!|r.
+
+
+如果窗口被锁定时,整个标题栏变为拉伸按钮。]=]
+L["STRING_WELCOME_28"] = "使用界面:窗口控制"
+L["STRING_WELCOME_29"] = [=[窗口控制,基本上做两件事情:
+
+- 打开一个 |cFFFFFF00新窗口|r.
+- 显示一个 |cFFFFFF00被关闭窗口|r 的菜单,以便在任何时候都可以重新打开该窗口。]=]
+L["STRING_WELCOME_3"] = "选择你的DPS和HPS者优先的方法:"
+L["STRING_WELCOME_30"] = "使用界面:书签"
+L["STRING_WELCOME_31"] = [=[|cFFFFFF00右键点击|r |cFFFFAA00书签|r 窗口的任何位置打开书签。
+
+|cFFFFFF00再次右键点击|r 关闭面板或选择另一个显示,如果点击一个图标。
+
+|TInterface\AddOns\Details\images\key_shift:14:30:0:0:64:64:0:64:0:40|t + 右键点击代替打开片段。
+
+|TInterface\AddOns\Details\images\key_ctrl:14:30:0:0:64:64:0:64:0:40|t + 右键点击关闭窗口。]=]
+L["STRING_WELCOME_32"] = "使用界面:群组窗口"
+L["STRING_WELCOME_34"] = "使用接口:扩展工具提示"
+L["STRING_WELCOME_36"] = "使用界面:插件"
+L["STRING_WELCOME_38"] = "准备好去 Raid!"
+L["STRING_WELCOME_39"] = [=[感谢选择 Details!
+
+随时向我们发送反馈和错误报告]=]
+L["STRING_WELCOME_4"] = "活动时间: "
+L["STRING_WELCOME_41"] = "接口和存储器性能:"
+L["STRING_WELCOME_42"] = "快速外观设置"
+L["STRING_WELCOME_43"] = "选择您喜欢的皮肤:"
+L["STRING_WELCOME_44"] = "壁纸"
+L["STRING_WELCOME_45"] = "欲了解更多的自定义选项,勾选选项面板。"
+L["STRING_WELCOME_46"] = "导入设置"
+L["STRING_WELCOME_5"] = "有效时间: "
+L["STRING_WELCOME_57"] = "导入基本设置从已安装过的插件。"
+L["STRING_WELCOME_58"] = [=[预定义集合的外观配置。
+
+|cFFFFFF00重要|r: 所有设置可以在以后的选项面板上的修改。]=]
+L["STRING_WELCOME_59"] = "启用背景墙纸。"
+L["STRING_WELCOME_6"] = "每个团队成员的计时器搁置,如果他的活动停止,然后再返回来算恢复时。"
+L["STRING_WELCOME_60"] = "昵称和头像"
+L["STRING_WELCOME_61"] = "头像显示在工具提示,同样也显示在玩家的详细信息窗口。"
+L["STRING_WELCOME_62"] = "都会发送给你公会中使用Details!的其他成员。昵称将代替你的角色名称。"
+L["STRING_WELCOME_63"] = "快速的Dps/ HPS更新"
+L["STRING_WELCOME_64"] = "当启用时,DPS和HPS显示更新比总伤害或治疗更快。"
+L["STRING_WELCOME_65"] = "按下右按钮!"
+L["STRING_WELCOME_66"] = [=[拖动一个窗口邻近另一个窗口来创建一个组。
+
+组窗口拉伸和缩放在一起。
+
+就像一个窗口一样。]=]
+L["STRING_WELCOME_67"] = [=[按shift扩大玩家的提示来显示使用的所有法术。
+
+Ctrl键是目标,Alt键是宠物。]=]
+L["STRING_WELCOME_68"] = [=[Details! 被称为“插件”的瘟疫感染
+
+它们无处不在,帮助您完成许多任务
+
+例如: 仇恨监视, DPS分析, 战斗总结, 图标创建等]=]
+L["STRING_WELCOME_69"] = "跳过"
+L["STRING_WELCOME_7"] = "用于排名,这种方法使用经过实战的时间度量的团队所有成员的DPS和HPS"
+L["STRING_WELCOME_70"] = "标题栏设置"
+L["STRING_WELCOME_71"] = "条列设置"
+L["STRING_WELCOME_72"] = "视窗设置"
+L["STRING_WELCOME_73"] = "选择字母表序或服务器:"
+L["STRING_WELCOME_74"] = "拉丁字母表序"
+L["STRING_WELCOME_75"] = "西里尔字母表序"
+L["STRING_WELCOME_76"] = "中国"
+L["STRING_WELCOME_77"] = "韩国"
+L["STRING_WELCOME_78"] = "台湾"
+L["STRING_WELCOME_79"] = "创建第二个窗口"
+L["STRING_WINDOW_NOTFOUND"] = "找不到窗口。"
+L["STRING_WINDOW_NUMBER"] = "窗口数字"
+L["STRING_WINDOW1ATACH_DESC"] = "创建一个群组窗口, 拖动 #2 到 窗口 #1 附近。"
+L["STRING_WIPE_ALERT"] = "团长命令:清除数据!"
+L["STRING_WIPE_ERROR1"] = "已经发送了一个清除指令。"
+L["STRING_WIPE_ERROR2"] = "不在团队中。"
+L["STRING_WIPE_ERROR3"] = "无法停止遇敌。"
+L["STRING_YES"] = "是"
+
diff --git a/locales/Details-zhTW.lua b/locales/Details-zhTW.lua
index 5f96c89e..07f19287 100644
--- a/locales/Details-zhTW.lua
+++ b/locales/Details-zhTW.lua
@@ -1,4 +1,1723 @@
local L = LibStub("AceLocale-3.0"):NewLocale("Details", "zhTW")
if not L then return end
-@localization(locale="zhTW", format="lua_additive_table")@
\ No newline at end of file
+L["ABILITY_ID"] = "技能 ID"
+--[[Translation missing --]]
+--[[ L["STRING_"] = ""--]]
+L["STRING_ABSORBED"] = "吸收"
+L["STRING_ACTORFRAME_NOTHING"] = "沒有資料可供報告 :("
+L["STRING_ACTORFRAME_REPORTAT"] = "於"
+L["STRING_ACTORFRAME_REPORTOF"] = "來自"
+L["STRING_ACTORFRAME_REPORTTARGETS"] = "報告目標來自"
+L["STRING_ACTORFRAME_REPORTTO"] = "報告給"
+L["STRING_ACTORFRAME_SPELLDETAILS"] = "法術詳細內容"
+L["STRING_ACTORFRAME_SPELLSOF"] = "法術來自"
+L["STRING_ACTORFRAME_SPELLUSED"] = "所有使用的法術"
+L["STRING_AGAINST"] = "反向"
+L["STRING_ALIVE"] = "存活"
+L["STRING_ALPHA"] = "透明度"
+L["STRING_ANCHOR_BOTTOM"] = "下"
+L["STRING_ANCHOR_BOTTOMLEFT"] = "左下"
+L["STRING_ANCHOR_BOTTOMRIGHT"] = "右下"
+L["STRING_ANCHOR_LEFT"] = "左"
+L["STRING_ANCHOR_RIGHT"] = "右"
+L["STRING_ANCHOR_TOP"] = "上"
+L["STRING_ANCHOR_TOPLEFT"] = "左上"
+L["STRING_ANCHOR_TOPRIGHT"] = "右上"
+L["STRING_ASCENDING"] = "遞增"
+L["STRING_ATACH_DESC"] = "視窗 #%d 和視窗 #%d 組成群組。"
+L["STRING_ATTRIBUTE_CUSTOM"] = "自訂"
+L["STRING_ATTRIBUTE_DAMAGE"] = "傷害"
+L["STRING_ATTRIBUTE_DAMAGE_BYSPELL"] = "承受的法術傷害"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS"] = "光環 & 虛無區域"
+L["STRING_ATTRIBUTE_DAMAGE_DEBUFFS_REPORT"] = "減益傷害和持續時間"
+L["STRING_ATTRIBUTE_DAMAGE_DONE"] = "輸出傷害"
+L["STRING_ATTRIBUTE_DAMAGE_DPS"] = "每秒傷害 (DPS)"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES"] = "敵方承受傷害"
+L["STRING_ATTRIBUTE_DAMAGE_ENEMIES_DONE"] = "敵方輸出傷害"
+L["STRING_ATTRIBUTE_DAMAGE_FRAGS"] = "輸出傷害目標"
+L["STRING_ATTRIBUTE_DAMAGE_FRIENDLYFIRE"] = "隊友誤傷"
+L["STRING_ATTRIBUTE_DAMAGE_TAKEN"] = "承受傷害"
+L["STRING_ATTRIBUTE_ENERGY"] = "能量"
+L["STRING_ATTRIBUTE_ENERGY_ALTERNATEPOWER"] = "首領戰特殊能量"
+L["STRING_ATTRIBUTE_ENERGY_ENERGY"] = "能量生成"
+L["STRING_ATTRIBUTE_ENERGY_MANA"] = "法力恢復"
+L["STRING_ATTRIBUTE_ENERGY_RAGE"] = "怒氣生成"
+L["STRING_ATTRIBUTE_ENERGY_RESOURCES"] = "其他能量"
+L["STRING_ATTRIBUTE_ENERGY_RUNEPOWER"] = "符能生成"
+L["STRING_ATTRIBUTE_HEAL"] = "治療"
+L["STRING_ATTRIBUTE_HEAL_ABSORBED"] = "吸收治療"
+L["STRING_ATTRIBUTE_HEAL_DONE"] = "造成治療"
+L["STRING_ATTRIBUTE_HEAL_ENEMY"] = "敵方造成治療"
+L["STRING_ATTRIBUTE_HEAL_HPS"] = "每秒治療 (HPS)"
+L["STRING_ATTRIBUTE_HEAL_OVERHEAL"] = "過量治療"
+L["STRING_ATTRIBUTE_HEAL_PREVENT"] = "減免傷害"
+L["STRING_ATTRIBUTE_HEAL_TAKEN"] = "承受治療"
+L["STRING_ATTRIBUTE_MISC"] = "其他"
+L["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"] = "增益覆蓋時間"
+L["STRING_ATTRIBUTE_MISC_CCBREAK"] = "控場破除"
+L["STRING_ATTRIBUTE_MISC_DEAD"] = "死亡"
+L["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"] = "減益覆蓋時間"
+L["STRING_ATTRIBUTE_MISC_DEFENSIVE_COOLDOWNS"] = "冷卻"
+L["STRING_ATTRIBUTE_MISC_DISPELL"] = "驅散"
+L["STRING_ATTRIBUTE_MISC_INTERRUPT"] = "斷法"
+L["STRING_ATTRIBUTE_MISC_RESS"] = "復活"
+L["STRING_AUTO"] = "自動"
+L["STRING_AUTOSHOT"] = "自動射擊"
+L["STRING_AVERAGE"] = "平均"
+L["STRING_BLOCKED"] = "格檔"
+L["STRING_BOTTOM"] = "下"
+L["STRING_BOTTOM_TO_TOP"] = "由下到上"
+L["STRING_CAST"] = "施法"
+L["STRING_CAUGHT"] = "抓到"
+L["STRING_CCBROKE"] = "移除控場"
+L["STRING_CENTER"] = "中"
+L["STRING_CENTER_UPPER"] = "中"
+L["STRING_CHANGED_TO_CURRENT"] = "分段已切換成: |cFFFFFF00目前|r"
+L["STRING_CHANNEL_PRINT"] = "觀察"
+L["STRING_CHANNEL_RAID"] = "團隊"
+L["STRING_CHANNEL_SAY"] = "說"
+L["STRING_CHANNEL_WHISPER"] = "密語"
+L["STRING_CHANNEL_WHISPER_TARGET_COOLDOWN"] = "密語冷卻目標"
+L["STRING_CHANNEL_YELL"] = "大喊"
+L["STRING_CLICK_REPORT_LINE1"] = "|cFFFFCC22左鍵|r: |cFFFFEE00報告|r"
+L["STRING_CLICK_REPORT_LINE2"] = "|cFFFFCC22Shift+左鍵|r: |cFFFFEE00視窗模式|r"
+L["STRING_CLOSEALL"] = "所有視窗都已關閉,可以輸入 '/details show' 重新開啟視窗。"
+L["STRING_COLOR"] = "顏色"
+L["STRING_COMMAND_LIST"] = "指令列表"
+L["STRING_COOLTIP_NOOPTIONS"] = "沒有選項"
+L["STRING_CREATEAURA"] = "建立提醒效果"
+L["STRING_CRITICAL_HITS"] = "致命一擊"
+L["STRING_CRITICAL_ONLY"] = "致命"
+L["STRING_CURRENT"] = "目前"
+L["STRING_CURRENTFIGHT"] = "當前片段"
+L["STRING_CUSTOM_ACTIVITY_ALL"] = "活躍時間"
+L["STRING_CUSTOM_ACTIVITY_ALL_DESC"] = "顯示團隊中每個玩家的活躍度報告。"
+L["STRING_CUSTOM_ACTIVITY_DPS"] = "傷害活躍時間"
+L["STRING_CUSTOM_ACTIVITY_DPS_DESC"] = "報告每個角色花了多少時間在輸出傷害。"
+L["STRING_CUSTOM_ACTIVITY_HPS"] = "治療活躍時間"
+L["STRING_CUSTOM_ACTIVITY_HPS_DESC"] = "報告每個角色花了多少時間在補血。"
+L["STRING_CUSTOM_ATTRIBUTE_DAMAGE"] = "傷害"
+L["STRING_CUSTOM_ATTRIBUTE_HEAL"] = "治療"
+L["STRING_CUSTOM_ATTRIBUTE_SCRIPT"] = "自訂程式碼"
+L["STRING_CUSTOM_AUTHOR"] = "作者:"
+L["STRING_CUSTOM_AUTHOR_DESC"] = "誰建立了這個視窗。"
+L["STRING_CUSTOM_CANCEL"] = "取消"
+L["STRING_CUSTOM_CC_DONE"] = "施放控場"
+L["STRING_CUSTOM_CC_RECEIVED"] = "受到控場"
+L["STRING_CUSTOM_CREATE"] = "建立"
+L["STRING_CUSTOM_CREATED"] = "已建立新視窗。"
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET"] = "對其他標記目標的傷害"
+L["STRING_CUSTOM_DAMAGEONANYMARKEDTARGET_DESC"] = "顯示對其他任何被標記的目標所輸出的傷害。"
+L["STRING_CUSTOM_DAMAGEONSHIELDS"] = "對護盾的傷害"
+L["STRING_CUSTOM_DAMAGEONSKULL"] = "對骷髏標記目標的傷害"
+L["STRING_CUSTOM_DAMAGEONSKULL_DESC"] = "顯示對被標記骷髏的目標所輸出的傷害。"
+L["STRING_CUSTOM_DESCRIPTION"] = "說明:"
+L["STRING_CUSTOM_DESCRIPTION_DESC"] = "關於此視窗是做什麼的說明。"
+L["STRING_CUSTOM_DONE"] = "完成"
+L["STRING_CUSTOM_DTBS"] = "承受的法術傷害"
+L["STRING_CUSTOM_DTBS_DESC"] = "顯示敵方技能對你的隊伍所造成的傷害。"
+L["STRING_CUSTOM_DYNAMICOVERAL"] = "動態整體傷害"
+L["STRING_CUSTOM_EDIT"] = "編輯"
+L["STRING_CUSTOM_EDIT_SEARCH_CODE"] = "編輯搜尋程式碼"
+L["STRING_CUSTOM_EDIT_TOOLTIP_CODE"] = "編輯滑鼠提示程式碼"
+L["STRING_CUSTOM_EDITCODE_DESC"] = "這是進階功能,讓使用者可以建立自己的視窗程式碼。"
+L["STRING_CUSTOM_EDITTOOLTIP_DESC"] = "這是當使用者用滑鼠指向計量條時會執行的滑鼠提示程式碼。"
+L["STRING_CUSTOM_ENEMY_DT"] = "承受傷害"
+L["STRING_CUSTOM_EXPORT"] = "匯出"
+L["STRING_CUSTOM_FUNC_INVALID"] = "無效的自訂程式碼,無法重新整理視窗。"
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT"] = "治療藥水 & 治療石"
+L["STRING_CUSTOM_HEALTHSTONE_DEFAULT_DESC"] = " 顯示團隊內誰使用了治療藥水或治療石。"
+L["STRING_CUSTOM_ICON"] = "圖示:"
+L["STRING_CUSTOM_IMPORT"] = "匯入"
+L["STRING_CUSTOM_IMPORT_ALERT"] = "已載入視窗,請按下匯入來確認。"
+L["STRING_CUSTOM_IMPORT_BUTTON"] = "匯入"
+L["STRING_CUSTOM_IMPORT_ERROR"] = "匯入失敗,無效的字串。"
+L["STRING_CUSTOM_IMPORTED"] = "已成功匯入視窗。"
+L["STRING_CUSTOM_LONGNAME"] = "名稱過長,最多只能使用 32 個字元 (16 個中文字)。"
+L["STRING_CUSTOM_MYSPELLS"] = "我的法術"
+L["STRING_CUSTOM_MYSPELLS_DESC"] = "在視窗中顯示你的法術。"
+L["STRING_CUSTOM_NAME"] = "名稱:"
+L["STRING_CUSTOM_NAME_DESC"] = "輸入新自訂視窗的名稱。"
+L["STRING_CUSTOM_NEW"] = "管理自訂視窗"
+L["STRING_CUSTOM_PASTE"] = "在這裡貼上:"
+L["STRING_CUSTOM_POT_DEFAULT"] = "使用藥水"
+L["STRING_CUSTOM_POT_DEFAULT_DESC"] = "顯示團隊內誰在首領戰中使用了藥水。"
+L["STRING_CUSTOM_REMOVE"] = "移除"
+L["STRING_CUSTOM_REPORT"] = "(自訂)"
+L["STRING_CUSTOM_SAVE"] = "儲存變更"
+L["STRING_CUSTOM_SAVED"] = "已儲存視窗。"
+L["STRING_CUSTOM_SHORTNAME"] = "名稱最少要 5 個字元。"
+L["STRING_CUSTOM_SKIN_TEXTURE"] = "自訂外觀檔"
+L["STRING_CUSTOM_SKIN_TEXTURE_DESC"] = [=[副檔名為 .tga 的檔案。
+
+必須放在這個資料夾內:
+
+|cFFFFFF00World of Warcraft/_retail_/Interface|r
+
+|cFFFFFF00重要:|r 放置檔案之前,請先結束遊戲程式。之後輸入 /reload 便會套用新儲存的材質檔案。]=]
+L["STRING_CUSTOM_SOURCE"] = "來源:"
+L["STRING_CUSTOM_SOURCE_DESC"] = [=[是誰觸發效果。
+
+右側按鈕會列出團隊首領戰的 NPC。]=]
+L["STRING_CUSTOM_SPELLID"] = "法術 ID:"
+L["STRING_CUSTOM_SPELLID_DESC"] = [=[選擇性使用,施法者對目標施放效果的法術。
+
+右側按鈕會列出團隊首領戰的法術。
+]=]
+L["STRING_CUSTOM_TARGET"] = "目標:"
+L["STRING_CUSTOM_TARGET_DESC"] = [=[這是施法者的目標。
+
+右側按鈕會列出團隊首領戰的 NPC。]=]
+L["STRING_CUSTOM_TEMPORARILY"] = " (|cFFFFC000暫時|r)"
+L["STRING_DAMAGE"] = "傷害"
+L["STRING_DAMAGE_DPS_IN"] = "受到 DPS 來自"
+L["STRING_DAMAGE_FROM"] = "受到傷害來自"
+L["STRING_DAMAGE_TAKEN_FROM"] = "承受傷害來自"
+L["STRING_DAMAGE_TAKEN_FROM2"] = "施加傷害在"
+L["STRING_DEFENSES"] = "防禦"
+L["STRING_DESCENDING"] = "遞減"
+L["STRING_DETACH_DESC"] = "分離視窗群組"
+L["STRING_DISCARD"] = "捨棄"
+L["STRING_DISPELLED"] = "移除的增益/減益"
+L["STRING_DODGE"] = "閃避"
+L["STRING_DOT"] = "(DoT)"
+L["STRING_DPS"] = "每秒傷害 (DPS)"
+L["STRING_EMPTY_SEGMENT"] = "空的片段"
+L["STRING_ENABLED"] = "已啟用"
+L["STRING_ENVIRONMENTAL_DROWNING"] = "環境 (溺水)"
+L["STRING_ENVIRONMENTAL_FALLING"] = "環境 (掉落)"
+L["STRING_ENVIRONMENTAL_FATIGUE"] = "環境 (疲勞)"
+L["STRING_ENVIRONMENTAL_FIRE"] = "環境 (著火)"
+L["STRING_ENVIRONMENTAL_LAVA"] = "環境 (岩漿)"
+L["STRING_ENVIRONMENTAL_SLIME"] = "環境 (黏液)"
+L["STRING_EQUILIZING"] = "分享首領戰資料"
+L["STRING_ERASE"] = "刪除"
+L["STRING_ERASE_DATA"] = "重置所有資料"
+L["STRING_ERASE_DATA_OVERALL"] = "重置整體資料"
+L["STRING_ERASE_IN_COMBAT"] = "目前戰鬥結束後定期清空整體資料。"
+L["STRING_EXAMPLE"] = "範例"
+L["STRING_EXPLOSION"] = "爆炸"
+L["STRING_FAIL_ATTACKS"] = "攻擊無效"
+L["STRING_FEEDBACK_CURSE_DESC"] = "在 Details! 的網頁回報問題或留言。"
+L["STRING_FEEDBACK_MMOC_DESC"] = "在 mmo-champion 討論區,我們的討論串中發文。"
+L["STRING_FEEDBACK_PREFERED_SITE"] = "選擇你喜愛的社群網站:"
+L["STRING_FEEDBACK_SEND_FEEDBACK"] = "傳送回饋"
+L["STRING_FEEDBACK_WOWI_DESC"] = "在 Details! 的專案頁面留下評論。"
+L["STRING_FIGHTNUMBER"] = "戰鬥 #"
+L["STRING_FORGE_BUTTON_ALLSPELLS"] = "所有法術"
+L["STRING_FORGE_BUTTON_ALLSPELLS_DESC"] = "列出來自玩家和 NPC 的所有法術。"
+L["STRING_FORGE_BUTTON_BWTIMERS"] = "BigWigs 計時條"
+L["STRING_FORGE_BUTTON_BWTIMERS_DESC"] = "列出來自 BigWigs 的計時器。"
+L["STRING_FORGE_BUTTON_DBMTIMERS"] = "DBM 計時條"
+L["STRING_FORGE_BUTTON_DBMTIMERS_DESC"] = "列出來自 Deadly Boss Mods 的計時器。"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS"] = "首領法術"
+L["STRING_FORGE_BUTTON_ENCOUNTERSPELLS_DESC"] = "只列出來自團隊和地城首領戰的法術。"
+L["STRING_FORGE_BUTTON_ENEMIES"] = "敵人"
+L["STRING_FORGE_BUTTON_ENEMIES_DESC"] = "列出目前這場戰鬥的敵人。"
+L["STRING_FORGE_BUTTON_PETS"] = "寵物"
+L["STRING_FORGE_BUTTON_PETS_DESC"] = "列出目前這場戰鬥的寵物。"
+L["STRING_FORGE_BUTTON_PLAYERS"] = "玩家"
+L["STRING_FORGE_BUTTON_PLAYERS_DESC"] = "列出目前這場戰鬥的玩家。"
+L["STRING_FORGE_ENABLEPLUGINS"] = "請在 Esc > 插件,載入 Details! 的相關模組。例如 Details: Tomb of Sargeras。"
+L["STRING_FORGE_FILTER_BARTEXT"] = "計量條名稱"
+L["STRING_FORGE_FILTER_CASTERNAME"] = "施法者名字"
+L["STRING_FORGE_FILTER_ENCOUNTERNAME"] = "首領戰名稱"
+L["STRING_FORGE_FILTER_ENEMYNAME"] = "敵人名字"
+L["STRING_FORGE_FILTER_OWNERNAME"] = "擁有者名字"
+L["STRING_FORGE_FILTER_PETNAME"] = "寵物名字"
+L["STRING_FORGE_FILTER_PLAYERNAME"] = "玩家名字"
+L["STRING_FORGE_FILTER_SPELLNAME"] = "法術名稱"
+L["STRING_FORGE_HEADER_BARTEXT"] = "計量條文字"
+L["STRING_FORGE_HEADER_CASTER"] = "施法者"
+L["STRING_FORGE_HEADER_CLASS"] = "職業"
+L["STRING_FORGE_HEADER_CREATEAURA"] = "建立提醒效果"
+L["STRING_FORGE_HEADER_ENCOUNTERID"] = "首領戰 ID"
+L["STRING_FORGE_HEADER_ENCOUNTERNAME"] = "首領戰名稱"
+L["STRING_FORGE_HEADER_EVENT"] = "事件"
+L["STRING_FORGE_HEADER_FLAG"] = "旗幟"
+L["STRING_FORGE_HEADER_GUID"] = "GUID"
+L["STRING_FORGE_HEADER_ICON"] = "圖示"
+L["STRING_FORGE_HEADER_ID"] = "ID"
+L["STRING_FORGE_HEADER_INDEX"] = "索引編號"
+L["STRING_FORGE_HEADER_NAME"] = "名稱"
+L["STRING_FORGE_HEADER_NPCID"] = "NPC ID"
+L["STRING_FORGE_HEADER_OWNER"] = "擁有者"
+L["STRING_FORGE_HEADER_SCHOOL"] = "屬性"
+L["STRING_FORGE_HEADER_SPELLID"] = "法術 ID"
+L["STRING_FORGE_HEADER_TIMER"] = "計時器"
+L["STRING_FORGE_TUTORIAL_DESC"] = "按下 '|cFFFFFF00建立提醒效果|r' 來瀏覽法術和首領技能警報插件的計時器,以便建立提醒效果。"
+L["STRING_FORGE_TUTORIAL_TITLE"] = "歡迎使用 Details! Forge"
+L["STRING_FORGE_TUTORIAL_VIDEO"] = "使用首領技能警報插件計時器的提醒效果範例:"
+L["STRING_FREEZE"] = "此時無法取得這個分段"
+L["STRING_FROM"] = "來自"
+L["STRING_GERAL"] = "一般"
+L["STRING_GLANCING"] = "擦過"
+L["STRING_GUILDDAMAGERANK_BOSS"] = "首領"
+L["STRING_GUILDDAMAGERANK_DATABASEERROR"] = "無法開啟 '|cFFFFFF00Details! Storage|r',請檢查看看該插件是否被停用?"
+L["STRING_GUILDDAMAGERANK_DIFF"] = "難度"
+L["STRING_GUILDDAMAGERANK_GUILD"] = "公會"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE"] = "玩家數量"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_INDIVIDUAL"] = "個人"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_PLAYER"] = "玩家"
+L["STRING_GUILDDAMAGERANK_PLAYERBASE_RAID"] = "所有玩家"
+L["STRING_GUILDDAMAGERANK_RAID"] = "團隊"
+L["STRING_GUILDDAMAGERANK_ROLE"] = "角色"
+L["STRING_GUILDDAMAGERANK_SHOWHISTORY"] = "顯示歷史記錄"
+L["STRING_GUILDDAMAGERANK_SHOWRANK"] = "顯示公會排名"
+L["STRING_GUILDDAMAGERANK_SYNCBUTTONTEXT"] = "與公會同步資料"
+L["STRING_GUILDDAMAGERANK_TUTORIAL_DESC"] = "Details! 會儲存你和你的公會在每次首領戰輸出的傷害和治療。\\n\\n勾選 '|cFFFFFF00顯示歷史記錄|r' 可以瀏覽記錄,所有戰鬥的結果都會顯示出來。\\n勾選 '|cFFFFFF00顯示公會排名|r' 會秀出所選首領的最高分數。\\n\\n如果你是第一次使用這個工具,或是請假沒有出團,可以按下 '|cFFFFFF00與公會同步資料|r' 按鈕。"
+L["STRING_GUILDDAMAGERANK_WINDOWALERT"] = "已擊殺首領! 顯示排名"
+L["STRING_HEAL"] = "治療"
+L["STRING_HEAL_ABSORBED"] = "吸收治療"
+L["STRING_HEAL_CRIT"] = "爆擊治療"
+L["STRING_HEALING_FROM"] = "受到治療來自"
+L["STRING_HEALING_HPS_FROM"] = "每秒受到治療 (HPS) 來自"
+L["STRING_HITS"] = "命中"
+L["STRING_HPS"] = "每秒治療 (HPS)"
+L["STRING_IMAGEEDIT_ALPHA"] = "透明"
+L["STRING_IMAGEEDIT_CROPBOTTOM"] = "裁切下方"
+L["STRING_IMAGEEDIT_CROPLEFT"] = "裁切左側"
+L["STRING_IMAGEEDIT_CROPRIGHT"] = "裁切右側"
+L["STRING_IMAGEEDIT_CROPTOP"] = "裁切上方"
+L["STRING_IMAGEEDIT_DONE"] = "完成"
+L["STRING_IMAGEEDIT_FLIPH"] = "水平翻轉"
+L["STRING_IMAGEEDIT_FLIPV"] = "垂直翻轉"
+L["STRING_INFO_TAB_AVOIDANCE"] = "迴避"
+L["STRING_INFO_TAB_COMPARISON"] = "比較"
+L["STRING_INFO_TAB_SUMMARY"] = "總結"
+L["STRING_INFO_TUTORIAL_COMPARISON1"] = "點一下 |cFFFFDD00比較|r 標籤頁面查看相同職業玩家之間的比較。"
+L["STRING_INSTANCE_CHAT"] = "副本頻道"
+L["STRING_INSTANCE_LIMIT"] = "已達視窗數量的上限,可以在選項設定中更改上限,也可以從 (#) 視窗選項重新開啟已關閉的視窗。"
+L["STRING_INTERFACE_OPENOPTIONS"] = "開啟設定選項"
+L["STRING_ISA_PET"] = "這是寵物"
+L["STRING_KEYBIND_BOOKMARK"] = "書籤"
+L["STRING_KEYBIND_BOOKMARK_NUMBER"] = "書籤 #%s"
+L["STRING_KEYBIND_RESET_SEGMENTS"] = "重置片段"
+L["STRING_KEYBIND_SCROLL_DOWN"] = "向下捲動所有視窗"
+L["STRING_KEYBIND_SCROLL_UP"] = "向上捲動所有視窗"
+L["STRING_KEYBIND_SCROLLING"] = "捲動"
+L["STRING_KEYBIND_SEGMENTCONTROL"] = "片段"
+L["STRING_KEYBIND_TOGGLE_WINDOW"] = "切換顯示視窗 #%s"
+L["STRING_KEYBIND_TOGGLE_WINDOWS"] = "切換顯示全部"
+L["STRING_KEYBIND_WINDOW_CONTROL"] = "視窗"
+L["STRING_KEYBIND_WINDOW_REPORT"] = "報告顯示在視窗 #%s 的資料。"
+L["STRING_KEYBIND_WINDOW_REPORT_HEADER"] = "報告資料"
+L["STRING_KILLED"] = "擊殺"
+L["STRING_LAST_COOLDOWN"] = "最後的冷卻時間"
+L["STRING_LEFT"] = "左"
+L["STRING_LEFT_CLICK_SHARE"] = "點一下左鍵來報告。"
+L["STRING_LEFT_TO_RIGHT"] = "由左到右"
+L["STRING_LOCK_DESC"] = "鎖定或解鎖視窗"
+L["STRING_LOCK_WINDOW"] = "鎖定"
+L["STRING_MASTERY"] = "精通"
+L["STRING_MAXIMUM"] = "最大化"
+L["STRING_MAXIMUM_SHORT"] = "最大"
+L["STRING_MEDIA"] = "媒體"
+L["STRING_MELEE"] = "近戰"
+L["STRING_MEMORY_ALERT_BUTTON"] = "我知道了"
+L["STRING_MEMORY_ALERT_TEXT1"] = "Details! 會使用大量的記憶體,|cFFFF8800但是與常見的說法相反|r,插件的記憶體使用量|cFFFF8800不會影響|r遊戲效能或 FPS。"
+L["STRING_MEMORY_ALERT_TEXT2"] = "所以,當你看到 Details! 使用了大量的記憶體,請不要緊張 :D |cFFFF8800沒事的!|r 部分的記憶體甚至是用來快取資料,讓插件執行更快速。"
+L["STRING_MEMORY_ALERT_TEXT3"] = "然而,如果你想要知道|cFFFF8800哪個插件 '較吃效能'|r 或者會降低 FPS,可以安裝插件: '|cFFFFFF00AddOns Cpu Usage|r'。"
+L["STRING_MEMORY_ALERT_TITLE"] = "請仔細閱讀!"
+L["STRING_MENU_CLOSE_INSTANCE"] = "關閉這個視窗"
+L["STRING_MENU_CLOSE_INSTANCE_DESC"] = "被關閉的視窗只是閒置,隨時都可以使用視窗控制選單重新開啟。"
+L["STRING_MENU_CLOSE_INSTANCE_DESC2"] = "要永久刪除視窗,請看設定選項中的其他部分。"
+L["STRING_MENU_INSTANCE_CONTROL"] = "視窗控制"
+L["STRING_MINIMAP_TOOLTIP1"] = "|cFFCFCFCF左鍵|r: 開啟設定選項"
+L["STRING_MINIMAP_TOOLTIP11"] = "|cFFCFCFCF左鍵|r: 清空所有片段"
+L["STRING_MINIMAP_TOOLTIP12"] = "|cFFCFCFCF左鍵|r: 顯示/隱藏視窗"
+L["STRING_MINIMAP_TOOLTIP2"] = "|cFFCFCFCF右鍵|r: 快速選單"
+L["STRING_MINIMAPMENU_CLOSEALL"] = "全部關閉"
+L["STRING_MINIMAPMENU_HIDEICON"] = "隱藏小地圖按鈕"
+L["STRING_MINIMAPMENU_LOCK"] = "鎖定"
+L["STRING_MINIMAPMENU_NEWWINDOW"] = "新增視窗"
+L["STRING_MINIMAPMENU_REOPENALL"] = "全部重開"
+L["STRING_MINIMAPMENU_UNLOCK"] = "解鎖"
+L["STRING_MINIMUM"] = "最小化"
+L["STRING_MINIMUM_SHORT"] = "最小"
+L["STRING_MINITUTORIAL_BOOKMARK1"] = "右鍵點擊視窗中的任何區域打開書籤!"
+L["STRING_MINITUTORIAL_BOOKMARK2"] = "書籤可以快速顯示最愛的視窗。"
+L["STRING_MINITUTORIAL_BOOKMARK3"] = "右鍵點擊關閉書籤面板。"
+L["STRING_MINITUTORIAL_BOOKMARK4"] = "不再顯示"
+L["STRING_MINITUTORIAL_CLOSECTRL1"] = "|cFFFFFF00Ctrl + 右鍵點擊|r 關閉視窗!"
+L["STRING_MINITUTORIAL_CLOSECTRL2"] = "要重新打開視窗,請到 模式選單 -> 視窗控制 或 選項面板。"
+L["STRING_MINITUTORIAL_OPTIONS_PANEL1"] = "正在編輯哪個視窗。"
+L["STRING_MINITUTORIAL_OPTIONS_PANEL2"] = "勾選時,群組中的所有視窗都會跟著變更。"
+L["STRING_MINITUTORIAL_OPTIONS_PANEL3"] = [=[要建立群組,請將 視窗 #2 拖曳到 視窗 #1 旁。
+
+要解散群組,請按下 |cFFFFFF00取消群組|r 按鈕。]=]
+L["STRING_MINITUTORIAL_OPTIONS_PANEL4"] = "建立測試條來測試設定。"
+L["STRING_MINITUTORIAL_OPTIONS_PANEL5"] = "啟用編輯群組時,群組中的所有視窗都會變更。"
+L["STRING_MINITUTORIAL_OPTIONS_PANEL6"] = "在此選擇來改變視窗外觀。"
+L["STRING_MINITUTORIAL_WINDOWS1"] = [=[你剛建立了視窗群組。
+
+點一下小鎖圖示來取消群組。]=]
+L["STRING_MINITUTORIAL_WINDOWS2"] = [=[視窗已被鎖定。
+
+拖曳標題列可以上下拉伸。]=]
+L["STRING_MIRROR_IMAGE"] = "鏡像"
+L["STRING_MISS"] = "未命中"
+L["STRING_MODE_ALL"] = "所有的"
+L["STRING_MODE_GROUP"] = "標準"
+L["STRING_MODE_OPENFORGE"] = "光環清單"
+L["STRING_MODE_PLUGINS"] = "外掛套件"
+L["STRING_MODE_RAID"] = "外掛套件: 團隊"
+L["STRING_MODE_SELF"] = "外掛套件: 單人"
+L["STRING_MORE_INFO"] = "查看右邊的方框來獲得更多資訊。"
+L["STRING_MULTISTRIKE"] = "雙擊"
+L["STRING_MULTISTRIKE_HITS"] = "雙擊命中"
+L["STRING_MUSIC_DETAILS_ROBERTOCARLOS"] = [=[無法忘記的
+你和我的點點滴滴
+Details]=]
+L["STRING_NEWROW"] = "正在等待更新..."
+L["STRING_NEWS_REINSTALL"] = "更新後有問題嗎? 請試試輸入指令 /details reinstall"
+L["STRING_NEWS_TITLE"] = "更新資訊"
+L["STRING_NO"] = "沒有"
+L["STRING_NO_DATA"] = "資料已被清空"
+L["STRING_NO_SPELL"] = "沒有已使用的法術"
+L["STRING_NO_TARGET"] = "沒有找到目標。"
+L["STRING_NO_TARGET_BOX"] = "沒有可用目標"
+L["STRING_NOCLOSED_INSTANCES"] = [=[沒有已關閉的視窗,
+點一下建立新視窗。]=]
+L["STRING_NOLAST_COOLDOWN"] = "沒有已使用的冷卻"
+L["STRING_NOMORE_INSTANCES"] = [=[已達最多視窗數量的上限。
+請在選項面板中更改限制。]=]
+L["STRING_NORMAL_HITS"] = "一般命中"
+L["STRING_NUMERALSYSTEM"] = "數字系統"
+L["STRING_NUMERALSYSTEM_ARABIC_MYRIAD_EASTASIA"] = "用於東方亞洲國家,分成千和萬。"
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN"] = "西方"
+L["STRING_NUMERALSYSTEM_ARABIC_WESTERN_DESC"] = "最常用的方式,分成千和百萬。"
+L["STRING_NUMERALSYSTEM_DESC"] = [=[選擇要使用的數字縮寫系統
+]=]
+L["STRING_NUMERALSYSTEM_MYRIAD_EASTASIA"] = "東方亞洲"
+L["STRING_OFFHAND_HITS"] = "副手"
+L["STRING_OPTIONS_3D_LALPHA_DESC"] = [=[調整低階模型的透明度。
+|cFFFFFF00重要|r: 某些模型無視透明度。]=]
+L["STRING_OPTIONS_3D_LANCHOR"] = "低階3D模型:"
+L["STRING_OPTIONS_3D_LENABLED_DESC"] = "啟用或是禁用在計量條的後方的3D模型框架使用率。"
+L["STRING_OPTIONS_3D_LSELECT_DESC"] = "選擇哪個模型可以被使用在低階模型計量條。"
+L["STRING_OPTIONS_3D_SELECT"] = "選擇模型"
+L["STRING_OPTIONS_3D_UALPHA_DESC"] = [=[調整高階模型的透明度。
+|cFFFFFF00重要|r: 某些模型無視透明度。]=]
+L["STRING_OPTIONS_3D_UANCHOR"] = "高階3D模型:"
+L["STRING_OPTIONS_3D_UENABLED_DESC"] = "啟用或是禁用在計量條的上方的3D模型框架使用率。"
+L["STRING_OPTIONS_3D_USELECT_DESC"] = "選擇哪個模型可以被使用在高階模型計量條。"
+L["STRING_OPTIONS_ADVANCED"] = "進階"
+L["STRING_OPTIONS_ALPHAMOD_ANCHOR"] = "自動隱藏:"
+L["STRING_OPTIONS_ALWAYS_USE"] = "使用在所有角色"
+L["STRING_OPTIONS_ALWAYS_USE_DESC"] = "當啟用後,所有角色會使用此選擇的設定檔,否則,會顯示一個詢問要使用哪個設定檔的面板。"
+L["STRING_OPTIONS_ALWAYSSHOWPLAYERS"] = "顯示未組入隊的玩家"
+L["STRING_OPTIONS_ALWAYSSHOWPLAYERS_DESC"] = "當使用預設的標準模式時, 顯示玩家名字, 即使他們不在你的隊伍。"
+L["STRING_OPTIONS_ANCHOR"] = "側"
+L["STRING_OPTIONS_ANIMATEBARS"] = "動畫計量條"
+L["STRING_OPTIONS_ANIMATEBARS_DESC"] = "套用動畫到所有計量條"
+L["STRING_OPTIONS_ANIMATESCROLL"] = "滾動條動畫化"
+L["STRING_OPTIONS_ANIMATESCROLL_DESC"] = "當啟用時,當出現或隱藏滾動條時使用動畫效果"
+L["STRING_OPTIONS_APPEARANCE"] = "外觀"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT"] = "標題列文字設定"
+L["STRING_OPTIONS_ATTRIBUTE_TEXT_DESC"] = "這些選項為視窗標題列的設定"
+L["STRING_OPTIONS_AUTO_SWITCH"] = "所有角色 |cFFFFAA00(戰鬥中)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_COMBAT"] = "|cFFFFAA00(戰鬥中)|r"
+L["STRING_OPTIONS_AUTO_SWITCH_DAMAGER_DESC"] = "當為傷害專精時,這視窗顯示選定的屬性或插件"
+L["STRING_OPTIONS_AUTO_SWITCH_DESC"] = [=[當你進入戰鬥時,這視窗顯示選定的屬性或插件
+|cFFFFFF00重要|r: 選定的個別角色屬性將會覆蓋已選擇的屬性]=]
+L["STRING_OPTIONS_AUTO_SWITCH_HEALER_DESC"] = "當為治療專精時,這視窗顯示選定的屬性或插件"
+L["STRING_OPTIONS_AUTO_SWITCH_TANK_DESC"] = "當為坦克專精時,這視窗顯示選定的屬性或插件"
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE"] = "清除後"
+L["STRING_OPTIONS_AUTO_SWITCH_WIPE_DESC"] = "在團隊首領戰鬥後,這視窗會自動顯示該屬性"
+L["STRING_OPTIONS_AVATAR"] = "選擇頭像"
+L["STRING_OPTIONS_AVATAR_ANCHOR"] = "身分:"
+L["STRING_OPTIONS_AVATAR_DESC"] = "頭像也傳給公會成員,並顯示在玩家視窗的工具提示上"
+L["STRING_OPTIONS_BAR_BACKDROP_ANCHOR"] = "邊框:"
+L["STRING_OPTIONS_BAR_BACKDROP_COLOR_DESC"] = "改變邊框顏色"
+L["STRING_OPTIONS_BAR_BACKDROP_ENABLED_DESC"] = "啟用或禁用行的邊框"
+L["STRING_OPTIONS_BAR_BACKDROP_SIZE_DESC"] = "調整邊框大小"
+L["STRING_OPTIONS_BAR_BACKDROP_TEXTURE_DESC"] = "改變邊框外觀"
+L["STRING_OPTIONS_BAR_BCOLOR"] = "背景顏色"
+L["STRING_OPTIONS_BAR_BTEXTURE_DESC"] = "在頂部材質下方的材質總是和視窗寬度一樣"
+L["STRING_OPTIONS_BAR_COLOR_DESC"] = [=[該材質的顏色和透明度
+
+|cFFFFFF00重要|r: 當使用職業顏色時,顏色選擇將被忽略。]=]
+L["STRING_OPTIONS_BAR_COLORBYCLASS"] = "使用職業顏色"
+L["STRING_OPTIONS_BAR_COLORBYCLASS_DESC"] = "當啟用時,總是使用玩家職業顏色的紋理"
+L["STRING_OPTIONS_BAR_FOLLOWING"] = "總是顯示我"
+L["STRING_OPTIONS_BAR_FOLLOWING_ANCHOR"] = "玩家計量條:"
+L["STRING_OPTIONS_BAR_FOLLOWING_DESC"] = "當啟用時,你的計量條永遠會顯示即使你不是在排名前頭的玩家。"
+L["STRING_OPTIONS_BAR_GROW"] = "計量條增長方向"
+L["STRING_OPTIONS_BAR_GROW_DESC"] = "計量條從視窗的上方或是下方開始增長。"
+L["STRING_OPTIONS_BAR_HEIGHT"] = "高度"
+L["STRING_OPTIONS_BAR_HEIGHT_DESC"] = "增加或減少計量條高度"
+L["STRING_OPTIONS_BAR_ICONFILE"] = "圖標檔案"
+L["STRING_OPTIONS_BAR_ICONFILE_DESC"] = [=[自定義圖標路徑
+
+圖檔副檔名需要是.tag,256*256畫素與alpha通道。]=]
+L["STRING_OPTIONS_BAR_ICONFILE_DESC2"] = "選擇圖示包使用。"
+L["STRING_OPTIONS_BAR_ICONFILE1"] = "沒有圖示"
+L["STRING_OPTIONS_BAR_ICONFILE2"] = "預設"
+L["STRING_OPTIONS_BAR_ICONFILE3"] = "預設(黑白)"
+L["STRING_OPTIONS_BAR_ICONFILE4"] = "預設(透明)"
+L["STRING_OPTIONS_BAR_ICONFILE5"] = "圓形圖示"
+L["STRING_OPTIONS_BAR_ICONFILE6"] = "預設(透明黑白)"
+L["STRING_OPTIONS_BAR_SPACING"] = "間距"
+L["STRING_OPTIONS_BAR_SPACING_DESC"] = "每個計量條的間距"
+L["STRING_OPTIONS_BAR_TEXTURE_DESC"] = "使用在頂部計量條的材質"
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM"] = "自定文字格式"
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM_DESC"] = "當啟用時,以方框中的規則格式化左邊的文字"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2"] = ""--]]
+L["STRING_OPTIONS_BARLEFTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{data1}|r: 通常代表了玩家的位置編號。
+
+|cFFFFFF00{data2}|r: 總是玩家名字。
+
+|cFFFFFF00{data3}|r: 在某些情況下,此值代表玩家的聲望或角色標誌。
+
+|cFFFFFF00{func}|r: 執行一個自定義的Lua函數來增加回傳值到語法中。
+例如:
+{func return 'hello azeroth'}
+
+|cFFFFFF00Escape Sequences|r: 用它來改變顏色或加入材質。搜尋“UI跳脫序列”('UI escape sequences')以獲取更多資訊。
+指令必是英文Lua語法,如套用{資料1},UI是看不明,必須使用{data1},請參考文字列編緝器格式]=]
+L["STRING_OPTIONS_BARORIENTATION"] = "計量條填滿方向"
+L["STRING_OPTIONS_BARORIENTATION_DESC"] = "計量條往哪個方向填滿。"
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM"] = "自定文字格式"
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM_DESC"] = "當啟用時,以方框中的規則格式化右邊的文字"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2"] = ""--]]
+L["STRING_OPTIONS_BARRIGHTTEXTCUSTOM2_DESC"] = [=[|cFFFFFF00{data1}|r: 第一次數據測試,通常表示此數據已完成。
+
+|cFFFFFF00{data2}|r: 第二次數據測試,大多時候通常代表每秒平均。
+
+|cFFFFFF00{data3}|r: 第三次數據測試,正常就是百分比。
+
+|cFFFFFF00{func}|r: 執行一個自定義的Lua函數來增加回傳值到語法中。
+Example:
+{func return 'hello azeroth'}
+
+|cFFFFFF00Escape Sequences|r: 用它來改變顏色或加入材質。搜尋“UI跳脫序列”('UI escape sequences')以獲取更多資訊。
+指令必是英文Lua語法,如套用{資料1},UI是看不明,必須使用{data1},請參考文字列編緝器格式]=]
+L["STRING_OPTIONS_BARS"] = "計量條一般設定"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE"] = "自訂材質檔案"
+L["STRING_OPTIONS_BARS_CUSTOM_TEXTURE_DESC"] = [=[
+|cFFFFFF00重要|r: 圖片必須為256x32像素。]=]
+L["STRING_OPTIONS_BARS_DESC"] = "這些選項設定計量條外觀"
+L["STRING_OPTIONS_BARSORT"] = "計量條排序"
+L["STRING_OPTIONS_BARSORT_DESC"] = "遞增或是遞減計量條排序。"
+L["STRING_OPTIONS_BARSTART"] = "計量條在圖示之後"
+L["STRING_OPTIONS_BARSTART_DESC"] = [=[讓頂部材質一開始出現在圖標的左邊而不是右邊
+使用帶有透明區域的圖標集時,這是非常有用的]=]
+L["STRING_OPTIONS_BARUR_ANCHOR"] = "快速更新:"
+L["STRING_OPTIONS_BARUR_DESC"] = "當啟用以後,DPS與HPS值會更新的比一般要快一點。"
+L["STRING_OPTIONS_BG_ALL_ALLY"] = "顯示全部"
+L["STRING_OPTIONS_BG_ALL_ALLY_DESC"] = [=[當啟用時,敵方玩家也會顯示在隊伍模式中。
+|cFFFFFF00重要|r: 改變會在下次進入戰鬥時套用。]=]
+L["STRING_OPTIONS_BG_ANCHOR"] = "戰場:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_UNIQUE_SEGMENT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_BG_UNIQUE_SEGMENT_DESC"] = ""--]]
+L["STRING_OPTIONS_CAURAS"] = "獲得光環"
+L["STRING_OPTIONS_CAURAS_DESC"] = [=[啟用獲得:
+
+- |cFFFFFF00增益持續時間|r
+- |cFFFFFF00减益持續時間|r
+- |cFFFFFF00空白區|r
+-|cFFFFFF00 冷卻|r]=]
+L["STRING_OPTIONS_CDAMAGE"] = "獲得傷害"
+L["STRING_OPTIONS_CDAMAGE_DESC"] = [=[啟用獲得:
+
+- |cFFFFFF00造成傷害|r
+- |cFFFFFF00每秒傷害|r
+- |cFFFFFF00隊友誤傷|r
+- |cFFFFFF00承受傷害|r]=]
+L["STRING_OPTIONS_CENERGY"] = "獲得能源"
+L["STRING_OPTIONS_CENERGY_DESC"] = [=[啟用獲得:
+
+- |cFFFFFF00法力恢復|r
+- |cFFFFFF00怒氣生成|r
+- |cFFFFFF00能量生成|r
+- |cFFFFFF00符文能量生成|r]=]
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS"] = "修改職業顏色"
+L["STRING_OPTIONS_CHANGE_CLASSCOLORS_DESC"] = "選擇職業的新顏色。"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_CHANGECOLOR"] = ""--]]
+L["STRING_OPTIONS_CHANGELOG"] = "版本註釋"
+L["STRING_OPTIONS_CHART_ADD"] = "增加數據"
+L["STRING_OPTIONS_CHART_ADD2"] = "增加"
+L["STRING_OPTIONS_CHART_ADDAUTHOR"] = "作者:"
+L["STRING_OPTIONS_CHART_ADDCODE"] = "編碼:"
+L["STRING_OPTIONS_CHART_ADDICON"] = "圖標:"
+L["STRING_OPTIONS_CHART_ADDNAME"] = "名子:"
+L["STRING_OPTIONS_CHART_ADDVERSION"] = "版本:"
+L["STRING_OPTIONS_CHART_AUTHOR"] = "作者"
+L["STRING_OPTIONS_CHART_AUTHORERROR"] = "作者名稱無效"
+L["STRING_OPTIONS_CHART_CANCEL"] = "刪除"
+L["STRING_OPTIONS_CHART_CLOSE"] = "關閉"
+L["STRING_OPTIONS_CHART_CODELOADED"] = "編碼已被載入但無法顯示"
+L["STRING_OPTIONS_CHART_EDIT"] = "編輯編碼"
+L["STRING_OPTIONS_CHART_EXPORT"] = "匯出"
+L["STRING_OPTIONS_CHART_FUNCERROR"] = "無效的功能"
+L["STRING_OPTIONS_CHART_ICON"] = "圖標"
+L["STRING_OPTIONS_CHART_IMPORT"] = "匯入"
+L["STRING_OPTIONS_CHART_IMPORTERROR"] = "無效的匯入字串"
+L["STRING_OPTIONS_CHART_NAME"] = "名稱"
+L["STRING_OPTIONS_CHART_NAMEERROR"] = "無效的名稱"
+L["STRING_OPTIONS_CHART_PLUGINWARNING"] = "安裝Chart Viewer組件來顯示自訂圖表。"
+L["STRING_OPTIONS_CHART_REMOVE"] = "移除"
+L["STRING_OPTIONS_CHART_SAVE"] = "儲存"
+L["STRING_OPTIONS_CHART_VERSION"] = "版本"
+L["STRING_OPTIONS_CHART_VERSIONERROR"] = "版本無效"
+L["STRING_OPTIONS_CHEAL"] = "獲得治療"
+L["STRING_OPTIONS_CHEAL_DESC"] = [=[啟用獲得:
+
+- |cFFFFFF00造成治療|r
+- |cFFFFFF00吸收|r
+- |cFFFFFF00每秒治療|r
+- |cFFFFFF00過量治療|r
+- |cFFFFFF00承受治療|r
+- |cFFFFFF00敵方治療|r
+- |cFFFFFF00減傷|r]=]
+L["STRING_OPTIONS_CLASSCOLOR_MODIFY"] = "修改職業顏色"
+L["STRING_OPTIONS_CLASSCOLOR_RESET"] = "右點擊重置"
+L["STRING_OPTIONS_CLEANUP"] = "自動刪除垃圾片段"
+L["STRING_OPTIONS_CLEANUP_DESC"] = "當啟用時,超出兩個片段後,垃圾片段會被自動移除"
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS"] = "點擊開啟選單"
+L["STRING_OPTIONS_CLICK_TO_OPEN_MENUS_DESC"] = [=[當懸停在標題條按鈕不會顯示他們的選單。
+反而你需要點擊按鈕去開啟。]=]
+L["STRING_OPTIONS_CLOUD"] = "雲端捕獲"
+L["STRING_OPTIONS_CLOUD_DESC"] = "當啟用時,停用收集者的資料而收集其他團隊成員。"
+L["STRING_OPTIONS_CMISC"] = "收集雜項"
+L["STRING_OPTIONS_CMISC_DESC"] = [=[啟用捕獲:
+
+- |cFFFFFF00打破控場|r
+- |cFFFFFF00驅散|r
+- |cFFFFFF00中斷|r
+- |cFFFFFF00復生|r
+- |cFFFFFF00死亡|r]=]
+L["STRING_OPTIONS_COLORANDALPHA"] = "顏色和透明度"
+L["STRING_OPTIONS_COLORFIXED"] = "固定顏色"
+L["STRING_OPTIONS_COMBAT_ALPHA"] = "當"
+L["STRING_OPTIONS_COMBAT_ALPHA_1"] = "None"
+L["STRING_OPTIONS_COMBAT_ALPHA_2"] = "戰鬥中"
+L["STRING_OPTIONS_COMBAT_ALPHA_3"] = "脫離戰鬥"
+L["STRING_OPTIONS_COMBAT_ALPHA_4"] = "當不在隊伍時"
+L["STRING_OPTIONS_COMBAT_ALPHA_5"] = "當不在副本時"
+L["STRING_OPTIONS_COMBAT_ALPHA_6"] = "當在副本時"
+L["STRING_OPTIONS_COMBAT_ALPHA_7"] = "團隊除錯"
+L["STRING_OPTIONS_COMBAT_ALPHA_DESC"] = [=[選擇戰鬥時的視窗透明度
+
+|cFFFFFF00不變|r: 不修改透明度。
+
+|cFFFFFF00戰鬥中|r: 當進入戰鬥時,顯示在視窗上的效果
+
+|cFFFFFF00脫離戰鬥|r: 只要是在非戰鬥中的視窗效果
+
+|cFFFFFF00離開隊伍|r: 當不在團隊或隊伍中,所顯示的視窗效果
+
+|cFFFFFF00重要|r: 自動透明度功能會覆蓋目前的設定]=]
+L["STRING_OPTIONS_COMBATTWEEKS"] = "戰鬥微調"
+L["STRING_OPTIONS_COMBATTWEEKS_DESC"] = "設定Details!如何調整一些戰鬥數據的細節。"
+L["STRING_OPTIONS_CONFIRM_ERASE"] = "您想要刪除數據嗎?"
+L["STRING_OPTIONS_CUSTOMSPELL_ADD"] = "增加技能"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE"] = "編輯技能設定"
+L["STRING_OPTIONS_CUSTOMSPELLTITLE_DESC"] = "這面板允許你修改技能名稱跟圖示"
+L["STRING_OPTIONS_DATABROKER"] = "數據整理:"
+L["STRING_OPTIONS_DATABROKER_TEXT"] = "文字"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD1"] = "玩家造成傷害"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD2"] = "玩家造成每秒傷害"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD3"] = "傷害排名"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD4"] = "傷害差距"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD5"] = "玩家造成治療"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD6"] = "玩家造成每秒治療"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD7"] = "治療排名"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD8"] = "治療差距"
+L["STRING_OPTIONS_DATABROKER_TEXT_ADD9"] = "經過戰鬥時間"
+L["STRING_OPTIONS_DATABROKER_TEXT1_DESC"] = [=[|cFFFFFF00{dmg}|r: 玩家造成傷害。
+
+|cFFFFFF00{dps}|r: 玩家造成每秒傷害。
+
+|cFFFFFF00{dpos}|r: 排序團隊或隊伍成員的傷害排名。
+
+|cFFFFFF00{ddiff}|r: 你和第一名的傷害差距。
+
+|cFFFFFF00{heal}|r: 玩家造成治療。
+
+|cFFFFFF00{hps}|r: 玩家造成每秒治療。
+
+|cFFFFFF00{hpos}|r: 排序團隊或隊伍成員的治療排名。
+
+|cFFFFFF00{hdiff}|r: 你和第一名的治療差距。
+
+|cFFFFFF00{time}|r: 經過戰鬥時間。]=]
+L["STRING_OPTIONS_DATACHARTTITLE"] = "建立定時數據的圖表"
+L["STRING_OPTIONS_DATACHARTTITLE_DESC"] = "這面板允許你增加創建圖表的自訂資料"
+L["STRING_OPTIONS_DATACOLLECT_ANCHOR"] = "資料形式:"
+L["STRING_OPTIONS_DEATHLIMIT"] = "死亡事件數量"
+L["STRING_OPTIONS_DEATHLIMIT_DESC"] = [=[設定死亡顯示的事件數量。
+
+|cFFFFFF00重要|r: 只套用在變更過後新的死亡。]=]
+L["STRING_OPTIONS_DEATHLOG_MINHEALING"] = "死亡日誌最小治療"
+L["STRING_OPTIONS_DEATHLOG_MINHEALING_DESC"] = [=[死亡日誌在這個閾值下不會顯示治療。
+
+|cFFFFFF00提示|r:按右鍵可手動輸入此值。]=]
+L["STRING_OPTIONS_DESATURATE_MENU"] = "降低飽和度"
+L["STRING_OPTIONS_DESATURATE_MENU_DESC"] = "啟用這個選項,所有工具列上的選單圖標會變成黑跟白"
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW"] = "禁用'全部顯示'選單"
+L["STRING_OPTIONS_DISABLE_ALLDISPLAYSWINDOW_DESC"] = [=[如果啟用,右鍵單擊標題欄會顯示您的書籤。
+選單面板->標題列:一般->關閉全部顯示選單且打開書籤]=]
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT"] = "禁用計量條明亮互動"
+L["STRING_OPTIONS_DISABLE_BARHIGHLIGHT_DESC"] = "鼠標懸停在計量條不會使其更明亮。"
+L["STRING_OPTIONS_DISABLE_GROUPS"] = "禁用群組"
+L["STRING_OPTIONS_DISABLE_GROUPS_DESC"] = "當放置在彼此附近時, 視窗不會再進行合組。"
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE"] = "停用調整大小按鈕"
+L["STRING_OPTIONS_DISABLE_LOCK_RESIZE_DESC"] = "將鼠標懸停在窗口上時,不會顯示調整大小,鎖定/解鎖和取消組合按鈕。"
+L["STRING_OPTIONS_DISABLE_RESET"] = "禁用重置按鈕點擊"
+L["STRING_OPTIONS_DISABLE_RESET_DESC"] = "啟用後,點擊重置按鈕將不起作用,必須選擇重置其工具提示菜單中的數據。"
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON"] = "禁用拉伸按鈕"
+L["STRING_OPTIONS_DISABLE_STRETCH_BUTTON_DESC"] = "啟用此選項時不會顯示 \"拉伸\" 按鈕。"
+L["STRING_OPTIONS_DISABLED_RESET"] = "通過此按鈕重置現時已禁用, 請在 \"工具提示\" 功能表中選擇它。"
+L["STRING_OPTIONS_DTAKEN_EVERYTHING"] = "高階傷害取樣"
+L["STRING_OPTIONS_DTAKEN_EVERYTHING_DESC"] = "受到傷害將一直顯示與 |cFFFFFF00全部|r 模式。"
+L["STRING_OPTIONS_ED"] = "刪除數據"
+L["STRING_OPTIONS_ED_DESC"] = [=[|cFFFFFF00手動|r: 使用者需要點擊重置按鈕。
+
+|cFFFFFF00提示|r: 進入新副本時詢問是否重置。
+
+|cFFFFFF00自動|r: 進入新副本時清除數據。]=]
+L["STRING_OPTIONS_ED1"] = "手動"
+L["STRING_OPTIONS_ED2"] = "提示"
+L["STRING_OPTIONS_ED3"] = "自動"
+L["STRING_OPTIONS_EDITIMAGE"] = "編輯圖片"
+L["STRING_OPTIONS_EDITINSTANCE"] = "編輯視窗:"
+L["STRING_OPTIONS_ERASECHARTDATA"] = "刪除圖表"
+L["STRING_OPTIONS_ERASECHARTDATA_DESC"] = "登出時,所有戰鬥中收集的圖表資料會被刪除"
+L["STRING_OPTIONS_EXTERNALS_TITLE"] = "外部小工具"
+L["STRING_OPTIONS_EXTERNALS_TITLE2"] = "這些選項控制許多外部小工具的作用"
+L["STRING_OPTIONS_GENERAL"] = "一般設定"
+L["STRING_OPTIONS_GENERAL_ANCHOR"] = "一般:"
+L["STRING_OPTIONS_HIDE_ICON"] = "隱藏圖標"
+L["STRING_OPTIONS_HIDE_ICON_DESC"] = [=[當啟用時,不顯示目前所選擇的圖標
+
+|cFFFFFF00重要|r: 啟用圖標後,强烈建議調整標題文字的位置]=]
+L["STRING_OPTIONS_HIDECOMBATALPHA_DESC"] = [=[你的角色符合對應的規則時改變透明度
+
+|cFFFFFF00無|r: 完全隱藏,無法在視窗內動作。
+
+|cFFFFFF001 - 100|r: 不隐藏,您可以在視窗內改變透明度]=]
+L["STRING_OPTIONS_HOTCORNER"] = "顯示按鈕"
+L["STRING_OPTIONS_HOTCORNER_ACTION"] = "左鍵點擊"
+L["STRING_OPTIONS_HOTCORNER_ACTION_DESC"] = "當左鍵點擊後選擇Hotcorner bar要做甚麼"
+L["STRING_OPTIONS_HOTCORNER_ANCHOR"] = "Hotcorner:"
+L["STRING_OPTIONS_HOTCORNER_DESC"] = "顯示或隱藏Hotcorner面板的按鈕"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK"] = "啟用快速點擊"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_DESC"] = [=[啟用或禁用Hotcorners快速點擊功能
+
+Quick button is localized at the further top left pixel,並從任一處移動你的滑鼠到這, 點擊後設定左上角的動作將可被執行]=]
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC"] = "快速點擊"
+L["STRING_OPTIONS_HOTCORNER_QUICK_CLICK_FUNC_DESC"] = "當Hotcorner的快速按钮被點擊時選擇做甚麼"
+L["STRING_OPTIONS_IGNORENICKNAME"] = "忽略全部暱稱及自定頭像"
+L["STRING_OPTIONS_IGNORENICKNAME_DESC"] = "如果開啟,您公會的成員所設定的暱稱及頭像將會被忽略。"
+L["STRING_OPTIONS_ILVL_TRACKER"] = "裝備等級追縱器:"
+L["STRING_OPTIONS_ILVL_TRACKER_DESC"] = [=[當啟用和退出戰鬥, 插件查詢和追蹤在團隊中玩家裝備等級。
+
+如果禁用, 它仍會從其他外掛程式的查詢或手動檢查時讀取其他玩家裝備等級。]=]
+L["STRING_OPTIONS_ILVL_TRACKER_TEXT"] = "啟用"
+L["STRING_OPTIONS_INSTANCE_ALPHA2"] = "背景顏色"
+L["STRING_OPTIONS_INSTANCE_ALPHA2_DESC"] = "這選項可讓你改變時窗背景顏色"
+L["STRING_OPTIONS_INSTANCE_BACKDROP"] = "背景紋理"
+L["STRING_OPTIONS_INSTANCE_BACKDROP_DESC"] = "選擇這個視窗使用的背景紋理"
+L["STRING_OPTIONS_INSTANCE_COLOR"] = "視窗顏色"
+L["STRING_OPTIONS_INSTANCE_COLOR_DESC"] = [=[變更視窗的顏色和透明度
+
+|cFFFFFF00重要|r: 這裡選擇的透明值會被複寫,當|cFFFFFF00Auto Transparency|r 值啟用時
+
+|cFFFFFF00重要|r: 選擇的窗口颜色會覆盖任何自訂的狀態欄]=]
+L["STRING_OPTIONS_INSTANCE_CURRENT"] = "自動轉換到目前"
+L["STRING_OPTIONS_INSTANCE_CURRENT_DESC"] = "不管何時進入戰鬥,這個視窗會自動切換到目前的片段"
+L["STRING_OPTIONS_INSTANCE_DELETE"] = "刪除"
+L["STRING_OPTIONS_INSTANCE_DELETE_DESC"] = [=[永久移除一個窗口。
+在移除過程中你的遊戲界面可能會重載。]=]
+L["STRING_OPTIONS_INSTANCE_SKIN"] = "皮膚"
+L["STRING_OPTIONS_INSTANCE_SKIN_DESC"] = "基於一個皮膚主題來調整窗口效果"
+L["STRING_OPTIONS_INSTANCE_STATUSBAR_ANCHOR"] = "狀態條:"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR"] = "顏色及透明度"
+L["STRING_OPTIONS_INSTANCE_STATUSBARCOLOR_DESC"] = [=[選擇狀態條的顏色。
+
+|cFFFFFF00重要|r: 這個選項將會覆蓋在 窗口顏色 中設定的顏色及透明度設置。]=]
+L["STRING_OPTIONS_INSTANCE_STRATA"] = "圖層階級"
+L["STRING_OPTIONS_INSTANCE_STRATA_DESC"] = [=[選擇框架將放置在的圖層高度。
+
+低層是預設的, 使視窗保持在大多數其他介面面板的後面。
+
+使用高層視窗可能會停留在其他主要面板的前面。
+
+更改圖層高度時, 可能會發現與其他面板重疊的一些衝突。]=]
+L["STRING_OPTIONS_INSTANCES"] = "視窗:"
+L["STRING_OPTIONS_INTERFACEDIT"] = "接口編輯模式"
+L["STRING_OPTIONS_LEFT_MENU_ANCHOR"] = "菜單設定:"
+L["STRING_OPTIONS_LOCKSEGMENTS"] = "片段鎖定"
+L["STRING_OPTIONS_LOCKSEGMENTS_DESC"] = "如果開啟,改變一個戰鬥片段的時候會將其他窗口都切換到該片段。"
+L["STRING_OPTIONS_MANAGE_BOOKMARKS"] = "管理書籤"
+L["STRING_OPTIONS_MAXINSTANCES"] = "窗口數量"
+L["STRING_OPTIONS_MAXINSTANCES_DESC"] = [=[限制可創建的視窗數量。
+
+您可以通過 "視窗控制" 功能表管理您的視窗。]=]
+L["STRING_OPTIONS_MAXSEGMENTS"] = "片段(記錄)數量"
+L["STRING_OPTIONS_MAXSEGMENTS_DESC"] = "控制您要保持多少段(記錄)。"
+L["STRING_OPTIONS_MENU_ALPHA"] = "鼠標互動:"
+L["STRING_OPTIONS_MENU_ALPHAENABLED_DESC"] = [=[啟用時, 當您懸停並離開視窗時, 透明度會自動更改。
+
+|cFFFFFF00重要提示|r: 此設置覆蓋 "視窗設置" 部分下的 "在視窗中選擇的 Alpha 顏色" 選項。]=]
+L["STRING_OPTIONS_MENU_ALPHAENTER"] = "鼠標停留在"
+L["STRING_OPTIONS_MENU_ALPHAENTER_DESC"] = "將鼠標停留在窗口上時,透明度將更改為此值。"
+L["STRING_OPTIONS_MENU_ALPHALEAVE"] = "沒有互動"
+L["STRING_OPTIONS_MENU_ALPHALEAVE_DESC"] = "當窗口上沒有鼠標時,透明度將更變為此值。"
+L["STRING_OPTIONS_MENU_ALPHAWARNING"] = "啟用滑鼠互動, Alpha 可能不會受到影響。"
+L["STRING_OPTIONS_MENU_ANCHOR"] = "按鈕貼附在右邊"
+L["STRING_OPTIONS_MENU_ANCHOR_DESC"] = "選取後,按鈕將貼附到窗口的右側。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX"] = "X軸"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORX_DESC"] = "調整X軸上的文本位置。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY"] = "Y軸"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ANCHORY_DESC"] = "調整Y軸上的文本位置。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENABLED_DESC"] = "激活顯示,目前顯示在視窗中的顯示名稱。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER"] = "首領戰鬥計時器"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_ENCOUNTERTIMER_DESC"] = "如果開啟,在文字的左側將出現一個計時器"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT"] = "文字字體"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_FONT_DESC"] = "選擇屬性文字的字體。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SHADOW_DESC"] = "啟用或是禁用文字陰影"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE"] = "附加到頂端"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_SIDE_DESC"] = "選擇文字所在的位置。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR"] = "文字顏色"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTCOLOR_DESC"] = "更改屬性的文字顏色。"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE"] = "文本大小"
+L["STRING_OPTIONS_MENU_ATTRIBUTE_TEXTSIZE_DESC"] = "調整文本的大小。"
+L["STRING_OPTIONS_MENU_ATTRIBUTESETTINGS_ANCHOR"] = "設定:"
+L["STRING_OPTIONS_MENU_AUTOHIDE_DESC"] = "當滑鼠經過或離開視窗時會自動顯現或隱藏按鈕"
+L["STRING_OPTIONS_MENU_AUTOHIDE_LEFT"] = "自動隱藏按鈕"
+L["STRING_OPTIONS_MENU_BUTTONSSIZE_DESC"] = "選擇按鈕大小。這也同時修改了插件添加的按鈕。"
+L["STRING_OPTIONS_MENU_FONT_FACE"] = "功能表文本字體"
+L["STRING_OPTIONS_MENU_FONT_FACE_DESC"] = "修改所有功能表上使用的字體。"
+L["STRING_OPTIONS_MENU_FONT_SIZE"] = "功能表文本大小"
+L["STRING_OPTIONS_MENU_FONT_SIZE_DESC"] = "修改所有功能表上的字體大小。"
+L["STRING_OPTIONS_MENU_IGNOREBARS"] = "忽略列表"
+L["STRING_OPTIONS_MENU_IGNOREBARS_DESC"] = "啟用時, 此視窗中的所有列表都不會受到此機制的影響。"
+L["STRING_OPTIONS_MENU_SHOWBUTTONS"] = "顯示按鈕"
+L["STRING_OPTIONS_MENU_SHOWBUTTONS_DESC"] = "選擇標題列上顯示的按鈕。"
+L["STRING_OPTIONS_MENU_X"] = "X軸"
+L["STRING_OPTIONS_MENU_X_DESC"] = "更改 X 軸位置。"
+L["STRING_OPTIONS_MENU_Y"] = "Y軸"
+L["STRING_OPTIONS_MENU_Y_DESC"] = "更改 Y 軸位置"
+L["STRING_OPTIONS_MENUS_SHADOW"] = "陰影"
+L["STRING_OPTIONS_MENUS_SHADOW_DESC"] = "在所有按鈕上添加一個薄陰影邊框。"
+L["STRING_OPTIONS_MENUS_SPACEMENT"] = "間距"
+L["STRING_OPTIONS_MENUS_SPACEMENT_DESC"] = "控制按鈕之間的距離。"
+L["STRING_OPTIONS_MICRODISPLAY_ANCHOR"] = "微顯示器:"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK"] = "鎖定微顯示器"
+L["STRING_OPTIONS_MICRODISPLAY_LOCK_DESC"] = "鎖定時,它們不會與鼠標互動&回應點擊。"
+L["STRING_OPTIONS_MICRODISPLAYS_DROPDOWN_TOOLTIP"] = "選擇你想在這邊顯示的微型顯示器。"
+L["STRING_OPTIONS_MICRODISPLAYS_OPTION_TOOLTIP"] = "設定此微型顯示器的配置。"
+L["STRING_OPTIONS_MICRODISPLAYS_SHOWHIDE_TOOLTIP"] = "顯示或隱藏這個小型視窗"
+L["STRING_OPTIONS_MICRODISPLAYS_WARNING"] = [=[|cFFFFFF00注意|r:無法顯示微顯示器, 因為
+它們錨點定在底部
+而且側面和狀態欄被禁用。]=]
+L["STRING_OPTIONS_MICRODISPLAYSSIDE"] = "頂面微顯示器"
+L["STRING_OPTIONS_MICRODISPLAYSSIDE_DESC"] = "將微顯示器放在視窗頂部或底部。"
+L["STRING_OPTIONS_MICRODISPLAYWARNING"] = "微型顯示器不顯示,因為狀態欄被禁用。"
+L["STRING_OPTIONS_MINIMAP"] = "顯示圖標"
+L["STRING_OPTIONS_MINIMAP_ACTION"] = "點擊"
+L["STRING_OPTIONS_MINIMAP_ACTION_DESC"] = "選擇用\"鼠標左鍵\"單擊小地圖上的圖標時\"應執行的操作指示\"。"
+L["STRING_OPTIONS_MINIMAP_ACTION1"] = "打開選項面板"
+L["STRING_OPTIONS_MINIMAP_ACTION2"] = "重置記錄分段"
+L["STRING_OPTIONS_MINIMAP_ACTION3"] = "顯示/隱藏插件窗口"
+L["STRING_OPTIONS_MINIMAP_ANCHOR"] = "小地圖:"
+L["STRING_OPTIONS_MINIMAP_DESC"] = "顯示或隱藏小地圖圖標。"
+L["STRING_OPTIONS_MISCTITLE"] = "雜項設置"
+L["STRING_OPTIONS_MISCTITLE2"] = "這些控制幾個選項。"
+L["STRING_OPTIONS_NICKNAME"] = "暱稱"
+L["STRING_OPTIONS_NICKNAME_DESC"] = [=[給你自己設定一個暱稱。
+
+在傳遞Details!數據之時,你的人物名將會被暱稱所代替。]=]
+L["STRING_OPTIONS_OPEN_ROWTEXT_EDITOR"] = "文字列編輯器"
+L["STRING_OPTIONS_OPEN_TEXT_EDITOR"] = "打開文字編輯器"
+L["STRING_OPTIONS_OVERALL_ALL"] = "所有記錄(片段)"
+L["STRING_OPTIONS_OVERALL_ALL_DESC"] = "所有記錄都添加到整體數據。"
+L["STRING_OPTIONS_OVERALL_ANCHOR"] = "整體數據:"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS"] = "副本首領(王)"
+L["STRING_OPTIONS_OVERALL_DUNGEONBOSS_DESC"] = "將副本首領(王)部分被添加到整體數據。"
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN"] = "副本小怪(垃圾)"
+L["STRING_OPTIONS_OVERALL_DUNGEONCLEAN_DESC"] = "將副本小怪(垃圾)數據處理分段添加到整體數據。"
+L["STRING_OPTIONS_OVERALL_LOGOFF"] = "登出時刪除"
+L["STRING_OPTIONS_OVERALL_LOGOFF_DESC"] = "啟用後, 當您登出時 \"整體數據\" 會自動刪除整體數據。"
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS"] = [=[刪除於開始傳奇+前
+]=]
+L["STRING_OPTIONS_OVERALL_MYTHICPLUS_DESC"] = [=[啟用後, 當新傳奇難度開始進行時, 將自動清除整個資料。
+
+※:這項預設開啟,目的其實應該是清理傳奇中獨立小怪數據只保留每個首領數據(當然假如小怪連王開也會被記錄)]=]
+L["STRING_OPTIONS_OVERALL_NEWBOSS"] = [=[刪除於開始新團副首領(團副王)前
+]=]
+L["STRING_OPTIONS_OVERALL_NEWBOSS_DESC"] = [=[當啟用時,整體數據在面對不同的團副首領時被自動刪除。
+
+※:這項預設開啟,目的其實應該是清理團副中獨立小怪數據只保留每個首領數據(當然假如小怪連王開也會被記錄)]=]
+L["STRING_OPTIONS_OVERALL_RAIDBOSS"] = "團副首領(王)"
+L["STRING_OPTIONS_OVERALL_RAIDBOSS_DESC"] = "帶有團體戰鬥的片段被添加到整體數據中。"
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN"] = "團副小怪(垃圾)"
+L["STRING_OPTIONS_OVERALL_RAIDCLEAN_DESC"] = "將團副小怪(垃圾)數據處理分被添加到整體數據中。"
+L["STRING_OPTIONS_PANIMODE"] = "慌亂模式"
+L["STRING_OPTIONS_PANIMODE_DESC"] = "如果啟用並且您從遊戲中退出(例如通過斷開連接),而您正在與首領對戰中,則所有片段都將被刪除,這將使您的登出過程更快。"
+L["STRING_OPTIONS_PDW_ANCHOR"] = "面板:"
+L["STRING_OPTIONS_PDW_SKIN_DESC"] = "在玩家詳細訊息視窗、報告視窗和選項面板上使用的皮膚。 某些更改需要重載。"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERCENT_TYPE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PERCENT_TYPE_DESC"] = ""--]]
+L["STRING_OPTIONS_PERFORMANCE"] = "性能"
+L["STRING_OPTIONS_PERFORMANCE_ANCHOR"] = "一般:"
+L["STRING_OPTIONS_PERFORMANCE_ARENA"] = "競技場"
+L["STRING_OPTIONS_PERFORMANCE_BG15"] = "戰場 15"
+L["STRING_OPTIONS_PERFORMANCE_BG40"] = "戰場 40"
+L["STRING_OPTIONS_PERFORMANCE_DUNGEON"] = "副本"
+L["STRING_OPTIONS_PERFORMANCE_ENABLE_DESC"] = "如果啟用, 則當團隊與選定的團隊類型匹配時, 將應用此設置。"
+L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD"] = "自動刪除世界片段(野外記錄)"
+L["STRING_OPTIONS_PERFORMANCE_ERASEWORLD_DESC"] = "在戶外戰鬥時自動刪除片段(記錄)。"
+L["STRING_OPTIONS_PERFORMANCE_MYTHIC"] = "傳奇"
+L["STRING_OPTIONS_PERFORMANCE_PROFILE_LOAD"] = "性能配置檔已更改:"
+L["STRING_OPTIONS_PERFORMANCE_RAID15"] = "團隊 10-15"
+L["STRING_OPTIONS_PERFORMANCE_RAID30"] = "團隊16-30"
+L["STRING_OPTIONS_PERFORMANCE_RF"] = "團隊搜尋器"
+L["STRING_OPTIONS_PERFORMANCE_TYPES"] = "類型"
+L["STRING_OPTIONS_PERFORMANCE_TYPES_DESC"] = "這是不同選項可以自動更改的團隊類型。"
+L["STRING_OPTIONS_PERFORMANCE1"] = "性能調整"
+L["STRING_OPTIONS_PERFORMANCE1_DESC"] = [=[這些選項可以説明節省一些 cpu 使用率。
+注:UI作者,應該不是英國人,所以從英文中整個UI翻譯上會不斷出現片段/數據,這些都是直譯,意思都是戰鬥記錄。]=]
+L["STRING_OPTIONS_PERFORMANCECAPTURES"] = "記錄收集器"
+L["STRING_OPTIONS_PERFORMANCECAPTURES_DESC"] = "這些選項負責分析和收集作戰記錄。"
+L["STRING_OPTIONS_PERFORMANCEPROFILES_ANCHOR"] = "性能配置:"
+L["STRING_OPTIONS_PICONS_DIRECTION"] = "(擴充)插件緊接在右邊"
+L["STRING_OPTIONS_PICONS_DIRECTION_DESC"] = [=[選中後, (擴充)插件按鈕顯示在功能表(主)按鈕的右側。
+※:擴充插件不是指在Details! Damage Meter包的插件,而是額外添加的功能性插件(獨立發佈的),例:Details!: Advanced Death Logs (plugin)]=]
+L["STRING_OPTIONS_PLUGINS"] = "插件"
+L["STRING_OPTIONS_PLUGINS_AUTHOR"] = "作者"
+L["STRING_OPTIONS_PLUGINS_NAME"] = "名稱"
+L["STRING_OPTIONS_PLUGINS_OPTIONS"] = "選項"
+L["STRING_OPTIONS_PLUGINS_RAID_ANCHOR"] = "團隊插件"
+L["STRING_OPTIONS_PLUGINS_SOLO_ANCHOR"] = "獨立插件"
+L["STRING_OPTIONS_PLUGINS_TOOLBAR_ANCHOR"] = "工具列插件"
+L["STRING_OPTIONS_PLUGINS_VERSION"] = "版本"
+L["STRING_OPTIONS_PRESETNONAME"] = "給你的預設命名。"
+L["STRING_OPTIONS_PRESETTOOLD"] = "此預設太舊, 無法載入此版本的Details!。"
+L["STRING_OPTIONS_PROFILE_COPYOKEY"] = "配置檔成功複製"
+L["STRING_OPTIONS_PROFILE_FIELDEMPTY"] = "名稱欄位為空。"
+L["STRING_OPTIONS_PROFILE_GLOBAL"] = "選擇要在所有字符上使用的配置檔。"
+L["STRING_OPTIONS_PROFILE_LOADED"] = "載入配置:"
+L["STRING_OPTIONS_PROFILE_NOTCREATED"] = "配置文件未創建。"
+L["STRING_OPTIONS_PROFILE_OVERWRITTEN"] = "你已經為這個角色選擇了特定的配置檔"
+L["STRING_OPTIONS_PROFILE_POSSIZE"] = "保存大小和位置"
+L["STRING_OPTIONS_PROFILE_POSSIZE_DESC"] = "配置檔會保存視窗的位置和大小。當禁用時, 每個字元都有自己的值。"
+L["STRING_OPTIONS_PROFILE_REMOVEOKEY"] = "配置檔成功刪除"
+L["STRING_OPTIONS_PROFILE_SELECT"] = "選擇配置檔。"
+L["STRING_OPTIONS_PROFILE_SELECTEXISTING"] = "選擇一個現有的配置文件或繼續沿用這個字符作為一個新的:"
+L["STRING_OPTIONS_PROFILE_USENEW"] = "使用新配置檔"
+L["STRING_OPTIONS_PROFILES_ANCHOR"] = "設置:"
+L["STRING_OPTIONS_PROFILES_COPY"] = "複製配置"
+L["STRING_OPTIONS_PROFILES_COPY_DESC"] = "將所選配置文件的所有設定複製到當前配置文件,覆蓋現有所有設定。"
+L["STRING_OPTIONS_PROFILES_CREATE"] = "建立配置"
+L["STRING_OPTIONS_PROFILES_CREATE_DESC"] = "創建一個新的配置文件"
+L["STRING_OPTIONS_PROFILES_CURRENT"] = "當前配置:"
+L["STRING_OPTIONS_PROFILES_CURRENT_DESC"] = "這是現有配置文件的名稱。"
+L["STRING_OPTIONS_PROFILES_ERASE"] = "刪除配置"
+L["STRING_OPTIONS_PROFILES_ERASE_DESC"] = "刪除選定的配置。"
+L["STRING_OPTIONS_PROFILES_RESET"] = "重置現有配置"
+L["STRING_OPTIONS_PROFILES_RESET_DESC"] = "將所選配置文件的所有設定,重置為默認值。"
+L["STRING_OPTIONS_PROFILES_SELECT"] = "選擇配置"
+L["STRING_OPTIONS_PROFILES_SELECT_DESC"] = "載入現有的配置檔。 如果您對所有字符(“在所有字符上使用”選項)使用相同的配置檔,則會為此字符創建一個例外。"
+L["STRING_OPTIONS_PROFILES_TITLE"] = "配置文件"
+L["STRING_OPTIONS_PROFILES_TITLE_DESC"] = "這些選項允許您在不同的角色之間共享相同的設定。"
+L["STRING_OPTIONS_PS_ABBREVIATE"] = "數字格式"
+L["STRING_OPTIONS_PS_ABBREVIATE_COMMA"] = "逗號"
+L["STRING_OPTIONS_PS_ABBREVIATE_DESC"] = [=[選擇縮寫方法。
+
+|cFFFFFF00ToK I|r:
+520600 = 520.6K
+19530000 = 19.53M
+
+|cFFFFFF00ToK II|r:
+520600 = 520K
+19530000 = 19.53M
+
+|cFFFFFF00ToM I|r:
+520600 = 520.6K
+19530000 = 19M
+
+|cFFFFFF00Comma|r:
+19530000 = 19.530.000
+
+|cFFFFFF00Lower|r and |cFFFFFF00Upper|r: 是對 "K" 和 "M" 字母的引用 (如果是小寫或大寫)。]=]
+L["STRING_OPTIONS_PS_ABBREVIATE_NONE"] = "沒有"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK0"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK0MIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK2"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOK2MIN"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_PS_ABBREVIATE_TOKMIN"] = ""--]]
+L["STRING_OPTIONS_PVPFRAGS"] = "僅 PvP 蓄意傷害"
+L["STRING_OPTIONS_PVPFRAGS_DESC"] = "當啟用, 只有殺死敵對玩家計數時從 |cFFFFFF00傷害 > 蓄意傷害|r 顯示。"
+L["STRING_OPTIONS_REALMNAME"] = "移除伺服器名"
+L["STRING_OPTIONS_REALMNAME_DESC"] = [=[如果開啟,將不會顯示角色的伺服器名。
+
+|cFFFFFF00關閉|r: Charles-Netherwing
+|cFFFFFF00開啟|r: Charles]=]
+L["STRING_OPTIONS_REPORT_ANCHOR"] = "報告"
+L["STRING_OPTIONS_REPORT_HEALLINKS"] = "有用的法術連結"
+L["STRING_OPTIONS_REPORT_HEALLINKS_DESC"] = [=[發送報告並啟用此選項時,|cFF55FF55有幫助|r法術是用法術鏈結來報告的,而不是它的名字。
+
+|cFFFF5555有害|r法術默認報告法術鏈結。]=]
+L["STRING_OPTIONS_REPORT_SCHEMA"] = "格式"
+L["STRING_OPTIONS_REPORT_SCHEMA_DESC"] = "選擇用於聊天頻道上鏈接文字的文字格式。"
+L["STRING_OPTIONS_REPORT_SCHEMA1"] = "合計/每秒/百分比"
+L["STRING_OPTIONS_REPORT_SCHEMA2"] = "百分比/每秒/合計"
+L["STRING_OPTIONS_REPORT_SCHEMA3"] = "百分比/合計/每秒"
+L["STRING_OPTIONS_RESET_TO_DEFAULT"] = "重置為預設值"
+L["STRING_OPTIONS_ROW_SETTING_ANCHOR"] = "佈局:"
+L["STRING_OPTIONS_ROWADV_TITLE"] = "計量列表高階設定"
+L["STRING_OPTIONS_ROWADV_TITLE_DESC"] = "這些選項允許您更進一步修改行。"
+L["STRING_OPTIONS_RT_COOLDOWN1"] = "在%s上使用%s!"
+L["STRING_OPTIONS_RT_COOLDOWN2"] = "使用%s!"
+L["STRING_OPTIONS_RT_COOLDOWNS_ANCHOR"] = "冷卻通知:"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL"] = "頻道"
+L["STRING_OPTIONS_RT_COOLDOWNS_CHANNEL_DESC"] = [=[用於發送警報消息的聊天頻道。
+
+如果選擇 |cFFFFFF00觀察者|r, 所有冷卻都將發佈到您的聊天頻道, 除了個人冷卻。]=]
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM"] = "自訂文本"
+L["STRING_OPTIONS_RT_COOLDOWNS_CUSTOM_DESC"] = [=[鍵入要發送的自己的短語。
+
+使用 |cFFFFFF00{spell}|r 添加冷卻法術名稱。
+
+使用 |cFFFFFF00{target}|r 添加玩家目標名稱。]=]
+L["STRING_OPTIONS_RT_COOLDOWNS_ONOFF_DESC"] = "當您使用冷卻時, 將通過選定頻道的發送一條消息。"
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT"] = "忽略冷卻時間清單"
+L["STRING_OPTIONS_RT_COOLDOWNS_SELECT_DESC"] = "選擇應忽略的冷卻。"
+L["STRING_OPTIONS_RT_DEATH_MSG"] = "Details! %s的死亡"
+L["STRING_OPTIONS_RT_DEATHS_ANCHOR"] = "死亡宣告:"
+L["STRING_OPTIONS_RT_DEATHS_FIRST"] = "只有最先"
+L["STRING_OPTIONS_RT_DEATHS_FIRST_DESC"] = "使它只宣佈在戰鬥中最先 X 位死亡。(數量你決定)"
+L["STRING_OPTIONS_RT_DEATHS_HITS"] = "被傷害次數"
+L["STRING_OPTIONS_RT_DEATHS_HITS_DESC"] = "當死亡宣告, 顯示多少次傷害。"
+L["STRING_OPTIONS_RT_DEATHS_ONOFF_DESC"] = "當一個團隊成員死亡, 它發佈到團隊頻是什麼殺死了這名玩家。"
+L["STRING_OPTIONS_RT_DEATHS_WHERE"] = "實例"
+L["STRING_OPTIONS_RT_DEATHS_WHERE_DESC"] = [=[選擇可以發佈死亡的場景。
+
+|cFFFFFF00重要|r用於團隊 /raid 團隊頻,/p 在地城副本(隊伍副本-dungeons)頻使用。
+
+如果選用 |cFFFFFF00觀察者|r , 死亡只顯示在你(當前)的聊天頻。]=]
+L["STRING_OPTIONS_RT_DEATHS_WHERE1"] = "團隊&地城"
+L["STRING_OPTIONS_RT_DEATHS_WHERE2"] = "僅限團隊"
+L["STRING_OPTIONS_RT_DEATHS_WHERE3"] = "僅限地城"
+L["STRING_OPTIONS_RT_FIRST_HIT"] = "第一個打(First Hit)"
+L["STRING_OPTIONS_RT_FIRST_HIT_DESC"] = "在聊天介面(通常在\"綜合\")上顯示 (|cFFFFFF00只有你\"知\"|r) 交代了誰第一個打, 通常是誰開始了戰鬥。"
+L["STRING_OPTIONS_RT_IGNORE_TITLE"] = "忽略冷卻"
+L["STRING_OPTIONS_RT_INFOS"] = "額外信息:"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION"] = "戰前使用藥水(預讀藥水)"
+L["STRING_OPTIONS_RT_INFOS_PREPOTION_DESC"] = "當啟用並及後發生團隊首領戰, 顯示在您的聊天介面(通常在\"綜合\") (|cFFFFFF00只有你\"知\"|r) 誰拉王前使用藥水(預讀藥水)。"
+L["STRING_OPTIONS_RT_INTERRUPT"] = "%s 打斷!"
+L["STRING_OPTIONS_RT_INTERRUPT_ANCHOR"] = "打斷通知:"
+L["STRING_OPTIONS_RT_INTERRUPT_NEXT"] = "下一個準備:%s"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL"] = "頻道"
+L["STRING_OPTIONS_RT_INTERRUPTS_CHANNEL_DESC"] = [=[用於發送警報訊息的聊天頻道。
+
+如果選擇|cFFFFFF00觀察者|r, 只在聊天頻道中發佈所有的中斷。]=]
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM"] = "自訂文本"
+L["STRING_OPTIONS_RT_INTERRUPTS_CUSTOM_DESC"] = [=[鍵入要發送的自己的訊息。
+
+使用 |cFFFFFF00{spell}|r 添加中斷的法術名稱。
+
+使用 |cFFFFFF00{next}|r 添加下一個玩家名稱。]=]
+L["STRING_OPTIONS_RT_INTERRUPTS_NEXT"] = "下一個玩家"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_RT_INTERRUPTS_NEXT_DESC"] = ""--]]
+L["STRING_OPTIONS_RT_INTERRUPTS_ONOFF_DESC"] = "當您成功地打斷施法時, 將發送一個訊息。"
+L["STRING_OPTIONS_RT_INTERRUPTS_WHISPER"] = "密語對象"
+L["STRING_OPTIONS_RT_OTHER_ANCHOR"] = "一般:"
+L["STRING_OPTIONS_RT_TITLE"] = "團隊工具"
+L["STRING_OPTIONS_RT_TITLE_DESC"] = "在這個面板中,你可以啟動幾個機制來輔助告訴你的團隊。"
+L["STRING_OPTIONS_SAVELOAD"] = "保存並加載"
+L["STRING_OPTIONS_SAVELOAD_APPLYALL"] = "當前的外觀已套用到所有窗口。"
+L["STRING_OPTIONS_SAVELOAD_APPLYALL_DESC"] = "所有已創建窗口上套用當前外觀。"
+L["STRING_OPTIONS_SAVELOAD_APPLYTOALL"] = "套用到所有窗口"
+L["STRING_OPTIONS_SAVELOAD_CREATE_DESC"] = "將當前外觀保存為預設,您可以匯出或保留為備份。"
+L["STRING_OPTIONS_SAVELOAD_DESC"] = "這些選項允許您保存或加載預定的設定。"
+L["STRING_OPTIONS_SAVELOAD_ERASE_DESC"] = "該選項將刪除以前保存的外觀。"
+L["STRING_OPTIONS_SAVELOAD_EXPORT"] = "匯出"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_COPY"] = "按下CTRL + C"
+L["STRING_OPTIONS_SAVELOAD_EXPORT_DESC"] = "以文本格式保存外觀。"
+L["STRING_OPTIONS_SAVELOAD_IMPORT"] = "匯入"
+L["STRING_OPTIONS_SAVELOAD_IMPORT_DESC"] = "以文本格式導入外觀。"
+L["STRING_OPTIONS_SAVELOAD_IMPORT_OKEY"] = "成功將外觀匯入到保存的外觀清單中。您現在可以選用它通過 ' 套用 ' 收存箱。"
+L["STRING_OPTIONS_SAVELOAD_LOAD"] = "套用"
+L["STRING_OPTIONS_SAVELOAD_LOAD_DESC"] = "選擇之前保存的外觀之一套用到當前選定的窗口。"
+L["STRING_OPTIONS_SAVELOAD_MAKEDEFAULT"] = "設定為標準"
+L["STRING_OPTIONS_SAVELOAD_PNAME"] = "名稱"
+L["STRING_OPTIONS_SAVELOAD_REMOVE"] = "刪除"
+L["STRING_OPTIONS_SAVELOAD_RESET"] = "載入默認外觀"
+L["STRING_OPTIONS_SAVELOAD_SAVE"] = "儲存"
+L["STRING_OPTIONS_SAVELOAD_SKINCREATED"] = "外觀創建"
+L["STRING_OPTIONS_SAVELOAD_STD_DESC"] = [=[將當前外觀設置為標準外觀。
+
+此外觀適用于創建的所有新視窗。]=]
+L["STRING_OPTIONS_SAVELOAD_STDSAVE"] = "已設定的標準外觀, 預設情況下, 新視窗將使用此外觀。"
+L["STRING_OPTIONS_SCROLLBAR"] = "捲軸"
+L["STRING_OPTIONS_SCROLLBAR_DESC"] = [=[啟用或禁用捲軸。
+
+預設情況下, Details! 的捲軸由延伸視窗的機制替換。
+
+|cFFFFFF00延伸處理|r 在視窗按鈕/功能表 (關閉按鈕左側) 的外面。]=]
+L["STRING_OPTIONS_SEGMENTSSAVE"] = "已保存片段(記錄)"
+L["STRING_OPTIONS_SEGMENTSSAVE_DESC"] = [=[要在遊戲期間保存多少段(記錄)。
+
+高值可能會增加您的角色登出所需的時間。]=]
+L["STRING_OPTIONS_SENDFEEDBACK"] = "回饋"
+L["STRING_OPTIONS_SHOW_SIDEBARS"] = "顯示邊框"
+L["STRING_OPTIONS_SHOW_SIDEBARS_DESC"] = "顯示或隱藏視窗邊框。"
+L["STRING_OPTIONS_SHOW_STATUSBAR"] = "顯示狀態條"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_STATUSBAR_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SHOW_TOTALBAR_COLOR_DESC"] = ""--]]
+L["STRING_OPTIONS_SHOW_TOTALBAR_DESC"] = "顯示或隱藏總量欄。"
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON"] = "圖示"
+L["STRING_OPTIONS_SHOW_TOTALBAR_ICON_DESC"] = "選擇在總量欄上顯示的圖示。"
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP"] = "僅在群組"
+L["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP_DESC"] = "如果不在群組中, 則不顯示總評量列表。"
+L["STRING_OPTIONS_SIZE"] = "大小"
+L["STRING_OPTIONS_SKIN_A"] = "外觀設定"
+L["STRING_OPTIONS_SKIN_A_DESC"] = "這些選項允許您更改外觀。"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1"] = "對齊在正確的聊天"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON1_DESC"] = "移動調整窗口 |cFFFFFF00#1|r 和 |cFFFFFF00#2|r 放在右側聊天窗口上面。"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2"] = "將工具提示邊框設置為黑色"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON2_DESC"] = [=[修改工具提示:
+
+邊框顏色(例:黑色):
+ |cFFFFFF00Black|r.
+邊框大小:
+ |cFFFFFF0016|r.
+紋理(例:採用Blizzard Tooltip):
+ |cFFFFFF00Blizzard Tooltip|r.]=]
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3"] = "移除提示邊框"
+L["STRING_OPTIONS_SKIN_ELVUI_BUTTON3_DESC"] = [=[修改工具提示:
+
+邊框顏色(例:透明): |cFFFFFF00Transparent|r.]=]
+L["STRING_OPTIONS_SKIN_EXTRA_OPTIONS_ANCHOR"] = "外觀選項:"
+L["STRING_OPTIONS_SKIN_LOADED"] = "外觀成功加載。"
+L["STRING_OPTIONS_SKIN_PRESETS_ANCHOR"] = "保存外觀:"
+L["STRING_OPTIONS_SKIN_PRESETSCONFIG_ANCHOR"] = "管理已保存的皮膚:"
+L["STRING_OPTIONS_SKIN_REMOVED"] = "刪除外觀"
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP"] = "重置提示邊框"
+L["STRING_OPTIONS_SKIN_RESET_TOOLTIP_DESC"] = "將提示邊框顏色和紋理設置為默認值。"
+L["STRING_OPTIONS_SKIN_SELECT"] = "選擇一個外觀"
+L["STRING_OPTIONS_SKIN_SELECT_ANCHOR"] = "外觀選擇:"
+L["STRING_OPTIONS_SOCIAL"] = "社交"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SOCIAL_DESC"] = ""--]]
+L["STRING_OPTIONS_SPELL_ADD"] = "添加"
+L["STRING_OPTIONS_SPELL_ADDICON"] = "新圖示: "
+L["STRING_OPTIONS_SPELL_ADDNAME"] = "新名稱: "
+L["STRING_OPTIONS_SPELL_ADDSPELL"] = "添加法術"
+L["STRING_OPTIONS_SPELL_ADDSPELLID"] = "法術ID: "
+L["STRING_OPTIONS_SPELL_CLOSE"] = "關閉"
+L["STRING_OPTIONS_SPELL_ICON"] = "圖示"
+L["STRING_OPTIONS_SPELL_IDERROR"] = "無效的法術ID。"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_INDEX"] = ""--]]
+L["STRING_OPTIONS_SPELL_NAME"] = "名稱"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_NAMEERROR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_SPELL_NOTFOUND"] = ""--]]
+L["STRING_OPTIONS_SPELL_REMOVE"] = "移除"
+L["STRING_OPTIONS_SPELL_RESET"] = "重置"
+L["STRING_OPTIONS_SPELL_SPELLID"] = "法術ID"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCH"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCH_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCHTOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_STRETCHTOP_DESC"] = ""--]]
+L["STRING_OPTIONS_SWITCH_ANCHOR"] = "切換:"
+L["STRING_OPTIONS_SWITCHINFO"] = "|cFFF79F81 左 禁用|r |cFF81BEF7 右 啟用|r"
+L["STRING_OPTIONS_TABEMB_ANCHOR"] = "嵌入對話標籤"
+L["STRING_OPTIONS_TABEMB_ENABLED_DESC"] = "當勾選時,一個或多數視窗會附著於聊天標籤"
+L["STRING_OPTIONS_TABEMB_SINGLE"] = "單一視窗"
+L["STRING_OPTIONS_TABEMB_SINGLE_DESC"] = "當勾選,僅會附著一個視窗"
+L["STRING_OPTIONS_TABEMB_TABNAME"] = "標籤名稱"
+L["STRING_OPTIONS_TABEMB_TABNAME_DESC"] = "視窗將會附著於這個標籤名稱"
+L["STRING_OPTIONS_TESTBARS"] = "建立測試性記錄"
+L["STRING_OPTIONS_TEXT"] = "計量列表文字設定"
+L["STRING_OPTIONS_TEXT_DESC"] = "這些選項控制視窗文本列的外觀。"
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR"] = "文本顏色"
+L["STRING_OPTIONS_TEXT_FIXEDCOLOR_DESC"] = [=[更改左右文本的文字顏色。
+
+如果 |cFFFFFFFF顏色按職業改變|r 已啟用, 則忽略。]=]
+L["STRING_OPTIONS_TEXT_FONT"] = "文本字體"
+L["STRING_OPTIONS_TEXT_FONT_DESC"] = "更改左右文本的字體。"
+L["STRING_OPTIONS_TEXT_LCLASSCOLOR_DESC"] = "啟用時,文本始終使用顏色按玩家職業改變。"
+L["STRING_OPTIONS_TEXT_LEFT_ANCHOR"] = "左邊文本:"
+L["STRING_OPTIONS_TEXT_LOUTILINE"] = "文本陰影"
+L["STRING_OPTIONS_TEXT_LOUTILINE_DESC"] = "啟用/禁用文本的輪廓陰影。"
+L["STRING_OPTIONS_TEXT_LPOSITION"] = "顯示號數"
+L["STRING_OPTIONS_TEXT_LPOSITION_DESC"] = "顯示在玩家姓名左側的排名號碼。"
+L["STRING_OPTIONS_TEXT_RIGHT_ANCHOR"] = "右邊文本:"
+L["STRING_OPTIONS_TEXT_ROUTILINE_DESC"] = "啟用或禁用右文本輪廓。"
+L["STRING_OPTIONS_TEXT_ROWICONS_ANCHOR"] = "圖示:"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET"] = "框架符號"
+L["STRING_OPTIONS_TEXT_SHOW_BRACKET_DESC"] = "選擇用於打開和關閉每秒和百分比塊的符號。"
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT"] = "顯示百分比"
+L["STRING_OPTIONS_TEXT_SHOW_PERCENT_DESC"] = "顯示百分比"
+L["STRING_OPTIONS_TEXT_SHOW_PS"] = "顯示每秒數值"
+L["STRING_OPTIONS_TEXT_SHOW_PS_DESC"] = "顯示每秒傷害量(DPS)和每秒治癒量(HPS)。"
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR"] = "分隔符號"
+L["STRING_OPTIONS_TEXT_SHOW_SEPARATOR_DESC"] = "選擇用於將每秒數值與百分比數值分開的符號。"
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL"] = "顯示總數值"
+L["STRING_OPTIONS_TEXT_SHOW_TOTAL_DESC"] = [=[顯示玩家完整的數值。
+
+例如: 總傷害量, 受到治癒總量。]=]
+L["STRING_OPTIONS_TEXT_SIZE"] = "文字大小"
+L["STRING_OPTIONS_TEXT_SIZE_DESC"] = "更改左右文本的大小。"
+L["STRING_OPTIONS_TEXT_TEXTUREL_ANCHOR"] = "背景:"
+L["STRING_OPTIONS_TEXT_TEXTUREU_ANCHOR"] = "外觀:"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL"] = "取消"
+L["STRING_OPTIONS_TEXTEDITOR_CANCEL_TOOLTIP"] = "結束編輯並忽略代碼中的任何修改。"
+L["STRING_OPTIONS_TEXTEDITOR_COLOR_TOOLTIP"] = "選擇文本, 然後按一下 \"顏色\" 按鈕以更改選定的文本顏色。"
+L["STRING_OPTIONS_TEXTEDITOR_COMMA"] = "逗號"
+L["STRING_OPTIONS_TEXTEDITOR_COMMA_TOOLTIP"] = [=[添加一個用於格式化數位的函數, 用逗號分隔。
+示例: 1000000 到1.000.000。]=]
+L["STRING_OPTIONS_TEXTEDITOR_DATA"] = "[Data %s]"
+L["STRING_OPTIONS_TEXTEDITOR_DATA_TOOLTIP"] = [=[添加資料來源:
+
+|cFFFFFF00Data 1|r: 正常代表由玩家或排名編號完整的總和。
+
+|cFFFFFF00Data 2|r: 在大多數情況下代表 DPS, HPS或玩家的名字。
+
+|cFFFFFF00Data 3|r: 表示由玩家、天賦(專精)或種族圖示完整的百分比。]=]
+L["STRING_OPTIONS_TEXTEDITOR_DONE"] = "完成"
+L["STRING_OPTIONS_TEXTEDITOR_DONE_TOOLTIP"] = "完成編輯並保存代碼。"
+L["STRING_OPTIONS_TEXTEDITOR_FUNC"] = "功能"
+L["STRING_OPTIONS_TEXTEDITOR_FUNC_TOOLTIP"] = [=[添加一個空函數。
+函數必須始終返回一個數位。]=]
+L["STRING_OPTIONS_TEXTEDITOR_RESET"] = "重置"
+L["STRING_OPTIONS_TEXTEDITOR_RESET_TOOLTIP"] = "清除所有代碼並添加預設代碼。"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TEXTEDITOR_TOK"] = ""--]]
+L["STRING_OPTIONS_TEXTEDITOR_TOK_TOOLTIP"] = [=[添加函數以格式化數字縮寫。
+示例: 1500000轉1.5kk。]=]
+L["STRING_OPTIONS_TIMEMEASURE"] = "時間測量"
+L["STRING_OPTIONS_TIMEMEASURE_DESC"] = [=[|cFFFFFF00Activity Time(活躍時間)|r: 每個團隊成員的計時器被擱置, 如果他們的活動停止, 並再次返回計數時恢復, 測量 DPS 和 HPS 的常用方法。
+
+|cFFFFFF00Effective Time(有效時間)|r: 在排名上使用, 此方法使用經過的戰鬥時間來測量所有團隊成員的 DPS 和 HPS。]=]
+L["STRING_OPTIONS_TOOLBAR_SETTINGS"] = "標題列一般設定"
+L["STRING_OPTIONS_TOOLBAR_SETTINGS_DESC"] = "這些選項更改窗口頂部的主菜單。"
+L["STRING_OPTIONS_TOOLBARSIDE"] = "標題列的頂部"
+L["STRING_OPTIONS_TOOLBARSIDE_DESC"] = [=[將標題列放在視窗的頂部。
+
+|cFFFFFF00重要|r:當交換位置, 標題文本不會改變, 查看|cFFFFFF00標題列: 文本|r 部分更多的選擇。]=]
+L["STRING_OPTIONS_TOOLS_ANCHOR"] = "工具:"
+L["STRING_OPTIONS_TOOLTIP_ANCHOR"] = "設置:"
+L["STRING_OPTIONS_TOOLTIP_ANCHORTEXTS"] = "文本:"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION"] = "縮寫類型"
+L["STRING_OPTIONS_TOOLTIPS_ABBREVIATION_DESC"] = "選擇在工具提示上顯示的數字如何格式化。"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH"] = "工具提示定位"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_ATTACH_DESC"] = [=[工具提示的哪一側用於與錨點接合。
+]=]
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_BORDER"] = "邊界:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_POINT"] = "錨:"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE"] = "錨點"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_RELATIVE_DESC"] = [=[錨點的哪一側用於與工具提示接合。
+]=]
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT"] = "工具提示錨點"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TEXT_DESC"] = "點擊右鍵鎖定"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO"] = "錨"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE"] = "移動錨點"
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_CHOOSE_DESC"] = "當錨點設置為時,移動錨點位置|cFFFFFF00錨點在屏幕之內|r."
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO_DESC"] = "工具提示附加在遊戲畫面上的懸停或選定點上。"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO1"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_ANCHOR_TO2"] = "錨點在螢幕之內"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_ANCHORCOLOR"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR"] = "背景顏色"
+L["STRING_OPTIONS_TOOLTIPS_BACKGROUNDCOLOR_DESC"] = "選擇背景上使用的顏色。"
+L["STRING_OPTIONS_TOOLTIPS_BORDER_COLOR_DESC"] = "更變邊框顏色。"
+L["STRING_OPTIONS_TOOLTIPS_BORDER_SIZE_DESC"] = "更變邊框大小。"
+L["STRING_OPTIONS_TOOLTIPS_BORDER_TEXTURE_DESC"] = "修改邊框材質文件。"
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR"] = "文本顏色"
+L["STRING_OPTIONS_TOOLTIPS_FONTCOLOR_DESC"] = "更變工具提示文本上使用的顏色。"
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE"] = "文本字體"
+L["STRING_OPTIONS_TOOLTIPS_FONTFACE_DESC"] = "選擇用於工具提示文本的字體。"
+L["STRING_OPTIONS_TOOLTIPS_FONTSHADOW_DESC"] = "啟用或禁用文本中的陰影。"
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE"] = "文本大小"
+L["STRING_OPTIONS_TOOLTIPS_FONTSIZE_DESC"] = "增加或減小工具提示文本的大小"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER"] = "子功能表牆紙"
+L["STRING_OPTIONS_TOOLTIPS_IGNORESUBWALLPAPER_DESC"] = "啟用後, 某些功能表可能會在子功能表上使用自己的牆紙。"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE"] = "最大化方案"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE1"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE2"] = "始終最大化"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE3"] = "只限制Shift"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE4"] = "只限制Ctrl"
+L["STRING_OPTIONS_TOOLTIPS_MAXIMIZE5"] = "只限制Alt"
+L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP"] = "編輯功能表牆紙"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_MENU_WALLP_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_OFFSETX"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_OFFSETX_DESC"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_OFFSETY"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_TOOLTIPS_OFFSETY_DESC"] = ""--]]
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT"] = "顯示合計"
+L["STRING_OPTIONS_TOOLTIPS_SHOWAMT_DESC"] = "顯示一個數位, 指示工具提示中有多少法術、目標和寵物。"
+L["STRING_OPTIONS_TOOLTIPS_TITLE"] = "提示"
+L["STRING_OPTIONS_TOOLTIPS_TITLE_DESC"] = "這些選項控制工具提示的外觀。"
+L["STRING_OPTIONS_TOTALBAR_ANCHOR"] = "總量欄:"
+L["STRING_OPTIONS_TRASH_SUPPRESSION"] = "垃圾限制"
+L["STRING_OPTIONS_TRASH_SUPPRESSION_DESC"] = "對於 |cFFFFFF00X|r 秒, 禁止自動切換, 禁止自動切換以顯示垃圾片段-記錄 (|cFFFFFF00只有打敗了老闆才會遇到 |r)。"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_ALPHA"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_ANCHOR"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_BLUE"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_CBOTTOM"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_CLEFT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_CRIGHT"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_CTOP"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_FILE"] = ""--]]
+L["STRING_OPTIONS_WALLPAPER_GREEN"] = "綠色:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD"] = ""--]]
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_DESC"] = ""--]]
+L["STRING_OPTIONS_WALLPAPER_LOAD_EXCLAMATION"] = [=[圖片需要:
+
+
+
+-採用Truevision TGA格式(.tga副檔名)
+
+-在WOW / Interface / root資料夾中
+
+-大小必須為256 x 256點數
+
+-在粘貼檔案之前必須關閉遊戲]=]
+L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME"] = "檔案名稱:"
+--[[Translation missing --]]
+--[[ L["STRING_OPTIONS_WALLPAPER_LOAD_FILENAME_DESC"] = ""--]]
+L["STRING_OPTIONS_WALLPAPER_LOAD_OKEY"] = "加載"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TITLE"] = "從電腦:"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT"] = "排查"
+L["STRING_OPTIONS_WALLPAPER_LOAD_TROUBLESHOOT_TEXT"] = [=[如果桌面得到了全綠色:
+
+
+
+-重啓了魔獸用戶端
+
+-確保影像寬度為256,高度為256
+
+-檢查影像是否為.TGA格式,並確保以32比特/點數保存
+
+-在Interface資料夾中,例如:C:/Program Files/World of Warcraft/Interface/]=]
+L["STRING_OPTIONS_WALLPAPER_RED"] = "红:"
+L["STRING_OPTIONS_WC_ANCHOR"] = "快速視窗控制 (#%s):"
+L["STRING_OPTIONS_WC_BOOKMARK"] = "管理書簽"
+L["STRING_OPTIONS_WC_BOOKMARK_DESC"] = "打開編緝書簽的配置介面(標籤自定捷徑,右鍵計量條切換書簽頁)"
+L["STRING_OPTIONS_WC_CLOSE"] = "關閉"
+L["STRING_OPTIONS_WC_CLOSE_DESC"] = [=[關閉當前的編輯視窗。
+
+關閉時, 視窗被視為非活動的, 可以隨時使用 "視窗控制" 功能表重新打開。
+
+|cFFFFFF00重要:|r 若要完全刪除視窗, 請轉到 "視窗:一般" 分頁。]=]
+L["STRING_OPTIONS_WC_CREATE"] = "建立窗口"
+L["STRING_OPTIONS_WC_CREATE_DESC"] = "建立一個新窗口。"
+L["STRING_OPTIONS_WC_LOCK"] = "鎖定"
+L["STRING_OPTIONS_WC_LOCK_DESC"] = [=[鎖定或解鎖窗口。
+
+鎖定時,窗口不能移動。]=]
+L["STRING_OPTIONS_WC_REOPEN"] = "重開"
+L["STRING_OPTIONS_WC_UNLOCK"] = "解鎖"
+L["STRING_OPTIONS_WC_UNSNAP"] = "解除組合"
+L["STRING_OPTIONS_WC_UNSNAP_DESC"] = "從視窗群組中刪除此視窗。"
+L["STRING_OPTIONS_WHEEL_SPEED"] = "鼠標滾輪速度"
+L["STRING_OPTIONS_WHEEL_SPEED_DESC"] = "更改鼠標滾輪在視窗上滾動的速度。(僅在可以用時)"
+L["STRING_OPTIONS_WINDOW"] = "選項介面"
+L["STRING_OPTIONS_WINDOW_ANCHOR_ANCHORS"] = "錨點:"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE"] = "忽略品質切換"
+L["STRING_OPTIONS_WINDOW_IGNOREMASSTOGGLE_DESC"] = "當啟用時, 在隱藏、顯示或切換所有視窗時, 此視窗不受影響。"
+L["STRING_OPTIONS_WINDOW_SCALE"] = "比例"
+L["STRING_OPTIONS_WINDOW_SCALE_DESC"] = [=[調整窗口的比例。
+
+|cFFFFFF00提示|r: 右鍵單擊以輸入值。
+
+|cFFFFFF00現在|r: %s]=]
+L["STRING_OPTIONS_WINDOW_TITLE"] = "視窗一般設置"
+L["STRING_OPTIONS_WINDOW_TITLE_DESC"] = "這些選項控制所選窗口的外觀。"
+L["STRING_OPTIONS_WINDOWSPEED"] = "更新間距"
+L["STRING_OPTIONS_WINDOWSPEED_DESC"] = [=[每次更新之間的時間相距。
+
+|cFFFFFF000.05|r: 即時更新。
+
+|cFFFFFF000.3|r: 每秒更新約3次。
+
+|cFFFFFF003.0|r: 每3秒更新一次。]=]
+L["STRING_OPTIONS_WP"] = "視窗壁紙設定"
+L["STRING_OPTIONS_WP_ALIGN"] = "對齊"
+L["STRING_OPTIONS_WP_ALIGN_DESC"] = [=[壁紙將如何在視窗中對齊。
+
+- |cFFFFFF00Fill|r: 自動調整大小並與所有角對齊。
+
+- |cFFFFFF00Center|r: 不調整大小並與視窗的中心對齊。
+
+-|cFFFFFF00Stretch|r: 自動調整垂直或水準的大小, 並與左對齊或頂部的側邊。
+
+-|cFFFFFF00Four Corners|r: 與指定的角對齊, 不進行自動調整大小。]=]
+L["STRING_OPTIONS_WP_DESC"] = "這些選項控制視窗的壁紙。"
+L["STRING_OPTIONS_WP_EDIT"] = "編輯圖像"
+L["STRING_OPTIONS_WP_EDIT_DESC"] = "打開圖像編輯器以更改所選圖像的一些選項。"
+L["STRING_OPTIONS_WP_ENABLE_DESC"] = "顯示壁紙"
+L["STRING_OPTIONS_WP_GROUP"] = "類別"
+L["STRING_OPTIONS_WP_GROUP_DESC"] = "選擇圖片組。"
+L["STRING_OPTIONS_WP_GROUP2"] = "壁紙"
+L["STRING_OPTIONS_WP_GROUP2_DESC"] = "將用作壁紙的圖像。"
+L["STRING_OPTIONSMENU_AUTOMATIC"] = "視窗: 自動化"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE"] = "視窗自動化設置"
+L["STRING_OPTIONSMENU_AUTOMATIC_TITLE_DESC"] = "這些設置控制視窗的自動行為, 如自動隱藏和自動切換。"
+L["STRING_OPTIONSMENU_COMBAT"] = "PvE PvP項目"
+L["STRING_OPTIONSMENU_DATACHART"] = "圖表化數據"
+L["STRING_OPTIONSMENU_DATACOLLECT"] = "資料收集器"
+L["STRING_OPTIONSMENU_DATAFEED"] = "資料摘要"
+L["STRING_OPTIONSMENU_DISPLAY"] = "顯示/視窗設定"
+L["STRING_OPTIONSMENU_DISPLAY_DESC"] = "全面的基本調整和快速視窗控制。"
+L["STRING_OPTIONSMENU_LEFTMENU"] = "標題列:一般"
+L["STRING_OPTIONSMENU_MISC"] = "雜項"
+L["STRING_OPTIONSMENU_PERFORMANCE"] = "性能調整"
+L["STRING_OPTIONSMENU_PLUGINS"] = "擴充插件管理"
+L["STRING_OPTIONSMENU_PROFILES"] = "配置檔"
+L["STRING_OPTIONSMENU_RAIDTOOLS"] = "團隊工具"
+L["STRING_OPTIONSMENU_RIGHTMENU"] = "-- x -- x --"
+L["STRING_OPTIONSMENU_ROWMODELS"] = "計量列表:高階"
+L["STRING_OPTIONSMENU_ROWSETTINGS"] = "計量列表:一般"
+L["STRING_OPTIONSMENU_ROWTEXTS"] = "計量列表:文本"
+L["STRING_OPTIONSMENU_SKIN"] = "外觀選項"
+L["STRING_OPTIONSMENU_SPELLS"] = "法術客製化"
+L["STRING_OPTIONSMENU_SPELLS_CONSOLIDATE"] = "合併同名的常用法術"
+L["STRING_OPTIONSMENU_TITLETEXT"] = "標題列: 文本"
+L["STRING_OPTIONSMENU_TOOLTIP"] = "提示工具"
+L["STRING_OPTIONSMENU_WALLPAPER"] = "視窗:壁紙"
+L["STRING_OPTIONSMENU_WINDOW"] = "視窗:一般"
+L["STRING_OVERALL"] = "整體"
+L["STRING_OVERHEAL"] = "過量治療"
+L["STRING_OVERHEALED"] = "已造成過量治療"
+--[[Translation missing --]]
+--[[ L["STRING_PARRY"] = ""--]]
+L["STRING_PERCENTAGE"] = "百分比"
+L["STRING_PET"] = "寵物"
+L["STRING_PETS"] = "寵物"
+L["STRING_PLAYER_DETAILS"] = "玩家 Details!"
+L["STRING_PLAYERS"] = "玩家"
+L["STRING_PLEASE_WAIT"] = "請稍候"
+L["STRING_PLUGIN_CLEAN"] = "無"
+L["STRING_PLUGIN_CLOCKNAME"] = "戰鬥時間"
+L["STRING_PLUGIN_CLOCKTYPE"] = "時間類型"
+L["STRING_PLUGIN_DURABILITY"] = "耐久性"
+L["STRING_PLUGIN_FPS"] = "幀數"
+L["STRING_PLUGIN_GOLD"] = "金"
+L["STRING_PLUGIN_LATENCY"] = "延遲"
+L["STRING_PLUGIN_MINSEC"] = "分和秒"
+L["STRING_PLUGIN_NAMEALREADYTAKEN"] = "Details! 無法安裝插件,因為名稱已被佔用"
+L["STRING_PLUGIN_PATTRIBUTENAME"] = "屬性"
+L["STRING_PLUGIN_PDPSNAME"] = "團隊傷害(DPS)"
+L["STRING_PLUGIN_PSEGMENTNAME"] = "片段"
+L["STRING_PLUGIN_SECONLY"] = "只有秒"
+L["STRING_PLUGIN_SEGMENTTYPE"] = "段(記錄)類型"
+L["STRING_PLUGIN_SEGMENTTYPE_1"] = "戰鬥 #X"
+L["STRING_PLUGIN_SEGMENTTYPE_2"] = "戰鬥名稱"
+L["STRING_PLUGIN_SEGMENTTYPE_3"] = "戰鬥名稱+段"
+L["STRING_PLUGIN_THREATNAME"] = "我的威脅"
+L["STRING_PLUGIN_TIME"] = "時鐘"
+L["STRING_PLUGIN_TIMEDIFF"] = "最後作戰區別"
+L["STRING_PLUGIN_TOOLTIP_LEFTBUTTON"] = "設定當前插件"
+L["STRING_PLUGIN_TOOLTIP_RIGHTBUTTON"] = "選擇其他插件"
+L["STRING_PLUGINOPTIONS_ABBREVIATE"] = "縮寫"
+L["STRING_PLUGINOPTIONS_COMMA"] = "逗號"
+L["STRING_PLUGINOPTIONS_FONTFACE"] = "選擇字體"
+L["STRING_PLUGINOPTIONS_NOFORMAT"] = "無"
+L["STRING_PLUGINOPTIONS_TEXTALIGN"] = "文本對齊"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_X"] = "文本對齊 X"
+L["STRING_PLUGINOPTIONS_TEXTALIGN_Y"] = "文本對齊 Y"
+L["STRING_PLUGINOPTIONS_TEXTCOLOR"] = "文本顏色"
+L["STRING_PLUGINOPTIONS_TEXTSIZE"] = "字型大小"
+L["STRING_PLUGINOPTIONS_TEXTSTYLE"] = "文本樣式"
+L["STRING_QUERY_INSPECT"] = "檢查專精(天賦)和裝備等級。"
+L["STRING_QUERY_INSPECT_FAIL1"] = "在戰鬥中不能查詢。"
+L["STRING_QUERY_INSPECT_REFRESH"] = "需要刷新"
+L["STRING_RAID_WIDE"] = "[*] 團隊冷卻時間"
+L["STRING_RAIDCHECK_PLUGIN_DESC"] = "當進入團隊副本時,在Details!的標題列顯示一個圖示表示精練、食物、預用藥水的使用狀態。"
+L["STRING_RAIDCHECK_PLUGIN_NAME"] = "團隊確認"
+L["STRING_REPORT"] = "對於"
+L["STRING_REPORT_BUTTON_TOOLTIP"] = "點擊打開報告對話框"
+L["STRING_REPORT_FIGHT"] = "戰鬥"
+L["STRING_REPORT_FIGHTS"] = "戰鬥"
+L["STRING_REPORT_INVALIDTARGET"] = "未找到密語目標"
+L["STRING_REPORT_LAST"] = "最後"
+L["STRING_REPORT_LASTFIGHT"] = "最後戰鬥"
+L["STRING_REPORT_LEFTCLICK"] = "點擊打開報告對話框"
+L["STRING_REPORT_PREVIOUSFIGHTS"] = "過去的戰鬥"
+L["STRING_REPORT_SINGLE_BUFFUPTIME"] = "對於增益覆蓋時間"
+L["STRING_REPORT_SINGLE_COOLDOWN"] = "使用的冷卻時間"
+L["STRING_REPORT_SINGLE_DEATH"] = "死亡 於"
+L["STRING_REPORT_SINGLE_DEBUFFUPTIME"] = "對於減益覆蓋時間"
+L["STRING_REPORT_TOOLTIP"] = "報告結果"
+L["STRING_REPORTFRAME_COPY"] = "複製&貼上"
+L["STRING_REPORTFRAME_CURRENT"] = "目前"
+L["STRING_REPORTFRAME_CURRENTINFO"] = "僅顯示當前正在顯示的數據(假如能支援)。"
+L["STRING_REPORTFRAME_GUILD"] = "公會"
+L["STRING_REPORTFRAME_INSERTNAME"] = "插入玩家名字"
+L["STRING_REPORTFRAME_LINES"] = "行"
+L["STRING_REPORTFRAME_OFFICERS"] = "幹部(公會)頻道"
+L["STRING_REPORTFRAME_PARTY"] = "隊伍"
+L["STRING_REPORTFRAME_RAID"] = "團隊"
+L["STRING_REPORTFRAME_REVERT"] = "相反"
+L["STRING_REPORTFRAME_REVERTED"] = "相反的"
+L["STRING_REPORTFRAME_REVERTINFO"] = "發送出以升序排列的結果"
+L["STRING_REPORTFRAME_SAY"] = "說"
+L["STRING_REPORTFRAME_SEND"] = "發送"
+L["STRING_REPORTFRAME_WHISPER"] = "密語"
+L["STRING_REPORTFRAME_WHISPERTARGET"] = "密語目標"
+L["STRING_REPORTFRAME_WINDOW_TITLE"] = "Link Details!(報告板面)"
+L["STRING_REPORTHISTORY"] = "最後報告"
+L["STRING_RESISTED"] = "抵制"
+L["STRING_RESIZE_ALL"] = "自由調整所有窗口"
+L["STRING_RESIZE_COMMON"] = "調整"
+L["STRING_RESIZE_HORIZONTAL"] = [=[調整寬度於群
+組中所有視窗]=]
+L["STRING_RESIZE_VERTICAL"] = [=[調整高度於群
+組中所有視窗]=]
+L["STRING_RIGHT"] = "右"
+L["STRING_RIGHT_TO_LEFT"] = "右到左"
+L["STRING_RIGHTCLICK_CLOSE_LARGE"] = "按一下滑鼠右鍵可關閉此視窗。"
+L["STRING_RIGHTCLICK_CLOSE_MEDIUM"] = "使用右鍵單擊關閉此窗口。"
+L["STRING_RIGHTCLICK_CLOSE_SHORT"] = "右鍵點擊關閉。"
+L["STRING_RIGHTCLICK_TYPEVALUE"] = "按右鍵可鍵入數值"
+L["STRING_SCORE_BEST"] = "你得了 |cFFFFFF00%s|r, 這是你最好的成績, 恭喜你!"
+L["STRING_SCORE_NOTBEST"] = "你得分|cFFFFFF00%s|r,你最好的得分是|cFFFFFF00%s|r 於 %s 與 %d物品等級。"
+L["STRING_SEE_BELOW"] = "見下文"
+L["STRING_SEGMENT"] = "片段(記錄)"
+L["STRING_SEGMENT_EMPTY"] = "空白記錄"
+L["STRING_SEGMENT_END"] = "結束"
+L["STRING_SEGMENT_ENEMY"] = "敵人"
+L["STRING_SEGMENT_LOWER"] = "片段(記錄)"
+L["STRING_SEGMENT_OVERALL"] = "整體數據"
+L["STRING_SEGMENT_START"] = "開始"
+L["STRING_SEGMENT_TRASH"] = "垃圾清理"
+L["STRING_SEGMENTS"] = "片段(記錄)"
+L["STRING_SEGMENTS_LIST_BOSS"] = "首領戰"
+L["STRING_SEGMENTS_LIST_COMBATTIME"] = "戰鬥時間"
+L["STRING_SEGMENTS_LIST_OVERALL"] = "整體"
+L["STRING_SEGMENTS_LIST_TIMEINCOMBAT"] = "戰鬥時間"
+L["STRING_SEGMENTS_LIST_TOTALTIME"] = "總時間"
+L["STRING_SEGMENTS_LIST_TRASH"] = "垃圾"
+--[[Translation missing --]]
+--[[ L["STRING_SEGMENTS_LIST_WASTED_TIME"] = ""--]]
+L["STRING_SHIELD_HEAL"] = "阻止"
+L["STRING_SHIELD_OVERHEAL"] = "浪費"
+L["STRING_SHORTCUT_RIGHTCLICK"] = "按右鍵可關閉"
+L["STRING_SLASH_API_DESC"] = "打開用於生成插件、自訂顯示、光環等的 API 面板。"
+L["STRING_SLASH_CAPTURE_DESC"] = "打開或關閉所有資料捕捉(器)。(記錄插件)"
+L["STRING_SLASH_CAPTUREOFF"] = "已關閉所有捕捉。"
+L["STRING_SLASH_CAPTUREON"] = "所有捕捉(器)都已打開。(即是所有記錄插件都運行)"
+L["STRING_SLASH_CHANGES"] = "更新"
+L["STRING_SLASH_CHANGES_ALIAS1"] = "新聞"
+L["STRING_SLASH_CHANGES_ALIAS2"] = "更變"
+L["STRING_SLASH_CHANGES_DESC"] = "顯示什麼是新的, Details!改變了什麼"
+L["STRING_SLASH_DISABLE"] = "禁用"
+L["STRING_SLASH_ENABLE"] = "啟用"
+L["STRING_SLASH_HIDE"] = "隱藏"
+L["STRING_SLASH_HIDE_ALIAS1"] = "關閉"
+L["STRING_SLASH_HISTORY"] = "記錄"
+L["STRING_SLASH_NEW"] = "新"
+L["STRING_SLASH_NEW_DESC"] = "創建一個新視窗。"
+L["STRING_SLASH_OPTIONS"] = "選項"
+L["STRING_SLASH_OPTIONS_DESC"] = "開啟選項面板。"
+L["STRING_SLASH_RESET"] = "重置"
+L["STRING_SLASH_RESET_ALIAS1"] = "清除"
+L["STRING_SLASH_RESET_DESC"] = "清除所有片段"
+L["STRING_SLASH_SHOW"] = "顯示"
+L["STRING_SLASH_SHOW_ALIAS1"] = "開啟"
+L["STRING_SLASH_SHOWHIDETOGGLE_DESC"] = "所有視窗如<視窗號>就不能通過"
+L["STRING_SLASH_TOGGLE"] = "切換"
+L["STRING_SLASH_WIPE"] = "刪除"
+L["STRING_SLASH_WIPECONFIG"] = "重新安裝"
+L["STRING_SLASH_WIPECONFIG_CONFIRM"] = "按一下以繼續重新安裝"
+L["STRING_SLASH_WIPECONFIG_DESC"] = "將所有配置設定為預設, 如果 Details! 無法正常工作, 請使用此選項。"
+L["STRING_SLASH_WORLDBOSS"] = "世界首領"
+L["STRING_SLASH_WORLDBOSS_DESC"] = "運行一個巨集,顯示你這周殺了哪些首領。"
+L["STRING_SPELL_INTERRUPTED"] = "法術打斷"
+L["STRING_SPELLLIST"] = "法術列表"
+L["STRING_SPELLS"] = "法術"
+L["STRING_SPIRIT_LINK_TOTEM"] = "生命交換"
+L["STRING_SPIRIT_LINK_TOTEM_DESC"] = [=[在靈魂圖騰圈內的玩
+家之間生命交換。
+
+這種治療沒有添加到
+玩家的治療總量。]=]
+L["STRING_STATISTICS"] = "統計"
+L["STRING_STATUSBAR_NOOPTIONS"] = "此小部件沒有選項。"
+L["STRING_SWITCH_CLICKME"] = "添加書簽"
+L["STRING_SWITCH_SELECTMSG"] = "選擇顯示的書簽 #%d 。"
+L["STRING_SWITCH_TO"] = "切換至"
+L["STRING_SWITCH_WARNING"] = "角色已更換。切換:|cFFFFAA00%s|r "
+L["STRING_TARGET"] = "目標"
+L["STRING_TARGETS"] = "目標"
+L["STRING_TARGETS_OTHER1"] = "寵物和其他目標"
+L["STRING_TEXTURE"] = "材質"
+L["STRING_TIME_OF_DEATH"] = "死亡"
+L["STRING_TOOOLD"] = "無法安裝(運行), 因為您的Details! 版本太舊。"
+L["STRING_TOP"] = "上"
+L["STRING_TOP_TO_BOTTOM"] = "從上到下"
+L["STRING_TOTAL"] = "總數"
+L["STRING_TRANSLATE_LANGUAGE"] = "幫助翻譯Details!"
+L["STRING_TUTORIAL_FULLY_DELETE_WINDOW"] = [=[您關閉了一個視窗, 您可以隨時重新打開它。
+要完全刪除某個視窗, 請轉到 "Details!選項">"視窗: "一般">"刪除"。]=]
+L["STRING_TUTORIAL_OVERALL1"] = "調整整體設定於選項介面 > PvE / PvP。"
+L["STRING_UNKNOW"] = "未知"
+L["STRING_UNKNOWSPELL"] = "未知法術"
+L["STRING_UNLOCK"] = [=[在這按鈕上
+取消組合視窗
+]=]
+L["STRING_UNLOCK_WINDOW"] = "解鎖"
+L["STRING_UPTADING"] = "更新"
+L["STRING_VERSION_AVAILABLE"] = "有新版本可用,請從Twitch或Curse上下載。"
+L["STRING_VERSION_UPDATE"] = "新版本:有什麼改變了?點擊這裡"
+L["STRING_VOIDZONE_TOOLTIP"] = "傷害&時間"
+L["STRING_WAITPLUGIN"] = [=[等待
+插件]=]
+L["STRING_WAVE"] = "波"
+L["STRING_WELCOME_1"] = [=[|cFFFFFFFF歡迎來到 Details! 快速設定精靈|r
+本指南將向説明您進行一些重要的配置。
+您可以隨時按一下 "跳過" 按鈕來跳過此項。
+※:繁化翻譯可能有誤筆,歡迎到curseforge的Details!>Localization>Overview>Traditional Chinese一起協力完善翻譯^_^"!! 提示:/details ? 指令列表(但是當中部份是中文@_@"的確可用中文指令,但沒有說明都只能用英文)]=]
+L["STRING_WELCOME_11"] = "如果你改變主意, 你總是可以通過選項面板再次修改"
+L["STRING_WELCOME_12"] = "選擇視窗更新的速度, 您還可以為 HPS 和 DPS 數字啟用動畫和即時更新。"
+--[[Translation missing --]]
+--[[ L["STRING_WELCOME_13"] = ""--]]
+L["STRING_WELCOME_14"] = "更新速度"
+L["STRING_WELCOME_15"] = [=[視窗中每個更新之間的間隔 (以秒為單位)。
+
+| cffffff00重要 | r: Youtubers & Streamers 可能需要使用
+|cFFFF55000.05|r 為觀眾提供更多的娛樂。]=]
+L["STRING_WELCOME_16"] = "啟用動畫"
+L["STRING_WELCOME_17"] = [=[啟用後, 所有橫條圖將以左和右動畫顯示。
+
+|cffffff00重要|r:Youtubers & Streamers可能希望增加觀眾的娛樂。]=]
+L["STRING_WELCOME_2"] = "如果你改變主意, 你總是可以通過選項面板再次修改"
+L["STRING_WELCOME_26"] = "使用介面: 拉伸"
+L["STRING_WELCOME_27"] = [=[突顯按鈕的框架。|cFFFFFF00點擊|r and |cFFFFFF00拖動!|r.
+
+如果視窗已鎖定, 則整個標題列將變為拉伸按鈕。]=]
+L["STRING_WELCOME_28"] = "使用介面: 視窗控制項"
+L["STRING_WELCOME_29"] = [=[視窗控制基本上做兩件事:
+
+-打開 |cFFFFFF00新視窗|r.
+-顯示一個可以隨時重新打開的 |cFFFFFF00關閉視窗|r 的功能表。]=]
+L["STRING_WELCOME_3"] = "選擇您的 DPS & HPS 首選方法:"
+L["STRING_WELCOME_30"] = "使用介面: 書簽"
+L["STRING_WELCOME_31"] = [=[|cFFFFFF00點擊右鍵|r視窗中的任何位置都將顯示
+|cFFFFAA00書簽|r 板面
+
+|cFFFFFF00再次按右鍵|r 關閉面板或選擇另一個顯示 (如果按一下圖示)。
+|cFFFFFF00點擊右鍵|r 在標題列上打開 "所有顯示" 面板。
+
+|TInterface\AddOns\Details\images\key_ctrl:14:30:0:0:64:64:0:64:0:40|t + 按右鍵可關閉視窗。
+]=]
+L["STRING_WELCOME_32"] = "使用介面: 視窗群"
+L["STRING_WELCOME_34"] = "使用介面: 展開工具提示"
+L["STRING_WELCOME_36"] = "使用介面: 擴充插件"
+L["STRING_WELCOME_38"] = "準備團隊!"
+L["STRING_WELCOME_39"] = [=[感謝您選擇詳細資訊!
+
+隨時發送回饋和 bug 報告給我們。
+
+
+|cFFFFAA00/details feedback|r]=]
+L["STRING_WELCOME_4"] = "啟用時間:"
+L["STRING_WELCOME_41"] = "介面娛樂微調:"
+L["STRING_WELCOME_42"] = "快速外觀設置"
+L["STRING_WELCOME_43"] = "選擇您首選的外觀:"
+L["STRING_WELCOME_44"] = "壁紙"
+L["STRING_WELCOME_45"] = "有關更多自訂選項,查閱\"選項面板\"。"
+L["STRING_WELCOME_46"] = "匯入設定"
+L["STRING_WELCOME_5"] = "有效時間:"
+L["STRING_WELCOME_57"] = [=[從已安裝的擴充插件導入基本設定。
+
+每個外觀的應對與匯入的設定不同。]=]
+L["STRING_WELCOME_58"] = [=[定義預設的外觀配置。
+
+|cFFFFFF00重要|r: 所有設置都可以在以後的選項介面中修改。]=]
+L["STRING_WELCOME_59"] = "啟用背景壁紙。"
+L["STRING_WELCOME_6"] = "每個團隊成員的計時器將被暫停, 如果他們的活動停止, 並再次返回計數時恢復。"
+L["STRING_WELCOME_60"] = "暱稱和頭像"
+L["STRING_WELCOME_61"] = "頭像顯示在工具提示上,也顯示在玩家 Detail窗口中。"
+L["STRING_WELCOME_62"] = "兩者都被發送到您的公會也使用Details! 的其他成員。暱稱替換了您的名字。"
+L["STRING_WELCOME_63"] = "即時更新 DPS/HPS"
+L["STRING_WELCOME_64"] = [=[啟用後, DPS 和HPS 數字會很快更新, 不必等到下一個視窗更新。
+
+|cffffff00重要|r: Youtubers 和 Streamers 可能想要增加觀眾的娛樂性。]=]
+L["STRING_WELCOME_65"] = "按右鍵!"
+L["STRING_WELCOME_66"] = [=[將視窗拖到其他附近以創建群。
+
+視窗群組拉伸和調整大小。
+
+他們也像情侶一樣生活得更幸福。(^o^?)]=]
+L["STRING_WELCOME_67"] = [=[按 shift 鍵可擴展玩家的工具提示, 以顯示所使用的所有法術。
+
+按Ctrl 擴展玩家的目標 & 按Alt擴展寵物。
+]=]
+L["STRING_WELCOME_68"] = [=[Details! 擁有相當多的插件。
+
+它們存在於各處並能幫助您完成各種任務。
+
+舉例:仇恨值監視表,DPS分析,首領戰鬥總覽,圖表生成等等。]=]
+L["STRING_WELCOME_69"] = "跳過"
+L["STRING_WELCOME_7"] = "用於排名,這個方式會使用已經產生的數據來預測全部團隊成員的DPS及HPS。"
+L["STRING_WELCOME_70"] = "標題條設定"
+L["STRING_WELCOME_71"] = "列表設定"
+L["STRING_WELCOME_72"] = "視窗設定"
+L["STRING_WELCOME_73"] = "選擇字母表或伺服器:"
+L["STRING_WELCOME_74"] = "拉丁字母表"
+L["STRING_WELCOME_75"] = "西瑞爾字母表"
+L["STRING_WELCOME_76"] = "中國"
+L["STRING_WELCOME_77"] = "韓國"
+L["STRING_WELCOME_78"] = "台灣"
+L["STRING_WELCOME_79"] = "創建第二個視窗"
+L["STRING_WINDOW_NOTFOUND"] = "沒有找到視窗。"
+L["STRING_WINDOW_NUMBER"] = "視窗數"
+L["STRING_WINDOW1ATACH_DESC"] = "要創建窗口組,請拖拽窗口 #2 到窗口 #1 旁"
+L["STRING_WIPE_ALERT"] = "團隊隊長呼叫(RL Call): 清除!"
+L["STRING_WIPE_ERROR1"] = "錯誤:已經呼叫清除..."
+L["STRING_WIPE_ERROR2"] = "我們正處於一場團隊副本首領戰鬥之中"
+L["STRING_WIPE_ERROR3"] = "無法終止該首領戰鬥"
+L["STRING_YES"] = "好"
+