-
Notifications
You must be signed in to change notification settings - Fork 0
/
lang.lua
46 lines (35 loc) · 907 Bytes
/
lang.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
local i18n = require 'ext.i18n'
local config = require 'config'
local Collections = require 'lua-collections.collections'
local lang = {
i18n = nil,
}
lang.__call = function(self, key)
local txt, _, _ = self.i18n:get(key)
return txt
end
setmetatable(lang, lang)
function lang:init()
self.i18n = i18n()
local base = "languages"
for _, path in ipairs(love.filesystem.getDirectoryItems(base)) do
self.i18n:load(string.format("%s/%s", base, path))
end
self.i18n:set_fallback("en")
self.i18n:set_locale(config.data.language)
end
function lang:get(key)
return self.i18n:get(key)
end
function lang:get_locales()
local list = collect({})
for key, value in pairs(self.i18n.strings) do
list:push(key)
end
return list:all()
end
function lang:set_locale(key)
config.data.language = key
self.i18n:set_locale(key)
end
return lang