Module:nog-translit

Hello, you have come here looking for the meaning of the word Module:nog-translit. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:nog-translit, but we will also tell you about its etymology, its characteristics and you will know how to say Module:nog-translit in singular and plural. Everything you need to know about the word Module:nog-translit you have here. The definition of the word Module:nog-translit will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:nog-translit, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.

This module will transliterate Nogai language text per WT:NOG TR. 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:nog-translit/testcases.

Functions

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 tt = {
	="a", ="b", ="v", ="g", ="d", ="e", ="yo", ="j",
	="z", ="i", ="y", ="k", ="l", ="m", ="n", ="o", 
	="p", ="r", ="s", ="t", ="u", ="f", ="x", ="c", 
	="ç", ="ş", ="şç", ="”", ="ı", ="’", ="é", ="yu",
	="ya", ="A", ="B", ="V", ="G", ="D", ="E", ="Yo", ="J",
	="Z", ="I", ="Y", ="K", ="L", ="M", ="N", ="O", 
	="P", ="R", ="S", ="T", ="U", ="F", ="X", ="C", 
	="Ç", ="Ş", ="Şç", ="”", ="I", ="’", ="É", ="Yu",
	="Ya"};

local digraphs = {
	 = 'ä',
	 = 'Ä',
	 = 'ñ',
	 = 'Ñ',
	 = 'ö',
	 = 'Ö',
	 = 'ü',
	 = 'Ü',
}

function export.tr(text, lang, sc)
	text = mw.ustring.gsub(
		text,
		"(?)()",
		function(a,e)
			return a .. (e == 'е' and 'ye' or 'Ye')
		end
	)
		:gsub("^Е",'Ye')
		:gsub("^е",'ye');
	
	for digraph, translit in pairs(digraphs) do
		text = mw.ustring.gsub(text, digraph, translit)
	end
	
	text = mw.ustring.gsub(text, '.', tt)
	
	return text
end

return export