Module:Msg: Difference between revisions

Created page with "-- Module:Msg local p = {} -- Load the data from submodules local data = { types = mw.loadData("Module:Msg/types"), moves = mw.loadData("Module:Msg/moves"), items = mw.loadData("Module:Msg/items") } -- Helper to get page language local function getPageLang() return mw.getCurrentFrame():preprocess("{{PAGELANGUAGE}}") end -- Lookup function -- frame.args[1] = key (e.g., "pokehero-type-energy") -- frame.args[2] = category (optional, e.g., "types") -- fram..."
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
-- Module:Msg
local p = {}
local p = {}
-- Load the data from submodules
local data = {
    types = mw.loadData("Module:Msg/types"),
    moves = mw.loadData("Module:Msg/moves"),
    items = mw.loadData("Module:Msg/items")
}


-- Helper to get page language
-- Helper to get page language
Line 14: Line 6:
end
end


-- Lookup function
-- frame.args[1] = key (e.g., "pokehero-type-energy")
-- frame.args[2] = category (optional, e.g., "types")
-- frame.args.lang = optional language override
function p.msg(frame)
function p.msg(frame)
     local key = frame.args[1]
     local category = frame.args[1]
     local category = frame.args[2] or "types"
     local lastWord = frame.args[2]
    if not category or not lastWord then
        return "(missing category or key)"
    end
 
    local key = "pokehero-" .. category .. "-" .. lastWord
     local lang = frame.args.lang or getPageLang()
     local lang = frame.args.lang or getPageLang()
   
    local catTable
    local success, result = pcall(function()
        return mw.loadData("Module:Msg/" .. category)
    end)
   
    if success and result then
        catTable = result
    else
        -- Fallback: category table does not exist
        return key .. " (missing category table: " .. category .. ")"
    end


    local catTable = data[category]
     if catTable[key] then
     if catTable and catTable[key] then
         if catTable[key][lang] then
         if catTable[key][lang] then
             return catTable[key][lang]
             return catTable[key][lang]
         elseif catTable[key]["en"] then
         elseif catTable[key]["en"] then
             return catTable[key]["en"]
             return catTable[key]["en"] -- fallback to English
        else
            return key .. " (missing translations in category " .. category .. ")"
         end
         end
    else
        -- Key does not exist
        return key .. " (missing key in category " .. category .. ")"
     end
     end
    return key -- fallback
end
end


return p
return p