Модуль:GiftsByItem

Материал из Stardew Valley Wiki
Версия от 03:57, 18 января 2023; Margotbean (обсуждение | вклад) (test module)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Description

This module takes a comma-separated list of villager names and transforms it into a bullet-separated list of villager icons + links to villager pages.

This module performs tasks that were formerly performed by arrays (sorting, translating, and formatting) in Template:GiftsByItem.

This module can be copy/pasted into all languages without alteration.

Please report any problems or issues with the module on the discussion page for Template:GiftsByItem.


--[[This module takes a comma-separated list of villager names and
    transforms it into a bullet-separated list of icons + links to villager pages.
    This will replace the arrays in Template:GiftsByItem

    This module can be copied into all languages without alteration.
]]
local p = {}
local lang = string.upper(mw.getContentLanguage().code)	

--ts = translate & sort
function p.ts(frame)
    local villagerlist = frame.args[1]
    local villagertable = {}

    if villagerlist ~= nil then
        local values = mw.text.split(villagerlist, ",", true)
        for i = 1, #values do
            local v = mw.text.trim(values[i])
            if v ~= "" then
                table.insert(villagertable, v)
            end
        end
    end  

    if lang == "DE" then
            for k,v in pairs(villagertable) do
                if v == "Dwarf" then
                    table.insert(villagertable, "Zwerg")
                    table.remove(villagertable, k)
                end
                if v == "Wizard" then
                    table.insert(villagertable, "Zauberer")
                    table.remove(villagertable, k)
                end                  
            end
    elseif lang == "ES" then
            for k,v in pairs(villagertable) do
                if v == "Dwarf" then
                    table.insert(villagertable, "Enano")
                    table.remove(villagertable, k)
                end
                if v == "Wizard" then
                    table.insert(villagertable, "Rasmodius")
                    table.remove(villagertable, k)
                end                  
            end	    
	elseif lang == "FR" then
            for k,v in pairs(villagertable) do
				if v == "Leo" then
					table.insert(villagertable, "Léo")
					table.remove(villagertabe, k)
				end
                if v == "Dwarf" then
                    table.insert(villagertable, "Nain")
                    table.remove(villagertable, k)
                end
                if v == "Wizard" then
                    table.insert(villagertable, "Sorcier")
                    table.remove(villagertable, k)
                end  
                if v == "Robin" then
                    table.insert(villagertable, "Robine")
                    table.remove(villagertable, k)
                end                  
            end
    elseif lang == "IT" then
            for k,v in pairs(villagertable) do
                if v == "Dwarf" then
                    table.insert(villagertable, "Nano")
                    table.remove(villagertable, k)
                end
                if v == "Wizard" then
                    table.insert(villagertable, "Mago")
                    table.remove(villagertable, k)
                end                  
            end	    
	elseif lang == "JA" then
            for k,v in pairs(villagertable) do
				if v == "Alex" then
					table.insert(villagertable, "アレックス")
					table.remove(villagertable, k)
				end
				if v == "Elliott" then
					table.insert(villagertable, "エリオット")
					table.remove(villagertable, k)
				end
				if v == "Harvey" then
					table.insert(villagertable, "ハーヴィー")
					table.remove(villagertable, k)
				end
				if v == "Sam" then
					table.insert(villagertable, "サム")
					table.remove(villagertable, k)
				end
				if v == "Sebastian" then
					table.insert(villagertable, "セバスチャン")
					table.remove(villagertable, k)
				end
				if v == "Shane" then
					table.insert(villagertable, "シェーン")
					table.remove(villagertable, k)
				end
				if v == "Abigail" then
					table.insert(villagertable, "アビゲイル")
					table.remove(villagertable, k)
				end
				if v == "Emily" then
					table.insert(villagertable, "エミリー")
					table.remove(villagertable, k)
				end
				if v == "Haley" then
					table.insert(villagertable, "ヘイリー")
					table.remove(villagertable, k)
				end
				if v == "Leah" then
					table.insert(villagertable, "リア")
					table.remove(villagertable, k)
				end
				if v == "Maru" then
					table.insert(villagertable, "マル")
					table.remove(villagertable, k)
				end
				if v == "Penny" then
					table.insert(villagertable, "ペニー")
					table.remove(villagertable, k)
				end
				if v == "Caroline" then
					table.insert(villagertable, "キャロライン")
					table.remove(villagertable, k)
				end
				if v == "Clint" then
					table.insert(villagertable, "クリント")
					table.remove(villagertable, k)
				end
				if v == "Demetrius" then
					table.insert(villagertable, "ディメトリウス")
					table.remove(villagertable, k)
				end
				if v == "Dwarf" then
					table.insert(villagertable, "ドワーフ")
					table.remove(villagertable, k)
				end
				if v == "Evelyn" then
					table.insert(villagertable, "エブリン")
					table.remove(villagertable, k)
				end
				if v == "George" then
					table.insert(villagertable, "ジョージ")
					table.remove(villagertable, k)
				end
				if v == "Gus" then
					table.insert(villagertable, "ガス")
					table.remove(villagertable, k)
				end
				if v == "Jas" then
					table.insert(villagertable, "ジャス")
					table.remove(villagertable, k)
				end
				if v == "Jodi" then
					table.insert(villagertable, "ジョディ")
					table.remove(villagertable, k)
				end
				if v == "Kent" then
					table.insert(villagertable, "ケント")
					table.remove(villagertable, k)
				end
				if v == "Krobus" then
					table.insert(villagertable, "クロバス")
					table.remove(villagertable, k)
				end
				if v == "Leo" then
					table.insert(villagertable, "レオ")
					table.remove(villagertable, k)
				end
				if v == "Lewis" then
					table.insert(villagertable, "ルイス")
					table.remove(villagertable, k)
				end
				if v == "Linus" then
					table.insert(villagertable, "ライナス")
					table.remove(villagertable, k)
				end
				if v == "Marnie" then
					table.insert(villagertable, "マーニー")
					table.remove(villagertable, k)
				end
				if v == "Pam" then
					table.insert(villagertable, "パム")
					table.remove(villagertable, k)
				end
				if v == "Pierre" then
					table.insert(villagertable, "ピエール")
					table.remove(villagertable, k)
				end
				if v == "Robin" then
					table.insert(villagertable, "ロビン")
					table.remove(villagertable, k)
				end
				if v == "Sandy" then
					table.insert(villagertable, "サンディ")
					table.remove(villagertable, k)
				end
				if v == "Vincent" then
					table.insert(villagertable, "ヴィンセント")
					table.remove(villagertable, k)
				end
				if v == "Willy" then
					table.insert(villagertable, "ウィリー")
					table.remove(villagertabe, k)
				end
                if v == "Wizard" then
                    table.insert(villagertable, "魔術師")
                    table.remove(villagertable, k)
                end                
            end	    
	elseif lang == "KO" then
            for k,v in pairs(villagertable) do
				if v == "Alex" then
					table.insert(villagertable, "알렉스")
					table.remove(villagertable, k)
				end
				if v == "Elliott" then
					table.insert(villagertable, "엘리엇")
					table.remove(villagertable, k)
				end
				if v == "Harvey" then
					table.insert(villagertable, "하비")
					table.remove(villagertable, k)
				end
				if v == "Sam" then
					table.insert(villagertable, "샘")
					table.remove(villagertable, k)
				end
				if v == "Sebastian" then
					table.insert(villagertable, "세바스찬")
					table.remove(villagertable, k)
				end
				if v == "Shane" then
					table.insert(villagertable, "셰인")
					table.remove(villagertable, k)
				end
				if v == "Abigail" then
					table.insert(villagertable, "애비게일")
					table.remove(villagertable, k)
				end
				if v == "Emily" then
					table.insert(villagertable, "에밀리")
					table.remove(villagertable, k)
				end
				if v == "Haley" then
					table.insert(villagertable, "헤일리")
					table.remove(villagertable, k)
				end
				if v == "Leah" then
					table.insert(villagertable, "레아")
					table.remove(villagertable, k)
				end
				if v == "Maru" then
					table.insert(villagertable, "마루")
					table.remove(villagertable, k)
				end
				if v == "Penny" then
					table.insert(villagertable, "페니")
					table.remove(villagertable, k)
				end
				if v == "Caroline" then
					table.insert(villagertable, "캐롤라인")
					table.remove(villagertable, k)
				end
				if v == "Clint" then
					table.insert(villagertable, "클린트")
					table.remove(villagertable, k)
				end
				if v == "Demetrius" then
					table.insert(villagertable, "드미트리우스")
					table.remove(villagertable, k)
				end
				if v == "Dwarf" then
					table.insert(villagertable, "드워프")
					table.remove(villagertable, k)
				end
				if v == "Evelyn" then
					table.insert(villagertable, "에블린")
					table.remove(villagertable, k)
				end
				if v == "George" then
					table.insert(villagertable, "조지")
					table.remove(villagertable, k)
				end
				if v == "Gus" then
					table.insert(villagertable, "거스")
					table.remove(villagertable, k)
				end
				if v == "Jas" then
					table.insert(villagertable, "재스")
					table.remove(villagertable, k)
				end
				if v == "Jodi" then
					table.insert(villagertable, "조디")
					table.remove(villagertable, k)
				end
				if v == "Kent" then
					table.insert(villagertable, "켄트")
					table.remove(villagertable, k)
				end
				if v == "Krobus" then
					table.insert(villagertable, "크로버스")
					table.remove(villagertable, k)
				end
				if v == "Leo" then
					table.insert(villagertable, "레오")
					table.remove(villagertable, k)
				end
				if v == "Lewis" then
					table.insert(villagertable, "루이스")
					table.remove(villagertable, k)
				end
				if v == "Linus" then
					table.insert(villagertable, "라이너스")
					table.remove(villagertable, k)
				end
				if v == "Marnie" then
					table.insert(villagertable, "마니")
					table.remove(villagertable, k)
				end
				if v == "Pam" then
					table.insert(villagertable, "팸")
					table.remove(villagertable, k)
				end
				if v == "Pierre" then
					table.insert(villagertable, "피에르")
					table.remove(villagertable, k)
				end
				if v == "Robin" then
					table.insert(villagertable, "로빈")
					table.remove(villagertable, k)
				end
				if v == "Sandy" then
					table.insert(villagertable, "샌디")
					table.remove(villagertable, k)
				end
				if v == "Vincent" then
					table.insert(villagertable, "빈센트")
					table.remove(villagertable, k)
				end
				if v == "Willy" then
					table.insert(villagertable, "윌리")
					table.remove(villagertabe, k)
				end
                if v == "Wizard" then
                    table.insert(villagertable, "마법사")
                    table.remove(villagertable, k)
                end                
            end
    elseif lang == "HU" then
            for k,v in pairs(villagertable) do
                if v == "Dwarf" then
                    table.insert(villagertable, "Törpe")
                    table.remove(villagertable, k)
                end
                if v == "Wizard" then
                    table.insert(villagertable, "Varázsló")
                    table.remove(villagertable, k)
                end                  
            end
    elseif lang == "PT" then
            for k,v in pairs(villagertable) do
                if v == "Dwarf" then
                    table.insert(villagertable, "Anão")
                    table.remove(villagertable, k)
                end
                if v == "Wizard" then
                    table.insert(villagertable, "Feiticeiro")
                    table.remove(villagertable, k)
                end                  
            end	    
	elseif lang == "RU" then
            for k,v in pairs(villagertable) do
				if v == "Alex" then
					table.insert(villagertable, "Алекс")
					table.remove(villagertable, k)
				end
				if v == "Elliott" then
					table.insert(villagertable, "Эллиот")
					table.remove(villagertable, k)
				end
				if v == "Harvey" then
					table.insert(villagertable, "Харви")
					table.remove(villagertable, k)
				end
				if v == "Sam" then
					table.insert(villagertable, "Сэм")
					table.remove(villagertable, k)
				end
				if v == "Sebastian" then
					table.insert(villagertable, "Себастиан")
					table.remove(villagertable, k)
				end
				if v == "Shane" then
					table.insert(villagertable, "Шейн")
					table.remove(villagertable, k)
				end
				if v == "Abigail" then
					table.insert(villagertable, "Абигейл")
					table.remove(villagertable, k)
				end
				if v == "Emily" then
					table.insert(villagertable, "Эмили")
					table.remove(villagertable, k)
				end
				if v == "Haley" then
					table.insert(villagertable, "Хэйли")
					table.remove(villagertable, k)
				end
				if v == "Leah" then
					table.insert(villagertable, "Лея")
					table.remove(villagertable, k)
				end
				if v == "Maru" then
					table.insert(villagertable, "Мару")
					table.remove(villagertable, k)
				end
				if v == "Penny" then
					table.insert(villagertable, "Пенни")
					table.remove(villagertable, k)
				end
				if v == "Caroline" then
					table.insert(villagertable, "Кэролайн")
					table.remove(villagertable, k)
				end
				if v == "Clint" then
					table.insert(villagertable, "Клинт")
					table.remove(villagertable, k)
				end
				if v == "Demetrius" then
					table.insert(villagertable, "Деметриус")
					table.remove(villagertable, k)
				end
				if v == "Dwarf" then
					table.insert(villagertable, "Дварф")
					table.remove(villagertable, k)
				end
				if v == "Evelyn" then
					table.insert(villagertable, "Эвелин")
					table.remove(villagertable, k)
				end
				if v == "George" then
					table.insert(villagertable, "Джордж")
					table.remove(villagertable, k)
				end
				if v == "Gus" then
					table.insert(villagertable, "Гас")
					table.remove(villagertable, k)
				end
				if v == "Jas" then
					table.insert(villagertable, "Джас")
					table.remove(villagertable, k)
				end
				if v == "Jodi" then
					table.insert(villagertable, "Джоди")
					table.remove(villagertable, k)
				end
				if v == "Kent" then
					table.insert(villagertable, "Кент")
					table.remove(villagertable, k)
				end
				if v == "Krobus" then
					table.insert(villagertable, "Кробус")
					table.remove(villagertable, k)
				end
				if v == "Leo" then
					table.insert(villagertable, "Лео")
					table.remove(villagertable, k)
				end
				if v == "Lewis" then
					table.insert(villagertable, "Льюис")
					table.remove(villagertable, k)
				end
				if v == "Linus" then
					table.insert(villagertable, "Линус")
					table.remove(villagertable, k)
				end
				if v == "Marnie" then
					table.insert(villagertable, "Марни")
					table.remove(villagertable, k)
				end
				if v == "Pam" then
					table.insert(villagertable, "Пэм")
					table.remove(villagertable, k)
				end
				if v == "Pierre" then
					table.insert(villagertable, "Пьер")
					table.remove(villagertable, k)
				end
				if v == "Robin" then
					table.insert(villagertable, "Робин")
					table.remove(villagertable, k)
				end
				if v == "Sandy" then
					table.insert(villagertable, "Сэнди")
					table.remove(villagertable, k)
				end
				if v == "Vincent" then
					table.insert(villagertable, "Винсент")
					table.remove(villagertable, k)
				end
				if v == "Willy" then
					table.insert(villagertable, "Вилли")
					table.remove(villagertabe, k)
				end
                if v == "Wizard" then
                    table.insert(villagertable, "Волшебник")
                    table.remove(villagertable, k)
                end                
            end
    elseif lang == "TR" then
            for k,v in pairs(villagertable) do
                if v == "Dwarf" then
                    table.insert(villagertable, "Cüce")
                    table.remove(villagertable, k)
                end
                if v == "Wizard" then
                    table.insert(villagertable, "Büyücü")
                    table.remove(villagertable, k)
                end                  
            end	    
	elseif lang == "ZH" then
            for k,v in pairs(villagertable) do
				if v == "Alex" then
					table.insert(villagertable, "亚历克斯")
					table.remove(villagertable, k)
				end
				if v == "Elliott" then
					table.insert(villagertable, "艾利欧特")
					table.remove(villagertable, k)
				end
				if v == "Harvey" then
					table.insert(villagertable, "哈维")
					table.remove(villagertable, k)
				end
				if v == "Sam" then
					table.insert(villagertable, "山姆")
					table.remove(villagertable, k)
				end
				if v == "Sebastian" then
					table.insert(villagertable, "塞巴斯蒂安")
					table.remove(villagertable, k)
				end
				if v == "Shane" then
					table.insert(villagertable, "谢恩")
					table.remove(villagertable, k)
				end
				if v == "Abigail" then
					table.insert(villagertable, "阿比盖尔")
					table.remove(villagertable, k)
				end
				if v == "Emily" then
					table.insert(villagertable, "艾米丽")
					table.remove(villagertable, k)
				end
				if v == "Haley" then
					table.insert(villagertable, "海莉")
					table.remove(villagertable, k)
				end
				if v == "Leah" then
					table.insert(villagertable, "莉亚")
					table.remove(villagertable, k)
				end
				if v == "Maru" then
					table.insert(villagertable, "玛鲁")
					table.remove(villagertable, k)
				end
				if v == "Penny" then
					table.insert(villagertable, "潘妮")
					table.remove(villagertable, k)
				end
				if v == "Caroline" then
					table.insert(villagertable, "卡洛琳")
					table.remove(villagertable, k)
				end
				if v == "Clint" then
					table.insert(villagertable, "克林特")
					table.remove(villagertable, k)
				end
				if v == "Demetrius" then
					table.insert(villagertable, "德米特里厄斯")
					table.remove(villagertable, k)
				end
				if v == "Dwarf" then
					table.insert(villagertable, "矮人")
					table.remove(villagertable, k)
				end
				if v == "Evelyn" then
					table.insert(villagertable, "艾芙琳")
					table.remove(villagertable, k)
				end
				if v == "George" then
					table.insert(villagertable, "乔治")
					table.remove(villagertable, k)
				end
				if v == "Gus" then
					table.insert(villagertable, "格斯")
					table.remove(villagertable, k)
				end
				if v == "Jas" then
					table.insert(villagertable, "贾斯")
					table.remove(villagertable, k)
				end
				if v == "Jodi" then
					table.insert(villagertable, "乔迪")
					table.remove(villagertable, k)
				end
				if v == "Kent" then
					table.insert(villagertable, "肯特")
					table.remove(villagertable, k)
				end
				if v == "Krobus" then
					table.insert(villagertable, "科罗布斯")
					table.remove(villagertable, k)
				end
				if v == "Leo" then
					table.insert(villagertable, "雷欧")
					table.remove(villagertable, k)
				end
				if v == "Lewis" then
					table.insert(villagertable, "刘易斯")
					table.remove(villagertable, k)
				end
				if v == "Linus" then
					table.insert(villagertable, "莱纳斯")
					table.remove(villagertable, k)
				end
				if v == "Marnie" then
					table.insert(villagertable, "玛妮")
					table.remove(villagertable, k)
				end
				if v == "Pam" then
					table.insert(villagertable, "潘姆")
					table.remove(villagertable, k)
				end
				if v == "Pierre" then
					table.insert(villagertable, "皮埃尔")
					table.remove(villagertable, k)
				end
				if v == "Robin" then
					table.insert(villagertable, "罗宾")
					table.remove(villagertable, k)
				end
				if v == "Sandy" then
					table.insert(villagertable, "桑迪")
					table.remove(villagertable, k)
				end
				if v == "Vincent" then
					table.insert(villagertable, "文森特")
					table.remove(villagertable, k)
				end
				if v == "Willy" then
					table.insert(villagertable, "威利")
					table.remove(villagertabe, k)
				end
                if v == "Wizard" then
                    table.insert(villagertable, "法师")
                    table.remove(villagertable, k)
                end                
            end
    end
    
    table.sort(villagertable)

    --put the table "villagertable" back into a string blob
	villagerlist = ""
	for i=1, (#villagertable-1) do
		villagerlist = villagerlist .. "<span class='no-wrap'>[[File:" .. villagertable[i] .. " Icon.png|32px|link=" .. villagertable[i] .. "]]&nbsp;[[" .. 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|32px|link=" .. villagertable[#villagertable] .. "]]&nbsp;[[" .. villagertable[#villagertable] .. "]]</span>"


	--fix icons whose names are all in English
	if lang == "DE" then
		villagerlist = villagerlist.gsub(villagerlist, "Zwerg Icon", "Dwarf Icon")
		villagerlist = villagerlist.gsub(villagerlist, "Zauberer Icon", "Wizard Icon")
	elseif lang == "ES" then	
		villagerlist = villagerlist.gsub(villagerlist, "Enano Icon", "Dwarf Icon")
		villagerlist = villagerlist.gsub(villagerlist, "Rasmodius Icon", "Wizard Icon")	
	elseif lang == "FR" then	
		villagerlist = villagerlist.gsub(villagerlist, "Nain Icon", "Dwarf Icon")
		villagerlist = villagerlist.gsub(villagerlist, "Sorcier Icon", "Wizard Icon")		
		villagerlist = villagerlist.gsub(villagerlist, "Robine Icon", "Robin Icon")		
		villagerlist = villagerlist.gsub(villagerlist, "Léo Icon", "Leo Icon")	
	elseif lang == "IT" then
		villagerlist = villagerlist.gsub(villagerlist, "Nano Icon", "Dwarf Icon")
		villagerlist = villagerlist.gsub(villagerlist, "Mago Icon", "Wizard Icon")
	elseif lang == "JA" then
	
	elseif lang == "KO" then
	
	elseif lang == "HU" then
	
	elseif lang == "PT" then
	
	elseif lang == "RU" then
	
	elseif lang == "TR" then
		villagerlist = villagerlist.gsub(villagerlist, "Cüce Icon", "Dwarf Icon")
		villagerlist = villagerlist.gsub(villagerlist, "Büyücü Icon", "Wizard Icon")	
	elseif lang == "ZH" then
	end

	return villagerlist
end

return p