Module:bg-translit

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

This module will transliterate Bulgarian language text per WT:BG 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:bg-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', ='a', ='B', ='b', ='V', ='v', ='G', ='g', ='D', ='d', 
	='E', ='e', ='Ž', ='ž', ='Z', ='z', ='I', ='i', ='J', ='j', 
	='K', ='k', ='L', ='l', ='M', ='m', ='N', ='n', ='O', ='o', 
	='P', ='p', ='R', ='r', ='S', ='s', ='T', ='t', ='U', ='u', 
	='F', ='f', ='H', ='h', ='C', ='c', ='Č', ='č', ='Š', ='š', 
	='Št', ='št', ='Ǎ', ='ǎ', ='Ju', ='ju', ='Ja', ='ja',
	 = "È",  = "è",  = "Ì", ='ì',

	-- Pre-reform
	='Ǫ', ='ǫ', ='Ě', ='ě', ='ʹ', ='ʹ',
	--?? used in old texts
	='Y', ='y', ='Ę', ='ę', ='Ję', ='ję', ='Jǫ', ='jǫ', ='Ja', ='ja',
	-- Quotes
	='“', ='”',	
};

function export.tr(text, lang, sc)
	if mw.ustring.find(text, "") then
		require("Module:debug").track("bg-translit/grave")
	end
	text = mw.ustring.gsub(text, '(%w)$', '%1')
		:gsub("Ъ%-$", "\1")
		:gsub("ъ%-$", "\2")
	text = mw.ustring.gsub(text, '(%w)%f', '%1')
		:gsub(".", { = "Ъ-",  = "ъ-"})
	text = mw.ustring.gsub(text, '%f', { ='J', ='j' })
	text = mw.ustring.gsub(text, '.', tt)
	return text
end

return export