Quantcast

Localized defaults.lua

Kevin Lyles [06-14-10 - 23:01]
Localized defaults.lua

Added a fix for trackedStats and createScrollableTieredList
Fixed handling of modifier keys
Filename
Locales/enUS/base.lua
Locales/enUS/classes-specs.lua
Locales/enUS/dropdown-options.lua
Locales/enUS/enUS.xml
Locales/enUS/gems.lua
Locales/enUS/stats.lua
Locales/enUS/triggers.lua
Upgrade.lua
config.lua
defaults.lua
weights.lua
diff --git a/Locales/enUS/base.lua b/Locales/enUS/base.lua
index 68a746d..9b90264 100644
--- a/Locales/enUS/base.lua
+++ b/Locales/enUS/base.lua
@@ -4,7 +4,7 @@ end

 local L = ww_localization

--- Strings in config.lua
+-- config.lua
 L["WW_VERSION"] = "WeightsWatcher version: %s"
 L["ACCT_VERSION"] = "  Account data version: %d%s%d"
 L["CHAR_VERSION"] = "  Character data version: %d%s%d"
@@ -19,7 +19,7 @@ L["version"] = "version"
 L["weights"] = "weights"
 L["DECIMAL_SEPARATOR"] = "."

--- Strings in config.xml
+-- config.xml
 L["CALC_OPTS"] = "Calculation Options"
 L["USE_UE_GEMS_TT"] = "Consider gems that are Unique-Equipped"
 L["USE_UE_GEMS"] = "Use Unique-Equipped Gems"
diff --git a/Locales/enUS/classes-specs.lua b/Locales/enUS/classes-specs.lua
new file mode 100644
index 0000000..b84de14
--- /dev/null
+++ b/Locales/enUS/classes-specs.lua
@@ -0,0 +1,47 @@
+if GetLocale() ~= "enUS" then
+	return
+end
+
+ww_classDisplayNames = {
+	["DEATHKNIGHT"] = "Death Knight",
+	["DRUID"] = "Druid",
+	["HUNTER"] = "Hunter",
+	["MAGE"] = "Mage",
+	["PALADIN"] = "Paladin",
+	["PRIEST"] = "Priest",
+	["ROGUE"] = "Rogue",
+	["SHAMAN"] = "Shaman",
+	["WARLOCK"] = "Warlock",
+	["WARRIOR"] = "Warrior",
+}
+
+ww_specNames = {
+	["Affliction"] = "Affliction",
+	["Arcane"] = "Arcane",
+	["Assassination"] = "Assassination",
+	["Balance"] = "Balance",
+	["Beast Mastery"] = "Beast Mastery",
+	["Blood DPS"] = "Blood DPS",
+	["Combat"] = "Combat",
+	["Demonology"] = "Demonology",
+	["Destruction"] = "Destruction",
+	["Discipline"] = "Discipline",
+	["DPS"] = "DPS",
+	["Elemental"] = "Elemental",
+	["Enhancement"] = "Enhancement",
+	["Feral DPS"] = "Feral DPS",
+	["Feral Tank"] = "Feral Tank",
+	["Fire"] = "Fire",
+	["Frost"] = "Frost",
+	["Frost DPS"] = "Frost DPS",
+	["Holy"] = "Holy",
+	["Marksmanship"] = "Marksmanship",
+	["Protection"] = "Protection",
+	["Restoration"] = "Restoration",
+	["Retribution"] = "Retribution",
+	["Shadow"] = "Shadow",
+	["Subtlety"] = "Subtlety",
+	["Survival"] = "Survival",
+	["Tank"] = "Tank",
+	["Unholy DPS"] = "Unholy DPS",
+}
diff --git a/Locales/enUS/dropdown-options.lua b/Locales/enUS/dropdown-options.lua
new file mode 100644
index 0000000..f0c0ea2
--- /dev/null
+++ b/Locales/enUS/dropdown-options.lua
@@ -0,0 +1,18 @@
+if GetLocale() ~= "enUS" then
+	return
+end
+
+ww_dropdownOptions = {
+	["Always"] = "Always",
+	["Other Classes"] = "Other Classes",
+	["Never"] = "Never",
+	["Shift"] = "Shift",
+	["Control"] = "Control",
+	["Alt"] = "Alt",
+	["Left Shift"] = "Left Shift",
+	["Right Shift"] = "Right Shift",
+	["Left Control"] = "Left Control",
+	["Right Control"] = "Right Control",
+	["Left Alt"] = "Left Alt",
+	["Right Alt"] = "Right Alt",
+}
diff --git a/Locales/enUS/enUS.xml b/Locales/enUS/enUS.xml
index 9800c22..96c59ee 100644
--- a/Locales/enUS/enUS.xml
+++ b/Locales/enUS/enUS.xml
@@ -4,4 +4,7 @@
 	<Script file="gems.lua"/>
 	<Script file="stats.lua"/>
 	<Script file="slots.lua"/>
