Module:Flags: Difference between revisions

From TwogPedia
No edit summary
No edit summary
Line 20: Line 20:
-- Converts a country name, flag code, or alias to a standardized country name
-- Converts a country name, flag code, or alias to a standardized country name
function Flags.CountryName(flagName)
function Flags.CountryName(flagName)
mw.log('OLEN LIPPUDEs')
mw.log(flagName)
if String.isEmpty(flagName) then
if String.isEmpty(flagName) then
return ''
return ''

Revision as of 15:54, 29 August 2022

Documentation for this module may be created at Module:Flags/doc

local MasterData = mw.loadData('Module:Flags/MasterData')

local Flags = {}

function Flags.icon(flagString, category)

	local flagKey = Flags._convertToKey(flagString)
	
	if flagKey then
		local flagData = MasterData.data[flagKey]
		local link = 'Category:'.. category .. '/' .. flagData.name
		return '<span class="flag">[[' .. flagData.img ..
				'|' .. flagData.name .. '|link=' .. link .. '|]]</span>'
	else 
		mw.log('Unknown flag: ', flagName)
		return false
	end
end

-- Converts a country name, flag code, or alias to a standardized country name
function Flags.CountryName(flagName)
	mw.log('OLEN LIPPUDEs')
	mw.log(flagName)
	if String.isEmpty(flagName) then
		return ''
	end

	local flagKey = Flags._convertToKey(flagName)

	if flagKey then
		return MasterData.data[flagKey].name
	else
		mw.log('Unknown flag: ', flagName)
		return mw.text.trim(mw.text.split(Template.safeExpand(mw.getCurrentFrame(), 'Flag/' .. flagName), '|', true)[2] or '')
	end
end

function Flags._convertToKey(flagName)
	flagName = flagName:gsub(' ', ''):lower()

	return MasterData.twoLetter[flagName]
		or MasterData.threeLetter[flagName]
		or MasterData.aliases[flagName]
		or (MasterData.data[flagName] and flagName)
end

return Flags