Module:Sandbox/Nathan fraignt/Names

Revision as of 15:50, 21 November 2018 by imported>Nathan fraignt
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:Sandbox/Nathan fraignt/Names/doc

local p = {}

local dutchWordsArray = {"van", "der", "de", "den"}
local dutchWordsArray_idx = {}
for i,v in ipairs(dutchWordsArray) do dutchWordsArray_idx[v] = i end

local spanishAccentsArray = {"ó","á","é","í","ú", "ñ"}
local spanishAccentsArray_idx = {}
for i,v in ipairs(spanishAccentsArray) do spanishAccentsArray_idx[v] = i end

-- This is by no means a complete list.
local chineseNamesArray = {"Chen", "Ching", "Li", "Chan", "Cheung", "Tsi-ang", "Cho", 
	"Chiu", "Choi, Chow", "Fok", "Fu", "Hui", "Ho", "Kao", "Kwok", "Kwong", "Kwan",
	"Lau", "Lam", "Ma", "Ng", "Siu", "Tam", "Tang", "To"}
local chineseNamesArray_idx = {}
for i,v in ipairs(chineseNamesArray) do chineseNamesArray_idx[v] = i end


-- es, nl, zh, us

p.getNames = function(frame)
	
	local getFormat = function(nf_name)
		-- Spanje
		local test = ""
		for letter in string.gmatch(nf_name, "%a") do
			if spanishAccentsArray_idx[letter] then return "es" end
			-- test = test .. "-" .. letter
			test = test .. letter
		end
		
		-- Dutch
		for word in string.gmatch(nf_name, "%w+" ) do
			if dutchWordsArray_idx[word] then return "nl" end
		end
		
		-- Chinese
		for word in string.gmatch(nf_name, "%w+" ) do
			if chineseNamesArray_idx[word] then return "zh" end
		end
		
		-- Default: US
		return test
		
		
		
	end
	
	local nf_name = frame.args.name or ""
	local format = frame.args.format or getFormat(nf_name)
	return format
	
end
return p