Module:lyti-translit

From Linguifex
Jump to navigation Jump to search


local export = {}
 
local tt = {
	["Αυ"]='Au', ["αυ"]='au',
	["Αύ"]='Aú', ["αύ"]='aú',
	["Αῦ"]='Aû', ["αῦ"]='aû',
	["Αὺ"]='Aù', ["αὺ"]='aù',
	["Ευ"]='Eu', ["ευ"]='eu',
	["Εύ"]='Eú', ["εύ"]='eú',
	["Εῦ"]='Eû', ["εῦ"]='eû',
	["Εὺ"]='Eù', ["εὺ"]='eù',
	["Ου"]='Ou', ["ου"]='ou',
	["Ού"]='Oú', ["ού"]='oú',
	["Οῦ"]='Oû', ["οῦ"]='oû',
	["Οὺ"]='Où', ["οὺ"]='où',
	["Ωυ"]='Ōu', ["ωυ"]='ōu',
	["Ωύ"]='Ōú', ["ωύ"]='ōú',
	["Ωῦ"]='Ōû', ["ωῦ"]='ōû',
	["Ωὺ"]='Ōù', ["ωὺ"]='ōù',
	["Α"]='A', ["α"]='a',
	["Ά"]='Á', ["ά"]='á',
	["ᾶ"]='â',
	["Ὰ"]='À', ["ὰ"]='à',
	["Μβ"]='Mb', ["μβ"]='mb',
	["Β"]='V', ["β"]='v',
	["Γγ"]='Ng', ["γγ"]='ng',
	["Γϝ"]='Nw', ["γϝ"]='nw',
	["Γκ"]='Nk', ["γκ"]='nk',
	["Γχ"]='Nch', ["γχ"]='nch',
	["Γξ"]='Nx', ["γξ"]='nx',
	["Γ"]='G', ["γ"]='g',
	["Ϝ"]='W', ["ϝ"]='w',
	["Δ"]='D', ["δ"]='d',
	["Ε"]='E', ["ε"]='e',
	["Έ"]='É', ["έ"]='é',
	["Ὲ"]='È', ["ὲ"]='è',
	["Ζ"]='Z', ["ζ"]='z',
	["Ι"]='I', ["ι"]='i',
	["Ί"]='Í', ["ί"]='í',
	["ῖ"]='î',
	["Ὶ"]='Ì', ["ὶ"]='ì',
	["Ϊ"]='Ï', ["ϊ"]='ï',
	["Κ"]='K', ["κ"]='k',
	["Λ"]='L', ["λ"]='l',
	["Μ"]='M', ["μ"]='m',
	["Ν"]='N', ["ν"]='n',
	["Ο"]='O', ["ο"]='o',
	["Ό"]='Ó', ["ό"]='ó',
	["Ὸ"]='Ò', ["ὸ"]='ò',
	["Ω"]='Ō', ["ω"]='ō',
	["Ώ"]='Ṓ', ["ώ"]='ṓ',
	["ῶ"]='ô',
	["Ὼ"]='Ṑ', ["ὼ"]='ṑ',
	["Π"]='P', ["π"]='p',
	["Ρ"]='R', ["ρ"]='r',
	["Σ"]='S', ["σ"]='s', ["ς"]='s',
	["Ͳ"]='Ss', ["Ͳ"]='ss',
	["Τ"]='T', ["τ"]='t',
	["Υ"]='Y', ["υ"]='y',
	["Ύ"]='Ý', ["ύ"]='ý',
	["ῦ"]='ŷ',
	["ὺ"]='ỳ',
	["Ϋ"]='Ÿ', ["ϋ"]='ÿ',
	["Φ"]='F', ["φ"]='f',
	["Θ"]='Th', ["θ"]='th',
	["Χ"]='Ch', ["χ"]='ch',
	["Ξ"]='X', ["ξ"]='x',
	["Η"]='Ē', ["η"]='ē',
	["Ή"]='Ḗ', ["ή"]='ḗ',
	["ῆ"]='ê',
	["Ὴ"]='Ḕ', ["ὴ"]='ḕ',
	["А"]='A', ["а"]='a',
	["Б"]='B', ["б"]='b',
	["Гв"]='W', ["гв"]='w',
	["Ђв"]='Đw', ["ђв"]='đw',
	["Јв"]='Jw', ["јв"]='jw',
	["Нв"]='Ngw', ["нв"]='ngw',
	["Ћв"]='Ćw', ["ћв"]='ćw',
	["В"]='V', ["в"]='v',
	["Г"]='G', ["г"]='g',
	["Д"]='D', ["д"]='d',
	["Ђ"]='Đ', ["ђ"]='đ',
	["Е"]='E', ["е"]='e',
	["Ж"]='Ź', ["ж"]='ź',
	["З"]='Z', ["з"]='z',
	["И"]='I', ["и"]='i',
	["Ј"]='J', ["ј"]='j',
	["К"]='K', ["к"]='k',
	["Л"]='L', ["л"]='l',
	["Љ"]='Lj', ["љ"]='lj',
	["М"]='M', ["м"]='m',
	["Н"]='N', ["н"]='n',
	["Њ"]='Nj', ["њ"]='nj',
	["О"]='O', ["о"]='o',
	["П"]='P', ["п"]='p',
	["Р"]='R', ["р"]='r',
	["С"]='S', ["с"]='s',
	["Т"]='T', ["т"]='t',
	["Ћ"]='Ć', ["ћ"]='ć',
	["У"]='U', ["у"]='u',
	["Ф"]='F', ["ф"]='f',
	["Х"]='H', ["х"]='h',
	["Ш"]='Ś', ["ш"]='ś',
	["Ѣ"]='Ē', ["ѣ"]='ē',
};

function export.tr(text, lang, sc)
	
	text = mw.ustring.toNFD(text)
	
	for pat, repl in pairs(tt) do
		text = mw.ustring.gsub(text, pat, repl)
	end
	
	text = mw.ustring.toNFD(text)
	
	return mw.ustring.toNFC(text)
end

return export