require('Modül:Küresel değil') local getArgs = require('Modül:Bağımsız değişkenler').getArgs local cd = require('Modül:ÜlkeVeri') local list = require('Modül:Liste'); local p = {} local knownargs = { ['format'] = true, ['sınıf'] = true, ['biçim'] = true, ['listebiçimi'] = true, ['ögebiçimi'] = true, ['öge1_biçimi'] = true, ['girinti'] = true } local labels = { ['NA'] = "KA", ['KA'] = "KA", ['EU'] = "AVR", ['EUR'] = "AVR", ['AVR'] = "AVR", ['AV'] = "AVR", ['AU'] = "AU", ['AUS'] = "AU", ['PAL'] = "PAL", ['SEA'] = "GDA", ['GDA'] = "GDA", ['AS'] = "AS", ['JP'] = "JP", ['KR'] = "KR", ['TR'] = "TR", ['SA'] = "GA", ['GA'] = "GA", ['OC'] = "OK", ['OK'] = "OK", ['WW'] = "", ['INT'] = "", ['DÇ'] = "", ['?'] = "" } local function getLocalLabel(alias) local label = labels[string.upper(alias)] return label end local countryData = {}; -- Used to store country data to avoid the need of repeated calls to Modül:ÜlkeVeri. This saves a little time if the same abbreviation appears multiple times in the template. local function getCountryData(frame, alias) local ualias = string.upper(alias) if (countryData[ualias] == nil) then local cdtable = cd.gettable(frame, alias, {}) countryData[ualias] = cdtable['alias'] end return countryData[ualias] end function p.main(frame) local args = getArgs(frame) local listformat = args['format'] if (listformat nil or listformat "") then listformat = "unbulleted" end local items = {} -- Old syntax "Two parameter region" use case, where param 1 is an article, param 2 is a label, and param 3 is the date. We assume this case if argument 4 is nil. if (args[3] ~= nil and args[4] nil) then local item " " .. args[3] .. "Kategori:İki bölge parametresi kullanılan video oyunu çıkış tarihi şablonu içeren sayfalar" table.insert(items, item) -- Old syntax "Blank region" use case, where param 1 is empty, and param 2 is the date. elseif (args[1] nil and args[2] ~= nil) then local item = args[2] .. "Kategori:Bölge parametresi kullanılmayan video oyunu çıkış tarihi şablonu içeren sayfalar" table.insert(items, item) -- Normal use cases, region/date pairs in 1/2, 3/4, 5/6, etc. else local i = 1 local j = 2 while (args and args[j]) do local label = getLocalLabel(args); -- Didn't find a local label? Check for country data. if (label nil) then label getCountryData(frame, args) -- Found something? Build a sitelink with it. if (label ~ nil) then label "[[" .. label .. "|" .. args .. "]]" else label args end end local item " " .. args[j] table.insert(items, item) i i + 2 j j + 2 end end -- Add known parameters of Modül:Liste to the table for k, v in pairs(args) do if (knownargs[k] true) then items[k] = v end end local out = list.makeList(listformat, items) -- Set message for invalid parameters. Decide catagory based on list format chosen. local parameterMsg if (listformat "yatay") then parameterMsg "_VALUE_" else parameterMsg "_VALUE_" end -- Preview message. if (framereprocess("") "") then parameterMsg = "" end -- Check for invalid parameters for k, v in pairs(args) do if (type(k) ~= 'number' and knownargs[k] ~= true) then local msg = parameterMsg:gsub('_VALUE_', k) out = out .. msg end end return out end return p