Files
Techmino/Zframework/languages.lua
MrZ626 56cbe4c5b6 添加log模块,用于代替之前缺少音频文件弹出的消息框
也给缺少图片和加载错误语言等地方添加了日志
控制台添加log命令输出日志
2021-09-22 11:03:55 +08:00

54 lines
1.4 KiB
Lua

local LANG={}
--ONLY FIRST CALL MAKE SENSE
--Create LANG.get() and LANG.addScene()
function LANG.init(defaultLang,langList,publicText,pretreatFunc)
local function _langFallback(T0,T)
for k,v in next,T0 do
if type(v)=='table'and not v.refuseCopy then--refuseCopy: just copy pointer, not contents
if not T[k]then T[k]={}end
if type(T[k])=='table'then
_langFallback(v,T[k])
end
elseif not T[k]then
T[k]=v
end
end
end
--Set public text
for _,L in next,langList do
for key,list in next,publicText do L[key]=list end
end
--Fallback to default language
for name,L in next,langList do
if name~=defaultLang then
_langFallback(langList[L.fallback or defaultLang],L)
end
end
--Custom pretreatment for each language
for _,L in next,langList do
pretreatFunc(L)
end
function LANG.get(l)
if not langList[l]then
LOG("Wrong language: "..tostring(l))
l=defaultLang
end
return langList[l]
end
function LANG.addScene(name)
for _,L in next,langList do
if L.WidgetText and not L.WidgetText[name]then
L.WidgetText[name]={back=L.back}
end
end
end
function LANG.init()end
end
return LANG