AuctioneerSuite/Enchantrix/EnxLocale.lua
2026-04-13 17:48:13 -04:00

171 lines
5.1 KiB
Lua

--[[
Enchantrix Addon for World of Warcraft(tm).
Version: 5.9.4961 (WhackyWallaby)
Revision: $Id: EnxLocale.lua 3576 2008-10-10 03:07:13Z aesir $
URL: http://enchantrix.org/
Localization routines
License:
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program(see GPL.txt); if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Note:
This AddOn's source code is specifically designed to work with
World of Warcraft's interpreted AddOn system.
You have an implicit license to use this AddOn with these facilities
since that is its designated purpose as per:
http://www.fsf.org/licensing/licenses/gpl-faq.html#InterpreterIncompat
]]
Enchantrix_RegisterRevision("$URL: http://svn.norganna.org/auctioneer/branches/5.9/Enchantrix/EnxLocale.lua $", "$Rev: 3576 $")
local Babylonian = LibStub("Babylonian")
assert(Babylonian, "Babylonian is not installed")
local babylonian = Babylonian(EnchantrixLocalizations)
-- Global functions
local addonLoaded -- Enchantrix.Locale.AddonLoaded()
local delocalizeFilterVal -- Enchantrix.Locale.DelocalizeFilterVal()
local localizeFilterVal -- Enchantrix.Locale.LocalizeFilterVal()
local getLocalizedFilterVal -- Enchantrix.Locale.GetLocalizedFilterVal()
local delocalizeCommand -- Enchantrix.Locale.DelocalizeCommand()
local localizeCommand -- Enchantrix.Locale.LocalizeCommand()
-- Local functions
local buildCommandMap
local customLocalizations = {
['TextGeneral'] = GetLocale(),
['TextCombat'] = GetLocale(),
['ArgSpellname'] = GetLocale(),
['PatReagents'] = GetLocale(),
}
Enchantrix.State.Locale_Changed = true --This needs to be initialy set to true so that the following tables get built at startup.
local commandMap, commandMapRev;
function addonLoaded()
buildCommandMap()
end
function _ENCH(stringKey, locale)
if locale then
if type(locale) == "string" then
return babylonian(locale, stringKey)
else
return babylonian(GetLocale(), stringKey)
end
elseif (customLocalizations[stringKey]) then
return babylonian(customLocalizations[stringKey], stringKey)
else
return babylonian[stringKey]
end
end
function buildCommandMap()
commandMap = {}
commandMapRev = {}
commandMap = {
[_ENCH('CmdOn')] = 'on',
[_ENCH('CmdOff')] = 'off',
[_ENCH('CmdHelp')] = 'help',
[_ENCH('CmdToggle')] = 'toggle',
[_ENCH('CmdDisable')] = 'disable',
[_ENCH('CmdClear')] = 'clear',
[_ENCH('CmdLocale')] = 'locale',
[_ENCH('CmdDefault')] = 'default',
[_ENCH('CmdPrintin')] = 'print-in',
[_ENCH('CmdFindBidauct')] = 'bidbroker',
[_ENCH('CmdFindBidauctShort')] = 'bidbroker',
[_ENCH('CmdFindBuyauct')] = 'percentless',
[_ENCH('CmdFindBuyauctShort')] = 'percentless',
[_ENCH('ShowEmbed')] = 'embed',
[_ENCH('ShowTerse')] = 'terse',
[_ENCH('ShowValue')] = 'valuate',
[_ENCH('ShowGuessAuctioneerHsp')] = 'valuate-hsp',
[_ENCH('ShowGuessAuctioneerMed')] = 'valuate-median',
[_ENCH('ShowGuessBaseline')] = 'valuate-baseline',
[_ENCH('ShowUI')] = 'show',
[_ENCH('ConfigUI')] = 'config',
[_ENCH('ShowDELevels')] = 'levels',
[_ENCH('ShowDEMaterials')] = 'materials',
}
for k, v in pairs(commandMap) do
commandMapRev[v] = k
end
end
function delocalizeFilterVal(value)
if value == _ENCH('CmdOn') then
return 'on'
elseif value == _ENCH('CmdOff') then
return 'off'
elseif value == _ENCH('CmdDefault') then
return 'default'
elseif value == _ENCH('CmdToggle') then
return 'toggle'
else
return value
end
end
function localizeFilterVal(value)
if (value == 'on') or (value == true) then
return _ENCH("CmdOn")
elseif (value == 'off') or (value == false) then
return _ENCH("CmdOff")
elseif (value == 'default') or (value == nil) then
return _ENCH("CmdDefault")
else
return value
end
end
function getLocalizedFilterVal(key)
return localizeFilterVal(Enchantrix.Settings.GetSetting(key))
end
-- Turns a localized slash command into the generic English version of the command
function delocalizeCommand(cmd)
if Enchantrix.State.Locale_Changed then
buildCommandMap()
Enchantrix.State.Locale_Changed = nil
end
return commandMap[cmd] or cmd
end
-- Translate a generic English slash command to the localized version, if available
function localizeCommand(cmd)
if Enchantrix.State.Locale_Changed then
buildCommandMap()
Enchantrix.State.Locale_Changed = nil
end
return commandMapRev[cmd] or cmd
end
Enchantrix.Locale = {
Revision = "$Revision: 3576 $",
AddonLoaded = addonLoaded,
DelocalizeFilterVal = delocalizeFilterVal,
LocalizeFilterVal = localizeFilterVal,
GetLocalizedFilterVal = getLocalizedFilterVal,
DelocalizeCommand = delocalizeCommand,
LocalizeCommand = localizeCommand,
}