+	<Script file="classes-specs.lua"/>
+	<Script file="triggers.lua"/>
+	<Script file="dropdown-options.lua"/>
 </Ui>
\ No newline at end of file
diff --git a/Locales/enUS/gems.lua b/Locales/enUS/gems.lua
index a8b9ccb..8608ad3 100644
--- a/Locales/enUS/gems.lua
+++ b/Locales/enUS/gems.lua
@@ -603,3 +603,13 @@ ww_socketColorDisplayNames = {
 	[ww_localizedSocketColors["red"]] = "Red",
 	[ww_localizedSocketColors["yellow"]] = "Yellow",
 }
+
+ww_gemQualityNames = {
+	[1] = "Burning Crusade common",
+	[2] = "Burning Crusade uncommon",
+	[3] = "Burning Crusade rare",
+	[4] = "Burning Crusade epic",
+	[5] = "Wrath uncommon",
+	[6] = "Wrath rare",
+	[7] = "Wrath epic",
+}
diff --git a/Locales/enUS/stats.lua b/Locales/enUS/stats.lua
index 4de30e3..6b65db7 100644
--- a/Locales/enUS/stats.lua
+++ b/Locales/enUS/stats.lua
@@ -186,3 +186,21 @@ ww_statDisplayNames = {
 	[ww_localizedStats["threat (percent)"]] = "Threat (Percent)",
 	[ww_localizedStats["threat reduction (percent)"]] = "Threat Reduction (Percent)",
 }
+
+ww_statCategories = {
+	["General"] = "General",
+	["DPS"] = "DPS",
+	["Tanking"] = "Tanking",
+	["Physical DPS"] = "Physical DPS",
+	["Melee DPS"] = "Melee DPS",
+	["Ranged DPS"] = "Ranged DPS",
+	["Caster"] = "Caster",
+	["Caster DPS"] = "Caster DPS",
+	["Healing"] = "Healing",
+	["PVP"] = "PVP",
+	["CC Resists/Reductions"] = "CC Resists/Reductions",
+	["Resistances"] = "Resistances",
+	["Professions"] = "Professions",
+	["Triggers"] = "Triggers",
+	["Miscellaneous"] = "Miscellaneous",
+}
diff --git a/Locales/enUS/triggers.lua b/Locales/enUS/triggers.lua
new file mode 100644
index 0000000..d32daf0
--- /dev/null
+++ b/Locales/enUS/triggers.lua
@@ -0,0 +1,22 @@
+if GetLocale() == "enUS" then
+	local L = ww_localization
+
+	ww_triggerDisplayNames = {
+		["meleeDamage"] = "Melee damage dealt",
+		["rangedDamage"] = "Ranged damage dealt",
+		["harmfulSpell"] = "Harmful spell cast",
+		["helpfulSpell"] = "Helpful spell cast",
+	}
+
+	ww_triggerGroups = {
+		["meleeDamageDealt"] = {"meleeDamage"},
+		["rangedDamageDealt"] = {"rangedDamage"},
+		["spellDamageDealt"] = {"harmfulSpell"},
+		["damagingSpellCast"] = {"harmfulSpell"},
+		["harmfulSpellHit"] = {"harmfulSpell"},
+		["spellCast"] = {"harmfulSpell", "helpfulSpell"},
+		["healingSpellCast"] = {"helpfulSpell"},
+		["helpfulSpellCast"] = {"helpfulSpell"},
+	}
+
+end
diff --git a/Upgrade.lua b/Upgrade.lua
index 00e16e3..2a75965 100644
--- a/Upgrade.lua
+++ b/Upgrade.lua
@@ -53,6 +53,26 @@ local function noop_major_up(vars)
 	return vars
 end

+local function upgradeAccountToNewClassNameDisplayOptions(vars)
+	if vars.options.tooltip.showClassNames == "Others" then
+		vars.options.tooltip.showClassNames = "Other Classes"
+	end
+
+	vars.dataMinorVersion = 21
+	return vars
+end
+
+local downgradeAccountFromNewClassNameDisplayOptions = [[
+	return function(vars)
+		if vars.options.tooltip.showClassNames == "Other Classes" then
+			vars.options.tooltip.showClassNames = "Others"
+		end
+
+		vars.dataMinorVersion = 20
+		return vars
+	end
+]]
+
 local function upgradeAccountToRangedCritHasteAndHit(vars)
 	for _, class in ipairs(vars.weightsList) do
 		for _, weight in ipairs(vars.weightsList[class]) do
