comp-tg/src/parts/locale.lua

34 lines
622 B
Lua
Raw Normal View History

2021-07-26 13:12:03 +00:00
local Locale = {
list = {
'en',
'ru'
},
main = 'en',
__newindex = function()end -- ro
}
Locale.__index = Locale
function Locale:get(cat, k, lang)
assert(cat, 'Give category')
assert(k, 'Give key')
lang = lang or self.main
2021-07-27 08:15:28 +00:00
local v = (self[lang] or {})[cat]
2021-07-26 13:12:03 +00:00
if not v then
2021-07-27 08:18:27 +00:00
return self[self.main][cat][k]
2021-07-27 08:15:28 +00:00
else return v[k] end
2021-07-26 13:12:03 +00:00
end
return function(C)
local json = require 'etc.json'
for i = 1, #Locale.list do
local n = Locale.list[i]
local f = io.open(('src/locales/%s.json'):format(n))
Locale[n] = json.decode(f:read 'a')
end
C.locale = setmetatable({}, Locale)
end