dragon ui + aio в базовый комплект поставки
@@ -0,0 +1,16 @@
|
||||
## Interface: 30300
|
||||
## Title: AIO
|
||||
## Notes: Allows sending addons from server to client and allows client-server communication.
|
||||
## Author: Rochet2 <https://github.com/Rochet2>
|
||||
## SavedVariables: AIO_sv, AIO_sv_Addons
|
||||
## SavedVariablesPerCharacter: AIO_sv_char
|
||||
|
||||
#dependencies
|
||||
Dep_LibWindow-1.1\LibStub.lua
|
||||
Dep_LibWindow-1.1\LibWindow-1.1\LibWindow-1.1.lua
|
||||
Dep_Smallfolk\smallfolk.lua
|
||||
lualzw-zeros\lualzw.lua
|
||||
queue.lua
|
||||
|
||||
#core
|
||||
AIO.lua
|
||||
@@ -0,0 +1,13 @@
|
||||
------------------------------------------------------------------------
|
||||
r12 | nevcairiel | 2014-10-14 19:12:48 +0000 (Tue, 14 Oct 2014) | 1 line
|
||||
Changed paths:
|
||||
M /trunk/LibWindow-1.1.toc
|
||||
|
||||
Update TOC
|
||||
------------------------------------------------------------------------
|
||||
r11 | mikk | 2013-03-10 14:27:14 +0000 (Sun, 10 Mar 2013) | 1 line
|
||||
Changed paths:
|
||||
M /trunk/LibWindow-1.1.toc
|
||||
|
||||
TOC 50200
|
||||
------------------------------------------------------------------------
|
||||
@@ -0,0 +1,51 @@
|
||||
-- $Id: LibStub.lua 76 2007-09-03 01:50:17Z mikk $
|
||||
-- LibStub is a simple versioning stub meant for use in Libraries. http://www.wowace.com/wiki/LibStub for more info
|
||||
-- LibStub is hereby placed in the Public Domain
|
||||
-- Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke
|
||||
local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 2 -- NEVER MAKE THIS AN SVN REVISION! IT NEEDS TO BE USABLE IN ALL REPOS!
|
||||
local LibStub = _G[LIBSTUB_MAJOR]
|
||||
|
||||
-- Check to see is this version of the stub is obsolete
|
||||
if not LibStub or LibStub.minor < LIBSTUB_MINOR then
|
||||
LibStub = LibStub or {libs = {}, minors = {} }
|
||||
_G[LIBSTUB_MAJOR] = LibStub
|
||||
LibStub.minor = LIBSTUB_MINOR
|
||||
|
||||
-- LibStub:NewLibrary(major, minor)
|
||||
-- major (string) - the major version of the library
|
||||
-- minor (string or number ) - the minor version of the library
|
||||
--
|
||||
-- returns nil if a newer or same version of the lib is already present
|
||||
-- returns empty library object or old library object if upgrade is needed
|
||||
function LibStub:NewLibrary(major, minor)
|
||||
assert(type(major) == "string", "Bad argument #2 to `NewLibrary' (string expected)")
|
||||
minor = assert(tonumber(strmatch(minor, "%d+")), "Minor version must either be a number or contain a number.")
|
||||
|
||||
local oldminor = self.minors[major]
|
||||
if oldminor and oldminor >= minor then return nil end
|
||||
self.minors[major], self.libs[major] = minor, self.libs[major] or {}
|
||||
return self.libs[major], oldminor
|
||||
end
|
||||
|
||||
-- LibStub:GetLibrary(major, [silent])
|
||||
-- major (string) - the major version of the library
|
||||
-- silent (boolean) - if true, library is optional, silently return nil if its not found
|
||||
--
|
||||
-- throws an error if the library can not be found (except silent is set)
|
||||
-- returns the library object if found
|
||||
function LibStub:GetLibrary(major, silent)
|
||||
if not self.libs[major] and not silent then
|
||||
error(("Cannot find a library instance of %q."):format(tostring(major)), 2)
|
||||
end
|
||||
return self.libs[major], self.minors[major]
|
||||
end
|
||||
|
||||
-- LibStub:IterateLibraries()
|
||||
--
|
||||
-- Returns an iterator for the currently registered libraries
|
||||
function LibStub:IterateLibraries()
|
||||
return pairs(self.libs)
|
||||
end
|
||||
|
||||
setmetatable(LibStub, { __call = LibStub.GetLibrary })
|
||||
end
|
||||
@@ -0,0 +1,16 @@
|
||||
## Interface: 60000
|
||||
## LoadOnDemand: 1
|
||||
## Title: Lib: Window-1.1
|
||||
## Version: 1.1.12
|
||||
## Notes: A library that handles the basics of "window" style frames
|
||||
## Author: Mikk
|
||||
## eMail: dpsgnome@mail.com
|
||||
## X-Category: Library
|
||||
## X-License: Public Domain
|
||||
## X-Curse-Packaged-Version: r12
|
||||
## X-Curse-Project-Name: LibWindow-1.1
|
||||
## X-Curse-Project-ID: libwindow-1-1
|
||||
## X-Curse-Repository-ID: wow/libwindow-1-1/mainline
|
||||
|
||||
LibStub.lua
|
||||
LibWindow-1.1\LibWindow-1.1.lua
|
||||
@@ -0,0 +1,317 @@
|
||||
--[[
|
||||
Name: LibWindow-1.1
|
||||
Revision: $Rev: 8 $
|
||||
Author(s): Mikk (dpsgnome@mail.com)
|
||||
Website: http://old.wowace.com/wiki/LibWindow-1.1
|
||||
Documentation: http://old.wowace.com/wiki/LibWindow-1.1
|
||||
SVN: http://svn.wowace.com/root/trunk/WindowLib/Window-1.0
|
||||
Description: A library that handles the basics of "window" style frames: scaling, smart position saving, dragging..
|
||||
Dependencies: none
|
||||
License: Public Domain
|
||||
]]
|
||||
|
||||
local MAJOR = "LibWindow-1.1"
|
||||
local MINOR = tonumber(("$Revision: 8 $"):match("(%d+)"))
|
||||
|
||||
local lib = LibStub:NewLibrary(MAJOR,MINOR)
|
||||
if not lib then return end
|
||||
|
||||
local min,max,abs = min,max,abs
|
||||
local pairs = pairs
|
||||
local tostring = tostring
|
||||
local UIParent,GetScreenWidth,GetScreenHeight,IsAltKeyDown = UIParent,GetScreenWidth,GetScreenHeight,IsAltKeyDown
|
||||
-- GLOBALS: error, ChatFrame1, assert
|
||||
|
||||
local function print(msg) ChatFrame1:AddMessage(MAJOR..": "..tostring(msg)) end
|
||||
|
||||
lib.utilFrame = lib.utilFrame or CreateFrame("Frame")
|
||||
lib.delayedSavePosition = lib.delayedSavePosition or {}
|
||||
lib.windowData = lib.windowData or {}
|
||||
--[frameref]={
|
||||
-- names={optional names data from .RegisterConfig()}
|
||||
-- storage= -- tableref where config data is read/written
|
||||
-- altEnable=true/false
|
||||
--}
|
||||
|
||||
|
||||
lib.embeds = lib.embeds or {}
|
||||
|
||||
local mixins = {} -- "FuncName"=true
|
||||
|
||||
|
||||
|
||||
---------------------------------------------------------
|
||||
-- UTILITIES
|
||||
---------------------------------------------------------
|
||||
|
||||
|
||||
local function getStorageName(frame, name)
|
||||
local names = lib.windowData[frame].names
|
||||
if names then
|
||||
if names[name] then
|
||||
return names[name]
|
||||
end
|
||||
if names.prefix then
|
||||
return names.prefix .. name;
|
||||
end
|
||||
end
|
||||
return name;
|
||||
end
|
||||
|
||||
local function setStorage(frame, name, value)
|
||||
lib.windowData[frame].storage[getStorageName(frame, name)] = value
|
||||
end
|
||||
|
||||
local function getStorage(frame, name)
|
||||
return lib.windowData[frame].storage[getStorageName(frame, name)]
|
||||
end
|
||||
|
||||
|
||||
lib.utilFrame:SetScript("OnUpdate", function(this)
|
||||
this:Hide()
|
||||
for frame,_ in pairs(lib.delayedSavePosition) do
|
||||
lib.delayedSavePosition[frame] = nil
|
||||
lib.SavePosition(frame)
|
||||
end
|
||||
end)
|
||||
|
||||
local function queueSavePosition(frame)
|
||||
lib.delayedSavePosition[frame] = true
|
||||
lib.utilFrame:Show()
|
||||
end
|
||||
|
||||
|
||||
---------------------------------------------------------
|
||||
-- IMPORTANT APIS
|
||||
---------------------------------------------------------
|
||||
|
||||
mixins["RegisterConfig"]=true
|
||||
function lib.RegisterConfig(frame, storage, names)
|
||||
if not lib.windowData[frame] then
|
||||
lib.windowData[frame] = {}
|
||||
end
|
||||
lib.windowData[frame].names = names
|
||||
lib.windowData[frame].storage = storage
|
||||
|
||||
--[[ debug
|
||||
frame.tx = frame:CreateTexture()
|
||||
frame.tx:SetTexture(0,0,0, 0.4)
|
||||
frame.tx:SetAllPoints(frame)
|
||||
frame.tx:Show()
|
||||
]]
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
---------------------------------------------------------
|
||||
-- POSITIONING AND SCALING
|
||||
---------------------------------------------------------
|
||||
|
||||
local nilParent = {
|
||||
GetWidth = function()
|
||||
return GetScreenWidth() * UIParent:GetScale()
|
||||
end,
|
||||
GetHeight = function()
|
||||
return GetScreenHeight() * UIParent:GetScale()
|
||||
end,
|
||||
GetScale = function()
|
||||
return 1
|
||||
end,
|
||||
}
|
||||
|
||||
mixins["SavePosition"]=true
|
||||
function lib.SavePosition(frame)
|
||||
local parent = frame:GetParent() or nilParent
|
||||
-- No, this won't work very well with frames that aren't parented to nil or UIParent
|
||||
local s = frame:GetScale()
|
||||
local left,top = frame:GetLeft()*s, frame:GetTop()*s
|
||||
local right,bottom = frame:GetRight()*s, frame:GetBottom()*s
|
||||
local pwidth, pheight = parent:GetWidth(), parent:GetHeight()
|
||||
|
||||
local x,y,point;
|
||||
if left < (pwidth-right) and left < abs((left+right)/2 - pwidth/2) then
|
||||
x = left;
|
||||
point="LEFT";
|
||||
elseif (pwidth-right) < abs((left+right)/2 - pwidth/2) then
|
||||
x = right-pwidth;
|
||||
point="RIGHT";
|
||||
else
|
||||
x = (left+right)/2 - pwidth/2;
|
||||
point="";
|
||||
end
|
||||
|
||||
if bottom < (pheight-top) and bottom < abs((bottom+top)/2 - pheight/2) then
|
||||
y = bottom;
|
||||
point="BOTTOM"..point;
|
||||
elseif (pheight-top) < abs((bottom+top)/2 - pheight/2) then
|
||||
y = top-pheight;
|
||||
point="TOP"..point;
|
||||
else
|
||||
y = (bottom+top)/2 - pheight/2;
|
||||
-- point=""..point;
|
||||
end
|
||||
|
||||
if point=="" then
|
||||
point = "CENTER"
|
||||
end
|
||||
|
||||
setStorage(frame, "x", x)
|
||||
setStorage(frame, "y", y)
|
||||
setStorage(frame, "point", point)
|
||||
setStorage(frame, "scale", s)
|
||||
|
||||
frame:ClearAllPoints()
|
||||
frame:SetPoint(point, frame:GetParent(), point, x/s, y/s);
|
||||
end
|
||||
|
||||
|
||||
mixins["RestorePosition"]=true
|
||||
function lib.RestorePosition(frame)
|
||||
local x = getStorage(frame, "x")
|
||||
local y = getStorage(frame, "y")
|
||||
local point = getStorage(frame, "point")
|
||||
|
||||
local s = getStorage(frame, "scale")
|
||||
if s then
|
||||
(frame.lw11origSetScale or frame.SetScale)(frame,s)
|
||||
else
|
||||
s = frame:GetScale()
|
||||
end
|
||||
|
||||
if not x or not y then -- nothing stored in config yet, smack it in the center
|
||||
x=0; y=0; point="CENTER"
|
||||
end
|
||||
|
||||
x = x/s
|
||||
y = y/s
|
||||
|
||||
frame:ClearAllPoints()
|
||||
if not point and y==0 then -- errr why did i do this check again? must have been a reason, but i can't remember it =/
|
||||
point="CENTER"
|
||||
end
|
||||
|
||||
if not point then -- we have position, but no point, which probably means we're going from data stored by the addon itself before LibWindow was added to it. It was PROBABLY topleft->bottomleft anchored. Most do it that way.
|
||||
frame:SetPoint("TOPLEFT", frame:GetParent(), "BOTTOMLEFT", x, y)
|
||||
-- make it compute a better attachpoint (on next update)
|
||||
queueSavePosition(frame)
|
||||
return
|
||||
end
|
||||
|
||||
frame:SetPoint(point, frame:GetParent(), point, x, y)
|
||||
end
|
||||
|
||||
|
||||
mixins["SetScale"]=true
|
||||
function lib.SetScale(frame, scale)
|
||||
setStorage(frame, "scale", scale);
|
||||
(frame.lw11origSetScale or frame.SetScale)(frame,scale)
|
||||
lib.RestorePosition(frame)
|
||||
end
|
||||
|
||||
|
||||
|
||||
---------------------------------------------------------
|
||||
-- DRAG SUPPORT
|
||||
---------------------------------------------------------
|
||||
|
||||
|
||||
function lib.OnDragStart(frame)
|
||||
lib.windowData[frame].isDragging = true
|
||||
frame:StartMoving()
|
||||
end
|
||||
|
||||
|
||||
function lib.OnDragStop(frame)
|
||||
frame:StopMovingOrSizing()
|
||||
lib.SavePosition(frame)
|
||||
lib.windowData[frame].isDragging = false
|
||||
if lib.windowData[frame].altEnable and not IsAltKeyDown() then
|
||||
frame:EnableMouse(false)
|
||||
end
|
||||
end
|
||||
|
||||
local function onDragStart(...) return lib.OnDragStart(...) end -- upgradable
|
||||
local function onDragStop(...) return lib.OnDragStop(...) end -- upgradable
|
||||
|
||||
mixins["MakeDraggable"]=true
|
||||
function lib.MakeDraggable(frame)
|
||||
assert(lib.windowData[frame])
|
||||
frame:SetMovable(true)
|
||||
frame:SetScript("OnDragStart", onDragStart)
|
||||
frame:SetScript("OnDragStop", onDragStop)
|
||||
frame:RegisterForDrag("LeftButton")
|
||||
end
|
||||
|
||||
|
||||
---------------------------------------------------------
|
||||
-- MOUSEWHEEL
|
||||
---------------------------------------------------------
|
||||
|
||||
function lib.OnMouseWheel(frame, dir)
|
||||
local scale = getStorage(frame, "scale")
|
||||
if dir<0 then
|
||||
scale=max(scale*0.9, 0.1)
|
||||
else
|
||||
scale=min(scale/0.9, 3)
|
||||
end
|
||||
lib.SetScale(frame, scale)
|
||||
end
|
||||
|
||||
local function onMouseWheel(...) return lib.OnMouseWheel(...) end -- upgradable
|
||||
|
||||
mixins["EnableMouseWheelScaling"]=true
|
||||
function lib.EnableMouseWheelScaling(frame)
|
||||
frame:SetScript("OnMouseWheel", onMouseWheel)
|
||||
end
|
||||
|
||||
|
||||
---------------------------------------------------------
|
||||
-- ENABLEMOUSE-ON-ALT
|
||||
---------------------------------------------------------
|
||||
|
||||
lib.utilFrame:SetScript("OnEvent", function(this, event, key, state)
|
||||
if event=="MODIFIER_STATE_CHANGED" then
|
||||
if key == "LALT" or key == "RALT" then
|
||||
for frame,_ in pairs(lib.altEnabledFrames) do
|
||||
if not lib.windowData[frame].isDragging then -- if it's already dragging, it'll disable mouse on DragStop instead
|
||||
frame:EnableMouse(state == 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
mixins["EnableMouseOnAlt"]=true
|
||||
function lib.EnableMouseOnAlt(frame)
|
||||
assert(lib.windowData[frame])
|
||||
lib.windowData[frame].altEnable = true
|
||||
frame:EnableMouse(not not IsAltKeyDown())
|
||||
if not lib.altEnabledFrames then
|
||||
lib.altEnabledFrames = {}
|
||||
lib.utilFrame:RegisterEvent("MODIFIER_STATE_CHANGED")
|
||||
end
|
||||
lib.altEnabledFrames[frame] = true
|
||||
end
|
||||
|
||||
|
||||
|
||||
---------------------------------------------------------
|
||||
-- Embed support (into FRAMES, not addons!)
|
||||
---------------------------------------------------------
|
||||
|
||||
function lib:Embed(target)
|
||||
if not target or not target[0] or not target.GetObjectType then
|
||||
error("Usage: LibWindow:Embed(frame)", 1)
|
||||
end
|
||||
target.lw11origSetScale = target.SetScale
|
||||
for name, _ in pairs(mixins) do
|
||||
target[name] = self[name]
|
||||
end
|
||||
lib.embeds[target] = true
|
||||
return target
|
||||
end
|
||||
|
||||
for target, _ in pairs(lib.embeds) do
|
||||
lib:Embed(target)
|
||||
end
|
||||
@@ -0,0 +1,20 @@
|
||||
Copyright (c) 2014 Robin Wellner
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
Smallfolk
|
||||
=========
|
||||
|
||||
Smallfolk is a reasonably fast, robust, richtly-featured table serialization
|
||||
library for Lua. It was specifically written to allow complex data structures
|
||||
to be loaded from unsafe sources for [LÖVE](http://love2d.org/) games, but can
|
||||
be used anywhere.
|
||||
|
||||
You use, distribute and extend Smallfolk under the terms of the MIT license.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
Smallfolk is very simple and easy to use:
|
||||
|
||||
```lua
|
||||
local smallfolk = require 'smallfolk'
|
||||
|
||||
print(smallfolk.dumps({"Hello", world = true}))
|
||||
print(smallfolk.loads('{"foo":"bar"}').foo)
|
||||
-- prints:
|
||||
-- {"Hello","world":t}
|
||||
-- bar
|
||||
```
|
||||
|
||||
Fast
|
||||
----
|
||||
|
||||
Using Serpent's benchmark code, Smallfolk's serialization speed is comparable
|
||||
to that of Ser (and Ser is 33% faster than Serpent).
|
||||
|
||||
It should be noted that deserialization is much slower in Smallfolk than in
|
||||
most other serialization libraries, because it parses the input itself instead
|
||||
of handing it over to Lua. However, if you use LuaJIT this difference is much
|
||||
less, and it is not noticable for small outputs. By default, Smallfolk rejects
|
||||
inputs that are too large, to prevent DOS attacks.
|
||||
|
||||
Robust
|
||||
------
|
||||
|
||||
Sometimes you have strange, non-euclidean geometries in your table
|
||||
constructions. It happens, I don't judge. Smallfolk can deal with that, where
|
||||
some other serialization libraries (or anything that produces JSON) cry "Iä!
|
||||
Iä! Cthulhu fhtagn!" and give up — or worse, silently produce incorrect
|
||||
data.
|
||||
|
||||
```lua
|
||||
local smallfolk = require 'smallfolk'
|
||||
|
||||
local cthulhu = {{}, {}, {}}
|
||||
cthulhu.fhtagn = cthulhu
|
||||
cthulhu[1][cthulhu[2]] = cthulhu[3]
|
||||
cthulhu[2][cthulhu[1]] = cthulhu[2]
|
||||
cthulhu[3][cthulhu[3]] = cthulhu
|
||||
print(smallfolk.dumps(cthulhu))
|
||||
-- prints:
|
||||
-- {{{@2:@3}:{@4:@1}},@3,@4,"fhtagn":@1}
|
||||
```
|
||||
|
||||
Secure
|
||||
------
|
||||
|
||||
Smallfolk doesn't run arbitrary Lua code, so you can safely use it when you
|
||||
want to read data from an untrusted source.
|
||||
|
||||
Compact
|
||||
-------
|
||||
|
||||
Smallfolk creates really small output files compared to something like Ser when
|
||||
it encounters a lot of non-tree-like data, by using numbered references rather
|
||||
than item assignment.
|
||||
|
||||
Tested
|
||||
------
|
||||
|
||||
Check out `tests.lua` to see how Smallfolk behaves with all kinds of inputs.
|
||||
|
||||
Reference
|
||||
---------
|
||||
|
||||
###`smallfolk.dumps(object)`
|
||||
|
||||
Returns an 8-bit string representation of `object`. Throws an error if `object`
|
||||
contains any types that cannot be serialised (userdata, functions and threads).
|
||||
|
||||
###`smallfolk.loads(string[, maxsize=10000])`
|
||||
|
||||
Returns an object whose representation would be `string`. If the length of
|
||||
`string` is larger than `maxsize`, no deserialization is attempted and instead
|
||||
an error is thrown. If `string` is not a valid representation of any object,
|
||||
an error is thrown.
|
||||
|
||||
See also
|
||||
--------
|
||||
|
||||
* [Ser](https://github.com/gvx/Ser): for trusted-source serialization
|
||||
* [Lady](https://github.com/gvx/Lady): for trusted-source savegames
|
||||
@@ -0,0 +1,218 @@
|
||||
local M = {}
|
||||
Smallfolk = M
|
||||
local expect_object, dump_object
|
||||
local error, tostring, pairs, type, floor, huge, concat = error, tostring, pairs, type, math.floor, math.huge, table.concat
|
||||
|
||||
local dump_type = {}
|
||||
|
||||
function dump_type:string(nmemo, memo, acc)
|
||||
local nacc = #acc
|
||||
acc[nacc + 1] = '"'
|
||||
acc[nacc + 2] = self:gsub('"', '""')
|
||||
acc[nacc + 3] = '"'
|
||||
return nmemo
|
||||
end
|
||||
|
||||
function dump_type:number(nmemo, memo, acc)
|
||||
acc[#acc + 1] = ("%.17g"):format(self)
|
||||
return nmemo
|
||||
end
|
||||
|
||||
function dump_type:table(nmemo, memo, acc)
|
||||
--[[
|
||||
if memo[self] then
|
||||
acc[#acc + 1] = '@'
|
||||
acc[#acc + 1] = tostring(memo[self])
|
||||
return nmemo
|
||||
end
|
||||
nmemo = nmemo + 1
|
||||
]]
|
||||
memo[self] = nmemo
|
||||
acc[#acc + 1] = '{'
|
||||
local nself = #self
|
||||
for i = 1, nself do -- don't use ipairs here, we need the gaps
|
||||
nmemo = dump_object(self[i], nmemo, memo, acc)
|
||||
acc[#acc + 1] = ','
|
||||
end
|
||||
for k, v in pairs(self) do
|
||||
if type(k) ~= 'number' or floor(k) ~= k or k < 1 or k > nself then
|
||||
nmemo = dump_object(k, nmemo, memo, acc)
|
||||
acc[#acc + 1] = ':'
|
||||
nmemo = dump_object(v, nmemo, memo, acc)
|
||||
acc[#acc + 1] = ','
|
||||
end
|
||||
end
|
||||
acc[#acc] = acc[#acc] == '{' and '{}' or '}'
|
||||
return nmemo
|
||||
end
|
||||
|
||||
function dump_object(object, nmemo, memo, acc)
|
||||
if object == true then
|
||||
acc[#acc + 1] = 't'
|
||||
elseif object == false then
|
||||
acc[#acc + 1] = 'f'
|
||||
elseif object == nil then
|
||||
acc[#acc + 1] = 'n'
|
||||
elseif object ~= object then
|
||||
if (''..object):sub(1,1) == '-' then
|
||||
acc[#acc + 1] = 'N'
|
||||
else
|
||||
acc[#acc + 1] = 'Q'
|
||||
end
|
||||
elseif object == huge then
|
||||
acc[#acc + 1] = 'I'
|
||||
elseif object == -huge then
|
||||
acc[#acc + 1] = 'i'
|
||||
else
|
||||
local t = type(object)
|
||||
if not dump_type[t] then
|
||||
error('cannot dump type ' .. t)
|
||||
end
|
||||
return dump_type[t](object, nmemo, memo, acc)
|
||||
end
|
||||
return nmemo
|
||||
end
|
||||
|
||||
function M.dumps(object)
|
||||
local nmemo = 0
|
||||
local memo = {}
|
||||
local acc = {}
|
||||
dump_object(object, nmemo, memo, acc)
|
||||
return concat(acc)
|
||||
end
|
||||
|
||||
local function invalid(i)
|
||||
error('invalid input at position ' .. i)
|
||||
end
|
||||
|
||||
local nonzero_digit = {['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true, ['5'] = true, ['6'] = true, ['7'] = true, ['8'] = true, ['9'] = true}
|
||||
local is_digit = {['0'] = true, ['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true, ['5'] = true, ['6'] = true, ['7'] = true, ['8'] = true, ['9'] = true}
|
||||
local function expect_number(string, start)
|
||||
local i = start
|
||||
local head = string:sub(i, i)
|
||||
if head == '-' then
|
||||
i = i + 1
|
||||
head = string:sub(i, i)
|
||||
end
|
||||
if nonzero_digit[head] then
|
||||
repeat
|
||||
i = i + 1
|
||||
head = string:sub(i, i)
|
||||
until not is_digit[head]
|
||||
elseif head == '0' then
|
||||
i = i + 1
|
||||
head = string:sub(i, i)
|
||||
else
|
||||
invalid(i)
|
||||
end
|
||||
if head == '.' then
|
||||
local oldi = i
|
||||
repeat
|
||||
i = i + 1
|
||||
head = string:sub(i, i)
|
||||
until not is_digit[head]
|
||||
if i == oldi + 1 then
|
||||
invalid(i)
|
||||
end
|
||||
end
|
||||
if head == 'e' or head == 'E' then
|
||||
i = i + 1
|
||||
head = string:sub(i, i)
|
||||
if head == '+' or head == '-' then
|
||||
i = i + 1
|
||||
head = string:sub(i, i)
|
||||
end
|
||||
if not is_digit[head] then
|
||||
invalid(i)
|
||||
end
|
||||
repeat
|
||||
i = i + 1
|
||||
head = string:sub(i, i)
|
||||
until not is_digit[head]
|
||||
end
|
||||
return tonumber(string:sub(start, i - 1)), i
|
||||
end
|
||||
|
||||
local expect_object_head = {
|
||||
t = function(string, i) return true, i end,
|
||||
f = function(string, i) return false, i end,
|
||||
n = function(string, i) return nil, i end,
|
||||
Q = function(string, i) return -(0/0), i end,
|
||||
N = function(string, i) return 0/0, i end,
|
||||
I = function(string, i) return 1/0, i end,
|
||||
i = function(string, i) return -1/0, i end,
|
||||
['"'] = function(string, i)
|
||||
local nexti = i - 1
|
||||
repeat
|
||||
nexti = string:find('"', nexti + 1, true) + 1
|
||||
until string:sub(nexti, nexti) ~= '"'
|
||||
return string:sub(i, nexti - 2):gsub('""', '"'), nexti
|
||||
end,
|
||||
['0'] = function(string, i)
|
||||
return expect_number(string, i - 1)
|
||||
end,
|
||||
['{'] = function(string, i, tables)
|
||||
local nt, k, v = {}
|
||||
local j = 1
|
||||
tables[#tables + 1] = nt
|
||||
if string:sub(i, i) == '}' then
|
||||
return nt, i + 1
|
||||
end
|
||||
while true do
|
||||
k, i = expect_object(string, i, tables)
|
||||
if string:sub(i, i) == ':' then
|
||||
v, i = expect_object(string, i + 1, tables)
|
||||
nt[k] = v
|
||||
else
|
||||
nt[j] = k
|
||||
j = j + 1
|
||||
end
|
||||
local head = string:sub(i, i)
|
||||
if head == ',' then
|
||||
i = i + 1
|
||||
elseif head == '}' then
|
||||
return nt, i + 1
|
||||
else
|
||||
invalid(i)
|
||||
end
|
||||
end
|
||||
end,
|
||||
--[[
|
||||
['@'] = function(string, i, tables)
|
||||
local match = string:match('^%d+', i)
|
||||
local ref = tonumber(match)
|
||||
if tables[ref] then
|
||||
return tables[ref], i + #match
|
||||
end
|
||||
invalid(i)
|
||||
end,
|
||||
]]
|
||||
}
|
||||
expect_object_head['1'] = expect_object_head['0']
|
||||
expect_object_head['2'] = expect_object_head['0']
|
||||
expect_object_head['3'] = expect_object_head['0']
|
||||
expect_object_head['4'] = expect_object_head['0']
|
||||
expect_object_head['5'] = expect_object_head['0']
|
||||
expect_object_head['6'] = expect_object_head['0']
|
||||
expect_object_head['7'] = expect_object_head['0']
|
||||
expect_object_head['8'] = expect_object_head['0']
|
||||
expect_object_head['9'] = expect_object_head['0']
|
||||
expect_object_head['-'] = expect_object_head['0']
|
||||
expect_object_head['.'] = expect_object_head['0']
|
||||
|
||||
expect_object = function(string, i, tables)
|
||||
local head = string:sub(i, i)
|
||||
if expect_object_head[head] then
|
||||
return expect_object_head[head](string, i + 1, tables)
|
||||
end
|
||||
invalid(i)
|
||||
end
|
||||
|
||||
function M.loads(string, maxsize)
|
||||
if #string > (maxsize or 10000) then
|
||||
error 'input too large'
|
||||
end
|
||||
return (expect_object(string, 1, {}))
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2016
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,72 @@
|
||||
# lualzw
|
||||
A relatively fast LZW compression algorithm in pure lua
|
||||
|
||||
# encoding and decoding
|
||||
Lossless compression for any text. The more repetition in the text, the better.
|
||||
|
||||
16 bit encoding is used. So each 8 bit character is encoded as 16 bit.
|
||||
This means that the dictionary size is 65280.
|
||||
|
||||
Any special characters like `äöå` that are represented with multiple characters are supported. The special characters are split up into single characters that are then encoded and decoded.
|
||||
|
||||
While compressing, the algorithm checks if the result size gets over the input. If it does, then the input is not compressed and the algorithm returns the input prematurely as the compressed result.
|
||||
|
||||
The `zeros` branch contains a version that does not add additional null `\0` characters to the input when encoding. Any existing null characters in input string are preserved as nulls however so make sure your input does not contain nulls.
|
||||
|
||||
# usage
|
||||
```lua
|
||||
local lualzw = require("lualzw")
|
||||
|
||||
local input = "foofoofoofoofoofoofoofoofoo"
|
||||
local compressed = assert(lualzw.compress(input))
|
||||
local decompressed = assert(lualzw.decompress(compressed))
|
||||
assert(input == decompressed)
|
||||
```
|
||||
|
||||
# errors
|
||||
Returns nil and an error message when the algorithm fails to compress or decompress.
|
||||
|
||||
# speed
|
||||
Times are in seconds.
|
||||
Both have the same generated input.
|
||||
The values are an average of 10 tries.
|
||||
|
||||
Note that compressing random generated inputs results usually in bigger result than original. In these cases the algorithms do not compress and return input instead and thus compression result is 100% of input.
|
||||
|
||||
lualzw is at an advantage in cases where compression cannot be done as it stops prematurely and LibCompress does not.
|
||||
Also lualzw is at an advantage in cases where compression can be done as it has a larger dictionary in use.
|
||||
|
||||
Input: 1000000 random generated bytes converted into string
|
||||
|
||||
algorithm|compress|decompress|result % of input
|
||||
---------|--------|----------|-------------
|
||||
lualzw|0.6622|0.0003|100
|
||||
LibCompress|2.1983|0.0024|100
|
||||
|
||||
Input: 1000000 random generated bytes in ASCII range converted into string
|
||||
|
||||
algorithm|compress|decompress|result % of input
|
||||
---------|--------|----------|-------------
|
||||
lualzw|0.812|0.0022|100
|
||||
LibCompress|1.782|0.0007|100
|
||||
|
||||
Input: 1000000 random generated repeating bytes converted into string
|
||||
|
||||
algorithm|compress|decompress|result % of input
|
||||
---------|--------|----------|-------------
|
||||
lualzw|0.3975|0.0262|4.5001
|
||||
LibCompress|0.3907|0.0264|6.6997
|
||||
|
||||
Input: 1000000 of same character
|
||||
|
||||
algorithm|compress|decompress|result % of input
|
||||
---------|--------|----------|-------------
|
||||
lualzw|0.7045|0.0026|0.2829
|
||||
LibCompress|0.6418|0.0038|0.4241
|
||||
|
||||
Input: "ymn32h8hm8ekrwjkrn9f" repeated 50000 times. In total 1000000 bytes
|
||||
|
||||
algorithm|compress|decompress|result % of input
|
||||
---------|--------|----------|-------------
|
||||
lualzw|0.4788|0.0088|1.2629
|
||||
LibCompress|0.4426|0.0093|1.8905
|
||||
@@ -0,0 +1,166 @@
|
||||
--[[
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2016 Rochet2
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
]]
|
||||
|
||||
local char = string.char
|
||||
local type = type
|
||||
local select = select
|
||||
local sub = string.sub
|
||||
local tconcat = table.concat
|
||||
|
||||
local basedictcompress = {}
|
||||
local basedictdecompress = {}
|
||||
for i = 0, 255 do
|
||||
local ic, iic = char(i), char(i, 1)
|
||||
basedictcompress[ic] = iic
|
||||
basedictdecompress[iic] = ic
|
||||
end
|
||||
|
||||
local function dictAddA(str, dict, a, b)
|
||||
if a >= 256 then
|
||||
a, b = 1, b+1
|
||||
if b >= 256 then
|
||||
dict = {}
|
||||
b = 2
|
||||
end
|
||||
end
|
||||
dict[str] = char(a,b)
|
||||
a = a+1
|
||||
return dict, a, b
|
||||
end
|
||||
|
||||
local function compress(input)
|
||||
if type(input) ~= "string" then
|
||||
return nil, "string expected, got "..type(input)
|
||||
end
|
||||
local len = #input
|
||||
if len <= 1 then
|
||||
return "u"..input
|
||||
end
|
||||
|
||||
local dict = {}
|
||||
local a, b = 1, 2
|
||||
|
||||
local result = {"c"}
|
||||
local resultlen = 1
|
||||
local n = 2
|
||||
local word = ""
|
||||
for i = 1, len do
|
||||
local c = sub(input, i, i)
|
||||
local wc = word..c
|
||||
if not (basedictcompress[wc] or dict[wc]) then
|
||||
local write = basedictcompress[word] or dict[word]
|
||||
if not write then
|
||||
return nil, "algorithm error, could not fetch word"
|
||||
end
|
||||
result[n] = write
|
||||
resultlen = resultlen + #write
|
||||
n = n+1
|
||||
if len <= resultlen then
|
||||
return "u"..input
|
||||
end
|
||||
dict, a, b = dictAddA(wc, dict, a, b)
|
||||
word = c
|
||||
else
|
||||
word = wc
|
||||
end
|
||||
end
|
||||
result[n] = basedictcompress[word] or dict[word]
|
||||
resultlen = resultlen+#result[n]
|
||||
n = n+1
|
||||
if len <= resultlen then
|
||||
return "u"..input
|
||||
end
|
||||
return tconcat(result)
|
||||
end
|
||||
|
||||
local function dictAddB(str, dict, a, b)
|
||||
if a >= 256 then
|
||||
a, b = 1, b+1
|
||||
if b >= 256 then
|
||||
dict = {}
|
||||
b = 2
|
||||
end
|
||||
end
|
||||
dict[char(a,b)] = str
|
||||
a = a+1
|
||||
return dict, a, b
|
||||
end
|
||||
|
||||
local function decompress(input)
|
||||
if type(input) ~= "string" then
|
||||
return nil, "string expected, got "..type(input)
|
||||
end
|
||||
|
||||
if #input < 1 then
|
||||
return nil, "invalid input - not a compressed string"
|
||||
end
|
||||
|
||||
local control = sub(input, 1, 1)
|
||||
if control == "u" then
|
||||
return sub(input, 2)
|
||||
elseif control ~= "c" then
|
||||
return nil, "invalid input - not a compressed string"
|
||||
end
|
||||
input = sub(input, 2)
|
||||
local len = #input
|
||||
|
||||
if len < 2 then
|
||||
return nil, "invalid input - not a compressed string"
|
||||
end
|
||||
|
||||
local dict = {}
|
||||
local a, b = 1, 2
|
||||
|
||||
local result = {}
|
||||
local n = 1
|
||||
local last = sub(input, 1, 2)
|
||||
result[n] = basedictdecompress[last] or dict[last]
|
||||
n = n+1
|
||||
for i = 3, len, 2 do
|
||||
local code = sub(input, i, i+1)
|
||||
local lastStr = basedictdecompress[last] or dict[last]
|
||||
if not lastStr then
|
||||
return nil, "could not find last from dict. Invalid input?"
|
||||
end
|
||||
local toAdd = basedictdecompress[code] or dict[code]
|
||||
if toAdd then
|
||||
result[n] = toAdd
|
||||
n = n+1
|
||||
dict, a, b = dictAddB(lastStr..sub(toAdd, 1, 1), dict, a, b)
|
||||
else
|
||||
local tmp = lastStr..sub(lastStr, 1, 1)
|
||||
result[n] = tmp
|
||||
n = n+1
|
||||
dict, a, b = dictAddB(tmp, dict, a, b)
|
||||
end
|
||||
last = code
|
||||
end
|
||||
return tconcat(result)
|
||||
end
|
||||
|
||||
lualzw = {
|
||||
compress = compress,
|
||||
decompress = decompress,
|
||||
}
|
||||
return lualzw
|
||||
@@ -0,0 +1,83 @@
|
||||
local Queue = {}
|
||||
function Queue.__index(que, key)
|
||||
return Queue[key]
|
||||
end
|
||||
|
||||
function NewQueue()
|
||||
local t = {first = 0, last = -1}
|
||||
setmetatable(t, Queue)
|
||||
return t
|
||||
end
|
||||
|
||||
function Queue.pushleft(que, value)
|
||||
local first = que.first - 1
|
||||
que.first = first
|
||||
que[first] = value
|
||||
return first
|
||||
end
|
||||
|
||||
function Queue.pushright(que, value)
|
||||
local last = que.last + 1
|
||||
que.last = last
|
||||
que[last] = value
|
||||
return last
|
||||
end
|
||||
|
||||
function Queue.popleft(que)
|
||||
local first = que.first
|
||||
if first > que.last then error("que is empty") end
|
||||
local value = que[first]
|
||||
que[first] = nil -- to allow garbage collection
|
||||
que.first = first + 1
|
||||
return value
|
||||
end
|
||||
|
||||
function Queue.popright(que)
|
||||
local last = que.last
|
||||
if que.first > last then error("que is empty") end
|
||||
local value = que[last]
|
||||
que[last] = nil -- to allow garbage collection
|
||||
que.last = last - 1
|
||||
return value
|
||||
end
|
||||
|
||||
function Queue.peekleft(que)
|
||||
return que[que.first]
|
||||
end
|
||||
|
||||
function Queue.peekright(que)
|
||||
return que[que.last]
|
||||
end
|
||||
|
||||
function Queue.empty(que)
|
||||
return que.last < que.first
|
||||
end
|
||||
|
||||
function Queue.size(que)
|
||||
return que.last - que.first + 1
|
||||
end
|
||||
|
||||
function Queue.clear(que)
|
||||
local l, r = self:getrange()
|
||||
for i = l, r do
|
||||
que[idx] = nil
|
||||
end
|
||||
que.first, que.last = 0, -1
|
||||
end
|
||||
|
||||
function Queue.get(que, idx)
|
||||
if idx < que.first or idx > que.last then
|
||||
return
|
||||
end
|
||||
return que[idx]
|
||||
end
|
||||
|
||||
function Queue.getrange(que)
|
||||
return que.first, que.last
|
||||
end
|
||||
|
||||
function Queue.gettable(que)
|
||||
return que
|
||||
end
|
||||
|
||||
return NewQueue
|
||||
@@ -0,0 +1,708 @@
|
||||
-- ============================================================================
|
||||
-- DragonUI - Atlas Texture Definitions
|
||||
-- Original texture atlas system by Dmitriy (RetailUI), MIT License.
|
||||
-- Maps sprite names to texture coordinates for the custom UI assets.
|
||||
-- ============================================================================
|
||||
|
||||
local addonPath = 'Interface\\AddOns\\DragonUI\\'
|
||||
|
||||
local UnitFrameAsset = { path = addonPath .. 'Textures\\UI\\UnitFrame.blp', width = 1024, height = 512 }
|
||||
local CastingBarAsset = { path = addonPath .. 'Textures\\UI\\CastingBar.blp', width = 512, height = 256 }
|
||||
local CollapseButtonAsset = { path = addonPath .. 'Textures\\UI\\CollapseButton.blp', width = 64, height = 64 }
|
||||
local MinimapAsset = { path = addonPath .. 'Textures\\UI\\Minimap.blp', width = 512, height = 1024 }
|
||||
local ActionBarHorizontalAsset = { path = addonPath .. 'Textures\\UI\\ActionBarHorizontal.blp', width = 512, height = 2048 }
|
||||
local ActionBarVerticalAsset = { path = addonPath .. 'Textures\\UI\\ActionBarVertical.blp', width = 256, height = 64 }
|
||||
local ExperienceBar = { path = addonPath .. 'Textures\\UI\\ExperienceBar.blp', width = 2048, height = 64 }
|
||||
local BagSlotsAsset = { path = addonPath .. 'Textures\\UI\\BagSlots.blp', width = 512, height = 128 }
|
||||
local BagSlotsKeyAsset = { path = addonPath .. 'Textures\\UI\\BagSlotsKey.blp', width = 128, height = 128 }
|
||||
local MicroMenuAsset = { path = addonPath .. 'Textures\\UI\\MicroMenu.blp', width = 512, height = 512 }
|
||||
local CalendarAsset = { path = addonPath .. 'Textures\\Minimap\\Calendar.blp', width = 256, height = 256 }
|
||||
local BattlefieldAsset = { path = addonPath .. 'assets\\uibattlefieldicon.tga', width = 256, height = 64 }
|
||||
local LFGRoleAsset = { path = addonPath .. 'Textures\\PlayerFrame\\LFGRoleIcons.blp', width = 256, height = 256 }
|
||||
local QuestTrackerAsset = { path = addonPath .. 'Textures\\UI\\QuestTracker.BLP', width = 1024, height = 512 }
|
||||
local GuildBannerAsset = { path = addonPath .. 'Textures\\Minimap\\GuildBanner.BLP', width = 256, height = 256 }
|
||||
|
||||
|
||||
local atlasTextures = {
|
||||
['Minimap-GuildBanner-Normal'] = {
|
||||
asset = GuildBannerAsset, texcoord = { 1, 68, 76, 145 }
|
||||
},
|
||||
['Minimap-GuildBanner-Heroic'] = {
|
||||
asset = GuildBannerAsset, texcoord = { 75, 141, 76, 145 }
|
||||
},
|
||||
|
||||
['QuestTracker-Header'] = {
|
||||
asset = QuestTrackerAsset, texcoord = { 11, 571, 247, 317 }
|
||||
},
|
||||
|
||||
['LFGRole-Tank'] = {
|
||||
asset = LFGRoleAsset, texcoord = { 35, 53, 0, 17 }
|
||||
},
|
||||
['LFGRole-Healer'] = {
|
||||
asset = LFGRoleAsset, texcoord = { 18, 35, 0, 18 }
|
||||
},
|
||||
['LFGRole-Damage'] = {
|
||||
asset = LFGRoleAsset, texcoord = { 0, 17, 0, 17 }
|
||||
},
|
||||
|
||||
['TargetFrame-TextureFrame-Normal'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 423, 633, 0, 89 }
|
||||
},
|
||||
['TargetFrame-TextureFrame-Vehicle'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 636, 846, 91, 181 }
|
||||
},
|
||||
['TargetFrame-TextureFrame-Elite'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 211, 421, 0, 89 }
|
||||
},
|
||||
['TargetFrame-TextureFrame-Rare'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 0, 209, 0, 89 }
|
||||
},
|
||||
['TargetFrame-TextureFrame-RareElite'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 0, 222, 91, 181 }
|
||||
},
|
||||
['TargetFrame-StatusBar-Health'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 3, 128, 459, 481 }
|
||||
},
|
||||
['TargetFrame-StatusBar-Mana'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 130, 264, 459, 471 }
|
||||
},
|
||||
['TargetFrame-Status'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 0, 209, 275, 365 }
|
||||
},
|
||||
['TargetFrame-Flash'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 211, 422, 275, 365 }
|
||||
},
|
||||
['TargetFrame-HighLevelIcon'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 252, 262, 490, 503 }
|
||||
},
|
||||
|
||||
['PlayerFrame-TextureFrame-Normal'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 423, 633, 91, 181 }
|
||||
},
|
||||
['PlayerFrame-TextureFrame-Vehicle'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 636, 845, 0, 89 }
|
||||
},
|
||||
['PlayerFrame-StatusBar-Health'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 3, 128, 483, 505 }
|
||||
},
|
||||
['PlayerFrame-StatusBar-Mana'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 130, 256, 474, 485 }
|
||||
},
|
||||
['PlayerFrame-Flash'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 212, 421, 184, 273 }
|
||||
},
|
||||
['PlayerFrame-Status'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 0, 209, 184, 273 }
|
||||
},
|
||||
['PlayerFrame-GroupIndicator'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 131, 203, 491, 505 }
|
||||
},
|
||||
['PlayerFrame-AttackIcon'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 269, 288, 490, 504 }
|
||||
},
|
||||
|
||||
['PartyFrame-TextureFrame-Normal'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 848, 968, 0, 47 }
|
||||
},
|
||||
['PartyFrame-StatusBar-Health'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 259, 330, 474, 485 }
|
||||
},
|
||||
['PartyFrame-StatusBar-Mana'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 267, 341, 460, 469 }
|
||||
},
|
||||
['PartyFrame-Flash'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 848, 968, 50, 97 }
|
||||
},
|
||||
['PartyFrame-Status'] = {
|
||||
asset = UnitFrameAsset, texcoord = { 848, 968, 184, 147 }
|
||||
},
|
||||
|
||||
['CastingBar-Background'] = {
|
||||
asset = CastingBarAsset, texcoord = { 0, 417, 95, 122 }
|
||||
},
|
||||
['CastingBar-Border'] = {
|
||||
asset = CastingBarAsset, texcoord = { 0, 423, 63, 90 }
|
||||
},
|
||||
['CastingBar-MainBackground'] = {
|
||||
asset = CastingBarAsset, texcoord = { 0, 419, 0, 56 }
|
||||
},
|
||||
['CastingBar-StatusBar-Casting'] = {
|
||||
asset = CastingBarAsset, texcoord = { 0, 418, 149, 170 }
|
||||
},
|
||||
['CastingBar-StatusBar-Channeling'] = {
|
||||
asset = CastingBarAsset, texcoord = { 0, 417, 124, 146 }
|
||||
},
|
||||
['CastingBar-StatusBar-Failed'] = {
|
||||
asset = CastingBarAsset, texcoord = { 0, 417, 173, 196 }
|
||||
},
|
||||
['CastingBar-Spark'] = {
|
||||
asset = CastingBarAsset, texcoord = { 423, 430, 97, 150 }
|
||||
},
|
||||
['CastingBar-BorderShield'] = {
|
||||
asset = CastingBarAsset, texcoord = { 437, 509, 1, 87 }
|
||||
},
|
||||
|
||||
['CollapseButton-Left'] = {
|
||||
asset = CollapseButtonAsset, texcoord = { 4, 22, 0, 31 }
|
||||
},
|
||||
['CollapseButton-Right'] = {
|
||||
asset = CollapseButtonAsset, texcoord = { 5, 22, 31, 62 }
|
||||
},
|
||||
['CollapseButton-Up'] = {
|
||||
asset = CollapseButtonAsset, texcoord = { 31, 63, 10, 27 }
|
||||
},
|
||||
['CollapseButton-Down'] = {
|
||||
asset = CollapseButtonAsset, texcoord = { 31, 62, 37, 54 }
|
||||
},
|
||||
|
||||
['Minimap-Border'] = {
|
||||
asset = MinimapAsset, texcoord = { 0, 438, 60, 506 }
|
||||
},
|
||||
['Minimap-Border-Top'] = {
|
||||
asset = MinimapAsset, texcoord = { 105, 360, 609, 636 }
|
||||
},
|
||||
['Minimap-Mail-Normal'] = {
|
||||
asset = MinimapAsset, texcoord = { 42, 80, 521, 548 }
|
||||
},
|
||||
['Minimap-Mail-Highlight'] = {
|
||||
asset = MinimapAsset, texcoord = { 1, 39, 521, 548 }
|
||||
},
|
||||
['Minimap-Calendar-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 0.18359375 * 256, 0.265625 * 256, 0.00390625 * 256, 0.078125 * 256 }
|
||||
},
|
||||
['Minimap-Calendar-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 0.09375 * 256, 0.17578125 * 256, 0.00390625 * 256, 0.078125 * 256 }
|
||||
},
|
||||
['Minimap-Calendar-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 0.00390625 * 256, 0.0859375 * 256, 0.00390625 * 256, 0.078125 * 256 }
|
||||
},
|
||||
['Minimap-Tracking-Background'] = {
|
||||
asset = MinimapAsset, texcoord = { 441, 480, 402, 440 }
|
||||
},
|
||||
['Minimap-Tracking-Normal'] = {
|
||||
asset = MinimapAsset, texcoord = { 149, 179, 520, 548 }
|
||||
},
|
||||
['Minimap-Tracking-Highlight'] = {
|
||||
asset = MinimapAsset, texcoord = { 117, 147, 520, 548 }
|
||||
},
|
||||
['Minimap-Tracking-Pushed'] = {
|
||||
asset = MinimapAsset, texcoord = { 83, 115, 520, 550 }
|
||||
},
|
||||
['Minimap-ZoomIn-Normal'] = {
|
||||
asset = MinimapAsset, texcoord = { 1, 35, 552, 586 }
|
||||
},
|
||||
['Minimap-ZoomIn-Highlight'] = {
|
||||
asset = MinimapAsset, texcoord = { 1, 35, 624, 658 }
|
||||
},
|
||||
['Minimap-ZoomIn-Pushed'] = {
|
||||
asset = MinimapAsset, texcoord = { 1, 35, 588, 622 }
|
||||
},
|
||||
['Minimap-ZoomOut-Normal'] = {
|
||||
asset = MinimapAsset, texcoord = { 181, 215, 520, 538 }
|
||||
},
|
||||
['Minimap-ZoomOut-Highlight'] = {
|
||||
asset = MinimapAsset, texcoord = { 253, 287, 520, 538 }
|
||||
},
|
||||
['Minimap-ZoomOut-Pushed'] = {
|
||||
asset = MinimapAsset, texcoord = { 217, 251, 520, 538 }
|
||||
},
|
||||
['Minimap-Calendar-1-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 47, 68, 1, 20 }
|
||||
},
|
||||
['Minimap-Calendar-1-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 24, 45, 1, 20 }
|
||||
},
|
||||
['Minimap-Calendar-1-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 1, 22, 1, 20 }
|
||||
},
|
||||
['Minimap-Calendar-2-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 93, 114, 43, 62 }
|
||||
},
|
||||
['Minimap-Calendar-2-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 70, 91, 43, 62 }
|
||||
},
|
||||
['Minimap-Calendar-2-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 47, 68, 43, 62 }
|
||||
},
|
||||
['Minimap-Calendar-3-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 70, 91, 85, 104 }
|
||||
},
|
||||
['Minimap-Calendar-3-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 47, 68, 232, 251 }
|
||||
},
|
||||
['Minimap-Calendar-3-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 47, 68, 211, 230 }
|
||||
},
|
||||
['Minimap-Calendar-4-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 70, 91, 127, 146 }
|
||||
},
|
||||
['Minimap-Calendar-4-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 70, 91, 106, 125 }
|
||||
},
|
||||
['Minimap-Calendar-4-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 231, 252, 85, 104 }
|
||||
},
|
||||
['Minimap-Calendar-5-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 70, 91, 190, 209 }
|
||||
},
|
||||
['Minimap-Calendar-5-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 70, 91, 169, 188 }
|
||||
},
|
||||
['Minimap-Calendar-5-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 70, 91, 148, 167 }
|
||||
},
|
||||
['Minimap-Calendar-6-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 93, 114, 106, 125 }
|
||||
},
|
||||
['Minimap-Calendar-6-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 70, 91, 232, 251 }
|
||||
},
|
||||
['Minimap-Calendar-6-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 70, 91, 211, 230 }
|
||||
},
|
||||
['Minimap-Calendar-7-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 162, 183, 106, 125 }
|
||||
},
|
||||
['Minimap-Calendar-7-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 139, 160, 106, 125 }
|
||||
},
|
||||
['Minimap-Calendar-7-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 116, 137, 106, 125 }
|
||||
},
|
||||
['Minimap-Calendar-8-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 231, 252, 106, 125 }
|
||||
},
|
||||
['Minimap-Calendar-8-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 208, 229, 106, 125 }
|
||||
},
|
||||
['Minimap-Calendar-8-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 185, 206, 106, 125 }
|
||||
},
|
||||
['Minimap-Calendar-9-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 93, 114, 169, 188 }
|
||||
},
|
||||
['Minimap-Calendar-9-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 93, 114, 169, 188 }
|
||||
},
|
||||
['Minimap-Calendar-9-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 93, 114, 127, 146 }
|
||||
},
|
||||
['Minimap-Calendar-10-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 116, 137, 1, 20 }
|
||||
},
|
||||
['Minimap-Calendar-10-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 93, 114, 1, 20 }
|
||||
},
|
||||
['Minimap-Calendar-10-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 70, 91, 1, 20 }
|
||||
},
|
||||
['Minimap-Calendar-11-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 185, 206, 1, 20 }
|
||||
},
|
||||
['Minimap-Calendar-11-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 162, 183, 1, 20 }
|
||||
},
|
||||
['Minimap-Calendar-11-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 139, 160, 1, 20 }
|
||||
},
|
||||
['Minimap-Calendar-12-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 1, 22, 22, 41 }
|
||||
},
|
||||
['Minimap-Calendar-12-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 231, 252, 1, 20 }
|
||||
},
|
||||
['Minimap-Calendar-12-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 208, 229, 1, 20 }
|
||||
},
|
||||
['Minimap-Calendar-13-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 70, 91, 22, 41 }
|
||||
},
|
||||
['Minimap-Calendar-13-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 47, 68, 22, 41 }
|
||||
},
|
||||
['Minimap-Calendar-13-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 24, 45, 22, 41 }
|
||||
},
|
||||
['Minimap-Calendar-14-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 139, 160, 22, 41 }
|
||||
},
|
||||
['Minimap-Calendar-14-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 116, 137, 22, 41 }
|
||||
},
|
||||
['Minimap-Calendar-14-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 93, 114, 22, 41 }
|
||||
},
|
||||
['Minimap-Calendar-15-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 208, 229, 22, 41 }
|
||||
},
|
||||
['Minimap-Calendar-15-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 185, 206, 22, 41 }
|
||||
},
|
||||
['Minimap-Calendar-15-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 162, 183, 22, 41 }
|
||||
},
|
||||
['Minimap-Calendar-16-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 1, 22, 64, 83 }
|
||||
},
|
||||
['Minimap-Calendar-16-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 1, 22, 43, 62 }
|
||||
},
|
||||
['Minimap-Calendar-16-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 231, 252, 22, 41 }
|
||||
},
|
||||
['Minimap-Calendar-17-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 1, 22, 127, 146 }
|
||||
},
|
||||
['Minimap-Calendar-17-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 1, 22, 106, 125 }
|
||||
},
|
||||
['Minimap-Calendar-17-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 1, 22, 85, 104 }
|
||||
},
|
||||
['Minimap-Calendar-18-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 1, 22, 190, 209 }
|
||||
},
|
||||
['Minimap-Calendar-18-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 1, 22, 169, 188 }
|
||||
},
|
||||
['Minimap-Calendar-18-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 1, 22, 148, 167 }
|
||||
},
|
||||
['Minimap-Calendar-19-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 24, 45, 43, 62 }
|
||||
},
|
||||
['Minimap-Calendar-19-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 1, 22, 232, 251 }
|
||||
},
|
||||
['Minimap-Calendar-19-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 1, 22, 211, 230 }
|
||||
},
|
||||
['Minimap-Calendar-20-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 162, 183, 43, 62 }
|
||||
},
|
||||
['Minimap-Calendar-20-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 139, 160, 43, 62 }
|
||||
},
|
||||
['Minimap-Calendar-20-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 116, 137, 43, 62 }
|
||||
},
|
||||
['Minimap-Calendar-21-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 231, 252, 43, 62 }
|
||||
},
|
||||
['Minimap-Calendar-21-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 208, 229, 43, 62 }
|
||||
},
|
||||
['Minimap-Calendar-21-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 185, 206, 43, 62 }
|
||||
},
|
||||
['Minimap-Calendar-22-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 24, 45, 106, 125 }
|
||||
},
|
||||
['Minimap-Calendar-22-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 24, 45, 85, 104 }
|
||||
},
|
||||
['Minimap-Calendar-22-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 24, 45, 64, 83 }
|
||||
},
|
||||
['Minimap-Calendar-23-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 24, 45, 169, 188 }
|
||||
},
|
||||
['Minimap-Calendar-23-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 24, 45, 148, 167 }
|
||||
},
|
||||
['Minimap-Calendar-23-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 24, 45, 127, 146 }
|
||||
},
|
||||
['Minimap-Calendar-24-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 24, 45, 232, 251 }
|
||||
},
|
||||
['Minimap-Calendar-24-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 24, 45, 211, 230 }
|
||||
},
|
||||
['Minimap-Calendar-24-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 24, 45, 190, 209 }
|
||||
},
|
||||
['Minimap-Calendar-25-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 93, 114, 64, 83 }
|
||||
},
|
||||
['Minimap-Calendar-25-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 70, 91, 64, 83 }
|
||||
},
|
||||
['Minimap-Calendar-25-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 47, 68, 64, 83 }
|
||||
},
|
||||
['Minimap-Calendar-26-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 162, 183, 64, 83 }
|
||||
},
|
||||
['Minimap-Calendar-26-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 139, 160, 64, 83 }
|
||||
},
|
||||
['Minimap-Calendar-26-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 116, 137, 64, 83 }
|
||||
},
|
||||
['Minimap-Calendar-27-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 231, 252, 64, 83 }
|
||||
},
|
||||
['Minimap-Calendar-27-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 208, 229, 64, 83 }
|
||||
},
|
||||
['Minimap-Calendar-27-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 185, 206, 64, 83 }
|
||||
},
|
||||
['Minimap-Calendar-28-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 47, 68, 127, 146 }
|
||||
},
|
||||
['Minimap-Calendar-28-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 47, 68, 106, 125 }
|
||||
},
|
||||
['Minimap-Calendar-28-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 47, 68, 85, 104 }
|
||||
},
|
||||
['Minimap-Calendar-29-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 47, 68, 190, 209 }
|
||||
},
|
||||
['Minimap-Calendar-29-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 47, 68, 169, 188 }
|
||||
},
|
||||
['Minimap-Calendar-29-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 47, 68, 148, 167 }
|
||||
},
|
||||
['Minimap-Calendar-30-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 139, 160, 85, 104 }
|
||||
},
|
||||
['Minimap-Calendar-30-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 116, 137, 85, 104 }
|
||||
},
|
||||
['Minimap-Calendar-30-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 93, 114, 85, 104 }
|
||||
},
|
||||
['Minimap-Calendar-31-Normal'] = {
|
||||
asset = CalendarAsset, texcoord = { 208, 229, 85, 104 }
|
||||
},
|
||||
['Minimap-Calendar-31-Highlight'] = {
|
||||
asset = CalendarAsset, texcoord = { 185, 206, 85, 104 }
|
||||
},
|
||||
['Minimap-Calendar-31-Pushed'] = {
|
||||
asset = CalendarAsset, texcoord = { 162, 183, 85, 104 }
|
||||
},
|
||||
|
||||
['ActionBar-LeftCap-Alliance'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 1, 357, 209, 543 }
|
||||
},
|
||||
['ActionBar-RightCap-Alliance'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 1, 357, 545, 879 }
|
||||
},
|
||||
['ActionBar-LeftCap-Horde'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 1, 357, 881, 1215 }
|
||||
},
|
||||
['ActionBar-RightCap-Horde'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 1, 357, 1217, 1551 }
|
||||
},
|
||||
['ActionBar-ButtonUp-Normal'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 359, 393, 833, 861 }
|
||||
},
|
||||
['ActionBar-ButtonUp-Highlight'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 453, 487, 709, 737 }
|
||||
},
|
||||
['ActionBar-ButtonUp-Pushed'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 453, 487, 679, 707 }
|
||||
},
|
||||
['ActionBar-ButtonDown-Normal'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 463, 497, 605, 633 }
|
||||
},
|
||||
['ActionBar-ButtonDown-Highlight'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 463, 497, 575, 603 }
|
||||
},
|
||||
['ActionBar-ButtonDown-Pushed'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 463, 497, 545, 573 }
|
||||
},
|
||||
['ActionBar-ActionButton-Highlight'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 359, 451, 1065, 1155 }
|
||||
},
|
||||
['ActionBar-ActionButton-Pushed'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 359, 451, 881, 971 }
|
||||
},
|
||||
['ActionBar-ActionButton-Flash'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 359, 451, 973, 1063 }
|
||||
},
|
||||
['ActionBar-ActionButton-Border'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 359, 451, 649, 739 }
|
||||
},
|
||||
['ActionBar-ActionButton-Background'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 359, 487, 209, 333 }
|
||||
},
|
||||
|
||||
['ExperienceBar-Background'] = {
|
||||
asset = ExperienceBar, texcoord = { 0.00088878125, 570, 20, 29 }
|
||||
},
|
||||
['ExperienceBar-Border'] = {
|
||||
asset = ExperienceBar, texcoord = { 1, 572, 1, 18 }
|
||||
},
|
||||
|
||||
['BagsBar-SlotButton-Highlight'] = {
|
||||
asset = BagSlotsAsset, texcoord = { 358, 419, 1, 62 }
|
||||
},
|
||||
['BagsBar-SlotButton-Border'] = {
|
||||
asset = BagSlotsAsset, texcoord = { 295, 356, 1, 62 }
|
||||
},
|
||||
['BagsBar-KeySlot-Normal'] = {
|
||||
asset = BagSlotsKeyAsset, texcoord = { 3, 63, 64, 125 }
|
||||
},
|
||||
['BagsBar-MainSlot-Normal'] = {
|
||||
asset = BagSlotsAsset, texcoord = { 1, 97, 1, 97 }
|
||||
},
|
||||
['BagsBar-MainSlot-Highlight'] = {
|
||||
asset = BagSlotsAsset, texcoord = { 99, 195, 1, 97 }
|
||||
},
|
||||
|
||||
['MicroMenu-Spellbook-Normal'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 389, 440, 312, 382 }
|
||||
},
|
||||
['MicroMenu-Spellbook-Highlight'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 334, 385, 312, 382 }
|
||||
},
|
||||
['MicroMenu-Spellbook-Pushed'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 280, 331, 312, 382 }
|
||||
},
|
||||
['MicroMenu-Talent-Normal'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 170, 221, 312, 382 }
|
||||
},
|
||||
['MicroMenu-Talent-Highlight'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 116, 167, 312, 382 }
|
||||
},
|
||||
['MicroMenu-Talent-Pushed'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 63, 114, 312, 382 }
|
||||
},
|
||||
['MicroMenu-Talent-Disabled'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 6, 57, 312, 382 }
|
||||
},
|
||||
['MicroMenu-LFD-Normal'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 387, 438, 158, 229 }
|
||||
},
|
||||
['MicroMenu-LFD-Highlight'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 331, 382, 158, 229 }
|
||||
},
|
||||
['MicroMenu-LFD-Pushed'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 277, 328, 158, 229 }
|
||||
},
|
||||
['MicroMenu-LFD-Disabled'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 222, 273, 158, 229 }
|
||||
},
|
||||
['MicroMenu-MainMenu-Normal'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 387, 438, 235, 305 }
|
||||
},
|
||||
['MicroMenu-MainMenu-Highlight'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 278, 329, 235, 305 }
|
||||
},
|
||||
['MicroMenu-MainMenu-Pushed'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 333, 383, 235, 305 }
|
||||
},
|
||||
['MicroMenu-Help-Normal'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 169, 219, 158, 228 }
|
||||
},
|
||||
['MicroMenu-Help-Highlight'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 115, 166, 158, 228 }
|
||||
},
|
||||
['MicroMenu-Help-Pushed'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 60, 111, 158, 228 }
|
||||
},
|
||||
['MicroMenu-Socials-Normal'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 169, 220, 235, 305 }
|
||||
},
|
||||
['MicroMenu-Socials-Highlight'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 115, 166, 235, 305 }
|
||||
},
|
||||
['MicroMenu-Socials-Pushed'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 61, 112, 235, 305 }
|
||||
},
|
||||
['MicroMenu-Achievement-Normal'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 383, 433, 4, 74 }
|
||||
},
|
||||
['MicroMenu-Achievement-Highlight'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 329, 380, 4, 74 }
|
||||
},
|
||||
['MicroMenu-Achievement-Pushed'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 274, 325, 4, 74 }
|
||||
},
|
||||
['MicroMenu-Achievement-Disabled'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 220, 271, 4, 74 }
|
||||
},
|
||||
['MicroMenu-QuestLog-Normal'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 166, 217, 4, 74 }
|
||||
},
|
||||
['MicroMenu-QuestLog-Highlight'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 112, 164, 4, 74 }
|
||||
},
|
||||
['MicroMenu-QuestLog-Pushed'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 58, 109, 4, 74 }
|
||||
},
|
||||
['MicroMenu-QuestLog-Disabled'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 4, 55, 4, 74 }
|
||||
},
|
||||
['MicroMenu-Empty'] = {
|
||||
asset = MicroMenuAsset, texcoord = { 384, 435, 82, 151 }
|
||||
},
|
||||
|
||||
['ActionMainBar-TopLeft'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 464, 500, 475, 508 }
|
||||
},
|
||||
['ActionMainBar-TopRight'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 461, 497, 442, 473 }
|
||||
},
|
||||
['ActionMainBar-BottomLeft'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 466, 502, 388, 420 }
|
||||
},
|
||||
['ActionMainBar-BottomRight'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 464, 499, 339, 372 }
|
||||
},
|
||||
['ActionMainBar-Top'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 445, 465, 145, 154 }
|
||||
},
|
||||
['ActionMainBar-Bottom'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 445, 465, 145, 152 }
|
||||
},
|
||||
['ActionMainBar-Left'] = {
|
||||
asset = ActionBarVerticalAsset, texcoord = { 144, 151, 22, 34 }
|
||||
},
|
||||
['ActionMainBar-Right'] = {
|
||||
asset = ActionBarVerticalAsset, texcoord = { 144, 150, 22, 34 }
|
||||
},
|
||||
|
||||
['ActionMainBar-GapDown'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 396, 415, 831, 864 }
|
||||
},
|
||||
['ActionMainBar-GapUp'] = {
|
||||
asset = ActionBarHorizontalAsset, texcoord = { 422, 441, 831, 861 }
|
||||
},
|
||||
['ActionMainBar-GapCenter'] = {
|
||||
asset = ActionBarVerticalAsset, texcoord = { 143, 152, 22, 34 }
|
||||
},
|
||||
['Minimap-PVP-alliance-Normal'] = {
|
||||
asset = BattlefieldAsset, texcoord = { 72, 126, 5, 58 }
|
||||
},
|
||||
['Minimap-PVP-alliance-Pushed'] = {
|
||||
asset = BattlefieldAsset, texcoord = { 17, 71, 5, 58 }
|
||||
},
|
||||
['Minimap-PVP-horde-Normal'] = {
|
||||
asset = BattlefieldAsset, texcoord = { 181, 235, 5, 58 }
|
||||
},
|
||||
['Minimap-PVP-horde-Pushed'] = {
|
||||
asset = BattlefieldAsset, texcoord = { 127, 182, 5, 58 }
|
||||
},
|
||||
|
||||
|
||||
}
|
||||
|
||||
function SetAtlasTexture(texture, textureName)
|
||||
local atlasInfo = atlasTextures[textureName]
|
||||
if not atlasInfo then return false end
|
||||
local assetInfo = atlasInfo.asset
|
||||
|
||||
local texCoordInfo = atlasInfo.texcoord
|
||||
local left, right, top, bottom = unpack(texCoordInfo)
|
||||
|
||||
texture:SetTexture(assetInfo.path)
|
||||
texture:SetTexCoord(left / assetInfo.width, right / assetInfo.width, top / assetInfo.height, bottom / assetInfo.height)
|
||||
texture:SetSize(right - left, bottom - top)
|
||||
return true
|
||||
end
|
||||
@@ -0,0 +1,38 @@
|
||||
## Interface: 30300
|
||||
## Title: |cff1784d1DragonUI|r
|
||||
## Notes: |cffcaf7faDragonflight-style UI for 3.3.5a with mixed third-party licensing|r
|
||||
## Version: 2.4.1
|
||||
## Author: NeticSoul
|
||||
## SavedVariables: DragonUIDB
|
||||
## OptionalDeps: Blizzard_TimeManager, Blizzard_PartyUI
|
||||
## X-License: MIT for project-authored code; bundled dependencies retain their own licenses
|
||||
|
||||
Atlas.lua
|
||||
|
||||
# Core libraries (always loaded)
|
||||
libs\LibStub\LibStub.lua
|
||||
libs\CallbackHandler-1.0\CallbackHandler-1.0.xml
|
||||
libs\LibKeyBound-1.0\lib.xml
|
||||
libs\AceAddon-3.0\AceAddon-3.0.xml
|
||||
libs\AceEvent-3.0\AceEvent-3.0.xml
|
||||
libs\AceTimer-3.0\AceTimer-3.0.xml
|
||||
libs\AceBucket-3.0\AceBucket-3.0.xml
|
||||
libs\AceHook-3.0\AceHook-3.0.xml
|
||||
libs\AceDB-3.0\AceDB-3.0.xml
|
||||
libs\AceLocale-3.0\AceLocale-3.0.xml
|
||||
libs\AceConsole-3.0\AceConsole-3.0.xml
|
||||
libs\AceComm-3.0\AceComm-3.0.xml
|
||||
libs\AceTab-3.0\AceTab-3.0.xml
|
||||
libs\AceSerializer-3.0\AceSerializer-3.0.xml
|
||||
libs\LibDeflate\LibDeflate.lua
|
||||
libs\LibItemSearch-1.0\LibItemSearch-1.0.lua
|
||||
libs\LibHealComm-4.0\LibHealComm-4.0.xml
|
||||
libs\AbsorbsMonitor-1.0\AbsorbsMonitor-1.0.xml
|
||||
|
||||
# Note: AceConfig-3.0, AceGUI-3.0, AceDBOptions-3.0 moved to DragonUI_Options
|
||||
|
||||
# Localization (must load after AceLocale and before DragonUI.xml)
|
||||
Locales\Load_Locales.xml
|
||||
|
||||
DragonUI.xml
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
||||
<!-- Localization strings (loaded first so all modules can use L[]) -->
|
||||
<!-- Note: Locale files are loaded via TOC before this XML -->
|
||||
|
||||
<!-- Centralized locale-aware font system (must load before config.lua) -->
|
||||
<Script file="core\fonts.lua"/>
|
||||
|
||||
<!-- Configuration and database defaults -->
|
||||
<Script file="config.lua"/>
|
||||
<Script file="database.lua"/>
|
||||
|
||||
<!-- Core API and utilities (must load before core.lua) -->
|
||||
<Include file="core\core.xml"/>
|
||||
|
||||
<!-- Main addon initialization -->
|
||||
<Script file="core.lua"/>
|
||||
|
||||
<!-- Utility functions -->
|
||||
<Include file="utils\utils.xml"/>
|
||||
|
||||
<!-- All modules -->
|
||||
<Include file="modules\modules.xml"/>
|
||||
|
||||
<!-- Options are now in DragonUI_Options addon (loaded on demand) -->
|
||||
</Ui>
|
||||
@@ -0,0 +1,16 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
||||
<!-- DragonUI Core Locales -->
|
||||
<!-- English MUST load first (default locale) -->
|
||||
<Script file="enUS.lua"/>
|
||||
|
||||
<!-- Translations -->
|
||||
<Script file="esES.lua"/>
|
||||
<Script file="esMX.lua"/>
|
||||
<Script file="ptBR.lua"/>
|
||||
<Script file="deDE.lua"/>
|
||||
<Script file="frFR.lua"/>
|
||||
<Script file="ruRU.lua"/>
|
||||
<Script file="zhCN.lua"/>
|
||||
<Script file="zhTW.lua"/>
|
||||
<Script file="koKR.lua"/>
|
||||
</Ui>
|
||||
@@ -0,0 +1,408 @@
|
||||
--[[
|
||||
================================================================================
|
||||
DragonUI - English Locale (Default)
|
||||
================================================================================
|
||||
Base locale. All keys use `true` (the key itself is the display value).
|
||||
|
||||
When adding new strings:
|
||||
1. Add L[<your key>] = true here
|
||||
2. Use L["Your String"] in your code
|
||||
3. Add translations to other locale files
|
||||
================================================================================
|
||||
]]
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("DragonUI", "deDE")
|
||||
if not L then return end
|
||||
|
||||
-- ============================================================================
|
||||
-- CORE / GENERAL
|
||||
-- ============================================================================
|
||||
|
||||
-- Combat lockdown messages
|
||||
L["Cannot toggle editor mode during combat!"] = "Editor-Modus kann im Kampf nicht umgeschaltet werden!"
|
||||
L["Cannot reset positions during combat!"] = "Positionen können im Kampf nicht zurückgesetzt werden!"
|
||||
L["Cannot toggle keybind mode during combat!"] = "Tastenbelegungsmodus kann im Kampf nicht umgeschaltet werden!"
|
||||
L["Cannot move frames during combat!"] = "Fenster können im Kampf nicht bewegt werden!"
|
||||
L["Cannot open options in combat."] = "Optionen können im Kampf nicht geöffnet werden."
|
||||
L["Options panel not available. Try /reload."] = "Optionsfeld nicht verfügbar. Versuche /reload."
|
||||
|
||||
-- Module availability
|
||||
L["Editor mode not available."] = "Editor-Modus ist nicht verfügbar."
|
||||
L["Keybind mode not available."] = "Tastenbelegungsmodus ist nicht verfügbar."
|
||||
L["Vehicle debug not available"] = "Fahrzeug-Debug ist nicht verfügbar"
|
||||
L["KeyBinding module not available"] = "Tastenbelegungs-Modul ist nicht verfügbar"
|
||||
L["Unable to open configuration"] = "Konfiguration kann nicht geöffnet werden"
|
||||
L["Commands: /dragonui config, /dragonui edit"] = "Befehle: /dragonui config, /dragonui edit"
|
||||
L["Reset position: %s"] = "Position zurückgesetzt: %s"
|
||||
L["All positions reset to defaults"] = "Alle Positionen auf Standardwerte zurückgesetzt"
|
||||
L["Editor mode enabled - Drag frames to reposition"] = "Editormodus aktiviert - Rahmen ziehen zum Neupositionieren"
|
||||
L["Editor mode disabled - Positions saved"] = "Editormodus deaktiviert - Positionen gespeichert"
|
||||
L["Minimap module restored to Blizzard defaults"] = "Minimap-Modul auf Blizzard-Standardwerte zurückgesetzt"
|
||||
L["All action bar scales reset to default values"] = "Alle Aktionsleisten-Skalierungen auf Standardwerte zurückgesetzt"
|
||||
L["Minimap position reset to default"] = "Minimap-Position auf Standard zurückgesetzt"
|
||||
L["Targeting: %s"] = "Zielt auf: %s"
|
||||
L["XP: %d/%d"] = "EP: %d/%d"
|
||||
L["GROUP %d"] = "GRUPPE %d"
|
||||
L["XP: "] = "EP: "
|
||||
L["Remaining: "] = "Verbleibend: "
|
||||
L["Rested: "] = "Ausgeruht: "
|
||||
|
||||
-- Errors
|
||||
L["Error executing pending operation:"] = "Fehler beim Ausführen der ausstehenden Operation:"
|
||||
L["Error -- Addon 'DragonUI_Options' not found or is disabled."] = "Fehler -- Addon 'DragonUI_Options' wurde nicht gefunden oder ist deaktiviert."
|
||||
|
||||
-- ============================================================================
|
||||
-- SLASH COMMANDS / HELP
|
||||
-- ============================================================================
|
||||
|
||||
L["Unknown command: "] = "Unbekannter Befehl: "
|
||||
L["=== DragonUI Commands ==="] = "=== DragonUI-Befehle ==="
|
||||
L["/dragonui or /dui - Open configuration"] = "/dragonui oder /dui - Konfiguration öffnen"
|
||||
L["/dragonui config - Open configuration"] = "/dragonui config - Konfiguration öffnen"
|
||||
L["/dragonui edit - Toggle editor mode (move UI elements)"] = "/dragonui edit - Editor-Modus umschalten (UI-Elemente verschieben)"
|
||||
L["/dragonui reset - Reset all positions to defaults"] = "/dragonui reset - Alle Positionen auf Standard zurücksetzen"
|
||||
L["/dragonui reset <name> - Reset specific mover"] = "/dragonui reset <name> - Bestimmten Mover zurücksetzen"
|
||||
L["/dragonui status - Show module status"] = "/dragonui status - Modulstatus anzeigen"
|
||||
L["/dragonui kb - Toggle keybind mode"] = "/dragonui kb - Tastenbelegungsmodus umschalten"
|
||||
L["/dragonui version - Show version info"] = "/dragonui version - Versionsinfo anzeigen"
|
||||
L["/dragonui help - Show this help"] = "/dragonui help - Diese Hilfe anzeigen"
|
||||
L["/rl - Reload UI"] = "/rl - UI neu laden"
|
||||
|
||||
-- ============================================================================
|
||||
-- STATUS DISPLAY
|
||||
-- ============================================================================
|
||||
|
||||
L["=== DragonUI Status ==="] = "=== DragonUI-Status ==="
|
||||
L["Detected Modules:"] = "Erkannte Module:"
|
||||
L["Loaded"] = "Geladen"
|
||||
L["Not Loaded"] = "Nicht geladen"
|
||||
L["Target Frame"] = true
|
||||
L["Focus Frame"] = true
|
||||
L["Party Frames"] = true
|
||||
L["Cooldowns"] = true
|
||||
L["Registered Movers: "] = "Registrierte Mover: "
|
||||
L["Editable Frames: "] = "Bearbeitbare Frames: "
|
||||
L["DragonUI Version: "] = "DragonUI-Version: "
|
||||
L["Use /dragonui edit to enter edit mode, then right-click frames to reset."] = "Nutze /dragonui edit, um den Bearbeitungsmodus zu aktivieren, und klicke dann mit Rechtsklick auf Frames, um sie zurückzusetzen."
|
||||
|
||||
-- ============================================================================
|
||||
-- EDITOR MODE
|
||||
-- ============================================================================
|
||||
|
||||
L["Exit Edit Mode"] = "Bearbeitungsmodus beenden"
|
||||
L["Reset All Positions"] = "Alle Positionen zurücksetzen"
|
||||
L["Are you sure you want to reset all interface elements to their default positions?"] = "Bist du sicher, dass du alle Interface-Elemente auf ihre Standardpositionen zurücksetzen möchtest?"
|
||||
L["Yes"] = "Ja"
|
||||
L["No"] = "Nein"
|
||||
L["UI elements have been repositioned. Reload UI to ensure all graphics display correctly?"] = "UI-Elemente wurden neu positioniert. UI neu laden, damit alle Grafiken korrekt angezeigt werden?"
|
||||
L["Reload Now"] = "Jetzt neu laden"
|
||||
L["Later"] = "Später"
|
||||
|
||||
-- ============================================================================
|
||||
-- KEYBINDING MODULE
|
||||
-- ============================================================================
|
||||
|
||||
L["LibKeyBound-1.0 not found or failed to load:"] = "LibKeyBound-1.0 nicht gefunden oder Laden fehlgeschlagen:"
|
||||
L["Commands:"] = "Befehle:"
|
||||
L["/dukb - Toggle keybinding mode"] = "/dukb - Tastenbelegungsmodus umschalten"
|
||||
L["/dukb help - Show this help"] = "/dukb help - Diese Hilfe anzeigen"
|
||||
L["Module disabled."] = "Modul deaktiviert."
|
||||
L["Keybinding mode activated. Hover over buttons and press keys to bind them."] = "Tastenbelegungsmodus aktiviert. Fahre über Buttons und drücke Tasten, um sie zu belegen."
|
||||
L["Keybinding mode deactivated."] = "Tastenbelegungsmodus deaktiviert."
|
||||
|
||||
-- ============================================================================
|
||||
-- GAME MENU
|
||||
-- ============================================================================
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- MINIMAP MODULE
|
||||
-- ============================================================================
|
||||
|
||||
L["DragonUI: Minimap module restored to Blizzard defaults"] = "DragonUI: Minimap-Modul auf Blizzard-Standard zurückgesetzt"
|
||||
|
||||
-- ============================================================================
|
||||
-- EDITOR MODE LABELS (displayed on mover overlays)
|
||||
-- ============================================================================
|
||||
|
||||
L["MainBar"] = "Hauptleiste"
|
||||
L["RightBar"] = "Rechte Leiste"
|
||||
L["LeftBar"] = "Linke Leiste"
|
||||
L["BottomBarLeft"] = "Unten links"
|
||||
L["BottomBarRight"] = "Unten rechts"
|
||||
L["XPBar"] = "EP-Leiste"
|
||||
L["RepBar"] = "Ruf-Leiste"
|
||||
L["MinimapFrame"] = "Minimap"
|
||||
L["LFGFrame"] = "Dungeon Auge"
|
||||
L["PlayerFrame"] = "Spieler"
|
||||
L["ManaBar"] = "Mana-Leiste"
|
||||
L["PetFrame"] = "Begleiter"
|
||||
L["ToF"] = "Ziel des Fokus"
|
||||
L["tot"] = "Ziel des Ziels"
|
||||
L["ToT"] = "Ziel des Ziels"
|
||||
L["fot"] = "Ziel des Fokus"
|
||||
L["PartyFrames"] = "Gruppe"
|
||||
L["TargetFrame"] = "Ziel"
|
||||
L["FocusFrame"] = "Fokus"
|
||||
L["BagsBar"] = "Taschen"
|
||||
L["MicroMenu"] = "Mikromenü"
|
||||
L["VehicleExitOverlay"] = "Fahrzeug verlassen"
|
||||
L["StanceOverlay"] = "Haltungsleiste"
|
||||
L["petbar"] = "Begleiterleiste"
|
||||
L["boss"] = "Boss-Rahmen"
|
||||
L["Boss Frames"] = "Boss-Rahmen"
|
||||
L["Boss1Frame"] = "Boss-Rahmen"
|
||||
L["Boss2Frame"] = "Boss-Rahmen"
|
||||
L["Boss3Frame"] = "Boss-Rahmen"
|
||||
L["Boss4Frame"] = "Boss-Rahmen"
|
||||
L["TotemBarOverlay"] = "Totemleiste"
|
||||
L["PlayerCastbar"] = "Zauberleiste"
|
||||
L["TooltipWidget"] = "Tooltip"
|
||||
L["Auras"] = "Auren"
|
||||
L["WeaponEnchants"] = "Waffenverzauberungen"
|
||||
L["Loot Roll"] = "Beute würfeln"
|
||||
L["Quest Tracker"] = "Questverfolgung"
|
||||
|
||||
-- Mover tooltip strings
|
||||
L["Drag to move"] = "Ziehen zum Verschieben"
|
||||
L["Right-click to reset"] = "Rechtsklick zum Zurücksetzen"
|
||||
|
||||
-- Editor mode system messages
|
||||
L["All editable frames shown for editing"] = "Alle bearbeitbaren Frames zum Bearbeiten angezeigt"
|
||||
L["All editable frames hidden, positions saved"] = "Alle bearbeitbaren Frames ausgeblendet, Positionen gespeichert"
|
||||
|
||||
-- ============================================================================
|
||||
-- COMPATIBILITY MODULE
|
||||
-- ============================================================================
|
||||
|
||||
-- Conflict warning popup
|
||||
L["DragonUI Conflict Warning"] = "DragonUI-Konfliktwarnung"
|
||||
L["The addon |cFFFFFF00%s|r conflicts with DragonUI."] = "Das Addon |cFFFFFF00%s|r kollidiert mit DragonUI."
|
||||
L["Reason:"] = "Grund:"
|
||||
L["Disable the conflicting addon now?"] = "Das konfliktverursachende Addon jetzt deaktivieren?"
|
||||
L["Keep Both"] = "Beide behalten"
|
||||
L["DragonUI - D3D9Ex Warning"] = "DragonUI - D3D9Ex-Warnung"
|
||||
L["DragonUI detected that your client is using D3D9Ex."] = "DragonUI hat erkannt, dass dein Client D3D9Ex verwendet."
|
||||
L["DragonUI's action bar system is not compatible with D3D9Ex."] = "Das Aktionsleisten-System von DragonUI ist nicht mit D3D9Ex kompatibel."
|
||||
L["Some DragonUI action bar textures will be missing while this mode is active."] = "Einige Texturen der DragonUI-Aktionsleisten fehlen, solange dieser Modus aktiv ist."
|
||||
L["If you want to disable this mode, open WTF\\Config.wtf."] = "Wenn du diesen Modus deaktivieren willst, öffne WTF\\Config.wtf."
|
||||
L["Delete this line:"] = "Lösche diese Zeile:"
|
||||
L["Or replace it with:"] = "Oder ersetze sie durch:"
|
||||
L["Hide Gryphons"] = "Greifen ausblenden"
|
||||
L["Understood"] = "Verstanden"
|
||||
L["DragonUI - UnitFrameLayers Detected"] = "DragonUI - UnitFrameLayers erkannt"
|
||||
L["DragonUI already includes Unit Frame Layers functionality (heal prediction, absorb shields, and animated health loss)."] = "DragonUI enthält die Unit-Frame-Layers-Funktion bereits (Heilvorhersage, Absorptionsschilde und animierter Lebensverlust)."
|
||||
L["Choose how to resolve this overlap:"] = "Wähle, wie diese Überschneidung gelöst werden soll:"
|
||||
L["Use DragonUI: disable external UnitFrameLayers and enable DragonUI layers."] = "DragonUI nutzen: externes UnitFrameLayers deaktivieren und DragonUI-Layer aktivieren."
|
||||
L["Disable Both: disable external UnitFrameLayers and keep DragonUI layers disabled."] = "Beide deaktivieren: externes UnitFrameLayers deaktivieren und DragonUI-Layer ausgeschaltet lassen."
|
||||
L["Use DragonUI"] = "DragonUI nutzen"
|
||||
L["Disable Both"] = "Beide deaktivieren"
|
||||
L["Use DragonUI Unit Frame Layers"] = "DragonUI Unit Frame Layers verwenden"
|
||||
L["Disable both Unit Frame Layers"] = "Beide Unit Frame Layers deaktivieren"
|
||||
L["DragonUI - Party Frame Issue"] = true
|
||||
L["You joined a party while in combat. Due to CompactRaidFrame taint issues, party frames may not display correctly."] = true
|
||||
L["Reload the UI to fix party frame display?"] = true
|
||||
|
||||
-- Conflict reasons
|
||||
L["Conflicts with DragonUI's custom unit frame textures and power bar system."] = "Kollidiert mit DragonUIs benutzerdefinierten Einheiten-Rahmen-Texturen und dem Machtleistensystem."
|
||||
L["Known taint issues when manipulating party frames during combat. DragonUI provides automatic fixes."] = "Bekannte Kontaminationsprobleme beim Manipulieren von Gruppenrahmen im Kampf. DragonUI bietet automatische Korrekturen."
|
||||
L["Resets minimap mask and blip textures. DragonUI re-applies its custom textures automatically."] = "Setzt Minimap-Maske und Markierungs-Texturen zurück. DragonUI wendet seine benutzerdefinierten Texturen automatisch erneut an."
|
||||
L["SexyMap modifies the minimap borders, shape, and zone text which conflicts with DragonUI's minimap module."] = "SexyMap verändert die Minimap-Rahmen, Form und Zonentexte, was mit dem Minimap-Modul von DragonUI kollidiert."
|
||||
|
||||
-- SexyMap compatibility popup
|
||||
L["DragonUI - SexyMap Detected"] = "DragonUI - SexyMap erkannt"
|
||||
L["Which minimap do you want to use?"] = "Welche Minikarte möchtest du verwenden?"
|
||||
L["SexyMap"] = "SexyMap"
|
||||
L["DragonUI"] = "DragonUI"
|
||||
L["Hybrid"] = "Hybrid"
|
||||
L["Recommended"] = "Empfohlen"
|
||||
|
||||
-- SexyMap options panel
|
||||
L["SexyMap Compatibility"] = "SexyMap-Kompatibilität"
|
||||
L["Minimap Mode"] = "Minikarten-Modus"
|
||||
L["Choose how DragonUI and SexyMap share the minimap."] = "Wähle, wie DragonUI und SexyMap die Minikarte teilen."
|
||||
L["Requires UI reload to apply."] = "Erfordert UI-Neuladen."
|
||||
L["Uses SexyMap for the minimap."] = "Verwendet SexyMap für die Minikarte."
|
||||
L["Uses DragonUI for the minimap."] = "Verwendet DragonUI für die Minikarte."
|
||||
L["SexyMap visuals with DragonUI editor and positioning."] = "SexyMap-Optik, bewegbar und konfigurierbar über DragonUI."
|
||||
L["Minimap mode changed. Reload UI to apply?"] = "Minikarten-Modus geändert. UI neu laden?"
|
||||
|
||||
-- SexyMap slash commands
|
||||
L["SexyMap compatibility mode has been reset. Reload UI to choose again."] = "Der SexyMap-Kompatibilitätsmodus wurde zurückgesetzt. Lade die UI neu, um erneut zu wählen."
|
||||
L["Current SexyMap mode: |cFFFFFF00%s|r"] = "Aktueller SexyMap-Modus: |cFFFFFF00%s|r"
|
||||
L["No SexyMap mode selected (SexyMap not detected or not yet chosen)."] = "Kein SexyMap-Modus ausgewählt (SexyMap nicht erkannt oder noch nicht gewählt)."
|
||||
L["Show current SexyMap compatibility mode"] = "Aktuellen SexyMap-Kompatibilitätsmodus anzeigen"
|
||||
L["Reset SexyMap mode choice (re-prompts on reload)"] = "SexyMap-Modusauswahl zurücksetzen (fragt beim Neuladen erneut)"
|
||||
L["Loaded addons:"] = "Geladene Addons:"
|
||||
|
||||
-- ============================================================================
|
||||
-- STATIC POPUPS (shared between modules)
|
||||
-- ============================================================================
|
||||
|
||||
L["Changing this setting requires a UI reload to apply correctly."] = "Das Ändern dieser Einstellung erfordert ein Neuladen der UI, damit es korrekt angewendet wird."
|
||||
L["Reload UI"] = "UI neu laden"
|
||||
L["Not Now"] = "Nicht jetzt"
|
||||
L["Disable"] = "Deaktivieren"
|
||||
L["Ignore"] = "Ignorieren"
|
||||
L["Skip"] = "Überspringen"
|
||||
L["The Blizzard option |cFFFFFF00Party/Arena Background|r is enabled. This conflicts with DragonUI's party frames."] = "Die Blizzard-Option |cFFFFFF00Gruppen/Arena-Hintergrund|r ist aktiviert. Dies steht im Konflikt mit DragonUIs Gruppenfenstern."
|
||||
L["Disable it now?"] = "Jetzt deaktivieren?"
|
||||
L["Some interface settings are not configured optimally for DragonUI."] = "Einige Interface-Einstellungen sind für DragonUI nicht optimal konfiguriert."
|
||||
L["This includes settings that conflict with DragonUI and settings recommended for the best visual experience."] = "Dazu gehören Einstellungen, die mit DragonUI kollidieren, sowie empfohlene Einstellungen für die beste visuelle Darstellung."
|
||||
L["Affected settings:"] = "Betroffene Einstellungen:"
|
||||
L["Some interface settings are not configured optimally for DragonUI. Do you want to fix them?"] = "Einige Interface-Einstellungen sind für DragonUI nicht optimal konfiguriert. Möchtest du sie korrigieren?"
|
||||
L["Do you want to fix them now?"] = "Möchtest du sie jetzt korrigieren?"
|
||||
L["Party/Arena Background"] = "Gruppen/Arena-Hintergrund"
|
||||
L["Default Status Text"] = "Standard-Statustext"
|
||||
L["Conflict"] = "Konflikt"
|
||||
L["Recommended"] = "Empfohlen"
|
||||
|
||||
-- Bag Sort
|
||||
L["Sort Bags"] = "Taschen sortieren"
|
||||
L["Sort Bank"] = "Bank sortieren"
|
||||
L["Sort Items"] = "Gegenstände sortieren"
|
||||
L["Click to sort items by type, rarity, and name."] = "Klicken, um Gegenstände nach Typ, Seltenheit und Name zu sortieren."
|
||||
L["Clear Locked Slots"] = "Gesperrte Slots löschen"
|
||||
L["Click to clear all locked bag slots."] = "Klicken, um alle gesperrten Taschenslots zu löschen."
|
||||
L["Alt+LeftClick any bag slot (item or empty) to lock or unlock it."] = "Alt+Linksklick auf einen Taschenslot (mit Gegenstand oder leer), um ihn zu sperren oder zu entsperren."
|
||||
L["Click the lock-clear button to remove all locked slots."] = "Klicke auf die Sperren-Löschen-Schaltfläche, um alle gesperrten Slots zu entfernen."
|
||||
L["Hover an item or slot, then type /sortlock."] = "Bewege die Maus über einen Gegenstand oder Slot und tippe dann /sortlock."
|
||||
L["Slot locked (bag %d, slot %d)."] = "Slot gesperrt (Tasche %d, Slot %d)."
|
||||
L["Slot unlocked (bag %d, slot %d)."] = "Slot entsperrt (Tasche %d, Slot %d)."
|
||||
L["Could not clear locks (config not ready)."] = "Sperren konnten nicht gelöscht werden (Konfiguration nicht bereit)."
|
||||
L["Cleared all sort-locked slots."] = "Alle für das Sortieren gesperrten Slots wurden gelöscht."
|
||||
|
||||
-- Micromenu Latency
|
||||
L["Network"] = "Netzwerk"
|
||||
L["Latency"] = "Latenz"
|
||||
|
||||
-- ============================================================================
|
||||
-- STABILIZATION PATCH STRINGS
|
||||
-- ============================================================================
|
||||
|
||||
L["/dragonui debug on|off|status - Toggle diagnostic logging"] = "/dragonui debug on|off|status - Diagnoseprotokoll umschalten"
|
||||
L["Usage: /dragonui debug on|off|status"] = "Verwendung: /dragonui debug on|off|status"
|
||||
L["Enable debug mode first with /dragonui debug on"] = "Aktiviere zuerst den Debug-Modus mit /dragonui debug on"
|
||||
L["Debug mode is %s"] = "Debug-Modus ist %s"
|
||||
L["Debug mode enabled"] = "Debug-Modus aktiviert"
|
||||
L["Debug mode disabled"] = "Debug-Modus deaktiviert"
|
||||
L["enabled"] = true
|
||||
L["disabled"] = true
|
||||
L["Enabled"] = "Aktiviert"
|
||||
L["Disabled"] = "Deaktiviert"
|
||||
L["Legacy refresh failed for"] = true
|
||||
L["RegisterMover: name and parent are required"] = true
|
||||
L["Bonus Action Button %d"] = true
|
||||
L["Bottom Left Button"] = true
|
||||
L["Bottom Right Button"] = true
|
||||
L["Right Button"] = true
|
||||
L["Left Button"] = true
|
||||
L["Totem Bar"] = true
|
||||
L["Test Pet"] = true
|
||||
L["=== TargetFrame children (depth 3) ==="] = true
|
||||
L["=== FocusFrame children (depth 3) ==="] = true
|
||||
L["BG texture not found"] = true
|
||||
L["BG tinted RED"] = true
|
||||
L["BG tinted GREEN"] = true
|
||||
L["BG color reset"] = true
|
||||
L["=== BANK SCAN DEBUG ==="] = true
|
||||
L["=== BANK QUALITY DEBUG ==="] = true
|
||||
L["Module enabled:"] = true
|
||||
L["BankFrame exists:"] = true
|
||||
L["BankFrame shown:"] = true
|
||||
L["Usage: /dui shadowcolor red|green|reset|info"] = true
|
||||
L["Usage: /dui shadowcrop <bottom_px> [right_px]"] = true
|
||||
L[" e.g. /dui shadowcrop 90 - show top 90 of 128 px height"] = true
|
||||
L[" e.g. /dui shadowcrop 90 200 - crop both bottom and right"] = true
|
||||
L[" /dui shadowcrop reset - restore full texture"] = true
|
||||
L["BG reset to 256x128 full texture"] = true
|
||||
L["Crop applied: showing %dx%d of 256x128 (texcoord 0-%.3f, 0-%.3f)"] = true
|
||||
L["Invalid values. Height 1-128, Width 1-256"] = true
|
||||
L["=== TargetFrame elements (use /dui shadowtest N to toggle) ==="] = true
|
||||
L["Total elements: %d"] = true
|
||||
L["HIDDEN: %d. %s [%s]"] = true
|
||||
L["SHOWN: %d. %s [%s]"] = true
|
||||
L["Invalid element number. Use /dui shadowtest to list."] = true
|
||||
L["DragonUI Compatibility:"] = true
|
||||
L["Registered Modules:"] = "Registrierte Module:"
|
||||
L["No modules registered in ModuleRegistry"] = "Keine Module in der ModuleRegistry registriert"
|
||||
L["load-once"] = "einmal laden"
|
||||
L["%s will disable after /reload because its secure hooks cannot be removed safely."] = "%s wird nach /reload deaktiviert, weil seine sicheren Hooks nicht sicher entfernt werden können."
|
||||
L["%s uses permanent secure hooks and will fully disable after /reload."] = "%s verwendet permanente sichere Hooks und wird nach /reload vollständig deaktiviert."
|
||||
L["%s remains active until /reload because its secure hooks cannot be removed safely."] = "%s bleibt bis /reload aktiv, weil seine sicheren Hooks nicht sicher entfernt werden können."
|
||||
L["Cooldown Text"] = "Abklingzeit-Text"
|
||||
L["Cooldown text on action buttons"] = "Abklingzeit-Text auf Aktionsleistenknöpfen"
|
||||
L["Cast Bar"] = "Zauberleiste"
|
||||
L["Custom player, target, and focus cast bars"] = "Benutzerdefinierte Zauberleisten für Spieler, Ziel und Fokus"
|
||||
L["Multicast"] = "Multicast"
|
||||
L["Shaman totem bar positioning and styling"] = "Positionierung und Stil der Schamanen-Totemleiste"
|
||||
L["Player Frame"] = "Spielerframe"
|
||||
L["Dragonflight-styled boss target frames"] = "Boss-Zielframes im Dragonflight-Stil"
|
||||
L["Dragonflight-styled player unit frame"] = "Spieler-Unitframe im Dragonflight-Stil"
|
||||
L["ModuleRegistry:Register requires name and moduleTable"] = "ModuleRegistry:Register benötigt name und moduleTable"
|
||||
L["ModuleRegistry: Module already registered -"] = "ModuleRegistry: Modul bereits registriert -"
|
||||
L["ModuleRegistry: Registered module -"] = "ModuleRegistry: Modul registriert -"
|
||||
L["order:"] = "Reihenfolge:"
|
||||
L["ModuleRegistry: Refresh failed for"] = "ModuleRegistry: Aktualisierung fehlgeschlagen für"
|
||||
L["ModuleRegistry: Unknown module -"] = "ModuleRegistry: Unbekanntes Modul -"
|
||||
L["ModuleRegistry: Enabled -"] = "ModuleRegistry: Aktiviert -"
|
||||
L["ModuleRegistry: Disabled -"] = "ModuleRegistry: Deaktiviert -"
|
||||
L["CombatQueue:Add requires id and func"] = "CombatQueue:Add benötigt id und func"
|
||||
L["CombatQueue: Registered PLAYER_REGEN_ENABLED"] = "CombatQueue: PLAYER_REGEN_ENABLED registriert"
|
||||
L["CombatQueue: Queued operation -"] = "CombatQueue: Operation in Warteschlange -"
|
||||
L["CombatQueue: Removed operation -"] = "CombatQueue: Operation entfernt -"
|
||||
L["CombatQueue: Processing"] = "CombatQueue: Verarbeite"
|
||||
L["queued operations"] = "Operationen in Warteschlange"
|
||||
L["CombatQueue: Failed to execute"] = "CombatQueue: Ausführung fehlgeschlagen"
|
||||
L["CombatQueue: Executed -"] = "CombatQueue: Ausgeführt -"
|
||||
L["CombatQueue: Unregistered PLAYER_REGEN_ENABLED"] = "CombatQueue: PLAYER_REGEN_ENABLED abgemeldet"
|
||||
L["CombatQueue: Immediate execution failed -"] = "CombatQueue: Sofortige Ausführung fehlgeschlagen -"
|
||||
|
||||
-- ============================================================================
|
||||
-- RELEASE PREP STRINGS
|
||||
-- ============================================================================
|
||||
|
||||
L["Buttons"] = "Schaltflächen"
|
||||
L["Action button styling and enhancements"] = "Aktionsknopf-Styling und Verbesserungen"
|
||||
L["Dark Mode"] = "Dunkelmodus"
|
||||
L["Darken UI borders and chrome"] = "UI-Rahmen und Zierrat abdunkeln"
|
||||
L["Item Quality"] = "Gegenstandsqualität"
|
||||
L["Color item borders by quality in bags, character panel, bank, and merchant"] = "Gegenstandsrahmen in Taschen, Charakterfenster, Bank und beim Händler nach Qualität einfärben"
|
||||
L["Key Binding"] = "Tastenbelegung"
|
||||
L["LibKeyBound integration for intuitive keybinding"] = "LibKeyBound-Integration für intuitive Tastenbelegung"
|
||||
L["Buff Frame"] = "Buff-Rahmen"
|
||||
L["Custom buff frame styling, positioning and toggle button"] = "Benutzerdefiniertes Styling, Positionierung und Umschaltknopf für den Buff-Rahmen"
|
||||
L["Chat Mods"] = "Chat-Mods"
|
||||
L["Chat enhancements: hide buttons, editbox position, URL copy, chat copy, link hover, tell target"] = "Chat-Verbesserungen: Buttons ausblenden, Eingabefeld-Position, URL-Kopie, Chat-Kopie, Link-Hover und Ziel anflüstern"
|
||||
L["Bag Sort"] = "Taschensortierung"
|
||||
L["Sort bags and bank items with buttons"] = "Taschen- und Bankgegenstände per Knopf sortieren"
|
||||
L["Combuctor"] = "Combuctor"
|
||||
L["All-in-one bag replacement with filtering and search"] = "All-in-One-Taschenersatz mit Filtern und Suche"
|
||||
L["Stance Bar"] = "Haltungsleiste"
|
||||
L["Vehicle"] = "Fahrzeug"
|
||||
L["Vehicle interface enhancements"] = "Verbesserungen der Fahrzeugoberfläche"
|
||||
L["Pet Bar"] = "Begleiterleiste"
|
||||
L["Micro Menu"] = "Mikromenü"
|
||||
L["Main Bars"] = "Hauptleisten"
|
||||
L["Main action bars, status bars, scaling and positioning"] = "Hauptaktionsleisten, Statusleisten, Skalierung und Positionierung"
|
||||
L["Hide Blizzard"] = "Blizzard ausblenden"
|
||||
L["Hide default Blizzard UI elements"] = "Standard-UI-Elemente von Blizzard ausblenden"
|
||||
L["Minimap"] = "Minikarte"
|
||||
L["Custom minimap styling, positioning, tracking icons and calendar"] = "Benutzerdefiniertes Minikarten-Styling, Positionierung, Verfolgungssymbole und Kalender"
|
||||
L["Quest tracker positioning and styling"] = "Positionierung und Styling der Questverfolgung"
|
||||
L["Tooltip"] = "Tooltip"
|
||||
L["Enhanced tooltip styling with class colors and health bars"] = "Erweitertes Tooltip-Styling mit Klassenfarben und Lebensleisten"
|
||||
L["Unit Frame Layers"] = "Unit-Frame-Ebenen"
|
||||
L["Heal prediction, absorb shields, and animated health loss on unit frames"] = "Heilvorhersage, Absorptionsschilde und animierter Lebensverlust auf Unit-Frames"
|
||||
L["Stance/shapeshift bar positioning and styling"] = "Positionierung und Styling der Haltungs-/Gestaltwandlungsleiste"
|
||||
L["Pet action bar positioning and styling"] = "Positionierung und Styling der Begleiter-Aktionsleiste"
|
||||
L["Micro menu and bags system styling and positioning"] = "Styling und Positionierung von Mikromenü und Taschensystem"
|
||||
L["Sort complete."] = "Sortierung abgeschlossen."
|
||||
L["Sort already in progress."] = "Sortierung läuft bereits."
|
||||
L["Bags already sorted!"] = "Taschen sind bereits sortiert!"
|
||||
L["You must be at the bank."] = "Du musst an der Bank sein."
|
||||
L["Bank already sorted!"] = "Bank ist bereits sortiert!"
|
||||
L["Reputation: "] = "Ruf: "
|
||||
L["Error in SafeCall:"] = "Fehler in SafeCall:"
|
||||
|
||||
L["Copy Text"] = "Text kopieren"
|
||||
@@ -0,0 +1,412 @@
|
||||
--[[
|
||||
================================================================================
|
||||
DragonUI - English Locale (Default)
|
||||
================================================================================
|
||||
Base locale. All keys use `true` (the key itself is the display value).
|
||||
|
||||
When adding new strings:
|
||||
1. Add L[<your key>] = true here
|
||||
2. Use L["Your String"] in your code
|
||||
3. Add translations to other locale files
|
||||
================================================================================
|
||||
]]
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("DragonUI", "enUS", true)
|
||||
if not L then return end
|
||||
|
||||
-- ============================================================================
|
||||
-- CORE / GENERAL
|
||||
-- ============================================================================
|
||||
|
||||
-- Combat lockdown messages
|
||||
L["Cannot toggle editor mode during combat!"] = true
|
||||
L["Cannot reset positions during combat!"] = true
|
||||
L["Cannot toggle keybind mode during combat!"] = true
|
||||
L["Cannot move frames during combat!"] = true
|
||||
L["Cannot open options in combat."] = true
|
||||
L["Options panel not available. Try /reload."] = true
|
||||
|
||||
-- Module availability
|
||||
L["Editor mode not available."] = true
|
||||
L["Keybind mode not available."] = true
|
||||
L["Vehicle debug not available"] = true
|
||||
L["KeyBinding module not available"] = true
|
||||
L["Unable to open configuration"] = true
|
||||
L["Commands: /dragonui config, /dragonui edit"] = true
|
||||
L["Reset position: %s"] = true
|
||||
L["All positions reset to defaults"] = true
|
||||
L["Editor mode enabled - Drag frames to reposition"] = true
|
||||
L["Editor mode disabled - Positions saved"] = true
|
||||
L["Minimap module restored to Blizzard defaults"] = true
|
||||
L["All action bar scales reset to default values"] = true
|
||||
L["Minimap position reset to default"] = true
|
||||
L["Targeting: %s"] = true
|
||||
L["XP: %d/%d"] = true
|
||||
L["GROUP %d"] = true
|
||||
L["XP: "] = true
|
||||
L["Remaining: "] = true
|
||||
L["Rested: "] = true
|
||||
|
||||
-- Errors
|
||||
L["Error executing pending operation:"] = true
|
||||
L["Error -- Addon 'DragonUI_Options' not found or is disabled."] = true
|
||||
|
||||
-- ============================================================================
|
||||
-- SLASH COMMANDS / HELP
|
||||
-- ============================================================================
|
||||
|
||||
L["Unknown command: "] = true
|
||||
L["=== DragonUI Commands ==="] = true
|
||||
L["/dragonui or /dui - Open configuration"] = true
|
||||
L["/dragonui config - Open configuration"] = true
|
||||
L["/dragonui edit - Toggle editor mode (move UI elements)"] = true
|
||||
L["/dragonui reset - Reset all positions to defaults"] = true
|
||||
L["/dragonui reset <name> - Reset specific mover"] = true
|
||||
L["/dragonui status - Show module status"] = true
|
||||
L["/dragonui kb - Toggle keybind mode"] = true
|
||||
L["/dragonui version - Show version info"] = true
|
||||
L["/dragonui help - Show this help"] = true
|
||||
L["/rl - Reload UI"] = true
|
||||
|
||||
-- ============================================================================
|
||||
-- STATUS DISPLAY
|
||||
-- ============================================================================
|
||||
|
||||
L["=== DragonUI Status ==="] = true
|
||||
L["Detected Modules:"] = true
|
||||
L["Loaded"] = true
|
||||
L["Not Loaded"] = true
|
||||
L["Target Frame"] = true
|
||||
L["Focus Frame"] = true
|
||||
L["Party Frames"] = true
|
||||
L["Cooldowns"] = true
|
||||
L["Registered Movers: "] = true
|
||||
L["Editable Frames: "] = true
|
||||
L["DragonUI Version: "] = true
|
||||
L["Use /dragonui edit to enter edit mode, then right-click frames to reset."] = true
|
||||
|
||||
-- ============================================================================
|
||||
-- EDITOR MODE
|
||||
-- ============================================================================
|
||||
|
||||
L["Exit Edit Mode"] = true
|
||||
L["Reset All Positions"] = true
|
||||
L["Are you sure you want to reset all interface elements to their default positions?"] = true
|
||||
L["Yes"] = true
|
||||
L["No"] = true
|
||||
L["UI elements have been repositioned. Reload UI to ensure all graphics display correctly?"] = true
|
||||
L["Reload Now"] = true
|
||||
L["Later"] = true
|
||||
|
||||
-- ============================================================================
|
||||
-- KEYBINDING MODULE
|
||||
-- ============================================================================
|
||||
|
||||
L["LibKeyBound-1.0 not found or failed to load:"] = true
|
||||
L["Commands:"] = true
|
||||
L["/dukb - Toggle keybinding mode"] = true
|
||||
L["/dukb help - Show this help"] = true
|
||||
L["Module disabled."] = true
|
||||
L["Keybinding mode activated. Hover over buttons and press keys to bind them."] = true
|
||||
L["Keybinding mode deactivated."] = true
|
||||
|
||||
-- ============================================================================
|
||||
-- GAME MENU
|
||||
-- ============================================================================
|
||||
|
||||
L["DragonUI"] = true
|
||||
|
||||
-- ============================================================================
|
||||
-- MINIMAP MODULE
|
||||
-- ============================================================================
|
||||
|
||||
L["DragonUI: Minimap module restored to Blizzard defaults"] = true
|
||||
|
||||
-- ============================================================================
|
||||
-- EDITOR MODE LABELS (displayed on mover overlays)
|
||||
-- ============================================================================
|
||||
|
||||
L["MainBar"] = "Main Bar"
|
||||
L["RightBar"] = "Right Bar"
|
||||
L["LeftBar"] = "Left Bar"
|
||||
L["BottomBarLeft"] = "Bottom Left"
|
||||
L["BottomBarRight"] = "Bottom Right"
|
||||
L["XPBar"] = "XP Bar"
|
||||
L["RepBar"] = "Rep Bar"
|
||||
L["MinimapFrame"] = "Minimap"
|
||||
L["LFGFrame"] = "Dungeon Eye"
|
||||
L["PlayerFrame"] = "Player"
|
||||
L["ManaBar"] = "Mana Bar"
|
||||
L["PetFrame"] = "Pet"
|
||||
L["ToT"] = "ToT"
|
||||
L["ToF"] = "ToF"
|
||||
L["tot"] = "ToT"
|
||||
L["fot"] = "FoT"
|
||||
L["PartyFrames"] = "Party"
|
||||
L["TargetFrame"] = "Target"
|
||||
L["FocusFrame"] = "Focus"
|
||||
L["BagsBar"] = "Bags"
|
||||
L["MicroMenu"] = "Micro Menu"
|
||||
L["VehicleExitOverlay"] = "Vehicle Exit"
|
||||
L["StanceOverlay"] = "Stance Bar"
|
||||
L["petbar"] = "Pet Bar"
|
||||
L["boss"] = "Boss Frames"
|
||||
L["Boss Frames"] = true
|
||||
L["Boss1Frame"] = "Boss Frames"
|
||||
L["Boss2Frame"] = "Boss Frames"
|
||||
L["Boss3Frame"] = "Boss Frames"
|
||||
L["Boss4Frame"] = "Boss Frames"
|
||||
L["TotemBarOverlay"] = "Totem Bar"
|
||||
L["PlayerCastbar"] = "Castbar"
|
||||
L["TooltipWidget"] = "Tooltip"
|
||||
L["Auras"] = true
|
||||
L["WeaponEnchants"] = "Weapon Enchants"
|
||||
L["Loot Roll"] = true
|
||||
L["Quest Tracker"] = true
|
||||
|
||||
-- Mover tooltip strings
|
||||
L["Drag to move"] = true
|
||||
L["Right-click to reset"] = true
|
||||
|
||||
-- Editor mode system messages
|
||||
L["All editable frames shown for editing"] = true
|
||||
L["All editable frames hidden, positions saved"] = true
|
||||
|
||||
-- ============================================================================
|
||||
-- COMPATIBILITY MODULE
|
||||
-- ============================================================================
|
||||
|
||||
-- Conflict warning popup
|
||||
L["DragonUI Conflict Warning"] = true
|
||||
L["The addon |cFFFFFF00%s|r conflicts with DragonUI."] = true
|
||||
L["Reason:"] = true
|
||||
L["Disable the conflicting addon now?"] = true
|
||||
L["Disable"] = true
|
||||
L["Keep Both"] = true
|
||||
L["DragonUI - D3D9Ex Warning"] = true
|
||||
L["DragonUI detected that your client is using D3D9Ex."] = true
|
||||
L["DragonUI's action bar system is not compatible with D3D9Ex."] = true
|
||||
L["Some DragonUI action bar textures will be missing while this mode is active."] = true
|
||||
L["If you want to disable this mode, open WTF\\Config.wtf."] = true
|
||||
L["Delete this line:"] = true
|
||||
L["Or replace it with:"] = true
|
||||
L["Hide Gryphons"] = true
|
||||
L["Understood"] = true
|
||||
L["DragonUI - UnitFrameLayers Detected"] = true
|
||||
L["DragonUI already includes Unit Frame Layers functionality (heal prediction, absorb shields, and animated health loss)."] = true
|
||||
L["Choose how to resolve this overlap:"] = true
|
||||
L["Use DragonUI: disable external UnitFrameLayers and enable DragonUI layers."] = true
|
||||
L["Disable Both: disable external UnitFrameLayers and keep DragonUI layers disabled."] = true
|
||||
L["Use DragonUI"] = true
|
||||
L["Disable Both"] = true
|
||||
L["Use DragonUI Unit Frame Layers"] = true
|
||||
L["Disable both Unit Frame Layers"] = true
|
||||
L["DragonUI - Party Frame Issue"] = true
|
||||
L["You joined a party while in combat. Due to CompactRaidFrame taint issues, party frames may not display correctly."] = true
|
||||
L["Reload the UI to fix party frame display?"] = true
|
||||
|
||||
-- Conflict reasons
|
||||
L["Conflicts with DragonUI's custom unit frame textures and power bar system."] = true
|
||||
L["Known taint issues when manipulating party frames during combat. DragonUI provides automatic fixes."] = true
|
||||
L["Resets minimap mask and blip textures. DragonUI re-applies its custom textures automatically."] = true
|
||||
L["SexyMap modifies the minimap borders, shape, and zone text which conflicts with DragonUI's minimap module."] = true
|
||||
|
||||
-- SexyMap compatibility popup
|
||||
L["DragonUI - SexyMap Detected"] = true
|
||||
L["Which minimap do you want to use?"] = true
|
||||
L["SexyMap"] = true
|
||||
L["DragonUI"] = true
|
||||
L["Hybrid"] = true
|
||||
L["Recommended"] = true
|
||||
|
||||
-- SexyMap options panel
|
||||
L["SexyMap Compatibility"] = true
|
||||
L["Minimap Mode"] = true
|
||||
L["Choose how DragonUI and SexyMap share the minimap."] = true
|
||||
L["Requires UI reload to apply."] = true
|
||||
L["Uses SexyMap for the minimap."] = true
|
||||
L["Uses DragonUI for the minimap."] = true
|
||||
L["SexyMap visuals with DragonUI editor and positioning."] = "SexyMap look, moveable and configurable from DragonUI."
|
||||
L["Minimap mode changed. Reload UI to apply?"] = true
|
||||
|
||||
-- SexyMap slash commands
|
||||
L["SexyMap compatibility mode has been reset. Reload UI to choose again."] = true
|
||||
L["Current SexyMap mode: |cFFFFFF00%s|r"] = true
|
||||
L["No SexyMap mode selected (SexyMap not detected or not yet chosen)."] = true
|
||||
L["Show current SexyMap compatibility mode"] = true
|
||||
L["Reset SexyMap mode choice (re-prompts on reload)"] = true
|
||||
L["Loaded addons:"] = true
|
||||
|
||||
-- ============================================================================
|
||||
-- STATIC POPUPS (shared between modules)
|
||||
-- ============================================================================
|
||||
|
||||
L["Changing this setting requires a UI reload to apply correctly."] = true
|
||||
L["Reload UI"] = true
|
||||
L["Not Now"] = true
|
||||
L["Disable"] = true
|
||||
L["Ignore"] = true
|
||||
L["Skip"] = true
|
||||
L["The Blizzard option |cFFFFFF00Party/Arena Background|r is enabled. This conflicts with DragonUI's party frames."] = true
|
||||
L["Disable it now?"] = true
|
||||
L["Some interface settings are not configured optimally for DragonUI."] = true
|
||||
L["This includes settings that conflict with DragonUI and settings recommended for the best visual experience."] = true
|
||||
L["Affected settings:"] = true
|
||||
L["Some interface settings are not configured optimally for DragonUI. Do you want to fix them?"] = true
|
||||
L["Do you want to fix them now?"] = true
|
||||
L["Party/Arena Background"] = true
|
||||
L["Default Status Text"] = true
|
||||
L["Conflict"] = true
|
||||
L["Recommended"] = true
|
||||
|
||||
-- Bag Sort
|
||||
L["Sort Bags"] = true
|
||||
L["Sort Bank"] = true
|
||||
L["Sort Items"] = true
|
||||
L["Click to sort items by type, rarity, and name."] = true
|
||||
L["Clear Locked Slots"] = true
|
||||
L["Click to clear all locked bag slots."] = true
|
||||
L["Alt+LeftClick any bag slot (item or empty) to lock or unlock it."] = true
|
||||
L["Click the lock-clear button to remove all locked slots."] = true
|
||||
L["Hover an item or slot, then type /sortlock."] = true
|
||||
L["Slot locked (bag %d, slot %d)."] = true
|
||||
L["Slot unlocked (bag %d, slot %d)."] = true
|
||||
L["Could not clear locks (config not ready)."] = true
|
||||
L["Cleared all sort-locked slots."] = true
|
||||
|
||||
-- Micromenu Latency
|
||||
L["Network"] = true
|
||||
L["Latency"] = true
|
||||
|
||||
-- ============================================================================
|
||||
-- STABILIZATION PATCH STRINGS
|
||||
-- ============================================================================
|
||||
|
||||
L["/dragonui debug on|off|status - Toggle diagnostic logging"] = true
|
||||
L["Usage: /dragonui debug on|off|status"] = true
|
||||
L["Enable debug mode first with /dragonui debug on"] = true
|
||||
L["Debug mode is %s"] = true
|
||||
L["Debug mode enabled"] = true
|
||||
L["Debug mode disabled"] = true
|
||||
L["enabled"] = true
|
||||
L["disabled"] = true
|
||||
L["Enabled"] = true
|
||||
L["Disabled"] = true
|
||||
L["Legacy refresh failed for"] = true
|
||||
L["RegisterMover: name and parent are required"] = true
|
||||
L["Bonus Action Button %d"] = true
|
||||
L["Bottom Left Button"] = true
|
||||
L["Bottom Right Button"] = true
|
||||
L["Right Button"] = true
|
||||
L["Left Button"] = true
|
||||
L["Totem Bar"] = true
|
||||
L["Test Pet"] = true
|
||||
L["=== TargetFrame children (depth 3) ==="] = true
|
||||
L["=== FocusFrame children (depth 3) ==="] = true
|
||||
L["BG texture not found"] = true
|
||||
L["BG tinted RED"] = true
|
||||
L["BG tinted GREEN"] = true
|
||||
L["BG color reset"] = true
|
||||
L["=== BANK SCAN DEBUG ==="] = true
|
||||
L["=== BANK QUALITY DEBUG ==="] = true
|
||||
L["Module enabled:"] = true
|
||||
L["BankFrame exists:"] = true
|
||||
L["BankFrame shown:"] = true
|
||||
L["Usage: /dui shadowcolor red|green|reset|info"] = true
|
||||
L["Usage: /dui shadowcrop <bottom_px> [right_px]"] = true
|
||||
L[" e.g. /dui shadowcrop 90 - show top 90 of 128 px height"] = true
|
||||
L[" e.g. /dui shadowcrop 90 200 - crop both bottom and right"] = true
|
||||
L[" /dui shadowcrop reset - restore full texture"] = true
|
||||
L["BG reset to 256x128 full texture"] = true
|
||||
L["Crop applied: showing %dx%d of 256x128 (texcoord 0-%.3f, 0-%.3f)"] = true
|
||||
L["Invalid values. Height 1-128, Width 1-256"] = true
|
||||
L["=== TargetFrame elements (use /dui shadowtest N to toggle) ==="] = true
|
||||
L["Total elements: %d"] = true
|
||||
L["HIDDEN: %d. %s [%s]"] = true
|
||||
L["SHOWN: %d. %s [%s]"] = true
|
||||
L["Invalid element number. Use /dui shadowtest to list."] = true
|
||||
L["DragonUI Compatibility:"] = true
|
||||
L["Registered Modules:"] = true
|
||||
L["No modules registered in ModuleRegistry"] = true
|
||||
L["load-once"] = true
|
||||
L["%s will disable after /reload because its secure hooks cannot be removed safely."] = true
|
||||
L["%s uses permanent secure hooks and will fully disable after /reload."] = true
|
||||
L["%s remains active until /reload because its secure hooks cannot be removed safely."] = true
|
||||
L["Cooldown Text"] = true
|
||||
L["Cooldown text on action buttons"] = true
|
||||
L["Cast Bar"] = true
|
||||
L["Custom player, target, and focus cast bars"] = true
|
||||
L["Multicast"] = true
|
||||
L["Shaman totem bar positioning and styling"] = true
|
||||
L["Player Frame"] = true
|
||||
L["Dragonflight-styled boss target frames"] = true
|
||||
L["Dragonflight-styled player unit frame"] = true
|
||||
L["ModuleRegistry:Register requires name and moduleTable"] = true
|
||||
L["ModuleRegistry: Module already registered -"] = true
|
||||
L["ModuleRegistry: Registered module -"] = true
|
||||
L["order:"] = true
|
||||
L["ModuleRegistry: Refresh failed for"] = true
|
||||
L["ModuleRegistry: Unknown module -"] = true
|
||||
L["ModuleRegistry: Enabled -"] = true
|
||||
L["ModuleRegistry: Disabled -"] = true
|
||||
L["CombatQueue:Add requires id and func"] = true
|
||||
L["CombatQueue: Registered PLAYER_REGEN_ENABLED"] = true
|
||||
L["CombatQueue: Queued operation -"] = true
|
||||
L["CombatQueue: Removed operation -"] = true
|
||||
L["CombatQueue: Processing"] = true
|
||||
L["queued operations"] = true
|
||||
L["CombatQueue: Failed to execute"] = true
|
||||
L["CombatQueue: Executed -"] = true
|
||||
L["CombatQueue: Unregistered PLAYER_REGEN_ENABLED"] = true
|
||||
L["CombatQueue: Immediate execution failed -"] = true
|
||||
|
||||
-- ============================================================================
|
||||
-- RELEASE PREP STRINGS
|
||||
-- ============================================================================
|
||||
|
||||
L["Buttons"] = true
|
||||
L["Action button styling and enhancements"] = true
|
||||
L["Dark Mode"] = true
|
||||
L["Darken UI borders and chrome"] = true
|
||||
L["Item Quality"] = true
|
||||
L["Color item borders by quality in bags, character panel, bank, and merchant"] = true
|
||||
L["Key Binding"] = true
|
||||
L["LibKeyBound integration for intuitive keybinding"] = true
|
||||
L["Buff Frame"] = true
|
||||
L["Custom buff frame styling, positioning and toggle button"] = true
|
||||
L["Chat Mods"] = true
|
||||
L["Chat enhancements: hide buttons, editbox position, URL copy, chat copy, link hover, tell target"] = true
|
||||
L["Bag Sort"] = true
|
||||
L["Sort bags and bank items with buttons"] = true
|
||||
L["Combuctor"] = true
|
||||
L["All-in-one bag replacement with filtering and search"] = true
|
||||
L["Stance Bar"] = true
|
||||
L["Vehicle"] = true
|
||||
L["Vehicle interface enhancements"] = true
|
||||
L["Pet Bar"] = true
|
||||
L["Micro Menu"] = true
|
||||
L["Main Bars"] = true
|
||||
L["Main action bars, status bars, scaling and positioning"] = true
|
||||
L["Hide Blizzard"] = true
|
||||
L["Hide default Blizzard UI elements"] = true
|
||||
L["Minimap"] = true
|
||||
L["Custom minimap styling, positioning, tracking icons and calendar"] = true
|
||||
L["Quest tracker positioning and styling"] = true
|
||||
L["Tooltip"] = true
|
||||
L["Enhanced tooltip styling with class colors and health bars"] = true
|
||||
L["Unit Frame Layers"] = true
|
||||
L["Heal prediction, absorb shields, and animated health loss on unit frames"] = true
|
||||
L["Stance/shapeshift bar positioning and styling"] = true
|
||||
L["Pet action bar positioning and styling"] = true
|
||||
L["Micro menu and bags system styling and positioning"] = true
|
||||
L["Sort complete."] = true
|
||||
L["Sort already in progress."] = true
|
||||
L["Bags already sorted!"] = true
|
||||
L["You must be at the bank."] = true
|
||||
L["Bank already sorted!"] = true
|
||||
L["Reputation: "] = true
|
||||
L["Error in SafeCall:"] = true
|
||||
|
||||
L["Double-Click to Copy"] = true
|
||||
L["Copy Text"] = true
|
||||
|
||||
@@ -0,0 +1,408 @@
|
||||
--[[
|
||||
================================================================================
|
||||
DragonUI - English Locale (Default)
|
||||
================================================================================
|
||||
Base locale. All keys use `true` (the key itself is the display value).
|
||||
|
||||
When adding new strings:
|
||||
1. Add L[<your key>] = true here
|
||||
2. Use L["Your String"] in your code
|
||||
3. Add translations to other locale files
|
||||
================================================================================
|
||||
]]
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("DragonUI", "esES")
|
||||
if not L then return end
|
||||
|
||||
-- ============================================================================
|
||||
-- CORE / GENERAL
|
||||
-- ============================================================================
|
||||
|
||||
-- Combat lockdown messages
|
||||
L["Cannot toggle editor mode during combat!"] = "¡No se puede cambiar el modo editor durante combate!"
|
||||
L["Cannot reset positions during combat!"] = "¡No se pueden restablecer las posiciones durante combate!"
|
||||
L["Cannot toggle keybind mode during combat!"] = "¡No se puede cambiar el modo de atajos durante combate!"
|
||||
L["Cannot move frames during combat!"] = "¡No se pueden mover marcos durante combate!"
|
||||
L["Cannot open options in combat."] = "No se pueden abrir las opciones en combate."
|
||||
L["Options panel not available. Try /reload."] = "Panel de opciones no disponible. Prueba /reload."
|
||||
|
||||
-- Module availability
|
||||
L["Editor mode not available."] = "Modo editor no disponible."
|
||||
L["Keybind mode not available."] = "Modo de atajos no disponible."
|
||||
L["Vehicle debug not available"] = "Depuración de vehículo no disponible"
|
||||
L["KeyBinding module not available"] = "Módulo de atajos de teclado no disponible"
|
||||
L["Unable to open configuration"] = "No se pudo abrir la configuración"
|
||||
L["Commands: /dragonui config, /dragonui edit"] = "Comandos: /dragonui config, /dragonui edit"
|
||||
L["Reset position: %s"] = "Posición restablecida: %s"
|
||||
L["All positions reset to defaults"] = "Todas las posiciones restablecidas a valores predeterminados"
|
||||
L["Editor mode enabled - Drag frames to reposition"] = "Modo editor activado - Arrastra los marcos para reposicionar"
|
||||
L["Editor mode disabled - Positions saved"] = "Modo editor desactivado - Posiciones guardadas"
|
||||
L["Minimap module restored to Blizzard defaults"] = "Módulo de minimapa restaurado a valores predeterminados de Blizzard"
|
||||
L["All action bar scales reset to default values"] = "Todas las escalas de barras de acción restablecidas a valores predeterminados"
|
||||
L["Minimap position reset to default"] = "Posición del minimapa restablecida a valores predeterminados"
|
||||
L["Targeting: %s"] = "Apuntando a: %s"
|
||||
L["XP: %d/%d"] = "XP: %d/%d"
|
||||
L["GROUP %d"] = "GRUPO %d"
|
||||
L["XP: "] = "XP: "
|
||||
L["Remaining: "] = "Restante: "
|
||||
L["Rested: "] = "Descanso: "
|
||||
|
||||
-- Errors
|
||||
L["Error executing pending operation:"] = "Error al ejecutar operación pendiente:"
|
||||
L["Error -- Addon 'DragonUI_Options' not found or is disabled."] = "Error -- El addon 'DragonUI_Options' no se encontró o está desactivado."
|
||||
|
||||
-- ============================================================================
|
||||
-- SLASH COMMANDS / HELP
|
||||
-- ============================================================================
|
||||
|
||||
L["Unknown command: "] = "Comando desconocido: "
|
||||
L["=== DragonUI Commands ==="] = "=== Comandos de DragonUI ==="
|
||||
L["/dragonui or /dui - Open configuration"] = "/dragonui o /dui - Abrir configuración"
|
||||
L["/dragonui config - Open configuration"] = "/dragonui config - Abrir configuración"
|
||||
L["/dragonui edit - Toggle editor mode (move UI elements)"] = "/dragonui edit - Cambiar modo editor (mover elementos de UI)"
|
||||
L["/dragonui reset - Reset all positions to defaults"] = "/dragonui reset - Restablecer todas las posiciones"
|
||||
L["/dragonui reset <name> - Reset specific mover"] = "/dragonui reset <nombre> - Restablecer posición específica"
|
||||
L["/dragonui status - Show module status"] = "/dragonui status - Mostrar estado de módulos"
|
||||
L["/dragonui kb - Toggle keybind mode"] = "/dragonui kb - Cambiar modo de atajos"
|
||||
L["/dragonui version - Show version info"] = "/dragonui version - Mostrar versión"
|
||||
L["/dragonui help - Show this help"] = "/dragonui help - Mostrar esta ayuda"
|
||||
L["/rl - Reload UI"] = "/rl - Recargar interfaz"
|
||||
|
||||
-- ============================================================================
|
||||
-- STATUS DISPLAY
|
||||
-- ============================================================================
|
||||
|
||||
L["=== DragonUI Status ==="] = "=== Estado de DragonUI ==="
|
||||
L["Detected Modules:"] = "Módulos detectados:"
|
||||
L["Loaded"] = "Cargado"
|
||||
L["Not Loaded"] = "No cargado"
|
||||
L["Target Frame"] = true
|
||||
L["Focus Frame"] = true
|
||||
L["Party Frames"] = true
|
||||
L["Cooldowns"] = true
|
||||
L["Registered Movers: "] = "Movedores registrados: "
|
||||
L["Editable Frames: "] = "Marcos editables: "
|
||||
L["DragonUI Version: "] = "Versión de DragonUI: "
|
||||
L["Use /dragonui edit to enter edit mode, then right-click frames to reset."] = "Usa /dragonui edit para entrar en modo edición, luego haz clic derecho en marcos para restablecer."
|
||||
|
||||
-- ============================================================================
|
||||
-- EDITOR MODE
|
||||
-- ============================================================================
|
||||
|
||||
L["Exit Edit Mode"] = "Salir Editor"
|
||||
L["Reset All Positions"] = "Restablecer Posiciones"
|
||||
L["Are you sure you want to reset all interface elements to their default positions?"] = "¿Restablecer todos los elementos a su posición predeterminada?"
|
||||
L["Yes"] = "Sí"
|
||||
L["No"] = "No"
|
||||
L["UI elements have been repositioned. Reload UI to ensure all graphics display correctly?"] = "Los elementos de la interfaz han sido reposicionados. ¿Recargar la interfaz para que se muestren correctamente?"
|
||||
L["Reload Now"] = "Recargar Ahora"
|
||||
L["Later"] = "Más Tarde"
|
||||
|
||||
-- ============================================================================
|
||||
-- KEYBINDING MODULE
|
||||
-- ============================================================================
|
||||
|
||||
L["LibKeyBound-1.0 not found or failed to load:"] = "LibKeyBound-1.0 no encontrado o error al cargar:"
|
||||
L["Commands:"] = "Comandos:"
|
||||
L["/dukb - Toggle keybinding mode"] = "/dukb - Cambiar modo de atajos"
|
||||
L["/dukb help - Show this help"] = "/dukb help - Mostrar esta ayuda"
|
||||
L["Module disabled."] = "Módulo desactivado."
|
||||
L["Keybinding mode activated. Hover over buttons and press keys to bind them."] = "Modo de atajos activado. Pasa el ratón sobre los botones y pulsa teclas para asignarlas."
|
||||
L["Keybinding mode deactivated."] = "Modo de atajos desactivado."
|
||||
|
||||
-- ============================================================================
|
||||
-- GAME MENU
|
||||
-- ============================================================================
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- MINIMAP MODULE
|
||||
-- ============================================================================
|
||||
|
||||
L["DragonUI: Minimap module restored to Blizzard defaults"] = "DragonUI: Módulo de minimapa restaurado a los valores de Blizzard"
|
||||
|
||||
-- ============================================================================
|
||||
-- EDITOR MODE LABELS (displayed on mover overlays)
|
||||
-- ============================================================================
|
||||
|
||||
L["MainBar"] = "Barra Princ."
|
||||
L["RightBar"] = "Barra Der."
|
||||
L["LeftBar"] = "Barra Izq."
|
||||
L["BottomBarLeft"] = "Barra Inf. Izq."
|
||||
L["BottomBarRight"] = "Barra Inf. Der."
|
||||
L["XPBar"] = "Barra XP"
|
||||
L["RepBar"] = "Barra Rep."
|
||||
L["MinimapFrame"] = "Minimapa"
|
||||
L["LFGFrame"] = "Ojo de Mazmorra"
|
||||
L["PlayerFrame"] = "Jugador"
|
||||
L["ManaBar"] = "Barra Maná"
|
||||
L["PetFrame"] = "Mascota"
|
||||
L["ToF"] = "OdF"
|
||||
L["tot"] = "OdO"
|
||||
L["ToT"] = "OdO"
|
||||
L["fot"] = "OdF"
|
||||
L["PartyFrames"] = "Grupo"
|
||||
L["TargetFrame"] = "Objetivo"
|
||||
L["FocusFrame"] = "Foco"
|
||||
L["BagsBar"] = "Bolsas"
|
||||
L["MicroMenu"] = "Micromenú"
|
||||
L["VehicleExitOverlay"] = "Salir Vehículo"
|
||||
L["StanceOverlay"] = "Posturas"
|
||||
L["petbar"] = "Barra Mascota"
|
||||
L["boss"] = "Marcos de Jefe"
|
||||
L["Boss Frames"] = "Marcos de Jefe"
|
||||
L["Boss1Frame"] = "Marcos de Jefe"
|
||||
L["Boss2Frame"] = "Marcos de Jefe"
|
||||
L["Boss3Frame"] = "Marcos de Jefe"
|
||||
L["Boss4Frame"] = "Marcos de Jefe"
|
||||
L["TotemBarOverlay"] = "Tótems"
|
||||
L["PlayerCastbar"] = "Barra Hechizos"
|
||||
L["TooltipWidget"] = "Tooltip"
|
||||
L["Auras"] = "Auras"
|
||||
L["WeaponEnchants"] = "Encantamientos"
|
||||
L["Loot Roll"] = "Botín"
|
||||
L["Quest Tracker"] = "Misiones"
|
||||
|
||||
-- Mover tooltip strings
|
||||
L["Drag to move"] = "Arrastra para mover"
|
||||
L["Right-click to reset"] = "Clic der. para reiniciar"
|
||||
|
||||
-- Editor mode system messages
|
||||
L["All editable frames shown for editing"] = "Marcos editables mostrados"
|
||||
L["All editable frames hidden, positions saved"] = "Marcos ocultados, posiciones guardadas"
|
||||
|
||||
-- ============================================================================
|
||||
-- COMPATIBILITY MODULE
|
||||
-- ============================================================================
|
||||
|
||||
-- Conflict warning popup
|
||||
L["DragonUI Conflict Warning"] = "Advertencia de Conflicto de DragonUI"
|
||||
L["The addon |cFFFFFF00%s|r conflicts with DragonUI."] = "El addon |cFFFFFF00%s|r entra en conflicto con DragonUI."
|
||||
L["Reason:"] = "Razón:"
|
||||
L["Disable the conflicting addon now?"] = "¿Desactivar el addon conflictivo ahora?"
|
||||
L["Keep Both"] = "Mantener Ambos"
|
||||
L["DragonUI - D3D9Ex Warning"] = "DragonUI - Aviso de D3D9Ex"
|
||||
L["DragonUI detected that your client is using D3D9Ex."] = "DragonUI ha detectado que tu cliente está usando D3D9Ex."
|
||||
L["DragonUI's action bar system is not compatible with D3D9Ex."] = "El sistema de barras de acción de DragonUI no es compatible con D3D9Ex."
|
||||
L["Some DragonUI action bar textures will be missing while this mode is active."] = "Faltarán algunas texturas de las barras de acción de DragonUI mientras este modo esté activo."
|
||||
L["If you want to disable this mode, open WTF\\Config.wtf."] = "Si quieres desactivar este modo, abre WTF\\Config.wtf."
|
||||
L["Delete this line:"] = "Borra esta línea:"
|
||||
L["Or replace it with:"] = "O cámbiala por esta otra:"
|
||||
L["Hide Gryphons"] = "Esconder grifos"
|
||||
L["Understood"] = "Entendido"
|
||||
L["DragonUI - UnitFrameLayers Detected"] = "DragonUI - UnitFrameLayers Detectado"
|
||||
L["DragonUI already includes Unit Frame Layers functionality (heal prediction, absorb shields, and animated health loss)."] = "DragonUI ya incluye la funcionalidad de Unit Frame Layers (predicción de curación, escudos de absorción y pérdida de vida animada)."
|
||||
L["Choose how to resolve this overlap:"] = "Elige cómo resolver esta superposición:"
|
||||
L["Use DragonUI: disable external UnitFrameLayers and enable DragonUI layers."] = "Usar DragonUI: desactiva UnitFrameLayers externo y activa las capas de DragonUI."
|
||||
L["Disable Both: disable external UnitFrameLayers and keep DragonUI layers disabled."] = "Desactivar ambos: desactiva UnitFrameLayers externo y mantiene desactivadas las capas de DragonUI."
|
||||
L["Use DragonUI"] = "Usar DragonUI"
|
||||
L["Disable Both"] = "Desactivar ambos"
|
||||
L["Use DragonUI Unit Frame Layers"] = "Usar Unit Frame Layers de DragonUI"
|
||||
L["Disable both Unit Frame Layers"] = "Desactivar ambos Unit Frame Layers"
|
||||
L["DragonUI - Party Frame Issue"] = true
|
||||
L["You joined a party while in combat. Due to CompactRaidFrame taint issues, party frames may not display correctly."] = true
|
||||
L["Reload the UI to fix party frame display?"] = true
|
||||
|
||||
-- Conflict reasons
|
||||
L["Conflicts with DragonUI's custom unit frame textures and power bar system."] = "Entra en conflicto con las texturas personalizadas de marcos de unidad y el sistema de barra de poder de DragonUI."
|
||||
L["Known taint issues when manipulating party frames during combat. DragonUI provides automatic fixes."] = "Problemas conocidos de contaminación al manipular marcos de grupo en combate. DragonUI proporciona correcciones automáticas."
|
||||
L["Resets minimap mask and blip textures. DragonUI re-applies its custom textures automatically."] = "Restablece la máscara del minimapa y las texturas de puntos. DragonUI vuelve a aplicar sus texturas personalizadas automáticamente."
|
||||
L["SexyMap modifies the minimap borders, shape, and zone text which conflicts with DragonUI's minimap module."] = "SexyMap modifica los bordes del minimapa, la forma y el texto de zona, lo cual entra en conflicto con el módulo de minimapa de DragonUI."
|
||||
|
||||
-- SexyMap compatibility popup
|
||||
L["DragonUI - SexyMap Detected"] = "DragonUI - SexyMap Detectado"
|
||||
L["Which minimap do you want to use?"] = "¿Qué minimapa quieres usar?"
|
||||
L["SexyMap"] = "SexyMap"
|
||||
L["DragonUI"] = "DragonUI"
|
||||
L["Hybrid"] = "Híbrido"
|
||||
L["Recommended"] = "Recomendado"
|
||||
|
||||
-- SexyMap options panel
|
||||
L["SexyMap Compatibility"] = "Compatibilidad SexyMap"
|
||||
L["Minimap Mode"] = "Modo de Minimapa"
|
||||
L["Choose how DragonUI and SexyMap share the minimap."] = "Elige cómo comparten el minimapa DragonUI y SexyMap."
|
||||
L["Requires UI reload to apply."] = "Requiere recargar la interfaz para aplicar."
|
||||
L["Uses SexyMap for the minimap."] = "Usa SexyMap para el minimapa."
|
||||
L["Uses DragonUI for the minimap."] = "Usa DragonUI para el minimapa."
|
||||
L["SexyMap visuals with DragonUI editor and positioning."] = "Aspecto de SexyMap, movible y configurable desde DragonUI."
|
||||
L["Minimap mode changed. Reload UI to apply?"] = "Modo de minimapa cambiado. ¿Recargar interfaz para aplicar?"
|
||||
|
||||
-- SexyMap slash commands
|
||||
L["SexyMap compatibility mode has been reset. Reload UI to choose again."] = "El modo de compatibilidad SexyMap se ha restablecido. Recarga la interfaz para elegir de nuevo."
|
||||
L["Current SexyMap mode: |cFFFFFF00%s|r"] = "Modo SexyMap actual: |cFFFFFF00%s|r"
|
||||
L["No SexyMap mode selected (SexyMap not detected or not yet chosen)."] = "No se ha seleccionado modo SexyMap (SexyMap no detectado o aún no elegido)."
|
||||
L["Show current SexyMap compatibility mode"] = "Mostrar modo de compatibilidad SexyMap actual"
|
||||
L["Reset SexyMap mode choice (re-prompts on reload)"] = "Restablecer la elección de modo SexyMap (vuelve a preguntar al recargar)"
|
||||
L["Loaded addons:"] = "Addons cargados:"
|
||||
|
||||
-- ============================================================================
|
||||
-- STATIC POPUPS (shared between modules)
|
||||
-- ============================================================================
|
||||
|
||||
L["Changing this setting requires a UI reload to apply correctly."] = "Cambiar esta opción requiere recargar la interfaz para aplicarse correctamente."
|
||||
L["Reload UI"] = "Recargar Interfaz"
|
||||
L["Not Now"] = "Ahora No"
|
||||
L["Disable"] = "Desactivar"
|
||||
L["Ignore"] = "Ignorar"
|
||||
L["Skip"] = "Omitir"
|
||||
L["The Blizzard option |cFFFFFF00Party/Arena Background|r is enabled. This conflicts with DragonUI's party frames."] = "La opción de Blizzard |cFFFFFF00Fondo de Grupo/Arena|r está activada. Esto entra en conflicto con los marcos de grupo de DragonUI."
|
||||
L["Disable it now?"] = "¿Desactivarla ahora?"
|
||||
L["Some interface settings are not configured optimally for DragonUI."] = "Algunas opciones de interfaz no están configuradas de forma óptima para DragonUI."
|
||||
L["This includes settings that conflict with DragonUI and settings recommended for the best visual experience."] = "Esto incluye opciones que entran en conflicto con DragonUI y opciones recomendadas para una mejor experiencia visual."
|
||||
L["Affected settings:"] = "Opciones afectadas:"
|
||||
L["Some interface settings are not configured optimally for DragonUI. Do you want to fix them?"] = "Algunas opciones de interfaz no están configuradas de forma óptima para DragonUI. ¿Quieres corregirlas?"
|
||||
L["Do you want to fix them now?"] = "¿Quieres corregirlas ahora?"
|
||||
L["Party/Arena Background"] = "Fondo de Grupo/Arena"
|
||||
L["Default Status Text"] = "Texto de estado predeterminado"
|
||||
L["Conflict"] = "Conflicto"
|
||||
L["Recommended"] = "Recomendado"
|
||||
|
||||
-- Bag Sort
|
||||
L["Sort Bags"] = "Ordenar Bolsas"
|
||||
L["Sort Bank"] = "Ordenar Banco"
|
||||
L["Sort Items"] = "Ordenar Objetos"
|
||||
L["Click to sort items by type, rarity, and name."] = "Clic para ordenar objetos por tipo, rareza y nombre."
|
||||
L["Clear Locked Slots"] = "Limpiar Slots Bloqueados"
|
||||
L["Click to clear all locked bag slots."] = "Clic para limpiar todos los slots bloqueados de bolsas."
|
||||
L["Alt+LeftClick any bag slot (item or empty) to lock or unlock it."] = "Alt+Clic izquierdo en cualquier slot de bolsa (con objeto o vacío) para bloquearlo o desbloquearlo."
|
||||
L["Click the lock-clear button to remove all locked slots."] = "Haz clic en el botón de limpiar bloqueos para quitar todos los slots bloqueados."
|
||||
L["Hover an item or slot, then type /sortlock."] = "Pasa el cursor sobre un objeto o slot y luego escribe /sortlock."
|
||||
L["Slot locked (bag %d, slot %d)."] = "Slot bloqueado (bolsa %d, slot %d)."
|
||||
L["Slot unlocked (bag %d, slot %d)."] = "Slot desbloqueado (bolsa %d, slot %d)."
|
||||
L["Could not clear locks (config not ready)."] = "No se pudieron limpiar los bloqueos (configuración no lista)."
|
||||
L["Cleared all sort-locked slots."] = "Se limpiaron todos los slots bloqueados del ordenado."
|
||||
|
||||
-- Micromenu Latency
|
||||
L["Network"] = "Red"
|
||||
L["Latency"] = "Latencia"
|
||||
|
||||
-- ============================================================================
|
||||
-- STABILIZATION PATCH STRINGS
|
||||
-- ============================================================================
|
||||
|
||||
L["/dragonui debug on|off|status - Toggle diagnostic logging"] = "/dragonui debug on|off|status - Activar o desactivar el registro de diagnóstico"
|
||||
L["Usage: /dragonui debug on|off|status"] = "Uso: /dragonui debug on|off|status"
|
||||
L["Enable debug mode first with /dragonui debug on"] = "Activa primero el modo depuración con /dragonui debug on"
|
||||
L["Debug mode is %s"] = "El modo depuración está %s"
|
||||
L["Debug mode enabled"] = "Modo depuración activado"
|
||||
L["Debug mode disabled"] = "Modo depuración desactivado"
|
||||
L["enabled"] = true
|
||||
L["disabled"] = true
|
||||
L["Enabled"] = "Activado"
|
||||
L["Disabled"] = "Desactivado"
|
||||
L["Legacy refresh failed for"] = true
|
||||
L["RegisterMover: name and parent are required"] = true
|
||||
L["Bonus Action Button %d"] = true
|
||||
L["Bottom Left Button"] = true
|
||||
L["Bottom Right Button"] = true
|
||||
L["Right Button"] = true
|
||||
L["Left Button"] = true
|
||||
L["Totem Bar"] = true
|
||||
L["Test Pet"] = true
|
||||
L["=== TargetFrame children (depth 3) ==="] = true
|
||||
L["=== FocusFrame children (depth 3) ==="] = true
|
||||
L["BG texture not found"] = true
|
||||
L["BG tinted RED"] = true
|
||||
L["BG tinted GREEN"] = true
|
||||
L["BG color reset"] = true
|
||||
L["=== BANK SCAN DEBUG ==="] = true
|
||||
L["=== BANK QUALITY DEBUG ==="] = true
|
||||
L["Module enabled:"] = true
|
||||
L["BankFrame exists:"] = true
|
||||
L["BankFrame shown:"] = true
|
||||
L["Usage: /dui shadowcolor red|green|reset|info"] = true
|
||||
L["Usage: /dui shadowcrop <bottom_px> [right_px]"] = true
|
||||
L[" e.g. /dui shadowcrop 90 - show top 90 of 128 px height"] = true
|
||||
L[" e.g. /dui shadowcrop 90 200 - crop both bottom and right"] = true
|
||||
L[" /dui shadowcrop reset - restore full texture"] = true
|
||||
L["BG reset to 256x128 full texture"] = true
|
||||
L["Crop applied: showing %dx%d of 256x128 (texcoord 0-%.3f, 0-%.3f)"] = true
|
||||
L["Invalid values. Height 1-128, Width 1-256"] = true
|
||||
L["=== TargetFrame elements (use /dui shadowtest N to toggle) ==="] = true
|
||||
L["Total elements: %d"] = true
|
||||
L["HIDDEN: %d. %s [%s]"] = true
|
||||
L["SHOWN: %d. %s [%s]"] = true
|
||||
L["Invalid element number. Use /dui shadowtest to list."] = true
|
||||
L["DragonUI Compatibility:"] = true
|
||||
L["Registered Modules:"] = "Módulos registrados:"
|
||||
L["No modules registered in ModuleRegistry"] = "No hay módulos registrados en ModuleRegistry"
|
||||
L["load-once"] = "cargar una vez"
|
||||
L["%s will disable after /reload because its secure hooks cannot be removed safely."] = "%s se desactivará tras /reload porque sus hooks seguros no pueden eliminarse de forma segura."
|
||||
L["%s uses permanent secure hooks and will fully disable after /reload."] = "%s usa hooks seguros permanentes y se desactivará por completo tras /reload."
|
||||
L["%s remains active until /reload because its secure hooks cannot be removed safely."] = "%s seguirá activo hasta /reload porque sus hooks seguros no pueden eliminarse de forma segura."
|
||||
L["Cooldown Text"] = "Texto de reutilización"
|
||||
L["Cooldown text on action buttons"] = "Texto de reutilización en los botones de acción"
|
||||
L["Cast Bar"] = "Barra de lanzamiento"
|
||||
L["Custom player, target, and focus cast bars"] = "Barras de lanzamiento personalizadas para jugador, objetivo y foco"
|
||||
L["Multicast"] = "Multicast"
|
||||
L["Shaman totem bar positioning and styling"] = "Posicionamiento y estilo de la barra de tótems de chamán"
|
||||
L["Player Frame"] = "Marco del jugador"
|
||||
L["Dragonflight-styled boss target frames"] = "Marcos de objetivo de jefe con estilo Dragonflight"
|
||||
L["Dragonflight-styled player unit frame"] = "Marco de unidad del jugador con estilo Dragonflight"
|
||||
L["ModuleRegistry:Register requires name and moduleTable"] = "ModuleRegistry:Register requiere name y moduleTable"
|
||||
L["ModuleRegistry: Module already registered -"] = "ModuleRegistry: Módulo ya registrado -"
|
||||
L["ModuleRegistry: Registered module -"] = "ModuleRegistry: Módulo registrado -"
|
||||
L["order:"] = "orden:"
|
||||
L["ModuleRegistry: Refresh failed for"] = "ModuleRegistry: Falló la actualización para"
|
||||
L["ModuleRegistry: Unknown module -"] = "ModuleRegistry: Módulo desconocido -"
|
||||
L["ModuleRegistry: Enabled -"] = "ModuleRegistry: Activado -"
|
||||
L["ModuleRegistry: Disabled -"] = "ModuleRegistry: Desactivado -"
|
||||
L["CombatQueue:Add requires id and func"] = "CombatQueue:Add requiere id y func"
|
||||
L["CombatQueue: Registered PLAYER_REGEN_ENABLED"] = "CombatQueue: PLAYER_REGEN_ENABLED registrado"
|
||||
L["CombatQueue: Queued operation -"] = "CombatQueue: Operación en cola -"
|
||||
L["CombatQueue: Removed operation -"] = "CombatQueue: Operación eliminada -"
|
||||
L["CombatQueue: Processing"] = "CombatQueue: Procesando"
|
||||
L["queued operations"] = "operaciones en cola"
|
||||
L["CombatQueue: Failed to execute"] = "CombatQueue: Error al ejecutar"
|
||||
L["CombatQueue: Executed -"] = "CombatQueue: Ejecutado -"
|
||||
L["CombatQueue: Unregistered PLAYER_REGEN_ENABLED"] = "CombatQueue: PLAYER_REGEN_ENABLED cancelado"
|
||||
L["CombatQueue: Immediate execution failed -"] = "CombatQueue: Falló la ejecución inmediata -"
|
||||
|
||||
-- ============================================================================
|
||||
-- RELEASE PREP STRINGS
|
||||
-- ============================================================================
|
||||
|
||||
L["Buttons"] = "Botones"
|
||||
L["Action button styling and enhancements"] = "Estilo y mejoras de botones de acción"
|
||||
L["Dark Mode"] = "Modo Oscuro"
|
||||
L["Darken UI borders and chrome"] = "Oscurecer bordes y elementos de la interfaz"
|
||||
L["Item Quality"] = "Calidad de Objeto"
|
||||
L["Color item borders by quality in bags, character panel, bank, and merchant"] = "Colorear los bordes de objetos por calidad en bolsas, personaje, banco y mercader"
|
||||
L["Key Binding"] = "Atajos de Teclado"
|
||||
L["LibKeyBound integration for intuitive keybinding"] = "Integración con LibKeyBound para asignación de teclas intuitiva"
|
||||
L["Buff Frame"] = "Marco de Beneficios"
|
||||
L["Custom buff frame styling, positioning and toggle button"] = "Estilo, posición y botón de alternancia personalizados para beneficios"
|
||||
L["Chat Mods"] = "Mejoras de Chat"
|
||||
L["Chat enhancements: hide buttons, editbox position, URL copy, chat copy, link hover, tell target"] = "Mejoras de chat: ocultar botones, posición de caja de texto, copiar URL, copiar chat, enlaces al pasar el cursor y susurrar al objetivo"
|
||||
L["Bag Sort"] = "Ordenar Bolsas"
|
||||
L["Sort bags and bank items with buttons"] = "Ordenar bolsas y banco con botones"
|
||||
L["Combuctor"] = "Combuctor"
|
||||
L["All-in-one bag replacement with filtering and search"] = "Reemplazo de bolsas todo en uno con filtros y búsqueda"
|
||||
L["Stance Bar"] = "Barra de Posturas"
|
||||
L["Vehicle"] = "Vehículo"
|
||||
L["Vehicle interface enhancements"] = "Mejoras de la interfaz de vehículo"
|
||||
L["Pet Bar"] = "Barra de Mascota"
|
||||
L["Micro Menu"] = "Micromenú"
|
||||
L["Main Bars"] = "Barras Principales"
|
||||
L["Main action bars, status bars, scaling and positioning"] = "Barras de acción principales, barras de estado, escalado y posicionamiento"
|
||||
L["Hide Blizzard"] = "Ocultar Blizzard"
|
||||
L["Hide default Blizzard UI elements"] = "Ocultar elementos de interfaz predeterminados de Blizzard"
|
||||
L["Minimap"] = "Minimapa"
|
||||
L["Custom minimap styling, positioning, tracking icons and calendar"] = "Estilo, posicionamiento, iconos de rastreo y calendario personalizados para el minimapa"
|
||||
L["Quest tracker positioning and styling"] = "Posicionamiento y estilo del rastreador de misiones"
|
||||
L["Tooltip"] = "Tooltip"
|
||||
L["Enhanced tooltip styling with class colors and health bars"] = "Estilo mejorado del tooltip con colores de clase y barras de salud"
|
||||
L["Unit Frame Layers"] = "Capas de Marcos de Unidad"
|
||||
L["Heal prediction, absorb shields, and animated health loss on unit frames"] = "Predicción de sanación, escudos de absorción y pérdida de salud animada en marcos de unidad"
|
||||
L["Stance/shapeshift bar positioning and styling"] = "Posicionamiento y estilo de la barra de posturas/cambiaformas"
|
||||
L["Pet action bar positioning and styling"] = "Posicionamiento y estilo de la barra de acción de mascota"
|
||||
L["Micro menu and bags system styling and positioning"] = "Estilo y posicionamiento del micromenú y sistema de bolsas"
|
||||
L["Sort complete."] = "Ordenación completada."
|
||||
L["Sort already in progress."] = "La ordenación ya está en progreso."
|
||||
L["Bags already sorted!"] = "¡Las bolsas ya están ordenadas!"
|
||||
L["You must be at the bank."] = "Debes estar en el banco."
|
||||
L["Bank already sorted!"] = "¡El banco ya está ordenado!"
|
||||
L["Reputation: "] = "Reputación: "
|
||||
L["Error in SafeCall:"] = "Error en SafeCall:"
|
||||
|
||||
L["Copy Text"] = "Copiar texto"
|
||||
@@ -0,0 +1,408 @@
|
||||
--[[
|
||||
================================================================================
|
||||
DragonUI - English Locale (Default)
|
||||
================================================================================
|
||||
Base locale. All keys use `true` (the key itself is the display value).
|
||||
|
||||
When adding new strings:
|
||||
1. Add L[<your key>] = true here
|
||||
2. Use L["Your String"] in your code
|
||||
3. Add translations to other locale files
|
||||
================================================================================
|
||||
]]
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("DragonUI", "esMX")
|
||||
if not L then return end
|
||||
|
||||
-- ============================================================================
|
||||
-- CORE / GENERAL
|
||||
-- ============================================================================
|
||||
|
||||
-- Combat lockdown messages
|
||||
L["Cannot toggle editor mode during combat!"] = "¡No se puede cambiar el modo editor durante combate!"
|
||||
L["Cannot reset positions during combat!"] = "¡No se pueden restablecer las posiciones durante combate!"
|
||||
L["Cannot toggle keybind mode during combat!"] = "¡No se puede cambiar el modo de atajos durante combate!"
|
||||
L["Cannot move frames during combat!"] = "¡No se pueden mover marcos durante combate!"
|
||||
L["Cannot open options in combat."] = "No se pueden abrir las opciones en combate."
|
||||
L["Options panel not available. Try /reload."] = "Panel de opciones no disponible. Prueba /reload."
|
||||
|
||||
-- Module availability
|
||||
L["Editor mode not available."] = "Modo editor no disponible."
|
||||
L["Keybind mode not available."] = "Modo de atajos no disponible."
|
||||
L["Vehicle debug not available"] = "Depuración de vehículo no disponible"
|
||||
L["KeyBinding module not available"] = "Módulo de atajos de teclado no disponible"
|
||||
L["Unable to open configuration"] = "No se pudo abrir la configuración"
|
||||
L["Commands: /dragonui config, /dragonui edit"] = "Comandos: /dragonui config, /dragonui edit"
|
||||
L["Reset position: %s"] = "Posición restablecida: %s"
|
||||
L["All positions reset to defaults"] = "Todas las posiciones restablecidas a valores predeterminados"
|
||||
L["Editor mode enabled - Drag frames to reposition"] = "Modo editor activado - Arrastra los marcos para reposicionar"
|
||||
L["Editor mode disabled - Positions saved"] = "Modo editor desactivado - Posiciones guardadas"
|
||||
L["Minimap module restored to Blizzard defaults"] = "Módulo de minimapa restaurado a valores predeterminados de Blizzard"
|
||||
L["All action bar scales reset to default values"] = "Todas las escalas de barras de acción restablecidas a valores predeterminados"
|
||||
L["Minimap position reset to default"] = "Posición del minimapa restablecida a valores predeterminados"
|
||||
L["Targeting: %s"] = "Apuntando a: %s"
|
||||
L["XP: %d/%d"] = "XP: %d/%d"
|
||||
L["GROUP %d"] = "GRUPO %d"
|
||||
L["XP: "] = "XP: "
|
||||
L["Remaining: "] = "Restante: "
|
||||
L["Rested: "] = "Descanso: "
|
||||
|
||||
-- Errors
|
||||
L["Error executing pending operation:"] = "Error al ejecutar operación pendiente:"
|
||||
L["Error -- Addon 'DragonUI_Options' not found or is disabled."] = "Error -- El addon 'DragonUI_Options' no se encontró o está desactivado."
|
||||
|
||||
-- ============================================================================
|
||||
-- SLASH COMMANDS / HELP
|
||||
-- ============================================================================
|
||||
|
||||
L["Unknown command: "] = "Comando desconocido: "
|
||||
L["=== DragonUI Commands ==="] = "=== Comandos de DragonUI ==="
|
||||
L["/dragonui or /dui - Open configuration"] = "/dragonui o /dui - Abrir configuración"
|
||||
L["/dragonui config - Open configuration"] = "/dragonui config - Abrir configuración"
|
||||
L["/dragonui edit - Toggle editor mode (move UI elements)"] = "/dragonui edit - Cambiar modo editor (mover elementos de UI)"
|
||||
L["/dragonui reset - Reset all positions to defaults"] = "/dragonui reset - Restablecer todas las posiciones"
|
||||
L["/dragonui reset <name> - Reset specific mover"] = "/dragonui reset <nombre> - Restablecer posición específica"
|
||||
L["/dragonui status - Show module status"] = "/dragonui status - Mostrar estado de módulos"
|
||||
L["/dragonui kb - Toggle keybind mode"] = "/dragonui kb - Cambiar modo de atajos"
|
||||
L["/dragonui version - Show version info"] = "/dragonui version - Mostrar versión"
|
||||
L["/dragonui help - Show this help"] = "/dragonui help - Mostrar esta ayuda"
|
||||
L["/rl - Reload UI"] = "/rl - Recargar interfaz"
|
||||
|
||||
-- ============================================================================
|
||||
-- STATUS DISPLAY
|
||||
-- ============================================================================
|
||||
|
||||
L["=== DragonUI Status ==="] = "=== Estado de DragonUI ==="
|
||||
L["Detected Modules:"] = "Módulos detectados:"
|
||||
L["Loaded"] = "Cargado"
|
||||
L["Not Loaded"] = "No cargado"
|
||||
L["Target Frame"] = true
|
||||
L["Focus Frame"] = true
|
||||
L["Party Frames"] = true
|
||||
L["Cooldowns"] = true
|
||||
L["Registered Movers: "] = "Movedores registrados: "
|
||||
L["Editable Frames: "] = "Marcos editables: "
|
||||
L["DragonUI Version: "] = "Versión de DragonUI: "
|
||||
L["Use /dragonui edit to enter edit mode, then right-click frames to reset."] = "Usa /dragonui edit para entrar en modo edición, luego haz clic derecho en marcos para restablecer."
|
||||
|
||||
-- ============================================================================
|
||||
-- EDITOR MODE
|
||||
-- ============================================================================
|
||||
|
||||
L["Exit Edit Mode"] = "Salir Editor"
|
||||
L["Reset All Positions"] = "Restablecer Posiciones"
|
||||
L["Are you sure you want to reset all interface elements to their default positions?"] = "¿Restablecer todos los elementos a su posición predeterminada?"
|
||||
L["Yes"] = "Sí"
|
||||
L["No"] = "No"
|
||||
L["UI elements have been repositioned. Reload UI to ensure all graphics display correctly?"] = "Los elementos de la interfaz han sido reposicionados. ¿Recargar la interfaz para que se muestren correctamente?"
|
||||
L["Reload Now"] = "Recargar Ahora"
|
||||
L["Later"] = "Más Tarde"
|
||||
|
||||
-- ============================================================================
|
||||
-- KEYBINDING MODULE
|
||||
-- ============================================================================
|
||||
|
||||
L["LibKeyBound-1.0 not found or failed to load:"] = "LibKeyBound-1.0 no encontrado o error al cargar:"
|
||||
L["Commands:"] = "Comandos:"
|
||||
L["/dukb - Toggle keybinding mode"] = "/dukb - Cambiar modo de atajos"
|
||||
L["/dukb help - Show this help"] = "/dukb help - Mostrar esta ayuda"
|
||||
L["Module disabled."] = "Módulo desactivado."
|
||||
L["Keybinding mode activated. Hover over buttons and press keys to bind them."] = "Modo de atajos activado. Pasa el ratón sobre los botones y pulsa teclas para asignarlas."
|
||||
L["Keybinding mode deactivated."] = "Modo de atajos desactivado."
|
||||
|
||||
-- ============================================================================
|
||||
-- GAME MENU
|
||||
-- ============================================================================
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- MINIMAP MODULE
|
||||
-- ============================================================================
|
||||
|
||||
L["DragonUI: Minimap module restored to Blizzard defaults"] = "DragonUI: Módulo de minimapa restaurado a los valores de Blizzard"
|
||||
|
||||
-- ============================================================================
|
||||
-- EDITOR MODE LABELS (displayed on mover overlays)
|
||||
-- ============================================================================
|
||||
|
||||
L["MainBar"] = "Barra Princ."
|
||||
L["RightBar"] = "Barra Der."
|
||||
L["LeftBar"] = "Barra Izq."
|
||||
L["BottomBarLeft"] = "Barra Inf. Izq."
|
||||
L["BottomBarRight"] = "Barra Inf. Der."
|
||||
L["XPBar"] = "Barra XP"
|
||||
L["RepBar"] = "Barra Rep."
|
||||
L["MinimapFrame"] = "Minimapa"
|
||||
L["LFGFrame"] = "Ojo de Mazmorra"
|
||||
L["PlayerFrame"] = "Jugador"
|
||||
L["ManaBar"] = "Barra Maná"
|
||||
L["PetFrame"] = "Mascota"
|
||||
L["ToF"] = "OdF"
|
||||
L["tot"] = "OdO"
|
||||
L["ToT"] = "OdO"
|
||||
L["fot"] = "OdF"
|
||||
L["PartyFrames"] = "Grupo"
|
||||
L["TargetFrame"] = "Objetivo"
|
||||
L["FocusFrame"] = "Foco"
|
||||
L["BagsBar"] = "Bolsas"
|
||||
L["MicroMenu"] = "Micromenú"
|
||||
L["VehicleExitOverlay"] = "Salir Vehículo"
|
||||
L["StanceOverlay"] = "Posturas"
|
||||
L["petbar"] = "Barra Mascota"
|
||||
L["boss"] = "Marcos de Jefe"
|
||||
L["Boss Frames"] = "Marcos de Jefe"
|
||||
L["Boss1Frame"] = "Marcos de Jefe"
|
||||
L["Boss2Frame"] = "Marcos de Jefe"
|
||||
L["Boss3Frame"] = "Marcos de Jefe"
|
||||
L["Boss4Frame"] = "Marcos de Jefe"
|
||||
L["TotemBarOverlay"] = "Tótems"
|
||||
L["PlayerCastbar"] = "Barra Hechizos"
|
||||
L["TooltipWidget"] = "Tooltip"
|
||||
L["Auras"] = "Auras"
|
||||
L["WeaponEnchants"] = "Encantamientos"
|
||||
L["Loot Roll"] = "Botín"
|
||||
L["Quest Tracker"] = "Misiones"
|
||||
|
||||
-- Mover tooltip strings
|
||||
L["Drag to move"] = "Arrastra para mover"
|
||||
L["Right-click to reset"] = "Clic der. para reiniciar"
|
||||
|
||||
-- Editor mode system messages
|
||||
L["All editable frames shown for editing"] = "Marcos editables mostrados"
|
||||
L["All editable frames hidden, positions saved"] = "Marcos ocultados, posiciones guardadas"
|
||||
|
||||
-- ============================================================================
|
||||
-- COMPATIBILITY MODULE
|
||||
-- ============================================================================
|
||||
|
||||
-- Conflict warning popup
|
||||
L["DragonUI Conflict Warning"] = "Advertencia de Conflicto de DragonUI"
|
||||
L["The addon |cFFFFFF00%s|r conflicts with DragonUI."] = "El addon |cFFFFFF00%s|r entra en conflicto con DragonUI."
|
||||
L["Reason:"] = "Razón:"
|
||||
L["Disable the conflicting addon now?"] = "¿Desactivar el addon conflictivo ahora?"
|
||||
L["Keep Both"] = "Mantener Ambos"
|
||||
L["DragonUI - D3D9Ex Warning"] = "DragonUI - Aviso de D3D9Ex"
|
||||
L["DragonUI detected that your client is using D3D9Ex."] = "DragonUI ha detectado que tu cliente está usando D3D9Ex."
|
||||
L["DragonUI's action bar system is not compatible with D3D9Ex."] = "El sistema de barras de acción de DragonUI no es compatible con D3D9Ex."
|
||||
L["Some DragonUI action bar textures will be missing while this mode is active."] = "Faltarán algunas texturas de las barras de acción de DragonUI mientras este modo esté activo."
|
||||
L["If you want to disable this mode, open WTF\\Config.wtf."] = "Si quieres desactivar este modo, abre WTF\\Config.wtf."
|
||||
L["Delete this line:"] = "Borra esta línea:"
|
||||
L["Or replace it with:"] = "O cámbiala por esta otra:"
|
||||
L["Hide Gryphons"] = "Esconder grifos"
|
||||
L["Understood"] = "Entendido"
|
||||
L["DragonUI - UnitFrameLayers Detected"] = "DragonUI - UnitFrameLayers Detectado"
|
||||
L["DragonUI already includes Unit Frame Layers functionality (heal prediction, absorb shields, and animated health loss)."] = "DragonUI ya incluye la funcionalidad de Unit Frame Layers (predicción de curación, escudos de absorción y pérdida de vida animada)."
|
||||
L["Choose how to resolve this overlap:"] = "Elige cómo resolver esta superposición:"
|
||||
L["Use DragonUI: disable external UnitFrameLayers and enable DragonUI layers."] = "Usar DragonUI: desactiva UnitFrameLayers externo y activa las capas de DragonUI."
|
||||
L["Disable Both: disable external UnitFrameLayers and keep DragonUI layers disabled."] = "Desactivar ambos: desactiva UnitFrameLayers externo y mantiene desactivadas las capas de DragonUI."
|
||||
L["Use DragonUI"] = "Usar DragonUI"
|
||||
L["Disable Both"] = "Desactivar ambos"
|
||||
L["Use DragonUI Unit Frame Layers"] = "Usar Unit Frame Layers de DragonUI"
|
||||
L["Disable both Unit Frame Layers"] = "Desactivar ambos Unit Frame Layers"
|
||||
L["DragonUI - Party Frame Issue"] = true
|
||||
L["You joined a party while in combat. Due to CompactRaidFrame taint issues, party frames may not display correctly."] = true
|
||||
L["Reload the UI to fix party frame display?"] = true
|
||||
|
||||
-- Conflict reasons
|
||||
L["Conflicts with DragonUI's custom unit frame textures and power bar system."] = "Entra en conflicto con las texturas personalizadas de marcos de unidad y el sistema de barra de poder de DragonUI."
|
||||
L["Known taint issues when manipulating party frames during combat. DragonUI provides automatic fixes."] = "Problemas conocidos de contaminación al manipular marcos de grupo en combate. DragonUI proporciona correcciones automáticas."
|
||||
L["Resets minimap mask and blip textures. DragonUI re-applies its custom textures automatically."] = "Restablece la máscara del minimapa y las texturas de puntos. DragonUI vuelve a aplicar sus texturas personalizadas automáticamente."
|
||||
L["SexyMap modifies the minimap borders, shape, and zone text which conflicts with DragonUI's minimap module."] = "SexyMap modifica los bordes del minimapa, la forma y el texto de zona, lo cual entra en conflicto con el módulo de minimapa de DragonUI."
|
||||
|
||||
-- SexyMap compatibility popup
|
||||
L["DragonUI - SexyMap Detected"] = "DragonUI - SexyMap Detectado"
|
||||
L["Which minimap do you want to use?"] = "¿Qué minimapa quieres usar?"
|
||||
L["SexyMap"] = "SexyMap"
|
||||
L["DragonUI"] = "DragonUI"
|
||||
L["Hybrid"] = "Híbrido"
|
||||
L["Recommended"] = "Recomendado"
|
||||
|
||||
-- SexyMap options panel
|
||||
L["SexyMap Compatibility"] = "Compatibilidad SexyMap"
|
||||
L["Minimap Mode"] = "Modo de Minimapa"
|
||||
L["Choose how DragonUI and SexyMap share the minimap."] = "Elige cómo comparten el minimapa DragonUI y SexyMap."
|
||||
L["Requires UI reload to apply."] = "Requiere recargar la interfaz para aplicar."
|
||||
L["Uses SexyMap for the minimap."] = "Usa SexyMap para el minimapa."
|
||||
L["Uses DragonUI for the minimap."] = "Usa DragonUI para el minimapa."
|
||||
L["SexyMap visuals with DragonUI editor and positioning."] = "Aspecto de SexyMap, movible y configurable desde DragonUI."
|
||||
L["Minimap mode changed. Reload UI to apply?"] = "Modo de minimapa cambiado. ¿Recargar interfaz para aplicar?"
|
||||
|
||||
-- SexyMap slash commands
|
||||
L["SexyMap compatibility mode has been reset. Reload UI to choose again."] = "El modo de compatibilidad SexyMap se ha restablecido. Recarga la interfaz para elegir de nuevo."
|
||||
L["Current SexyMap mode: |cFFFFFF00%s|r"] = "Modo SexyMap actual: |cFFFFFF00%s|r"
|
||||
L["No SexyMap mode selected (SexyMap not detected or not yet chosen)."] = "No se ha seleccionado modo SexyMap (SexyMap no detectado o aún no elegido)."
|
||||
L["Show current SexyMap compatibility mode"] = "Mostrar modo de compatibilidad SexyMap actual"
|
||||
L["Reset SexyMap mode choice (re-prompts on reload)"] = "Restablecer la elección de modo SexyMap (vuelve a preguntar al recargar)"
|
||||
L["Loaded addons:"] = "Addons cargados:"
|
||||
|
||||
-- ============================================================================
|
||||
-- STATIC POPUPS (shared between modules)
|
||||
-- ============================================================================
|
||||
|
||||
L["Changing this setting requires a UI reload to apply correctly."] = "Cambiar esta opción requiere recargar la interfaz para aplicarse correctamente."
|
||||
L["Reload UI"] = "Recargar Interfaz"
|
||||
L["Not Now"] = "Ahora No"
|
||||
L["Disable"] = "Desactivar"
|
||||
L["Ignore"] = "Ignorar"
|
||||
L["Skip"] = "Omitir"
|
||||
L["The Blizzard option |cFFFFFF00Party/Arena Background|r is enabled. This conflicts with DragonUI's party frames."] = "La opción de Blizzard |cFFFFFF00Fondo de Grupo/Arena|r está activada. Esto entra en conflicto con los marcos de grupo de DragonUI."
|
||||
L["Disable it now?"] = "¿Desactivarla ahora?"
|
||||
L["Some interface settings are not configured optimally for DragonUI."] = "Algunas opciones de interfaz no están configuradas de forma óptima para DragonUI."
|
||||
L["This includes settings that conflict with DragonUI and settings recommended for the best visual experience."] = "Esto incluye opciones que entran en conflicto con DragonUI y opciones recomendadas para una mejor experiencia visual."
|
||||
L["Affected settings:"] = "Opciones afectadas:"
|
||||
L["Some interface settings are not configured optimally for DragonUI. Do you want to fix them?"] = "Algunas opciones de interfaz no están configuradas de forma óptima para DragonUI. ¿Quieres corregirlas?"
|
||||
L["Do you want to fix them now?"] = "¿Quieres corregirlas ahora?"
|
||||
L["Party/Arena Background"] = "Fondo de Grupo/Arena"
|
||||
L["Default Status Text"] = "Texto de estado predeterminado"
|
||||
L["Conflict"] = "Conflicto"
|
||||
L["Recommended"] = "Recomendado"
|
||||
|
||||
-- Bag Sort
|
||||
L["Sort Bags"] = "Ordenar Bolsas"
|
||||
L["Sort Bank"] = "Ordenar Banco"
|
||||
L["Sort Items"] = "Ordenar Objetos"
|
||||
L["Click to sort items by type, rarity, and name."] = "Clic para ordenar objetos por tipo, rareza y nombre."
|
||||
L["Clear Locked Slots"] = "Limpiar Slots Bloqueados"
|
||||
L["Click to clear all locked bag slots."] = "Clic para limpiar todos los slots bloqueados de bolsas."
|
||||
L["Alt+LeftClick any bag slot (item or empty) to lock or unlock it."] = "Alt+Clic izquierdo en cualquier slot de bolsa (con objeto o vacío) para bloquearlo o desbloquearlo."
|
||||
L["Click the lock-clear button to remove all locked slots."] = "Haz clic en el botón de limpiar bloqueos para quitar todos los slots bloqueados."
|
||||
L["Hover an item or slot, then type /sortlock."] = "Pasa el cursor sobre un objeto o slot y luego escribe /sortlock."
|
||||
L["Slot locked (bag %d, slot %d)."] = "Slot bloqueado (bolsa %d, slot %d)."
|
||||
L["Slot unlocked (bag %d, slot %d)."] = "Slot desbloqueado (bolsa %d, slot %d)."
|
||||
L["Could not clear locks (config not ready)."] = "No se pudieron limpiar los bloqueos (configuración no lista)."
|
||||
L["Cleared all sort-locked slots."] = "Se limpiaron todos los slots bloqueados del ordenado."
|
||||
|
||||
-- Micromenu Latency
|
||||
L["Network"] = "Red"
|
||||
L["Latency"] = "Latencia"
|
||||
|
||||
-- ============================================================================
|
||||
-- STABILIZATION PATCH STRINGS
|
||||
-- ============================================================================
|
||||
|
||||
L["/dragonui debug on|off|status - Toggle diagnostic logging"] = "/dragonui debug on|off|status - Activar o desactivar el registro de diagnóstico"
|
||||
L["Usage: /dragonui debug on|off|status"] = "Uso: /dragonui debug on|off|status"
|
||||
L["Enable debug mode first with /dragonui debug on"] = "Activa primero el modo depuración con /dragonui debug on"
|
||||
L["Debug mode is %s"] = "El modo depuración está %s"
|
||||
L["Debug mode enabled"] = "Modo depuración activado"
|
||||
L["Debug mode disabled"] = "Modo depuración desactivado"
|
||||
L["enabled"] = true
|
||||
L["disabled"] = true
|
||||
L["Enabled"] = "Activado"
|
||||
L["Disabled"] = "Desactivado"
|
||||
L["Legacy refresh failed for"] = true
|
||||
L["RegisterMover: name and parent are required"] = true
|
||||
L["Bonus Action Button %d"] = true
|
||||
L["Bottom Left Button"] = true
|
||||
L["Bottom Right Button"] = true
|
||||
L["Right Button"] = true
|
||||
L["Left Button"] = true
|
||||
L["Totem Bar"] = true
|
||||
L["Test Pet"] = true
|
||||
L["=== TargetFrame children (depth 3) ==="] = true
|
||||
L["=== FocusFrame children (depth 3) ==="] = true
|
||||
L["BG texture not found"] = true
|
||||
L["BG tinted RED"] = true
|
||||
L["BG tinted GREEN"] = true
|
||||
L["BG color reset"] = true
|
||||
L["=== BANK SCAN DEBUG ==="] = true
|
||||
L["=== BANK QUALITY DEBUG ==="] = true
|
||||
L["Module enabled:"] = true
|
||||
L["BankFrame exists:"] = true
|
||||
L["BankFrame shown:"] = true
|
||||
L["Usage: /dui shadowcolor red|green|reset|info"] = true
|
||||
L["Usage: /dui shadowcrop <bottom_px> [right_px]"] = true
|
||||
L[" e.g. /dui shadowcrop 90 - show top 90 of 128 px height"] = true
|
||||
L[" e.g. /dui shadowcrop 90 200 - crop both bottom and right"] = true
|
||||
L[" /dui shadowcrop reset - restore full texture"] = true
|
||||
L["BG reset to 256x128 full texture"] = true
|
||||
L["Crop applied: showing %dx%d of 256x128 (texcoord 0-%.3f, 0-%.3f)"] = true
|
||||
L["Invalid values. Height 1-128, Width 1-256"] = true
|
||||
L["=== TargetFrame elements (use /dui shadowtest N to toggle) ==="] = true
|
||||
L["Total elements: %d"] = true
|
||||
L["HIDDEN: %d. %s [%s]"] = true
|
||||
L["SHOWN: %d. %s [%s]"] = true
|
||||
L["Invalid element number. Use /dui shadowtest to list."] = true
|
||||
L["DragonUI Compatibility:"] = true
|
||||
L["Registered Modules:"] = "Módulos registrados:"
|
||||
L["No modules registered in ModuleRegistry"] = "No hay módulos registrados en ModuleRegistry"
|
||||
L["load-once"] = "cargar una vez"
|
||||
L["%s will disable after /reload because its secure hooks cannot be removed safely."] = "%s se desactivará tras /reload porque sus hooks seguros no pueden eliminarse de forma segura."
|
||||
L["%s uses permanent secure hooks and will fully disable after /reload."] = "%s usa hooks seguros permanentes y se desactivará por completo tras /reload."
|
||||
L["%s remains active until /reload because its secure hooks cannot be removed safely."] = "%s seguirá activo hasta /reload porque sus hooks seguros no pueden eliminarse de forma segura."
|
||||
L["Cooldown Text"] = "Texto de reutilización"
|
||||
L["Cooldown text on action buttons"] = "Texto de reutilización en los botones de acción"
|
||||
L["Cast Bar"] = "Barra de lanzamiento"
|
||||
L["Custom player, target, and focus cast bars"] = "Barras de lanzamiento personalizadas para jugador, objetivo y foco"
|
||||
L["Multicast"] = "Multicast"
|
||||
L["Shaman totem bar positioning and styling"] = "Posicionamiento y estilo de la barra de tótems de chamán"
|
||||
L["Player Frame"] = "Marco del jugador"
|
||||
L["Dragonflight-styled boss target frames"] = "Marcos de objetivo de jefe con estilo Dragonflight"
|
||||
L["Dragonflight-styled player unit frame"] = "Marco de unidad del jugador con estilo Dragonflight"
|
||||
L["ModuleRegistry:Register requires name and moduleTable"] = "ModuleRegistry:Register requiere name y moduleTable"
|
||||
L["ModuleRegistry: Module already registered -"] = "ModuleRegistry: Módulo ya registrado -"
|
||||
L["ModuleRegistry: Registered module -"] = "ModuleRegistry: Módulo registrado -"
|
||||
L["order:"] = "orden:"
|
||||
L["ModuleRegistry: Refresh failed for"] = "ModuleRegistry: Falló la actualización para"
|
||||
L["ModuleRegistry: Unknown module -"] = "ModuleRegistry: Módulo desconocido -"
|
||||
L["ModuleRegistry: Enabled -"] = "ModuleRegistry: Activado -"
|
||||
L["ModuleRegistry: Disabled -"] = "ModuleRegistry: Desactivado -"
|
||||
L["CombatQueue:Add requires id and func"] = "CombatQueue:Add requiere id y func"
|
||||
L["CombatQueue: Registered PLAYER_REGEN_ENABLED"] = "CombatQueue: PLAYER_REGEN_ENABLED registrado"
|
||||
L["CombatQueue: Queued operation -"] = "CombatQueue: Operación en cola -"
|
||||
L["CombatQueue: Removed operation -"] = "CombatQueue: Operación eliminada -"
|
||||
L["CombatQueue: Processing"] = "CombatQueue: Procesando"
|
||||
L["queued operations"] = "operaciones en cola"
|
||||
L["CombatQueue: Failed to execute"] = "CombatQueue: Error al ejecutar"
|
||||
L["CombatQueue: Executed -"] = "CombatQueue: Ejecutado -"
|
||||
L["CombatQueue: Unregistered PLAYER_REGEN_ENABLED"] = "CombatQueue: PLAYER_REGEN_ENABLED cancelado"
|
||||
L["CombatQueue: Immediate execution failed -"] = "CombatQueue: Falló la ejecución inmediata -"
|
||||
|
||||
-- ============================================================================
|
||||
-- RELEASE PREP STRINGS
|
||||
-- ============================================================================
|
||||
|
||||
L["Buttons"] = "Botones"
|
||||
L["Action button styling and enhancements"] = "Estilo y mejoras de botones de acción"
|
||||
L["Dark Mode"] = "Modo Oscuro"
|
||||
L["Darken UI borders and chrome"] = "Oscurecer bordes y elementos de la interfaz"
|
||||
L["Item Quality"] = "Calidad de Objeto"
|
||||
L["Color item borders by quality in bags, character panel, bank, and merchant"] = "Colorear los bordes de objetos por calidad en bolsas, personaje, banco y mercader"
|
||||
L["Key Binding"] = "Atajos de Teclado"
|
||||
L["LibKeyBound integration for intuitive keybinding"] = "Integración con LibKeyBound para asignación de teclas intuitiva"
|
||||
L["Buff Frame"] = "Marco de Beneficios"
|
||||
L["Custom buff frame styling, positioning and toggle button"] = "Estilo, posición y botón de alternancia personalizados para beneficios"
|
||||
L["Chat Mods"] = "Mejoras de Chat"
|
||||
L["Chat enhancements: hide buttons, editbox position, URL copy, chat copy, link hover, tell target"] = "Mejoras de chat: ocultar botones, posición de caja de texto, copiar URL, copiar chat, enlaces al pasar el cursor y susurrar al objetivo"
|
||||
L["Bag Sort"] = "Ordenar Bolsas"
|
||||
L["Sort bags and bank items with buttons"] = "Ordenar bolsas y banco con botones"
|
||||
L["Combuctor"] = "Combuctor"
|
||||
L["All-in-one bag replacement with filtering and search"] = "Reemplazo de bolsas todo en uno con filtros y búsqueda"
|
||||
L["Stance Bar"] = "Barra de Posturas"
|
||||
L["Vehicle"] = "Vehículo"
|
||||
L["Vehicle interface enhancements"] = "Mejoras de la interfaz de vehículo"
|
||||
L["Pet Bar"] = "Barra de Mascota"
|
||||
L["Micro Menu"] = "Micromenú"
|
||||
L["Main Bars"] = "Barras Principales"
|
||||
L["Main action bars, status bars, scaling and positioning"] = "Barras de acción principales, barras de estado, escalado y posicionamiento"
|
||||
L["Hide Blizzard"] = "Ocultar Blizzard"
|
||||
L["Hide default Blizzard UI elements"] = "Ocultar elementos de interfaz predeterminados de Blizzard"
|
||||
L["Minimap"] = "Minimapa"
|
||||
L["Custom minimap styling, positioning, tracking icons and calendar"] = "Estilo, posicionamiento, iconos de rastreo y calendario personalizados para el minimapa"
|
||||
L["Quest tracker positioning and styling"] = "Posicionamiento y estilo del rastreador de misiones"
|
||||
L["Tooltip"] = "Tooltip"
|
||||
L["Enhanced tooltip styling with class colors and health bars"] = "Estilo mejorado del tooltip con colores de clase y barras de salud"
|
||||
L["Unit Frame Layers"] = "Capas de Marcos de Unidad"
|
||||
L["Heal prediction, absorb shields, and animated health loss on unit frames"] = "Predicción de sanación, escudos de absorción y pérdida de salud animada en marcos de unidad"
|
||||
L["Stance/shapeshift bar positioning and styling"] = "Posicionamiento y estilo de la barra de posturas/cambiaformas"
|
||||
L["Pet action bar positioning and styling"] = "Posicionamiento y estilo de la barra de acción de mascota"
|
||||
L["Micro menu and bags system styling and positioning"] = "Estilo y posicionamiento del micromenú y sistema de bolsas"
|
||||
L["Sort complete."] = "Ordenación completada."
|
||||
L["Sort already in progress."] = "La ordenación ya está en progreso."
|
||||
L["Bags already sorted!"] = "¡Las bolsas ya están ordenadas!"
|
||||
L["You must be at the bank."] = "Debes estar en el banco."
|
||||
L["Bank already sorted!"] = "¡El banco ya está ordenado!"
|
||||
L["Reputation: "] = "Reputación: "
|
||||
L["Error in SafeCall:"] = "Error en SafeCall:"
|
||||
|
||||
L["Copy Text"] = "Copiar texto"
|
||||
@@ -0,0 +1,40 @@
|
||||
--[[
|
||||
DragonUI - French Locale (frFR)
|
||||
Community translation — Edit this file to contribute!
|
||||
|
||||
Guidelines:
|
||||
- Use `true` for strings you haven't translated yet (falls back to English)
|
||||
- Keep format specifiers like %s, %d, %.1f intact
|
||||
- Keep slash commands untranslated (/dragonui, /dui, /rl)
|
||||
- Keep "DragonUI" as addon name untranslated
|
||||
- Keep color codes |cff...|r outside of L[] strings
|
||||
]]
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("DragonUI", "frFR")
|
||||
if not L then return end
|
||||
|
||||
-- Example:
|
||||
-- L["Cannot toggle editor mode during combat!"] = "Impossible de basculer le mode éditeur en combat !"
|
||||
|
||||
-- UnitFrameLayers compatibility popup
|
||||
L["TooltipWidget"] = true
|
||||
L["DragonUI - UnitFrameLayers Detected"] = true
|
||||
L["DragonUI already includes Unit Frame Layers functionality (heal prediction, absorb shields, and animated health loss)."] = true
|
||||
L["Choose how to resolve this overlap:"] = true
|
||||
L["Use DragonUI: disable external UnitFrameLayers and enable DragonUI layers."] = true
|
||||
L["Disable Both: disable external UnitFrameLayers and keep DragonUI layers disabled."] = true
|
||||
L["Use DragonUI"] = true
|
||||
L["Disable Both"] = true
|
||||
L["DragonUI - D3D9Ex Warning"] = "DragonUI - Alerte D3D9Ex"
|
||||
L["DragonUI detected that your client is using D3D9Ex."] = "DragonUI a détecté que votre client utilise D3D9Ex."
|
||||
L["DragonUI's action bar system is not compatible with D3D9Ex."] = "Le système de barres d'action de DragonUI n'est pas compatible avec D3D9Ex."
|
||||
L["Some DragonUI action bar textures will be missing while this mode is active."] = "Certaines textures des barres d'action DragonUI manqueront tant que ce mode est actif."
|
||||
L["If you want to disable this mode, open WTF\\Config.wtf."] = "Si vous voulez désactiver ce mode, ouvrez WTF\\Config.wtf."
|
||||
L["Delete this line:"] = "Supprimez cette ligne :"
|
||||
L["Or replace it with:"] = "Ou remplacez-la par :"
|
||||
L["Hide Gryphons"] = "Masquer les griffons"
|
||||
L["Understood"] = "Compris"
|
||||
L["Buttons"] = "Boutons"
|
||||
L["Main Bars"] = "Barres principales"
|
||||
|
||||
L["Copy Text"] = "Copier le texte"
|
||||
@@ -0,0 +1,409 @@
|
||||
--[[
|
||||
================================================================================
|
||||
DragonUI - English Locale (Default)
|
||||
================================================================================
|
||||
Base locale. All keys use `true` (the key itself is the display value).
|
||||
|
||||
When adding new strings:
|
||||
1. Add L[<your key>] = true here
|
||||
2. Use L["Your String"] in your code
|
||||
3. Add translations to other locale files
|
||||
================================================================================
|
||||
]]
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("DragonUI", "koKR")
|
||||
if not L then return end
|
||||
|
||||
-- ============================================================================
|
||||
-- CORE / GENERAL
|
||||
-- ============================================================================
|
||||
|
||||
-- Combat lockdown messages
|
||||
L["Cannot toggle editor mode during combat!"] = "전투 중에는 편집 모드를 열 수 없습니다!"
|
||||
L["Cannot reset positions during combat!"] = "전투 중에는 위치를 초기화할 수 없습니다!"
|
||||
L["Cannot toggle keybind mode during combat!"] = "전투 중에는 단축키 설정 모드를 열 수 없습니다!"
|
||||
L["Cannot move frames during combat!"] = "전투 중에는 프레임을 이동할 수 없습니다!"
|
||||
L["Cannot open options in combat."] = "전투 중에는 옵션을 열 수 없습니다."
|
||||
L["Options panel not available. Try /reload."] = "옵션 패널을 사용할 수 없습니다. /reload를 시도하세요."
|
||||
|
||||
-- Module availability
|
||||
L["Editor mode not available."] = "편집 모드를 사용할 수 없습니다."
|
||||
L["Keybind mode not available."] = "단축키 설정 모드를 사용할 수 없습니다."
|
||||
L["Vehicle debug not available"] = "탈것 디버그를 사용할 수 없습니다."
|
||||
L["KeyBinding module not available"] = "단축키 설정 모듈을 사용할 수 없습니다."
|
||||
L["Unable to open configuration"] = "설정창을 열 수 없습니다."
|
||||
L["Commands: /dragonui config, /dragonui edit"] = "명령어: /dragonui config, /dragonui edit"
|
||||
L["Reset position: %s"] = "위치 초기화: %s"
|
||||
L["All positions reset to defaults"] = "모든 위치가 기본값으로 초기화되었습니다"
|
||||
L["Editor mode enabled - Drag frames to reposition"] = "편집 모드 활성화 - 프레임을 드래그하여 위치 변경"
|
||||
L["Editor mode disabled - Positions saved"] = "편집 모드 비활성화 - 위치가 저장되었습니다"
|
||||
L["Minimap module restored to Blizzard defaults"] = "미니맵 모듈이 블리자드 기본값으로 복원되었습니다"
|
||||
L["All action bar scales reset to default values"] = "모든 액션바 크기가 기본값으로 초기화되었습니다"
|
||||
L["Minimap position reset to default"] = "미니맵 위치가 기본값으로 초기화되었습니다"
|
||||
L["Targeting: %s"] = "대상 지정: %s"
|
||||
L["XP: %d/%d"] = "XP: %d/%d"
|
||||
L["GROUP %d"] = "그룹 %d"
|
||||
L["XP: "] = "XP: "
|
||||
L["Remaining: "] = "남음: "
|
||||
L["Rested: "] = "휴식: "
|
||||
|
||||
-- Errors
|
||||
L["Error executing pending operation:"] = "대기 중인 작업 실행 오류:"
|
||||
L["Error -- Addon 'DragonUI_Options' not found or is disabled."] = "오류 -- 'DragonUI_Options' 애드온을 찾을 수 없거나 비활성화되어 있습니다."
|
||||
|
||||
-- ============================================================================
|
||||
-- SLASH COMMANDS / HELP
|
||||
-- ============================================================================
|
||||
|
||||
L["Unknown command: "] = "알 수 없는 명령어: "
|
||||
L["=== DragonUI Commands ==="] = "=== DragonUI 명령어 ==="
|
||||
L["/dragonui or /dui - Open configuration"] = "/dragonui 또는 /dui - 설정창 열기"
|
||||
L["/dragonui config - Open configuration"] = "/dragonui config - 설정창 열기"
|
||||
L["/dragonui edit - Toggle editor mode (move UI elements)"] = "/dragonui edit - 편집 모드 전환 (UI 요소 이동)"
|
||||
L["/dragonui reset - Reset all positions to defaults"] = "/dragonui reset - 모든 위치를 기본값으로 초기화"
|
||||
L["/dragonui reset <name> - Reset specific mover"] = "/dragonui reset <이름> - 특정 요소의 위치 초기화"
|
||||
L["/dragonui status - Show module status"] = "/dragonui status - 모듈 상태 표시"
|
||||
L["/dragonui kb - Toggle keybind mode"] = "/dragonui kb - 단축키 설정 모드 전환"
|
||||
L["/dragonui version - Show version info"] = "/dragonui version - 버전 정보 표시"
|
||||
L["/dragonui help - Show this help"] = "/dragonui help - 도움말 표시"
|
||||
L["/rl - Reload UI"] = "/rl - UI 재설정(리로드)"
|
||||
|
||||
-- ============================================================================
|
||||
-- STATUS DISPLAY
|
||||
-- ============================================================================
|
||||
|
||||
L["=== DragonUI Status ==="] = "=== DragonUI 상태 ==="
|
||||
L["Detected Modules:"] = "감지된 모듈:"
|
||||
L["Loaded"] = "로드됨"
|
||||
L["Not Loaded"] = "로드되지 않음"
|
||||
L["Target Frame"] = true
|
||||
L["Focus Frame"] = true
|
||||
L["Party Frames"] = true
|
||||
L["Cooldowns"] = true
|
||||
L["Registered Movers: "] = "등록된 이동 지점: "
|
||||
L["Editable Frames: "] = "편집 가능한 프레임: "
|
||||
L["DragonUI Version: "] = "DragonUI 버전: "
|
||||
L["Use /dragonui edit to enter edit mode, then right-click frames to reset."] = "/dragonui edit를 입력하여 편집 모드로 들어간 뒤, 프레임을 우클릭하면 위치가 초기화됩니다."
|
||||
|
||||
-- ============================================================================
|
||||
-- EDITOR MODE
|
||||
-- ============================================================================
|
||||
|
||||
L["Exit Edit Mode"] = "편집 모드 종료"
|
||||
L["Reset All Positions"] = "모든 위치 초기화"
|
||||
L["Are you sure you want to reset all interface elements to their default positions?"] = "모든 인터페이스 요소를 기본 위치로 초기화하시겠습니까?"
|
||||
L["Yes"] = "예"
|
||||
L["No"] = "아니요"
|
||||
L["UI elements have been repositioned. Reload UI to ensure all graphics display correctly?"] = "UI 요소의 위치가 변경되었습니다. 모든 그래픽이 올바르게 표시되도록 UI를 재설정하시겠습니까?"
|
||||
L["Reload Now"] = "지금 재설정"
|
||||
L["Later"] = "나중에"
|
||||
|
||||
-- ============================================================================
|
||||
-- KEYBINDING MODULE
|
||||
-- ============================================================================
|
||||
|
||||
L["LibKeyBound-1.0 not found or failed to load:"] = "LibKeyBound-1.0을 찾을 수 없거나 로드에 실패했습니다:"
|
||||
L["Commands:"] = "명령어:"
|
||||
L["/dukb - Toggle keybinding mode"] = "/dukb - 단축키 설정 모드 전환"
|
||||
L["/dukb help - Show this help"] = "/dukb help - 도움말 표시"
|
||||
L["Module disabled."] = "모듈이 비활성화되었습니다."
|
||||
L["Keybinding mode activated. Hover over buttons and press keys to bind them."] = "단축키 설정 모드가 활성화되었습니다. 버튼 위에 마우스를 올리고 키를 누르면 지정됩니다."
|
||||
L["Keybinding mode deactivated."] = "단축키 설정 모드가 비활성화되었습니다."
|
||||
|
||||
-- ============================================================================
|
||||
-- GAME MENU
|
||||
-- ============================================================================
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- MINIMAP MODULE
|
||||
-- ============================================================================
|
||||
|
||||
L["DragonUI: Minimap module restored to Blizzard defaults"] = "DragonUI: 미니맵 모듈이 블리자드 기본값으로 복구되었습니다."
|
||||
|
||||
-- ============================================================================
|
||||
-- EDITOR MODE LABELS (displayed on mover overlays)
|
||||
-- ============================================================================
|
||||
|
||||
L["MainBar"] = "주 단축바"
|
||||
L["RightBar"] = "우측 단축바"
|
||||
L["LeftBar"] = "좌측 단축바"
|
||||
L["BottomBarLeft"] = "하단 좌측"
|
||||
L["BottomBarRight"] = "하단 우측"
|
||||
L["XPBar"] = "경험치 바"
|
||||
L["RepBar"] = "평판 바"
|
||||
L["MinimapFrame"] = "미니맵"
|
||||
L["LFGFrame"] = "던전 찾기"
|
||||
L["PlayerFrame"] = "플레이어"
|
||||
L["ManaBar"] = "마나 바"
|
||||
L["PetFrame"] = "소환수"
|
||||
L["ToF"] = "주시의 대상"
|
||||
L["tot"] = "대상의 대상"
|
||||
L["ToT"] = "대상의 대상"
|
||||
L["fot"] = "주시의 대상"
|
||||
L["PartyFrames"] = "파티"
|
||||
L["TargetFrame"] = "대상"
|
||||
L["FocusFrame"] = "주시 대상"
|
||||
L["BagsBar"] = "가방"
|
||||
L["MicroMenu"] = "마이크로 메뉴"
|
||||
L["VehicleExitOverlay"] = "탈것 내리기"
|
||||
L["StanceOverlay"] = "태세바"
|
||||
L["petbar"] = "소환수바"
|
||||
L["boss"] = "보스 프레임"
|
||||
L["Boss Frames"] = "보스 프레임"
|
||||
L["Boss1Frame"] = "보스 프레임"
|
||||
L["Boss2Frame"] = "보스 프레임"
|
||||
L["Boss3Frame"] = "보스 프레임"
|
||||
L["Boss4Frame"] = "보스 프레임"
|
||||
L["TotemBarOverlay"] = "토템 바"
|
||||
L["PlayerCastbar"] = "시전바"
|
||||
L["TooltipWidget"] = "툴팁"
|
||||
L["Auras"] = "오라 (버프/디버프)"
|
||||
L["WeaponEnchants"] = "무기 강화 효과"
|
||||
L["Loot Roll"] = "주사위 굴림"
|
||||
L["Quest Tracker"] = "퀘스트 추적기"
|
||||
|
||||
-- Mover tooltip strings
|
||||
L["Drag to move"] = "드래그 이동"
|
||||
L["Right-click to reset"] = "우클릭으로 초기화"
|
||||
|
||||
-- Editor mode system messages
|
||||
L["All editable frames shown for editing"] = "편집을 위해 모든 프레임을 표시합니다."
|
||||
L["All editable frames hidden, positions saved"] = "모든 프레임을 숨기고 위치를 저장했습니다."
|
||||
|
||||
-- ============================================================================
|
||||
-- COMPATIBILITY MODULE
|
||||
-- ============================================================================
|
||||
|
||||
-- Conflict warning popup
|
||||
L["DragonUI Conflict Warning"] = "DragonUI 충돌 경고"
|
||||
L["The addon |cFFFFFF00%s|r conflicts with DragonUI."] = "애드온 |cFFFFFF00%s|r 이(가) DragonUI와 충돌합니다."
|
||||
L["Reason:"] = "원인:"
|
||||
L["Disable the conflicting addon now?"] = "충돌하는 애드온을 지금 비활성화하시겠습니까?"
|
||||
L["Keep Both"] = "둘 다 유지"
|
||||
L["DragonUI - D3D9Ex Warning"] = "DragonUI - D3D9Ex 경고"
|
||||
L["DragonUI detected that your client is using D3D9Ex."] = "DragonUI가 클라이언트가 D3D9Ex를 사용 중인 것을 감지했습니다."
|
||||
L["DragonUI's action bar system is not compatible with D3D9Ex."] = "DragonUI의 액션바 시스템은 D3D9Ex와 호환되지 않습니다."
|
||||
L["Some DragonUI action bar textures will be missing while this mode is active."] = "이 모드가 활성화된 동안 일부 DragonUI 액션바 텍스처가 보이지 않습니다."
|
||||
L["If you want to disable this mode, open WTF\\Config.wtf."] = "이 모드를 끄려면 WTF\\Config.wtf 파일을 여세요."
|
||||
L["Delete this line:"] = "이 줄을 삭제하세요:"
|
||||
L["Or replace it with:"] = "또는 이 줄로 바꾸세요:"
|
||||
L["Hide Gryphons"] = "그리핀 숨기기"
|
||||
L["Understood"] = "확인"
|
||||
L["DragonUI - UnitFrameLayers Detected"] = "DragonUI - UnitFrameLayers 감지됨"
|
||||
L["DragonUI already includes Unit Frame Layers functionality (heal prediction, absorb shields, and animated health loss)."] = "DragonUI에는 이미 Unit Frame Layers 기능(치유 예측, 흡수 보호막, 애니메이션 체력 손실)이 포함되어 있습니다."
|
||||
L["Choose how to resolve this overlap:"] = "이 중복을 해결할 방법을 선택하세요:"
|
||||
L["Use DragonUI: disable external UnitFrameLayers and enable DragonUI layers."] = "DragonUI 사용: 외부 UnitFrameLayers를 끄고 DragonUI 레이어를 켭니다."
|
||||
L["Disable Both: disable external UnitFrameLayers and keep DragonUI layers disabled."] = "둘 다 비활성화: 외부 UnitFrameLayers를 끄고 DragonUI 레이어도 끈 상태로 유지합니다."
|
||||
L["Use DragonUI"] = "DragonUI 사용"
|
||||
L["Disable Both"] = "둘 다 비활성화"
|
||||
L["Use DragonUI Unit Frame Layers"] = "DragonUI Unit Frame Layers 사용"
|
||||
L["Disable both Unit Frame Layers"] = "두 Unit Frame Layers 모두 비활성화"
|
||||
L["DragonUI - Party Frame Issue"] = true
|
||||
L["You joined a party while in combat. Due to CompactRaidFrame taint issues, party frames may not display correctly."] = true
|
||||
L["Reload the UI to fix party frame display?"] = true
|
||||
|
||||
-- Conflict reasons
|
||||
L["Conflicts with DragonUI's custom unit frame textures and power bar system."] = "DragonUI의 사용자 지정 유닛 프레임 텍스처 및 자원 바 시스템과 충돌합니다."
|
||||
L["Known taint issues when manipulating party frames during combat. DragonUI provides automatic fixes."] = "전투 중 파티 프레임 조작 시 알려진 오염 문제가 있습니다. DragonUI가 자동 수정 기능을 제공합니다."
|
||||
L["Resets minimap mask and blip textures. DragonUI re-applies its custom textures automatically."] = "미니맵 마스크와 블립 텍스처를 초기화합니다. DragonUI가 사용자 지정 텍스처를 자동으로 다시 적용합니다."
|
||||
L["SexyMap modifies the minimap borders, shape, and zone text which conflicts with DragonUI's minimap module."] = "SexyMap이 미니맵 테두리, 모양, 지역 이름 텍스트를 변경하여 DragonUI의 미니맵 모듈과 충돌합니다."
|
||||
|
||||
-- SexyMap compatibility popup
|
||||
L["DragonUI - SexyMap Detected"] = "DragonUI - SexyMap 감지됨"
|
||||
L["Which minimap do you want to use?"] = "어떤 미니맵을 사용하시겠습니까?"
|
||||
L["SexyMap"] = "SexyMap"
|
||||
L["DragonUI"] = "DragonUI"
|
||||
L["Hybrid"] = "하이브리드"
|
||||
L["Recommended"] = "권장"
|
||||
|
||||
-- SexyMap options panel
|
||||
L["SexyMap Compatibility"] = "SexyMap 호환성"
|
||||
L["Minimap Mode"] = "미니맵 모드"
|
||||
L["Choose how DragonUI and SexyMap share the minimap."] = "DragonUI와 SexyMap이 미니맵을 어떻게 함께 사용할지 선택하세요."
|
||||
L["Requires UI reload to apply."] = "적용하려면 UI 재실행이 필요합니다."
|
||||
L["Uses SexyMap for the minimap."] = "미니맵에 SexyMap을 사용합니다."
|
||||
L["Uses DragonUI for the minimap."] = "미니맵에 DragonUI를 사용합니다."
|
||||
L["SexyMap visuals with DragonUI editor and positioning."] = "SexyMap 외형을 사용하면서 DragonUI 편집기와 위치 조정을 유지합니다."
|
||||
L["Minimap mode changed. Reload UI to apply?"] = "미니맵 모드가 변경되었습니다. 적용하려면 UI를 재실행하시겠습니까?"
|
||||
|
||||
-- SexyMap slash commands
|
||||
L["SexyMap compatibility mode has been reset. Reload UI to choose again."] = "SexyMap 호환 모드가 초기화되었습니다. 다시 선택하려면 UI를 재실행하세요."
|
||||
L["Current SexyMap mode: |cFFFFFF00%s|r"] = "현재 SexyMap 모드: |cFFFFFF00%s|r"
|
||||
L["No SexyMap mode selected (SexyMap not detected or not yet chosen)."] = "SexyMap 모드가 선택되지 않았습니다. (SexyMap이 감지되지 않았거나 아직 선택되지 않음)"
|
||||
L["Show current SexyMap compatibility mode"] = "현재 SexyMap 호환 모드 표시"
|
||||
L["Reset SexyMap mode choice (re-prompts on reload)"] = "SexyMap 모드 선택 초기화 (재실행 시 다시 묻기)"
|
||||
L["Loaded addons:"] = "로드된 애드온:"
|
||||
|
||||
-- ============================================================================
|
||||
-- STATIC POPUPS (shared between modules)
|
||||
-- ============================================================================
|
||||
|
||||
L["Changing this setting requires a UI reload to apply correctly."] = "이 설정을 올바르게 적용하려면 UI를 재설정해야 합니다."
|
||||
L["Reload UI"] = "UI 재설정"
|
||||
L["Not Now"] = "나중에"
|
||||
L["Disable"] = "비활성화"
|
||||
L["Ignore"] = "무시"
|
||||
L["Skip"] = "건너뛰기"
|
||||
L["The Blizzard option |cFFFFFF00Party/Arena Background|r is enabled. This conflicts with DragonUI's party frames."] = "블리자드 옵션 |cFFFFFF00파티/투기장 배경|r이 활성화되어 있습니다. DragonUI 파티 프레임과 충돌합니다."
|
||||
L["Disable it now?"] = "지금 비활성화하시겠습니까?"
|
||||
L["Some interface settings are not configured optimally for DragonUI."] = "일부 인터페이스 설정이 DragonUI에 최적으로 맞춰져 있지 않습니다."
|
||||
L["This includes settings that conflict with DragonUI and settings recommended for the best visual experience."] = "여기에는 DragonUI와 충돌하는 설정과 최상의 시각적 경험을 위해 권장되는 설정이 포함됩니다."
|
||||
L["Affected settings:"] = "영향받는 설정:"
|
||||
L["Some interface settings are not configured optimally for DragonUI. Do you want to fix them?"] = "일부 인터페이스 설정이 DragonUI에 최적으로 맞춰져 있지 않습니다. 지금 수정하시겠습니까?"
|
||||
L["Do you want to fix them now?"] = "지금 수정하시겠습니까?"
|
||||
L["Party/Arena Background"] = "파티/투기장 배경"
|
||||
L["Default Status Text"] = "기본 상태 텍스트"
|
||||
L["Conflict"] = "충돌"
|
||||
L["Recommended"] = "권장"
|
||||
|
||||
-- Bag Sort
|
||||
L["Sort Bags"] = "가방 정렬"
|
||||
L["Sort Bank"] = "은행 정렬"
|
||||
L["Sort Items"] = "아이템 정렬"
|
||||
L["Click to sort items by type, rarity, and name."] = "유형, 희귀도, 이름순으로 아이템을 정렬하려면 클릭하세요."
|
||||
L["Clear Locked Slots"] = "잠긴 슬롯 모두 해제"
|
||||
L["Click to clear all locked bag slots."] = "잠긴 가방 슬롯을 모두 해제하려면 클릭하세요."
|
||||
L["Alt+LeftClick any bag slot (item or empty) to lock or unlock it."] = "가방 슬롯(아이템 있음/없음 무관)을 Alt+왼쪽 클릭하여 잠금/잠금 해제하세요."
|
||||
L["Click the lock-clear button to remove all locked slots."] = "잠금 해제 버튼을 클릭하면 잠긴 슬롯이 모두 해제됩니다."
|
||||
L["Hover an item or slot, then type /sortlock."] = "아이템 또는 슬롯에 마우스를 올린 뒤 /sortlock 을 입력하세요."
|
||||
L["Slot locked (bag %d, slot %d)."] = "슬롯 잠금됨 (가방 %d, 슬롯 %d)."
|
||||
L["Slot unlocked (bag %d, slot %d)."] = "슬롯 잠금 해제됨 (가방 %d, 슬롯 %d)."
|
||||
L["Could not clear locks (config not ready)."] = "잠금을 해제할 수 없습니다 (설정이 아직 준비되지 않음)."
|
||||
L["Cleared all sort-locked slots."] = "정렬 잠금 슬롯을 모두 해제했습니다."
|
||||
|
||||
-- Micromenu Latency
|
||||
L["Network"] = "네트워크"
|
||||
L["Latency"] = "지연 시간"
|
||||
|
||||
-- ============================================================================
|
||||
-- STABILIZATION PATCH STRINGS
|
||||
-- ============================================================================
|
||||
|
||||
L["/dragonui debug on|off|status - Toggle diagnostic logging"] = "/dragonui debug on|off|status - 진단 로그 전환"
|
||||
L["Usage: /dragonui debug on|off|status"] = "사용법: /dragonui debug on|off|status"
|
||||
L["Enable debug mode first with /dragonui debug on"] = "먼저 /dragonui debug on 으로 디버그 모드를 활성화하세요"
|
||||
L["Debug mode is %s"] = "디버그 모드는 현재 %s 상태입니다"
|
||||
L["Debug mode enabled"] = "디버그 모드가 활성화되었습니다"
|
||||
L["Debug mode disabled"] = "디버그 모드가 비활성화되었습니다"
|
||||
L["enabled"] = true
|
||||
L["disabled"] = true
|
||||
L["Enabled"] = "활성화됨"
|
||||
L["Disabled"] = "비활성화됨"
|
||||
L["Legacy refresh failed for"] = true
|
||||
L["RegisterMover: name and parent are required"] = true
|
||||
L["Bonus Action Button %d"] = true
|
||||
L["Bottom Left Button"] = true
|
||||
L["Bottom Right Button"] = true
|
||||
L["Right Button"] = true
|
||||
L["Left Button"] = true
|
||||
L["Totem Bar"] = "토템 바"
|
||||
L["Test Pet"] = true
|
||||
L["=== TargetFrame children (depth 3) ==="] = true
|
||||
L["=== FocusFrame children (depth 3) ==="] = true
|
||||
L["BG texture not found"] = true
|
||||
L["BG tinted RED"] = true
|
||||
L["BG tinted GREEN"] = true
|
||||
L["BG color reset"] = true
|
||||
L["=== BANK SCAN DEBUG ==="] = true
|
||||
L["=== BANK QUALITY DEBUG ==="] = true
|
||||
L["Module enabled:"] = true
|
||||
L["BankFrame exists:"] = true
|
||||
L["BankFrame shown:"] = true
|
||||
L["Usage: /dui shadowcolor red|green|reset|info"] = true
|
||||
L["Usage: /dui shadowcrop <bottom_px> [right_px]"] = true
|
||||
L[" e.g. /dui shadowcrop 90 - show top 90 of 128 px height"] = true
|
||||
L[" e.g. /dui shadowcrop 90 200 - crop both bottom and right"] = true
|
||||
L[" /dui shadowcrop reset - restore full texture"] = true
|
||||
L["BG reset to 256x128 full texture"] = true
|
||||
L["Crop applied: showing %dx%d of 256x128 (texcoord 0-%.3f, 0-%.3f)"] = true
|
||||
L["Invalid values. Height 1-128, Width 1-256"] = true
|
||||
L["=== TargetFrame elements (use /dui shadowtest N to toggle) ==="] = true
|
||||
L["Total elements: %d"] = true
|
||||
L["HIDDEN: %d. %s [%s]"] = true
|
||||
L["SHOWN: %d. %s [%s]"] = true
|
||||
L["Invalid element number. Use /dui shadowtest to list."] = true
|
||||
L["DragonUI Compatibility:"] = true
|
||||
L["Registered Modules:"] = "등록된 모듈:"
|
||||
L["No modules registered in ModuleRegistry"] = "ModuleRegistry에 등록된 모듈이 없습니다"
|
||||
L["load-once"] = "한 번만 로드"
|
||||
L["%s will disable after /reload because its secure hooks cannot be removed safely."] = "%s 모듈은 안전한 훅을 안전하게 제거할 수 없어 /reload 후 비활성화됩니다."
|
||||
L["%s uses permanent secure hooks and will fully disable after /reload."] = "%s 모듈은 영구적인 안전 훅을 사용하므로 /reload 후 완전히 비활성화됩니다."
|
||||
L["%s remains active until /reload because its secure hooks cannot be removed safely."] = "%s 모듈은 안전한 훅을 안전하게 제거할 수 없어 /reload 전까지 활성 상태를 유지합니다."
|
||||
L["Cooldown Text"] = "재사용 대기시간 텍스트"
|
||||
L["Cooldown text on action buttons"] = "액션 버튼의 재사용 대기시간 텍스트"
|
||||
L["Cast Bar"] = "시전 바"
|
||||
L["Custom player, target, and focus cast bars"] = "플레이어, 대상, 주시 대상용 사용자 지정 시전 바"
|
||||
L["Multicast"] = "멀티캐스트"
|
||||
L["Shaman totem bar positioning and styling"] = "주술사 토템 바 위치 및 스타일"
|
||||
L["Player Frame"] = "플레이어 프레임"
|
||||
L["Dragonflight-styled boss target frames"] = "Dragonflight 스타일의 우두머리 대상 프레임"
|
||||
L["Dragonflight-styled player unit frame"] = "Dragonflight 스타일의 플레이어 유닛 프레임"
|
||||
L["ModuleRegistry:Register requires name and moduleTable"] = "ModuleRegistry:Register에는 name과 moduleTable이 필요합니다"
|
||||
L["ModuleRegistry: Module already registered -"] = "ModuleRegistry: 이미 등록된 모듈 -"
|
||||
L["ModuleRegistry: Registered module -"] = "ModuleRegistry: 등록된 모듈 -"
|
||||
L["order:"] = "순서:"
|
||||
L["ModuleRegistry: Refresh failed for"] = "ModuleRegistry: 새로 고침 실패 대상"
|
||||
L["ModuleRegistry: Unknown module -"] = "ModuleRegistry: 알 수 없는 모듈 -"
|
||||
L["ModuleRegistry: Enabled -"] = "ModuleRegistry: 활성화 -"
|
||||
L["ModuleRegistry: Disabled -"] = "ModuleRegistry: 비활성화 -"
|
||||
L["CombatQueue:Add requires id and func"] = "CombatQueue:Add에는 id와 func가 필요합니다"
|
||||
L["CombatQueue: Registered PLAYER_REGEN_ENABLED"] = "CombatQueue: PLAYER_REGEN_ENABLED 등록됨"
|
||||
L["CombatQueue: Queued operation -"] = "CombatQueue: 대기열에 추가된 작업 -"
|
||||
L["CombatQueue: Removed operation -"] = "CombatQueue: 제거된 작업 -"
|
||||
L["CombatQueue: Processing"] = "CombatQueue: 처리 중"
|
||||
L["queued operations"] = "대기 중인 작업"
|
||||
L["CombatQueue: Failed to execute"] = "CombatQueue: 실행 실패"
|
||||
L["CombatQueue: Executed -"] = "CombatQueue: 실행 완료 -"
|
||||
L["CombatQueue: Unregistered PLAYER_REGEN_ENABLED"] = "CombatQueue: PLAYER_REGEN_ENABLED 등록 해제됨"
|
||||
L["CombatQueue: Immediate execution failed -"] = "CombatQueue: 즉시 실행 실패 -"
|
||||
|
||||
-- ============================================================================
|
||||
-- RELEASE PREP STRINGS
|
||||
-- ============================================================================
|
||||
|
||||
L["Buttons"] = "버튼"
|
||||
L["Action button styling and enhancements"] = "액션 버튼 스타일 및 개선"
|
||||
L["Dark Mode"] = "다크 모드"
|
||||
L["Darken UI borders and chrome"] = "UI 테두리와 장식을 어둡게 표시"
|
||||
L["Item Quality"] = "아이템 품질"
|
||||
L["Color item borders by quality in bags, character panel, bank, and merchant"] = "가방, 캐릭터 창, 은행, 상인 창의 아이템 테두리를 품질별로 표시"
|
||||
L["Key Binding"] = "키 바인딩"
|
||||
L["LibKeyBound integration for intuitive keybinding"] = "직관적인 키 설정을 위한 LibKeyBound 통합"
|
||||
L["Buff Frame"] = "버프 프레임"
|
||||
L["Custom buff frame styling, positioning and toggle button"] = "버프 프레임 사용자 지정 스타일, 위치 및 토글 버튼"
|
||||
L["Chat Mods"] = "채팅 기능"
|
||||
L["Chat enhancements: hide buttons, editbox position, URL copy, chat copy, link hover, tell target"] = "채팅 개선: 버튼 숨김, 입력창 위치, URL 복사, 채팅 복사, 링크 미리보기, 대상에게 귓속말"
|
||||
L["Bag Sort"] = "가방 정렬"
|
||||
L["Sort bags and bank items with buttons"] = "버튼으로 가방과 은행 아이템 정렬"
|
||||
L["Combuctor"] = "Combuctor"
|
||||
L["All-in-one bag replacement with filtering and search"] = "필터와 검색 기능이 있는 올인원 가방 대체"
|
||||
L["Stance Bar"] = "태세 바"
|
||||
L["Vehicle"] = "탈것"
|
||||
L["Vehicle interface enhancements"] = "탈것 인터페이스 개선"
|
||||
L["Pet Bar"] = "소환수 바"
|
||||
L["Micro Menu"] = "마이크로 메뉴"
|
||||
L["Main Bars"] = "주 액션바"
|
||||
L["Main action bars, status bars, scaling and positioning"] = "주 액션바, 상태 바, 크기 및 위치 조정"
|
||||
L["Hide Blizzard"] = "블리자드 기본 UI 숨김"
|
||||
L["Hide default Blizzard UI elements"] = "기본 블리자드 UI 요소 숨기기"
|
||||
L["Minimap"] = "미니맵"
|
||||
L["Custom minimap styling, positioning, tracking icons and calendar"] = "사용자 지정 미니맵 스타일, 위치, 추적 아이콘 및 달력"
|
||||
L["Quest tracker positioning and styling"] = "퀘스트 추적기 위치 및 스타일 설정"
|
||||
L["Tooltip"] = "툴팁"
|
||||
L["Enhanced tooltip styling with class colors and health bars"] = "직업 색상과 생명력 바가 적용된 향상된 툴팁 스타일"
|
||||
L["Unit Frame Layers"] = "유닛 프레임 레이어"
|
||||
L["Heal prediction, absorb shields, and animated health loss on unit frames"] = "유닛 프레임의 치유 예측, 흡수 보호막 및 애니메이션 체력 손실"
|
||||
L["Stance/shapeshift bar positioning and styling"] = "태세/변신 바 위치 및 스타일 설정"
|
||||
L["Pet action bar positioning and styling"] = "소환수 액션 바 위치 및 스타일 설정"
|
||||
L["Micro menu and bags system styling and positioning"] = "마이크로 메뉴 및 가방 시스템 스타일/위치 설정"
|
||||
L["Sort complete."] = "정렬이 완료되었습니다."
|
||||
L["Sort already in progress."] = "정렬이 이미 진행 중입니다."
|
||||
L["Bags already sorted!"] = "가방이 이미 정렬되어 있습니다!"
|
||||
L["You must be at the bank."] = "은행에 있어야 합니다."
|
||||
L["Bank already sorted!"] = "은행이 이미 정렬되어 있습니다!"
|
||||
L["Reputation: "] = "평판: "
|
||||
L["Error in SafeCall:"] = "SafeCall 오류:"
|
||||
|
||||
L["Double-Click to Copy"] = "|cff33ff11더블 클릭|r하여 복사"
|
||||
L["Copy Text"] = "텍스트 복사"
|
||||
@@ -0,0 +1,40 @@
|
||||
--[[
|
||||
DragonUI - Portuguese (Brazil) Locale (ptBR)
|
||||
Community translation — Edit this file to contribute!
|
||||
|
||||
Guidelines:
|
||||
- Use `true` for strings you haven't translated yet (falls back to English)
|
||||
- Keep format specifiers like %s, %d, %.1f intact
|
||||
- Keep slash commands untranslated (/dragonui, /dui, /rl)
|
||||
- Keep "DragonUI" as addon name untranslated
|
||||
- Keep color codes |cff...|r outside of L[] strings
|
||||
]]
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("DragonUI", "ptBR")
|
||||
if not L then return end
|
||||
|
||||
-- Example:
|
||||
-- L["Cannot toggle editor mode during combat!"] = "Não é possível alternar o modo editor durante o combate!"
|
||||
|
||||
-- UnitFrameLayers compatibility popup
|
||||
L["TooltipWidget"] = true
|
||||
L["DragonUI - UnitFrameLayers Detected"] = true
|
||||
L["DragonUI already includes Unit Frame Layers functionality (heal prediction, absorb shields, and animated health loss)."] = true
|
||||
L["Choose how to resolve this overlap:"] = true
|
||||
L["Use DragonUI: disable external UnitFrameLayers and enable DragonUI layers."] = true
|
||||
L["Disable Both: disable external UnitFrameLayers and keep DragonUI layers disabled."] = true
|
||||
L["Use DragonUI"] = true
|
||||
L["Disable Both"] = true
|
||||
L["DragonUI - D3D9Ex Warning"] = "DragonUI - Aviso de D3D9Ex"
|
||||
L["DragonUI detected that your client is using D3D9Ex."] = "DragonUI detectou que seu cliente está usando D3D9Ex."
|
||||
L["DragonUI's action bar system is not compatible with D3D9Ex."] = "O sistema de barras de ação do DragonUI não é compatível com D3D9Ex."
|
||||
L["Some DragonUI action bar textures will be missing while this mode is active."] = "Algumas texturas das barras de ação do DragonUI vão ficar ausentes enquanto este modo estiver ativo."
|
||||
L["If you want to disable this mode, open WTF\\Config.wtf."] = "Se quiser desativar este modo, abra WTF\\Config.wtf."
|
||||
L["Delete this line:"] = "Apague esta linha:"
|
||||
L["Or replace it with:"] = "Ou substitua por esta:"
|
||||
L["Hide Gryphons"] = "Esconder grifos"
|
||||
L["Understood"] = "Entendi"
|
||||
L["Buttons"] = "Botões"
|
||||
L["Main Bars"] = "Barras principais"
|
||||
|
||||
L["Copy Text"] = "Copiar texto"
|
||||
@@ -0,0 +1,408 @@
|
||||
--[[
|
||||
================================================================================
|
||||
DragonUI - English Locale (Default)
|
||||
================================================================================
|
||||
Base locale. All keys use `true` (the key itself is the display value).
|
||||
|
||||
When adding new strings:
|
||||
1. Add L[<your key>] = true here
|
||||
2. Use L["Your String"] in your code
|
||||
3. Add translations to other locale files
|
||||
================================================================================
|
||||
]]
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("DragonUI", "ruRU")
|
||||
if not L then return end
|
||||
|
||||
-- ============================================================================
|
||||
-- CORE / GENERAL
|
||||
-- ============================================================================
|
||||
|
||||
-- Combat lockdown messages
|
||||
L["Cannot toggle editor mode during combat!"] = "Невозможно переключить режим редактора во время боя!"
|
||||
L["Cannot reset positions during combat!"] = "Невозможно сбросить позиции во время боя!"
|
||||
L["Cannot toggle keybind mode during combat!"] = "Невозможно переключить режим назначения клавиш во время боя!"
|
||||
L["Cannot move frames during combat!"] = "Невозможно перемещать фреймы во время боя!"
|
||||
L["Cannot open options in combat."] = "Невозможно открыть настройки во время боя."
|
||||
L["Options panel not available. Try /reload."] = "Панель настроек недоступна. Попробуйте /reload."
|
||||
|
||||
-- Module availability
|
||||
L["Editor mode not available."] = "Режим редактора недоступен."
|
||||
L["Keybind mode not available."] = "Режим назначения клавиш недоступен."
|
||||
L["Vehicle debug not available"] = "Отладка транспорта недоступна"
|
||||
L["KeyBinding module not available"] = "Модуль назначения клавиш недоступен"
|
||||
L["Unable to open configuration"] = "Не удалось открыть настройки"
|
||||
L["Commands: /dragonui config, /dragonui edit"] = "Команды: /dragonui config, /dragonui edit"
|
||||
L["Reset position: %s"] = "Сброс позиции: %s"
|
||||
L["All positions reset to defaults"] = "Все позиции сброшены по умолчанию"
|
||||
L["Editor mode enabled - Drag frames to reposition"] = "Режим редактора включён — перетаскивайте фреймы для перемещения"
|
||||
L["Editor mode disabled - Positions saved"] = "Режим редактора выключен — позиции сохранены"
|
||||
L["Minimap module restored to Blizzard defaults"] = "Модуль миникарты восстановлен до стандартных настроек Blizzard"
|
||||
L["All action bar scales reset to default values"] = "Масштаб всех панелей действий сброшен по умолчанию"
|
||||
L["Minimap position reset to default"] = "Позиция миникарты сброшена по умолчанию"
|
||||
L["Targeting: %s"] = "Цель: %s"
|
||||
L["XP: %d/%d"] = "Опыт: %d/%d"
|
||||
L["GROUP %d"] = "ГРУППА %d"
|
||||
L["XP: "] = "Опыт: "
|
||||
L["Remaining: "] = "Осталось: "
|
||||
L["Rested: "] = "Отдых: "
|
||||
|
||||
-- Errors
|
||||
L["Error executing pending operation:"] = "Ошибка выполнения отложенной операции:"
|
||||
L["Error -- Addon 'DragonUI_Options' not found or is disabled."] = "Ошибка — Аддон 'DragonUI_Options' не найден или отключён."
|
||||
|
||||
-- ============================================================================
|
||||
-- SLASH COMMANDS / HELP
|
||||
-- ============================================================================
|
||||
|
||||
L["Unknown command: "] = "Неизвестная команда: "
|
||||
L["=== DragonUI Commands ==="] = "=== Команды DragonUI ==="
|
||||
L["/dragonui or /dui - Open configuration"] = "/dragonui или /dui — Открыть настройки"
|
||||
L["/dragonui config - Open configuration"] = "/dragonui config — Открыть настройки"
|
||||
L["/dragonui edit - Toggle editor mode (move UI elements)"] = "/dragonui edit — Переключить режим редактора (перемещение элементов)"
|
||||
L["/dragonui reset - Reset all positions to defaults"] = "/dragonui reset — Сбросить все позиции по умолчанию"
|
||||
L["/dragonui reset <name> - Reset specific mover"] = "/dragonui reset <имя> — Сбросить конкретный элемент"
|
||||
L["/dragonui status - Show module status"] = "/dragonui status — Показать статус модулей"
|
||||
L["/dragonui kb - Toggle keybind mode"] = "/dragonui kb — Переключить режим назначения клавиш"
|
||||
L["/dragonui version - Show version info"] = "/dragonui version — Показать версию"
|
||||
L["/dragonui help - Show this help"] = "/dragonui help — Показать справку"
|
||||
L["/rl - Reload UI"] = "/rl — Перезагрузить интерфейс"
|
||||
|
||||
-- ============================================================================
|
||||
-- STATUS DISPLAY
|
||||
-- ============================================================================
|
||||
|
||||
L["=== DragonUI Status ==="] = "=== Статус DragonUI ==="
|
||||
L["Detected Modules:"] = "Обнаруженные модули:"
|
||||
L["Loaded"] = "Загружен"
|
||||
L["Not Loaded"] = "Не загружен"
|
||||
L["Target Frame"] = true
|
||||
L["Focus Frame"] = true
|
||||
L["Party Frames"] = true
|
||||
L["Cooldowns"] = true
|
||||
L["Registered Movers: "] = "Зарегистрированные элементы перемещения: "
|
||||
L["Editable Frames: "] = "Редактируемые фреймы: "
|
||||
L["DragonUI Version: "] = "Версия DragonUI: "
|
||||
L["Use /dragonui edit to enter edit mode, then right-click frames to reset."] = "Используйте /dragonui edit для входа в режим редактора, ПКМ по фрейму для сброса."
|
||||
|
||||
-- ============================================================================
|
||||
-- EDITOR MODE
|
||||
-- ============================================================================
|
||||
|
||||
L["Exit Edit Mode"] = "Выйти из режима редактора"
|
||||
L["Reset All Positions"] = "Сбросить все позиции"
|
||||
L["Are you sure you want to reset all interface elements to their default positions?"] = "Вы уверены, что хотите сбросить все элементы интерфейса в позиции по умолчанию?"
|
||||
L["Yes"] = "Да"
|
||||
L["No"] = "Нет"
|
||||
L["UI elements have been repositioned. Reload UI to ensure all graphics display correctly?"] = "Элементы интерфейса были перемещены. Перезагрузить интерфейс для корректного отображения?"
|
||||
L["Reload Now"] = "Перезагрузить"
|
||||
L["Later"] = "Позже"
|
||||
|
||||
-- ============================================================================
|
||||
-- KEYBINDING MODULE
|
||||
-- ============================================================================
|
||||
|
||||
L["LibKeyBound-1.0 not found or failed to load:"] = "LibKeyBound-1.0 не найден или не удалось загрузить:"
|
||||
L["Commands:"] = "Команды:"
|
||||
L["/dukb - Toggle keybinding mode"] = "/dukb — Переключить режим назначения клавиш"
|
||||
L["/dukb help - Show this help"] = "/dukb help — Показать справку"
|
||||
L["Module disabled."] = "Модуль отключён."
|
||||
L["Keybinding mode activated. Hover over buttons and press keys to bind them."] = "Режим назначения клавиш активирован. Наведите курсор на кнопку и нажмите клавишу для привязки."
|
||||
L["Keybinding mode deactivated."] = "Режим назначения клавиш деактивирован."
|
||||
|
||||
-- ============================================================================
|
||||
-- GAME MENU
|
||||
-- ============================================================================
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- MINIMAP MODULE
|
||||
-- ============================================================================
|
||||
|
||||
L["DragonUI: Minimap module restored to Blizzard defaults"] = "DragonUI: Модуль миникарты восстановлен до стандартных настроек Blizzard"
|
||||
|
||||
-- ============================================================================
|
||||
-- EDITOR MODE LABELS (displayed on mover overlays)
|
||||
-- ============================================================================
|
||||
|
||||
L["MainBar"] = "Основная панель"
|
||||
L["RightBar"] = "Правая панель"
|
||||
L["LeftBar"] = "Левая панель"
|
||||
L["BottomBarLeft"] = "Нижняя левая"
|
||||
L["BottomBarRight"] = "Нижняя правая"
|
||||
L["XPBar"] = "Полоса опыта"
|
||||
L["RepBar"] = "Полоса репутации"
|
||||
L["MinimapFrame"] = "Миникарта"
|
||||
L["LFGFrame"] = "Поиск подземелий"
|
||||
L["PlayerFrame"] = "Игрок"
|
||||
L["ManaBar"] = "Полоса маны"
|
||||
L["PetFrame"] = "Питомец"
|
||||
L["ToF"] = "Цель фокуса"
|
||||
L["tot"] = "Цель цели"
|
||||
L["ToT"] = "Цель цели"
|
||||
L["fot"] = "Фокус цели"
|
||||
L["PartyFrames"] = "Группа"
|
||||
L["TargetFrame"] = "Цель"
|
||||
L["FocusFrame"] = "Фокус"
|
||||
L["BagsBar"] = "Сумки"
|
||||
L["MicroMenu"] = "Микроменю"
|
||||
L["VehicleExitOverlay"] = "Выход из транспорта"
|
||||
L["StanceOverlay"] = "Панель стоек"
|
||||
L["petbar"] = "Панель питомца"
|
||||
L["boss"] = "Фреймы боссов"
|
||||
L["Boss Frames"] = "Фреймы боссов"
|
||||
L["Boss1Frame"] = "Фреймы боссов"
|
||||
L["Boss2Frame"] = "Фреймы боссов"
|
||||
L["Boss3Frame"] = "Фреймы боссов"
|
||||
L["Boss4Frame"] = "Фреймы боссов"
|
||||
L["TotemBarOverlay"] = "Панель тотемов"
|
||||
L["PlayerCastbar"] = "Полоса заклинаний"
|
||||
L["TooltipWidget"] = "Подсказка"
|
||||
L["Auras"] = "Ауры"
|
||||
L["WeaponEnchants"] = "Зачарования оружия"
|
||||
L["Loot Roll"] = "Розыгрыш добычи"
|
||||
L["Quest Tracker"] = "Трекер заданий"
|
||||
|
||||
-- Mover tooltip strings
|
||||
L["Drag to move"] = "Перетащите для перемещения"
|
||||
L["Right-click to reset"] = "ПКМ для сброса"
|
||||
|
||||
-- Editor mode system messages
|
||||
L["All editable frames shown for editing"] = "Все редактируемые фреймы показаны для редактирования"
|
||||
L["All editable frames hidden, positions saved"] = "Все редактируемые фреймы скрыты, позиции сохранены"
|
||||
|
||||
-- ============================================================================
|
||||
-- COMPATIBILITY MODULE
|
||||
-- ============================================================================
|
||||
|
||||
-- Conflict warning popup
|
||||
L["DragonUI Conflict Warning"] = "DragonUI — Предупреждение о конфликте"
|
||||
L["The addon |cFFFFFF00%s|r conflicts with DragonUI."] = "Аддон |cFFFFFF00%s|r конфликтует с DragonUI."
|
||||
L["Reason:"] = "Причина:"
|
||||
L["Disable the conflicting addon now?"] = "Отключить конфликтующий аддон сейчас?"
|
||||
L["Keep Both"] = "Оставить оба"
|
||||
L["DragonUI - D3D9Ex Warning"] = "DragonUI — Предупреждение о D3D9Ex"
|
||||
L["DragonUI detected that your client is using D3D9Ex."] = "DragonUI обнаружил, что ваш клиент использует D3D9Ex."
|
||||
L["DragonUI's action bar system is not compatible with D3D9Ex."] = "Система панелей действий DragonUI несовместима с D3D9Ex."
|
||||
L["Some DragonUI action bar textures will be missing while this mode is active."] = "Пока этот режим активен, часть текстур панелей действий DragonUI будет отсутствовать."
|
||||
L["If you want to disable this mode, open WTF\\Config.wtf."] = "Если вы хотите отключить этот режим, откройте WTF\\Config.wtf."
|
||||
L["Delete this line:"] = "Удалите эту строку:"
|
||||
L["Or replace it with:"] = "Или замените её на:"
|
||||
L["Hide Gryphons"] = "Скрыть грифонов"
|
||||
L["Understood"] = "Понятно"
|
||||
L["DragonUI - UnitFrameLayers Detected"] = "DragonUI — Обнаружен UnitFrameLayers"
|
||||
L["DragonUI already includes Unit Frame Layers functionality (heal prediction, absorb shields, and animated health loss)."] = "DragonUI уже включает функциональность Unit Frame Layers (предсказание исцеления, щиты поглощения и анимация потери здоровья)."
|
||||
L["Choose how to resolve this overlap:"] = "Выберите, как разрешить это пересечение:"
|
||||
L["Use DragonUI: disable external UnitFrameLayers and enable DragonUI layers."] = "Использовать DragonUI: отключить внешний UnitFrameLayers и включить слои DragonUI."
|
||||
L["Disable Both: disable external UnitFrameLayers and keep DragonUI layers disabled."] = "Отключить оба: отключить внешний UnitFrameLayers и оставить слои DragonUI выключенными."
|
||||
L["Use DragonUI"] = "Использовать DragonUI"
|
||||
L["Disable Both"] = "Отключить оба"
|
||||
L["Use DragonUI Unit Frame Layers"] = "Использовать слои фреймов DragonUI"
|
||||
L["Disable both Unit Frame Layers"] = "Отключить оба варианта слоёв фреймов"
|
||||
L["DragonUI - Party Frame Issue"] = true
|
||||
L["You joined a party while in combat. Due to CompactRaidFrame taint issues, party frames may not display correctly."] = true
|
||||
L["Reload the UI to fix party frame display?"] = true
|
||||
|
||||
-- Conflict reasons
|
||||
L["Conflicts with DragonUI's custom unit frame textures and power bar system."] = "Конфликтует с пользовательскими текстурами фреймов и системой полос ресурсов DragonUI."
|
||||
L["Known taint issues when manipulating party frames during combat. DragonUI provides automatic fixes."] = "Известные проблемы с taint при изменении фреймов группы в бою. DragonUI применяет автоматические исправления."
|
||||
L["Resets minimap mask and blip textures. DragonUI re-applies its custom textures automatically."] = "Сбрасывает маску и текстуры миникарты. DragonUI автоматически восстанавливает свои текстуры."
|
||||
L["SexyMap modifies the minimap borders, shape, and zone text which conflicts with DragonUI's minimap module."] = "SexyMap изменяет границы, форму и текст зоны миникарты, что конфликтует с модулем миникарты DragonUI."
|
||||
|
||||
-- SexyMap compatibility popup
|
||||
L["DragonUI - SexyMap Detected"] = "DragonUI — Обнаружен SexyMap"
|
||||
L["Which minimap do you want to use?"] = "Какую миникарту вы хотите использовать?"
|
||||
L["SexyMap"] = "SexyMap"
|
||||
L["DragonUI"] = "DragonUI"
|
||||
L["Hybrid"] = "Гибрид"
|
||||
L["Recommended"] = "Рекомендуется"
|
||||
|
||||
-- SexyMap options panel
|
||||
L["SexyMap Compatibility"] = "Совместимость с SexyMap"
|
||||
L["Minimap Mode"] = "Режим миникарты"
|
||||
L["Choose how DragonUI and SexyMap share the minimap."] = "Выберите, как DragonUI и SexyMap делят миникарту."
|
||||
L["Requires UI reload to apply."] = "Требуется перезагрузка интерфейса для применения."
|
||||
L["Uses SexyMap for the minimap."] = "Использовать SexyMap для миникарты."
|
||||
L["Uses DragonUI for the minimap."] = "Использовать DragonUI для миникарты."
|
||||
L["SexyMap visuals with DragonUI editor and positioning."] = "Визуал SexyMap с редактором и позиционированием DragonUI."
|
||||
L["Minimap mode changed. Reload UI to apply?"] = "Режим миникарты изменён. Перезагрузить интерфейс для применения?"
|
||||
|
||||
-- SexyMap slash commands
|
||||
L["SexyMap compatibility mode has been reset. Reload UI to choose again."] = "Режим совместимости с SexyMap сброшен. Перезагрузите интерфейс для повторного выбора."
|
||||
L["Current SexyMap mode: |cFFFFFF00%s|r"] = "Текущий режим SexyMap: |cFFFFFF00%s|r"
|
||||
L["No SexyMap mode selected (SexyMap not detected or not yet chosen)."] = "Режим SexyMap не выбран (SexyMap не обнаружен или ещё не выбран)."
|
||||
L["Show current SexyMap compatibility mode"] = "Показать текущий режим совместимости с SexyMap"
|
||||
L["Reset SexyMap mode choice (re-prompts on reload)"] = "Сбросить выбор режима SexyMap (повторный запрос при перезагрузке)"
|
||||
L["Loaded addons:"] = "Загруженные аддоны:"
|
||||
|
||||
-- ============================================================================
|
||||
-- STATIC POPUPS (shared between modules)
|
||||
-- ============================================================================
|
||||
|
||||
L["Changing this setting requires a UI reload to apply correctly."] = "Для применения этой настройки требуется перезагрузка интерфейса."
|
||||
L["Reload UI"] = "Перезагрузить"
|
||||
L["Not Now"] = "Не сейчас"
|
||||
L["Disable"] = "Отключить"
|
||||
L["Ignore"] = "Игнорировать"
|
||||
L["Skip"] = "Пропустить"
|
||||
L["The Blizzard option |cFFFFFF00Party/Arena Background|r is enabled. This conflicts with DragonUI's party frames."] = "Опция Blizzard |cFFFFFF00Фон группы/арены|r включена. Это конфликтует с фреймами группы DragonUI."
|
||||
L["Disable it now?"] = "Отключить сейчас?"
|
||||
L["Some interface settings are not configured optimally for DragonUI."] = "Некоторые настройки интерфейса настроены не оптимально для DragonUI."
|
||||
L["This includes settings that conflict with DragonUI and settings recommended for the best visual experience."] = "Сюда входят настройки, конфликтующие с DragonUI, а также рекомендуемые настройки для лучшего визуального восприятия."
|
||||
L["Affected settings:"] = "Затронутые настройки:"
|
||||
L["Some interface settings are not configured optimally for DragonUI. Do you want to fix them?"] = "Некоторые настройки интерфейса настроены не оптимально для DragonUI. Исправить их?"
|
||||
L["Do you want to fix them now?"] = "Исправить их сейчас?"
|
||||
L["Party/Arena Background"] = "Фон группы/арены"
|
||||
L["Default Status Text"] = "Стандартный текст статуса"
|
||||
L["Conflict"] = "Конфликт"
|
||||
L["Recommended"] = "Рекомендуется"
|
||||
|
||||
-- Bag Sort
|
||||
L["Sort Bags"] = "Сортировать сумки"
|
||||
L["Sort Bank"] = "Сортировать банк"
|
||||
L["Sort Items"] = "Сортировать предметы"
|
||||
L["Click to sort items by type, rarity, and name."] = "Нажмите для сортировки предметов по типу, редкости и названию."
|
||||
L["Clear Locked Slots"] = "Очистить заблокированные ячейки"
|
||||
L["Click to clear all locked bag slots."] = "Нажмите для очистки всех заблокированных ячеек сумок."
|
||||
L["Alt+LeftClick any bag slot (item or empty) to lock or unlock it."] = "Alt+ЛКМ по любой ячейке сумки (с предметом или пустой) для блокировки/разблокировки."
|
||||
L["Click the lock-clear button to remove all locked slots."] = "Нажмите кнопку очистки блокировок для снятия всех блокировок."
|
||||
L["Hover an item or slot, then type /sortlock."] = "Наведите курсор на предмет или ячейку, затем введите /sortlock."
|
||||
L["Slot locked (bag %d, slot %d)."] = "Ячейка заблокирована (сумка %d, ячейка %d)."
|
||||
L["Slot unlocked (bag %d, slot %d)."] = "Ячейка разблокирована (сумка %d, ячейка %d)."
|
||||
L["Could not clear locks (config not ready)."] = "Не удалось очистить блокировки (конфигурация не готова)."
|
||||
L["Cleared all sort-locked slots."] = "Все заблокированные ячейки очищены."
|
||||
|
||||
-- Micromenu Latency
|
||||
L["Network"] = "Сеть"
|
||||
L["Latency"] = "Задержка"
|
||||
|
||||
-- ============================================================================
|
||||
-- STABILIZATION PATCH STRINGS
|
||||
-- ============================================================================
|
||||
|
||||
L["/dragonui debug on|off|status - Toggle diagnostic logging"] = "/dragonui debug on|off|status — Переключить диагностическое логирование"
|
||||
L["Usage: /dragonui debug on|off|status"] = "Использование: /dragonui debug on|off|status"
|
||||
L["Enable debug mode first with /dragonui debug on"] = "Сначала включите режим отладки: /dragonui debug on"
|
||||
L["Debug mode is %s"] = "Режим отладки: %s"
|
||||
L["Debug mode enabled"] = "Режим отладки включён"
|
||||
L["Debug mode disabled"] = "Режим отладки выключен"
|
||||
L["enabled"] = true
|
||||
L["disabled"] = true
|
||||
L["Enabled"] = "Включён"
|
||||
L["Disabled"] = "Выключен"
|
||||
L["Legacy refresh failed for"] = true
|
||||
L["RegisterMover: name and parent are required"] = true
|
||||
L["Bonus Action Button %d"] = true
|
||||
L["Bottom Left Button"] = true
|
||||
L["Bottom Right Button"] = true
|
||||
L["Right Button"] = true
|
||||
L["Left Button"] = true
|
||||
L["Totem Bar"] = true
|
||||
L["Test Pet"] = true
|
||||
L["=== TargetFrame children (depth 3) ==="] = true
|
||||
L["=== FocusFrame children (depth 3) ==="] = true
|
||||
L["BG texture not found"] = true
|
||||
L["BG tinted RED"] = true
|
||||
L["BG tinted GREEN"] = true
|
||||
L["BG color reset"] = true
|
||||
L["=== BANK SCAN DEBUG ==="] = true
|
||||
L["=== BANK QUALITY DEBUG ==="] = true
|
||||
L["Module enabled:"] = true
|
||||
L["BankFrame exists:"] = true
|
||||
L["BankFrame shown:"] = true
|
||||
L["Usage: /dui shadowcolor red|green|reset|info"] = true
|
||||
L["Usage: /dui shadowcrop <bottom_px> [right_px]"] = true
|
||||
L[" e.g. /dui shadowcrop 90 - show top 90 of 128 px height"] = true
|
||||
L[" e.g. /dui shadowcrop 90 200 - crop both bottom and right"] = true
|
||||
L[" /dui shadowcrop reset - restore full texture"] = true
|
||||
L["BG reset to 256x128 full texture"] = true
|
||||
L["Crop applied: showing %dx%d of 256x128 (texcoord 0-%.3f, 0-%.3f)"] = true
|
||||
L["Invalid values. Height 1-128, Width 1-256"] = true
|
||||
L["=== TargetFrame elements (use /dui shadowtest N to toggle) ==="] = true
|
||||
L["Total elements: %d"] = true
|
||||
L["HIDDEN: %d. %s [%s]"] = true
|
||||
L["SHOWN: %d. %s [%s]"] = true
|
||||
L["Invalid element number. Use /dui shadowtest to list."] = true
|
||||
L["DragonUI Compatibility:"] = true
|
||||
L["Registered Modules:"] = "Зарегистрированные модули:"
|
||||
L["No modules registered in ModuleRegistry"] = "В реестре модулей нет зарегистрированных модулей"
|
||||
L["load-once"] = "однократная загрузка"
|
||||
L["%s will disable after /reload because its secure hooks cannot be removed safely."] = "%s будет отключён после /reload, т.к. его защищённые хуки нельзя безопасно удалить."
|
||||
L["%s uses permanent secure hooks and will fully disable after /reload."] = "%s использует постоянные защищённые хуки и полностью отключится после /reload."
|
||||
L["%s remains active until /reload because its secure hooks cannot be removed safely."] = "%s остаётся активным до /reload, т.к. его защищённые хуки нельзя безопасно удалить."
|
||||
L["Cooldown Text"] = "Текст перезарядки"
|
||||
L["Cooldown text on action buttons"] = "Текст перезарядки на кнопках действий"
|
||||
L["Cast Bar"] = "Полоса заклинаний"
|
||||
L["Custom player, target, and focus cast bars"] = "Пользовательские полосы заклинаний игрока, цели и фокуса"
|
||||
L["Multicast"] = "Мультикаст"
|
||||
L["Shaman totem bar positioning and styling"] = "Позиционирование и стилизация панели тотемов шамана"
|
||||
L["Player Frame"] = "Фрейм игрока"
|
||||
L["Dragonflight-styled boss target frames"] = "Фреймы боссов в стиле Dragonflight"
|
||||
L["Dragonflight-styled player unit frame"] = "Фрейм игрока в стиле Dragonflight"
|
||||
L["ModuleRegistry:Register requires name and moduleTable"] = "ModuleRegistry:Register требует name и moduleTable"
|
||||
L["ModuleRegistry: Module already registered -"] = "ModuleRegistry: Модуль уже зарегистрирован —"
|
||||
L["ModuleRegistry: Registered module -"] = "ModuleRegistry: Модуль зарегистрирован —"
|
||||
L["order:"] = "порядок:"
|
||||
L["ModuleRegistry: Refresh failed for"] = "ModuleRegistry: Ошибка обновления для"
|
||||
L["ModuleRegistry: Unknown module -"] = "ModuleRegistry: Неизвестный модуль —"
|
||||
L["ModuleRegistry: Enabled -"] = "ModuleRegistry: Включён —"
|
||||
L["ModuleRegistry: Disabled -"] = "ModuleRegistry: Выключен —"
|
||||
L["CombatQueue:Add requires id and func"] = "CombatQueue:Add требует id и func"
|
||||
L["CombatQueue: Registered PLAYER_REGEN_ENABLED"] = "CombatQueue: Зарегистрировано PLAYER_REGEN_ENABLED"
|
||||
L["CombatQueue: Queued operation -"] = "CombatQueue: Операция в очереди —"
|
||||
L["CombatQueue: Removed operation -"] = "CombatQueue: Операция удалена —"
|
||||
L["CombatQueue: Processing"] = "CombatQueue: Обработка"
|
||||
L["queued operations"] = "операций в очереди"
|
||||
L["CombatQueue: Failed to execute"] = "CombatQueue: Ошибка выполнения"
|
||||
L["CombatQueue: Executed -"] = "CombatQueue: Выполнено —"
|
||||
L["CombatQueue: Unregistered PLAYER_REGEN_ENABLED"] = "CombatQueue: Снята регистрация PLAYER_REGEN_ENABLED"
|
||||
L["CombatQueue: Immediate execution failed -"] = "CombatQueue: Ошибка немедленного выполнения —"
|
||||
|
||||
-- ============================================================================
|
||||
-- RELEASE PREP STRINGS
|
||||
-- ============================================================================
|
||||
|
||||
L["Buttons"] = "Кнопки"
|
||||
L["Action button styling and enhancements"] = "Стилизация и улучшения кнопок действий"
|
||||
L["Dark Mode"] = "Тёмный режим"
|
||||
L["Darken UI borders and chrome"] = "Затемнение рамок и элементов интерфейса"
|
||||
L["Item Quality"] = "Качество предметов"
|
||||
L["Color item borders by quality in bags, character panel, bank, and merchant"] = "Окрашивание рамок предметов по качеству в сумках, окне персонажа, банке и у торговца"
|
||||
L["Key Binding"] = "Назначение клавиш"
|
||||
L["LibKeyBound integration for intuitive keybinding"] = "Интеграция LibKeyBound для удобного назначения клавиш"
|
||||
L["Buff Frame"] = "Фрейм эффектов"
|
||||
L["Custom buff frame styling, positioning and toggle button"] = "Стилизация, позиционирование и кнопка переключения фрейма эффектов"
|
||||
L["Chat Mods"] = "Улучшения чата"
|
||||
L["Chat enhancements: hide buttons, editbox position, URL copy, chat copy, link hover, tell target"] = "Улучшения чата: скрытие кнопок, позиция строки ввода, копирование URL, копирование чата, ховер ссылок, шёпот цели"
|
||||
L["Bag Sort"] = "Сортировка сумок"
|
||||
L["Sort bags and bank items with buttons"] = "Сортировка предметов в сумках и банке кнопками"
|
||||
L["Combuctor"] = "Combuctor"
|
||||
L["All-in-one bag replacement with filtering and search"] = "Универсальная замена сумок с фильтрацией и поиском"
|
||||
L["Stance Bar"] = "Панель стоек"
|
||||
L["Vehicle"] = "Транспорт"
|
||||
L["Vehicle interface enhancements"] = "Улучшения интерфейса транспорта"
|
||||
L["Pet Bar"] = "Панель питомца"
|
||||
L["Micro Menu"] = "Микроменю"
|
||||
L["Main Bars"] = "Основные панели"
|
||||
L["Main action bars, status bars, scaling and positioning"] = "Основные панели действий, полосы статуса, масштабирование и позиционирование"
|
||||
L["Hide Blizzard"] = "Скрыть Blizzard"
|
||||
L["Hide default Blizzard UI elements"] = "Скрыть стандартные элементы интерфейса Blizzard"
|
||||
L["Minimap"] = "Миникарта"
|
||||
L["Custom minimap styling, positioning, tracking icons and calendar"] = "Стилизация миникарты, позиционирование, значки отслеживания и календарь"
|
||||
L["Quest tracker positioning and styling"] = "Позиционирование и стилизация трекера заданий"
|
||||
L["Tooltip"] = "Подсказка"
|
||||
L["Enhanced tooltip styling with class colors and health bars"] = "Улучшенные подсказки с цветами классов и полосами здоровья"
|
||||
L["Unit Frame Layers"] = "Слои фреймов"
|
||||
L["Heal prediction, absorb shields, and animated health loss on unit frames"] = "Предсказание исцеления, щиты поглощения и анимация потери здоровья на фреймах"
|
||||
L["Stance/shapeshift bar positioning and styling"] = "Позиционирование и стилизация панели стоек/форм"
|
||||
L["Pet action bar positioning and styling"] = "Позиционирование и стилизация панели действий питомца"
|
||||
L["Micro menu and bags system styling and positioning"] = "Стилизация и позиционирование микроменю и системы сумок"
|
||||
L["Sort complete."] = "Сортировка завершена."
|
||||
L["Sort already in progress."] = "Сортировка уже выполняется."
|
||||
L["Bags already sorted!"] = "Сумки уже отсортированы!"
|
||||
L["You must be at the bank."] = "Вы должны находиться у банка."
|
||||
L["Bank already sorted!"] = "Банк уже отсортирован!"
|
||||
L["Reputation: "] = "Репутация: "
|
||||
L["Error in SafeCall:"] = "Ошибка в SafeCall:"
|
||||
|
||||
L["Copy Text"] = "Копировать текст"
|
||||
@@ -0,0 +1,40 @@
|
||||
--[[
|
||||
DragonUI - Simplified Chinese Locale (zhCN)
|
||||
Community translation — Edit this file to contribute!
|
||||
|
||||
Guidelines:
|
||||
- Use `true` for strings you haven't translated yet (falls back to English)
|
||||
- Keep format specifiers like %s, %d, %.1f intact
|
||||
- Keep slash commands untranslated (/dragonui, /dui, /rl)
|
||||
- Keep "DragonUI" as addon name untranslated
|
||||
- Keep color codes |cff...|r outside of L[] strings
|
||||
]]
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("DragonUI", "zhCN")
|
||||
if not L then return end
|
||||
|
||||
-- Example:
|
||||
-- L["Cannot toggle editor mode during combat!"] = "战斗中无法切换编辑模式!"
|
||||
|
||||
-- UnitFrameLayers compatibility popup
|
||||
L["TooltipWidget"] = true
|
||||
L["DragonUI - UnitFrameLayers Detected"] = true
|
||||
L["DragonUI already includes Unit Frame Layers functionality (heal prediction, absorb shields, and animated health loss)."] = true
|
||||
L["Choose how to resolve this overlap:"] = true
|
||||
L["Use DragonUI: disable external UnitFrameLayers and enable DragonUI layers."] = true
|
||||
L["Disable Both: disable external UnitFrameLayers and keep DragonUI layers disabled."] = true
|
||||
L["Use DragonUI"] = true
|
||||
L["Disable Both"] = true
|
||||
L["DragonUI - D3D9Ex Warning"] = "DragonUI - D3D9Ex 警告"
|
||||
L["DragonUI detected that your client is using D3D9Ex."] = "DragonUI 检测到你的客户端正在使用 D3D9Ex。"
|
||||
L["DragonUI's action bar system is not compatible with D3D9Ex."] = "DragonUI 的动作条系统与 D3D9Ex 不兼容。"
|
||||
L["Some DragonUI action bar textures will be missing while this mode is active."] = "启用此模式后,部分 DragonUI 动作条纹理将不会显示。"
|
||||
L["If you want to disable this mode, open WTF\\Config.wtf."] = "如果你想关闭此模式,请打开 WTF\\Config.wtf。"
|
||||
L["Delete this line:"] = "删除这一行:"
|
||||
L["Or replace it with:"] = "或改成这一行:"
|
||||
L["Hide Gryphons"] = "隐藏狮鹫"
|
||||
L["Understood"] = "知道了"
|
||||
L["Buttons"] = "按钮"
|
||||
L["Main Bars"] = "主动作条"
|
||||
|
||||
L["Copy Text"] = "复制文本"
|
||||
@@ -0,0 +1,40 @@
|
||||
--[[
|
||||
DragonUI - Traditional Chinese Locale (zhTW)
|
||||
Community translation — Edit this file to contribute!
|
||||
|
||||
Guidelines:
|
||||
- Use `true` for strings you haven't translated yet (falls back to English)
|
||||
- Keep format specifiers like %s, %d, %.1f intact
|
||||
- Keep slash commands untranslated (/dragonui, /dui, /rl)
|
||||
- Keep "DragonUI" as addon name untranslated
|
||||
- Keep color codes |cff...|r outside of L[] strings
|
||||
]]
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("DragonUI", "zhTW")
|
||||
if not L then return end
|
||||
|
||||
-- Example:
|
||||
-- L["Cannot toggle editor mode during combat!"] = "戰鬥中無法切換編輯模式!"
|
||||
|
||||
-- UnitFrameLayers compatibility popup
|
||||
L["TooltipWidget"] = true
|
||||
L["DragonUI - UnitFrameLayers Detected"] = true
|
||||
L["DragonUI already includes Unit Frame Layers functionality (heal prediction, absorb shields, and animated health loss)."] = true
|
||||
L["Choose how to resolve this overlap:"] = true
|
||||
L["Use DragonUI: disable external UnitFrameLayers and enable DragonUI layers."] = true
|
||||
L["Disable Both: disable external UnitFrameLayers and keep DragonUI layers disabled."] = true
|
||||
L["Use DragonUI"] = true
|
||||
L["Disable Both"] = true
|
||||
L["DragonUI - D3D9Ex Warning"] = "DragonUI - D3D9Ex 警告"
|
||||
L["DragonUI detected that your client is using D3D9Ex."] = "DragonUI 偵測到你的客戶端正在使用 D3D9Ex。"
|
||||
L["DragonUI's action bar system is not compatible with D3D9Ex."] = "DragonUI 的動作條系統與 D3D9Ex 不相容。"
|
||||
L["Some DragonUI action bar textures will be missing while this mode is active."] = "啟用此模式時,部分 DragonUI 動作條材質會缺失。"
|
||||
L["If you want to disable this mode, open WTF\\Config.wtf."] = "如果你想停用這個模式,請打開 WTF\\Config.wtf。"
|
||||
L["Delete this line:"] = "刪除這一行:"
|
||||
L["Or replace it with:"] = "或改成這一行:"
|
||||
L["Hide Gryphons"] = "隱藏獅鷲"
|
||||
L["Understood"] = "知道了"
|
||||
L["Buttons"] = "按鈕"
|
||||
L["Main Bars"] = "主動作條"
|
||||
|
||||
L["Copy Text"] = "複製文字"
|
||||
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 8.0 KiB |