Module:Flags
local p = {}
-- Converts "Flag of" in a variable in order to accept images that don't follow this name schema
flagOf = "Flag_of_"
-- Loading the flag translations module --
local translations = mw.loadData("Module:Flags/LocaleData")
local master = mw.loadData("Module:Flags/MasterData")
-- Assigning the parameter to a flag and a link
function p.flag(territory)
-- Searching in the master table only.
-- 2 letter code search
if #territory.args[1] == 2 then
for flagParameter,commonsFile in pairs(master.twoLetter) do
if flagParameter == territory.args[1] then
commonsName = commonsFile
tempLink = commonsFile
end
end
for flagParameter,commonsFile in pairs(translations.fullName) do
if commonsFile == tempLink then
link = flagParameter
end
end
if link == nil then link = commonsName
end
end
-- 3 letter code search
if #territory.args[1] == 3 then
for flagParameter,commonsFile in pairs(master.threeLetter) do
if flagParameter == territory.args[1] then
commonsName = commonsFile
tempLink = commonsFile
end
end
for flagParameter,commonsFile in pairs(translations.fullName) do
if commonsFile == tempLink then
link = flagParameter
end
end
if link == nil then link = commonsName
end
end
-- Searching in FlagTranslations, then in FlagMaster
-- Full name search
if commonsName == nil then
flagTables = { translations.fullName, master.fullName, }
for k,v in ipairs(flagTables) do
for flagParameter,commonsFile in pairs(v) do
if flagParameter == territory.args[1] then
commonsName = commonsFile
link = flagParameter
elseif commonsFile == territory.args[1] then
commonsName = commonsFile
link = flagParameter
end
end
end
end
-- Fallback to Commons when the parameter doesn't have an entry in the table.
if commonsName == nil then
commonsName = territory.args[1]
link = territory.args[1]
end
-- Variant check for historical flags --
if territory.args[3] ~= "" then
variant = territory.args[3]
commonsName = master.variant[commonsName .. "|" .. variant]
flagOf=""
end
-- Label check --
if territory.args[2] ~= "{{{2}}}" then
variant = territory.args[2]
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 ) == 1 then
commonsName = string.sub( commonsName, 6)
flagOf = ""
end
-- Fallback for non-identified variant/label flags --
if commonsName == nil then
commonsName = "Flag of None"
end
-- Border for everybody except Nepal and Ohio
if commonsName == "Nepal" or commonsName == "Ohio" then
border = ""
else
border = "border|"
end
-- Size of flag --
-- Function to define the default size for the flag if needed
function defaultSize()
sizeExceptions = { "Nepal", "Switzerland", "the Vatican City", }
for some,exceptions in pairs(sizeExceptions) do
if commonsName == exceptions then
size = "20x17px"
end
end
if size == nil then
size = "20x22px"
end
return size
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] == "" then
flagLink = ""
textLink = ""
openBrackets = ""
closeBrackets = ""
elseif territory.args[5] ~= "{{{link}}}" then
flagLink = territory.args[5]
textLink = territory.args[5] .. "|"
else flagLink = link
textLink = link .. "|"
end
-- Text in addition to flag
if territory.args[6] == "" then
text = " " .. openBrackets .. link .. closeBrackets
elseif territory.args[6] ~= "{{{text}}}" then
text = " " .. openBrackets .. textLink .. territory.args[6] .. closeBrackets
else text = ""
end
return '[[File:' .. flagOf .. commonsName .. '.svg|' .. border .. 'link=' .. flagLink .. '|'.. size .. ']]' .. text
end
return p
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.