모듈:CU
외관
이 모듈에 대한 설명문서는 모듈:CU/설명문서에서 만들 수 있습니다
local getArgs = require('Module:Arguments').getArgs
local p = {
vers = {
latest = '6.1',
['6.1'] = '6.1'
}
}
---@param title string
---@param keys string
---@return string?
local function parse(title, keys)
title = mw.text.trim(title or '')
keys = mw.text.trim(keys or '')
local page = mw.title.new(title)
if not page or not page.exists then
return nil
end
local value = mw.text.jsonDecode(page:getContent())
for key in keys:gmatch("[^.]+") do
if type(value) == "table" then
value = value[key]
else
return nil
end
end
return value
end
---@param frame table
---@return string?
function p.locale(frame)
local args = getArgs(frame)
local keys = args[1] or args['keys']
local lang = args[2] or args['lang'] or 'EN'
local ver = args[3] or args['ver'] or p.vers.latest
return parse('CU/data/' .. ver .. '/' .. lang .. '.json', keys) or
parse('CU/data/' .. ver .. '/EN.json', keys)
end
return p