@@ -982,6 +1002,7 @@ local upgradeAccountFunctions = {
 		[17] = upgradeAccountToNoMeleeDamage,
 		[18] = upgradeAccountToSpellHitAndCrit,
 		[19] = upgradeAccountToRangedCritHasteAndHit,
+		[20] = upgradeAccountToNewClassNameDisplayOptions,
 	},
 }

@@ -1019,6 +1040,7 @@ local downgradeAccountFunctions = {
 		[18] = noop_down,
 		[19] = noop_down,
 		[20] = noop_down,
+		[21] = downgradeAccountFromNewClassNameDisplayOptions,
 	},
 }

diff --git a/config.lua b/config.lua
index 566a235..a1ebe03 100644
--- a/config.lua
+++ b/config.lua
@@ -70,7 +70,7 @@ function ww_ModifierKeyDropDownInitialize(dropdown)
 	info.func = ModifierKeyDropDownOnClick
 	info.arg1 = dropdown
 	for _, value in ipairs(ww_keyDetectors) do
-		info.text = value
+		info.text = ww_dropdownOptions[value]
 		info.value = value
 		info.checked = nil
 		UIDropDownMenu_AddButton(info)
@@ -88,7 +88,7 @@ function ww_ShowClassNameDropDownInitialize(dropdown)
 	info.func = ShowClassNameDropDownOnClick
 	info.arg1 = dropdown
 	for _, value in ipairs(ww_classNameOptions) do
-		info.text = ww_classNameOptions[value]
+		info.text = ww_dropdownOptions[value]
 		info.value = value
 		info.checked = nil
 		UIDropDownMenu_AddButton(info)
