Jump to content

Module:Flags

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by QuimGil (talk | contribs) at 22:25, 20 June 2013 (Converts "Flag of " in a variable in order to accept images that don't follow this name schema). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

local p = {}
 
-- Loading the flag translations module --
local translations = mw.loadData("Module:Sandbox/QuimGil/FlagTranslations")
 
-- Assigning the parameter to a flag and a link
function p.flag(territory)
 
-- Searching in the translation table.
-- 3 letter code search
    if #territory.args[1] == 3 then
        for english,locale in pairs(translations.threeLetter) do 
            if territory.args[1] == locale then 
                commonsName = english 
                link = locale 
            end -- FIXME this link is problematic, especially in non-English
        end 
    end
 
-- Full name search
    for english,locale in pairs(translations.fullName) do 
        if territory.args[1] == locale or territory.args[1] == english then 
            commonsName = english 
            link = locale 
        end
    end
 
-- In the absence of translation for an existing entry, links to the english/original name --
    if commonsName ~= nil and link == '' then 
        link = commonsName 
    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
 
-- Border for everybody except Nepal and Ohio
    if commonsName == "Nepal" or commonsName == "Ohio" then 
        border = "" 
    else 
        border = "border|" 
    end

-- Variant check --
    if territory.args[2] ~= "" then 
        variant = territory.args[2]
        commonsName = translations.variant[commonsName .. "|" .. variant] 
    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[3]:find("px", -2) ~= nil then 
        size = territory.args[3] 
    else 
        size = defaultSize(commonsName) 
    end
    
-- Converts "Flag of " in a variable in order to accept images that don't follow this name schema
 flagOf = "Flag_of_"
 
-- Returns the full value for the template
return '[[File:Flag_of_' .. commonsName .. '.svg|' .. border .. 'link=' .. link .. '|'.. size .. ']]'
end
return p