local p =
-- Loading the flag translations module --local translations = mw.loadData("Module:Flags/LocaleData")local master = mw.loadData("Module:Flags/MasterData")
-- check if name is an original name in translation.fullname and-- return its value, otherwise return nilfunction check_translation(name) local link for translation, commonsName in pairs(translations.fullName) do if commonsName
-- Size of flag ---- Function to define the default size for the flag if neededfunction defaultSize --todo: move exception to Module:Flags/MasterData local sizeExceptions = local size = "20x22px" --initialize with default value for some,exceptions in pairs(sizeExceptions) do if commonsName
-- Assigning the parameter to a flag and a linkfunction p.flag(territory) --always declare local variable, they are more efficient and dont pollute global namespace local commonsName local flagOf = "Flag_of_" -- Converts "Flag of" in a variable in order to accept images that don't follow this name schema local link = "" -- more efficient to access local flag_code = territory.args[1] or ""-- Searching in the master table only.-- 2 letter code search if #flag_code
3 then -- 3 letter code search commonsName = master.threeLetter[flag_code] if commonsName then link = check_translation(commonsName) or commonsName; end end-- check if commonsName is still nil if commonsName
-- Variant check for historical flags -- local variant = territory.args[3] if variant and variant ~= "" then commonsName = master.variant[commonsName .. "|" .. variant] flagOf="" end
-- Label check -- variant = territory.args[2] if variant and variant ~="" then commonsName = master.variant[commonsName .. "|" .. variant] flagOf="" end
-- Digesting Commons flag files not following the format "Flag of "-- These filenamess must be preceded by "File:" in the table values.
if commonsName ~= nil and string.find(commonsName, "File:", 1)
-- Fallback for non-identified variant/label flags -- if commonsName
-- Border for everybody except Nepal and Ohio-- todo: move exception to Module:Flags/MasterData local border = "border|" if commonsName
"Ohio" then border = "" end
-- Checking whether a size parameter has been introduced, otherwise set default if territory.args[4]:find("px", -2) ~= nil then size = territory.args[4] else size = defaultSize(commonsName) end
-- Customizing the link openBrackets = "" closeBrackets = "" if territory.args[5]
-- Text in addition to flag if territory.args[6]
return '' .. textendreturn p