diff --git a/defaults.lua b/defaults.lua
index d98c52a..6b0d98f 100644
--- a/defaults.lua
+++ b/defaults.lua
@@ -1,181 +1,139 @@
+local L = ww_localization
+
 ww_trackedStats = {
-	"General",
-	"DPS",
-	"Physical DPS",
-	"Melee DPS",
-	"Ranged DPS",
-	"Tanking",
-	"Caster",
-	"Caster DPS",
-	"Healing",
-	"PVP",
-	"CC Resists/Reductions",
-	"Resistances",
-	"Triggers",
-	"Professions",
-	"Miscellaneous",
-	["General"] = {
-		"Critical Strike Rating",
-		"Haste Rating",
+	ww_statCategories["General"],
+	ww_statCategories["DPS"],
+	ww_statCategories["Physical DPS"],
+	ww_statCategories["Melee DPS"],
+	ww_statCategories["Ranged DPS"],
+	ww_statCategories["Tanking"],
+	ww_statCategories["Caster"],
+	ww_statCategories["Caster DPS"],
+	ww_statCategories["Healing"],
+	ww_statCategories["PVP"],
+	ww_statCategories["CC Resists/Reductions"],
+	ww_statCategories["Resistances"],
+	ww_statCategories["Triggers"],
+	ww_statCategories["Professions"],
+	ww_statCategories["Miscellaneous"],
+	[ww_statCategories["General"]] = {
+		"critical strike rating",
+		"haste rating",
 	},
-	["DPS"] = {
-		"Critical Damage (Percent)",
-		"Hit Rating",
-		"Threat Reduction (Percent)",
+	[ww_statCategories["DPS"]] = {
+		"critical damage (percent)",
+		"hit rating",
+		"threat reduction (percent)",
 	},
-	["Physical DPS"] = {
-		"Agility",
-		"Armor Penetration Rating",
-		"Attack Power",
-		"Chance to Increase Physical Haste",
-		"Strength",
+	[ww_statCategories["Physical DPS"]] = {
+		"agility",
+		"armor penetration rating",
+		"attack power",
+		"chance to increase physical haste",
+		"strength",
 	},
-	["Melee DPS"] = {
-		"Feral Attack Power",
-		"Expertise Rating",
-		"Melee DPS",
-		"Average Melee Weapon Damage",
-		"Maximum Melee Weapon Damage",
-		"Melee Weapon Speed",
+	[ww_statCategories["Melee DPS"]] = {
+		"feral attack power",
+		"expertise rating",
+		"melee dps",
+		"average melee weapon damage",
+		"maximum melee weapon damage",
+		"melee weapon speed",
 	},
-	["Ranged DPS"] = {
-		"Ranged Attack Power",
-		"Ranged Critical Strike Rating",
-		"Ranged DPS",
-		"Ranged Haste Rating",
-		"Ranged Hit Rating",
-		"Average Ranged Weapon Damage",
-		"Maximum Ranged Weapon Damage",
-		"Ranged Weapon Speed",
+	[ww_statCategories["Ranged DPS"]] = {
+		"ranged attack power",
+		"ranged critical strike rating",
+		"ranged dps",
+		"ranged haste rating",
+		"ranged hit rating",
+		"average ranged weapon damage",
+		"maximum ranged weapon damage",
+		"ranged weapon speed",
 	},
-	["Tanking"] = {
-		"Armor",
-		"Armor from Items (Percent)",
-		"Block Rating",
-		"Block Value",
-		"Block Value (Percent)",
-		"Chance to Restore Health on Hit",
-		"Defense Rating",
-		"Dodge Rating",
-		"Health",
-		"HP5",
-		"Parry Rating",
-		"Spell Damage Taken Reduction (Percent)",
-		"Stamina",
-		"Threat (Percent)",
+	[ww_statCategories["Tanking"]] = {
+		"armor",
+		"armor from items (percent)",
+		"block rating",
+		"block value",
+		"block value (percent)",
+		"chance to restore health on hit",
+		"defense rating",
+		"dodge rating",
+		"health",
+		"hp5",
+		"parry rating",
+		"spell damage taken reduction (percent)",
+		"stamina",
+		"threat (percent)",
 	},
-	["Caster"] = {
-		"Chance to Increase Spell Haste",
-		"Intellect",
-		"Intellect (Percent)",
-		"Spell Critical Strike Rating",
-		"Spell Power",
-		"Spirit",
+	[ww_statCategories["Caster"]] = {
+		"chance to increase spell haste",
+		"intellect",
+		"intellect (percent)",
+		"spell critical strike rating",
+		"spell power",
+		"spirit",
 	},
-	["Caster DPS"] = {
-		"Spell Hit Rating",
-		"Arcane Spell Damage",
-		"Fire Spell Damage",
-		"Frost Spell Damage",
-		"Holy Spell Damage",
-		"Nature Spell Damage",
-		"Shadow Spell Damage",
+	[ww_statCategories["Caster DPS"]] = {
+		"spell hit rating",
+		"arcane spell damage",
+		"fire spell damage",
+		"frost spell damage",
+		"holy spell damage",
+		"nature spell damage",
+		"shadow spell damage",
 	},
-	["Healing"] = {
-		"Chance to Restore Mana on Spellcast",
-		"Critical Healing (Percent)",
-		"Mana",
-		"Mana (Percent)",
-		"MP5",
+	[ww_statCategories["Healing"]] = {
+		"chance to restore mana on spellcast",
+		"critical healing (percent)",
+		"mana",
+		"mana (percent)",
+		"mp5",
 	},
-	["PVP"] = {
-		"Chance to Stun Target",
-		"Increased Stealth",
-		"Minor Run Speed",
-		"Resilience Rating",
-		"Sometimes Heal on your Crits",
-		"Spell Penetration",
+	[ww_statCategories["PVP"]] = {
+		"chance to stun target",
+		"increased stealth",
+		"minor run speed",
+		"resilience rating",
+		"sometimes heal on your crits",
+		"spell penetration",
 	},
-	["CC Resists/Reductions"] = {
-		"Disarm Duration Reduction (Percent)",
-		"Disorient Resist Chance (Percent)",
-		"Fear Duration Reduction (Percent)",
-		"Fear Resist Chance (Percent)",
-		"Silence Duration Reduction (Percent)",
-		"Snare/Root Duration Reduction (Percent)",
-		"Spell Reflect (Percent)",
-		"Stun Duration Reduction (Percent)",
-		"Stun Resist Chance (Percent)",
+	[ww_statCategories["CC Resists/Reductions"]] = {
+		"disarm duration reduction (percent)",
+		"disorient resist chance (percent)",
+		"fear duration reduction (percent)",
+		"fear resist chance (percent)",
+		"silence duration reduction (percent)",
+		"snare/root duration reduction (percent)",
+		"spell reflect (percent)",
+		"stun duration reduction (percent)",
+		"stun resist chance (percent)",
 	},
-	["Resistances"] = {
-		"Arcane",
-		"Fire",
-		"Frost",
-		"Holy",
-		"Nature",
-		"Shadow",
-		["Arcane"] = "arcane resistance",
-		["Fire"] = "fire resistance",
-		["Frost"] = "frost resistance",
-		["Holy"] = "holy resistance",
-		["Nature"] = "nature resistance",
-		["Shadow"] = "shadow resistance",
+	[ww_statCategories["Resistances"]] = {
+		"arcane resistance",
+		"fire resistance",
+		"frost resistance",
+		"holy resistance",
+		"nature resistance",
+		"shadow resistance",
 	},
-	["Triggers"] = {},
-	["Professions"] = {
-		"Fishing",
-		"Herbalism",
-		"Mining",
-		"Skinning",
+	[ww_statCategories["Triggers"]] = {},
+	[ww_statCategories["Professions"]] = {
+		"fishing",
+		"herbalism",
+		"mining",
+		"skinning",
 	},
-	["Miscellaneous"] = {
-		"Mount Speed (Percent)",
+	[ww_statCategories["Miscellaneous"]] = {
+		"mount speed (percent)",
 	},
 }

-ww_triggerGroups = {
-	["meleeDamageDealt"] = {"meleeDamage"},
-	["rangedDamageDealt"] = {"rangedDamage"},
-	["spellDamageDealt"] = {"harmfulSpell"},
-	["damagingSpellCast"] = {"harmfulSpell"},
-	["harmfulSpellHit"] = {"harmfulSpell"},
-	["spellCast"] = {"harmfulSpell", "helpfulSpell"},
-	["healingSpellCast"] = {"helpfulSpell"},
-	["helpfulSpellCast"] = {"helpfulSpell"},
-}
-
-ww_triggerNames = {
+ww_triggerTypes = {
 	"meleeDamage",
 	"rangedDamage",
 	"harmfulSpell",
 	"helpfulSpell",
-	["meleeDamage"] = "Melee damage dealt",
-	["rangedDamage"] = "Ranged damage dealt",
-	["harmfulSpell"] = "Harmful spell cast",
-	["helpfulSpell"] = "Helpful spell cast",
-}
-
-ww_classDisplayNames = {
-	["DEATHKNIGHT"] = "Death Knight",
-	["DRUID"] = "Druid",
-	["HUNTER"] = "Hunter",
-	["MAGE"] = "Mage",
-	["PALADIN"] = "Paladin",
-	["PRIEST"] = "Priest",
-	["ROGUE"] = "Rogue",
-	["SHAMAN"] = "Shaman",
-	["WARLOCK"] = "Warlock",
-	["WARRIOR"] = "Warrior",
-}
-
-ww_gemQualityNames = {
-	"Burning Crusade common",
-	"Burning Crusade uncommon",
-	"Burning Crusade rare",
-	"Burning Crusade epic",
-	"Wrath uncommon",
-	"Wrath rare",
-	"Wrath epic",
 }

 ww_keyDetectors = {
@@ -205,16 +163,13 @@ ww_keyDetectors = {

 ww_classNameOptions = {
 	"Always",
-	"Others",
+	"Other Classes",
 	"Never",
-	["Always"] = "Always",
-	["Others"] = "Other Classes",
-	["Never"] = "Never",
 }

 ww_defaultVars = {
 	dataMajorVersion = 1,
-	dataMinorVersion = 20,
+	dataMinorVersion = 21,
 	weightsList = {
 		"DEATHKNIGHT",
 		"DRUID",
@@ -227,11 +182,11 @@ ww_defaultVars = {
 		"WARLOCK",
 		"WARRIOR",
 		["DEATHKNIGHT"] = {
-			"Blood DPS",
-			"Frost DPS",
-			"Unholy DPS",
-			"Tank",
-			["Blood DPS"] = {
+			ww_specNames["Blood DPS"],
+			ww_specNames["Frost DPS"],
+			ww_specNames["Unholy DPS"],
+			ww_specNames["Tank"],
+			[ww_specNames["Blood DPS"]] = {
 				["melee dps"] = 360,
 				["armor penetration rating"] = 100,
 				["strength"] = 99,
@@ -245,7 +200,7 @@ ww_defaultVars = {
 					meleeDamage = true,
 				}
 			},
-			["Frost DPS"] = {
+			[ww_specNames["Frost DPS"]] = {
 				["melee dps"] = 337,
 				["hit rating"] = 100,
 				["strength"] = 97,
@@ -259,7 +214,7 @@ ww_defaultVars = {
 					meleeDamage = true,
 				}
 			},
-			["Unholy DPS"] = {
+			[ww_specNames["Unholy DPS"]] = {
 				["melee dps"] = 209,
 				["strength"] = 100,
 				["hit rating"] = 66,
@@ -273,7 +228,7 @@ ww_defaultVars = {
 					meleeDamage = true,
 				}
 			},
-			["Tank"] = {
+			[ww_specNames["Tank"]] = {
 				["melee dps"] = 419,
 				["parry rating"] = 100,
 				["hit rating"] = 97,
@@ -293,11 +248,11 @@ ww_defaultVars = {
 			},
 		},
 		["DRUID"] = {
-			"Balance",
-			"Feral DPS",
-			"Feral Tank",
-			"Restoration",
-			["Balance"] = {
+			ww_specNames["Balance"],
+			ww_specNames["Feral DPS"],
+			ww_specNames["Feral Tank"],
+			ww_specNames["Restoration"],
+			[ww_specNames["Balance"]] = {
 				["hit rating"] = 100,
 				["spell hit rating"] = 100,
 				["spell power"] = 66,
@@ -310,7 +265,7 @@ ww_defaultVars = {
 					harmfulSpell = true,
 				}
 			},
-			["Feral DPS"] = {
+			[ww_specNames["Feral DPS"]] = {
 				["agility"] = 100,
 				["armor penetration rating"] = 90,
 				["strength"] = 80,
@@ -324,7 +279,7 @@ ww_defaultVars = {
 					meleeDamage = true,
 				}
 			},
-			["Feral Tank"] = {
+			[ww_specNames["Feral Tank"]] = {
 				["agility"] = 100,
 				["stamina"] = 75,
 				["dodge rating"] = 65,
@@ -341,7 +296,7 @@ ww_defaultVars = {
 					meleeDamage = true,
 				}
 			},
-			["Restoration"] = {
+			[ww_specNames["Restoration"]] = {
 				["spell power"] = 100,
 				["mp5"] = 73,
 				["haste rating"] = 57,
@@ -355,10 +310,10 @@ ww_defaultVars = {
 			},
 		},
 		["HUNTER"] = {
-			"Beast Mastery",
-			"Marksmanship",
-			"Survival",
-			["Beast Mastery"] = {
+			ww_specNames["Beast Mastery"],
+			ww_specNames["Marksmanship"],
+			ww_specNames["Survival"],
+			[ww_specNames["Beast Mastery"]] = {
 				["ranged dps"] = 213,
 				["hit rating"] = 100,
 				["ranged hit rating"] = 100,
@@ -375,7 +330,7 @@ ww_defaultVars = {
 					rangedDamage = true,
 				}
 			},
-			["Marksmanship"] = {
+			[ww_specNames["Marksmanship"]] = {
 				["ranged dps"] = 379,
 				["hit rating"] = 100,
 				["ranged hit rating"] = 100,
@@ -392,7 +347,7 @@ ww_defaultVars = {
 					rangedDamage = true,
 				}
 			},
-			["Survival"] = {
+			[ww_specNames["Survival"]] = {
 				["ranged dps"] = 181,
 				["hit rating"] = 100,
 				["ranged hit rating"] = 100,
@@ -411,10 +366,10 @@ ww_defaultVars = {
 			},
 		},
 		["MAGE"] = {
-			"Arcane",
-			"Fire",
-			"Frost",
-			["Arcane"] = {
+			ww_specNames["Arcane"],
+			ww_specNames["Fire"],
+			ww_specNames["Frost"],
+			[ww_specNames["Arcane"]] = {
 				["hit rating"] = 100,
 				["spell hit rating"] = 100,
 				["haste rating"] = 54,
@@ -430,7 +385,7 @@ ww_defaultVars = {
 					harmfulSpell = true,
 				}
 			},
-			["Fire"] = {
+			[ww_specNames["Fire"]] = {
 				["hit rating"] = 100,
 				["spell hit rating"] = 100,
 				["haste rating"] = 53,
@@ -445,7 +400,7 @@ ww_defaultVars = {
 					harmfulSpell = true,
 				}
 			},
-			["Frost"] = {
+			[ww_specNames["Frost"]] = {
 				["hit rating"] = 100,
 				["spell hit rating"] = 100,
 				["haste rating"] = 42,
@@ -462,10 +417,10 @@ ww_defaultVars = {
 			},
 		},
 		["PALADIN"] = {
-			"Holy",
-			"Protection",
-			"Retribution",
-			["Holy"] = {
+			ww_specNames["Holy"],
+			ww_specNames["Protection"],
+			ww_specNames["Retribution"],
+			[ww_specNames["Holy"]] = {
 				["intellect"] = 100,
 				["mp5"] = 88,
 				["spell power"] = 58,
@@ -476,7 +431,7 @@ ww_defaultVars = {
 					helpfulSpell = true,
 				}
 			},
-			["Protection"] = {
+			[ww_specNames["Protection"]] = {
 				["stamina"] = 100,
 				["dodge rating"] = 94,
 				["block value"] = 86,
@@ -496,7 +451,7 @@ ww_defaultVars = {
 					meleeDamage = true,
 				}
 			},
-			["Retribution"] = {
+			[ww_specNames["Retribution"]] = {
 				["melee dps"] = 470,
 				["hit rating"] = 100,
 				["strength"] = 80,
@@ -514,10 +469,10 @@ ww_defaultVars = {
 			},
 		},
 		["PRIEST"] = {
-			"Discipline",
-			"Holy",
-			"Shadow",
-			["Discipline"] = {
+			ww_specNames["Discipline"],
+			ww_specNames["Holy"],
+			ww_specNames["Shadow"],
+			[ww_specNames["Discipline"]] = {
 				["spell power"] = 100,
 				["mp5"] = 67,
 				["intellect"] = 65,
@@ -529,7 +484,7 @@ ww_defaultVars = {
 					helpfulSpell = true,
 				}
 			},
-			["Holy"] = {
+			[ww_specNames["Holy"]] = {
 				["mp5"] = 100,
 				["intellect"] = 69,
 				["spell power"] = 60,
@@ -541,7 +496,7 @@ ww_defaultVars = {
 					helpfulSpell = true,
 				}
 			},
-			["Shadow"] = {
+			[ww_specNames["Shadow"]] = {
 				["hit rating"] = 100,
 				["spell hit rating"] = 100,
 				["shadow spell damage"] = 76,
@@ -557,10 +512,10 @@ ww_defaultVars = {
 			},
 		},
 		["ROGUE"] = {
-			"Assassination",
-			"Combat",
-			"Subtlety",
-			["Assassination"] = {
+			ww_specNames["Assassination"],
+			ww_specNames["Combat"],
+			ww_specNames["Subtlety"],
+			[ww_specNames["Assassination"]] = {
 				["melee dps"] = 170,
 				["agility"] = 100,
 				["expertise rating"] = 87,
@@ -574,7 +529,7 @@ ww_defaultVars = {
 					meleeDamage = true,
 				}
 			},
-			["Combat"] = {
+			[ww_specNames["Combat"]] = {
 				["melee dps"] = 220,
 				["armor penetration rating"] = 100,
 				["agility"] = 100,
@@ -588,7 +543,7 @@ ww_defaultVars = {
 					meleeDamage = true,
 				}
 			},
-			["Subtlety"] = {
+			[ww_specNames["Subtlety"]] = {
 				["melee dps"] = 228,
 				["expertise rating"] = 100,
 				["agility"] = 100,
@@ -604,10 +559,10 @@ ww_defaultVars = {
 			},
 		},
 		["SHAMAN"] = {
-			"Elemental",
-			"Enhancement",
-			"Restoration",
-			["Elemental"] = {
+			ww_specNames["Elemental"],
+			ww_specNames["Enhancement"],
+			ww_specNames["Restoration"],
+			[ww_specNames["Elemental"]] = {
 				["hit rating"] = 100,
 				["spell hit rating"] = 100,
 				["spell power"] = 60,
@@ -619,7 +574,7 @@ ww_defaultVars = {
 					harmfulSpell = true,
 				}
 			},
-			["Enhancement"] = {
+			[ww_specNames["Enhancement"]] = {
 				["melee dps"] = 135,
 				["hit rating"] = 100,
 				["expertise rating"] = 84,
@@ -636,7 +591,7 @@ ww_defaultVars = {
 					meleeDamage = true,
 				}
 			},
-			["Restoration"] = {
+			[ww_specNames["Restoration"]] = {
 				["mp5"] = 100,
 				["intellect"] = 85,
 				["spell power"] = 77,
@@ -649,10 +604,10 @@ ww_defaultVars = {
 			},
 		},
 		["WARLOCK"] = {
-			"Affliction",
-			"Demonology",
-			"Destruction",
-			["Affliction"] = {
+			ww_specNames["Affliction"],
+			ww_specNames["Demonology"],
+			ww_specNames["Destruction"],
+			[ww_specNames["Affliction"]] = {
 				["hit rating"] = 100,
 				["spell hit rating"] = 100,
 				["shadow spell damage"] = 72,
@@ -667,7 +622,7 @@ ww_defaultVars = {
 					harmfulSpell = true,
 				}
 			},
-			["Demonology"] = {
+			[ww_specNames["Demonology"]] = {
 				["hit rating"] = 100,
 				["spell hit rating"] = 100,
 				["haste rating"] = 50,
@@ -682,7 +637,7 @@ ww_defaultVars = {
 					harmfulSpell = true,
 				}
 			},
-			["Destruction"] = {
+			[ww_specNames["Destruction"]] = {
 				["hit rating"] = 100,
 				["spell hit rating"] = 100,
 				["fire spell damage"] = 47,
@@ -699,9 +654,9 @@ ww_defaultVars = {
 			},
 		},
 		["WARRIOR"] = {
-			"DPS",
-			"Protection",
-			["DPS"] = {
+			ww_specNames["DPS"],
+			ww_specNames["Protection"],
+			[ww_specNames["DPS"]] = {
 				["expertise rating"] = 100,
 				["strength"] = 82,
 				["critical strike rating"] = 66,
@@ -715,7 +670,7 @@ ww_defaultVars = {
 					meleeDamage = true,
 				}
 			},
-			["Protection"] = {
+			[ww_specNames["Protection"]] = {
 				["stamina"] = 100,
 				["dodge rating"] = 90,
 				["defense rating"] = 86,
@@ -760,7 +715,7 @@ ww_defaultVars = {
 			hideHints = false,
 			normalizeWeights = true,
 			showAlternateGems = "Alt",
-			showClassNames = "Others",
+			showClassNames = "Other Classes",
 			showDebugInfo = "Never",
 			showDifferences = true,
 			showIdealGems = "Control",
diff --git a/weights.lua b/weights.lua
index a5bc30c..7e91048 100644
--- a/weights.lua
+++ b/weights.lua
@@ -364,7 +364,7 @@ end
 -- scrolledFrame is the frame that will hold everything
 -- elementType is the element template type
 -- elementHeight is the height of each element
-local function createScrollableTieredList(template, scrollFrame, scrolledFrame, elementType, elementHeight)
+local function createScrollableTieredList(template, scrollFrame, scrolledFrame, elementType, elementHeight, nameTable)
 	local categoryFrame, elementFrame

 	scrollFrame.categories = {}
@@ -388,8 +388,8 @@ local function createScrollableTieredList(template, scrollFrame, scrolledFrame,
 			elementFrame = CreateFrame("Frame", "WW_" .. element, scrollFrame.categories[i], elementType)
 			elementFrame.position = j
 			elementFrame.category = categoryFrame
-			elementFrame.text:SetText(element)
-			elementFrame.name = template[category][element] or element
+			elementFrame.text:SetText(nameTable[element])
+			elementFrame.name = element
 			elementFrame:SetPoint("TOPLEFT", 0, -elementHeight * j)
 			table.insert(scrollFrame.shown, elementFrame)
 			categoryFrame.length = categoryFrame.length + 1
@@ -403,6 +403,11 @@ end
 --loads the various class buttons onto the config frame
 local function loadClassButtons()
 	local classes, revClassLookup, newClass = {}, {}
+	local metatable = {
+		__index = function(tbl, key)
+			return key
+		end
+	}

 	for i, class in ipairs(ww_vars.weightsList) do
 		newClass = ww_classDisplayNames[class]
@@ -414,7 +419,7 @@ local function loadClassButtons()
 		end
 	end

-	createScrollableTieredList(classes, ww_weights.leftPanel.scrollFrame, ww_weights.leftPanel.scrollContainer, "ww_weightFrame", 22)
+	createScrollableTieredList(classes, ww_weights.leftPanel.scrollFrame, ww_weights.leftPanel.scrollContainer, "ww_weightFrame", 22, setmetatable({}, metatable))

 	for _, classFrame in ipairs(ww_weights.leftPanel.scrollFrame.categories) do
 		classFrame.class = revClassLookup[classFrame.text:GetText()]
@@ -445,16 +450,21 @@ end

 local function loadStatButtons()
 	local stats = {}
+	local metatable = {
+		__index = function(tbl, key)
+			return ww_statDisplayNames[ww_localizedStats[key]]
+		end
+	}

-	createScrollableTieredList(ww_trackedStats, ww_weights.rightPanel.scrollFrame, ww_weights.rightPanel.scrollContainer, "ww_statFrame", 22)
+	createScrollableTieredList(ww_trackedStats, ww_weights.rightPanel.scrollFrame, ww_weights.rightPanel.scrollContainer, "ww_statFrame", 22, setmetatable({}, metatable))

 	for _, categoryFrame in ipairs(ww_weights.rightPanel.scrollFrame.categories) do
 		if categoryFrame.name == "Triggers" then
-			for i, trigger in ipairs(ww_triggerNames) do
+			for i, trigger in ipairs(ww_triggerTypes) do
 				local triggerFrame = CreateFrame("Frame", "WW_" .. trigger, categoryFrame, "ww_triggerFrame")
 				triggerFrame.position = i
 				triggerFrame.category = categoryFrame
-				triggerFrame.text:SetText(ww_triggerNames[trigger])
+				triggerFrame.text:SetText(ww_triggerDisplayNames[trigger])
 				triggerFrame.active:SetText(trigger)
 				triggerFrame.name = trigger
 				triggerFrame:SetPoint("TOPLEFT", 0, -ww_weights.rightPanel.scrollFrame.elementHeight * i)
@@ -468,7 +478,7 @@ local function loadStatButtons()
 			for i, statFrame in ipairs(children) do
 				if statFrame.name then
 					table.insert(stats, statFrame)
-					statFrame.statName = string.lower(statFrame.name)
+					statFrame.statName = statFrame.name
 				end
 			end
 		end