Module:German coord convert

-- This module converts German Wikipedia-style coordinates to a formatted -- invocation of the template:coord template local p = {}

function p.main(frame) local latstr = frame.args[1] or '' local lonstr = frame.args[2] or '' local tstr  = frame.args[3] or '' local fstr  = frame.args['format'] or '' local dstr  = frame.args['display'] or '' local nmstr = frame.args['name'] or '' local ntstr = frame.args['notes'] or '' local issubst= frame.args['subst'] or ''

latstr = mw.ustring.gsub(latstr, '[%s]', '') lonstr = mw.ustring.gsub(lonstr, '[%s]', '') latstr = mw.ustring.gsub(latstr, ',', '.') lonstr = mw.ustring.gsub(lonstr, ',', '.') lonstr = mw.ustring.gsub(lonstr, '[Oo]', 'E') while mw.ustring.match(tstr, 'region:[^_/:%s]*/') do		tstr = mw.ustring.gsub(tstr, '(region:[^_/:%s]*)%s*/', '%1_region:') end tstr = mw.ustring.gsub(tstr, '%s', '_') tstr = mw.ustring.gsub(tstr, '___*', '_') if (issubst ~= '') then local res = '' if (tstr ~= '' ) then res = '|' .. tstr end if (fstr ~= '' ) then res = res .. '|format=' .. fstr end if (dstr ~= '' ) then res = res .. '|display=' .. dstr end if (nmstr ~= '' ) then res = res .. '|name=' .. nmstr end if (ntstr ~= '' ) then res = res .. '|notes=' .. ntstr end latstr = mw.ustring.gsub(latstr, '/[/]*', '|') lonstr = mw.ustring.gsub(lonstr, '/[/]*', '|') return '°N, °W' else local targs = mw.text.split( latstr .. '/' .. lonstr .. '/' .. tstr, '%s*/[%s/]*') if fstr ~= '' then targs['format'] = fstr end if dstr ~= '' then targs['display'] = dstr end if nmstr ~= '' then targs['name'] = nmstr end if ntstr ~= '' then targs['notes'] = ntstr end return frame:expandTemplate{ title = 'coord', args = targs } end end

return p