Jump to content

Module:hnn-translit

From Wiktionary, the free dictionary

This module will transliterate Hanunoo language text. The module should preferably not be called directly from templates or other modules. To use it from a template, use {{xlit}}. Within a module, use Module:languages#Language:transliterate.

For testcases, see Module:hnn-translit/testcases.

Functions

[edit]
tr(text, lang, sc)
Transliterates a given piece of text written in the script specified by the code sc, and language specified by the code lang.
When the transliteration fails, returns nil.

local export = {}

local consonants = {
	['ᜣ']='k', ['ᜤ']='g', ['ᜥ']='ng',
    ['ᜦ']='t', ['ᜧ']='d', ['ᜨ']='n',
    ['ᜩ']='p', ['ᜪ']='b', ['ᜫ']='m',
    ['ᜬ']='y', ['ᜮ']='l', ['ᜯ']='w',
    ['ᜰ']='s', ['ᜱ']='h', ['ᜭ']='r',
}

local diacritics = {
	['ᜲ']='i', ['ᜳ']='u', ['᜴']='',
}

local tt = {
	-- vowels
	['ᜠ']='a', ['ᜡ']='i', ['ᜢ']='u',
	--punctuation
    ['᜶']='.', -- kulit and pamudpod
    ['᜵']=',' -- single kulit and pamudpod
}

function export.tr(text, lang, sc, override)
	if sc ~= "Hano" then
		return nil
	end
	
	local separate_lr = false
	if string.find(text, 'ᜭ') then
		separate_lr = true
	end

	text = mw.ustring.gsub(text,'([ᜣ-ᜱ][᜴])'..'([ᜠ-ᜢ])','%1-%2')
	text = mw.ustring.gsub(
		text,
		'([ᜣ-ᜱ])'..
		'([ᜲᜳ᜴]?)'..
		'([ᜠ-ᜢ]?)',
		function(c, d, e)
			if d == "" and e ~= "" then
				if tt[e] == "i" or tt[e] == "u" then return consonants[c] .. 'a' .. tt[e] .. ''
				else return consonants[c] .. 'a' .. tt[e] end
				elseif e ~= "" then
				return consonants[c] .. diacritics[d] .. tt[e]
			elseif d == "" then
				return consonants[c] .. 'a'
			else
				return consonants[c] .. diacritics[d]
			end
		end)

	text = mw.ustring.gsub(text, '.', tt)

	--remove hyphen between vowels
	text = mw.ustring.gsub(text,"([aiu])-([aiu])","%1%2")
	
	text = mw.ustring.gsub(text,
		'([ᜲᜳ᜴])',
		function(c)
			return '-' .. diacritics[c]
		end)
	
	text = mw.ustring.gsub(text, "◌", "-a")
	text = mw.ustring.gsub(text, " ([,.])", "%1")
	
	return text
end

return export