Modul:be-translit

Üdvözlöm, Ön a Modul:be-translit szó jelentését keresi. A DICTIOUS-ban nem csak a Modul:be-translit szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a Modul:be-translit szót egyes és többes számban mondani. Minden, amit a Modul:be-translit szóról tudni kell, itt található. A Modul:be-translit szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. AModul:be-translit és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

A modult a Modul:be-translit/doc lapon tudod dokumentálni

local export = {}

local AC = mw.ustring.char(0x0301) -- acute =  ́

local rsubn = mw.ustring.gsub

-- version of rsubn() that discards all but the first return value
local function rsub(term, foo, bar)
	local retval = rsubn(term, foo, bar)
	return retval
end

local tt = {
	='A', ='a', ='B', ='b', ='V', ='v', ='H', ='h', ='D', ='d', 
	='Je', ='je', ='Jo', ='jo', ='Ž', ='ž', ='Z', ='z', ='I', ='i', 
	='I', ='i', -- present for Old Belarusian; FIXME, remove when we have a separate language code for this lang
	='J', ='j', ='K', ='k', ='L', ='l', ='M', ='m', ='N', ='n', 
	='O', ='o', ='P', ='p', ='R', ='r', ='S', ='s', ='T', ='t', 
	='U', ='u', ='Ŭ', ='ŭ', ='F', ='f', ='X', ='x', ='C', ='c', 
	='Č', ='č', ='Š', ='š', ='Y', ='y', ='ʹ', ='ʹ', ='E', ='e', 
	='Ju', ='ju', ='Ja', ='ja', 
	='ʺ', ='ʺ',
	-- currently non-standard, used in some older norms
	='G', ='g',
	-- Belarusian style quotes
	='“', ='”',
};

local unstressed_vowels = "aeiyuAEIYU"
local unstressed_vowel = ""

local acute_decomposer = {
	 = "a" .. AC,
	 = "e" .. AC,
	 = "i" .. AC,
	 = "o" .. AC,
	 = "u" .. AC,
	 = "y" .. AC,
	 = "A" .. AC,
	 = "E" .. AC,
	 = "I" .. AC,
	 = "O" .. AC,
	 = "U" .. AC,
	 = "Y" .. AC,
}

function export.tr(text, lang, sc)
    text = mw.ustring.gsub(text, "'+", {  = 'ʺ' }) -- neutral apostrophe
    text = mw.ustring.gsub(text, '.', tt)

	-- Mark word boundaries
	text = mw.ustring.gsub(text, "(%s+)", "#%1#")
	text = "#" .. text .. "#"

	-- Mark stress on <o>
	text = mw.ustring.gsub(text, "(#*)()(*" .. unstressed_vowel .. "*#)", "%1%2" .. AC .. "%3")
	text = mw.ustring.gsub(text, "(#*" .. unstressed_vowel .. "*)()(*#)", "%1%2" .. AC .. "%3")

	--Strip hashes
	text = mw.ustring.gsub(text, "#", "")

    return text
end

function export.reverse_tr(text)--reverse-translit any words or phrases
	local reverse_tt = {}
	for k, v in pairs(tt) do
		reverse_tt = k
	end
	reverse_tt = "'"
	reverse_tt = "ь"
	reverse_tt = "і"
	reverse_tt = "І"
	text = rsub(text, '.', acute_decomposer)
	text = rsub(text, '', reverse_tt)
	text = rsub(text, '.', reverse_tt)
	return text
end

return export