vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
------------------------------------------------------
-- GFWZones.lua
-- Utilities for working with geographic data 
------------------------------------------------------

GFWZONES_THIS_VERSION = 6;

------------------------------------------------------

if (GFWZones == nil) then
        GFWZones = {};
end

function GFWZones_temp_LocalizedZone(aZone)
        local localized = GFWZones.Localized[aZone];
        if (localized) then
                return localized;
        else
                return aZone;
        end     
end

function GFWZones_temp_UnlocalizedZone(aZone)
        local key = GFWTable.KeyOf(GFWZones.Localized, aZone);
        if (key) then
                return key;     
        else
                return aZone;
        end
end

function GFWZones_temp_ConnectionsForZone(aZone)

        local G = GFWZones;
        aZone = G.UnlocalizedZone(aZone);
        
        local zoneConnections = { };
        local _, myFaction = UnitFactionGroup("player");
        
        if not (G.AdjacentZones[aZone] or G.FlightZones[myFaction][aZone]) then return nil; end
        
        -- find zones one step away (adjacent to this zone or one flight/boat/zeppelin away)
        zoneConnections[1] = GFWTable.Merge(G.AdjacentZones[aZone], G.FlightZones[myFaction][aZone]);
        zoneConnections[1] = GFWTable.Subtract(zoneConnections[1], {aZone});
        
        -- then iterate to find zones more than one step away
        numSteps = 2;
        repeat  
                zoneConnections[numSteps] = { };
                for i=1, table.getn(zoneConnections[numSteps-1]) do
                        zoneConnections[numSteps] = GFWTable.Merge(zoneConnections[numSteps], G.FlightZones[myFaction][zoneConnections[numSteps-1][i]]);
                        zoneConnections[numSteps] = GFWTable.Merge(zoneConnections[numSteps], G.AdjacentZones[zoneConnections[numSteps-1][i]]);
                end
                for i=numSteps-1, 1, -1 do
                        zoneConnections[numSteps] = GFWTable.Subtract(zoneConnections[numSteps], zoneConnections[i]);
                end
                zoneConnections[numSteps] = GFWTable.Subtract(zoneConnections[numSteps], {aZone});
                numSteps = numSteps + 1;
        until (table.getn(zoneConnections[numSteps-1]) == 0 or numSteps == 10); -- don't want to go forever, seems like a reasonable cutoff

        return zoneConnections;

end


------------------------------------------------------
-- Zone Connection Data
------------------------------------------------------

