Localization

This commit is contained in:
Sumsebrum
2021-05-24 12:41:21 +02:00
parent 9ef174e290
commit 43518055f0
19 changed files with 542 additions and 385 deletions

View File

@ -1,9 +1,11 @@
local floor, str_len, tostring, str_sub, str_find = math.floor, string.len, tostring, string.sub, string.find
local floor, str_len, tostring, str_sub, str_find, pairs = math.floor, string.len, tostring, string.sub, string.find, pairs
local CreateFrame = CreateFrame
local GetLocale = GetLocale
local GetTime = GetTime
local Gladdy = LibStub("Gladdy")
local L = Gladdy.L
local ACDFrame = Gladdy:NewModule("Countdown", nil, {
local ACDFrame = Gladdy:NewModule("Arena Countdown", nil, {
countdown = true,
arenaCountdownSize = 256
})
@ -13,6 +15,11 @@ function ACDFrame:OnEvent(event, ...)
end
function ACDFrame:Initialize()
if ACDFrame.locales[GetLocale()] then
self.locale = ACDFrame.locales[GetLocale()]
else
self.locale = ACDFrame.locales["default"]
end
self.hidden = false
self.countdown = -1
self.texturePath = "Interface\\AddOns\\Gladdy\\Images\\Countdown\\";
@ -44,6 +51,8 @@ function ACDFrame:Initialize()
self.ACDNumOne = ACDNumOne
self:RegisterMessage("JOINED_ARENA")
self:RegisterMessage("ENEMY_SPOTTED")
self:RegisterMessage("UNIT_SPEC")
end
function ACDFrame.OnUpdate(self, elapse)
@ -82,50 +91,35 @@ function ACDFrame.OnUpdate(self, elapse)
self.ACDNumOnes:Hide();
self.ACDNumOne:Hide();
end
if (GetTime() > self.endTime) then
self:SetScript("OnUpdate", nil)
end
end
function ACDFrame:JOINED_ARENA()
self:RegisterEvent("CHAT_MSG_BG_SYSTEM_NEUTRAL")
self:SetScript("OnEvent", ACDFrame.OnEvent)
self.endTime = GetTime() + 70
self:SetScript("OnUpdate", ACDFrame.OnUpdate)
end
function ACDFrame:ENEMY_SPOTTED()
ACDFrame:Reset()
end
function ACDFrame:UNIT_SPEC()
ACDFrame:Reset()
end
function ACDFrame:CHAT_MSG_BG_SYSTEM_NEUTRAL(msg)
if (str_find(msg, "L'ar\195\168ne ouvre ses portes dans 60 secondes !")) then
self.countdown = 61
return
end
if (str_find(msg, "L'ar\195\168ne ouvre ses portes dans 30 secondes !")) then
self.countdown = 31
return
end
if (str_find(msg, "L'ar\195\168ne ouvre ses portes dans 15 secondes !")) then
self.countdown = 16
return
end
if (str_find(msg, "L'ar\195\168ne ouvre ses portes dans 10 secondes !")) then
self.countdown = 11
return
end
if (str_find(msg, "One minute until the Arena battle begins!")) then
self.countdown = 61
return
end
if (str_find(msg, "Thirty seconds until the Arena battle begins!")) then
self.countdown = 31
return
end
if (str_find(msg, "Fifteen seconds until the Arena battle begins!")) then
self.countdown = 16
return
end
if (str_find(msg, "Ten seconds until the Arena battle begins!")) then
self.countdown = 10
return
end
if (str_find(msg, "The Arena battle has begun!")) then
ACDFrame:SetScript("OnUpdate", nil)
return
for k,v in pairs(self.locale) do
if str_find(msg, v) then
if k == 0 then
ACDFrame:Reset()
else
self.countdown = k
end
end
end
end
@ -153,6 +147,7 @@ function ACDFrame:Test()
end
function ACDFrame:Reset()
self.endTime = 0
self.countdown = 0
self:UnregisterEvent("CHAT_MSG_BG_SYSTEM_NEUTRAL")
self:SetScript("OnUpdate", nil)
@ -171,7 +166,7 @@ function ACDFrame:GetOptions()
},
countdown = Gladdy:option({
type = "toggle",
name = L["Turn on/off"],
name = L["Enabled"],
desc = L["Turns countdown before the start of an arena match on/off."],
order = 3,
width = "full",
@ -186,3 +181,66 @@ function ACDFrame:GetOptions()
}),
}
end
ACDFrame.locales = {
["default"] = {
[61] = "One minute until the Arena battle begins!",
[31] = "Thirty seconds until the Arena battle begins!",
[16] = "Fifteen seconds until the Arena battle begins!",
[0] = "The Arena battle has begun!",
},
["esES"] = {
[61] = "¡Un minuto hasta que dé comienzo la batalla en arena!",
[31] = "¡Treinta segundos hasta que comience la batalla en arena!",
[16] = "¡Quince segundos hasta que comience la batalla en arena!",
[0] = "¡La batalla en arena ha comenzado!",
},
["ptBR"] = {
[61] = "Um minuto até a batalha na Arena começar!",
[31] = "Trinta segundos até a batalha na Arena começar!",
[16] = "Quinze segundos até a batalha na Arena começar!",
[0] = "A batalha na Arena começou!",
},
["deDE"] = {
[61] = "Noch eine Minute bis der Arenakampf beginnt!",
[31] = "Noch dreißig Sekunden bis der Arenakampf beginnt!",
[16] = "Noch fünfzehn Sekunden bis der Arenakampf beginnt!",
[0] = "Der Arenakampf hat begonnen!",
},
["frFR"] = {
[60] = "Le combat d'arène commence dans une minute\194\160!",
[30] = "Le combat d'arène commence dans trente secondes\194\160!",
[15] = "Le combat d'arène commence dans quinze secondes\194\160!",
[0] = "Le combat d'arène commence\194\160!",
},
["ruRU"] = {
[61] = "Одна минута до начала боя на арене!",
[31] = "Тридцать секунд до начала боя на арене!",
[16] = "До начала боя на арене осталось 15 секунд.",
[0] = "Бой начался!",
},
["itIT"] = { -- TODO
-- Beta has no itIT version available?
},
["koKR"] = {
[61] = "투기장 전투 시작 1분 전입니다!",
[31] = "투기장 전투 시작 30초 전입니다!",
[16] = "투기장 전투 시작 15초 전입니다!",
[0] = "투기장 전투가 시작되었습니다!",
},
["zhCN"] = {
[61] = "竞技场战斗将在一分钟后开始!",
[31] = "竞技场战斗将在三十秒后开始!",
[16] = "竞技场战斗将在十五秒后开始!",
[0] = "竞技场的战斗开始了!",
},
["zhTW"] = {
[61] = "1分鐘後競技場戰鬥開始!",
[31] = "30秒後競技場戰鬥開始!",
[16] = "15秒後競技場戰鬥開始!",
[0] = "競技場戰鬥開始了!",
},
}
ACDFrame.locales["esMX"] = ACDFrame.locales["esES"]
ACDFrame.locales["ptPT"] = ACDFrame.locales["ptBR"]