维护提醒

BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。

全站通知:

模块:Expanded/GiftsByItem

来自星露谷物语维基
跳到导航 跳到搜索
[ 创建 | 刷新 ]文档页面
当前模块文档缺失,需要扩充。
local p = {}
local predefinedOrder = {
    "阿比盖尔", "亚历克斯", "安迪", "苹果", "卡洛琳", "克莱尔", "克林特", 
    "德米特里厄斯", "矮人", "艾利欧特", "艾米丽", "艾芙琳", "乔治", 
    "冈瑟", "格斯", "海莉", "哈维", "仆从", "贾斯", "乔迪", "肯特", 
    "科罗布斯", "兰斯", "莉亚", "雷欧", "刘易斯", "莱纳斯", "马格努斯", 
    "马龙", "玛妮", "马丁", "玛鲁", "摩根", "摩根", "莫里斯", "奥利维亚", 
    "潘姆", "潘妮", "皮埃尔", "罗宾", "山姆", "桑迪", "斯嘉丽", 
    "塞巴斯蒂安", "谢恩", "索菲娅", "苏珊", "维克多", "文森特", "威利"

}

--tssve = translate & sort for sve
function p.tssve(frame)
    local villagerlist = frame.args[1]

    if villagerlist ~= nil then
    
        local vtable = {}
        local villagers = mw.text.split(villagerlist, ",", true)
        for i = 1, #villagers do
            local v = mw.text.trim(villagers[i])
            if v ~= "" then
                table.insert(vtable, v)
            end
        end
        
        --remove duplicate entries
        local dupes = {}
        local villagertable = {}
        for i = 1, #vtable do
           if not dupes[vtable[i]] then
              table.insert(villagertable, vtable[i])
              dupes[vtable[i]] = true
           end
        end
    
        table.sort(villagertable)
        
        for k,v in pairs(villagertable) do
            if v == "Alex" then villagertable[k] = "亚历克斯" end
            if v == "Elliott" then villagertable[k] = "艾利欧特" end
            if v == "Harvey" then villagertable[k] = "哈维" end
            if v == "Sam" then villagertable[k] = "山姆" end
            if v == "Sebastian" then villagertable[k] = "塞巴斯蒂安" end
            if v == "Shane" then villagertable[k] = "谢恩" end
            if v == "Abigail" then villagertable[k] = "阿比盖尔" end
            if v == "Emily" then villagertable[k] = "艾米丽" end
            if v == "Haley" then villagertable[k] = "海莉" end
            if v == "Leah" then villagertable[k] = "莉亚" end
            if v == "Maru" then villagertable[k] = "玛鲁" end
            if v == "Penny" then villagertable[k] = "潘妮" end
            if v == "Caroline" then villagertable[k] = "卡洛琳" end
            if v == "Clint" then villagertable[k] = "克林特" end
            if v == "Demetrius" then villagertable[k] = "德米特里厄斯" end
            if v == "Dwarf" then villagertable[k] = "矮人" end
            if v == "Evelyn" then villagertable[k] = "艾芙琳" end
            if v == "George" then villagertable[k] = "乔治" end
            if v == "Gus" then villagertable[k] = "格斯" end
            if v == "Jas" then villagertable[k] = "贾斯" end
            if v == "Jodi" then villagertable[k] = "乔迪" end
            if v == "Kent" then villagertable[k] = "肯特" end
            if v == "Krobus" then villagertable[k] = "科罗布斯" end
            if v == "Leo" then villagertable[k] = "雷欧" end
            if v == "Lewis" then villagertable[k] = "刘易斯" end
            if v == "Linus" then villagertable[k] = "莱纳斯" end
            if v == "Marnie" then villagertable[k] = "玛妮" end
            if v == "Pam" then villagertable[k] = "潘姆" end
            if v == "Pierre" then villagertable[k] = "皮埃尔" end
            if v == "Robin" then villagertable[k] = "罗宾" end
            if v == "Sandy" then villagertable[k] = "桑迪" end
            if v == "Vincent" then villagertable[k] = "文森特" end
            if v == "Willy" then villagertable[k] = "威利" end
            -- new in sve
            if v == "Lance" then villagertable[k] = "兰斯" end
            if v == "Magnus" then villagertable[k] = "马格努斯" end
            if v == "Marlon" then villagertable[k] = "马龙" end
            if v == "Martin" then villagertable[k] = "马丁" end
            if v == "Morgan" then villagertable[k] = "摩根" end
            if v == "Morris" then villagertable[k] = "莫里斯" end
            if v == "Olivia" then villagertable[k] = "奥利维亚" end
            if v == "Andy" then villagertable[k] = "安迪" end
            if v == "Scarlett" then villagertable[k] = "斯嘉丽" end
            if v == "Sophia" then villagertable[k] = "索菲娅" end
            if v == "Susan" then villagertable[k] = "苏珊" end
            if v == "Victor" then villagertable[k] = "维克多" end
            if v == "Henchman" then villagertable[k] = "仆从" end
            if v == "Claire" then villagertable[k] = "克莱尔" end
            if v == "Gunther" then villagertable[k] = "冈瑟" end
            if v == "Morgan" then villagertable[k] = "摩根" end
            if v == "Apples" then villagertable[k] = "苹果" end
            
        end

        -- Custom sort
        table.sort(villagertable, function(a, b)
            local indexA = 0
            local indexB = 0
            for i, name in ipairs(predefinedOrder) do
                if a == name then indexA = i end
                if b == name then indexB = i end
            end
            return indexA < indexB
        end)


        --put the table "villagertable" back into a string blob
        --table.concat( table, sep, i, j ) DOES NOT WORK
        villagerlist = ""
        for i = 1, (#villagertable-1) do
            villagerlist = villagerlist .. '<span class="no-wrap">[[File:' .. villagertable[i] .. ' Icon.png|24px|link=' .. villagertable[i] .. ']]&nbsp;[[SVE:' .. villagertable[i] .. '|' .. villagertable[i] .. ']]</span> • '
        end
        --We don't want a trailing bullet at the end of the list
        villagerlist = villagerlist .. '<span class="no-wrap">[[File:' .. villagertable[#villagertable] .. ' Icon.png|24px|link=' .. villagertable[#villagertable] .. ']]&nbsp;[[SVE:' .. villagertable[#villagertable] .. '|' .. villagertable[#villagertable] .. ']]</span>'


        --Now that we've sorted by the native language, 
        --fix icons whose names are all in English
        --Also add the é to Leo for French
        --so I don't have to write an entire substitution table for accented chars
        villagerlist = string.gsub(villagerlist, "亚历克斯 Icon", "Alex Icon")
        villagerlist = string.gsub(villagerlist, "艾利欧特 Icon", "Elliott Icon")
        villagerlist = string.gsub(villagerlist, "哈维 Icon", "Harvey Icon")
        villagerlist = string.gsub(villagerlist, "山姆 Icon", "Sam Icon")
        villagerlist = string.gsub(villagerlist, "塞巴斯蒂安 Icon", "Sebastian Icon")
        villagerlist = string.gsub(villagerlist, "谢恩 Icon", " Shane Icon")
        villagerlist = string.gsub(villagerlist, "阿比盖尔 Icon", "Abigail Icon")
        villagerlist = string.gsub(villagerlist, "艾米丽 Icon", "Emily Icon")
        villagerlist = string.gsub(villagerlist, "海莉 Icon", "Haley Icon")
        villagerlist = string.gsub(villagerlist, "莉亚 Icon", "Leah Icon")
        villagerlist = string.gsub(villagerlist, "玛鲁 Icon", "Maru Icon")
        villagerlist = string.gsub(villagerlist, "潘妮 Icon", "Penny Icon")
        villagerlist = string.gsub(villagerlist, "卡洛琳 Icon", "Caroline Icon")
        villagerlist = string.gsub(villagerlist, "克林特 Icon", "Clint Icon")
        villagerlist = string.gsub(villagerlist, "德米特里厄斯 Icon", "Demetrius Icon")
        villagerlist = string.gsub(villagerlist, "矮人 Icon", "Dwarf Icon")
        villagerlist = string.gsub(villagerlist, "艾芙琳 Icon", "Evelyn Icon")
        villagerlist = string.gsub(villagerlist, "乔治 Icon", "George Icon")
        villagerlist = string.gsub(villagerlist, "格斯 Icon", "Gus Icon")
        villagerlist = string.gsub(villagerlist, "贾斯 Icon", "Jas Icon")
        villagerlist = string.gsub(villagerlist, "乔迪 Icon", "Jodi Icon")
        villagerlist = string.gsub(villagerlist, "肯特 Icon", "Kent Icon")
        villagerlist = string.gsub(villagerlist, "科罗布斯 Icon", "Krobus Icon")
        villagerlist = string.gsub(villagerlist, "雷欧 Icon", "Leo Icon")
        villagerlist = string.gsub(villagerlist, "刘易斯 Icon", "Lewis Icon")
        villagerlist = string.gsub(villagerlist, "莱纳斯 Icon", "Linus Icon")
        villagerlist = string.gsub(villagerlist, "玛妮 Icon", "Marnie Icon")
        villagerlist = string.gsub(villagerlist, "潘姆 Icon", "Pam Icon")
        villagerlist = string.gsub(villagerlist, "皮埃尔 Icon", "Pierre Icon")
        villagerlist = string.gsub(villagerlist, "罗宾 Icon", "Robin Icon")
        villagerlist = string.gsub(villagerlist, "桑迪 Icon", "Sandy Icon")
        villagerlist = string.gsub(villagerlist, "文森特 Icon", "Vincent Icon")
        villagerlist = string.gsub(villagerlist, "威利 Icon", "Willy Icon")
        villagerlist = string.gsub(villagerlist, "法师 Icon", "Wizard Icon")
        villagerlist = string.gsub(villagerlist, "兰斯 Icon", "Lance Icon") 
        villagerlist = string.gsub(villagerlist, "马格努斯 Icon", "Magnus Icon") 
        villagerlist = string.gsub(villagerlist, "马龙 Icon", "Marlon Icon") 
        villagerlist = string.gsub(villagerlist, "马丁 Icon", "Martin Icon") 
        villagerlist = string.gsub(villagerlist, "摩根 Icon", "Morgan Icon") 
        villagerlist = string.gsub(villagerlist, "莫里斯 Icon", "Morris Icon") 
        villagerlist = string.gsub(villagerlist, "奥利维亚 Icon", "Olivia Icon") 
        villagerlist = string.gsub(villagerlist, "安迪 Icon", "Andy Icon") 
        villagerlist = string.gsub(villagerlist, "斯嘉丽 Icon", "Scarlett Icon") 
        villagerlist = string.gsub(villagerlist, "索菲娅 Icon", "Sophia Icon") 
        villagerlist = string.gsub(villagerlist, "苏珊 Icon", "Susan Icon") 
        villagerlist = string.gsub(villagerlist, "维克多 Icon", "Victor Icon") 
        villagerlist = string.gsub(villagerlist, "仆从 Icon", "Henchman Icon") 
        villagerlist = string.gsub(villagerlist, "克莱尔 Icon", "Claire Icon") 
        villagerlist = string.gsub(villagerlist, "冈瑟 Icon", "Gunther Icon") 
        villagerlist = string.gsub(villagerlist, "摩根 Icon", "Morgan Icon") 
        villagerlist = string.gsub(villagerlist, "苹果 Icon", "Apples Icon") 


        return villagerlist
    end --if villagerlist == nil, then do nothing but return p
end --end function p.tssve()

return p