local tempAdjacentZones = {
        ["Alterac Mountains"] = {"Silverpine Forest", "Hillsbrad Foothills", "Alterac Valley"},
        ["Arathi Highlands"] = {"Wetlands", "Hillsbrad Foothills"},
        ["Ashenvale"] = {"The Barrens", "Azshara", "Darkshore", "Felwood", "Stonetalon Mountains", "Blackfathom Deeps", "Warsong Gulch"},
        ["Azshara"] = {"Ashenvale"},
        ["Badlands"] = {"Loch Modan", "Searing Gorge", "Uldaman"},
        ["Blackrock Mountain"] = {"Searing Gorge", "Burning Steppes", "Blackrock Depths", "Blackrock Spire", "Molten Core"},
        ["Blasted Lands"] = {"Swamp of Sorrows"},
        ["Burning Steppes"] = {"Blackrock Mountain", "Redridge Mountains"},
        ["Ironforge"] = {"Dun Morogh"},
        ["Darkshore"] = {"Ashenvale", "Teldrassil", "Wetlands"}, -- boat
        ["Darnassus"] = {"Teldrassil"},
        ["Deadwind Pass"] = {"Duskwood", "Swamp of Sorrows"},
        ["Desolace"] = {"Stonetalon Mountains", "Feralas", "Desolace", "Maraudon"},
        ["Dun Morogh"] = {"Ironforge", "Loch Modan", "Gnomeregan"},
        ["Durotar"] = {"Orgrimmar", "The Barrens", "Stranglethorn Vale", "Tirisfal Glades"}, -- zeppelin
        ["Duskwood"] = {"Elwynn Forest", "Westfall", "Deadwind Pass", "Stranglethorn Vale"},
        ["Dustwallow Marsh"] = {"The Barrens", "Wetlands"}, -- boat
        ["Eastern Plaguelands"] = {"Western Plaguelands", "Stratholme", "Naxxramas" },
        ["Elwynn Forest"] = {"Stormwind City", "Westfall", "Duskwood", "Redridge Mountains"},
        ["Felwood"] = {"Ashenvale", "Moonglade", "Winterspring"},
        ["Feralas"] = {"Desolace", "Thousand Needles", "Dire Maul"},
        ["Hillsbrad Foothills"] = {"Silverpine Forest", "Alterac Mountains", "Arathi Highlands", "The Hinterlands"},
        ["Loch Modan"] = {"Dun Morogh", "Wetlands", "Badlands"},
        ["Moonglade"] = {"Felwood", "Winterspring"},
        ["Mulgore"] = {"Thunder Bluff", "The Barrens"},
        ["Naxxramas"] = { "Eastern Plaguelands" },
        ["Orgrimmar"] = {"The Barrens", "Durotar", "Ragefire Chasm"},
        ["Redridge Mountains"] = {"Elwynn Forest", "Duskwood", "Burning Steppes"},
        ["Searing Gorge"] = {"Badlands", "Blackrock Mountain"},
        ["Silithus"] = {"Un'goro Crater", "Gates of Ahn'Qiraj"},
        ["Silverpine Forest"] = {"Tirisfal Glades", "Hillsbrad Foothills", "Alterac Mountains", "Shadowfang Keep"},
        ["Stonetalon Mountains"] = {"Ashenvale", "The Barrens", "Desolace"},
        ["Stormwind City"] = {"Elwynn Forest", "The Stockade"},
        ["Stranglethorn Vale"] = {"Duskwood", "The Barrens", "Tirisfal Glades", "Durotar", "Zul'Gurub"}, -- boat, zeppelin
        ["Swamp of Sorrows"] = {"Deadwind Pass", "Blasted Lands", "The Temple of Atal'Hakkar"},
        ["Tanaris"] = {"Thousand Needles", "Un'Goro Crater", "Caverns of Time", "Zul'Farrak"},
        ["Teldrassil"] = {"Darnassus", "Darkshore"}, -- boat
        ["The Barrens"] = {"Durotar", "Mulgore", "Ashenvale", "Stonetalon Mountains", "Dustwallow Marsh", "Thousand Needles", "Stranglethorn Vale", "Wailing Caverns", "Razorfen Kraul", "Razorfen Downs", "Warsong Gulch"}, -- boat
        ["The Hinterlands"] = {"Hillsbrad Foothills", "Western Plaguelands"},
        ["Undercity"] = {"Tirisfal Glades"},
        ["Thousand Needles"] = {"The Barrens", "Feralas", "Tanaris"},
        ["Thunder Bluff"] = {"Mulgore"},
        ["Tirisfal Glades"] = {"Silverpine Forest", "Undercity", "Western Plaguelands", "Stranglethorn Vale", "Durotar", "Scarlet Monastery"}, -- zeppelin
        ["Un'Goro Crater"] = {"Tanaris", "Silithus"},
        ["Western Plaguelands"] = {"Tirisfal Glades", "Alterac Mountains", "The Hinterlands", "Eastern Plaguelands", "Scholomance"},
        ["Westfall"] = {"Elwynn Forest", "Duskwood", "The Deadmines"},
        ["Wetlands"] = {"Arathi Highlands", "Loch Modan", "Dustwallow Marsh"}, -- boat
        ["Winterspring"] = {"Moonglade", "Felwood"},

-- Instances / Battlegrounds / etc.
        ["Ruins of Ahn'Qiraj"] = {"Gates of Ahn'Qiraj"},
        ["Ahn'Qiraj"] = {"Gates of Ahn'Qiraj"},
        ["Gates of Ahn'Qiraj"] = {"Silithus", "Ruins of Ahn'Qiraj", "Ahn'Qiraj"},
        ["Arathi Basin"] = {"Arathi Highlands"},
        ["Alterac Valley"] = {"Alterac Mountains"},
        ["Blackfathom Deeps"] = {"Ashenvale"},
        ["Blackrock Depths"] = {"Blackrock Mountain", "Molten Core"},
        ["Blackrock Spire"] = {"Blackrock Mountain"},
        ["Caverns of Time"] = {"Tanaris"},
        ["Champions' Hall"] = {"Stormwind City"},
        ["Dire Maul"] = {"Feralas"},
        ["Gnomeregan"] = {"Dun Morogh"},
        ["Hall of Legends"] = {"Orgrimmar"},
        ["Maraudon"] = {"Desolace"},
        ["Onyxia's Lair"] = {"Dustwallow Marsh"},
        ["Ragefire Chasm"] = {"Orgrimmar"},
        ["Razorfen Downs"] = {"The Barrens", "Thousand Needles"},
        ["Razorfen Kraul"] = {"The Barrens"},
        ["Scarlet Monastery"] = {"Tirisfal Glades"},
        ["Scholomance"] = {"Western Plaguelands"},
        ["Shadowfang Keep"] = {"Silverpine Forest"},
        ["Stratholme"] = {"Eastern Plaguelands"},
        ["The Deadmines"] = {"Westfall"},
        ["Molten Core"] = {"Blackrock Depths", "Blackrock Mountain"},
        ["The Stockade"] = {"Stormwind City"},
        ["The Temple of Atal'Hakkar"] = {"Swamp of Sorrows"},
        ["Wailing Caverns"] = {"The Barrens"},
        ["Uldaman"] = {"Badlands"},
        ["Warsong Gulch"] = {"The Barrens", "Ashenvale"},
        ["Zul'Farrak"] = {"Tanaris"},
        ["Zul'Gurub"] = {"Stranglethorn Vale"},
};

