From 5fdc043691887561aedacb63b20c1ebc274f53b2 Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Thu, 6 Aug 2026 12:19:46 +0900 Subject: [PATCH 1/9] Update EllesmereUIAuraBuffReminders.lua --- EllesmereUIAuraBuffReminders/EllesmereUIAuraBuffReminders.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EllesmereUIAuraBuffReminders/EllesmereUIAuraBuffReminders.lua b/EllesmereUIAuraBuffReminders/EllesmereUIAuraBuffReminders.lua index 846c6218..e7f1bea3 100644 --- a/EllesmereUIAuraBuffReminders/EllesmereUIAuraBuffReminders.lua +++ b/EllesmereUIAuraBuffReminders/EllesmereUIAuraBuffReminders.lua @@ -4001,7 +4001,7 @@ local SetupReadyCheckManaWarning = function() ag:SetLooping("REPEAT") warnFrame._breathe = ag EABR.RCWApplySettings() - warnFS:SetText("LOW MANA") + warnFS:SetText(EllesmereUI.L("LOW MANA")) end -- Only listen for READY_CHECK when out of combat AND in a raid. From b084702cc4c06f18c90df2c5cacb9a33ec5e41eb Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Thu, 6 Aug 2026 12:20:40 +0900 Subject: [PATCH 2/9] Update EllesmereUIQoL.lua --- EllesmereUIQoL/EllesmereUIQoL.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/EllesmereUIQoL/EllesmereUIQoL.lua b/EllesmereUIQoL/EllesmereUIQoL.lua index 5a951069..ea50b257 100644 --- a/EllesmereUIQoL/EllesmereUIQoL.lua +++ b/EllesmereUIQoL/EllesmereUIQoL.lua @@ -2277,7 +2277,7 @@ do local fs = durWarnOverlay:CreateFontString(nil, "OVERLAY") fs:SetFont(EllesmereUI.EXPRESSWAY or "Fonts\\FRIZQT__.TTF", 18, EllesmereUI.GetFontOutlineFlag("extras")) fs:SetPoint("CENTER") - fs:SetText("Low Durability") + fs:SetText(EllesmereUI.L("Low Durability")) durWarnOverlay._text = fs local function ApplySettings() @@ -2319,7 +2319,7 @@ do durWarnOverlay._show = function(pct) ApplySettings() - durWarnOverlay._text:SetText("Low Durability (" .. math.floor(pct) .. "%)") + durWarnOverlay._text:SetText(EllesmereUI.Lf("Low Durability (%d%%)", math.floor(pct))) durWarnOverlay:Show() ag:Play() end @@ -2340,7 +2340,7 @@ do EllesmereUI._durWarnPreview = function() CreateDurabilityWarning() durWarnOverlay._show(25) - durWarnOverlay._text:SetText("Low Durability (Preview)") + durWarnOverlay._text:SetText(EllesmereUI.L("Low Durability (Preview)")) end EllesmereUI._durWarnHidePreview = function() From 2104441f6a343f5c8569ab24ab87da31e6608e26 Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Thu, 6 Aug 2026 12:21:23 +0900 Subject: [PATCH 3/9] Update EUI_AuraBuffReminders_Options.lua --- EllesmereUIAuraBuffReminders/EUI_AuraBuffReminders_Options.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EllesmereUIAuraBuffReminders/EUI_AuraBuffReminders_Options.lua b/EllesmereUIAuraBuffReminders/EUI_AuraBuffReminders_Options.lua index d48ba4bb..1d804a80 100644 --- a/EllesmereUIAuraBuffReminders/EUI_AuraBuffReminders_Options.lua +++ b/EllesmereUIAuraBuffReminders/EUI_AuraBuffReminders_Options.lua @@ -189,7 +189,7 @@ initFrame:SetScript("OnEvent", function(self) if co and co.enabled and co.enabled.weapon_enchant then local WEI = _G._EABR_WEAPON_ENCHANT_ITEMS or {} if #WEI > 0 then - icons[#icons+1] = { texture = WEI[1].icon or 134400, label = "Weapon", cat = "consumable", itemKey = "weapon_enchant" } + icons[#icons+1] = { texture = WEI[1].icon or 134400, label = EllesmereUI.L("Weapon"), cat = "consumable", itemKey = "weapon_enchant" } end end end From 684f9b92d3987f2a2f2229d44856aff2d3ac23f3 Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Thu, 6 Aug 2026 12:21:56 +0900 Subject: [PATCH 4/9] Update EUI_QoL_Options.lua --- EllesmereUIQoL/EUI_QoL_Options.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EllesmereUIQoL/EUI_QoL_Options.lua b/EllesmereUIQoL/EUI_QoL_Options.lua index 96e85cc3..250862c7 100644 --- a/EllesmereUIQoL/EUI_QoL_Options.lua +++ b/EllesmereUIQoL/EUI_QoL_Options.lua @@ -1104,7 +1104,7 @@ initFrame:SetScript("OnEvent", function(self) kbLbl:SetPoint("CENTER") local function FormatKey(key) - if not key then return "Not Bound" end + if not key then return EllesmereUI.L("Not Bound") end local parts = {} for mod in key:gmatch("(%u+)%-") do parts[#parts + 1] = mod:sub(1, 1) .. mod:sub(2):lower() From e79c2bda12689659aa1fafa653bead6ec58d2451 Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Thu, 6 Aug 2026 12:22:27 +0900 Subject: [PATCH 5/9] Update EUI_QuestTracker_Options.lua --- EllesmereUIQuestTracker/EUI_QuestTracker_Options.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EllesmereUIQuestTracker/EUI_QuestTracker_Options.lua b/EllesmereUIQuestTracker/EUI_QuestTracker_Options.lua index cb41232b..e837e900 100644 --- a/EllesmereUIQuestTracker/EUI_QuestTracker_Options.lua +++ b/EllesmereUIQuestTracker/EUI_QuestTracker_Options.lua @@ -436,7 +436,7 @@ initFrame:SetScript("OnEvent", function(self) kbLbl:SetPoint("CENTER") local function FormatKey(key) - if not key or key == "" then return "Not Bound" end + if not key or key == "" then return EllesmereUI.L("Not Bound") end local parts = {} for mod in key:gmatch("(%u+)%-") do parts[#parts + 1] = mod:sub(1, 1) .. mod:sub(2):lower() From 0ae837f7a6f708d78a8309fcab30435c4ed55981 Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Thu, 6 Aug 2026 12:23:14 +0900 Subject: [PATCH 6/9] Update EllesmereUIActionBars.lua --- .../EllesmereUIActionBars.lua | 51 +++++++++++-------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/EllesmereUIActionBars/EllesmereUIActionBars.lua b/EllesmereUIActionBars/EllesmereUIActionBars.lua index bdd969c8..147b734c 100644 --- a/EllesmereUIActionBars/EllesmereUIActionBars.lua +++ b/EllesmereUIActionBars/EllesmereUIActionBars.lua @@ -14197,10 +14197,10 @@ local function UpdateXPBar() if restedXP > 0 then if showRawValues then - strRested = format(" (Rested: %s)", AbbreviateLargeNumbers(restedXP)) + strRested = format(EllesmereUI.L(" (Rested: %s)"), AbbreviateLargeNumbers(restedXP)) else local restedPct = (restedXP / maxXP) * 100 - strRested = format(" (Rested: %.1f%%)", restedPct) + strRested = format(EllesmereUI.L(" (Rested: %.1f%%)"), restedPct) end end @@ -14241,12 +14241,12 @@ local function CreateXPBar() local restedXP = GetXPExhaustion() or 0 local pct = (currentXP / maxXP) * 100 local remain = maxXP - currentXP - GameTooltip:AddLine("Experience", 1, 1, 1) - GameTooltip:AddDoubleLine("Level", tostring(UnitLevel("player")), 1, 1, 1, 1, 1, 1) - GameTooltip:AddDoubleLine("XP", format("%s / %s (%.1f%%)", BreakUpLargeNumbers(currentXP), BreakUpLargeNumbers(maxXP), pct), 1, 1, 1, 1, 1, 1) - GameTooltip:AddDoubleLine("Remaining", BreakUpLargeNumbers(remain), 1, 1, 1, 1, 1, 1) + GameTooltip:AddLine(EllesmereUI.L("Experience"), 1, 1, 1) + GameTooltip:AddDoubleLine(EllesmereUI.L("Level"), tostring(UnitLevel("player")), 1, 1, 1, 1, 1, 1) + GameTooltip:AddDoubleLine(EllesmereUI.L("XP"), format("%s / %s (%.1f%%)", BreakUpLargeNumbers(currentXP), BreakUpLargeNumbers(maxXP), pct), 1, 1, 1, 1, 1, 1) + GameTooltip:AddDoubleLine(EllesmereUI.L("Remaining"), BreakUpLargeNumbers(remain), 1, 1, 1, 1, 1, 1) if restedXP > 0 then - GameTooltip:AddDoubleLine("Rested", format("+%s (%.1f%%)", BreakUpLargeNumbers(restedXP), (restedXP / maxXP) * 100), 1, 1, 1, 1, 1, 1) + GameTooltip:AddDoubleLine(EllesmereUI.L("Rested"), format("+%s (%.1f%%)", BreakUpLargeNumbers(restedXP), (restedXP / maxXP) * 100), 1, 1, 1, 1, 1, 1) end GameTooltip:Show() end) @@ -14308,7 +14308,7 @@ local function UpdateRepBar() local paragonVal, paragonThreshold = C_Reputation.GetFactionParagonInfo(factionID) if paragonVal and paragonThreshold then isParagon = true - standing = "Paragon" + standing = EllesmereUI.L("Paragon") currentStanding = paragonVal % paragonThreshold currentReactionThreshold = 0 nextReactionThreshold = paragonThreshold @@ -14326,7 +14326,7 @@ local function UpdateRepBar() return end reaction = 10 - standing = "Renown" + standing = EllesmereUI.L("Renown") currentReactionThreshold = 0 nextReactionThreshold = majorData.renownLevelThreshold currentStanding = majorData.renownReputationEarned or 0 @@ -14354,6 +14354,11 @@ local function UpdateRepBar() bar:SetValue(current) local pct = (current / maximum) * 100 + -- The tooltip must show the same numbers the bar shows. Recomputing them + -- from the raw watched-faction payload there breaks on paragon/renown + -- factions (negative reputation, wrong standing), so stash the resolved + -- values for the OnEnter handler below. + frame._tipStanding, frame._tipCurrent, frame._tipMaximum = standing, current, maximum text:SetText(format("%s: %.0f%% [%s]", name, pct, standing)) -- Auto-size text if bar is too narrow @@ -14377,14 +14382,20 @@ local function CreateRepBar() GameTooltip:SetOwner(self, "ANCHOR_CURSOR") GameTooltip:ClearLines() GameTooltip:AddLine(data.name, 1, 1, 1) - local reaction = data.reaction or 4 - local standing = _G["FACTION_STANDING_LABEL" .. reaction] or "" - GameTooltip:AddDoubleLine("Standing", standing, 1, 1, 1, 1, 1, 1) - local current = (data.currentStanding or 0) - (data.currentReactionThreshold or 0) - local maximum = (data.nextReactionThreshold or 1) - (data.currentReactionThreshold or 0) + -- Use the values the bar already resolved (paragon/renown/friendship + -- aware); fall back to the raw payload only if the bar has not run yet. + local standing = self._tipStanding + if not standing or standing == "" then + standing = _G["FACTION_STANDING_LABEL" .. (data.reaction or 4)] or "" + end + GameTooltip:AddDoubleLine(EllesmereUI.L("Standing"), standing, 1, 1, 1, 1, 1, 1) + local current = self._tipCurrent + or ((data.currentStanding or 0) - (data.currentReactionThreshold or 0)) + local maximum = self._tipMaximum + or ((data.nextReactionThreshold or 1) - (data.currentReactionThreshold or 0)) if maximum <= 0 then maximum = 1 end local pct = (current / maximum) * 100 - GameTooltip:AddDoubleLine("Reputation", format("%s / %s (%.1f%%)", BreakUpLargeNumbers(current), BreakUpLargeNumbers(maximum), pct), 1, 1, 1, 1, 1, 1) + GameTooltip:AddDoubleLine(EllesmereUI.L("Reputation"), format("%s / %s (%.1f%%)", BreakUpLargeNumbers(current), BreakUpLargeNumbers(maximum), pct), 1, 1, 1, 1, 1, 1) GameTooltip:Show() end) holder:SetScript("OnLeave", function() GameTooltip:Hide() end) @@ -14463,7 +14474,7 @@ local function UpdateFavorBar() bar:SetStatusBarColor(ns.ResolveDataBarColor(s, DATA_BAR_COLORS.favor.r, DATA_BAR_COLORS.favor.g, DATA_BAR_COLORS.favor.b)) local pct = (current / st.needed) * 100 - text:SetText(format("House Level %d: %d / %d", st.displayLevel or 1, current, st.needed)) + text:SetText(format(EllesmereUI.L("House Level %d: %d / %d"), st.displayLevel or 1, current, st.needed)) -- Auto-size text if bar is too narrow local barW = frame:GetWidth() @@ -14539,12 +14550,12 @@ local function CreateFavorBar() if not st or not st.needed or st.needed <= 0 then return end GameTooltip:SetOwner(self, "ANCHOR_CURSOR") GameTooltip:ClearLines() - GameTooltip:AddLine("House Favor", 1, 1, 1) - GameTooltip:AddDoubleLine("House Level", tostring(st.displayLevel or 1), 1, 1, 1, 1, 1, 1) + GameTooltip:AddLine(EllesmereUI.L("House Favor"), 1, 1, 1) + GameTooltip:AddDoubleLine(EllesmereUI.L("House Level"), tostring(st.displayLevel or 1), 1, 1, 1, 1, 1, 1) local current = math.min(st.favor or 0, st.needed) local pct = (current / st.needed) * 100 - GameTooltip:AddDoubleLine("Favor", format("%s / %s (%.1f%%)", BreakUpLargeNumbers(current), BreakUpLargeNumbers(st.needed), pct), 1, 1, 1, 1, 1, 1) - GameTooltip:AddDoubleLine("Remaining", BreakUpLargeNumbers(st.needed - current), 1, 1, 1, 1, 1, 1) + GameTooltip:AddDoubleLine(EllesmereUI.L("Favor"), format("%s / %s (%.1f%%)", BreakUpLargeNumbers(current), BreakUpLargeNumbers(st.needed), pct), 1, 1, 1, 1, 1, 1) + GameTooltip:AddDoubleLine(EllesmereUI.L("Remaining"), BreakUpLargeNumbers(st.needed - current), 1, 1, 1, 1, 1, 1) GameTooltip:Show() end) holder:SetScript("OnLeave", function() GameTooltip:Hide() end) From a5116bf9ac37144e7da4e27aff185a14311d4aa0 Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Thu, 6 Aug 2026 12:24:51 +0900 Subject: [PATCH 7/9] Update koKR.lua --- Locales/koKR.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Locales/koKR.lua b/Locales/koKR.lua index e24e344d..a8ec6ac3 100644 --- a/Locales/koKR.lua +++ b/Locales/koKR.lua @@ -1787,14 +1787,14 @@ L["Modern Blizzard Proc"] = "모던 블리자드 발동 효과" L["Moonkin Form"] = "달빛야수 변신" L["Number of Icons"] = "아이콘 개수" L["Paging Arrow Settings"] = "페이지 화살표 설정" -L["Paragon"] = "절정" +L["Paragon"] = "최대 영예" L["Pet Bar"] = "소환수 바" L["Prowl"] = "살금살금" L["Pushed Border Settings"] = "누름 테두리 설정" L["Pushed Texture Type"] = "눌림 텍스처 유형" L["Queue Status"] = "대기열 상태" L["Quick Keybind Mode (/kb)"] = "빠른 단축키 모드 (/kb)" -L["Renown"] = "명성" +L["Renown"] = "영예" L["Rep"] = "평판" L["Rep Bar Visibility"] = "평판 바 표시" L["Reputation Bar"] = "평판 바" @@ -6372,3 +6372,6 @@ L["This option requires Display Style to be set to Icon"] = "이 옵션은 표 L["Above Hovered Row"] = "마우스 올린 줄 위" L["Left of Window"] = "창 왼쪽" L["Right of Window"] = "창 오른쪽" +L[" (Rested: %s)"] = " (휴식 상태: %s)" +L[" (Rested: %.1f%%)"] = " (휴식 상태: %.1f%%)" +L["House Level %d: %d / %d"] = "집 레벨 %d: %d / %d" From 7cff621b0e960b39ae8ebf463ef89e400f5b2f92 Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Thu, 6 Aug 2026 12:25:13 +0900 Subject: [PATCH 8/9] Update _keys.txt --- Locales/_keys.txt | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/Locales/_keys.txt b/Locales/_keys.txt index 421a2ea2..17c290c6 100644 --- a/Locales/_keys.txt +++ b/Locales/_keys.txt @@ -1,9 +1,11 @@ # Auto-generated by .tools/extract-locale-keys.sh -- do not edit by hand. # Canonical list of translatable English keys passed as string literals -# (661 unique). Regenerate after wrapping new strings. Keys passed as +# (681 unique). Regenerate after wrapping new strings. Keys passed as # variables are not listed here -- use the in-game /euiloc harvester for # the complete runtime set. (Raid) + (Rested: %.1f%%) + (Rested: %s) (guild bank) Enemy Forces %1$d Death -%2$s @@ -259,6 +261,7 @@ Equipment Slot Everything Exclude This Spell Excluded Debuffs +Experience Export Export All Data with Profile Export CDM Spells @@ -270,6 +273,7 @@ Extra Spells FIRST TIME SETUP Fallback Fallback Direction +Favor Favorites Favorites are managed by Battle.net Felguard @@ -303,6 +307,9 @@ Health Bar Hash Lines Hex# Hide Hide Item Transforms +House Favor +House Level +House Level %d: %d / %d Housing Dashboard Hover Top Bar\nDisabled Hover Top Bar\nEnabled @@ -341,6 +348,7 @@ Items Keep Mine Keybind Keybind: %1$s +LOW MANA Later Layout Leech @@ -350,9 +358,13 @@ Left-click to set | Right-click to unbind | Esc to close Left-click to set a keybind.\nRight-click to unbind. Left-click to set keybind.\nRight-click to clear. Lets long text wrap onto a second line instead of being cut off. +Level Lines Linked by Anchor/Width/Height Matching to: %1$s. These export together. Linked by Anchor/Width/Height Matching to: %1$s. These import together. +Low Durability +Low Durability (%d%%) +Low Durability (Preview) Lower Alpha Lower Alpha (On CD) Macro Created @@ -419,6 +431,7 @@ Overwrite Window & Tooltip Settings? PER-SPELL OPTIONS PREVIEW Page +Paragon Party Keystones Paste Interrupted Paste your profile string here... @@ -464,6 +477,7 @@ Regular Import Reload Now Reload Required Reload UI +Remaining Remove Remove Active State Remove Anchor @@ -475,10 +489,12 @@ Rename Filter Rename Preset Rename Profile Renders this slot's element above the rest of the nameplate. +Renown Repaired all items for %s Reposition freely with Reposition this element with Shift+Click and Drag. Reposition this element within Blizzard Edit Mode +Reputation Required Reset Reset %1$s @@ -486,6 +502,7 @@ Reset %1$s to its default position and zoom and reload your UI? Reset ALL EUI Addon Settings Resolution Issue: Profile was made at %1$dx%2$d, yours is %3$dx%4$d Resource Aware CD Ready Glow may cause a slight loss in performance efficiency. +Rested Right-Click to set custom alert text. Right-click: favorite Right-click: remove favorite @@ -551,6 +568,7 @@ Spell Target Settings Spells Stack Stack Thresholds +Standing Status Stone Stop Moving @@ -622,6 +640,7 @@ W Match W Matched WARNING: Frame positions may be off. Warbank +Weapon Welcome to EllesmereUI What's new in EllesmereUI. Whistle @@ -633,6 +652,7 @@ Wrap WuE X Offset X Position +XP Y Offset Y Position Yes From bf5d41e01e9ade2af7397623c31e7fd78042f9aa Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Thu, 6 Aug 2026 12:48:17 +0900 Subject: [PATCH 9/9] Update koKR.lua --- Locales/koKR.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Locales/koKR.lua b/Locales/koKR.lua index a8ec6ac3..df2f59b6 100644 --- a/Locales/koKR.lua +++ b/Locales/koKR.lua @@ -811,7 +811,7 @@ L["percent"] = "퍼센트" L["value"] = "수치" -- add AuraBuffReminders (오라/강화 효과 알림) L["ACTIVE REMINDERS"] = "활성 알림" -L["LOW MANA"] = "낮은 마나" +L["LOW MANA"] = "마나 낮음" L["PALADIN RITES"] = "성기사 의식" L["PETS"] = "소환수" L["RAID BUFFS"] = "공격대 강화 효과" @@ -4040,9 +4040,9 @@ L["Inscription"] = "주문각인" L["Jewelcrafting"] = "보석세공" L["Jewelry"] = "목걸이/반지" L["Leatherworking"] = "가죽세공" -L["Low Durability"] = "낮은 내구도" -L["Low Durability (%d%%)"] = "낮은 내구도 (%d%%)" -L["Low Durability (Preview)"] = "낮은 내구도 (미리보기)" +L["Low Durability"] = "내구도 낮음" +L["Low Durability (%d%%)"] = "내구도 낮음 (%d%%)" +L["Low Durability (Preview)"] = "내구도 낮음 (미리보기)" L["Lucille's Sewing Needle"] = "루실의 바늘" L["Lust"] = "피의 욕망" L["M+ and Raid"] = "신화+ 와 공격대" @@ -4213,7 +4213,7 @@ L["Hides the 'Screenshot saved' notification that appears on screen after taking L["Hides the large NPC dialogue popup that appears during quests and dungeons."] = "퀘스트와 던전 중에 나타나는 큰 NPC 대화 팝업을 숨깁니다." L["Hides the Lua error popup. The same setting as Global Settings > Developer."] = "Lua 오류 팝업을 숨깁니다. 전체 설정 > 개발자와 동일한 설정입니다." L["Keeps your note text in the Sign Up dialog instead of clearing it each time you open it."] = "신청 창의 메모 글자를 매번 지우지 않고 유지합니다." -L["Low Durability Warning"] = "낮은 내구도 경고" +L["Low Durability Warning"] = "내구도 낮음 경고" L["Makes the game tooltip follow your mouse cursor instead of appearing in the default screen corner. Use the arrows icon to pick the position relative to the cursor and fine-tune the X/Y offset."] = "게임 툴팁이 화면 구석의 기본 위치 대신 마우스 커서를 따라 표시되게 만듭니다. 화살표 아이콘으로 커서 대비 기준점을 선택하고 X/Y 간격을 미세하게 조정해 보세요." L["No items queued, click tiles to add an item to queue."] = "대기열이 비었습니다. 타일을 클릭해 아이템을 추가하세요." L["Only shows the cursor circle while the mouse is hidden -- that is, while you hold the left and/or right mouse button to pan the camera or move your character."] = "마우스가 숨겨졌을 때만 커서 원을 표시합니다 - 즉, 마우스 왼쪽/오른쪽 버튼을 눌러 카메라를 회전하거나 캐릭터를 이동할 때입니다."