From 803fccb9f70b89af67bf3e8ad5054c05f995dcd0 Mon Sep 17 00:00:00 2001 From: jilinge2 Date: Fri, 27 Sep 2024 14:12:07 +0800 Subject: [PATCH 1/2] add zhCN locale --- Cursive.toc | 3 +- Localization.lua | 272 +++++++++++++++++++++++++++++++++++++++++++++ commands.lua | 125 ++++++++++----------- global.lua | 5 +- settings.lua | 95 ++++++++-------- spells/druid.lua | 129 ++++++++++----------- spells/hunter.lua | 61 +++++----- spells/mage.lua | 15 +-- spells/priest.lua | 77 ++++++------- spells/rogue.lua | 21 ++-- spells/warlock.lua | 105 ++++++++--------- ui.lua | 20 +++- 12 files changed, 610 insertions(+), 318 deletions(-) create mode 100644 Localization.lua diff --git a/Cursive.toc b/Cursive.toc index 6631365..ab5edf0 100644 --- a/Cursive.toc +++ b/Cursive.toc @@ -1,5 +1,5 @@ ## Interface: 11200 -## Title: Cursive +## Title: [|CFF33AAFFSUPERWOW|R] Cursive ## Author: Pepopo ## Notes: Uses SuperWoW GUIDs to show units in combat and track curses ## Version: 1.0 @@ -21,6 +21,7 @@ Libs\Dewdrop\Dewdrop-2.0.lua Libs\Tablet\Tablet-2.0.lua Libs\FuBarPlugin\FuBarPlugin-2.0.lua +Localization.lua global.lua utils.lua settings.lua diff --git a/Localization.lua b/Localization.lua new file mode 100644 index 0000000..e4abe5b --- /dev/null +++ b/Localization.lua @@ -0,0 +1,272 @@ +local L = AceLibrary("AceLocale-2.2"):new("Cursive") + +L:RegisterTranslations("enUS", function() return { + ["|cffffcc00Cursive:|cffffaaaa Commands:"] = true, + ["|cffffcc00Priority choices:"] = true, + ["|cffffcc00Options (separate with ,):"] = true, + ["Display text warnings when a curse fails to cast."] = true, + ["Play a sound when a curse is resisted."] = true, + ["Play a sound when a curse is about to expire."] = true, + ["Allow out of combat targets to be multicursed. Would only consider using this solo to avoid potentially griefing raids/dungeons by pulling unintended mobs."] = true, + ["Minimum HP for a target to be considered. Example usage minhp=10000. "] = true, + ["Time threshold at which to allow refreshing a curse. Default is 0 seconds."] = true, + ["/cursive curse ||>: Casts spell if not already on target/guid"] = true, + ["/cursive multicurse ||>: Picks target based on priority and casts spell if not already on target"] = true, + ["Target with the highest HP."] = true, + ["Target with the highest raid mark."] = true, + ["Target with the highest raid mark with Cross set to -1 and Skull set to -2 (Square highest prio at 6)."] = true, + ["Target with the lowest raid mark."] = true, + ["Target with the highest HP and raid mark."] = true, + ["Same as HIGHEST_HP_RAID_MARK but with RAID_MARK_SQUARE mark prio."] = true, + ["Same as HIGHEST_HP_RAID_MARK but with INVERSE_RAID_MARK mark prio."] = true, + ["|cffffcc00Cursive:|cffffaaaa Couldn't find a target to curse."] = true, + + -- global + ["|cffffcc00Cursive:|cffffaaaa Couldn't detect SuperWoW."] = true, + ["|cffffcc00Cursive:|cffffaaaa Loaded. /cursive for commands and minimap icon for options."] = true, + + + -- settings + ["Cursive"] = true, + ["Health Bar Width"] = true, + ["Health Bar Height"] = true, + ["Raid Icon Size"] = true, + ["Curse Icon Size"] = true, + ["Spacing"] = true, + ["Text Size"] = true, + ["Scale"] = true, + ["In Combat"] = true, + ["Hostile"] = true, + ["Attackable"] = true, + ["Within 28 Range"] = true, + ["Has Raid Mark"] = true, + ["Has Curse"] = true, + ["Only show units you have cursed"] = true, + ["Enabled"] = true, + ["Enable/Disable Cursive"] = true, + ["Show Title"] = true, + ["Show the title of the frame"] = true, + ["Allow clickthrough"] = true, + ["This will allow you to click through the frame to target mobs behind it, but prevents dragging the frame."] = true, + ["Show Frame Background"] = true, + ["Toggle the frame background to help with positioning"] = true, + ["Reset Frame"] = true, + ["Move the frame back to the default position"] = true, + ["Bar Display Settings"] = true, + ["Mob filters"] = true, + ["Target and Raid Marks always shown"] = true, + ["Max Curses"] = true, + ["Max Rows"] = true, + ["Max Columns"] = true, + + + -- spells + ["Rank 1"] = true, + ["Rank 2"] = true, + ["Rank 3"] = true, + ["Rank 4"] = true, + + -- druid + ["Entangling Roots"] = true, + ["Sleep"] = true, + ["Faerie Fire"] = true, + ["Faerie Fire (Bear)"] = true, + ["Faerie Fire (Feral)"] = true, + ["Hibernate"] = true, + ["Insect Swarm"] = true, + ["Moonfire"] = true, + ["Rake"] = true, + ["Rip"] = true, + ["Soothe Animal"] = true, + ["Bash"] = true, + ["Maim"] = true, + ["Demoralizing Roar"] = true, + ["Challenging Roar"] = true, + + -- hunter + ["Scorpid Sting"] = true, + ["Serpent Sting"] = true, + ["Viper Sting"] = true, + ["Wing Clip"] = true, + ["Concussive Shot"] = true, + ["Wyvern Sting"] = true, + ["Counterattack"] = true, + ["Hunter\'s Mark"] = true, + ["Freezing Trap"] = true, + + -- mage + ["Polymorph"] = true, + ["Polymorph: Cow"] = true, + ["Polymorph: Turtle"] = true, + ["Polymorph: Pig"] = true, + + -- priest + ["Shackle Undead"] = true, + ["Mind Soothe"] = true, + ["Mind Control"] = true, + ["Devouring Plague"] = true, + ["Hex of Weakness"] = true, + ["Shadow Word: Pain"] = true, + ["Vampiric Embrace"] = true, + ["Holy Fire"] = true, + + -- Paladin + ["Turn Undead"] = true, + + -- rogue + ["Blind"] = true, + ["Sap"] = true, + ["Gouge"] = true, + + -- warlock + ["Corruption"] = true, + ["Curse of Agony"] = true, + ["Curse of Doom"] = true, + ["Curse of Recklessness"] = true, + ["Curse of Shadow"] = true, + ["Curse of the Elements"] = true, + ["Curse of Tongues"] = true, + ["Curse of Weakness"] = true, + ["Curse of Exhaustion"] = true, + ["Immolate"] = true, + ["Death Coil"] = true, + ["Banish"] = true, + ["Siphon Life"] = true, + ["Fear"] = true, + } +end) + + +L:RegisterTranslations("zhCN", function() return { + ["|cffffcc00Cursive:|cffffaaaa Commands:"] = "|cffffcc00Cursive:|cffffaaaa 命令:", + ["|cffffcc00Priority choices:"] = "|cffffcc00优先级选择:", + ["|cffffcc00Options (separate with ,):"] = "|cffffcc00选项 (用半角逗号分隔):", + ["Display text warnings when a curse fails to cast."] = "当诅咒施放失败时显示文本警告.", + ["Play a sound when a curse is resisted."] = "当诅咒被抵抗时播放声音.", + ["Play a sound when a curse is about to expire."] = "当诅咒即将到期时播放声音.\n 详细使用说明及示例请查看readme文件", + ["Allow out of combat targets to be multicursed. Would only consider using this solo to avoid potentially griefing raids/dungeons by pulling unintended mobs."] = "允许战斗外目标被多重诅咒。只有在单人游戏中才会考虑使用这个选项,以避免在副本中意外拉到怪物而造成困扰.", + ["Minimum HP for a target to be considered. Example usage minhp=10000. "] = "目标考虑的最小生命值。例如:minhp=10000.", + ["Time threshold at which to allow refreshing a curse. Default is 0 seconds."] = "允许刷新诅咒的时间阈值。默认是0秒.例如:refreshtime=2", + ["/cursive curse ||>: Casts spell if not already on target/guid"] = "/cursive curse <法术名称>|<目标ID>|<选项列表,用半角逗号分隔>: 如果目标/ID身上没有此法术,目标ID可以是以下内容(mouseover), (player), (pet), (party)(%d), (partypet)(%d), (raid)(%d+), (raidpet)(%d+), (target), (targettarget)", + ["/cursive multicurse ||>: Picks target based on priority and casts spell if not already on target"] = "/cursive multicurse <法术名称>|<优先级>|<选项列表,用半角逗号分隔>: 根据优先级选择目标并施放法术,如果目标上没有", + ["Target with the highest HP."] = "选择生命值最高的目标.", + ["Target with the highest raid mark."] = "选择团队标记最高的目标.", + ["Target with the highest raid mark with Cross set to -1 and Skull set to -2 (Square highest prio at 6)."] = "选择团队标记最高的目标,但是将红叉设为-1,骷髅设为-2(方块标记最高优先级为6).", + ["Target with the lowest raid mark."] = "选择团队标记优先级最低的目标.(与RAID_MARK顺序相反)", + ["Target with the highest HP and raid mark."] = "选择生命值和团队标记最高的目标.", + ["Same as HIGHEST_HP_RAID_MARK but with RAID_MARK_SQUARE mark prio."] = "与HIGHEST_HP_RAID_MARK相同,但是RAID_MARK_SQUARE标记优先.", + ["Same as HIGHEST_HP_RAID_MARK but with INVERSE_RAID_MARK mark prio."] = "与HIGHEST_HP_RAID_MARK相同,但是INVERSE_RAID_MARK标记优先.", + ["|cffffcc00Cursive:|cffffaaaa Couldn't find a target to curse."] = "|cffffcc00Cursive:|cffffaaaa 找不到要诅咒的目标.", + + -- global + ["|cffffcc00Cursive:|cffffaaaa Couldn't detect SuperWoW."] = "|cffffcc00Cursive:|cffffaaaa 无法检测到SuperWoW.", + ["|cffffcc00Cursive:|cffffaaaa Loaded. /cursive for commands and minimap icon for options."] = "|cffffcc00Cursive:|cffffaaaa 已加载。/cursive 用于查看帮助命令,小地图图标打开设置选项.", + + -- settings + ["Cursive"] = "Cursive", + ["Health Bar Width"] = "生命条宽度", + ["Health Bar Height"] = "生命条高度", + ["Raid Icon Size"] = "团队标记大小", + ["Curse Icon Size"] = "诅咒图标大小", + ["Spacing"] = "间距", + ["Text Size"] = "文本大小", + ["Scale"] = "缩放", + ["In Combat"] = "战斗中", + ["Hostile"] = "敌对", + ["Attackable"] = "可攻击", + ["Within 28 Range"] = "在28范围内", + ["Has Raid Mark"] = "有团队标记", + ["Has Curse"] = "有诅咒", + ["Only show units you have cursed"] = "只显示你诅咒过的单位", + ["Enabled"] = "启用", + ["Enable/Disable Cursive"] = "启用/禁用 Cursive", + ["Show Title"] = "显示标题", + ["Show the title of the frame"] = "显示框架的标题", + ["Allow clickthrough"] = "允许点击穿透", + ["This will allow you to click through the frame to target mobs behind it, but prevents dragging the frame."] = "这将允许你点击穿透框架选中其背后的怪物,但会禁用拖动框架.", + ["Show Frame Background"] = "显示框架背景", + ["Toggle the frame background to help with positioning"] = "切换框架背景以帮助定位", + ["Reset Frame"] = "重置框架", + ["Move the frame back to the default position"] = "将框架移回默认位置", + ["Bar Display Settings"] = "条形显示设置", + ["Mob filters"] = "怪物过滤器", + ["Target and Raid Marks always shown"] = "目标和团队标记始终显示", + ["Max Curses"] = "最大诅咒数", + ["Max Rows"] = "最大行数", + ["Max Columns"] = "最大列数", + + -- spells + ["Rank 1"] = "等级 1", + ["Rank 2"] = "等级 2", + ["Rank 3"] = "等级 3", + ["Rank 4"] = "等级 4", + + -- druid + ["Entangling Roots"] = "纠缠根须", + ["Sleep"] = "沉睡", + ["Faerie Fire"] = "精灵之火", + ["Faerie Fire (Bear)"] = "精灵之火(熊形态)", + ["Faerie Fire (Feral)"] = "精灵之火(野性形态)", + ["Hibernate"] = "休眠", + ["Insect Swarm"] = "虫群", + ["Moonfire"] = "月火术", + ["Rake"] = "扫击", + ["Rip"] = "撕扯", + ["Soothe Animal"] = "安抚动物", + ["Bash"] = "重击", + ["Maim"] = "致残", + ["Demoralizing Roar"] = "挫志咆哮", + ["Challenging Roar"] = "挑战咆哮", + + -- hunter + ["Scorpid Sting"] = "毒蝎钉刺", + ["Serpent Sting"] = "毒蛇钉刺", + ["Viper Sting"] = "蝰蛇钉刺", + ["Wing Clip"] = "摔绊", + ["Concussive Shot"] = "震荡射击", + ["Wyvern Sting"] = "翼龙钉刺", + ["Counterattack"] = "反击", + ["Hunter's Mark"] = "猎人印记", + ["Freezing Trap"] = "冰冻陷阱", + + -- mage + ["Polymorph"] = "变形术", + ["Polymorph: Cow"] = "变形术:奶牛", + ["Polymorph: Turtle"] = "变形术:龟", + ["Polymorph: Pig"] = "变形术:猪", + + -- priest + ["Shackle Undead"] = "束缚亡灵", + ["Mind Soothe"] = "安抚心灵", + ["Mind Control"] = "心灵控制", + ["Devouring Plague"] = "吞噬瘟疫", + ["Hex of Weakness"] = "虚弱妖术", + ["Shadow Word: Pain"] = "暗言术:痛", + ["Vampiric Embrace"] = "吸血鬼的拥抱", + ["Holy Fire"] = "神圣之火", + + -- Paladin + ["Turn Undead"] = "超度亡灵", + + -- rogue + ["Blind"] = "致盲", + ["Sap"] = "闷棍", + ["Gouge"] = "凿击", + + -- warlock + ["Corruption"] = "腐蚀术", + ["Curse of Agony"] = "痛苦诅咒", + ["Curse of Doom"] = "末日诅咒", + ["Curse of Recklessness"] = "鲁莽诅咒", + ["Curse of Shadow"] = "暗影诅咒", + ["Curse of the Elements"] = "元素诅咒", + ["Curse of Tongues"] = "语言诅咒", + ["Curse of Weakness"] = "虚弱诅咒", + ["Curse of Exhaustion"] = "疲劳诅咒", + ["Immolate"] = "献祭", + ["Death Coil"] = "死亡缠绕", + ["Banish"] = "放逐", + ["Siphon Life"] = "生命虹吸", + ["Fear"] = "恐惧", + } +end) \ No newline at end of file diff --git a/commands.lua b/commands.lua index c67309e..a492c9f 100644 --- a/commands.lua +++ b/commands.lua @@ -1,19 +1,20 @@ -local curseCommands = "|cffffcc00Cursive:|cffffaaaa Commands:" -local priorityChoices = "Priority choices:" -local curseOptions = "Options (separate with ,):" +local L = AceLibrary("AceLocale-2.2"):new("Cursive") +local curseCommands = L["|cffffcc00Cursive:|cffffaaaa Commands:"] +local priorityChoices = L["|cffffcc00Priority choices:"] +local curseOptions = L["|cffffcc00Options (separate with ,):"] local commandOptions = { - warnings = "Display text warnings when a curse fails to cast.", - resistsound = "Play a sound when a curse is resisted.", - expiringsound = "Play a sound when a curse is about to expire.", - allowooc = "Allow out of combat targets to be multicursed. Would only consider using this solo to avoid potentially griefing raids/dungeons by pulling unintended mobs.", - minhp = "Minimum HP for a target to be considered. Example usage minhp=10000. ", - refreshtime = "Time threshold at which to allow refreshing a curse. Default is 0 seconds." + warnings = L["Display text warnings when a curse fails to cast."], + resistsound = L["Play a sound when a curse is resisted."], + expiringsound = L["Play a sound when a curse is about to expire."], + allowooc = L["Allow out of combat targets to be multicursed. Would only consider using this solo to avoid potentially griefing raids/dungeons by pulling unintended mobs."], + minhp = L["Minimum HP for a target to be considered. Example usage minhp=10000. "], + refreshtime = L["Time threshold at which to allow refreshing a curse. Default is 0 seconds."] } local commands = { - ["curse"] = "/cursive curse ||>: Casts spell if not already on target/guid", - ["multicurse"] = "/cursive multicurse ||>: Picks target based on priority and casts spell if not already on target", + ["curse"] = L["/cursive curse ||>: Casts spell if not already on target/guid"], + ["multicurse"] = L["/cursive multicurse ||>: Picks target based on priority and casts spell if not already on target"], } local PRIORITY_HIGHEST_HP = "HIGHEST_HP" @@ -25,16 +26,16 @@ local PRIORITY_HIGHEST_HP_RAID_MARK_SQUARE = "HIGHEST_HP_RAID_MARK_SQUARE" local PRIORITY_HIGHEST_HP_INVERSE_RAID_MARK = "HIGHEST_HP_INVERSE_RAID_MARK" local priorities = { - [PRIORITY_HIGHEST_HP] = "Target with the highest HP.", - [PRIORITY_RAID_MARK] = "Target with the highest raid mark.", - [PRIORITY_RAID_MARK_SQUARE] = "Target with the highest raid mark with Cross set to -1 and Skull set to -2 (Square highest prio at 6).", - [PRIORITY_INVERSE_RAID_MARK] = "Target with the lowest raid mark.", - [PRIORITY_HIGHEST_HP_RAID_MARK] = "Target with the highest HP and raid mark.", - [PRIORITY_HIGHEST_HP_RAID_MARK_SQUARE] = "Same as HIGHEST_HP_RAID_MARK but with RAID_MARK_SQUARE mark prio.", - [PRIORITY_HIGHEST_HP_INVERSE_RAID_MARK] = "Same as HIGHEST_HP_RAID_MARK but with INVERSE_RAID_MARK mark prio." + [PRIORITY_HIGHEST_HP] = L["Target with the highest HP."], + [PRIORITY_RAID_MARK] = L["Target with the highest raid mark."], + [PRIORITY_RAID_MARK_SQUARE] = L["Target with the highest raid mark with Cross set to -1 and Skull set to -2 (Square highest prio at 6)."], + [PRIORITY_INVERSE_RAID_MARK] = L["Target with the lowest raid mark."], + [PRIORITY_HIGHEST_HP_RAID_MARK] = L["Target with the highest HP and raid mark."], + [PRIORITY_HIGHEST_HP_RAID_MARK_SQUARE] = L["Same as HIGHEST_HP_RAID_MARK but with RAID_MARK_SQUARE mark prio."], + [PRIORITY_HIGHEST_HP_INVERSE_RAID_MARK] = L["Same as HIGHEST_HP_RAID_MARK but with INVERSE_RAID_MARK mark prio."] } -local curseNoTarget = "|cffffcc00Cursive:|cffffaaaa Couldn't find a target to curse." +local curseNoTarget = L["|cffffcc00Cursive:|cffffaaaa Couldn't find a target to curse."] local function parseOptions(optionsStr) local options = { } @@ -69,12 +70,12 @@ local function handleSlashCommands(msg, editbox) end DEFAULT_CHAT_FRAME:AddMessage(priorityChoices) for priority, description in pairs(priorities) do - DEFAULT_CHAT_FRAME:AddMessage(priority .. ": " .. description) + DEFAULT_CHAT_FRAME:AddMessage("|CFFFFFF00"..priority .. "|R: " .. description) end DEFAULT_CHAT_FRAME:AddMessage(curseOptions) for option, description in pairs(commandOptions) do - DEFAULT_CHAT_FRAME:AddMessage(option .. ": " .. description) + DEFAULT_CHAT_FRAME:AddMessage("|CFFFFFF00"..option .. "|R: " .. description) end return end @@ -92,58 +93,58 @@ local function handleSlashCommands(msg, editbox) end local crowdControlledSpellIds = { - [700] = { name = "Sleep", rank = 1, duration = 20 }, - [1090] = { name = "Sleep", rank = 2, duration = 30 }, - [2937] = { name = "Sleep", rank = 3, duration = 40 }, + [700] = { name = L["Sleep"], rank = 1, duration = 20 }, + [1090] = { name = L["Sleep"], rank = 2, duration = 30 }, + [2937] = { name = L["Sleep"], rank = 3, duration = 40 }, - [339] = { name = "Entangling Roots", rank = 1, duration = 12 }, - [1062] = { name = "Entangling Roots", rank = 2, duration = 15 }, - [5195] = { name = "Entangling Roots", rank = 3, duration = 18 }, - [5196] = { name = "Entangling Roots", rank = 4, duration = 21 }, - [9852] = { name = "Entangling Roots", rank = 5, duration = 24 }, - [9853] = { name = "Entangling Roots", rank = 6, duration = 27 }, + [339] = { name = L["Entangling Roots"], rank = 1, duration = 12 }, + [1062] = { name = L["Entangling Roots"], rank = 2, duration = 15 }, + [5195] = { name = L["Entangling Roots"], rank = 3, duration = 18 }, + [5196] = { name = L["Entangling Roots"], rank = 4, duration = 21 }, + [9852] = { name = L["Entangling Roots"], rank = 5, duration = 24 }, + [9853] = { name = L["Entangling Roots"], rank = 6, duration = 27 }, - [2637] = { name = "Hibernate", rank = 1, duration = 20 }, - [18657] = { name = "Hibernate", rank = 2, duration = 30 }, - [18658] = { name = "Hibernate", rank = 3, duration = 40 }, + [2637] = { name = L["Hibernate"], rank = 1, duration = 20 }, + [18657] = { name = L["Hibernate"], rank = 2, duration = 30 }, + [18658] = { name = L["Hibernate"], rank = 3, duration = 40 }, - [1425] = { name = "Shackle Undead", rank = 1, duration = 30 }, - [9486] = { name = "Shackle Undead", rank = 2, duration = 40 }, - [10956] = { name = "Shackle Undead", rank = 3, duration = 50 }, + [1425] = { name = L["Shackle Undead"], rank = 1, duration = 30 }, + [9486] = { name = L["Shackle Undead"], rank = 2, duration = 40 }, + [10956] = { name = L["Shackle Undead"], rank = 3, duration = 50 }, -- polymorph - [118] = { name = "Polymorph", rank = "Rank 1", duration = 20 }, - [12824] = { name = "Polymorph", rank = "Rank 2", duration = 30 }, - [12825] = { name = "Polymorph", rank = "Rank 3", duration = 40 }, - [12826] = { name = "Polymorph", rank = "Rank 4", duration = 50 }, + [118] = { name = L["Polymorph"], rank = L["Rank 1"], duration = 20 }, + [12824] = { name = L["Polymorph"], rank = L["Rank 2"], duration = 30 }, + [12825] = { name = L["Polymorph"], rank = L["Rank 3"], duration = 40 }, + [12826] = { name = L["Polymorph"], rank = L["Rank 4"], duration = 50 }, - [28270] = { name = "Polymorph: Cow", rank = "Rank 1", duration = 50 }, - [28271] = { name = "Polymorph: Turtle", rank = "Rank 1", duration = 50 }, - [28272] = { name = "Polymorph: Pig", rank = "Rank 1", duration = 50 }, + [28270] = { name = L["Polymorph: Cow"], rank = L["Rank 1"], duration = 50 }, + [28271] = { name = L["Polymorph: Turtle"], rank = L["Rank 1"], duration = 50 }, + [28272] = { name = L["Polymorph: Pig"], rank = L["Rank 1"], duration = 50 }, - [2878] = { name = "Turn Undead", rank = 1, duration = 10 }, - [5627] = { name = "Turn Undead", rank = 2, duration = 15 }, - [10326] = { name = "Turn Undead", rank = 3, duration = 20 }, + [2878] = { name = L["Turn Undead"], rank = 1, duration = 10 }, + [5627] = { name = L["Turn Undead"], rank = 2, duration = 15 }, + [10326] = { name = L["Turn Undead"], rank = 3, duration = 20 }, - [2094] = { name = "Blind", rank = 1, duration = 10 }, - [21060] = { name = "Blind", rank = 1, duration = 10 }, + [2094] = { name = L["Blind"], rank = 1, duration = 10 }, + [21060] = { name = L["Blind"], rank = 1, duration = 10 }, - [6770] = { name = "Sap", rank = 1, duration = 25 }, - [2070] = { name = "Sap", rank = 2, duration = 35 }, - [11297] = { name = "Sap", rank = 3, duration = 45 }, + [6770] = { name = L["Sap"], rank = 1, duration = 25 }, + [2070] = { name = L["Sap"], rank = 2, duration = 35 }, + [11297] = { name = L["Sap"], rank = 3, duration = 45 }, - [1776] = { name = "Gouge", rank = 1, duration = 4 }, - [1777] = { name = "Gouge", rank = 2, duration = 4 }, - [8629] = { name = "Gouge", rank = 3, duration = 4 }, - [11285] = { name = "Gouge", rank = 4, duration = 4 }, - [11286] = { name = "Gouge", rank = 5, duration = 4 }, + [1776] = { name = L["Gouge"], rank = 1, duration = 4 }, + [1777] = { name = L["Gouge"], rank = 2, duration = 4 }, + [8629] = { name = L["Gouge"], rank = 3, duration = 4 }, + [11285] = { name = L["Gouge"], rank = 4, duration = 4 }, + [11286] = { name = L["Gouge"], rank = 5, duration = 4 }, - [3355] = { name = "Freezing Trap", rank = 1, duration = 10 }, - [14308] = { name = "Freezing Trap", rank = 2, duration = 15 }, - [14309] = { name = "Freezing Trap", rank = 3, duration = 20 }, + [3355] = { name = L["Freezing Trap"], rank = 1, duration = 10 }, + [14308] = { name = L["Freezing Trap"], rank = 2, duration = 15 }, + [14309] = { name = L["Freezing Trap"], rank = 3, duration = 20 }, - [710] = { name = "Banish", rank = 1, duration = 30 }, - [18647] = { name = "Banish", rank = 2, duration = 30 }, + [710] = { name = L["Banish"], rank = 1, duration = 30 }, + [18647] = { name = L["Banish"], rank = 2, duration = 30 }, } local function isMobCrowdControlled(guid) @@ -317,7 +318,7 @@ function Cursive:Multicurse(spellName, priority, options) if priority and not priorities[priority] then DEFAULT_CHAT_FRAME:AddMessage(priorityChoices) for choice, description in pairs(priorities) do - DEFAULT_CHAT_FRAME:AddMessage(choice .. ": " .. description) + DEFAULT_CHAT_FRAME:AddMessage("|CFFFFFF00"..choice .. "|R: " .. description) end return end diff --git a/global.lua b/global.lua index 6197fed..0daab61 100644 --- a/global.lua +++ b/global.lua @@ -1,10 +1,11 @@ +local L = AceLibrary("AceLocale-2.2"):new("Cursive") Cursive = AceLibrary("AceAddon-2.0"):new("AceEvent-2.0", "AceDebug-2.0", "AceModuleCore-2.0", "AceConsole-2.0", "AceDB-2.0", "AceHook-2.1") Cursive.superwow = true if not GetPlayerBuffID or not CombatLogAdd or not SpellInfo then local notify = CreateFrame("Frame", nil, UIParent) notify:SetScript("OnUpdate", function() - DEFAULT_CHAT_FRAME:AddMessage("|cffffcc00Cursive:|cffffaaaa Couldn't detect SuperWoW.") + DEFAULT_CHAT_FRAME:AddMessage(L["|cffffcc00Cursive:|cffffaaaa Couldn't detect SuperWoW."]) this:Hide() end) @@ -12,7 +13,7 @@ if not GetPlayerBuffID or not CombatLogAdd or not SpellInfo then end function Cursive:OnEnable() - DEFAULT_CHAT_FRAME:AddMessage("|cffffcc00Cursive:|cffffaaaa Loaded. /cursive for commands and minimap icon for options.") + DEFAULT_CHAT_FRAME:AddMessage(L["|cffffcc00Cursive:|cffffaaaa Loaded. /cursive for commands and minimap icon for options."]) Cursive.curses:LoadCurses() if Cursive.db.profile.enabled then diff --git a/settings.lua b/settings.lua index 0447ba7..f5374e4 100644 --- a/settings.lua +++ b/settings.lua @@ -2,9 +2,10 @@ if not Cursive.superwow then return end +local L = AceLibrary("AceLocale-2.2"):new("Cursive") Cursive:RegisterDB("CursiveDB") Cursive:RegisterDefaults("profile", { - caption = "Cursive", + caption = L["Cursive"], anchor = "CENTER", x = -240, y = 120, @@ -37,8 +38,8 @@ Cursive:RegisterDefaults("profile", { local barOptions = { ["barwidth"] = { type = "range", - name = "Health Bar Width", - desc = "Health Bar Width", + name = L["Health Bar Width"], + desc = L["Health Bar Width"], order = 10, min = 30, max = 150, @@ -55,8 +56,8 @@ local barOptions = { }, ["barheight"] = { type = "range", - name = "Health Bar Height", - desc = "Health Bar Height", + name = L["Health Bar Height"], + desc = L["Health Bar Height"], order = 20, min = 10, max = 30, @@ -73,8 +74,8 @@ local barOptions = { }, ["raidiconsize"] = { type = "range", - name = "Raid Icon Size", - desc = "Raid Icon Size", + name = L["Raid Icon Size"], + desc = L["Raid Icon Size"], order = 30, min = 10, max = 30, @@ -91,8 +92,8 @@ local barOptions = { }, ["curseiconsize"] = { type = "range", - name = "Curse Icon Size", - desc = "Curse Icon Size", + name = L["Curse Icon Size"], + desc = L["Curse Icon Size"], order = 40, min = 10, max = 30, @@ -109,8 +110,8 @@ local barOptions = { }, ["spacing"] = { type = "range", - name = "Spacing", - desc = "Spacing", + name = L["Spacing"], + desc = L["Spacing"], order = 50, min = 0, max = 10, @@ -127,8 +128,8 @@ local barOptions = { }, ["textsize"] = { type = "range", - name = "Text Size", - desc = "Text Size", + name = L["Text Size"], + desc = L["Text Size"], order = 60, min = 8, max = 20, @@ -145,8 +146,8 @@ local barOptions = { }, ["scale"] = { type = "range", - name = "Scale", - desc = "Scale", + name = L["Scale"], + desc = L["Scale"], order = 70, min = 0.5, max = 2, @@ -166,8 +167,8 @@ local barOptions = { local mobFilters = { ["incombat"] = { type = "toggle", - name = "In Combat", - desc = "In Combat", + name = L["In Combat"], + desc = L["In Combat"], order = 1, get = function() return Cursive.db.profile.filterincombat @@ -178,8 +179,8 @@ local mobFilters = { }, ["hostile"] = { type = "toggle", - name = "Hostile", - desc = "Hostile", + name = L["Hostile"], + desc = L["Hostile"], order = 2, get = function() return Cursive.db.profile.filterhostile @@ -190,8 +191,8 @@ local mobFilters = { }, ["attackable"] = { type = "toggle", - name = "Attackable", - desc = "Attackable", + name = L["Attackable"], + desc = L["Attackable"], order = 3, get = function() return Cursive.db.profile.filterattackable @@ -202,8 +203,8 @@ local mobFilters = { }, ["range"] = { type = "toggle", - name = "Within 28 Range", - desc = "Within 28 Range", + name = L["Within 28 Range"], + desc = L["Within 28 Range"], order = 4, get = function() return Cursive.db.profile.filterrange @@ -214,8 +215,8 @@ local mobFilters = { }, ["raidmark"] = { type = "toggle", - name = "Has Raid Mark", - desc = "Has Raid Mark", + name = L["Has Raid Mark"], + desc = L["Has Raid Mark"], order = 5, get = function() return Cursive.db.profile.filterraidmark @@ -226,8 +227,8 @@ local mobFilters = { }, ["hascurse"] = { type = "toggle", - name = "Has Curse", - desc = "Only show units you have cursed", + name = L["Has Curse"], + desc = L["Only show units you have cursed"], order = 6, get = function() return Cursive.db.profile.filterhascurse @@ -244,8 +245,8 @@ Cursive.cmdtable = { args = { ["enabled"] = { type = "toggle", - name = "Enabled", - desc = "Enable/Disable Cursive", + name = L["Enabled"], + desc = L["Enable/Disable Cursive"], order = 1, get = function() return Cursive.db.profile.enabled @@ -261,8 +262,8 @@ Cursive.cmdtable = { }, ["showtitle"] = { type = "toggle", - name = "Show Title", - desc = "Show the title of the frame", + name = L["Show Title"], + desc = L["Show the title of the frame"], order = 3, get = function() return Cursive.db.profile.showtitle @@ -274,8 +275,8 @@ Cursive.cmdtable = { }, ["clickthrough"] = { type = "toggle", - name = "Allow clickthrough", - desc = "This will allow you to click through the frame to target mobs behind it, but prevents dragging the frame.", + name = L["Allow clickthrough"], + desc = L["This will allow you to click through the frame to target mobs behind it, but prevents dragging the frame."], order = 5, get = function() return Cursive.db.profile.clickthrough @@ -287,8 +288,8 @@ Cursive.cmdtable = { }, ["showbackdrop"] = { type = "toggle", - name = "Show Frame Background", - desc = "Toggle the frame background to help with positioning", + name = L["Show Frame Background"], + desc = L["Toggle the frame background to help with positioning"], order = 7, get = function() return Cursive.db.profile.showbackdrop @@ -300,8 +301,8 @@ Cursive.cmdtable = { }, ["resetframe"] = { type = "execute", - name = "Reset Frame", - desc = "Move the frame back to the default position", + name = L["Reset Frame"], + desc = L["Move the frame back to the default position"], order = 9, func = function() Cursive.db.profile.anchor = "CENTER" @@ -317,15 +318,15 @@ Cursive.cmdtable = { }, ["bardisplay"] = { type = "group", - name = "Bar Display Settings", - desc = "Bar Display Settings", + name = L["Bar Display Settings"], + desc = L["Bar Display Settings"], order = 13, args = barOptions }, ["filters"] = { type = "group", - name = "Mob filters", - desc = "Target and Raid Marks always shown", + name = L["Mob filters"], + desc = L["Target and Raid Marks always shown"], order = 20, args = mobFilters }, @@ -336,8 +337,8 @@ Cursive.cmdtable = { }, ["maxcurses"] = { type = "range", - name = "Max Curses", - desc = "Max Curses", + name = L["Max Curses"], + desc = L["Max Curses"], order = 22, min = 1, max = 8, @@ -354,8 +355,8 @@ Cursive.cmdtable = { }, ["maxrow"] = { type = "range", - name = "Max Rows", - desc = "Max Rows", + name = L["Max Rows"], + desc = L["Max Rows"], order = 30, min = 1, max = 20, @@ -372,8 +373,8 @@ Cursive.cmdtable = { }, ["maxcol"] = { type = "range", - name = "Max Columns", - desc = "Max Columns", + name = L["Max Columns"], + desc = L["Max Columns"], order = 40, min = 1, max = 20, diff --git a/spells/druid.lua b/spells/druid.lua index 301d231..dc8084a 100644 --- a/spells/druid.lua +++ b/spells/druid.lua @@ -1,82 +1,83 @@ +local L = AceLibrary("AceLocale-2.2"):new("Cursive") function getDruidSpells() return { - [339] = { name = "Entangling Roots", rank = 1, duration = 12 }, - [1062] = { name = "Entangling Roots", rank = 2, duration = 15 }, - [5195] = { name = "Entangling Roots", rank = 3, duration = 18 }, - [5196] = { name = "Entangling Roots", rank = 4, duration = 21 }, - [9852] = { name = "Entangling Roots", rank = 5, duration = 24 }, - [9853] = { name = "Entangling Roots", rank = 6, duration = 27 }, + [339] = { name = L["Entangling Roots"], rank = 1, duration = 12 }, + [1062] = { name = L["Entangling Roots"], rank = 2, duration = 15 }, + [5195] = { name = L["Entangling Roots"], rank = 3, duration = 18 }, + [5196] = { name = L["Entangling Roots"], rank = 4, duration = 21 }, + [9852] = { name = L["Entangling Roots"], rank = 5, duration = 24 }, + [9853] = { name = L["Entangling Roots"], rank = 6, duration = 27 }, - [700] = { name = "Sleep", rank = 1, duration = 20 }, - [1090] = { name = "Sleep", rank = 2, duration = 30 }, - [2937] = { name = "Sleep", rank = 3, duration = 40 }, + [700] = { name = L["Sleep"], rank = 1, duration = 20 }, + [1090] = { name = L["Sleep"], rank = 2, duration = 30 }, + [2937] = { name = L["Sleep"], rank = 3, duration = 40 }, - [770] = { name = "Faerie Fire", rank = 1, duration = 40 }, - [778] = { name = "Faerie Fire", rank = 2, duration = 40 }, - [9749] = { name = "Faerie Fire", rank = 3, duration = 40 }, - [9907] = { name = "Faerie Fire", rank = 4, duration = 40 }, + [770] = { name = L["Faerie Fire"], rank = 1, duration = 40 }, + [778] = { name = L["Faerie Fire"], rank = 2, duration = 40 }, + [9749] = { name = L["Faerie Fire"], rank = 3, duration = 40 }, + [9907] = { name = L["Faerie Fire"], rank = 4, duration = 40 }, - [16855] = { name = "Faerie Fire (Bear)", rank = 1, duration = 40 }, - [17387] = { name = "Faerie Fire (Bear)", rank = 2, duration = 40 }, - [17388] = { name = "Faerie Fire (Bear)", rank = 3, duration = 40 }, - [17389] = { name = "Faerie Fire (Bear)", rank = 4, duration = 40 }, + [16855] = { name = L["Faerie Fire (Bear)"], rank = 1, duration = 40 }, + [17387] = { name = L["Faerie Fire (Bear)"], rank = 2, duration = 40 }, + [17388] = { name = L["Faerie Fire (Bear)"], rank = 3, duration = 40 }, + [17389] = { name = L["Faerie Fire (Bear)"], rank = 4, duration = 40 }, - [16857] = { name = "Faerie Fire (Feral)", rank = 1, duration = 40 }, - [17390] = { name = "Faerie Fire (Feral)", rank = 2, duration = 40 }, - [17391] = { name = "Faerie Fire (Feral)", rank = 3, duration = 40 }, - [17392] = { name = "Faerie Fire (Feral)", rank = 4, duration = 40 }, + [16857] = { name = L["Faerie Fire (Feral)"], rank = 1, duration = 40 }, + [17390] = { name = L["Faerie Fire (Feral)"], rank = 2, duration = 40 }, + [17391] = { name = L["Faerie Fire (Feral)"], rank = 3, duration = 40 }, + [17392] = { name = L["Faerie Fire (Feral)"], rank = 4, duration = 40 }, - [2637] = { name = "Hibernate", rank = 1, duration = 20 }, - [18657] = { name = "Hibernate", rank = 2, duration = 30 }, - [18658] = { name = "Hibernate", rank = 3, duration = 40 }, + [2637] = { name = L["Hibernate"], rank = 1, duration = 20 }, + [18657] = { name = L["Hibernate"], rank = 2, duration = 30 }, + [18658] = { name = L["Hibernate"], rank = 3, duration = 40 }, - [5570] = { name = "Insect Swarm", rank = 1, duration = 12 }, - [24974] = { name = "Insect Swarm", rank = 2, duration = 12 }, - [24975] = { name = "Insect Swarm", rank = 3, duration = 12 }, - [24976] = { name = "Insect Swarm", rank = 4, duration = 12 }, - [24977] = { name = "Insect Swarm", rank = 5, duration = 12 }, + [5570] = { name = L["Insect Swarm"], rank = 1, duration = 12 }, + [24974] = { name = L["Insect Swarm"], rank = 2, duration = 12 }, + [24975] = { name = L["Insect Swarm"], rank = 3, duration = 12 }, + [24976] = { name = L["Insect Swarm"], rank = 4, duration = 12 }, + [24977] = { name = L["Insect Swarm"], rank = 5, duration = 12 }, - [8921] = { name = "Moonfire", rank = 1, duration = 9 }, - [8924] = { name = "Moonfire", rank = 2, duration = 12 }, - [8925] = { name = "Moonfire", rank = 3, duration = 12 }, - [8926] = { name = "Moonfire", rank = 4, duration = 12 }, - [8927] = { name = "Moonfire", rank = 5, duration = 12 }, - [8928] = { name = "Moonfire", rank = 6, duration = 12 }, - [8929] = { name = "Moonfire", rank = 7, duration = 12 }, - [9833] = { name = "Moonfire", rank = 8, duration = 12 }, - [9834] = { name = "Moonfire", rank = 9, duration = 12 }, - [9835] = { name = "Moonfire", rank = 10, duration = 12 }, + [8921] = { name = L["Moonfire"], rank = 1, duration = 9 }, + [8924] = { name = L["Moonfire"], rank = 2, duration = 12 }, + [8925] = { name = L["Moonfire"], rank = 3, duration = 12 }, + [8926] = { name = L["Moonfire"], rank = 4, duration = 12 }, + [8927] = { name = L["Moonfire"], rank = 5, duration = 12 }, + [8928] = { name = L["Moonfire"], rank = 6, duration = 12 }, + [8929] = { name = L["Moonfire"], rank = 7, duration = 12 }, + [9833] = { name = L["Moonfire"], rank = 8, duration = 12 }, + [9834] = { name = L["Moonfire"], rank = 9, duration = 12 }, + [9835] = { name = L["Moonfire"], rank = 10, duration = 12 }, - [1822] = { name = "Rake", rank = 1, duration = 9 }, - [1823] = { name = "Rake", rank = 2, duration = 9 }, - [1824] = { name = "Rake", rank = 3, duration = 9 }, - [9904] = { name = "Rake", rank = 4, duration = 9 }, + [1822] = { name = L["Rake"], rank = 1, duration = 9 }, + [1823] = { name = L["Rake"], rank = 2, duration = 9 }, + [1824] = { name = L["Rake"], rank = 3, duration = 9 }, + [9904] = { name = L["Rake"], rank = 4, duration = 9 }, - [1079] = { name = "Rip", rank = 1, duration = 12 }, - [9492] = { name = "Rip", rank = 2, duration = 12 }, - [9493] = { name = "Rip", rank = 3, duration = 12 }, - [9752] = { name = "Rip", rank = 4, duration = 12 }, - [9894] = { name = "Rip", rank = 5, duration = 12 }, - [9896] = { name = "Rip", rank = 6, duration = 12 }, + [1079] = { name = L["Rip"], rank = 1, duration = 12 }, + [9492] = { name = L["Rip"], rank = 2, duration = 12 }, + [9493] = { name = L["Rip"], rank = 3, duration = 12 }, + [9752] = { name = L["Rip"], rank = 4, duration = 12 }, + [9894] = { name = L["Rip"], rank = 5, duration = 12 }, + [9896] = { name = L["Rip"], rank = 6, duration = 12 }, - [2908] = { name = "Soothe Animal", rank = 1, duration = 15 }, - [8955] = { name = "Soothe Animal", rank = 2, duration = 15 }, - [9901] = { name = "Soothe Animal", rank = 3, duration = 15 }, + [2908] = { name = L["Soothe Animal"], rank = 1, duration = 15 }, + [8955] = { name = L["Soothe Animal"], rank = 2, duration = 15 }, + [9901] = { name = L["Soothe Animal"], rank = 3, duration = 15 }, - [5211] = { name = "Bash", rank = 1, duration = 2 }, - [6798] = { name = "Bash", rank = 2, duration = 3 }, - [8983] = { name = "Bash", rank = 3, duration = 4 }, + [5211] = { name = L["Bash"], rank = 1, duration = 2 }, + [6798] = { name = L["Bash"], rank = 2, duration = 3 }, + [8983] = { name = L["Bash"], rank = 3, duration = 4 }, - [22570] = { name = "Maim", rank = 1, duration = 5 }, - [49802] = { name = "Maim", rank = 2, duration = 5 }, - [49803] = { name = "Maim", rank = 3, duration = 5 }, + [22570] = { name = L["Maim"], rank = 1, duration = 5 }, + [49802] = { name = L["Maim"], rank = 2, duration = 5 }, + [49803] = { name = L["Maim"], rank = 3, duration = 5 }, - [99] = { name = "Demoralizing Roar", rank = 1, duration = 30 }, - [1735] = { name = "Demoralizing Roar", rank = 2, duration = 30 }, - [9490] = { name = "Demoralizing Roar", rank = 3, duration = 30 }, - [9747] = { name = "Demoralizing Roar", rank = 4, duration = 30 }, - [9898] = { name = "Demoralizing Roar", rank = 5, duration = 30 }, + [99] = { name = L["Demoralizing Roar"], rank = 1, duration = 30 }, + [1735] = { name = L["Demoralizing Roar"], rank = 2, duration = 30 }, + [9490] = { name = L["Demoralizing Roar"], rank = 3, duration = 30 }, + [9747] = { name = L["Demoralizing Roar"], rank = 4, duration = 30 }, + [9898] = { name = L["Demoralizing Roar"], rank = 5, duration = 30 }, - [5209] = { name = "Challenging Roar", rank = 1, duration = 6 }, + [5209] = { name = L["Challenging Roar"], rank = 1, duration = 6 }, } end diff --git a/spells/hunter.lua b/spells/hunter.lua index d18112b..b880a14 100644 --- a/spells/hunter.lua +++ b/spells/hunter.lua @@ -1,41 +1,42 @@ +local L = AceLibrary("AceLocale-2.2"):new("Cursive") function getHunterSpells() return { - [3043] = { name = "Scorpid Sting", rank = 1, duration = 20 }, - [14275] = { name = "Scorpid Sting", rank = 2, duration = 20 }, - [14276] = { name = "Scorpid Sting", rank = 3, duration = 20 }, - [14277] = { name = "Scorpid Sting", rank = 4, duration = 20 }, + [3043] = { name = L["Scorpid Sting"], rank = 1, duration = 20 }, + [14275] = { name = L["Scorpid Sting"], rank = 2, duration = 20 }, + [14276] = { name = L["Scorpid Sting"], rank = 3, duration = 20 }, + [14277] = { name = L["Scorpid Sting"], rank = 4, duration = 20 }, - [1978] = { name = "Serpent Sting", rank = 1, duration = 15 }, - [13549] = { name = "Serpent Sting", rank = 2, duration = 15 }, - [13550] = { name = "Serpent Sting", rank = 3, duration = 15 }, - [13551] = { name = "Serpent Sting", rank = 4, duration = 15 }, - [13552] = { name = "Serpent Sting", rank = 5, duration = 15 }, - [13553] = { name = "Serpent Sting", rank = 6, duration = 15 }, - [13554] = { name = "Serpent Sting", rank = 7, duration = 15 }, - [13555] = { name = "Serpent Sting", rank = 8, duration = 15 }, - [25295] = { name = "Serpent Sting", rank = 9, duration = 15 }, + [1978] = { name = L["Serpent Sting"], rank = 1, duration = 15 }, + [13549] = { name = L["Serpent Sting"], rank = 2, duration = 15 }, + [13550] = { name = L["Serpent Sting"], rank = 3, duration = 15 }, + [13551] = { name = L["Serpent Sting"], rank = 4, duration = 15 }, + [13552] = { name = L["Serpent Sting"], rank = 5, duration = 15 }, + [13553] = { name = L["Serpent Sting"], rank = 6, duration = 15 }, + [13554] = { name = L["Serpent Sting"], rank = 7, duration = 15 }, + [13555] = { name = L["Serpent Sting"], rank = 8, duration = 15 }, + [25295] = { name = L["Serpent Sting"], rank = 9, duration = 15 }, - [3034] = { name = "Viper Sting", rank = 1, duration = 8 }, - [14279] = { name = "Viper Sting", rank = 2, duration = 8 }, - [14280] = { name = "Viper Sting", rank = 3, duration = 8 }, + [3034] = { name = L["Viper Sting"], rank = 1, duration = 8 }, + [14279] = { name = L["Viper Sting"], rank = 2, duration = 8 }, + [14280] = { name = L["Viper Sting"], rank = 3, duration = 8 }, - [2974] = { name = "Wing Clip", rank = 1, duration = 10 }, - [14267] = { name = "Wing Clip", rank = 2, duration = 10 }, - [14268] = { name = "Wing Clip", rank = 3, duration = 10 }, + [2974] = { name = L["Wing Clip"], rank = 1, duration = 10 }, + [14267] = { name = L["Wing Clip"], rank = 2, duration = 10 }, + [14268] = { name = L["Wing Clip"], rank = 3, duration = 10 }, - [5116] = { name = "Concussive Shot", rank = 1, duration = 4 }, + [5116] = { name = L["Concussive Shot"], rank = 1, duration = 4 }, - [19386] = { name = "Wyvern Sting", rank = 1, duration = 12 }, - [24132] = { name = "Wyvern Sting", rank = 2, duration = 12 }, - [24133] = { name = "Wyvern Sting", rank = 3, duration = 12 }, + [19386] = { name = L["Wyvern Sting"], rank = 1, duration = 12 }, + [24132] = { name = L["Wyvern Sting"], rank = 2, duration = 12 }, + [24133] = { name = L["Wyvern Sting"], rank = 3, duration = 12 }, - [19306] = { name = "Counterattack", rank = 1, duration = 5 }, - [20909] = { name = "Counterattack", rank = 2, duration = 5 }, - [20910] = { name = "Counterattack", rank = 3, duration = 5 }, + [19306] = { name = L["Counterattack"], rank = 1, duration = 5 }, + [20909] = { name = L["Counterattack"], rank = 2, duration = 5 }, + [20910] = { name = L["Counterattack"], rank = 3, duration = 5 }, - [1130] = { name = "Hunter\'s Mark", rank = 1, duration = 120 }, - [14323] = { name = "Hunter\'s Mark", rank = 2, duration = 120 }, - [14324] = { name = "Hunter\'s Mark", rank = 3, duration = 120 }, - [14325] = { name = "Hunter\'s Mark", rank = 4, duration = 120 }, + [1130] = { name = L["Hunter\'s Mark"], rank = 1, duration = 120 }, + [14323] = { name = L["Hunter\'s Mark"], rank = 2, duration = 120 }, + [14324] = { name = L["Hunter\'s Mark"], rank = 3, duration = 120 }, + [14325] = { name = L["Hunter\'s Mark"], rank = 4, duration = 120 }, } end diff --git a/spells/mage.lua b/spells/mage.lua index 2fe4887..92a172b 100644 --- a/spells/mage.lua +++ b/spells/mage.lua @@ -1,12 +1,13 @@ +local L = AceLibrary("AceLocale-2.2"):new("Cursive") function getMageSpells() return { - [118] = { name = "Polymorph", rank = "Rank 1", duration = 20 }, - [12824] = { name = "Polymorph", rank = "Rank 2", duration = 30 }, - [12825] = { name = "Polymorph", rank = "Rank 3", duration = 40 }, - [12826] = { name = "Polymorph", rank = "Rank 4", duration = 50 }, + [118] = { name = L["Polymorph"], rank = L["Rank 1"], duration = 20 }, + [12824] = { name = L["Polymorph"], rank = L["Rank 2"], duration = 30 }, + [12825] = { name = L["Polymorph"], rank = L["Rank 3"], duration = 40 }, + [12826] = { name = L["Polymorph"], rank = L["Rank 4"], duration = 50 }, - [28270] = { name = "Polymorph: Cow", rank = "Rank 1", duration = 50 }, - [28271] = { name = "Polymorph: Turtle", rank = "Rank 1", duration = 50 }, - [28272] = { name = "Polymorph: Pig", rank = "Rank 1", duration = 50 }, + [28270] = { name = L["Polymorph: Cow"], rank = L["Rank 1"], duration = 50 }, + [28271] = { name = L["Polymorph: Turtle"], rank = L["Rank 1"], duration = 50 }, + [28272] = { name = L["Polymorph: Pig"], rank = L["Rank 1"], duration = 50 }, } end diff --git a/spells/priest.lua b/spells/priest.lua index e9122da..2f788db 100644 --- a/spells/priest.lua +++ b/spells/priest.lua @@ -1,49 +1,50 @@ +local L = AceLibrary("AceLocale-2.2"):new("Cursive") function getPriestSpells() return { - [1425] = { name = "Shackle Undead", rank = 1, duration = 30 }, - [9486] = { name = "Shackle Undead", rank = 2, duration = 40 }, - [10956] = { name = "Shackle Undead", rank = 3, duration = 50 }, + [1425] = { name = L["Shackle Undead"], rank = 1, duration = 30 }, + [9486] = { name = L["Shackle Undead"], rank = 2, duration = 40 }, + [10956] = { name = L["Shackle Undead"], rank = 3, duration = 50 }, - [453] = { name = "Mind Soothe", rank = 1, duration = 15 }, - [8192] = { name = "Mind Soothe", rank = 2, duration = 15 }, - [10953] = { name = "Mind Soothe", rank = 3, duration = 15 }, + [453] = { name = L["Mind Soothe"], rank = 1, duration = 15 }, + [8192] = { name = L["Mind Soothe"], rank = 2, duration = 15 }, + [10953] = { name = L["Mind Soothe"], rank = 3, duration = 15 }, - [605] = { name = "Mind Control", rank = 1, duration = 60 }, - [10911] = { name = "Mind Control", rank = 2, duration = 30 }, - [10912] = { name = "Mind Control", rank = 3, duration = 30 }, + [605] = { name = L["Mind Control"], rank = 1, duration = 60 }, + [10911] = { name = L["Mind Control"], rank = 2, duration = 30 }, + [10912] = { name = L["Mind Control"], rank = 3, duration = 30 }, - [2944] = { name = "Devouring Plague", rank = 1, duration = 24 }, - [19276] = { name = "Devouring Plague", rank = 2, duration = 24 }, - [19277] = { name = "Devouring Plague", rank = 3, duration = 24 }, - [19278] = { name = "Devouring Plague", rank = 4, duration = 24 }, - [19279] = { name = "Devouring Plague", rank = 5, duration = 24 }, - [19280] = { name = "Devouring Plague", rank = 6, duration = 24 }, + [2944] = { name = L["Devouring Plague"], rank = 1, duration = 24 }, + [19276] = { name = L["Devouring Plague"], rank = 2, duration = 24 }, + [19277] = { name = L["Devouring Plague"], rank = 3, duration = 24 }, + [19278] = { name = L["Devouring Plague"], rank = 4, duration = 24 }, + [19279] = { name = L["Devouring Plague"], rank = 5, duration = 24 }, + [19280] = { name = L["Devouring Plague"], rank = 6, duration = 24 }, - [9035] = { name = "Hex of Weakness", rank = 1, duration = 120 }, - [19281] = { name = "Hex of Weakness", rank = 2, duration = 120 }, - [19282] = { name = "Hex of Weakness", rank = 3, duration = 120 }, - [19283] = { name = "Hex of Weakness", rank = 4, duration = 120 }, - [19284] = { name = "Hex of Weakness", rank = 5, duration = 120 }, - [19285] = { name = "Hex of Weakness", rank = 6, duration = 120 }, + [9035] = { name = L["Hex of Weakness"], rank = 1, duration = 120 }, + [19281] = { name = L["Hex of Weakness"], rank = 2, duration = 120 }, + [19282] = { name = L["Hex of Weakness"], rank = 3, duration = 120 }, + [19283] = { name = L["Hex of Weakness"], rank = 4, duration = 120 }, + [19284] = { name = L["Hex of Weakness"], rank = 5, duration = 120 }, + [19285] = { name = L["Hex of Weakness"], rank = 6, duration = 120 }, - [589] = { name = "Shadow Word: Pain", rank = 1, duration = 24 }, -- assume they have talent - [594] = { name = "Shadow Word: Pain", rank = 2, duration = 24 }, - [970] = { name = "Shadow Word: Pain", rank = 3, duration = 24 }, - [992] = { name = "Shadow Word: Pain", rank = 4, duration = 24 }, - [2767] = { name = "Shadow Word: Pain", rank = 5, duration = 24 }, - [10892] = { name = "Shadow Word: Pain", rank = 6, duration = 24 }, - [10893] = { name = "Shadow Word: Pain", rank = 7, duration = 24 }, - [10894] = { name = "Shadow Word: Pain", rank = 8, duration = 24 }, + [589] = { name = L["Shadow Word: Pain"], rank = 1, duration = 24 }, -- assume they have talent + [594] = { name = L["Shadow Word: Pain"], rank = 2, duration = 24 }, + [970] = { name = L["Shadow Word: Pain"], rank = 3, duration = 24 }, + [992] = { name = L["Shadow Word: Pain"], rank = 4, duration = 24 }, + [2767] = { name = L["Shadow Word: Pain"], rank = 5, duration = 24 }, + [10892] = { name = L["Shadow Word: Pain"], rank = 6, duration = 24 }, + [10893] = { name = L["Shadow Word: Pain"], rank = 7, duration = 24 }, + [10894] = { name = L["Shadow Word: Pain"], rank = 8, duration = 24 }, - [15286] = { name = "Vampiric Embrace", rank = 1, duration = 60 }, + [15286] = { name = L["Vampiric Embrace"], rank = 1, duration = 60 }, - [14914] = { name = "Holy Fire", rank = 1, duration = 10 }, - [15262] = { name = "Holy Fire", rank = 2, duration = 10 }, - [15263] = { name = "Holy Fire", rank = 3, duration = 10 }, - [15264] = { name = "Holy Fire", rank = 4, duration = 10 }, - [15265] = { name = "Holy Fire", rank = 5, duration = 10 }, - [15266] = { name = "Holy Fire", rank = 6, duration = 10 }, - [15267] = { name = "Holy Fire", rank = 7, duration = 10 }, - [15261] = { name = "Holy Fire", rank = 8, duration = 10 }, + [14914] = { name = L["Holy Fire"], rank = 1, duration = 10 }, + [15262] = { name = L["Holy Fire"], rank = 2, duration = 10 }, + [15263] = { name = L["Holy Fire"], rank = 3, duration = 10 }, + [15264] = { name = L["Holy Fire"], rank = 4, duration = 10 }, + [15265] = { name = L["Holy Fire"], rank = 5, duration = 10 }, + [15266] = { name = L["Holy Fire"], rank = 6, duration = 10 }, + [15267] = { name = L["Holy Fire"], rank = 7, duration = 10 }, + [15261] = { name = L["Holy Fire"], rank = 8, duration = 10 }, } end diff --git a/spells/rogue.lua b/spells/rogue.lua index 762cce2..3f0d38c 100644 --- a/spells/rogue.lua +++ b/spells/rogue.lua @@ -1,16 +1,17 @@ +local L = AceLibrary("AceLocale-2.2"):new("Cursive") function getRogueSpells() return { - [2094] = { name = "Blind", rank = 1, duration = 10 }, - [21060] = { name = "Blind", rank = 1, duration = 10 }, + [2094] = { name = L["Blind"], rank = 1, duration = 10 }, + [21060] = { name = L["Blind"], rank = 1, duration = 10 }, - [6770] = { name = "Sap", rank = 1, duration = 25 }, - [2070] = { name = "Sap", rank = 2, duration = 35 }, - [11297] = { name = "Sap", rank = 3, duration = 45 }, + [6770] = { name = L["Sap"], rank = 1, duration = 25 }, + [2070] = { name = L["Sap"], rank = 2, duration = 35 }, + [11297] = { name = L["Sap"], rank = 3, duration = 45 }, - [1776] = { name = "Gouge", rank = 1, duration = 4 }, - [1777] = { name = "Gouge", rank = 2, duration = 4 }, - [8629] = { name = "Gouge", rank = 3, duration = 4 }, - [11285] = { name = "Gouge", rank = 4, duration = 4 }, - [11286] = { name = "Gouge", rank = 5, duration = 4 }, + [1776] = { name = L["Gouge"], rank = 1, duration = 4 }, + [1777] = { name = L["Gouge"], rank = 2, duration = 4 }, + [8629] = { name = L["Gouge"], rank = 3, duration = 4 }, + [11285] = { name = L["Gouge"], rank = 4, duration = 4 }, + [11286] = { name = L["Gouge"], rank = 5, duration = 4 }, } end diff --git a/spells/warlock.lua b/spells/warlock.lua index 9eec851..b091f0a 100644 --- a/spells/warlock.lua +++ b/spells/warlock.lua @@ -1,69 +1,70 @@ +local L = AceLibrary("AceLocale-2.2"):new("Cursive") function getWarlockSpells() return { - [172] = { name = "Corruption", rank = 1, duration = 12 }, - [6222] = { name = "Corruption", rank = 2, duration = 15 }, - [6223] = { name = "Corruption", rank = 3, duration = 18 }, - [7648] = { name = "Corruption", rank = 4, duration = 18 }, - [11671] = { name = "Corruption", rank = 5, duration = 18 }, - [11672] = { name = "Corruption", rank = 6, duration = 18 }, - [25311] = { name = "Corruption", rank = 7, duration = 18 }, + [172] = { name = L["Corruption"], rank = 1, duration = 12 }, + [6222] = { name = L["Corruption"], rank = 2, duration = 15 }, + [6223] = { name = L["Corruption"], rank = 3, duration = 18 }, + [7648] = { name = L["Corruption"], rank = 4, duration = 18 }, + [11671] = { name = L["Corruption"], rank = 5, duration = 18 }, + [11672] = { name = L["Corruption"], rank = 6, duration = 18 }, + [25311] = { name = L["Corruption"], rank = 7, duration = 18 }, - [980] = { name = "Curse of Agony", rank = 1, duration = 24 }, - [1014] = { name = "Curse of Agony", rank = 2, duration = 24 }, - [6217] = { name = "Curse of Agony", rank = 3, duration = 24 }, - [11711] = { name = "Curse of Agony", rank = 4, duration = 24 }, - [11712] = { name = "Curse of Agony", rank = 5, duration = 24 }, - [11713] = { name = "Curse of Agony", rank = 6, duration = 24 }, + [980] = { name = L["Curse of Agony"], rank = 1, duration = 24 }, + [1014] = { name = L["Curse of Agony"], rank = 2, duration = 24 }, + [6217] = { name = L["Curse of Agony"], rank = 3, duration = 24 }, + [11711] = { name = L["Curse of Agony"], rank = 4, duration = 24 }, + [11712] = { name = L["Curse of Agony"], rank = 5, duration = 24 }, + [11713] = { name = L["Curse of Agony"], rank = 6, duration = 24 }, - [603] = { name = "Curse of Doom", rank = 1, duration = 60 }, + [603] = { name = L["Curse of Doom"], rank = 1, duration = 60 }, - [704] = { name = "Curse of Recklessness", rank = 1, duration = 120 }, - [7658] = { name = "Curse of Recklessness", rank = 2, duration = 120 }, - [7659] = { name = "Curse of Recklessness", rank = 3, duration = 120 }, - [11717] = { name = "Curse of Recklessness", rank = 4, duration = 120 }, + [704] = { name = L["Curse of Recklessness"], rank = 1, duration = 120 }, + [7658] = { name = L["Curse of Recklessness"], rank = 2, duration = 120 }, + [7659] = { name = L["Curse of Recklessness"], rank = 3, duration = 120 }, + [11717] = { name = L["Curse of Recklessness"], rank = 4, duration = 120 }, - [17862] = { name = "Curse of Shadow", rank = 1, duration = 300 }, - [17937] = { name = "Curse of Shadow", rank = 2, duration = 300 }, + [17862] = { name = L["Curse of Shadow"], rank = 1, duration = 300 }, + [17937] = { name = L["Curse of Shadow"], rank = 2, duration = 300 }, - [1490] = { name = "Curse of the Elements", rank = 1, duration = 300 }, - [11721] = { name = "Curse of the Elements", rank = 2, duration = 300 }, - [11722] = { name = "Curse of the Elements", rank = 3, duration = 300 }, + [1490] = { name = L["Curse of the Elements"], rank = 1, duration = 300 }, + [11721] = { name = L["Curse of the Elements"], rank = 2, duration = 300 }, + [11722] = { name = L["Curse of the Elements"], rank = 3, duration = 300 }, - [1714] = { name = "Curse of Tongues", rank = 1, duration = 30 }, - [11719] = { name = "Curse of Tongues", rank = 2, duration = 30 }, + [1714] = { name = L["Curse of Tongues"], rank = 1, duration = 30 }, + [11719] = { name = L["Curse of Tongues"], rank = 2, duration = 30 }, - [702] = { name = "Curse of Weakness", rank = 1, duration = 120 }, - [1108] = { name = "Curse of Weakness", rank = 2, duration = 120 }, - [6205] = { name = "Curse of Weakness", rank = 3, duration = 120 }, - [7646] = { name = "Curse of Weakness", rank = 4, duration = 120 }, - [11707] = { name = "Curse of Weakness", rank = 5, duration = 120 }, - [11708] = { name = "Curse of Weakness", rank = 6, duration = 120 }, + [702] = { name = L["Curse of Weakness"], rank = 1, duration = 120 }, + [1108] = { name = L["Curse of Weakness"], rank = 2, duration = 120 }, + [6205] = { name = L["Curse of Weakness"], rank = 3, duration = 120 }, + [7646] = { name = L["Curse of Weakness"], rank = 4, duration = 120 }, + [11707] = { name = L["Curse of Weakness"], rank = 5, duration = 120 }, + [11708] = { name = L["Curse of Weakness"], rank = 6, duration = 120 }, - [18223] = { name = "Curse of Exhaustion", rank = 1, duration = 12 }, + [18223] = { name = L["Curse of Exhaustion"], rank = 1, duration = 12 }, - [348] = { name = "Immolate", rank = 1, duration = 15 }, - [707] = { name = "Immolate", rank = 2, duration = 15 }, - [1094] = { name = "Immolate", rank = 3, duration = 15 }, - [2941] = { name = "Immolate", rank = 4, duration = 15 }, - [11665] = { name = "Immolate", rank = 5, duration = 15 }, - [11667] = { name = "Immolate", rank = 6, duration = 15 }, - [11668] = { name = "Immolate", rank = 7, duration = 15 }, - [25309] = { name = "Immolate", rank = 8, duration = 15 }, + [348] = { name = L["Immolate"], rank = 1, duration = 15 }, + [707] = { name = L["Immolate"], rank = 2, duration = 15 }, + [1094] = { name = L["Immolate"], rank = 3, duration = 15 }, + [2941] = { name = L["Immolate"], rank = 4, duration = 15 }, + [11665] = { name = L["Immolate"], rank = 5, duration = 15 }, + [11667] = { name = L["Immolate"], rank = 6, duration = 15 }, + [11668] = { name = L["Immolate"], rank = 7, duration = 15 }, + [25309] = { name = L["Immolate"], rank = 8, duration = 15 }, - [6789] = { name = "Death Coil", rank = 1, duration = 3 }, - [17925] = { name = "Death Coil", rank = 2, duration = 3 }, - [17926] = { name = "Death Coil", rank = 3, duration = 3 }, + [6789] = { name = L["Death Coil"], rank = 1, duration = 3 }, + [17925] = { name = L["Death Coil"], rank = 2, duration = 3 }, + [17926] = { name = L["Death Coil"], rank = 3, duration = 3 }, - [710] = { name = "Banish", rank = 1, duration = 20 }, - [18647] = { name = "Banish", rank = 2, duration = 30 }, + [710] = { name = L["Banish"], rank = 1, duration = 20 }, + [18647] = { name = L["Banish"], rank = 2, duration = 30 }, - [18265] = { name = "Siphon Life", rank = 1, duration = 30 }, - [18879] = { name = "Siphon Life", rank = 2, duration = 30 }, - [18880] = { name = "Siphon Life", rank = 3, duration = 30 }, - [18881] = { name = "Siphon Life", rank = 4, duration = 30 }, + [18265] = { name = L["Siphon Life"], rank = 1, duration = 30 }, + [18879] = { name = L["Siphon Life"], rank = 2, duration = 30 }, + [18880] = { name = L["Siphon Life"], rank = 3, duration = 30 }, + [18881] = { name = L["Siphon Life"], rank = 4, duration = 30 }, - [5782] = { name = "Fear", rank = 1, duration = 10 }, - [6213] = { name = "Fear", rank = 2, duration = 15 }, - [6215] = { name = "Fear", rank = 3, duration = 20 }, + [5782] = { name = L["Fear"], rank = 1, duration = 10 }, + [6213] = { name = L["Fear"], rank = 2, duration = 15 }, + [6215] = { name = L["Fear"], rank = 3, duration = 20 }, } end diff --git a/ui.lua b/ui.lua index 994618e..a222afc 100644 --- a/ui.lua +++ b/ui.lua @@ -149,12 +149,22 @@ ui.BarUpdate = function() -- update caption text local name = UnitName(this.guid) local hp = UnitHealth(this.guid) + if GetLocale() == "zhCN" then + if hp then + if hp >= 10000 then + hp = math.floor(hp / 1000) / 10 .. "万" + -- elseif hp >= 1000 then + -- hp = math.floor(hp / 100) / 10 .. "k" + end + end + else -- convert hp to k if > 1000 - if hp then - if hp >= 1000000 then - hp = math.floor(hp / 100000) / 10 .. "m" - elseif hp >= 1000 then - hp = math.floor(hp / 100) / 10 .. "k" + if hp then + if hp >= 1000000 then + hp = math.floor(hp / 100000) / 10 .. "m" + elseif hp >= 1000 then + hp = math.floor(hp / 100) / 10 .. "k" + end end end From 2228e295508c1150aff3238426541c2e389a3683 Mon Sep 17 00:00:00 2001 From: jilinge2 Date: Fri, 27 Sep 2024 14:35:36 +0800 Subject: [PATCH 2/2] add zhCN locale --- Cursive.toc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Cursive.toc b/Cursive.toc index ab5edf0..6220f3d 100644 --- a/Cursive.toc +++ b/Cursive.toc @@ -1,7 +1,9 @@ ## Interface: 11200 ## Title: [|CFF33AAFFSUPERWOW|R] Cursive +## Title-zhCN: [|CFF33AAFFSUPERWOW|R] Cursive ## Author: Pepopo ## Notes: Uses SuperWoW GUIDs to show units in combat and track curses +## Notes-zhCN: 使用SuperWoW的GUID功能来显示战斗中的单位并监视诅咒等 ## Version: 1.0 ## SavedVariablesPerCharacter: CursiveDB ## X-Embeds: Ace2, FuBarPlugin-2.0, CompostLib, DewDropLib, TabletLib