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 04:03, 9 June 2013 (The Nepal / Ohio noborder exception must point to commonsName in order to work with translations.). 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 = require "Module:Sandbox/QuimGil/FlagTranslations"
 
-- Assigning the parameter to a flag and a link
function p.flag(territory)
    border = "border|"
 
-- Size of flag -- FIXME "size=" format isn't implemented yet because the parameter renders as  a "{{{2}}}" string. Weird.
    if territory.args[2]:find("px", -2) ~= nil then size = territory.args[2]
    elseif territory.args[3]:find("px", -2) ~= nil then size = territory.args[3] else size = "20x22px" end
 
-- 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
 
-- No border for Nepal or Ohio
    if commonsName == "Nepal" or CommonsName == "Ohio" then border = "" end
 
-- return '[[File:Flag_of_' .. commonsName .. '.svg|' .. border .. 'link=' .. link .. '|'.. size .. ']]'
return '[[File:Flag_of_' .. commonsName .. '.svg|' .. border .. 'link=' .. link .. '|'.. size .. ']]'
end
return p