local tempFlightZones = {
        [FACTION_ALLIANCE] = {
                -- Deeprun Tram is in here even though it's not a "flight" per se because Horde can't easily travel through it. 
                ["Arathi Highlands"] = {"Hillsbrad Foothills", "Ironforge", "The Hinterlands", "Loch Modan", "Wetlands", "Arathi Basin"},
                ["Ashenvale"] = {"Darkshore"},
                ["Azshara"] = {"Felwood", "Darkshore"},
                ["Blasted Lands"] = {"Duskwood", "Burning Steppes", "Stormwind City"},
                ["Burning Steppes"] = {"Blasted Lands", "Searing Gorge"},
                ["Ironforge"] = {"Arathi Highlands", "Wetlands", "Hillsbrad Foothills", "Stormwind City", "Loch Modan", "The Hinterlands", "Searing Gorge", "Deeprun Tram"},
                ["Darkshore"] = {"Teldrassil", "Ashenvale", "Moonglade", "Azshara", "Felwood", "Dustwallow Marsh", "Desolace", "Feralas"},
                ["Deeprun Tram"] = {"Ironforge", "Stormwind City"},
                ["Desolace"] = {"Darkshore", "Dustwallow Marsh", "Feralas"},
                ["Duskwood"] = {"Blasted Lands", "Redridge Mountains", "Westfall", "Stormwind City", "Stranglethorn Vale"},
                ["Dustwallow Marsh"] = {"Desolace", "Tanaris", "Darkshore", "Feralas"},
                ["Eastern Plaguelands"] = {"The Hinterlands"},
                ["Felwood"] = {"Winterspring", "Azshara", "Darkshore"},
                ["Feralas"] = {"Darkshore", "Desolace", "Tanaris", "Dustwallow Marsh"},
                ["Hillsbrad Foothills"] = {"Ironforge", "Wetlands", "Western Plaguelands", "The Hinterlands", "Arathi Highlands"},
                ["Loch Modan"] = {"Wetlands", "Ironforge", "Arathi Highlands"},
                ["Moonglade"] = {"Darkshore", "Winterspring"},
                ["Redridge Mountains"] = {"Duskwood", "Westfall", "Stormwind City"},
                ["Searing Gorge"] = {"Ironforge", "Burning Steppes"},
                ["Silithus"] = {"Tanaris"},
                ["Stonetalon Mountains"] = {"Darkshore"},
                ["Stormwind City"] = {"Stranglethorn Vale", "Westfall", "Ironforge", "Duskwood", "Redridge Mountains", "Blasted Lands", "Deeprun Tram"},
                ["Stranglethorn Vale"] = {"Duskwood", "Westfall", "Stormwind City"},
                ["Tanaris"] = {"Dustwallow Marsh", "Silithus", "Feralas"},
                ["Teldrassil"] = {"Darkshore"},
                ["The Hinterlands"] = {"Hillsbrad Foothills", "Ironforge", "Eastern Plaguelands", "Arathi Highlands"},
                ["Western Plaguelands"] = {"Hillsbrad Foothills"},
                ["Westfall"] = {"Stranglethorn Vale", "Duskwood", "Redridge Mountains", "Stormwind City"},
                ["Wetlands"] = {"Loch Modan", "Hillsbrad Foothills", "Arathi Highlands", "Ironforge"},
                ["Winterspring"] = {"Moonglade", "Felwood"},
        },
        [FACTION_HORDE] = {
                ["Arathi Highlands"] = {"Hillsbrad Foothills", "Undercity", "Badlands"},
                ["Ashenvale"] = {"Orgrimmar", "The Barrens"},
                ["Azshara"] = {"Orgrimmar", "The Barrens", "Felwood"},
                ["Badlands"] = {"Stranglethorn Vale", "Arathi Highlands", "Swamp of Sorrows", "Undercity", "Searing Gorge"},
                ["Burning Steppes"] = {"Searing Gorge"},
                ["Desolace"] = {"Stonetalon Mountains", "Thunder Bluff", "Feralas"},
                ["Dustwallow Marsh"] = {"Orgrimmar", "The Barrens", "Tanaris", "Mulgore"},
                ["Eastern Plaguelands"] = {"Undercity"},
                ["Felwood"] = {"Moonglade", "Orgrimmar", "Winterspring"},
                ["Feralas"] = {"The Barrens", "Thunder Bluff", "Tanaris", "Desolace"},
                ["Hillsbrad Foothills"] = {"The Hinterlands", "Undercity", "Arathi Highlands"},
                ["Moonglade"] = {"Felwood", "Winterspring"},
                ["Orgrimmar"] = {"Ashenvale", "Azshara", "Dustwallow Marsh", "Felwood", "Thunder Bluff", "The Barrens", "Winterspring", "Tanaris"},
                ["Searing Gorge"] = {"Badlands", "Burning Steppes"},
                ["Silithus"] = {"Tanaris"},
                ["Silverpine Forest"] = {"Undercity"},
                ["Stonetalon Mountains"] = {"Thunder Bluff", "The Barrens", "Desolace"},
                ["Stranglethorn Vale"] = {"Badlands", "Swamp of Sorrows"},
                ["Swamp of Sorrows"] = {"Stranglethorn Vale", "Badlands"},
                ["Tanaris"] = {"The Barrens", "Orgrimmar", "Thunder Bluff", "Feralas", "Dustwallow Marsh", "Silithus"},
                ["The Barrens"] = {"Orgrimmar", "Thunder Bluff", "Azshara", "Thousand Needles", "Tanaris", "Stonetalon Mountains", "Ashenvale", "Dustwallow Marsh", "Feralas"},
                ["The Hinterlands"] = {"Undercity", "Hillsbrad Foothills"},
                ["Undercity"] = {"The Hinterlands", "Badlands", "Silverpine Forest", "Hillsbrad Foothills", "Eastern Plaguelands", "Arathi Highlands"},
                ["Thousand Needles"] = {"The Barrens", "Thunder Bluff"},
                ["Thunder Bluff"] = {"Thousand Needles", "The Barrens", "Tanaris", "Stonetalon Mountains", "Orgrimmar", "Feralas", "Desolace", "Dustwallow Marsh"},
                ["Winterspring"] = {"Moonglade", "Orgrimmar", "Felwood"},
        },
};

