Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Documentation for this module may be created at Module:Colon/doc

require('strict')

local getArgs = require('Module:Arguments').getArgs
local langSwitch = require('Module:LangSwitch')._langSwitch

local p = {}

function p._colon(args)
	local lang = args.lang or mw.getCurrentFrame():preprocess("{{Int:Lang}}")
	
	-- Please keep the ASCII colon returned as HTML-encoded everywhere, as it MUST NOT be parsed as wiki markup
	local colons = {
		-- Colon with no space before and space after
		-- ": ""
		['ger'] = ': ',
		
		-- Colon with narrow space before and space after
		-- " : "
		['fr'] = ' : ',
		
		--[=[ Colon with non-breaking space before and space after, avoiding confusion with:
			several Arabic diacritics,
			U+0589 Armenian punctuation Full stop,
			U+05C3 Hebrew punctuation sign Sof Pasuk,
			U+0983 Bengali combining sign Visarga,
			U+0903 Devanagari combining sign Visarga,
			U+0A03 Gurmukhi combining sign Visarga,
			U+0A83 Gujarati combining sign Visarga,
			U+0B03 Oryia combining sign Visarga,
			U+0B83 Tamil combining sign Visarga,
			Telugu combining sign Visarga,
			Kannada combining sign Visarga,
			U+0D03 Malayalam combining sign Visarga,
			U+0D83 Sinhalese combining sign Visarga,
			U+0F7F Tibetan combining sign Rnam Bcad (Nam Che),
			U+17C7 / U+17C8 Khmer combining signs Reahmuk / Yukaleakpintu,
			U+2D53 Tifinagh letter Yu (Touareg Yaw)
		]=]
		-- " : "
		['sp'] = ' : ',
		
		--[=[ Myanmar:
			do not use the ASCII colon
			(too confusable with a Myanmar letter in many fonts, notably at small sizes);
			use an en-dash instead
		]=]
		-- " – "
		['my'] = ' – ',
		
		-- No spacing
		-- ":"
		['no'] = ':',
		
		-- Ethiopic punctuation sign colon
		-- "፥ "
		['eth'] = '፥ ',
		
		-- Mongolian/Mandchu punctuation sign colon
		-- "᠄"
		['mong'] = '᠄',
		
		--[=[ CJK punctuation fullwidth colon
			(rotated if vertical layout)
			for Indo-Sinitic scripts used along with Chinese
		]=]
		-- ":"
		['cjk'] = ':'
	}
	
	local text_args = {
		['default'] =				colons['ger'],
		['af'] =					colons['ger'],
		['am'] =					colons['eth'],
		['ar'] =					colons['sp'],
		['Arab'] =					colons['sp'],
		['Armn'] =					colons['sp'],
		['arz'] =					colons['sp'],
		['bar'] =					colons['ger'],
		['be-tarask'] =				colons['ger'],
		['be'] =					colons['ger'],
		['Beng'] =					colons['sp'],
		['ber'] =					colons['sp'],
		['bg'] =					colons['ger'],
		['bn'] =					colons['sp'],
		['bo'] =					colons['sp'],
		['Bpmf'] =					colons['cjk'],
		['br'] =					colons['fr'],
		['bs'] =					colons['ger'],
		['ca'] =					colons['ger'],
		['co'] =					colons['ger'],
		['cs'] =					colons['ger'],
		['Cyrl'] =					colons['ger'],
		['de'] =					colons['ger'],
		['Deva'] =					colons['sp'],
		['el'] =					colons['ger'],
		['eml'] =					colons['ger'],
		['en'] =					colons['ger'],
		['es'] =					colons['ger'],
		['Ethi'] =					colons['eth'],
		['ext'] =					colons['ger'],
		['fa'] =					colons['sp'],
		['fr-be'] =					colons['fr'],
		['fr-ca'] =					colons['fr'],
		['fr-ch'] =					colons['fr'],
		['fr-lb'] =					colons['fr'],
		['fr'] =					colons['fr'],
		['gl'] =					colons['ger'],
		['glk'] =					colons['sp'],
		['Grek'] =					colons['ger'],
		['gsw'] =					colons['gsw'],
		['gu'] =					colons['sp'],
		['Gujr'] =					colons['sp'],
		['Guru'] =					colons['sp'],
		['Hang'] =					colons['cjk'],
		['Hani'] =					colons['cjk'],
		['Hans'] =					colons['cjk'],
		['Hant'] =					colons['cjk'],
		['he'] =					colons['sp'],
		['Hebr'] =					colons['sp'],
		['hi'] =					colons['sp'],
		['hr'] =					colons['ger'],
		['hu'] =					colons['ger'],
		['hy'] =					colons['sp'],
		['ii'] =					colons['cjk'],
		['it'] =					colons['ger'],
		['ja'] =					colons['cjk'],
		['Jpan'] =					colons['cjk'],
		['Khmr'] =					colons['sp'],
		['km'] =					colons['sp'],
		['kn'] =					colons['sp'],
		['Knda'] =					colons['sp'],
		['ko-kp'] =					colons['ger'],
		['ko'] =					colons['ger'],
		['la'] =					colons['ger'],
		['lb'] =					colons['ger'],
		['li'] =					colons['ger'],
		['lzh'] =					colons['cjk'],
		['mk'] =					colons['ger'],
		['ml'] =					colons['sp'],
		['Mlym'] =					colons['sp'],
		['mn-Mong'] =				colons['mong'],
		['Mong'] =					colons['mong'],
		['my'] =					colons['my'],
		['Mymr'] =					colons['my'],
		['nap'] =					colons['ger'],
		['nds-nl'] =				colons['ger'],
		['nds'] =					colons['ger'],
		['ne'] =					colons['sp'],
		['nl'] =					colons['ger'],
		['oc'] =					colons['fr'],
		['or'] =					colons['sp'],
		['Orya'] =					colons['sp'],
		['pa'] =					colons['sp'],
		['Phpa'] =					colons['cjk'],
		['pnt'] =					colons['ger'],
		['prd'] =					colons['sp'],
		['ps'] =					colons['sp'],
		['pt-br'] =					colons['ger'],
		['pt'] =					colons['ger'],
		['rgn'] =					colons['ger'],
		['rm'] =					colons['ger'],
		['ro'] =					colons['ger'],
		['ru'] =					colons['ger'],
		['scn'] =					colons['ger'],
		['shy'] =					colons['sp'],
		['si'] =					colons['sp'],
		['Sinh'] =					colons['sp'],
		['sk'] =					colons['ger'],
		['sl'] =					colons['ger'],
		['sr-ec'] =					colons['ger'],
		['sr-el'] =					colons['ger'],
		['sr-Latn'] =				colons['ger'],
		['sr'] =					colons['ger'],
		['ta'] =					colons['sp'],
		['Tale'] =					colons['cjk'],
		['Talu'] =					colons['cjk'],
		['Taml'] =					colons['sp'],
		['te'] =					colons['sp'],
		['Telu'] =					colons['sp'],
		['Tfng'] =					colons['sp'],
		['th'] =					colons['no'],
		['Thai'] =					colons['no'],
		['ti'] =					colons['eth'],
		['Tibt'] =					colons['sp'],
		['tzm'] =					colons['sp'],
		['ug'] =					colons['sp'],
		['ur'] =					colons['sp'],
		['vec'] =					colons['ger'],
		['vls'] =					colons['ger'],
		['wa'] =					colons['fr'],
		['wuu'] =					colons['cjk'],
		['ydd'] =					colons['sp'],
		['yi'] =					colons['sp'],
		['Yiii'] =					colons['cjk'],
		['yue'] =					colons['cjk'],
		['zh-Hans'] =				colons['cjk'],
		['zh-Hant'] =				colons['cjk'],
		['zh'] =					colons['cjk'],
		['Zinh-nbsp-Po-space'] =	colons['sp'],
		['Zinh-nnbsp-Po-space'] =	colons['fr'],
		['Zinh-Po-space'] =			colons['ger'],
		['Zinh-Po'] =				colons['no']
	}
	
	return langSwitch(text_args, lang)
end

function p.colon(frame)
	return p._colon(getArgs(frame))
end

return p