local CountryAdjectiveDemonym =
local CountryAdjectiveDemonymDataLoaded = false
local countryAdjectivesToNounsTable = local countryNounsToAdjectivesTable =
local countryDemonymsToNounsTable = local countryNounsToDemonymsTable =
local countriesPrefixedByTheTable =
function CountryAdjectiveDemonymDoLoadData countriesPrefixedByTheTable = mw.loadData('Module:CountryAdjectiveDemonym/The') countryNounsToAdjectivesTable = mw.loadData('Module:CountryAdjectiveDemonym/Adjectives') countryNounsToDemonymsTable = mw.loadData('Module:CountryAdjectiveDemonym/Demonyms') local myNoun, myAdjective -- first, load the adjectives table for myNoun, myAdjective in pairs(countryNounsToAdjectivesTable) do countryAdjectivesToNounsTable[myAdjective] = myNoun end
-- Now load the denomyms table local myDemonym for myNoun, myDemonym in pairs(countryNounsToDemonymsTable) do countryDemonymsToNounsTable[myDemonym] = myNoun end CountryAdjectiveDemonymDataLoaded = true returnend
-- ############### Publicly accesible functions #######################
-- if the country name is prefixed by "the" in running text,-- then return that prefix-- Otherwise just return an empty stringfunction CountryAdjectiveDemonym.countryPrefixThe(frame) local s = frame.args[1] if not CountryAdjectiveDemonymDataLoaded then CountryAdjectiveDemonymDoLoadData end if (countriesPrefixedByTheTable[s]
function CountryAdjectiveDemonym.getCountryFromAdjective(frame) local s = frame.args[1] if not CountryAdjectiveDemonymDataLoaded then CountryAdjectiveDemonymDoLoadData end local retval = countryAdjectivesToNounsTable[s] if retval
"Georgia (country)" then return s end return "" end return retvalend
function CountryAdjectiveDemonym.getCountryFromString(frame) local s = frame.args[1] if not CountryAdjectiveDemonymDataLoaded then CountryAdjectiveDemonymDoLoadData end
for adjective, noun in pairs(countryAdjectivesToNounsTable) do if string.find(s, adjective) or string.find(s, noun) then return noun end endend
function CountryAdjectiveDemonym.getCountryFromDemonym(frame) local s = frame.args[1] if not CountryAdjectiveDemonymDataLoaded then CountryAdjectiveDemonymDoLoadData end local retval = countryDemonymsToNounsTable[s] if retval
nil then return "" end return retvalend
function CountryAdjectiveDemonym.getAdjectiveFromCountry(frame) local s = frame.args[1] if not CountryAdjectiveDemonymDataLoaded then CountryAdjectiveDemonymDoLoadData end local retval = countryNounsToAdjectivesTable[s] if retval
function CountryAdjectiveDemonym.getDemonymFromCountry(frame) local s = frame.args[1] if not CountryAdjectiveDemonymDataLoaded then CountryAdjectiveDemonymDoLoadData end local retval retval = countryNounsToDemonymsTable[s] if retval
nil then return "" end return retvalend
function CountryAdjectiveDemonym.stripThe(frame) local s = frame.args[1] if s
return CountryAdjectiveDemonym