------------------------------------------------------
-- load only if not already loaded
------------------------------------------------------

if (GFWZones == nil) then
        GFWZones = {};
end
local G = GFWZones;
if (G.Version == nil or (tonumber(G.Version) ~= nil and G.Version < GFWZONES_THIS_VERSION)) then

        -- load zone data
        if (GFWZones.Localized == nil) then
                GFWZones.Localized = {};
        end
        if (G.AdjacentZones == nil) then
                G.AdjacentZones = {};
        end
        for aZone, adjacentZones in tempAdjacentZones do
                if (G.AdjacentZones[aZone] == nil) then
                        G.AdjacentZones[aZone] = {};
                end
                G.AdjacentZones[aZone] = GFWTable.Merge(G.AdjacentZones[aZone], adjacentZones);
        end
        if (G.FlightZones == nil) then
                G.FlightZones = {};
        end
        for _, faction in {FACTION_ALLIANCE, FACTION_HORDE} do
                if (G.FlightZones[faction] == nil) then
                        G.FlightZones[faction] = {};
                end
                for aZone, flightZones in tempFlightZones[faction] do
                        if (G.FlightZones[faction][aZone] == nil) then
                                G.FlightZones[faction][aZone] = {};
                        end
                        G.FlightZones[faction][aZone] = GFWTable.Merge(G.FlightZones[faction][aZone], flightZones);
                end
        end

        -- Functions
        G.LocalizedZone = GFWZones_temp_LocalizedZone;
        G.UnlocalizedZone = GFWZones_temp_UnlocalizedZone;
        G.ConnectionsForZone = GFWZones_temp_ConnectionsForZone;
        
        -- Set version number
        G.Version = GFWZONES_THIS_VERSION;
