Module:Localisation
From TwogPedia
            Documentation for this module may be created at Module:Localisation/doc
local Class = require('Module:Class')
local Localisation = {}
local String = require('Module:StringUtils')
local Logic = require('Module:Logic')
function Localisation.getCountryName(country, noentry)
	local data = mw.loadData('Module:Localisation/data/country')
	-- clean the entered country value
	country = Localisation._cleanCountry(country)
	-- First try to look it up
	local countryname = data[country]
	-- Return message if none is found
	if countryname == nil then
		mw.log('No country found in Module:Localisation/data/country: ' .. country)
		-- set category unless second argument is set
		if noentry ~= '' then
			countryname = ''
		else
			countryname = mw.getCurrentFrame()
				:expandTemplate{title = 'Flag/invalidcountry', args = {country}}
		end
	end
	return countryname
end
function Localisation.getLocalisation(options, country)
	--in case no options are entered the country is the first var
	--so we need to adjust for that
	--in that case it will be a string so we catch it via this
	--it also catches cases where country and options are switched
	if type(options) == 'string' then
		local tempForSwitch = country
		country = options
		options = tempForSwitch
	end
	--avoid indexing nil
	options = options or {}
	local displayNoError = Logic.readBool(options.displayNoError)
	local shouldReturnSimpleError = Logic.readBool(options.shouldReturnSimpleError)
	local dataModuleName = 'Module:Localisation/data/localised'
	local data = mw.loadData(dataModuleName)
	-- clean the entered country value
	country = Localisation._cleanCountry(country)
	-- First try to look it up
	local localised = data[country]
	-- Return message if none is found
	if localised == nil then
		mw.log('No country found in ' .. dataModuleName .. ': ' .. country)
		-- set category unless second argument is set
		if displayNoError then
			localised = ''
		elseif shouldReturnSimpleError then
			localised = 'error'
		else
			localised = 'Unknown country "[[lpcommons:' .. dataModuleName ..
				'|' .. country .. ']][[Category:Pages with unknown countries]]'
		end
	end
	return localised
end
function Localisation._cleanCountry(country)
	if String.isEmpty(country) then
		country = 'nocountry'
	end
	-- Remove whitespace
	country = mw.text.trim(country)
	country = mw.text.unstripNoWiki(country)
	country = string.upper(country)
	return country
end
return Class.export(Localisation, {frameOnly = true})
No categories