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
|