end

------------------------------------------------------
-- localized zone names (only those that differ from the enUS version should be present)
------------------------------------------------------

if ( GetLocale() == "deDE" ) then
        GFWZones.Localized["Alterac Mountains"] = "Das Alteracgebirge";
        GFWZones.Localized["Alterac Valley"] = "Alteractal";
        GFWZones.Localized["Arathi Basin"] = "Arathibecken";
        GFWZones.Localized["Arathi Highlands"] = "Das Arathihochland";
        GFWZones.Localized["Badlands"] = "Das Ödland";
        GFWZones.Localized["Blackfathom Deeps"] = "Blackfathom-Tiefe";
        GFWZones.Localized["Blackrock Depths"] = "Blackrocktiefen";
        GFWZones.Localized["Blackrock Mountain"] = "Der Blackrock";
        GFWZones.Localized["Blackrock Spire"] = "Blackrockspitze";
        GFWZones.Localized["Blasted Lands"] = "Die verwüsteten Lande";
        GFWZones.Localized["Burning Steppes"] = "Die brennende Steppe";
        GFWZones.Localized["Deeprun Tram"] = "Die Tiefenbahn";
        GFWZones.Localized["Dire Maul"] = "Düsterbruch";
        GFWZones.Localized["Dustwallow Marsh"] = "Die Marschen von Dustwallow";
        GFWZones.Localized["Eastern Plaguelands"] = "Die östlichen Pestländer";
        GFWZones.Localized["Elwynn Forest"] = "Der Wald von Elwynn";
        GFWZones.Localized["Hillsbrad Foothills"] = "Die Vorgebirge von Hillsbrad";
        GFWZones.Localized["Molten Core"] = "Geschmolzener Kern";
        GFWZones.Localized["Onyxia's Lair"] = "Onyxias Hort";
        GFWZones.Localized["Ragefire Chasm"] = "Ragefireabgrund";
        GFWZones.Localized["Razorfen Downs"] = "Die Hügel von Razorfen";
        GFWZones.Localized["Redridge Mountains"] = "Das Redridgegebirge";
        GFWZones.Localized["Scarlet Monastery"] = "Das scharlachrote Kloster";
        GFWZones.Localized["Searing Gorge"] = "Die Sengende Schlucht";
        GFWZones.Localized["Shadowfang Keep"] = "Burg Shadowfang";
        GFWZones.Localized["Silverpine Forest"] = "Der Silberwald";
        GFWZones.Localized["Stonetalon Mountains"] = "Das Steinkrallengebirge";
        GFWZones.Localized["Stormwind City"] = "Stormwind";
        GFWZones.Localized["Stranglethorn Vale"] = "Stranglethorn";
        GFWZones.Localized["Swamp of Sorrows"] = "Die Sümpfe des Elends";
        GFWZones.Localized["The Barrens"] = "Das Brachland";
        GFWZones.Localized["The Deadmines"] = "Die Todesminen";
        GFWZones.Localized["The Hinterlands"] = "Das Hinterland";
        GFWZones.Localized["The Stockade"] = "Die Palisade";
        GFWZones.Localized["Tirisfal Glades"] = "Tirisfal";
        GFWZones.Localized["Un'Goro Crater"] = "Der Un'Goro Krater";
        GFWZones.Localized["Wailing Caverns"] = "Die Höhlen des Wehklagens";
        GFWZones.Localized["Warsong Gulch"] = "Warsongschlucht";
        GFWZones.Localized["Western Plaguelands"] = "Die westlichen Pestländer";
        GFWZones.Localized["Wetlands"] = "Das Sumpfland";
