LibBabble-SubZone-3.0
Overview
LibBabble-SubZone-3.0 is a localization library for World of Warcraft zone, subzone, and location names.
It complements the names available through the WoW client APIs and LibBabble-Zone-3.0. Its purpose is to provide localized names for additional subzones and locations that may not be available, complete, or consistent through those sources alone.
This is a library for addon authors. It does not provide a user interface or gameplay features by itself.
What It Provides
The library contains localized names for a wide range of World of Warcraft locations, including:
- Zones and subzones
- Instance and scenario locations
- Points of interest and notable map locations
- Taxi-node-related locations
- World Model Object (WMO) areas
- Other location names found in supported game-data tables
The database is generated from WoW client data and filtered to exclude clearly invalid or unused entries, such as names containing NOTUSED.
For Addon Authors
Use this library when your addon needs to display a localized zone, subzone, or location name and the name is not reliably available from the WoW APIs or LibBabble-Zone-3.0.
Because this is an embedded library, end users usually do not need to install or update it separately. Addons that depend on it should include a compatible release or declare it as an optional dependency, according to their packaging requirements.
Usage
Retrieve the library through LibStub and use an English location name as the lookup key:
local SubZone = LibStub("LibBabble-SubZone-3.0")
local localizedName = SubZone:GetLookupTable()["Dun Morogh"]
GetLookupTable() first asks the client APIs for a localized name using generated AreaTable and UiMap ID indexes, then falls back to the current-locale table. If no translation or API result exists for a known key, it returns the English key. Addons should use this lookup table when they want the runtime resolver. GetUnstrictLookupTable(), reverse lookup methods, and Iterate() expose raw static locale data and do not invoke the resolver.
To find English keys for a localized value, use GetReverseLookupTable() for one match or GetReverseIterator() for every match. Iterate() traverses the current English-to-localized translation pairs:
for englishName, localizedName in SubZone:Iterate() do
-- Use each translated location name.
end
for englishName in SubZone:GetReverseIterator(localizedName) do
-- Handle every English key with this localized value.
end
For an area name present in the client area map, GetAreaInfo() returns the localized name provided by the WoW client:
local localizedName = SubZone:GetAreaInfo("Dun Morogh")
It returns nil when the input is missing, is not in the map for the current game version, or the client has no area name for its ID. The same method also checks generated UiMap candidates.
Building A Combined Lookup Table
Some addons, including Atlas, copy LibBabble data into their own table instead of retaining the LibBabble lookup table. In that case, start with GetLookupTable() so API-backed names are resolved, and provide an English fallback for names that are unavailable in the client API:
local function GetSubZoneNames()
local library = LibStub("LibBabble-SubZone-3.0")
local names = {}
local lookup = library:GetLookupTable()
local base = library:GetBaseLookupTable()
for englishName in pairs(base) do
names[englishName] = lookup[englishName] or englishName
end
return names
end
Localization
Most localized zone, subzone, and location names are extracted from the World of Warcraft game client.
Users do not normally need to provide translations manually. If you find a missing, incorrect, or inconsistent name, please report it through the project’s issue tracker or CurseForge comments.
When reporting an issue, include as much context as possible:
- The English location name
- The affected game locale
- The name shown in the game client, if available
- The zone, subzone, map, or instance where it appears
- A screenshot, area ID, or other reference when possible
Some entries may appear untranslated because the localized name is identical to the English name.
Known Limitations
Location names in World of Warcraft game data are not always unique.
The same English name can occur in multiple records and may legitimately have different localized translations depending on context. LibBabble-SubZone-3.0 stores one translation for each English lookup key, so it cannot represent every context-specific variation.
If you find an incorrect, missing, or inconsistent translation, please report it with as much context as possible, including:
- The English location name
- The affected game locale
- The correct localized name
- The map, zone, subzone, or game-data context
- A screenshot or game reference, if available
Please note that regenerated game-data exports can overwrite manual corrections. Including an explanation in the report helps preserve the intended correction during future updates.
Missing Locations and Issues
If a zone, subzone, or location is missing from the library, please report it through the project’s issue tracker.
Include the English name, localized name if known, game version, and any available context such as the map name, coordinates, area ID, or a screenshot.
Projects Using This Library
LibBabble-SubZone-3.0 is used by addons that need localized location-name lookups, including projects such as Atlas and FishingBuddy.
For the current list of known dependents, see the project’s Relations page.
-
View User Profile
-
Send Message
Posted Nov 4, 2024An inconsistency was observed with the discovery text for Halls of Stone and some other subzones in the German translation where it was prefixed with Die but in the system chat message, this was missing. I observed a similar situation in the French translation where other hall related entries aren't prefixed but Halls of Stone is again in this situation. Not sure if those are accurate or not, but noted the pattern.
Not sure how many other or which entries this may apply to but wanted to relay another user's experience observed when using an addon of mine.
-
View User Profile
-
Send Message
Posted Feb 21, 2022The current release (observed with BCC 9.1-release4) has some defective translations for the deDE client, e.g. Gnomeregan and Auchindoun.
Since those entries are set to boolean instead of the correct translated string, Atlas won't load properly.
-
View User Profile
-
Send Message
Posted Feb 23, 2022In reply to humfras:
Thanks for reporting this, will fix in next release.
-
View User Profile
-
Send Message
Posted Apr 28, 2020Great lib resource. I was using it to look up translations and found that "Hall of Ancient Paths" is missing.
It is a subzone of the Great Seal in Dazar'alor.
-
View User Profile
-
Send Message
Posted Jul 26, 2020In reply to Slipjack:
Thanks for reporting this. It has been added now.
-
View User Profile
-
Send Message
Posted Jan 4, 2020Sorry that I was out for quite a while.
Now I am updating this lib.
-
View User Profile
-
Send Message
Posted Nov 15, 2019Which addon uses Subzone, honestly ive tried Mapster and a couple others. Please help someone.
-
View User Profile
-
Send Message
Posted Jan 5, 2020In reply to atr_nefarious:
https://www.wowace.com/projects/libbabble-subzone-3-0/relations/dependents
-
View User Profile
-
Send Message
Posted Jul 7, 2019Don't know if this will help at all but https://wow.tools/dbc/ allows you to search through all the dbc and db2 files associated with a specific release of WoW and even allows to download a csv file of it.
-
View User Profile
-
Send Message
Posted Jan 17, 2020In reply to Darken5:
This is a bit helpful for me to get the new zone names in English. Though in the past I actually did extract all the locales and then build up the database with all the locales' translation. For now I have to leave the new names un-localize.
-
View User Profile
-
Send Message
Posted Jan 26, 2019Here's a few more subzones I found missing in this lib:
https://wow.gamepedia.com/Throne_of_Flame
https://wow.gamepedia.com/Fel_Pits
https://wow.gamepedia.com/Stromgarde_Keep
https://wow.gamepedia.com/Gloomtide_Strand
https://wow.gamepedia.com/Lor'danel_Landing
Also, "Cinderfall Grove" is a subzone in the Darkshore warfront, but doesn't have its own wiki page (yet). https://wow.gamepedia.com/Battle_for_Darkshore#Areas
A minor one; "Blackrock Foundry Overlook" is a location in Gorgrond, only ever mentioned in the Mole Machine racial which takes you there.
I have accurate translations for the first two already in every locale, I'll submit them when they're available.
-
View User Profile
-
Send Message
Posted Jun 30, 2019In reply to p3lim:
Gloomtide Strand , Lor'danel Landing, and Cinderfall Grove were added in 8.1.0.
dont think this lib has been updated since early 8.0.1 so anything added to WoW after won't be included. Honestly don't know if arithmandar is still working on this. (I hope he is as this is an awesome and still useful lib)
-
View User Profile
-
Send Message
Posted Aug 22, 2018Not sure if you all are aware, but the new API function C_Map.GetAreaInfo(areaID) can be used to get the (I hope localized) name of every area/subzone in the game. There are 10048 of them right now, but I feel like this would greatly simplify the addon (if not make it functionally obsolete).
-
View User Profile
-
Send Message
Posted Jul 7, 2019In reply to cheesecake4711:
C_Map.GetAreaInfo(areaID) requires you to get the areaID from C_MapExplorationInfo.GetExploredAreaIDsAtPosition(uiMapID, normalizedPosition) which returns all explored areaID's in the zone starting with "nearest"... even though when testing this is seems to return the "last" areaID you were in...
example: My char is standing Eversong Woods, just inside "The Shepherd's Gate" areaID - 3704 ... and C_Map.GetAreaInfo(areaID) is returning "Stillwhisper Pond"... areaID - 3470
C_MapExplorationInfo.GetExploredAreaIDsAtPosition(uiMapID, normalizedPosition) seem's to only return areaID's that are named on the map itself. Can't seem to get all areaID's
-
View User Profile
-
Send Message
Posted Jul 26, 2018Guys, I hope I can update this lib soon but I need some help. In the past I was able to convert WoW's dbc or db2 files into CSV format so that I can run through some filtering. But in the recent WoW's releases, I guess the data structure changed, so now I encountered problems in convert those into CSV.
If anyone knows the latest tool to do so, that would be a great help.
-
View User Profile
-
Send Message
Posted Aug 11, 2018In reply to arith:
-
View User Profile
-
Send Message
Posted Aug 11, 2018In reply to Cakechart:
-
View User Profile
-
Send Message
Posted May 17, 2018If this is still maintained then "Orgrimmar Embassy" needs to be added.
https://wow.gamepedia.com/Orgrimmar_Embassy
-
View User Profile
-
Send Message
Posted May 17, 2018In reply to Darken5:
-
View User Profile
-
Send Message
Posted Jun 24, 2018In reply to arith: