直接放入Zframework文件
This commit is contained in:
57
Zframework/languages.lua
Normal file
57
Zframework/languages.lua
Normal file
@@ -0,0 +1,57 @@
|
||||
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
|
||||
if publicText then
|
||||
for _,L in next,langList do
|
||||
for key,list in next,publicText do L[key]=list end
|
||||
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
|
||||
if pretreatFunc then
|
||||
for _,L in next,langList do
|
||||
pretreatFunc(L)
|
||||
end
|
||||
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]={}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function LANG.init() end
|
||||
end
|
||||
return LANG
|
||||
Reference in New Issue
Block a user