มอดูล:ผู้ใช้:Octahedron80/ru-translit

นี่คือมอดูลกระบะทรายส่วนตัวของ Octahedron80 สำหรับการทดลองของผู้ใช้นั้นเอง สิ่งต่าง ๆ ในมอดูลนี้อาจจะถูกเพิ่มหรือลดได้ตามดุลยพินิจของ Octahedron80 กรุณาอย่าวางใจเสถียรภาพของมอดูลนี้


local export = {}
local gsub = mw.ustring.gsub
local u = mw.ustring.char

local consonants = {
	['б']={'บ','บ'}, ['в']={'ว','ฟ'}, ['г']={'ก','ก'}, ['д']={'ด','ด'}, ['ж']={'จ','จ'}, ['з']={'ซ','ซ'}, ['й']={'ย','ย'},
	['к']={'ค','ค'}, ['л']={'ล','ล'}, ['м']={'ม','ม'}, ['н']={'น','น'}, ['п']={'ป','ป'}, ['р']={'ร','ร์'}, ['с']={'ซ','ส'},
	['т']={'ต','ต'}, ['ф']={'ฟ','ฟ'}, ['х']={'ฮ','ฮ'}, ['ц']={'ซ','ต͡ซ'}, ['ч']={'ช','ช'}, ['ш']={'ฌ','ฌ'}, ['щ']={'ฌ̱','ฌ̱'},
	-- archaic, pre-1918 letters
	['ѳ']={'ฟ','ฟ'},
}

local monophthongs = {
	['а']={'อะ','อั','า','ั'}, ['е']={'เอ','เอ','↶เ','↶เ'},
	['ё']={'อิโอ','อิออ','ิโอ','ิออ'}, ['и']={'อี','อี','ี','ี'},
	['о']={'โอ','ออ','↶โ','อ'}, ['у']={'อู','อุ','',''},
	['ы']={'อืย','อึ','ืย','ึ'}, ['э']={'เอ','เอ','↶เ','↶เ'},
	['ю']={'อูย์','อูย์','ูย์','ูย์'}, ['я']={'เอีย','เอีย','↶เีย','↶เีย'},
	-- archaic, pre-1918 letters
	['і']={'อี','อี','ี','ี'}, ['ѣ']={'แอ','แอ','↶แ','↶แ'}, ['ѵ']={'อี','อี','ี','ี'},
}

local diphthongs = {
	['аа']={'อา','อา','า','า'}, ['ай']={'ไอ','ไอ','↶ไ','↶ไ'}, ['ар']={'อาร์','อาร์','าร์','าร์'}, ['ау']={'อาอู','อาอู','าอู','าอู'},
	['ее']={'เอเย','เอเย','↶เ'..'เย','↶เ'..'เย'}, ['ей']={'เอย์','เอย์','↶เย์','↶เย์'}, ['ер']={'เอียร์','เอียร์','↶เียร์','↶เียร์'},
	['ий']={'อิ','อิ','ิ','ิ'}, ['ие']={'อี','อี','ี','ี'}, ['ии']={'อีอิ','อีอิ','ีอิ','ีอิ'}, ['ир']={'อีร์','อีร์','ีร์','ีร์'},
	['ой']={'ออย','ออย','อย','อย'}, ['ор']={'ออร์','ออร์','อร์','อร์'}, ['уй']={'อุย','อุย','ุย','ุย'},
	['яй']={'ไอย์','ไอย์','↶ไย์','↶ไย์'}, ['ье']={'เอีย','เอีย','↶เีย','↶เีย'}, ['ый']={'อืย','อืย','ืย','ืย'},
}

local marks = {
	-- hard & soft signs
	['ъ']='ʺ', ['ь']='ʹ',
	-- Russian style quotes
	['«']='“', ['»']='”',
}

function export.tr(text, lang, sc, debug_mode)

	if type(text) == 'table' then -- called directly from a template
		text = text.args[1]
	end

	-- แทนสระประสมก่อนสระเดี่ยว จากนั้นค่อยแทนพยัญชนะ
	text = gsub(text, '..', diphthongs)
	text = gsub(text, '.', monophthongs)
	text = gsub(text, '.', consonants)

	text = gsub(text, '(.)↶([เแโไ])', '%2%1') -- สลับสระหน้า
	text = gsub(text, '.', marks)

	return text

end

return export