Rework locale
This commit is contained in:
31
Heimdall.lua
31
Heimdall.lua
@@ -23,7 +23,8 @@ local function init()
|
|||||||
---@field network HeimdallNetworkData
|
---@field network HeimdallNetworkData
|
||||||
---@field networkMessenger HeimdallNetworkMessengerData
|
---@field networkMessenger HeimdallNetworkMessengerData
|
||||||
---@field stinkyCache HeimdallStinkyCacheData
|
---@field stinkyCache HeimdallStinkyCacheData
|
||||||
---@field _L Localization
|
---@field _L fun(key: string, locale: string): string
|
||||||
|
---@field _Locale Localization
|
||||||
---@field VERSION string
|
---@field VERSION string
|
||||||
---@field dumpTable fun(table: any, depth?: number): nil
|
---@field dumpTable fun(table: any, depth?: number): nil
|
||||||
---@field utf8len fun(input: string): number
|
---@field utf8len fun(input: string): number
|
||||||
@@ -32,6 +33,7 @@ local function init()
|
|||||||
---@field Split fun(input: string, deliminer: string): string[]
|
---@field Split fun(input: string, deliminer: string): string[]
|
||||||
---@field IsStinky fun(name: string): boolean
|
---@field IsStinky fun(name: string): boolean
|
||||||
---@field Memoize fun(f: function): function
|
---@field Memoize fun(f: function): function
|
||||||
|
---@field GetLocaleForChannel fun(channel: string): string
|
||||||
---@field WhoQueryService WhoQueryService
|
---@field WhoQueryService WhoQueryService
|
||||||
---@field Whoer InitTable
|
---@field Whoer InitTable
|
||||||
---@field Messenger InitTable
|
---@field Messenger InitTable
|
||||||
@@ -635,6 +637,33 @@ local function init()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---@param channel string
|
||||||
|
---@return string
|
||||||
|
shared.GetLocaleForChannel = function(channel)
|
||||||
|
return Heimdall_Data.config.channelLocale[channel] or "en"
|
||||||
|
end
|
||||||
|
|
||||||
|
---@param key string
|
||||||
|
---@param locale string
|
||||||
|
---@return string
|
||||||
|
shared._L = function(key, locale)
|
||||||
|
local locale = shared._Locale[locale]
|
||||||
|
if not locale then
|
||||||
|
if Heimdall_Data.config.debug then
|
||||||
|
print(string.format("[Heimdall] Locale %s not found", tostring(locale)))
|
||||||
|
end
|
||||||
|
return key
|
||||||
|
end
|
||||||
|
local value = locale[key]
|
||||||
|
if not value then
|
||||||
|
if Heimdall_Data.config.debug then
|
||||||
|
print(string.format("[Heimdall] Key %s not found in locale %s", tostring(key), tostring(locale)))
|
||||||
|
end
|
||||||
|
return key
|
||||||
|
end
|
||||||
|
return value
|
||||||
|
end
|
||||||
|
|
||||||
shared.Messenger.Init()
|
shared.Messenger.Init()
|
||||||
shared.StinkyTracker.Init()
|
shared.StinkyTracker.Init()
|
||||||
shared.AgentTracker.Init()
|
shared.AgentTracker.Init()
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
118
_L.lua
118
_L.lua
@@ -5,23 +5,23 @@ local _, shared = ...
|
|||||||
---@field ru table<string, any>
|
---@field ru table<string, any>
|
||||||
|
|
||||||
---@type Localization
|
---@type Localization
|
||||||
shared.L = {
|
shared._Locale = {
|
||||||
en = {
|
en = {
|
||||||
bonkDetected = "%s hit %s (%s)",
|
bonkDetected = "%s hit %s (%s)",
|
||||||
combatAlerterInCombat = "I am in combat with %s at %s (%s) at [%s](%2.2f, %2.2f)",
|
combatAlerterInCombat = "I am in combat with %s at %s (%s) at [%s](%2.2f, %2.2f)",
|
||||||
snifferStinky = "I smell a stinky %s",
|
snifferStinky = "I smell a stinky %s",
|
||||||
spotterSpotted = "I see (%s) %s/%s %s of race %s (%s) with pvp %s and health %s/%s at %s [%s](%2.2f, %2.2f)",
|
spotterSpotted = "I see (%s) %s/%s %s of race %s (%s) with pvp %s and health %s/%s at %s (%s) [%s](%2.2f, %2.2f)",
|
||||||
|
english = "English",
|
||||||
|
russian = "Russian",
|
||||||
whoerNew = "%s %s c:%s r:%s (%s) g:%s - %s",
|
whoerNew = "%s %s c:%s r:%s (%s) g:%s - %s",
|
||||||
whoerMoved = "%s c:%s (%s - %s) g:%s moved to %s",
|
whoerMoved = "%s c:%s (%s - %s) g:%s moved to %s",
|
||||||
whoerGone = "%s c:%s g:%s left %s",
|
whoerGone = "%s c:%s g:%s left %s",
|
||||||
killed = "%s killed %s with %s in %s at [%s](%2.2f, %2.2f)",
|
killed = "%s killed %s with %s in %s at [%s](%2.2f, %2.2f)",
|
||||||
tidbits = {
|
hostile = "hostile",
|
||||||
hostile = "hostile",
|
friendly = "friendly",
|
||||||
friendly = "friendly",
|
unknown = "unknown",
|
||||||
unknown = "unknown",
|
pvpOn = "ON",
|
||||||
pvpOn = "ON",
|
pvpOff = "OFF",
|
||||||
pvpOff = "OFF",
|
|
||||||
},
|
|
||||||
config = {
|
config = {
|
||||||
afkThreshold = "Afk Threshold",
|
afkThreshold = "Afk Threshold",
|
||||||
agentTracker = "Agent Tracker",
|
agentTracker = "Agent Tracker",
|
||||||
@@ -101,15 +101,13 @@ shared.L = {
|
|||||||
whoerMoved = "%s класса %s (%s - %s) и гильдии %s переместился в %s",
|
whoerMoved = "%s класса %s (%s - %s) и гильдии %s переместился в %s",
|
||||||
whoerGone = "%s класса %s и гильдии %s покинул %s",
|
whoerGone = "%s класса %s и гильдии %s покинул %s",
|
||||||
killed = "%s убил %s с %s в %s на [%s](%2.2f, %2.2f)",
|
killed = "%s убил %s с %s в %s на [%s](%2.2f, %2.2f)",
|
||||||
-- A lot of this shit I get straight from the API in english (my locale)
|
hostile = "враждебный",
|
||||||
-- So there is no need to translate it from english to english
|
friendly = "дружественный",
|
||||||
tidbits = {
|
unknown = "неизвестный",
|
||||||
hostile = "враждебный",
|
english = "Английский",
|
||||||
friendly = "дружественный",
|
russian = "Русский",
|
||||||
unknown = "неизвестный",
|
pvpOn = "вкл",
|
||||||
pvpOn = "вкл",
|
pvpOff = "выкл",
|
||||||
pvpOff = "выкл",
|
|
||||||
},
|
|
||||||
config = {
|
config = {
|
||||||
alertSound = "Звук Оповещения",
|
alertSound = "Звук Оповещения",
|
||||||
tagSound = "Звук Тега",
|
tagSound = "Звук Тега",
|
||||||
@@ -178,55 +176,47 @@ shared.L = {
|
|||||||
networkMessenger = "Сетевой Мессенджер",
|
networkMessenger = "Сетевой Мессенджер",
|
||||||
queries = "Запросы Who",
|
queries = "Запросы Who",
|
||||||
},
|
},
|
||||||
zones = {
|
["Orgrimmar"] = "Оргриммар",
|
||||||
["Orgrimmar"] = "Оргриммар",
|
["Valley of Strength"] = "Долина Силы",
|
||||||
["Valley of Strength"] = "Долина Силы",
|
["Valley of Trials"] = "Долина Испытаний",
|
||||||
["Valley of Trials"] = "Долина Испытаний",
|
["Durotar"] = "Дуротар",
|
||||||
["Durotar"] = "Дуротар",
|
["Echo Isles"] = "Острова Эхо",
|
||||||
["Echo Isles"] = "Острова Эхо",
|
["Hunter"] = "Охотник",
|
||||||
},
|
["Warrior"] = "Воин",
|
||||||
classes = {
|
["Mage"] = "Маг",
|
||||||
["Hunter"] = "Охотник",
|
["Priest"] = "Жрец",
|
||||||
["Warrior"] = "Воин",
|
["Paladin"] = "Паладин",
|
||||||
["Mage"] = "Маг",
|
["Shaman"] = "Шаман",
|
||||||
["Priest"] = "Жрец",
|
["Rogue"] = "Разбойник",
|
||||||
["Paladin"] = "Паладин",
|
["Warlock"] = "Чернокнижник",
|
||||||
["Shaman"] = "Шаман",
|
["Druid"] = "Друид",
|
||||||
["Rogue"] = "Разбойник",
|
["Death Knight"] = "Рыцарь Смерти",
|
||||||
["Warlock"] = "Чернокнижник",
|
["Monk"] = "Монах",
|
||||||
["Druid"] = "Друид",
|
["Demon Hunter"] = "Демон Хламер",
|
||||||
["Death Knight"] = "Рыцарь Смерти",
|
["Evoker"] = "Эвокер",
|
||||||
["Monk"] = "Монах",
|
["Human"] = "Человек",
|
||||||
["Demon Hunter"] = "Демон Хламер",
|
["Orc"] = "Орк",
|
||||||
["Evoker"] = "Эвокер",
|
["Dwarf"] = "Дворф",
|
||||||
},
|
["Night Elf"] = "Ночной Эльф",
|
||||||
races = {
|
["Tauren"] = "Таурен",
|
||||||
["Human"] = "Человек",
|
["Gnome"] = "Гном",
|
||||||
["Orc"] = "Орк",
|
["Troll"] = "Тролль",
|
||||||
["Dwarf"] = "Дворф",
|
["Goblin"] = "Гоблин",
|
||||||
["Night Elf"] = "Ночной Эльф",
|
["Blood Elf"] = "Кровавый Эльф",
|
||||||
["Tauren"] = "Таурен",
|
["Draenei"] = "Дреней",
|
||||||
["Gnome"] = "Гном",
|
["Worgen"] = "Ворген",
|
||||||
["Troll"] = "Тролль",
|
["Pandaren"] = "Пандарен",
|
||||||
["Goblin"] = "Гоблин",
|
["Zandalari"] = "Зандалари",
|
||||||
["Blood Elf"] = "Кровавый Эльф",
|
["Mechagnome"] = "Механом",
|
||||||
["Draenei"] = "Дреней",
|
["Vulpera"] = "Вульперы",
|
||||||
["Worgen"] = "Ворген",
|
["Undead"] = "Нежить",
|
||||||
["Pandaren"] = "Пандарен",
|
["Alliance"] = "Альянс",
|
||||||
["Zandalari"] = "Зандалари",
|
["Horde"] = "Орда",
|
||||||
["Mechagnome"] = "Механом",
|
|
||||||
["Vulpera"] = "Вульперы",
|
|
||||||
["Undead"] = "Нежить",
|
|
||||||
},
|
|
||||||
factions = {
|
|
||||||
["Alliance"] = "Альянс",
|
|
||||||
["Horde"] = "Орда",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for key, value in pairs(shared.L.en.config) do
|
for key, value in pairs(shared._Locale.en.config) do
|
||||||
local rus = shared.L.ru.config[key]
|
local rus = shared._Locale.ru.config[key]
|
||||||
if not rus then
|
if not rus then
|
||||||
print(key, value)
|
print(key, value)
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user