end

if ( GetLocale() == "frFR" ) then
        GFWZones.Localized["Alterac Mountains"] = "Montagnes d'Alterac";
        GFWZones.Localized["Alterac Valley"] = "Vallée d'Alterac";
        GFWZones.Localized["Blackfathom Deeps"] = "Profondeurs de Blackfathom";
        GFWZones.Localized["Blackrock Depths"] = "Profondeurs de Blackrock";
        GFWZones.Localized["Blackrock Mountain"] = "Montagnes Blackrock";
        GFWZones.Localized["Blackrock Spire"] = "Pic de Blackrock";
        GFWZones.Localized["Burning Steppes"] = "Steppes Ardentes";
        GFWZones.Localized["Deeprun Tram"] = "Tramway des abysses";
        GFWZones.Localized["Dun Morogh"] = "Dun Modr";
        GFWZones.Localized["Dustwallow Marsh"] = "Marais de Dustwallow";
        GFWZones.Localized["Eastern Plaguelands"] = "Plaguelands de l'est";
        GFWZones.Localized["Elwynn Forest"] = "Forêt d'Elwynn";
        GFWZones.Localized["Hillsbrad Foothills"] = "Collines de Hillsbrad";
        GFWZones.Localized["Molten Core"] = "Noyau fondu";
        GFWZones.Localized["Onyxia's Lair"] = "Repère d'Onyxia";
        GFWZones.Localized["Ragefire Chasm"] = "Gouffre de Ragefire";
        GFWZones.Localized["Razorfen Downs"] = "Dunes de Razorfen";
        GFWZones.Localized["Redridge Mountains"] = "Montagnes de Redridge";
        GFWZones.Localized["Scarlet Monastery"] = "Monastère de la Phalange";
        GFWZones.Localized["Searing Gorge"] = "Gorge de Searing";
        GFWZones.Localized["Shadowfang Keep"] = "Donjon de Shadowfang";
        GFWZones.Localized["Silverpine Forest"] = "Forêt de Silverpine";
        GFWZones.Localized["Stonetalon Mountains"] = "Monts Stonetalon";
        GFWZones.Localized["Stormwind City"] = "Cité de Stormwind";
        GFWZones.Localized["Stranglethorn Vale"] = "Vallée de Stranglethorn";
        GFWZones.Localized["Swamp of Sorrows"] = "Marais des lamentations";
        GFWZones.Localized["The Barrens"] = "Les Barrens";
        GFWZones.Localized["The Deadmines"] = "Les Deadmines";
        GFWZones.Localized["The Hinterlands"] = "Les Hinterlands";
        GFWZones.Localized["The Stockade"] = "La Prison";
        GFWZones.Localized["Thousand Needles"] = "Mille pointes";
        GFWZones.Localized["Tirisfal Glades"] = "Prairies de Tirisfal";
        GFWZones.Localized["Un'Goro Crater"] = "Cratère d'Un'Goro";
        GFWZones.Localized["Wailing Caverns"] = "Cavernes des lamentations";
        GFWZones.Localized["Western Plaguelands"] = "Plaguelands de l'ouest";
