diff --git a/Modules/Config.lua b/Modules/Config.lua index 12405d9..e7edffb 100644 --- a/Modules/Config.lua +++ b/Modules/Config.lua @@ -44,6 +44,29 @@ local function MapKeyToString(map, deliminer) end ---@param map table ---@param deliminer string +---@param terminator string +---@return string +local function MapToString(map, deliminer, terminator) + local str = "" + for k, v in pairs(map) do + str = str .. k .. deliminer .. v .. terminator + end + return str +end +---@param str string +---@param deliminer string +---@param terminator string +---@return table +local function MapFromString(str, deliminer, terminator) + local map = {} + for _, line in ipairs(strsplit(terminator, str)) do + local key, value = strsplit(deliminer, line) + map[key] = value + end + return map +end +---@param map table +---@param deliminer string ---@return string local function MapValueToString(map, deliminer) local str = "" @@ -2031,6 +2054,29 @@ function shared.Config.Init() stinkiesConfigFrame:Add(stinkies, 16, 12) end + -- Channel locale + do + local r, g, b, a = GetNextColor() + local channelLocaleConfigFrame = GridFrame.new("HeimdallChannelLocaleConfig", + UIParent, 12, 20) + channelLocaleConfigFrame.frame:SetBackdropColor(r, g, b, 0.3) + configFrame:Add(channelLocaleConfigFrame, 14, 1) + + local title = CreateFancyText("HeimdallChannelLocaleConfigTitle", channelLocaleConfigFrame.frame, + shared.L[Heimdall_Data.config.locale].config.channelLocale, + { r, g, b, a }) + channelLocaleConfigFrame:Add(title, 1, 12) + + local channelLocale = CreateBasicBigEditBox("HeimdallChannelLocaleConfigChannelLocale", + channelLocaleConfigFrame.frame, shared.L[Heimdall_Data.config.locale].config.channelLocale, + MapToString(Heimdall_Data.config.channelLocale, ":", "\n"), + function(self) + local text = self:GetText() + Heimdall_Data.config.channelLocale = MapFromString(text, ":", "\n") + end) + channelLocaleConfigFrame:Add(channelLocale, 8, 12) + end + --configFrame.frame:Hide() print("[Heimdall] Config loaded") end diff --git a/_L.lua b/_L.lua index d2c2b13..2e24cb9 100644 --- a/_L.lua +++ b/_L.lua @@ -58,6 +58,7 @@ shared.L = { messenger = "Messenger", minimapTagger = "Minimap Tagger", channels = "Channels", + channelLocale = "Channel Locale", prefix = "Prefix", priority = "Priority", russian = "Russian", @@ -122,6 +123,7 @@ shared.L = { alliance = "Альянс", cleanupInterval = "Интервал Очистки", combatAlerter = "Система Оповещения о Бое", + channelLocale = "Локаль Канала", commander = "Командир", deathReporter = "Система Отчетов о Смерти", debug = "Отладка",