Module:CountryAdjectiveDemonym
Revision as of 13:25, 7 October 2019 by blackwiki>BrownHairedGirl (diag)
Documentation for this module may be created at Module:CountryAdjectiveDemonym/doc
local CountryNameDemonym = { }
local CountryNameDemonymDataLoaded = false
local CountryNameDemonymNameCounter = 0
local countryAdjectivesToNounsTable = {
}
local countryNounstoAdjectivesTable = {
}
local countriesPrefixedByTheTable = {
}
function CountryNameDemonymDoLoadData()
countriesPrefixedByTheTable = mw.loadData( 'Module:CountryNameDemonym/the' )
countryNounstoAdjectivesTable = mw.loadData( 'Module:CountryNameDemonym/adjectives' )
local myCounter = 0
local myNoun, myAdj
for myNoun, myAdj in pairs(countryNounstoAdjectivesTable) do
countryAdjectivesToNounsTable[myAdj] = myNoun
myCounter = myCounter + 1
end
CountryNameDemonymNameCounter = myCounter
CountryNameDemonymDataLoaded = true
return myCounter
end
-- ############### Publicly accesible functions #######################
-- if the country name is prefixed by "the" in running text,
-- then return that prefix
-- Otherwise just return an empty string
function CountryNameDemonym.countryPrefixThe(frame)
local s = frame.args[1]
if not CountryNameDemonymDataLoaded then
CountryNameDemonymDoLoadData()
end
if (countriesPrefixedByTheTable[s] == true) then
return "the "
end
return ""
end
function CountryNameDemonym.getCountryFromAdjective(frame)
local s = frame.args[1]
if not CountryNameDemonymDataLoaded then
CountryNameDemonymDoLoadData()
end
local retval = ""
local myNoun, myAdj
for myAdj, myNoun in pairs(countryAdjectivesToNounsTable) do
retval = retval .. "# [" .. myAdj .. "] → "
if myNoun == nil then
retval = retval .. "nil\n"
else
retval = retval .. "[" .. myNoun .. "]]\n"
end
end
retval = retval .. "* Function: getCountryFromAdjective \n"
retval = retval .. "* Counter = " .. CountryNameDemonymNameCounter .. "\n"
retval = retval .. "* input = " .. s .. "\n"
local s2 = countryAdjectivesToNounsTable[s]
retval = retval .. "* result = "
if s2 == nil then
retval = retval .. "[nil]"
else
retval = retval .. s2
end
return retval
end
function CountryNameDemonym.getAdjectiveFromCountry(frame)
local s = frame.args[1]
if not CountryNameDemonymDataLoaded then
CountryNameDemonymDoLoadData()
end
return countryNounstoAdjectivesTable[s]
end
function CountryNameDemonym.stripThe(frame)
local s = frame.args[1]
if s == nil then
return nil
end
if mw.ustring.match( s, "^[T]he Gambia$") ~= nil then
return s
end
local stripped = mw.ustring.gsub(s, "^[tT]he ", "")
return stripped
end
return CountryNameDemonym