Modul:yi-translit

Üdvözlöm, Ön a Modul:yi-translit szó jelentését keresi. A DICTIOUS-ban nem csak a Modul:yi-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:yi-translit szót egyes és többes számban mondani. Minden, amit a Modul:yi-translit szóról tudni kell, itt található. A Modul:yi-translit szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. AModul:yi-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:yi-translit/doc lapon tudod dokumentálni

local export = {}

local tt = {
	 = "q",
	 = "o",
	 = "a",
	 = "b",
	 = "b",
	 = "v",
	 = "g",
	 = "g",
	 = "g",
	 = "d",
	 = "d",
	 = "d",
	 = "H",
	 = "w",
	 = "u",
	 = "v",
	 = "v",
	 = "oy",
	 = "oy",
	 = "z",
	 = "kh",
	 = "t",
	 = "y",
	 = "i",
	 = "i",
	 = "ey",
	 = "ey",
	 = "ay",
	 = "ay",
	 = "ay",
	 = "k",
	 = "kh",
	 = "kh",
	 = "k",
	 = "kh",
	 = "kh",
	 = "l",
	 = "m",
	 = "m",
	 = "n",
	 = "n",
	 = "s",
	 = "e",
	 = "p",
	 = "F",
	 = "f",
	 = "p",
	 = "f",
	 = "f",
	 = "ts",
	 = "ts",
	 = "k",
	 = "r",
	 = "sh",
	 = "sh",
	 = "s",
	 = "t",
	 = "s",
	 = "s",
	 = "-",
	 = "'",
	 = "\"",
}

-- in precedence order
local tokens = {
	"ייַ",
	"אָ",
	"אַ",
	"בּ",
	"בֿ",
	"גּ",
	"גֿ",
	"דּ",
	"דֿ",
	"וּ",
	"וו",
	"יִ",
	"יִ",
	"יי",
	"ײַ",
	"וי",
	"כּ",
	"כֿ",
	"ךּ",
	"ךֿ",
	"פּ",
	"פֿ",
	"ףּ",
	"ףֿ",
	"שׁ",
	"שׂ",
	"תּ",
	"תֿ",
	"א",
	"ב",
	"ג",
	"ד",
	"ה",
	"ו",
	"ױ",
	"װ",
	"ז",
	"ח",
	"ט",
	"י",
	"ײ",
	"ײַ",
	"כ",
	"ך",
	"ל",
	"מ",
	"ם",
	"נ",
	"ן",
	"ס",
	"ע",
	"פ",
	"ף",
	"צ",
	"ץ",
	"ק",
	"ר",
	"ש",
	"ת",
	"־",
	"׳",
	"״",
}

hebrew_only_tokens = {
	"בֿ",
	"ח",
	"כּ",
	"שׂ",
	"ת",
}

function export.tr(text, lang, sc)
	local hebrew_only = false
	for _, token in ipairs(hebrew_only_tokens) do
		if string.find(text, token) ~= nil then
			hebrew_only = true
			break
		end
	end
	
	for _, token in ipairs(tokens) do
		text = string.gsub(text, token, tt)
	end
	
	local suffix = text ~= '-' and string.sub(text, 1, 1) == '-'
	local prefix = text ~= '-' and string.sub(text, -1, -1) == '-'
	
	if suffix then
		text = string.gsub(text, "^-", "-q")
	end
	if prefix then
		text = string.gsub(text, "-$", "q-")
	end
	text = string.gsub(text, "()y$", "%1i")
	text = string.gsub(text, "()y()", "%1i%2")
	text = string.gsub(text, "()y()", "%1i%2") -- repeated to handle overlapping cases
	text = string.gsub(text, "()w", "%1u")
	hebrew_only = hebrew_only or (string.find(text, "w") ~= nil)
	text = string.gsub(text, "w", "v")
	hebrew_only = hebrew_only or (string.find(text, "F") ~= nil)
	text = string.gsub(text, "F$", "p")
	text = string.gsub(text, "F()", "p%1")
	text = string.gsub(text, "F", "f")
	text = string.gsub(text, "zsh", "zh")
	if suffix then
		text = string.gsub(text, "^%-q", "-")
	end
	if prefix then
		text = string.gsub(text, "q%-$", "-")
	end
	text = string.gsub(text, "q(y)", "%1")
	text = string.gsub(text, "q()", "%1")
	hebrew_only = hebrew_only or (string.find(text, "q") ~= nil)
	text = string.gsub(text, "q", "a")
	hebrew_only = hebrew_only or (string.find(text, "H") ~= nil) or (string.find(text, "H$") ~= nil)
	text = string.gsub(text, "H", "h")
	
	local categories = ""
	if hebrew_only then
		local namespace = mw.title.getCurrentTitle().nsText
		if namespace == "" or namespace == "Függelék" then
			categories = "]"
		end
	end
	
	return text .. categories
end

return export