Module:bo-translit

Bonjour, vous êtes venu ici pour chercher la signification du mot Module:bo-translit. Dans DICTIOUS, vous trouverez non seulement toutes les significations du dictionnaire pour le mot Module:bo-translit, mais vous apprendrez également son étymologie, ses caractéristiques et comment dire Module:bo-translit au singulier et au pluriel. Tout ce que vous devez savoir sur le mot Module:bo-translit est ici. La définition du mot Module:bo-translit vous aidera à être plus précis et correct lorsque vous parlerez ou écrirez vos textes. Connaître la définition deModule:bo-translit, ainsi que celles d'autres mots, enrichit votre vocabulaire et vous fournit des ressources linguistiques plus nombreuses et de meilleure qualité.

La documentation pour ce module peut être créée à Module:bo-translit/Documentation

local export = {}
local gsub = mw.ustring.gsub
local match = mw.ustring.match

local conv = {
	 = "k",  = "kh",  = "g",  = "ng", 
	 = "c",  = "ch",  = "j",  = "ny", 
	 = "t",  = "th",  = "d",  = "n", 
	 = "p",  = "ph",  = "b",  = "m", 
	 = "ts",  = "tsh",  = "dz",  = "w", 
	 = "zh",  = "z",  = "‘",  = "y", 
	 = "r",  = "l",  = "sh",  = "s", 
	 = "h",  = "a", 
	 = "ṭ",  = "ṭh",  = "ḍ",  = "ṇ",  = "ṣ", 
	
	 = "i", 
	 = "u", 
	 = "e", 
	 = "o", 
	 = "ā", 
	 = "ī", 
	 = "ū", 
	 = "ai", 
	 = "au", 
	 = "ṛ", 
	 = "ṝ", 
	 = "ḷ", 
	 = "ḹ", 
	 = "ṃ", 
	 = "ṃ", 
	 = "aḥ", 
	 = "oṃ",
	
	 = "k",  = "kh",  = "g",  = "ng", 
	 = "c",  = "ch",  = "j",  = "ny", 
	 = "t",  = "th",  = "d",  = "n", 
	 = "p",  = "ph",  = "b",  = "m", 
	 = "ts",  = "tsh",  = "dz",  = "w", 
	 = "zh",  = "z",  = "‘",  = "y", 
	 = "r",  = "l",  = "sh",  = "s", 
	 = "h",  = "a", 
	 = "ṭ",  = "ṭh",  = "ḍ",  = "ṇ",  = "ṣ"
}

local symbol = {
	 = "0",  = "1",  = "2",  = "3",  = "4",
	 = "5",  = "6",  = "7",  = "8",  = "9",
	 = "0.5",  = "1.5",  = "2.5",  = "3.5",  = "4.5", 
	 = "5.5",  = "6.5",  = "7.5",  = "8.5",  = "9.5",
	 = " ",  = "·",  = "'",
}

function export.tr(text, lang, sc, debug_mode)
	text = gsub(text, "+ ?", "་")
	text = gsub(text, "+$", "")
	text = gsub(text, "()(འ)", "%1་‘་%2")
	
	for Tibetan_word in mw.ustring.gmatch(text, "+") do
		Tibetan_word = gsub(Tibetan_word, "་$", "")
		
		for syllable in mw.ustring.gmatch(Tibetan_word, "+") do
			local tr = {}

			local syl = gsub(syllable, "ཨ()", "%1")
			syl = gsub(syl, "(+)(*)$", "%1a%2")
			letter = mw.text.split(syl, "", true)
			
			for i = 1, #letter do
				tr = conv] or letter
			end

			if not match(syllable,"") then
				if #letter < 5 then
					if #letter > 3 then
						if letter ~= "འ" and letter ~= "འ" then
							table.insert(tr, 3, "a")
						end
						
					elseif #letter > 2 then
						if letter == "འ" then
							if letter == "འ" then
								tr = { "‘", tr, "a", "‘" }
							else
								tr = { tr, tr, "a", "‘" }
							end
							
						elseif not match(letter, "") or (match(letter..letter..letter, "ས")) then
							table.insert(tr, 2, "a")
						else
							table.insert(tr, 3, "a")
						end
						
					elseif match(letter, "") and not match(letter or "", "") then
						table.insert(tr, "a")
					else
						table.insert(tr, 2, "a")
					end
				end
			end
		
			tr = table.concat(tr)
			
			if match(syllable, "གཡ") then
				tr = gsub(tr, "gy", "g.y")
			end
			
			text = gsub(text, syllable, tr, 1)
		end
	end
	
	text = gsub(text, ".", symbol)
	text = gsub(text, " ' ", "")
	text = gsub(text, " *· *·? *", " · ")
	text = gsub(text, " *%.", ".")
	
	if match(text, "") and not debug_mode then
		return nil
	else
		return text
	end
end

return export