end

if ( GetLocale() == "koKR" ) then
        GFWZones.Localized["Alterac Mountains"] = "알터랙 산맥";
        GFWZones.Localized["Arathi Highlands"] = "아라시 고원";
        GFWZones.Localized["Ashenvale"] = "잿빛 골짜기";
        GFWZones.Localized["Azshara"] = "아즈샤라";
        GFWZones.Localized["Badlands"] = "황야의 땅";
        GFWZones.Localized["Blackrock Depths"] = "검은바위 나락";
        GFWZones.Localized["Blasted Lands"] = "저주받은 땅";
        GFWZones.Localized["Burning Steppes"] = "이글거리는 협곡";
        GFWZones.Localized["Darkshore"] = "어둠의 해안";
        GFWZones.Localized["Darnassus"] = "다르나서스";
        GFWZones.Localized["Desolace"] = "잊혀진 땅";
        GFWZones.Localized["Dire Maul"] = "혈투의 전장";
        GFWZones.Localized["Dun Morogh"] = "던 모로";
        GFWZones.Localized["Durotar"] = "듀로타";
        GFWZones.Localized["Duskwood"] = "그늘숲";
        GFWZones.Localized["Eastern Plaguelands"] = "동부 역병지대";
        GFWZones.Localized["Elwynn Forest"] = "엘윈숲";
        GFWZones.Localized["Felwood"] = "악령의 숲";
        GFWZones.Localized["Feralas"] = "페랄라스";
        GFWZones.Localized["Gnomeregan"] = "놈리건";
        GFWZones.Localized["Hillsbrad Foothills"] = "힐스브래드 구릉지";
        GFWZones.Localized["Ironforge"] = "아이언포지";
        GFWZones.Localized["Loch Modan"] = "모단 호수";
        GFWZones.Localized["Moonglade"] = "달의 숲";
        GFWZones.Localized["Mulgore"] = "멀고어";
        GFWZones.Localized["Orgrimmar"] = "오그리마";
        GFWZones.Localized["Redridge Mountains"] = "붉은마루 산맥";
        GFWZones.Localized["Silithus"] = "실리더스";
        GFWZones.Localized["Silverpine Forest"] = "은빛 소나무숲";
        GFWZones.Localized["Stonetalon Mountains"] = "돌발톱 산맥";
        GFWZones.Localized["Stormwind City"] = "스톰윈드";
        GFWZones.Localized["Stranglethorn Vale"] = "가시덤불 골짜기";
        GFWZones.Localized["Swamp of Sorrows"] = "슬픔의 늪";
        GFWZones.Localized["Tanaris"] = "타나리스";
        GFWZones.Localized["Teldrassil"] = "텔드랏실";
        GFWZones.Localized["The Barrens"] = "불모의 땅";
        GFWZones.Localized["The Hinterlands"] = "동부 내륙지";
        GFWZones.Localized["Thousand Needles"] = "버섯구름 봉우리";
        GFWZones.Localized["Thunder Bluff"] = "썬더 블러프";
        GFWZones.Localized["Tirisfal Glades"] = "티리스팔 숲";
        GFWZones.Localized["Un'Goro Crater"] = "운고로 분화구";
        GFWZones.Localized["Undercity"] = "언더시티";
        GFWZones.Localized["Wailing Caverns"] = "통곡의 동굴";
        GFWZones.Localized["Western Plaguelands"] = "서부 역병지대";
        GFWZones.Localized["Westfall"] = "서부 몰락지대";
        GFWZones.Localized["Wetlands"] = "저습지";
