Bước tới nội dung

Mô đun:CountryAdjectiveDemonym

Bách khoa toàn thư mở Wikipedia
local CountryAdjectiveDemonym = { }local CountryAdjectiveDemonymDataLoaded = falselocal 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] == true) then		return " "	end	return ""endfunction CountryAdjectiveDemonym.getCountryFromAdjective(frame)	local s = frame.args[1]	if not CountryAdjectiveDemonymDataLoaded then		CountryAdjectiveDemonymDoLoadData()	end	local retval = countryAdjectivesToNounsTable[s]	if retval == nil then		return ""	end	return retvalendfunction CountryAdjectiveDemonym.getCountryFromDemonym(frame)	local s = frame.args[1]	if not CountryAdjectiveDemonymDataLoaded then		CountryAdjectiveDemonymDoLoadData()	end	local retval = countryDemonymsToNounsTable[s]	if retval == nil then 		retval = countryAdjectivesToNounsTable[s]	end	if retval == nil then		return ""	end	return retvalendfunction CountryAdjectiveDemonym.getAdjectiveFromCountry(frame)	local s = frame.args[1]	if not CountryAdjectiveDemonymDataLoaded then		CountryAdjectiveDemonymDoLoadData()	end	local retval = countryNounsToAdjectivesTable[s]	if retval == nil then		return ""	end	return retvalendfunction CountryAdjectiveDemonym.getDemonymFromCountry(frame)	local s = frame.args[1]	if not CountryAdjectiveDemonymDataLoaded then		CountryAdjectiveDemonymDoLoadData()	end	local retval	retval = countryNounsToDemonymsTable[s]	if retval == nil then		retval = countryNounsToAdjectivesTable[s]	end	if retval == nil then		return ""	end	return retvalendfunction CountryAdjectiveDemonym.stripThe(frame)	local s = frame.args[1]	if s == nil then		return ""	end	if mw.ustring.match( s, "^[T]he Gambia$") ~= nil then		return s	end	local stripped = mw.ustring.gsub(s, "^[tT]he ", "")	return strippedendreturn CountryAdjectiveDemonym