vanilla-wow-addons – Rev 1
?pathlinks?
local MAJOR_VERSION = "Zone 1.2"
local MINOR_VERSION = tonumber(string.sub("$Revision: 8254 $", 12, -3))
if BabbleLib and BabbleLib.versions[MAJOR_VERSION] and BabbleLib.versions[MAJOR_VERSION].minor >= MINOR_VERSION then
return
end
local locale = GetLocale and GetLocale() or "enUS"
local totalZones = {
["Ahn'Qiraj"] = "Ahn'Qiraj", -- Check
["Alterac Mountains"] = "Alterac Mountains",
["Alterac Valley"] = "Alterac Valley",
["Arathi Basin"] = "Arathi Basin",
["Arathi Highlands"] = "Arathi Highlands",
["Ashenvale"] = "Ashenvale",
["Azshara"] = "Azshara",
["Badlands"] = "Badlands",
["The Barrens"] = "The Barrens",
["Blackfathom Deeps"] = "Blackfathom Deeps",
["Blackrock Depths"] = "Blackrock Depths",
["Blackrock Mountain"] = "Blackrock Mountain",
["Blackrock Spire"] = "Blackrock Spire",
["Blackwing Lair"] = "Blackwing Lair",
["Blasted Lands"] = "Blasted Lands",
["Booty Bay"] = "Booty Bay",
["Burning Steppes"] = "Burning Steppes",
["Caverns of Time"] = "Caverns of Time",
["Darkshore"] = "Darkshore",
["Darnassus"] = "Darnassus",
["The Deadmines"] = "The Deadmines",
["Deadwind Pass"] = "Deadwind Pass",
["Deeprun Tram"] = "Deeprun Tram",
["Desolace"] = "Desolace",
["Dire Maul"] = "Dire Maul",
["Dun Morogh"] = "Dun Morogh",
["Durotar"] = "Durotar",
["Duskwood"] = "Duskwood",
["Dustwallow Marsh"] = "Dustwallow Marsh",
["Eastern Plaguelands"] = "Eastern Plaguelands",
["Elwynn Forest"] = "Elwynn Forest",
["Felwood"] = "Felwood",
["Feralas"] = "Feralas",
["The Forbidding Sea"] = "The Forbidding Sea",
["Gadgetzan"] = "Gadgetzan",
["Gnomeregan"] = "Gnomeregan",
["The Great Sea"] = "The Great Sea",
["Hall of Legends"] = "Hall of Legends",
["Hillsbrad Foothills"] = "Hillsbrad Foothills",
["The Hinterlands"] = "The Hinterlands",
["Hyjal"] = "Hyjal",
["Ironforge"] = "Ironforge",
["Loch Modan"] = "Loch Modan",
["Maraudon"] = "Maraudon",
["Molten Core"] = "Molten Core",
["Moonglade"] = "Moonglade",
["Mulgore"] = "Mulgore",
["Naxxramas"] = "Naxxramas",
["Onyxia's Lair"] = "Onyxia's Lair",
["Orgrimmar"] = "Orgrimmar",
["Ratchet"] = "Ratchet",
["Ragefire Chasm"] = "Ragefire Chasm",
["Razorfen Downs"] = "Razorfen Downs",
["Razorfen Kraul"] = "Razorfen Kraul",
["Redridge Mountains"] = "Redridge Mountains",
["Ruins of Ahn'Qiraj"] = "Ruins of Ahn'Qiraj",
["Scarlet Monastery"] = "Scarlet Monastery",
["Scholomance"] = "Scholomance",
["Searing Gorge"] = "Searing Gorge",
["Shadowfang Keep"] = "Shadowfang Keep",
["Silithus"] = "Silithus",
["Silverpine Forest"] = "Silverpine Forest",
["The Stockade"] = "The Stockade",
["Stonetalon Mountains"] = "Stonetalon Mountains",
["Stormwind City"] = "Stormwind City",
["Stranglethorn Vale"] = "Stranglethorn Vale",
["Stratholme"] = "Stratholme",
["Swamp of Sorrows"] = "Swamp of Sorrows",
["Tanaris"] = "Tanaris",
["Teldrassil"] = "Teldrassil",
["Temple of Ahn'Qiraj"] = "Temple of Ahn'Qiraj",
["The Temple of Atal'Hakkar"] = "The Temple of Atal'Hakkar",
["Thousand Needles"] = "Thousand Needles",
["Thunder Bluff"] = "Thunder Bluff",
["Tirisfal Glades"] = "Tirisfal Glades",
["Uldaman"] = "Uldaman",
["Un'Goro Crater"] = "Un'Goro Crater",
["Undercity"] = "Undercity",
["Wailing Caverns"] = "Wailing Caverns",
["Warsong Gulch"] = "Warsong Gulch",
["Western Plaguelands"] = "Western Plaguelands",
["Westfall"] = "Westfall",
["Wetlands"] = "Wetlands",
["Winterspring"] = "Winterspring",
["Zul'Farrak"] = "Zul'Farrak",
["Zul'Gurub"] = "Zul'Gurub",
}
local englishToLocal
if locale == "deDE" then
englishToLocal = {
["Ahn'Qiraj"] = "Ahn'Qiraj", -- Check
["Alterac Mountains"] = "Alteracgebirge",
["Alterac Valley"] = "Alteractal",
["Arathi Basin"] = "Arathibecken",
["Arathi Highlands"] = "Arathihochland",
["Ashenvale"] = "Ashenvale",
["Azshara"] = "Azshara",
["Badlands"] = "\195\150dland",
["The Barrens"] = "Brachland",
["Blackfathom Deeps"] = "Blackfathom-Tiefe",
["Blackrock Depths"] = "Blackrocktiefen",
["Blackrock Mountain"] = "Der Blackrock",
["Blackrock Spire"] = "Blackrockspitze",
["Blackwing Lair"] = "Pechschwingenhort",
["Blasted Lands"] = "Verw\195\188steten Lande",
["Booty Bay"] = "Booty Bay",
["Burning Steppes"] = "Brennende Steppe",
["Caverns of Time"] = "Die H\195\182hlen der Zeit", -- Check
["Darkshore"] = "Dunkelk\195\188ste",
["Darnassus"] = "Darnassus",
["The Deadmines"] = "Die Todesminen",
["Deadwind Pass"] = "Gebirgspass der Totenwinde",
["Deeprun Tram"] = "Die Tiefenbahn",
["Desolace"] = "Desolace",
["Dire Maul"] = "D\195\188sterbruch",
["Dun Morogh"] = "Dun Morogh",
["Durotar"] = "Durotar",
["Duskwood"] = "D\195\164mmerwald",
["Dustwallow Marsh"] = "Marschen von Dustwallow",
["Eastern Plaguelands"] = "\195\150stliche Pestl\195\164nder",
["Elwynn Forest"] = "Wald von Elwynn",
["Felwood"] = "Teufelswald",
["Feralas"] = "Feralas",
["The Forbidding Sea"] = "Das verbotene Meer",
["Gadgetzan"] = "Gadgetzan",
["Gnomeregan"] = "Gnomeregan",
["The Great Sea"] = "Das grosse Meer",
["Hall of Legends"] = "Halle der Legenden",
["Hillsbrad Foothills"] = "Vorgebirge von Hillsbrad",
["The Hinterlands"] = "Hinterland",
["Hyjal"] = "Hyjal",
["Ironforge"] = "Ironforge",
["Loch Modan"] = "Loch Modan",
["Maraudon"] = "Maraudon",
["Molten Core"] = "Geschmolzener Kern",
["Moonglade"] = "Moonglade",
["Mulgore"] = "Mulgore",
["Naxxramas"] = "Naxxramas", --Check
["Onyxia's Lair"] = "Onyxias Hort",
["Orgrimmar"] = "Orgrimmar",
["Ratchet"] = "Ratchet",
["Ragefire Chasm"] = "Ragefireabgrund",
["Razorfen Downs"] = "Die H\195\188gel von Razorfen",
["Razorfen Kraul"] = "Der Kral von Razorfen",
["Redridge Mountains"] = "Rotkammgebirge",
["Ruins of Ahn'Qiraj"] = "Ruinen von Ahn'Qiraj",
["Scarlet Monastery"] = "Das Scharlachrote Kloster",
["Scholomance"] = "Scholomance",
["Searing Gorge"] = "Sengende Schlucht",
["Shadowfang Keep"] = "Burg Shadowfang",
["Silithus"] = "Silithus",
["Silverpine Forest"] = "Silberwald",
["The Stockade"] = "Das Verlies",
["Stonetalon Mountains"] = "Steinkrallengebirge",
["Stormwind City"] = "Stormwind",
["Stranglethorn Vale"] = "Schlingendorntal",
["Stratholme"] = "Stratholme",
["Swamp of Sorrows"] = "S\195\188mpfe des Elends",
["Tanaris"] = "Tanaris",
["Teldrassil"] = "Teldrassil",
["Temple of Ahn'Qiraj"] = "Tempel von Ahn'Qiraj",
["The Temple of Atal'Hakkar"] = "Der Tempel von Atal'Hakkar",
["Thousand Needles"] = "Tausend Nadeln",
["Thunder Bluff"] = "Thunder Bluff",
["Tirisfal Glades"] = "Tirisfal",
["Uldaman"] = "Uldaman",
["Un'Goro Crater"] = "Un'Goro-Krater",
["Undercity"] = "Undercity",
["Wailing Caverns"] = "Die H\195\182hlen des Wehklagens",
["Warsong Gulch"] = "Warsongschlucht",
["Western Plaguelands"] = "Westliche Pestl\195\164nder",
["Westfall"] = "Westfall",
["Wetlands"] = "Sumpfland",
["Winterspring"] = "Winterspring",
["Zul'Farrak"] = "Zul'Farrak",
["Zul'Gurub"] = "Zul'Gurub",
}
elseif locale == "frFR" then
englishToLocal = {
["Ahn'Qiraj"] = "Ahn'Qiraj", -- Check
["Alterac Mountains"] = "Montagnes d'Alterac",
["Alterac Valley"] = "Vall\195\169e d'Alterac",
["Arathi Basin"] = "Bassin d'Arathi",
["Arathi Highlands"] = "Hautes-terres d'Arathi",
["Ashenvale"] = "Ashenvale",
["Azshara"] = "Azshara",
["Badlands"] = "Terres ingrates",
["The Barrens"] = "Les Tarides",
["Blackfathom Deeps"] = "Profondeurs de Brassenoire",
["Blackrock Depths"] = "Profondeurs de Blackrock",
["Blackrock Mountain"] = "Mont Blackrock",
["Blackrock Spire"] = "Pic Blackrock",
["Blackwing Lair"] = "Repaire de l'Aile noire",
["Blasted Lands"] = "Terres foudroy\195\169es",
["Booty Bay"] = "Baie-du-Butin",
["Burning Steppes"] = "Steppes Ardentes",
["Caverns of Time"] = "Grottes du temps",
["Darkshore"] = "Sombrivage",
["Darnassus"] = "Darnassus",
["The Deadmines"] = "Les mortemines",
["Deadwind Pass"] = "D\195\169fil\195\169 de Deuillevent",
["Deeprun Tram"] = "Tram des profondeurs",
["Desolace"] = "D\195\169solace",
["Dire Maul"] = "Hache-Tripes",
["Dun Morogh"] = "Dun Morogh",
["Durotar"] = "Durotar",
["Duskwood"] = "Bois de la p\195\169nombre",
["Dustwallow Marsh"] = "Mar\195\169cage d'\195\130prefange",
["Eastern Plaguelands"] = "Maleterres de l'est",
["Elwynn Forest"] = "For\195\170t d'Elwynn",
["Felwood"] = "Gangrebois",
["Feralas"] = "Feralas",
["The Forbidding Sea"] = "La Mer interdite",
["Gadgetzan"] = "Gadgetzan", -- CHECK
["Gnomeregan"] = "Gnomeregan",
["The Great Sea"] = "La Grande mer",
["Hall of Legends"] = "Hall des L\195\169gendes",
["Hillsbrad Foothills"] = "Contreforts d'Hillsbrad",
["The Hinterlands"] = "Les Hinterlands",
["Hyjal"] = "Hyjal", -- CHECK
["Ironforge"] = "Ironforge",
["Loch Modan"] = "Loch Modan",
["Maraudon"] = "Maraudon",
["Molten Core"] = "C\221\181r du Magma",
["Moonglade"] = "Reflet-de-lune",
["Mulgore"] = "Mulgore",
["Onyxia's Lair"] = "Repaire d'Onyxia",
["Naxxramas"] = "Naxxramas", --Check
["Orgrimmar"] = "Orgrimmar",
["Ratchet"] = "Ratchet",
["Ragefire Chasm"] = "Gouffre de Ragefeu",
["Razorfen Downs"] = "Souilles de Tranchebauge",
["Razorfen Kraul"] = "Kraal de Tranchebauge",
["Redridge Mountains"] = "Les Carmines",
["Ruins of Ahn'Qiraj"] = "Ruines d'Ahn'Qiraj",
["Scarlet Monastery"] = "Monast\195\168re Ecarlate",
["Scholomance"] = "Scholomance",
["Searing Gorge"] = "Gorge des Vents br\195\187lants",
["Shadowfang Keep"] = "Donjon d'Ombrecroc",
["Silithus"] = "Silithus",
["Silverpine Forest"] = "For\195\170t des pins argent\195\169s",
["The Stockade"] = "La Prison",
["Stonetalon Mountains"] = "Les Serres-Rocheuses",
["Stormwind City"] = "Cit\195\169 de Stormwind",
["Stranglethorn Vale"] = "Vall\195\169e de Strangleronce",
["Stratholme"] = "Stratholme",
["Swamp of Sorrows"] = "Marais des Chagrins",
["Tanaris"] = "Tanaris",
["Teldrassil"] = "Teldrassil",
["Temple of Ahn'Qiraj"] = "Le temple d'Ahn'Qiraj",
["The Temple of Atal'Hakkar"] = "Le Temple d'Atal'Hakkar",
["Thousand Needles"] = "Mille pointes",
["Thunder Bluff"] = "Thunder Bluff",
["Tirisfal Glades"] = "Clairi\195\168res de Tirisfal",
["Uldaman"] = "Uldaman",
["Un'Goro Crater"] = "Crat\195\168re d'Un'Goro",
["Undercity"] = "Undercity",
["Wailing Caverns"] = "Cavernes des lamentations",
["Warsong Gulch"] = "Goulet des Warsong",
["Western Plaguelands"] = "Maleterres de l'ouest",
["Westfall"] = "Marche de l'Ouest",
["Wetlands"] = "Les Paluns",
["Winterspring"] = "Berceau-de-l'Hiver",
["Zul'Farrak"] = "Zul'Farrak",
["Zul'Gurub"] = "Zul'Gurub",
}
elseif locale == "zhCN" then
englishToLocal = {
["Ahn'Qiraj"] = "Ahn'Qiraj", -- Check
["Alterac Mountains"] = "\229\165\165\231\137\185\229\133\176\229\133\139\229\177\177\232\132\137",
["Alterac Valley"] = "\229\165\165\231\137\185\229\133\176\229\133\139\229\177\177\232\176\183",
["Arathi Basin"] = "\233\152\191\230\139\137\229\184\140\231\155\134\229\156\176",
["Arathi Highlands"] = "\233\152\191\230\139\137\229\184\140\233\171\152\229\156\176",
["Ashenvale"] = "\231\129\176\232\176\183",
["Azshara"] = "\232\137\190\232\144\168\230\139\137",
["Badlands"] = "\232\141\146\232\138\156\228\185\139\229\156\176",
["The Barrens"] = "\232\180\171\231\152\160\228\185\139\229\156\176",
["Blackfathom Deeps"] = "\233\187\145\230\154\151\230\183\177\230\184\138",
["Blackrock Depths"] = "\233\187\145\231\159\179\230\183\177\230\184\138",
["Blackrock Mountain"] = "\233\187\145\231\159\179\229\177\177",
["Blackrock Spire"] = "\233\187\145\231\159\179\229\161\148",
["Blackwing Lair"] = "\233\187\145\231\191\188\228\185\139\229\183\162",
["Blasted Lands"] = "\232\175\133\229\146\146\228\185\139\229\156\176",
["Booty Bay"] = "Booty Bay", -- CHECK
["Burning Steppes"] = "\231\135\131\231\131\167\229\185\179\229\142\159",
["Caverns of Time"] = "\230\151\182\229\133\137\228\185\139\231\169\180",
["Darkshore"] = "\233\187\145\230\181\183\229\178\184",
["Darnassus"] = "\232\190\190\231\186\179\232\139\143\230\150\175",
["The Deadmines"] = "\230\173\187\228\186\161\231\159\191\228\186\149",
["Deadwind Pass"] = "\233\128\134\233\163\142\229\176\143\229\190\132",
["Deeprun Tram"] = "\231\159\191\239\191\189?\239\191\189\229\156\176\239\191\189?", -- CHECK
["Desolace"] = "\229\135\132\229\135\137\228\185\139\229\156\176",
["Dire Maul"] = "\229\142\132\232\191\144\228\185\139\230\167\140",
["Dun Morogh"] = "\228\184\185\232\142\171\231\189\151",
["Durotar"] = "\230\157\156\233\154\134\229\161\148\229\176\148",
["Duskwood"] = "\230\154\174\232\137\178\230\163\174\230\158\151",
["Dustwallow Marsh"] = "\229\176\152\230\179\165\230\178\188\230\179\189",
["Eastern Plaguelands"] = "\228\184\156\231\152\159\231\150\171\228\185\139\229\156\176",
["Elwynn Forest"] = "\232\137\190\229\176\148\230\150\135\230\163\174\230\158\151",
["Felwood"] = "\232\180\185\228\188\141\229\190\183\230\163\174\230\158\151",
["Feralas"] = "\239\191\189?\239\191\189\230\139\137\230\150\175", -- CHECK
["The Forbidding Sea"] = "The Forbidding Sea",
["Gadgetzan"] = "Gadgetzan", -- CHECK
["Gnomeregan"] = "\232\175\186\232\142\171\231\145\158\230\160\185",
["The Great Sea"] = "The Great Sea", -- CHECK
["Hall of Legends"] = "Hall of Legends", -- CHECK
["Hillsbrad Foothills"] = "\229\184\140\229\176\148\230\150\175\229\184\131\232\142\177\229\190\183\228\184\152\233\153\181",
["The Hinterlands"] = "\232\190\155\231\137\185\229\133\176",
["Hyjal"] = "Hyjal", -- CHECK
["Ironforge"] = "\233\147\129\231\130\137\229\160\161",
["Loch Modan"] = "\230\180\155\229\133\139\232\142\171\228\184\185",
["Maraudon"] = "\231\142\155\230\139\137\233\161\191",
["Molten Core"] = "\231\134\148\231\129\171\228\185\139\229\191\131",
["Moonglade"] = "\230\156\136\229\133\137\230\158\151\229\156\176",
["Mulgore"] = "\232\142\171\233\171\152\233\155\183",
["Naxxramas"] = "Naxxramas", --Check
["Onyxia's Lair"] = "\229\165\165\229\166\174\229\133\139\232\165\191\228\186\154\231\154\132\229\183\162\231\169\180",
["Orgrimmar"] = "\229\165\165\230\160\188\231\145\158\231\142\155",
["Ratchet"] = "Ratchet", -- CHECK
["Ragefire Chasm"] = "\230\128\146\231\132\176\232\163\130\232\176\183",
["Razorfen Downs"] = "\229\137\131\229\136\128\233\171\152\229\156\176",
["Razorfen Kraul"] = "\229\137\131\229\136\128\230\178\188\230\179\189",
["Redridge Mountains"] = "\232\181\164\232\132\138\229\177\177",
["Ruins of Ahn'Qiraj"] = "\229\174\137\229\133\182\230\139\137\229\186\159\229\162\159",
["Scarlet Monastery"] = "\232\161\128\232\137\178\228\191\174\233\129\147\233\153\162",
["Scholomance"] = "\233\128\154\231\129\181\229\173\166\233\153\162", -- CHECK
["Searing Gorge"] = "\231\129\188\231\131\173\229\179\161\232\176\183",
["Shadowfang Keep"] = "\229\189\177\231\137\153\229\159\142\229\160\161",
["Silithus"] = "\229\184\140\229\136\169\239\191\189?\230\150\175", -- CHECK
["Silverpine Forest"] = "\233\147\182\239\191\189?\239\191\189\230\163\174\230\158\151", -- CHECK
["The Stockade"] = "\230\154\180\233\163\142\229\159\142\231\155\145\231\139\177",
["Stonetalon Mountains"] = "\231\159\179\231\136\170\229\177\177\232\132\137",
["Stormwind City"] = "\230\154\180\233\163\142\229\159\142",
["Stranglethorn Vale"] = "\232\141\134\230\163\152\232\176\183",
["Stratholme"] = "\230\150\175\229\157\166\231\180\162\229\167\134",
["Swamp of Sorrows"] = "\230\130\178\228\188\164\230\178\188\230\179\189",
["Tanaris"] = "\229\161\148\231\186\179\229\136\169\230\150\175",
["Teldrassil"] = "\230\179\176\232\190\190\229\184\140\229\176\148",
["Temple of Ahn'Qiraj"] = "\229\174\137\229\133\182\230\139\137\231\165\158\230\174\191",
["The Temple of Atal'Hakkar"] = "\233\152\191\229\161\148\229\147\136\239\191\189?\239\191\189\231\165\158\229\186\153", -- CHECK
["Thousand Needles"] = "\239\191\189?\239\191\189\233\146\136\231\159\179", -- CHECK
["Thunder Bluff"] = "\233\155\183\233\156\134\229\180\150",
["Tirisfal Glades"] = "\230\143\144\231\145\158\230\150\175\230\179\149\230\158\151\229\156\176",
["Uldaman"] = "\229\165\165\232\190\190\230\155\188",
["Un'Goro Crater"] = "\231\142\175\229\158\139\229\177\177",
["Undercity"] = "\229\185\189\230\154\151\229\159\142",
["Wailing Caverns"] = "\229\147\128\229\154\142\230\180\158\231\169\180",
["Warsong Gulch"] = "\230\136\152\230\173\140\229\179\161\232\176\183",
["Western Plaguelands"] = "\232\165\191\231\152\159\231\150\171\228\185\139\229\156\176",
["Westfall"] = "\232\165\191\233\131\168\232\141\146\233\135\142",
["Wetlands"] = "\230\185\191\229\156\176",
["Winterspring"] = "\229\134\172\230\179\137\232\176\183",
["Zul'Farrak"] = "\231\165\150\229\176\148\230\179\149\230\139\137\229\133\139",
["Zul'Gurub"] = "\231\165\150\229\176\148\230\160\188\230\139\137\229\184\131",
}
elseif locale == "koKR" then
englishToLocal = {
["Ahn'Qiraj"] = "안퀴라즈", -- 확인요망
["Alterac Mountains"] = "알터랙 산맥",
["Alterac Valley"] = "알터랙 계곡",
["Arathi Basin"] = "아라시 분지",
["Arathi Highlands"] = "아라시 고원",
["Ashenvale"] = "잿빛 골짜기",
["Azshara"] = "아즈샤라",
["Badlands"] = "황야의 땅",
["The Barrens"] = "불모의 땅",
["Blackfathom Deeps"] = "검은 심연의 나락",
["Blackrock Depths"] = "검은바위 나락",
["Blackrock Mountain"] = "검은바위 산",
["Blackrock Spire"] = "검은바위 첨탑",
["Blackwing Lair"] = "검은날개 둥지",
["Blasted Lands"] = "저주받은 땅",
["Booty Bay"] = "무법항",
["Burning Steppes"] = "불타는 평원",
["Caverns of Time"] = "시간의 동굴",
["Darkshore"] = "어둠의 해안",
["Darnassus"] = "다르나서스",
["The Deadmines"] = "죽음의 폐광",
["Deadwind Pass"] = "죽음의 고개",
["Deeprun Tram"] = "깊은굴 지하철",
["Desolace"] = "잊혀진 땅",
["Dire Maul"] = "혈투의 전장",
["Dun Morogh"] = "던 모로",
["Durotar"] = "듀로타",
["Duskwood"] = "그늘숲",
["Dustwallow Marsh"] = "먼지진흙 습지대",
["Eastern Plaguelands"] = "동부 역병지대",
["Elwynn Forest"] = "엘윈 숲",
["Felwood"] = "악령의 숲",
["Feralas"] = "페랄라스",
["The Forbidding Sea"] = "성난폭풍 해안",
["Gadgetzan"] = "가젯잔",
["Gnomeregan"] = "놈리건",
["The Great Sea"] = "대해",
["Hall of Legends"] = "용사의 전당",
["Hillsbrad Foothills"] = "힐스브래드 구릉지",
["The Hinterlands"] = "동부 내륙지",
["Hyjal"] = "하이잘",
["Ironforge"] = "아이언포지",
["Loch Modan"] = "모단 호수",
["Maraudon"] = "마라우돈",
["Molten Core"] = "화산 심장부",
["Moonglade"] = "달의 숲",
["Mulgore"] = "멀고어",
["Naxxramas"] = "낙스라마스",
["Onyxia's Lair"] = "오닉시아의 둥지",
["Orgrimmar"] = "오그리마",
["Ratchet"] = "톱니항",
["Ragefire Chasm"] = "성난 불길협곡",
["Razorfen Downs"] = "가시덩쿨 구릉",
["Razorfen Kraul"] = "가시덩쿨 우리",
["Redridge Mountains"] = "붉은마루 산맥",
["Ruins of Ahn'Qiraj"] = "안퀴라즈 폐허",
["Scarlet Monastery"] = "붉은 십자군 수도원",
["Scholomance"] = "스칼로맨스",
["Searing Gorge"] = "이글거리는 협곡",
["Shadowfang Keep"] = "그림자 송곳니 성채",
["Silithus"] = "실리더스",
["Silverpine Forest"] = "은빛소나무 숲",
["The Stockade"] = "지하감옥",
["Stonetalon Mountains"] = "돌발톱 산맥",
["Stormwind City"] = "스톰윈드",
["Stranglethorn Vale"] = "가시덤불 골짜기",
["Stratholme"] = "스트라솔름",
["Swamp of Sorrows"] = "슬픔의 늪",
["Tanaris"] = "타나리스",
["Teldrassil"] = "텔드랏실",
["Temple of Ahn'Qiraj"] = "안퀴라즈",
["The Temple of Atal'Hakkar"] = "아탈학카르 신전",
["Thousand Needles"] = "버섯구름 봉우리",
["Thunder Bluff"] = "썬더 블러프",
["Tirisfal Glades"] = "티리스팔 숲",
["Uldaman"] = "울다만",
["Un'Goro Crater"] = "운고로 분화구",
["Undercity"] = "언더시티",
["Wailing Caverns"] = "통곡의 동굴",
["Warsong Gulch"] = "전쟁노래 협곡",
["Western Plaguelands"] = "서부 역병지대",
["Westfall"] = "서부 몰락지대",
["Wetlands"] = "저습지",
["Winterspring"] = "여명의 설원",
["Zul'Farrak"] = "줄파락",
["Zul'Gurub"] = "줄구룹",
}
elseif locale ~= "enUS" then
-- no translations
englishToLocal = {
}
end
if englishToLocal then
for key in pairs(englishToLocal) do
if not totalZones[key] then
error("Improper translation exists. %q is likely misspelled for locale %s.", key, locale)
break
end
end
end
-------------IRIEL'S-STUB-CODE--------------
local stub = {};
-- Instance replacement method, replace contents of old with that of new
function stub:ReplaceInstance(old, new)
for k,v in pairs(old) do old[k]=nil; end
for k,v in pairs(new) do old[k]=v; end
end
-- Get a new copy of the stub
function stub:NewStub()
local newStub = {};
self:ReplaceInstance(newStub, self);
newStub.lastVersion = '';
newStub.versions = {};
return newStub;
end
-- Get instance version
function stub:GetInstance(version)
if (not version) then version = self.lastVersion; end
local versionData = self.versions[version];
if (not versionData) then
message("Cannot find library instance with version '"
.. version .. "'");
return;
end
return versionData.instance;
end
-- Register new instance
function stub:Register(newInstance)
local version,minor = newInstance:GetLibraryVersion();
self.lastVersion = version;
local versionData = self.versions[version];
if (not versionData) then
-- This one is new!
versionData = { instance = newInstance,
minor = minor,
old = {}
};
self.versions[version] = versionData;
newInstance:LibActivate(self);
return newInstance;
end
if (minor <= versionData.minor) then
-- This one is already obsolete
if (newInstance.LibDiscard) then
newInstance:LibDiscard();
end
return versionData.instance;
end
-- This is an update
local oldInstance = versionData.instance;
local oldList = versionData.old;
versionData.instance = newInstance;
versionData.minor = minor;
local skipCopy = newInstance:LibActivate(self, oldInstance, oldList);
table.insert(oldList, oldInstance);
if (not skipCopy) then
for i, old in ipairs(oldList) do
self:ReplaceInstance(old, newInstance);
end
end
return newInstance;
end
-- Bind stub to global scope if it's not already there
if (not BabbleLib) then
BabbleLib = stub:NewStub();
end
-- Nil stub for garbage collection
stub = nil;
-----------END-IRIEL'S-STUB-CODE------------
local function assert(condition, message)
if not condition then
local stack = debugstack()
local first = string.gsub(stack, "\n.*", "")
local file = string.gsub(first, "^(.*\\.*).lua:%d+: .*", "%1")
file = string.gsub(file, "([%(%)%.%*%+%-%[%]%?%^%$%%])", "%%%1")
if not message then
local _,_,second = string.find(stack, "\n(.-)\n")
message = "assertion failed! " .. second
end
message = "BabbleLib-Zone: " .. message
local i = 1
for s in string.gfind(stack, "\n([^\n]*)") do
i = i + 1
if not string.find(s, file .. "%.lua:%d+:") then
error(message, i)
return
end
end
error(message, 2)
return
end
return condition
end
local function argCheck(arg, num, kind, kind2, kind3, kind4)
if tostring(type(arg)) ~= kind then
if kind2 then
if tostring(type(arg)) ~= kind2 then
if kind3 then
if tostring(type(arg)) ~= kind3 then
if kind4 then
if tostring(type(arg)) ~= kind4 then
local _,_,func = string.find(debugstack(), "\n.-`(.-)'\n")
assert(false, format("Bad argument #%d to `%s' (%s, %s, %s, or %s expected, got %s)", num, func, kind, kind2, kind3, kind4, type(arg)))
end
else
local _,_,func = string.find(debugstack(), "\n.-`(.-)'\n")
assert(false, format("Bad argument #%d to `%s' (%s, %s, or %s expected, got %s)", num, func, kind, kind2, kind3, type(arg)))
end
end
else
local _,_,func = string.find(debugstack(), "\n.-`(.-)'\n")
assert(false, format("Bad argument #%d to `%s' (%s or %s expected, got %s)", num, func, kind, kind2, type(arg)))
end
end
else
local _,_,func = string.find(debugstack(), "\n.-`(.-)'\n")
assert(false, format("Bad argument #%d to `%s' (%s expected, got %s)", num, func, kind, type(arg)))
end
end
end
local lib = {}
local localToEnglish
if locale == "enUS" then
function lib:GetEnglish(zone)
argCheck(zone, 2, "string")
assert(totalZones[zone], format("Zone %q does not exist", zone))
return zone
end
function lib:GetLocalized(zone)
argCheck(zone, 2, "string")
assert(totalZones[zone], format("Zone %q does not exist", zone))
return zone
end
function lib:GetIterator()
return pairs(totalZones)
end
lib.GetReverseIterator = lib.GetIterator
function lib:HasZone(zone)
argCheck(zone, 2, "string")
return totalZones[zone] and true or false
end
else
function lib:GetEnglish(zone)
argCheck(zone, 2, "string")
local z = localToEnglish[zone]
assert(z, format("Zone %q does not exist or is not translated into %s", zone, locale))
return z
end
function lib:GetLocalized(zone)
argCheck(zone, 2, "string")
assert(totalZones[zone], format("Zone %q does not exist", zone))
local z = englishToLocal[zone]
assert(z, format("Zone %q is not translated into %s", zone, locale))
return z
end
local improperTranslation = nil
for zone in pairs(totalZones) do
if not englishToLocal[zone] then
improperTranslation = zone
break
end
end
if improperTranslation then
function lib:GetIterator()
assert(false, "Zone %q not translated into %s", improperTranslation, locale)
end
lib.GetReverseIterator = lib.GetIterator
else
function lib:GetIterator()
return pairs(englishToLocal)
end
function lib:GetReverseIterator()
return pairs(localToEnglish)
end
end
function lib:HasZone(zone)
argCheck(zone, 2, "string")
return (totalZones[zone] or localToEnglish[zone]) and true or false
end
end
function lib:GetLibraryVersion()
return MAJOR_VERSION, MINOR_VERSION
end
function lib:LibActivate(stub, oldLib, oldList)
if locale ~= "enUS" then
localToEnglish = {}
for english, localized in pairs(englishToLocal) do
localToEnglish[localized] = english
end
end
local mt = getmetatable(self) or {}
mt.__call = self.GetLocalized
setmetatable(self, mt)
end
function lib:LibDeactivate()
totalZones, localToEnglish, englishToLocal = nil
end
BabbleLib:Register(lib)
lib = nil