end

if ( GetLocale() == "zhCN" ) then
        GFWZones.Localized["Alterac Mountains"] = "奥特兰克山脉";
        GFWZones.Localized["Arathi Highlands"] = "阿拉希高地";
        GFWZones.Localized["Ashenvale"] = "灰谷";
        GFWZones.Localized["Azshara"] = "艾萨拉";
        GFWZones.Localized["Badlands"] = "荒芜之地";
        GFWZones.Localized["Blackrock Depths"] = "黑石深渊";
        GFWZones.Localized["Blasted Lands"] = "诅咒之地";
        GFWZones.Localized["Burning Steppes"] = "燃烧平原";
        GFWZones.Localized["Darkshore"] = "黑海岸";
        GFWZones.Localized["Darnassus"] = "达纳苏斯";
        GFWZones.Localized["Desolace"] = "凄凉之地";
        GFWZones.Localized["Dire Maul"] = "厄运之槌";
        GFWZones.Localized["Dun Morogh"] = "丹莫罗";
        GFWZones.Localized["Durotar"] = "杜隆塔尔";
        GFWZones.Localized["Duskwood"] = "      暮色森林";
        GFWZones.Localized["Eastern Plaguelands"] = "东瘟疫之地";
        GFWZones.Localized["Elwynn Forest"] = "艾尔文森林";
        GFWZones.Localized["Felwood"] = "费伍德森林";
        GFWZones.Localized["Feralas"] = "菲拉斯";
        GFWZones.Localized["Gnomeregan"] = "诺莫瑞根";
        GFWZones.Localized["Hillsbrad Foothills"] = "希尔斯布莱德丘陵";
        GFWZones.Localized["Ironforge"] = "铁炉堡";
        GFWZones.Localized["Loch Modan"] = "洛克莫丹";
        GFWZones.Localized["Moonglade"] = "月光林地";
        GFWZones.Localized["Mulgore"] = "莫高雷";
        GFWZones.Localized["Orgrimmar"] = "奥格瑞玛";
        GFWZones.Localized["Redridge Mountains"] = "赤脊山";
        GFWZones.Localized["Silithus"] = "希利苏斯";
        GFWZones.Localized["Silverpine Forest"] = "银松森林";
        GFWZones.Localized["Stonetalon Mountains"] = "石爪山脉";
        GFWZones.Localized["Stormwind City"] = "暴风城";
        GFWZones.Localized["Stranglethorn Vale"] = "荆棘谷";
        GFWZones.Localized["Swamp of Sorrows"] = "悲伤沼泽";
        GFWZones.Localized["Tanaris"] = "塔纳利斯";
        GFWZones.Localized["Teldrassil"] = "泰达希尔";
        GFWZones.Localized["The Barrens"] = "贫瘠之地";
        GFWZones.Localized["The Hinterlands"] = "辛特兰";
        GFWZones.Localized["Thousand Needles"] = "千针石林";
        GFWZones.Localized["Thunder Bluff"] = "雷霆崖";
        GFWZones.Localized["Tirisfal Glades"] = "提瑞斯法林地";
        GFWZones.Localized["Un'Goro Crater"] = "安戈洛环形山";
        GFWZones.Localized["Undercity"] = "幽暗城";
        GFWZones.Localized["Wailing Caverns"] = "哀嚎洞穴";
        GFWZones.Localized["Western Plaguelands"] = "西瘟疫之地";
        GFWZones.Localized["Westfall"] = "西部荒野";
        GFWZones.Localized["Wetlands"] = "湿地";
end