缺氧 wiki 编辑团队提示:注册账号并登录后体验更佳,且可通过参数设置定制优化您的浏览体验!

该站点为镜像站点,如果你想帮助这个由玩家志愿编辑的 wiki 站点,请前往原站点参与编辑,
同时欢迎加入编辑讨论群 851803695 与其他编辑者一起参与建设!

全站通知:

模块:表格/译名

来自缺氧WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:表格/译名/doc创建

-- Module:表格/译名
local p = {}
local fstr = mw.ustring.format -- shortcut for formattig a string
local getArgs = require('Module:Dev/Arguments').getArgs
local tb = require([[Module:表格]])
local po = require([[Module:Po]]).po
local utils = require([[Module:Utils]])

-- test by: = p.main({"Elements"})
-- test by: = p.main({"Misc", prefix = "STRINGS.MISC.TAGS", suffix = "*"})
function p.main(frame)
    local args = getArgs(frame)
    local tData = {}
    local d = mw.loadData("Module:i18n/" ..args[1])

    local ids = {}
    local suffix = args.suffix and args.suffix or ".NAME"
    local prefix = args.prefix and args.prefix or "*"
    for k, _ in pairs(d["zh"]) do
        local isSuf = suffix == "*" or string.sub(k, -#suffix) == suffix
        local isPre = prefix == "*" or string.sub(k, 1, #prefix) == prefix
        if isSuf and isPre then
            table.insert(ids, k)
        end
    end
    table.sort(ids)

    for _, k in ipairs(ids) do
        local msgctxt = k:gsub("%.", "<wbr>.") -- add word wrap
        local msgid = fstr("<nowiki>%s</nowiki>", d["en"][k] or "")
        local msgstr = fstr("<nowiki>%s</nowiki>", d["zh"][k])
        table.insert(tData, {msgctxt, msgstr, msgid})
    end

    return tb.table(tData, args)
end

return p