모듈:CU: 두 판 사이의 차이
외관
잔글편집 요약 없음 |
잔글편집 요약 없음 |
||
| (같은 사용자의 중간 판 하나는 보이지 않습니다) | |||
| 1번째 줄: | 1번째 줄: | ||
local | local getArgs = require('Module:Arguments').getArgs | ||
local p = { | local p = { | ||
vers = { | vers = { | ||
latest = '6.1', | |||
['6.1'] = '6.1' | ['6.1'] = '6.1' | ||
} | } | ||
} | } | ||
function | ---@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 | if not page or not page.exists then | ||
return nil | |||
end | |||
mw. | 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 | end | ||
function p. | ---@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 | end | ||
return p | return p | ||
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