Module:ISO 639/data/make

local p = {}

function p.extract (frame) local page = mw.title.getCurrentTitle; local content = page:getContent; local lang_table = {}; local file_date = 'File-Date: ' .. frame.args["file-date"]; content = mw.ustring.gsub (content,"-","DASH") content = mw.ustring.gsub (content," ","SPACE") content = mw.ustring.gsub (content,"%(","BRAKCETOPEN")	content = mw.ustring.gsub (content,"%)","BRACKETCLOSE") content = mw.ustring.gsub (content,"'","APOSTROPHE") content = mw.ustring.gsub (content,"’","APOSTROPHE2") for part3, part2, part1, name in mw.ustring.gmatch (content, '\n(%w%w%w)\t(%w*)\t%a*\t(%w*)\t%a*\t%w*\t(%w*)') do		name = mw.ustring.gsub (name,"DASH","-") name = mw.ustring.gsub (name,"SPACE"," ") name = mw.ustring.gsub (name,"BRAKCETOPEN","(")		name = mw.ustring.gsub (name,"BRACKETCLOSE",")") name = mw.ustring.gsub (name,"APOSTROPHE","'") name = mw.ustring.gsub (name,"APOSTROPHE2","’") if part3 then if string.find (lang_table[#lang_table] or , '^%[\"' .. part3) then												lang_table[#lang_table] = mw.ustring.gsub (lang_table[#lang_table], '}$', );										lang_table[#lang_table] = lang_table[#lang_table] .. ', \"' .. "name" .. '\"}';										else				table.insert (lang_table, 					"[\"" .. part3 .. "\"] = {part2=\"" .. part2 .."\",part1 = \"" .. part1 .."\",name = \"" .. name .."\"}");					end		else			table.insert (lang_table, "[\"ERROR\"] = {" .. "ERROR" .. "}");							end	end	return " -- " .. file_date .. " -- [&quot;Part 3&quot;] = {part2=&quot;Part 2&quot;,part1=&quot;Part 1&quot;,name=&quot;Name&quot;} -- You can update the code using Module:ISO 639/data/make -- For more information about ISO 639 see ISO 639 return { &#9;" .. table.concat (lang_table, ', &#9;') .. " &#9;} " .. " "; end

return p;