29 lines
660 B
Lua
29 lines
660 B
Lua
local t = {}
|
|
local love = love
|
|
|
|
t._languages = {
|
|
"en",
|
|
"test",
|
|
}
|
|
|
|
t._fonts = {
|
|
default = love.graphics.newFont( 18 )
|
|
}
|
|
|
|
local fallbackString = function( t, s )
|
|
return "!:"..tostring( s )
|
|
end
|
|
|
|
function t._setLanguage( name )
|
|
local lang = name or "en"
|
|
local strings = require( "i18n."..lang )
|
|
local fontName = rawget( strings, "_font" ) or "default"
|
|
setmetatable( t, {__index =
|
|
setmetatable( strings, {__index =
|
|
fallbackString } ) } )
|
|
if t._fonts[fontName] then love.graphics.setFont( t._fonts[fontName], 22 )
|
|
else t._fonts[fontName] = love.graphics.setNewFont( fontName, 22 ) end
|
|
return t
|
|
end
|
|
|
|
return t._setLanguage( "en" ) |