Модуль:GiftsByItem
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] .. "]] [[" .. 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] .. "]] [[" .. 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