---@diagnostic disable: undefined-global

local ADDON_NAME = ...

local TARGET_ADDONS = {
    [string.lower(ADDON_NAME or "")] = true,
    ["exboss"] = true,
    ["exbossdata"] = true,
    ["exboss-exwind"] = true,
    ["exwindcore"] = true,
    ["exwindtools"] = true,
}

local PATCH_DB_NAME = "EXEnglishPatchDB"
local PATCH_VERSION = "1.0.5"
local DEFAULT_PATCH_LANGUAGE = "enUS"
local LANGUAGE_OPTION_ENGLISH = "enUS"
local LANGUAGE_OPTION_SPANISH = "esES"

local MAP_NAME_TRANSLATIONS = {
    ["Ã¨ÂÂ¨Ã©Å¡â€ Ã§Å¸Â¿Ã¥Ââ€˜"] = "Pit of Saron",
    ["Ã©â‚¬Å¡Ã¥Â¤Â©Ã¥Â³Â°"] = "Skyreach",
    ["Ã¦â€°Â§Ã¦â€Â¿Ã¥â€ºÂ¢Ã¤Â¹â€¹Ã¥ÂºÂ§"] = "Seat of the Triumvirate",
    ["Ã¨â€°Â¾Ã¦ÂÂ°Ã¦â€“Â¯Ã¤ÂºÅ¡Ã¥Â­Â¦Ã©â„¢Â¢"] = "Algeth'ar Academy",
    ["Ã©Â£Å½Ã¨Â¡Å’Ã¨â‚¬â€¦Ã¤Â¹â€¹Ã¥Â¡â€"] = "Windrunner Spire",
    ["Ã©Â­â€Ã¥Â¯Â¼Ã¥Â¸Ë†Ã¥Â¹Â³Ã¥ÂÂ°"] = "Magisters' Terrace",
    ["Ã¨Â¿Ë†Ã¨ÂÂ¨Ã¦â€¹â€°Ã¦Â´Å¾Ã§ÂªÅ¸"] = "Maisara Caverns",
    ["Ã¨â„¢Å¡Ã¥Â½Â±Ã¥Â°â€“Ã¥Â¡â€"] = "The Voidspire",
    ["Ã¨Â¿â€ºÃ¥â€ â€ºÃ¥Â¥Å½Ã¥Â°â€Ã¤Â¸Â¹Ã§ÂºÂ³Ã¦â€“Â¯"] = "March on Quel'Danas",
    ["Ã¨Å â€šÃ§â€šÂ¹Ã¥Â¸Å’Ã§ÂºÂ³Ã¦â€“Â¯"] = "Nexus-Point Xenas",
    ["Ã¦Â¢Â¦Ã¥Â¢Æ’Ã¨Â£â€šÃ©Å¡â„¢"] = "The Dreamrift",
    ["Ã§Â£Â¨Ã©Å¡Â¾Ã©Â«ËœÃ¥Å“Â°"] = "Priory of the Sacred Flame",
    ["Algeth'ar Academy"] = "Algeth'ar Academy",
    ["Windrunner Spire"] = "Windrunner Spire",
    ["Magisters' Terrace"] = "Magisters' Terrace",
    ["Maisara Caverns"] = "Maisara Caverns",
    ["Nexus-Point Xenas"] = "Nexus-Point Xenas",
    ["The Violet Hold"] = "The Voidspire",
}

local CANONICAL_MAP_NAME_TRANSLATIONS = {
    ["è‰¾æ°æ–¯äºšå­¦é™¢"] = "Algeth'ar Academy",
    ["è¨éš†çŸ¿å‘"] = "Pit of Saron",
    ["é€šå¤©å³°"] = "Skyreach",
    ["æ‰§æ”¿å›¢ä¹‹åº§"] = "Seat of the Triumvirate",
    ["é£Žè¡Œè€…ä¹‹å¡”"] = "Windrunner Spire",
    ["é­”å¯¼å¸ˆå¹³å°"] = "Magisters' Terrace",
    ["è¿ˆè¨æ‹‰æ´žç©´"] = "Maisara Caverns",
    ["èŠ‚ç‚¹å¸Œçº³æ–¯"] = "Nexus-Point Xenas",
    ["Algeth'ar Academy"] = "Algeth'ar Academy",
    ["Pit of Saron"] = "Pit of Saron",
    ["Skyreach"] = "Skyreach",
    ["Seat of the Triumvirate"] = "Seat of the Triumvirate",
    ["Windrunner Spire"] = "Windrunner Spire",
    ["Magister's Terrace"] = "Magisters' Terrace",
    ["Magisters' Terrace"] = "Magisters' Terrace",
    ["Maisara Caverns"] = "Maisara Caverns",
    ["Nexus-Point Xenas"] = "Nexus-Point Xenas",
    ["Eco-Dome Al'dani"] = "Algeth'ar Academy",
    ["The Dawnbreaker"] = "Windrunner Spire",
    ["Ara-Kara, City of Echoes"] = "Maisara Caverns",
    ["Operation: Floodgate"] = "Nexus-Point Xenas",
}

local function TranslateMapName(name)
    local mapName = (type(name) == "string" and name ~= "") and name or nil

    if not mapName then
        return name
    end

    local canonical = CANONICAL_MAP_NAME_TRANSLATIONS[mapName]
    if canonical and canonical ~= "" then
        return canonical
    end

    local translated = MAP_NAME_TRANSLATIONS[mapName]
    if translated and translated ~= "" then
        return translated
    end

    return name
end

local function SafeNonEmptyString(value)
    if type(value) == "string" and value ~= "" then
        return value
    end
    return nil
end

local function SafeString(value)
    if type(value) == "string" then
        return value
    end
    return nil
end

local function GetTranslatableString(value)
    if type(value) ~= "string" then
        return nil
    end
    -- gsub is safe in Lua as long as input is string and pattern is valid
    local text = string.gsub(value, "^", "")
    if type(text) == "string" then
        return text
    end
    return nil
end

local function SafeLower(value)
    local text = SafeNonEmptyString(value)
    if not text then
        return nil
    end
    -- string.lower is safe in Lua as long as input is string
    return string.lower(text)
end

local function NormalizePatchLanguage(value)
    if value == LANGUAGE_OPTION_SPANISH then
        return LANGUAGE_OPTION_SPANISH
    end
    return LANGUAGE_OPTION_ENGLISH
end

local function GetPatchDB()
    _G[PATCH_DB_NAME] = _G[PATCH_DB_NAME] or {}

    local db = _G[PATCH_DB_NAME]
    db.language = NormalizePatchLanguage(db.language)

    return db
end

local function GetSelectedPatchLanguage()
    return GetPatchDB().language
end

local function SetSelectedPatchLanguage(language)
    local db = GetPatchDB()
    db.language = NormalizePatchLanguage(language)
    db.lastPromptVersion = PATCH_VERSION
    return db.language
end

local function ShouldUseSpanishText()
    return GetSelectedPatchLanguage() == LANGUAGE_OPTION_SPANISH
end

local function IsSpanishClient()
    local locale = GetLocale and GetLocale() or ""
    return locale == "esES" or locale == "esMX"
end

local FAST_EXACT_REPLACEMENTS = {
    ["å¯ç”¨"] = "Enable",
    ["å¯ç”¨é¢œè‰²è¦†ç›–"] = "Enable Color Overlay",
    ["å…¶ä»–æ–¹æ¡ˆ"] = "Other Scheme",
    ["ä¸­å¤®æ–‡æœ¬"] = "Center Text",
    ["ä¸­å¤®è­¦å‘Š"] = "Center Warning",
    ["æ–½æ³•å¼€å§‹"] = "Cast Start",
    ["æå‰"] = "Early",
    ["æå‰(ç§’)"] = "Pre-Alert (sec)",
    ["æå‰5ç§’"] = "Pre-Alert 5s",
    ["ä¸­å¤®æ–‡æœ¬å†…å®¹ï¼ˆå¯ç”¨ {name}ï¼‰"] = "Center Text Content (supports {name})",
    ["(å¯ç”¨ {name})"] = "(supports {name})",
    ["è®¡æ—¶æ¡æ”¹å"] = "Rename Timer Bar",
    ["è¯­éŸ³è®¾ç½®"] = "Voice Settings",
    ["æ–‡æœ¬è®¾ç½®"] = "Text Settings",
    ["è¯­éŸ³æ¥æº"] = "Voice Source",
    ["è¯­éŸ³æ ‡ç­¾"] = "Voice Label",
    ["è¯­éŸ³åŒ…æ ‡ç­¾"] = "Voice Pack Label",
    ["LSMéŸ³æ•ˆ"] = "LSM Sound",
    ["è‡ªå®šä¹‰è·¯å¾„"] = "Custom Path",
    ["æ–‡ä»¶è·¯å¾„"] = "File Path",
    ["è¯•å¬"] = "Preview",
    ["ç§’"] = "sec",
    ["é«˜çº§æ¡ä»¶ï¼ˆäº‹ä»¶çª—å£ + BOSSè¯»æ¡ï¼‰"] = "Advanced Conditions (Event Window + Boss Cast)",
    ["å¯ç”¨é«˜çº§æ¡ä»¶"] = "Enable Advanced Conditions",
    ["çª—å£å‰(ç§’)"] = "Window Before (sec)",
    ["çª—å£åŽ(ç§’)"] = "Window After (sec)",
    ["å‘½ä¸­åŽæ˜¾ç¤ºåœ†çŽ¯"] = "Show Ring After Hit",
    ["12.0å¤§ç§˜å¢ƒ"] = "12.0 Mythic+",
    ["12.0å›¢æœ¬"] = "12.0 Raid",
    ["è§£æ”¾å®‰å¾·éº¦"] = "Liberation of Undermine",
    ["å°¼é²å·´å°”çŽ‹å®«"] = "Nerub-ar Palace",
    ["æ°¸æ’çŽ‹å®«"] = "The Eternal Palace",
    ["å›¢æœ¬å¦å…‹"] = "Raid Tank",
    ["å›¢æœ¬DPS"] = "Raid DPS",
    ["å›¢æœ¬æ²»ç–—"] = "Raid Healer",
    ["å¤§ç±³å¦å…‹"] = "Mythic+ Tank",
    ["å¤§ç±³DPS"] = "Mythic+ DPS",
    ["å¤§ç±³æ²»ç–—"] = "Mythic+ Healer",
    ["å›¢æœ¬æ–¹æ¡ˆ"] = "Raid Profiles",
    ["å¤§ç±³æ–¹æ¡ˆ"] = "Mythic+ Profiles",
    ["å›¢æœ¬é¦–é¢†æˆ˜"] = "Raid Boss Encounter",
    ["å›¢æœ¬é¦–é¢†"] = "Raid Boss",
    ["å…¶ä»–"] = "Other",
    ["å‰¯æœ¬åˆ‡æ¢"] = "Dungeon Switch",
    ["é¦–é¢†åˆ—è¡¨"] = "Boss List",
    ["è½´æ¨¡å¼"] = "Timeline Mode",
    ["è‡ªåŠ¨"] = "Auto",
    ["å›ºå®šæ—¶é—´è½´"] = "Fixed Timeline",
    ["æš´é›ªåŽŸç”Ÿ"] = "Blizzard Default",
    ["æµ‹å¼€"] = "Test On",
    ["æµ‹å…³"] = "Test Off",
    ["è¯¥åˆ†ç±»æ— å‰¯æœ¬æ•°æ®"] = "No dungeon data in this category",
    ["å½“å‰å‰¯æœ¬æš‚æ—  BOSS æ•°æ®"] = "No boss data for the current dungeon",
    ["é€‰æ‹©è¯­éŸ³åŒ…"] = "Select Voice Pack",
    ["å½“å‰è¯­éŸ³åŒ…"] = "Current Voice Pack",
    ["ç®€ä»‹"] = "Description",
    ["ä½œè€…"] = "Author",
    ["ç‰ˆæœ¬"] = "Version",
    ["é¦–é¡µæ¦‚è§ˆ"] = "Home",
    ["çŠ¶æ€è¯Šæ–­"] = "Diagnostics",
    ["é…ç½®ç®¡ç†"] = "Profiles",
    ["çŽ©å®¶å±žæ€§ç›‘æŽ§"] = "Player Stats Monitor",
    ["æ–½æ³•åºåˆ—"] = "Cast Sequence",
    ["è·ç¦»ç›‘è§†"] = "Range Monitor",
    ["ä½ç§»æŠ€èƒ½CDæç¤º"] = "Movement CD Alert",
    ["ç„¦ç‚¹æ–½æ³•æç¤º"] = "Focus Cast Alert",
    ["é…’ä»™é…’æ± ç›‘æŽ§"] = "Brewmaster Stagger Bar",
    ["å—œè¡€éŸ³æ•ˆ (YY Sound)"] = "Bloodlust Sound (YY Sound)",
    ["é•‡åŽ‹åŠ›åœº"] = "Zona de supresion",
    ["åŠ é€Ÿç»“ç•Œ"] = "Barrera aceleradora",
    ["ç¬¦æ–‡å°è®°"] = "Marca runica",
    ["é™é»˜æµªæ½®"] = "Marea de silencio",
    ["ç‘Ÿæ‹‰å¥ˆå°”Â·æ—¥éž­"] = "Seranel Azote Solar",
    ["Seranel Sunlash"] = "Seranel Azote Solar",
    ["ç¼ºå°‘è¯­éŸ³"] = "Missing Labels",
    ["â— å½“å‰ä½¿ç”¨ä¸­"] = "â— Active",
    ["é…ç½®æ–¹æ¡ˆ"] = "Profile Slots",
    ["å›¢æœ¬æ–¹æ¡ˆ"] = "Raid Profiles",
    ["å¤§ç±³æ–¹æ¡ˆ"] = "Mythic+ Profiles",
    ["æç¤ºï¼šå½“å‰æ˜¯ä»€ä¹ˆèŒè´£ï¼Œå°±è‡ªåŠ¨ä½¿ç”¨å¹¶ç¼–è¾‘å¯¹åº”çš„å›¢æœ¬/å¤§ç±³æ–¹æ¡ˆã€‚"] = "Alert: the active role automatically selects and edits the matching Raid / Mythic+ Profiles.",
    ["å½“å‰èŒè´£è¿›å…¥å›¢æœ¬æ—¶è‡ªåŠ¨ä½¿ç”¨ã€‚"] = "Automatically used when entering raids with the current role.",
    ["å½“å‰èŒè´£è¿›å…¥å¤§ç±³æ—¶è‡ªåŠ¨ä½¿ç”¨ã€‚"] = "Automatically used when entering Mythic+ with the current role.",
    ["è¯·é€‰æ‹©..."] = "Please select...",
    ["æš‚æ— æè¿°ã€‚"] = "No description available.",
    ["ç‚¹å‡»ä¸Šæ–¹æ³•æœ¯å¡ç‰‡åŽï¼Œå¯åœ¨æ­¤æŸ¥çœ‹æ³•æœ¯æè¿°ã€‚"] = "Click a spell card above to view its description here.",
    ["æ— åŠ¨æ€å¤´åƒ"] = "No Dynamic Portrait",
    ["æœªé€‰æ‹©æ³•æœ¯"] = "No Spell Selected",
    ["æœªçŸ¥äº‹ä»¶"] = "Unknown Event",
    ["æœªçŸ¥é¦–é¢†"] = "Unknown Boss",
    ["æœªçŸ¥å‰¯æœ¬"] = "Unknown Dungeon",
    ["äº‹ä»¶ "] = "Event ",
    ["é¦–é¢† "] = "Boss ",
    ["å‰¯æœ¬ "] = "Dungeon ",
    ["æ³•æœ¯ "] = "Spell ",
    ["æŠ€èƒ½ "] = "Skill ",
    ["ç§"] = "PA",
    ["VOICE / PROFILE"] = "VOICE / PROFILES",
    ["VOICE / PROFILESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"] = "VOICE / PROFILES",
    ["VOICE / PROFILESSSS"] = "VOICE / PROFILES",
    ["VOICE / PROFILESSSSS"] = "VOICE / PROFILES",
    ["The D"] = "WS",
    ["The V"] = "Void",
    ["Pit o"] = "POS",
    ["Skyre"] = "Sky",
    ["Seat "] = "Seat",
    ["Eco-D"] = "AA",
    ["Ara-K"] = "MC",
    ["Magis"] = "MGT",
    ["Dungeon Switch"] = "Dungeon Switch",
    ["è¨éš†çŸ¿å‘"] = "Pit of Saron",
    ["é€šå¤©å³°"] = "Skyreach",
    ["æ‰§æ”¿å›¢ä¹‹åº§"] = "Seat of the Triumvirate",
    ["è‰¾æ°æ–¯äºšå­¦é™¢"] = "Algeth'ar Academy",
    ["é£Žè¡Œè€…ä¹‹å¡”"] = "Windrunner Spire",
    ["é­”å¯¼å¸ˆå¹³å°"] = "Magisters' Terrace",
    ["è¿ˆè¨æ‹‰æ´žçªŸ"] = "Maisara Caverns",
    ["èŠ‚ç‚¹å¸Œçº³æ–¯"] = "Nexus-Point Xenas",
    ["å­¦é™¢"] = "AA",
    ["æ´žçªŸ"] = "MC",
    ["èŠ‚ç‚¹"] = "Nexus",
}

local EVENT_TYPE_TRANSLATIONS = {
    ["Ã¥ÂÂ¦Ã¥â€¦â€¹"] = "Tank",
    ["Ã¦Â²Â»Ã§â€“â€”"] = "Heal",
    ["Ã¦Å“ÂºÃ¥Ë†Â¶"] = "Mechanic",
    ["Ã¥â€¦Â¶Ã¤Â»â€“"] = "Other",
    ["??"] = "Other",
    -- Properly-encoded Chinese event types
    ["å¦å…‹"] = "Tank",
    ["æ²»ç–—"] = "Heal",
    ["æœºåˆ¶"] = "Mechanic",
    ["å…¶ä»–"] = "Other",
}

local EVENT_TYPE_SCHEMES = {
    ["Tank"] = "tank",
    ["Heal"] = "heal",
    ["Mechanic"] = "mechanic",
    ["Other"] = "cooldown",
}

local SOUND_ALIASES = {
    { "Ã¥â€¡â€ Ã¥Â¤â€¡AOE", "Prepare AOE", "prepare-aoe.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã¥Â¼â€¢Ã§ÂºÂ¿", "Prepare Beam", "prepare-beam.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã¦â€°â€œÃ¦â€“Â­", "Prepare Interrupt", "prepare-interrupt.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã¦â€¹â€°Ã¤ÂºÂº", "Prepare Grip", "prepare-pull.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã¦Å’Â¡Ã§ÂºÂ¿", "Prepare Line Block", "prepare-block-line.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã¦Å½Â¥Ã¥Å“Ë†", "Prepare Soak", "prepare-soak.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã¦Â¶Ë†Ã¥Â±â€š", "Prepare Clear Stack", "prepare-clear-stack.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã§â€šÂ¹Ã¥ÂÂ", "Prepare Target", "prepare-target.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã¨Â¸Â©Ã§Â®Â­", "Prepare Arrow", "prepare-arrow.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã¨Â¿â€ºÃ¥Å“Ë†", "Prepare Enter Circle", "prepare-enter-circle.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã¨Â¿Å¾Ã§ÂºÂ¿", "Prepare Link", "prepare-link.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã©â‚¬ÂÃ§ÂÆ’", "Prepare Orb Pass", "prepare-ball.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã©â€™Â©Ã¤ÂºÂº", "Prepare Hook", "prepare-hook.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã©â€ºâ€ Ã¥ÂË†", "Prepare Stack", "prepare-stack.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã©Â©Â±Ã¦â€¢Â£", "Prepare Dispel", "prepare-dispel.ogg" },
    { "Ã¥Å½Â»Ã¦â€™Å¾Ã¥Ë†â€ Ã¨ÂºÂ«", "Hit Clone", "hit-clone.ogg" },
    { "Ã¥ÂÂ¦Ã¥â€¦â€¹Ã¥Â°â€“Ã¥Ë†Âº", "Tank Buster", "tank-buster.ogg" },
    { "Ã¥Â¿Â«Ã¥ÂÂ¡Ã¨Â§â€ Ã¨Â§â€™", "Fix Camera", "fix-camera.ogg" },
    { "Ã¥Â¿Â«Ã¥Å½Â»Ã¦Â¶Ë†Ã¦Â°Â´", "Clear Water", "clear-water.ogg" },
    { "Ã¥Â¿Â«Ã¦â€°Â¾Ã¥â€¦â€°Ã¦Å¸Â±", "Find Beacon", "find-beacon.ogg" },
    { "Ã¥Â¿Â«Ã¨Â¸Â©Ã©â„¢Â·Ã©ËœÂ±", "Step Trap", "step-trap.ogg" },
    { "Ã¦â€”Â ", "None", "none.ogg" },
    { "Ã¦Â³Â¨Ã¦â€žÂÃ¥â€¡Â»Ã©â‚¬â‚¬", "Watch Knockback", "watch-knockback.ogg" },
    { "Ã¦Â³Â¨Ã¦â€žÂÃ¥Â¤Â´Ã¥â€°Â", "Watch Frontal", "watch-frontal.ogg" },
    { "Ã¦Â³Â¨Ã¦â€žÂÃ¦Å’Â¡Ã§ÂÆ’", "Block Orb", "block-ball.ogg" },
    { "Ã¦Â³Â¨Ã¦â€žÂÃ¦Â¶Ë†Ã§ÂÆ’", "Clear Orb", "clear-ball.ogg" },
    { "Ã¦Â³Â¨Ã¦â€žÂÃ¨ÂºÂ²Ã©ÂÂ¿", "Watch Dodge", "watch-dodge.ogg" },
    { "Ã§â€šÂ¹Ã¥ÂÂÃ¥Â¤Â´Ã¥â€°Â", "Target Frontal", "target-frontal.ogg" },
    { "Ã§â€šÂ¹Ã¥ÂÂÃ¦â€Â¾Ã¦Â°Â´", "Target Drop Water", "target-drop-water.ogg" },
    { "Ã§â€šÂ¹Ã¥ÂÂÃ¦Â¶Ë†Ã§ÂºÂ¿", "Target Clear Line", "target-clear-line.ogg" },
    { "Ã¨ÂºÂ²Ã¥Â¼â‚¬Ã¥Â¤Â´Ã¥â€°Â", "Dodge Frontal", "dodge-frontal.ogg" },
    { "Ã¨Â½Â¬Ã§ÂÂ«Ã¥Â°ÂÃ¦â‚¬Âª", "Switch Add", "switch-add.ogg" },
    { "Ã¨Â½Â¬Ã©ËœÂ¶Ã¦Â®Âµ", "Phase Change", "phase-change.ogg" },
    { "Ã¨Â¿Å“Ã§Â¦Â»BOSS", "Away Boss", "away-boss.ogg" },
    { "Ã©ÂÂ Ã¨Â¿â€˜Ã¥Ë†â€ Ã¦â€¢Â£", "Spread Close", "spread-close.ogg" },
    { "Ã©Â£Å½Ã§Â­ÂÃ¥Â°ÂÃ¦â‚¬Âª", "Kite Add", "kite-add.ogg" },
    { "BossÃ§â€¹â€šÃ¦Å¡Â´", "Boss Enrage", "boss-enrage.ogg" },
    { "BossÃ¦Ëœâ€œÃ¤Â¼Â¤", "Boss Vulnerability", "boss-vuln.ogg" },
    { "Ã¤Â½Â Ã¦ËœÂ¯Ã§â„¢Â½Ã¨â€°Â²", "You Are White", "you-white.ogg" },
    { "Ã¤Â½Â Ã¦ËœÂ¯Ã©Â»â€˜Ã¨â€°Â²", "You Are Black", "you-black.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡AOE(Ã¦â€“Â­Ã¦ÂÂ¡)", "Prepare AOE (Break)", "prepare-aoe-break.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã¥ÂÂ¸Ã§ÂÆ’", "Prepare Absorb Orb", "prepare-absorb-ball.ogg" },
    { "Ã¥â€¡ÂºÃ¥Å½Â»Ã¦â€Â¾Ã¦Â°Â´", "Drop Water", "drop-water.ogg" },
    { "Ã¥Å½Â»Ã¦Å½Â¥Ã¥Â°ÂÃ¦â‚¬Âª", "Intercept Add", "intercept-add.ogg" },
    { "Ã¥Â°â€žÃ§ÂºÂ¿Ã§â€šÂ¹Ã¤Â½Â ", "Beam On You", "beam-on-you.ogg" },
    { "Ã¥Â°ÂÃ¥Â¿Æ’Ã¥â€ Â²Ã¥â€¡Â»Ã¦Â³Â¢", "Watch Shockwave", "watch-shockwave.ogg" },
    { "Ã¥Â°ÂÃ¥Â¿Æ’Ã¥â€¡Â»Ã©Â£Å¾", "Watch Launch", "watch-launch.ogg" },
    { "Ã¥Â¼ÂºÃ¥Å’â€“Ã¥Â¥Â¶Ã©Âªâ€˜", "Empower Holy Paladin", "empower-hpal.ogg" },
    { "Ã¥Â¼ÂºÃ¥Å’â€“Ã¦Æ’Â©Ã¦Ë†â€™Ã©Âªâ€˜", "Empower Retribution Paladin", "empower-ret.ogg" },
    { "Ã¥Â¼ÂºÃ¥Å’â€“Ã©ËœÂ²Ã©Âªâ€˜", "Empower Protection Paladin", "empower-prot.ogg" },
    { "Ã¥Â¿Â«Ã¥Ë†â€ Ã¦â€¢Â£", "Spread Now", "spread-now.ogg" },
    { "Ã¥Â¿Â«Ã¦â€°â€œÃ¦â€“Â­", "Interrupt Now", "interrupt-now.ogg" },
    { "Ã¥Â¿Â«Ã¦â€¢â€˜Ã¤ÂºÂº", "Rescue Now", "rescue-now.ogg" },
    { "Ã¥Â¿Â«Ã§Â Â´Ã§â€ºÂ¾", "Break Shield", "break-shield.ogg" },
    { "Ã¥Â¿Â«Ã¨Â¿â€ºÃ§Â½Â©Ã¥Â­Â", "Enter Bubble", "enter-bubble.ogg" },
    { "Ã¦â€¹â€°Ã¦â€“Â­Ã¨Â¿Å¾Ã§ÂºÂ¿", "Break Link", "break-link.ogg" },
    { "Ã¦Ëœâ€œÃ¤Â¼Â¤Ã§Ë†â€ Ã¥Ââ€˜", "Burst Vulnerability", "vuln-burst.ogg" },
    { "Ã¦Â³Â¨Ã¦â€žÂÃ¥â€¡ÂÃ¤Â¼Â¤", "Use Defensive", "use-defensive.ogg" },
    { "Ã¦Â³Â¨Ã¦â€žÂÃ¦Â²Â»Ã§â€“â€”", "Watch Healing", "watch-healing.ogg" },
    { "Ã§â€°Â¹Ã¦Â®Å Ã¦Å â‚¬Ã¨Æ’Â½", "Special Mechanic", "special-mechanic.ogg" },
    { "Ã¨Â½Â¬Ã§ÂÂ«Ã¥Â¤Â§Ã¦â‚¬Âª", "Switch Boss", "switch-boss.ogg" },
    { "Ã¨Â¿Å“Ã§Â¦Â»Ã¥Â¤Â§Ã¦â‚¬Âª", "Away Add", "away-add.ogg" },
    { "Ã©â€ºâ€ Ã¥ÂË†Ã¥Ë†â€ Ã¦â€˜Å ", "Stack Share", "stack-share.ogg" },
    { "Ã¥â‚¬â€™Ã¦â€¢Â°5", "Countdown 5", "countdown-5.ogg" },
    { "Ã¥â‚¬â€™Ã¦â€¢Â°4", "Countdown 4", "countdown-4.ogg" },
    { "Ã¥â‚¬â€™Ã¦â€¢Â°3", "Countdown 3", "countdown-3.ogg" },
    { "Ã¥â‚¬â€™Ã¦â€¢Â°2", "Countdown 2", "countdown-2.ogg" },
    { "Ã¥â‚¬â€™Ã¦â€¢Â°1", "Countdown 1", "countdown-1.ogg" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã¨Â¿Â½Ã¤ÂºÂº", "Prepare Chase", "prepare-target.ogg" },
    { "Ã¥ÂÂ¬Ã¥â€Â¤Ã¥Â°ÂÃ¦â‚¬Âª", "Summon Add", "switch-add.ogg" },
    { "Ã¥ÂÂ¦Ã¥â€¦â€¹Ã¥â€¡Â»Ã©â‚¬â‚¬", "Tank Knockback", "watch-knockback.ogg" },
    { "Ã©â€ºâ€ Ã¥ÂË†Ã¦â€Â¾Ã¥Å“Ë†", "Stack Drop Circle", "stack-share.ogg" },
}

local LABEL_TRANSLATIONS = {}
local ENGLISH_LABELS = {}
local SOUND_FILE_BY_LABEL = {}
for i = 1, #SOUND_ALIASES do
    local zhLabel, enLabel, fileName = SOUND_ALIASES[i][1], SOUND_ALIASES[i][2], SOUND_ALIASES[i][3]
    LABEL_TRANSLATIONS[zhLabel] = enLabel
    ENGLISH_LABELS[#ENGLISH_LABELS + 1] = enLabel
    SOUND_FILE_BY_LABEL[zhLabel] = fileName
end


local function CopyStringArray(list)
    if type(list) ~= "table" then
        return {}
    end

    local out = {}
    for i = 1, #list do
        out[i] = list[i]
    end
    return out
end

local function ForceEnglishVoiceLabels()
    local labels = CopyStringArray(ENGLISH_LABELS)
    _G.EXBV_LABELS = labels
    _G.EXBOSSEXWIND_LABELS = CopyStringArray(labels)
    return labels
end

local function RefreshDynamicLabelTranslations()
    local function ApplyFromList(list)
        if type(list) ~= "table" then
            return
        end

        for i = 1, math.min(#list, #SOUND_ALIASES) do
            local actualLabel = SafeNonEmptyString(list[i])
            local englishLabel = ENGLISH_LABELS[i]
            local soundFile = SOUND_ALIASES[i] and SOUND_ALIASES[i][3]
            if actualLabel and englishLabel then
                LABEL_TRANSLATIONS[actualLabel] = englishLabel
                -- Voice labels kept in Chinese (not added to FAST_EXACT)
                if soundFile and soundFile ~= "" then
                    SOUND_FILE_BY_LABEL[actualLabel] = soundFile
                end
            end
        end
    end

    ApplyFromList(_G.EXBV_LABELS)
    ApplyFromList(_G.EXBOSSEXWIND_LABELS)
end

local CUSTOM_VOICE_PACK_NAME = "Causese English"
local CUSTOM_SOUND_BASE_PATH = "Interface\\AddOns\\EXwindtools_EXboss_EnglishPatch\\sound\\"
local DEFAULT_VOICE_PACK_NAMES = {
    "EXWIND (Default)",
    "EXWIND(Ã©Â»ËœÃ¨Â®Â¤)",
    CUSTOM_VOICE_PACK_NAME,
}
local CUSTOM_SOUND_BY_LABEL = {
    ["Prepare AOE"] = "AoE.ogg",
    ["Prepare Beam"] = "Beam.ogg",
    ["Prepare Interrupt"] = "Interrupt.ogg",
    ["Prepare Grip"] = "Grip.ogg",
    ["Prepare Line Block"] = "Line.ogg",
    ["Prepare Soak"] = "Soak.ogg",
    ["Prepare Clear Stack"] = "Clear.ogg",
    ["Prepare Target"] = "Targeted.ogg",
    ["Prepare Arrow"] = "Trap.ogg",
    ["Prepare Enter Circle"] = "In.ogg",
    ["Prepare Link"] = "Link.ogg",
    ["Prepare Orb Pass"] = "Orb.ogg",
    ["Prepare Hook"] = "Grip.ogg",
    ["Prepare Stack"] = "Gather.ogg",
    ["Prepare Dispel"] = "Dispell.ogg",
    ["Hit Clone"] = "Charge.ogg",
    ["Tank Buster"] = "Defensive.ogg",
    ["Fix Camera"] = "LoS.ogg",
    ["Clear Water"] = "Clear.ogg",
    ["Find Beacon"] = "Beam.ogg",
    ["Step Trap"] = "Trap.ogg",
    ["None"] = "Check.ogg",
    ["Watch Knockback"] = "Knock.ogg",
    ["Watch Frontal"] = "Front.ogg",
    ["Block Orb"] = "Soak.ogg",
    ["Clear Orb"] = "Clear.ogg",
    ["Watch Dodge"] = "Dodge.ogg",
    ["Target Frontal"] = "Front.ogg",
    ["Target Drop Water"] = "Drop.ogg",
    ["Target Clear Line"] = "Line.ogg",
    ["Dodge Frontal"] = "Dodge.ogg",
    ["Switch Add"] = "Adds.ogg",
    ["Phase Change"] = "Transition.ogg",
    ["Away Boss"] = "Out.ogg",
    ["Spread Close"] = "Spread.ogg",
    ["Kite Add"] = "Kite.ogg",
    ["Boss Enrage"] = "Boss.ogg",
    ["Boss Vulnerability"] = "Nuke.ogg",
    ["You Are White"] = "Blue.ogg",
    ["You Are Black"] = "Purple.ogg",
    ["Prepare AOE (Break)"] = "AoE.ogg",
    ["Prepare Absorb Orb"] = "Orb.ogg",
    ["Drop Water"] = "Drop.ogg",
    ["Intercept Add"] = "Add.ogg",
    ["Beam On You"] = "Beam.ogg",
    ["Watch Shockwave"] = "Wave.ogg",
    ["Watch Launch"] = "Knock.ogg",
    ["Empower Holy Paladin"] = "Angel.ogg",
    ["Empower Retribution Paladin"] = "Sac.ogg",
    ["Empower Protection Paladin"] = "Protection.ogg",
    ["Spread Now"] = "Spread.ogg",
    ["Interrupt Now"] = "Interrupt.ogg",
    ["Rescue Now"] = "Rescue.ogg",
    ["Break Shield"] = "Break.ogg",
    ["Enter Bubble"] = "Enter.ogg",
    ["Break Link"] = "Break.ogg",
    ["Burst Vulnerability"] = "Nuke.ogg",
    ["Use Defensive"] = "Defensive.ogg",
    ["Watch Healing"] = "Healcd.ogg",
    ["Special Mechanic"] = "Check.ogg",
    ["Switch Boss"] = "Boss.ogg",
    ["Away Add"] = "Out.ogg",
    ["Stack Share"] = "Stack.ogg",
    ["Countdown 5"] = "5.ogg",
    ["Countdown 4"] = "4.ogg",
    ["Countdown 3"] = "3.ogg",
    ["Countdown 2"] = "2.ogg",
    ["Countdown 1"] = "1.ogg",
    ["Prepare Chase"] = "Fixate.ogg",
    ["Summon Add"] = "Spawn.ogg",
    ["Tank Knockback"] = "Knock.ogg",
    ["Stack Drop Circle"] = "Drop.ogg",
}
local TEXT_REPLACEMENTS = {
    { "EXWIND(Ã©Â»ËœÃ¨Â®Â¤)", "EXWIND (Default)" },
    { "EXWIND (Ã©Â»ËœÃ¨Â®Â¤ / Default)", "EXWIND (Default)" },
    { "EXWIND(Ã©Â»ËœÃ¨Â®Â¤ / Default)", "EXWIND (Default)" },
    { "Ã©Â¦â€“Ã©Â¡Âµ(Ã¥ÂÂ Ã¤Â½Â)", "Home (Stub)" },
    { "Ã©Â¦â€“Ã©Â¡ÂµÃ¯Â¼Ë†Ã¥ÂÂ Ã¤Â½ÂÃ¯Â¼â€°", "Home (Stub)" },
    { "Ã¨Â¯Â­Ã©Å¸Â³ / Ã©â€¦ÂÃ§Â½Â®", "Voice / Profiles" },
    { "Ã¨Â¯Â­Ã©Å¸Â³/Ã©â€¦ÂÃ§Â½Â®", "Voice / Profiles" },
    { "Ã¥â€°Â¯Ã¦Å“Â¬", "Dungeons" },
    { "Ã¨Â®Â¾Ã§Â½Â®", "Settings" },
    { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¥Â¯Â¼Ã¥â€¡Âº", "Import / Export" },
    { "Ã¥Â¯Â¼Ã¥â€¦Â¥/Ã¥Â¯Â¼Ã¥â€¡Âº", "Import / Export" },
    { "Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´", "Timeline" },
    { "Ã¨Â¯Â¥ Boss Ã¦â€”Â Ã¥â€ºÂºÃ¥Â®Å¡Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¦Å â‚¬Ã¨Æ’Â½Ã¦â€¢Â°Ã¦ÂÂ®", "This boss has no fixed timeline spell data" },
    { "Ã©â‚¬â€°Ã¦â€¹Â© Boss", "Select Boss" },
    { "Ã¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂÃ§Â§Â°", "Spell Name" },
    { "Ã¦ÂÅ¸Ã§Å Â¶Ã¦ÂÂ¡", "Bun Bar" },
    { "Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡", "Timer Bar" },
    { "é€šç”¨è®¾ç½®", "General Settings" },
    { "é€šç”¨é¢œè‰²æ–¹æ¡ˆ", "General Color Schemes" },
    { "æŸçŠ¶æ¡", "Bun Bar" },
    { "å€’è®¡æ—¶", "Countdown" },
    { "æ–‡å­—å…¬å‘Š", "Center Text" },
    { "åœ†çŽ¯è¿›åº¦", "Ring Progress" },
    { "è¯­éŸ³æ³¨å†Œç›‘æŽ§", "Voice Registration Monitor" },
    { "ç§äººå…‰çŽ¯ç›‘æŽ§", "Private Aura Monitor" },
    { "é‡ç½®è®¾ç½®", "Reset Settings" },
    { "å€’è®¡æ—¶è®¾ç½®", "Countdown Settings" },
    { "æŠ€èƒ½é¢„è­¦æ—¶åœ¨å±å¹•ä¸­å¤®æ˜¾ç¤º5ç§’å€’æ•°æ–‡å­—ã€‚", "Shows a 5-second center-screen countdown when a spell alert triggers." },
    { "%s = æŠ€èƒ½åç§° %t = å€’è®¡æ—¶æ•°å­—", "%s = Spell Name  %t = Countdown Number" },
    { "æ˜¾ç¤ºå›¾æ ‡", "Show Icon" },
    { "æ˜¾ç¤ºå°æ•°ç‚¹", "Show Decimal" },
    { "å›¾æ ‡å¤§å°", "Icon Size" },
    { "æ¨¡æ¿", "Template" },
    { "é¢„è§ˆï¼š", "Preview:" },
    { "é¢„è§ˆ", "Preview" },
    { "æç¤ºæ–‡å­—å­—ä½“ (%s)", "Alert Text Font (%s)" },
    { "æç¤ºæ–‡å­—", "Alert Text" },
    { "å€’è®¡æ—¶æ•°å­—å­—ä½“ (%t)", "Countdown Number Font (%t)" },
    { "å€’è®¡æ—¶æ•°å­—", "Countdown Number" },
    { "æ›´æ–°æ—¥å¿—", "Changelog" },
    { "é€šç”¨", "General" },
    { "æ˜¾ç¤ºåç§°", "Show Name" },
    { "æ˜¾ç¤ºæ—¶é—´", "Show Time" },
    { "æ¡å¢žé•¿æ–¹å¼", "Bar Fill Mode" },
    { "å·¦åˆ°å³å¡«å……", "Left to Right Fill" },
    { "å·¦åˆ°å³æ¶ˆé€€", "Left to Right Fade" },
    { "å³åˆ°å·¦å¡«å……", "Right to Left Fill" },
    { "å³åˆ°å·¦æ¶ˆé€€", "Right to Left Fade" },
    { "é—´è·", "Spacing" },
    { "æœ€å¤§æ˜¾ç¤ºæ•°é‡", "Maximum Visible Bars" },
    { "å¢žé•¿æ–¹å‘", "Growth Direction" },
    { "è®¡æ—¶æ¡è®¾ç½®", "Timer Bar Settings" },
    { "è®¡æ—¶æ¡æ‰€æœ‰å¤–è§‚çš„è®¾ç½®", "All appearance settings for the timer bar." },
    { "è®¡æ—¶æ¡å¤–è§‚", "Timer Bar Appearance" },
    { "æ³•æœ¯åç§°", "Spell Name" },
    { "æ—¶é—´æ–‡æœ¬", "Time Text" },
    { "æ°´å¹³ä½ç½® (X)", "Horizontal Position (X)" },
    { "åž‚ç›´ä½ç½® (Y)", "Vertical Position (Y)" },
    { "é‡ç½®ä½ç½®", "Reset Position" },
    { "æ–°ç»„ä»¶", "New Component" },
    { "æŸçŠ¶æ¡è®¾ç½®", "Bun Bar Settings" },
    { "è½¨é“å®½åº¦", "Track Width" },
    { "è½¨é“é«˜åº¦", "Track Height" },
    { "ç§»åŠ¨æ–¹å‘", "Movement Direction" },
    { "å‘ä¸Š", "Up" },
    { "å‘ä¸‹", "Down" },
    { "æ˜¾ç¤ºèƒŒæ™¯", "Show Background" },
    { "æ˜¾ç¤ºè¾¹æ¡†", "Show Border" },
    { "å›¾æ¡ˆå€’æ•°æ—¶é—´", "Pattern Countdown Time" },
    { "èƒŒæ™¯çº¿ç²—ç»†", "Background Line Width" },
    { "èƒŒæ™¯çº¿é¢œè‰²", "Background Line Color" },
    { "5ç§’çº¿ç²—ç»†", "5s Line Width" },
    { "5ç§’çº¿é¢œè‰²", "5s Line Color" },
    { "åç§°ä½ç½®", "Name Position" },
    { "å›¾æ ‡å·¦è¾¹", "Left of Icon" },
    { "å›¾æ ‡å³è¾¹", "Right of Icon" },
    { "èƒŒæ™¯æè´¨", "Background Texture" },
    { "èƒŒæ™¯é¢œè‰²", "Background Color" },
    { "è¾¹æ¡†æè´¨", "Border Texture" },
    { "è¾¹æ¡†é¢œè‰²", "Border Color" },
    { "è¾¹æ¡†ç²—ç»†", "Border Width" },
    { "è¾¹æ¡†å†…è·", "Border Inset" },
    { "èƒŒæ™¯è®¾ç½®", "Background Settings" },
    { "é€šç”¨è®¾ç½®é¡µæœªå°±ç»ª", "General Settings page is not ready." },
    { "å¯¼å…¥å¯¼å‡ºé¡µæœªå°±ç»ª", "Import / Export page is not ready." },
    { "BOSSæŠ€èƒ½é¡µæœªå°±ç»ª", "Boss Skill page is not ready." },
    { "å›ºå®šæ—¶é—´è½´é¢„è§ˆé¡µæœªå°±ç»ª", "Fixed Timeline preview page is not ready." },
    { "Ã¥Â±ÂÃ¥Â¹â€¢Ã¨Â­Â¦Ã¥â€˜Å ", "Screen Alert" },
    { "Ã©Â¢â€žÃ¨Â­Â¦(Ã§Â§â€™)", "Pre-Alert (sec)" },
    { "Ã¦ÂÂÃ¥â€°Â(Ã§Â§â€™)", "Pre-Alert (sec)" },
    { "Ã©â€¡ÂÃ§Â½Â®", "Reset" },
    { "Ã©â‚¬Å¡Ã§â€Â¨Ã¨Â®Â¾Ã§Â½Â®", "General Settings" },
    { "Ã©â‚¬Å¡Ã§â€Â¨Settings", "General Settings" },
    { "Ã¨Â¿â„¢Ã©â€¡Å’Ã§Â»Å¸Ã¤Â¸â‚¬Ã§Â®Â¡Ã§Ââ€  EXBoss Ã§Å¡â€žÃ¥â€¦Â¨Ã¥Â±â‚¬Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦Â¨Â¡Ã¥Â¼ÂÃ¤Â¸Å½Ã¨Â¯Â­Ã©Å¸Â³Ã¨Â¾â€œÃ¥â€¡Âº", "This page manages EXBoss global display mode and voice output." },
    { "Ã¥â€¦Â¨Ã¥Â±â‚¬Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦Â¨Â¡Ã¥Â¼ÂÃ¤Â¸Å½Ã¨Â¯Â­Ã©Å¸Â³Ã¨Â¾â€œÃ¥â€¡ÂºÃ£â‚¬â€š", "Global display mode and voice output." },
    { "Ã¨Â½Â½Ã¥â€¦Â¥Ã¨Â®Â¾Ã§Â½Â®", "Load Settings" },
    { "Ã¨Â½Â½Ã¥â€¦Â¥Settings", "Load Settings" },
    { "Ã©Å¸Â³Ã©Â¢â€˜Ã¨Â¾â€œÃ¥â€¡ÂºÃ©â‚¬â€°Ã©Â¡Â¹", "Audio Output Options" },
    { "Ã¨Â¾â€œÃ¥â€¡ÂºÃ©â‚¬Å¡Ã©Ââ€œ", "Audio Channel" },
    { "Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶", "Countdown" },
    { "Ã¦â€“â€¡Ã¥Â­â€”Ã¥â€¦Â¬Ã¥â€˜Å ", "Flash Text" },
    { "Ã¥Å“â€ Ã§Å½Â¯Ã¨Â¿â€ºÃ¥ÂºÂ¦", "Ring Progress" },
    { "Ã¨Â¯Â­Ã©Å¸Â³Ã¦Â³Â¨Ã¥â€ Å’Ã§â€ºâ€˜Ã¦Å½Â§", "Voice Registration Monitor" },
    { "Ã§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯Ã§â€ºâ€˜Ã¦Å½Â§", "Private Aura Monitor" },
    { "Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¥ÂÂ¯Ã§â€Â¨Ã¦â€“Â¹Ã¦Â¡Ë†", "Timeline Display Mode" },
    { "TimelineEnableProfile", "Timeline Display Mode" },
    { "Ã¤Â»â€¦Ã¦ÂÅ¸Ã§Å Â¶Ã¦ÂÂ¡", "Bun Bar Only" },
    { "Ã¤Â»â€¦Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡", "Timer Bar Only" },
    { "Ã¤Â»â€¦Bun Bar", "Bun Bar Only" },
    { "Ã¤Â»â€¦Timer Bar", "Timer Bar Only" },
    { "Ã¥â€¦Â¨Ã©Æ’Â¨Ã¥ÂÂ¯Ã§â€Â¨", "Enable Both" },
    { "Ã¥â€¦Â¨Ã©Æ’Â¨Ã©Å¡ÂÃ¨â€”Â", "Hide Both" },
    { "Ã¥ÂÂ¯Ã§â€Â¨Ã¥Â¤Â§Ã§Â§ËœÃ¥Â¢Æ’Ã©Â¦â€“Ã©Â¢â€ Ã¦ÂÂÃ§Â¤Âº", "Enable Mythic+ Boss Alerts" },
    { "Ã¥ÂÂ¯Ã§â€Â¨Ã¥â€ºÂ¢Ã¦Å“Â¬Ã©Â¦â€“Ã©Â¢â€ Ã¦ÂÂÃ§Â¤Âº", "Enable Raid Boss Alerts" },
    { "Ã¥â€¦Â³Ã©â€”Â­Ã¦Å¡Â´Ã©â€ºÂªÃ¥Å½Å¸Ã§â€Å¸Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡", "Disable Blizzard Encounter Timeline" },
    { "CloseÃ¦Å¡Â´Ã©â€ºÂªÃ¥Å½Å¸Ã§â€Å¸Timer Bar", "Disable Blizzard Encounter Timeline" },
    { "Ã©Â¦â€“Ã©Â¢â€ Ã¦Ë†ËœÃ¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€¦Â³Ã©â€”Â­Ã¦Ë†ËœÃ¦â€“â€”Ã©Å¸Â³Ã©Â¢â€˜Ã©Â¢â€žÃ¨Â­Â¦", "Mute Combat Audio Alerts During Boss Fights" },
    { "Ã¥Â¼â‚¬Ã¥ÂÂ¯Ã¦Å¡Â´Ã©â€ºÂªÃ¤Â¸Â­Ã¥Â¤Â®Ã¦â€“â€¡Ã¥Â­â€”Ã©Â¢â€žÃ¨Â­Â¦Ã¯Â¼Ë†Ã¦Â³Â¨Ã¦â€žÂÃ¯Â¼Å¡Ã¥Â¦â€šÃ¦Å¾Å“Ã¥â€¦Â³Ã©â€”Â­Ã¤Â¼Å¡Ã¥Â¯Â¼Ã¨â€¡Â´Ã¨Â¯Â­Ã©Å¸Â³Ã¤Â¸ÂÃ¥Â·Â¥Ã¤Â½Å“Ã¯Â¼â€°", "Enable Blizzard Center-Screen Warnings (required for voice alerts)" },
    { "Ã¥â€¦Â¨Ã¥Â±â‚¬Ã¨Â¯Â­Ã©Å¸Â³Ã¨Â¾â€œÃ¥â€¡Âº", "Global Voice Output" },
    { "Ã¥â€¦Â¨Ã¥Â±â‚¬Ã©Å¸Â³Ã©â€¡Â", "Global Volume" },
    { "DPSÃ©â‚¬Å¡Ã©Ââ€œ", "Audio Channel" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¨Â¯Â­Ã©Å¸Â³Ã¦Â³Â¨Ã¥â€ Å’Ã§Å Â¶Ã¦â‚¬Â", "Current Voice Registration State" },
    { "Ã¦Å“â‚¬Ã¨Â¿â€˜Ã¥Ë†Â·Ã¦â€“Â°: -", "Last Refresh: -" },
    { "Ã¦Å“â‚¬Ã¨Â¿â€˜Ã¥Ë†Â·Ã¦â€“Â°:", "Last Refresh:" },
    { "Ã¦Å¡â€šÃ¦â€”Â Ã¥Â·Â²Ã¦Â³Â¨Ã¥â€ Å’BOSS", "No registered bosses" },
    { "Ã©â‚¬Å¡Ã§â€Â¨Ã©Â¢Å“Ã¨â€°Â²Ã¦â€“Â¹Ã¦Â¡Ë†", "General Color Schemes" },
    { "Boss Ã¦Å â‚¬Ã¨Æ’Â½Ã©Â¡ÂµÃ¤Â¼Å¡Ã§â€ºÂ´Ã¦Å½Â¥Ã¨Â¯Â»Ã¥Ââ€“Ã¨Â¿â„¢Ã©â€¡Å’Ã§Å¡â€žÃ©â€¦ÂÃ¨â€°Â²Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€šÃ§Å½Â°Ã¥Å“Â¨Ã¨Â¿â„¢Ã©Â¡ÂµÃ¤Â¹Å¸Ã¨ÂµÂ° GridÃ¯Â¼Å’Ã¥ÂÂ¯Ã¦â€¹â€“Ã¦â€¹Â½Ã¥Â¸Æ’Ã¥Â±â‚¬Ã¯Â¼â€ºÃ©Â¢Å“Ã¨â€°Â²Ã§Â¼â€“Ã¨Â¾â€˜Ã¨ÂµÂ°Ã¦Å’â€°Ã©â€™Â®Ã¦â€°â€œÃ¥Â¼â‚¬Ã¥Ââ€“Ã¨â€°Â²Ã¥â„¢Â¨Ã£â‚¬â€š", "The Boss spell page reads these color schemes directly. This page now also uses Grid, supports drag layout, and opens the color picker from the button." },
    { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¦â€“Â¹Ã¦Â¡Ë†", "Fixed Schemes" },
    { "Ã§Â¼â€“Ã¨Â¾â€˜Ã©Â¢Å“Ã¨â€°Â²", "Edit Color" },
    { "Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã¦â€“Â¹Ã¦Â¡Ë†", "Custom Scheme" },
    { "Ã¦â€“Â¹Ã¦Â¡Ë†Ã¥ÂÂÃ§Â§Â°", "Scheme Name" },
    { "Ã©Â¢ÂÃ¥Â¤â€“Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼Ë†Ã¦Å“â‚¬Ã¥Â¤Å¡3Ã¤Â¸ÂªÃ¯Â¼â€°", "Extra Schemes (up to 3)" },
    { "Ã©Â¢ÂÃ¥Â¤â€“Ã¦â€“Â¹Ã¦Â¡Ë†", "Extra Schemes" },
    { "Ã¥ÂÂ¯Ã§â€Â¨", "Enable" },
    { "Ã©â€¡ÂÃ§Â½Â®Ã¨Â®Â¾Ã§Â½Â®", "Reset Settings" },
    { "ResetSettings", "Reset Settings" },
    { "Ã¤Â»â€¦Ã©â€¡ÂÃ§Â½Â®Ã¥Â¤â€“Ã¨Â§â€šÃ¨Â®Â¾Ã§Â½Â®", "Reset Appearance Only" },
    { "Ã©â€¡ÂÃ§Â½Â®Ã¦â€°â‚¬Ã¦Å“â€°Ã©â€¦ÂÃ§Â½Â®Ã¯Â¼Ë†Ã¤Â¸ÂÃ¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°", "Reset All Settings (Keep Appearance)" },
    { "Ã¦Â¸â€¦Ã©â„¢Â¤Ã¥â€¦Â¨Ã©Æ’Â¨Ã¨Â®Â¾Ã§Â½Â®Ã¯Â¼Ë†Ã¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°", "Wipe Everything (Including Appearance)" },
    { "Ã¥â€¦Â¨Ã¥Â±â‚¬Ã¦ÂÂ¡Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦Â¨Â¡Ã¥Â¼Â", "Global Bar Display Mode" },
    { "Ã¦Å½Â§Ã¥Ë†Â¶Ã¥â€¦Â¨Ã¥Â±â‚¬Ã¦ËœÂ¾Ã§Â¤ÂºÃ¯Â¼Å¡Ã¤Â»â€¦Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡ / Ã¤Â»â€¦Ã¦ÂÅ¸Ã§Å Â¶Ã¦ÂÂ¡ / Ã¤Â¸Â¤Ã¨â‚¬â€¦Ã©Æ’Â½Ã¥ÂÂ¯Ã§â€Â¨ / Ã¤Â¸Â¤Ã¨â‚¬â€¦Ã©Æ’Â½Ã©Å¡ÂÃ¨â€”ÂÃ£â‚¬â€š\nÃ¥ÂÂ¯Ã¥Ââ€¢Ã§â€¹Â¬Ã¥â€¦Â³Ã©â€”Â­Ã¥Â¤Â§Ã§Â§ËœÃ¥Â¢Æ’Ã¦Ë†â€“Ã¥â€ºÂ¢Ã¦Å“Â¬Ã©Â¦â€“Ã©Â¢â€ Ã¦ÂÂÃ§Â¤ÂºÃ¯Â¼â€ºÃ¥â€¦Â³Ã©â€”Â­Ã¥ÂÅ½Ã¥Â°â€ Ã¦â€¢Â´Ã¤Â½â€œÃ§Â¦ÂÃ§â€Â¨Ã¨Â¯Â¥Ã¥Å“ÂºÃ¦â„¢Â¯Ã§Å¡â€ž Boss Ã¨Â®Â¡Ã¦â€”Â¶Ã£â‚¬ÂÃ¤Â¸Â­Ã¥Â¤Â®Ã¦â€“â€¡Ã¥Â­â€”Ã£â‚¬ÂÃ¨Â¯Â­Ã©Å¸Â³Ã¤Â¸Å½Ã©Â¢Å“Ã¨â€°Â²Ã¨Â¦â€ Ã§â€ºâ€“Ã£â‚¬â€š\nÃ¥ÂÂ¯Ã©â‚¬â€°Ã¯Â¼Å¡Ã©Â¦â€“Ã©Â¢â€ Ã¦Ë†ËœÃ¤Â¸Â­Ã¨â€¡ÂªÃ¥Å Â¨Ã¥Â°â€ Ã¦Ë†ËœÃ¦â€“â€”Ã©Å¸Â³Ã©Â¢â€˜Ã©Â¢â€žÃ¨Â­Â¦Ã¥Ë†â€ Ã§Â±Â»Ã©Å¸Â³Ã©â€¡ÂÃ©Ââ„¢Ã©Å¸Â³Ã¯Â¼Ë†0Ã¯Â¼â€°Ã¯Â¼Å’Ã¨â€žÂ±Ã¦Ë†ËœÃ¦ÂÂ¢Ã¥Â¤ÂÃ¥Å½Å¸Ã¥â‚¬Â¼Ã£â‚¬â€š", "Controls the global display mode: Timer Bar only / Bun Bar only / both / hidden.\nYou can disable Mythic+ or Raid boss alerts separately; disabling them also disables timers, center text, voice and color overlays for that scene.\nOptional: mute Combat Audio Alert categories during boss fights and restore them afterward." },
    { "BossÃ¦Å â‚¬Ã¨Æ’Â½Ã©Â¡ÂµÃ¦Å“ÂªÃ¥Â°Â±Ã§Â»Âª", "Boss spell page is not ready." },
    { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã©Â¢â€žÃ¨Â§Ë†Ã©Â¡ÂµÃ¦Å“ÂªÃ¥Â°Â±Ã§Â»Âª", "Fixed timeline preview page is not ready." },
    { "MDTÃ©Â¡ÂµÃ¦Å“ÂªÃ¥Â°Â±Ã§Â»Âª", "MDT page is not ready." },
    { "Ã¦ÂÅ¸Ã§Å Â¶Ã¦ÂÂ¡Ã¨Â®Â¾Ã§Â½Â®", "Bun Bar Settings" },
    { "Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡Ã¨Â®Â¾Ã§Â½Â®", "Timer Bar Settings" },
    { "Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¨Â®Â¾Ã§Â½Â®", "Countdown Settings" },
    { "Ã©Â¦â€“Ã©Â¡ÂµÃ¯Â¼Ë†Ã¥ÂÂ Ã¤Â½ÂÃ¯Â¼â€°", "Home (Stub)" },
    { "Ã¥â€°Â¯Ã¦Å“Â¬ / BOSS Ã¥Â¯Â¼Ã¨Ë†Âª\n(Ã¥Â¾â€¦Ã¥Â¼â‚¬Ã¥Ââ€˜)", "Dungeon / Boss Navigation\n(Pending)" },
    { "/exb  Ã¦â€°â€œÃ¥Â¼â‚¬/Ã¥â€¦Â³Ã©â€”Â­    |    /exb edit  Ã§Â¼â€“Ã¨Â¾â€˜Ã¦Â¨Â¡Ã¥Â¼Â    |    /exb debug  Ã¨Â°Æ’Ã¨Â¯â€¢", "/exb open/close | /exb edit edit mode | /exb debug debug" },
    { "Ã¦â€ºÂ´Ã¦â€“Â°Ã¦â€”Â¥Ã¥Â¿â€”", "Changelog" },
    { "Ã¥â€°Â¯Ã¦Å“Â¬Ã¥Ë†â€¡Ã¦ÂÂ¢", "Dungeon Switch" },
    { "Ã¨Â¯Â¥Ã¥Ë†â€ Ã§Â±Â»Ã¦â€”Â Ã¥â€°Â¯Ã¦Å“Â¬Ã¦â€¢Â°Ã¦ÂÂ®", "No dungeon data in this category" },
    { "12.0Ã¥Â¤Â§Ã§Â§ËœÃ¥Â¢Æ’", "12.0 Mythic+" },
    { "12.0Ã¥â€ºÂ¢Ã¦Å“Â¬", "12.0 Raid" },
    { "Ã©Â¦â€“Ã©Â¢â€ Ã¥Ë†â€”Ã¨Â¡Â¨", "Boss List" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¥â€°Â¯Ã¦Å“Â¬Ã¦Å¡â€šÃ¦â€”Â  BOSS Ã¦â€¢Â°Ã¦ÂÂ®", "This dungeon has no boss data" },
    { "Ã¨Â½Â´Ã¦Â¨Â¡Ã¥Â¼Â", "Timeline Mode" },
    { "Ã¨â€¡ÂªÃ¥Å Â¨ -> Ã¥â€ºÂºÃ¥Â®Å¡Timeline", "Auto -> Fixed Timeline" },
    { "Ã¦Âµâ€¹Ã¥Â¼â‚¬", "Start Test" },
    { "Ã¦Âµâ€¹Ã¥â€¦Â³", "Stop Test" },
    { "Ã¤Â¸Â­Ã¥Â¤Â®Ã¨Â­Â¦Ã¥â€˜Å ", "Center Warning" },
    { "Ã¥ÂÂ¯Ã§â€Â¨Ã©Â¢Å“Ã¨â€°Â²Ã¨Â¦â€ Ã§â€ºâ€“", "Enable Color Override" },
    { "EnableÃ©Â¢Å“Ã¨â€°Â²Ã¨Â¦â€ Ã§â€ºâ€“", "Enable Color Override" },
    { "Ã¥â€¦Â¶Ã¤Â»â€“Ã¦â€“Â¹Ã¦Â¡Ë†", "Other Scheme" },
    { "Ã¥â€¦Â¶Ã¤Â»â€“", "Other" },
    { "Ã¤Â¸Â­Ã¥Â¤Â®Ã¦â€“â€¡Ã¦Å“Â¬", "Center Text" },
    { "Ã¦Å â‚¬Ã¨Æ’Â½Ã¨Â§Â¦Ã¥Ââ€˜Ã¦â€”Â¶Ã¥Å“Â¨Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂÃ§Â§Â°Ã¯Â¼Ë†Ã¦Â·Â¡Ã¥â€¦Â¥ Ã¢â€ â€™ Ã¥ÂÅ“Ã§â€¢â„¢ Ã¢â€ â€™ Ã¦Â·Â¡Ã¥â€¡ÂºÃ¯Â¼â€°Ã£â‚¬â€š", "Shows the spell name in the center of the screen when triggered (fade in -> hold -> fade out)." },
    { "Ã¥Å Å¸Ã¨Æ’Â½", "Function" },
    { "Ã¦Å’ÂÃ§Â»Â­Ã¦â€”Â¶Ã©â€”Â´(Ã§Â§â€™)", "Duration (sec)" },
    { "Ã¤Â¸Â­Ã¥Â¤Â®Ã¦â€“â€¡Ã¦Å“Â¬Ã¥â€ â€¦Ã¥Â®Â¹Ã¯Â¼Ë†Ã¥ÂÂ¯Ã§â€Â¨ {name}Ã¯Â¼â€°", "Center Text Content ({name} available)" },
    { "Ã¦ÂÂÃ¥â€°Â5Ã§Â§â€™", "Pre-Alert 5s" },
    { "Timer BarÃ¦â€Â¹Ã¥ÂÂ", "Timer Bar Rename" },
    { "Ã¦â€“Â½Ã¦Â³â€¢Ã¥Â¼â‚¬Ã¥Â§â€¹", "Cast Start" },
    { "Ã¨Â¯Â­Ã©Å¸Â³Ã¦ÂÂ¥Ã¦ÂºÂ", "Voice Source" },
    { "Ã¨Â¯Â­Ã©Å¸Â³labels", "Voice Labels" },
    { "Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦labels", "Voice Pack Labels" },
    { "Ã¨Â¯â€¢Ã¥ÂÂ¬", "Preview" },
    { "Ã¥Â»Â¶Ã¨Â¿Å¸", "Delay" },
    { "Ã§â€šÂ¹Ã¥â€¡Â»Ã¤Â¸Å Ã¦â€“Â¹Ã¦Â³â€¢Ã¦Å“Â¯Ã¥ÂÂ¡Ã§â€°â€¡Ã¥ÂÅ½Ã¯Â¼Å’Ã¥ÂÂ¯Ã¥Å“Â¨Ã¦Â­Â¤Ã¦Å¸Â¥Ã§Å“â€¹Ã¦Â³â€¢Ã¦Å“Â¯Ã¦ÂÂÃ¨Â¿Â°Ã£â‚¬â€š", "Click a spell card above to view its description here." },
    { "Ã§â€šÂ¹Ã¥â€¡Â»Ã¤Â¸Å Ã¦â€“Â¹Ã¦Â³â€¢Ã¦Å“Â¯Ã¥ÂÂ¡Ã§â€°â€¡Ã¥ÂÅ½Ã¯Â¼Å’Ã¥ÂÂ¯Ã¥Å“Â¨Ã¦Â­Â¤Ã©â€¦ÂÃ§Â½Â®Ã¥Ââ€¢Ã¦Â³â€¢Ã¦Å“Â¯Ã¦ÂÂÃ©â€ â€™Ã©â‚¬â€°Ã©Â¡Â¹Ã£â‚¬â€š", "Click a spell card above to configure alert options for that spell." },
    { "Ã¨Â¯Â·Ã©â‚¬â€°Ã¦â€¹Â©Ã¦Å“â€°Ã¦Å â‚¬Ã¨Æ’Â½Ã¦â€¢Â°Ã¦ÂÂ®Ã§Å¡â€ž BOSS", "Select a boss with spell data" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥â€ºÂ¾Ã¦Â â€¡", "Show Icon" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥ÂÂÃ§Â§Â°", "Show Name" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦â€”Â¶Ã©â€”Â´", "Show Time" },
    { "Ã¨Â½Â¨Ã©Ââ€œÃ¥Â®Â½Ã¥ÂºÂ¦", "Track Width" },
    { "Ã¥â€ºÂ¾Ã¦Â â€¡Ã¥Â¤Â§Ã¥Â°Â", "Icon Size" },
    { "Ã¨Â½Â¨Ã©Ââ€œÃ©Â«ËœÃ¥ÂºÂ¦", "Track Height" },
    { "Ã§Â§Â»Ã¥Å Â¨Ã¦â€“Â¹Ã¥Ââ€˜", "Move Direction" },
    { "Ã¥Ââ€˜Ã¤Â¸Å ", "Up" },
    { "Ã¥Ââ€˜Ã¤Â¸â€¹", "Down" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¨Æ’Å’Ã¦â„¢Â¯", "Show Background" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¨Â¾Â¹Ã¦Â¡â€ ", "Show Border" },
    { "Ã¦Â³â€¢Ã¦Å“Â¯Ã¥ÂÂÃ§Â§Â°", "Spell Name" },
    { "Ã¥â€ºÂ¾Ã¦Â¡Ë†Ã¥â‚¬â€™Ã¦â€¢Â°Ã¦â€”Â¶Ã©â€”Â´", "Bar Countdown Time" },
    { "Ã¨Æ’Å’Ã¦â„¢Â¯Ã§ÂºÂ¿Ã§Â²â€”Ã§Â»â€ ", "Background Line Width" },
    { "Ã¨Æ’Å’Ã¦â„¢Â¯Ã§ÂºÂ¿Ã©Â¢Å“Ã¨â€°Â²", "Background Line Color" },
    { "5Ã§Â§â€™Ã§ÂºÂ¿Ã§Â²â€”Ã§Â»â€ ", "5s Line Width" },
    { "5Ã§Â§â€™Ã§ÂºÂ¿Ã©Â¢Å“Ã¨â€°Â²", "5s Line Color" },
    { "Ã¥ÂÂÃ§Â§Â°Ã¤Â½ÂÃ§Â½Â®", "Name Position" },
    { "Ã¥â€ºÂ¾Ã¦Â â€¡Ã¥Â·Â¦Ã¨Â¾Â¹", "Left of Icon" },
    { "Ã¥â€ºÂ¾Ã¦Â â€¡Ã¥ÂÂ³Ã¨Â¾Â¹", "Right of Icon" },
    { "Ã¨Æ’Å’Ã¦â„¢Â¯Ã¦ÂÂÃ¨Â´Â¨", "Background Texture" },
    { "Ã¨Æ’Å’Ã¦â„¢Â¯Ã©Â¢Å“Ã¨â€°Â²", "Background Color" },
    { "Ã¨Â¾Â¹Ã¦Â¡â€ Ã¦ÂÂÃ¨Â´Â¨", "Border Texture" },
    { "Ã¨Â¾Â¹Ã¦Â¡â€ Ã©Â¢Å“Ã¨â€°Â²", "Border Color" },
    { "Ã¨Â¾Â¹Ã¦Â¡â€ Ã§Â²â€”Ã§Â»â€ ", "Border Width" },
    { "Ã¨Â¾Â¹Ã¦Â¡â€ Ã¥â€ â€¦Ã¨Â·Â", "Border Inset" },
    { "Ã¨Æ’Å’Ã¦â„¢Â¯Ã¨Â®Â¾Ã§Â½Â®", "Background Settings" },
    { "Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡Ã¦â€°â‚¬Ã¦Å“â€°Ã¥Â¤â€“Ã¨Â§â€šÃ§Å¡â€žÃ¨Â®Â¾Ã§Â½Â®", "Settings for the full appearance of the timer bars." },
    { "Ã¦ÂÂ¡Ã¥Â¢Å¾Ã©â€¢Â¿Ã¦â€“Â¹Ã¥Â¼Â", "Bar Fill Mode" },
    { "Ã¥Â·Â¦Ã¥Ë†Â°Ã¥ÂÂ³Ã¥Â¡Â«Ã¥â€¦â€¦", "Left to Right Fill" },
    { "Ã¥Â·Â¦Ã¥Ë†Â°Ã¥ÂÂ³Ã¦Â¶Ë†Ã©â‚¬â‚¬", "Left to Right Fade" },
    { "Ã¥ÂÂ³Ã¥Ë†Â°Ã¥Â·Â¦Ã¥Â¡Â«Ã¥â€¦â€¦", "Right to Left Fill" },
    { "Ã¥ÂÂ³Ã¥Ë†Â°Ã¥Â·Â¦Ã¦Â¶Ë†Ã©â‚¬â‚¬", "Right to Left Fade" },
    { "Ã©â€”Â´Ã¨Â·Â", "Spacing" },
    { "Ã¦Å“â‚¬Ã¥Â¤Â§Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦â€¢Â°Ã©â€¡Â", "Maximum Visible Bars" },
    { "Ã¥Â¢Å¾Ã©â€¢Â¿Ã¦â€“Â¹Ã¥Ââ€˜", "Growth Direction" },
    { "Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡Ã¥Â¤â€“Ã¨Â§â€š", "Timer Bar Appearance" },
    { "Ã¦â€”Â¶Ã©â€”Â´Ã¦â€“â€¡Ã¦Å“Â¬", "Time Text" },
    { "Ã©â‚¬Å¡Ã§â€Â¨", "General" },
    { "Ã¦â€“Â°Ã§Â»â€žÃ¤Â»Â¶", "New Component" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥Â°ÂÃ¦â€¢Â°Ã§â€šÂ¹", "Show Decimal" },
    { "Ã¦ÂÂÃ§Â¤ÂºÃ¦â€“â€¡Ã¥Â­â€”Ã¦Â¨Â¡Ã¦ÂÂ¿", "Alert Text Template" },
    { "Ã¦Â¨Â¡Ã¦ÂÂ¿Ã¯Â¼Ë†|cff00ff00%s|r=Ã¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂ  |cffffd100%t|r=Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”Ã¯Â¼â€°", "Template (|cff00ff00%s|r=spell name  |cffffd100%t|r=countdown number)" },
    { "Ã¦ÂÂÃ§Â¤ÂºÃ¦â€“â€¡Ã¥Â­â€”Ã¥Â­â€”Ã¤Â½â€œÃ¯Â¼Ë†%sÃ¯Â¼â€°", "Alert Text Font (%s)" },
    { "Ã¦ÂÂÃ§Â¤ÂºÃ¦â€“â€¡Ã¥Â­â€”", "Alert Text" },
    { "Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”Ã¥Â­â€”Ã¤Â½â€œÃ¯Â¼Ë†%tÃ¯Â¼â€°", "Countdown Number Font (%t)" },
    { "Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”", "Countdown Number" },
    { "Ã¥Å“ÂºÃ¦â„¢Â¯Ã©Â¢â€žÃ¨Â§Ë†", "Scene Preview" },
    { "Ã¥Ë†â€¡Ã¦ÂÂ¢Ã§Â¼â€“Ã¨Â¾â€˜Ã¦Â¨Â¡Ã¥Â¼ÂÃ©Â¢â€žÃ¨Â§Ë†", "Toggle Edit-Mode Preview" },
    { "Ã¦Âµâ€¹Ã¨Â¯â€¢Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶", "Test Countdown" },
    { "Ã©Â¢â€žÃ¨Â§Ë†Ã¯Â¼Å¡", "Preview:" },
    { "Ã¥ÂÂ¦Ã¥â€¦â€¹Ã¥Â°â€“Ã¥Ë†Âº", "Tank Buster" },
    { "Ã¦â€”Â ", "None" },
    { "Ã©Â»ËœÃ¨Â®Â¤", "Default" },
    { "Ã¦â€”Â Ã¥Å Â¨Ã¦â‚¬ÂÃ¥Â¤Â´Ã¥Æ’Â", "No Dynamic Portrait" },
    { "Ã¥Å Â Ã¨Â½Â½Ã¤Â¸Â­", "Loading" },
    { "Ã§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯Ã¦Â³â€¢Ã¦Å“Â¯", "Private Aura Spell" },
    { "Ã¦ÂÂ¥Ã¦ÂºÂÃ¯Â¼Å¡", "Source: " },
    { "Ã¦ÂÂ¥Ã¦ÂºÂNPCIDÃ¯Â¼Å¡", "Source NPC ID: " },
    { "Ã¥Â½â€™Ã¥Â±Å¾Ã¯Â¼Å¡", "Owner: " },
    { "ExwindGrid Ã¤Â¸ÂÃ¥ÂÂ¯Ã§â€Â¨Ã¯Â¼Å’Ã¦â€”Â Ã¦Â³â€¢Ã¦Â¸Â²Ã¦Å¸â€œÃ§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯Ã¨Â®Â¾Ã§Â½Â®Ã£â‚¬â€š", "ExwindGrid is unavailable; private aura settings cannot be rendered." },
    { "ExwindGrid Ã¤Â¸ÂÃ¥ÂÂ¯Ã§â€Â¨Ã¯Â¼Å’Ã¦â€”Â Ã¦Â³â€¢Ã¦Â¸Â²Ã¦Å¸â€œÃ¨Â®Â¾Ã§Â½Â®Ã¥Å’ÂºÃ£â‚¬â€š", "ExwindGrid is unavailable; the settings pane cannot be rendered." },
    { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¦â‚¬Â»Ã¨Â§Ë†", "Fixed Timeline Overview" },
    { "Ã¦Å’â€°Ã©Â¦â€“Ã©Â¢â€ Ã¦Å¸Â¥Ã§Å“â€¹Ã¥â€ºÂºÃ¥Â®Å¡Ã¨Â½Â´Ã¦Å â‚¬Ã¨Æ’Â½Ã¥Å“Â¨Ã¥â€°Â 3 Ã¥Ë†â€ Ã©â€™Å¸Ã¥â€ â€¦Ã§Å¡â€žÃ¥â€¡ÂºÃ§Å½Â°Ã¨Å â€šÃ§â€šÂ¹Ã¯Â¼Å’Ã¤Â¾Â¿Ã¤ÂºÅ½Ã¥Â¿Â«Ã©â‚¬Å¸Ã¦Â Â¡Ã¥Â¯Â¹Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¨Å â€šÃ¥Â¥ÂÃ£â‚¬â€š", "Review when fixed-timeline skills occur during the first 3 minutes of each boss fight." },
    { "Ã¥Ë†Â·Ã¦â€“Â°", "Refresh" },
    { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã©Â¢â€žÃ¨Â§Ë†", "Fixed Timeline Preview" },
    { "Ã¨Â¯Â·Ã©â‚¬â€°Ã¦â€¹Â©Ã¥Â·Â¦Ã¤Â¾Â§Ã©Â¦â€“Ã©Â¢â€ Ã¦Å¸Â¥Ã§Å“â€¹ 3 Ã¥Ë†â€ Ã©â€™Å¸Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã£â‚¬â€š", "Select a boss on the left to view its 3-minute timeline." },
    { "Ã¦Å â‚¬Ã¨Æ’Â½:", "Skills:" },
    { "3Ã¥Ë†â€ Ã©â€™Å¸Ã¨Å â€šÃ§â€šÂ¹:", "3-Minute Markers:" },
    { "Ã¦Å â‚¬Ã¨Æ’Â½", "Skill" },
    { "Ã¦Â¬Â¡", "x" },
    { "Ã©Â¦â€“Ã¨Â½Â®>3:00", "First Loop > 3:00" },
    { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¨Â½Â´Ã©Â¦â€“Ã©Â¢â€ :", "Fixed Bosses:" },
    { "Ã¦Å â‚¬Ã¨Æ’Â½Ã¦â‚¬Â»Ã¦â€¢Â°:", "Total Skills:" },
    { "Ã§Âªâ€”Ã¥ÂÂ£:", "Window:" },
    { "Ã¨Å â€šÃ§â€šÂ¹:", "Markers:" },
    { "Ã¥Â¯Â¼Ã¥â€¡Âº", "Export" },
    { "Ã¥Â¯Â¼Ã¥â€¦Â¥", "Import" },
    { "Ã©â€¦ÂÃ§Â½Â®Ã¥ÂÂÃ§Â§Â°", "Profile Name" },
    { "Ã¦Å“ÂªÃ¥â€˜Â½Ã¥ÂÂÃ©â€¦ÂÃ§Â½Â®", "Untitled Profile" },
    { "Ã¥Â¤â€¡Ã¦Â³Â¨Ã¯Â¼Ë†Ã¥ÂÂ¯Ã©â‚¬â€°Ã¯Â¼â€°", "Notes (Optional)" },
    { "Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¥â€ â€¦Ã¥Â®Â¹", "Export Contents" },
    { "Ã¥Â¤â€“Ã¨Â§â€šÃ¨Â®Â¾Ã§Â½Â®Ã¯Â¼Ë†Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡Ã¥Â¤â€“Ã¨Â§â€šÃ§Â­â€°Ã¯Â¼â€°", "Appearance Settings (Timer Bar Style, etc.)" },
    { "Ã¥Â¤â€“Ã¨Â§â€šSettingsÃ¯Â¼Ë†Timer BarÃ¥Â¤â€“Ã¨Â§â€šÃ§Â­â€°Ã¯Â¼â€°", "Appearance Settings (Timer Bar Style, etc.)" },
    { "Ã¨Â§Â£Ã¦Å¾Â", "Parse" },
    { "Ã§Â²ËœÃ¨Â´Â´Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¥Â­â€”Ã§Â¬Â¦Ã¤Â¸Â²", "Paste Export String" },
    { "Ã¨Â´Â´Ã¨Â´Â´ExportÃ¥Â­â€”Ã§Â¬Â¦Ã¤Â¸Â²", "Paste Export String" },
    { "Ã§Â²ËœÃ¨Â´Â´ExportÃ¥Â­â€”Ã§Â¬Â¦Ã¤Â¸Â²", "Paste Export String" },
    { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¥â€ â€¦Ã¥Â®Â¹", "Import Contents" },
    { "ImportÃ¥â€ â€¦Ã¥Â®Â¹", "Import Contents" },
    { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¥Â¤â€“Ã¨Â§â€šÃ¨Â®Â¾Ã§Â½Â®Ã¯Â¼Ë†Ã§Â«â€¹Ã¥ÂÂ³Ã¥Âºâ€Ã§â€Â¨Ã¯Â¼â€°", "Import Appearance Settings (Apply Immediately)" },
    { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¥Â¤â€“Ã¨Â§â€šSettingsÃ¯Â¼Ë†Ã§Â«â€¹Ã¥ÂÂ³Ã¥Âºâ€Ã§â€Â¨Ã¯Â¼â€°", "Import Appearance Settings (Apply Immediately)" },
    { "ImportÃ¥Â¤â€“Ã¨Â§â€šSettingsÃ¯Â¼Ë†Ã§Â«â€¹Ã¥ÂÂ³Ã¥Âºâ€Ã§â€Â¨Ã¯Â¼â€°", "Import Appearance Settings (Apply Immediately)" },
    { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¤Â½Å“Ã¨â‚¬â€¦Ã¥ÂÂÃ¯Â¼Ë†Ã§â€¢â„¢Ã§Â©ÂºÃ¥Ë†â„¢Ã¤Â½Â¿Ã§â€Â¨Ã©â€¦ÂÃ§Â½Â®Ã¥ÂÂÃ¯Â¼â€°", "Imported Author Name (blank = profile name)" },
    { "ImportAuthorÃ¥ÂÂÃ¯Â¼Ë†Ã§â€¢â„¢Ã§Â©ÂºÃ¥Ë†â„¢Ã¤Â½Â¿Ã§â€Â¨Ã©â€¦ÂÃ§Â½Â®Ã¥ÂÂÃ¯Â¼â€°", "Imported Author Name (blank = profile name)" },
    { "ImportAuthorÃ¥ÂÂ", "Imported Author Name" },
    { "Ã¦â€°Â§Ã¨Â¡Å’Ã¥Â¯Â¼Ã¥â€¦Â¥", "Run Import" },
    { "Ã¦â€°Â§Ã¨Â¡Å’Import", "Run Import" },
    { "Ã©â‚¬â€°Ã¦â€¹Â©Ã¦â€“Â¹Ã¦Â¡Ë†", "Select Profile" },
    { "Ã¦Â­Â¤Ã¥Å’ÂºÃ¥Å¸Å¸Ã¥ÂÂªÃ¥Â±â€¢Ã§Â¤ÂºÃ¥Â½â€œÃ¥â€°Â 6 Ã¤Â¸ÂªÃ¦Â§Â½Ã¤Â½ÂÃ¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žÃ¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "This area only shows the profiles currently assigned to the 6 slots." },
    { "Ã©â€¡ÂÃ¥â€˜Â½Ã¥ÂÂ", "Rename" },
    { "Ã¥Ë†Â Ã©â„¢Â¤", "Delete" },
    { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¦Â¨Â¡Ã¥Ââ€”Ã¦Å“ÂªÃ¥Å Â Ã¨Â½Â½", "Import / Export module is not loaded" },
    { "Ã¨Â¯Â·Ã¨â€¡Â³Ã¥Â°â€˜Ã¥â€¹Â¾Ã©â‚¬â€°Ã¤Â¸â‚¬Ã©Â¡Â¹Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¥â€ â€¦Ã¥Â®Â¹", "Select at least one export item" },
    { "Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¥Â¤Â±Ã¨Â´Â¥Ã¯Â¼Å¡", "Export failed: " },
    { "Ã¨Â¯Â·Ã¥â€¦Ë†Ã§Â²ËœÃ¨Â´Â´Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¥Â­â€”Ã§Â¬Â¦Ã¤Â¸Â²", "Paste an export string first" },
    { "Ã¨Â§Â£Ã¦Å¾ÂÃ¥Â¤Â±Ã¨Â´Â¥Ã¯Â¼Å¡", "Parse failed: " },
    { "Ã¨Â¯Â»Ã¥Ââ€“Ã¦â€˜ËœÃ¨Â¦ÂÃ¥Â¤Â±Ã¨Â´Â¥Ã¯Â¼Å¡", "Failed to read summary: " },
    { "Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¨â‚¬â€¦Ã¯Â¼Å¡", "Author: " },
    { "Ã¥Â¤â€¡Ã¦Â³Â¨Ã¯Â¼Å¡", "Notes: " },
    { "Ã¨Â§Â£Ã¦Å¾ÂÃ¦Ë†ÂÃ¥Å Å¸Ã¯Â¼Å’Ã©â‚¬â€°Ã¦â€¹Â©Ã¨Â¦ÂÃ¥Â¯Â¼Ã¥â€¦Â¥Ã§Å¡â€žÃ¥â€ â€¦Ã¥Â®Â¹Ã¥ÂÅ½Ã§â€šÂ¹Ã¥â€¡Â»[Ã¦â€°Â§Ã¨Â¡Å’Ã¥Â¯Â¼Ã¥â€¦Â¥]", "Parse successful. Select what to import, then click [Run Import]." },
    { "Ã¨Â¯Â·Ã¥â€¦Ë†Ã§â€šÂ¹Ã¥â€¡Â»[Ã¨Â§Â£Ã¦Å¾Â]Ã¦Å’â€°Ã©â€™Â®", "Click [Parse] first" },
    { "Ã¨Â¯Â·Ã¨â€¡Â³Ã¥Â°â€˜Ã¥â€¹Â¾Ã©â‚¬â€°Ã¤Â¸â‚¬Ã©Â¡Â¹Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¥â€ â€¦Ã¥Â®Â¹", "Select at least one import item" },
    { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¦Ë†ÂÃ¥Å Å¸Ã¯Â¼Å¡", "Import successful: " },
    { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¥Â¤Â±Ã¨Â´Â¥Ã¯Â¼Å¡", "Import failed: " },
    { "Ã¦Â§Â½Ã¤Â½ÂÃ¯Â¼Å¡", "Slot: " },
    { "Ã¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼Å¡", "Profile: " },
    { "Ã¦Â§Â½Ã¤Â½ÂÃ¤Â¸ÂºÃ¥â€ºÂºÃ¥Â®Å¡Ã§Â»â€œÃ¦Å¾â€žÃ¯Â¼Å’Ã¨Â¯Â·Ã¥Å“Â¨Ã¨Â¯Â­Ã©Å¸Â³/Ã©â€¦ÂÃ§Â½Â®Ã©Â¡ÂµÃ¥Ë†â€¡Ã¦ÂÂ¢Ã¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "These slots are fixed. Change author profiles in Voice / Profiles." },
    { "Ã¦Â§Â½Ã¤Â½ÂÃ¤Â¸ÂºÃ¥â€ºÂºÃ¥Â®Å¡Ã§Â»â€œÃ¦Å¾â€žÃ¯Â¼Å’Ã¤Â¸ÂÃ¦â€Â¯Ã¦Å’ÂÃ¥Ë†Â Ã©â„¢Â¤Ã£â‚¬â€š", "These slots are fixed and cannot be deleted." },
    { "Ã¥â€¦Â¨Ã©â‚¬â€°Ã¥Â¤ÂÃ¥Ë†Â¶", "Select All" },
    { "Ã¥Â·Â²Ã¥Â¤ÂÃ¥Ë†Â¶Ã¥Ë†Â°Ã¥â€°ÂªÃ¨Â´Â´Ã¦ÂÂ¿", "Copied to clipboard" },
    { "Ctrl+C Ã¥Â¤ÂÃ¥Ë†Â¶Ã¥Â¹Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€¦Â³Ã©â€”Â­Ã¯Â¼Å’Ã¦Ë†â€“Ã§â€šÂ¹Ã¥â€¡Â» Ã¥â€¦Â¨Ã©â‚¬â€°Ã¥Â¤ÂÃ¥Ë†Â¶ Ã¦Å’â€°Ã©â€™Â®", "Press Ctrl+C to copy and close, or click Select All." },
    { "Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Voice Pack" },
    { "Ã©â‚¬â€°Ã¦â€¹Â©Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Select Voice Pack" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Current Voice Pack" },
    { "Ã§Â®â‚¬Ã¤Â»â€¹", "Description" },
    { "Ã¤Â½Å“Ã¨â‚¬â€¦", "Author" },
    { "Ã§â€°Ë†Ã¦Å“Â¬", "Version" },
    { "Ã§Â¼ÂºÃ¥Â°â€˜Ã¨Â¯Â­Ã©Å¸Â³", "Missing Labels" },
    { "Ã©â€¦ÂÃ§Â½Â®Ã¦â€“Â¹Ã¦Â¡Ë†", "Profile Slots" },
    { "AuthorProfile", "Author Profile" },
    { "Ã¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†", "Author Profile" },
    { "Ã¦Å’â€° 6 Ã¤Â¸ÂªÃ¨ÂÅ’Ã¨Â´Â£Ã¦Â§Â½Ã¤Â½ÂÃ©â‚¬â€°Ã¦â€¹Â©Ã¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼â€ºÃ¥â€°Â¯Ã¦Å“Â¬Ã©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žÃ¥â€ºÂ¢Ã¦Å“Â¬ / Ã¥Â¤Â§Ã§Â±Â³Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "Choose author profiles for the 6 role slots; the dungeon page writes the matching Raid / Mythic+ profile automatically for the current role." },
    { "Ã¦Å’â€° 6 Ã¤Â¸ÂªÃ¨ÂÅ’Ã¨Â´Â£Ã¦Â§Â½Ã¤Â½ÂÃ©â‚¬â€°Ã¦â€¹Â©Author ProfileÃ¯Â¼â€ºDungeonsÃ©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žÃ¥â€ºÂ¢Ã¦Å“Â¬ / Mythic+ ProfileÃ£â‚¬â€š", "Choose author profiles for the 6 role slots; the Dungeons page writes the matching Raid / Mythic+ profile automatically for the current role." },
    { "Ã¦Å’â€° 6 Ã¤Â¸ÂªÃ¨ÂÅ’Ã¨Â´Â£Ã¦Â§Â½Ã¤Â½ÂÃ©â‚¬â€°Ã¦â€¹Â©Author ProfileÃ¯Â¼â€ºDungeonsÃ©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žÃ¥â€ºÂ¢Ã¦Å“Â¬ / Ã¥Â¤Â§Ã§Â±Â³Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "Choose author profiles for the 6 role slots; the Dungeons page writes the matching Raid / Mythic+ profile automatically for the current role." },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã£â‚¬â€š", "Automatically used when entering raids with the current role." },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥Ã¥Â¤Â§Ã§Â±Â³Ã¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã£â‚¬â€š", "Automatically used when entering Mythic+ with the current role." },
    { "Ã¦â€“Â¹Ã¦Â¡Ë†", "Profile" },
    { "Ã¦ÂÂÃ§Â¤ÂºÃ¯Â¼Å¡Ã¥Â½â€œÃ¥â€°ÂÃ¦ËœÂ¯Ã¤Â»â‚¬Ã¤Â¹Ë†Ã¨ÂÅ’Ã¨Â´Â£Ã¯Â¼Å’Ã¥Â°Â±Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã¥Â¹Â¶Ã§Â¼â€“Ã¨Â¾â€˜Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žÃ¥â€ºÂ¢Ã¦Å“Â¬/Ã¥Â¤Â§Ã§Â±Â³Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "Tip: the current role determines which Raid / Mythic+ profile is used and edited automatically." },
    { "Ã¦ÂÂÃ§Â¤ÂºÃ¯Â¼Å¡Ã¥Â½â€œÃ¥â€°ÂÃ¦ËœÂ¯Ã¤Â»â‚¬Ã¤Â¹Ë†Ã¨ÂÅ’Ã¨Â´Â£Ã¯Â¼Å’Ã¥Â°Â±Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã¥Â¹Â¶Ã§Â¼â€“Ã¨Â¾â€˜Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žÃ¥â€ºÂ¢Ã¦Å“Â¬/Mythic+ ProfileÃ£â‚¬â€š", "Tip: the current role determines which Raid / Mythic+ profile is used and edited automatically." },
    { "Ã¥Â·Â¦Ã¤Â¾Â§Ã©â‚¬â€°Ã¦â€¹Â©Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¥ÂÂ³Ã¤Â¾Â§Ã¦Å’â€°Ã¥â€ºÂ¢Ã¦Å“Â¬ / Ã¥Â¤Â§Ã§Â±Â³Ã©â€¦ÂÃ§Â½Â®Ã¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "Choose a voice pack on the left, then configure Raid / Mythic+ author profiles on the right." },
    { "Ã¥Â·Â¦Ã¤Â¾Â§Ã©â‚¬â€°Ã¦â€¹Â©Voice PackÃ¯Â¼Å’Ã¥ÂÂ³Ã¤Â¾Â§Ã¦Å’â€°Ã¥â€ºÂ¢Ã¦Å“Â¬ / Ã¥Â¤Â§Ã§Â±Â³Ã©â€¦ÂÃ§Â½Â® Author ProfileÃ£â‚¬â€š", "Choose a Voice Pack on the left, then configure Raid / Mythic+ Author Profiles on the right." },
    { "Ã¢â€”Â Ã¥Â½â€œÃ¥â€°ÂÃ¤Â½Â¿Ã§â€Â¨Ã¤Â¸Â­", "Ã¢â€”Â Active" },
    { "Ã§Â¼ÂºÃ¥Â°â€˜Ã¨Â¯Â­Ã©Å¸Â³Ã¯Â¼Å¡?", "Missing labels: ?" },
    { "Ã§Â¼ÂºÃ¥Â°â€˜Ã¨Â¯Â­Ã©Å¸Â³Ã¯Â¼Å¡0", "Missing labels: 0" },
    { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¦â€“Â¹Ã¦Â¡Ë†", "Raid Profiles" },
    { "Ã¥Â¤Â§Ã§Â±Â³Ã¦â€“Â¹Ã¦Â¡Ë†", "Mythic+ Profiles" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã£â‚¬â€š", "Automatically used in raids for the current role." },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥Ã¥Â¤Â§Ã§Â±Â³Ã¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã£â‚¬â€š", "Automatically used in Mythic+ for the current role." },
    { "Ã©â‚¬Å¡Ã§â€Â¨Ã©Â¢Å“Ã¨â€°Â²Ã¦â€“Â¹Ã¦Â¡Ë†", "General Color Schemes" },
    { "Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã©Â¢Å“Ã¨â€°Â²", "Custom Colors" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¥â€°Â¯Ã¦Å“Â¬Ã¯Â¼Å¡", "Dungeon: " },
    { "Ã¨Â·Â¯Ã§ÂºÂ¿Ã¯Â¼Å¡", "Route: " },
    { "Ã¨Â·Â¯Ã§ÂºÂ¿Ã¥Â¥â€”Ã¨Â£â€¦", "Route Preset" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¦Â³Â¢Ã¦Â¬Â¡Ã¯Â¼Å¡", "Current Pull: " },
    { "Ã¦â‚¬ÂªÃ§â€°Â© / Ã¦Â³â€¢Ã¦Å“Â¯", "Mobs / Spells" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¦Â³Â¢Ã¦Â¬Â¡Ã¥â€ºÂ¾Ã§â€°â€¡Ã¯Â¼Å¡Ã¦â€”Â ", "Current Pull Image: None" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¦Â³Â¢Ã¦Â¬Â¡Ã¥â€ºÂ¾Ã§â€°â€¡Ã¯Â¼Å¡", "Current Pull Image: " },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¨Â¿â€ºÃ¥ÂºÂ¦Ã¯Â¼Å¡Ã¦Å“ÂªÃ¨Å½Â·Ã¥Ââ€“", "Current Progress: Unavailable" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦â€°â€œÃ¦â€“Â­Ã¦â‚¬Âª", "Show Casters" },
    { "Ã¥Å“â€ Ã§Å½Â¯Ã¨Â¿â€ºÃ¥ÂºÂ¦Ã¨Â®Â¾Ã§Â½Â®", "Ring Progress Settings" },
    { "Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥Å“â€ Ã§Å½Â¯Ã¨Â¿â€ºÃ¥ÂºÂ¦", "Shows ring progress in the center of the screen." },
    { "Ã¥Å“â€ Ã§Å½Â¯Ã¦Â Â·Ã¥Â¼Â", "Ring Style" },
    { "Ã§Â»â€ Ã§Å½Â¯ 1", "Thin Ring 1" },
    { "Ã§Â»â€ Ã§Å½Â¯ 2", "Thin Ring 2" },
    { "Ã¦Â â€¡Ã¥â€¡â€ Ã§Å½Â¯", "Classic Ring" },
    { "Ã¥Å“â€ Ã§Å½Â¯Ã¥Â°ÂºÃ¥Â¯Â¸", "Ring Size" },
    { "Ã©Â¢Å“Ã¨â€°Â²", "Color" },
    { "Ã©â‚¬ÂÃ¦ËœÅ½Ã¥ÂºÂ¦", "Opacity" },
    { "Ã¦Âµâ€¹Ã¨Â¯â€¢Ã¥Å“â€ Ã§Å½Â¯(3Ã§Â§â€™)", "Test Ring (3s)" },
    { "Ã§â€ºâ€˜Ã¦Å½Â§Ã§Å½Â©Ã¥Â®Â¶Ã¨â€¡ÂªÃ¨ÂºÂ«Ã§Å¡â€ž3Ã¤Â¸ÂªÃ§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯Ã¦Â§Â½Ã¤Â½ÂÃ£â‚¬â€šÃ¥Â¼â‚¬Ã¥ÂÂ¯Ã¥ÂÅ½Ã¨Â¿â€ºÃ¥â€¦Â¥Ã§Â¼â€“Ã¨Â¾â€˜Ã¦Â¨Â¡Ã¥Â¼ÂÃ¥ÂÂ¯Ã¦â€¹â€“Ã¥Å Â¨Ã¨Â°Æ’Ã¦â€¢Â´Ã¤Â½ÂÃ§Â½Â®Ã£â‚¬â€š", "Monitors the player's 3 personal aura slots. Enable it and enter edit mode to drag the position." },
    { "Ã¥ÂÂ¯Ã§â€Â¨Ã§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯Ã§â€ºâ€˜Ã¦Å½Â§", "Enable Private Aura Monitor" },
    { "Ã¨Â¿â€ºÃ¥â€¦Â¥Ã§Â¼â€“Ã¨Â¾â€˜Ã¦Â¨Â¡Ã¥Â¼Â", "Enter Edit Mode" },
    { "Ã¥â€ºÂ¾Ã¦Â â€¡Ã¥Â¤â€“Ã¨Â§â€š", "Icon Appearance" },
    { "Ã¥â€ºÂ¾Ã¦Â â€¡Ã©â€”Â´Ã¨Â·Â", "Icon Spacing" },
    { "Ã¦Å½â€™Ã¥Ë†â€”Ã¦â€“Â¹Ã¥Ââ€˜", "Layout Direction" },
    { "Ã¥Ââ€˜Ã¥ÂÂ³", "Right" },
    { "Ã¥Ââ€˜Ã¥Â·Â¦", "Left" },
    { "Ã¨Â¾Â¹Ã¦Â¡â€ Ã§Â¼Â©Ã¦â€Â¾", "Border Scale" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥â€ Â·Ã¥ÂÂ´Ã¥Å“Ë†", "Show Cooldown Spiral" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦â€¢Â°Ã¥Â­â€”Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶", "Show Numeric Countdown" },
    { "Ã¤Â½ÂÃ§Â½Â®", "Position" },
    { "Ã©â€Å¡Ã§â€šÂ¹", "Anchor Point" },
    { "Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®", "Screen Center" },
    { "Ã¥Â·Â¦Ã¤Â¸Å Ã¨Â§â€™", "Top Left" },
    { "Ã¤Â¸Å Ã¦â€“Â¹Ã¤Â¸Â­Ã¥Â¤Â®", "Top Center" },
    { "Ã¥ÂÂ³Ã¤Â¸Å Ã¨Â§â€™", "Top Right" },
    { "Ã¥Â·Â¦Ã¤Â¾Â§Ã¤Â¸Â­Ã¥Â¤Â®", "Left Center" },
    { "Ã¥ÂÂ³Ã¤Â¾Â§Ã¤Â¸Â­Ã¥Â¤Â®", "Right Center" },
    { "Ã¥Â·Â¦Ã¤Â¸â€¹Ã¨Â§â€™", "Bottom Left" },
    { "Ã¤Â¸â€¹Ã¦â€“Â¹Ã¤Â¸Â­Ã¥Â¤Â®", "Bottom Center" },
    { "Ã¥ÂÂ³Ã¤Â¸â€¹Ã¨Â§â€™", "Bottom Right" },
    { "Ã¤Â¸Â­Ã¦â€“â€¡Ã©â€¦ÂÃ©Å¸Â³Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Chinese voice pack" },
    { "ExBoss Ã¥Â®ËœÃ¦â€“Â¹Ã©Â»ËœÃ¨Â®Â¤Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Official EXBoss default voice pack" },
    { "ExBoss Ã¥Â®ËœÃ¦â€“Â¹Ã©Â»ËœÃ¨Â®Â¤ Voice Pack", "Official EXBoss default Voice Pack" },
    { "Ã¨Â¦â€ Ã§â€ºâ€“Ã¥Â¸Â¸Ã¨Â§ÂÃ©Â¦â€“Ã©Â¢â€ Ã¤Â¸Å½Ã¥Â¤Â§Ã§Â§ËœÃ¥Â¢Æ’Ã¨Â¯Â­Ã©Å¸Â³Ã¦Â â€¡Ã§Â­Â¾Ã¯Â¼Å’Ã¦Â â€¡Ã¥â€¡â€ Ã¥Ââ€šÃ¨â‚¬Æ’Ã¥Â®Å¾Ã§Å½Â°Ã£â‚¬â€š", "Covers standard raid and Mythic+ voice labels." },
    { "Ã¦Â â€¡Ã§Â­Â¾Ã§Â»â€œÃ¦Å¾â€žÃ¤Â¸Å½Ã©Â»ËœÃ¨Â®Â¤Ã¥Å’â€¦Ã¥â€¦Â¼Ã¥Â®Â¹Ã£â‚¬â€š", "Uses the same label structure as the default pack." },
    { "Ã¦Â â€¡Ã§Â­Â¾Ã¤Â¸Å½Ã©Â»ËœÃ¨Â®Â¤Ã¥Å’â€¦Ã¥â€¦Â¼Ã¥Â®Â¹Ã¯Â¼Å’Ã¥ÂÂ¯Ã§â€ºÂ´Ã¦Å½Â¥Ã¦â€ºÂ¿Ã¦ÂÂ¢Ã¥â€¦Â¨Ã¥Â±â‚¬Ã¨Â¯Â­Ã©Å¸Â³Ã£â‚¬â€š", "Compatible with the default label set and can replace the global voice pack." },
    { "Ã¥Å’â€¦Ã¥ÂÂ«Ã¦Â â€¡Ã¥â€¡â€ Ã¦Â â€¡Ã§Â­Â¾Ã¤Â¸Å½Ã¥â‚¬â€™Ã¦â€¢Â°Ã¨Â¯Â­Ã©Å¸Â³Ã£â‚¬â€š", "Includes standard labels and countdown lines." },
    { "Ã¦ÂÂ¥Ã¦ÂºÂÃ§â€ºÂ®Ã¥Â½â€¢Ã¤Â¸ÂºÃ§â€°â€ºÃ¥Â¸Ë†Ã¥â€šâ€¦Ã¯Â¼Å’Ã¥Å’â€¦Ã¥ÂÂ«Ã¦Â â€¡Ã¥â€¡â€ Ã¦Â â€¡Ã§Â­Â¾Ã¤Â¸Å½Ã¥â‚¬â€™Ã¦â€¢Â°Ã¨Â¯Â­Ã©Å¸Â³Ã£â‚¬â€š", "Uses the standard label set and includes countdown lines." },
    { "Boss Ã©â€¦ÂÃ§Â½Â®Ã¦Â¨Â¡Ã¥Ââ€”Ã¦Å“ÂªÃ¥Å Â Ã¨Â½Â½", "Boss config module not loaded" },
    { "Ã¦Â â€¡Ã§Â­Â¾Ã§â€ºÂ®Ã¥Â½â€¢Ã¦Å“ÂªÃ¥Å Â Ã¨Â½Â½", "Label catalog not loaded" },
    { "Ã§Â¼ÂºÃ¥Â°â€˜Ã¨Â¯Â­Ã©Å¸Â³Ã¯Â¼Å¡", "Missing labels: " },
    { "Ã¥Â·Â²Ã¨Â¦â€ Ã§â€ºâ€“Ã©Â»ËœÃ¨Â®Â¤Ã¨Â¯Â­Ã©Å¸Â³Ã¦Â â€¡Ã§Â­Â¾", "Covers all default voice labels" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¯Â¼Å¡", "Current role: " },
    { "Ã¥Â·Â²Ã¥Ë†â€¡Ã¦ÂÂ¢ ", "Switched " },
    { "Ã¥Âºâ€Ã§â€Â¨Ã¥Â¤Â±Ã¨Â´Â¥Ã¯Â¼Å¡", "Apply failed: " },
    { "Ã¨Â¯Â·Ã©â‚¬â€°Ã¦â€¹Â©Ã©â€¦ÂÃ§Â½Â®", "Select profile" },
    { "6 Ã¦Â§Â½Ã¤Â½ÂÃ¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã¥Â·Â²Ã¦Å½Â¥Ã¥â€¦Â¥Ã¯Â¼Å’Ã¥â€°Â¯Ã¦Å“Â¬Ã©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "6 slot author profiles are active; the dungeon page uses the current role automatically." },
    { "6 Ã¦Â§Â½Ã¤Â½ÂAuthor ProfileÃ¥Â·Â²Ã¦Å½Â¥Ã¥â€¦Â¥Ã¯Â¼Å’DungeonsÃ©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€ProfileÃ£â‚¬â€š", "6 Author Profile slots are active; the Dungeons page uses the current role automatically." },
    { "Ã¨Â¯Â­Ã©Å¸Â³/Ã©â€¦ÂÃ§Â½Â®Ã©Â¡ÂµÃ©ÂÂ¢Ã¤Â¾ÂÃ¨Âµâ€“ ExwindTools.UIÃ¯Â¼Å’Ã¥Â½â€œÃ¥â€°ÂÃ¦Å“ÂªÃ¥Â°Â±Ã§Â»ÂªÃ£â‚¬â€šÃ¨Â¯Â·Ã§Â¡Â®Ã¨Â®Â¤ ExwindCore Ã¥Â·Â²Ã¦Â­Â£Ã§Â¡Â®Ã¥Å Â Ã¨Â½Â½Ã¥ÂÅ½Ã©â€¡ÂÃ¥Â¼â‚¬Ã©ÂÂ¢Ã¦ÂÂ¿Ã£â‚¬â€š", "The Voice / Profiles page requires ExwindTools.UI. Make sure ExwindCore is loaded, then reopen the panel." },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¤Â½Â¿Ã§â€Â¨Ã¤Â¸Â­", "Active" },
    { "Ã¦Â â€¡Ã§Â­Â¾", "labels" },
    { "Ã©Â¢â€žÃ¨Â®Â¾Ã©â€¦ÂÃ§Â½Â®", "Default Preset" },
    { "PresetConfig", "Default Preset" },
    { "Ã¥â€ºÂºÃ¥Â®Å¡TimelineÃ¦â‚¬Â»Ã¨Â§Ë†", "Fixed Timeline Overview" },
    { "Ã¦Å’â€°Ã©Â¦â€“Ã©Â¢â€ Ã¦Å¸Â¥Ã§Å“â€¹Ã¥â€ºÂºÃ¥Â®Å¡Ã¨Â½Â´SkillÃ¥Å“Â¨Ã¥â€°Â 3 Ã¥Ë†â€ Ã©â€™Å¸Ã¥â€ â€¦Ã§Å¡â€žÃ¥â€¡ÂºÃ§Å½Â°Ã¨Å â€šÃ§â€šÂ¹Ã¯Â¼Å’Ã¤Â¾Â¿Ã¤ÂºÅ½Ã¥Â¿Â«Ã©â‚¬Å¸Ã¦Â Â¡Ã¥Â¯Â¹TimelineÃ¨Å â€šÃ¥Â¥ÂÃ£â‚¬â€š", "Review when fixed-timeline skills occur during the first 3 minutes of each boss fight." },
    { "SkillÃ¦â‚¬Â»Ã¦â€¢Â°", "Total Skills" },
    { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¥ÂÂ¦Ã¥â€¦â€¹", "Raid Tank" },
    { "Ã¥â€ºÂ¢Ã¦Å“Â¬DPS", "Raid DPS" },
    { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¦Â²Â»Ã§â€“â€”", "Raid Healer" },
    { "Ã¥Â¤Â§Ã§Â±Â³Ã¥ÂÂ¦Ã¥â€¦â€¹", "Mythic+ Tank" },
    { "Ã¥Â¤Â§Ã§Â±Â³DPS", "Mythic+ DPS" },
    { "Ã¥Â¤Â§Ã§Â±Â³Ã¦Â²Â»Ã§â€“â€”", "Mythic+ Healer" },
    { "Ã¥â€ºÂ¢Ã¦Å“Â¬Profile", "Raid Profile" },
    { "Ã¥Â¤Â§Ã§Â±Â³Profile", "Mythic+ Profile" },
    { "Ã¨Â¯Â­Ã©Å¸Â³ / Ã©â€¦ÂÃ§Â½Â®", "Voice / Profiles" },
    { "Ã©â‚¬â€°Ã¦â€¹Â© Boss", "Select Boss" },
    { "Ã¦Å â‚¬Ã¨Æ’Â½Ã¦ËœÂ¾Ã§Â¤ÂºÃ¨Â®Â¾Ã§Â½Â®", "Spell Display Settings" },
    { "Ã¥â€¹Â¾Ã©â‚¬â€°Ã¦Å½Â§Ã¥Ë†Â¶Ã¦Â¯ÂÃ¦ÂÂ¡Ã¦Å â‚¬Ã¨Æ’Â½Ã¦ËœÂ¯Ã¥ÂÂ¦Ã¥Å“Â¨Ã¦ÂÅ¸Ã§Å Â¶Ã¦ÂÂ¡/Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡/Ã¥Â±ÂÃ¥Â¹â€¢Ã¦ËœÂ¾Ã§Â¤ÂºÃ¯Â¼Å’Ã©Â¢â€žÃ¨Â­Â¦Ã§Â§â€™Ã¦â€¢Â°Ã¥ÂÂ¯Ã¥Ââ€¢Ã§â€¹Â¬Ã¨Â°Æ’Ã¦â€¢Â´Ã£â‚¬â€šÃ§â€¢â„¢Ã§Â©Âº=Ã¤Â½Â¿Ã§â€Â¨Ã¦Å â‚¬Ã¨Æ’Â½Ã©Â»ËœÃ¨Â®Â¤Ã¥â‚¬Â¼Ã£â‚¬â€š", "Toggle whether each spell appears in the bun bar, timer bar, and screen alerts. Pre-alert seconds can be adjusted per spell. Blank = use the spell default." },
    { "Ã¦Å â‚¬Ã¨Æ’Â½Ã©Â¢â€žÃ¨Â­Â¦Ã¦â€”Â¶Ã¥Å“Â¨Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®Ã¦ËœÂ¾Ã§Â¤Âº5Ã§Â§â€™Ã¥â‚¬â€™Ã¦â€¢Â°Ã¦â€“â€¡Ã¥Â­â€”Ã£â‚¬â€š\n", "Shows a 5-second countdown in the center of the screen for spell alerts.\n" },
    { "|cff00ff00%s|r = Ã¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂÃ§Â§Â°  |cffffd100%t|r = Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”", "|cff00ff00%s|r = Spell Name  |cffffd100%t|r = Countdown Number" },
    { "|cffaaaaffÃ©Â¢â€žÃ¨Â§Ë†Ã¯Â¼Å¡|r\n", "|cffaaaaffPreview:|r\n" },
    { "Ã¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂÃ§Â§Â°Ã¦Âµâ€¹Ã¨Â¯â€¢Ã¦â€“â€¡Ã¥Â­â€”", "Spell Name Test Text" },
    { "Ã¥Ââ€¢Ã¦ÂÂ¡", "Single Track" },
    { "Ã¥Å¾â€šÃ§â€ºÂ´", "Vertical" },
    { "Ã¥Ââ€˜Ã¤Â¸Å ,Ã¥Ââ€˜Ã¤Â¸â€¹", "Up,Down" },
    { "Ã¥Å“â€ Ã§Å½Â¯Ã¨Â¿â€ºÃ¥ÂºÂ¦Ã¨Â®Â¾Ã§Â½Â®", "Ring Progress Settings" },
    { "Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥Å“â€ Ã§Å½Â¯Ã¨Â¿â€ºÃ¥ÂºÂ¦", "Shows ring progress in the center of the screen." },
    { "Ã¥Å“â€ Ã§Å½Â¯Ã¦Â Â·Ã¥Â¼Â", "Ring Style" },
    { "Ã§Â»â€ Ã§Å½Â¯ 1", "Thin Ring 1" },
    { "Ã§Â»â€ Ã§Å½Â¯ 2", "Thin Ring 2" },
    { "Ã¦Â â€¡Ã¥â€¡â€ Ã§Å½Â¯", "Classic Ring" },
    { "Ã¥Å“â€ Ã§Å½Â¯Ã¥Â°ÂºÃ¥Â¯Â¸", "Ring Size" },
    { "Ã©Â¢Å“Ã¨â€°Â²", "Color" },
    { "Ã©â‚¬ÂÃ¦ËœÅ½Ã¥ÂºÂ¦", "Opacity" },
    { "Ã¦Âµâ€¹Ã¨Â¯â€¢Ã¥Å“â€ Ã§Å½Â¯(3Ã§Â§â€™)", "Test Ring (3s)" },
    { "Ã§â€ºâ€˜Ã¦Å½Â§Ã§Å½Â©Ã¥Â®Â¶Ã¨â€¡ÂªÃ¨ÂºÂ«Ã§Å¡â€ž3Ã¤Â¸ÂªÃ§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯Ã¦Â§Â½Ã¤Â½ÂÃ£â‚¬â€šÃ¥Â¼â‚¬Ã¥ÂÂ¯Ã¥ÂÅ½Ã¨Â¿â€ºÃ¥â€¦Â¥Ã§Â¼â€“Ã¨Â¾â€˜Ã¦Â¨Â¡Ã¥Â¼ÂÃ¥ÂÂ¯Ã¦â€¹â€“Ã¥Å Â¨Ã¨Â°Æ’Ã¦â€¢Â´Ã¤Â½ÂÃ§Â½Â®Ã£â‚¬â€š", "Monitors the player's 3 personal aura slots. Enable it and enter edit mode to drag the position." },
    { "Ã¥ÂÂ¯Ã§â€Â¨Ã§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯Ã§â€ºâ€˜Ã¦Å½Â§", "Enable Private Aura Monitor" },
    { "Ã¨Â¿â€ºÃ¥â€¦Â¥Ã§Â¼â€“Ã¨Â¾â€˜Ã¦Â¨Â¡Ã¥Â¼Â", "Enter Edit Mode" },
    { "Ã¥â€ºÂ¾Ã¦Â â€¡Ã¥Â¤â€“Ã¨Â§â€š", "Icon Appearance" },
    { "Ã¥â€ºÂ¾Ã¦Â â€¡Ã©â€”Â´Ã¨Â·Â", "Icon Spacing" },
    { "Ã¦Å½â€™Ã¥Ë†â€”Ã¦â€“Â¹Ã¥Ââ€˜", "Layout Direction" },
    { "Ã¥Ââ€˜Ã¥ÂÂ³", "Right" },
    { "Ã¥Ââ€˜Ã¥Â·Â¦", "Left" },
    { "Ã¨Â¾Â¹Ã¦Â¡â€ Ã§Â¼Â©Ã¦â€Â¾", "Border Scale" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥â€ Â·Ã¥ÂÂ´Ã¥Å“Ë†", "Show Cooldown Spiral" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦â€¢Â°Ã¥Â­â€”Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶", "Show Numeric Countdown" },
    { "Ã¤Â½ÂÃ§Â½Â®", "Position" },
    { "Ã©â€Å¡Ã§â€šÂ¹", "Anchor Point" },
    { "Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®", "Screen Center" },
    { "Ã¥Â·Â¦Ã¤Â¸Å Ã¨Â§â€™", "Top Left" },
    { "Ã¤Â¸Å Ã¦â€“Â¹Ã¤Â¸Â­Ã¥Â¤Â®", "Top Center" },
    { "Ã¥ÂÂ³Ã¤Â¸Å Ã¨Â§â€™", "Top Right" },
    { "Ã¥Â·Â¦Ã¤Â¾Â§Ã¤Â¸Â­Ã¥Â¤Â®", "Left Center" },
    { "Ã¥ÂÂ³Ã¤Â¾Â§Ã¤Â¸Â­Ã¥Â¤Â®", "Right Center" },
    { "Ã¥Â·Â¦Ã¤Â¸â€¹Ã¨Â§â€™", "Bottom Left" },
    { "Ã¤Â¸â€¹Ã¦â€“Â¹Ã¤Â¸Â­Ã¥Â¤Â®", "Bottom Center" },
    { "Ã¥ÂÂ³Ã¤Â¸â€¹Ã¨Â§â€™", "Bottom Right" },
    { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã©Â¢â€žÃ¨Â§Ë†", "Fixed Timeline Preview" },
    { "Ã¨Â¯Â·Ã©â‚¬â€°Ã¦â€¹Â©Ã¥Â·Â¦Ã¤Â¾Â§Ã©Â¦â€“Ã©Â¢â€ Ã¦Å¸Â¥Ã§Å“â€¹ 3 Ã¥Ë†â€ Ã©â€™Å¸Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã£â‚¬â€š", "Select a boss on the left to view its 3-minute timeline." },
    { "Ã¦Å¡â€šÃ¦â€”Â Ã¥â€ºÂºÃ¥Â®Å¡Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¦â€¢Â°Ã¦ÂÂ®", "No fixed timeline data available." },
    { "Ã¦Å¡â€šÃ¦â€”Â Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¨Å â€šÃ§â€šÂ¹", "No timeline markers available." },
    { "|cff00ff00%s|r = Ã¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂÃ§Â§Â°  |cffffd100%t|r = Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”", "|cff00ff00%s|r = Spell Name  |cffffd100%t|r = Countdown Number" },
    { "|cffaaaaffÃ©Â¢â€žÃ¨Â§Ë†Ã¯Â¼Å¡|r\n", "|cffaaaaffPreview:|r\n" },
    { "|cffff4400ExBoss|r BunBarPage: ExwindGrid Ã¤Â¸ÂÃ¥ÂÂ¯Ã§â€Â¨", "|cffff4400ExBoss|r BunBarPage: ExwindGrid unavailable" },
    { "|cffff4400ExBoss|r CountdownPage: ExwindGrid Ã¤Â¸ÂÃ¥ÂÂ¯Ã§â€Â¨", "|cffff4400ExBoss|r CountdownPage: ExwindGrid unavailable" },
    { "|cffff4400ExBoss|r FlashTextPage: ExwindGrid Ã¤Â¸ÂÃ¥ÂÂ¯Ã§â€Â¨", "|cffff4400ExBoss|r FlashTextPage: ExwindGrid unavailable" },
    { "|cffff4400ExBoss|r TimerBarPage: ExwindGrid Ã¤Â¸ÂÃ¥ÂÂ¯Ã§â€Â¨", "|cffff4400ExBoss|r TimerBarPage: ExwindGrid unavailable" },
    { "5Ã§Â§â€™Ã§ÂºÂ¿Ã§Â²â€”Ã§Â»â€ ", "5s Line Width" },
    { "5Ã§Â§â€™Ã§ÂºÂ¿Ã©Â¢Å“Ã¨â€°Â²", "5s Line Color" },
    { "Ã¤Â¸Â­Ã¥Â¤Â®Ã¦â€“â€¡Ã¦Å“Â¬", "Center Text" },
    { "Ã¤Â½ÂÃ§Â½Â®", "Position" },
    { "Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”", "Countdown Number" },
    { "Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”Ã¥Â­â€”Ã¤Â½â€œÃ¯Â¼Ë†%tÃ¯Â¼â€°", "Countdown Number Font (%t)" },
    { "Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¨Â®Â¾Ã§Â½Â®", "Countdown Settings" },
    { "Ã¥Ë†â€¡Ã¦ÂÂ¢Ã§Â¼â€“Ã¨Â¾â€˜Ã¦Â¨Â¡Ã¥Â¼ÂÃ©Â¢â€žÃ¨Â§Ë†", "Toggle Edit-Mode Preview" },
    { "Ã¥Å Å¸Ã¨Æ’Â½", "Function" },
    { "Ã¥Ââ€¢Ã¦ÂÂ¡", "Single Track" },
    { "Ã¥ÂÂ³Ã¥Ë†Â°Ã¥Â·Â¦Ã¥Â¡Â«Ã¥â€¦â€¦", "Right to Left Fill" },
    { "Ã¥ÂÂ³Ã¥Ë†Â°Ã¥Â·Â¦Ã¦Â¶Ë†Ã©â‚¬â‚¬", "Right to Left Fade" },
    { "Ã¥ÂÂÃ§Â§Â°Ã¤Â½ÂÃ§Â½Â®", "Name Position" },
    { "Ã¥Ââ€˜Ã¤Â¸Å ,Ã¥Ââ€˜Ã¤Â¸â€¹", "Up,Down" },
    { "Ã¥Ââ€˜Ã¤Â¸â€¹", "Down" },
    { "Ã¥â€ºÂ¾Ã¦Â â€¡Ã¥ÂÂ³Ã¨Â¾Â¹", "Right of Icon" },
    { "Ã¥â€ºÂ¾Ã¦Â â€¡Ã¥Â¤Â§Ã¥Â°Â", "Icon Size" },
    { "Ã¥â€ºÂ¾Ã¦Â â€¡Ã¥Â·Â¦Ã¨Â¾Â¹", "Left of Icon" },
    { "Ã¥â€ºÂ¾Ã¦Â¡Ë†Ã¥â‚¬â€™Ã¦â€¢Â°Ã¦â€”Â¶Ã©â€”Â´", "Bar Countdown Time" },
    { "Ã¥Å“ÂºÃ¦â„¢Â¯Ã©Â¢â€žÃ¨Â§Ë†", "Scene Preview" },
    { "Ã¥ÂÂ¦Ã¥â€¦â€¹Ã¥Â°â€“Ã¥Ë†Âº", "Tank Buster" },
    { "Ã¥ÂÂ¦Ã¥â€¦â€¹Ã¥Â°â€“Ã¥Ë†Âº|r", "Tank Buster|r" },
    { "Ã¥Å¾â€šÃ§â€ºÂ´", "Vertical" },
    { "Ã¥Å¾â€šÃ§â€ºÂ´Ã¤Â½ÂÃ§Â½Â® (Y)", "Vertical Position (Y)" },
    { "Ã¥Â¢Å¾Ã©â€¢Â¿Ã¦â€“Â¹Ã¥Ââ€˜", "Growth Direction" },
    { "Ã¥Â·Â¦Ã¥Ë†Â°Ã¥ÂÂ³Ã¥Â¡Â«Ã¥â€¦â€¦", "Left to Right Fill" },
    { "Ã¥Â·Â¦Ã¥Ë†Â°Ã¥ÂÂ³Ã¦Â¶Ë†Ã©â‚¬â‚¬", "Left to Right Fade" },
    { "Ã¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂÃ§Â§Â°Ã¦Âµâ€¹Ã¨Â¯â€¢Ã¦â€“â€¡Ã¥Â­â€”", "Spell Name Test Text" },
    { "Ã¦Å â‚¬Ã¨Æ’Â½Ã¨Â§Â¦Ã¥Ââ€˜Ã¦â€”Â¶Ã¥Å“Â¨Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂÃ§Â§Â°Ã¯Â¼Ë†Ã¦Â·Â¡Ã¥â€¦Â¥ Ã¢â€ â€™ Ã¥ÂÅ“Ã§â€¢â„¢ Ã¢â€ â€™ Ã¦Â·Â¡Ã¥â€¡ÂºÃ¯Â¼â€°Ã£â‚¬â€š", "Shows the spell name in the center of the screen when triggered (fade in -> hold -> fade out)." },
    { "Ã¦Å â‚¬Ã¨Æ’Â½Ã©Â¢â€žÃ¨Â­Â¦Ã¦â€”Â¶Ã¥Å“Â¨Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®Ã¦ËœÂ¾Ã§Â¤Âº5Ã§Â§â€™Ã¥â‚¬â€™Ã¦â€¢Â°Ã¦â€“â€¡Ã¥Â­â€”Ã£â‚¬â€š\n", "Shows a 5-second countdown in the center of the screen for spell alerts.\n" },
    { "Ã¦Å’ÂÃ§Â»Â­Ã¦â€”Â¶Ã©â€”Â´(Ã§Â§â€™)", "Duration (sec)" },
    { "Ã¦ÂÂÃ§Â¤ÂºÃ¦â€“â€¡Ã¥Â­â€”", "Alert Text" },
    { "Ã¦ÂÂÃ§Â¤ÂºÃ¦â€“â€¡Ã¥Â­â€”Ã¥Â­â€”Ã¤Â½â€œÃ¯Â¼Ë†%sÃ¯Â¼â€°", "Alert Text Font (%s)" },
    { "Ã¦ÂÂÃ§Â¤ÂºÃ¦â€“â€¡Ã¥Â­â€”Ã¦Â¨Â¡Ã¦ÂÂ¿", "Alert Text Template" },
    { "Ã¦â€“Â°Ã§Â»â€žÃ¤Â»Â¶", "New Component" },
    { "Ã¦â€”Â¶Ã©â€”Â´Ã¦â€“â€¡Ã¦Å“Â¬", "Time Text" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥ÂÂÃ§Â§Â°", "Show Name" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥â€ºÂ¾Ã¦Â â€¡", "Show Icon" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥Â°ÂÃ¦â€¢Â°Ã§â€šÂ¹", "Show Decimal" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦â€”Â¶Ã©â€”Â´", "Show Time" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¨Æ’Å’Ã¦â„¢Â¯", "Show Background" },
    { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¨Â¾Â¹Ã¦Â¡â€ ", "Show Border" },
    { "Ã¦Å“â‚¬Ã¥Â¤Â§Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦â€¢Â°Ã©â€¡Â", "Maximum Visible Bars" },
    { "Ã¦ÂÅ¸Ã§Å Â¶Ã¦ÂÂ¡Ã¨Â®Â¾Ã§Â½Â®", "Bun Bar Settings" },
    { "Ã¦ÂÂ¡Ã¥Â¢Å¾Ã©â€¢Â¿Ã¦â€“Â¹Ã¥Â¼Â", "Bar Fill Mode" },
    { "Ã¦Â¨Â¡Ã¦ÂÂ¿Ã¯Â¼Ë†|cff00ff00%s|r=Ã¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂ  |cffffd100%t|r=Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”Ã¯Â¼â€°", "Template (|cff00ff00%s|r=spell name  |cffffd100%t|r=countdown number)" },
    { "Ã¦Â°Â´Ã¥Â¹Â³Ã¤Â½ÂÃ§Â½Â® (X)", "Horizontal Position (X)" },
    { "Ã¦Â³â€¢Ã¦Å“Â¯Ã¥ÂÂÃ§Â§Â°", "Spell Name" },
    { "Ã¦Âµâ€¹Ã¨Â¯â€¢Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶", "Test Countdown" },
    { "Ã§Â§Â»Ã¥Å Â¨Ã¦â€“Â¹Ã¥Ââ€˜", "Move Direction" },
    { "Ã¨Æ’Å’Ã¦â„¢Â¯Ã¦ÂÂÃ¨Â´Â¨", "Background Texture" },
    { "Ã¨Æ’Å’Ã¦â„¢Â¯Ã§ÂºÂ¿Ã§Â²â€”Ã§Â»â€ ", "Background Line Width" },
    { "Ã¨Æ’Å’Ã¦â„¢Â¯Ã§ÂºÂ¿Ã©Â¢Å“Ã¨â€°Â²", "Background Line Color" },
    { "Ã¨Æ’Å’Ã¦â„¢Â¯Ã¨Â®Â¾Ã§Â½Â®", "Background Settings" },
    { "Ã¨Æ’Å’Ã¦â„¢Â¯Ã©Â¢Å“Ã¨â€°Â²", "Background Color" },
    { "Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡Ã¥Â¤â€“Ã¨Â§â€š", "Timer Bar Appearance" },
    { "Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡Ã¦â€°â‚¬Ã¦Å“â€°Ã¥Â¤â€“Ã¨Â§â€šÃ§Å¡â€žÃ¨Â®Â¾Ã§Â½Â®", "Settings for the full appearance of the timer bars." },
    { "Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡Ã¨Â®Â¾Ã§Â½Â®", "Timer Bar Settings" },
    { "Ã¨Â½Â¨Ã©Ââ€œÃ¥Â®Â½Ã¥ÂºÂ¦", "Track Width" },
    { "Ã¨Â½Â¨Ã©Ââ€œÃ©Â«ËœÃ¥ÂºÂ¦", "Track Height" },
    { "Ã¨Â¾Â¹Ã¦Â¡â€ Ã¥â€ â€¦Ã¨Â·Â", "Border Inset" },
    { "Ã¨Â¾Â¹Ã¦Â¡â€ Ã¦ÂÂÃ¨Â´Â¨", "Border Texture" },
    { "Ã¨Â¾Â¹Ã¦Â¡â€ Ã§Â²â€”Ã§Â»â€ ", "Border Width" },
    { "Ã¨Â¾Â¹Ã¦Â¡â€ Ã©Â¢Å“Ã¨â€°Â²", "Border Color" },
    { "Ã©â‚¬Å¡Ã§â€Â¨", "General" },
    { "Ã©â‚¬Å¡Ã§â€Â¨Ã¨Â®Â¾Ã§Â½Â®", "General Settings" },
    { "Ã©â€¡ÂÃ§Â½Â®Ã¤Â½ÂÃ§Â½Â®", "Reset Position" },
    { "Ã©â€”Â´Ã¨Â·Â", "Spacing" },
    { "Ã©Â»ËœÃ¨Â®Â¤", "Default" },
    { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã©Â¦â€“Ã©Â¢â€ Ã¯Â¼Å¡%d  |  Ã¥Â¤Â§Ã§Â±Â³Ã¥â€°Â¯Ã¦Å“Â¬Ã¯Â¼Å¡%d", "Raid Bosses: %d  |  Mythic+ Dungeons: %d" },
    { "Ã§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯", "Private Aura" },
    { "Ã¥Â¯Â¹Ã¨Â±Â¡Ã¥Ë†â€”Ã¨Â¡Â¨", "Object List" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¥Â¯Â¹Ã¨Â±Â¡Ã¦Â²Â¡Ã¦Å“â€°Ã§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯Ã¦Â³â€¢Ã¦Å“Â¯Ã£â‚¬â€š", "The current object has no private aura spells." },
    { "Ã¦ÂÂ¡Ã¤Â»Â¶Ã§Â³Â»Ã§Â»Å¸Ã¯Â¼Ë†Ã§Â¬Â¬Ã¤Â¸â‚¬Ã§â€°Ë†Ã¯Â¼â€°", "Conditions System (First Pass)" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¥ÂÂªÃ¥Â®Å¾Ã§Å½Â°Ã¤Â¸â‚¬Ã¤Â¸ÂªÃ¦Â Â¸Ã¥Â¿Æ’Ã¨Â§â€žÃ¥Ë†â„¢Ã¯Â¼Å¡Ã¤Âºâ€¹Ã¤Â»Â¶Ã§Â»â€œÃ¦ÂÅ¸Ã§Âªâ€”Ã¥ÂÂ£ + BOSSÃ¨Â¯Â»Ã¦ÂÂ¡ -> Ã¥Å“â€ Ã§Å½Â¯Ã£â‚¬â€šÃ¥â€¦Ë†Ã¦Å Å Ã¨Â¿â„¢Ã¦ÂÂ¡Ã©â€œÂ¾Ã¨Â·â€˜Ã©â‚¬Å¡Ã¯Â¼Å’Ã¤Â¸ÂÃ¥ÂÅ¡ WA Ã¥Â¼ÂÃ¤Â¸â€¡Ã¨Æ’Â½Ã¦ÂÂ¡Ã¤Â»Â¶Ã£â‚¬â€š", "Currently only one core rule is implemented: event-end window + boss cast bar -> ring. The goal is to make this chain work first, not to build a full WA-style condition system." },
    { "Ã¥ÂÂ¯Ã§â€Â¨Ã¦ÂÂ¡Ã¤Â»Â¶Ã§Â³Â»Ã§Â»Å¸Ã¨Â¿ÂÃ¨Â¡Å’Ã¦â€”Â¶", "Enable Conditions Runtime" },
    { "Ã¨Â½Â½Ã¥â€¦Â¥", "Load" },
    { "Ã¥Â·Â²Ã¥Å Â Ã¨Â½Â½Ã¤Âºâ€¹Ã¤Â»Â¶ %d", "Loaded event %d" },
    { "eventID Ã¦â€”Â Ã¦â€¢Ë†", "Invalid eventID" },
    { "Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¤Â±Ã¨Â´Â¥", "Write failed" },
    { "Ã¥Â·Â²Ã¤Â¿ÂÃ¥Â­ËœÃ¤Âºâ€¹Ã¤Â»Â¶ %d Ã§Å¡â€žÃ§Âªâ€”Ã¥ÂÂ£Ã¨Â§â€žÃ¥Ë†â„¢", "Saved window rule for event %d" },
    { "Ã¥ÂÂ¯Ã§â€Â¨Ã¢â‚¬Å“Ã¤Âºâ€¹Ã¤Â»Â¶Ã§Â»â€œÃ¦ÂÅ¸Ã§Âªâ€”Ã¥ÂÂ£ + BOSSÃ¨Â¯Â»Ã¦ÂÂ¡Ã¢â‚¬ÂÃ¨Â§â€žÃ¥Ë†â„¢", "Enable \"Event-End Window + Boss Cast\" Rule" },
    { "Ã§Âªâ€”Ã¥ÂÂ£Ã¥â€°Â(Ã§Â§â€™)", "Window Before (sec)" },
    { "Ã§Âªâ€”Ã¥ÂÂ£Ã¥ÂÅ½(Ã§Â§â€™)", "Window After (sec)" },
    { "Ã¥â€˜Â½Ã¤Â¸Â­Ã¥ÂÅ½Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥Å“â€ Ã§Å½Â¯", "Show Ring On Match" },
    { "Ã¤Â¿ÂÃ¥Â­ËœÃ¨Â§â€žÃ¥Ë†â„¢", "Save Rule" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¦Â¿â‚¬Ã¦Â´Â»Ã¤Âºâ€¹Ã¤Â»Â¶Ã¯Â¼Ë†Ã§â€šÂ¹Ã¤Â¸â‚¬Ã¤Â¸â€¹Ã¥Â¿Â«Ã©â‚¬Å¸Ã¨Â½Â½Ã¥â€¦Â¥Ã¯Â¼â€°", "Current Active Events (click to load quickly)" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¦Â²Â¡Ã¦Å“â€°Ã¦Â¿â‚¬Ã¦Â´Â»Ã¤Â¸Â­Ã§Å¡â€žÃ¤Âºâ€¹Ã¤Â»Â¶Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡Ã£â‚¬â€šÃ¥â€¦Ë†Ã¨Â¿â€ºÃ¥â€¦Â¥Ã¦Ë†ËœÃ¦â€“â€”Ã¦Ë†â€“Ã¥ÂÂ¯Ã¥Å Â¨Ã¦Âµâ€¹Ã¨Â¯â€¢Ã£â‚¬â€š", "There are no active event timer bars right now. Enter combat or start a test first." },
    { "Ã¨Â¿ÂÃ¨Â¡Å’Ã¦â€”Â¶Ã§Å Â¶Ã¦â‚¬Â", "Runtime Status" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¦Â²Â¡Ã¦Å“â€°Ã¨Â¿ÂÃ¨Â¡Å’Ã¦â€”Â¶Ã§Å Â¶Ã¦â‚¬Â", "No runtime state right now" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¦Â²Â¡Ã¦Å“â€°Ã¥â€˜Â½Ã¤Â¸Â­Ã§Âªâ€”Ã¥ÂÂ£Ã¥Å’Â¹Ã©â€¦Â", "No matching window right now" },
    { "Ã¥â€˜Â½Ã¤Â¸Â­Ã¤Â¸Â­", "Matched" },
    { "Ã¤Âºâ€¹Ã¤Â»Â¶", "Event" },
    { "Ã¨Â¯Â»Ã¦ÂÂ¡", "Cast" },
    { "Ã¥ÂÂÃ¥Â·Â®", "Offset" },
    { "Ã¥â€°Â©Ã¤Â½â„¢", "Remaining" },
    { "Ã¨Â§â€žÃ¥Ë†â„¢Ã¨Â¯Â´Ã¦ËœÅ½Ã¯Â¼Å¡\n1. Ã¤Â»Â¥Ã¤Âºâ€¹Ã¤Â»Â¶Ã§Â»â€œÃ¦ÂÅ¸Ã¦â€”Â¶Ã©â€”Â´Ã¤Â½Å“Ã¤Â¸ÂºÃ©â€Å¡Ã§â€šÂ¹\n2. Ã¥Å“Â¨ [Ã§Â»â€œÃ¦ÂÅ¸Ã¥â€°ÂXÃ§Â§â€™, Ã§Â»â€œÃ¦ÂÅ¸Ã¥ÂÅ½YÃ§Â§â€™] Ã§Âªâ€”Ã¥ÂÂ£Ã¥â€ â€¦\n3. Ã¥ÂÂªÃ¨Â¦Â boss1-boss5 Ã¦Å“â€°Ã¨Â¯Â»Ã¦ÂÂ¡/Ã¥Â¼â€¢Ã¥Â¯Â¼\n4. Ã¥Â°Â±Ã¦Å Å Ã¥Â½â€œÃ¥â€°ÂÃ¨Â¯Â»Ã¦ÂÂ¡Ã¥â€°Â©Ã¤Â½â„¢Ã¦â€”Â¶Ã©â€”Â´Ã¦ËœÂ¾Ã§Â¤ÂºÃ¤Â¸ÂºÃ¥Å“â€ Ã§Å½Â¯\n\nÃ¨Â¿â„¢Ã§â€°Ë†Ã¨Â¿ËœÃ¦Â²Â¡Ã¥ÂÅ¡Ã¯Â¼Å¡Ã¥â‚¬â€™Ã¦â€¢Â°Ã£â‚¬ÂÃ¤Â¸Â­Ã¥Â¤Â®Ã¦â€“â€¡Ã¥Â­â€”Ã£â‚¬ÂÃ¥Â¤Å¡Ã¦ÂÂ¡Ã¤Â»Â¶Ã¦Â â€˜Ã£â‚¬ÂÃ¥Â¤Å¡Ã¥Å Â¨Ã¤Â½Å“Ã§Â»â€žÃ¥ÂË†Ã£â‚¬â€š", "Rule description:\n1. Uses the event end time as the anchor\n2. Works inside the [X sec before end, Y sec after end] window\n3. If boss1-boss5 has a cast/channel\n4. Shows the remaining cast time as a ring\n\nStill not implemented in this version: countdowns, center text, multi-condition trees, and combined actions." },
    { "Ã¯Â¼Ë†Ã¦â€”Â Ã¦Â â€¡Ã§Â­Â¾Ã¯Â¼â€°", "(No Labels)" },
    { "Ã§Â¡Â®Ã¨Â®Â¤Ã¥Ë†Â Ã©â„¢Â¤Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼Å¡", "Delete profile: " },
    { "Ã¥Ë†Â Ã©â„¢Â¤", "Delete" },
    { "Ã¥Ââ€“Ã¦Â¶Ë†", "Cancel" },
    { "Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¦Ë†ÂÃ¥Å Å¸", "Export Successful" },
    { "Ã¥â€¦Â¨Ã©â‚¬â€°Ã¥Â¤ÂÃ¥Ë†Â¶", "Select All" },
    { "Ã¥â€¦Â³Ã©â€”Â­", "Close" },
    { "Ã¦Å“ÂªÃ©â‚¬â€°Ã¦â€¹Â©Ã¥â€°Â¯Ã¦Å“Â¬", "No dungeon selected" },
    { "Ã¦Å“ÂªÃ§Å¸Â¥Ã¥â€°Â¯Ã¦Å“Â¬", "Unknown dungeon" },
    { "Ã¦Å“ÂªÃ§Å¸Â¥Ã©Â¦â€“Ã©Â¢â€ ", "Unknown boss" },
    { "Ã©Â¦â€“Ã©Â¢â€  ", "Boss " },
    { "Ã¥â€°Â¯Ã¦Å“Â¬ ", "Dungeon " },
    { "4Ã¤Â¸ÂªÃ¥â€ºÂºÃ¥Â®Å¡Ã©Â¢Å“Ã¨â€°Â²Ã¦â€“Â¹Ã¦Â¡Ë† + 1Ã¤Â¸ÂªÃ¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã¦â€“Â¹Ã¦Â¡Ë† + Ã¦Å“â‚¬Ã¥Â¤Å¡3Ã¤Â¸ÂªÃ©Â¢ÂÃ¥Â¤â€“Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€šBossÃ¦Å â‚¬Ã¨Æ’Â½Ã©Â¡ÂµÃ¥ÂÂ¯Ã§â€ºÂ´Ã¦Å½Â¥Ã©â‚¬â€°Ã¦â€¹Â©Ã¦â€“Â¹Ã¦Â¡Ë†Ã¦Ë†â€“Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã©Â¢Å“Ã¨â€°Â²Ã£â‚¬â€š", "4 fixed color profiles + 1 custom scheme + up to 3 extra schemes. The Boss Skills page can select a profile directly or use custom colors." },
    { "4Ã¤Â¸ÂªÃ¥â€ºÂºÃ¥Â®Å¡ColorProfile + 1Ã¤Â¸ÂªCustom Scheme + Ã¦Å“â‚¬Ã¥Â¤Å¡3Ã¤Â¸ÂªExtra SchemesÃ£â‚¬â€šBossSkillÃ©Â¡ÂµÃ¥ÂÂ¯Ã§â€ºÂ´Ã¦Å½Â¥Select ProfileÃ¦Ë†â€“Custom ColorsÃ£â‚¬â€š", "4 fixed color profiles + 1 custom scheme + up to 3 extra schemes. The Boss Skills page can select a profile directly or use custom colors." },
    { "BossÃ¦Å â‚¬Ã¨Æ’Â½Ã©Â¡ÂµÃ©ÂÂ¢Ã¥ÂÂ¯Ã©â‚¬â€°Ã¦â€¹Â©Ã¤Â¸â€¹Ã¥Ë†â€”ProfileÃ¯Â¼â€ºÃ©â‚¬â€°Ã¦â€¹Â©Ã¢â‚¬Å“Custom ColorsÃ¢â‚¬ÂÃ¦â€”Â¶Ã¤Â½Â¿Ã§â€Â¨Ã¢â‚¬Å“Custom SchemeÃ¢â‚¬ÂÃ£â‚¬â€šÃ¥â€¹Â¾Ã©â‚¬â€°EnableÃ§Å¡â€žExtra SchemesÃ¤Â¼Å¡Ã¥â€¡ÂºÃ§Å½Â°Ã¥Å“Â¨SkillÃ©Â¡ÂµÃ¤Â¸â€¹Ã¦â€¹â€°Ã£â‚¬â€š", "The Boss Skills page can select the profiles below. Choosing \"Custom Colors\" uses the \"Custom Scheme\". Enabled extra schemes appear in the Skill page dropdown." },
    { "BossÃ¦Å â‚¬Ã¨Æ’Â½Ã©Â¡ÂµÃ©ÂÂ¢Ã¥ÂÂ¯Ã©â‚¬â€°Ã¦â€¹Â©Ã¤Â¸â€¹Ã¥Ë†â€”Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼â€ºÃ©â‚¬â€°Ã¦â€¹Â©Ã¢â‚¬Å“Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã©Â¢Å“Ã¨â€°Â²Ã¢â‚¬ÂÃ¦â€”Â¶Ã¤Â½Â¿Ã§â€Â¨Ã¢â‚¬Å“Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã¦â€“Â¹Ã¦Â¡Ë†Ã¢â‚¬ÂÃ£â‚¬â€šÃ¥â€¹Â¾Ã©â‚¬â€°Ã¥ÂÂ¯Ã§â€Â¨Ã§Å¡â€žÃ©Â¢ÂÃ¥Â¤â€“Ã¦â€“Â¹Ã¦Â¡Ë†Ã¤Â¼Å¡Ã¥â€¡ÂºÃ§Å½Â°Ã¥Å“Â¨Ã¦Å â‚¬Ã¨Æ’Â½Ã©Â¡ÂµÃ¤Â¸â€¹Ã¦â€¹â€°Ã£â‚¬â€š", "The Boss Skills page can select the profiles below. Choosing \"Custom Colors\" uses the \"Custom Scheme\". Enabled extra schemes appear in the Skill page dropdown." },
    { "ColorProfile", "Color Profile" },
    { "BossSkillÃ©Â¡ÂµÃ©ÂÂ¢", "Boss Skills page" },
    { "BossSkillÃ©Â¡Âµ", "Boss Skills page" },
    { "SkillÃ©Â¡Âµ", "Skill page" },
    { "DungeonsÃ©Â¡Âµ", "Dungeons page" },
    { "Ã¨Â½Â¬Ã¦Â³â€¢Skill", "Mechanic Profile" },
    { "Ã¨Â½Â¬Ã¦Â³â€¢Ã¦â€“Â¹Ã¦Â¡Ë†", "Mechanic Profile" },
    { "Custom SchemeÃ¥ÂÂ", "Custom Scheme Name" },
    { "Ã¥Â·Â¦Ã¤Â¾Â§Ã©â‚¬â€°Ã¦â€¹Â©Voice PackÃ¯Â¼Å’Ã¥ÂÂ³Ã¤Â¾Â§Ã¦Å’â€°Ã¥â€ºÂ¢Ã¦Å“Â¬ / Ã¥Â¤Â§Ã§Â±Â³Ã©â€¦ÂÃ§Â½Â® Author ProfileÃ£â‚¬â€š", "Choose a Voice Pack on the left, then configure Raid / Mythic+ Author Profiles on the right." },
    { "ExBoss Ã¥Â®ËœÃ¦â€“Â¹Ã©Â»ËœÃ¨Â®Â¤Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Official EXBoss default voice pack" },
    { "ExBoss Ã¥Â®ËœÃ¦â€“Â¹Ã©Â»ËœÃ¨Â®Â¤Voice Pack", "Official EXBoss default voice pack" },
    { "ExBoss Ã¥Â®ËœÃ¦â€“Â¹Ã©Â»ËœÃ¨Â®Â¤ Voice Pack", "Official EXBoss default voice pack" },
    { "Timer BarSettings", "Timer Bar Settings" },
    { "Timer BarÃ¦â€°â‚¬Ã¦Å“â€°Ã¥Â¤â€“Ã¨Â§â€šÃ§Å¡â€žSettings", "Settings for the full appearance of the timer bars." },
    { "CountdownSettings", "Countdown Settings" },
    { "SkillÃ©Â¢â€žÃ¨Â­Â¦Ã¦â€”Â¶Ã¥Å“Â¨Screen CenterÃ¦ËœÂ¾Ã§Â¤Âº5Ã§Â§â€™Ã¥â‚¬â€™Ã¦â€¢Â°Ã¦â€“â€¡Ã¥Â­â€”Ã£â‚¬â€š", "Shows a 5-second countdown in the center of the screen for spell alerts." },
    { "Ã¦Â¨Â¡Ã¦ÂÂ¿Ã¯Â¼Ë†%s=SkillÃ¥ÂÂ  %t=CountdownÃ¦â€¢Â°Ã¥Â­â€”Ã¯Â¼â€°", "Template (%s=spell name  %t=countdown number)" },
    { "CountdownÃ¦â€¢Â°Ã¥Â­â€”Ã¥Â­â€”Ã¤Â½â€œÃ¯Â¼Ë†%tÃ¯Â¼â€°", "Countdown Number Font (%t)" },
    { "CountdownÃ¦â€¢Â°Ã¥Â­â€”", "Countdown Number" },
    { "SkillÃ¨Â§Â¦Ã¥Ââ€˜Ã¦â€”Â¶Ã¥Å“Â¨Screen CenterÃ¦ËœÂ¾Ã§Â¤ÂºSpell NameÃ¯Â¼Ë†Ã¦Â·Â¡Ã¥â€¦Â¥ -> Ã¥ÂÅ“Ã§â€¢â„¢ -> Ã¦Â·Â¡Ã¥â€¡ÂºÃ¯Â¼â€°Ã£â‚¬â€š", "Shows the spell name in the center of the screen when triggered (fade in -> hold -> fade out)." },
    { "Ring ProgressSettings", "Ring Progress Settings" },
    { "Screen CenterÃ¦ËœÂ¾Ã§Â¤ÂºRing Progress", "Shows ring progress in the center of the screen." },
    { "Ã¦Â°Â´Ã¥Â¹Â³Position (X)", "Horizontal Position (X)" },
    { "Ã¥Å¾â€šÃ§â€ºÂ´Position (Y)", "Vertical Position (Y)" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¨Â¯Â­Ã©Å¸Â³Ã¦Â³Â¨Ã¥â€ Å’Ã§Â»â€ Ã¨Å â€šÃ¯Â¼Ë†Ã©Â»ËœÃ¨Â®Â¤Ã¤Â»â€¦Ã¦ËœÂ¾Ã§Â¤ÂºÃ©ÂÅ¾Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¯Â¼â€°Ã¯Â¼Å¡Ã¥â€°Â¯Ã¦Å“Â¬ > BOSSÃ¥ÂÂÃ§Â§Â°(Ã¦â€¢Â°Ã©â€¡Â) + eventID(trigger0/1/2)Ã£â‚¬â€š", "Shows current voice registration details (default = non-raid only): Dungeon > Boss Name (count) + eventID(trigger0/1/2)." },
    { "Ã¦Å¸Â¥Ã§Å“â€¹Ã¥Â½â€œÃ¥â€°ÂÃ¨Â¯Â­Ã©Å¸Â³Ã¦Â³Â¨Ã¥â€ Å’Ã§Â»â€ Ã¨Å â€šÃ¯Â¼Ë†DefaultÃ¤Â»â€¦Ã¦ËœÂ¾Ã§Â¤ÂºÃ©ÂÅ¾Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¯Â¼â€°Ã¯Â¼Å¡Dungeons > BOSSÃ¥ÂÂÃ§Â§Â°(Ã¦â€¢Â°Ã©â€¡Â) + eventID(trigger0/1/2)Ã£â‚¬â€š", "Shows current voice registration details (default = non-raid only): Dungeon > Boss Name (count) + eventID(trigger0/1/2)." },
    { "Ã¨Â¯Â­Ã©Å¸Â³Ã¥Â¼â€¢Ã¦â€œÅ½Ã¦Å“ÂªÃ¥Â°Â±Ã§Â»ÂªÃ¯Â¼Å’Ã¦â€”Â Ã¦Â³â€¢Ã¨Â¯Â»Ã¥Ââ€“Ã¦Â³Â¨Ã¥â€ Å’Ã§Å Â¶Ã¦â‚¬ÂÃ£â‚¬â€š", "The voice engine is not ready, so the registration state cannot be read." },
    { "Ã¦Â³Â¨Ã¥â€ Å’Ã¥Â¿Â«Ã§â€¦Â§Ã¤Â¸ÂºÃ§Â©ÂºÃ£â‚¬â€š", "The registration snapshot is empty." },
    { "Ã©ÂÅ¾Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¥Â·Â²Ã¦Â³Â¨Ã¥â€ Å’BOSS: ", "Non-raid registered bosses: " },
    { "Ã©ÂÅ¾Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¤Âºâ€¹Ã¤Â»Â¶: ", "Non-raid events: " },
    { "Ã©ÂÅ¾Ã¥â€ºÂ¢Ã¦Å“Â¬Event: ", "Non-raid events: " },
    { "Ã¨Â§Â¦Ã¥Ââ€˜Ã¥â„¢Â¨Ã¤Âºâ€¹Ã¤Â»Â¶(0/1/2): ", "Trigger events (0/1/2): " },
    { "Ã¨Â§Â¦Ã¥Ââ€˜Ã¥â„¢Â¨Event(0/1/2): ", "Trigger events (0/1/2): " },
    { "Ã¦Å¡â€šÃ¦â€”Â Ã©ÂÅ¾Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¥Â·Â²Ã¦Â³Â¨Ã¥â€ Å’BOSS", "No non-raid registered bosses" },
    { "Ã¦Å¡â€šÃ¦â€”Â NoneÃ©ÂÅ¾Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¥Â·Â²Ã¦Â³Â¨Ã¥â€ Å’BOSS", "No non-raid registered bosses" },
    { "Ã¥Â½â€œÃ¥â€°ÂÃ¨Â¯Â­Ã©Å¸Â³Ã¦Â³Â¨Ã¥â€ Å’Ã§Å Â¶Ã¦â‚¬Â", "Current Voice Registration State" },
    { "Ã¥Â·Â²Ã¦Â³Â¨Ã¥â€ Å’BOSS: 0  |  Ã¥Â·Â²Ã¦Â³Â¨Ã¥â€ Å’Ã¤Âºâ€¹Ã¤Â»Â¶: 0", "Registered bosses: 0  |  Registered events: 0" },
    { "Ã¦Å¡â€šÃ¦â€”Â Ã¥Â·Â²Ã¦Â³Â¨Ã¥â€ Å’BOSS", "No registered bosses" },
    { "Ã¦ÂÂÃ¤Â¾â€ºÃ¤Â¸â€°Ã§Â§ÂÃ©â€¡ÂÃ§Â½Â®Ã¦â€“Â¹Ã¥Â¼ÂÃ¯Â¼Å¡\n1) Ã¤Â»â€¦Ã©â€¡ÂÃ§Â½Â®Ã¥Â¤â€“Ã¨Â§â€šÃ¨Â®Â¾Ã§Â½Â®\n2) Ã©â€¡ÂÃ§Â½Â®Ã¦â€°â‚¬Ã¦Å“â€°Ã©â€¦ÂÃ§Â½Â®Ã¯Â¼Ë†Ã¤Â¸ÂÃ¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°\n3) Ã¦Â¸â€¦Ã©â„¢Â¤Ã¥â€¦Â¨Ã©Æ’Â¨Ã¨Â®Â¾Ã§Â½Â®Ã¯Â¼Ë†Ã¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°", "Three reset modes are available:\n1) Reset appearance only\n2) Reset all settings (keep appearance)\n3) Wipe everything (including appearance)" },
    { "Ã¦Å½Â¨Ã¨ÂÂÃ¥â€¦Ë†Ã¤Â½Â¿Ã§â€Â¨Ã¢â‚¬Å“Ã¤Â»â€¦Ã©â€¡ÂÃ§Â½Â®Ã¥Â¤â€“Ã¨Â§â€šÃ¨Â®Â¾Ã§Â½Â®Ã¢â‚¬ÂÃ¯Â¼Å¡Ã¥ÂÂªÃ©â€¡ÂÃ§Â½Â®Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡/Ã¦ÂÅ¸Ã§Å Â¶Ã¦ÂÂ¡/Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶/Ã¦â€“â€¡Ã¥Â­â€”Ã¥â€¦Â¬Ã¥â€˜Å Ã¤Â¸Å½Ã©Â¢Å“Ã¨â€°Â²Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š\nÃ¢â‚¬Å“Ã©â€¡ÂÃ§Â½Â®Ã¦â€°â‚¬Ã¦Å“â€°Ã©â€¦ÂÃ§Â½Â®Ã¯Â¼Ë†Ã¤Â¸ÂÃ¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°Ã¢â‚¬ÂÃ¤Â¼Å¡Ã¦Â¸â€¦Ã§Â©ÂºÃ©â‚¬Å¡Ã§â€Â¨Ã¨Â®Â¾Ã§Â½Â®Ã£â‚¬ÂÃ¨Â¯Â­Ã©Å¸Â³Ã©â€¦ÂÃ§Â½Â®Ã£â‚¬ÂÃ¦Å â‚¬Ã¨Æ’Â½Ã©â€¦ÂÃ§Â½Â®Ã¤Â¸Å½Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¨Â®Â¾Ã§Â½Â®Ã¯Â¼Å’Ã¤Â½â€ Ã¤Â¿ÂÃ§â€¢â„¢Ã¥Â¤â€“Ã¨Â§â€šÃ£â‚¬â€š\nÃ¢â‚¬Å“Ã¦Â¸â€¦Ã©â„¢Â¤Ã¥â€¦Â¨Ã©Æ’Â¨Ã¨Â®Â¾Ã§Â½Â®Ã¢â‚¬ÂÃ¤Â¼Å¡Ã¦Å Å  EXBoss Ã§Å¡â€žÃ¥â€¦Â¨Ã©Æ’Â¨Ã©â€¦ÂÃ§Â½Â®Ã©Æ’Â½Ã¦ÂÂ¢Ã¥Â¤ÂÃ¥Ë†Â°Ã¥Ë†ÂÃ¥Â§â€¹Ã§Å Â¶Ã¦â‚¬ÂÃ£â‚¬â€š", "Recommended first option: \"Reset appearance only\". This only resets timer bars, bun bars, countdowns, flash text, and color schemes.\n\"Reset all settings (keep appearance)\" clears general settings, voice settings, spell settings, and timeline settings, while keeping appearance.\n\"Wipe everything\" restores every EXBoss setting to its initial state." },
    { "Ã¤Â»â€¦Ã©â€¡ÂÃ§Â½Â®Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡/Ã¦ÂÅ¸Ã§Å Â¶Ã¦ÂÂ¡/Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶/Ã¦â€“â€¡Ã¥Â­â€”Ã¥â€¦Â¬Ã¥â€˜Å Ã§Å¡â€žÃ¥Â¤â€“Ã¨Â§â€šÃ¦Â Â·Ã¥Â¼ÂÃ¯Â¼Å’Ã¤Â¸ÂÃ¥Ë†Â Ã©â„¢Â¤Ã¦Â³â€¢Ã¦Å“Â¯Ã©â€¦ÂÃ§Â½Â®Ã£â‚¬â€šÃ¦ËœÂ¯Ã¥ÂÂ¦Ã§Â»Â§Ã§Â»Â­Ã¯Â¼Å¸", "Only resets the appearance of timer bars, bun bars, countdowns, and flash text. Spell configuration is kept. Continue?" },
    { "Ã¥Â°â€ Ã¦Â¸â€¦Ã§Â©Âº EXBoss Ã§Å¡â€žÃ©â‚¬Å¡Ã§â€Â¨Ã¨Â®Â¾Ã§Â½Â®Ã£â‚¬ÂÃ¨Â¯Â­Ã©Å¸Â³Ã©â€¦ÂÃ§Â½Â®Ã£â‚¬ÂÃ¦Å â‚¬Ã¨Æ’Â½Ã©â€¦ÂÃ§Â½Â®Ã¤Â¸Å½Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¨Â®Â¾Ã§Â½Â®Ã¯Â¼Å’Ã¤Â½â€ Ã¤Â¿ÂÃ§â€¢â„¢Ã¥Â¤â€“Ã¨Â§â€šÃ¦Â Â·Ã¥Â¼ÂÃ£â‚¬â€š|r\nÃ§Â¡Â®Ã¨Â®Â¤Ã§Â»Â§Ã§Â»Â­Ã¯Â¼Å¸", "This clears EXBoss general settings, voice settings, spell settings, and timeline settings, while keeping appearance styles.|r\nContinue?" },
    { "Ã¥ÂÂ±Ã©â„¢Â©Ã¯Â¼Å¡Ã¥Â°â€ Ã¦Â¸â€¦Ã§Â©Âº EXBoss Ã§Å¡â€žÃ¥â€¦Â¨Ã©Æ’Â¨Ã¨Â®Â¾Ã§Â½Â®Ã¯Â¼Ë†Ã¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°Ã¥Â¹Â¶Ã©â€¡ÂÃ¨Â½Â½Ã£â‚¬â€šÃ¦Â­Â¤Ã¦â€œÂÃ¤Â½Å“Ã¤Â¸ÂÃ¥ÂÂ¯Ã¦â€™Â¤Ã©â€â‚¬Ã£â‚¬â€š|r\nÃ§Â¡Â®Ã¨Â®Â¤Ã§Â»Â§Ã§Â»Â­Ã¯Â¼Å¸", "Danger: this wipes every EXBoss setting, including appearance, and reloads the UI. This cannot be undone.|r\nContinue?" },
    { "Ã§Â¡Â®Ã¥Â®Å¡Ã©â€¡ÂÃ§Â½Â®", "Confirm Reset" },
    { "Ã§Â¡Â®Ã¥Â®Å¡Ã¦Â¸â€¦Ã§Â©Âº", "Confirm Wipe" },
    { "Ã¦ËœÂ¯Ã¥ÂÂ¦Ã©â‚¬â‚¬Ã¥â€¡ÂºÃ§Â¼â€“Ã¨Â¾â€˜Ã¦Â¨Â¡Ã¥Â¼ÂÃ¯Â¼Å¸", "Exit Edit Mode?" },
    { "Ã§Â¡Â®Ã¥Â®Å¡", "OK" },
    { "Ã¦Â§Â½Ã¤Â½ÂÃ§Â®Â¡Ã§Ââ€ ", "Slot Management" },
    { "Ã¥Â¤â€“Ã¨Â§â€šSettings", "appearance settings" },
    { "ResetÃ¥Â¤â€“Ã¨Â§â€šSettings", "reset appearance settings" },
    { "Ã¤Â»â€¦ResetÃ¥Â¤â€“Ã¨Â§â€šSettings", "Reset Appearance Only" },
    { "ResetÃ¦â€°â‚¬Ã¦Å“â€°Ã©â€¦ÂÃ§Â½Â®Ã¯Â¼Ë†Ã¤Â¸ÂÃ¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°", "Reset All Settings (Keep Appearance)" },
    { "Ã¦Â¸â€¦Ã©â„¢Â¤Ã¥â€¦Â¨Ã©Æ’Â¨SettingsÃ¯Â¼Ë†Ã¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°", "Wipe Everything (Including Appearance)" },
    { "Ã¦Å“ÂªÃ§Å¸Â¥Ã¨ÂÅ’Ã¨Â´Â£", "Unknown Role" },
    { "Ã¥ÂÂ¦Ã¥â€¦â€¹", "Tank" },
    { "Ã¦Â²Â»Ã§â€“â€”", "Healer" },
    { "Ã¦Å“ÂªÃ§Å¸Â¥", "Unknown" },
}

TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â‚¬â€°Ã¦â€¹Â©Ã¦â€“Â¹Ã¦Â¡Ë†", "Select Profile" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â§Â½Ã¤Â½ÂÃ¯Â¼Å¡", "Slot:" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼Å¡", "Profile:" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¦â€“Â¹Ã¦Â¡Ë†", "Raid Profiles" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â±Â³Ã¦â€“Â¹Ã¦Â¡Ë†", "Mythic+ Profiles" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â‚¬â€°Ã¦â€¹Â©Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Select Voice Pack" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Current Voice Pack" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¤Â½Â¿Ã§â€Â¨Ã¤Â¸Â­", "Active" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â¼ÂºÃ¥Â°â€˜Ã¨Â¯Â­Ã©Å¸Â³", "Missing Labels" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â®â‚¬Ã¤Â»â€¹", "Description" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â½Å“Ã¨â‚¬â€¦", "Author" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§â€°Ë†Ã¦Å“Â¬", "Version" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â·Â¦Ã¤Â¾Â§Ã©â‚¬â€°Ã¦â€¹Â©Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¥ÂÂ³Ã¤Â¾Â§Ã¦Å’â€°Ã¥â€ºÂ¢Ã¦Å“Â¬ / Ã¥Â¤Â§Ã§Â±Â³Ã©â€¦ÂÃ§Â½Â®Ã¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "Choose a Voice Pack on the left, then configure Raid / Mythic+ Author Profiles on the right." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å’â€° 6 Ã¤Â¸ÂªÃ¨ÂÅ’Ã¨Â´Â£Ã¦Â§Â½Ã¤Â½ÂÃ©â‚¬â€°Ã¦â€¹Â©Ã¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼â€ºÃ¥â€°Â¯Ã¦Å“Â¬Ã©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žÃ¥â€ºÂ¢Ã¦Å“Â¬ / Ã¥Â¤Â§Ã§Â±Â³Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "Choose author profiles for the 6 role slots. The Dungeons page automatically writes the matching Raid / Mythic+ profile for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å’â€° 6 Ã¤Â¸ÂªÃ¨ÂÅ’Ã¨Â´Â£Ã¦Â§Â½Ã¤Â½ÂÃ©â‚¬â€°Ã¦â€¹Â© Author ProfileÃ¯Â¼â€ºDungeons Ã©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žÃ¥â€ºÂ¢Ã¦Å“Â¬ / Mythic+ ProfileÃ£â‚¬â€š", "Choose author profiles for the 6 role slots. The Dungeons page automatically writes the matching Raid / Mythic+ profile for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã£â‚¬â€š", "Automatically used when entering raids with the current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥Ã¥Â¤Â§Ã§Â±Â³Ã¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã£â‚¬â€š", "Automatically used when entering Mythic+ with the current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "6 Ã¦Â§Â½Ã¤Â½ÂÃ¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã¥Â·Â²Ã¦Å½Â¥Ã¥â€¦Â¥Ã¯Â¼Å’Ã¥â€°Â¯Ã¦Å“Â¬Ã©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "6 author profile slots are active. The Dungeons page automatically writes the matching profile for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "6 Ã¦Â§Â½Ã¤Â½Â Author Profile Ã¥Â·Â²Ã¦Å½Â¥Ã¥â€¦Â¥Ã¯Â¼Å’Dungeons Ã©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€ ProfileÃ£â‚¬â€š", "6 author profile slots are active. The Dungeons page automatically writes the matching profile for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ÂÂÃ§Â¤ÂºÃ¯Â¼Å¡Ã¥Â½â€œÃ¥â€°ÂÃ¦ËœÂ¯Ã¤Â»â‚¬Ã¤Â¹Ë†Ã¨ÂÅ’Ã¨Â´Â£Ã¯Â¼Å’Ã¥Â°Â±Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã¥Â¹Â¶Ã§Â¼â€“Ã¨Â¾â€˜Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žÃ¥â€ºÂ¢Ã¦Å“Â¬/Ã¥Â¤Â§Ã§Â±Â³Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "Tip: the addon automatically uses and edits the matching Raid / Mythic+ profile for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¤Â»â€¦Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥Â·Â²Ã¥Ë†â€ Ã©â€¦ÂÃ¥Ë†Â° 6 Ã¤Â¸ÂªÃ¦Â§Â½Ã¤Â½ÂÃ§Å¡â€žÃ¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "This area only shows the profiles currently assigned to the 6 slots." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â­Ã©Å¸Â³ / Ã©â€¦ÂÃ§Â½Â®Ã©Â¡ÂµÃ©ÂÂ¢Ã¤Â¾ÂÃ¨Âµâ€“ ExwindTools.UIÃ¯Â¼Å’Ã¥Â½â€œÃ¥â€°ÂÃ¦Å“ÂªÃ¥Â°Â±Ã§Â»ÂªÃ£â‚¬â€šÃ¨Â¯Â·Ã§Â¡Â®Ã¨Â®Â¤ ExwindCore Ã¥Â·Â²Ã¦Â­Â£Ã§Â¡Â®Ã¥Å Â Ã¨Â½Â½Ã¥ÂÅ½Ã©â€¡ÂÃ¥Â¼â‚¬Ã©ÂÂ¢Ã¦ÂÂ¿Ã£â‚¬â€š", "The Voice / Profiles page depends on ExwindTools.UI, which is not ready yet. Make sure ExwindCore loaded correctly, then reopen the panel." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "VOICE / PROFILE", "VOICE / PROFILES" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Timer BarÃ¦â€°â‚¬Ã¦Å“â€°Ã¥Â¤â€“Ã¨Â§â€šÃ§Å¡â€žSettings", "Settings for the full appearance of the timer bars." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡Ã¦â€°â‚¬Ã¦Å“â€°Ã¥Â¤â€“Ã¨Â§â€šÃ§Å¡â€žÃ¨Â®Â¾Ã§Â½Â®", "Settings for the full appearance of the timer bars." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂºÃ¥Â®Å¡TimelineÃ¦â‚¬Â»Ã¨Â§Ë†", "Fixed Timeline Overview" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¨Â½Â´Ã¦â‚¬Â»Ã¨Â§Ë†", "Fixed Timeline Overview" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å’â€°Ã©Â¦â€“Ã©Â¢â€ Ã¦Å¸Â¥Ã§Å“â€¹Ã¥â€ºÂºÃ¥Â®Å¡Ã¨Â½Â´Ã¦Å â‚¬Ã¨Æ’Â½Ã¥Å“Â¨Ã¥â€°Â 3 Ã¥Ë†â€ Ã©â€™Å¸Ã¥â€ â€¦Ã§Å¡â€žÃ¥â€¡ÂºÃ§Å½Â°Ã¨Å â€šÃ§â€šÂ¹Ã¯Â¼Å’Ã¤Â¾Â¿Ã¤ÂºÅ½Ã¥Â¿Â«Ã©â‚¬Å¸Ã¦Â Â¡Ã¥Â¯Â¹TimelineÃ¨Å â€šÃ¥Â¥ÂÃ£â‚¬â€š", "Review fixed-timeline spell markers in the first 3 minutes for each boss so you can quickly verify the timeline pacing." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å’â€°Ã©Â¦â€“Ã©Â¢â€ Ã¦Å¸Â¥Ã§Å“â€¹Ã¥â€ºÂºÃ¥Â®Å¡Ã¨Â½Â´Ã¦Å â‚¬Ã¨Æ’Â½Ã¥Å“Â¨Ã¥â€°Â 3 Ã¥Ë†â€ Ã©â€™Å¸Ã¥â€ â€¦Ã§Å¡â€žÃ¥â€¡ÂºÃ§Å½Â°Ã¨Å â€šÃ§â€šÂ¹Ã¯Â¼Å’Ã¤Â¾Â¿Ã¤ÂºÅ½Ã¥Â¿Â«Ã©â‚¬Å¸Ã¦Â Â¡Ã¥Â¯Â¹Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¨Å â€šÃ¥Â¥ÂÃ£â‚¬â€š", "Review fixed-timeline spell markers in the first 3 minutes for each boss so you can quickly verify the timeline pacing." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¨Â½Â´Ã©Â¦â€“Ã©Â¢â€ ", "Fixed Bosses" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å â‚¬Ã¨Æ’Â½Ã¦â‚¬Â»Ã¦â€¢Â°", "Total Skills" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â±Â³Ã¥ÂÂ¦Ã¥â€¦â€¹", "Mythic+ Tank" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â±Â³DPS", "Mythic+ DPS" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â±Â³Ã¦Â²Â»Ã§â€“â€”", "Mythic+ Healer" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "EnableÃ¦Å’â€¡Ã§Â¤ÂºÃ¥â„¢Â¨", "Enable Indicator" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¾Ã¥Â½Â¢Ã¦Â Â·Ã¥Â¼Â", "Shape Style" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â·ÂÃ§Â¦Â»Ã¥Ë†Â¤Ã¥Â®Å¡Ã¦Â³â€¢Ã¦Å“Â¯(ID)", "Range Check Spell (ID)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â»ËœÃ¨Â®Â¤: Ã¤Â¸â€œÃ§Â²Â¾Ã©Â¢â€žÃ¨Â®Â¾", "Default: spec preset" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â§Â¦Ã¥Ââ€˜Ã¥Å“ÂºÃ¦â„¢Â¯", "Visibility Rules" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Ë†ËœÃ¦â€“â€”Ã¤Â¸Â­Ã¦ËœÂ¾Ã§Â¤Âº", "Show in Combat" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Ë†ËœÃ¦â€“â€”Ã¥Â¤â€“Ã¦ËœÂ¾Ã§Â¤Âº", "Show out of Combat" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â»â€¦Ã¥â€°Â¯Ã¦Å“Â¬Ã¥â€ â€¦", "Only in Dungeons" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¸â€œÃ§Â²Â¾Ã¨Â¿â€¡Ã¦Â»Â¤ (Ã¤Â»â€¦Ã¥Å“Â¨Ã¥â€¹Â¾Ã©â‚¬â€°Ã§Å¡â€žÃ¤Â¸â€œÃ§Â²Â¾Ã¤Â¸â€¹Ã¥ÂÂ¯Ã§â€Â¨)", "Spec Filter (only enabled for checked specs)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¾ÂÃ©â„¢â€žÃ§â€ºÂ®Ã¦Â â€¡", "Attach To" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¾ÂÃ©â„¢â€žÃ¥Ë†Â°Ã§â€ºÂ®Ã¦Â â€¡Ã¦Â¡â€ Ã¦Å¾Â¶Ã§Å¡â€ž", "Attach to Target Frame" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¸ÂÃ¥ÂÂ¸Ã©â„¢â€ž", "Do Not Attach" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã¨â€žÅ¡Ã¤Â¸â€“Ã§â€¢Å’Ã©Â¢â€˜Ã©Ââ€œ", "World Channel" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "[Ã¦â€”Â Ã¥Â¹Â¿Ã¥â€˜Å ]Ã¦Â­Â£Ã¥Å“Â¨Ã¦â€“Â½Ã¦â€Â¾%link , Ã¥â€¡â€ Ã¥Â¤â€¡Ã¤Â¼Â Ã©â‚¬ÂÃ¥Ë†Â°\"%name\"", "[No spam] Casting %link, preparing to teleport to \"%name\"" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦â€“Â½Ã¦Â³â€¢Ã¥Â¼â‚¬Ã¥Â§â€¹", "Cast Start" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦â€“Â½Ã¦Â³â€¢Ã¦Ë†ÂÃ¥Å Å¸", "Cast Success" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¸Å Ã¦â€“Â¹", "Above" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¸â€¹Ã¦â€“Â¹", "Below" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â»â€ Ã¦ÂÂÃ¨Â¾Â¹", "Thin" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â²â€”Ã¦ÂÂÃ¨Â¾Â¹", "Thick" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦â€”Â Ã©â€Â¯Ã©Â½Â¿", "Monochrome" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Ë†â€˜Ã¦Â²Â¡Ã¦Å“â€°Ã©â€”Âª (%t)", "No Blink (%t)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Ë†â€˜Ã¦Â²Â¡Ã¦Å“â€°Ã©â€”Âª(%t)", "No Blink (%t)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â²Â¡Ã¦Å“â€°Ã¥Â½Â±Ã¦Â­Â¥ (%t)", "No Shadowstep (%t)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â²Â¡Ã¦Å“â€°Ã§Ë†ÂªÃ©â€™Â© (%t)", "No Grappling Hook (%t)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Ë†â€˜Ã¦Â²Â¡Ã¦Å“â€°Ã©â€”Âª", "No Blink" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â‚¬â€°Ã¦â€¹Â©Ã¨Â¦ÂÃ§Â¼â€“Ã¨Â¾â€˜Ã§Å¡â€žÃ¨Â¡Å’", "Select Row to Edit" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¸Â»Ã¥Â±Å¾Ã¦â‚¬Â§", "Primary Stat" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥Å“ÂºÃ¦â„¢Â¯", "Show Scenes" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "DungeonsÃ¥â€ â€¦", "In Dungeons" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Enable This RowÃ¤Â¸Â»Ã¥Â±Å¾Ã¦â‚¬Â§", "Enable This Row: Primary Stat" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Value Ã¥Â¯Â¹Ã©Â½Â", "Value Alignment" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "CENTER:Ã¥Â±â€¦Ã¤Â¸Â­", "CENTER: Center" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "LEFT:Ã¥Â·Â¦Ã¥Â¯Â¹Ã©Â½Â", "LEFT: Align Left" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "RIGHT:Ã¥ÂÂ³Ã¥Â¯Â¹Ã©Â½Â", "RIGHT: Align Right" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Å½Â©Ã¥Â®Â¶Ã¨Â§â€™Ã¨â€°Â²Ã¥Â®Å¡Ã¤Â½ÂÃ¦Â â€¡Ã¨Â®Â°", "Player Position Marker" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¼ËœÃ¥â€¦Ë†Ã¥Å Â Ã¨Â½Â½Ã¦Å“Â¬Ã¥Å“Â°Ã¦ÂÂÃ¨Â´Â¨(PNG).Ã¨â€¹Â¥Ã¦â€“â€¡Ã¤Â»Â¶Ã§Â¼ÂºÃ¥Â¤Â±, Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ºÅ¾Ã©â‚¬â‚¬Ã¥Ë†Â°Ã§ÂºÂ¯Ã¤Â»Â£Ã§Â ÂÃ§Â»ËœÃ¥â€ºÂ¾Ã¦Â¨Â¡Ã¥Â¼Â.", "Loads local PNG textures first. If the files are missing, it automatically falls back to the pure code-drawn mode." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â·ÂÃ§Â¦Â»Ã§â€ºâ€˜Ã¦Å½Â§", "Range Check" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¨Â¶â€¦Ã¥â€¡ÂºÃ¨Â·ÂÃ§Â¦Â»Ã¦â€”Â¶Ã¥â€ºÂ¾Ã¦Â â€¡Ã¥ÂËœÃ¨â€°Â² (Ã§Â©Âº=Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã¤Â¸â€œÃ§Â²Â¾Ã©Â¢â€žÃ¨Â®Â¾)", "Changes the marker color when the target moves out of range (blank = automatically uses the spec preset)." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¨Â¶â€¦Ã¥â€¡ÂºÃ¨Â·ÂÃ§Â¦Â»Ã¦â€”Â¶Ã¥â€ºÂ¾Ã¦Â â€¡Ã¥ÂËœÃ¨â€°Â²Ã¯Â¼Ë†Ã§Â©Âº=Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã¤Â¸â€œÃ§Â²Â¾Ã©Â¢â€žÃ¨Â®Â¾Ã¯Â¼â€°", "Changes the marker color when the target moves out of range (blank = automatically uses the spec preset)." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¨Â¶â€¦Ã¥â€¡ÂºÃ¨Â·ÂÃ§Â¦Â»Ã¦â€”Â¶ Ã¥â€ºÂ¾Ã¦Â â€¡Ã¥ÂËœÃ¨â€°Â²Ã¯Â¼Ë†Ã§Â©Âº=Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã¤Â¸â€œÃ§Â²Â¾Ã©Â¢â€žÃ¨Â®Â¾Ã¯Â¼â€°", "Changes the marker color when the target moves out of range (blank = automatically uses the spec preset)." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦ÂÂ¡Ã¤Â»Â¶", "Visibility Rules" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â­Â£Ã¥Â¸Â¸Color", "Normal Color" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¶â€¦Ã¨Â·ÂColor", "Out-of-Range Color" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Ë†ËœÃ¦â€“â€”Ã¤Â¸Â­Ã¦ËœÂ¾Ã§Â¤Âº,Ã¦Ë†ËœÃ¦â€“â€”Ã¥Â¤â€“Ã¦ËœÂ¾Ã§Â¤Âº,Ã¤Â»â€¦DungeonsÃ¥â€ â€¦", "Show in Combat, Show out of Combat, Only in Dungeons" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¸â€œÃ§Â²Â¾Ã¨Â¿â€¡Ã¦Â»Â¤ (Ã¤Â»â€¦Ã¥Å“Â¨Ã¥â€¹Â¾Ã©â‚¬â€°Ã§Å¡â€žÃ¤Â¸â€œÃ§Â²Â¾Ã¤Â¸â€¹Enable)", "Spec Filter (only enabled for checked specs)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â­Â¦Ã©â„¢Â¢", "EcoD" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â£Å½Ã¨Â¡Å’", "Dawn" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦â€°Â§Ã¦â€Â¿", "Seat" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â‚¬Å¡Ã¥Â¤Â©", "Sky" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â©Ã¨Â¡â€”", "Streets" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Å¡ÂÃ¤Â¿Â®", "Priory" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â Â´Ã¦â„¢Â¨", "Dawn" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â­â€Ã¥Â¯Â¼", "MT" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â®ÂÃ¥â€ºÂ¾", "Gambit" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨ÂÂ¨Ã©Å¡â€ ", "POS" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÅ¾Ã¥â€œÂ", "Echoes" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â´Å¾Ã§ÂªÅ¸", "AraK" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§â€Å¸Ã¦â‚¬Â", "EcoD" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Å â€šÃ§â€šÂ¹", "Flood" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â°Â´Ã©â€”Â¸", "Floodgate" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Current Voice Pack" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â·Ã©â‚¬â€°Ã¦â€¹Â©...", "Select..." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â®â‚¬Ã¤Â»â€¹", "Description" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â½Å“Ã¨â‚¬â€¦", "Author" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§â€°Ë†Ã¦Å“Â¬", "Version" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¤Â½Â¿Ã§â€Â¨Ã¤Â¸Â­", "Active" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â·Â¦Ã¤Â¾Â§Select Voice Pack, Ã¥ÂÂ³Ã¤Â¾Â§Ã¦Å’â€°Raid / Mythic+Ã©â€¦ÂÃ§Â½Â® Author Profile.", "Select a Voice Pack on the left, then configure Raid / Mythic+ Author Profiles on the right." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å’â€° 6 Ã¤Â¸ÂªÃ¨ÂÅ’Ã¨Â´Â£Ã¦Â§Â½Ã¤Â½ÂÃ©â‚¬â€°Ã¦â€¹Â©Author ProfileÃ¯Â¼â€ºDungeonsÃ©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žRaid / Mythic+ Profiles.", "Choose Author Profiles for the 6 role slots; the Dungeons page automatically writes the matching Raid / Mythic+ Profiles for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥RaidÃ¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨.", "Automatically used when entering a Raid with the current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥Mythic+Ã¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨.", "Automatically used when entering Mythic+ with the current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "6 Ã¦Â§Â½Ã¤Â½ÂAuthor ProfileÃ¥Â·Â²Ã¦Å½Â¥Ã¥â€¦Â¥Ã¯Â¼Å’DungeonsÃ©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žRaid / Mythic+ Profile.", "6 Author Profile slots are active. The Dungeons page automatically writes the matching Raid / Mythic+ Profile for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£:", "Current role:" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Alert: Ã¥Â½â€œÃ¥â€°ÂÃ¦ËœÂ¯Ã¤Â»â‚¬Ã¤Â¹Ë†Ã¨ÂÅ’Ã¨Â´Â£Ã¯Â¼Å’Ã¥Â°Â±Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã¥Â¹Â¶Ã§Â¼â€“Ã¨Â¾â€˜Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žRaid/Mythic+ Profiles.", "Alert: the current role automatically selects and edits the matching Raid / Mythic+ Profiles." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¦â€ Ã§â€ºâ€“Ã¥Â¸Â¸Ã¨Â§ÂBossÃ¤Â¸Å½Mythic+Voicelabels, Ã¦Â â€¡Ã¥â€¡â€ Ã¥Ââ€šÃ¨â‚¬Æ’Ã¥Â®Å¾Ã§Å½Â°.", "Covers common Boss and Mythic+ voice labels with the standard reference implementation." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¦â€ Ã§â€ºâ€“Ã¥Â¸Â¸Ã¨Â§ÂBossÃ¤Â¸Å½Mythic+VoicelabelsÃ¯Â¼Å’Ã¦Â â€¡Ã¥â€¡â€ Ã¥Ââ€šÃ¨â‚¬Æ’Ã¥Â®Å¾Ã§Å½Â°.", "Covers common Boss and Mythic+ voice labels with the standard reference implementation." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â¼ÂºÃ¥Â°â€˜Ã¨Â¯Â­Ã©Å¸Â³Ã¯Â¼Å¡", "Missing Labels: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â·Â²Ã¨Â¦â€ Ã§â€ºâ€“Ã©Â»ËœÃ¨Â®Â¤Ã¨Â¯Â­Ã©Å¸Â³Ã¦Â â€¡Ã§Â­Â¾", "Covers all default voice labels" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "6 Ã¦Â§Â½Ã¤Â½ÂAuthor ProfileÃ¥Â·Â²Ã¦Å½Â¥Ã¥â€¦Â¥Ã¯Â¼Å’Dungeons pageÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žRaid / Mythic+ Profile.", "6 author profile slots are active. The Dungeons page automatically writes the matching Raid / Mythic+ profile for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â»ËœÃ¨Â®Â¤Ã¤Â»â€¦Ã¦ËœÂ¾Ã§Â¤ÂºÃ©ÂÅ¾Ã¥â€ºÂ¢Ã¦Å“Â¬", "default = non-raid only" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â·Â²Ã¦Â³Â¨Ã¥â€ Å’BOSS: 0  |  Ã¥Â·Â²Ã¦Â³Â¨Ã¥â€ Å’Ã¤Âºâ€¹Ã¤Â»Â¶: 0", "Registered Bosses: 0  |  Registered Events: 0" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å¡â€šÃ¦â€”Â Ã¥Â·Â²Ã¦Â³Â¨Ã¥â€ Å’BOSS", "No registered bosses" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©ÂÅ¾Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¥Â·Â²Ã¦Â³Â¨Ã¥â€ Å’BOSS", "Non-raid registered bosses" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©ÂÅ¾Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¤Âºâ€¹Ã¤Â»Â¶", "Non-raid events" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â§Â¦Ã¥Ââ€˜Ã¥â„¢Â¨Ã¤Âºâ€¹Ã¤Â»Â¶", "Trigger events" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å“ÂªÃ¥Å’Â¹Ã©â€¦ÂBOSSÃ¤Âºâ€¹Ã¤Â»Â¶", "Unmatched boss events" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¥Â·Â²Ã¨Â¿â€¡Ã¦Â»Â¤", "Raid filtered" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å“â‚¬Ã¨Â¿â€˜Ã¥Ë†Â·Ã¦â€“Â°", "Last Refresh" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å“â‚¬Ã¨Â¿â€˜Ã©â€â„¢Ã¨Â¯Â¯", "Last error" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â½Å“Ã§â€Â¨Ã¥Å¸Å¸", "Scope" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å“ÂªÃ§Å¸Â¥Ã¥â€°Â¯Ã¦Å“Â¬", "Unknown Dungeon" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å“ÂªÃ§Å¸Â¥Ã©Â¦â€“Ã©Â¢â€ ", "Unknown Boss" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¥Â¯Â¹Ã¨Â±Â¡Ã¦Â²Â¡Ã¦Å“â€°Ã§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯Ã¦Â³â€¢Ã¦Å“Â¯Ã£â‚¬â€š", "The selected target has no private-aura spells." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â·Ã©â‚¬â€°Ã¦â€¹Â©Ã¥Â·Â¦Ã¤Â¾Â§Ã¤Â¸â‚¬Ã¤Â¸ÂªÃ§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯Ã¥Â¯Â¹Ã¨Â±Â¡", "Select a private-aura target on the left." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¹Ã¨Â±Â¡Ã¥Ë†â€”Ã¨Â¡Â¨", "Target List" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã©Â¦â€“Ã©Â¢â€ Ã¦Ë†Ëœ  |  encounterID:%s  |  Ã¦Â³â€¢Ã¦Å“Â¯Ã¦â€¢Â°:%d", "Raid Encounter  |  encounterID:%s  |  Spells:%d" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â§ËœÃ¥Â¢Æ’Ã¥â€°Â¯Ã¦Å“Â¬  |  Ã¦Â³â€¢Ã¦Å“Â¯Ã¦â€¢Â°:%d  |  BOSSÃ§Â»â€ž:%d  |  Ã¥Â°ÂÃ¦â‚¬ÂªÃ¦Â³â€¢Ã¦Å“Â¯:%d", "Mythic+ Dungeon  |  Spells:%d  |  Boss Groups:%d  |  Trash Spells:%d" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â°ÂÃ¦â‚¬Âª", "Trash" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€¦Â±%dÃ¤Â¸ÂªÃ§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯Ã¦Â³â€¢Ã¦Å“Â¯", "%d private-aura spells total" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¨Â®Â¾Ã§Â½Â®", "Countdown Settings" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å â‚¬Ã¨Æ’Â½Ã©Â¢â€žÃ¨Â­Â¦Ã¦â€”Â¶Ã¥Å“Â¨Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®Ã¦ËœÂ¾Ã§Â¤Âº5Ã§Â§â€™Ã¥â‚¬â€™Ã¦â€¢Â°Ã¦â€“â€¡Ã¥Â­â€”Ã£â‚¬â€š", "Shows a 5-second countdown in the center of the screen for incoming spell alerts." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â¨Â¡Ã¦ÂÂ¿", "Format" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â¨Â¡Ã¦ÂÂ¿Ã¯Â¼Ë†|cff00ff00%s|r=Ã¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂ  |cffffd100%t|r=Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”Ã¯Â¼â€°", "Format (|cff00ff00%s|r = spell name  |cffffd100%t|r = countdown number)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ÂÂÃ§Â¤ÂºÃ¦â€“â€¡Ã¥Â­â€”Ã¥Â­â€”Ã¤Â½â€œÃ¯Â¼Ë†%sÃ¯Â¼â€°", "Alert Text Font (%s)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”Ã¥Â­â€”Ã¤Â½â€œÃ¯Â¼Ë†%tÃ¯Â¼â€°", "Countdown Number Font (%t)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Ë†â€¡Ã¦ÂÂ¢Ã§Â¼â€“Ã¨Â¾â€˜Ã¦Â¨Â¡Ã¥Â¼ÂÃ©Â¢â€žÃ¨Â§Ë†", "Toggle Edit-Mode Preview" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Âµâ€¹Ã¨Â¯â€¢Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶", "Test Countdown" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥ÂÂ¦Ã¥â€¦â€¹Ã¥Â°â€“Ã¥Ë†Âº", "Tank Buster" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â€¦ÂÃ§Â½Â®Ã¥ÂÂÃ¯Â¼Å¡", "Profile Name: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¨â‚¬â€¦Ã¯Â¼Å¡", "Exporter: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦â€”Â¶Ã©â€”Â´Ã¯Â¼Å¡", "Time: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤â€¡Ã¦Â³Â¨Ã¯Â¼Å¡", "Notes: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼Å¡", "Appearance: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â±Â³Ã©â€¦ÂÃ§Â½Â®Ã¯Â¼Å¡", "Mythic+ Profiles: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã©â€¦ÂÃ§Â½Â®Ã¯Â¼Å¡", "Raid Profiles: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¥ÂÂ¦Ã¥â€¦â€¹", "Raid Tank" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¢Ã¦Å“Â¬DPS", "Raid DPS" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¦Â²Â»Ã§â€“â€”", "Raid Healer" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â±Â³Ã¥ÂÂ¦Ã¥â€¦â€¹", "Mythic+ Tank" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â±Â³DPS", "Mythic+ DPS" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â±Â³Ã¦Â²Â»Ã§â€“â€”", "Mythic+ Healer" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â¡Â®Ã¨Â®Â¤Ã¥Ë†Â Ã©â„¢Â¤Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼Å¡", "Delete profile: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Ë†Â Ã©â„¢Â¤", "Delete" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€¦Â¨Ã©â‚¬â€°Ã¥Â¤ÂÃ¥Ë†Â¶", "Select All" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€¦Â³Ã©â€”Â­", "Close" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â·Â²Ã¥Â¤ÂÃ¥Ë†Â¶Ã¥Ë†Â°Ã¥â€°ÂªÃ¨Â´Â´Ã¦ÂÂ¿", "Copied to clipboard" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â·Ã¨â€¡Â³Ã¥Â°â€˜Ã¥â€¹Â¾Ã©â‚¬â€°Ã¤Â¸â‚¬Ã©Â¡Â¹Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¥â€ â€¦Ã¥Â®Â¹", "Select at least one export item." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â·Ã¨â€¡Â³Ã¥Â°â€˜Ã¥â€¹Â¾Ã©â‚¬â€°Ã¤Â¸â‚¬Ã©Â¡Â¹Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¥â€ â€¦Ã¥Â®Â¹", "Select at least one import item." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â·Ã¥â€¦Ë†Ã§â€šÂ¹Ã¥â€¡Â»[Ã¨Â§Â£Ã¦Å¾Â]Ã¦Å’â€°Ã©â€™Â®", "Click [Parse] first." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¨Â½Â´Ã©Â¦â€“Ã©Â¢â€ : %d  |  Ã¦Å â‚¬Ã¨Æ’Â½Ã¦â‚¬Â»Ã¦â€¢Â°: %d  |  Ã§Âªâ€”Ã¥ÂÂ£: %s", "Fixed Bosses: %d  |  Total Skills: %d  |  Window: %s" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "encounter:%d  |  Ã¦Å â‚¬Ã¨Æ’Â½:%d  |  Ã¨Å â€šÃ§â€šÂ¹:%d", "encounter:%d  |  Skills:%d  |  Markers:%d" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¨Â½Â´Ã©Â¦â€“Ã©Â¢â€ : 0", "Fixed Bosses: 0" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â¦â€“Ã¨Â½Â®>3:00", "First cast > 3:00" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â³â€¢Ã¦Å“Â¯ ", "Spell " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { " Ã¦Â¬Â¡", "x" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â‚¬Å¡Ã§â€Â¨Ã©Â¢Å“Ã¨â€°Â²Ã¦â€“Â¹Ã¦Â¡Ë†", "General Color Schemes" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€¦Â¨Ã¥Â±â‚¬Ã¦ÂÂ¡Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦Â¨Â¡Ã¥Â¼Â", "Global Bar Display Mode" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦Â¨Â¡Ã¥Â¼Â", "Display Mode" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥ÂÂ¯Ã§â€Â¨Ã¥Â¤Â§Ã§Â§ËœÃ¥Â¢Æ’Ã©Â¦â€“Ã©Â¢â€ Ã¦ÂÂÃ§Â¤Âº", "Enable Mythic+ Boss Alerts" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥ÂÂ¯Ã§â€Â¨Ã¥â€ºÂ¢Ã¦Å“Â¬Ã©Â¦â€“Ã©Â¢â€ Ã¦ÂÂÃ§Â¤Âº", "Enable Raid Boss Alerts" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â¦â€“Ã©Â¢â€ Ã¦Ë†ËœÃ¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€¦Â³Ã©â€”Â­Ã¦Ë†ËœÃ¦â€“â€”Ã©Å¸Â³Ã©Â¢â€˜Ã©Â¢â€žÃ¨Â­Â¦", "Mute Combat Audio Alerts During Boss Fights" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¼â‚¬Ã¥ÂÂ¯Ã¤Â¸Â­Ã¥Â¤Â®Ã¦â€“â€¡Ã¥Â­â€”Ã©Â¢â€žÃ¨Â­Â¦Ã¯Â¼Ë†Ã¦Â³Â¨Ã¦â€žÂÃ¯Â¼Å¡Ã¥Â¦â€šÃ¦Å¾Å“Ã¥â€¦Â³Ã©â€”Â­Ã¤Â¼Å¡Ã¥Â¯Â¼Ã¨â€¡Â´Ã¨Â¯Â­Ã©Å¸Â³Ã¤Â¸ÂÃ¥Â·Â¥Ã¤Â½Å“Ã¯Â¼â€°", "Enable Blizzard Center-Screen Warnings (required for voice alerts)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€¦Â³Ã©â€”Â­Ã¦Å¡Â´Ã©â€ºÂªÃ¥Å½Å¸Ã§â€Å¸Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡", "Disable Blizzard Encounter Timeline" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å½Â§Ã¥Ë†Â¶Ã¥â€¦Â¨Ã¥Â±â‚¬Ã¦ËœÂ¾Ã§Â¤ÂºÃ¯Â¼Å¡Ã¤Â»â€¦Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡ / Ã¤Â»â€¦Ã¦ÂÅ¸Ã§Å Â¶Ã¦ÂÂ¡ / Ã¤Â¸Â¤Ã¨â‚¬â€¦Ã©Æ’Â½Ã¥ÂÂ¯Ã§â€Â¨ / Ã¤Â¸Â¤Ã¨â‚¬â€¦Ã©Æ’Â½Ã©Å¡ÂÃ¨â€”ÂÃ£â‚¬â€š\nÃ¥ÂÂ¯Ã¥Ââ€¢Ã§â€¹Â¬Ã¥â€¦Â³Ã©â€”Â­Ã¥Â¤Â§Ã§Â§ËœÃ¥Â¢Æ’Ã¦Ë†â€“Ã¥â€ºÂ¢Ã¦Å“Â¬Ã©Â¦â€“Ã©Â¢â€ Ã¦ÂÂÃ§Â¤ÂºÃ¯Â¼â€ºÃ¥â€¦Â³Ã©â€”Â­Ã¥ÂÅ½Ã¥Â°â€ Ã¦â€¢Â´Ã¤Â½â€œÃ§Â¦ÂÃ§â€Â¨Ã¨Â¯Â¥Ã¥Å“ÂºÃ¦â„¢Â¯Ã§Å¡â€ž Boss Ã¨Â®Â¡Ã¦â€”Â¶Ã£â‚¬ÂÃ¤Â¸Â­Ã¥Â¤Â®Ã¦â€“â€¡Ã¥Â­â€”Ã£â‚¬ÂÃ¨Â¯Â­Ã©Å¸Â³Ã¤Â¸Å½Ã©Â¢Å“Ã¨â€°Â²Ã¨Â¦â€ Ã§â€ºâ€“Ã£â‚¬â€š\nÃ¥ÂÂ¯Ã©â‚¬â€°Ã¯Â¼Å¡Ã©Â¦â€“Ã©Â¢â€ Ã¦Ë†ËœÃ¤Â¸Â­Ã¨â€¡ÂªÃ¥Å Â¨Ã¥Â°â€ Ã¦Ë†ËœÃ¦â€“â€”Ã©Å¸Â³Ã©Â¢â€˜Ã©Â¢â€žÃ¨Â­Â¦Ã¥Ë†â€ Ã§Â±Â»Ã©Å¸Â³Ã©â€¡ÂÃ©Ââ„¢Ã©Å¸Â³Ã¯Â¼Ë†0Ã¯Â¼â€°Ã¯Â¼Å’Ã¨â€žÂ±Ã¦Ë†ËœÃ¦ÂÂ¢Ã¥Â¤ÂÃ¥Å½Å¸Ã¥â‚¬Â¼Ã£â‚¬â€š", "Controls the global display mode: Timer Bar only / Bun Bar only / both enabled / both hidden.\nYou can disable Mythic+ or Raid boss alerts separately; doing so disables Boss timers, center text, voice, and color overlays for that scene.\nOptional: mute Combat Audio Alert category volume during boss fights and restore it after combat." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€¦Â¨Ã¥Â±â‚¬Ã¨Â¯Â­Ã©Å¸Â³Ã¨Â¾â€œÃ¥â€¡Âº", "Global Voice Output" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¾â€œÃ¥â€¡ÂºÃ©â‚¬Å¡Ã©Ââ€œ", "Audio Channel" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€¦Â¨Ã¥Â±â‚¬Ã©Å¸Â³Ã©â€¡Â", "Global Volume" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¾Â·Ã©Â²ÂÃ¤Â¼Å ", "Druid" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¹Â³Ã¨Â¡Â¡", "Balance" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â³â€¢Ã¥Â¸Ë†", "Mage" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§â€ºâ€”Ã¨Â´Â¼", "Rogue" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â½Å“Ã¨Â¡Å’Ã¨â‚¬â€¦", "Rogue" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "[NoneÃ¥Â¹Â¿Ã¥â€˜Å ]", "[No spam]" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "[Ã¦â€”Â Ã¥Â¹Â¿Ã¥â€˜Å ]", "[No spam]" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂÃ§Â§Â°Ã§Â¤ÂºÃ¤Â¾â€¹", "Spell Name Example" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å â‚¬Ã¨Æ’Â½Ã§Â¤ÂºÃ¤Â¾â€¹ ", "Skill Example " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Âµâ€¹Ã¨Â¯â€¢Ã¦Å â‚¬Ã¨Æ’Â½ ", "Test Skill " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â¢â€žÃ¨Â§Ë†Ã¦Å â‚¬Ã¨Æ’Â½ ", "Preview Skill " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Âµâ€¹Ã¨Â¯â€¢Ã¦â€“Â½Ã¦Â³â€¢ ", "Test Cast " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥ÂÂ¦Ã¥â€¦â€¹Ã¥Â°â€“Ã¥Ë†Âº", "Tank Buster" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â°Â±Ã§Â»Âª", "Ready" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â·Â¦Ã¤Â¾Â§Select Voice Pack, Ã¥ÂÂ³Ã¤Â¾Â§Ã¦Å’â€°Raid / Mythic+Ã©â€¦ÂÃ§Â½Â® Author Profile.", "Choose a Voice Pack on the left, then configure Raid / Mythic+ Author Profiles on the right." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â·Â¦Ã¤Â¾Â§Ã¦Å’â€°Select Voice Pack, Ã¥ÂÂ³Ã¤Â¾Â§Ã¦Å’â€°Raid / Mythic+Ã©â€¦ÂÃ§Â½Â® Author Profile.", "Choose a Voice Pack on the left, then configure Raid / Mythic+ Author Profiles on the right." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å’â€° 6 Ã¤Â¸ÂªÃ¨ÂÅ’Ã¨Â´Â£Ã¦Â§Â½Ã¤Â½ÂÃ©â‚¬â€°Ã¦â€¹Â©Author ProfileÃ¯Â¼â€ºDungeons pageÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žRaid / Mythic+ Profiles.", "Choose author profiles for the 6 role slots; the Dungeons page writes the matching Raid / Mythic+ profiles automatically for the current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å’â€° 6 Ã¤Â¸ÂªÃ¨ÂÅ’Ã¨Â´Â£Ã¦Â§Â½Ã¤Â½ÂÃ©â‚¬â€°Ã¦â€¹Â©Author ProfileÃ¯Â¼â€ºDungeons pageÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žRaid / Mythic+ Profile.", "Choose author profiles for the 6 role slots; the Dungeons page writes the matching Raid / Mythic+ profile automatically for the current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥RaidÃ¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã£â‚¬â€š", "Automatically used when entering raids with the current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥Mythic+Ã¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã£â‚¬â€š", "Automatically used when entering Mythic+ with the current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "6 Ã¦Â§Â½Ã¤Â½ÂAuthor ProfileÃ¥Â·Â²Ã¦Å½Â¥Ã¥â€¦Â¥Ã¯Â¼Å’Dungeons pageÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žRaid / Mythic+ Profile.", "6 author profile slots are active. The Dungeons page automatically writes the matching Raid / Mythic+ profile for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "6 Ã¦Â§Â½Ã¤Â½ÂAuthor ProfileÃ¥Â·Â²Ã¦Å½Â¥Ã¥â€¦Â¥Ã¯Â¼Å’Dungeons pageÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žRaid / Mythic+ Profiles.", "6 author profile slots are active. The Dungeons page automatically writes the matching Raid / Mythic+ profiles for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Alert: Ã¥Â½â€œÃ¥â€°ÂÃ¦ËœÂ¯Ã¤Â»â‚¬Ã¤Â¹Ë†Ã¨ÂÅ’Ã¨Â´Â£Ã¯Â¼Å’Ã¥Â°Â±Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã¥Â¹Â¶Ã§Â¼â€“Ã¨Â¾â€˜Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žRaid/Mythic+ Profiles.", "Alert: your current role automatically selects and edits the matching Raid / Mythic+ profiles." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "EXBoss Ã¥Â®ËœÃ¦â€“Â¹Ã©Â»ËœÃ¨Â®Â¤Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Official EXBoss default voice pack" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¦â€ Ã§â€ºâ€“Ã¥Â¸Â¸Ã¨Â§ÂBossÃ¤Â¸Å½Mythic+VoicelabelsÃ¯Â¼Å’Ã¦Â â€¡Ã¥â€¡â€ Ã¥Ââ€šÃ¨â‚¬Æ’Ã¥Â®Å¾Ã§Å½Â°Ã£â‚¬â€š", "Covers standard raid and Mythic+ voice labels." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¦â€ Ã§â€ºâ€“Ã¥Â¸Â¸Ã¨Â§ÂÃ©Â¦â€“Ã©Â¢â€ Ã¤Â¸Å½Ã¥Â¤Â§Ã§Â§ËœÃ¥Â¢Æ’Ã¨Â¯Â­Ã©Å¸Â³Ã¦Â â€¡Ã§Â­Â¾Ã¯Â¼Å’Ã¦Â â€¡Ã¥â€¡â€ Ã¥Ââ€šÃ¨â‚¬Æ’Ã¥Â®Å¾Ã§Å½Â°Ã£â‚¬â€š", "Covers standard raid and Mythic+ voice labels." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¸Â­Ã¦â€“â€¡Ã©â€¦ÂÃ©Å¸Â³Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Chinese voice pack" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¿ËœÃ¥Â¿Â§Ã¦â„¢Â¯Ã¤Â¹â€¦Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¦Â â€¡Ã§Â­Â¾Ã¤Â¸Å½Ã©Â»ËœÃ¨Â®Â¤Ã¥Å’â€¦Ã¥â€¦Â¼Ã¥Â®Â¹Ã¯Â¼Å’Ã¥ÂÂ¯Ã§â€ºÂ´Ã¦Å½Â¥Ã¦â€ºÂ¿Ã¦ÂÂ¢Ã¥â€¦Â¨Ã¥Â±â‚¬Ã¨Â¯Â­Ã©Å¸Â³Ã£â‚¬â€š", "Wangyou Jingjiu voice pack. Compatible with the default label set and usable as a global replacement." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â¡Â¾Ã¨Â¡Â£Ã¨Â¡Â¿Ã¥Â°â€˜Ã¥Â¥Â³Ã©Å¸Â³Ã§â€°Ë†Ã¦Å“Â¬Ã¯Â¼Å’Ã¤Â¿ÂÃ§â€¢â„¢Ã¥ÂÅ’Ã¤Â¸â‚¬Ã¥Â¥â€”Ã¦Â â€¡Ã§Â­Â¾Ã§Â»â€œÃ¦Å¾â€žÃ¯Â¼Å’Ã¤Â¾Â¿Ã¤ÂºÅ½Ã§Â»Å¸Ã¤Â¸â‚¬Ã¥Ë†â€¡Ã¦ÂÂ¢Ã£â‚¬â€š", "Guyijin girl-voice pack. Keeps the same label set for easy switching." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â¡Â¾Ã¨Â¡Â£Ã¨Â¡Â¿Ã¥Â¾Â¡Ã¥Â§ÂÃ©Å¸Â³Ã§â€°Ë†Ã¦Å“Â¬Ã¯Â¼Å’Ã¤Â¿ÂÃ¦Å’ÂÃ¦Â â€¡Ã§Â­Â¾Ã¥â€¦Â¼Ã¥Â®Â¹Ã¯Â¼Å’Ã©â‚¬â€šÃ©â€¦ÂÃ§Å½Â°Ã¦Å“â€°Ã¥â€°Â¯Ã¦Å“Â¬Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "Guyijin lady-voice pack. Keeps label compatibility with existing dungeon profiles." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Kele Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¦Â â€¡Ã§Â­Â¾Ã¥â€¦Â¼Ã¥Â®Â¹Ã©Â»ËœÃ¨Â®Â¤Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼Å’Ã¥ÂÂ¯Ã§â€ºÂ´Ã¦Å½Â¥Ã§â€Â¨Ã¤ÂºÅ½Ã¥â€°Â¯Ã¦Å“Â¬Ã©â€¦ÂÃ§Â½Â®Ã£â‚¬â€š", "Kele voice pack. Compatible with the default labels and ready for dungeon profiles." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤ÂÃ¤Â¸â‚¬Ã¥ÂÂ¯Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¤Â¿ÂÃ¦Å’ÂÃ¦Â â€¡Ã¥â€¡â€ Ã¦Â â€¡Ã§Â­Â¾Ã¥â€¦Â¼Ã¥Â®Â¹Ã¯Â¼Å’Ã¥ÂÂ¯Ã§â€ºÂ´Ã¦Å½Â¥Ã¥Ë†â€¡Ã¦ÂÂ¢Ã¤Â½Â¿Ã§â€Â¨Ã£â‚¬â€š", "Xiayike voice pack. Compatible with the standard label set and ready to use." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§â€žÂ¶Ã§â€žÂ¶Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¥Å’â€¦Ã¥ÂÂ«Ã¦Â â€¡Ã¥â€¡â€ Ã¦Â â€¡Ã§Â­Â¾Ã¤Â¸Å½Ã¥â‚¬â€™Ã¦â€¢Â°Ã¨Â¯Â­Ã©Å¸Â³Ã£â‚¬â€š", "Ranran voice pack with standard labels and countdown voice lines." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â³â€“Ã§Â³â€“Ã©â€¦Â±Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¦Â â€¡Ã§Â­Â¾Ã§Â»â€œÃ¦Å¾â€žÃ¤Â¸Å½Ã©Â»ËœÃ¨Â®Â¤Ã¥Å’â€¦Ã¥â€¦Â¼Ã¥Â®Â¹Ã£â‚¬â€š", "Tangtangjiang voice pack. Compatible with the default label structure." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â°ÂÃ§Â¾Å  Yagi Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¥Å’â€¦Ã¥ÂÂ«Ã¦Â â€¡Ã¥â€¡â€ Ã¦Â â€¡Ã§Â­Â¾Ã¤Â¸Å½Ã¥â‚¬â€™Ã¦â€¢Â°Ã¨Â¯Â­Ã©Å¸Â³Ã£â‚¬â€š", "Yagi voice pack with standard labels and countdown voice lines." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â½Â Ã¥Â¥Â½Ã§â€°â€ºÃ¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¦ÂÂ¥Ã¦ÂºÂÃ§â€ºÂ®Ã¥Â½â€¢Ã¤Â¸ÂºÃ§â€°â€ºÃ¥Â¸Ë†Ã¥â€šâ€¦Ã¯Â¼Å’Ã¥Å’â€¦Ã¥ÂÂ«Ã¦Â â€¡Ã¥â€¡â€ Ã¦Â â€¡Ã§Â­Â¾Ã¤Â¸Å½Ã¥â‚¬â€™Ã¦â€¢Â°Ã¨Â¯Â­Ã©Å¸Â³Ã£â‚¬â€š", "Niuniu voice pack with standard labels and countdown voice lines." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â»Â«Ã©â€ºÂ¶Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¤Â½Â¿Ã§â€Â¨Ã¦Â â€¡Ã¥â€¡â€ Ã¦Â â€¡Ã§Â­Â¾Ã§Â»â€œÃ¦Å¾â€žÃ¯Â¼Å’Ã¥â€¦Â¼Ã¥Â®Â¹Ã©Â»ËœÃ¨Â®Â¤Ã¥Å’â€¦Ã©â€¦ÂÃ§Â½Â®Ã£â‚¬â€š", "Ayarei voice pack using the standard label structure and default-profile compatibility." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Å“Â²Ã©Å“Â²Ã§Â·Â¹Ã¥Â©Â­Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¦Â â€¡Ã§Â­Â¾Ã§Â»â€œÃ¦Å¾â€žÃ¤Â¸Å½Ã©Â»ËœÃ¨Â®Â¤Ã¥Å’â€¦Ã¥â€¦Â¼Ã¥Â®Â¹Ã£â‚¬â€š", "Ruru Tia voice pack. Compatible with the default label structure." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¯Â¼Å¡", "Current role: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "6 Ã¦Â§Â½Ã¤Â½ÂÃ¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã¥Â·Â²Ã¦Å½Â¥Ã¥â€¦Â¥Ã¯Â¼Å’Ã¥â€°Â¯Ã¦Å“Â¬Ã©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "6 author profile slots are active. The dungeon page automatically writes the matching profile for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â¼ÂºÃ¥Â°â€˜Ã¨Â¯Â­Ã©Å¸Â³Ã¯Â¼Å¡", "Missing Labels: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â·Â²Ã¨Â¦â€ Ã§â€ºâ€“Ã©Â»ËœÃ¨Â®Â¤Ã¨Â¯Â­Ã©Å¸Â³Ã¦Â â€¡Ã§Â­Â¾", "Covers all default voice labels" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â â€¡Ã§Â­Â¾Ã§â€ºÂ®Ã¥Â½â€¢Ã¦Å“ÂªÃ¥Å Â Ã¨Â½Â½", "Label catalog not loaded" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â½Â½Ã¥â€¦Â¥Settings", "Load Settings" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¼â‚¬Ã¥ÂÂ¯Ã¦Å¡Â´Ã©â€ºÂªÃ¤Â¸Â­Ã¥Â¤Â®TextÃ©Â¢â€žÃ¨Â­Â¦Ã¯Â¼Ë†Ã¦Â³Â¨Ã¦â€žÂ:Ã¥Â¦â€šÃ¦Å¾Å“CloseÃ¤Â¼Å¡Ã¥Â¯Â¼Ã¨â€¡Â´VoiceÃ¤Â¸ÂÃ¥Â·Â¥Ã¤Â½Å“Ã¯Â¼â€°", "Enable Blizzard center-screen warnings (required for voice alerts)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¼â‚¬Ã¥ÂÂ¯Ã¦Å¡Â´Ã©â€ºÂªÃ¤Â¸Â­Ã¥Â¤Â®TextÃ©Â¢â€žÃ¨Â­Â¦(Ã¦Â³Â¨Ã¦â€žÂ:Ã¥Â¦â€šÃ¦Å¾Å“CloseÃ¤Â¼Å¡Ã¥Â¯Â¼Ã¨â€¡Â´VoiceÃ¤Â¸ÂÃ¥Â·Â¥Ã¤Â½Å“)", "Enable Blizzard center-screen warnings (required for voice alerts)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¦Ë†ÂÃ¥Å Å¸", "Export Successful" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¥Â¤Â±Ã¨Â´Â¥Ã¯Â¼Å¡", "Export failed: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¦Â¨Â¡Ã¥Ââ€”Ã¦Å“ÂªÃ¥Å Â Ã¨Â½Â½", "Import / export module not loaded" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â·Ã¨â€¡Â³Ã¥Â°â€˜Ã¥â€¹Â¾Ã©â‚¬â€°Ã¤Â¸â‚¬Ã©Â¡Â¹Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¥â€ â€¦Ã¥Â®Â¹", "Select at least one export option." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â·Ã¥â€¦Ë†Ã§Â²ËœÃ¨Â´Â´Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¥Â­â€”Ã§Â¬Â¦Ã¤Â¸Â²", "Please paste an export string first." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â§Â£Ã¦Å¾ÂÃ¥Â¤Â±Ã¨Â´Â¥Ã¯Â¼Å¡", "Parse failed: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¨â‚¬â€¦Ã¯Â¼Å¡", "Exporter: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦â€”Â¶Ã©â€”Â´Ã¯Â¼Å¡", "Time: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤â€¡Ã¦Â³Â¨Ã¯Â¼Å¡", "Notes: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼Å¡", "Appearance: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Å’â€¦Ã¥ÂÂ«", "Included" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦â€”Â ", "None" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â±Â³Ã©â€¦ÂÃ§Â½Â®Ã¯Â¼Å¡", "Mythic+ Profiles: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã©â€¦ÂÃ§Â½Â®Ã¯Â¼Å¡", "Raid Profiles: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â§Â£Ã¦Å¾ÂÃ¦Ë†ÂÃ¥Å Å¸Ã¯Â¼Å’Ã©â‚¬â€°Ã¦â€¹Â©Ã¨Â¦ÂÃ¥Â¯Â¼Ã¥â€¦Â¥Ã§Å¡â€žÃ¥â€ â€¦Ã¥Â®Â¹Ã¥ÂÅ½Ã§â€šÂ¹Ã¥â€¡Â»[Ã¦â€°Â§Ã¨Â¡Å’Ã¥Â¯Â¼Ã¥â€¦Â¥]", "Parse successful. Select what to import, then click [Run Import]." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â·Ã¥â€¦Ë†Ã§â€šÂ¹Ã¥â€¡Â»[Ã¨Â§Â£Ã¦Å¾Â]Ã¦Å’â€°Ã©â€™Â®", "Click [Parse] first." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â·Ã¨â€¡Â³Ã¥Â°â€˜Ã¥â€¹Â¾Ã©â‚¬â€°Ã¤Â¸â‚¬Ã©Â¡Â¹Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¥â€ â€¦Ã¥Â®Â¹", "Select at least one import option." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¦Ë†ÂÃ¥Å Å¸Ã¯Â¼Å¡", "Import successful: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¥Â¤Â±Ã¨Â´Â¥Ã¯Â¼Å¡", "Import failed: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â¡Â®Ã¨Â®Â¤Ã¥Ë†Â Ã©â„¢Â¤Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼Å¡", "Delete profile: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â€¦ÂÃ§Â½Â®Ã¥ÂÂÃ§Â§Â°", "Profile Name" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å“ÂªÃ¥â€˜Â½Ã¥ÂÂÃ©â€¦ÂÃ§Â½Â®", "Untitled Profile" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤â€¡Ã¦Â³Â¨Ã¯Â¼Ë†Ã¥ÂÂ¯Ã©â‚¬â€°Ã¯Â¼â€°", "Notes (Optional)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤â€¡Ã¦Â³Â¨(Ã¥ÂÂ¯Ã©â‚¬â€°)", "Notes (Optional)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¥â€ â€¦Ã¥Â®Â¹", "Export Contents" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤â€“Ã¨Â§â€šÃ¨Â®Â¾Ã§Â½Â®Ã¯Â¼Ë†Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡Ã¥Â¤â€“Ã¨Â§â€šÃ§Â­â€°Ã¯Â¼â€°", "Appearance Settings (Timer Bar Style, etc.)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤â€“Ã¨Â§â€šSettings(Timer Bar AppearanceÃ§Â­â€°)", "Appearance Settings (Timer Bar Appearance, etc.)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤â€“Ã¨Â§â€šSettingsÃ¯Â¼Ë†Timer Bar AppearanceÃ§Â­â€°Ã¯Â¼â€°", "Appearance Settings (Timer Bar Appearance, etc.)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¼Ã¥â€¡Âº", "Export" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¼Ã¥â€¦Â¥", "Import" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â²ËœÃ¨Â´Â´Ã¥Â¯Â¼Ã¥â€¡ÂºÃ¥Â­â€”Ã§Â¬Â¦Ã¤Â¸Â²", "Paste Export String" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â§Â£Ã¦Å¾Â", "Parse" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¥â€ â€¦Ã¥Â®Â¹", "Import Contents" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¥Â¤â€“Ã¨Â§â€šÃ¨Â®Â¾Ã§Â½Â®Ã¯Â¼Ë†Ã§Â«â€¹Ã¥ÂÂ³Ã¥Âºâ€Ã§â€Â¨Ã¯Â¼â€°", "Import Appearance Settings (Apply Immediately)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ImportÃ¥Â¤â€“Ã¨Â§â€šSettings(Ã§Â«â€¹Ã¥ÂÂ³Ã¥Âºâ€Ã§â€Â¨)", "Import Appearance Settings (Apply Immediately)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ImportÃ¥Â¤â€“Ã¨Â§â€šSettingsÃ¯Â¼Ë†Ã§Â«â€¹Ã¥ÂÂ³Ã¥Âºâ€Ã§â€Â¨Ã¯Â¼â€°", "Import Appearance Settings (Apply Immediately)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¯Â¼Ã¥â€¦Â¥Ã¤Â½Å“Ã¨â‚¬â€¦Ã¥ÂÂÃ¯Â¼Ë†Ã§â€¢â„¢Ã§Â©ÂºÃ¥Ë†â„¢Ã¤Â½Â¿Ã§â€Â¨Ã©â€¦ÂÃ§Â½Â®Ã¥ÂÂÃ¯Â¼â€°", "Imported Author Name (blank = profile name)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ImportAuthorÃ¥ÂÂ(Ã§â€¢â„¢Ã§Â©ÂºÃ¥Ë†â„¢Ã¤Â½Â¿Ã§â€Â¨Ã©â€¦ÂÃ§Â½Â®Ã¥ÂÂ)", "Imported Author Name (blank = profile name)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ImportAuthorÃ¥ÂÂÃ¯Â¼Ë†Ã§â€¢â„¢Ã§Â©ÂºÃ¥Ë†â„¢Ã¤Â½Â¿Ã§â€Â¨Ã©â€¦ÂÃ§Â½Â®Ã¥ÂÂÃ¯Â¼â€°", "Imported Author Name (blank = profile name)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦â€°Â§Ã¨Â¡Å’Ã¥Â¯Â¼Ã¥â€¦Â¥", "Run Import" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â‚¬â€°Ã¦â€¹Â©Ã¦â€“Â¹Ã¦Â¡Ë†", "Select Profile" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â­Â¤Ã¥Å’ÂºÃ¥Å¸Å¸Ã¥ÂÂªÃ¥Â±â€¢Ã§Â¤ÂºÃ¥Â½â€œÃ¥â€°Â 6 Ã¤Â¸ÂªÃ¦Â§Â½Ã¤Â½ÂÃ¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žÃ¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "This area only shows the profiles currently assigned to the 6 slots." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â­Â¤Ã¥Å’ÂºÃ¥Å¸Å¸Ã¥ÂÂªÃ¥Â±â€¢Ã§Â¤ÂºÃ¥Â½â€œÃ¥â€°Â 6 Ã¤Â¸ÂªÃ¦Â§Â½Ã¤Â½ÂÃ¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žAuthor Profile.", "This area only shows the Author Profiles currently assigned to the 6 slots." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â§Â½Ã¤Â½ÂÃ¯Â¼Å¡", "Slot: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼Å¡", "Profile: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Author Profile:", "Profile:" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã©Â¢â€žÃ¨Â§Ë†", "Fixed Timeline Preview" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¦â‚¬Â»Ã¨Â§Ë†", "Fixed Timeline Overview" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å’â€°Ã©Â¦â€“Ã©Â¢â€ Ã¦Å¸Â¥Ã§Å“â€¹Ã¥â€ºÂºÃ¥Â®Å¡Ã¨Â½Â´Ã¦Å â‚¬Ã¨Æ’Â½Ã¥Å“Â¨Ã¥â€°Â 3 Ã¥Ë†â€ Ã©â€™Å¸Ã¥â€ â€¦Ã§Å¡â€žÃ¥â€¡ÂºÃ§Å½Â°Ã¨Å â€šÃ§â€šÂ¹Ã¯Â¼Å’Ã¤Â¾Â¿Ã¤ÂºÅ½Ã¥Â¿Â«Ã©â‚¬Å¸Ã¦Â Â¡Ã¥Â¯Â¹Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¨Å â€šÃ¥Â¥ÂÃ£â‚¬â€š", "Review when fixed-timeline skills occur during the first 3 minutes of each boss fight." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â·Ã©â‚¬â€°Ã¦â€¹Â©Ã¥Â·Â¦Ã¤Â¾Â§Ã©Â¦â€“Ã©Â¢â€ Ã¦Å¸Â¥Ã§Å“â€¹ 3 Ã¥Ë†â€ Ã©â€™Å¸Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã£â‚¬â€š", "Select a boss on the left to view the 3-minute timeline." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å â‚¬Ã¨Æ’Â½:", "Skills: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "3Ã¥Ë†â€ Ã©â€™Å¸Ã¨Å â€šÃ§â€šÂ¹:", "3-Minute Markers: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¨Â½Â´Ã©Â¦â€“Ã©Â¢â€ :", "Fixed Bosses: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å â‚¬Ã¨Æ’Â½Ã¦â‚¬Â»Ã¦â€¢Â°:", "Total Skills: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Âªâ€”Ã¥ÂÂ£:", "Window: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Å â€šÃ§â€šÂ¹:", "Markers: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â¦â€“Ã©Â¢â€ Ã¥Ë†â€”Ã¨Â¡Â¨", "Boss List" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å¡â€šÃ¦â€”Â Ã¥â€ºÂºÃ¥Â®Å¡Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¦â€¢Â°Ã¦ÂÂ®", "No fixed timeline data available." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å¡â€šÃ¦â€”Â Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¨Å â€šÃ§â€šÂ¹", "No timeline markers available." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Ë†Â·Ã¦â€“Â°", "Refresh" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å â‚¬Ã¨Æ’Â½ ", "Skill " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å“ÂªÃ¥â€˜Â½Ã¥ÂÂÃ¦Å â‚¬Ã¨Æ’Â½", "Unnamed Skill" }

TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¢Ã¢â‚¬â€Ã‚Â ÃƒÂ¥Ã‚Â½Ã¢â‚¬Å“ÃƒÂ¥Ã¢â‚¬Â°Ã‚ÂÃƒÂ¤Ã‚Â½Ã‚Â¿ÃƒÂ§Ã¢â‚¬ÂÃ‚Â¨ÃƒÂ¤Ã‚Â¸Ã‚Â­", "Active" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã‚Â½Ã¢â‚¬Å“ÃƒÂ¥Ã¢â‚¬Â°Ã‚ÂÃƒÂ¤Ã‚Â½Ã‚Â¿ÃƒÂ§Ã¢â‚¬ÂÃ‚Â¨ÃƒÂ¤Ã‚Â¸Ã‚Â­", "Active" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã‚Â Ã¢â‚¬Â¡ÃƒÂ§Ã‚Â­Ã‚Â¾", "labels" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ©Ã¢â‚¬Â¦Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€ ", "Profile Slots" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã¢â‚¬Â¦Ã‚Â¨ÃƒÂ¥Ã‚Â±Ã¢â€šÂ¬ÃƒÂ¦Ã‹Å“Ã‚Â¾ÃƒÂ§Ã‚Â¤Ã‚ÂºÃƒÂ¦Ã‚Â¨Ã‚Â¡ÃƒÂ¥Ã‚Â¼Ã‚ÂÃƒÂ¤Ã‚Â¸Ã…Â½ÃƒÂ¨Ã‚Â¯Ã‚Â­ÃƒÂ©Ã…Â¸Ã‚Â³ÃƒÂ¨Ã‚Â¾Ã¢â‚¬Å“ÃƒÂ¥Ã¢â‚¬Â¡Ã‚ÂºÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡", "Global display mode and voice output." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "4ÃƒÂ¤Ã‚Â¸Ã‚ÂªÃƒÂ¥Ã¢â‚¬ÂºÃ‚ÂºÃƒÂ¥Ã‚Â®Ã…Â¡ÃƒÂ©Ã‚Â¢Ã…â€œÃƒÂ¨Ã¢â‚¬Â°Ã‚Â²ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€  + 1ÃƒÂ¤Ã‚Â¸Ã‚ÂªÃƒÂ¨Ã¢â‚¬Â¡Ã‚ÂªÃƒÂ¥Ã‚Â®Ã…Â¡ÃƒÂ¤Ã‚Â¹Ã¢â‚¬Â°ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€  + ÃƒÂ¦Ã…â€œÃ¢â€šÂ¬ÃƒÂ¥Ã‚Â¤Ã…Â¡3ÃƒÂ¤Ã‚Â¸Ã‚ÂªÃƒÂ©Ã‚Â¢Ã‚ÂÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€ ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡BossÃƒÂ¦Ã…Â Ã¢â€šÂ¬ÃƒÂ¨Ã†â€™Ã‚Â½ÃƒÂ©Ã‚Â¡Ã‚ÂµÃƒÂ¥Ã‚ÂÃ‚Â¯ÃƒÂ§Ã¢â‚¬ÂºÃ‚Â´ÃƒÂ¦Ã…Â½Ã‚Â¥ÃƒÂ©Ã¢â€šÂ¬Ã¢â‚¬Â°ÃƒÂ¦Ã¢â‚¬Â¹Ã‚Â©ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€ ÃƒÂ¦Ã‹â€ Ã¢â‚¬â€œÃƒÂ¨Ã¢â‚¬Â¡Ã‚ÂªÃƒÂ¥Ã‚Â®Ã…Â¡ÃƒÂ¤Ã‚Â¹Ã¢â‚¬Â°ÃƒÂ©Ã‚Â¢Ã…â€œÃƒÂ¨Ã¢â‚¬Â°Ã‚Â²ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡", "4 fixed color schemes + 1 custom scheme + up to 3 extra schemes. The Boss spell page can select a scheme directly or use custom colors." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "BossÃƒÂ¦Ã…Â Ã¢â€šÂ¬ÃƒÂ¨Ã†â€™Ã‚Â½ÃƒÂ©Ã‚Â¡Ã‚ÂµÃƒÂ©Ã‚ÂÃ‚Â¢ÃƒÂ¥Ã‚ÂÃ‚Â¯ÃƒÂ©Ã¢â€šÂ¬Ã¢â‚¬Â°ÃƒÂ¦Ã¢â‚¬Â¹Ã‚Â©ÃƒÂ¤Ã‚Â¸Ã¢â‚¬Â¹ÃƒÂ¥Ã‹â€ Ã¢â‚¬â€ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€ ÃƒÂ¯Ã‚Â¼Ã¢â‚¬ÂºÃƒÂ©Ã¢â€šÂ¬Ã¢â‚¬Â°ÃƒÂ¦Ã¢â‚¬Â¹Ã‚Â©ÃƒÂ¢Ã¢â€šÂ¬Ã…â€œÃƒÂ¨Ã¢â‚¬Â¡Ã‚ÂªÃƒÂ¥Ã‚Â®Ã…Â¡ÃƒÂ¤Ã‚Â¹Ã¢â‚¬Â°ÃƒÂ©Ã‚Â¢Ã…â€œÃƒÂ¨Ã¢â‚¬Â°Ã‚Â²ÃƒÂ¢Ã¢â€šÂ¬Ã‚ÂÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶ÃƒÂ¤Ã‚Â½Ã‚Â¿ÃƒÂ§Ã¢â‚¬ÂÃ‚Â¨ÃƒÂ¢Ã¢â€šÂ¬Ã…â€œÃƒÂ¨Ã¢â‚¬Â¡Ã‚ÂªÃƒÂ¥Ã‚Â®Ã…Â¡ÃƒÂ¤Ã‚Â¹Ã¢â‚¬Â°ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€ ÃƒÂ¢Ã¢â€šÂ¬Ã‚ÂÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡ÃƒÂ¥Ã¢â‚¬Â¹Ã‚Â¾ÃƒÂ©Ã¢â€šÂ¬Ã¢â‚¬Â°ÃƒÂ¥Ã‚ÂÃ‚Â¯ÃƒÂ§Ã¢â‚¬ÂÃ‚Â¨ÃƒÂ§Ã…Â¡Ã¢â‚¬Å¾ÃƒÂ©Ã‚Â¢Ã‚ÂÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€ ÃƒÂ¤Ã‚Â¼Ã…Â¡ÃƒÂ¥Ã¢â‚¬Â¡Ã‚ÂºÃƒÂ§Ã…Â½Ã‚Â°ÃƒÂ¥Ã…â€œÃ‚Â¨ÃƒÂ¦Ã…Â Ã¢â€šÂ¬ÃƒÂ¨Ã†â€™Ã‚Â½ÃƒÂ©Ã‚Â¡Ã‚ÂµÃƒÂ¤Ã‚Â¸Ã¢â‚¬Â¹ÃƒÂ¦Ã¢â‚¬Â¹Ã¢â‚¬Â°ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡", "The Boss spell page can use the schemes below. Selecting Custom Colors uses the Custom Scheme. Enabled extra schemes also appear in the spell-page dropdown." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¨Ã¢â‚¬Â¡Ã‚ÂªÃƒÂ¥Ã‚Â®Ã…Â¡ÃƒÂ¤Ã‚Â¹Ã¢â‚¬Â°ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€ ÃƒÂ¥Ã‚ÂÃ‚Â", "Custom Scheme Name" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¨Ã¢â‚¬Â¡Ã‚ÂªÃƒÂ¥Ã‚Â®Ã…Â¡ÃƒÂ¤Ã‚Â¹Ã¢â‚¬Â°ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€ ÃƒÂ©Ã‚Â¢Ã…â€œÃƒÂ¨Ã¢â‚¬Â°Ã‚Â²", "Custom Scheme Color" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ©Ã‚Â¢Ã‚ÂÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€ ÃƒÂ¯Ã‚Â¼Ã‹â€ ÃƒÂ¦Ã…â€œÃ¢â€šÂ¬ÃƒÂ¥Ã‚Â¤Ã…Â¡3ÃƒÂ¤Ã‚Â¸Ã‚ÂªÃƒÂ¯Ã‚Â¼Ã¢â‚¬Â°", "Extra Schemes (up to 3)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ©Ã‚Â¢Ã‚ÂÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€ 1", "Extra Scheme 1" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ©Ã‚Â¢Ã‚ÂÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€ 2", "Extra Scheme 2" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ©Ã‚Â¢Ã‚ÂÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€ 3", "Extra Scheme 3" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¤Ã‚Â¸Ã‚Â­ÃƒÂ¥Ã‚Â¤Ã‚Â®ÃƒÂ¥Ã¢â€šÂ¬Ã¢â‚¬â„¢ÃƒÂ¦Ã¢â‚¬Â¢Ã‚Â°ÃƒÂ¦Ã¢â‚¬â€œÃ¢â‚¬Â¡ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€ÃƒÂ¤Ã‚Â¸Ã…Â½ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€ÃƒÂ¤Ã‚Â½Ã¢â‚¬Å“ÃƒÂ£Ã¢â€šÂ¬Ã‚ÂÃƒÂ¤Ã‚Â½Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡", "Center countdown text, font and position." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¤Ã‚Â¸Ã‚Â­ÃƒÂ¥Ã‚Â¤Ã‚Â®ÃƒÂ¦Ã¢â‚¬â€œÃ¢â‚¬Â¡ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€ÃƒÂ¥Ã¢â‚¬Â¦Ã‚Â¬ÃƒÂ¥Ã¢â‚¬ËœÃ…Â ÃƒÂ¦Ã‚Â Ã‚Â·ÃƒÂ¥Ã‚Â¼Ã‚ÂÃƒÂ¤Ã‚Â¸Ã…Â½ÃƒÂ¤Ã‚Â½Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡", "Center text style and position." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã‚Â±Ã‚ÂÃƒÂ¥Ã‚Â¹Ã¢â‚¬Â¢ÃƒÂ¤Ã‚Â¸Ã‚Â­ÃƒÂ¥Ã‚Â¤Ã‚Â®ÃƒÂ¥Ã…â€œÃ¢â‚¬Â ÃƒÂ§Ã…Â½Ã‚Â¯ÃƒÂ¨Ã‚Â¿Ã¢â‚¬ÂºÃƒÂ¥Ã‚ÂºÃ‚Â¦ÃƒÂ¦Ã‚Â Ã‚Â·ÃƒÂ¥Ã‚Â¼Ã‚ÂÃƒÂ£Ã¢â€šÂ¬Ã‚ÂÃƒÂ¥Ã‚Â¤Ã‚Â§ÃƒÂ¥Ã‚Â°Ã‚ÂÃƒÂ£Ã¢â€šÂ¬Ã‚ÂÃƒÂ¤Ã‚Â½Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡", "Center-screen ring style, size and position." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã…Â¸Ã‚Â¥ÃƒÂ§Ã…â€œÃ¢â‚¬Â¹ÃƒÂ¥Ã‚Â½Ã¢â‚¬Å“ÃƒÂ¥Ã¢â‚¬Â°Ã‚ÂÃƒÂ¨Ã‚Â¯Ã‚Â­ÃƒÂ©Ã…Â¸Ã‚Â³ÃƒÂ¦Ã‚Â³Ã‚Â¨ÃƒÂ¥Ã¢â‚¬Â Ã…â€™ÃƒÂ§Ã‚Â»Ã¢â‚¬Â ÃƒÂ¨Ã…Â Ã¢â‚¬Å¡ÃƒÂ¯Ã‚Â¼Ã‹â€ ÃƒÂ©Ã‚Â»Ã‹Å“ÃƒÂ¨Ã‚Â®Ã‚Â¤ÃƒÂ¤Ã‚Â»Ã¢â‚¬Â¦ÃƒÂ¦Ã‹Å“Ã‚Â¾ÃƒÂ§Ã‚Â¤Ã‚ÂºÃƒÂ©Ã‚ÂÃ…Â¾ÃƒÂ¥Ã¢â‚¬ÂºÃ‚Â¢ÃƒÂ¦Ã…â€œÃ‚Â¬ÃƒÂ¯Ã‚Â¼Ã¢â‚¬Â°ÃƒÂ¯Ã‚Â¼Ã…Â¡ÃƒÂ¥Ã¢â‚¬Â°Ã‚Â¯ÃƒÂ¦Ã…â€œÃ‚Â¬ > BOSSÃƒÂ¥Ã‚ÂÃ‚ÂÃƒÂ§Ã‚Â§Ã‚Â°(ÃƒÂ¦Ã¢â‚¬Â¢Ã‚Â°ÃƒÂ©Ã¢â‚¬Â¡Ã‚Â) + eventID(trigger0/1/2)ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡", "Shows current voice registration details (default = non-raid only): Dungeon > Boss Name (count) + eventID(trigger0/1/2)." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ§Ã¢â‚¬ÂºÃ¢â‚¬ËœÃƒÂ¦Ã…Â½Ã‚Â§ÃƒÂ§Ã…Â½Ã‚Â©ÃƒÂ¥Ã‚Â®Ã‚Â¶ÃƒÂ¨Ã¢â‚¬Â¡Ã‚ÂªÃƒÂ¨Ã‚ÂºÃ‚Â«ÃƒÂ§Ã…Â¡Ã¢â‚¬Å¾3ÃƒÂ¤Ã‚Â¸Ã‚ÂªÃƒÂ§Ã‚Â§Ã‚ÂÃƒÂ¤Ã‚ÂºÃ‚ÂºÃƒÂ¥Ã¢â‚¬Â¦Ã¢â‚¬Â°ÃƒÂ§Ã…Â½Ã‚Â¯ÃƒÂ¦Ã‚Â§Ã‚Â½ÃƒÂ¤Ã‚Â½Ã‚ÂÃƒÂ¯Ã‚Â¼Ã…â€™ÃƒÂ¦Ã¢â‚¬ÂÃ‚Â¯ÃƒÂ¦Ã…â€™Ã‚ÂÃƒÂ¥Ã¢â‚¬ÂºÃ‚Â¾ÃƒÂ¦Ã‚Â Ã¢â‚¬Â¡ÃƒÂ¥Ã‚Â¤Ã‚Â§ÃƒÂ¥Ã‚Â°Ã‚ÂÃƒÂ£Ã¢â€šÂ¬Ã‚ÂÃƒÂ¤Ã‚Â½Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ£Ã¢â€šÂ¬Ã‚ÂÃƒÂ¥Ã¢â€šÂ¬Ã¢â‚¬â„¢ÃƒÂ¨Ã‚Â®Ã‚Â¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶ÃƒÂ£Ã¢â€šÂ¬Ã‚ÂÃƒÂ©Ã…Â¸Ã‚Â³ÃƒÂ¦Ã¢â‚¬Â¢Ã‹â€ ÃƒÂ§Ã‚Â­Ã¢â‚¬Â°ÃƒÂ©Ã¢â‚¬Â¦Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡", "Monitors the player's 3 private aura slots, including icon size, position, countdown and sound settings." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã‚ÂÃ‚ÂÃƒÂ¤Ã‚Â¾Ã¢â‚¬ÂºÃƒÂ¤Ã‚Â¸Ã¢â‚¬Â°ÃƒÂ§Ã‚Â§Ã‚ÂÃƒÂ©Ã¢â‚¬Â¡Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¥Ã‚Â¼Ã‚ÂÃƒÂ¯Ã‚Â¼Ã…Â¡\n1) ÃƒÂ¤Ã‚Â»Ã¢â‚¬Â¦ÃƒÂ©Ã¢â‚¬Â¡Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¨Ã‚Â§Ã¢â‚¬Å¡ÃƒÂ¨Ã‚Â®Ã‚Â¾ÃƒÂ§Ã‚Â½Ã‚Â®\n2) ÃƒÂ©Ã¢â‚¬Â¡Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¦Ã¢â‚¬Â°Ã¢â€šÂ¬ÃƒÂ¦Ã…â€œÃ¢â‚¬Â°ÃƒÂ©Ã¢â‚¬Â¦Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¯Ã‚Â¼Ã‹â€ ÃƒÂ¤Ã‚Â¸Ã‚ÂÃƒÂ¥Ã…â€™Ã¢â‚¬Â¦ÃƒÂ¥Ã‚ÂÃ‚Â«ÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¨Ã‚Â§Ã¢â‚¬Å¡ÃƒÂ¯Ã‚Â¼Ã¢â‚¬Â°\n3) ÃƒÂ¦Ã‚Â¸Ã¢â‚¬Â¦ÃƒÂ©Ã¢â€žÂ¢Ã‚Â¤ÃƒÂ¥Ã¢â‚¬Â¦Ã‚Â¨ÃƒÂ©Ã†â€™Ã‚Â¨ÃƒÂ¨Ã‚Â®Ã‚Â¾ÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¯Ã‚Â¼Ã‹â€ ÃƒÂ¥Ã…â€™Ã¢â‚¬Â¦ÃƒÂ¥Ã‚ÂÃ‚Â«ÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¨Ã‚Â§Ã¢â‚¬Å¡ÃƒÂ¯Ã‚Â¼Ã¢â‚¬Â°", "Provides three reset modes:\n1) Reset appearance only\n2) Reset all settings (keep appearance)\n3) Wipe everything (including appearance)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¨Ã‚Â¯Ã‚Â­ÃƒÂ©Ã…Â¸Ã‚Â³ÃƒÂ¥Ã‚Â¼Ã¢â‚¬Â¢ÃƒÂ¦Ã¢â‚¬Å“Ã…Â½ÃƒÂ¦Ã…â€œÃ‚ÂªÃƒÂ¥Ã‚Â°Ã‚Â±ÃƒÂ§Ã‚Â»Ã‚ÂªÃƒÂ¯Ã‚Â¼Ã…â€™ÃƒÂ¦Ã¢â‚¬â€Ã‚Â ÃƒÂ¦Ã‚Â³Ã¢â‚¬Â¢ÃƒÂ¨Ã‚Â¯Ã‚Â»ÃƒÂ¥Ã‚ÂÃ¢â‚¬â€œÃƒÂ¦Ã‚Â³Ã‚Â¨ÃƒÂ¥Ã¢â‚¬Â Ã…â€™ÃƒÂ§Ã…Â Ã‚Â¶ÃƒÂ¦Ã¢â€šÂ¬Ã‚ÂÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡", "The voice engine is not ready, so registration status cannot be read." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã‚Â³Ã‚Â¨ÃƒÂ¥Ã¢â‚¬Â Ã…â€™ÃƒÂ¥Ã‚Â¿Ã‚Â«ÃƒÂ§Ã¢â‚¬Â¦Ã‚Â§ÃƒÂ¤Ã‚Â¸Ã‚ÂºÃƒÂ§Ã‚Â©Ã‚ÂºÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡", "Registration snapshot is empty." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ©Ã‚ÂÃ…Â¾ÃƒÂ¥Ã¢â‚¬ÂºÃ‚Â¢ÃƒÂ¦Ã…â€œÃ‚Â¬ÃƒÂ¥Ã‚Â·Ã‚Â²ÃƒÂ¦Ã‚Â³Ã‚Â¨ÃƒÂ¥Ã¢â‚¬Â Ã…â€™BOSS: ", "Non-raid registered bosses: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ©Ã‚ÂÃ…Â¾ÃƒÂ¥Ã¢â‚¬ÂºÃ‚Â¢ÃƒÂ¦Ã…â€œÃ‚Â¬ÃƒÂ¤Ã‚ÂºÃ¢â‚¬Â¹ÃƒÂ¤Ã‚Â»Ã‚Â¶: ", "Non-raid events: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¨Ã‚Â§Ã‚Â¦ÃƒÂ¥Ã‚ÂÃ¢â‚¬ËœÃƒÂ¥Ã¢â€žÂ¢Ã‚Â¨ÃƒÂ¤Ã‚ÂºÃ¢â‚¬Â¹ÃƒÂ¤Ã‚Â»Ã‚Â¶(0/1/2): ", "Trigger events (0/1/2): " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã…â€œÃ‚ÂªÃƒÂ¥Ã…â€™Ã‚Â¹ÃƒÂ©Ã¢â‚¬Â¦Ã‚ÂBOSSÃƒÂ¤Ã‚ÂºÃ¢â‚¬Â¹ÃƒÂ¤Ã‚Â»Ã‚Â¶: ", "Unmatched boss events: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã¢â‚¬ÂºÃ‚Â¢ÃƒÂ¦Ã…â€œÃ‚Â¬ÃƒÂ¥Ã‚Â·Ã‚Â²ÃƒÂ¨Ã‚Â¿Ã¢â‚¬Â¡ÃƒÂ¦Ã‚Â»Ã‚Â¤: ", "Raid filtered: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã…â€œÃ¢â€šÂ¬ÃƒÂ¨Ã‚Â¿Ã¢â‚¬ËœÃƒÂ¥Ã‹â€ Ã‚Â·ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â°: ", "Last Refresh: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¤Ã‚Â½Ã…â€œÃƒÂ§Ã¢â‚¬ÂÃ‚Â¨ÃƒÂ¥Ã…Â¸Ã…Â¸: ", "Scope: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã…Â¡Ã¢â‚¬Å¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â ÃƒÂ©Ã‚ÂÃ…Â¾ÃƒÂ¥Ã¢â‚¬ÂºÃ‚Â¢ÃƒÂ¦Ã…â€œÃ‚Â¬ÃƒÂ¥Ã‚Â·Ã‚Â²ÃƒÂ¦Ã‚Â³Ã‚Â¨ÃƒÂ¥Ã¢â‚¬Â Ã…â€™BOSS", "No non-raid registered bosses" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã¢â‚¬â€Ã‚Â ÃƒÂ¦Ã¢â‚¬Â¢Ã‚Â°ÃƒÂ¦Ã‚ÂÃ‚Â®", "No data" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã¢â‚¬ÂºÃ‚Â¢ÃƒÂ¦Ã…â€œÃ‚Â¬ÃƒÂ©Ã‚Â¦Ã¢â‚¬â€œÃƒÂ©Ã‚Â¢Ã¢â‚¬Â ÃƒÂ¯Ã‚Â¼Ã…Â¡%d  |  ÃƒÂ¥Ã‚Â¤Ã‚Â§ÃƒÂ§Ã‚Â±Ã‚Â³ÃƒÂ¥Ã¢â‚¬Â°Ã‚Â¯ÃƒÂ¦Ã…â€œÃ‚Â¬ÃƒÂ¯Ã‚Â¼Ã…Â¡%d", "Raid Bosses: %d  |  Mythic+ Dungeons: %d" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "encounterID:%s  ÃƒÂ¥Ã¢â‚¬Â¦Ã‚Â±%dÃƒÂ¤Ã‚Â¸Ã‚ÂªÃƒÂ§Ã‚Â§Ã‚ÂÃƒÂ¤Ã‚ÂºÃ‚ÂºÃƒÂ¥Ã¢â‚¬Â¦Ã¢â‚¬Â°ÃƒÂ§Ã…Â½Ã‚Â¯ÃƒÂ¦Ã‚Â³Ã¢â‚¬Â¢ÃƒÂ¦Ã…â€œÃ‚Â¯", "encounterID:%s  |  %d private aura spells" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã¢â‚¬Â¦Ã‚Â±%dÃƒÂ¤Ã‚Â¸Ã‚ÂªÃƒÂ§Ã‚Â§Ã‚ÂÃƒÂ¤Ã‚ÂºÃ‚ÂºÃƒÂ¥Ã¢â‚¬Â¦Ã¢â‚¬Â°ÃƒÂ§Ã…Â½Ã‚Â¯ÃƒÂ¦Ã‚Â³Ã¢â‚¬Â¢ÃƒÂ¦Ã…â€œÃ‚Â¯", "%d private aura spells total" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã¢â‚¬ÂºÃ‚Â¢ÃƒÂ¦Ã…â€œÃ‚Â¬ÃƒÂ©Ã‚Â¦Ã¢â‚¬â€œÃƒÂ©Ã‚Â¢Ã¢â‚¬Â ÃƒÂ¦Ã‹â€ Ã‹Å“  |  encounterID:%s  |  ÃƒÂ¦Ã‚Â³Ã¢â‚¬Â¢ÃƒÂ¦Ã…â€œÃ‚Â¯ÃƒÂ¦Ã¢â‚¬Â¢Ã‚Â°:%d", "Raid Encounter  |  encounterID:%s  |  Spells:%d" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã‚Â¤Ã‚Â§ÃƒÂ§Ã‚Â§Ã‹Å“ÃƒÂ¥Ã‚Â¢Ã†â€™ÃƒÂ¥Ã¢â‚¬Â°Ã‚Â¯ÃƒÂ¦Ã…â€œÃ‚Â¬  |  ÃƒÂ¦Ã‚Â³Ã¢â‚¬Â¢ÃƒÂ¦Ã…â€œÃ‚Â¯ÃƒÂ¦Ã¢â‚¬Â¢Ã‚Â°:%d  |  BOSSÃƒÂ§Ã‚Â»Ã¢â‚¬Å¾:%d  |  ÃƒÂ¥Ã‚Â°Ã‚ÂÃƒÂ¦Ã¢â€šÂ¬Ã‚ÂªÃƒÂ¦Ã‚Â³Ã¢â‚¬Â¢ÃƒÂ¦Ã…â€œÃ‚Â¯:%d", "Mythic+ Dungeon  |  Spells:%d  |  Boss groups:%d  |  Trash spells:%d" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¨Ã‚Â¯Ã‚Â·ÃƒÂ©Ã¢â€šÂ¬Ã¢â‚¬Â°ÃƒÂ¦Ã¢â‚¬Â¹Ã‚Â©ÃƒÂ¥Ã‚Â·Ã‚Â¦ÃƒÂ¤Ã‚Â¾Ã‚Â§ÃƒÂ¤Ã‚Â¸Ã¢â€šÂ¬ÃƒÂ¤Ã‚Â¸Ã‚ÂªÃƒÂ§Ã‚Â§Ã‚ÂÃƒÂ¤Ã‚ÂºÃ‚ÂºÃƒÂ¥Ã¢â‚¬Â¦Ã¢â‚¬Â°ÃƒÂ§Ã…Â½Ã‚Â¯ÃƒÂ¥Ã‚Â¯Ã‚Â¹ÃƒÂ¨Ã‚Â±Ã‚Â¡", "Select a private-aura target on the left." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã‚Â½Ã¢â‚¬Å“ÃƒÂ¥Ã¢â‚¬Â°Ã‚ÂÃƒÂ¥Ã‚Â¯Ã‚Â¹ÃƒÂ¨Ã‚Â±Ã‚Â¡ÃƒÂ¦Ã‚Â²Ã‚Â¡ÃƒÂ¦Ã…â€œÃ¢â‚¬Â°ÃƒÂ§Ã‚Â§Ã‚ÂÃƒÂ¤Ã‚ÂºÃ‚ÂºÃƒÂ¥Ã¢â‚¬Â¦Ã¢â‚¬Â°ÃƒÂ§Ã…Â½Ã‚Â¯ÃƒÂ¦Ã‚Â³Ã¢â‚¬Â¢ÃƒÂ¦Ã…â€œÃ‚Â¯ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡", "The selected target has no private-aura spells." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã‚Â¯Ã‚Â¹ÃƒÂ¨Ã‚Â±Ã‚Â¡ÃƒÂ¥Ã‹â€ Ã¢â‚¬â€ÃƒÂ¨Ã‚Â¡Ã‚Â¨", "Target List" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ§Ã‚Â§Ã‚ÂÃƒÂ¤Ã‚ÂºÃ‚ÂºÃƒÂ¥Ã¢â‚¬Â¦Ã¢â‚¬Â°ÃƒÂ§Ã…Â½Ã‚Â¯", "Private Auras" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ§Ã¢â‚¬ÂºÃ¢â‚¬ËœÃƒÂ¦Ã…Â½Ã‚Â§ÃƒÂ§Ã…Â½Ã‚Â©ÃƒÂ¥Ã‚Â®Ã‚Â¶ÃƒÂ¨Ã¢â‚¬Â¡Ã‚ÂªÃƒÂ¨Ã‚ÂºÃ‚Â«ÃƒÂ§Ã…Â¡Ã¢â‚¬Å¾3ÃƒÂ¤Ã‚Â¸Ã‚ÂªÃƒÂ§Ã‚Â§Ã‚ÂÃƒÂ¤Ã‚ÂºÃ‚ÂºÃƒÂ¥Ã¢â‚¬Â¦Ã¢â‚¬Â°ÃƒÂ§Ã…Â½Ã‚Â¯ÃƒÂ¦Ã‚Â§Ã‚Â½ÃƒÂ¤Ã‚Â½Ã‚ÂÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡ÃƒÂ¥Ã‚Â¼Ã¢â€šÂ¬ÃƒÂ¥Ã‚ÂÃ‚Â¯ÃƒÂ¥Ã‚ÂÃ…Â½ÃƒÂ¨Ã‚Â¿Ã¢â‚¬ÂºÃƒÂ¥Ã¢â‚¬Â¦Ã‚Â¥ÃƒÂ§Ã‚Â¼Ã¢â‚¬â€œÃƒÂ¨Ã‚Â¾Ã¢â‚¬ËœÃƒÂ¦Ã‚Â¨Ã‚Â¡ÃƒÂ¥Ã‚Â¼Ã‚ÂÃƒÂ¥Ã‚ÂÃ‚Â¯ÃƒÂ¦Ã¢â‚¬Â¹Ã¢â‚¬â€œÃƒÂ¥Ã…Â Ã‚Â¨ÃƒÂ¨Ã‚Â°Ã†â€™ÃƒÂ¦Ã¢â‚¬Â¢Ã‚Â´ÃƒÂ¤Ã‚Â½Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡", "Monitors the player's 3 private aura slots. Enable it and enter edit mode to drag the position." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã‚ÂÃ‚Â¯ÃƒÂ§Ã¢â‚¬ÂÃ‚Â¨ÃƒÂ§Ã‚Â§Ã‚ÂÃƒÂ¤Ã‚ÂºÃ‚ÂºÃƒÂ¥Ã¢â‚¬Â¦Ã¢â‚¬Â°ÃƒÂ§Ã…Â½Ã‚Â¯ÃƒÂ§Ã¢â‚¬ÂºÃ¢â‚¬ËœÃƒÂ¦Ã…Â½Ã‚Â§", "Enable Private Aura Monitor" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¨Ã‚Â¿Ã¢â‚¬ÂºÃƒÂ¥Ã¢â‚¬Â¦Ã‚Â¥ÃƒÂ§Ã‚Â¼Ã¢â‚¬â€œÃƒÂ¨Ã‚Â¾Ã¢â‚¬ËœÃƒÂ¦Ã‚Â¨Ã‚Â¡ÃƒÂ¥Ã‚Â¼Ã‚Â", "Enter Edit Mode" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã¢â‚¬ÂºÃ‚Â¾ÃƒÂ¦Ã‚Â Ã¢â‚¬Â¡ÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¨Ã‚Â§Ã¢â‚¬Å¡", "Icon Appearance" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã…Â½Ã¢â‚¬â„¢ÃƒÂ¥Ã‹â€ Ã¢â‚¬â€ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¥Ã‚ÂÃ¢â‚¬Ëœ", "Growth Direction" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¨Ã‚Â¾Ã‚Â¹ÃƒÂ¦Ã‚Â¡Ã¢â‚¬Â ÃƒÂ§Ã‚Â¼Ã‚Â©ÃƒÂ¦Ã¢â‚¬ÂÃ‚Â¾", "Border Scale" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã‹Å“Ã‚Â¾ÃƒÂ§Ã‚Â¤Ã‚ÂºÃƒÂ¥Ã¢â‚¬Â Ã‚Â·ÃƒÂ¥Ã‚ÂÃ‚Â´ÃƒÂ¥Ã…â€œÃ‹â€ ", "Show Cooldown Spiral" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã‹Å“Ã‚Â¾ÃƒÂ§Ã‚Â¤Ã‚ÂºÃƒÂ¦Ã¢â‚¬Â¢Ã‚Â°ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€ÃƒÂ¥Ã¢â€šÂ¬Ã¢â‚¬â„¢ÃƒÂ¨Ã‚Â®Ã‚Â¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶", "Show Numeric Countdown" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ©Ã¢â‚¬ÂÃ…Â¡ÃƒÂ§Ã¢â‚¬Å¡Ã‚Â¹", "Anchor Point" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã‚Â±Ã‚ÂÃƒÂ¥Ã‚Â¹Ã¢â‚¬Â¢ÃƒÂ¤Ã‚Â¸Ã‚Â­ÃƒÂ¥Ã‚Â¤Ã‚Â®", "Screen Center" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã‚Â·Ã‚Â¦ÃƒÂ¤Ã‚Â¸Ã…Â ÃƒÂ¨Ã‚Â§Ã¢â‚¬â„¢", "Top Left" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¤Ã‚Â¸Ã…Â ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¤Ã‚Â¸Ã‚Â­ÃƒÂ¥Ã‚Â¤Ã‚Â®", "Top" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã‚ÂÃ‚Â³ÃƒÂ¤Ã‚Â¸Ã…Â ÃƒÂ¨Ã‚Â§Ã¢â‚¬â„¢", "Top Right" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã‚Â·Ã‚Â¦ÃƒÂ¤Ã‚Â¸Ã¢â‚¬Â¹ÃƒÂ¨Ã‚Â§Ã¢â‚¬â„¢", "Bottom Left" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¤Ã‚Â¸Ã¢â‚¬Â¹ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¤Ã‚Â¸Ã‚Â­ÃƒÂ¥Ã‚Â¤Ã‚Â®", "Bottom" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã‚ÂÃ‚Â³ÃƒÂ¤Ã‚Â¸Ã¢â‚¬Â¹ÃƒÂ¨Ã‚Â§Ã¢â‚¬â„¢", "Bottom Right" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã…Â Ã¢â€šÂ¬ÃƒÂ¨Ã†â€™Ã‚Â½ÃƒÂ©Ã‚Â¢Ã¢â‚¬Å¾ÃƒÂ¨Ã‚Â­Ã‚Â¦ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶ÃƒÂ¥Ã…â€œÃ‚Â¨ÃƒÂ¥Ã‚Â±Ã‚ÂÃƒÂ¥Ã‚Â¹Ã¢â‚¬Â¢ÃƒÂ¤Ã‚Â¸Ã‚Â­ÃƒÂ¥Ã‚Â¤Ã‚Â®ÃƒÂ¦Ã‹Å“Ã‚Â¾ÃƒÂ§Ã‚Â¤Ã‚Âº5ÃƒÂ§Ã‚Â§Ã¢â‚¬â„¢ÃƒÂ¥Ã¢â€šÂ¬Ã¢â‚¬â„¢ÃƒÂ¦Ã¢â‚¬Â¢Ã‚Â°ÃƒÂ¦Ã¢â‚¬â€œÃ¢â‚¬Â¡ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡\n|cff00ff00%s|r = ÃƒÂ¦Ã…Â Ã¢â€šÂ¬ÃƒÂ¨Ã†â€™Ã‚Â½ÃƒÂ¥Ã‚ÂÃ‚ÂÃƒÂ§Ã‚Â§Ã‚Â°  |cffffd100%t|r = ÃƒÂ¥Ã¢â€šÂ¬Ã¢â‚¬â„¢ÃƒÂ¨Ã‚Â®Ã‚Â¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶ÃƒÂ¦Ã¢â‚¬Â¢Ã‚Â°ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€", "Shows a 5-second center-screen countdown when a spell alert triggers.\n|cff00ff00%s|r = spell name  |cffffd100%t|r = countdown number" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã‚ÂÃ‚ÂÃƒÂ§Ã‚Â¤Ã‚ÂºÃƒÂ¦Ã¢â‚¬â€œÃ¢â‚¬Â¡ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€ÃƒÂ¦Ã‚Â¨Ã‚Â¡ÃƒÂ¦Ã‚ÂÃ‚Â¿", "Alert Text Template" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã‚Â¨Ã‚Â¡ÃƒÂ¦Ã‚ÂÃ‚Â¿ÃƒÂ¯Ã‚Â¼Ã‹â€ |cff00ff00%s|r=ÃƒÂ¦Ã…Â Ã¢â€šÂ¬ÃƒÂ¨Ã†â€™Ã‚Â½ÃƒÂ¥Ã‚ÂÃ‚Â  |cffffd100%t|r=ÃƒÂ¥Ã¢â€šÂ¬Ã¢â‚¬â„¢ÃƒÂ¨Ã‚Â®Ã‚Â¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶ÃƒÂ¦Ã¢â‚¬Â¢Ã‚Â°ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€ÃƒÂ¯Ã‚Â¼Ã¢â‚¬Â°", "Template (|cff00ff00%s|r = spell name  |cffffd100%t|r = countdown number)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã…â€œÃ‚ÂºÃƒÂ¦Ã¢â€žÂ¢Ã‚Â¯ÃƒÂ©Ã‚Â¢Ã¢â‚¬Å¾ÃƒÂ¨Ã‚Â§Ã‹â€ ", "Scene Preview" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã‹â€ Ã¢â‚¬Â¡ÃƒÂ¦Ã‚ÂÃ‚Â¢ÃƒÂ§Ã‚Â¼Ã¢â‚¬â€œÃƒÂ¨Ã‚Â¾Ã¢â‚¬ËœÃƒÂ¦Ã‚Â¨Ã‚Â¡ÃƒÂ¥Ã‚Â¼Ã‚ÂÃƒÂ©Ã‚Â¢Ã¢â‚¬Å¾ÃƒÂ¨Ã‚Â§Ã‹â€ ", "Toggle Edit Mode Preview" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã‚ÂµÃ¢â‚¬Â¹ÃƒÂ¨Ã‚Â¯Ã¢â‚¬Â¢ÃƒÂ¥Ã¢â€šÂ¬Ã¢â‚¬â„¢ÃƒÂ¨Ã‚Â®Ã‚Â¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶", "Test Countdown" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã‚ÂÃ‚ÂÃƒÂ§Ã‚Â¤Ã‚ÂºÃƒÂ¦Ã¢â‚¬â€œÃ¢â‚¬Â¡ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€ÃƒÂ¤Ã‚Â½Ã¢â‚¬Å“ÃƒÂ¯Ã‚Â¼Ã‹â€ %sÃƒÂ¯Ã‚Â¼Ã¢â‚¬Â°", "Alert Text Font (%s)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã¢â€šÂ¬Ã¢â‚¬â„¢ÃƒÂ¨Ã‚Â®Ã‚Â¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶ÃƒÂ¦Ã¢â‚¬Â¢Ã‚Â°ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€ÃƒÂ¤Ã‚Â½Ã¢â‚¬Å“ÃƒÂ¯Ã‚Â¼Ã‹â€ %tÃƒÂ¯Ã‚Â¼Ã¢â‚¬Â°", "Countdown Number Font (%t)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã‚ÂÃ‚ÂÃƒÂ§Ã‚Â¤Ã‚ÂºÃƒÂ¦Ã¢â‚¬â€œÃ¢â‚¬Â¡ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€", "Alert Text" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã¢â€šÂ¬Ã¢â‚¬â„¢ÃƒÂ¨Ã‚Â®Ã‚Â¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶ÃƒÂ¦Ã¢â‚¬Â¢Ã‚Â°ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€", "Countdown Number" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã…Â½Ã‚Â¨ÃƒÂ¨Ã‚ÂÃ‚ÂÃƒÂ¥Ã¢â‚¬Â¦Ã‹â€ ÃƒÂ¤Ã‚Â½Ã‚Â¿ÃƒÂ§Ã¢â‚¬ÂÃ‚Â¨ÃƒÂ¢Ã¢â€šÂ¬Ã…â€œÃƒÂ¤Ã‚Â»Ã¢â‚¬Â¦ÃƒÂ©Ã¢â‚¬Â¡Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¨Ã‚Â§Ã¢â‚¬Å¡ÃƒÂ¨Ã‚Â®Ã‚Â¾ÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¢Ã¢â€šÂ¬Ã‚ÂÃƒÂ¯Ã‚Â¼Ã…Â¡ÃƒÂ¥Ã‚ÂÃ‚ÂªÃƒÂ©Ã¢â‚¬Â¡Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¨Ã‚Â®Ã‚Â¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶ÃƒÂ¦Ã‚ÂÃ‚Â¡/ÃƒÂ¦Ã‚ÂÃ…Â¸ÃƒÂ§Ã…Â Ã‚Â¶ÃƒÂ¦Ã‚ÂÃ‚Â¡/ÃƒÂ¥Ã¢â€šÂ¬Ã¢â‚¬â„¢ÃƒÂ¨Ã‚Â®Ã‚Â¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶/ÃƒÂ¦Ã¢â‚¬â€œÃ¢â‚¬Â¡ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€ÃƒÂ¥Ã¢â‚¬Â¦Ã‚Â¬ÃƒÂ¥Ã¢â‚¬ËœÃ…Â ÃƒÂ¤Ã‚Â¸Ã…Â½ÃƒÂ©Ã‚Â¢Ã…â€œÃƒÂ¨Ã¢â‚¬Â°Ã‚Â²ÃƒÂ¦Ã¢â‚¬â€œÃ‚Â¹ÃƒÂ¦Ã‚Â¡Ã‹â€ ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡\nÃƒÂ¢Ã¢â€šÂ¬Ã…â€œÃƒÂ©Ã¢â‚¬Â¡Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¦Ã¢â‚¬Â°Ã¢â€šÂ¬ÃƒÂ¦Ã…â€œÃ¢â‚¬Â°ÃƒÂ©Ã¢â‚¬Â¦Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¯Ã‚Â¼Ã‹â€ ÃƒÂ¤Ã‚Â¸Ã‚ÂÃƒÂ¥Ã…â€™Ã¢â‚¬Â¦ÃƒÂ¥Ã‚ÂÃ‚Â«ÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¨Ã‚Â§Ã¢â‚¬Å¡ÃƒÂ¯Ã‚Â¼Ã¢â‚¬Â°ÃƒÂ¢Ã¢â€šÂ¬Ã‚ÂÃƒÂ¤Ã‚Â¼Ã…Â¡ÃƒÂ¦Ã‚Â¸Ã¢â‚¬Â¦ÃƒÂ§Ã‚Â©Ã‚ÂºÃƒÂ©Ã¢â€šÂ¬Ã…Â¡ÃƒÂ§Ã¢â‚¬ÂÃ‚Â¨ÃƒÂ¨Ã‚Â®Ã‚Â¾ÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ£Ã¢â€šÂ¬Ã‚ÂÃƒÂ¨Ã‚Â¯Ã‚Â­ÃƒÂ©Ã…Â¸Ã‚Â³ÃƒÂ©Ã¢â‚¬Â¦Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ£Ã¢â€šÂ¬Ã‚ÂÃƒÂ¦Ã…Â Ã¢â€šÂ¬ÃƒÂ¨Ã†â€™Ã‚Â½ÃƒÂ©Ã¢â‚¬Â¦Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¤Ã‚Â¸Ã…Â½ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶ÃƒÂ©Ã¢â‚¬â€Ã‚Â´ÃƒÂ¨Ã‚Â½Ã‚Â´ÃƒÂ¨Ã‚Â®Ã‚Â¾ÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¯Ã‚Â¼Ã…â€™ÃƒÂ¤Ã‚Â½Ã¢â‚¬Â ÃƒÂ¤Ã‚Â¿Ã‚ÂÃƒÂ§Ã¢â‚¬Â¢Ã¢â€žÂ¢ÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¨Ã‚Â§Ã¢â‚¬Å¡ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡\nÃƒÂ¢Ã¢â€šÂ¬Ã…â€œÃƒÂ¦Ã‚Â¸Ã¢â‚¬Â¦ÃƒÂ©Ã¢â€žÂ¢Ã‚Â¤ÃƒÂ¥Ã¢â‚¬Â¦Ã‚Â¨ÃƒÂ©Ã†â€™Ã‚Â¨ÃƒÂ¨Ã‚Â®Ã‚Â¾ÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¢Ã¢â€šÂ¬Ã‚ÂÃƒÂ¤Ã‚Â¼Ã…Â¡ÃƒÂ¦Ã…Â Ã…Â  EXBoss ÃƒÂ§Ã…Â¡Ã¢â‚¬Å¾ÃƒÂ¥Ã¢â‚¬Â¦Ã‚Â¨ÃƒÂ©Ã†â€™Ã‚Â¨ÃƒÂ©Ã¢â‚¬Â¦Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ©Ã†â€™Ã‚Â½ÃƒÂ¦Ã‚ÂÃ‚Â¢ÃƒÂ¥Ã‚Â¤Ã‚ÂÃƒÂ¥Ã‹â€ Ã‚Â°ÃƒÂ¥Ã‹â€ Ã‚ÂÃƒÂ¥Ã‚Â§Ã¢â‚¬Â¹ÃƒÂ§Ã…Â Ã‚Â¶ÃƒÂ¦Ã¢â€šÂ¬Ã‚ÂÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡", "Recommended: use Reset Appearance Only first. It resets Timer Bar / Bun Bar / Countdown / Flash Text styles and color schemes only.\nReset All Settings (Keep Appearance) clears general settings, voice config, spell config and timeline settings, while keeping appearance.\nWipe Everything resets all EXBoss settings back to their defaults." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¤Ã‚Â»Ã¢â‚¬Â¦ÃƒÂ©Ã¢â‚¬Â¡Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¨Ã‚Â®Ã‚Â¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶ÃƒÂ¦Ã‚ÂÃ‚Â¡/ÃƒÂ¦Ã‚ÂÃ…Â¸ÃƒÂ§Ã…Â Ã‚Â¶ÃƒÂ¦Ã‚ÂÃ‚Â¡/ÃƒÂ¥Ã¢â€šÂ¬Ã¢â‚¬â„¢ÃƒÂ¨Ã‚Â®Ã‚Â¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶/ÃƒÂ¦Ã¢â‚¬â€œÃ¢â‚¬Â¡ÃƒÂ¥Ã‚Â­Ã¢â‚¬â€ÃƒÂ¥Ã¢â‚¬Â¦Ã‚Â¬ÃƒÂ¥Ã¢â‚¬ËœÃ…Â ÃƒÂ§Ã…Â¡Ã¢â‚¬Å¾ÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¨Ã‚Â§Ã¢â‚¬Å¡ÃƒÂ¦Ã‚Â Ã‚Â·ÃƒÂ¥Ã‚Â¼Ã‚ÂÃƒÂ¯Ã‚Â¼Ã…â€™ÃƒÂ¤Ã‚Â¸Ã‚ÂÃƒÂ¥Ã‹â€ Ã‚Â ÃƒÂ©Ã¢â€žÂ¢Ã‚Â¤ÃƒÂ¦Ã‚Â³Ã¢â‚¬Â¢ÃƒÂ¦Ã…â€œÃ‚Â¯ÃƒÂ©Ã¢â‚¬Â¦Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡ÃƒÂ¦Ã‹Å“Ã‚Â¯ÃƒÂ¥Ã‚ÂÃ‚Â¦ÃƒÂ§Ã‚Â»Ã‚Â§ÃƒÂ§Ã‚Â»Ã‚Â­ÃƒÂ¯Ã‚Â¼Ã…Â¸", "This only resets Timer Bar / Bun Bar / Countdown / Flash Text styles and keeps spell configuration intact. Continue?" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "|cffffcc00ÃƒÂ¥Ã‚Â°Ã¢â‚¬Â ÃƒÂ¦Ã‚Â¸Ã¢â‚¬Â¦ÃƒÂ§Ã‚Â©Ã‚Âº EXBoss ÃƒÂ§Ã…Â¡Ã¢â‚¬Å¾ÃƒÂ©Ã¢â€šÂ¬Ã…Â¡ÃƒÂ§Ã¢â‚¬ÂÃ‚Â¨ÃƒÂ¨Ã‚Â®Ã‚Â¾ÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ£Ã¢â€šÂ¬Ã‚ÂÃƒÂ¨Ã‚Â¯Ã‚Â­ÃƒÂ©Ã…Â¸Ã‚Â³ÃƒÂ©Ã¢â‚¬Â¦Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ£Ã¢â€šÂ¬Ã‚ÂÃƒÂ¦Ã…Â Ã¢â€šÂ¬ÃƒÂ¨Ã†â€™Ã‚Â½ÃƒÂ©Ã¢â‚¬Â¦Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¤Ã‚Â¸Ã…Â½ÃƒÂ¦Ã¢â‚¬â€Ã‚Â¶ÃƒÂ©Ã¢â‚¬â€Ã‚Â´ÃƒÂ¨Ã‚Â½Ã‚Â´ÃƒÂ¨Ã‚Â®Ã‚Â¾ÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¯Ã‚Â¼Ã…â€™ÃƒÂ¤Ã‚Â½Ã¢â‚¬Â ÃƒÂ¤Ã‚Â¿Ã‚ÂÃƒÂ§Ã¢â‚¬Â¢Ã¢â€žÂ¢ÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¨Ã‚Â§Ã¢â‚¬Å¡ÃƒÂ¦Ã‚Â Ã‚Â·ÃƒÂ¥Ã‚Â¼Ã‚ÂÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡|r\nÃƒÂ§Ã‚Â¡Ã‚Â®ÃƒÂ¨Ã‚Â®Ã‚Â¤ÃƒÂ§Ã‚Â»Ã‚Â§ÃƒÂ§Ã‚Â»Ã‚Â­ÃƒÂ¯Ã‚Â¼Ã…Â¸", "|cffffcc00This clears EXBoss general settings, voice config, spell config and timeline settings, while keeping appearance styles.|r\nContinue?" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "|cffff4444ÃƒÂ¥Ã‚ÂÃ‚Â±ÃƒÂ©Ã¢â€žÂ¢Ã‚Â©ÃƒÂ¯Ã‚Â¼Ã…Â¡ÃƒÂ¥Ã‚Â°Ã¢â‚¬Â ÃƒÂ¦Ã‚Â¸Ã¢â‚¬Â¦ÃƒÂ§Ã‚Â©Ã‚Âº EXBoss ÃƒÂ§Ã…Â¡Ã¢â‚¬Å¾ÃƒÂ¥Ã¢â‚¬Â¦Ã‚Â¨ÃƒÂ©Ã†â€™Ã‚Â¨ÃƒÂ¨Ã‚Â®Ã‚Â¾ÃƒÂ§Ã‚Â½Ã‚Â®ÃƒÂ¯Ã‚Â¼Ã‹â€ ÃƒÂ¥Ã…â€™Ã¢â‚¬Â¦ÃƒÂ¥Ã‚ÂÃ‚Â«ÃƒÂ¥Ã‚Â¤Ã¢â‚¬â€œÃƒÂ¨Ã‚Â§Ã¢â‚¬Å¡ÃƒÂ¯Ã‚Â¼Ã¢â‚¬Â°ÃƒÂ¥Ã‚Â¹Ã‚Â¶ÃƒÂ©Ã¢â‚¬Â¡Ã‚ÂÃƒÂ¨Ã‚Â½Ã‚Â½ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡ÃƒÂ¦Ã‚Â­Ã‚Â¤ÃƒÂ¦Ã¢â‚¬Å“Ã‚ÂÃƒÂ¤Ã‚Â½Ã…â€œÃƒÂ¤Ã‚Â¸Ã‚ÂÃƒÂ¥Ã‚ÂÃ‚Â¯ÃƒÂ¦Ã¢â‚¬â„¢Ã‚Â¤ÃƒÂ©Ã¢â‚¬ÂÃ¢â€šÂ¬ÃƒÂ£Ã¢â€šÂ¬Ã¢â‚¬Å¡|r\nÃƒÂ§Ã‚Â¡Ã‚Â®ÃƒÂ¨Ã‚Â®Ã‚Â¤ÃƒÂ§Ã‚Â»Ã‚Â§ÃƒÂ§Ã‚Â»Ã‚Â­ÃƒÂ¯Ã‚Â¼Ã…Â¸", "|cffff4444Warning: this wipes every EXBoss setting, including appearance, and reloads the UI. This cannot be undone.|r\nContinue?" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ§Ã‚Â¡Ã‚Â®ÃƒÂ¥Ã‚Â®Ã…Â¡", "OK" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¥Ã‚ÂÃ¢â‚¬â€œÃƒÂ¦Ã‚Â¶Ã‹â€ ", "Cancel" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ§Ã‚Â¡Ã‚Â®ÃƒÂ¥Ã‚Â®Ã…Â¡ÃƒÂ©Ã¢â‚¬Â¡Ã‚ÂÃƒÂ§Ã‚Â½Ã‚Â®", "Reset" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ§Ã‚Â¡Ã‚Â®ÃƒÂ¥Ã‚Â®Ã…Â¡ÃƒÂ¦Ã‚Â¸Ã¢â‚¬Â¦ÃƒÂ§Ã‚Â©Ã‚Âº", "Wipe" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â­Ã©Å¸Â³ / Ã©â€¦ÂÃ§Â½Â®", "Voice / Profiles" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â·Â¦Ã¤Â¾Â§Ã©â‚¬â€°Ã¦â€¹Â©Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¥ÂÂ³Ã¤Â¾Â§Ã¦Å’â€°Ã¥â€ºÂ¢Ã¦Å“Â¬ / Ã¥Â¤Â§Ã§Â±Â³Ã©â€¦ÂÃ§Â½Â®Ã¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "Choose a Voice Pack on the left, then configure Raid / Mythic+ author profiles on the right." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â·Â¦Ã¤Â¾Â§Select Voice Pack, Ã¥ÂÂ³Ã¤Â¾Â§Ã¦Å’â€°Raid / Mythic+Ã©â€¦ÂÃ§Â½Â® Author Profile.", "Choose a Voice Pack on the left, then configure Raid / Mythic+ author profiles on the right." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â·Â¦Ã¤Â¾Â§Select Voice PackÃ¯Â¼Å’Ã¥ÂÂ³Ã¤Â¾Â§Ã¦Å’â€°Raid / Mythic+Ã©â€¦ÂÃ§Â½Â® Author Profile.", "Choose a Voice Pack on the left, then configure Raid / Mythic+ author profiles on the right." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Voice Pack" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â‚¬â€°Ã¦â€¹Â©Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Select Voice Pack" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â®â‚¬Ã¤Â»â€¹", "Description" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â½Å“Ã¨â‚¬â€¦", "Author" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§â€°Ë†Ã¦Å“Â¬", "Version" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â â€¡Ã§Â­Â¾", "labels" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¤Â½Â¿Ã§â€Â¨Ã¤Â¸Â­", "Active" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å’â€° 6 Ã¤Â¸ÂªÃ¨ÂÅ’Ã¨Â´Â£Ã¦Â§Â½Ã¤Â½ÂÃ©â‚¬â€°Ã¦â€¹Â©Ã¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼â€ºÃ¥â€°Â¯Ã¦Å“Â¬Ã©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žÃ¥â€ºÂ¢Ã¦Å“Â¬ / Ã¥Â¤Â§Ã§Â±Â³Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "Choose author profiles for the 6 role slots; the dungeon page automatically writes the matching Raid / Mythic+ profiles for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å’â€° 6 Ã¤Â¸ÂªÃ¨ÂÅ’Ã¨Â´Â£Ã¦Â§Â½Ã¤Â½ÂÃ©â‚¬â€°Ã¦â€¹Â©Author ProfileÃ¯Â¼â€ºDungeonsÃ©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žRaid / Mythic+ Profiles.", "Choose author profiles for the 6 role slots; the Dungeons page automatically writes the matching Raid / Mythic+ profiles for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å’â€° 6 Ã¤Â¸ÂªÃ¨ÂÅ’Ã¨Â´Â£Ã¦Â§Â½Ã¤Â½ÂÃ©â‚¬â€°Ã¦â€¹Â©Author ProfileÃ¯Â¼â€ºDungeonsÃ©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žRaid / Mythic+ Profile.", "Choose author profiles for the 6 role slots; the Dungeons page automatically writes the matching Raid / Mythic+ profile for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã£â‚¬â€š", "Automatically used when entering raids with the current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥Ã¥Â¤Â§Ã§Â±Â³Ã¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã£â‚¬â€š", "Automatically used when entering Mythic+ with the current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥RaidÃ¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨.", "Automatically used when entering raids with the current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¨Â¿â€ºÃ¥â€¦Â¥Mythic+Ã¦â€”Â¶Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨.", "Automatically used when entering Mythic+ with the current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¦â€“Â¹Ã¦Â¡Ë†", "Raid Profiles" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â±Â³Ã¦â€“Â¹Ã¦Â¡Ë†", "Mythic+ Profiles" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¥ÂÂ¦Ã¥â€¦â€¹", "Raid Tank" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¢Ã¦Å“Â¬DPS", "Raid DPS" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¦Â²Â»Ã§â€“â€”", "Raid Healer" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â±Â³Ã¥ÂÂ¦Ã¥â€¦â€¹", "Mythic+ Tank" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â±Â³DPS", "Mythic+ DPS" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤Â§Ã§Â±Â³Ã¦Â²Â»Ã§â€“â€”", "Mythic+ Healer" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ÂÂÃ§Â¤ÂºÃ¯Â¼Å¡Ã¥Â½â€œÃ¥â€°ÂÃ¦ËœÂ¯Ã¤Â»â‚¬Ã¤Â¹Ë†Ã¨ÂÅ’Ã¨Â´Â£Ã¯Â¼Å’Ã¥Â°Â±Ã¨â€¡ÂªÃ¥Å Â¨Ã¤Â½Â¿Ã§â€Â¨Ã¥Â¹Â¶Ã§Â¼â€“Ã¨Â¾â€˜Ã¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žÃ¥â€ºÂ¢Ã¦Å“Â¬/Ã¥Â¤Â§Ã§Â±Â³Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "Alert: your current role automatically selects and edits the matching Raid / Mythic+ profiles." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€°ÂÃ¨ÂÅ’Ã¨Â´Â£Ã¯Â¼Å¡", "Current role: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â½â€œÃ¥â€° Ã¨ Å’Ã¨Â´Â£:", "Current role:" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "6 Ã¦Â§Â½Ã¤Â½ Ã¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã¥Â·Â²Ã¦Å½Â¥Ã¥â€¦Â¥Ã¯Â¼Å’Ã¥â€°Â¯Ã¦Å“Â¬Ã©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€° Ã¨ Å’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "6 author profile slots are active. The dungeon page automatically writes the matching profile for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "6 Ã¦Â§Â½Ã¤Â½ Author ProfileÃ¥Â·Â²Ã¦Å½Â¥Ã¥â€¦Â¥Ã¯Â¼Å’DungeonsÃ©Â¡ÂµÃ¤Â¼Å¡Ã¦Å’â€°Ã¥Â½â€œÃ¥â€° Ã¨ Å’Ã¨Â´Â£Ã¨â€¡ÂªÃ¥Å Â¨Ã¥â€ â„¢Ã¥â€¦Â¥Ã¥Â¯Â¹Ã¥Âºâ€Profile.", "6 author profile slots are active. The Dungeons page automatically writes the matching profile for your current role." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â·Â²Ã¥Ë†â€¡Ã¦ Â¢ ", "Switched " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Âºâ€Ã§â€Â¨Ã¥Â¤Â±Ã¨Â´Â¥Ã¯Â¼Å¡", "Apply failed: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ÃƒÂ¦Ã…Â¡Ã¢â‚¬Å¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â ÃƒÂ©Ã‚ Ã…Â¾ÃƒÂ¥Ã¢â‚¬ÂºÃ‚Â¢ÃƒÂ¦Ã…â€œÃ‚Â¬ÃƒÂ¥Ã‚Â·Ã‚Â²ÃƒÂ¦Ã‚Â³Ã‚Â¨ÃƒÂ¥Ã¢â‚¬Â Ã…â€™BOSS", "No non-raid registered bosses" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å½“å‰æ³¢æ¬¡æ‰“æ–­æ€ª", "Current Pull Interrupts" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ— å¯æ‰“æ–­æ€ª", "No interrupts needed" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¤‡æ³¨ï¼šæ— ", "Note: None" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¤‡æ³¨ï¼š%s", "Note: %s" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ‰‹åŠ¨", "Manual" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "è‡ªåŠ¨", "Auto" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "è·¯çº¿ %s", "Route %s" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æœªæ‰¾åˆ°å¯å¯¼å…¥çš„MDTé¢„è®¾", "No importable MDT preset found" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æœªæ£€æµ‹åˆ° MythicDungeonToolsï¼ˆMDTï¼‰", "MythicDungeonTools (MDT) not detected" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æœªé€‰æ‹© MDT å‰¯æœ¬", "No MDT dungeon selected" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "MDT æ•°æ®åº“ä¸å¯ç”¨", "MDT database unavailable" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "è¯¥å‰¯æœ¬æš‚æ— å¯ç”¨è·¯çº¿", "No routes available for this dungeon" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å—œè¡€éŸ³æ•ˆ (YY Sound)", "Bloodlust Sound" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "èŽ·å¾—å—œè¡€BUFFæ—¶ æ’­æ”¾éŸ³æ•ˆå’Œå€’æ•° è¯¥åŠŸèƒ½æµ‹è¯•ä¸­", "Play sound & countdown on Heroism (Testing)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å›¾æ ‡è®¾ç½®", "Icon Settings" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "é”å®šå›¾æ ‡ä½ç½®", "Lock Icon Position" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "åŽŸç”Ÿæ¨¡å¼", "Native UI Mode" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "è‡ªå®šä¹‰æ¨¡å¼", "Custom UI Mode" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¼€å—œè¡€ï¼Œæ³¨æ„æµè¡€debuffï¼Œå‡ä¼¤ç»“æŸå¼€çŸ®äºº", "Heroism, watch bleed debuff, use dwarf racial after DR ends" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ³¨æ„æµè¡€å±‚æ•°", "Watch bleed stacks" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "é å·¦è¾¹èµ°ï¼Œå¦‚æžœæœ‰addåˆ™ä¸è¦æ‹‰ä¸­é—´3åªæ€ªï¼Œè¿›åº¦å¯å¹³æ›¿", "Keep left. If add pulled, skip middle 3 mobs, % is substitutable" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¤§æ€ªæ‰“æŽ‰æŽ¨èå¼€ç«è½¦", "Recommend chain pull after big mob dies" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ³•ç³»æ€ªæ”¶æŽ‰æŽ¨èå¼€ç«è½¦", "Recommend chain pull after caster dies" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä¼˜å…ˆæ‰“æ–­å—œé­”è€…ï¼Œæ•™ç§‘ä¹¦å¯ä»¥æŽ§åˆ¶/é©±æ•£", "Interrupt Mana Devourer first, Textbook can be CC'd/dispelled" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä¸»ç›®æ ‡æ³•ç³»æ€ªï¼Œbossæ¿€æ´»æ—¶è®°å¾—æ‹‰2åªå¥¥æœ¯æŠ¢åŠ«è€…", "Focus caster, pull 2 Arcane Ravagers when boss active" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "è®°å¾—æ‹‰ä¸¤åªå¥¥æœ¯æŠ¢åŠ«è€…", "Remember to pull 2 Arcane Ravagers" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä¸»ç›®æ ‡æ³•ç³»æ€ª", "Focus caster" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä¸»ç›®æ ‡å›žå£°éª‘å£«ï¼ŒAOE 15s/25s", "Focus Echoing Knight, AOE 15s/25s" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¼€å—œè¡€ï¼Œå·¦å³ä¸¤æ³¢å¾æœè€…", "Heroism, both sides Conquerors" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ‰“bossè¿‡ç¨‹è®°å¾—æ‹‰ä¸€æ³¢ç ´ç¢Žè€…ï¼Œèµ·æ‰‹æ‹‰æœ€å¥½", "Pull Shatterer during boss, best on pull" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ³¨æ„å®ˆæŠ¤è€…é»‘çº¿ï¼Œå˜ç²—æœ‰å¢žä¼¤ï¼Œå˜ç»†æ˜¯æ­£å¸¸", "Watch Guardian black line: thick=dmg buff, thin=normal" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å…ˆæ‹‰å¾æœè€…ï¼Œæœ€åŽèšåœ¨æ³•ç³»æ€ª", "Pull Conqueror first, stack on caster" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ç¬¬ä¹æ³¢å‰©ä¸‹çš„ç²¾é”å’ŒçŒŽæ‰‹", "Remaining Elite and Hunter from 9th pull" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "é¥¥é¥¿è€…è¿œç¦»ä¸­åœºï¼Œé¿å…æ¿€æ´»boss", "Keep Hungerer away from mid to avoid pulling boss" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Bosså¼€å—œè¡€", "Heroism on Boss" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä¸»ç›®æ ‡æ­»äº†å»ºè®®å¼€ç«è½¦", "Recommend chain pull after primary target dies" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¦‚æžœåˆæ³¢ï¼Œå…ˆå¼€15ï¼Œè¿‡5ç§’å†å¼€16", "If combining, pull 15 first, wait 5s then pull 16" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ•‘äºº1ã€2ï¼Œå—œè¡€ï¼Œæ³¨æ„ä¸è¦addä¸‹æ–¹çŒŽå¤´", "Save 1&2, Heroism, avoid bottom Headhunter" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ•‘äºº3ã€4ï¼Œè€ƒè™‘è®©é˜Ÿå‹å¸®æ‹‰å¤§è±¡", "Save 3&4, consider having team pull elephant" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ•‘äºº5ï¼Œåƒbuff", "Save 5, get buff" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ•‘äºº6ã€7ã€8", "Save 6, 7, 8" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ³¨æ„ä¸è¦addçŒŽå¤´å’Œå¤§è±¡", "Avoid Headhunter and elephant" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "2å¤´ç†Š+é¢å…·å¸¦bossï¼Œbossæ‰“Tå¯ä»¥çŸ®äºº", "2 bears+mask with boss, dwarf racial for tank buster" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å—œè¡€ï¼Œèµ°ä¾§é¢æ›´å¥½èšæ€ªæ‹‰ä»‡æ¨", "Heroism, flank for better gather/aggro" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¦å…‹å•æ–­è£‚é­‚", "Tank solo interrupts Soul Rending" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¼€ç«è½¦ï¼Œå¤§æ€ª/æ³•ç³»æ€ªæ”¶æŽ‰å¼€åˆ°13æ³¢", "Chain pull, after big mob/caster dies pull up to 13" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å‰©é˜²å¾¡è€…æ—¶åŽ»æ‹‰é˜´å…µï¼Œæ”¶æŽ‰é˜´å…µå¼€boss", "Pull ghost when only Defender left, then boss" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å—œè¡€ï¼Œèµ·æ‰‹ç›´æŽ¥åŽ»å·¦ä¸‹è§’æ‹‰æš®åˆƒï¼Œæ‰“å®Œæ•‘äºº1", "Heroism, pull Twilight Blade bottom-left, save 1" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ•‘äºº2", "Save 2" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ•‘äºº3ï¼Œæ³¨æ„åœºåœ°åœ°æ¿ï¼Œä¸è¦add", "Save 3, watch floor, don't add" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ‰“æŽ‰æ³•ç³»æ€ªå¯ä»¥å¼€ç«è½¦", "Chain pull after caster dies" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ•‘äºº4", "Save 4" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "é å³è¾¹èµ°ï¼Œè§‚å¯Ÿè™è å·¡é€»ä½ç½®ï¼Œä¸è¦add", "Keep right, watch bat patrol, don't add" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ•‘äºº7", "Save 7" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ•‘äºº8ï¼Œæ‰“å®Œä»Žä¸Šæ–¹èµ°", "Save 8, go top after" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ‹‰å°æ€ªæ—¶æ³¨æ„è™è å·¡é€»ä½ç½®", "Watch bat patrol when pulling" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¼€ç«è½¦ â€” æ‰“æ³•ç³»æ€ª", "Chain pull â€” focus caster" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¼€ç«è½¦ â€” æ‰“æš®åˆƒ", "Chain pull â€” focus Twilight Blade" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¼€ç«è½¦ â€” æ‰“å·«å¦–", "Chain pull â€” focus Lich" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¯ä»¥è€ƒè™‘æ‰“æŽ‰æ³•ç³»æ€ªå¸¦ç²¾è‹±", "Consider bringing Elite after caster dies" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Sxæ³¢æ¬¡ï¼Œæ³¨æ„è·¯ä¸Šä¸è¦è¢«é˜²å¾¡è€…æ‰“ï¼ŒæŽ‰è¡€å¯ä»¥ç›´æŽ¥å¤§çº¢", "Heroism pull, avoid Defender hits on way, pot if low" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "è¿‡æ¸¡æŠ€èƒ½", "Transitional skills" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å…ˆæ‹‰å·¦è¾¹é˜²å¾¡è€…ï¼ŒåŽ‹åŠ›æ³¢æ¬¡", "Pull left Defender first, high pressure" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¼€ç«è½¦ï¼Œå…ˆæ‰“æŽ‰èŠ‚ç‚¹ä¸“å®¶", "Chain pull, kill Node Expert first" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å“¨å…µæ‰“Tï¼Œä¸»ç›®æ ‡å“¨å…µ", "Sentinel hits tank, focus Sentinel" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "è¿‡æ¸¡æ³¢æ¬¡", "Transitional pull" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å…ˆæ‹‰å³è¾¹å¸ä»¤å®˜ï¼Œç­‰ä¸€æ¬¡è¯»æ¡ï¼Œæœ€åŽèšæ€ªç‚¹åœ¨å³è¾¹å¸ä»¤å®˜", "Pull right Commander first, wait for cast, stack on right Commander" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¼€ç«è½¦ï¼ŒæŽ§åˆ¶å°„æ‰‹åœ°æ¿æ¡", "Chain pull, CC archer floor cast" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "é å³èµ°ï¼Œæ³¨æ„æ³•ç³»æ€ªAOEæ—¶æŽ§åˆ¶æŽ·æ–§è€…", "Keep right, CC Axe Thrower during caster AOE" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æŽ¨èå¼€å—œè¡€", "Recommend Heroism" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¼€ç«è½¦ï¼Œå…¨éƒ¨æ³•ç³»æ€ªæ­»äº†å¯ä»¥å¸¦", "Chain pull, bring if all casters dead" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ³¨æ„èšæ€ªç‚¹ï¼Œå¼€ä¹¦èŽ·å–æ€¥é€Ÿbuff", "Watch stack point, open book for haste buff" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ç­‰110å·¡é€»ï¼Œä¸è¦addä¸­é—´å°æ€ªï¼Œåœ¨æœºå™¨äººå¤„èšæ€ª", "Wait for patrol, don't pull middle, stack on robot" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Bossæ—çš„æµ®é¾™ï¼Œå‡†å¤‡ç¬¬äºŒè½®æ˜“ä¼¤å†æ‹‰", "Mana Wyrm near boss, pull on 2nd damage taken phase" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¼€ç«è½¦ï¼Œæ¸…æŽ‰æµ®é¾™+æ³•ç³»æ€ª", "Chain pull, clear Mana Wyrms and casters" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ‹‰è¿›åŽ»æ‰“", "Pull inside" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¦‚æžœå—œè¡€å¥½äº†å¯ä»¥è€ƒè™‘å¼€ç«è½¦", "Consider chain pull if Heroism is ready" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä¸»ç›®æ ‡æ³•ç³»æ€ªï¼Œå¼€ç«è½¦", "Focus caster, chain pull" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "AOEæ—¶å€™æŽ¥æŽ§åˆ¶ï¼ŒæŽ§æ’•è£‚è€…", "Chain CC during AOE, CC Maimer" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "é…’ä»™å¯ä»¥æ‰Žé’ˆã€Œè™šç©ºæé­”ã€å‡å°‘æ‰“æ–­åŽ‹åŠ›ï¼Œæé­”å¯ä»¥å¸¦boss", "Brewmaster can Clash Void Terror; Terror can be brought to boss" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä¸»ç›®æ ‡å¬å”¤å¸ˆ", "Focus Summoner" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â·Ã©â‚¬â€°Ã¦â€¹Â©...", "Select..." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Boss Ã©â€¦ Ã§Â½Â®Ã¦Â¨Â¡Ã¥ â€”Ã¦Å“ÂªÃ¥Å Â Ã¨Â½Â½", "Boss configuration module not loaded" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ExBoss Ã¥Â®ËœÃ¦â€“Â¹Ã©Â»ËœÃ¨Â®Â¤Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Official EXBoss default voice pack" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â¡Â¾Ã¨Â¡Â£Ã¨Â¡Â¿Ã¥Â°â€˜Ã¥Â¥Â³Ã©Å¸Â³Ã§â€°Ë†Ã¦Å“Â¬Ã¯Â¼Å’Ã¤Â¿ÂÃ§â€¢â„¢Ã¥ÂÅ’Ã¤Â¸â‚¬Ã¥Â¥â€”Ã¦Â â€¡Ã§Â­Â¾Ã§Â»â€œÃ¦Å¾â€žÃ¯Â¼Å’Ã¤Â¾Â¿Ã¤ÂºÅ½Ã§Â»Å¸Ã¤Â¸â‚¬Ã¥Ë†â€¡Ã¦ÂÂ¢Ã£â‚¬â€š", "Guyijin girl-voice pack. Keeps the same label set for easy switching." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â¡Â¾Ã¨Â¡Â£Ã¨Â¡Â¿Ã¥Â¾Â¡Ã¥Â§ÂÃ©Å¸Â³Ã§â€°Ë†Ã¦Å“Â¬Ã¯Â¼Å’Ã¤Â¿ÂÃ¦Å’ÂÃ¦Â â€¡Ã§Â­Â¾Ã¥â€¦Â¼Ã¥Â®Â¹Ã¯Â¼Å’Ã©â‚¬â€šÃ©â€¦ÂÃ§Å½Â°Ã¦Å“â€°Ã¥â€°Â¯Ã¦Å“Â¬Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "Guyijin lady-voice pack. Keeps label compatibility with existing dungeon profiles." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Kele Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¦Â â€¡Ã§Â­Â¾Ã¥â€¦Â¼Ã¥Â®Â¹Ã©Â»ËœÃ¨Â®Â¤Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼Å’Ã¥ÂÂ¯Ã§â€ºÂ´Ã¦Å½Â¥Ã§â€Â¨Ã¤ÂºÅ½Ã¥â€°Â¯Ã¦Å“Â¬Ã©â€¦ÂÃ§Â½Â®Ã£â‚¬â€š", "Kele voice pack. Compatible with the default labels and ready for dungeon profiles." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â¤ÂÃ¤Â¸â‚¬Ã¥ÂÂ¯Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¤Â¿ÂÃ¦Å’ÂÃ¦Â â€¡Ã¥â€¡â€ Ã¦Â â€¡Ã§Â­Â¾Ã¥â€¦Â¼Ã¥Â®Â¹Ã¯Â¼Å’Ã¥ÂÂ¯Ã§â€ºÂ´Ã¦Å½Â¥Ã¥Ë†â€¡Ã¦ÂÂ¢Ã¤Â½Â¿Ã§â€Â¨Ã£â‚¬â€š", "Xiayike voice pack. Compatible with the standard label set and ready to use." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§â€žÂ¶Ã§â€žÂ¶Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¥Å’â€¦Ã¥ÂÂ«Ã¦Â â€¡Ã¥â€¡â€ Ã¦Â â€¡Ã§Â­Â¾Ã¤Â¸Å½Ã¥â‚¬â€™Ã¦â€¢Â°Ã¨Â¯Â­Ã©Å¸Â³Ã£â‚¬â€š", "Ranran voice pack with standard labels and countdown voice lines." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â³â€“Ã§Â³â€“Ã©â€¦Â±Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¦Â â€¡Ã§Â­Â¾Ã§Â»â€œÃ¦Å¾â€žÃ¤Â¸Å½Ã©Â»ËœÃ¨Â®Â¤Ã¥Å’â€¦Ã¥â€¦Â¼Ã¥Â®Â¹Ã£â‚¬â€š", "Tangtangjiang voice pack. Compatible with the default label structure." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â°ÂÃ§Â¾Å  Yagi Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¥Å’â€¦Ã¥ÂÂ«Ã¦Â â€¡Ã¥â€¡â€ Ã¦Â â€¡Ã§Â­Â¾Ã¤Â¸Å½Ã¥â‚¬â€™Ã¦â€¢Â°Ã¨Â¯Â­Ã©Å¸Â³Ã£â‚¬â€š", "Yagi voice pack with standard labels and countdown voice lines." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â½Â Ã¥Â¥Â½Ã§â€°â€ºÃ¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¦ÂÂ¥Ã¦ÂºÂÃ§â€ºÂ®Ã¥Â½â€¢Ã¤Â¸ÂºÃ§â€°â€ºÃ¥Â¸Ë†Ã¥â€šâ€¦Ã¯Â¼Å’Ã¥Å’â€¦Ã¥ÂÂ«Ã¦Â â€¡Ã¥â€¡â€ Ã¦Â â€¡Ã§Â­Â¾Ã¤Â¸Å½Ã¥â‚¬â€™Ã¦â€¢Â°Ã¨Â¯Â­Ã©Å¸Â³Ã£â‚¬â€š", "Niuniu voice pack with standard labels and countdown voice lines." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â»Â«Ã©â€ºÂ¶Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¤Â½Â¿Ã§â€Â¨Ã¦Â â€¡Ã¥â€¡â€ Ã¦Â â€¡Ã§Â­Â¾Ã§Â»â€œÃ¦Å¾â€žÃ¯Â¼Å’Ã¥â€¦Â¼Ã¥Â®Â¹Ã©Â»ËœÃ¨Â®Â¤Ã¥Å’â€¦Ã©â€¦ÂÃ§Â½Â®Ã£â‚¬â€š", "Ayarei voice pack using the standard label structure and default-profile compatibility." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Å“Â²Ã©Å“Â²Ã§Â·Â¹Ã¥Â©Â­Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦Ã¯Â¼Å’Ã¦Â â€¡Ã§Â­Â¾Ã§Â»â€œÃ¦Å¾â€žÃ¤Â¸Å½Ã©Â»ËœÃ¨Â®Â¤Ã¥Å’â€¦Ã¥â€¦Â¼Ã¥Â®Â¹Ã£â‚¬â€š", "Ruru Tia voice pack. Compatible with the default label structure." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å¡â€šÃ¦â€”Â Ã¦ÂÂÃ¨Â¿Â°", "No description available." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â â€¡Ã§Â­Â¾Ã§â€ºÂ®Ã¥Â½â€¢Ã¦Å“ÂªÃ¥Å Â Ã¨Â½Â½", "Label catalog not loaded" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â§Â½Ã¤Â½ÂÃ¦Â¦â€šÃ¨Â§Ë†", "Slot Overview" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â­Â¤Ã¥Å’ÂºÃ¥Å¸Å¸Ã¥ÂÂªÃ¥Â±â€¢Ã§Â¤ÂºÃ¥Â½â€œÃ¥â€°Â 6 Ã¤Â¸ÂªÃ¦Â§Â½Ã¤Â½ÂÃ¥Â¯Â¹Ã¥Âºâ€Ã§Å¡â€žÃ¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "This area only shows the author profiles currently assigned to the 6 slots." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â§Â½Ã¤Â½ÂÃ¤Â¸ÂºÃ¥â€ºÂºÃ¥Â®Å¡Ã§Â»â€œÃ¦Å¾â€žÃ¯Â¼Å’Ã¨Â¯Â·Ã¥Å“Â¨Ã¨Â¯Â­Ã©Å¸Â³/Ã©â€¦ÂÃ§Â½Â®Ã©Â¡ÂµÃ¥Ë†â€¡Ã¦ÂÂ¢Ã¤Â½Å“Ã¨â‚¬â€¦Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "These slots are fixed. Change author profiles in Voice / Profiles." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â§Â½Ã¤Â½ÂÃ¤Â¸ÂºÃ¥â€ºÂºÃ¥Â®Å¡Ã§Â»â€œÃ¦Å¾â€žÃ¯Â¼Å’Ã¤Â¸ÂÃ¦â€Â¯Ã¦Å’ÂÃ¥Ë†Â Ã©â„¢Â¤Ã£â‚¬â€š", "These slots are fixed and cannot be deleted." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â€¡ÂÃ¥â€˜Â½Ã¥ÂÂ", "Rename" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â‚¬Å¡Ã§â€Â¨Ã¨Â®Â¾Ã§Â½Â®", "General Settings" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€¦Â¨Ã¥Â±â‚¬Ã¦ËœÂ¾Ã§Â¤ÂºÃ¦Â¨Â¡Ã¥Â¼ÂÃ¤Â¸Å½Ã¨Â¯Â­Ã©Å¸Â³Ã¨Â¾â€œÃ¥â€¡ÂºÃ£â‚¬â€š", "Global display mode and voice output." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "4Ã¤Â¸ÂªÃ¥â€ºÂºÃ¥Â®Å¡Ã©Â¢Å“Ã¨â€°Â²Ã¦â€“Â¹Ã¦Â¡Ë† + 1Ã¤Â¸ÂªÃ¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã¦â€“Â¹Ã¦Â¡Ë† + Ã¦Å“â‚¬Ã¥Â¤Å¡3Ã¤Â¸ÂªÃ©Â¢ÂÃ¥Â¤â€“Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€šBossÃ¦Å â‚¬Ã¨Æ’Â½Ã©Â¡ÂµÃ¥ÂÂ¯Ã§â€ºÂ´Ã¦Å½Â¥Ã©â‚¬â€°Ã¦â€¹Â©Ã¦â€“Â¹Ã¦Â¡Ë†Ã¦Ë†â€“Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã©Â¢Å“Ã¨â€°Â²Ã£â‚¬â€š", "4 fixed color schemes + 1 custom scheme + up to 3 extra schemes. The Boss spell page can select a scheme directly or use custom colors." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡Ã¥Â¤â€“Ã¨Â§â€šÃ£â‚¬ÂÃ¦â€“â€¡Ã¥Â­â€”Ã£â‚¬ÂÃ¤Â½ÂÃ§Â½Â®Ã£â‚¬â€š", "Timer bar appearance, text and position." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ÂÅ¸Ã§Å Â¶Ã¦ÂÂ¡Ã¥Â¤â€“Ã¨Â§â€šÃ£â‚¬ÂÃ¨Â½Â¨Ã©Ââ€œÃ£â‚¬ÂÃ¤Â½ÂÃ§Â½Â®Ã£â‚¬â€š", "Bun bar appearance, track and position." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¸Â­Ã¥Â¤Â®Ã¥â‚¬â€™Ã¦â€¢Â°Ã¦â€“â€¡Ã¥Â­â€”Ã¤Â¸Å½Ã¥Â­â€”Ã¤Â½â€œÃ£â‚¬ÂÃ¤Â½ÂÃ§Â½Â®Ã£â‚¬â€š", "Center countdown text, font and position." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¸Â­Ã¥Â¤Â®Ã¦â€“â€¡Ã¥Â­â€”Ã¥â€¦Â¬Ã¥â€˜Å Ã¦Â Â·Ã¥Â¼ÂÃ¤Â¸Å½Ã¤Â½ÂÃ§Â½Â®Ã£â‚¬â€š", "Center text style and position." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®Ã¥Å“â€ Ã§Å½Â¯Ã¨Â¿â€ºÃ¥ÂºÂ¦Ã¦Â Â·Ã¥Â¼ÂÃ£â‚¬ÂÃ¥Â¤Â§Ã¥Â°ÂÃ£â‚¬ÂÃ¤Â½ÂÃ§Â½Â®Ã£â‚¬â€š", "Center-screen ring style, size and position." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å¸Â¥Ã§Å“â€¹Ã¥Â½â€œÃ¥â€°ÂÃ¨Â¯Â­Ã©Å¸Â³Ã¦Â³Â¨Ã¥â€ Å’Ã§Â»â€ Ã¨Å â€šÃ¯Â¼Ë†Ã©Â»ËœÃ¨Â®Â¤Ã¤Â»â€¦Ã¦ËœÂ¾Ã§Â¤ÂºÃ©ÂÅ¾Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¯Â¼â€°Ã¯Â¼Å¡Ã¥â€°Â¯Ã¦Å“Â¬ > BOSSÃ¥ÂÂÃ§Â§Â°(Ã¦â€¢Â°Ã©â€¡Â) + eventID(trigger0/1/2)Ã£â‚¬â€š", "Shows current voice registration details (default = non-raid only): Dungeon > Boss Name (count) + eventID(trigger0/1/2)." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§â€ºâ€˜Ã¦Å½Â§Ã§Å½Â©Ã¥Â®Â¶Ã¨â€¡ÂªÃ¨ÂºÂ«Ã§Å¡â€ž3Ã¤Â¸ÂªÃ§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯Ã¦Â§Â½Ã¤Â½ÂÃ¯Â¼Å’Ã¦â€Â¯Ã¦Å’ÂÃ¥â€ºÂ¾Ã¦Â â€¡Ã¥Â¤Â§Ã¥Â°ÂÃ£â‚¬ÂÃ¤Â½ÂÃ§Â½Â®Ã£â‚¬ÂÃ¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã£â‚¬ÂÃ©Å¸Â³Ã¦â€¢Ë†Ã§Â­â€°Ã©â€¦ÂÃ§Â½Â®Ã£â‚¬â€š", "Monitors the player's 3 private aura slots, including icon size, position, countdown and sound settings." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ÂÂÃ¤Â¾â€ºÃ¤Â¸â€°Ã§Â§ÂÃ©â€¡ÂÃ§Â½Â®Ã¦â€“Â¹Ã¥Â¼ÂÃ¯Â¼Å¡\n1) Ã¤Â»â€¦Ã©â€¡ÂÃ§Â½Â®Ã¥Â¤â€“Ã¨Â§â€šÃ¨Â®Â¾Ã§Â½Â®\n2) Ã©â€¡ÂÃ§Â½Â®Ã¦â€°â‚¬Ã¦Å“â€°Ã©â€¦ÂÃ§Â½Â®Ã¯Â¼Ë†Ã¤Â¸ÂÃ¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°\n3) Ã¦Â¸â€¦Ã©â„¢Â¤Ã¥â€¦Â¨Ã©Æ’Â¨Ã¨Â®Â¾Ã§Â½Â®Ã¯Â¼Ë†Ã¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°", "Provides three reset modes:\n1) Reset appearance only\n2) Reset all settings (keep appearance)\n3) Wipe everything (including appearance)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â»â€¦Ã¦ÂÅ¸Ã§Å Â¶Ã¦ÂÂ¡", "Bun Bar Only" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¸Â¤Ã¨â‚¬â€¦Ã©Æ’Â½Ã¥ÂÂ¯Ã§â€Â¨", "Both Enabled" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â»â€¦Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡", "Timer Bar Only" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â¸Â¤Ã¨â‚¬â€¦Ã©Æ’Â½Ã©Å¡ÂÃ¨â€”Â", "Hide Both" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥ÂÂ¦Ã¥â€¦â€¹Ã¦â€“Â¹Ã¦Â¡Ë†", "Tank Scheme" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â²Â»Ã§â€“â€”Ã¦â€“Â¹Ã¦Â¡Ë†", "Healer Scheme" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€¡ÂÃ¤Â¼Â¤Ã¦â€“Â¹Ã¦Â¡Ë†", "Defensive Scheme" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å“ÂºÃ¥Ë†Â¶Ã¦â€“Â¹Ã¦Â¡Ë†", "Mechanic Scheme" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¯Â­Ã©Å¸Â³Ã¥Â¼â€¢Ã¦â€œÅ½Ã¦Å“ÂªÃ¥Â°Â±Ã§Â»ÂªÃ¯Â¼Å’Ã¦â€”Â Ã¦Â³â€¢Ã¨Â¯Â»Ã¥Ââ€“Ã¦Â³Â¨Ã¥â€ Å’Ã§Å Â¶Ã¦â‚¬ÂÃ£â‚¬â€š", "The voice engine is not ready, so registration status cannot be read." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â³Â¨Ã¥â€ Å’Ã¥Â¿Â«Ã§â€¦Â§Ã¤Â¸ÂºÃ§Â©ÂºÃ£â‚¬â€š", "Registration snapshot is empty." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å“â‚¬Ã¨Â¿â€˜Ã¥Ë†Â·Ã¦â€“Â°: ", "Last Refresh: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â½Å“Ã§â€Â¨Ã¥Å¸Å¸: ", "Scope: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å“â‚¬Ã¨Â¿â€˜Ã©â€â„¢Ã¨Â¯Â¯: ", "Last error: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "BossÃ¦Å â‚¬Ã¨Æ’Â½Ã©Â¡ÂµÃ©ÂÂ¢Ã¥ÂÂ¯Ã©â‚¬â€°Ã¦â€¹Â©Ã¤Â¸â€¹Ã¥Ë†â€”Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼â€ºÃ©â‚¬â€°Ã¦â€¹Â©Ã¢â‚¬Å“Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã©Â¢Å“Ã¨â€°Â²Ã¢â‚¬ÂÃ¦â€”Â¶Ã¤Â½Â¿Ã§â€Â¨Ã¢â‚¬Å“Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã¦â€“Â¹Ã¦Â¡Ë†Ã¢â‚¬ÂÃ£â‚¬â€šÃ¥â€¹Â¾Ã©â‚¬â€°Ã¥ÂÂ¯Ã§â€Â¨Ã§Å¡â€žÃ©Â¢ÂÃ¥Â¤â€“Ã¦â€“Â¹Ã¦Â¡Ë†Ã¤Â¼Å¡Ã¥â€¡ÂºÃ§Å½Â°Ã¥Å“Â¨Ã¦Å â‚¬Ã¨Æ’Â½Ã©Â¡ÂµÃ¤Â¸â€¹Ã¦â€¹â€°Ã£â‚¬â€š", "The Boss spell page can use the schemes below. Choosing \"Custom Colors\" uses the \"Custom Scheme\" row. Enabled extra schemes appear in spell-page dropdowns." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã¦â€“Â¹Ã¦Â¡Ë†", "Custom Scheme" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã¦â€“Â¹Ã¦Â¡Ë†Ã¥ÂÂ", "Custom Scheme Name" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã¦â€“Â¹Ã¦Â¡Ë†Ã©Â¢Å“Ã¨â€°Â²", "Custom Scheme Color" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â¢ÂÃ¥Â¤â€“Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼Ë†Ã¦Å“â‚¬Ã¥Â¤Å¡3Ã¤Â¸ÂªÃ¯Â¼â€°", "Extra Schemes (up to 3)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©Â¢ÂÃ¥Â¤â€“Ã¦â€“Â¹Ã¦Â¡Ë†", "Extra Scheme" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å½Â¨Ã¨ÂÂÃ¥â€¦Ë†Ã¤Â½Â¿Ã§â€Â¨Ã¢â‚¬Å“Ã¤Â»â€¦Ã©â€¡ÂÃ§Â½Â®Ã¥Â¤â€“Ã¨Â§â€šÃ¨Â®Â¾Ã§Â½Â®Ã¢â‚¬ÂÃ¯Â¼Å¡Ã¥ÂÂªÃ©â€¡ÂÃ§Â½Â®Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡/Ã¦ÂÅ¸Ã§Å Â¶Ã¦ÂÂ¡/Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶/Ã¦â€“â€¡Ã¥Â­â€”Ã¥â€¦Â¬Ã¥â€˜Å Ã¤Â¸Å½Ã©Â¢Å“Ã¨â€°Â²Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š\nÃ¢â‚¬Å“Ã©â€¡ÂÃ§Â½Â®Ã¦â€°â‚¬Ã¦Å“â€°Ã©â€¦ÂÃ§Â½Â®Ã¯Â¼Ë†Ã¤Â¸ÂÃ¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°Ã¢â‚¬ÂÃ¤Â¼Å¡Ã¦Â¸â€¦Ã§Â©ÂºÃ©â‚¬Å¡Ã§â€Â¨Ã¨Â®Â¾Ã§Â½Â®Ã£â‚¬ÂÃ¨Â¯Â­Ã©Å¸Â³Ã©â€¦ÂÃ§Â½Â®Ã£â‚¬ÂÃ¦Å â‚¬Ã¨Æ’Â½Ã©â€¦ÂÃ§Â½Â®Ã¤Â¸Å½Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¨Â®Â¾Ã§Â½Â®Ã¯Â¼Å’Ã¤Â½â€ Ã¤Â¿ÂÃ§â€¢â„¢Ã¥Â¤â€“Ã¨Â§â€šÃ£â‚¬â€š\nÃ¢â‚¬Å“Ã¦Â¸â€¦Ã©â„¢Â¤Ã¥â€¦Â¨Ã©Æ’Â¨Ã¨Â®Â¾Ã§Â½Â®Ã¢â‚¬ÂÃ¤Â¼Å¡Ã¦Å Å  EXBoss Ã§Å¡â€žÃ¥â€¦Â¨Ã©Æ’Â¨Ã©â€¦ÂÃ§Â½Â®Ã©Æ’Â½Ã¦ÂÂ¢Ã¥Â¤ÂÃ¥Ë†Â°Ã¥Ë†ÂÃ¥Â§â€¹Ã§Å Â¶Ã¦â‚¬ÂÃ£â‚¬â€š", "Recommended: use Reset Appearance Only first. It resets Timer Bar / Bun Bar / Countdown / Flash Text styles and color schemes only.\nReset All Settings (Keep Appearance) clears general settings, voice config, spell config and timeline settings, while keeping appearance.\nWipe Everything resets all EXBoss settings back to their defaults." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â»â€¦Ã©â€¡ÂÃ§Â½Â®Ã¥Â¤â€“Ã¨Â§â€šÃ¨Â®Â¾Ã§Â½Â®", "Reset Appearance Only" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â»â€¦Ã©â€¡ÂÃ§Â½Â®Ã¨Â®Â¡Ã¦â€”Â¶Ã¦ÂÂ¡/Ã¦ÂÅ¸Ã§Å Â¶Ã¦ÂÂ¡/Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶/Ã¦â€“â€¡Ã¥Â­â€”Ã¥â€¦Â¬Ã¥â€˜Å Ã§Å¡â€žÃ¥Â¤â€“Ã¨Â§â€šÃ¦Â Â·Ã¥Â¼ÂÃ¯Â¼Å’Ã¤Â¸ÂÃ¥Ë†Â Ã©â„¢Â¤Ã¦Â³â€¢Ã¦Å“Â¯Ã©â€¦ÂÃ§Â½Â®Ã£â‚¬â€šÃ¦ËœÂ¯Ã¥ÂÂ¦Ã§Â»Â§Ã§Â»Â­Ã¯Â¼Å¸", "This only resets Timer Bar / Bun Bar / Countdown / Flash Text styles and keeps spell configuration intact. Continue?" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â€¡ÂÃ§Â½Â®Ã¦â€°â‚¬Ã¦Å“â€°Ã©â€¦ÂÃ§Â½Â®Ã¯Â¼Ë†Ã¤Â¸ÂÃ¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°", "Reset All Settings (Keep Appearance)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â°â€ Ã¦Â¸â€¦Ã§Â©Âº EXBoss Ã§Å¡â€žÃ©â‚¬Å¡Ã§â€Â¨Ã¨Â®Â¾Ã§Â½Â®Ã£â‚¬ÂÃ¨Â¯Â­Ã©Å¸Â³Ã©â€¦ÂÃ§Â½Â®Ã£â‚¬ÂÃ¦Å â‚¬Ã¨Æ’Â½Ã©â€¦ÂÃ§Â½Â®Ã¤Â¸Å½Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´Ã¨Â®Â¾Ã§Â½Â®Ã¯Â¼Å’Ã¤Â½â€ Ã¤Â¿ÂÃ§â€¢â„¢Ã¥Â¤â€“Ã¨Â§â€šÃ¦Â Â·Ã¥Â¼ÂÃ£â‚¬â€š\nÃ§Â¡Â®Ã¨Â®Â¤Ã§Â»Â§Ã§Â»Â­Ã¯Â¼Å¸", "This clears EXBoss general settings, voice config, spell config and timeline settings, while keeping appearance styles.\nContinue?" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â¡Â®Ã¥Â®Å¡Ã©â€¡ÂÃ§Â½Â®", "Reset" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â¸â€¦Ã©â„¢Â¤Ã¥â€¦Â¨Ã©Æ’Â¨Ã¨Â®Â¾Ã§Â½Â®Ã¯Â¼Ë†Ã¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°", "Wipe Everything (Including Appearance)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥ÂÂ±Ã©â„¢Â©Ã¯Â¼Å¡Ã¥Â°â€ Ã¦Â¸â€¦Ã§Â©Âº EXBoss Ã§Å¡â€žÃ¥â€¦Â¨Ã©Æ’Â¨Ã¨Â®Â¾Ã§Â½Â®Ã¯Â¼Ë†Ã¥Å’â€¦Ã¥ÂÂ«Ã¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°Ã¥Â¹Â¶Ã©â€¡ÂÃ¨Â½Â½Ã£â‚¬â€šÃ¦Â­Â¤Ã¦â€œÂÃ¤Â½Å“Ã¤Â¸ÂÃ¥ÂÂ¯Ã¦â€™Â¤Ã©â€â‚¬Ã£â‚¬â€š\nÃ§Â¡Â®Ã¨Â®Â¤Ã§Â»Â§Ã§Â»Â­Ã¯Â¼Å¸", "Warning: this wipes every EXBoss setting, including appearance, and reloads the UI. This cannot be undone.\nContinue?" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â¡Â®Ã¥Â®Å¡Ã¦Â¸â€¦Ã§Â©Âº", "Wipe" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¨Â®Â¾Ã§Â½Â®", "Countdown Settings" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å â‚¬Ã¨Æ’Â½Ã©Â¢â€žÃ¨Â­Â¦Ã¦â€”Â¶Ã¥Å“Â¨Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®Ã¦ËœÂ¾Ã§Â¤Âº5Ã§Â§â€™Ã¥â‚¬â€™Ã¦â€¢Â°Ã¦â€“â€¡Ã¥Â­â€”Ã£â‚¬â€š\n|cff00ff00%s|r = Ã¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂÃ§Â§Â°  |cffffd100%t|r = Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”", "Shows a 5-second center-screen countdown when a spell alert triggers.\n|cff00ff00%s|r = spell name  |cffffd100%t|r = countdown number" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Å Å¸Ã¨Æ’Â½", "General" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥â€ºÂ¾Ã¦Â â€¡", "Show Icon" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥Â°ÂÃ¦â€¢Â°Ã§â€šÂ¹", "Show Decimal" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¾Ã¦Â â€¡Ã¥Â¤Â§Ã¥Â°Â", "Icon Size" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ÂÂÃ§Â¤ÂºÃ¦â€“â€¡Ã¥Â­â€”Ã¦Â¨Â¡Ã¦ÂÂ¿", "Alert Text Template" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â¨Â¡Ã¦ÂÂ¿Ã¯Â¼Ë†|cff00ff00%s|r=Ã¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂ  |cffffd100%t|r=Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”Ã¯Â¼â€°", "Template (|cff00ff00%s|r = spell name  |cffffd100%t|r = countdown number)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ÂÂÃ§Â¤ÂºÃ¦â€“â€¡Ã¥Â­â€”Ã¥Â­â€”Ã¤Â½â€œÃ¯Â¼Ë†%sÃ¯Â¼â€°", "Alert Text Font (%s)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ÂÂÃ§Â¤ÂºÃ¦â€“â€¡Ã¥Â­â€”", "Alert Text" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”Ã¥Â­â€”Ã¤Â½â€œÃ¯Â¼Ë†%tÃ¯Â¼â€°", "Countdown Number Font (%t)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶Ã¦â€¢Â°Ã¥Â­â€”", "Countdown Number" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â½ÂÃ§Â½Â®", "Position" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Â°Â´Ã¥Â¹Â³Ã¤Â½ÂÃ§Â½Â® (X)", "Horizontal Position (X)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Å¾â€šÃ§â€ºÂ´Ã¤Â½ÂÃ§Â½Â® (Y)", "Vertical Position (Y)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â€¡ÂÃ§Â½Â®Ã¤Â½ÂÃ§Â½Â®", "Reset Position" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Å“ÂºÃ¦â„¢Â¯Ã©Â¢â€žÃ¨Â§Ë†", "Scene Preview" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Ë†â€¡Ã¦ÂÂ¢Ã§Â¼â€“Ã¨Â¾â€˜Ã¦Â¨Â¡Ã¥Â¼ÂÃ©Â¢â€žÃ¨Â§Ë†", "Toggle Edit Mode Preview" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Âµâ€¹Ã¨Â¯â€¢Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶", "Test Countdown" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥ÂÂ¦Ã¥â€¦â€¹Ã¥Â°â€“Ã¥Ë†Âº", "Tank Buster" }

for zhLabel, enLabel in pairs(LABEL_TRANSLATIONS) do
    TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { zhLabel, enLabel }
end

for zhName, enName in pairs(MAP_NAME_TRANSLATIONS) do
    TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { zhName, enName }
end

-- Extra hardcoded ExwindTools strings from ExTools.PlayerPosition.lua
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä¼˜å…ˆåŠ è½½æœ¬åœ°æè´¨(PNG)ã€‚è‹¥æ–‡ä»¶ç¼ºå¤±ï¼Œè‡ªåŠ¨å›žé€€åˆ°çº¯ä»£ç ç»˜å›¾æ¨¡å¼ã€‚", "Loads local PNG textures first. If the files are missing, it automatically falls back to the pure code-drawn mode." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¯ç”¨æŒ‡ç¤ºå™¨", "Enable Indicator" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å›¾å½¢æ ·å¼", "Shape Style" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ–¹å— (Square)", "Square" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "åå­— (Cross)", "Cross" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "åœ†å½¢ (Circle)", "Circle" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "åœ†çŽ¯ (Ring)", "Ring" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "è±å½¢ (Diamond)", "Diamond" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ç¼©æ”¾", "Scale" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ­£å¸¸é¢œè‰²", "Normal Color" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "X è½´åç§»", "X Offset" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Y è½´åç§»", "Y Offset" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å½“è¶…å‡ºè·ç¦»æ—¶ å›¾æ ‡å˜è‰² (ç©º=è‡ªåŠ¨ä½¿ç”¨ä¸“ç²¾é¢„è®¾)", "Changes the marker color when the target moves out of range (blank = automatically uses the spec preset)." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "è·ç¦»åˆ¤å®šæ³•æœ¯(ID)", "Range Check Spell (ID)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "é»˜è®¤: ä¸“ç²¾é¢„è®¾", "Default: spec preset" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "è¶…è·é¢œè‰²", "Out-of-Range Color" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "è§¦å‘åœºæ™¯", "Trigger Scene" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æˆ˜æ–—ä¸­æ˜¾ç¤º", "Show in Combat" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æˆ˜æ–—å¤–æ˜¾ç¤º", "Show out of Combat" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä»…å‰¯æœ¬å†…", "Only in Dungeons" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä¸“ç²¾è¿‡æ»¤ (ä»…åœ¨å‹¾é€‰çš„ä¸“ç²¾ä¸‹å¯ç”¨)", "Spec Filter (only enabled for checked specs)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä¸“ç²¾è¿‡æ»¤ï¼ˆä»…åœ¨å‹¾é€‰çš„ä¸“ç²¾ä¸‹å¯ç”¨ï¼‰", "Spec Filter (only enabled for checked specs)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¯ç”¨ä¸“ç²¾", "Enabled Specs" }

-- Extra properly-encoded Chinese strings (ExwindTools Interrupt Tracker, Player Position, etc.)
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "çŽ©å®¶è§’è‰²å®šä½æ ‡è®°", "Player Position Marker" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "è·ç¦»ç›‘æŽ§", "Range Monitor" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä¸Šæ–¹", "Above" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä¸‹æ–¹", "Below" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä¾é™„åˆ°å°é˜Ÿæ¡†æž¶", "Attach to Party Frames" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å°†æ‰“æ–­æ¡ä¾é™„åˆ°å°é˜Ÿæ¡†æž¶çš„ä¸Šæ–¹æˆ–ä¸‹æ–¹ã€‚", "Attach the interrupt bars above or below the party frame group." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å¯ç”¨å°é˜Ÿæ¡†æž¶ä¾é™„", "Enable Party Frame Attach" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "åž‚ç›´é—´è·", "Vertical Spacing" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æœ€å¤§å¯è§æ¡æ•°", "Max Visible Bars" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "ä½¿ç”¨èŒä¸šé¢œè‰²", "Use Class Colors" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ¡å¤–è§‚", "Bar Appearance" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å‘ä¸‹", "Down" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "å‘ä¸Š", "Up" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ‰“æ–­è¿½è¸ªå™¨", "Interrupt Tracker" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ‰“æ–­è¿½è¸ªå™¨(æ¡)", "Interrupt Tracker (Bars)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "æ‰“æ–­è¿½è¸ªé”šç‚¹", "Interrupt Tracker Anchor" }

-- Added by v1.0.5: new EXBoss/ExwindTools UI strings introduced after the original patch.
local PATCH_105_EXACT_REPLACEMENTS = {
    { "é¦–é¡µ", "Home" },
    { "æå‰5ç§’", "5 Seconds Early" },
    { "æœªçŸ¥é¦–é¢† ", "Unknown Boss " },
    { "ä¸Šä¸‹æŽ’åˆ—", "Vertical Layout" },
    { "å·¦å³æŽ’åˆ—", "Horizontal Layout" },
    { "æç¤ºå›¾æ ‡", "Alert Icon" },
    { "æç¤ºå›¾æ ‡é”šç‚¹", "Alert Icon Anchor" },
    { "æ˜¾ç¤ºåç§°", "Show Name" },
    { "æ˜¾ç¤ºæç¤ºå›¾æ ‡", "Show Alert Icon" },
    { "ç§»åŠ¨æ–¹å‘", "Growth Direction" },
    { "èƒŒæ™¯è®¾ç½®", "Background Settings" },
    { "å€’æ•°æ–‡å­—", "Countdown Text" },
    { "æ’­æ”¾éŸ³æ•ˆ", "Play Sound" },
    { "å¼€å¯æš´é›ªä¸­å¤®æ–‡å­—é¢„è­¦ï¼ˆæ³¨æ„ï¼šå¦‚æžœå…³é—­ä¼šå¯¼è‡´è¯­éŸ³ä¸å·¥ä½œï¼‰", "Enable Blizzard center text alerts (note: disabling this can stop voice alerts from working)" },
    { "å¯¼å…¥ä½œè€…åï¼ˆç•™ç©ºåˆ™ä½¿ç”¨é…ç½®åï¼‰", "Import Author Name (leave blank to use profile name)" },
    { "å¯¼å…¥MDT", "Import MDT" },
    { "å½“å‰è¿›åº¦ï¼šæœªèŽ·å–", "Current Progress: unavailable" },
    { "è·¯çº¿å¥—è£…", "Route Set" },
    { "å›¢æœ¬é¦–é¢†ï¼š%d  |  å¤§ç±³å‰¯æœ¬ï¼š%d", "Raid Bosses: %d  |  Mythic+ Dungeons: %d" },
    { "å¯¹è±¡åˆ—è¡¨", "Target List" },
    { "å½“å‰å¯¹è±¡æ²¡æœ‰ç§äººå…‰çŽ¯æ³•æœ¯ã€‚", "The selected target has no private-aura spells." },
    { "è¯·é€‰æ‹©å·¦ä¾§ä¸€ä¸ªç§äººå…‰çŽ¯å¯¹è±¡", "Select a private-aura target on the left." },
    { "æµ‹è¯•æ–½æ³•æ£€æµ‹", "Test Cast Detection" },
    { "é‡ç½®", "Reset" },
    { "æ—¶é—´æ–‡æœ¬", "Time Text" },
    { "è¯­éŸ³/é…ç½®é¡µé¢ä¾èµ– ExwindTools.UIï¼Œå½“å‰æœªå°±ç»ªã€‚è¯·ç¡®è®¤ ExwindCore å·²æ­£ç¡®åŠ è½½åŽé‡å¼€é¢æ¿ã€‚", "The Voice / Profiles page depends on ExwindTools.UI and is not ready yet. Make sure ExwindCore loaded correctly, then reopen the panel." },
    { "å·²åˆ‡æ¢è·¯çº¿å¥—è£…ï¼š%s", "Switched route set: %s" },
    { "å·²å¯¼å…¥MDTè·¯çº¿ï¼š%s", "Imported MDT route: %s" },
    { "å·²é€‰æ‹©è·¯çº¿å¥—è£…ï¼š%sï¼ˆå°šæœªå¯¼å…¥ï¼‰", "Selected route set: %s (not imported yet)" },
    { "åœ†çŽ¯", "Ring" },
    { "å§“åç‰ˆ", "Nameplates" },
    { "åœ¨ PVEFrame ä¸Šæ˜¾ç¤ºçŽ©å®¶ä¸Žé˜Ÿå‹é’¥çŸ³ä¿¡æ¯ã€‚", "Show player and party keystone info on the PVEFrame." },
    { "æ˜¾ç¤ºé…’ä»™æ­¦åƒ§çš„é…’æ± ç™¾åˆ†æ¯”ï¼Œå¹¶æ”¯æŒç‹¬ç«‹æ»¡æ¡ä¸Šé™ä¸Žé˜ˆå€¼å˜è‰²ã€‚", "Shows Brewmaster Monk stagger percentage, with an independent full-bar cap and threshold colors." },
    { "ExwindTools å’Œ EXBoss æ˜¯å…è´¹é¡¹ç›®ï¼›èµžåŠ©ä¸ä¼šè§£é”é¢å¤–åŠŸèƒ½ï¼Œæ‰€æœ‰äººä½¿ç”¨åŒä¸€ç‰ˆæœ¬ã€‚", "ExwindTools and EXBoss are free projects; sponsorship does not unlock extra features, and everyone uses the same version." },
    { "ä½ å°†é‡ç½®%sæ¨¡å—è®¾ç½®ï¼Œå¹¶é‡è½½ã€‚æ˜¯å¦ç¡®å®šï¼Ÿ", "Reset %s module settings and reload. Continue?" },
    { "å¤åˆ¶èµžåŠ©é“¾æŽ¥", "Copy Sponsor Link" },
    { "å½“å‰æ¨¡å—", "Current Module" },
    { "ç‚¹å‡»è¾“å…¥æ¡†å¯å…¨é€‰ï¼ŒæŒ‰ Ctrl+C å¤åˆ¶é“¾æŽ¥ã€‚", "Click the input box to select all, then press Ctrl+C to copy the link." },
    { "èµžåŠ©æ”¯æŒ", "Sponsor Support" },
    { "è¿™äº›æ“ä½œä¼šç›´æŽ¥å½±å“æ’ä»¶é…ç½®ã€‚", "These actions directly affect addon configuration." },
    { "é‡åˆ°é—®é¢˜ã€é…ç½®å»ºè®®æˆ–ç¼ºå°‘é€‰é¡¹éƒ½å¯ä»¥åé¦ˆã€‚", "Send feedback for issues, configuration suggestions, or missing options." },
    { "é‡ç½®å½“å‰æ¨¡å—è®¾ç½®", "Reset Current Module Settings" },
    { "æ–‡å­—å¯¹é½", "Text Alignment" },
    { "æ–‡å­—è®¾ç½®", "Text Settings" },
    { "éšè—æ¡ä½“", "Hide Bar" },
    { "å½“ä½ç§»æŠ€èƒ½CDæ—¶ åœ¨å±å¹•ä¸Šæ˜¾ç¤ºæ–‡å­—æé†’ã€‚", "Show an on-screen text alert while movement abilities are on cooldown." },
    { "æ˜¾ç¤ºCDæ—¶çš„å†…å®¹ (ç”¨ %t ä»£è¡¨æ—¶é—´)", "Text shown during cooldown (%t = time)" },
    { "æ˜¾ç¤ºå†…å®¹", "Display Text" },
    { "æç¤ºï¼š10å±‚ä»¥ä¸Šä¼šé¢å¤–åº”ç”¨åŸºç¡€åŠ æˆï¼šé¦–é¢† 1.15xï¼Œå°æ€ª 1.2xã€‚\næ­¤è®¾ç½®ä¼šç›´æŽ¥å½±å“ MDT å¢žå¼ºå’Œæ³•æœ¯è¯¦æƒ…é¡µæ˜¾ç¤ºçš„æ•°å€¼ã€‚", "Tip: above keystone level 10, an extra base multiplier is applied: bosses 1.15x, trash 1.2x.\nThis setting directly affects the values shown in MDT enhancements and spell detail pages." },
    { "èŠå¤©æ¡†æ‰“å¼€å¤±è´¥: ", "Failed to open chat frame: " },
    { "å¯ç”¨åŠŸèƒ½", "Enable Feature" },
    { "å›¢é˜Ÿå‰¯æœ¬", "Raid" },
    { "åœ°ä¸‹åŸŽ", "Dungeon" },
    { "å¤‡æ³¨å†…å®¹", "Note Content" },
    { "é€‰æ‹©å‰¯æœ¬", "Select Dungeon" },
    { "é€‰æ‹©é¦–é¢†", "Select Boss" },
    { "10. è‡ªåŠ¨ä¿®ç†", "10. Auto Repair" },
    { "11. åœ°ä¸‹åŸŽæ‰‹å†Œå¢žå¼º", "11. Dungeon Journal Enhancements" },
    { "12. å•†äººç•Œé¢å¢žå¼º", "12. Merchant Frame Enhancements" },
    { "13. å®ç•Œé¢å¢žå¼º", "13. Macro Frame Enhancements" },
    { "6. æ‰¹é‡è´­ä¹°åŠ©æ‰‹", "6. Bulk Purchase Assistant" },
    { "7. è¿›æœ¬é‡ç½®ä¼¤å®³", "7. Reset Damage on Instance Entry" },
    { "8. æˆ˜æ–—æç¤º", "8. Combat Alerts" },
    { "9. ä¿®æ”¹æˆ˜ç½‘åç§°", "9. Rename Battle.net Display" },
    { "é˜Ÿå‹", "Party Member" },
}
for i = 1, #PATCH_105_EXACT_REPLACEMENTS do
    local pair = PATCH_105_EXACT_REPLACEMENTS[i]
    local fromText, toText = pair[1], pair[2]
    FAST_EXACT_REPLACEMENTS[fromText] = FAST_EXACT_REPLACEMENTS[fromText] or toText
    TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { fromText, toText }
end
-- Added by v1.0.6: hardcoded strings that bypass the native locale proxies.
local PATCH_106_EXACT_REPLACEMENTS = {
    { "å‡†å¤‡AOE", "Prepare AOE" },
    { "å‡†å¤‡å¼•çº¿", "Prepare Beam" },
    { "å‡†å¤‡æ‰“æ–­", "Prepare Interrupt" },
    { "å‡†å¤‡æ‹‰äºº", "Prepare Grip" },
    { "å‡†å¤‡æŒ¡çº¿", "Prepare Line Block" },
    { "å‡†å¤‡æŽ¥åœˆ", "Prepare Soak" },
    { "å‡†å¤‡æ¶ˆå±‚", "Prepare Clear Stack" },
    { "å‡†å¤‡ç‚¹å", "Prepare Target" },
    { "å‡†å¤‡è¸©ç®­", "Prepare Arrow" },
    { "å‡†å¤‡è¿›åœˆ", "Prepare Enter Circle" },
    { "å‡†å¤‡è¿žçº¿", "Prepare Link" },
    { "å‡†å¤‡é€çƒ", "Prepare Orb Pass" },
    { "å‡†å¤‡é’©äºº", "Prepare Hook" },
    { "å‡†å¤‡é›†åˆ", "Prepare Stack" },
    { "å‡†å¤‡é©±æ•£", "Prepare Dispel" },
    { "åŽ»æ’žåˆ†èº«", "Hit Clone" },
    { "å¦å…‹å°–åˆº", "Tank Buster" },
    { "å¿«å¡è§†è§’", "Fix Camera" },
    { "å¿«åŽ»æ¶ˆæ°´", "Clear Water" },
    { "å¿«æ‰¾å…‰æŸ±", "Find Beacon" },
    { "å¿«è¸©é™·é˜±", "Step Trap" },
    { "æ³¨æ„å‡»é€€", "Watch Knockback" },
    { "æ³¨æ„å¤´å‰", "Watch Frontal" },
    { "æ³¨æ„æŒ¡çƒ", "Block Orb" },
    { "æ³¨æ„æ¶ˆçƒ", "Clear Orb" },
    { "æ³¨æ„èº²é¿", "Watch Dodge" },
    { "ç‚¹åå¤´å‰", "Target Frontal" },
    { "ç‚¹åæ”¾æ°´", "Target Drop Water" },
    { "ç‚¹åæ¶ˆçº¿", "Target Clear Line" },
    { "èº²å¼€å¤´å‰", "Dodge Frontal" },
    { "è½¬ç«å°æ€ª", "Switch Add" },
    { "è½¬é˜¶æ®µ", "Phase Change" },
    { "è¿œç¦»BOSS", "Away Boss" },
    { "é è¿‘åˆ†æ•£", "Spread Close" },
    { "é£Žç­å°æ€ª", "Kite Add" },
    { "Bossç‹‚æš´", "Boss Enrage" },
    { "Bossæ˜“ä¼¤", "Boss Vulnerability" },
    { "ä½ æ˜¯ç™½è‰²", "You Are White" },
    { "ä½ æ˜¯é»‘è‰²", "You Are Black" },
    { "å‡†å¤‡AOE(æ–­æ¡)", "Prepare AOE (Break)" },
    { "å‡†å¤‡å¸çƒ", "Prepare Absorb Orb" },
    { "å‡ºåŽ»æ”¾æ°´", "Drop Water" },
    { "åŽ»æŽ¥å°æ€ª", "Intercept Add" },
    { "å°„çº¿ç‚¹ä½ ", "Beam On You" },
    { "å°å¿ƒå†²å‡»æ³¢", "Watch Shockwave" },
    { "å°å¿ƒå‡»é£ž", "Watch Launch" },
    { "å¼ºåŒ–å¥¶éª‘", "Empower Holy Paladin" },
    { "å¼ºåŒ–æƒ©æˆ’éª‘", "Empower Retribution Paladin" },
    { "å¼ºåŒ–é˜²éª‘", "Empower Protection Paladin" },
    { "å¿«åˆ†æ•£", "Spread Now" },
    { "å¿«æ‰“æ–­", "Interrupt Now" },
    { "å¿«æ•‘äºº", "Rescue Now" },
    { "å¿«ç ´ç›¾", "Break Shield" },
    { "å¿«è¿›ç½©å­", "Enter Bubble" },
    { "æ‹‰æ–­è¿žçº¿", "Break Link" },
    { "æ˜“ä¼¤çˆ†å‘", "Burst Vulnerability" },
    { "æ³¨æ„å‡ä¼¤", "Use Defensive" },
    { "æ³¨æ„æ²»ç–—", "Watch Healing" },
    { "ç‰¹æ®ŠæŠ€èƒ½", "Special Mechanic" },
    { "è½¬ç«å¤§æ€ª", "Switch Boss" },
    { "è¿œç¦»å¤§æ€ª", "Away Add" },
    { "é›†åˆåˆ†æ‘Š", "Stack Share" },
    { "å€’æ•°5", "Countdown 5" },
    { "å€’æ•°4", "Countdown 4" },
    { "å€’æ•°3", "Countdown 3" },
    { "å€’æ•°2", "Countdown 2" },
    { "å€’æ•°1", "Countdown 1" },
    { "EXWIND(é»˜è®¤)", "EXWIND (Default)" },
    { "å‡†å¤‡æ˜“ä¼¤", "Prepare Vulnerability" },
    { "æ˜“ä¼¤é˜¶æ®µ", "Vulnerability Phase" },
    { "æ˜“ä¼¤é˜¶æ®µ(", "Vulnerability Phase (" },
    { "æ˜“ä¼¤ç»“æŸ", "Vulnerability End" },
    { "%æ˜“ä¼¤é˜¶æ®µ", "% Vulnerability Phase" },
    { "æš‚æ— æ›´æ–°æ—¥å¿—å†…å®¹ã€‚", "No changelog entries yet." },
    { "å¤‡æ³¨:", "Note:" },
    { "å…¨éƒ¨", "All" },
    { "ï¼Œ/reload åŽè‡ªåŠ¨å¤±æ•ˆ", ", automatically expires after /reload" },
    { "|cffff4400ExBoss|r AIè½´è¯­éŸ³è°ƒè¯•å·²å¼€å¯ encounter=", "|cffff4400ExBoss|r AI timeline voice debug enabled encounter=" },
    { "|cffff4400ExBoss|r AIè½´è¯­éŸ³è°ƒè¯•å·²å…³é—­", "|cffff4400ExBoss|r AI timeline voice debug disabled" },
    { "|cffff4400ExBoss|r å°æ€ªæµ‹è¯•ç­‰çº§åç§»å·²å…³é—­", "|cffff4400ExBoss|r Trash test level offset disabled" },
    { "|cffff4400ExBoss|r å°æ€ªæµ‹è¯•ç­‰çº§åç§»: ", "|cffff4400ExBoss|r Trash test level offset: " },
    { "|cffff4400ExBoss|r å°æ€ªåŒ¹é…è°ƒè¯•æ¨¡å—æœªå°±ç»ª", "|cffff4400ExBoss|r Trash match debug module is not ready" },
    { "|cffff4400ExBoss|r: ExwindTools ä¸å¯ç”¨", "|cffff4400ExBoss|r: ExwindTools unavailable" },
    { "|cffff4400ExBoss|r: Panel.Toggle æœªå°±ç»ª â€” P=", "|cffff4400ExBoss|r: Panel.Toggle not ready - P=" },
    { "|cffff4400Ex|r|cff00ccffBoss|r [1/3] ExBoss.lua åŠ è½½å®Œæˆ", "|cffff4400Ex|r|cff00ccffBoss|r [1/3] ExBoss.lua loaded" },
    { "|cff00ff00[æŸçŠ¶æ¡]|r", "|cff00ff00[Bun Bar]|r" },
    { "|cff00ff00[å€’è®¡æ—¶]|r", "|cff00ff00[Countdown]|r" },
    { "|cff00ff00[æ–‡å­—å…¬å‘Š]|r", "|cff00ff00[Flash Text]|r" },
    { "|cff55bbff[æ–‡å­—å…¬å‘Š(ä¸­)]|r", "|cff55bbff[Flash Text (Medium)]|r" },
    { "|cff00ff00[åœ†çŽ¯]|r", "|cff00ff00[Ring]|r" },
    { "|cff00ff00[è®¡æ—¶æ¡]|r", "|cff00ff00[Timer Bar]|r" },
    { "ä¸­å­—æç¤ºç¤ºä¾‹", "Medium Text Alert Example" },
    { "å•æ¡", "Single Bar" },
    { "åž‚ç›´", "Vertical" },
    { "é»˜è®¤", "Default" },
    { "æ—¶é—´è½´äº‹ä»¶", "Timeline Event" },
    { "æ—¶é—´è½´äº‹ä»¶ ", "Timeline Event " },
    { "æœªçŸ¥æŠ€èƒ½", "Unknown Skill" },
    { "MDTé¡µæœªå°±ç»ª", "MDT page is not ready." },
    { "å…³é—­ç¼–è¾‘æ¨¡å¼", "Disable Edit Mode" },
    { "å¼€å¯ç¼–è¾‘æ¨¡å¼", "Enable Edit Mode" },
    { "é¦–é¡µï¼ˆå ä½ï¼‰", "Home (Stub)" },
    { "å‰¯æœ¬(é¦–é¢†)", "Dungeons (Boss)" },
    { "å¯¼å…¥å¯¼å‡º", "Import / Export" },
    { "å°æ€ªCD", "Trash CD" },
    { "å°æ€ªCDé¡µæœªå°±ç»ª", "Trash CD page is not ready." },
    { "å…¶ä»–è¯­éŸ³é¡µå¼‚å¸¸:\n%s", "Other voice page error:\n%s" },
    { "å…¶ä»–è¯­éŸ³é¡µæœªå°±ç»ª", "Other voice page is not ready." },
    { "è¯­éŸ³åŒ…è®¾ç½®é¡µå¼‚å¸¸:\n%s", "Voice pack page error:\n%s" },
    { "è¯­éŸ³åŒ…è®¾ç½®é¡µæœªå°±ç»ª", "Voice pack page is not ready." },
    { "è®¾ç½®é¡µ [%s] â€” å¾…å¼€å‘", "Settings page [%s] - pending." },
    { "å‰¯æœ¬ / BOSS å¯¼èˆª\n(å¾…å¼€å‘)", "Dungeon / Boss Navigation\n(Pending)" },
    { "/exb  æ‰“å¼€/å…³é—­    |    /exb edit  ç¼–è¾‘æ¨¡å¼    |    /exb debug  è°ƒè¯•", "/exb  open/close    |    /exb edit  edit mode    |    /exb debug  debug" },
    { "ä¸­å¤®è­¦å‘Šè¯­éŸ³", "Central Warning Voice" },
    { "ä»…å½“å‰å·²å¯ç”¨", "Currently Enabled Only" },
    { "ä»…å½“å‰å·²ç¦ç”¨", "Currently Disabled Only" },
    { "ä½œç”¨èŒƒå›´", "Scope" },
    { "å…¨éƒ¨BOSS", "All Bosses" },
    { "å…¨éƒ¨äº‹ä»¶", "All Events" },
    { "å…¨éƒ¨å›¢æœ¬BOSS", "All Raid Bosses" },
    { "å…¨éƒ¨å¤§ç§˜å¢ƒBOSS", "All Mythic+ Bosses" },
    { "å…¶ä½™çœç•¥ï¼Œå…±%dæ¡ã€‚", "Remaining entries omitted, %d total." },
    { "åŠ¨ä½œæ•°é‡", "Action Count" },
    { "å‘½ä¸­äº‹ä»¶æ•°é‡", "Matched Event Count" },
    { "å›¢", "Raid" },
    { "å·²åº”ç”¨æ‰¹é‡ä¿®æ”¹ã€‚", "Batch changes applied." },
    { "å½“å‰èŒƒå›´æ²¡æœ‰å‘½ä¸­ä»»ä½•äº‹ä»¶ã€‚", "No events matched the current scope." },
    { "å½“å‰é¢„è§ˆ", "Current Preview" },
    { "æ‰¹é‡ä¿®æ”¹", "Batch Edit" },
    { "æ‰¹é‡åŠ¨ä½œ", "Batch Actions" },
    { "æå‰5ç§’è¯­éŸ³", "5-Second Voice" },
    { "æ“ä½œ", "Operation" },
    { "æ–½æ³•å¼€å§‹è¯­éŸ³", "Cast Start Voice" },
    { "æœ¬æ¬¡åŠ¨ä½œ", "This Action" },
    { "ç”Ÿæˆé¢„è§ˆ", "Generate Preview" },
    { "ç›®æ ‡ç­›é€‰", "Target Filter" },
    { "ç¡®è®¤åº”ç”¨", "Confirm Apply" },
    { "è¯·é€‰æ‹©èŒƒå›´ä¸ŽåŠ¨ä½œï¼Œç„¶åŽç‚¹å‡»ç”Ÿæˆé¢„è§ˆã€‚", "Choose a scope and actions, then click Generate Preview." },
    { "è¯·è‡³å°‘é€‰æ‹©ä¸€æ¡æ‰¹é‡åŠ¨ä½œã€‚", "Select at least one batch action." },
    { "è¿™æ˜¯ç‰©ç†ä¿®æ”¹ï¼Œä¸æ˜¯é¢å¤–å ä¸€å±‚è¿è¡Œæ—¶è§„åˆ™ã€‚åº”ç”¨åŽä¼šçœŸå®žå†™å…¥äº‹ä»¶ overrideï¼Œå¹¶åœ¨å¿…è¦æ—¶é‡å¯å½“å‰ encounterã€‚", "This is a direct edit, not an extra runtime rule layer. Applying writes real event overrides and restarts the current encounter if needed." },
    { "è¿™é‡Œç”¨äºŽçœŸå®žæ‰¹é‡å¯ç”¨/ç¦ç”¨äº‹ä»¶åŠŸèƒ½ã€‚ç¬¬ä¸€ç‰ˆå…ˆè¦†ç›–æ™®é€šäº‹ä»¶çš„å¸¸ç”¨å¼€å…³ï¼Œå¹¶ç›´æŽ¥å†™å…¥ overrideã€‚", "This page performs real batch enable/disable changes for event features. The first version covers common toggles for normal events and writes directly into overrides." },
    { "é€‰æ‹©ä½œç”¨çš„BOSS", "Choose Boss Scope" },
    { "é€‰æ‹©å“ªäº›äº‹ä»¶", "Choose Events" },
    { "é€‰æ‹©ç¦ç”¨å¯ç”¨", "Choose Enable / Disable" },
    { "é€‰æ‹©è¦åšä»€ä¹ˆæ”¹åŠ¨", "Choose Change" },
    { "é¢„è§ˆå‰20æ¡äº‹ä»¶", "Preview first 20 events" },
    { "é¢œè‰²è¦†ç›–", "Color Override" },
    { "BOSSæ–½æ³•æ—¶æ˜¾ç¤ºåœ†çŽ¯", "Show ring on boss casts" },
    { "BOSSæ–½æ³•è”åŠ¨", "Boss Cast Link" },
    { "åŠ è½½ä¸­", "Loading" },
    { "å·²ç¦ç”¨", "Disabled" },
    { "å½’å±ž", "Owner" },
    { "æŠ€èƒ½æ•°", "Skill Count" },
    { "æ–½æ³•æ£€æµ‹", "Cast Detection" },
    { "æš´é›ªè½´", "Blizzard Timeline" },
    { "æœªçŸ¥å‰¯æœ¬ ", "Unknown Dungeon " },
    { "æœªçŸ¥æŠ€èƒ½ ", "Unknown Skill " },
    { "æœªçŸ¥æ¥æº", "Unknown Source" },
    { "æœªçŸ¥æ³•æœ¯", "Unknown Spell" },
    { "æœªé€‰æ‹©å‰¯æœ¬", "No Dungeon Selected" },
    { "æ¥æº", "Source" },
    { "æ¥æºNPCID", "Source NPC ID" },
    { "æµ‹è¯•é¦–é¢†", "Test Boss" },
    { "ç‚¹å‡»ä¸Šæ–¹æ³•æœ¯å¡ç‰‡åŽï¼Œå¯åœ¨æ­¤é…ç½®å•æ³•æœ¯æé†’é€‰é¡¹ã€‚", "Click a spell card above to configure single-spell alert options here." },
    { "ç”Ÿæ•ˆ", "Active" },
    { "ç§äººå…‰çŽ¯æ³•æœ¯", "Private Aura Spell" },
    { "è¯·é€‰æ‹©æœ‰æŠ€èƒ½æ•°æ®çš„ BOSS", "Select a boss with skill data." },
    { "è½´", "Timeline" },
    { "è‡ªå®šä¹‰é¢œè‰²", "Custom Color" },
    { "Xåç§»", "X Offset" },
    { "Yåç§»", "Y Offset" },
    { "å›¾æ ‡å³", "Icon Right" },
    { "å›¾æ ‡å·¦", "Icon Left" },
    { "æ–‡å­—å³", "Text Right" },
    { "æ–‡å­—å·¦", "Text Left" },
    { "å®½åº¦", "Width" },
    { "é«˜åº¦", "Height" },
    { "|cff33ee77å·²å¤åˆ¶è§„åˆ™|r", "|cff33ee77Rule copied|r" },
    { "|cff33ee77å·²æ–°å¢žè§„åˆ™|r", "|cff33ee77Rule added|r" },
}
for i = 1, #PATCH_106_EXACT_REPLACEMENTS do
    local pair = PATCH_106_EXACT_REPLACEMENTS[i]
    local fromText, toText = pair[1], pair[2]
    FAST_EXACT_REPLACEMENTS[fromText] = FAST_EXACT_REPLACEMENTS[fromText] or toText
    TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { fromText, toText }
end
-- Added by v1.0.8: Trash CD page/runtime strings that are built outside normal locale flow.
local PATCH_108_EXACT_REPLACEMENTS = {
    { "é¦–æ¬¡æ–½æ”¾æ—¶é—´ï¼š", "First Cast: " },
    { "CDæ—¶é—´ï¼š", "Cooldown: " },
    { "æŠ€èƒ½ ", "Spell " },
    { "å°æ€ªæŠ€èƒ½", "Trash Spell" },
    { "L1å€™é€‰: ", "L1 Candidates: " },
    { "è¯­éŸ³åŒ…æ ‡ç­¾", "Voice Pack Label" },
    { "LSMéŸ³æ•ˆ", "LSM Sound" },
    { "è‡ªå®šä¹‰è·¯å¾„", "Custom Path" },
    { "å»¶è¿Ÿ", "Delay" },
    { "æå‰", "Early" },
    { "æš‚æ— æè¿°ã€‚", "No description." },
    { "æš‚æ— æè¿°", "No description" },
    { "æš‚æ— æ–½æ³•ä¿¡æ¯", "No cast information." },
    { "ç‚¹å‡»å·¦ä¾§æ³•æœ¯åŽï¼Œå¯åœ¨æ­¤æŸ¥çœ‹æ³•æœ¯æè¿°ã€‚", "Click a spell on the left to view its description here." },
    { "å¯ç”¨", "Enabled" },
    { "å¦å…‹", "Tank" },
    { "æ²»ç–—", "Healer" },
    { "è¾“å‡º", "DPS" },
    { "å¯ç”¨é¢œè‰²è¦†ç›–", "Enable Color Override" },
    { "è‡ªå®šä¹‰é¢œè‰²", "Custom Color" },
    { "æ–‡æœ¬è®¾ç½®", "Text Settings" },
    { "ä¸­å¤®æ–‡æœ¬", "Center Text" },
    { "æå‰(ç§’)", "Lead (sec)" },
    { "ä¸­å¤®æ–‡æœ¬å†…å®¹ï¼ˆå¯ç”¨ {name}ï¼‰", "Center Text ({name} supported)" },
    { "æå‰5ç§’", "5 Seconds Early" },
    { "(å¯ç”¨ {name})", "({name} supported)" },
    { "è®¡æ—¶æ¡æ”¹å", "Rename Timer Bar" },
    { "è¯­éŸ³è®¾ç½®", "Voice Settings" },
    { "æ–½æ³•å¼€å§‹", "Cast Start" },
    { "è¯­éŸ³æ¥æº", "Voice Source" },
    { "è¯­éŸ³æ ‡ç­¾", "Voice Label" },
    { "æ–‡ä»¶è·¯å¾„", "File Path" },
    { "è¯•å¬", "Preview" },
    { "ç§’", "sec" },
    { "æ˜¾ç¤ºä½ç½®", "Display Locations" },
    { "ç«–æ¡", "Bun Bar" },
    { "è®¡æ—¶æ¡", "Timer Bar" },
    { "å§“åç‰ˆ", "Nameplate" },
    { "åœ†çŽ¯", "Ring" },
    { "æ–½æ³•æ£€æµ‹", "Cast Detection" },
    { "æœªå¯ç”¨", "Disabled" },
    { "å‰¯æœ¬åˆ‡æ¢", "Dungeon Switch" },
    { "æ³•æœ¯é€‰æ‹©", "Spell List" },
    { "å½“å‰æ³•æœ¯è®¾ç½®", "Current Spell Settings" },
    { "å°æ€ªå†…ç½®CDå·²è½½å…¥,è¯¥åŠŸèƒ½æµ‹è¯•ä¸­ å¦‚é‡åˆ°é—®é¢˜è¯·åé¦ˆç»™æˆ‘ è°¢è°¢!", "trash built-in CDs loaded. This feature is still in testing; please report issues. Thanks!" },
    { "è¿›å…¥ |cffffd100", "Entered |cffffd100" },
    { "|r å°æ€ªå†…ç½®CDå·²è½½å…¥,è¯¥åŠŸèƒ½æµ‹è¯•ä¸­ å¦‚é‡åˆ°é—®é¢˜è¯·åé¦ˆç»™æˆ‘ è°¢è°¢!", "|r trash built-in CDs loaded. This feature is still in testing; please report issues. Thanks!" },
    { "2å·BOSS |cffffd100ç‹—è·³ç‚¹åæ¨¡å—|rå·²è½½å…¥ è¯¥åŠŸèƒ½æµ‹è¯•ä¸­ ä»…ä¾›å‚è€ƒ!", "Boss 2 |cffffd100dog leap target module|r loaded. This feature is still in testing and for reference only!" },
}
for i = 1, #PATCH_108_EXACT_REPLACEMENTS do
    local pair = PATCH_108_EXACT_REPLACEMENTS[i]
    local fromText, toText = pair[1], pair[2]
    FAST_EXACT_REPLACEMENTS[fromText] = FAST_EXACT_REPLACEMENTS[fromText] or toText
    TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { fromText, toText }
end
local SAFE_CHINESE_TEXT_REPLACEMENTS = {
    { "è™šå½±å°–å¡”", "The Voidspire" },
    { "æ¢¦å¢ƒè£‚éš™", "The Dreamrift" },
    { "è¿›å†›å¥Žå°”ä¸¹çº³æ–¯", "March on Quel'Danas" },
    { "è§£æ”¾å®‰å¾·éº¦", "Liberation of Undermine" },
    { "å°¼é²å·´å°”çŽ‹å®«", "Nerub-ar Palace" },
    { "æ°¸æ’çŽ‹å®«", "The Eternal Palace" },
    { "å›¢æœ¬å¦å…‹", "Raid Tank" },
    { "å›¢æœ¬DPS", "Raid DPS" },
    { "å›¢æœ¬æ²»ç–—", "Raid Healer" },
    { "å¤§ç±³å¦å…‹", "Mythic+ Tank" },
    { "å¤§ç±³DPS", "Mythic+ DPS" },
    { "å¤§ç±³æ²»ç–—", "Mythic+ Healer" },
    { "å›¢æœ¬æ–¹æ¡ˆ", "Raid Profiles" },
    { "å¤§ç±³æ–¹æ¡ˆ", "Mythic+ Profiles" },
    { "å›¢æœ¬é…ç½®ï¼š%s%s", "Raid Profiles: %s%s" },
    { "å›¢æœ¬æ§½ä½å·²å¯¼å…¥", "Raid slots imported" },
    { "å›¢æœ¬é¦–é¢†ï¼š%d  |  å¤§ç±³å‰¯æœ¬ï¼š%d", "Raid Bosses: %d  |  Mythic+ Dungeons: %d" },
    { "å›¢æœ¬é¦–é¢†æˆ˜  |  encounterID:%s  |  æ³•æœ¯æ•°:%d", "Raid Boss Encounter  |  encounterID:%s  |  Spells: %d" },
    { "æŸ¥çœ‹å½“å‰è¯­éŸ³æ³¨å†Œç»†èŠ‚ï¼ˆé»˜è®¤ä»…æ˜¾ç¤ºéžå›¢æœ¬ï¼‰ï¼šå‰¯æœ¬ > BOSSåç§°(æ•°é‡) + eventID(trigger0/1/2)ã€‚", "Shows current voice registration details (default = non-raid only): Dungeon > Boss Name (count) + eventID(trigger0/1/2)." },
    { "éžå›¢æœ¬å·²æ³¨å†ŒBOSS: %d  |  éžå›¢æœ¬äº‹ä»¶: %d / å…¨é‡: %d  |  è§¦å‘å™¨äº‹ä»¶(0/1/2): %d/%d/%d%s", "Non-raid registered bosses: %d  |  Non-raid events: %d / Total: %d  |  Trigger events (0/1/2): %d/%d/%d%s" },
    { "æš‚æ— éžå›¢æœ¬å·²æ³¨å†ŒBOSS", "No non-raid registered bosses" },
    { "å›¢æœ¬å·²è¿‡æ»¤: %d", "Raid filtered: %d" },
    { "æŽ§åˆ¶å…¨å±€æ˜¾ç¤ºï¼šä»…è®¡æ—¶æ¡ / ä»…æŸçŠ¶æ¡ / ä¸¤è€…éƒ½å¯ç”¨ / ä¸¤è€…éƒ½éšè—ã€‚\nå¯å•ç‹¬å…³é—­å¤§ç§˜å¢ƒæˆ–å›¢æœ¬é¦–é¢†æç¤ºï¼›å…³é—­åŽå°†æ•´ä½“ç¦ç”¨è¯¥åœºæ™¯çš„ Boss è®¡æ—¶ã€ä¸­å¤®æ–‡å­—ã€è¯­éŸ³ä¸Žé¢œè‰²è¦†ç›–ã€‚\nå¯é€‰ï¼šé¦–é¢†æˆ˜ä¸­è‡ªåŠ¨å°†æˆ˜æ–—éŸ³é¢‘é¢„è­¦åˆ†ç±»éŸ³é‡é™éŸ³ï¼ˆ0ï¼‰ï¼Œè„±æˆ˜æ¢å¤åŽŸå€¼ã€‚", "Controls the global display mode: Timer Bar only / Bun Bar only / both enabled / both hidden.\nYou can disable Mythic+ or Raid boss alerts separately; disabling one scene also disables its boss timers, center text, voice alerts, and color overlays.\nOptional: mute combat audio warning volume to 0 during boss fights and restore it after combat." },
    { "å›¢æœ¬é…ç½®å°šæœªå®Œå·¥ï¼Œç¡®è®¤å¯ç”¨ï¼Ÿ", "Raid configuration is not finished yet. Enable it anyway?" },
    { "å¯¼å‡ºæˆåŠŸ", "Export Successful" },
    { "Ctrl+C å¤åˆ¶å¹¶è‡ªåŠ¨å…³é—­ï¼Œæˆ–ç‚¹å‡» å…¨é€‰å¤åˆ¶ æŒ‰é’®", "Press Ctrl+C to copy and auto-close, or click Select All." },
    { "å·²å¤åˆ¶åˆ°å‰ªè´´æ¿", "Copied to clipboard" },
    { "å…¨é€‰å¤åˆ¶", "Select All" },
    { "å…³é—­", "Close" },
    { "ç¡®è®¤åˆ é™¤æ–¹æ¡ˆï¼š%s ï¼Ÿ", "Delete profile: %s ?" },
    { "åˆ é™¤", "Delete" },
    { "å–æ¶ˆ", "Cancel" },
    { "å¯¼å…¥å¯¼å‡ºæ¨¡å—æœªåŠ è½½", "Import / Export module is not loaded" },
    { "è¯·è‡³å°‘å‹¾é€‰ä¸€é¡¹å¯¼å‡ºå†…å®¹", "Select at least one export option" },
    { "è¯·å…ˆç²˜è´´å¯¼å‡ºå­—ç¬¦ä¸²", "Paste an export string first" },
    { "è§£æžå¤±è´¥ï¼š", "Parse failed: " },
    { "è§£æžæˆåŠŸï¼Œé€‰æ‹©è¦å¯¼å…¥çš„å†…å®¹åŽç‚¹å‡»[æ‰§è¡Œå¯¼å…¥]", "Parse successful. Choose what to import, then click [Run Import]." },
    { "è¯·å…ˆç‚¹å‡»[è§£æž]æŒ‰é’®", "Click [Parse] first" },
    { "è¯·è‡³å°‘å‹¾é€‰ä¸€é¡¹å¯¼å…¥å†…å®¹", "Select at least one import option" },
    { "å¯¼å…¥æˆåŠŸï¼š", "Import successful: " },
    { "å¯¼å…¥å¤±è´¥ï¼š", "Import failed: " },
    { "è¯»å–æ‘˜è¦å¤±è´¥ï¼š", "Failed to read summary: " },
    { "é…ç½®åç§°", "Profile Name" },
    { "æœªå‘½åé…ç½®", "Untitled Profile" },
    { "å¤‡æ³¨ï¼ˆå¯é€‰ï¼‰", "Notes (Optional)" },
    { "æ— ", "None" },
    { "å¯¼å‡ºå†…å®¹", "Export Contents" },
    { "å¯¼å…¥å†…å®¹", "Import Contents" },
    { "æ‰§è¡Œå¯¼å…¥", "Run Import" },
    { "é€‰æ‹©æ–¹æ¡ˆ", "Select Profile" },
    { "æ§½ä½ï¼š%s    ä½œè€…æ–¹æ¡ˆï¼š%s", "Slot: %s   Profile: %s" },
    { "é…ç½®åï¼š", "Profile Name: " },
    { "å¯¼å‡ºè€…ï¼š", "Exporter: " },
    { "æ—¶é—´ï¼š", "Time: " },
    { "å¤‡æ³¨ï¼š", "Notes: " },
    { "å¤–è§‚ï¼š", "Appearance: " },
    { "åŒ…å«", "Included" },
    { "å›¢æœ¬é…ç½®ï¼š", "Raid Profiles: " },
    { "å¤§ç±³é…ç½®ï¼š", "Mythic+ Profiles: " },
    { "æ¡äº‹ä»¶", "events" },
    { "å®˜æ–¹é»˜è®¤è¯­éŸ³åŒ…", "Official default voice pack" },
    { "ä¸­æ–‡é…éŸ³è¯­éŸ³åŒ…", "Chinese voice pack" },
    { "å¿˜å¿§æ™¯ä¹…è¯­éŸ³åŒ…ï¼Œæ ‡ç­¾ä¸Žé»˜è®¤åŒ…å…¼å®¹ï¼Œå¯ç›´æŽ¥æ›¿æ¢å…¨å±€è¯­éŸ³ã€‚", "Wangyou Jingjiu voice pack. Compatible with the default labels and can replace the global voice pack directly." },
    { "é¡¾è¡£è¡¿å°‘å¥³éŸ³ç‰ˆæœ¬ï¼Œä¿ç•™åŒä¸€å¥—æ ‡ç­¾ç»“æž„ï¼Œä¾¿äºŽç»Ÿä¸€åˆ‡æ¢ã€‚", "Guyijin girl-voice version using the same label layout for easy switching." },
    { "é¡¾è¡£è¡¿å¾¡å§éŸ³ç‰ˆæœ¬ï¼Œä¿æŒæ ‡ç­¾å…¼å®¹ï¼Œé€‚é…çŽ°æœ‰å‰¯æœ¬æ–¹æ¡ˆã€‚", "Guyijin lady-voice version with compatible labels for existing dungeon profiles." },
    { "Kele è¯­éŸ³åŒ…ï¼Œæ ‡ç­¾å…¼å®¹é»˜è®¤æ–¹æ¡ˆï¼Œå¯ç›´æŽ¥ç”¨äºŽå‰¯æœ¬é…ç½®ã€‚", "Kele voice pack. Compatible with the default labels and ready for dungeon profiles." },
    { "å¤ä¸€å¯è¯­éŸ³åŒ…ï¼Œä¿æŒæ ‡å‡†æ ‡ç­¾å…¼å®¹ï¼Œå¯ç›´æŽ¥åˆ‡æ¢ä½¿ç”¨ã€‚", "Xiayike voice pack. Keeps standard label compatibility and is ready to use." },
    { "ç„¶ç„¶è¯­éŸ³åŒ…ï¼ŒåŒ…å«æ ‡å‡†æ ‡ç­¾ä¸Žå€’æ•°è¯­éŸ³ã€‚", "Ranran voice pack with standard labels and countdown lines." },
    { "ç³–ç³–é…±è¯­éŸ³åŒ…ï¼Œæ ‡ç­¾ç»“æž„ä¸Žé»˜è®¤åŒ…å…¼å®¹ã€‚", "Tangtangjiang voice pack. Compatible with the default label structure." },
    { "å°ç¾Š Yagi è¯­éŸ³åŒ…ï¼ŒåŒ…å«æ ‡å‡†æ ‡ç­¾ä¸Žå€’æ•°è¯­éŸ³ã€‚", "Yagi voice pack with standard labels and countdown lines." },
    { "ä½ å¥½ç‰›è¯­éŸ³åŒ…ï¼Œæ¥æºç›®å½•ä¸ºç‰›å¸ˆå‚…ï¼ŒåŒ…å«æ ‡å‡†æ ‡ç­¾ä¸Žå€’æ•°è¯­éŸ³ã€‚", "Niuniu voice pack sourced from Niushifu, with standard labels and countdown lines." },
    { "ç»«é›¶è¯­éŸ³åŒ…ï¼Œä½¿ç”¨æ ‡å‡†æ ‡ç­¾ç»“æž„ï¼Œå…¼å®¹é»˜è®¤åŒ…é…ç½®ã€‚", "Ayarei voice pack using the standard label structure and default profile compatibility." },
    { "éœ²éœ²ç·¹å©­è¯­éŸ³åŒ…ï¼Œæ ‡ç­¾ç»“æž„ä¸Žé»˜è®¤åŒ…å…¼å®¹ã€‚", "Rurutia voice pack. Compatible with the default label structure." },
    { "è¯·é€‰æ‹©é…ç½®", "Please select a profile" },
    { "â— å½“å‰ä½¿ç”¨ä¸­", "â— Active" },
    { "ç¼ºå°‘è¯­éŸ³", "Missing Labels" },
    { "ç¼ºå°‘è¯­éŸ³ï¼š?", "Missing Labels: ?" },
    { "ç¼ºå°‘è¯­éŸ³ï¼š0", "Missing Labels: 0" },
    { "å·²è¦†ç›–é»˜è®¤è¯­éŸ³æ ‡ç­¾", "Covers all default voice labels" },
    { "é…ç½®æ–¹æ¡ˆ", "Profile Slots" },
    { "Boss é…ç½®æ¨¡å—æœªåŠ è½½", "Boss config module is not loaded" },
    { "å·²åˆ‡æ¢ ", "Switched " },
    { "åº”ç”¨å¤±è´¥ï¼š", "Apply failed: " },
    { "é€šç”¨è®¾ç½®", "General Settings" },
    { "é€šç”¨é¢œè‰²æ–¹æ¡ˆ", "General Color Schemes" },
    { "æŸçŠ¶æ¡", "Bun Bar" },
    { "å€’è®¡æ—¶", "Countdown" },
    { "æ–‡å­—å…¬å‘Š", "Center Text" },
    { "åœ†çŽ¯è¿›åº¦", "Ring Progress" },
    { "è¯­éŸ³æ³¨å†Œç›‘æŽ§", "Voice Registration Monitor" },
    { "ç§äººå…‰çŽ¯ç›‘æŽ§", "Private Aura Monitor" },
    { "é‡ç½®è®¾ç½®", "Reset Settings" },
    { "å€’è®¡æ—¶è®¾ç½®", "Countdown Settings" },
    { "è®¡æ—¶æ¡è®¾ç½®", "Timer Bar Settings" },
    { "è®¡æ—¶æ¡æ‰€æœ‰å¤–è§‚çš„è®¾ç½®", "All appearance settings for the timer bar." },
    { "è®¡æ—¶æ¡å¤–è§‚", "Timer Bar Appearance" },
    { "æ³•æœ¯åç§°", "Spell Name" },
    { "æ—¶é—´æ–‡æœ¬", "Time Text" },
    { "æŠ€èƒ½é¢„è­¦æ—¶åœ¨å±å¹•ä¸­å¤®æ˜¾ç¤º5ç§’å€’æ•°æ–‡å­—ã€‚", "Shows a 5-second center-screen countdown when a spell alert triggers." },
    { "%s = æŠ€èƒ½åç§°  %t = å€’è®¡æ—¶æ•°å­—", "%s = Spell Name  %t = Countdown Number" },
    { "%s = æŠ€èƒ½åç§° %t = å€’è®¡æ—¶æ•°å­—", "%s = Spell Name %t = Countdown Number" },
    { "æ˜¾ç¤ºå›¾æ ‡", "Show Icon" },
    { "æ˜¾ç¤ºå°æ•°ç‚¹", "Show Decimal" },
    { "å›¾æ ‡å¤§å°", "Icon Size" },
    { "æ¨¡æ¿", "Template" },
    { "é¢„è§ˆï¼š", "Preview:" },
    { "é¢„è§ˆ", "Preview" },
    { "æç¤ºæ–‡å­—å­—ä½“ (%s)", "Alert Text Font (%s)" },
    { "æç¤ºæ–‡å­—", "Alert Text" },
    { "å€’è®¡æ—¶æ•°å­—å­—ä½“ (%t)", "Countdown Number Font (%t)" },
    { "å€’è®¡æ—¶æ•°å­—", "Countdown Number" },
    { "æ›´æ–°æ—¥å¿—", "Changelog" },
    { "é€šç”¨", "General" },
    { "æ˜¾ç¤ºåç§°", "Show Name" },
    { "æ˜¾ç¤ºæ—¶é—´", "Show Time" },
    { "æ¡å¢žé•¿æ–¹å¼", "Bar Fill Mode" },
    { "å·¦åˆ°å³å¡«å……", "Left to Right Fill" },
    { "å·¦åˆ°å³æ¶ˆé€€", "Left to Right Fade" },
    { "å³åˆ°å·¦å¡«å……", "Right to Left Fill" },
    { "å³åˆ°å·¦æ¶ˆé€€", "Right to Left Fade" },
    { "é—´è·", "Spacing" },
    { "æœ€å¤§æ˜¾ç¤ºæ•°é‡", "Maximum Visible Bars" },
    { "å¢žé•¿æ–¹å‘", "Growth Direction" },
    { "æ°´å¹³ä½ç½® (X)", "Horizontal Position (X)" },
    { "åž‚ç›´ä½ç½® (Y)", "Vertical Position (Y)" },
    { "é‡ç½®ä½ç½®", "Reset Position" },
    { "èƒŒæ™¯è®¾ç½®", "Background Settings" },
    { "èƒŒæ™¯æè´¨", "Background Texture" },
    { "èƒŒæ™¯é¢œè‰²", "Background Color" },
    { "è¾¹æ¡†æè´¨", "Border Texture" },
    { "è¾¹æ¡†é¢œè‰²", "Border Color" },
    { "è¾¹æ¡†ç²—ç»†", "Border Width" },
    { "è¾¹æ¡†å†…è·", "Border Inset" },
    { "æ˜¾ç¤ºèƒŒæ™¯", "Show Background" },
    { "æ˜¾ç¤ºè¾¹æ¡†", "Show Border" },
    { "æ˜¾ç¤ºå†·å´æ—‹æ¶¡", "Show Cooldown Spiral" },
    { "æ˜¾ç¤ºæ•°å­—å€’è®¡æ—¶", "Show Numeric Countdown" },
    { "åç§°ä½ç½®", "Name Position" },
    { "å›¾æ ‡å·¦è¾¹", "Left of Icon" },
    { "å›¾æ ‡å³è¾¹", "Right of Icon" },
    { "å›¾æ¡ˆå€’æ•°æ—¶é—´", "Pattern Countdown Time" },
    { "èƒŒæ™¯çº¿ç²—ç»†", "Background Line Width" },
    { "èƒŒæ™¯çº¿é¢œè‰²", "Background Line Color" },
    { "5ç§’çº¿ç²—ç»†", "5s Line Width" },
    { "5ç§’çº¿é¢œè‰²", "5s Line Color" },
    { "è½½å…¥è®¾ç½®", "Load Settings" },
    { "è¿™é‡Œç»Ÿä¸€ç®¡ç† EXBoss çš„å…¨å±€æ˜¾ç¤ºæ¨¡å¼ä¸Žè¯­éŸ³è¾“å‡º", "This page manages EXBoss global display mode and voice output." },
    { "å…¨å±€æ˜¾ç¤ºæ¨¡å¼ä¸Žè¯­éŸ³è¾“å‡ºã€‚", "Global display mode and voice output." },
    { "å¯ç”¨å¤§ç§˜å¢ƒé¦–é¢†æç¤º", "Enable Mythic+ Boss Alerts" },
    { "å¯ç”¨å›¢æœ¬é¦–é¢†æç¤º", "Enable Raid Boss Alerts" },
    { "å…³é—­æš´é›ªåŽŸç”ŸTimer Bar", "Disable Blizzard Encounter Timeline" },
    { "é¦–é¢†æˆ˜æ—¶è‡ªåŠ¨å…³é—­æˆ˜æ–—éŸ³é¢‘é¢„è­¦", "Mute Combat Audio Alerts During Boss Fights" },
    { "å¼€å¯æš´é›ªä¸­å¤®æ–‡å­—é¢„è­¦ï¼ˆæ³¨æ„ï¼šå¦‚æžœå…³é—­ä¼šå¯¼è‡´è¯­éŸ³ä¸å·¥ä½œï¼‰", "Enable Blizzard Center-Screen Warnings (required for voice alerts)" },
    { "éŸ³é¢‘è¾“å‡ºé€‰é¡¹", "Audio Output Options" },
    { "è¾“å‡ºé€šé“", "Audio Channel" },
    { "å…¨å±€éŸ³é‡", "Global Volume" },
    { "4ä¸ªå›ºå®šColoræ–¹æ¡ˆ + 1ä¸ªè‡ªå®šä¹‰æ–¹æ¡ˆ + æœ€å¤š3ä¸ªé¢å¤–æ–¹æ¡ˆã€‚BossSkillé¡µå¯ç›´æŽ¥é€‰æ‹©æ–¹æ¡ˆæˆ–è‡ªå®šä¹‰Colorã€‚", "4 fixed color schemes + 1 custom scheme + up to 3 extra schemes. The Boss Skill page can select a scheme directly or use a custom color." },
    { "BossSkillé¡µå¯é€‰æ‹©ä¸‹åˆ—æ–¹æ¡ˆï¼›é€‰æ‹©â€œè‡ªå®šä¹‰Colorâ€æ—¶ä½¿ç”¨â€œè‡ªå®šä¹‰æ–¹æ¡ˆâ€ã€‚å‹¾é€‰Enableçš„é¢å¤–æ–¹æ¡ˆä¼šå‡ºçŽ°åœ¨Skillé¡µä¸‹æ‹‰ã€‚", "The Boss Skill page can use the schemes below. Choosing \"Custom Color\" uses the \"Custom Scheme\". Enabled extra schemes also appear in the Skill page dropdown." },
    { "å¦å…‹æ–¹æ¡ˆ", "Tank Scheme" },
    { "æ²»ç–—æ–¹æ¡ˆ", "Healer Scheme" },
    { "ç‰¹æ®Šæœºåˆ¶", "Special Mechanic" },
    { "è‡ªå®šä¹‰æ–¹æ¡ˆå", "Custom Scheme Name" },
    { "è‡ªå®šä¹‰æ–¹æ¡ˆ", "Custom Scheme" },
    { "é¢å¤–æ–¹æ¡ˆï¼ˆæœ€å¤š3ä¸ªï¼‰", "Extra Schemes (up to 3)" },
    { "é¢å¤–æ–¹æ¡ˆ1", "Extra Scheme 1" },
    { "é¢å¤–æ–¹æ¡ˆ2", "Extra Scheme 2" },
    { "é¢å¤–æ–¹æ¡ˆ3", "Extra Scheme 3" },
    { "å¯¼å‡ºå†…å®¹", "Export Contents" },
    { "å¯¼å…¥å†…å®¹", "Import Contents" },
    { "ç²˜è´´å¯¼å‡ºå­—ç¬¦ä¸²", "Paste Export String" },
    { "å¤–è§‚è®¾ç½®ï¼ˆè®¡æ—¶æ¡å¤–è§‚ç­‰ï¼‰", "Appearance Settings (Timer Bar Style, etc.)" },
    { "å¯¼å…¥å¤–è§‚è®¾ç½®ï¼ˆç«‹å³åº”ç”¨ï¼‰", "Import Appearance Settings (apply immediately)" },
    { "å¯¼å…¥ä½œè€…åï¼ˆç•™ç©ºåˆ™ä½¿ç”¨é…ç½®åï¼‰", "Imported Author Name (blank = profile name)" },
    { "å›ºå®šæ—¶é—´è½´æ€»è§ˆ", "Fixed Timeline Overview" },
    { "æŸ¥çœ‹å½“å‰è¯­éŸ³æ³¨å†Œç»†èŠ‚ï¼ˆDefaultä»…æ˜¾ç¤ºéžå›¢æœ¬ï¼‰ï¼šDungeon > BOSSåç§°(æ•°é‡) + eventID(trigger0/1/2)ã€‚", "Shows current voice registration details (default = non-raid only): Dungeon > Boss Name (count) + eventID(trigger0/1/2)." },
    { "å½“å‰è¯­éŸ³æ³¨å†ŒçŠ¶æ€", "Current Voice Registration State" },
    { "æŸ¥çœ‹å½“å‰è¯­éŸ³æ³¨å†Œç»†èŠ‚ï¼ˆDefaultä»…æ˜¾ç¤ºéžå›¢æœ¬ï¼‰ï¼šDungeons > BOSSåç§°(æ•°é‡) + eventID(trigger0/1/2)ã€‚", "Shows current voice registration details (default = non-raid only): Dungeons > Boss Name (count) + eventID(trigger0/1/2)." },
    { "éžå›¢æœ¬å·²æ³¨å†ŒBOSS: 0  |  éžå›¢æœ¬Event: 0 / å…¨é‡: 0  |  è§¦å‘å™¨Event(0/1/2): 0/0/0", "Non-raid registered bosses: 0  |  Non-raid events: 0 / Total: 0  |  Trigger events (0/1/2): 0/0/0" },
    { "æš‚æ— Noneéžå›¢æœ¬å·²æ³¨å†ŒBOSS", "No non-raid registered bosses" },
    { "å½“å‰èŒè´£: dps", "Current role: dps" },
    { "æç¤º: å½“å‰æ˜¯ä»€ä¹ˆèŒè´£ï¼Œå°±è‡ªåŠ¨ä½¿ç”¨å¹¶ç¼–è¾‘å¯¹åº”çš„Raid/Mythic+ Profiles.", "Alert: the active role automatically selects and edits the matching Raid / Mythic+ Profiles." },
    { "æœ€è¿‘åˆ·æ–°: -", "Last Refresh: -" },
    { "æœ€è¿‘åˆ·æ–°:", "Last Refresh:" },
    { "æœ€è¿‘é”™è¯¯:", "Last error:" },
    { "è¯­éŸ³å¼•æ“Žæœªå°±ç»ªï¼Œæ— æ³•è¯»å–æ³¨å†ŒçŠ¶æ€ã€‚", "The voice engine is not ready, so the registration state cannot be read." },
    { "æ³¨å†Œå¿«ç…§ä¸ºç©ºã€‚", "The registration snapshot is empty." },
    { "è¯­éŸ³æ¥æº", "Voice Source" },
    { "è¯­éŸ³æ ‡ç­¾", "Voice Label" },
    { "è¯­éŸ³åŒ…æ ‡ç­¾", "Voice Pack Label" },
    { "è¯­éŸ³ / é…ç½®", "Voice / Profiles" },
    { "è¯­éŸ³/é…ç½®", "Voice / Profiles" },
    { "å·¦ä¾§é€‰æ‹©è¯­éŸ³åŒ…ï¼Œå³ä¾§æŒ‰å›¢æœ¬ / å¤§ç±³é…ç½®ä½œè€…æ–¹æ¡ˆã€‚", "Choose a Voice Pack on the left, then configure Raid / Mythic+ author profiles on the right." },
    { "å·¦ä¾§é€‰æ‹©Voice Packï¼Œå³ä¾§æŒ‰å›¢æœ¬ / å¤§ç±³é…ç½® Author Profileã€‚", "Choose a Voice Pack on the left, then configure Raid / Mythic+ Author Profiles on the right." },
    { "æŒ‰ 6 ä¸ªèŒè´£æ§½ä½é€‰æ‹©ä½œè€…æ–¹æ¡ˆï¼›å‰¯æœ¬é¡µä¼šæŒ‰å½“å‰èŒè´£è‡ªåŠ¨å†™å…¥å¯¹åº”çš„å›¢æœ¬ / å¤§ç±³æ–¹æ¡ˆã€‚", "Choose author profiles for the 6 role slots; the dungeon page writes the matching Raid / Mythic+ profile automatically for the current role." },
    { "æŒ‰ 6 ä¸ªèŒè´£æ§½ä½é€‰æ‹©Author Profileï¼›Dungeonsé¡µä¼šæŒ‰å½“å‰èŒè´£è‡ªåŠ¨å†™å…¥å¯¹åº”çš„å›¢æœ¬ / Mythic+ Profileã€‚", "Choose author profiles for the 6 role slots; the Dungeons page writes the matching Raid / Mythic+ profile automatically for the current role." },
    { "å½“å‰èŒè´£è¿›å…¥å›¢æœ¬æ—¶è‡ªåŠ¨ä½¿ç”¨ã€‚", "Automatically used when entering raids with the current role." },
    { "å½“å‰èŒè´£è¿›å…¥å¤§ç±³æ—¶è‡ªåŠ¨ä½¿ç”¨ã€‚", "Automatically used when entering Mythic+ with the current role." },
    { "6 æ§½ä½ä½œè€…æ–¹æ¡ˆå·²æŽ¥å…¥ï¼Œå‰¯æœ¬é¡µä¼šæŒ‰å½“å‰èŒè´£è‡ªåŠ¨å†™å…¥å¯¹åº”æ–¹æ¡ˆã€‚", "6 author profile slots are active. The dungeon page automatically writes the matching profile for your current role." },
    { "è¯­éŸ³/é…ç½®é¡µé¢ä¾èµ– ExwindTools.UIï¼Œå½“å‰æœªå°±ç»ªã€‚è¯·ç¡®è®¤ ExwindCore å·²æ­£ç¡®åŠ è½½åŽé‡å¼€é¢æ¿ã€‚", "The Voice / Profiles page depends on ExwindTools.UI. Make sure ExwindCore loaded correctly, then reopen the panel." },
    { "è¯­éŸ³åŒ…", "Voice Pack" },
    { "é€‰æ‹©è¯­éŸ³åŒ…", "Select Voice Pack" },
    { "å½“å‰è¯­éŸ³åŒ…", "Current Voice Pack" },
    { "ç®€ä»‹", "Description" },
    { "ä½œè€…", "Author" },
    { "ç‰ˆæœ¬", "Version" },
    { "ç¼ºå°‘è¯­éŸ³", "Missing Labels" },
    { "å®˜æ–¹EXBossé»˜è®¤è¯­éŸ³åŒ…", "Official EXBoss default voice pack" },
    { "ExBoss å®˜æ–¹é»˜è®¤è¯­éŸ³åŒ…", "Official EXBoss default voice pack" },
    { "ExBoss å®˜æ–¹é»˜è®¤ Voice Pack", "Official EXBoss default voice pack" },
    { "è¦†ç›–å¸¸è§Bossä¸ŽMythic+Voicelabelsï¼Œæ ‡å‡†å‚è€ƒå®žçŽ°ã€‚", "Covers common boss and Mythic+ voice labels with the standard reference implementation." },
    { "è¦†ç›–å¸¸è§Bossä¸ŽMythic+Voicelabels, æ ‡å‡†å‚è€ƒå®žçŽ°ã€‚", "Covers common boss and Mythic+ voice labels with the standard reference implementation." },
    { "ä¸­æ–‡é…éŸ³è¯­éŸ³åŒ…", "Chinese voice pack" },
    { "æ ‡ç­¾ä¸Žé»˜è®¤åŒ…å…¼å®¹ï¼Œå¯ç›´æŽ¥æ›¿æ¢å…¨å±€è¯­éŸ³ã€‚", "Compatible with the default label set and can replace the global voice pack." },
    { "ä¸­å¤®æ–‡æœ¬", "Center Text" },
    { "ä¸­å¤®æ–‡æœ¬å†…å®¹ï¼ˆå¯ç”¨ {name}ï¼‰", "Center Text Content (supports {name})" },
    { "æŠ€èƒ½è§¦å‘æ—¶åœ¨Screen Centeræ˜¾ç¤ºSpell Nameï¼ˆæ·¡å…¥ â†’ åœç•™ â†’ æ·¡å‡ºï¼‰ã€‚", "Displays the Spell Name in the screen center when the skill triggers (fade in â†’ hold â†’ fade out)." },
    { "ä¸­å¿ƒæ–‡æœ¬", "Center Text" },
    { "ä¸­å¤®è­¦å‘Š", "Center Warning" },
    { "æ–½æ³•å¼€å§‹", "Cast Start" },
    { "æå‰5ç§’", "Pre-Alert 5s" },
    { "æå‰(ç§’)", "Pre-Alert (sec)" },
    { "è®¡æ—¶æ¡æ”¹å", "Rename Timer Bar" },
    { "è¯•å¬", "Preview" },
    { "å»¶è¿Ÿ", "Delay" },
    { "æ¨¡æ¿ï¼ˆ%s=æŠ€èƒ½å %t=å€’è®¡æ—¶æ•°å­—ï¼‰", "Template (%s = spell name  %t = countdown number)" },
    { "æç¤ºæ–‡å­—å­—ä½“ï¼ˆ%sï¼‰", "Alert Text Font (%s)" },
    { "å€’è®¡æ—¶æ•°å­—å­—ä½“ï¼ˆ%tï¼‰", "Countdown Number Font (%t)" },
    { "é¢„è§ˆï¼š", "Preview:" },
    { "å¦å…‹å°–åˆº3.0", "Tank Buster 3.0" },
    { "å¦å…‹å°–åˆº 3.0", "Tank Buster 3.0" },
    { "æµ‹è¯•æŠ€èƒ½", "Test Skill" },
    { "æµ‹è¯•æ–½æ³•", "Test Cast" },
    { "é¢„è§ˆæŠ€èƒ½", "Preview Skill" },
    { "æŠ€èƒ½ç¤ºä¾‹", "Skill Example" },
    { "åœºæ™¯é¢„è§ˆ", "Scene Preview" },
    { "åˆ‡æ¢ç¼–è¾‘æ¨¡å¼é¢„è§ˆ", "Toggle Edit-Mode Preview" },
    { "æµ‹è¯•å€’è®¡æ—¶", "Test Countdown" },
    { "ç›‘æŽ§çŽ©å®¶è‡ªèº«çš„3ä¸ªç§äººå…‰çŽ¯æ§½ä½ï¼Œæ”¯æŒå›¾æ ‡å¤§å°ã€ä½ç½®ã€å€’è®¡æ—¶ã€éŸ³æ•ˆç­‰é…ç½®ã€‚", "Monitors the player's 3 private aura slots, including icon size, position, countdown and sound settings." },
    { "ç›‘æŽ§çŽ©å®¶è‡ªèº«çš„3ä¸ªç§äººå…‰çŽ¯æ§½ä½ã€‚å¼€å¯åŽè¿›å…¥ç¼–è¾‘æ¨¡å¼å¯æ‹–åŠ¨è°ƒæ•´ä½ç½®ã€‚", "Monitors the player's 3 private aura slots. Enable it and enter edit mode to drag the position." },
    { "å¯ç”¨ç§äººå…‰çŽ¯ç›‘æŽ§", "Enable Private Aura Monitor" },
    { "å½“å‰å¯¹è±¡æ²¡æœ‰ç§äººå…‰çŽ¯æ³•æœ¯ã€‚", "The current object has no private aura spells." },
    { "å…±%dä¸ªç§äººå…‰çŽ¯æ³•æœ¯", "%d private aura spells total" },
    { "encounterID:%s  å…±%dä¸ªç§äººå…‰çŽ¯æ³•æœ¯", "encounterID:%s  |  %d private aura spells" },
    { "ExwindGrid ä¸å¯ç”¨ï¼Œæ— æ³•æ¸²æŸ“ç§äººå…‰çŽ¯è®¾ç½®ã€‚", "ExwindGrid is unavailable; private aura settings cannot be rendered." },
    { "ExwindGrid ä¸å¯ç”¨ï¼Œæ— æ³•æ¸²æŸ“è®¾ç½®åŒºã€‚", "ExwindGrid is unavailable; the settings pane cannot be rendered." },
    { "æä¾›ä¸‰ç§é‡ç½®æ–¹å¼ï¼š\n1) ä»…é‡ç½®å¤–è§‚è®¾ç½®\n2) é‡ç½®æ‰€æœ‰é…ç½®ï¼ˆä¸åŒ…å«å¤–è§‚ï¼‰\n3) æ¸…é™¤å…¨éƒ¨Settingsï¼ˆåŒ…å«å¤–è§‚ï¼‰", "Provides three reset modes:\n1. Reset appearance only\n2. Reset all settings (keep appearance)\n3. Wipe everything (including appearance)" },
    { "æŽ¨èå…ˆä½¿ç”¨â€œä»…Resetå¤–è§‚Settingsâ€ã€‚â€œä»…Resetå¤–è§‚Settingsâ€åªResetTimer Bar/Bun Bar/Countdown/Flash Textä¸ŽColorProfileã€‚\nâ€œResetæ‰€æœ‰é…ç½®ï¼ˆä¸åŒ…å«å¤–è§‚ï¼‰â€ä¼šæ¸…ç©ºGeneral Settingsã€è¯­éŸ³é…ç½®ã€Skillé…ç½®ä¸ŽTimelineSettingsï¼Œä½†ä¿ç•™å¤–è§‚ã€‚\nâ€œæ¸…é™¤å…¨éƒ¨Settingsï¼ˆåŒ…å«å¤–è§‚ï¼‰â€ä¼šæŠŠ EXBoss çš„å…¨éƒ¨é…ç½®é‡ç½®å¹¶æ¢å¤åˆ°åˆå§‹çŠ¶æ€ã€‚", "Recommended: start with \"Reset Appearance Only\". \"Reset Appearance Only\" resets only Timer Bar / Bun Bar / Countdown / Flash Text and Color Profile.\n\"Reset All Settings (Keep Appearance)\" clears General Settings, voice config, skill config and Timeline settings, while preserving appearance.\n\"Wipe Everything (Including Appearance)\" resets all EXBoss settings back to defaults." },
    { "ä»…Resetå¤–è§‚Settings", "Reset Appearance Only" },
    { "Resetæ‰€æœ‰é…ç½®ï¼ˆä¸åŒ…å«å¤–è§‚ï¼‰", "Reset All Settings (Keep Appearance)" },
    { "æ¸…é™¤å…¨éƒ¨Settingsï¼ˆåŒ…å«å¤–è§‚ï¼‰", "Wipe Everything (Including Appearance)" },
    { "ç¡®è®¤é‡ç½®", "Confirm Reset" },
    { "ç¡®è®¤æ¸…ç©º", "Confirm Wipe" },
    { "ä»…é‡ç½®è®¡æ—¶æ¡/æŸçŠ¶æ¡/å€’è®¡æ—¶/æ–‡å­—å…¬å‘Šçš„å¤–è§‚æ ·å¼ï¼Œä¸åˆ é™¤æ³•æœ¯é…ç½®ã€‚æ˜¯å¦ç»§ç»­ï¼Ÿ", "Only resets the appearance of Timer Bar / Bun Bar / Countdown / Center Text and keeps spell configuration. Continue?" },
    { "å°†æ¸…ç©º EXBoss çš„é€šç”¨è®¾ç½®ã€è¯­éŸ³è®¾ç½®ã€æŠ€èƒ½è®¾ç½®ä¸Žæ—¶é—´è½´è®¾ç½®ï¼Œä½†ä¿ç•™å¤–è§‚æ ·å¼ã€‚\nç¡®è®¤ç»§ç»­ï¼Ÿ", "This clears EXBoss general settings, voice settings, spell settings and timeline settings, while keeping appearance styles.\nContinue?" },
    { "å±é™©ï¼šå°†æ¸…ç©º EXBoss çš„å…¨éƒ¨è®¾ç½®ï¼ˆåŒ…å«å¤–è§‚ï¼‰å¹¶é‡è½½ã€‚æ­¤æ“ä½œä¸å¯æ’¤é”€ã€‚\nç¡®è®¤ç»§ç»­ï¼Ÿ", "Danger: this wipes every EXBoss setting, including appearance, and reloads the UI. This cannot be undone.\nContinue?" },
    { "å¿«é€Ÿåˆ‡æ¢èŠå¤©é¢‘é“çš„å·¥å…·æ ï¼Œæ¯ä¸ªé¢‘é“å¯è‡ªå®šä¹‰æ˜¾ç¤ºåç§°ã€é¢œè‰²å’ŒæŒ‡ä»¤", "A quick chat channel bar with customizable label, color, and command for each channel." },
    { "å¤§ç§˜å¢ƒå›¾æ ‡/åˆ†æ•°/ç‚¹å‡»ä¼ é€ç­‰å¢žå¼ºã€‚", "M+ icon, score, click-to-teleport enhancements." },
    { "æ³•æœ¯ä¿¡æ¯æŸ¥è¯¢ä¸Žæç¤ºå¢žå¼ºã€‚", "Spell info lookup and tooltip enhancements." },
    { "è¿›å…¥æ¨¡å—è®¾ç½®é¡µåŽå¯ä½¿ç”¨ Grid é¢æ¿è°ƒæ•´æ ·å¼ã€ä½ç½®å’ŒåŠŸèƒ½å¼€å…³ã€‚", "Inside a module settings page, use the Grid panel to adjust styles, position and feature toggles." },
    { "æ˜¯å¦é€€å‡ºç¼–è¾‘æ¨¡å¼ï¼Ÿ", "Exit Edit Mode?" },
    { "ç¡®å®š", "OK" },
    { "è¦†ç›–å¸¸è§Bossä¸ŽMythic+Voicelabels, æ ‡å‡†å‚è€ƒå®žçŽ°.", "Covers common boss and Mythic+ voice labels with the standard reference implementation." },
    { "å·¦ä¾§Select Voice Pack, å³ä¾§æŒ‰Raid / Mythic+é…ç½®Author Profile.", "Choose a Voice Pack on the left, then configure Raid / Mythic+ Author Profiles on the right." },
    { "å·¦ä¾§Select Voice Packï¼Œå³ä¾§æŒ‰Raid / Mythic+é…ç½®Author Profile.", "Choose a Voice Pack on the left, then configure Raid / Mythic+ Author Profiles on the right." },
    { "æŒ‰ 6 ä¸ªèŒè´£æ§½ä½é€‰æ‹©Author Profileï¼›Dungeonsé¡µä¼šæŒ‰å½“å‰èŒè´£è‡ªåŠ¨å†™å…¥å¯¹åº”çš„Raid / Mythic+ Profiles.", "Choose Author Profiles for the 6 role slots; the Dungeons page automatically writes the matching Raid / Mythic+ Profiles for your current role." },
    { "æŒ‰ 6 ä¸ªèŒè´£æ§½ä½é€‰æ‹©Author Profileï¼›Dungeonsé¡µä¼šæŒ‰å½“å‰èŒè´£è‡ªåŠ¨å†™å…¥å¯¹åº”çš„Raid / Mythic+ Profile.", "Choose Author Profiles for the 6 role slots; the Dungeons page automatically writes the matching Raid / Mythic+ Profile for your current role." },
    { "å½“å‰èŒè´£è¿›å…¥Raidæ—¶è‡ªåŠ¨ä½¿ç”¨.", "Automatically used when entering raids with the current role." },
    { "å½“å‰èŒè´£è¿›å…¥Mythic+æ—¶è‡ªåŠ¨ä½¿ç”¨.", "Automatically used when entering Mythic+ with the current role." },
    { "6 æ§½ä½Author Profileå·²æŽ¥å…¥ï¼ŒDungeonsé¡µä¼šæŒ‰å½“å‰èŒè´£è‡ªåŠ¨å†™å…¥å¯¹åº”Profile.", "6 Author Profile slots are active. The Dungeons page automatically writes the matching Profile for your current role." },
    { "6 æ§½ä½Author Profileå·²æŽ¥å…¥, Dungeonsé¡µä¼šæŒ‰å½“å‰èŒè´£è‡ªåŠ¨å†™å…¥å¯¹åº”Profile.", "6 Author Profile slots are active. The Dungeons page automatically writes the matching Profile for your current role." },
    { "Alert: å½“å‰æ˜¯ä»€ä¹ˆèŒè´£ï¼Œå°±è‡ªåŠ¨ä½¿ç”¨å¹¶ç¼–è¾‘å¯¹åº”çš„Raid/Mythic+ Profiles.", "Alert: the active role automatically selects and edits the matching Raid / Mythic+ Profiles." },
    { "å½“å‰èŒè´£: dps", "Current role: dps" },
    { "å¤‡æ³¨(å¯é€‰)", "Notes (Optional)" },
    { "å¤–è§‚Settings(Timer Bar Appearanceç­‰)", "Appearance Settings (Timer Bar Appearance, etc.)" },
    { "Importå¤–è§‚Settings(ç«‹å³åº”ç”¨)", "Import Appearance Settings (apply immediately)" },
    { "ImportAuthorå(ç•™ç©ºåˆ™ä½¿ç”¨é…ç½®å)", "Imported Author Name (blank = profile name)" },
    { "æ­¤åŒºåŸŸåªå±•ç¤ºå½“å‰ 6 ä¸ªæ§½ä½å¯¹åº”çš„Author Profile.", "This area only shows the Author Profiles currently assigned to the 6 slots." },
    { "æ§½ä½: Raid Tank  Author Profile: Default Preset", "Slot: Raid Tank   Profile: Default Preset" },
    { "å¼€å¯æš´é›ªä¸­å¤®Texté¢„è­¦ï¼ˆæ³¨æ„ï¼šå¦‚æžœCloseä¼šå¯¼è‡´Voiceä¸å·¥ä½œï¼‰", "Enable Blizzard center-screen text warnings (required for voice alerts)" },
    { "æŸ¥çœ‹å½“å‰è¯­éŸ³æ³¨å†Œç»†èŠ‚ï¼ˆDefaultä»…æ˜¾ç¤ºéžå›¢æœ¬ï¼‰ï¼šDungeon > BOSSåç§°(æ•°é‡) + eventID(trigger0/1/2)ã€‚", "Shows current voice registration details (Default = non-raid only): Dungeon > Boss Name (count) + eventID(trigger0/1/2)." },
    { "éžå›¢æœ¬å·²æ³¨å†ŒBOSS: 0  |  éžå›¢æœ¬Event: 0 / å…¨é‡: 0  |  è§¦å‘å™¨Event(0/1/2): 0/0/0", "Non-raid registered bosses: 0  |  Non-raid events: 0 / Total: 0  |  Trigger events (0/1/2): 0/0/0" },
    { "æœ€è¿‘åˆ·æ–°:", "Last Refresh:" },
    { "æœ€è¿‘é”™è¯¯:", "Last error:" },
    { "æš‚æ— Noneéžå›¢æœ¬å·²æ³¨å†ŒBOSS", "No non-raid registered bosses" },
    { "æŒ‰é¦–é¢†æŸ¥çœ‹å›ºå®šè½´Skillåœ¨å‰ 3 åˆ†é’Ÿå†…çš„å‡ºçŽ°èŠ‚ç‚¹ï¼Œä¾¿äºŽå¿«é€Ÿæ ¡å¯¹TimelineèŠ‚å¥ã€‚", "Review when fixed-timeline Skills occur during the first 3 minutes of each boss fight to quickly verify Timeline pacing." },
    { "å›ºå®šè½´é¦–é¢†: %d  |  æŠ€èƒ½æ€»æ•°: %d  |  çª—å£: %s", "Fixed Bosses: %d  |  Total Skills: %d  |  Window: %s" },
    { "encounter:%d  |  æŠ€èƒ½:%d  |  èŠ‚ç‚¹:%d", "encounter:%d  |  Skills:%d  |  Markers:%d" },
    { "è¶…å‡ºè·ç¦»æ—¶å›¾æ ‡å˜è‰²ï¼ˆç©º=è‡ªåŠ¨ä½¿ç”¨ä¸“ç²¾é¢„è®¾ï¼‰", "Change the icon color when out of range (blank = automatically use the spec preset)." },
    { "æ˜¾ç¤ºæ¡ä»¶", "Visibility Rules" },
    { "ä¸“ç²¾è¿‡æ»¤ï¼ˆä»…åœ¨å‹¾é€‰çš„ä¸“ç²¾ä¸‹Enableï¼‰", "Spec Filter (only enabled for checked specs)" },
    { "æˆ‘æ²¡æœ‰é—ª (%t)", "No Blink (%t)" },
    { "æˆ‘æ²¡æœ‰é—ª(%t)", "No Blink (%t)" },
    { "æˆ‘æ²¡æœ‰é—ª", "No Blink" },
    { "æµ‹è¯•æŠ€èƒ½ ", "Test Skill " },
    { "æµ‹è¯•æ–½æ³• ", "Test Cast " },
    { "é¢„è§ˆæŠ€èƒ½ ", "Preview Skill " },
    { "æŠ€èƒ½ç¤ºä¾‹ ", "Skill Example " },
    { "æŠ€èƒ½ç¤ºä¾‹", "Skill Example" },
    { "æŠ€èƒ½åç§°ç¤ºä¾‹", "Spell Name Example" },
    { "è®¡æ—¶æ¡", "Timer Bar" },
    { "Ã¦Å’â€°BossÃ¦Å¸Â¥Ã§Å“â€¹Fixed TimelineSkillÃ¥Å“Â¨Ã¥â€°Â 3 Ã¥Ë†â€ Ã©â€™Å¸Ã¥â€ â€¦Ã§Å¡â€žÃ¥â€¡ÂºÃ§Å½Â°Ã¨Å â€šÃ§â€šÂ¹Ã¯Â¼Å’Ã¤Â¾Â¿Ã¤ÂºÅ½Ã¥Â¿Â«Ã©â‚¬Å¸Ã¦Â Â¡Ã¥Â¯Â¹TimelineÃ¨Å â€šÃ¥Â¥ÂÃ£â‚¬â€š", "Browse each boss's Fixed Timeline skill markers over the first 3 minutes to quickly verify the Timeline pacing." },
    -- ===== Screenshot 1: Voice/Profiles page =====
    { "72 æ ‡ç­¾", "72 Labels" },
    { "73 æ ‡ç­¾", "73 Labels" },
    { "æš‚Noneæè¿°", "No description available." },
    { "Raid Tank æ–¹æ¡ˆ", "Raid Tank Profile" },
    { "Raid DPS æ–¹æ¡ˆ", "Raid DPS Profile" },
    { "Raid Healer æ–¹æ¡ˆ", "Raid Healer Profile" },
    { "Mythic+ Tank æ–¹æ¡ˆ", "Mythic+ Tank Profile" },
    { "Mythic+ DPS æ–¹æ¡ˆ", "Mythic+ DPS Profile" },
    { "Mythic+ Healer æ–¹æ¡ˆ", "Mythic+ Healer Profile" },
    { "å½“å‰èŒè´£ï¼šdps", "Current role: dps" },
    { "å½“å‰èŒè´£ï¼štank", "Current role: tank" },
    { "å½“å‰èŒè´£ï¼šhealer", "Current role: healer" },
    { "å½“å‰èŒè´£ï¼š dps", "Current role: dps" },
    { "å½“å‰èŒè´£ï¼š tank", "Current role: tank" },
    { "å½“å‰èŒè´£ï¼š healer", "Current role: healer" },
    -- ===== Screenshot 2: MDT Route Module =====
    { "å½“å‰è¿›åº¦ï¼šæœªèŽ·å–", "Current progress: Not obtained" },
    { "å½“å‰è¿›åº¦ï¼š æœªèŽ·å–", "Current progress: Not obtained" },
    { "Routeå¥—è£…", "Route Preset" },
    { "å¯¼å…¥MDT", "Import MDT" },
    -- ===== Screenshot 3: Import/Export =====
    { "å¯¼å‡º", "Export" },
    { "å¯¼å…¥", "Import" },
    { "è§£æž", "Parse" },
    { "é‡å‘½å", "Rename" },
    { "æ‰§è¡Œå¯¼å…¥", "Run Import" },
    { "æ­¤åŒºåŸŸåªå±•ç¤ºå½“å‰ 6 ä¸ªæ§½ä½å¯¹åº”çš„Authoræ–¹æ¡ˆã€‚", "This area only shows the Author Profiles currently assigned to the 6 slots." },
    { "æ§½ä½ï¼šRaid Tank Authoræ–¹æ¡ˆï¼šDefault Preset", "Slot: Raid Tank  Author Profile: Default Preset" },
    { "æ§½ä½ï¼š Raid Tank  Authoræ–¹æ¡ˆï¼š Default Preset", "Slot: Raid Tank  Author Profile: Default Preset" },
    -- ===== Screenshot 4: Timeline =====
    { "Fixed TimelineBoss", "Fixed Timeline Boss" },
    { "Skillæ€»æ•°", "Total Skills" },
    { "çª—å£", "Window" },
    { "çª—å£:", "Window:" },
    { "çª—å£ï¼š", "Window:" },
    { "èŠ‚ç‚¹:", "Nodes:" },
    { "èŠ‚ç‚¹ï¼š", "Nodes:" },
    { "åˆ†é’ŸèŠ‚ç‚¹:", "min Nodes:" },
    { "åˆ†é’ŸèŠ‚ç‚¹ï¼š", "min Nodes:" },
    { "3åˆ†é’ŸèŠ‚ç‚¹", "3min Nodes" },
    { "åˆ·æ–°", "Refresh" },
    { "æ¬¡", "x" },
    { "æŒ‰BossæŸ¥çœ‹Fixed TimelineSkillåœ¨å‰ 3 åˆ†é’Ÿå†…çš„å‡ºçŽ°èŠ‚ç‚¹ï¼Œä¾¿äºŽå¿«é€Ÿæ ¡å¯¹TimelineèŠ‚å¥ã€‚", "Review each boss's Fixed Timeline skills over the first 3 minutes to quickly verify Timeline pacing." },
    { "æŒ‰BossæŸ¥çœ‹Fixed TimelineSkillåœ¨å‰ 3 åˆ†é’Ÿå†…çš„å‡ºçŽ°Nodesï¼Œä¾¿äºŽå¿«é€Ÿæ ¡å¯¹TimelineèŠ‚å¥ã€‚", "Review each boss's Fixed Timeline skills over the first 3 minutes to quickly verify Timeline pacing." },
    { "æŒ‰BossæŸ¥çœ‹Fixed TimelineSkillåœ¨å‰ 3 åˆ†é’Ÿå†…çš„å‡ºçŽ°Nodes, ä¾¿äºŽå¿«é€Ÿæ ¡å¯¹TimelineèŠ‚å¥ã€‚", "Review each boss's Fixed Timeline skills over the first 3 minutes to quickly verify Timeline pacing." },
    { "æŒ‰BossæŸ¥çœ‹Fixed TimelineSkillåœ¨å‰3åˆ†é’Ÿå†…çš„å‡ºçŽ°Nodesï¼Œä¾¿äºŽå¿«é€Ÿæ ¡å¯¹TimelineèŠ‚å¥ã€‚", "Review each boss's Fixed Timeline skills over the first 3 minutes to quickly verify Timeline pacing." },
    -- ===== Screenshot 5: Ring Progress Settings =====
    { "å±å¹•ä¸­å¤®æ˜¾ç¤ºRing Progress", "Displays Ring Progress in the screen center" },
    { "åœ†çŽ¯æ ·å¼", "Ring Style" },
    { "ç»†çŽ¯ 1", "Thin Ring 1" },
    { "ç»†çŽ¯1", "Thin Ring 1" },
    { "ç»†çŽ¯ 2", "Thin Ring 2" },
    { "ç»†çŽ¯2", "Thin Ring 2" },
    { "åœ†çŽ¯å°ºå¯¸", "Ring Size" },
    { "Test åœ†çŽ¯(3ç§’)", "Test Ring (3s)" },
    { "Teståœ†çŽ¯(3ç§’)", "Test Ring (3s)" },
    { "Test åœ†çŽ¯ï¼ˆ3ç§’ï¼‰", "Test Ring (3s)" },
    { "Teståœ†çŽ¯ï¼ˆ3ç§’ï¼‰", "Test Ring (3s)" },
    -- ===== Screenshot 6: Private Aura Monitor =====
    { "è¿›å…¥ç¼–è¾‘æ¨¡å¼", "Enter Edit Mode" },
    { "å›¾æ ‡å¤–è§‚", "Icon Appearance" },
    { "å›¾æ ‡Spacing", "Icon Spacing" },
    { "æŽ’åˆ—æ–¹å‘", "Growth Direction" },
    { "å‘å³", "Right" },
    { "å‘å·¦", "Left" },
    { "å‘ä¸Š", "Up" },
    { "å‘ä¸‹", "Down" },
    { "è¾¹æ¡†ç¼©æ”¾", "Border Scale" },
    { "æ˜¾ç¤ºå†·å´åœˆ", "Show Cooldown Spiral" },
    { "é”šç‚¹", "Anchor Point" },
    { "å±å¹•ä¸­å¤®", "Screen Center" },
    -- ===== Screenshot 7: Reset Settings =====
    { "æä¾›ä¸‰ç§Resetæ–¹å¼ï¼š\n1) Reset Appearance Only\n2) Resetæ‰€æœ‰é…ç½®ï¼ˆä¸Includedå¤–è§‚ï¼‰\n3) æ¸…é™¤å…¨éƒ¨Settingsï¼ˆIncludedå¤–è§‚ï¼‰", "Provides three reset modes:\n1) Reset Appearance Only\n2) Reset All Settings (Keep Appearance)\n3) Wipe Everything (Including Appearance)" },
    { "æŽ¨èå…ˆä½¿ç”¨\"Reset Appearance Only\"ï¼šåªResetTimer Bar/Bun Bar/Countdown/Center Textä¸ŽColoræ–¹æ¡ˆã€‚", "Recommended: start with \"Reset Appearance Only\". It only resets Timer Bar / Bun Bar / Countdown / Center Text and Color schemes." },
    { "\"Resetæ‰€æœ‰é…ç½®ï¼ˆä¸Includedå¤–è§‚ï¼‰\"ä¼šæ¸…ç©ºGeneral Settingsã€Voiceé…ç½®ã€Skillé…ç½®ä¸ŽTimelineSettingsï¼Œä½†ä¿ç•™å¤–è§‚ã€‚", "\"Reset All Settings (Keep Appearance)\" clears General Settings, Voice config, Skill config and Timeline settings, while keeping appearance." },
    { "oss çš„å…¨éƒ¨é…ç½®éƒ½Restorationåˆ°åˆå§‹çŠ¶æ€ã€‚", "All settings will be restored to their default state." },
    { "EXBossçš„å…¨éƒ¨é…ç½®éƒ½Restorationåˆ°åˆå§‹çŠ¶æ€ã€‚", "All EXBoss settings will be restored to their default state." },
    { "Resetæ‰€æœ‰é…ç½®ï¼ˆä¸Includedå¤–è§‚ï¼‰", "Reset All Settings (Keep Appearance)" },
    { "æ¸…é™¤å…¨éƒ¨Settingsï¼ˆIncludedå¤–è§‚ï¼‰", "Wipe Everything (Including Appearance)" },
    -- ===== General UI tokens still showing Chinese =====
    { "å¯ç”¨", "Enable" },
    { "Color", "Color" },
}


-- Pairs rescued from TARGET_ADDONS (were misplaced as table entries)
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "73 Ã¦Â â€¡Ã§Â­Â¾", "73 Labels" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å¡â€šNoneÃ¦ÂÂÃ¨Â¿Â°", "No description available." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã¨Â·â€˜Ã¥Å“Ë†Ã£â‚¬ÂÃ¥â€¡â€ Ã¥Â¤â€¡Ã¨Â¿Â½Ã¤ÂºÂºÃ£â‚¬ÂÃ¥ÂÂ¬Ã¥â€Â¤Ã¥Â°ÂÃ¦â‚¬ÂªÃ£â‚¬ÂÃ¥ÂÂ¦Ã¥â€¦â€¹Ã¥â€¡Â»Ã©â‚¬â‚¬Ã£â‚¬ÂÃ¦Â³Â¨Ã¦â€žÂÃ¥â€¡Â»Ã©Â£Å¾Ã£â‚¬ÂÃ©â€ºâ€ Ã¥ÂË†Ã¦â€Â¾Ã¥Å“Ë†", "Prepare Run Out, Prepare Chase, Summon Adds, Tank Knockback, Watch Knock-Up, Stack and Drop Circle" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Raid Tank Ã¦â€“Â¹Ã¦Â¡Ë†", "Raid Tank Profile" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Raid DPS Ã¦â€“Â¹Ã¦Â¡Ë†", "Raid DPS Profile" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Raid Healer Ã¦â€“Â¹Ã¦Â¡Ë†", "Raid Healer Profile" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Mythic+ Tank Ã¦â€“Â¹Ã¦Â¡Ë†", "Mythic+ Tank Profile" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Mythic+ DPS Ã¦â€“Â¹Ã¦Â¡Ë†", "Mythic+ DPS Profile" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Mythic+ Healer Ã¦â€“Â¹Ã¦Â¡Ë†", "Mythic+ Healer Profile" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "4Ã¤Â¸ÂªÃ¥â€ºÂºÃ¥Â®Å¡ColorÃ¦â€“Â¹Ã¦Â¡Ë† + 1Ã¤Â¸ÂªCustom Scheme + Ã¦Å“â‚¬Ã¥Â¤Å¡ 3 Ã¤Â¸ÂªÃ©Â¢ÂÃ¥Â¤â€“Ã¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€šBossSkillÃ©Â¡ÂµÃ¥ÂÂ¯Ã§â€ºÂ´Ã¦Å½Â¥Select ProfileÃ¦Ë†â€“Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°ColorÃ£â‚¬â€š", "4 fixed Color schemes + 1 Custom Scheme + up to 3 extra schemes. The Boss Skill page can select a profile directly or use a custom color." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "BossSkillÃ©Â¡ÂµÃ©ÂÂ¢Ã¥ÂÂ¯Ã©â‚¬â€°Ã¦â€¹Â©Ã¤Â¸â€¹Ã¥Ë†â€”Ã¦â€“Â¹Ã¦Â¡Ë†Ã¯Â¼â€ºÃ©â‚¬â€°Ã¦â€¹Â©Ã¢â‚¬Å“Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°ColorÃ¢â‚¬ÂÃ¦â€”Â¶Ã¤Â½Â¿Ã§â€Â¨Ã¢â‚¬Å“Custom SchemeÃ¢â‚¬ÂÃ£â‚¬â€šÃ¥â€¹Â¾Ã©â‚¬â€°EnableÃ§Å¡â€žÃ©Â¢ÂÃ¥Â¤â€“Ã¦â€“Â¹Ã¦Â¡Ë†Ã¤Â¼Å¡Ã¥â€¡ÂºÃ§Å½Â°Ã¥Å“Â¨SkillÃ©Â¡ÂµÃ¤Â¸â€¹Ã¦â€¹â€°Ã£â‚¬â€š", "The Boss Skill page can use the schemes below. Choosing \"Custom Color\" uses the \"Custom Scheme\". Enabled extra schemes appear in Skill-page dropdowns." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Template-(%s=SkillÃ¥ÂÂ %t=CountdownNumber)", "Template (%s = Spell Name  %t = Countdown Number)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥ÂÂ¦Ã¥â€¦â€¹Buster3.0", "Tank Buster 3.0" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "SkillÃ¨Â§Â¦Ã¥Ââ€˜Ã¦â€”Â¶Ã¥Å“Â¨Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®Ã¦ËœÂ¾Ã§Â¤ÂºSpell NameÃ¯Â¼Ë†Ã¦Â·Â¡Ã¥â€¦Â¥ Ã¢â€ â€™ Ã¥ÂÅ“Ã§â€¢â„¢ Ã¢â€ â€™ Ã¦Â·Â¡Ã¥â€¡ÂºÃ¯Â¼â€°Ã£â‚¬â€š", "Shows the Spell Name in the screen center when the skill triggers (fade in -> hold -> fade out)." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®Ã¦ËœÂ¾Ã§Â¤ÂºRing Progress", "Displays Ring Progress in the screen center." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Å“â€ Ã§Å½Â¯Ã¦Â Â·Ã¥Â¼Â", "Ring Style" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã§Â»â€ Ã§Å½Â¯1", "Thin Ring 1" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â‚¬ÂÃ¦ËœÅ½Ã¥ÂºÂ¦", "Opacity" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Å“â€ Ã§Å½Â¯Ã¥Â°ÂºÃ¥Â¯Â¸", "Ring Size" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Test Ã¥Å“â€ Ã§Å½Â¯(3Ã§Â§â€™)", "Test Ring (3s)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©ÂÅ¾RaidÃ¥Â·Â²Ã¦Â³Â¨Ã¥â€ Å’BOSS: %d  |  Ã©ÂÅ¾RaidÃ¤Âºâ€¹Ã¤Â»Â¶: %d / Total: %d  |  Ã¨Â§Â¦Ã¥Ââ€˜Ã¥â„¢Â¨Ã¤Âºâ€¹Ã¤Â»Â¶(0/1/2): %d/%d/%d%s", "Non-Raid registered bosses: %d  |  Non-Raid events: %d / Total: %d  |  Trigger events (0/1/2): %d/%d/%d%s" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â½Å“Ã§â€Â¨Ã¥Å¸Å¸:", "Scope:" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¤Â½Å“Ã§â€Â¨Ã¥Å¸Å¸: ", "Scope: " }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¿â€ºÃ¥â€¦Â¥Ã§Â¼â€“Ã¨Â¾â€˜Ã¦Â¨Â¡Ã¥Â¼Â", "Enter Edit Mode" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¾Ã¦Â â€¡Ã¥Â¤â€“Ã¨Â§â€š", "Icon Appearance" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥â€ºÂ¾Ã¦Â â€¡Spacing", "Icon Spacing" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å½â€™Ã¥Ë†â€”Ã¦â€“Â¹Ã¥Ââ€˜", "Growth Direction" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¨Â¾Â¹Ã¦Â¡â€ Ã§Â¼Â©Ã¦â€Â¾", "Border Scale" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ËœÂ¾Ã§Â¤ÂºÃ¥â€ Â·Ã¥ÂÂ´Ã¥Å“Ë†", "Show Cooldown Spiral" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã©â€Å¡Ã§â€šÂ¹", "Anchor Point" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Â±ÂÃ¥Â¹â€¢Ã¤Â¸Â­Ã¥Â¤Â®", "Screen Center" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¥Ââ€˜Ã¥ÂÂ³", "Right" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦ÂÂÃ¤Â¾â€ºÃ¤Â¸â€°Ã§Â§ÂResetÃ¦â€“Â¹Ã¥Â¼ÂÃ¯Â¼Å¡\n1) Reset Appearance Only\n2) ResetÃ¦â€°â‚¬Ã¦Å“â€°Ã©â€¦ÂÃ§Â½Â®Ã¯Â¼Ë†Ã¤Â¸ÂIncludedÃ¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°\n3) Ã¦Â¸â€¦Ã©â„¢Â¤Ã¥â€¦Â¨Ã©Æ’Â¨SettingsÃ¯Â¼Ë†IncludedÃ¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°", "Provides three reset modes:\n1) Reset Appearance Only\n2) Reset All Settings (Keep Appearance)\n3) Wipe Everything (Including Appearance)" }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å½Â¨Ã¨ÂÂÃ¥â€¦Ë†Ã¤Â½Â¿Ã§â€Â¨ Ã¢â‚¬Å“Reset Appearance OnlyÃ¢â‚¬ÂÃ¯Â¼â€ºÃ¥ÂÂªResetTimer Bar/Bun Bar/Countdown/Center TextÃ¤Â¸Å½ColorÃ¦â€“Â¹Ã¦Â¡Ë†Ã£â‚¬â€š", "Recommended: start with \"Reset Appearance Only\". It only resets Timer Bar / Bun Bar / Countdown / Center Text and Color schemes." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¢â‚¬Å“ResetÃ¦â€°â‚¬Ã¦Å“â€°Ã©â€¦ÂÃ§Â½Â®Ã¯Â¼Ë†Ã¤Â¸ÂIncludedÃ¥Â¤â€“Ã¨Â§â€šÃ¯Â¼â€°Ã¢â‚¬ÂÃ¤Â¼Å¡Ã¦Â¸â€¦Ã§Â©ÂºGeneral SettingsÃ£â‚¬ÂVoiceÃ©â€¦ÂÃ§Â½Â®Ã£â‚¬ÂSkillÃ©â€¦ÂÃ§Â½Â®Ã¤Â¸Å½TimelineSettingsÃ¯Â¼Å’Ã¤Â½â€ Ã¤Â¿ÂÃ§â€¢â„¢Ã¥Â¤â€“Ã¨Â§â€šÃ£â‚¬â€š", "\"Reset All Settings (Keep Appearance)\" clears General Settings, Voice config, Skill config and Timeline settings, while keeping appearance." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "EXBossÃ§Å¡â€žÃ¥â€¦Â¨Ã©Æ’Â¨Ã©â€¦ÂÃ§Â½Â®Ã©Æ’Â½Ã¥Â°â€ RestorationÃ¥Ë†Â°Ã¥Ë†ÂÃ¥Â§â€¹Ã§Å Â¶Ã¦â‚¬ÂÃ£â‚¬â€š", "All EXBoss settings will be restored to their default state." }
TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = { "Ã¦Å’â€°BossÃ¦Å¸Â¥Ã§Å“â€¹Fixed TimelineSkillÃ¥Å“Â¨Ã¥â€°Â 3 Ã¥Ë†â€ Ã©â€™Å¸Ã¥â€ â€¦Ã§Å¡â€žÃ¥â€¡ÂºÃ§Å½Â°Ã¨Å â€šÃ§â€šÂ¹Ã¯Â¼Å’Ã¤Â¾Â¿Ã¤ÂºÅ½Ã¥Â¿Â«Ã©â‚¬Å¸Ã¦Â Â¡Ã¥Â¯Â¹TimelineÃ¨Å â€šÃ¥Â¥ÂÃ£â‚¬â€š", "Browse each boss's Fixed Timeline skill markers over the first 3 minutes to quickly verify the Timeline pacing." }

for i = 1, #SAFE_CHINESE_TEXT_REPLACEMENTS do
    TEXT_REPLACEMENTS[#TEXT_REPLACEMENTS + 1] = SAFE_CHINESE_TEXT_REPLACEMENTS[i]
end

-- Build SORTED_TEXT_REPLACEMENTS with deduplication for performance
local SORTED_TEXT_REPLACEMENTS = {}
do
    local seen = {}
    local function AddUnique(list)
        for i = 1, #list do
            local key = list[i][1]
            if key and not seen[key] then
                seen[key] = true
                SORTED_TEXT_REPLACEMENTS[#SORTED_TEXT_REPLACEMENTS + 1] = list[i]
            end
        end
    end
    AddUnique(TEXT_REPLACEMENTS)

    local EXTRA_TEXT_REPLACEMENTS = {
    { "Ã¦Å¸Â¥Ã§Å“â€¹Shows current voice registration details (default = non-raid only): Dungeon > Boss Name (count) + eventID(trigger0/1/2).", "Shows current voice registration details (default = non-raid only): Dungeon > Boss Name (count) + eventID(trigger0/1/2)." },
    { "Ã¥â€¦Â¨Ã©â€¡Â: ", "Total: " },
    { "Ã¦Å“ÂªÃ¥Å’Â¹Ã©â€¦ÂBOSSÃ¤Âºâ€¹Ã¤Â»Â¶: ", "Unmatched boss events: " },
    { "Ã¥â€ºÂ¢Ã¦Å“Â¬Ã¥Â·Â²Ã¨Â¿â€¡Ã¦Â»Â¤: ", "Raid filtered: " },
    { "Ã¦â€”Â Ã¦â€¢Â°Ã¦ÂÂ®", "No data" },
    { "Ã¦Å“â‚¬Ã¨Â¿â€˜Ã©â€â„¢Ã¨Â¯Â¯: ", "Last error: " },
    { "Ã¤Â½Å“Ã§â€Â¨Ã¥Å¸Å¸: ", "Scope: " },
    { "Ã¯Â¼Ë†Ã©Â¢â€žÃ¤Â¼Â°Ã¯Â¼â€°", " (Estimated)" },
    { "Ã¯Â¼Ë†Ã¥Â®Å¾Ã¦Âµâ€¹Ã¯Â¼â€°", " (Live)" },
    { "ÃƒÂ¦Ã…â€œÃ‚ÂªÃƒÂ§Ã…Â¸Ã‚Â¥ÃƒÂ¥Ã¢â‚¬Â°Ã‚Â¯ÃƒÂ¦Ã…â€œÃ‚Â¬", "Unknown Dungeon" },
    { "ÃƒÂ¦Ã…â€œÃ‚ÂªÃƒÂ§Ã…Â¸Ã‚Â¥ÃƒÂ©Ã‚Â¦Ã¢â‚¬â€œÃƒÂ©Ã‚Â¢Ã¢â‚¬Â ", "Unknown Boss" },
    { "ÃƒÂ¦Ã…Â¡Ã¢â‚¬Å¡ÃƒÂ¦Ã¢â‚¬â€Ã‚Â ÃƒÂ©Ã‚ÂÃ…Â¾ÃƒÂ¥Ã¢â‚¬ÂºÃ‚Â¢ÃƒÂ¦Ã…â€œÃ‚Â¬ÃƒÂ¥Ã‚Â·Ã‚Â²ÃƒÂ¦Ã‚Â³Ã‚Â¨ÃƒÂ¥Ã¢â‚¬Â Ã…â€™BOSS", "No non-raid registered bosses" },
}
    AddUnique(EXTRA_TEXT_REPLACEMENTS)
end

table.sort(SORTED_TEXT_REPLACEMENTS, function(a, b)
    return #(a[1] or "") > #(b[1] or "")
end)

local TOKEN_REPLACEMENTS = {
    { "å¤§ç§˜å¢ƒ", "Mythic+" },
    { "å¤§ç±³", "Mythic+" },
    { "å›¢æœ¬", "Raid" },
    { "å‰¯æœ¬", "Dungeon" },
    { "é¦–é¢†", "Boss" },
    { "è¯­éŸ³åŒ…", "Voice Pack" },
    { "è¯­éŸ³", "Voice" },
    { "è®¾ç½®", "Settings" },
    { "æ—¶é—´è½´", "Timeline" },
    { "å›ºå®šè½´", "Fixed Timeline" },
    { "é¢œè‰²", "Color" },
    { "ä½ç½®", "Position" },
    { "æ›´æ–°æ—¥å¿—", "Changelog" },
    { "è½½å…¥", "Load" },
    { "é‡ç½®", "Reset" },
    { "å¯ç”¨", "Enable" },
    { "ç¦ç”¨", "Disable" },
    { "å…¨é‡", "Total" },
    { "æœ€è¿‘é”™è¯¯", "Last error" },
    { "éžå›¢æœ¬", "Non-raid" },
    { "é¢„ä¼°", "Estimated" },
    { "å®žæµ‹", "Live" },
    { "é¢„è®¾é…ç½®", "Default Preset" },
    { "æœªå‘½å", "Untitled" },
    { "æˆ˜å£«", "Warrior" },
    { "åœ£éª‘å£«", "Paladin" },
    { "æ½œè¡Œè€…", "Rogue" },
    { "ç‰§å¸ˆ", "Priest" },
    { "æœ¯å£«", "Warlock" },
    { "æ­¦åƒ§", "Monk" },
    { "æ¶é­”çŒŽæ‰‹", "Demon Hunter" },
    { "å”¤é­”å¸ˆ", "Evoker" },
    { "é²œè¡€", "Blood" },
    { "å†°éœœ", "Frost" },
    { "é‚ªæ¶", "Unholy" },
    { "æ­¦å™¨", "Arms" },
    { "é˜²æŠ¤", "Protection" },
    { "æƒ©æˆ’", "Retribution" },
    { "å¤ä»‡", "Vengeance" },
    { "å¥‡è¢­", "Assassination" },
    { "ç‹‚å¾’", "Outlaw" },
    { "æ•é”", "Subtlety" },
    { "é…’ä»™", "Brewmaster" },
    { "è¸é£Ž", "Windwalker" },
    { "ç»‡é›¾", "Mistweaver" },
    { "é‡Žæ€§", "Feral" },
    { "å®ˆæŠ¤", "Guardian" },
    { "æˆ’å¾‹", "Discipline" },
    { "æš—å½±", "Shadow" },
    { "å¥¥æœ¯", "Arcane" },
    { "ç«ç„°", "Fire" },
    { "å…ƒç´ ", "Elemental" },
    { "å¢žå¼º", "Enhancement" },
    { "æ¢å¤", "Restoration" },
    { "å°„å‡»", "Marksmanship" },
    { "é‡Žå…½æŽ§åˆ¶", "Beast Mastery" },
    { "ç”Ÿå­˜", "Survival" },
    { "ç¥žåœ£", "Holy" },
    { "ç‹‚æ€’", "Fury" },
    { "æµ©åŠ«", "Havoc" },
    { "ç—›è‹¦", "Affliction" },
    { "æ¶é­”å­¦è¯†", "Demonology" },
    { "æ¯ç­", "Destruction" },
    { "æ¹®ç­", "Devastation" },
    { "æ©æŠ¤", "Preservation" },
    { "å¢žè¾‰", "Augmentation" },
    { "æŠ€èƒ½åç§°", "Spell Name" },
    { "æŠ€èƒ½ç¤ºä¾‹", "Skill Example" },
    { "æµ‹è¯•æŠ€èƒ½", "Test Skill" },
    { "é¢„è§ˆæŠ€èƒ½", "Preview Skill" },
    { "æµ‹è¯•æ–½æ³•", "Test Cast" },
    { "æŠ€èƒ½", "Skill" },
    { "æ³•æœ¯", "Spell" },
    { "åç§°", "Name" },
    { "ç¤ºä¾‹", "Example" },
    { "æµ‹è¯•", "Test" },
    { "é¢„è§ˆ", "Preview" },
    { "æç¤º", "Alert" },
    { "è­¦å‘Š", "Warning" },
    { "æœªçŸ¥", "Unknown" },
    { "ç§äººå…‰çŽ¯", "Private Aura" },
    { "å°–åˆº", "Buster" },
    { "å€’è®¡æ—¶", "Countdown" },
    { "æ–‡å­—", "Text" },
    { "å°±ç»ª", "Ready" },
    { "æ­£åœ¨æ–½æ”¾", "Casting" },
    { "å‡†å¤‡ä¼ é€åˆ°", "preparing to teleport to" },
    { "å¼€å—œè¡€", "Heroism" },
    { "å—œè¡€", "Heroism" },
    { "Sxæ³¢æ¬¡", "Heroism " },
    { "ä¸»ç›®æ ‡", "Focus " },
    { "åˆæ³¢", "Combine pull" },
    { "å¼€ç«è½¦", "Chain pull" },
    { "æ•‘äºº", "Save " },
    { "æ³•ç³»æ€ª", "caster" },
    { "å¤§æ€ª", "big mob" },
    { "æ‰“æŽ‰", "kill " },
    { "æ³¨æ„", "Watch " },
    { "è€ƒè™‘", "Consider " },
    { "ä¸è¦add", "don't pull extra" },
    { "æ³¢æ¬¡", "pull" },
    { "æ‰“æ–­", "interrupt" },
    { "å‡ä¼¤", "Defensives" },
    { "æŽ§åˆ¶", "CC" },
    { "é©±æ•£", "dispel" },
    { "èµ·æ‰‹", "On pull" },
    { "èµ°ä¾§é¢", "flank" },
    { "åƒbuff", "get buff" },
    { "è·¯çº¿", "Route" },
    { "æ•Œå†›", "Forces" },
    { "å…µåŠ›", "Forces" },
    { "æ‰“T", "hits tank" },
    { "åŒæ‰“T", "double hits tank" },
    { "æµè¡€", "bleed " },
    { "å±‚æ•°", "stacks" },
    { "è¿›åº¦å¯å¹³æ›¿", "count can be swapped" },
    { "å¤§çº¢", "Healthstone/Pot" },
    { "çŸ®äºº", "Dwarf racial" },
    { "æ— æ•Œ", "Immunity" },
    { "Ã¥Â¤Â§Ã§Â§ËœÃ¥Â¢Æ’", "Mythic+" },
    { "Ã¥Â¤Â§Ã§Â±Â³", "Mythic+" },
    { "æ‰“æ–­", "interrupt" },
    { "å‡ä¼¤", "Defensives" },
    { "æŽ§åˆ¶", "CC" },
    { "é©±æ•£", "dispel" },
    { "èµ·æ‰‹", "On pull" },
    { "èµ°ä¾§é¢", "flank" },
    { "åƒbuff", "get buff" },
    { "è·¯çº¿", "Route" },
    { "å‰¯æœ¬", "Dungeon" },
    { "æ•Œå†›", "Forces" },
    { "éƒ¨é˜Ÿ", "Forces" },
    { "æ‰“T", "hits tank" },
    { "æµè¡€", "bleed " },
    { "å±‚æ•°", "stacks" },
    { "å¤§çº¢", "Healthstone/Pot" },
    { "çŸ®äºº", "Dwarf racial" },
    { "æ— æ•Œ", "Immunity" },
    { "Ã¥Â¤Â§Ã§Â§ËœÃ¥Â¢Æ’", "Mythic+" },
    { "Ã¥Â¤Â§Ã§Â±Â³", "Mythic+" },
    { "Ã¥â€ºÂ¢Ã¦Å“Â¬", "Raid" },
    { "Ã¥â€°Â¯Ã¦Å“Â¬", "Dungeon" },
    { "Ã©Â¦â€“Ã©Â¢â€ ", "Boss" },
    { "Ã¨Â¯Â­Ã©Å¸Â³Ã¥Å’â€¦", "Voice Pack" },
    { "Ã¨Â¯Â­Ã©Å¸Â³", "Voice" },
    { "Ã¨Â®Â¾Ã§Â½Â®", "Settings" },
    { "Ã¦â€”Â¶Ã©â€”Â´Ã¨Â½Â´", "Timeline" },
    { "Ã¥â€ºÂºÃ¥Â®Å¡Ã¨Â½Â´", "Fixed Timeline" },
    { "Ã©Â¢Å“Ã¨â€°Â²", "Color" },
    { "Ã¤Â½ÂÃ§Â½Â®", "Position" },
    { "Ã¦â€ºÂ´Ã¦â€“Â°Ã¦â€”Â¥Ã¥Â¿â€”", "Changelog" },
    { "Ã¨Â½Â½Ã¥â€¦Â¥", "Load" },
    { "Ã©â€¡ÂÃ§Â½Â®", "Reset" },
    { "Ã¥ÂÂ¯Ã§â€Â¨", "Enable" },
    { "Ã§Â¦ÂÃ§â€Â¨", "Disable" },
    { "Ã¥â€¦Â¨Ã©â€¡Â", "Total" },
    { "Ã¦Å“â‚¬Ã¨Â¿â€˜Ã©â€â„¢Ã¨Â¯Â¯", "Last error" },
    { "Ã©ÂÅ¾Ã¥â€ºÂ¢Ã¦Å“Â¬", "Non-raid" },
    { "Ã©Â¢â€žÃ¤Â¼Â°", "Estimated" },
    { "Ã¥Â®Å¾Ã¦Âµâ€¹", "Live" },
    { "Ã©Â¢â€žÃ¨Â®Â¾Ã©â€¦ÂÃ§Â½Â®", "Default Preset" },
    { "Ã¦Å“ÂªÃ¥â€˜Â½Ã¥ÂÂ", "Untitled" },
    { "Ã¦Ë†ËœÃ¥Â£Â«", "Warrior" },
    { "Ã¥Å“Â£Ã©Âªâ€˜Ã¥Â£Â«", "Paladin" },
    { "Ã¦Â½Å“Ã¨Â¡Å’Ã¨â‚¬â€¦", "Rogue" },
    { "Ã§â€°Â§Ã¥Â¸Ë†", "Priest" },
    { "Ã¦Å“Â¯Ã¥Â£Â«", "Warlock" },
    { "Ã¦Â­Â¦Ã¥Æ’Â§", "Monk" },
    { "Ã¦ÂÂ¶Ã©Â­â€Ã§Å’Å½Ã¦â€°â€¹", "Demon Hunter" },
    { "Ã¥â€Â¤Ã©Â­â€Ã¥Â¸Ë†", "Evoker" },
    { "Ã©Â²Å“Ã¨Â¡â‚¬", "Blood" },
    { "Ã¥â€ Â°Ã©Å“Å“", "Frost" },
    { "Ã©â€šÂªÃ¦ÂÂ¶", "Unholy" },
    { "Ã¦Â­Â¦Ã¥â„¢Â¨", "Arms" },
    { "Ã©ËœÂ²Ã¦Å Â¤", "Protection" },
    { "Ã¦Æ’Â©Ã¦Ë†â€™", "Retribution" },
    { "Ã¥Â¤ÂÃ¤Â»â€¡", "Vengeance" },
    { "Ã¥Â¥â€¡Ã¨Â¢Â­", "Assassination" },
    { "Ã§â€¹â€šÃ¥Â¾â€™", "Outlaw" },
    { "Ã¦â€¢ÂÃ©â€Â", "Subtlety" },
    { "Ã©â€¦â€™Ã¤Â»â„¢", "Brewmaster" },
    { "Ã¨Â¸ÂÃ©Â£Å½", "Windwalker" },
    { "Ã§Â»â€¡Ã©â€ºÂ¾", "Mistweaver" },
    { "Ã©â€¡Å½Ã¦â‚¬Â§", "Feral" },
    { "Ã¥Â®Ë†Ã¦Å Â¤", "Guardian" },
    { "Ã¦Ë†â€™Ã¥Â¾â€¹", "Discipline" },
    { "Ã¦Å¡â€”Ã¥Â½Â±", "Shadow" },
    { "Ã¥Â¥Â¥Ã¦Å“Â¯", "Arcane" },
    { "Ã§ÂÂ«Ã§â€žÂ°", "Fire" },
    { "Ã¥â€¦Æ’Ã§Â´Â ", "Elemental" },
    { "Ã¥Â¢Å¾Ã¥Â¼Âº", "Enhancement" },
    { "Ã¦ÂÂ¢Ã¥Â¤Â", "Restoration" },
    { "Ã¥Â°â€žÃ¥â€¡Â»", "Marksmanship" },
    { "Ã¥â€¦Â½Ã§Å½â€¹", "Beast Mastery" },
    { "Ã§â€Å¸Ã¥Â­Ëœ", "Survival" },
    { "Ã§Â¥Å¾Ã¥Å“Â£", "Holy" },
    { "Ã§â€¹â€šÃ¦â‚¬â€™", "Fury" },
    { "Ã¦ÂµÂ©Ã¥Å Â«", "Havoc" },
    { "Ã§â€”â€ºÃ¨â€¹Â¦", "Affliction" },
    { "Ã¦ÂÂ¶Ã©Â­â€Ã¥Â­Â¦Ã¨Â¯â€ ", "Demonology" },
    { "Ã¦Â¯ÂÃ§ÂÂ­", "Destruction" },
    { "Ã¦Â¹Â®Ã§ÂÂ­", "Devastation" },
    { "Ã¦ÂÂ©Ã¦Å Â¤", "Preservation" },
    { "Ã¥Â¢Å¾Ã¨Â¾â€°", "Augmentation" },
    { "Ã¦Å â‚¬Ã¨Æ’Â½Ã¥ÂÂÃ§Â§Â°", "Spell Name" },
    { "Ã¦Â³â€¢Ã¦Å“Â¯Ã¥ÂÂÃ§Â§Â°", "Spell Name" },
    { "Ã¦Å â‚¬Ã¨Æ’Â½Ã§Â¤ÂºÃ¤Â¾â€¹", "Skill Example" },
    { "Ã¦Âµâ€¹Ã¨Â¯â€¢Ã¦Å â‚¬Ã¨Æ’Â½", "Test Skill" },
    { "Ã©Â¢â€žÃ¨Â§Ë†Ã¦Å â‚¬Ã¨Æ’Â½", "Preview Skill" },
    { "Ã¦Âµâ€¹Ã¨Â¯â€¢Ã¦â€“Â½Ã¦Â³â€¢", "Test Cast" },
    { "Ã¦Å â‚¬Ã¨Æ’Â½", "Skill" },
    { "Ã¦Â³â€¢Ã¦Å“Â¯", "Spell" },
    { "Ã¥ÂÂÃ§Â§Â°", "Name" },
    { "Ã§Â¤ÂºÃ¤Â¾â€¹", "Example" },
    { "Ã¦Âµâ€¹Ã¨Â¯â€¢", "Test" },
    { "Ã©Â¢â€žÃ¨Â§Ë†", "Preview" },
    { "Ã¦ÂÂÃ§Â¤Âº", "Alert" },
    { "Ã¨Â­Â¦Ã¥â€˜Å ", "Warning" },
    { "Ã¦Å“ÂªÃ§Å¸Â¥", "Unknown" },
    { "Ã§Â§ÂÃ¤ÂºÂºÃ¥â€¦â€°Ã§Å½Â¯", "Private Aura" },
    { "Ã¥Â°â€“Ã¥Ë†Âº", "Buster" },
    { "Ã¥â‚¬â€™Ã¨Â®Â¡Ã¦â€”Â¶", "Countdown" },
    { "Ã¦â€“â€¡Ã¥Â­â€”", "Text" },
    { "Ã¥Â°Â±Ã§Â»Âª", "Ready" },
    { "Ã¦Â­Â£Ã¥Å“Â¨Ã¦â€“Â½Ã¦â€Â¾", "Casting" },
    { "Ã¥â€¡â€ Ã¥Â¤â€¡Ã¤Â¼Â Ã©â‚¬ÂÃ¥Ë†Â°", "preparing to teleport to" },
    { "Ã¥Â¹Â¿Ã¥â€˜Å ", "spam" },
    -- Properly-encoded Chinese voice label fragments (visible in Screenshot 1)
    { "å‡»é€€", "Knockback" },
    { "å‡»é£ž", "Launch" },
    { "å¤´å‰", "Frontal" },
    { "æŒ¡çƒ", "Block Orb" },
    { "æ²»ç–—", "Healing" },
    { "æ¶ˆçƒ", "Clear Orb" },
    { "èº²é¿", "Dodge" },
    { "å‡†å¤‡dispel", "Prepare Dispel" },
    { "å‡†å¤‡interrupt", "Prepare Interrupt" },
    { "å¦å…‹Buster", "Tank Buster" },
    { "å¼ºåŒ–Retributionéª‘", "Empower Ret Paladin" },
    { "å¿«Save", "Rescue Now" },
    { "å¿«interrupt", "Interrupt Now" },
    { "ç‰¹æ®ŠSkill", "Special Mechanic" },
    { "è½¬ç«big mob", "Switch Boss" },
    { "è¿œç¦»big mob", "Away Add" },
    -- Additional properly-encoded Chinese tokens
    { "æ–¹æ¡ˆ", "Profile" },
    { "æ ‡ç­¾", "Labels" },
    { "æè¿°", "Description" },
    { "èŒè´£", "Role" },
    { "è¿›åº¦", "Progress" },
    { "å¥—è£…", "Preset" },
    { "æ€»æ•°", "Total" },
    { "èŠ‚ç‚¹", "Nodes" },
    { "åˆ·æ–°", "Refresh" },
    { "åœ†çŽ¯", "Ring" },
    { "å°ºå¯¸", "Size" },
    { "æ ·å¼", "Style" },
    { "ç¼–è¾‘æ¨¡å¼", "Edit Mode" },
    { "å¤–è§‚", "Appearance" },
    { "æŽ’åˆ—", "Growth" },
    { "æ–¹å‘", "Direction" },
    { "ç¼©æ”¾", "Scale" },
    { "å†·å´", "Cooldown" },
    { "é‡å‘½å", "Rename" },
    { "æ§½ä½", "Slot" },
    { "çª—å£", "Window" },
    -- Chinese fragments from Timeline/Config description strings
    { "æŸ¥çœ‹", "view" },
    { "ä¾¿äºŽ", "for" },
    { "å¿«é€Ÿ", "quickly" },
    { "æ ¡å¯¹", "verify" },
    { "èŠ‚å¥", "pacing" },
    { "å‡ºçŽ°", "appear" },
    { "åˆ†é’Ÿå†…çš„", "min " },
    { "åœ¨å‰", "over the first" },
    { "æŒ‰", "by" },
}

-- Deduplicate TOKEN_REPLACEMENTS
do
    local seen, deduped = {}, {}
    for i = 1, #TOKEN_REPLACEMENTS do
        local key = TOKEN_REPLACEMENTS[i][1]
        if key and not seen[key] then
            seen[key] = true
            deduped[#deduped + 1] = TOKEN_REPLACEMENTS[i]
        end
    end
    TOKEN_REPLACEMENTS = deduped
end

local function EscapePattern(text)
    local value = SafeString(text) or ""
    local ok, escaped = pcall(function()
        return value:gsub("([%%%^%$%(%)%.%[%]%*%+%-%?])", "%%%1")
    end)
    return ok and escaped or ""
end

local SPANISH_EXACT_REPLACEMENTS = {
    ["Home (Stub)"] = "Inicio",
    ["Voice / Config"] = "Voz / Configuracion",
    ["Dungeons"] = "Mazmorras",
    ["Import / Export"] = "Importar / Exportar",
    ["Timeline"] = "Timeline",
    ["Timeline Mode"] = "Modo timeline",
    ["Module"] = "Modulo",
    ["Modules"] = "Modulos",
    ["Settings"] = "Ajustes",
    ["Module Manager"] = "Administrador de modulos",
    ["Enable All"] = "Activar todo",
    ["Disable All"] = "Desactivar todo",
    ["disabled"] = "desactivado",
    ["Click a card to enable/disable. Click Settings to configure. Changes require /reload."] = "Haz clic en una tarjeta para activar o desactivar. Haz clic en Ajustes para configurar. Los cambios requieren /reload.",
    ["Version: %s | Engine: GRID %s"] = "Version: %s | Motor: GRID %s",
    ["Dangerous: cannot be undone. Export a backup in Profile Manager first."] = "Peligroso: no se puede deshacer. Exporta primero una copia de seguridad en el gestor de perfiles.",
    ["Panel"] = "Panel",
    ["Tools"] = "Herramientas",
    ["Home"] = "Inicio",
    ["Diagnostics"] = "Diagnosticos",
    ["Profiles"] = "Perfiles",
    ["Common Tools"] = "Herramientas comunes",
    ["M+ Utilities"] = "Utilidades de M+",
    ["M+ (Info)"] = "M+ (Informacion)",
    ["M+ (Combat)"] = "M+ (Combate)",
    ["Class (General)"] = "Clase (General)",
    ["Auto Purchase"] = "Compra automatica",
    ["Chat Channel Bar"] = "Barra de canales de chat",
    ["MDT Spell Icon Replacement"] = "Reemplazo de iconos de hechizo en MDT",
    ["M+ Score / Click Teleport"] = "Puntuacion M+ / Teletransporte con clic",
    ["M+ Teleport Announce"] = "Anuncio de teletransporte M+",
    ["M+ Season History"] = "Historial de temporada M+",
    ["M+ Damage Calculator"] = "Calculadora de dano M+",
    ["PvE Info Panel"] = "Panel de informacion PvE",
    ["Interrupt Tracker"] = "Monitor de interrupciones",
    ["Nearby Cast Monitor"] = "Monitor de casteos cercanos",
    ["Spell Queue Latency"] = "Latencia de cola de hechizos",
    ["Proc Transparency"] = "Transparencia de procs",
    ["Player Stats Monitor"] = "Monitor de atributos del jugador",
    ["Cast Sequence"] = "Secuencia de lanzamiento",
    ["Range Monitor"] = "Monitor de distancia",
    ["Movement CD Alert"] = "Aviso de CD de movimiento",
    ["Focus Cast Alert"] = "Aviso de casteo de foco",
    ["Brewmaster Stagger Bar"] = "Barra de Tambaleo del maestro cervecero",
    ["Bloodlust Sound (YY Sound)"] = "Sonido de Heroismo (YY Sound)",
    ["Extension Panel"] = "Panel extendido",
    ["Player Stats Panel"] = "Panel de atributos del jugador",
    ["Streamer Tools"] = "Herramientas para streamers",
    ["Mini Tools"] = "Mini herramientas",
    ["A toolbox of small and practical utility tweaks."] = "Caja de pequenas utilidades practicas.",
    ["A collection of small utility features. |cffff0000Note: changes usually require /reload to fully apply.|r"] = "Coleccion de pequenas utilidades. |cffff0000Nota: los cambios suelen requerir /reload para aplicarse por completo.|r",
    ["1. Map Info (optional ID + mouse/player coordinates)"] = "1. Informacion del mapa (ID opcional + coordenadas del raton/jugador)",
    ["Enable: show coordinates on the world map"] = "Activar: mostrar coordenadas en el mapa del mundo",
    ["Hide MapID"] = "Ocultar MapID",
    ["Anchor Position"] = "Posicion del anclaje",
    ["Font Settings"] = "Ajustes de fuente",
    ["Font Size"] = "Tamano de fuente",
    ["Text Outline"] = "Contorno del texto",
    ["Enable Shadow"] = "Activar sombra",
    ["Shadow X Offset"] = "Desplazamiento X de la sombra",
    ["Shadow Y Offset"] = "Desplazamiento Y de la sombra",
    ["Shadow X"] = "Sombra X",
    ["Shadow Y"] = "Sombra Y",
    ["X Offset"] = "Desplazamiento X",
    ["Y Offset"] = "Desplazamiento Y",
    ["Top Left"] = "Arriba a la izquierda",
    ["Top Right"] = "Arriba a la derecha",
    ["Top Center"] = "Arriba al centro",
    ["Bottom Left"] = "Abajo a la izquierda",
    ["Appearance"] = "Apariencia",
    ["Background"] = "Fondo",
    ["Components"] = "Componentes",
    ["Behavior"] = "Comportamiento",
    ["Alignment"] = "Alineacion",
    ["Frequency"] = "Frecuencia",
    ["Separator"] = "Separador",
    ["Add Sound"] = "Anadir sonido",
    ["Save Note"] = "Guardar nota",
    ["Clear All"] = "Limpiar todo",
    ["Clear List"] = "Limpiar lista",
    ["Show List"] = "Mostrar lista",
    ["Filter ID"] = "Filtrar ID",
    ["Spell ID"] = "ID del hechizo",
    ["Best Run"] = "Mejor run",
    ["Bulk Buy"] = "Compra masiva",
    ["Auto Buy"] = "Compra automatica",
    ["Chat Bar"] = "Barra de chat",
    ["Decimals"] = "Decimales",
    ["No notes"] = "Sin notas",
    ["Untitled"] = "Sin titulo",
    ["My Profile"] = "Mi perfil",
    ["Version: "] = "Version: ",
    ["Loading..."] = "Cargando...",
    ["Ready Text"] = "Texto de listo",
    ["Text Alert"] = "Aviso de texto",
    ["Text Style"] = "Estilo de texto",
    ["Auto Width"] = "Ancho automatico",
    ["Button Size"] = "Tamano del boton",
    ["Enable Glow"] = "Activar brillo",
    ["Glow Color"] = "Color del brillo",
    ["Glow Style"] = "Estilo del brillo",
    ["Fade Others"] = "Atenuar otros",
    ["Foreground"] = "Primer plano",
    ["Line Color"] = "Color de linea",
    ["Line Width"] = "Grosor de linea",
    ["Line Count"] = "Cantidad de lineas",
    ["Icon Count"] = "Cantidad de iconos",
    ["Border Size"] = "Tamano del borde",
    ["Cast Target"] = "Objetivo de lanzamiento",
    ["Consumables"] = "Consumibles",
    ["Date & Time"] = "Fecha y hora",
    ["Enable Glow"] = "Activar brillo",
    ["Show Roles"] = "Mostrar roles",
    ["Unequipped"] = "Sin equipar",
    ["No Reward"] = "Sin recompensa",
    ["Reverse CD"] = "Invertir CD",
    ["Overlay On"] = "Superposicion activa",
    ["MapID: %s"] = "MapID: %s",
    ["Preview:"] = "Vista previa:",
    ["Route %s"] = "Ruta %s",
    ["Spell %s"] = "Hechizo %s",
    ["Dungeon %s"] = "Mazmorra %s",
    ["No Cache"] = "Sin cache",
    ["Learn All"] = "Aprender todo",
    ["Main Stat"] = "Estadistica principal",
    ["Secondary"] = "Secundaria",
    ["Tertiary"] = "Terciaria",
    ["Atonement"] = "Expiacion",
    ["Particles"] = "Particulas",
    ["Hide Icon"] = "Ocultar icono",
    ["Icon Side"] = "Lado del icono",
    ["Max Shown"] = "Maximo mostrado",
    ["Trash CD"] = "CD de basura",
    ["Elite Mobs"] = "Enemigos de elite",
    ["Button Size"] = "Tamano del boton",
    ["2. Auto Delete Confirm"] = "2. Confirmacion automatica de borrado",
    ["Enable: auto-fill 'DELETE' when deleting items"] = "Activar: autocompletar 'DELETE' al borrar objetos",
    ["3. Auto Sell Junk"] = "3. Venta automatica de basura",
    ["Enable: auto-sell gray items when opening a merchant"] = "Activar: vender automaticamente objetos grises al abrir un vendedor",
    ["4. Auto Combat Log"] = "4. Registro automatico de combate",
    ["5-player dungeon settings"] = "Ajustes de mazmorras de 5 jugadores",
    ["Raid settings"] = "Ajustes de banda",
    ["Normal"] = "Normal",
    ["Heroic"] = "Heroico",
    ["Mythic"] = "Mitico",
    ["Follower"] = "Seguidor",
    ["LFR"] = "Buscador de bandas",
    ["5. Bulk Buy Assistant"] = "5. Asistente de compra masiva",
    ["Enable: Shift+Click to override merchant purchase"] = "Activar: Shift+clic para controlar la compra al vendedor",
    ["Require a confirmation popup when total cost exceeds this many gold"] = "Requerir un popup de confirmacion cuando el coste total supere esta cantidad de oro",
    ["6. Reset Damage on Instance Entry"] = "6. Reiniciar dano al entrar en instancia",
    ["Enable: show a reset damage meter prompt when entering an instance"] = "Activar: mostrar un aviso para reiniciar el medidor de dano al entrar en una instancia",
    ["Common feature bundle (auto-sell junk, chat log, delete confirm, etc.)"] = "Paquete de funciones comunes (autoventa de basura, registro de chat, confirmacion de borrado, etc.)",
    ["Collection of handy M+ utilities."] = "Coleccion de utilidades practicas de M+.",
    ["Displays a marker at screen center, changes color when out of range."] = "Muestra un marcador en el centro de la pantalla y cambia de color al salir de alcance.",
    ["Toolbar for quickly switching chat channels."] = "Barra para cambiar rapidamente de canal de chat.",
    ["Automatically purchase specified items."] = "Compra automaticamente los objetos especificados.",
    ["Replaces mob portraits in MDT maps with spell icons."] = "Reemplaza los retratos de enemigos en los mapas de MDT por iconos de hechizo.",
    ["A quick bar for switching chat channels."] = "Barra rapida para cambiar de canal de chat.",
    ["Chat announcements and alerts for M+ teleports."] = "Anuncios y avisos de chat para teletransportes de M+.",
    ["Record and display M+ season history."] = "Registra y muestra el historial de temporada de M+.",
    ["M+ statistics panel and display."] = "Panel y vista de estadisticas de M+.",
    ["Internal data / spell database."] = "Datos internos / base de datos de hechizos.",
    ["Standalone UI to calculate actual spell damage by keystone level."] = "Interfaz independiente para calcular el dano real de hechizos segun el nivel de piedra angular.",
    ["Displays an extra info panel alongside the Dungeon Finder (PVEFrame)."] = "Muestra un panel de informacion extra junto al buscador de mazmorras (PVEFrame).",
    ["Infer and track teammate interrupt cooldowns (supports 12.0)."] = "Deduce y rastrea los tiempos de reutilizacion de las interrupciones del grupo (compatible con 12.0).",
    ["Shows nearby mob cast bars with separate colors for interruptible and unbreakable casts."] = "Muestra barras de casteo de enemigos cercanos con colores separados para casteos interrumpibles y no interrumpibles.",
    ["Automatically adjusts spell queue latency based on current spec."] = "Ajusta automaticamente la latencia de la cola de hechizos segun la especializacion actual.",
    ["Automatically adjusts proc transparency based on current spec."] = "Ajusta automaticamente la transparencia de los procs segun la especializacion actual.",
    ["Collect and display player combat stats."] = "Recopila y muestra las estadisticas de combate del jugador.",
    ["Plays a sound when a teammate triggers Bloodlust. (Beta)"] = "Reproduce un sonido cuando un companero activa Heroismo. (Beta)",
    ["Displays your cast sequence in real time with cast/channel/instant/interrupt state visualization."] = "Muestra tu secuencia de lanzamiento en tiempo real con visualizacion de casteo, canalizacion, instantaneos e interrupciones.",
    ["Displays target distance range in real time."] = "Muestra en tiempo real el rango de distancia del objetivo.",
    ["Tracks cast progress on nameplate units in real time."] = "Rastrea en tiempo real el progreso de casteo de las placas de nombre.",
    ["Tracks teammate interrupt cooldowns in real time (bar style)."] = "Rastrea en tiempo real los tiempos de reutilizacion de las interrupciones del grupo (estilo barra).",
    ["Alerts when movement ability is on cooldown."] = "Avisa cuando una habilidad de movimiento esta en tiempo de reutilizacion.",
    ["Monitors focus target casting only, with independent cast bar and sound alerts."] = "Supervisa solo el casteo del foco, con barra de casteo y avisos de sonido independientes.",
    ["PTR-only convenience features (suppress feedback, one-click talent apply, etc.)"] = "Funciones de comodidad solo para PTR (ocultar avisos, aplicar talentos con un clic, etc.)",
    ["PTR: Quickly create or set keystones."] = "PTR: crea o ajusta piedras angulares rapidamente.",
    ["Group Join Alert / M+ Teleport"] = "Aviso de grupo / Teletransporte M+",
    ["Mythic+ Party Keystones"] = "Piedras angulares del grupo M+",
    ["Interrupt Tracker (Bars)"] = "Monitor de interrupciones (barras)",
    ["Interrupt Tracker Anchor"] = "Ancla del monitor de interrupciones",
    ["Mythic Mob Casts (MythicCast)"] = "Casteos de enemigos miticos (MythicCast)",
    ["Open EXBoss"] = "Abrir EXBoss",
    ["Other Voice"] = "Otra voz",
    ["Apply Import"] = "Aplicar importacion",
    ["Display Text"] = "Mostrar texto",
    ["Dungeon Maps"] = "Mapas de mazmorra",
    ["Enable Timer"] = "Activar temporizador",
    ["Frame Strata"] = "Estrato del marco",
    ["Global Scale"] = "Escala global",
    ["Player Stats"] = "Atributos del jugador",
    ["Raid Markers"] = "Marcadores de banda",
    ["Range Format"] = "Formato de rango",
    ["SEASON SCORE"] = "PUNTUACION DE TEMPORADA",
    ["Season Total"] = "Total de temporada",
    ["Show Casters"] = "Mostrar lanzadores",
    ["Show Percent"] = "Mostrar porcentaje",
    ["Target Frame"] = "Marco del objetivo",
    ["Test Actions"] = "Probar acciones",
    ["Other voice page is not ready."] = "La pagina de otra voz no esta lista.",
    ["Voice pack page is not ready."] = "La pagina del paquete de voz no esta lista.",
    ["Import / Export page is not ready."] = "La pagina de Importar / Exportar no esta lista.",
    ["General settings page is not ready."] = "La pagina de ajustes generales no esta lista.",
    ["Fixed timeline preview page is not ready."] = "La pagina de vista previa de timeline fija no esta lista.",
    ["Boss spell page is not ready."] = "La pagina de hechizos del jefe no esta lista.",
    ["Trash CD page is not ready."] = "La pagina de CD de basura no esta lista.",
    ["Settings page [%s] - pending."] = "Pagina de ajustes [%s] - pendiente.",
    ["Voice pack page error:\n%s"] = "Error en la pagina del paquete de voz:\n%s",
    ["Other voice page error:\n%s"] = "Error en la pagina de otra voz:\n%s",
    ["Select modules to export:"] = "Selecciona los modulos a exportar:",
    ["Select modules to import:"] = "Selecciona los modulos a importar:",
    ["Parsed successfully! Found %d module(s)"] = "Analisis completado. Se encontraron %d modulo(s)",
    ["Please parse the import string first"] = "Analiza primero la cadena de importacion",
    ["Click the box to select all and copy"] = "Haz clic en la caja para seleccionar todo y copiar",
    ["Click to select all, Ctrl+C to copy"] = "Haz clic para seleccionar todo, Ctrl+C para copiar",
    ["No modules imported (none selected or data empty)"] = "No se importo ningun modulo (ninguno seleccionado o datos vacios)",
    ["Export Profile"] = "Exportar perfil",
    ["Import Profile"] = "Importar perfil",
    ["Select Preset"] = "Seleccionar preset",
    ["Import Preset"] = "Importar preset",
    ["Label Style"] = "Estilo de etiqueta",
    ["Value Style"] = "Estilo del valor",
    ["Player Name"] = "Nombre del jugador",
    ["Target Text"] = "Texto del objetivo",
    ["Display Format (%t = time)"] = "Formato de visualizacion (%t = tiempo)",
    ["Shadowstep Format (%t = time)"] = "Formato de Shadowstep (%t = tiempo)",
    ["Grappling Hook Format (%t = time)"] = "Formato de Gancho (%t = tiempo)",
    ["Spell Overlay Adjustments"] = "Ajustes del overlay de hechizos",
    ["Spell Activation Overlay Opacity"] = "Opacidad del overlay de activacion de hechizos",
    ["Choose Top Test Texture (preview only)"] = "Elegir textura superior de prueba (solo vista previa)",
    ["Choose Left/Right Texture (preview only)"] = "Elegir textura izquierda/derecha (solo vista previa)",
    ["Choose Left/Right Overlay"] = "Elegir overlay izquierda/derecha",
    ["Choose Top/Bottom Overlay"] = "Elegir overlay arriba/abajo",
    ["Global Default Opacity (%)"] = "Opacidad global por defecto (%)",
    ["Global Default Latency (Fixed)"] = "Latencia global por defecto (fija)",
    ["Global Latency Offset |cff00ffff(AI)|r"] = "Desplazamiento global de latencia |cff00ffff(IA)|r",
    ["Global Horizontal (Y) Offset"] = "Desplazamiento horizontal global (Y)",
    ["Global Vertical (X) Offset"] = "Desplazamiento vertical global (X)",
    ["Global Label X"] = "Etiqueta global X",
    ["Global Value X"] = "Valor global X",
    ["Overall Horizontal Position"] = "Posicion horizontal general",
    ["Overall Vertical Position"] = "Posicion vertical general",
    ["Grow Direction"] = "Direccion de crecimiento",
    ["Row Spacing"] = "Espaciado entre filas",
    ["Border Atlas"] = "Atlas del borde",
    ["Border Size"] = "Tamano del borde",
    ["Button Spacing"] = "Espaciado entre botones",
    ["Button Size"] = "Tamano del boton",
    ["Marker Size"] = "Tamano del marcador",
    ["Pulse Speed"] = "Velocidad de pulso",
    ["Blink Speed"] = "Velocidad de parpadeo",
    ["Pulse Magnitude (0 disables)"] = "Magnitud del pulso (0 lo desactiva)",
    ["Flow Speed"] = "Velocidad del flujo",
    ["Particle Size"] = "Tamano de particulas",
    ["Enable Glow"] = "Activar brillo",
    ["Fade-in Speed"] = "Velocidad de aparicion",
    ["Fade-out Speed"] = "Velocidad de desvanecimiento",
    ["Overlay Scale"] = "Escala de la superposicion",
    ["Overlay Off"] = "Superposicion desactivada",
    ["Overlay On"] = "Superposicion activa",
    ["Show Cast Bar"] = "Mostrar barra de casteo",
    ["Focus Cast Bar"] = "Barra de casteo de foco",
    ["Battle Rez Icon Size/Position"] = "Tamano/posicion del icono de resurreccion en combate",
    ["Battle Rez Charges Text (Bottom Right)"] = "Texto de cargas de resurreccion en combate (abajo a la derecha)",
    ["Battle Rez Timer Text (Center)"] = "Texto del temporizador de resurreccion en combate (centro)",
    ["Enable Battle Rez Tracking"] = "Activar seguimiento de resurreccion en combate",
    ["Ready Check"] = "Comprobacion de listo",
    ["Ready Text"] = "Texto de listo",
    ["Show Ready When Cooldown Ends"] = "Mostrar listo al terminar el CD",
    ["Show Interrupt Ready Marker"] = "Mostrar marcador de interrupcion lista",
    ["Melee DPS before Ranged DPS"] = "DPS mele antes que DPS rango",
    ["DPS Priority"] = "Prioridad DPS",
    ["Tank Priority"] = "Prioridad de tanque",
    ["Sort Priority"] = "Prioridad de ordenacion",
    ["Custom Message"] = "Mensaje personalizado",
    ["Reset Message"] = "Mensaje de reinicio",
    ["Reset on Boss"] = "Reiniciar en jefe",
    ["Leaving Combat"] = "Saliendo de combate",
    ["Display Options"] = "Opciones de visualizacion",
    ["Core Controls"] = "Controles principales",
    ["Core Settings"] = "Ajustes principales",
    ["Keystone Tools"] = "Herramientas de piedra angular",
    ["Create Keystone"] = "Crear piedra angular",
    ["Auto Insert Keystone When Panel Opens"] = "Insertar automaticamente la piedra angular al abrir el panel",
    ["No Keystone"] = "Sin piedra angular",
    ["Highest Key"] = "Piedra mas alta",
    ["This Week's M+ Runs (Top 8)"] = "Runs M+ de esta semana (top 8)",
    ["This Week Only"] = "Solo esta semana",
    ["No run recorded this season"] = "No hay runs registradas esta temporada",
    ["Best Run"] = "Mejor run",
    ["M+ Run History"] = "Historial de runs M+",
    ["M+ Stats Panel"] = "Panel de estadisticas M+",
    ["Open Dashboard"] = "Abrir panel",
    ["SEASON SCORE"] = "PUNTUACION DE TEMPORADA",
    ["Current title line (0.1%): "] = "Linea de titulo actual (0.1%): ",
    ["Congratulations, you are already a title player!"] = "Enhorabuena, ya eres jugador con titulo.",
    ["No Reward"] = "Sin recompensa",
    ["Unknown Race"] = "Raza desconocida",
    ["Use a Diablo-style orb HUD to display player health."] = "Usa un HUD de orbe estilo Diablo para mostrar la vida del jugador.",
    ["Health Percent"] = "Porcentaje de vida",
    ["Health Colors"] = "Colores de vida",
    ["Orb Size"] = "Tamano del orbe",
    ["Player Style"] = "Estilo del jugador",
    ["Style Template"] = "Plantilla de estilo",
    ["Enable This Unit"] = "Activar esta unidad",
    ["Target/Focus Style"] = "Estilo de objetivo/foco",
    ["Current Unit Settings"] = "Ajustes de la unidad actual",
    ["Current Style Settings"] = "Ajustes del estilo actual",
    ["HP Ã¢â€°Â¥ %"] = "HP >= %",
    ["Main Stat"] = "Estadistica principal",
    ["New Stat"] = "Nueva estadistica",
    ["Show Scenes"] = "Mostrar escenas",
    ["Show Roles"] = "Mostrar roles",
    ["Sync Styles"] = "Sincronizar estilos",
    ["Components"] = "Componentes",
    ["Player Stats"] = "Atributos del jugador",
    ["Player Stats Monitor"] = "Monitor de atributos del jugador",
    ["Preview Mode"] = "Modo de vista previa",
    ["Lock Position"] = "Bloquear posicion",
    ["Locked"] = "Bloqueado",
    ["Unlock Drag"] = "Desbloquear arrastre",
    ["Position X"] = "Posicion X",
    ["Position Y"] = "Posicion Y",
    ["Horizontal Offset (X)"] = "Desplazamiento horizontal (X)",
    ["Vertical Offset (Y)"] = "Desplazamiento vertical (Y)",
    ["Background Texture"] = "Textura de fondo",
    ["Background Color"] = "Color de fondo",
    ["Border Texture"] = "Textura del borde",
    ["Border Color"] = "Color del borde",
    ["Border Width"] = "Grosor del borde",
    ["Border Inset"] = "Inset del borde",
    ["Output Channel"] = "Canal de salida",
    ["Audio Channel"] = "Canal de audio",
    ["Audio Output Options"] = "Opciones de salida de audio",
    ["Main Volume"] = "Volumen principal",
    ["Effects"] = "Efectos",
    ["Music"] = "Musica",
    ["Dialog"] = "Dialogo",
    ["Target Align"] = "Alineacion del objetivo",
    ["Spell Align"] = "Alineacion del hechizo",
    ["Time Align"] = "Alineacion del tiempo",
    ["Text Align"] = "Alineacion del texto",
    ["Show Target"] = "Mostrar objetivo",
    ["Show Time"] = "Mostrar tiempo",
    ["Show Name"] = "Mostrar nombre",
    ["Show Background"] = "Mostrar fondo",
    ["Show Border"] = "Mostrar borde",
    ["Spacing"] = "Espaciado",
    ["Width"] = "Ancho",
    ["Height"] = "Alto",
    ["Offset"] = "Desplazamiento",
    ["Numeric Countdown"] = "Cuenta atras numerica",
    ["Show Numeric Countdown"] = "Mostrar cuenta atras numerica",
    ["Built-in Sound"] = "Sonido integrado",
    ["Select Sound"] = "Seleccionar sonido",
    ["Test Sound"] = "Probar sonido",
    ["Stop Test"] = "Detener prueba",
    ["Test Effect"] = "Probar efecto",
    ["Icon Settings"] = "Ajustes del icono",
    ["Sound Settings"] = "Ajustes de sonido",
    ["Font Style"] = "Estilo de fuente",
    ["Spell Name"] = "Nombre del hechizo",
    ["Time Text"] = "Texto de tiempo",
    ["Target"] = "Objetivo",
    ["Target Name"] = "Nombre del objetivo",
    ["Remaining Time"] = "Tiempo restante",
    ["Show Text"] = "Mostrar texto",
    ["Text Color"] = "Color del texto",
    ["Track Width"] = "Ancho de la pista",
    ["Track Height"] = "Alto de la pista",
    ["Name Position"] = "Posicion del nombre",
    ["Background Settings"] = "Ajustes del fondo",
    ["Color Profile"] = "Perfil de color",
    ["Custom Colors"] = "Colores personalizados",
    ["Load Settings"] = "Cargar ajustes",
    ["Reset Settings"] = "Restablecer ajustes",
    ["Import Appearance Settings (Apply Immediately)"] = "Importar ajustes de apariencia (aplicar inmediatamente)",
    ["Imported Author Name"] = "Nombre del autor importado",
    ["Profile Name"] = "Nombre del perfil",
    ["Delete profile: "] = "Eliminar perfil: ",
    ["Delete"] = "Eliminar",
    ["New"] = "Nuevo",
    ["New Component"] = "Nuevo componente",
    ["Enable Module"] = "Activar modulo",
    ["Enable This Row"] = "Activar esta fila",
    ["Rows"] = "Filas",
    ["Role"] = "Rol",
    ["Roles"] = "Roles",
    ["Scene"] = "Escena",
    ["Scenes"] = "Escenas",
    ["Value"] = "Valor",
    ["Name"] = "Nombre",
    ["Label"] = "Etiqueta",
    ["Example"] = "Ejemplo",
    ["Use Custom Path"] = "Usar ruta personalizada",
    ["Random Play Multiple"] = "Reproducir varias al azar",
    ["Icon Path/ID"] = "Ruta/ID del icono",
    ["Reverse Countdown"] = "Invertir cuenta atras",
    ["World Channel"] = "Canal del mundo",
    ["Auto"] = "Auto",
    ["Fixed Timeline"] = "Timeline fija",
    ["Test On"] = "Prueba On",
    ["Test Off"] = "Prueba Off",
    ["Select..."] = "Seleccionar...",
    ["Please select..."] = "Selecciona...",
    ["No description available."] = "No hay descripcion disponible.",
    ["No Spell Selected"] = "Ningun hechizo seleccionado",
    ["No boss data for the current dungeon"] = "No hay datos de jefe para la mazmorra actual",
    ["No dungeon data in this category"] = "No hay datos de mazmorra en esta categoria",
    ["Dungeon Switch"] = "Cambio de mazmorra",
    ["Boss List"] = "Lista de jefes",
    ["Dungeon"] = "Mazmorra",
    ["Boss"] = "Jefe",
    ["Bosses"] = "Jefes",
    ["Event"] = "Evento",
    ["Events"] = "Eventos",
    ["Spell"] = "Hechizo",
    ["Skill"] = "Habilidad",
    ["Skills"] = "Habilidades",
    ["Unlimited range"] = "Alcance ilimitado",
    ["Instant"] = "Instantaneo",
    ["Screen Captured"] = "Captura en pantalla",
    ["Select Voice Pack"] = "Seleccionar paquete de voz",
    ["Current Voice Pack"] = "Paquete de voz actual",
    ["Official default voice pack"] = "Paquete de voz oficial por defecto",
    ["Official EXBoss default voice pack"] = "Paquete de voz oficial por defecto de EXBoss",
    ["Chinese voice pack"] = "Paquete de voz chino",
    ["Active"] = "Activo",
    ["Missing Labels"] = "Etiquetas faltantes",
    ["Description"] = "Descripcion",
    ["Author"] = "Autor",
    ["Version"] = "Version",
    ["Select Profile"] = "Seleccionar perfil",
    ["Profile:"] = "Perfil:",
    ["Slot:"] = "Ranura:",
    ["Raid Profiles"] = "Perfiles de banda",
    ["Mythic+ Profiles"] = "Perfiles de Mythic+",
    ["VOICE / PROFILES"] = "VOZ / PERFILES",
    ["General Settings"] = "Ajustes generales",
    ["General"] = "General",
    ["Voice Settings"] = "Ajustes de voz",
    ["Text Settings"] = "Ajustes de texto",
    ["Position"] = "Posicion",
    ["Scale"] = "Escala",
    ["Style"] = "Estilo",
    ["Size"] = "Tamano",
    ["Refresh"] = "Actualizar",
    ["Enable"] = "Activar",
    ["Enable Edit Mode"] = "Activar modo edicion",
    ["Disable Edit Mode"] = "Desactivar modo edicion",
    ["Reload UI"] = "Recargar UI",
    ["Changelog"] = "Registro de cambios",
    ["Enable Color Overlay"] = "Activar superposicion de color",
    ["Enable Blizzard center-screen warnings (required for voice alerts)"] = "Activar avisos centrales de Blizzard (obligatorio para las alertas de voz)",
    ["Enable Blizzard center-screen warnings (required for voice alerts)"] = "Activar avisos centrales de Blizzard (obligatorio para las alertas de voz)",
    ["Disable"] = "Desactivar",
    ["Show"] = "Mostrar",
    ["Hide"] = "Ocultar",
    ["Only in Dungeons"] = "Solo en mazmorras",
    ["Show in Combat"] = "Mostrar en combate",
    ["Show out of Combat"] = "Mostrar fuera de combate",
    ["Visibility Rules"] = "Reglas de visibilidad",
    ["Range Check"] = "Comprobacion de distancia",
    ["Range Check Spell (ID)"] = "Hechizo de distancia (ID)",
    ["Shape Style"] = "Estilo de forma",
    ["Attach To"] = "Anclar a",
    ["Attach to Target Frame"] = "Anclar al marco del objetivo",
    ["Do Not Attach"] = "No anclar",
    ["Current role:"] = "Rol actual:",
    ["Fixed Timeline Overview"] = "Resumen de la linea de tiempo fija",
    ["Fixed Bosses"] = "Jefes fijos",
    ["Total Skills"] = "Habilidades totales",
    ["Mythic+ Tank"] = "Tanque de Mythic+",
    ["Mythic+ DPS"] = "DPS de Mythic+",
    ["Mythic+ Healer"] = "Sanador de Mythic+",
    ["Enable Indicator"] = "Activar indicador",
    ["Default: spec preset"] = "Por defecto: preset de especializacion",
    ["World Channel"] = "Canal del mundo",
    ["Center Text"] = "Texto central",
    ["Center Warning"] = "Aviso central",
    ["Center Text Content (supports {name})"] = "Contenido del texto central (admite {name})",
    ["Center Text Content ({name} available)"] = "Contenido del texto central (admite {name})",
    ["Center Text Content (supports [name])"] = "Contenido del texto central (admite [name])",
    ["(supports {name})"] = "(admite {name})",
    ["(supports [name])"] = "(admite [name])",
    ["Pre-Alert (sec)"] = "Preaviso (seg)",
    ["Pre-Alert 5s"] = "Preaviso 5 s",
    ["Rename Timer Bar"] = "Renombrar barra de tiempo",
    ["Voice Source"] = "Fuente de voz",
    ["Voice Label"] = "Etiqueta de voz",
    ["Voice Labels"] = "Etiquetas de voz",
    ["Voice Pack Label"] = "Etiqueta del paquete de voz",
    ["LSM Sound"] = "Sonido LSM",
    ["Custom Path"] = "Ruta personalizada",
    ["File Path"] = "Ruta del archivo",
    ["Preview"] = "Vista previa",
    ["Delay"] = "Retraso",
    ["Duration (sec)"] = "Duracion (seg)",
    ["Window Before (sec)"] = "Ventana antes (seg)",
    ["Window After (sec)"] = "Ventana despues (seg)",
    ["Advanced Conditions (Event Window + Boss Cast)"] = "Condiciones avanzadas (ventana de evento + casteo del jefe)",
    ["Enable Advanced Conditions"] = "Activar condiciones avanzadas",
    ["Show Ring After Hit"] = "Mostrar anillo tras el impacto",
    ["12.0 Mythic+"] = "12.0 Mythic+",
    ["12.0 Raid"] = "12.0 Banda",
    ["Liberation of Undermine"] = "Liberacion de Minahonda",
    ["Nerub-ar Palace"] = "Palacio Nerub-ar",
    ["The Eternal Palace"] = "Palacio Eterno",
    ["Raid Tank"] = "Tanque de banda",
    ["Raid DPS"] = "DPS de banda",
    ["Raid Healer"] = "Sanador de banda",
    ["Raid Boss"] = "Jefe de banda",
    ["Raid Boss Encounter"] = "Encuentro de jefe de banda",
    ["Other"] = "Otro",
    ["Cast Start"] = "Inicio de lanzamiento",
    ["Cast Success"] = "Lanzamiento completado",
    ["Above"] = "Arriba",
    ["Below"] = "Abajo",
    ["Thin"] = "Fino",
    ["Thick"] = "Grueso",
    ["Monochrome"] = "Monocromo",
    ["Primary Stat"] = "Estadistica principal",
    ["Value Alignment"] = "Alineacion del valor",
    ["CENTER: Center"] = "CENTER: Centrado",
    ["LEFT: Align Left"] = "LEFT: Alinear a la izquierda",
    ["RIGHT: Align Right"] = "RIGHT: Alinear a la derecha",
    ["Player Position Marker"] = "Marcador de posicion del jugador",
    ["Icon Appearance"] = "Apariencia del icono",
    ["Icon Spacing"] = "Espaciado del icono",
    ["Growth Direction"] = "Direccion de crecimiento",
    ["Border Scale"] = "Escala del borde",
    ["Show Cooldown Spiral"] = "Mostrar espiral de reutilizacion",
    ["Anchor Point"] = "Punto de anclaje",
    ["Screen Center"] = "Centro de la pantalla",
    ["Right"] = "Derecha",
    ["Enter Edit Mode"] = "Entrar en modo edicion",
    ["Reset Appearance Only"] = "Restablecer solo la apariencia",
    ["Reset All Settings (Keep Appearance)"] = "Restablecer todos los ajustes (mantener apariencia)",
    ["Wipe Everything (Including Appearance)"] = "Borrar todo (incluyendo apariencia)",
    ["Reset"] = "Restablecer",
    ["Wipe"] = "Borrar",
    ["Countdown Settings"] = "Ajustes de cuenta atras",
    ["Show Icon"] = "Mostrar icono",
    ["Show Decimal"] = "Mostrar decimal",
    ["Icon Size"] = "Tamano del icono",
    ["Alert Text Template"] = "Plantilla del texto de aviso",
    ["Alert Text"] = "Texto de aviso",
    ["Countdown Number"] = "Numero de la cuenta atras",
    ["Horizontal Position (X)"] = "Posicion horizontal (X)",
    ["Vertical Position (Y)"] = "Posicion vertical (Y)",
    ["Reset Position"] = "Restablecer posicion",
    ["Scene Preview"] = "Vista previa",
    ["Toggle Edit Mode Preview"] = "Alternar vista previa del modo edicion",
    ["Test Countdown"] = "Probar cuenta atras",
    ["Registered Bosses: 0  |  Registered Events: 0"] = "Jefes registrados: 0  |  Eventos registrados: 0",
    ["No registered bosses"] = "No hay jefes registrados",
    ["Unknown Dungeon"] = "Mazmorra desconocida",
    ["Unknown Boss"] = "Jefe desconocido",
    ["Target List"] = "Lista de objetivos",
    ["Trash"] = "Basura",
    ["No Dynamic Portrait"] = "Sin retrato dinamico",
    ["Unknown Event"] = "Evento desconocido",
    ["Click a spell card above to view its description here."] = "Haz clic en una tarjeta de hechizo arriba para ver aqui su descripcion.",
    ["Global display mode and voice output."] = "Modo de visualizacion global y salida de voz.",
    ["Timer bar appearance, text and position."] = "Apariencia, texto y posicion de la barra de tiempo.",
    ["Bun bar appearance, track and position."] = "Apariencia, recorrido y posicion de la barra Bun.",
    ["Center countdown text, font and position."] = "Texto, fuente y posicion de la cuenta atras central.",
    ["Center text style and position."] = "Estilo y posicion del texto central.",
    ["Center-screen ring style, size and position."] = "Estilo, tamano y posicion del anillo central.",
    ["Timer Bar Only"] = "Solo barra de tiempo",
    ["Bun Bar Only"] = "Solo barra Bun",
    ["Both Enabled"] = "Ambos activados",
    ["Hide Both"] = "Ocultar ambos",
    ["Tank Scheme"] = "Esquema de tanque",
    ["Healer Scheme"] = "Esquema de sanador",
    ["Defensive Scheme"] = "Esquema defensivo",
    ["Mechanic Scheme"] = "Esquema de mecanica",
    ["Profile Slots"] = "Ranuras de perfil",
    ["Alert: the active role automatically selects and edits the matching Raid / Mythic+ Profiles."] = "Aviso: el rol activo selecciona y edita automaticamente los perfiles de Banda / Mythic+ correspondientes.",
    ["Automatically used when entering raids with the current role."] = "Se usa automaticamente al entrar en banda con el rol actual.",
    ["Automatically used when entering Mythic+ with the current role."] = "Se usa automaticamente al entrar en Mythic+ con el rol actual.",
    ["Choose a voice pack on the left, then configure Raid / Mythic+ author profiles on the right."] = "Elige un paquete de voz a la izquierda y luego configura a la derecha los perfiles de autor de Banda / Mythic+.",
    ["Choose a Voice Pack on the left, then configure Raid / Mythic+ Author Profiles on the right."] = "Elige un paquete de voz a la izquierda y luego configura a la derecha los perfiles de autor de Banda / Mythic+.",
    ["Choose author profiles for the 6 role slots. The Dungeons page automatically writes the matching Raid / Mythic+ profile for your current role."] = "Elige perfiles de autor para las 6 ranuras de rol. La pagina de Mazmorras escribe automaticamente el perfil de Banda / Mythic+ correspondiente a tu rol actual.",
    ["6 author profile slots are active. The Dungeons page automatically writes the matching profile for your current role."] = "Hay 6 ranuras de perfiles de autor activas. La pagina de Mazmorras escribe automaticamente el perfil correspondiente a tu rol actual.",
    ["6 Author Profile slots are active. The Dungeons page automatically writes the matching Raid / Mythic+ Profile for your current role."] = "Hay 6 ranuras de perfiles de autor activas. La pagina de Mazmorras escribe automaticamente el perfil de Banda / Mythic+ correspondiente a tu rol actual.",
    ["This area only shows the profiles currently assigned to the 6 slots."] = "Esta zona solo muestra los perfiles asignados actualmente a las 6 ranuras.",
    ["The Voice / Profiles page depends on ExwindTools.UI, which is not ready yet. Make sure ExwindCore loaded correctly, then reopen the panel."] = "La pagina de Voz / Perfiles depende de ExwindTools.UI y aun no esta lista. Asegurate de que ExwindCore se haya cargado correctamente y vuelve a abrir el panel.",
    ["Settings for the full appearance of the timer bars."] = "Ajustes para toda la apariencia de las barras de tiempo.",
    ["Review fixed-timeline spell markers in the first 3 minutes for each boss so you can quickly verify the timeline pacing."] = "Revisa los marcadores de hechizos de la timeline fija durante los primeros 3 minutos de cada jefe para comprobar rapidamente el ritmo de la timeline.",
    ["Shows a 5-second center-screen countdown when a spell alert triggers."] = "Muestra una cuenta atras de 5 segundos en el centro de la pantalla cuando se activa un aviso de hechizo.",
    ["Shows a 5-second countdown in the center of the screen for spell alerts."] = "Muestra una cuenta atras de 5 segundos en el centro de la pantalla para los avisos de hechizos.",
    ["Shows a 5-second countdown in the center of the screen for incoming spell alerts."] = "Muestra una cuenta atras de 5 segundos en el centro de la pantalla para los avisos de hechizos entrantes.",
    ["Shows a 5-second center-screen countdown when a spell alert triggers.\n|cff00ff00%s|r = spell name  |cffffd100%t|r = countdown number"] = "Muestra una cuenta atras de 5 segundos en el centro de la pantalla cuando se activa un aviso de hechizo.\n|cff00ff00%s|r = nombre del hechizo  |cffffd100%t|r = numero de la cuenta atras",
    ["Shows a 5-second countdown in the center of the screen for spell alerts.\n"] = "Muestra una cuenta atras de 5 segundos en el centro de la pantalla para los avisos de hechizos.\n",
    ["Monitors the player's 3 private aura slots, including icon size, position, countdown and sound settings."] = "Supervisa las 3 ranuras de auras privadas del jugador, incluyendo tamano del icono, posicion, cuenta atras y ajustes de sonido.",
    ["Provides three reset modes:\n1) Reset appearance only\n2) Reset all settings (keep appearance)\n3) Wipe everything (including appearance)"] = "Ofrece tres modos de reinicio:\n1) Restablecer solo la apariencia\n2) Restablecer todos los ajustes (mantener apariencia)\n3) Borrar todo (incluyendo apariencia)",
    ["Recommended: use Reset Appearance Only first. It resets Timer Bar / Bun Bar / Countdown / Flash Text styles and color schemes only.\nReset All Settings (Keep Appearance) clears general settings, voice config, spell config and timeline settings, while keeping appearance.\nWipe Everything resets all EXBoss settings back to their defaults."] = "Recomendado: usa primero Restablecer solo la apariencia. Solo reinicia los estilos de Barra de tiempo / Barra Bun / Cuenta atras / Texto brillante y los esquemas de color.\nRestablecer todos los ajustes (mantener apariencia) limpia los ajustes generales, la configuracion de voz, la configuracion de hechizos y la configuracion de timeline, manteniendo la apariencia.\nBorrar todo reinicia todos los ajustes de EXBoss a sus valores por defecto.",
    ["This only resets Timer Bar / Bun Bar / Countdown / Flash Text styles and keeps spell configuration intact. Continue?"] = "Esto solo reinicia los estilos de Barra de tiempo / Barra Bun / Cuenta atras / Texto brillante y mantiene intacta la configuracion de hechizos. Continuar?",
    ["This clears EXBoss general settings, voice config, spell config and timeline settings, while keeping appearance styles.\nContinue?"] = "Esto limpia los ajustes generales de EXBoss, la configuracion de voz, la configuracion de hechizos y la configuracion de timeline, manteniendo los estilos de apariencia.\nContinuar?",
    ["Warning: this wipes every EXBoss setting, including appearance, and reloads the UI. This cannot be undone.\nContinue?"] = "Advertencia: esto borra todos los ajustes de EXBoss, incluida la apariencia, y recarga la interfaz. No se puede deshacer.\nContinuar?",
    ["Template (|cff00ff00%s|r = spell name  |cffffd100%t|r = countdown number)"] = "Plantilla (|cff00ff00%s|r = nombre del hechizo  |cffffd100%t|r = numero de la cuenta atras)",
    ["Alert Text Font (%s)"] = "Fuente del texto de aviso (%s)",
    ["Countdown Number Font (%t)"] = "Fuente del numero de la cuenta atras (%t)",
    ["The voice engine is not ready, so registration status cannot be read."] = "El motor de voz no esta listo, asi que no se puede leer el estado del registro.",
    ["Registration snapshot is empty."] = "La instantanea del registro esta vacia.",
    ["Registered Bosses: 0  |  Registered Events: 0"] = "Jefes registrados: 0  |  Eventos registrados: 0",
    ["Non-Raid registered bosses: %d  |  Non-Raid events: %d / Total: %d  |  Trigger events (0/1/2): %d/%d/%d%s"] = "Jefes registrados fuera de banda: %d  |  Eventos fuera de banda: %d / Total: %d  |  Eventos activadores (0/1/2): %d/%d/%d%s",
    ["Raid Encounter  |  encounterID:%s  |  Spells:%d"] = "Encuentro de banda  |  encounterID:%s  |  Hechizos:%d",
    ["Mythic+ Dungeon  |  Spells:%d  |  Boss Groups:%d  |  Trash Spells:%d"] = "Mazmorra de Mythic+  |  Hechizos:%d  |  Grupos de jefes:%d  |  Hechizos de basura:%d",
    ["The selected target has no private-aura spells."] = "El objetivo seleccionado no tiene hechizos de aura privada.",
    ["Select a private-aura target on the left."] = "Selecciona a la izquierda un objetivo de aura privada.",
    ["Toggle whether each spell appears in the bun bar, timer bar, and screen alerts. Pre-alert seconds can be adjusted per spell. Blank = use the spell default."] = "Activa o desactiva si cada hechizo aparece en la barra Bun, la barra de tiempo y los avisos en pantalla. Los segundos del preaviso se pueden ajustar por hechizo. En blanco = usar el valor por defecto del hechizo.",
    ["Rule description:\n1. Uses the event end time as the anchor\n2. Works inside the [X sec before end, Y sec after end] window\n3. If boss1-boss5 has a cast/channel\n4. Shows the remaining cast time as a ring\n\nStill not implemented in this version: countdowns, center text, multi-condition trees, and combined actions."] = "Descripcion de las reglas:\n1. Usa el tiempo de finalizacion del evento como ancla\n2. Funciona dentro de la ventana [X seg antes del final, Y seg despues del final]\n3. Si boss1-boss5 tiene casteo/canalizacion\n4. Muestra el tiempo restante de casteo como un anillo\n\nAun no implementado en esta version: cuentas atras, texto central, arboles multicondicion y acciones combinadas.",
    ["Wangyou Jingjiu voice pack. Compatible with the default labels and can replace the global voice pack directly."] = "Paquete de voz Wangyou Jingjiu. Compatible con las etiquetas predeterminadas y puede reemplazar directamente el paquete de voz global.",
    ["Wangyou Jingjiu voice pack. Compatible with the default label set and usable as a global replacement."] = "Paquete de voz Wangyou Jingjiu. Compatible con el conjunto de etiquetas predeterminado y utilizable como reemplazo global.",
    ["Guyijin girl-voice pack. Keeps the same label set for easy switching."] = "Paquete de voz femenina Guyijin. Mantiene el mismo conjunto de etiquetas para cambiar facilmente.",
    ["Guyijin lady-voice pack. Keeps label compatibility with existing dungeon profiles."] = "Paquete de voz femenina Guyijin. Mantiene la compatibilidad de etiquetas con los perfiles de mazmorra existentes.",
    ["Kele voice pack. Compatible with the default labels and ready for dungeon profiles."] = "Paquete de voz Kele. Compatible con las etiquetas predeterminadas y listo para perfiles de mazmorra.",
    ["Xiayike voice pack. Compatible with the standard label set and ready to use."] = "Paquete de voz Xiayike. Compatible con el conjunto de etiquetas estandar y listo para usar.",
    ["Ranran voice pack with standard labels and countdown voice lines."] = "Paquete de voz Ranran con etiquetas estandar y lineas de voz para la cuenta atras.",
    ["Tangtangjiang voice pack. Compatible with the default label structure."] = "Paquete de voz Tangtangjiang. Compatible con la estructura de etiquetas predeterminada.",
    ["Yagi voice pack with standard labels and countdown voice lines."] = "Paquete de voz Yagi con etiquetas estandar y lineas de voz para la cuenta atras.",
    ["Niuniu voice pack with standard labels and countdown voice lines."] = "Paquete de voz Niuniu con etiquetas estandar y lineas de voz para la cuenta atras.",
    ["Niuniu voice pack sourced from Niushifu, with standard labels and countdown lines."] = "Paquete de voz Niuniu procedente de Niushifu, con etiquetas estandar y lineas de cuenta atras.",
    ["Ayarei voice pack using the standard label structure and default-profile compatibility."] = "Paquete de voz Ayarei que usa la estructura de etiquetas estandar y compatibilidad con el perfil predeterminado.",
    ["Ruru Tia voice pack. Compatible with the default label structure."] = "Paquete de voz Ruru Tia. Compatible con la estructura de etiquetas predeterminada.",
    ["Rurutia voice pack. Compatible with the default label structure."] = "Paquete de voz Rurutia. Compatible con la estructura de etiquetas predeterminada.",
    ["Last Refresh: "] = "Ultima actualizacion: ",
    ["Last error: "] = "Ultimo error: ",
    ["Scope: "] = "Ambito: ",
    ["Custom Scheme"] = "Esquema personalizado",
    ["Custom Scheme Name"] = "Nombre del esquema personalizado",
    ["Custom Scheme Color"] = "Color del esquema personalizado",
    ["Extra Schemes (up to 3)"] = "Esquemas extra (hasta 3)",
    ["Extra Scheme"] = "Esquema extra",
    ["Current / Actual: English"] = "Actual: English",
    ["Current / Actual: Espanol"] = "Actual: Espanol",
    ["Tank Buster"] = "Golpe de tanque",
    ["Tank Buster 3.0"] = "Golpe de tanque 3.0",
    ["Prepare AOE"] = "Preparar AOE",
    ["Prepare Beam"] = "Preparar rayo",
    ["Prepare Interrupt"] = "Preparar interrupcion",
    ["Prepare Grip"] = "Preparar agarre",
    ["Prepare Line Block"] = "Preparar bloqueo de linea",
    ["Prepare Soak"] = "Preparar absorcion",
    ["Prepare Clear Stack"] = "Preparar limpieza de acumulaciones",
    ["Prepare Target"] = "Preparar objetivo",
    ["Prepare Arrow"] = "Preparar flecha",
    ["Prepare Enter Circle"] = "Preparar entrada al circulo",
    ["Prepare Link"] = "Preparar enlace",
    ["Prepare Orb Pass"] = "Preparar pase de orbe",
    ["Prepare Hook"] = "Preparar gancho",
    ["Prepare Stack"] = "Preparar agrupacion",
    ["Prepare Dispel"] = "Preparar disipacion",
    ["Hit Clone"] = "Golpear clon",
    ["Fix Camera"] = "Ajustar camara",
    ["Clear Water"] = "Limpiar agua",
    ["Find Beacon"] = "Buscar baliza",
    ["Step Trap"] = "Pisar trampa",
    ["None"] = "Ninguno",
    ["Watch Knockback"] = "Cuidado con el retroceso",
    ["Watch Frontal"] = "Cuidado con el frontal",
    ["Block Orb"] = "Bloquear orbe",
    ["Clear Orb"] = "Limpiar orbe",
    ["Watch Dodge"] = "Cuidado, esquivar",
    ["Target Frontal"] = "Frontal al objetivo",
    ["Target Drop Water"] = "El objetivo deja agua",
    ["Target Clear Line"] = "El objetivo limpia la linea",
    ["Dodge Frontal"] = "Esquivar frontal",
    ["Switch Add"] = "Cambiar add",
    ["Phase Change"] = "Cambio de fase",
    ["Away Boss"] = "Alejarse del jefe",
    ["Spread Close"] = "Separarse cerca",
    ["Kite Add"] = "Kitear add",
    ["Boss Enrage"] = "Enfurecimiento del jefe",
    ["Boss Vulnerability"] = "Vulnerabilidad del jefe",
    ["You Are White"] = "Eres blanco",
    ["You Are Black"] = "Eres negro",
    ["Prepare AOE (Break)"] = "Preparar AOE (cortar)",
    ["Prepare Absorb Orb"] = "Preparar absorcion de orbe",
    ["Drop Water"] = "Soltar agua",
    ["Intercept Add"] = "Interceptar add",
    ["Beam On You"] = "Rayo sobre ti",
    ["Watch Shockwave"] = "Cuidado con la onda de choque",
    ["Watch Launch"] = "Cuidado con el lanzamiento",
    ["Empower Holy Paladin"] = "Potenciar paladin sagrado",
    ["Empower Retribution Paladin"] = "Potenciar paladin reprension",
    ["Empower Protection Paladin"] = "Potenciar paladin proteccion",
    ["Spread Now"] = "Separarse ahora",
    ["Interrupt Now"] = "Interrumpir ahora",
    ["Rescue Now"] = "Rescatar ahora",
    ["Break Shield"] = "Romper escudo",
    ["Enter Bubble"] = "Entrar en burbuja",
    ["Break Link"] = "Romper enlace",
    ["Burst Vulnerability"] = "Explotar vulnerabilidad",
    ["Use Defensive"] = "Usar defensivo",
    ["Watch Healing"] = "Cuidado con la sanacion",
    ["Special Mechanic"] = "Mecanica especial",
    ["Switch Boss"] = "Cambiar jefe",
    ["Away Add"] = "Alejarse del add",
    ["Stack Share"] = "Juntarse y repartir",
    ["Countdown 5"] = "Cuenta atras 5",
    ["Countdown 4"] = "Cuenta atras 4",
    ["Countdown 3"] = "Cuenta atras 3",
    ["Countdown 2"] = "Cuenta atras 2",
    ["Countdown 1"] = "Cuenta atras 1",
    ["Prepare Chase"] = "Preparar persecucion",
    ["Summon Add"] = "Invocar add",
    ["Tank Knockback"] = "Retroceso al tanque",
    ["Stack Drop Circle"] = "Juntarse y soltar circulo",
    ["Spell info lookup and tooltip enhancements."] = "Consulta de informacion de hechizos y mejora de tooltips.",
    ["A quick chat channel bar with customizable label, color, and command for each channel."] = "Barra rapida de canales de chat con etiqueta, color y comando personalizables para cada canal.",
    ["M+ icon, score, click-to-teleport enhancements."] = "Mejoras para el icono de M+, la puntuacion y el teletransporte con clic.",
    ["Inside a module settings page, use the Grid panel to adjust styles, position and feature toggles."] = "Dentro de la pagina de ajustes del modulo, usa el panel Grid para ajustar estilos, posicion y activacion de funciones.",
    ["Displays the Spell Name in the screen center when the skill triggers (fade in -> hold -> fade out)."] = "Muestra el nombre del hechizo en el centro de la pantalla cuando se activa la habilidad (aparecer -> mantener -> desaparecer).",
    ["Displays the Spell Name in the screen center when the skill triggers (fade in â†’ hold â†’ fade out)."] = "Muestra el nombre del hechizo en el centro de la pantalla cuando se activa la habilidad (aparecer -> mantener -> desaparecer).",
    ["Monitors the player's 3 private aura slots, including icon size, position, countdown and sound settings."] = "Supervisa las 3 ranuras de auras privadas del jugador, incluyendo tamano del icono, posicion, cuenta atras y ajustes de sonido.",
    ["Monitors the player's 3 private aura slots. Enable it and enter edit mode to drag the position."] = "Supervisa las 3 ranuras de auras privadas del jugador. Activalo y entra en modo edicion para arrastrar la posicion.",
    ["Enable Private Aura Monitor"] = "Activar monitor de auras privadas",
    ["The current object has no private aura spells."] = "El objeto actual no tiene hechizos de aura privada.",
    ["%d private aura spells total"] = "%d hechizos de aura privada en total",
    ["encounterID:%s  |  %d private aura spells"] = "encounterID:%s  |  %d hechizos de aura privada",
    ["ExwindGrid is unavailable; private aura settings cannot be rendered."] = "ExwindGrid no esta disponible; no se pueden renderizar los ajustes de aura privada.",
    ["ExwindGrid is unavailable; the settings pane cannot be rendered."] = "ExwindGrid no esta disponible; no se puede renderizar el panel de ajustes.",
    ["Provides three reset modes:\n1. Reset appearance only\n2. Reset all settings (keep appearance)\n3. Wipe everything (including appearance)"] = "Ofrece tres modos de reinicio:\n1. Restablecer solo la apariencia\n2. Restablecer todos los ajustes (mantener apariencia)\n3. Borrar todo (incluyendo apariencia)",
    ["Recommended: start with \"Reset Appearance Only\". \"Reset Appearance Only\" resets only Timer Bar / Bun Bar / Countdown / Flash Text and Color Profile.\n\"Reset All Settings (Keep Appearance)\" clears General Settings, voice config, skill config and Timeline settings, while preserving appearance.\n\"Wipe Everything (Including Appearance)\" resets all EXBoss settings back to defaults."] = "Recomendado: empieza con \"Restablecer solo la apariencia\". Esta opcion solo reinicia Barra de tiempo / Barra Bun / Cuenta atras / Texto brillante y el Perfil de color.\n\"Restablecer todos los ajustes (mantener apariencia)\" limpia Ajustes generales, configuracion de voz, configuracion de habilidades y ajustes de Timeline, manteniendo la apariencia.\n\"Borrar todo (incluyendo apariencia)\" reinicia todos los ajustes de EXBoss a sus valores por defecto.",
    ["Only resets the appearance of Timer Bar / Bun Bar / Countdown / Center Text and keeps spell configuration. Continue?"] = "Solo reinicia la apariencia de Barra de tiempo / Barra Bun / Cuenta atras / Texto central y mantiene la configuracion de hechizos. Continuar?",
    ["This clears EXBoss general settings, voice settings, spell settings and timeline settings, while keeping appearance styles.\nContinue?"] = "Esto limpia los ajustes generales de EXBoss, los ajustes de voz, los ajustes de hechizos y los ajustes de timeline, manteniendo los estilos de apariencia.\nContinuar?",
    ["Danger: this wipes every EXBoss setting, including appearance, and reloads the UI. This cannot be undone.\nContinue?"] = "Peligro: esto borra todos los ajustes de EXBoss, incluida la apariencia, y recarga la interfaz. No se puede deshacer.\nContinuar?",
    ["Exit Edit Mode?"] = "Salir del modo edicion?",
    ["Choose Author Profiles for the 6 role slots; the Dungeons page automatically writes the matching Raid / Mythic+ Profiles for your current role."] = "Elige perfiles de autor para las 6 ranuras de rol; la pagina de Mazmorras escribe automaticamente los perfiles de Banda / Mythic+ correspondientes a tu rol actual.",
    ["6 Author Profile slots are active. The Dungeons page automatically writes the matching Profile for your current role."] = "Hay 6 ranuras de perfil de autor activas. La pagina de Mazmorras escribe automaticamente el perfil correspondiente a tu rol actual.",
    ["This area only shows the Author Profiles currently assigned to the 6 slots."] = "Esta zona solo muestra los perfiles de autor asignados actualmente a las 6 ranuras.",
    ["Slot: Raid Tank   Profile: Default Preset"] = "Ranura: Tanque de banda   Perfil: Preset por defecto",
    ["Enable Blizzard center-screen text warnings (required for voice alerts)"] = "Activar avisos de texto centrales de Blizzard (obligatorio para las alertas de voz)",
    ["Shows current voice registration details (Default = non-raid only): Dungeon > Boss Name (count) + eventID(trigger0/1/2)."] = "Muestra los detalles actuales del registro de voz (por defecto = solo fuera de banda): Mazmorra > Nombre del jefe (cantidad) + eventID(trigger0/1/2).",
    ["Non-raid registered bosses: 0  |  Non-raid events: 0 / Total: 0  |  Trigger events (0/1/2): 0/0/0"] = "Jefes registrados fuera de banda: 0  |  Eventos fuera de banda: 0 / Total: 0  |  Eventos activadores (0/1/2): 0/0/0",
    ["No non-raid registered bosses"] = "No hay jefes registrados fuera de banda",
    ["Review when fixed-timeline Skills occur during the first 3 minutes of each boss fight to quickly verify Timeline pacing."] = "Revisa cuando aparecen las habilidades de timeline fija durante los primeros 3 minutos de cada combate de jefe para verificar rapidamente el ritmo de la timeline.",
    ["Fixed Bosses: %d  |  Total Skills: %d  |  Window: %s"] = "Jefes fijos: %d  |  Habilidades totales: %d  |  Ventana: %s",
    ["encounter:%d  |  Skills:%d  |  Markers:%d"] = "encounter:%d  |  Habilidades:%d  |  Marcadores:%d",
    ["Change the icon color when out of range (blank = automatically use the spec preset)."] = "Cambia el color del icono cuando estas fuera de alcance (en blanco = usar automaticamente el preset de especializacion).",
    ["Spec Filter (only enabled for checked specs)"] = "Filtro de especializacion (solo activado para las especializaciones marcadas)",
    ["Spell Name Example"] = "Ejemplo de nombre del hechizo",
    ["72 Labels"] = "72 etiquetas",
    ["73 Labels"] = "73 etiquetas",
    ["Current progress: Not obtained"] = "Progreso actual: no obtenido",
    ["Route Preset"] = "Preset de ruta",
    ["Import MDT"] = "Importar MDT",
    ["Fixed Timeline Boss"] = "Jefe de timeline fija",
    ["Window"] = "Ventana",
    ["Window:"] = "Ventana:",
    ["Nodes:"] = "Nodos:",
    ["min Nodes:"] = "Nodos por min:",
    ["3min Nodes"] = "Nodos de 3 min",
    ["Review each boss's Fixed Timeline skills over the first 3 minutes to quickly verify Timeline pacing."] = "Revisa las habilidades de timeline fija de cada jefe durante los primeros 3 minutos para verificar rapidamente el ritmo de la timeline.",
    ["Displays Ring Progress in the screen center"] = "Muestra el progreso del anillo en el centro de la pantalla",
    ["Thin Ring 2"] = "Anillo fino 2",
    ["Current role: dps"] = "Rol actual: dps",
    ["Current role: tank"] = "Rol actual: tanque",
    ["Current role: healer"] = "Rol actual: sanador",
    ["Current role: "] = "Rol actual: ",
    ["Notes (Optional)"] = "Notas (opcional)",
    ["Appearance Settings (Timer Bar Appearance, etc.)"] = "Ajustes de apariencia (Apariencia de la barra de tiempo, etc.)",
    ["Import Appearance Settings (apply immediately)"] = "Importar ajustes de apariencia (aplicar inmediatamente)",
    ["Imported Author Name (blank = profile name)"] = "Nombre del autor importado (en blanco = nombre del perfil)",
    ["Custom UI Mode"] = "Modo UI personalizado",
    ["Native UI Mode"] = "Modo UI nativo",
    ["Display Mode"] = "Modo de visualizacion",
    ["Lock Icon Position"] = "Bloquear posicion del icono",
    ["Bloodlust Sound"] = "Sonido de Heroismo",
    ["Heroism on Boss"] = "Heroismo en jefe",
    ["Recommend Heroism"] = "Recomendar Heroismo",
    ["Transitional pull"] = "Pull de transicion",
    ["Transitional skills"] = "Habilidades de transicion",
    ["Export Contents"] = "Exportar contenido",
    ["Import Contents"] = "Importar contenido",
    ["Paste Export String"] = "Pegar cadena de exportacion",
    ["Copied to clipboard"] = "Copiado al portapapeles",
    ["Select All"] = "Seleccionar todo",
    ["Export Successful"] = "Exportacion completada",
    ["Import successful: "] = "Importacion completada: ",
    ["Import failed: "] = "Importacion fallida: ",
    ["Export failed: "] = "Exportacion fallida: ",
    ["Parse failed: "] = "Analisis fallido: ",
    ["Apply failed: "] = "Aplicacion fallida: ",
    ["Click [Parse] first."] = "Haz clic primero en [Analizar].",
    ["No interrupts needed"] = "No se necesitan interrupciones",
    ["Save 5, get buff"] = "Guardar 5, coger buff",
    ["Save 8, go top after"] = "Guardar 8, luego ir arriba",
    ["Pull inside"] = "Hacer pull dentro",
    ["Focus caster"] = "Fijar lanzador",
    ["Focus Summoner"] = "Fijar invocador",
    ["Watch bleed stacks"] = "Vigilar acumulaciones de sangrado",
    ["Global Voice Output"] = "Salida global de voz",
    ["Voice / Profiles"] = "Voz / Perfiles",
    ["Untitled Profile"] = "Perfil sin titulo",
    ["Profile Name: "] = "Nombre del perfil: ",
    ["Raid Profiles: "] = "Perfiles de banda: ",
    ["Mythic+ Profiles: "] = "Perfiles de Mythic+: ",
    ["Fixed Bosses: "] = "Jefes fijos: ",
    ["Total Skills: "] = "Habilidades totales: ",
    ["Trigger events"] = "Eventos activadores",
    ["Non-raid events"] = "Eventos fuera de banda",
    ["Non-raid events: "] = "Eventos fuera de banda: ",
    ["Appearance: "] = "Apariencia: ",
    ["Toggle Edit-Mode Preview"] = "Alternar vista previa del modo edicion",
    ["Suppression Zone"] = "Zona de supresion",
    ["Seranel Sunlash"] = "Seranel Azote Solar",
    ["Loads local PNG textures first. If the files are missing, it automatically falls back to the pure code-drawn mode."] = "Carga primero las texturas PNG locales. Si faltan los archivos, vuelve automaticamente al modo de dibujo por codigo.",
    ["Trigger Scene"] = "Escenario de activacion",
    ["Enabled Specs"] = "Especializaciones activadas",
    ["Square"] = "Cuadrado",
    ["Cross"] = "Cruz",
    ["Circle"] = "Circulo",
    ["Ring"] = "Anillo",
    ["Diamond"] = "Diamante",
    ["Scale"] = "Escala",
    ["Normal Color"] = "Color Normal",
    ["Out-of-Range Color"] = "Color Fuera de Alcance",
    ["Plays a sound and countdown when Sangrelust/Heroism is gained. Beta feature."] = "Reproduce un sonido y una cuenta atras cuando se obtiene Ansia de sangre/Heroismo. Funcion en beta.",
    ["Plays a sound and countdown when Bloodlust/Heroism is gained. Beta feature."] = "Reproduce un sonido y una cuenta atras cuando se obtiene Ansia de sangre/Heroismo. Funcion en beta.",
    ["Spell ID (Preferred)"] = "ID del hechizo (preferido)",
    ["Spell ID takes priority, if set"] = "El ID del hechizo tiene prioridad si se define",
    ["Spell ID takes priority, ifset"] = "El ID del hechizo tiene prioridad si se define",
    ["Spell ID takes priority,ifset"] = "El ID del hechizo tiene prioridad si se define",
    ["Use Blizzard Native Cooldown (lower CPU)"] = "Usar CD nativo de Blizzard (menos CPU)",
    ["Center Timer Text"] = "Texto del temporizador central",
    ["Border Texture"] = "Textura del borde",
    ["Padding"] = "Relleno",
    ["Icon Settings"] = "Ajustes del icono",
    ["1 Pixel"] = "1 Pixel",
    ["Attach to Party Frames"] = "Anclar a marcos de grupo",
    ["Attach the interrupt bars above or below the party frame group."] = "Ancla las barras de interrupcion arriba o abajo del grupo de marcos de grupo.",
    ["Enable Party Frame Attach"] = "Activar anclaje a marcos de grupo",
    ["Party Frame Attach"] = "Anclaje a marcos de grupo",
    ["Vertical Spacing"] = "Espaciado vertical",
    ["Max Visible Bars"] = "Maximo de barras visibles",
    ["Use Class Colors"] = "Usar colores de clase",
    ["Use Class colors"] = "Usar colores de clase",
    ["Bar Appearance"] = "Apariencia de la barra",
    ["Down"] = "Abajo",
    ["Up"] = "Arriba",
    ["Left"] = "Izquierda",
    ["Show in Combat, Show out of Combat, Only in Dungeons"] = "Mostrar en combate, Mostrar fuera de combate, Solo en mazmorras",
    ["Changes the marker color when the target moves out of range (blank = automatically uses the spec preset)."] = "Cambia el color del marcador cuando el objetivo se sale del alcance (en blanco = usa automaticamente el preset de especializacion).",
    ["Displays your cast sequence in real time, including cast/channel/instant/interrupt states."] = "Muestra tu secuencia de lanzamiento en tiempo real, incluyendo estados de casteo, canalizacion, instantaneo e interrupcion.",
    ["Displays the Brewmaster Monk stagger percentage (stagger amount / max health * 100), with independent bar and alert."] = "Muestra el porcentaje de Tambaleo del Monje maestro cervecero (cantidad de Tambaleo / vida maxima * 100), con barra y aviso independientes.",
    ["Offers an on-demand detailed run history table. Use /emr to open it."] = "Ofrece una tabla detallada del historial de runs bajo demanda. Usa /emr para abrirla.",
    ["Provides an on-demand detailed run history table. Use /emr to open it."] = "Ofrece una tabla detallada del historial de runs bajo demanda. Usa /emr para abrirla.",
    ["Mythic Icon Overlays"] = "Superposiciones de iconos miticos",
    ["MDT Spell Icon Hook"] = "Enganche de iconos de hechizo en MDT",
    ["Supports spell icon replacement plus one-shot real raid markers written into the current MDT route."] = "Admite reemplazo de iconos de hechizo y marcadores reales de banda de un solo uso escritos en la ruta MDT actual.",
    ["Enable Feature"] = "Activar funcion",
    ["Save and Refresh"] = "Guardar y actualizar",
    ["Save and Refresh (text config only applies after this)"] = "Guardar y actualizar (la configuracion de texto solo se aplica despues de esto)",
    ["text config only applies after this"] = "la configuracion de texto solo se aplica despues de esto",
    ["Writes into current route when clicking the left/MDT buttons. It will not auto-overwrite or auto-clear."] = "Escribe en la ruta actual al pulsar los botones izquierdo/MDT. No sobreescribe ni limpia automaticamente.",
    ["Apply real markers to all interrupt mobs"] = "Aplicar marcadores reales a todos los enemigos con interrupcion",
    ["Apply real markers to all elite mobs"] = "Aplicar marcadores reales a todos los enemigos de elite",
    ["Interrupt Marker"] = "Marcador de interrupcion",
    ["Elite Marker"] = "Marcador de elite",
    ["Blacklisted NPCs (comma-separated IDs)"] = "NPCs excluidos (IDs separados por coma)",
    ["Custom Icons (NPCID = SpellID), one..."] = "Iconos personalizados (NPCID = SpellID), uno...",
    ["Custom Icons"] = "Iconos personalizados",
    -- ===== EXBoss Settings Page Titles & Descriptions =====
    ["Timer Bar Settings"] = "Ajustes de la barra de tiempo",
    ["Timer Bar Appearance"] = "Apariencia de la barra de tiempo",
    ["All appearance settings for the timer bar."] = "Todos los ajustes de apariencia de la barra de tiempo.",
    ["Bun Bar Settings"] = "Ajustes de la barra Bun",
    ["Bun Bar Appearance"] = "Apariencia de la barra Bun",
    ["General Color Schemes"] = "Esquemas de color generales",
    ["Voice Registration Monitor"] = "Monitor de registro de voz",
    ["Private Aura Monitor"] = "Monitor de auras privadas",
    ["Ring Progress"] = "Progreso del anillo",
    ["Ring Progress Settings"] = "Ajustes de progreso del anillo",
    ["Shows ring progress in the center of the screen."] = "Muestra el progreso del anillo en el centro de la pantalla.",
    ["Maximum Visible Bars"] = "Maximo de barras visibles",
    ["General Settings"] = "Ajustes generales",
    ["Center Text"] = "Texto central",
    ["Center Text Content (supports {name})"] = "Contenido del texto central (admite {name})",
    ["Center Text Content ({name} available)"] = "Contenido del texto central ({name} disponible)",
    ["Center text style and position."] = "Estilo y posicion del texto central.",
    ["Current Voice Registration State"] = "Estado actual del registro de voz",
    ["Private Aura Spell"] = "Hechizo de aura privada",
}

-- Spanish coverage for v1.0.5 EXBoss/ExwindTools strings.
local PATCH_105_SPANISH_EXACT_REPLACEMENTS = {
    ["Home"] = "Inicio",
    ["5 Seconds Early"] = "5 segundos antes",
    ["Unknown Boss "] = "Jefe desconocido ",
    ["Vertical Layout"] = "Disposicion vertical",
    ["Horizontal Layout"] = "Disposicion horizontal",
    ["Alert Icon"] = "Icono de aviso",
    ["Alert Icon Anchor"] = "Anclaje del icono de aviso",
    ["Show Name"] = "Mostrar nombre",
    ["Show Alert Icon"] = "Mostrar icono de aviso",
    ["Growth Direction"] = "Direccion de crecimiento",
    ["Background Settings"] = "Ajustes de fondo",
    ["Countdown Text"] = "Texto de cuenta atras",
    ["Play Sound"] = "Reproducir sonido",
    ["Enable Blizzard center text alerts (note: disabling this can stop voice alerts from working)"] = "Activar avisos de texto central de Blizzard (nota: desactivarlo puede hacer que las alertas de voz no funcionen)",
    ["Import Author Name (leave blank to use profile name)"] = "Importar nombre del autor (dejar vacio para usar el nombre del perfil)",
    ["Import MDT"] = "Importar MDT",
    ["Current Progress: unavailable"] = "Progreso actual: no disponible",
    ["Route Set"] = "Conjunto de rutas",
    ["Raid Bosses: %d  |  Mythic+ Dungeons: %d"] = "Jefes de banda: %d  |  Mazmorras M+: %d",
    ["Target List"] = "Lista de objetivos",
    ["The selected target has no private-aura spells."] = "El objetivo seleccionado no tiene hechizos de aura privada.",
    ["Select a private-aura target on the left."] = "Selecciona un objetivo de aura privada a la izquierda.",
    ["Test Cast Detection"] = "Probar deteccion de lanzamiento",
    ["Reset"] = "Restablecer",
    ["Time Text"] = "Texto de tiempo",
    ["The Voice / Profiles page depends on ExwindTools.UI and is not ready yet. Make sure ExwindCore loaded correctly, then reopen the panel."] = "La pagina Voz / Perfiles depende de ExwindTools.UI y aun no esta lista. Comprueba que ExwindCore se haya cargado correctamente y vuelve a abrir el panel.",
    ["Switched route set: %s"] = "Conjunto de rutas cambiado: %s",
    ["Imported MDT route: %s"] = "Ruta MDT importada: %s",
    ["Selected route set: %s (not imported yet)"] = "Conjunto de rutas seleccionado: %s (aun sin importar)",
    ["Ring"] = "Anillo",
    ["Nameplates"] = "Placas de nombre",
    ["Show player and party keystone info on the PVEFrame."] = "Muestra informacion de piedras del jugador y del grupo en el PVEFrame.",
    ["Shows Brewmaster Monk stagger percentage, with an independent full-bar cap and threshold colors."] = "Muestra el porcentaje de tambaleo del monje maestro cervecero, con limite independiente de barra llena y colores por umbral.",
    ["ExwindTools and EXBoss are free projects; sponsorship does not unlock extra features, and everyone uses the same version."] = "ExwindTools y EXBoss son proyectos gratuitos; patrocinar no desbloquea funciones extra y todo el mundo usa la misma version.",
    ["Reset %s module settings and reload. Continue?"] = "Restablecer los ajustes del modulo %s y recargar. Continuar?",
    ["Copy Sponsor Link"] = "Copiar enlace de patrocinio",
    ["Current Module"] = "Modulo actual",
    ["Click the input box to select all, then press Ctrl+C to copy the link."] = "Haz clic en el cuadro para seleccionar todo y pulsa Ctrl+C para copiar el enlace.",
    ["Sponsor Support"] = "Apoyo por patrocinio",
    ["These actions directly affect addon configuration."] = "Estas acciones afectan directamente a la configuracion del addon.",
    ["Send feedback for issues, configuration suggestions, or missing options."] = "Envia comentarios sobre problemas, sugerencias de configuracion u opciones que falten.",
    ["Reset Current Module Settings"] = "Restablecer ajustes del modulo actual",
    ["Text Alignment"] = "Alineacion del texto",
    ["Text Settings"] = "Ajustes de texto",
    ["Hide Bar"] = "Ocultar barra",
    ["Show an on-screen text alert while movement abilities are on cooldown."] = "Muestra un aviso de texto en pantalla mientras las habilidades de movimiento estan en reutilizacion.",
    ["Text shown during cooldown (%t = time)"] = "Texto mostrado durante la reutilizacion (%t = tiempo)",
    ["Display Text"] = "Texto mostrado",
    ["Tip: above keystone level 10, an extra base multiplier is applied: bosses 1.15x, trash 1.2x.\nThis setting directly affects the values shown in MDT enhancements and spell detail pages."] = "Consejo: por encima de piedra 10 se aplica un multiplicador base extra: jefes 1.15x, enemigos 1.2x.\nEste ajuste afecta directamente a los valores mostrados en las mejoras de MDT y en las paginas de detalle de hechizos.",
    ["Failed to open chat frame: "] = "No se pudo abrir el marco de chat: ",
    ["Enable Feature"] = "Activar funcion",
    ["Raid"] = "Banda",
    ["Dungeon"] = "Mazmorra",
    ["Note Content"] = "Contenido de la nota",
    ["Select Dungeon"] = "Seleccionar mazmorra",
    ["Select Boss"] = "Seleccionar jefe",
    ["10. Auto Repair"] = "10. Reparacion automatica",
    ["11. Dungeon Journal Enhancements"] = "11. Mejoras del diario de mazmorras",
    ["12. Merchant Frame Enhancements"] = "12. Mejoras de la ventana de mercader",
    ["13. Macro Frame Enhancements"] = "13. Mejoras de la ventana de macros",
    ["6. Bulk Purchase Assistant"] = "6. Asistente de compra por lotes",
    ["7. Reset Damage on Instance Entry"] = "7. Reiniciar dano al entrar en instancia",
    ["8. Combat Alerts"] = "8. Avisos de combate",
    ["9. Rename Battle.net Display"] = "9. Cambiar nombre mostrado de Battle.net",
    ["Party Member"] = "Companero de grupo",
}
for key, value in next, PATCH_105_SPANISH_EXACT_REPLACEMENTS do
    SPANISH_EXACT_REPLACEMENTS[key] = value
end
-- Spanish coverage for v1.0.6 hardcoded strings.
local PATCH_106_SPANISH_EXACT_REPLACEMENTS = {
    ["Prepare Vulnerability"] = "Preparar vulnerabilidad",
    ["Vulnerability Phase"] = "Fase de vulnerabilidad",
    ["Vulnerability Phase ("] = "Fase de vulnerabilidad (",
    ["Vulnerability End"] = "Fin de vulnerabilidad",
    ["% Vulnerability Phase"] = "% fase de vulnerabilidad",
    ["No changelog entries yet."] = "Aun no hay entradas del registro de cambios.",
    ["Note:"] = "Nota:",
    ["All"] = "Todo",
    [", automatically expires after /reload"] = ", caduca automaticamente tras /reload",
    ["|cffff4400ExBoss|r AI timeline voice debug enabled encounter="] = "|cffff4400ExBoss|r depuracion de voz de timeline AI activada encounter=",
    ["|cffff4400ExBoss|r AI timeline voice debug disabled"] = "|cffff4400ExBoss|r depuracion de voz de timeline AI desactivada",
    ["|cffff4400ExBoss|r Trash test level offset disabled"] = "|cffff4400ExBoss|r offset de nivel de prueba de enemigos desactivado",
    ["|cffff4400ExBoss|r Trash test level offset: "] = "|cffff4400ExBoss|r offset de nivel de prueba de enemigos: ",
    ["|cffff4400ExBoss|r Trash match debug module is not ready"] = "|cffff4400ExBoss|r el modulo de depuracion de enemigos no esta listo",
    ["|cffff4400ExBoss|r: ExwindTools unavailable"] = "|cffff4400ExBoss|r: ExwindTools no disponible",
    ["|cffff4400ExBoss|r: Panel.Toggle not ready - P="] = "|cffff4400ExBoss|r: Panel.Toggle no esta listo - P=",
    ["|cffff4400Ex|r|cff00ccffBoss|r [1/3] ExBoss.lua loaded"] = "|cffff4400Ex|r|cff00ccffBoss|r [1/3] ExBoss.lua cargado",
    ["|cff00ff00[Bun Bar]|r"] = "|cff00ff00[Barra Bun]|r",
    ["|cff00ff00[Countdown]|r"] = "|cff00ff00[Cuenta atras]|r",
    ["|cff00ff00[Flash Text]|r"] = "|cff00ff00[Texto emergente]|r",
    ["|cff55bbff[Flash Text (Medium)]|r"] = "|cff55bbff[Texto emergente (medio)]|r",
    ["|cff00ff00[Ring]|r"] = "|cff00ff00[Anillo]|r",
    ["|cff00ff00[Timer Bar]|r"] = "|cff00ff00[Barra de tiempo]|r",
    ["Medium Text Alert Example"] = "Ejemplo de aviso de texto medio",
    ["Single Bar"] = "Barra individual",
    ["Vertical"] = "Vertical",
    ["Default"] = "Predeterminado",
    ["Timeline Event"] = "Evento de timeline",
    ["Timeline Event "] = "Evento de timeline ",
    ["Unknown Skill"] = "Habilidad desconocida",
    ["MDT page is not ready."] = "La pagina MDT no esta lista.",
    ["Trash CD"] = "CD de enemigos",
    ["Trash CD page is not ready."] = "La pagina de CD de enemigos no esta lista.",
    ["Remaining entries omitted, %d total."] = "Se omiten las entradas restantes, %d en total.",
    ["Action Count"] = "Cantidad de acciones",
    ["Matched Event Count"] = "Cantidad de eventos coincidentes",
    ["Batch changes applied."] = "Cambios por lote aplicados.",
    ["No events matched the current scope."] = "Ningun evento coincide con el ambito actual.",
    ["Current Preview"] = "Vista previa actual",
    ["This Action"] = "Esta accion",
    ["Confirm Apply"] = "Confirmar aplicacion",
    ["Choose a scope and actions, then click Generate Preview."] = "Elige un ambito y acciones, luego haz clic en Generar vista previa.",
    ["Select at least one batch action."] = "Selecciona al menos una accion por lote.",
    ["This is a direct edit, not an extra runtime rule layer. Applying writes real event overrides and restarts the current encounter if needed."] = "Esto es una modificacion directa, no una capa extra de reglas en tiempo de ejecucion. Al aplicar, se escriben overrides reales de eventos y se reinicia el encuentro actual si hace falta.",
    ["Choose Boss Scope"] = "Elegir ambito de jefes",
    ["Choose Events"] = "Elegir eventos",
    ["Choose Enable / Disable"] = "Elegir activar / desactivar",
    ["Choose Change"] = "Elegir cambio",
    ["Preview first 20 events"] = "Vista previa de los primeros 20 eventos",
    ["Blizzard Timeline"] = "Timeline de Blizzard",
    ["Owner"] = "Propietario",
    ["Skill Count"] = "Cantidad de habilidades",
    ["No Dungeon Selected"] = "Sin mazmorra seleccionada",
    ["Source NPC ID"] = "ID de NPC fuente",
    ["Test Boss"] = "Jefe de prueba",
    ["Click a spell card above to configure single-spell alert options here."] = "Haz clic en una tarjeta de hechizo arriba para configurar aqui las opciones de aviso de ese hechizo.",
    ["Active"] = "Activo",
    ["Select a boss with skill data."] = "Selecciona un jefe con datos de habilidades.",
    ["Custom Color"] = "Color personalizado",
    ["Icon Right"] = "Icono derecha",
    ["Icon Left"] = "Icono izquierda",
    ["Text Right"] = "Texto derecha",
    ["Text Left"] = "Texto izquierda",
    ["Rule copied"] = "Regla copiada",
    ["Rule added"] = "Regla anadida",
}
for key, value in next, PATCH_106_SPANISH_EXACT_REPLACEMENTS do
    SPANISH_EXACT_REPLACEMENTS[key] = value
end
-- Spanish coverage for v1.0.8 Trash CD strings.
local PATCH_108_SPANISH_EXACT_REPLACEMENTS = {
    ["First Cast: "] = "Primer lanzamiento: ",
    ["Cooldown: "] = "Reutilizacion: ",
    ["Spell "] = "Hechizo ",
    ["Trash Spell"] = "Habilidad de enemigo",
    ["L1 Candidates: "] = "Candidatos L1: ",
    ["Voice Pack Label"] = "Etiqueta del paquete de voz",
    ["LSM Sound"] = "Sonido LSM",
    ["Custom Path"] = "Ruta personalizada",
    ["Delay"] = "Retraso",
    ["Early"] = "Anticipado",
    ["No description."] = "Sin descripcion.",
    ["No description"] = "Sin descripcion",
    ["No cast information."] = "Sin informacion de lanzamiento.",
    ["Click a spell on the left to view its description here."] = "Haz clic en un hechizo a la izquierda para ver aqui su descripcion.",
    ["Enabled"] = "Activado",
    ["Tank"] = "Tanque",
    ["Healer"] = "Sanador",
    ["DPS"] = "DPS",
    ["Enable Color Override"] = "Activar color personalizado",
    ["Text Settings"] = "Ajustes de texto",
    ["Center Text"] = "Texto central",
    ["Lead (sec)"] = "Anticipo (seg)",
    ["Center Text ({name} supported)"] = "Texto central ({name} permitido)",
    ["5 Seconds Early"] = "5 segundos antes",
    ["({name} supported)"] = "({name} permitido)",
    ["Rename Timer Bar"] = "Renombrar barra de tiempo",
    ["Voice Settings"] = "Ajustes de voz",
    ["Cast Start"] = "Inicio de casteo",
    ["Voice Source"] = "Origen de voz",
    ["Voice Label"] = "Etiqueta de voz",
    ["File Path"] = "Ruta de archivo",
    ["Preview"] = "Probar",
    ["sec"] = "seg",
    ["Display Locations"] = "Ubicaciones de visualizacion",
    ["Bun Bar"] = "Barra vertical",
    ["Timer Bar"] = "Barra de tiempo",
    ["Nameplate"] = "Nameplate",
    ["Ring"] = "Anillo",
    ["Cast Detection"] = "Deteccion de casteo",
    ["Disabled"] = "Desactivado",
    ["Dungeon Switch"] = "Cambio de mazmorra",
    ["Spell List"] = "Lista de hechizos",
    ["Current Spell Settings"] = "Ajustes del hechizo actual",
    ["trash built-in CDs loaded. This feature is still in testing; please report issues. Thanks!"] = "CDs internos de enemigos cargados. Esta funcion sigue en pruebas; reporta cualquier problema. Gracias!",
    ["Entered |cffffd100"] = "Entrada: |cffffd100",
    ["|r trash built-in CDs loaded. This feature is still in testing; please report issues. Thanks!"] = "|r CDs internos de enemigos cargados. Esta funcion sigue en pruebas; reporta cualquier problema. Gracias!",
    ["Boss 2 |cffffd100dog leap target module|r loaded. This feature is still in testing and for reference only!"] = "Modulo de objetivo del salto del perro del jefe 2 |cffffd100cargado|r. Esta funcion sigue en pruebas y es solo orientativa!",
}
for key, value in next, PATCH_108_SPANISH_EXACT_REPLACEMENTS do
    SPANISH_EXACT_REPLACEMENTS[key] = value
end
local SPANISH_TOKEN_REPLACEMENTS = {
    { "Warrior", "Guerrero" },
    { "Paladin", "Paladin" },
    { "Hunter", "Cazador" },
    { "Rogue", "Picaro" },
    { "Priest", "Sacerdote" },
    { "Death Knight", "Caballero de la Muerte" },
    { "Shaman", "Chaman" },
    { "Mage", "Mago" },
    { "Warlock", "Brujo" },
    { "Monk", "Monje" },
    { "Druid", "Druida" },
    { "Demon Hunter", "Cazador de demonios" },
    { "Evoker", "Evocador" },
    { "Arms", "Armas" },
    { "Fury", "Furia" },
    { "Protection", "Proteccion" },
    { "Holy", "Sagrado" },
    { "Retribution", "Reprension" },
    { "Beast Mastery", "Dominio de bestias" },
    { "Marksmanship", "Punteria" },
    { "Survival", "Supervivencia" },
    { "Assassination", "Asesinato" },
    { "Outlaw", "Forajido" },
    { "Subtlety", "Sutileza" },
    { "Discipline", "Disciplina" },
    { "Shadow", "Sombra" },
    { "Blood", "Sangre" },
    { "Frost", "Escarcha" },
    { "Unholy", "Profano" },
    { "Elemental", "Elemental" },
    { "Enhancement", "Mejora" },
    { "Restoration", "Restauracion" },
    { "Arcane", "Arcano" },
    { "Fire", "Fuego" },
    { "Affliction", "Afliccion" },
    { "Demonology", "Demonologia" },
    { "Destruction", "Destruccion" },
    { "Brewmaster", "Maestro cervecero" },
    { "Windwalker", "Viajero del viento" },
    { "Mistweaver", "Tejedor de niebla" },
    { "Balance", "Equilibrio" },
    { "Feral", "Feral" },
    { "Guardian", "Guardian" },
    { "Havoc", "Caos" },
    { "Vengeance", "Venganza" },
    { "Devastation", "Devastacion" },
    { "Preservation", "Preservacion" },
    { "Augmentation", "Aumentacion" },
    -- â”€â”€ Spell description: long phrase patterns (must come first) â”€â”€
    { "and an additional", "y un adicional de" },
    { "at a target", "a un objetivo" },
    { "at the target", "al objetivo" },
    { "to a target", "a un objetivo" },
    { "on a target", "sobre un objetivo" },
    { "bounces to", "rebota a" },
    { "hurls an", "lanza una" },
    { "hurls a", "lanza un" },
    { "fires an", "dispara una" },
    { "fires a", "dispara un" },
    { "sends a", "envia un" },
    { "sends an", "envia una" },
    { "casts a", "lanza un" },
    { "casts an", "lanza una" },
    { "gains a", "obtiene un" },
    { "gains an", "obtiene una" },
    { "with a", "con un" },
    { "with an", "con una" },
    { "for each", "por cada" },
    { "into the", "hacia el" },
    { "into a", "en un" },
    { "to all", "a todos" },
    { "to the", "al" },
    { "from the", "del" },
    { "in the", "en el" },
    { "on the", "en el" },
    { "of the", "del" },
    { "at the", "en el" },
    { "is increased", "se incrementa" },
    { "is reduced", "se reduce" },
    { "is removed", "se elimina" },
    { "are increased", "se incrementan" },
    { "are reduced", "se reducen" },
    { "that deals", "que inflige" },
    { "that inflicts", "que inflige" },
    { "which deals", "que inflige" },
    { "which inflicts", "que inflige" },
    -- â”€â”€ Spell description: verb/action phrases â”€â”€
    { "inflicting ", "infligiendo " },
    { "dealing ", "infligiendo " },
    { "The force of the impact", "La fuerza del impacto" },
    { "slams his shield into the ground", "golpea el suelo con su escudo" },
    { "slams", "golpea" },
    { "conjuring a ", "creando una " },
    { "conjures a ", "crea una " },
    { "at the impact area", "en la zona de impacto" },
    { "impact area", "zona de impacto" },
    { "The Suppression Zone", "La Zona de supresion" },
    { "silences and pacifies", "silencia y pacifica" },
    { "pacifies", "pacifica" },
    { "standing in", "que esten dentro de" },
    { "standing within", "que esten dentro de" },
    { "standing on", "que esten sobre" },
    { "purges magical effects", "disipa efectos magicos" },
    { "purges", "disipa" },
    { "magical effects", "efectos magicos" },
    { "the ground", "el suelo" },
    { "damage taken", "dano recibido" },
    { "healing received", "sanacion recibida" },
    { "movement speed", "velocidad de movimiento" },
    { "Physical damage", "dano fisico" },
    { "Shadow damage", "dano de las Sombras" },
    { "Arcane damage", "dano Arcano" },
    { "Nature damage", "dano de Naturaleza" },
    { "Holy damage", "dano Sagrado" },
    { "Frost damage", "dano de Escarcha" },
    { "Fire damage", "dano de Fuego" },
    { "Chaos damage", "dano de Caos" },
    { "Magic damage", "dano magico" },
    { " damage", " dano" },
    { "players within ", "jugadores en un radio de " },
    { "enemies within ", "enemigos en un radio de " },
    { "all players", "todos los jugadores" },
    { "all enemies", "todos los enemigos" },
    { "their current target", "su objetivo actual" },
    { "the current target", "el objetivo actual" },
    { "current target", "objetivo actual" },
    { "within ", "en un radio de " },
    { " yards", " m" },
    { " yard", " m" },
    { "seconds", "segundos" },
    { "second", "segundo" },
    { "knocks away", "aleja" },
    { "knocks back", "repele" },
    { "other players", "otros jugadores" },
    { "other enemies", "otros enemigos" },
    { "stuns", "aturde" },
    { "silences", "silencia" },
    { "interrupts", "interrumpe" },
    { "reducing", "reduciendo" },
    { "increasing", "aumentando" },
    { "smashes", "golpea" },
    { "strikes", "golpea" },
    { "hits", "golpea" },
    { "explodes", "explota" },
    { "erupts", "irrumpe" },
    { "leaves behind", "deja tras de si" },
    -- â”€â”€ Spell description: extra verbs â”€â”€
    { "hurls", "lanza" },
    { "bounces", "rebota" },
    { "unleashes", "desata" },
    { "channels", "canaliza" },
    { "channeling", "canalizando" },
    { "immobilizes", "inmoviliza" },
    { "empowers", "potencia" },
    { "enrages", "enfurece" },
    { "leaps", "salta" },
    { "slashes", "acuchilla" },
    { "cleaves", "hiende" },
    { "shatters", "destroza" },
    { "engulfs", "envuelve" },
    { "pulls", "atrae" },
    { "drains", "drena" },
    { "marks", "marca" },
    { "ignites", "enciende" },
    { "detonates", "detona" },
    { "consumes", "consume" },
    { "corrupts", "corrompe" },
    { "charges", "arremete" },
    { "radiates", "irradia" },
    { "infects", "infecta" },
    { "engulfing", "envolviendo" },
    { "afflicting", "afligiendo" },
    { "burning", "quemando" },
    { "stunning", "aturdiendo" },
    { "knocking", "empujando" },
    { "piercing", "atravesando" },
    { "triggering", "activando" },
    { "spreading", "propagando" },
    { "blasting", "arrasando" },
    -- â”€â”€ Spell description: nouns/adjectives â”€â”€
    { "glaive", "guja" },
    { "infused", "imbuida" },
    { "additional", "adicional" },
    { "fragments", "fragmentos" },
    { "fragment", "fragmento" },
    { "pools", "charcos" },
    { "pool", "charco" },
    { "shield", "escudo" },
    { "orb", "orbe" },
    { "beam", "rayo" },
    { "missile", "misil" },
    { "wave", "onda" },
    { "frontal", "frontal" },
    { "stacks", "acumulaciones" },
    { "stack", "acumulacion" },
    { "debuff", "perjuicio" },
    { "buff", "beneficio" },
    { "bolt", "descarga" },
    { "bolts", "descargas" },
    { "blast", "explosion" },
    { "nova", "nova" },
    { "vortex", "vortice" },
    { "torrent", "torrente" },
    { "barrage", "andanada" },
    { "volley", "descarga" },
    { "swipe", "zarpazo" },
    { "aura", "aura" },
    { "mark", "marca" },
    { "curse", "maldicion" },
    { "ritual", "ritual" },
    { "rift", "fisura" },
    { "void", "vacio" },
    { "fel", "vil" },
    { "soul", "alma" },
    { "souls", "almas" },
    { "flesh", "carne" },
    { "blood", "sangre" },
    { "poison", "veneno" },
    { "plague", "plaga" },
    { "web", "telarana" },
    { "webs", "telaranas" },
    { "tentacle", "tentaculo" },
    { "tentacles", "tentaculos" },
    { "each", "cada" },
    -- â”€â”€ Spell description: common connectors / structural â”€â”€
    { "summons", "invoca" },
    { "launches", "lanza" },
    { "creates", "crea" },
    { "applies", "aplica" },
    { "causing", "provocando" },
    { "forcing", "obligando" },
    { "absorbs", "absorbe" },
    { "heals", "sana" },
    { "targets", "apunta a" },
    { "target", "objetivo" },
    { "players", "jugadores" },
    { "player", "jugador" },
    { "enemies", "enemigos" },
    { "enemy", "enemigo" },
    { "allies", "aliados" },
    { "nearby", "cercanos" },
    { "nearest", "mas cercano" },
    { "over ", "durante " },
    { "every ", "cada " },
    { "while", "mientras" },
    { "until", "hasta" },
    { "Real-time", "En tiempo real" },
    { "real-time", "en tiempo real" },
    { "Automatically", "Automaticamente" },
    { "automatically", "automaticamente" },
    { "Monitors", "Supervisa" },
    { "monitors", "supervisa" },
    { "Displays", "Muestra" },
    { "displays", "muestra" },
    { "Provides", "Ofrece" },
    { "provides", "ofrece" },
    { "Supports", "Admite" },
    { "supports", "admite" },
    { "tooltip enhancements", "mejoras de tooltips" },
    { "tooltip", "tooltip" },
    { "Spell info", "Informacion del hechizo" },
    { "spell info", "informacion del hechizo" },
    { "click-to-teleport", "teletransporte con clic" },
    { "feature toggles", "activacion de funciones" },
    { "customizable", "personalizable" },
    { "customizable label, color, and command", "etiqueta, color y comando personalizables" },
    { "screen center", "centro de la pantalla" },
    { "edit mode", "modo edicion" },
    { "drag the position", "arrastrar la posicion" },
    { "out of range", "fuera de alcance" },
    { "spec preset", "preset de especializacion" },
    { "role slots", "ranuras de rol" },
    { "fixed-timeline", "timeline fija" },
    { "fixed Timeline", "Timeline fija" },
    { "Timeline pacing", "ritmo de la Timeline" },
    { "voice registration", "registro de voz" },
    { "clipboard", "portapapeles" },
    { "Extension Panel", "panel extendido" },
    { "Player Stats Panel", "panel de atributos del jugador" },
    { "Streamer Tools", "herramientas para streamers" },
    { "Preview Mode", "modo de vista previa" },
    { "Lock Position", "bloquear posicion" },
    { "Position X", "posicion X" },
    { "Position Y", "posicion Y" },
    { "Horizontal Offset", "desplazamiento horizontal" },
    { "Vertical Offset", "desplazamiento vertical" },
    { "Background Texture", "textura de fondo" },
    { "Background Color", "color de fondo" },
    { "Border Texture", "textura del borde" },
    { "Border Color", "color del borde" },
    { "Border Width", "grosor del borde" },
    { "Border Inset", "inset del borde" },
    { "Output Channel", "canal de salida" },
    { "Audio Channel", "canal de audio" },
    { "Audio Output Options", "opciones de salida de audio" },
    { "Main Volume", "volumen principal" },
    { "Target Align", "alineacion del objetivo" },
    { "Spell Align", "alineacion del hechizo" },
    { "Time Align", "alineacion del tiempo" },
    { "Text Align", "alineacion del texto" },
    { "Show Target", "mostrar objetivo" },
    { "Show Time", "mostrar tiempo" },
    { "Show Name", "mostrar nombre" },
    { "Show Background", "mostrar fondo" },
    { "Show Border", "mostrar borde" },
    { "Built-in Sound", "sonido integrado" },
    { "Select Sound", "seleccionar sonido" },
    { "Test Sound", "probar sonido" },
    { "Stop Test", "detener prueba" },
    { "Test Effect", "probar efecto" },
    { "Icon Settings", "ajustes del icono" },
    { "Sound Settings", "ajustes de sonido" },
    { "Font Style", "estilo de fuente" },
    { "Spell Name", "nombre del hechizo" },
    { "Time Text", "texto de tiempo" },
    { "Remaining Time", "tiempo restante" },
    { "Text Color", "color del texto" },
    { "Track Width", "ancho de la pista" },
    { "Track Height", "alto de la pista" },
    { "Name Position", "posicion del nombre" },
    { "Background Settings", "ajustes del fondo" },
    { "Color Profile", "perfil de color" },
    { "Custom Colors", "colores personalizados" },
    { "Load Settings", "cargar ajustes" },
    { "Reset Settings", "restablecer ajustes" },
    { "Profile Name", "nombre del perfil" },
    { "Delete profile", "eliminar perfil" },
    { "Use Custom Path", "usar ruta personalizada" },
    { "Random Play Multiple", "reproducir varias al azar" },
    { "Icon Path/ID", "ruta/ID del icono" },
    { "Reverse Countdown", "invertir cuenta atras" },
    { "Current Voice Pack", "Paquete de voz actual" },
    { "Select Voice Pack", "Seleccionar paquete de voz" },
    { "Voice Source", "Fuente de voz" },
    { "Voice Label", "Etiqueta de voz" },
    { "Voice Labels", "Etiquetas de voz" },
    { "Voice Pack", "paquete de voz" },
    { "Author Profiles", "perfiles de autor" },
    { "Author Profile", "perfil de autor" },
    { "Profile Slots", "ranuras de perfil" },
    { "General Settings", "ajustes generales" },
    { "Voice Settings", "ajustes de voz" },
    { "Text Settings", "ajustes de texto" },
    { "Center Warning", "aviso central" },
    { "Center Text", "texto central" },
    { "Center Text Content", "contenido del texto central" },
    { "Color Overlay", "superposicion de color" },
    { "Overlay", "superposicion" },
    { "Enable Color Overlay", "activar superposicion de color" },
    { "Timer Bar", "barra de tiempo" },
    { "Bun Bar", "barra Bun" },
    { "Countdown Number", "numero de la cuenta atras" },
    { "Alert Text", "texto de aviso" },
    { "Window Before", "ventana antes" },
    { "Window After", "ventana despues" },
    { "Duration", "duracion" },
    { "Delay", "retraso" },
    { "supports", "admite" },
    { "available", "disponible" },
    { "Official", "oficial" },
    { "default voice pack", "paquete de voz por defecto" },
    { "default label structure", "estructura de etiquetas predeterminada" },
    { "default label set", "conjunto de etiquetas predeterminado" },
    { "standard label set", "conjunto de etiquetas estandar" },
    { "supports [name]", "admite [name]" },
    { "supports {name}", "admite {name}" },
    { "countdown voice lines", "lineas de voz de cuenta atras" },
    { "countdown lines", "lineas de cuenta atras" },
    { "Compatible with", "Compatible con" },
    { "ready to use", "listo para usar" },
    { "ready for dungeon profiles", "listo para perfiles de mazmorra" },
    { "global replacement", "reemplazo global" },
    { "global voice pack", "paquete de voz global" },
    { "directly", "directamente" },
    { "Voice Pack", "paquete de voz" },
    { "Author Profiles", "perfiles de autor" },
    { "Author Profile", "perfil de autor" },
    { "Settings", "ajustes" },
    { "Appearance", "apariencia" },
    { "Profiles", "perfiles" },
    { "Profile", "perfil" },
    { "Description", "descripcion" },
    { "Version", "version" },
    { "Current", "actual" },
    { "Select", "seleccionar" },
    { "Enable", "activar" },
    { "Disable", "desactivar" },
    { "Show", "mostrar" },
    { "Hide", "ocultar" },
    { "Refresh", "actualizar" },
    { "Reset", "restablecer" },
    { "Position", "posicion" },
    { "Preview", "vista previa" },
    { "Countdown", "cuenta atras" },
    { "Color", "color" },
    { "Scheme", "esquema" },
    { "Label", "etiqueta" },
    { "Labels", "etiquetas" },
    { "Source", "fuente" },
    { "Content", "contenido" },
    { "Warning", "aviso" },
    { "Textures", "texturas" },
    { "Texture", "textura" },
    { "Text", "texto" },
    { "Pack", "paquete" },
    { "Dungeon", "mazmorra" },
    { "Dungeons", "mazmorras" },
    { "Raid", "banda" },
    { "Module", "modulo" },
    { "Modules", "modulos" },
    { "Panel", "panel" },
    { "Locked", "bloqueado" },
    { "Lock", "bloquear" },
    { "Unlock", "desbloquear" },
    { "Drag", "arrastre" },
    { "Target", "objetivo" },
    { "Timers", "temporizadores" },
    { "Timer", "temporizador" },
    { "Timeout", "tiempo de espera" },
    { "Time", "tiempo" },
    { "Background", "fondo" },
    { "Border", "borde" },
    { "Channel", "canal" },
    { "Audio", "audio" },
    { "Output", "salida" },
    { "Width", "ancho" },
    { "Height", "alto" },
    { "Offset", "desplazamiento" },
    { "Numeric", "numerica" },
    { "Row", "fila" },
    { "Rows", "filas" },
    { "Role", "rol" },
    { "Roles", "roles" },
    { "Scene", "escena" },
    { "Scenes", "escenas" },
    { "Value", "valor" },
    { "Example", "ejemplo" },
    { "Icon", "icono" },
    { "Size", "tamano" },
    { "Scale", "escala" },
    { "Style", "estilo" },
    { "Font", "fuente" },
    { "sec", "seg" },
}

local function TranslateEnglishToSpanish(text)
    if type(text) ~= "string" or text == "" then
        return text
    end

    local exact = SPANISH_EXACT_REPLACEMENTS[text]
    if exact then return exact end

    local out = text
    for i = 1, #SPANISH_TOKEN_REPLACEMENTS do
        local fromText = SPANISH_TOKEN_REPLACEMENTS[i][1]
        local toText = SPANISH_TOKEN_REPLACEMENTS[i][2]
        if fromText and toText and out:find(fromText, 1, true) then
            -- For single-word tokens (no spaces), use word-boundary matching
            -- to avoid corrupting compound words (e.g. "mark" inside "markers")
            if not fromText:find(" ", 1, true) then
                local escaped = EscapePattern(fromText)
                out = out:gsub("(%f[%a])" .. escaped .. "(%f[%A])", "%1" .. toText .. "%2")
            else
                out = out:gsub(EscapePattern(fromText), toText)
            end
        end
    end

    return out
end

local function TranslateForSelectedLanguage(text)
    if not ShouldUseSpanishText() then
        return text
    end

    return TranslateEnglishToSpanish(text)
end

local function LookupEnglishLocaleTranslation(text)
    if type(text) ~= "string" or text == "" then
        return nil
    end

    local stores = {
        _G.ExBoss and _G.ExBoss.Locale and _G.ExBoss.Locale._stores and _G.ExBoss.Locale._stores.enUS,
        _G.ExwindLocale and _G.ExwindLocale._stores and _G.ExwindLocale._stores.enUS,
    }

    for i = 1, #stores do
        local store = stores[i]
        local value = type(store) == "table" and store[text] or nil
        if type(value) == "string" and value ~= "" and value ~= text then
            return TranslateForSelectedLanguage(value)
        end
    end

    return nil
end
local function Trim(text)
    local value = SafeString(text) or ""
    local ok, trimmed = pcall(function()
        return value:gsub("^%s+", ""):gsub("%s+$", "")
    end)
    return ok and trimmed or ""
end

local function SanitizeTranslatedText(text)
    if type(text) ~= "string" or text == "" then
        return text
    end

    local out = text
    out = out:gsub("Ã¢â€“Â¡+", "")
    out = out:gsub("Ã¯Â¿Â½+", "")
    out = out:gsub("Ã¯Â¼Ë†", "("):gsub("Ã¯Â¼â€°", ")")
    out = out:gsub("Ã¯Â¼Å¡", ": "):gsub("Ã¯Â¼Å’", ", "):gsub("Ã£â‚¬â€š", ".")
    out = out:gsub("%s+\n", "\n"):gsub("\n%s+", "\n")
    out = out:gsub("[ \t][ \t]+", " ")
    out = out:gsub("%s+([,%.:%)])", "%1")
    out = out:gsub("%(%s+", "("):gsub("%s+%)", ")")
    out = out:gsub("\n\n\n+", "\n\n")
    out = out:gsub("VOICE%s*/%s*PROFILES+", "VOICE / PROFILES")
    out = out:gsub("Voice%s*/%s*Profiles+", "Voice / Profiles")
    out = out:gsub("Mythic%+ Profiles+", "Mythic+ Profiles")
    if (out:find("[%a%d]") or out:find("|c")) and utf8 and type(utf8.codes) == "function" and type(utf8.char) == "function" then
        local cleaned = {}
        local removedResidualCJK = false
        for _, codepoint in utf8.codes(out) do
            local isResidualCJK =
                (codepoint >= 0x3400 and codepoint <= 0x4DBF) or
                (codepoint >= 0x4E00 and codepoint <= 0x9FFF) or
                (codepoint >= 0x3000 and codepoint <= 0x303F) or
                (codepoint >= 0xFF00 and codepoint <= 0xFFEF)
            if isResidualCJK then
                removedResidualCJK = true
            else
                cleaned[#cleaned + 1] = utf8.char(codepoint)
            end
        end
        if removedResidualCJK then
            out = table.concat(cleaned)
            out = out:gsub("[ \t][ \t]+", " ")
            out = out:gsub("%s+([,%.:%)])", "%1")
            out = out:gsub("%(%s+", "("):gsub("%s+%)", ")")
            out = out:gsub("%[%s+", "["):gsub("%s+%]", "]")
            out = out:gsub("^%s+", ""):gsub("%s+$", "")
        end
    end
    return out
end

local TRANSLATION_CACHE = {}
local TRANSLATION_CACHE_SIZE = 0

local function ReplaceTokens(text)
    local plain = GetTranslatableString(text)
    if not plain or plain == "" then
        return text
    end

    local out = plain
    for i = 1, #TOKEN_REPLACEMENTS do
        local fromText, toText = TOKEN_REPLACEMENTS[i][1], TOKEN_REPLACEMENTS[i][2]
        local ok = pcall(function()
            if fromText and fromText ~= "" and toText and out:find(fromText, 1, true) then
                out = out:gsub(EscapePattern(fromText), toText)
            end
        end)
        if not ok then
            return plain
        end
    end
    return out
end

local function ReplaceTextUnsafe(text)
    local plain = GetTranslatableString(text)
    if not plain then
        return text
    end

    local exact = FAST_EXACT_REPLACEMENTS[plain]
    if exact then
        return TranslateForSelectedLanguage(exact)
    end

    local localeExact = LookupEnglishLocaleTranslation(plain)
    if localeExact then
        return localeExact
    end

    local cacheKey = GetSelectedPatchLanguage() .. "\001" .. plain
    local cached = TRANSLATION_CACHE[cacheKey]
    if cached ~= nil then
        return cached
    end

    local out = SanitizeTranslatedText(plain)
    for i = 1, #SORTED_TEXT_REPLACEMENTS do
        local fromText, toText = SORTED_TEXT_REPLACEMENTS[i][1], SORTED_TEXT_REPLACEMENTS[i][2]
        if fromText and fromText ~= "" and toText and out:find(fromText, 1, true) then
            if not (type(toText) == "string" and toText:find(fromText, 1, true) and out:find(toText, 1, true)) then
                out = out:gsub(EscapePattern(fromText), toText)
            end
        end
    end

    out = ReplaceTokens(out)
    out = SanitizeTranslatedText(out)
    out = FAST_EXACT_REPLACEMENTS[out] or out
    out = TranslateForSelectedLanguage(out)
    if TRANSLATION_CACHE_SIZE > 2048 then
        wipe(TRANSLATION_CACHE)
        TRANSLATION_CACHE_SIZE = 0
    end
    if TRANSLATION_CACHE[cacheKey] == nil then
        TRANSLATION_CACHE_SIZE = TRANSLATION_CACHE_SIZE + 1
    end
    TRANSLATION_CACHE[cacheKey] = out
    return out
end

local function ReplaceText(text)
    local plain = GetTranslatableString(text)
    if not plain then
        return text
    end

    local ok, translated = pcall(ReplaceTextUnsafe, plain)
    if ok then
        return translated
    end

    return plain
end

local function SafeReplaceText(text)
    return ReplaceText(text)
end

local function ContainsCJKText(text)
    if type(text) ~= "string" or text == "" or not utf8 or type(utf8.codes) ~= "function" then
        return false
    end

    local ok, found = pcall(function()
        for _, codepoint in utf8.codes(text) do
            if (codepoint >= 0x3400 and codepoint <= 0x4DBF) or
                (codepoint >= 0x4E00 and codepoint <= 0x9FFF) or
                (codepoint >= 0x3000 and codepoint <= 0x303F) or
                (codepoint >= 0xFF00 and codepoint <= 0xFFEF) then
                return true
            end
        end
        return false
    end)

    return ok and found or false
end

local function SelectPatchText(englishText, spanishText)
    if ShouldUseSpanishText() and type(spanishText) == "string" and spanishText ~= "" then
        return spanishText
    end
    return englishText
end

local CLASS_TRANSLATIONS_BY_FILE = {
    WARRIOR = { en = "Warrior", es = "Guerrero" },
    PALADIN = { en = "Paladin", es = "Paladin" },
    HUNTER = { en = "Hunter", es = "Cazador" },
    ROGUE = { en = "Rogue", es = "Picaro" },
    PRIEST = { en = "Priest", es = "Sacerdote" },
    DEATHKNIGHT = { en = "Death Knight", es = "Caballero de la muerte" },
    SHAMAN = { en = "Shaman", es = "Chaman" },
    MAGE = { en = "Mage", es = "Mago" },
    WARLOCK = { en = "Warlock", es = "Brujo" },
    MONK = { en = "Monk", es = "Monje" },
    DRUID = { en = "Druid", es = "Druida" },
    DEMONHUNTER = { en = "Demon Hunter", es = "Cazador de demonios" },
    EVOKER = { en = "Evoker", es = "Evocador" },
}

local SPEC_TRANSLATIONS_BY_ID = {
    [62] = { en = "Arcane", es = "Arcano" },
    [63] = { en = "Fire", es = "Fuego" },
    [64] = { en = "Frost", es = "Escarcha" },
    [65] = { en = "Holy", es = "Sagrado" },
    [66] = { en = "Protection", es = "Proteccion" },
    [70] = { en = "Retribution", es = "Reprension" },
    [71] = { en = "Arms", es = "Armas" },
    [72] = { en = "Fury", es = "Furia" },
    [73] = { en = "Protection", es = "Proteccion" },
    [102] = { en = "Balance", es = "Equilibrio" },
    [103] = { en = "Feral", es = "Feral" },
    [104] = { en = "Guardian", es = "Guardian" },
    [105] = { en = "Restoration", es = "Restauracion" },
    [250] = { en = "Blood", es = "Sangre" },
    [251] = { en = "Frost", es = "Escarcha" },
    [252] = { en = "Unholy", es = "Profano" },
    [253] = { en = "Beast Mastery", es = "Dominio de bestias" },
    [254] = { en = "Marksmanship", es = "Punteria" },
    [255] = { en = "Survival", es = "Supervivencia" },
    [256] = { en = "Discipline", es = "Disciplina" },
    [257] = { en = "Holy", es = "Sagrado" },
    [258] = { en = "Shadow", es = "Sombras" },
    [259] = { en = "Assassination", es = "Asesinato" },
    [260] = { en = "Outlaw", es = "Forajido" },
    [261] = { en = "Subtlety", es = "Sutileza" },
    [262] = { en = "Elemental", es = "Elemental" },
    [263] = { en = "Enhancement", es = "Mejora" },
    [264] = { en = "Restoration", es = "Restauracion" },
    [265] = { en = "Affliction", es = "Afliccion" },
    [266] = { en = "Demonology", es = "Demonologia" },
    [267] = { en = "Destruction", es = "Destruccion" },
    [268] = { en = "Brewmaster", es = "Maestro cervecero" },
    [269] = { en = "Windwalker", es = "Viajero del viento" },
    [270] = { en = "Mistweaver", es = "Tejedor de niebla" },
    [577] = { en = "Havoc", es = "Devastacion" },
    [581] = { en = "Vengeance", es = "Venganza" },
    [1467] = { en = "Devastation", es = "Devastacion" },
    [1468] = { en = "Preservation", es = "Preservacion" },
    [1473] = { en = "Augmentation", es = "Aumento" },
    [1480] = { en = "Void", es = "Vacio" },
}

local PRIMARY_STAT_TRANSLATIONS = {
    ["åŠ›é‡"] = { en = "Strength", es = "Fuerza" },
    ["æ•æ·"] = { en = "Agility", es = "Agilidad" },
    ["æ™ºåŠ›"] = { en = "Intellect", es = "Intelecto" },
    Strength = { en = "Strength", es = "Fuerza" },
    Agility = { en = "Agility", es = "Agilidad" },
    Intellect = { en = "Intellect", es = "Intelecto" },
    ["Fuerza"] = { en = "Strength", es = "Fuerza" },
    ["Agilidad"] = { en = "Agility", es = "Agilidad" },
    ["Intelecto"] = { en = "Intellect", es = "Intelecto" },
}

local EXSP_TAG_TRANSLATIONS = {
    aoe = { en = "AoE Damage", es = "Dano en area" },
    los = { en = "Line of Sight", es = "Linea de vision" },
    interrupt = { en = "Interruptible", es = "Interrumpible" },
    noReflect = { en = "Cannot Spell Reflect", es = "No se puede reflejar" },
    alwaysHit = { en = "Always Hits", es = "Siempre acierta" },
    noBlock = { en = "Cannot Block", es = "No se puede bloquear" },
    noDodge = { en = "Cannot Dodge", es = "No se puede esquivar" },
    noParry = { en = "Cannot Parry", es = "No se puede parar" },
    shieldImmunity = { en = "Reflect: Damage Immunity Only", es = "Reflejo: solo inmuniza dano" },
    DispelBleed = { en = "Bleed", es = "Sangrado" },
    DispelCurse = { en = "Curse", es = "Maldicion" },
    DispelDisease = { en = "Disease", es = "Enfermedad" },
    DispelEnrage = { en = "Enrage", es = "Enfurecimiento" },
    DispelMagic = { en = "Magic", es = "Magia" },
    DispelPoison = { en = "Poison", es = "Veneno" },
    MechanicAsleep = { en = "Asleep", es = "Dormido" },
    MechanicBleeding = { en = "Bleeding", es = "Sangrando" },
    MechanicDisoriented = { en = "Disoriented", es = "Desorientado" },
    MechanicEnraged = { en = "Enraged", es = "Enfurecido" },
    MechanicFleeing = { en = "Fleeing", es = "Huyendo" },
    MechanicFrozen = { en = "Frozen", es = "Congelado" },
    MechanicPolymorphed = { en = "Polymorphed", es = "Polimorfado" },
    MechanicRooted = { en = "Rooted", es = "Enraizado" },
    MechanicSnared = { en = "Snared", es = "Ralentizado" },
    MechanicStunned = { en = "Stunned", es = "Aturdido" },
}

local EXSP_DUNGEON_SPANISH_NAMES = {
    ["Seat of the Triumvirate"] = "Trono del Triunvirato",
    ["Algeth'ar Academy"] = "Academia Algeth'ar",
    ["Nexus-Point Xenas"] = "Punto de nexo Xenas",
    ["Pit of Saron"] = "Foso de Saron",
    ["Maisara Caverns"] = "Cavernas de Maisara",
    ["Skyreach"] = "Trecho Celestial",
    ["Windrunner Spire"] = "Torre Brisaveloz",
    ["Magisters' Terrace"] = "Bancal del Magister",
}

local EXSP_DUNGEON_ABBR = {
    ["Seat of the Triumvirate"] = { en = "Seat", es = "Trono" },
    ["Algeth'ar Academy"] = { en = "AA", es = "Academia" },
    ["Nexus-Point Xenas"] = { en = "Nexus", es = "Xenas" },
    ["Pit of Saron"] = { en = "PoS", es = "Foso" },
    ["Maisara Caverns"] = { en = "MC", es = "Maisara" },
    ["Skyreach"] = { en = "Sky", es = "Trecho" },
    ["Windrunner Spire"] = { en = "WS", es = "Torre" },
    ["Magisters' Terrace"] = { en = "MGT", es = "Bancal" },
}

local CREATURE_TYPE_TRANSLATIONS = {
    ["äººåž‹ç”Ÿç‰©"] = { en = "Humanoid", es = "Humanoide" },
    ["é‡Žå…½"] = { en = "Beast", es = "Bestia" },
    ["ç•¸å˜æ€ª"] = { en = "Aberration", es = "Aberracion" },
    ["æœºæ¢°"] = { en = "Mechanical", es = "Mecanico" },
    ["æœªæŒ‡å®š"] = { en = "Unspecified", es = "Sin especificar" },
    ["å…ƒç´ ç”Ÿç‰©"] = { en = "Elemental", es = "Elemental" },
    ["é¾™ç±»"] = { en = "Dragonkin", es = "Dragonante" },
    ["äº¡çµ"] = { en = "Undead", es = "No-muerto" },
    Humanoid = { en = "Humanoid", es = "Humanoide" },
    Beast = { en = "Beast", es = "Bestia" },
    Aberration = { en = "Aberration", es = "Aberracion" },
    Mechanical = { en = "Mechanical", es = "Mecanico" },
    Unspecified = { en = "Unspecified", es = "Sin especificar" },
    Elemental = { en = "Elemental", es = "Elemental" },
    Dragonkin = { en = "Dragonkin", es = "Dragonante" },
    Undead = { en = "Undead", es = "No-muerto" },
}

local function GetTranslatedCreatureType(rawType)
    local row = CREATURE_TYPE_TRANSLATIONS[rawType]
    if row then
        return SelectPatchText(row.en, row.es)
    end

    local translated = SafeReplaceText(rawType)
    if type(translated) == "string" and translated ~= "" and not ContainsCJKText(translated) then
        return translated
    end

    return SelectPatchText("NPC", "PNJ")
end

local function GetTranslatedExspDungeonName(originalName)
    local englishName = TranslateMapName(originalName)
    if ShouldUseSpanishText() then
        return EXSP_DUNGEON_SPANISH_NAMES[englishName] or TranslateEnglishToSpanish(englishName)
    end
    return englishName
end

local function GetTranslatedExspDungeonAbbr(englishName)
    local row = EXSP_DUNGEON_ABBR[englishName]
    if row then
        return SelectPatchText(row.en, row.es)
    end
    return GetTranslatedExspDungeonName(englishName)
end

local function GetTranslatedExspMobName(originalName, mobData)
    local translated = SafeReplaceText(originalName)
    if type(translated) == "string" and translated ~= "" and not ContainsCJKText(translated) then
        return translated
    end

    local id = type(mobData) == "table" and tonumber(mobData.npcID) or nil
    local typeName = GetTranslatedCreatureType(type(mobData) == "table" and (mobData._englishPatchOriginal_type or mobData.type) or nil)
    if id then
        return string.format("%s #%d", typeName, id)
    end
    return SelectPatchText("Unknown NPC", "PNJ desconocido")
end

local function PatchExwindDatabases()
    local db = _G.EXDB
    if type(db) == "table" then
        if type(db.Classes) == "table" then
            for _, classRow in pairs(db.Classes) do
                if type(classRow) == "table" then
                    local classTranslation = CLASS_TRANSLATIONS_BY_FILE[classRow.nameEN]
                    if classTranslation then
                        classRow.name = SelectPatchText(classTranslation.en, classTranslation.es)
                    end
                end
            end
        end

        if type(db.Specs) == "table" then
            for _, specRow in ipairs(db.Specs) do
                if type(specRow) == "table" then
                    local specTranslation = SPEC_TRANSLATIONS_BY_ID[tonumber(specRow.id)]
                    if specTranslation then
                        specRow.name = SelectPatchText(specTranslation.en, specTranslation.es)
                    end
                    local statTranslation = PRIMARY_STAT_TRANSLATIONS[specRow.primaryStat]
                    if statTranslation then
                        specRow.primaryStat = SelectPatchText(statTranslation.en, statTranslation.es)
                    end
                end
            end
        end
    end

    local exsp = _G.EXSP
    if type(exsp) ~= "table" then
        return
    end

    if type(exsp.TagDefs) == "table" then
        for tagKey, tagTranslation in pairs(EXSP_TAG_TRANSLATIONS) do
            local tagDef = exsp.TagDefs[tagKey]
            if type(tagDef) == "table" then
                tagDef.name = SelectPatchText(tagTranslation.en, tagTranslation.es)
            end
        end
    end

    if type(exsp.Database) ~= "table" or type(exsp.DungeonList) ~= "table" then
        return
    end

    if type(exsp._englishPatchOriginalDungeonList) ~= "table" then
        exsp._englishPatchOriginalDungeonList = {}
        for i, dungeonName in ipairs(exsp.DungeonList) do
            exsp._englishPatchOriginalDungeonList[i] = dungeonName
        end
    end

    if type(exsp._englishPatchOriginalDatabase) ~= "table" then
        exsp._englishPatchOriginalDatabase = {}
        for _, dungeonName in ipairs(exsp._englishPatchOriginalDungeonList) do
            if type(exsp.Database[dungeonName]) == "table" then
                exsp._englishPatchOriginalDatabase[dungeonName] = exsp.Database[dungeonName]
            end
        end
    end

    local displayDungeonList = {}
    local displayDatabase = {}
    local displayAbbr = {}

    for i, originalDungeonName in ipairs(exsp._englishPatchOriginalDungeonList) do
        local originalMobs = exsp._englishPatchOriginalDatabase[originalDungeonName]
        if type(originalMobs) == "table" then
            local englishDungeonName = TranslateMapName(originalDungeonName)
            local displayDungeonName = GetTranslatedExspDungeonName(originalDungeonName)
            displayDungeonList[#displayDungeonList + 1] = displayDungeonName

            local displayMobs = {}
            for originalMobName, mobData in pairs(originalMobs) do
                if type(mobData) == "table" then
                    mobData._englishPatchOriginal_name = mobData._englishPatchOriginal_name or originalMobName
                    mobData._englishPatchOriginal_type = mobData._englishPatchOriginal_type or mobData.type
                    mobData.type = GetTranslatedCreatureType(mobData._englishPatchOriginal_type)

                    local displayMobName = GetTranslatedExspMobName(originalMobName, mobData)
                    if displayMobs[displayMobName] and tonumber(mobData.npcID) then
                        displayMobName = string.format("%s #%d", displayMobName, tonumber(mobData.npcID))
                    end
                    displayMobs[displayMobName] = mobData
                end
            end

            displayDatabase[displayDungeonName] = displayMobs
            displayDatabase[englishDungeonName] = displayMobs
            displayDatabase[originalDungeonName] = originalMobs

            displayAbbr[displayDungeonName] = GetTranslatedExspDungeonAbbr(englishDungeonName)
            displayAbbr[englishDungeonName] = GetTranslatedExspDungeonAbbr(englishDungeonName)
            displayAbbr[originalDungeonName] = GetTranslatedExspDungeonAbbr(englishDungeonName)
        end
    end

    exsp.DungeonList = displayDungeonList
    exsp.Database = displayDatabase
    exsp.DungeonAbbr = displayAbbr

    if exsp.CurrentDungeon and not exsp.Database[exsp.CurrentDungeon] and #displayDungeonList > 0 then
        exsp.CurrentDungeon = displayDungeonList[1]
        exsp.CurrentMob = nil
    end
end
local function GetSpellName(spellID)
    local id = tonumber(spellID)
    if not id then
        return nil
    end

    if C_Spell and type(C_Spell.GetSpellName) == "function" then
        local ok, name = pcall(C_Spell.GetSpellName, id)
        if ok and type(name) == "string" and name ~= "" then
            return name
        end
    end

    if C_Spell and type(C_Spell.GetSpellInfo) == "function" then
        local ok, info = pcall(C_Spell.GetSpellInfo, id)
        if ok and type(info) == "table" and type(info.name) == "string" and info.name ~= "" then
            return info.name
        end
    end

    if type(GetSpellInfo) == "function" then
        local ok, name = pcall(GetSpellInfo, id)
        if ok and type(name) == "string" and name ~= "" then
            return name
        end
    end
end

local GetEncounterName
local ExtractParenthesizedEnglish

local function ResolveSelectedSpellName(spellID, fallbackText)
    local localizedName = GetSpellName(spellID)

    if ShouldUseSpanishText() then
        if IsSpanishClient() and localizedName then
            return localizedName
        end

        local translatedFallback = SafeReplaceText(fallbackText)
        if type(translatedFallback) == "string" and translatedFallback ~= "" and translatedFallback ~= fallbackText then
            return translatedFallback
        end
    end

    return localizedName or fallbackText
end

local function ResolveSelectedBossName(journalEncounterID, fallbackText)
    local localizedName = GetEncounterName(journalEncounterID)
    local extractedEnglish = ExtractParenthesizedEnglish(fallbackText)

    if ShouldUseSpanishText() then
        if IsSpanishClient() and localizedName then
            return localizedName
        end

        local translatedFallback = SafeReplaceText(fallbackText)
        if type(translatedFallback) == "string" and translatedFallback ~= "" and translatedFallback ~= fallbackText then
            return translatedFallback
        end
    end

    return localizedName or extractedEnglish or fallbackText
end

local function PreserveOriginalTextField(row, key)
    if type(row) ~= "table" or type(key) ~= "string" then
        return nil
    end

    local originalKey = "_englishPatchOriginal_" .. key
    local originalValue = SafeNonEmptyString(row[originalKey])
    if originalValue then
        return originalValue
    end

    local currentValue = SafeNonEmptyString(row[key])
    if currentValue then
        row[originalKey] = currentValue
        return currentValue
    end

    return nil
end

GetEncounterName = function(journalEncounterID)
    local encounterID = tonumber(journalEncounterID)
    if not encounterID or encounterID <= 0 or type(EJ_GetEncounterInfo) ~= "function" then
        return nil
    end

    local ok, name = pcall(EJ_GetEncounterInfo, encounterID)
    if ok and type(name) == "string" and name ~= "" then
        return name
    end
end

ExtractParenthesizedEnglish = function(text)
    local raw = SafeString(text) or ""
    local ok, english = pcall(function()
        return raw:match("%(([^%(%)]+)%)")
    end)
    if not ok then
        return nil
    end
    english = Trim(english)
    return english ~= "" and english or nil
end

local function ForceLocales()
    if _G.ExBoss and _G.ExBoss.Locale then
        _G.ExBoss.Locale._currentLocale = "enUS"
        _G.ExBoss.Locale._defaultLocale = "enUS"
        _G.ExBoss.Locale._englishPatchForcedLocale = "enUS"
    end
    if _G.ExwindLocale then
        _G.ExwindLocale._currentLocale = "enUS"
        _G.ExwindLocale._defaultLocale = "enUS"
        _G.ExwindLocale._englishPatchForcedLocale = "enUS"
    end
end

local function PatchLocaleStore(store)
    if type(store) ~= "table" or store._englishPatchLocalePatched then
        return
    end

    for i = 1, #SORTED_TEXT_REPLACEMENTS do
        local fromText, toText = SORTED_TEXT_REPLACEMENTS[i][1], SORTED_TEXT_REPLACEMENTS[i][2]
        if fromText and fromText ~= "" and toText and toText ~= "" then
            store[fromText] = toText
        end
    end

    store._englishPatchLocalePatched = true
end

local function MirrorEnglishStore(targetStore, englishStore)
    if type(targetStore) ~= "table" or type(englishStore) ~= "table" then
        return
    end

    if targetStore._englishPatchMirrored and targetStore._englishPatchMirroredSource == englishStore then
        return
    end

    for key, value in next, englishStore do
        if type(key) == "string" and type(value) == "string" then
            local plain = GetTranslatableString(value)
            if plain and plain ~= "" then
                targetStore[key] = plain
            end
        end
    end

    targetStore._englishPatchMirrored = true
    targetStore._englishPatchMirroredSource = englishStore
end

local function PatchLocales()
    if _G.ExBoss and _G.ExBoss.Locale and type(_G.ExBoss.Locale._stores) == "table" then
        _G.ExBoss.Locale._stores.enUS = _G.ExBoss.Locale._stores.enUS or {}
        _G.ExBoss.Locale._stores.zhCN = _G.ExBoss.Locale._stores.zhCN or {}
        MirrorEnglishStore(_G.ExBoss.Locale._stores.zhCN, _G.ExBoss.Locale._stores.enUS)
        PatchLocaleStore(_G.ExBoss.Locale._stores.enUS)
        PatchLocaleStore(_G.ExBoss.Locale._stores.zhCN)
    end

    if _G.ExwindLocale and type(_G.ExwindLocale._stores) == "table" then
        _G.ExwindLocale._stores.enUS = _G.ExwindLocale._stores.enUS or {}
        _G.ExwindLocale._stores.zhCN = _G.ExwindLocale._stores.zhCN or {}
        MirrorEnglishStore(_G.ExwindLocale._stores.zhCN, _G.ExwindLocale._stores.enUS)
        PatchLocaleStore(_G.ExwindLocale._stores.enUS)
        PatchLocaleStore(_G.ExwindLocale._stores.zhCN)
    end
end

local function WrapLocaleProxy(proxy)
    if type(proxy) ~= "table" or proxy._englishPatchWrapped then
        return
    end

    local mt = getmetatable(proxy)
    if type(mt) ~= "table" or type(mt.__index) ~= "function" then
        return
    end

    local originalIndex = mt.__index
    mt.__index = function(tbl, key)
        local value = originalIndex(tbl, key)
        if type(value) == "string" then
            return SafeReplaceText(value)
        end
        return value
    end

    proxy._englishPatchWrapped = true
end

local function WrapLocaleRoot(localeRoot)
    if type(localeRoot) ~= "table" or localeRoot._englishPatchLocaleWrapped then
        return
    end

    localeRoot._currentLocale = "enUS"
    localeRoot._defaultLocale = "enUS"
    localeRoot._englishPatchForcedLocale = "enUS"

    if localeRoot._proxy then
        WrapLocaleProxy(localeRoot._proxy)
    end

    if type(localeRoot.GetLocale) == "function" then
        local original = localeRoot.GetLocale
        localeRoot.GetLocale = function(self, appName)
            self._currentLocale = "enUS"
            self._defaultLocale = "enUS"
            local proxy = original(self, appName)
            WrapLocaleProxy(proxy)
            return proxy
        end
    end

    if type(localeRoot.GetCurrentLocale) == "function" then
        localeRoot.GetCurrentLocale = function(self)
            return "enUS"
        end
    end

    if type(localeRoot.GetDefaultLocale) == "function" then
        localeRoot.GetDefaultLocale = function(self)
            return "enUS"
        end
    end

    localeRoot._englishPatchLocaleWrapped = true
end

local TRANSLATABLE_TABLE_KEYS = {
    title = true,
    subtitle = true,
    desc = true,
    description = true,
    content = true,
    label = true,
    text = true,
    note = true,
    notes = true,
    summary = true,
    status = true,
    message = true,
    placeholder = true,
    author = true,
    name = true,
    displayName = true,
    bossName = true,
    mapName = true,
    dungeon = true,
    boss = true,
    category = true,
    eventName = true,
    voiceLabel = true,
    header = true,
    caption = true,
    short = true,
}

local function ShouldTranslateTableString(key, value)
    local text = SafeNonEmptyString(value)
    if not text then
        return false
    end
    if TRANSLATABLE_TABLE_KEYS[key] then
        return true
    end
    local okFind, found = pcall(function()
        return text:find("[\128-\255]") ~= nil
    end)
    if not okFind then
        return false
    end
    return found
end

local function PatchDisplayStringTable(root, visited, depth)
    if type(root) ~= "table" then
        return
    end
    visited = visited or {}
    depth = depth or 0
    if visited[root] or depth > 10 or (root.GetObjectType and type(root.GetObjectType) == "function") then
        return
    end
    visited[root] = true

    for key, value in pairs(root) do
        if type(value) == "table" then
            PatchDisplayStringTable(value, visited, depth + 1)
        elseif ShouldTranslateTableString(key, value) then
            root[key] = SafeReplaceText(value)
        end
    end
end

local function PatchMetadataTables()
    local roots = {
        _G.ExBoss_MetaData,
        _G.ExwindTools_MetaData,
    }

    for i = 1, #roots do
        local root = roots[i]
        if type(root) == "table" and not root._englishPatchMetadataPatched then
            PatchDisplayStringTable(root)
            root._englishPatchMetadataPatched = true
        end
    end
end

local function FindEncounterEventRow(eventID)
    local data = _G.EXBOSS_ENCOUNTER_DATA
    local maps = type(data) == "table" and (type(data.maps) == "table" and data.maps or data) or nil
    local id = tonumber(eventID)
    if not id or type(maps) ~= "table" then
        return nil
    end

    for _, mapRow in pairs(maps) do
        if type(mapRow) == "table" and type(mapRow.bosses) == "table" then
            for _, bossRow in pairs(mapRow.bosses) do
                if type(bossRow) == "table" and type(bossRow.events) == "table" then
                    for rawEventID, eventRow in pairs(bossRow.events) do
                        if tonumber(rawEventID) == id or (type(eventRow) == "table" and tonumber(eventRow.eventID) == id) then
                            return eventRow
                        end
                    end
                end
            end
        end
    end
end

local function PatchEncounterData()
    local data = _G.EXBOSS_ENCOUNTER_DATA
    local maps = type(data) == "table" and (type(data.maps) == "table" and data.maps or data) or nil
    if type(maps) ~= "table" then
        return
    end

    for _, mapRow in pairs(maps) do
        if type(mapRow) == "table" then
            local mapName = PreserveOriginalTextField(mapRow, "mapName") or PreserveOriginalTextField(mapRow, "name") or ""
            local translatedMapName = TranslateMapName(mapName)
            if translatedMapName ~= mapName and translatedMapName ~= "" then
                mapRow.mapName = translatedMapName
                if mapRow.name ~= nil then
                    mapRow.name = mapRow.mapName
                end
            end

            if mapRow.category == "Ã¥Å“Â°Ã¤Â¸â€¹Ã¥Å¸Å½" then
                mapRow.category = "Dungeon"
            elseif mapRow.category == "Ã¥â€ºÂ¢Ã©ËœÅ¸" then
                mapRow.category = "Raid"
            end

            if type(mapRow.bosses) == "table" then
                for _, bossRow in pairs(mapRow.bosses) do
                    if type(bossRow) == "table" then
                        local originalBossName = PreserveOriginalTextField(bossRow, "bossName") or PreserveOriginalTextField(bossRow, "name") or bossRow.bossName
                        local displayBoss = ResolveSelectedBossName(bossRow.journalEncounterID, originalBossName)
                        if displayBoss then
                            bossRow.bossName = displayBoss
                            if bossRow.name ~= nil then
                                bossRow.name = displayBoss
                            end
                        end

                        if type(bossRow.events) == "table" then
                            for _, eventRow in pairs(bossRow.events) do
                                if type(eventRow) == "table" then
                                    local eventType = SafeNonEmptyString(eventRow.eventType)
                                    local voiceLabel = SafeNonEmptyString(eventRow.voiceLabel)
                                    eventRow.eventType = (eventType and EVENT_TYPE_TRANSLATIONS[eventType]) or eventRow.eventType
                                    eventRow.voiceLabel = (voiceLabel and LABEL_TRANSLATIONS[voiceLabel]) or eventRow.voiceLabel

                                    local originalEventName = PreserveOriginalTextField(eventRow, "eventName") or PreserveOriginalTextField(eventRow, "name") or eventRow.eventName
                                    local spellName = ResolveSelectedSpellName(eventRow.spellID or eventRow.evenSpellID, originalEventName)
                                    if spellName then
                                        eventRow.eventName = spellName
                                        if eventRow.name ~= nil then
                                            eventRow.name = spellName
                                        end
                                    end
                                end
                            end
                        end
                    end
                end
            end
        end
    end
end

local function PatchPrivateAuraData()
    local root = _G.EXBOSS_PRIVATE_AURA_DATA
    if type(root) ~= "table" then
        return
    end

    for _, groupRow in pairs(root) do
        if type(groupRow) == "table" then
            for _, encounterRow in pairs(groupRow) do
                if type(encounterRow) == "table" then
                    local originalDungeonName = PreserveOriginalTextField(encounterRow, "dungeon") or encounterRow.dungeon
                    encounterRow.dungeon = TranslateMapName(originalDungeonName)

                    local originalBossName = PreserveOriginalTextField(encounterRow, "boss") or encounterRow.boss
                    local displayBoss = ResolveSelectedBossName(nil, originalBossName)
                    if displayBoss then
                        encounterRow.boss = displayBoss
                    end

                    if type(encounterRow.spells) == "table" then
                        for _, spellRow in pairs(encounterRow.spells) do
                            if type(spellRow) == "table" then
                                local originalSpellName = PreserveOriginalTextField(spellRow, "name") or spellRow.name
                                local spellName = ResolveSelectedSpellName(spellRow.spellID, originalSpellName)
                                if spellName then
                                    spellRow.name = spellName
                                end
                            end
                        end
                    end
                end
            end
        end
    end
end

local function PatchTimelineBosses()
    local bosses = _G.ExBoss and _G.ExBoss.Timeline and _G.ExBoss.Timeline._bosses
    if type(bosses) ~= "table" then
        return
    end

    for _, bossDef in pairs(bosses) do
        if type(bossDef) == "table" then
            local originalBossName = PreserveOriginalTextField(bossDef, "name") or bossDef.name
            local displayBoss = ResolveSelectedBossName(bossDef.journalEncounterID, originalBossName)
            if displayBoss then
                bossDef.name = displayBoss
            end

            if type(bossDef.skills) == "table" then
                for i = 1, #bossDef.skills do
                    local skill = bossDef.skills[i]
                    if type(skill) == "table" then
                        local originalSkillName = PreserveOriginalTextField(skill, "displayName") or PreserveOriginalTextField(skill, "name") or skill.displayName or skill.name
                        local spellName = ResolveSelectedSpellName(skill.spellID or skill.eventSpellID or skill.evenSpellID, originalSkillName)
                        if spellName then
                            skill.displayName = spellName
                            if skill.name ~= nil then
                                skill.name = spellName
                            end
                        end
                        local voiceLabel = SafeNonEmptyString(skill.voiceLabel)
                        skill.voiceLabel = (voiceLabel and LABEL_TRANSLATIONS[voiceLabel]) or skill.voiceLabel
                    end
                end
            end
        end
    end
end

local function PatchAuthorPresets()
    local root = _G.EXBOSS_AUTHOR_PRESETS
    if type(root) ~= "table" then
        return
    end

    local visited = {}
    local function Walk(node)
        if type(node) ~= "table" or visited[node] then
            return
        end
        visited[node] = true

        for key, value in pairs(node) do
            if type(value) == "table" then
                Walk(value)
            elseif type(value) == "string" then
                if key == "name" or key == "author" or key == "label" or key == "title" then
                    node[key] = SafeReplaceText(value)
                end
            end
        end
    end

    Walk(root)
end

local function FixEventConfigRow(eventID, row)
    if type(row) ~= "table" then
        return row
    end

    if type(row.triggers) == "table" then
        for _, triggerRow in pairs(row.triggers) do
            if type(triggerRow) == "table" then
                local label = SafeNonEmptyString(triggerRow.label)
                local translated = label and LABEL_TRANSLATIONS[label]
                if translated then
                    triggerRow.label = translated
                end
                if label and (triggerRow.sourceType == nil or triggerRow.sourceType == "" or triggerRow.sourceType == "none") then
                    triggerRow.sourceType = "pack"
                end
            end
        end
    end

    local eventRow = FindEncounterEventRow(eventID or row.eventID)
    local eventType = type(eventRow) == "table" and SafeNonEmptyString(eventRow.eventType) or nil
    local scheme = EVENT_TYPE_SCHEMES[eventType or ""]
    if scheme and type(row.color) == "table" then
        row.color.scheme = scheme
    end

    return row
end

local function WrapExBossDataApi()
    local api = _G.EXBossData
    if type(api) ~= "table" or api._englishPatchWrapped then
        return
    end

    if type(api.GetFactoryEventDefaults) == "function" then
        local original = api.GetFactoryEventDefaults
        api.GetFactoryEventDefaults = function(eventID)
            local result = original(eventID)
            if tonumber(eventID) then
                return FixEventConfigRow(eventID, result)
            end
            if type(result) == "table" then
                for rawEventID, row in pairs(result) do
                    FixEventConfigRow(rawEventID, row)
                end
            end
            return result
        end
    end

    if type(api.GetResolvedEventConfig) == "function" then
        local original = api.GetResolvedEventConfig
        api.GetResolvedEventConfig = function(eventID)
            return FixEventConfigRow(eventID, original(eventID))
        end
    end

    if type(api.GetEventConfigRoot) == "function" then
        local original = api.GetEventConfigRoot
        api.GetEventConfigRoot = function()
            local result = original()
            if type(result) == "table" then
                for rawEventID, row in pairs(result) do
                    FixEventConfigRow(rawEventID, row)
                end
            end
            return result
        end
    end

    if type(api.GetEncounterDataRoot) == "function" then
        local original = api.GetEncounterDataRoot
        api.GetEncounterDataRoot = function()
            local result = original()
            if type(result) == "table" then
                PatchDisplayStringTable(result)
            end
            return result
        end
    end

    api._englishPatchWrapped = true
end

local function WrapAddOnMetadata()
    if _G._englishPatchMetadataWrapped then
        return
    end

    if type(GetAddOnMetadata) == "function" then
        local original = GetAddOnMetadata
        _G.GetAddOnMetadata = function(addonName, field)
            local value = original(addonName, field)
            local addonKey = SafeLower(addonName) or ""
            if TARGET_ADDONS[addonKey] and type(value) == "string" then
                return SafeReplaceText(value)
            end
            return value
        end
    end

    if _G.C_AddOns and type(_G.C_AddOns.GetAddOnMetadata) == "function" then
        local original = _G.C_AddOns.GetAddOnMetadata
        _G.C_AddOns.GetAddOnMetadata = function(addonName, field)
            local value = original(addonName, field)
            local addonKey = SafeLower(addonName) or ""
            if TARGET_ADDONS[addonKey] and type(value) == "string" then
                return SafeReplaceText(value)
            end
            return value
        end
    end

    _G._englishPatchMetadataWrapped = true
end

local function RegisterSoundAliases()
    local LSM = LibStub and LibStub("LibSharedMedia-3.0", true)
    if not LSM then
        return
    end

    local function RegisterPackSound(packName, label, soundFile)
        packName = SafeNonEmptyString(packName)
        label = SafeNonEmptyString(label)
        if not packName or not label then
            return
        end
        local resolvedFile = SafeNonEmptyString(soundFile) or "Check.ogg"
        local soundPath = CUSTOM_SOUND_BASE_PATH .. resolvedFile
        pcall(LSM.Register, LSM, "sound", "[" .. packName .. "]" .. label, soundPath)
    end

    local defaultPackNames = {
        "EXWIND (Default)",
        "EXWIND(é»˜è®¤)",
    }

    for i = 1, #SOUND_ALIASES do
        local zhLabel = SOUND_ALIASES[i][1]
        local enLabel = SOUND_ALIASES[i][2]
        local soundFile = CUSTOM_SOUND_BY_LABEL[enLabel]
        for packIndex = 1, #defaultPackNames do
            RegisterPackSound(defaultPackNames[packIndex], enLabel, soundFile)
            RegisterPackSound(defaultPackNames[packIndex], zhLabel, soundFile)
        end
        RegisterPackSound(CUSTOM_VOICE_PACK_NAME, enLabel, soundFile)
        RegisterPackSound(CUSTOM_VOICE_PACK_NAME, zhLabel, soundFile)
    end

    for packIndex = 1, #defaultPackNames do
        RegisterPackSound(defaultPackNames[packIndex], "54321", "5.ogg")
    end
    RegisterPackSound(CUSTOM_VOICE_PACK_NAME, "54321", "5.ogg")

    _G.EXBV_LABELS = ENGLISH_LABELS
    _G.EXBOSSEXWIND_LABELS = ENGLISH_LABELS

    ExBossDB = ExBossDB or {}
    ExBossDB.voice = ExBossDB.voice or {}
    ExBossDB.voice.global = ExBossDB.voice.global or {}
    local globalCfg = ExBossDB.voice.global
    local currentPack = SafeNonEmptyString(globalCfg.selectedVoicePack) or ""
    if not globalCfg._englishPatchVoicePackMigrated then
        local shouldMigrate = currentPack == ""
        if not shouldMigrate then
            local okFind, found = pcall(function()
                return currentPack:find("EXWIND", 1, true)
            end)
            shouldMigrate = okFind and found ~= nil
        end
        if shouldMigrate then
            globalCfg.selectedVoicePack = CUSTOM_VOICE_PACK_NAME
        end
        globalCfg._englishPatchVoicePackMigrated = true
    end

    local engine = _G.ExBoss and _G.ExBoss.Voice and _G.ExBoss.Voice.Engine
    if engine and type(engine.InvalidateLabelCache) == "function" then
        pcall(engine.InvalidateLabelCache, engine)
    end
end

RegisterSoundAliases = function()
    local LSM = LibStub and LibStub("LibSharedMedia-3.0", true)
    if not LSM then
        return
    end

    RefreshDynamicLabelTranslations()

    local function RegisterPackSound(packName, label, soundFile)
        packName = SafeNonEmptyString(packName)
        label = SafeNonEmptyString(label)
        if not packName or not label then
            return
        end
        local resolvedFile = SafeNonEmptyString(soundFile) or "Check.ogg"
        local soundPath = CUSTOM_SOUND_BASE_PATH .. resolvedFile
        pcall(LSM.Register, LSM, "sound", "[" .. packName .. "]" .. label, soundPath)
    end

    local registered = {}
    local function RegisterLabelVariant(sourceLabel, englishLabel, soundFile)
        local src = SafeNonEmptyString(sourceLabel)
        local en = SafeNonEmptyString(englishLabel)
        local file = SafeNonEmptyString(soundFile) or "Check.ogg"
        if not en then
            return
        end

        local key = (src or "") .. "\031" .. en .. "\031" .. file
        if registered[key] then
            return
        end
        registered[key] = true

        for packIndex = 1, #DEFAULT_VOICE_PACK_NAMES do
            local packName = DEFAULT_VOICE_PACK_NAMES[packIndex]
            RegisterPackSound(packName, en, file)
            if src and src ~= en then
                RegisterPackSound(packName, src, file)
            end
        end
    end

    for i = 1, #SOUND_ALIASES do
        local sourceLabel = SOUND_ALIASES[i][1]
        local englishLabel = SOUND_ALIASES[i][2]
        local soundFile = CUSTOM_SOUND_BY_LABEL[englishLabel]
        RegisterLabelVariant(sourceLabel, englishLabel, soundFile)
    end

    for sourceLabel, soundFile in pairs(SOUND_FILE_BY_LABEL) do
        local englishLabel = LABEL_TRANSLATIONS[sourceLabel] or sourceLabel
        RegisterLabelVariant(sourceLabel, englishLabel, soundFile)
    end

    for packIndex = 1, #DEFAULT_VOICE_PACK_NAMES do
        RegisterPackSound(DEFAULT_VOICE_PACK_NAMES[packIndex], "54321", "5.ogg")
    end

    ForceEnglishVoiceLabels()

    ExBossDB = ExBossDB or {}
    ExBossDB.voice = ExBossDB.voice or {}
    ExBossDB.voice.global = ExBossDB.voice.global or {}
    local globalCfg = ExBossDB.voice.global
    local currentPack = SafeNonEmptyString(globalCfg.selectedVoicePack) or ""
    if not globalCfg._englishPatchVoicePackMigrated then
        local shouldMigrate = currentPack == ""
        if not shouldMigrate then
            local okFind, found = pcall(function()
                return currentPack:find("EXWIND", 1, true)
            end)
            shouldMigrate = okFind and found ~= nil
        end
        if shouldMigrate then
            globalCfg.selectedVoicePack = CUSTOM_VOICE_PACK_NAME
        end
        globalCfg._englishPatchVoicePackMigrated = true
    end

    local engine = _G.ExBoss and _G.ExBoss.Voice and _G.ExBoss.Voice.Engine
    if engine and type(engine.InvalidateLabelCache) == "function" then
        pcall(engine.InvalidateLabelCache, engine)
    end
end
local function WrapLabelCatalog()
    local catalog = _G.ExBoss and _G.ExBoss.Voice and _G.ExBoss.Voice.LabelCatalog
    if type(catalog) ~= "table" or catalog._englishPatchWrapped then
        return
    end

    local function TranslateLabelList(list)
        if type(list) ~= "table" then
            return list
        end

        local out, seen = {}, {}
        for i = 1, #list do
            local label = SafeNonEmptyString(list[i])
            local translated = (label and LABEL_TRANSLATIONS[label]) or label
            if translated and translated ~= "" and not seen[translated] then
                seen[translated] = true
                out[#out + 1] = translated
            end
        end
        return out
    end

    if type(catalog.GetPackLabels) == "function" then
        local original = catalog.GetPackLabels
        catalog.GetPackLabels = function(packName)
            local name = SafeString(packName) or ""
            if name == "EXWIND (Default)" then
                name = "EXWIND(Ã©Â»ËœÃ¨Â®Â¤)"
            end
            return TranslateLabelList(original(name))
        end
    end

    if type(catalog.GetStandardLabels) == "function" then
        local original = catalog.GetStandardLabels
        catalog.GetStandardLabels = function()
            return TranslateLabelList(original())
        end
    end

    if type(catalog.GetDropdownItems) == "function" then
        local original = catalog.GetDropdownItems
        catalog.GetDropdownItems = function()
            local items = original()
            if type(items) ~= "table" then
                return items
            end
            for i = 1, #items do
                local row = items[i]
                if type(row) == "table" then
                    -- Voice labels kept in original language (Chinese) to distinguish from custom English audio
                end
            end
            return items
        end
    end

    catalog._englishPatchWrapped = true
end

WrapLabelCatalog = function()
    local catalog = _G.ExBoss and _G.ExBoss.Voice and _G.ExBoss.Voice.LabelCatalog
    if type(catalog) ~= "table" or catalog._englishPatchWrappedByEnglishVoice then
        return
    end

    local function GetEnglishLabelList()
        ForceEnglishVoiceLabels()
        return CopyStringArray(ENGLISH_LABELS)
    end

    if type(catalog.GetPackLabels) == "function" then
        local originalGetPackLabels = catalog.GetPackLabels
        catalog.GetPackLabels = function(packName)
            local name = SafeString(packName) or ""
            if name == "" or name == "EXWIND (Default)" or name == "EXWIND(Ã©Â»ËœÃ¨Â®Â¤)" or name == CUSTOM_VOICE_PACK_NAME then
                return GetEnglishLabelList()
            end

            local list = originalGetPackLabels(packName)
            if type(list) ~= "table" then
                return list
            end

            local out, seen = {}, {}
            for i = 1, #list do
                local label = SafeNonEmptyString(list[i])
                local translated = (label and LABEL_TRANSLATIONS[label]) or label
                if translated and translated ~= "" and not seen[translated] then
                    seen[translated] = true
                    out[#out + 1] = translated
                end
            end
            return out
        end
    end

    catalog.GetStandardLabels = function()
        return GetEnglishLabelList()
    end

    catalog.GetDropdownItems = function()
        local labels = GetEnglishLabelList()
        local items = {}
        for i = 1, #labels do
            local label = labels[i]
            items[#items + 1] = { label, label, text = label, label = label, value = label }
        end
        return items
    end

    catalog._englishPatchWrappedByEnglishVoice = true
end

ForceEnglishVoiceLabels = function()
    local base = {}
    if type(_G.EXBV_LABELS) == "table" then
        base = _G.EXBV_LABELS
    elseif type(_G.EXBOSSEXWIND_LABELS) == "table" then
        base = _G.EXBOSSEXWIND_LABELS
    end

    local out, seen = {}, {}
    local function AddFrom(list)
        if type(list) ~= "table" then
            return
        end
        for i = 1, #list do
            local label = SafeNonEmptyString(list[i])
            if label and not seen[label] then
                seen[label] = true
                out[#out + 1] = label
            end
        end
    end

    AddFrom(base)
    AddFrom(ENGLISH_LABELS)

    _G.EXBV_LABELS = CopyStringArray(out)
    _G.EXBOSSEXWIND_LABELS = CopyStringArray(out)
    return out
end

WrapLabelCatalog = function()
    local catalog = _G.ExBoss and _G.ExBoss.Voice and _G.ExBoss.Voice.LabelCatalog
    if type(catalog) ~= "table" or catalog._englishPatchMergedVoiceHook then
        return
    end

    local originalStandard = type(catalog.GetStandardLabels) == "function" and catalog.GetStandardLabels or nil
    local originalPackLabels = type(catalog.GetPackLabels) == "function" and catalog.GetPackLabels or nil

    local function MergeLabelLists(...)
        local out, seen = {}, {}
        local lists = { ... }
        for listIndex = 1, #lists do
            local list = lists[listIndex]
            if type(list) == "table" then
                for i = 1, #list do
                    local label = SafeNonEmptyString(list[i])
                    if label and not seen[label] then
                        seen[label] = true
                        out[#out + 1] = label
                    end
                end
            end
        end
        return out
    end

    local function GetMergedLabelList()
        local base = originalStandard and originalStandard() or _G.EXBV_LABELS
        local merged = MergeLabelLists(base, ENGLISH_LABELS)
        _G.EXBV_LABELS = CopyStringArray(merged)
        _G.EXBOSSEXWIND_LABELS = CopyStringArray(merged)
        return merged
    end

    catalog.GetStandardLabels = function()
        return GetMergedLabelList()
    end

    catalog.GetDropdownItems = function()
        local labels = GetMergedLabelList()
        local items = {}
        for i = 1, #labels do
            local label = labels[i]
            items[#items + 1] = { label, label, text = label, label = label, value = label }
        end
        return items
    end

    if originalPackLabels then
        catalog.GetPackLabels = function(packName)
            local name = SafeString(packName) or ""
            if name == CUSTOM_VOICE_PACK_NAME then
                return CopyStringArray(ENGLISH_LABELS)
            end
            if name == "" or name == "EXWIND (Default)" or name == "EXWIND(Ã©Â»ËœÃ¨Â®Â¤)" or name == "EXWIND(ÃƒÂ©Ã‚Â»Ã‹Å“ÃƒÂ¨Ã‚Â®Ã‚Â¤)" then
                return GetMergedLabelList()
            end
            return originalPackLabels(packName)
        end
    end

    catalog._englishPatchMergedVoiceHook = true
end

local function TranslateWidgetText(widget)
    if not widget or not widget.GetObjectType then
        return
    end

    local function SafeGetText(target)
        if type(target.GetText) ~= "function" then
            return nil
        end
        local ok, value = pcall(target.GetText, target)
        if not ok or type(value) ~= "string" then
            return nil
        end
        local comparable = pcall(function()
            return value == value
        end)
        if not comparable then
            return nil
        end
        return value
    end

    local function SafeTranslate(value)
        local ok, translated = pcall(ReplaceText, value)
        if not ok or type(translated) ~= "string" then
            return nil
        end
        local comparable = pcall(function()
            return translated == translated
        end)
        if not comparable then
            return nil
        end
        return translated
    end

    local function SafeStringsEqual(left, right)
        local ok, result = pcall(function()
            return left == right
        end)
        if not ok then
            return false
        end
        return result and true or false
    end

    local function SafeSetText(target, value)
        if type(target.SetText) ~= "function" then
            return
        end
        pcall(target.SetText, target, value)
    end

    local objectType = widget:GetObjectType()
    if objectType == "DropdownButton" and type(widget._items) == "table" then
        -- USER REQUEST: Do not translate dropdown contents (especially in Boss Dungeons Page)
        -- because these act as exact database lookup keys for audio files and configuration logic.
        return
    end

    if objectType == "FontString" then
        local parent = type(widget.GetParent) == "function" and widget:GetParent()
        local pType = parent and type(parent.GetObjectType) == "function" and parent:GetObjectType()
        if pType == "DropdownButton" then
            -- USER REQUEST: Bypass translating the text natively displayed on the button surface
            return
        end

        local current = SafeGetText(widget)
        if not current then
            return
        end
        local translated = SafeTranslate(current)
        if not translated then
            return
        end
        if SafeStringsEqual(widget._englishPatchLastSource, current) and SafeStringsEqual(widget._englishPatchLastTranslated, translated) then
            return
        end
        widget._englishPatchLastSource = current
        widget._englishPatchLastTranslated = translated
        if not SafeStringsEqual(translated, current) then
            SafeSetText(widget, translated)
        end
        return
    end

    if objectType == "Button" and type(widget.GetText) == "function" and type(widget.SetText) == "function" then
        local current = SafeGetText(widget)
        if not current then
            return
        end
        local translated = SafeTranslate(current)
        if not translated then
            return
        end
        if SafeStringsEqual(widget._englishPatchLastSource, current) and SafeStringsEqual(widget._englishPatchLastTranslated, translated) then
            return
        end
        widget._englishPatchLastSource = current
        widget._englishPatchLastTranslated = translated
        if not SafeStringsEqual(translated, current) then
            SafeSetText(widget, translated)
        end
        return
    end

    if objectType == "EditBox" and type(widget.GetText) == "function" and type(widget.SetText) == "function" and not widget:HasFocus() then
        local current = SafeGetText(widget)
        if not current then
            return
        end
        local translated = SafeTranslate(current)
        if not translated then
            return
        end
        if SafeStringsEqual(widget._englishPatchLastSource, current) and SafeStringsEqual(widget._englishPatchLastTranslated, translated) then
            return
        end
        widget._englishPatchLastSource = current
        widget._englishPatchLastTranslated = translated
        if not SafeStringsEqual(translated, current) then
            SafeSetText(widget, translated)
        end
    end
end

local trackedDropdowns = setmetatable({}, { __mode = "k" })

local function CanTranslateUiNow()
    return not (type(InCombatLockdown) == "function" and InCombatLockdown())
end

local function RegisterTrackedDropdown(dropdown)
    if type(dropdown) ~= "table" or type(dropdown.GetObjectType) ~= "function" then
        return
    end

    if dropdown:GetObjectType() ~= "DropdownButton" then
        return
    end

    trackedDropdowns[dropdown] = true

    if not dropdown._englishPatchMenuHideHook and type(dropdown.HookScript) == "function" then
        dropdown:HookScript("OnHide", function(self)
            if type(self.CloseMenu) == "function" then
                pcall(self.CloseMenu, self)
            end
        end)
        dropdown._englishPatchMenuHideHook = true
    end
end

local function CloseTrackedDropdownMenus()
    for dropdown in pairs(trackedDropdowns) do
        if type(dropdown) == "table" and type(dropdown.CloseMenu) == "function" then
            pcall(function()
                if type(dropdown.IsMenuOpen) ~= "function" or dropdown:IsMenuOpen() then
                    dropdown:CloseMenu()
                end
            end)
        end
    end
end

local function WrapExwindDropdownFactory(methodName)
    local ui = _G.ExwindTools and _G.ExwindTools.UI
    if not ui or ui["_englishPatchWrapped_" .. methodName] then
        return
    end

    local original = ui[methodName]
    if type(original) ~= "function" then
        return
    end

    ui[methodName] = function(self, ...)
        local dropdown = original(self, ...)
        RegisterTrackedDropdown(dropdown)
        return dropdown
    end

    ui["_englishPatchWrapped_" .. methodName] = true
end

local function InstallDropdownTracking()
    WrapExwindDropdownFactory("CreateDropdown")
    WrapExwindDropdownFactory("CreateLSMDropdown")
    WrapExwindDropdownFactory("CreateLSMTextureDropdown")
    WrapExwindDropdownFactory("CreateLSMSoundDropdown")
    WrapExwindDropdownFactory("CreateMultiSelectDropdown")
end

local function TranslateFrameTree(frame, context)
    if not frame or type(frame) ~= "table" then
        return
    end

    if type(frame.IsShown) == "function" and not frame:IsShown() then
        return
    end

    context = context or { visited = {}, count = 0, max = 15000 }
    local visited = context.visited
    if visited[frame] or context.count >= context.max then
        return
    end
    visited[frame] = true
    context.count = context.count + 1

    RegisterTrackedDropdown(frame)
    TranslateWidgetText(frame)

    if type(frame.GetRegions) == "function" then
        local regions = { frame:GetRegions() }
        for i = 1, #regions do
            if context.count >= context.max then
                break
            end
            TranslateWidgetText(regions[i])
            context.count = context.count + 1
        end
    end

    if type(frame.GetChildren) == "function" then
        local children = { frame:GetChildren() }
        for i = 1, #children do
            if context.count >= context.max then
                break
            end
            TranslateFrameTree(children[i], context)
        end
    end
end

local function TranslateKnownFrames()
    if not CanTranslateUiNow() then
        return
    end

    if _G.ExBoss_MainPanel and _G.ExBoss_MainPanel:IsShown() then
        TranslateFrameTree(_G.ExBoss_MainPanel)
    end
    if _G.ExwindToolsMainFrame and _G.ExwindToolsMainFrame:IsShown() then
        TranslateFrameTree(_G.ExwindToolsMainFrame)
    end
    if _G.ExBossChangelogFrame and _G.ExBossChangelogFrame:IsShown() then
        TranslateFrameTree(_G.ExBossChangelogFrame)
    end
    if _G.ExwindToolsChangelogFrame and _G.ExwindToolsChangelogFrame:IsShown() then
        TranslateFrameTree(_G.ExwindToolsChangelogFrame)
    end
    if _G.ExBoss_MDTOverlay and _G.ExBoss_MDTOverlay:IsShown() then
        TranslateFrameTree(_G.ExBoss_MDTOverlay)
    end
    if _G.ExwindDeathSoundFrame and _G.ExwindDeathSoundFrame:IsShown() then
        TranslateFrameTree(_G.ExwindDeathSoundFrame)
    end
    if _G.StaticPopup1 and _G.StaticPopup1:IsShown() then
        TranslateFrameTree(_G.StaticPopup1)
    end
    if _G.StaticPopup2 and _G.StaticPopup2:IsShown() then
        TranslateFrameTree(_G.StaticPopup2)
    end
    if _G.StaticPopup3 and _G.StaticPopup3:IsShown() then
        TranslateFrameTree(_G.StaticPopup3)
    end
    if _G.StaticPopup4 and _G.StaticPopup4:IsShown() then
        TranslateFrameTree(_G.StaticPopup4)
    end
end

local function ScheduleTranslateBurst(frame)
    if not CanTranslateUiNow() then
        return
    end

    if frame and type(frame) == "table" and type(frame.IsShown) == "function" and frame:IsShown() then
        TranslateFrameTree(frame)
    else
        TranslateKnownFrames()
    end
end

local translateTicker = nil
local hudTranslateTicker = nil

local function StopTranslateTickers()
    if translateTicker then
        translateTicker:Cancel()
        translateTicker = nil
    end
    if hudTranslateTicker then
        hudTranslateTicker:Cancel()
        hudTranslateTicker = nil
    end
end
local function AreConfigPanelsVisible()
    if _G.ExBoss_MainPanel and _G.ExBoss_MainPanel:IsShown() then return true end
    if _G.ExwindToolsMainFrame and _G.ExwindToolsMainFrame:IsShown() then return true end
    return false
end

local function UpdateTranslateTicker()
    local canRun = CanTranslateUiNow()
    if not canRun then
        StopTranslateTickers()
        return
    end

    -- UI ticker: 0.5s for responsive translation when navigating Bosses/Skills
    local isConfigOpen = canRun and AreConfigPanelsVisible()
    if isConfigOpen and not translateTicker then
        translateTicker = C_Timer.NewTicker(0.5, function()
            if _G.ExBoss_MainPanel and _G.ExBoss_MainPanel:IsShown() then
                ScheduleTranslateBurst(_G.ExBoss_MainPanel)
            end
            if _G.ExwindToolsMainFrame and _G.ExwindToolsMainFrame:IsShown() then
                ScheduleTranslateBurst(_G.ExwindToolsMainFrame)
            end
        end)
    elseif not isConfigOpen and translateTicker then
        translateTicker:Cancel()
        translateTicker = nil
    end

    -- Slower HUD ticker: 2.5s for combat elements to save CPU
    local shouldRunHud = canRun and ((_G.ExBoss_MDTOverlay and _G.ExBoss_MDTOverlay:IsShown()) or (_G.ExwindDeathSoundFrame and _G.ExwindDeathSoundFrame:IsShown()))
    if shouldRunHud and not hudTranslateTicker then
        hudTranslateTicker = C_Timer.NewTicker(2.5, function()
            TranslateKnownFrames()
        end)
    elseif not shouldRunHud and hudTranslateTicker then
        hudTranslateTicker:Cancel()
        hudTranslateTicker = nil
    end
end

local function HookFrameOnShow(frame)
    if not frame or frame._englishPatchShowHook then
        return
    end
    frame:HookScript("OnShow", function()
        ScheduleTranslateBurst(frame)
        UpdateTranslateTicker()
    end)
    frame:HookScript("OnHide", function()
        UpdateTranslateTicker()
    end)
    frame._englishPatchShowHook = true
end

local function HookRenderMethod(target, methodName, frameArgIndex, idKey)
    if type(target) ~= "table" then
        return
    end

    local hookKey = idKey or ("_englishPatchHook_" .. tostring(methodName))
    if target[hookKey] or type(target[methodName]) ~= "function" then
        return
    end

    hooksecurefunc(target, methodName, function(_, ...)
        local frame = select(frameArgIndex or 1, ...)
        ScheduleTranslateBurst(frame)
    end)

    target[hookKey] = true
end

local function InstallUiHooks()
    if _G.ExBoss and _G.ExBoss.UI and _G.ExBoss.UI.Panel and type(_G.ExBoss.UI.Panel.Toggle) == "function" and not _G.ExBoss.UI.Panel._englishPatchToggleHook then
        hooksecurefunc(_G.ExBoss.UI.Panel, "Toggle", function()
            ScheduleTranslateBurst(_G.ExBoss_MainPanel)
            C_Timer.After(0, UpdateTranslateTicker)
        end)
        _G.ExBoss.UI.Panel._englishPatchToggleHook = true
    end

    if _G.ExwindTools and _G.ExwindTools.UI and type(_G.ExwindTools.UI.Toggle) == "function" and not _G.ExwindTools.UI._englishPatchToggleHook then
        hooksecurefunc(_G.ExwindTools.UI, "Toggle", function()
            ScheduleTranslateBurst(_G.ExwindToolsMainFrame)
            C_Timer.After(0, UpdateTranslateTicker)
        end)
        _G.ExwindTools.UI._englishPatchToggleHook = true
    end

    if _G.ExwindTools and _G.ExwindTools.UI and type(_G.ExwindTools.UI.RefreshContent) == "function" and not _G.ExwindTools.UI._englishPatchRefreshHook then
        hooksecurefunc(_G.ExwindTools.UI, "RefreshContent", function()
            ScheduleTranslateBurst(_G.ExwindToolsMainFrame)
        end)
        _G.ExwindTools.UI._englishPatchRefreshHook = true
    end

    local exBossPanel = _G.ExBoss and _G.ExBoss.UI and _G.ExBoss.UI.Panel
    if exBossPanel then
        HookRenderMethod(exBossPanel.VoicePackPage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.OtherVoicePage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.ImportExportPage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.FixedTimelinePage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.GlobalSettingsPage, "Render", 2, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.GeneralOverviewPage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.GeneralColorPage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.CountdownPage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.PrivateAuraPage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.PrivateAuraMonitorPage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.BossPage, "Render", 2, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.TimerBarPage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.BunBarPage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.FlashTextPage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.ConditionsPage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.SpellPage, "Render", 1, "_englishPatchRenderHook")
        HookRenderMethod(exBossPanel.RingProgressPage, "Render", 1, "_englishPatchRenderHook")
    end

    HookFrameOnShow(_G.ExBoss_MainPanel)
    HookFrameOnShow(_G.ExwindToolsMainFrame)

    if _G.ExBoss_MDTOverlay then
        HookFrameOnShow(_G.ExBoss_MDTOverlay)
    end
    if _G.ExwindDeathSoundFrame then
        HookFrameOnShow(_G.ExwindDeathSoundFrame)
    end

    if _G.ExBoss and _G.ExBoss.MDT and _G.ExBoss.MDT.Overlay and type(_G.ExBoss.MDT.Overlay.Refresh) == "function" and not _G.ExBoss.MDT.Overlay._englishPatchRefreshHook then
        hooksecurefunc(_G.ExBoss.MDT.Overlay, "Refresh", function()
            ScheduleTranslateBurst(_G.ExBoss_MDTOverlay)
            C_Timer.After(0, UpdateTranslateTicker)
        end)
        _G.ExBoss.MDT.Overlay._englishPatchRefreshHook = true
    end

    if _G.UnitPopup_ShowMenu and not _G.EXBoss_EnglishPatch_UnitPopupHooked then
        hooksecurefunc("UnitPopup_ShowMenu", CloseTrackedDropdownMenus)
        _G.EXBoss_EnglishPatch_UnitPopupHooked = true
    end

    if _G.FriendsFrame_ShowDropdown and not _G.EXBoss_EnglishPatch_FriendsPopupHooked then
        hooksecurefunc("FriendsFrame_ShowDropdown", CloseTrackedDropdownMenus)
        _G.EXBoss_EnglishPatch_FriendsPopupHooked = true
    end
end

local function RefreshCaches()
    ForceEnglishVoiceLabels()
    PatchExwindDatabases()

    if _G.EXBossData and type(_G.EXBossData.TouchEventConfig) == "function" then
        _G.EXBossData.TouchEventConfig()
    end
    if _G.EXBossData and type(_G.EXBossData.GetEventConfigRoot) == "function" then
        local root = _G.EXBossData.GetEventConfigRoot()
        if type(root) == "table" then
            for rawEventID, row in pairs(root) do
                FixEventConfigRow(rawEventID, row)
            end
        end
    end
    if _G.EXBossData and type(_G.EXBossData.RebuildTimelineBosses) == "function" then
        _G.EXBossData.RebuildTimelineBosses()
    end
    PatchTimelineBosses()

    local engine = _G.ExBoss and _G.ExBoss.Voice and _G.ExBoss.Voice.Engine
    if engine and type(engine.InvalidateLabelCache) == "function" then
        engine:InvalidateLabelCache()
    end
end

local applied = false
local function ApplyEnglishPatch(forceFull)
    ForceEnglishVoiceLabels()

    if forceFull or not applied then
        ForceLocales()
        PatchLocales()
        WrapLocaleRoot(_G.ExBoss and _G.ExBoss.Locale)
        WrapLocaleRoot(_G.ExwindLocale)
        WrapLocaleProxy(_G.ExBoss and _G.ExBoss.L)
        WrapLocaleProxy(_G.ExwindTools and _G.ExwindTools.L)
        
        -- Yield CPU to prevent 'script ran too long' timeouts during heavy UI/Audio setups
        C_Timer.After(0.1, function()
            if not CanTranslateUiNow() then
                StopTranslateTickers()
                return
            end
            PatchEncounterData()
            PatchPrivateAuraData()
            PatchAuthorPresets()
            PatchMetadataTables()
            WrapExBossDataApi()
            WrapAddOnMetadata()
            
            C_Timer.After(0.1, function()
                if not CanTranslateUiNow() then
                    StopTranslateTickers()
                    return
                end
                RegisterSoundAliases()
                WrapLabelCatalog()
                InstallDropdownTracking()
                
                C_Timer.After(0.1, function()
                    if not CanTranslateUiNow() then
                        StopTranslateTickers()
                        return
                    end
                    RefreshCaches()
                    InstallUiHooks()
                    applied = true
                    
                    RefreshDynamicLabelTranslations()
                    ForceEnglishVoiceLabels()
                    if CanTranslateUiNow() then
                        TranslateKnownFrames()
                        UpdateTranslateTicker()
                    else
                        StopTranslateTickers()
                    end
                end)
            end)
        end)
    else
        RefreshDynamicLabelTranslations()
        ForceEnglishVoiceLabels()
        if CanTranslateUiNow() then
            TranslateKnownFrames()
            UpdateTranslateTicker()
        else
            StopTranslateTickers()
        end
    end
end

local applyPatchQueued = false
local applyPatchNeedsFull = false
local function QueueApplyEnglishPatch(delay, forceFull)
    if forceFull then
        applyPatchNeedsFull = true
    end
    if applyPatchQueued then
        return
    end
    applyPatchQueued = true
    C_Timer.After(delay or 0, function()
        applyPatchQueued = false
        local runFull = applyPatchNeedsFull or not applied
        applyPatchNeedsFull = false
        if not CanTranslateUiNow() then
            if runFull then
                applyPatchNeedsFull = true
            end
            StopTranslateTickers()
            return
        end
        ApplyEnglishPatch(runFull)
    end)
end

local languagePickerFrame

local PATCH_ICON = "Interface\\AddOns\\EXwindtools_EXboss_EnglishPatch\\EXenUS.png"
local KULLTHRANUI_ICON = "Interface\\AddOns\\KullThranUI\\Libraries\\KUITextures\\KUILogoCuadrado.PNG"
local KULLTHRANUI_CURSE_URL = "https://www.curseforge.com/wow/addons/kui-kullthranui"
local KUI_TEXTURE_BG = "Interface\\AddOns\\KullThranUI\\Libraries\\KUITextures\\Background.png"

local KUI_STYLE = {
    accent = { r = 1.00, g = 0.08, b = 0.34 },
    border = { r = 1.00, g = 0.18, b = 0.39 },
    bg = { r = 0.04, g = 0.02, b = 0.03, a = 0.97 },
    panel = { r = 0.065, g = 0.045, b = 0.055, a = 0.94 },
    text = { r = 0.98, g = 0.94, b = 0.96 },
    muted = { r = 0.74, g = 0.72, b = 0.76 },
}

local function ApplyKuiBackdrop(frame, r, g, b, a, borderAlpha)
    if not frame or not frame.SetBackdrop then
        return
    end
    frame:SetBackdrop({
        bgFile = "Interface\\Buttons\\WHITE8X8",
        edgeFile = "Interface\\Buttons\\WHITE8X8",
        tile = true,
        tileSize = 16,
        edgeSize = 1,
        insets = { left = 1, right = 1, top = 1, bottom = 1 },
    })
    frame:SetBackdropColor(r or KUI_STYLE.bg.r, g or KUI_STYLE.bg.g, b or KUI_STYLE.bg.b, a or KUI_STYLE.bg.a)
    frame:SetBackdropBorderColor(KUI_STYLE.border.r, KUI_STYLE.border.g, KUI_STYLE.border.b, borderAlpha or 0.72)
end

local function SetKuiTextColor(fontString, color, alpha)
    if fontString and fontString.SetTextColor then
        local c = color or KUI_STYLE.text
        fontString:SetTextColor(c.r, c.g, c.b, alpha or 1)
    end
end

local function CreateKuiButton(parent, text, width, height)
    local btn = CreateFrame("Button", nil, parent, "BackdropTemplate")
    btn:SetSize(width or 132, height or 28)
    ApplyKuiBackdrop(btn, 0.08, 0.055, 0.065, 0.98, 0.48)

    local glow = btn:CreateTexture(nil, "ARTWORK")
    glow:SetPoint("BOTTOMLEFT", btn, "BOTTOMLEFT", 3, 3)
    glow:SetPoint("BOTTOMRIGHT", btn, "BOTTOMRIGHT", -3, 3)
    glow:SetHeight(2)
    glow:SetColorTexture(KUI_STYLE.accent.r, KUI_STYLE.accent.g, KUI_STYLE.accent.b, 0.68)
    btn.accentLine = glow

    local label = btn:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
    label:SetAllPoints(btn)
    label:SetJustifyH("CENTER")
    label:SetJustifyV("MIDDLE")
    label:SetText(text or "")
    SetKuiTextColor(label, KUI_STYLE.text)
    btn.label = label

    btn:SetScript("OnEnter", function(self)
        ApplyKuiBackdrop(self, 0.11, 0.065, 0.08, 1, 1)
        if self.accentLine then self.accentLine:SetAlpha(1) end
    end)
    btn:SetScript("OnLeave", function(self)
        ApplyKuiBackdrop(self, 0.08, 0.055, 0.065, 0.98, 0.48)
        if self.accentLine then self.accentLine:SetAlpha(0.68) end
    end)
    return btn
end

local function GetLanguagePickerCopy()
    if GetSelectedPatchLanguage() == LANGUAGE_OPTION_SPANISH then
        return {
            title = "Parche EXwindTools + EXBoss",
            body = "Elige el idioma de los textos para ExwindTools y EXBoss.",
            note = "El audio permanece en ingles.",
            current = "Idioma actual: Espanol",
            command = "Escribe /exlanguage para reabrir esta ventana.",
            doNotShow = "No mostrar al iniciar",
            spanish = "Espanol",
            english = "English",
            kui = "Recomendado: KullThranUI",
            kuiTooltip = "Haz clic para ver el enlace de descarga en CurseForge.",
            popupTitle = "Descargar KullThranUI",
            popupBody = "Copia este enlace y pegalo en tu navegador:",
            popupClose = "Cerrar",
        }
    end

    return {
        title = "EXwindTools + EXBoss Patch",
        body = "Choose the text language for ExwindTools and EXBoss.",
        note = "Audio stays in English.",
        current = "Current language: English",
        command = "Type /exlanguage to reopen this window anytime.",
        doNotShow = "Do not show on login",
        spanish = "Espanol",
        english = "English",
        kui = "Recommended: KullThranUI",
        kuiTooltip = "Click to show the CurseForge download link.",
        popupTitle = "Download KullThranUI",
        popupBody = "Copy this link and paste it into your browser:",
        popupClose = "Close",
    }
end

local kuiDownloadFrame
local function ShowKullThranUiDownloadPopup()
    local copy = GetLanguagePickerCopy()
    if not kuiDownloadFrame then
        local popup = CreateFrame("Frame", "EXEnglishPatchKullThranUIDownload", UIParent, "BackdropTemplate")
        popup:SetSize(430, 158)
        popup:SetPoint("CENTER", UIParent, "CENTER", 0, 28)
        popup:SetFrameStrata("FULLSCREEN_DIALOG")
        popup:SetToplevel(true)
        popup:SetFrameLevel(200)
        popup:EnableMouse(true)
        ApplyKuiBackdrop(popup, KUI_STYLE.bg.r, KUI_STYLE.bg.g, KUI_STYLE.bg.b, 0.98, 0.85)

        local topLine = popup:CreateTexture(nil, "ARTWORK")
        topLine:SetPoint("TOPLEFT", popup, "TOPLEFT", 14, -12)
        topLine:SetPoint("TOPRIGHT", popup, "TOPRIGHT", -14, -12)
        topLine:SetHeight(2)
        topLine:SetColorTexture(KUI_STYLE.accent.r, KUI_STYLE.accent.g, KUI_STYLE.accent.b, 0.9)

        local title = popup:CreateFontString(nil, "OVERLAY", "GameFontHighlightLarge")
        title:SetPoint("TOP", popup, "TOP", 0, -25)
        title:SetWidth(370)
        title:SetJustifyH("CENTER")
        SetKuiTextColor(title, KUI_STYLE.text)
        popup.titleText = title

        local body = popup:CreateFontString(nil, "OVERLAY", "GameFontNormal")
        body:SetPoint("TOP", title, "BOTTOM", 0, -15)
        body:SetWidth(370)
        body:SetJustifyH("CENTER")
        SetKuiTextColor(body, KUI_STYLE.muted)
        popup.bodyText = body

        local editBox = CreateFrame("EditBox", nil, popup, "InputBoxTemplate")
        editBox:SetSize(354, 24)
        editBox:SetPoint("TOP", body, "BOTTOM", 0, -12)
        editBox:SetAutoFocus(false)
        editBox:SetText(KULLTHRANUI_CURSE_URL)
        editBox:SetCursorPosition(0)
        editBox:SetScript("OnEscapePressed", function(self) self:ClearFocus() end)
        editBox:SetScript("OnEditFocusGained", function(self) self:HighlightText() end)
        popup.urlBox = editBox

        local closeButton = CreateKuiButton(popup, "Close", 104, 26)
        closeButton:SetPoint("BOTTOM", popup, "BOTTOM", 0, 15)
        closeButton:SetScript("OnClick", function() popup:Hide() end)
        popup.closeButton = closeButton

        kuiDownloadFrame = popup
    end

    kuiDownloadFrame.titleText:SetText(copy.popupTitle)
    kuiDownloadFrame.bodyText:SetText(copy.popupBody)
    if kuiDownloadFrame.closeButton and kuiDownloadFrame.closeButton.label then
        kuiDownloadFrame.closeButton.label:SetText(copy.popupClose)
    end
    kuiDownloadFrame.urlBox:SetText(KULLTHRANUI_CURSE_URL)
    kuiDownloadFrame:SetFrameStrata("FULLSCREEN_DIALOG")
    kuiDownloadFrame:SetFrameLevel((languagePickerFrame and languagePickerFrame:GetFrameLevel() or 100) + 80)
    kuiDownloadFrame:Raise()
    kuiDownloadFrame:Show()
    kuiDownloadFrame.urlBox:SetFocus()
    kuiDownloadFrame.urlBox:HighlightText()
end

local function RefreshLanguagePickerFrame()
    local frame = languagePickerFrame
    if not frame then
        return
    end

    local copy = GetLanguagePickerCopy()
    if frame.titleText then frame.titleText:SetText(copy.title) end
    if frame.versionText then frame.versionText:SetText("v" .. PATCH_VERSION) end
    if frame.bodyText then frame.bodyText:SetText(copy.body) end
    if frame.noteText then frame.noteText:SetText(copy.note) end
    if frame.currentText then frame.currentText:SetText(copy.current) end
    if frame.cmdHintText then frame.cmdHintText:SetText(copy.command) end
    if frame.doNotShowLabel then frame.doNotShowLabel:SetText(copy.doNotShow) end
    if frame.kuiText then frame.kuiText:SetText(copy.kui) end
    if frame.spanishButton and frame.spanishButton.label then frame.spanishButton.label:SetText(copy.spanish) end
    if frame.englishButton and frame.englishButton.label then frame.englishButton.label:SetText(copy.english) end
end

local function CreateLanguagePickerFrame()
    if languagePickerFrame then
        RefreshLanguagePickerFrame()
        return languagePickerFrame
    end

    local frame = CreateFrame("Frame", "EXEnglishPatchLanguagePicker", UIParent, "BackdropTemplate")
    frame:SetSize(460, 360)
    frame:SetPoint("CENTER", UIParent, "CENTER", 0, 70)
    frame:SetFrameStrata("DIALOG")
    frame:SetToplevel(true)
    frame:SetMovable(true)
    frame:EnableMouse(true)
    frame:RegisterForDrag("LeftButton")
    frame:SetClampedToScreen(true)
    frame:SetScript("OnDragStart", frame.StartMoving)
    frame:SetScript("OnDragStop", frame.StopMovingOrSizing)
    ApplyKuiBackdrop(frame, KUI_STYLE.bg.r, KUI_STYLE.bg.g, KUI_STYLE.bg.b, KUI_STYLE.bg.a, 0.88)

    local bg = frame:CreateTexture(nil, "BACKGROUND")
    bg:SetPoint("TOPLEFT", frame, "TOPLEFT", 2, -2)
    bg:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -2, 2)
    bg:SetTexture(KUI_TEXTURE_BG)
    bg:SetAlpha(0.16)
    frame.bgTexture = bg

    local header = CreateFrame("Frame", nil, frame, "BackdropTemplate")
    header:SetPoint("TOPLEFT", frame, "TOPLEFT", 12, -12)
    header:SetPoint("TOPRIGHT", frame, "TOPRIGHT", -12, -12)
    header:SetHeight(72)
    ApplyKuiBackdrop(header, 0.075, 0.035, 0.055, 0.96, 0.42)
    frame.header = header

    local headerAccent = header:CreateTexture(nil, "ARTWORK")
    headerAccent:SetPoint("BOTTOMLEFT", header, "BOTTOMLEFT", 6, 5)
    headerAccent:SetPoint("BOTTOMRIGHT", header, "BOTTOMRIGHT", -6, 5)
    headerAccent:SetHeight(2)
    headerAccent:SetColorTexture(KUI_STYLE.accent.r, KUI_STYLE.accent.g, KUI_STYLE.accent.b, 0.9)

    local logo = header:CreateTexture(nil, "ARTWORK")
    logo:SetSize(44, 44)
    logo:SetPoint("LEFT", header, "LEFT", 14, 0)
    logo:SetTexture(PATCH_ICON)
    logo:SetTexCoord(0.08, 0.92, 0.08, 0.92)
    frame.patchIcon = logo


    local title = header:CreateFontString(nil, "OVERLAY", "GameFontHighlightLarge")
    title:SetPoint("LEFT", logo, "RIGHT", 12, 8)
    title:SetPoint("RIGHT", header, "RIGHT", -18, 8)
    title:SetJustifyH("LEFT")
    SetKuiTextColor(title, KUI_STYLE.text)
    frame.titleText = title

    local version = header:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
    version:SetPoint("LEFT", logo, "RIGHT", 13, -14)
    version:SetWidth(90)
    version:SetJustifyH("LEFT")
    version:SetTextColor(KUI_STYLE.accent.r, KUI_STYLE.accent.g, KUI_STYLE.accent.b, 1)
    frame.versionText = version

    local content = CreateFrame("Frame", nil, frame, "BackdropTemplate")
    content:SetPoint("TOPLEFT", header, "BOTTOMLEFT", 0, -10)
    content:SetPoint("TOPRIGHT", header, "BOTTOMRIGHT", 0, -10)
    content:SetHeight(108)
    ApplyKuiBackdrop(content, KUI_STYLE.panel.r, KUI_STYLE.panel.g, KUI_STYLE.panel.b, KUI_STYLE.panel.a, 0.34)
    frame.contentPanel = content

    local body = content:CreateFontString(nil, "OVERLAY", "GameFontHighlight")
    body:SetPoint("TOP", content, "TOP", 0, -17)
    body:SetWidth(380)
    body:SetJustifyH("CENTER")
    SetKuiTextColor(body, KUI_STYLE.text)
    frame.bodyText = body

    local note = content:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
    note:SetPoint("TOP", body, "BOTTOM", 0, -12)
    note:SetWidth(380)
    note:SetJustifyH("CENTER")
    note:SetTextColor(KUI_STYLE.accent.r, KUI_STYLE.accent.g, KUI_STYLE.accent.b, 1)
    frame.noteText = note

    local currentText = content:CreateFontString(nil, "OVERLAY", "GameFontNormal")
    currentText:SetPoint("TOP", note, "BOTTOM", 0, -11)
    currentText:SetWidth(380)
    currentText:SetJustifyH("CENTER")
    currentText:SetTextColor(1, 0.88, 0.24, 1)
    frame.currentText = currentText

    local kuiLink = CreateFrame("Button", nil, frame, "BackdropTemplate")
    kuiLink:SetSize(354, 32)
    kuiLink:SetPoint("TOP", content, "BOTTOM", 0, -12)
    ApplyKuiBackdrop(kuiLink, 0.065, 0.045, 0.055, 0.94, 0.38)
    kuiLink:SetScript("OnClick", ShowKullThranUiDownloadPopup)
    kuiLink:SetScript("OnEnter", function(self)
        ApplyKuiBackdrop(self, 0.095, 0.055, 0.072, 0.98, 0.86)
        GameTooltip:SetOwner(self, "ANCHOR_TOP")
        GameTooltip:SetText(GetLanguagePickerCopy().kuiTooltip)
        GameTooltip:Show()
    end)
    kuiLink:SetScript("OnLeave", function(self)
        ApplyKuiBackdrop(self, 0.065, 0.045, 0.055, 0.94, 0.38)
        GameTooltip:Hide()
    end)
    frame.kuiLink = kuiLink

    local kuiIcon = kuiLink:CreateTexture(nil, "ARTWORK")
    kuiIcon:SetSize(20, 20)
    kuiIcon:SetPoint("LEFT", kuiLink, "LEFT", 44, 0)
    kuiIcon:SetTexture(KULLTHRANUI_ICON)
    kuiIcon:SetTexCoord(0.08, 0.92, 0.08, 0.92)
    frame.kuiIcon = kuiIcon

    local kuiText = kuiLink:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
    kuiText:SetPoint("LEFT", kuiIcon, "RIGHT", 8, 0)
    kuiText:SetPoint("RIGHT", kuiLink, "RIGHT", -20, 0)
    kuiText:SetJustifyH("LEFT")
    kuiText:SetWordWrap(false)
    SetKuiTextColor(kuiText, KUI_STYLE.text)
    frame.kuiText = kuiText

    local spanishButton = CreateKuiButton(frame, "Espanol", 142, 30)
    spanishButton:SetPoint("TOPLEFT", kuiLink, "BOTTOMLEFT", 0, -12)
    spanishButton:SetScript("OnClick", function()
        SetSelectedPatchLanguage(LANGUAGE_OPTION_SPANISH)
        frame:Hide()
        ReloadUI()
    end)
    frame.spanishButton = spanishButton

    local englishButton = CreateKuiButton(frame, "English", 142, 30)
    englishButton:SetPoint("TOPRIGHT", kuiLink, "BOTTOMRIGHT", 0, -12)
    englishButton:SetScript("OnClick", function()
        SetSelectedPatchLanguage(LANGUAGE_OPTION_ENGLISH)
        frame:Hide()
        ReloadUI()
    end)
    frame.englishButton = englishButton

    local cmdHint = frame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
    cmdHint:SetPoint("BOTTOM", frame, "BOTTOM", 0, 47)
    cmdHint:SetWidth(380)
    cmdHint:SetJustifyH("CENTER")
    cmdHint:SetTextColor(0.00, 0.75, 1.00, 1)
    frame.cmdHintText = cmdHint

    local doNotShow = CreateFrame("CheckButton", nil, frame, "UICheckButtonTemplate")
    doNotShow:SetSize(24, 24)
    doNotShow:SetPoint("BOTTOMLEFT", frame, "BOTTOMLEFT", 28, 14)
    frame.doNotShowCheck = doNotShow

    local doNotShowLabel = frame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
    doNotShowLabel:SetPoint("LEFT", doNotShow, "RIGHT", 4, 0)
    doNotShowLabel:SetPoint("RIGHT", frame, "RIGHT", -28, 0)
    doNotShowLabel:SetJustifyH("LEFT")
    SetKuiTextColor(doNotShowLabel, KUI_STYLE.text)
    frame.doNotShowLabel = doNotShowLabel

    local closeButton = CreateFrame("Button", nil, frame, "UIPanelCloseButton")
    closeButton:SetPoint("TOPRIGHT", frame, "TOPRIGHT", -2, -2)
    closeButton:SetScript("OnClick", function()
        if doNotShow:GetChecked() then
            GetPatchDB().lastPromptVersion = PATCH_VERSION
        end
        frame:Hide()
    end)

    frame:SetScript("OnShow", RefreshLanguagePickerFrame)
    frame:Hide()

    languagePickerFrame = frame
    RefreshLanguagePickerFrame()
    return frame
end
local function ShowLanguagePicker()
    local frame = CreateLanguagePickerFrame()
    if not frame then
        return
    end

    RefreshLanguagePickerFrame()
    frame:Show()
    if frame.Raise then
        frame:Raise()
    end
end

SLASH_EXLANGUAGE1 = "/exlanguage"
SlashCmdList["EXLANGUAGE"] = function()
    ShowLanguagePicker()
end

local eventFrame = CreateFrame("Frame")
eventFrame:RegisterEvent("ADDON_LOADED")
eventFrame:RegisterEvent("PLAYER_LOGIN")
eventFrame:RegisterEvent("PLAYER_ENTERING_WORLD")
eventFrame:RegisterEvent("PLAYER_REGEN_DISABLED")
eventFrame:RegisterEvent("PLAYER_REGEN_ENABLED")
eventFrame:SetScript("OnEvent", function(_, event, arg1)
    if event == "ADDON_LOADED" then
        local addonName = SafeLower(arg1) or ""
        if TARGET_ADDONS[addonName] then
            QueueApplyEnglishPatch(0.05, true)
        end
        return
    end

    if event == "PLAYER_LOGIN" then
        QueueApplyEnglishPatch(0.05, true)
        print("|cff00ccffEXwindtools & EXBoss English Patch|r v" .. PATCH_VERSION .. " loaded")
        print("Type |cff00ccff/exlanguage|r to open translation options")
        if GetPatchDB().lastPromptVersion ~= PATCH_VERSION then
            C_Timer.After(1, function()
                if GetPatchDB().lastPromptVersion ~= PATCH_VERSION then
                    ShowLanguagePicker()
                end
            end)
        end
        return
    end

    if event == "PLAYER_REGEN_DISABLED" then
        StopTranslateTickers()
        return
    end

    if event == "PLAYER_REGEN_ENABLED" then
        QueueApplyEnglishPatch(0, false)
        C_Timer.After(0.05, UpdateTranslateTicker)
        return
    end

    QueueApplyEnglishPatch(0.05, true)
end)

C_Timer.After(0, function()
    QueueApplyEnglishPatch(0, true)
end)

