모듈:CU: 두 판 사이의 차이
외관
잔글편집 요약 없음 |
잔글편집 요약 없음 |
||
| 37번째 줄: | 37번째 줄: | ||
local args = getArgs(frame) | local args = getArgs(frame) | ||
local keys = args[1] or args | local keys = args[1] or args.keys | ||
local lang = args[2] or args | local lang = args[2] or args.lang or 'EN' | ||
local ver = args[3] or args | local ver = args[3] or args.ver or p.vers.latest | ||
return parse('CU/data/' .. ver .. '/' .. lang .. '.json', keys) or | return parse('CU/data/' .. ver .. '/' .. lang .. '.json', keys) or | ||
2026년 5월 27일 (수) 22:00 기준 최신판
이 모듈에 대한 설명문서는 모듈: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