Localization
A column marked as Loc is actually 17 columns with one column per language and a bitmask in the end.
There can be multiple languages filled in -- i.e. multi-language DBCs are possible.
Blizzard no longer uses multiple columns for Localization since Cataclysm. From there on, there just is one column with a string in the language given by the locale directory. This conserves space and prevents errors with missing locale data as present on a lot of modded servers, where a locale_i DBC is taken and edited, packed and distributed, therefore resulting in empty strings for all clients not using locale_i. In Cataclysm and up, there just will be wrong language strings.
Number of columns actually varies depending on client version. The information how to read a particular structure is given [here]
Column | Field | |
---|---|---|
0 | enUS / enGB | English / Great British |
1 | koKR | Korean |
2 | frFR | French |
3 | deDE | German |
4 | zhCN | Chinese |
5 | zhTW | Taiwan |
6 | esES | Spanish (Spain) |
7 | esMX | Spanish (Mexican) |
8 | ruRU | Russian |
+16 | BitMask that always follows output string data. |
Russian was added in TBC, Portugese and Italian were added in WotLK
enum TextWowEnum { enUS = 0, enGB = enUS, koKR = 1, frFR = 2, deDE = 3, enCN = 4, zhCN = enCN, enTW = 5, zhTW = enTW, esES = 6, esMX = 7, ruRU = 8, ptPT = 10, ptBR = ptPT, itIT = 11, };