diff Modules/Config.lua @ 68:eadff31e61e8

Localization of all files. Testing packager settings (especially automatic locale exports), localization is not yet finished.
author Zerotorescue
date Wed, 15 Sep 2010 13:10:56 +0200
parents 4166a335ca81
children f01e0184a275
line wrap: on
line diff
--- a/Modules/Config.lua	Tue Sep 14 11:17:38 2010 +0200
+++ b/Modules/Config.lua	Wed Sep 15 13:10:56 2010 +0200
@@ -1,7 +1,7 @@
 local MailOpener = LibStub("AceAddon-3.0"):GetAddon("MailOpener");
 local mod = MailOpener:NewModule("Config", "AceEvent-3.0", "AceTimer-3.0");
 
-mod.moduleDescription = "Builds and loads the config frame(s) and handles the slash commands. Automatically loaded when needed.";
+mod.moduleDescription = L["Builds and loads the config frame(s) and handles the slash commands. Automatically loaded when needed."];
 mod.moduleRequired = false;
 
 local Media = LibStub("LibSharedMedia-3.0");
@@ -30,16 +30,16 @@
 	
 	if MailOpener.db.global.currentTip == -1 and MailOpener.db.profile.general.continueOpening == false then
 		StaticPopupDialogs["MailOpenerFirstConfigUseConfirmBox"] = {
-			text = "Do you wish to enable \"continue opening mail\"? Read the tip at the bottom of the \"General\" config for more information.",
-			button1 = "Yes",
-			button2 = "No",
+			text = L["Do you wish to enable \"continue opening mail\"? Read the tip at the bottom of the \"General\" config for more information."],
+			button1 = L["Yes"],
+			button2 = L["No"],
 			OnAccept = function()
 				MailOpener.db.profile.general.continueOpening = true;
 				
-				print("|cff15ff00Mail Opener|r: Enabling the functionality. Remember you can always change this setting in the \"Open All\" config (|cff00ffff/mo c|r).");
+				MailOpener:Print(L["Enabling the functionality. Remember you can always change this setting in the \"Open All\" config (|cff00ffff/mo c|r)."]);
 			end,
 			OnCancel = function (_,reason)
-				print("|cff15ff00Mail Opener|r: You can always change this setting in the \"Open All\" config (|cff00ffff/mo c|r).");
+				MailOpener:Print(L["You can always change this setting in the \"Open All\" config (|cff00ffff/mo c|r)."]);
 			end,
 			timeout = 0,
 			whileDead = 1,
@@ -62,25 +62,25 @@
 	
 	-- Can't put this in the abive scope as the ADDONEnable vars would then always be empty
 	tip = {
-		"To make Mail Opener automatically continue the opening of a batch of mail that had previously been interupted, you will have to tick the \"|cfffed000Continue opening mail|r\"-box at the \"|cfffed000Open All|r\" config. By default Mail Opener will always automatically start opening mail right after a server refresh, but you will have to manually resume mail opening if it gets interupted (e.g. because you closed the mailbox or because your bags were full).",
-		"You can |cfffed000shift-click|r a mail icon to loot all attachments from that single mail.",
+		L["To make Mail Opener automatically continue the opening of a batch of mail that had previously been interrupted, you will have to tick the \"|cfffed000Continue opening mail|r\"-box at the \"|cfffed000Open All|r\" config. By default Mail Opener will always automatically start opening mail right after a server refresh, but you will have to manually resume mail opening if it gets interrupted (e.g. because you closed the mailbox or because your bags were full)."],
+		L["You can |cfffed000shift-click|r a mail icon to loot all attachments from that single mail."],
 		{
-			txt = "|cfffed000Postal|r allows you to return mail by |cfffed000alt-clicking|r the mail icon.",
+			txt = L["|cfffed000Postal|r allows you to return mail by |cfffed000alt-clicking|r the mail icon."],
 			shown = (MailOpener.PostalEnabled),
 		},
 		{
-			txt = "|cfffed000Mail Opener|r is not meant to be a full replacement of |cfffed000Postal|r, it will only handle the opening of your mail and you can run both addons simultaneously.",
+			txt = L["|cfffed000Mail Opener|r is not meant to be a full replacement of |cfffed000Postal|r, it will only handle the opening of your mail and you can run both addons simultaneously."],
 			shown = (MailOpener.PostalEnabled),
 		},
-		"You can click the time remaining text to get it into a popup dialog so you can copy it (with |cfffed000CTRL-C|r) and then paste it (with |cfffed000CTRL-V|r) elsewhere.",
+		L["You can click the time remaining text to get it into a popup dialog so you can copy it (with |cfffed000CTRL-C|r) and then paste it (with |cfffed000CTRL-V|r) elsewhere."],
 		{
-			txt = "If you are looking for an addon with many handy modifications for |cfffed000sending|r mail, you might want to consider |cfffed000Postal|r.",
+			txt = L["If you are looking for an addon with many handy modifications for |cfffed000sending|r mail, you might want to consider |cfffed000Postal|r."],
 			shown = (not MailOpener.PostalEnabled),
 		},
-		"|cfffed000Cost on Delivery|r and |cfffed000Blizzard|r mail will always be skipped, regardless of any filters.",
-		"|cfffed000Right-click|r the |cfffed000open all|r button to quickly adjust your mail opening filters.",
-		"|cfffed000Shift-click|r the |cfffed000open all|r button to temporarily override your filters and loot every single mail containing attachments and/or gold.",
-		"Please report |cfffed000issues|r and |cfffed000suggestions|r/|cfffed000requests|r at the |cfffed000CurseForge ticket tracker|r, I will try to process and respond to them all (you can find a link to the ticket tracker in the addon description at Curse).",
+		L["|cfffed000Cost on Delivery|r and |cfffed000Blizzard|r mail will always be skipped, regardless of any filters."],
+		L["|cfffed000Right-click|r the |cfffed000open all|r button to quickly adjust your mail opening filters."],
+		L["|cfffed000Shift-click|r the |cfffed000open all|r button to temporarily override your filters and loot every single mail containing attachments and/or gold."],
+		L["Please report |cfffed000issues|r and |cfffed000suggestions|r/|cfffed000requests|r at the |cfffed000CurseForge ticket tracker|r, I will try to process and respond to them all (you can find a link to the ticket tracker in the addon description at Curse)."],
 	};
 	
 	-- Remove any "hidden" tips
@@ -141,7 +141,7 @@
 			print("New debug channel created.");
 		end
 	else
-		print("Wrong command, available: /mo config (or /mo c)");
+		print(L["Wrong command, available: /mo config (or /mo c)"]);
 	end
 end
 
@@ -179,7 +179,7 @@
 function mod:GetOptions()
 	local options = {
 		type = "group",	
-		name = "Mail Opener",
+		name = L["Mail Opener"],
 		childGroups = "tree",
 		args = {
 		},
@@ -232,35 +232,35 @@
 		order = 400,
 		type = "group",
 		childGroups = "tree",
-		name = "Modules",
-		desc = "Change settings for modules or toggle them on or off.",
+		name = L["Modules"],
+		desc = L["Change settings for modules or toggle them on or off."],
 		args = {
 			General = {
 				order = 10,
 				type = "group",
 				inline = true,
-				name = "Modules Status",
+				name = L["Modules Status"],
 				args = {
 					headerName = {
 						order = 0,
 						width = "normal",
 						type = "description",
 						fontSize = "medium",
-						name = "|cfffed000Module Name|r",
+						name = L["|cfffed000Module Name|r"],
 					},
 					headerStatus = {
 						order = 1,
 						width = "half",
 						type = "description",
 						fontSize = "medium",
-						name = "|cfffed000Status|r",
+						name = L["|cfffed000Status|r"],
 					},
 					headerDefault = {
 						order = 2,
 						width = "double",
 						type = "description",
 						fontSize = "medium",
-						name = "|cfffed000Default Status|r",
+						name = L["|cfffed000Default Status|r"],
 					},
 					headerseperator = {
 						order = 3,
@@ -295,9 +295,9 @@
 			fontSize = "medium",
 			name = function()
 				if module:IsEnabled() then
-					return "|cff00ff00Enabled|r";
+					return L["|cff00ff00Enabled|r"];
 				else
-					return "|cffff0000Disabled|r";
+					return L["|cffff0000Disabled|r"];
 				end
 			end,
 		};
@@ -310,13 +310,13 @@
 			name = function()
 				local desc = "";
 				if MailOpener.db.profile.modules[moduleName] == nil or MailOpener.db.profile.modules[moduleName] == true then
-					desc = "|cff00ff00Enabled|r";
+					desc = L["|cff00ff00Enabled|r"];
 				else
-					desc = "|cffff0000Disabled|r";
+					desc = L["|cffff0000Disabled|r"];
 				end
 				
 				if module.moduleRequired then
-					desc = desc .. " (Required module)";
+					desc = desc .. " " .. L["(Required module)"];
 				end
 				
 				return desc;
@@ -351,25 +351,25 @@
 	local generalConfigGroup = {
 		order = 100,
 		type = "group",
-		name = "General",
-		desc = "Change general Mail Opener settings.",
+		name = L["General"],
+		desc = L["Change general Mail Opener settings."],
 		args = {
 			-- General config inline group
 			generalConfig = {
 				order = 10,
 				type = "group",
 				inline = true,
-				name = "General",
+				name = L["General"],
 				args = {
 					defaultStatus = {
 						order = 0,
 						type = "select",
-						name = "Default mail opener status",
-						desc = "Select the default Mail Opener status when you open a mailbox for the first time since your log on.",
+						name = L["Default mail opener status"],
+						desc = L["Select the default Mail Opener status when you open a mailbox for the first time since your log on."],
 						values = {
-							_enabled = "Completely enabled",
-							disabled = "Auto opening disabled",
-							xdisabled = "Addon Disabled",
+							_enabled = L["Completely enabled"],
+							disabled = L["Auto opening disabled"],
+							xdisabled = L["Addon Disabled"],
 						},
 						get = function() return MailOpener.db.profile.general.defaultStatus; end,
 						set = function(i, v) MailOpener.db.profile.general.defaultStatus = v; end,
@@ -377,12 +377,12 @@
 					defaultQAStatus = {
 						order = 10,
 						type = "select",
-						name = "Default QA Auto Mail status",
-						desc = "Select the default Quick Auctions auto mail status whenever you open a mailbox.",
+						name = L["Default QA Auto Mail status"],
+						desc = L["Select the default Quick Auctions auto mail status whenever you open a mailbox."],
 						values = {
-							__remember = "Remember",
-							_enabled = "Enabled",
-							disabled = "Disabled",
+							__remember = L["Remember"],
+							_enabled = L["Enabled"],
+							disabled = L["Disabled"],
 						},
 						get = function() return MailOpener.db.profile.general.defaultQAStatus; end,
 						set = function(i, v) MailOpener.db.profile.general.defaultQAStatus = v; end,
@@ -391,8 +391,8 @@
 					continueOpeningStackableItems = {
 						order = 15,
 						type = "toggle",
-						name = "Continue trying to open mail after your bags are full",
-						desc = "If there are a lot of stackable items in your mailbox (e.g. glyphs) you may want to toggle this option on.\n\nThis will cause your Blizzard error frame to get extremely spammy if there's a lot of mail remaining. With this disabled, Mail Opener will completely stop opening mail while your inventory is full.",
+						name = L["Continue trying to open mail after your bags are full"],
+						desc = L["If there are a lot of stackable items in your mailbox (e.g. glyphs) you may want to toggle this option on.\n\nThis will cause your Blizzard error frame to get extremely spammy if there's a lot of mail remaining. With this disabled, Mail Opener will completely stop opening mail while your inventory is full."],
 						width = "full",
 						get =  function() return MailOpener.db.profile.general.continueOpeningStackableItems; end,
 						set = function(i, v) MailOpener.db.profile.general.continueOpeningStackableItems = v; end,
@@ -400,8 +400,8 @@
 					showHelpTooltips = {
 						order = 17,
 						type = "toggle",
-						name = "Display help tooltips at the mailbox buttons added by Mail Opener.",
-						desc = "Display the help tooltips when hovering at any of the mailbox buttons added by Mail Opener.",
+						name = L["Display help tooltips at the mailbox buttons added by Mail Opener."],
+						desc = L["Display the help tooltips when hovering at any of the mailbox buttons added by Mail Opener."],
 						width = "full",
 						get =  function() return MailOpener.db.profile.general.showHelpTooltips; end,
 						set = function(i, v) MailOpener.db.profile.general.showHelpTooltips = v; end,
@@ -409,8 +409,8 @@
 					autoDisableQAAutoMail = {
 						order = 20,
 						type = "toggle",
-						name = "Turn Quick Auction's auto mail status |cffff0000off|r when opening mail",
-						desc = "Quick Auction's auto mail is buggy when using other mail opening addons. If you are collecting mail while auto mailer is enabled wrong items may be send to the wrong character.\n\nTo solve this you must disable Quick Auction's auto mail while opening mail and you can re-enable it when mail opening is finished.",
+						name = L["Turn Quick Auction's auto mail status |cffff0000off|r when opening mail"],
+						desc = L["Quick Auction's auto mail is buggy when using other mail opening addons. If you are collecting mail while auto mailer is enabled wrong items may be send to the wrong character.\n\nTo solve this you must disable Quick Auction's auto mail while opening mail and you can re-enable it when mail opening is finished."],
 						width = "full",
 						get =  function() return MailOpener.db.profile.general.autoDisableQAAutoMail; end,
 						set = function(i, v) MailOpener.db.profile.general.autoDisableQAAutoMail = v; end,
@@ -419,8 +419,8 @@
 					autoReenableQAAutoMail = {
 						order = 30,
 						type = "toggle",
-						name = "Turn Quick Auction's auto mail status |cff00ff00on|r after opening mail has finished",
-						desc = "Quick Auction's auto mail is buggy when using other mail opening addons. If you are collecting mail while auto mailer is enabled wrong items may be send to the wrong character.\n\nTo solve this you must disable Quick Auction's auto mail while opening mail and you can re-enable it when mail opening is finished.",
+						name = L["Turn Quick Auction's auto mail status |cff00ff00on|r after opening mail has finished"],
+						desc = L["Quick Auction's auto mail is buggy when using other mail opening addons. If you are collecting mail while auto mailer is enabled wrong items may be send to the wrong character.\n\nTo solve this you must disable Quick Auction's auto mail while opening mail and you can re-enable it when mail opening is finished."],
 						width = "full",
 						get = function() return MailOpener.db.profile.general.autoReenableQAAutoMail; end,
 						set = function(i, v) MailOpener.db.profile.general.autoReenableQAAutoMail = v; end,
@@ -430,8 +430,8 @@
 					autoSetBackQAAutoMail = {
 						order = 40,
 						type = "toggle",
-						name = "Set Quick Auction's auto mail status |cff00ffffback|r after opening mail has finished (remember it)",
-						desc = "Instead of always turning Quick Auction's auto mail on after mail opening you can choose to set it back to the value it was prior to opening mail.",
+						name = L["Set Quick Auction's auto mail status |cff00ffffback|r after opening mail has finished (remember it)"],
+						desc = L["Instead of always turning Quick Auction's auto mail on after mail opening you can choose to set it back to the value it was prior to opening mail."],
 						width = "full",
 						get = function() return MailOpener.db.profile.general.autoSetBackQAAutoMail; end,
 						set = function(i, v) MailOpener.db.profile.general.autoSetBackQAAutoMail = v; end,
@@ -445,12 +445,12 @@
 				order = 15,
 				type = "group",
 				inline = true,
-				name = "New Character Specfic Profile",
+				name = L["New Character Specific Profile"],
 				args = {
 					description = {
 						order = 10,
 						type = "description",
-						name = "You can create a new profile to allow different behaviour for different characters. Imagine setting up a profile for your AH banker which will retrieve all sorts of mail containing items while other characters don't automatically open mail with items sent by other players.",
+						name = L["You can create a new profile to allow different behaviour for different characters. Imagine setting up a profile for your AH banker which will retrieve all sorts of mail containing items while other characters don't automatically open mail with items sent by other players."],
 					},
 					header = {
 						order = 15,
@@ -460,8 +460,8 @@
 					createNewProfile = {
 						order = 20,
 						type = "execute",
-						name = "Create a new character specific profile",
-						desc = "Create a new profile for this user. You can also make profile groups at the profiles tab to the left.",
+						name = L["Create a new character specific profile"],
+						desc = L["Create a new profile for this user. You can also make profile groups at the profiles tab to the left."],
 						width = "double",
 						func = function()
 							MailOpener.db:SetProfile(UnitName("player") .. " - " .. GetRealmName());
@@ -474,7 +474,7 @@
 				order = 20,
 				type = "group",
 				inline = true,
-				name = "Mail Opening Tip",
+				name = L["Mail Opening Tip"],
 				args = {
 					description = {
 						order = 10,
@@ -485,7 +485,7 @@
 					nextTip = {
 						order = 20,
 						type = "execute",
-						name = "Next Tip",
+						name = L["Next Tip"],
 						width = "half",
 						func = function() self:NextTip(); self:GetTip(); end,
 					},
@@ -501,20 +501,20 @@
 	local notificationsConfigGroup = {
 		order = 200,
 		type = "group",
-		name = "Notifications",
-		desc = "Toggle notifications.",
+		name = L["Notifications"],
+		desc = L["Toggle notifications."],
 		args = {
 			-- Notifications config inline group
 			nofitications = {
 				order = 10,
 				type = "group",
 				inline = true,
-				name = "Notifications",
+				name = L["Notifications"],
 				args = {
 					description = {
 						order = 10,
 						type = "description",
-						name = "Toggle which notification you wish to see.",
+						name = L["Notifications"],
 					},
 				},
 			}, -- end Notifications config inline group
@@ -524,31 +524,13 @@
 				order = 20,
 				type = "group",
 				inline = true,
-				name = "General Notifications",
+				name = L["General Notifications"],
 				args = {
-					--[[welcome = {
-						order = 20,
-						type = "toggle",
-						name = "Show message when |cfffed000opening the mailbox|r",
-						desc = "Print the welcome message whenever you open the mailbox.",
-						set = function(i, v) MailOpener.db.profile.notifications.welcome = v; end,
-						get = function() return MailOpener.db.profile.notifications.welcome; end,
-						width = "double",
-					},
-					bye = {
-						order = 21,
-						type = "toggle",
-						name = "Show message when |cfffed000closing the mailbox|r",
-						desc = "Print the bye message whenever you close the mailbox.",
-						set = function(i, v) MailOpener.db.profile.notifications.bye = v; end,
-						get = function() return MailOpener.db.profile.notifications.bye; end,
-						width = "double",
-					},]]
 					fishedOpeningBatch = {
 						order = 22,
 						type = "toggle",
-						name = "Announce when |cfffed000finished opening the current batch|r",
-						desc = "Announce when opening of the current batch of mail has been completed.",
+						name = L["Announce when |cfffed000finished opening the current batch|r"],
+						desc = L["Announce when opening of the current batch of mail has been completed."],
 						set = function(i, v) MailOpener.db.profile.notifications.finishedCurrentBatch = v; end,
 						get = function() return MailOpener.db.profile.notifications.finishedCurrentBatch; end,
 						width = "double",
@@ -556,8 +538,8 @@
 					noMoreMailAvailable = {
 						order = 23,
 						type = "toggle",
-						name = "Announce when |cfffed000the mailbox is completely empty|r",
-						desc = "Announce when there is nothing left for Mail Opener to open.",
+						name = L["Announce when |cfffed000the mailbox is completely empty|r"],
+						desc = L["Announce when there is nothing left for Mail Opener to open."],
 						set = function(i, v) MailOpener.db.profile.notifications.mailboxIsEmpty = v; end,
 						get = function() return MailOpener.db.profile.notifications.mailboxIsEmpty; end,
 						width = "double",
@@ -570,27 +552,27 @@
 				order = 30,
 				type = "group",
 				inline = true,
-				name = "Mail Skipped Notifications",
+				name = L["Mail Skipped Notifications"],
 				args = {
 					descriptionMailSkipped = {
 						order = 31,
 						type = "description",
-						name = "Announce when mail is skipped because...",
+						name = L["Announce when mail is skipped because..."],
 					},
 					
 					skippedToggleAll = {
 						order = 35,
 						type = "toggle",
-						name = "Toggle everything",
-						desc = "Announce when mail is skipped for |cfffed000any|r reason.",
+						name = L["Toggle everything"],
+						desc = L["Announce when mail is skipped for |cfffed000any|r reason."],
 						set = function(i, v) MailOpener.db.profile.notifications.skipped.all = v; end,
 						get = function() return MailOpener.db.profile.notifications.skipped.all; end,
 					},
 					skippedInventoryFull = {
 						order = 36,
 						type = "toggle",
-						name = "Your inventory is full",
-						desc = "Announce when mail is skipped because |cfffed000your inventory is full|r.",
+						name = L["Your inventory is full"],
+						desc = L["Announce when mail is skipped because |cfffed000your inventory is full|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.skipped.inventoryFull = v; end,
 						get = function() return MailOpener.db.profile.notifications.skipped.inventoryFull; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.skipped.all); end,
@@ -598,8 +580,8 @@
 					skippedKeepFreeSpaceLimit = {
 						order = 37,
 						type = "toggle",
-						name = "Keep free space limit reached",
-						desc = "Announce when mail is skipped because |cfffed000the keep free space limit has been reached|r.",
+						name = L["Keep free space limit reached"],
+						desc = L["Announce when mail is skipped because |cfffed000the keep free space limit has been reached|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.skipped.keepFreeSpaceLimit = v; end,
 						get = function() return MailOpener.db.profile.notifications.skipped.keepFreeSpaceLimit; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.skipped.all); end,
@@ -607,8 +589,8 @@
 					skippedGMMail = {
 						order = 38,
 						type = "toggle",
-						name = "GM mail",
-						desc = "Announce when mail is skipped because it's |cfffed000mail sent by a Game Master|r.",
+						name = L["Blizzard mail"],
+						desc = L["Announce when mail is skipped because it's |cfffed000mail sent by Blizzard|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.skipped.GMMail = v; end,
 						get = function() return MailOpener.db.profile.notifications.skipped.GMMail; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.skipped.all); end,
@@ -616,8 +598,8 @@
 					skippedCOD = {
 						order = 39,
 						type = "toggle",
-						name = "C.O.D. mail",
-						desc = "Announce when mail is skipped because it's |cfffed000a Cost On Delivery mail|r.",
+						name = L["C.O.D. mail"],
+						desc = L["Announce when mail is skipped because it's |cfffed000a Cost On Delivery mail|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.skipped.COD = v; end,
 						get = function() return MailOpener.db.profile.notifications.skipped.COD; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.skipped.all); end,
@@ -625,8 +607,8 @@
 					skippedNormalGoldMail = {
 						order = 40,
 						type = "toggle",
-						name = "Normal mail with gold",
-						desc = "Announce when mail is skipped because it's |cfffed000normal mail containing gold|r.",
+						name = L["Normal mail with gold"],
+						desc = L["Announce when mail is skipped because it's |cfffed000normal mail containing gold|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.skipped.normalGoldMail = v; end,
 						get = function() return MailOpener.db.profile.notifications.skipped.normalGoldMail; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.skipped.all); end,
@@ -634,8 +616,8 @@
 					skippedNormalItemsMail = {
 						order = 41,
 						type = "toggle",
-						name = "Normal mail with attachments",
-						desc = "Announce when mail is skipped because it's |cfffed000normal mail containing items|r.",
+						name = L["Normal mail with attachments"],
+						desc = L["Announce when mail is skipped because it's |cfffed000normal mail containing items|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.skipped.normalItemsMail = v; end,
 						get = function() return MailOpener.db.profile.notifications.skipped.normalItemsMail; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.skipped.all); end,
@@ -643,8 +625,8 @@
 					skippedAHExpired = {
 						order = 42,
 						type = "toggle",
-						name = "Auction expired mail",
-						desc = "Announce when mail is skipped because it's |cfffed000auction expired mail|r.",
+						name = L["Auction expired mail"],
+						desc = L["Announce when mail is skipped because it's |cfffed000auction expired mail|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.skipped.AHexpired = v; end,
 						get = function() return MailOpener.db.profile.notifications.skipped.AHexpired; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.skipped.all); end,
@@ -652,8 +634,8 @@
 					skippedAHSuccessful = {
 						order = 43,
 						type = "toggle",
-						name = "Auction successful mail",
-						desc = "Announce when mail is skipped because it's |cfffed000auction successful mail|r.",
+						name = L["Auction successful mail"],
+						desc = L["Announce when mail is skipped because it's |cfffed000auction successful mail|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.skipped.AHsuccess = v; end,
 						get = function() return MailOpener.db.profile.notifications.skipped.AHsuccess; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.skipped.all); end,
@@ -661,8 +643,8 @@
 					skippedAHWon = {
 						order = 44,
 						type = "toggle",
-						name = "Auction won mail",
-						desc = "Announce when mail is skipped because it's |cfffed000auction won mail|r.",
+						name = L["Auction won mail"],
+						desc = L["Announce when mail is skipped because it's |cfffed000auction won mail|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.skipped.AHwon = v; end,
 						get = function() return MailOpener.db.profile.notifications.skipped.AHwon; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.skipped.all); end,
@@ -670,8 +652,8 @@
 					skippedAHCanceled = {
 						order = 45,
 						type = "toggle",
-						name = "Auction canceled mail",
-						desc = "Announce when mail is skipped because it's |cfffed000auction canceled mail|r.",
+						name = L["Auction canceled mail"],
+						desc = L["Announce when mail is skipped because it's |cfffed000auction canceled mail|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.skipped.AHcanceled = v; end,
 						get = function() return MailOpener.db.profile.notifications.skipped.AHcanceled; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.skipped.all); end,
@@ -679,8 +661,8 @@
 					skippedAHOutbid = {
 						order = 46,
 						type = "toggle",
-						name = "Auction outbid mail",
-						desc = "Announce when mail is skipped because it's |cfffed000auction outbid mail|r.",
+						name = L["Auction outbid mail"],
+						desc = L["Announce when mail is skipped because it's |cfffed000auction outbid mail|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.skipped.AHoutbid = v; end,
 						get = function() return MailOpener.db.profile.notifications.skipped.AHoutbid; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.skipped.all); end,
@@ -688,8 +670,8 @@
 					skippedOther = {
 						order = 47,
 						type = "toggle",
-						name = "Other mail (e.g. plain text)",
-						desc = "Announce when mail is skipped because it's |cfffed000any other kind of mail|r (e.g. plain text).",
+						name = L["Other mail (e.g. plain text)"],
+						desc = L["Announce when mail is skipped because it's |cfffed000any other kind of mail|r (e.g. plain text)."],
 						set = function(i, v) MailOpener.db.profile.notifications.skipped.other = v; end,
 						get = function() return MailOpener.db.profile.notifications.skipped.other; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.skipped.all); end,
@@ -702,27 +684,27 @@
 				order = 40,
 				type = "group",
 				inline = true,
-				name = "Mail Processed Notifications",
+				name = L["Mail Processed Notifications"],
 				args = {
 					descriptionMailProcessed = {
 						order = 61,
 						type = "description",
-						name = "Announce when mail is processed because...",
+						name = L["Announce when mail is processed because..."],
 					},
 					
 					processedToggleAll = {
 						order = 65,
 						type = "toggle",
-						name = "Toggle everything",
-						desc = "Announce when mail is processed for |cfffed000any|r reason.",
+						name = L["Toggle everything"],
+						desc = L["Announce when mail is processed for |cfffed000any|r reason."],
 						set = function(i, v) MailOpener.db.profile.notifications.processed.all = v; end,
 						get = function() return MailOpener.db.profile.notifications.processed.all; end,
 					},
 					processedNormalGoldMail = {
 						order = 70,
 						type = "toggle",
-						name = "Normal mail with gold",
-						desc = "Announce when mail is processed because it's |cfffed000normal mail containing gold|r.",
+						name = L["Normal mail with gold"],
+						desc = L["Announce when mail is processed because it's |cfffed000normal mail containing gold|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.processed.normalGoldMail = v; end,
 						get = function() return MailOpener.db.profile.notifications.processed.normalGoldMail; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.processed.all); end,
@@ -730,8 +712,8 @@
 					processedNormalItemsMail = {
 						order = 71,
 						type = "toggle",
-						name = "Normal mail with attachments",
-						desc = "Announce when mail is processed because it's |cfffed000normal mail containing items|r.",
+						name = L["Normal mail with attachments"],
+						desc = L["Announce when mail is processed because it's |cfffed000normal mail containing items|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.processed.normalItemsMail = v; end,
 						get = function() return MailOpener.db.profile.notifications.processed.normalItemsMail; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.processed.all); end,
@@ -739,8 +721,8 @@
 					processedAHExpired = {
 						order = 72,
 						type = "toggle",
-						name = "Auction expired mail",
-						desc = "Announce when mail is processed because it's |cfffed000auction expired mail|r.",
+						name = L["Auction expired mail"],
+						desc = L["Announce when mail is processed because it's |cfffed000auction expired mail|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.processed.AHexpired = v; end,
 						get = function() return MailOpener.db.profile.notifications.processed.AHexpired; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.processed.all); end,
@@ -748,8 +730,8 @@
 					processedAHSuccessful = {
 						order = 73,
 						type = "toggle",
-						name = "Auction successful mail",
-						desc = "Announce when mail is processed because it's |cfffed000auction successful mail|r.",
+						name = L["Auction successful mail"],
+						desc = L["Announce when mail is processed because it's |cfffed000auction successful mail|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.processed.AHsuccess = v; end,
 						get = function() return MailOpener.db.profile.notifications.processed.AHsuccess; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.processed.all); end,
@@ -757,8 +739,8 @@
 					processedAHWon = {
 						order = 74,
 						type = "toggle",
-						name = "Auction won mail",
-						desc = "Announce when mail is processed because it's |cfffed000auction won mail|r.",
+						name = L["Auction won mail"],
+						desc = L["Announce when mail is processed because it's |cfffed000auction won mail|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.processed.AHwon = v; end,
 						get = function() return MailOpener.db.profile.notifications.processed.AHwon; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.processed.all); end,
@@ -766,8 +748,8 @@
 					processedAHCanceled = {
 						order = 75,
 						type = "toggle",
-						name = "Auction canceled mail",
-						desc = "Announce when mail is processed because it's |cfffed000auction canceled mail|r.",
+						name = L["Auction canceled mail"],
+						desc = L["Announce when mail is processed because it's |cfffed000auction canceled mail|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.processed.AHcanceled = v; end,
 						get = function() return MailOpener.db.profile.notifications.processed.AHcanceled; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.processed.all); end,
@@ -775,8 +757,8 @@
 					processedAHOutbid = {
 						order = 76,
 						type = "toggle",
-						name = "Auction outbid mail",
-						desc = "Announce when mail is processed because it's |cfffed000auction outbid mail|r.",
+						name = L["Auction outbid mail"],
+						desc = L["Announce when mail is processed because it's |cfffed000auction outbid mail|r."],
 						set = function(i, v) MailOpener.db.profile.notifications.processed.AHoutbid = v; end,
 						get = function() return MailOpener.db.profile.notifications.processed.AHoutbid; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.processed.all); end,
@@ -784,8 +766,8 @@
 					processedOther = {
 						order = 77,
 						type = "toggle",
-						name = "Other mail (e.g. plain text)",
-						desc = "Announce when mail is processed because it's |cfffed000any other kind of mail|r (e.g. plain text).",
+						name = L["Other mail (e.g. plain text)"],
+						desc = L["Announce when mail is processed because it's |cfffed000any other kind of mail|r (e.g. plain text)."],
 						set = function(i, v) MailOpener.db.profile.notifications.processed.other = v; end,
 						get = function() return MailOpener.db.profile.notifications.processed.other; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.processed.all); end,
@@ -798,18 +780,18 @@
 				order = 50,
 				type = "group",
 				inline = true,
-				name = "Sound Notifications",
+				name = L["Sound Notifications"],
 				args = {
 					descriptionMailProcessed = {
 						order = 61,
 						type = "description",
-						name = "Play a sound when...",
+						name = L["Play a sound when..."],
 					},
 					bagsFullSound = {
 						order = 100,
 						type = "toggle",
-						name = "Inventory is full",
-						desc = "Play a sound when your inventory is full. You can select what sound in the select box next to this.",
+						name = L["Inventory is full"],
+						desc = L["Play a sound when your inventory is full. You can select what sound in the select box next to this."],
 						set = function(i, v) MailOpener.db.profile.notifications.bagsFullSound = v; end,
 						get = function() return MailOpener.db.profile.notifications.bagsFullSound; end,
 						width = "medium",
@@ -817,8 +799,8 @@
 					bagsFullSoundFile = {
 						order = 101,
 						type = "select",
-						name = "Sound File",
-						desc = "Sound file to play when your bags are full.",
+						name = L["Sound File"],
+						desc = L["Sound file to play when your bags are full."],
 						dialogControl = "LSM30_Sound",
 						set = function(i, v)
 							MailOpener.db.profile.notifications.bagsFullSoundFile = Media:Fetch("sound", v);
@@ -826,7 +808,7 @@
 							
 							PlaySoundFile(MailOpener.db.profile.notifications.bagsFullSoundFile);
 							
-							print("|cff15ff00Mail Opener|r: You may have to increase the mail opening interval if this sound effect gets spammy. The recommended value is 10 seconds.");
+							MailOpener:Print(L["You may have to increase the mail opening interval if this sound effect gets spammy. The recommended value is 10 seconds."]);
 						end,
 						get = function() return MailOpener.db.profile.notifications.bagsFullSoundFileName end,
 						values = function () return (Media:HashTable("sound") or nil); end,
@@ -835,8 +817,8 @@
 					bagsFullSoundOnlyOnce = {
 						order = 102,
 						type = "toggle",
-						name = "Only once",
-						desc = "Only play this sound once each time new mail has been arrived or your bags are updated.",
+						name = L["Only once"],
+						desc = L["Only play this sound once each time new mail has been arrived or your bags are updated."],
 						set = function(i, v) MailOpener.db.profile.notifications.bagsFullSoundOnlyOnce = v; end,
 						get = function() return MailOpener.db.profile.notifications.bagsFullSoundOnlyOnce; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.bagsFullSound); end,
@@ -845,8 +827,8 @@
 					bagsFullSoundOnlyOncePerMailboxVisit = {
 						order = 103,
 						type = "toggle",
-						name = "...per mailbox visit",
-						desc = "Only play this sound once each time you visit the mailbox.",
+						name = L["...per mailbox visit"],
+						desc = L["Only play this sound once each time you visit the mailbox."],
 						set = function(i, v) MailOpener.db.profile.notifications.bagsFullSoundOnlyOncePerMailboxVisit = v; end,
 						get = function() return MailOpener.db.profile.notifications.bagsFullSoundOnlyOncePerMailboxVisit; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.bagsFullSound or not MailOpener.db.profile.notifications.bagsFullSoundOnlyOnce); end,
@@ -854,8 +836,8 @@
 					mailboxEmptySound = {
 						order = 110,
 						type = "toggle",
-						name = "No more mail can be opened",
-						desc = "Play a sound when no more mail can be opened. You can select what sound in the select box next to this.",
+						name = L["No more mail can be opened"],
+						desc = L["Play a sound when no more mail can be opened. You can select what sound in the select box next to this."],
 						set = function(i, v) MailOpener.db.profile.notifications.mailboxEmptySound = v; end,
 						get = function() return MailOpener.db.profile.notifications.mailboxEmptySound; end,
 						--width = "double",
@@ -863,8 +845,8 @@
 					mailboxEmptySoundFile = {
 						order = 111,
 						type = "select",
-						name = "Sound File",
-						desc = "Sound file to play when Mail Opener can't open any more mail.",
+						name = L["Sound File"],
+						desc = L["Sound file to play when Mail Opener can't open any more mail."],
 						dialogControl = "LSM30_Sound",
 						set = function(i, v)
 							MailOpener.db.profile.notifications.mailboxEmptySoundFile = Media:Fetch("sound", v);
@@ -872,7 +854,7 @@
 							
 							PlaySoundFile(MailOpener.db.profile.notifications.mailboxEmptySoundFile);
 							
-							print("|cff15ff00Mail Opener|r: You may have to increase the mail opening interval if this sound effect gets spammy. The recommended value is 10 seconds.");
+							MailOpener:Print(L["You may have to increase the mail opening interval if this sound effect gets spammy. The recommended value is 10 seconds."]);
 						end,
 						get = function() return MailOpener.db.profile.notifications.mailboxEmptySoundFileName end,
 						values = function () return (Media:HashTable("sound") or nil); end,
@@ -881,8 +863,8 @@
 					mailboxEmptySoundOnlyOnce = {
 						order = 112,
 						type = "toggle",
-						name = "Only once",
-						desc = "Only play this sound once each time new mail has been arrived.",
+						name = L["Only once"],
+						desc = L["Only play this sound once each time new mail has been arrived."],
 						set = function(i, v) MailOpener.db.profile.notifications.mailboxEmptySoundOnlyOnce = v; end,
 						get = function() return MailOpener.db.profile.notifications.mailboxEmptySoundOnlyOnce; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.mailboxEmptySound); end,
@@ -891,8 +873,8 @@
 					mailboxEmptySoundOnlyOncePerMailboxVisit = {
 						order = 113,
 						type = "toggle",
-						name = "...per mailbox visit",
-						desc = "Only play this sound once each time you visit the mailbox.",
+						name = L["...per mailbox visit"],
+						desc = L["Only play this sound once each time you visit the mailbox."],
 						set = function(i, v) MailOpener.db.profile.notifications.mailboxEmptySoundOnlyOncePerMailboxVisit = v; end,
 						get = function() return MailOpener.db.profile.notifications.mailboxEmptySoundOnlyOncePerMailboxVisit; end,
 						disabled = function() return (not MailOpener.db.profile.notifications.bagsFullSound or not MailOpener.db.profile.notifications.mailboxEmptySoundOnlyOnce); end,