You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.6 KiB
109 lines
2.6 KiB
local L = DBM_CORE_L
|
|
|
|
local returnKey = {
|
|
__index = function(_, k)
|
|
return k
|
|
end
|
|
}
|
|
|
|
local defaultCatLocalization = {
|
|
__index = setmetatable({
|
|
timer = L.OPTION_CATEGORY_TIMERS,
|
|
announce = L.OPTION_CATEGORY_WARNINGS,
|
|
announceother = L.OPTION_CATEGORY_WARNINGS_OTHER,
|
|
announcepersonal = L.OPTION_CATEGORY_WARNINGS_YOU,
|
|
announcerole = L.OPTION_CATEGORY_WARNINGS_ROLE,
|
|
specialannounce = L.OPTION_CATEGORY_SPECWARNINGS,
|
|
sound = L.OPTION_CATEGORY_SOUNDS,
|
|
yell = L.OPTION_CATEGORY_YELLS,
|
|
icon = L.OPTION_CATEGORY_ICONS,
|
|
nameplate = L.OPTION_CATEGORY_NAMEPLATES,
|
|
misc = MISCELLANEOUS
|
|
}, returnKey)
|
|
}
|
|
|
|
local defaultTimerLocalization = {
|
|
__index = setmetatable({
|
|
timer_berserk = L.GENERIC_TIMER_BERSERK,
|
|
timer_combat = L.GENERIC_TIMER_COMBAT
|
|
}, returnKey)
|
|
}
|
|
|
|
local defaultAnnounceLocalization = {
|
|
__index = setmetatable({
|
|
warning_berserk = L.GENERIC_WARNING_BERSERK
|
|
}, returnKey)
|
|
}
|
|
|
|
local defaultOptionLocalization = {
|
|
__index = setmetatable({
|
|
timer_berserk = L.OPTION_TIMER_BERSERK,
|
|
timer_combat = L.OPTION_TIMER_COMBAT,
|
|
}, returnKey)
|
|
}
|
|
|
|
local defaultMiscLocalization = {
|
|
__index = {}
|
|
}
|
|
|
|
local modLocalizationPrototype = {}
|
|
|
|
function modLocalizationPrototype:SetGeneralLocalization(t)
|
|
for i, v in pairs(t) do
|
|
self.general[i] = v
|
|
end
|
|
end
|
|
|
|
function modLocalizationPrototype:SetWarningLocalization(t)
|
|
for i, v in pairs(t) do
|
|
self.warnings[i] = v
|
|
end
|
|
end
|
|
|
|
function modLocalizationPrototype:SetTimerLocalization(t)
|
|
for i, v in pairs(t) do
|
|
self.timers[i] = v
|
|
end
|
|
end
|
|
|
|
function modLocalizationPrototype:SetOptionLocalization(t)
|
|
for i, v in pairs(t) do
|
|
self.options[i] = v
|
|
end
|
|
end
|
|
|
|
function modLocalizationPrototype:SetOptionCatLocalization(t)
|
|
for i, v in pairs(t) do
|
|
self.cats[i] = v
|
|
end
|
|
end
|
|
|
|
function modLocalizationPrototype:SetMiscLocalization(t)
|
|
for i, v in pairs(t) do
|
|
self.miscStrings[i] = v
|
|
end
|
|
end
|
|
|
|
local modLocalizations = {}
|
|
|
|
function DBM:CreateModLocalization(name)
|
|
name = tostring(name)
|
|
local obj = {
|
|
general = setmetatable({}, returnKey),
|
|
warnings = setmetatable({}, defaultAnnounceLocalization),
|
|
options = setmetatable({}, defaultOptionLocalization),
|
|
timers = setmetatable({}, defaultTimerLocalization),
|
|
miscStrings = setmetatable({}, defaultMiscLocalization),
|
|
cats = setmetatable({}, defaultCatLocalization),
|
|
}
|
|
setmetatable(obj, {
|
|
__index = modLocalizationPrototype
|
|
})
|
|
modLocalizations[name] = obj
|
|
return obj
|
|
end
|
|
|
|
function DBM:GetModLocalization(name)
|
|
name = tostring(name)
|
|
return modLocalizations[name] or self:CreateModLocalization(name)
|
|
end
|
|
|