<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ACyrs-translit</id>
	<title>Module:Cyrs-translit - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ACyrs-translit"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:Cyrs-translit&amp;action=history"/>
	<updated>2026-04-08T05:21:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:Cyrs-translit&amp;diff=449258&amp;oldid=prev</id>
		<title>Sware: Created page with &quot;local export = {}  local numbers = mw.loadData(&quot;Module:Cyrs-translit/numbers&quot;)  local ugsub = mw.ustring.gsub local toNFC = mw.ustring.toNFC local toNFD = mw.ustring.toNFD local U = mw.ustring.char local umatch = mw.ustring.match local usub = mw.ustring.sub local ulower = mw.ustring.lower  local acute = U(0x301) local grave = U(0x300) local circumflex = U(0x302) local palatalization = U(0x0484) local titlo = U(0x0483) local dasia = U(0x0485) local psili = U(0x0486) local...&quot;</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:Cyrs-translit&amp;diff=449258&amp;oldid=prev"/>
		<updated>2025-04-03T21:49:11Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local export = {}  local numbers = mw.loadData(&amp;quot;Module:Cyrs-translit/numbers&amp;quot;)  local ugsub = mw.ustring.gsub local toNFC = mw.ustring.toNFC local toNFD = mw.ustring.toNFD local U = mw.ustring.char local umatch = mw.ustring.match local usub = mw.ustring.sub local ulower = mw.ustring.lower  local acute = U(0x301) local grave = U(0x300) local circumflex = U(0x302) local palatalization = U(0x0484) local titlo = U(0x0483) local dasia = U(0x0485) local psili = U(0x0486) local...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local export = {}&lt;br /&gt;
&lt;br /&gt;
local numbers = mw.loadData(&amp;quot;Module:Cyrs-translit/numbers&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local ugsub = mw.ustring.gsub&lt;br /&gt;
local toNFC = mw.ustring.toNFC&lt;br /&gt;
local toNFD = mw.ustring.toNFD&lt;br /&gt;
local U = mw.ustring.char&lt;br /&gt;
local umatch = mw.ustring.match&lt;br /&gt;
local usub = mw.ustring.sub&lt;br /&gt;
local ulower = mw.ustring.lower&lt;br /&gt;
&lt;br /&gt;
local acute = U(0x301)&lt;br /&gt;
local grave = U(0x300)&lt;br /&gt;
local circumflex = U(0x302)&lt;br /&gt;
local palatalization = U(0x0484)&lt;br /&gt;
local titlo = U(0x0483)&lt;br /&gt;
local dasia = U(0x0485)&lt;br /&gt;
local psili = U(0x0486)&lt;br /&gt;
local vzmet = U(0xA66F)&lt;br /&gt;
&lt;br /&gt;
local breathing = psili .. dasia&lt;br /&gt;
local accent = &amp;quot;[&amp;quot; .. acute .. grave .. circumflex .. breathing .. &amp;quot;]*&amp;quot;&lt;br /&gt;
local vowels = &amp;quot;aAeEiIoOuUyY&amp;quot;&lt;br /&gt;
local vowel_or_soft = &amp;quot;[&amp;quot; .. vowels .. &amp;quot;ʹ]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local common_letters = {&lt;br /&gt;
	[&amp;quot;А&amp;quot;] = &amp;#039;A&amp;#039;, [&amp;quot;а&amp;quot;] = &amp;#039;a&amp;#039;,&lt;br /&gt;
	[&amp;quot;Б&amp;quot;] = &amp;#039;B&amp;#039;, [&amp;quot;б&amp;quot;] = &amp;#039;b&amp;#039;,&lt;br /&gt;
	[&amp;quot;В&amp;quot;] = &amp;#039;V&amp;#039;, [&amp;quot;в&amp;quot;] = &amp;#039;v&amp;#039;,&lt;br /&gt;
	[&amp;quot;Г&amp;quot;] = &amp;#039;G&amp;#039;, [&amp;quot;г&amp;quot;] = &amp;#039;g&amp;#039;,&lt;br /&gt;
	[&amp;quot;Д&amp;quot;] = &amp;#039;D&amp;#039;, [&amp;quot;д&amp;quot;] = &amp;#039;d&amp;#039;,&lt;br /&gt;
	[&amp;quot;Е&amp;quot;] = &amp;#039;E&amp;#039;, [&amp;quot;е&amp;quot;] = &amp;#039;e&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ж&amp;quot;] = &amp;#039;Ž&amp;#039;, [&amp;quot;ж&amp;quot;] = &amp;#039;ž&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѕ&amp;quot;] = &amp;#039;Dz&amp;#039;, [&amp;quot;ѕ&amp;quot;] = &amp;#039;dz&amp;#039;,&lt;br /&gt;
	[&amp;quot;З&amp;quot;] = &amp;#039;Z&amp;#039;, [&amp;quot;з&amp;quot;] = &amp;#039;z&amp;#039;,&lt;br /&gt;
	[&amp;quot;И&amp;quot;] = &amp;#039;I&amp;#039;, [&amp;quot;и&amp;quot;] = &amp;#039;i&amp;#039;,&lt;br /&gt;
	[&amp;quot;І&amp;quot;] = &amp;#039;I&amp;#039;, [&amp;quot;і&amp;quot;] = &amp;#039;i&amp;#039;, -- Contrastive with &amp;quot;И&amp;quot;.&lt;br /&gt;
	[&amp;quot;Й&amp;quot;] = &amp;#039;J&amp;#039;, [&amp;quot;й&amp;quot;] = &amp;#039;j&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙉ&amp;quot;] = &amp;#039;Đ&amp;#039;, [&amp;quot;ꙉ&amp;quot;] = &amp;#039;đ&amp;#039;,&lt;br /&gt;
	[&amp;quot;К&amp;quot;] = &amp;#039;K&amp;#039;, [&amp;quot;к&amp;quot;] = &amp;#039;k&amp;#039;,&lt;br /&gt;
	[&amp;quot;Л&amp;quot;] = &amp;#039;L&amp;#039;, [&amp;quot;л&amp;quot;] = &amp;#039;l&amp;#039;,&lt;br /&gt;
	[&amp;quot;М&amp;quot;] = &amp;#039;M&amp;#039;, [&amp;quot;м&amp;quot;] = &amp;#039;m&amp;#039;,&lt;br /&gt;
	[&amp;quot;Н&amp;quot;] = &amp;#039;N&amp;#039;, [&amp;quot;н&amp;quot;] = &amp;#039;n&amp;#039;,&lt;br /&gt;
	[&amp;quot;О&amp;quot;] = &amp;#039;O&amp;#039;, [&amp;quot;о&amp;quot;] = &amp;#039;o&amp;#039;,&lt;br /&gt;
	[&amp;quot;П&amp;quot;] = &amp;#039;P&amp;#039;, [&amp;quot;п&amp;quot;] = &amp;#039;p&amp;#039;,&lt;br /&gt;
	[&amp;quot;Р&amp;quot;] = &amp;#039;R&amp;#039;, [&amp;quot;р&amp;quot;] = &amp;#039;r&amp;#039;,&lt;br /&gt;
	[&amp;quot;С&amp;quot;] = &amp;#039;S&amp;#039;, [&amp;quot;с&amp;quot;] = &amp;#039;s&amp;#039;,&lt;br /&gt;
	[&amp;quot;Т&amp;quot;] = &amp;#039;T&amp;#039;, [&amp;quot;т&amp;quot;] = &amp;#039;t&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙋ&amp;quot;] = &amp;#039;U&amp;#039;, [&amp;quot;ꙋ&amp;quot;] = &amp;#039;u&amp;#039;,&lt;br /&gt;
	[&amp;quot;У&amp;quot;] = &amp;#039;U&amp;#039;, [&amp;quot;у&amp;quot;] = &amp;#039;u&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ф&amp;quot;] = &amp;#039;F&amp;#039;, [&amp;quot;ф&amp;quot;] = &amp;#039;f&amp;#039;,&lt;br /&gt;
	[&amp;quot;Х&amp;quot;] = &amp;#039;X&amp;#039;, [&amp;quot;х&amp;quot;] = &amp;#039;x&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѡ&amp;quot;] = &amp;#039;O&amp;#039;, [&amp;quot;ѡ&amp;quot;] = &amp;#039;o&amp;#039;, -- Contrastive with &amp;quot;О&amp;quot;.&lt;br /&gt;
	[&amp;quot;Ѿ&amp;quot;] = &amp;#039;Ot&amp;#039;, [&amp;quot;ѿ&amp;quot;] = &amp;#039;ot&amp;#039;, -- Becomes &amp;quot;otŭ&amp;quot; as appropriate.&lt;br /&gt;
	[&amp;quot;Ѽ&amp;quot;] = &amp;#039;Ô&amp;#039;, [&amp;quot;ѽ&amp;quot;] = &amp;#039;ô&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ц&amp;quot;] = &amp;#039;C&amp;#039;, [&amp;quot;ц&amp;quot;] = &amp;#039;c&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙡ&amp;quot;] = &amp;#039;Ć&amp;#039;, [&amp;quot;ꙡ&amp;quot;] = &amp;#039;ć&amp;#039;, -- From a merger of &amp;quot;Ц&amp;quot; and &amp;quot;Ч&amp;quot; in Old Novgorodian.&lt;br /&gt;
	[&amp;quot;Ч&amp;quot;] = &amp;#039;Č&amp;#039;, [&amp;quot;ч&amp;quot;] = &amp;#039;č&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ш&amp;quot;] = &amp;#039;Š&amp;#039;, [&amp;quot;ш&amp;quot;] = &amp;#039;š&amp;#039;,&lt;br /&gt;
	[&amp;quot;Щ&amp;quot;] = &amp;#039;Št&amp;#039;, [&amp;quot;щ&amp;quot;] = &amp;#039;št&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ъ&amp;quot;] = &amp;#039;Ŭ&amp;#039;, [&amp;quot;ъ&amp;quot;] = &amp;#039;ŭ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙑ&amp;quot;] = &amp;#039;Y&amp;#039;, [&amp;quot;ꙑ&amp;quot;] = &amp;#039;y&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ь&amp;quot;] = &amp;#039;Ĭ&amp;#039;, [&amp;quot;ь&amp;quot;] = &amp;#039;ĭ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѣ&amp;quot;] = &amp;#039;Ě&amp;#039;, [&amp;quot;ѣ&amp;quot;] = &amp;#039;ě&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙓ&amp;quot;] = &amp;#039;Jě&amp;#039;, [&amp;quot;ꙓ&amp;quot;] = &amp;#039;jě&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙗ&amp;quot;] = &amp;#039;Ja&amp;#039;, [&amp;quot;ꙗ&amp;quot;] = &amp;#039;ja&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѥ&amp;quot;] = &amp;#039;Je&amp;#039;, [&amp;quot;ѥ&amp;quot;] = &amp;#039;je&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ю&amp;quot;] = &amp;#039;Ju&amp;#039;, [&amp;quot;ю&amp;quot;] = &amp;#039;ju&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѫ&amp;quot;] = &amp;#039;Ǫ&amp;#039;, [&amp;quot;ѫ&amp;quot;] = &amp;#039;ǫ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѭ&amp;quot;] = &amp;#039;Jǫ&amp;#039;, [&amp;quot;ѭ&amp;quot;] = &amp;#039;jǫ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѧ&amp;quot;] = &amp;#039;Ę&amp;#039;, [&amp;quot;ѧ&amp;quot;] = &amp;#039;ę&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѩ&amp;quot;] = &amp;#039;Ję&amp;#039;, [&amp;quot;ѩ&amp;quot;] = &amp;#039;ję&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѯ&amp;quot;] = &amp;#039;Ks&amp;#039;, [&amp;quot;ѯ&amp;quot;] = &amp;#039;ks&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѱ&amp;quot;] = &amp;#039;Ps&amp;#039;, [&amp;quot;ѱ&amp;quot;] = &amp;#039;ps&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѳ&amp;quot;] = &amp;#039;Θ&amp;#039;, [&amp;quot;ѳ&amp;quot;] = &amp;#039;θ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѵ&amp;quot;] = &amp;#039;Ü&amp;#039;, [&amp;quot;ѵ&amp;quot;] = &amp;#039;ü&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѷ&amp;quot;] = &amp;#039;Ü&amp;#039;, [&amp;quot;ѷ&amp;quot;] = &amp;#039;ü&amp;#039;, -- Contrastive with &amp;quot;Ѵ&amp;quot;.&lt;br /&gt;
	[&amp;quot;Ҁ&amp;quot;] = &amp;#039;Q&amp;#039;, [&amp;quot;ҁ&amp;quot;] = &amp;#039;q&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local variants = {&lt;br /&gt;
	[&amp;quot;ᲀ&amp;quot;] = &amp;#039;в&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ґ&amp;quot;] = &amp;#039;Г&amp;#039;, [&amp;quot;ґ&amp;quot;] = &amp;#039;г&amp;#039;,&lt;br /&gt;
	[&amp;quot;ᲁ&amp;quot;] = &amp;#039;д&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙣ&amp;quot;] = &amp;#039;Д&amp;#039; .. palatalization, [&amp;quot;ꙣ&amp;quot;] = &amp;#039;д&amp;#039; .. palatalization,&lt;br /&gt;
	[&amp;quot;Є&amp;quot;] = &amp;#039;Е&amp;#039;, [&amp;quot;є&amp;quot;] = &amp;#039;е&amp;#039;,&lt;br /&gt;
	[&amp;quot;Э&amp;quot;] = &amp;#039;Е&amp;#039;, [&amp;quot;э&amp;quot;] = &amp;#039;е&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙃ&amp;quot;] = &amp;#039;Ѕ&amp;#039;, [&amp;quot;ꙃ&amp;quot;] = &amp;#039;ѕ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙅ&amp;quot;] = &amp;#039;Ѕ&amp;#039;, [&amp;quot;ꙅ&amp;quot;] = &amp;#039;ѕ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙁ&amp;quot;] = &amp;#039;З&amp;#039;, [&amp;quot;ꙁ&amp;quot;] = &amp;#039;з&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ӥ&amp;quot;] = &amp;#039;И&amp;#039;, [&amp;quot;ӥ&amp;quot;] = &amp;#039;и&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ї&amp;quot;] = &amp;#039;І&amp;#039;, [&amp;quot;ї&amp;quot;] = &amp;#039;і&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙇ&amp;quot;] = &amp;#039;І&amp;#039;, [&amp;quot;ꙇ&amp;quot;] = &amp;#039;і&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙥ&amp;quot;] = &amp;#039;Л&amp;#039; .. palatalization, [&amp;quot;ꙥ&amp;quot;] = &amp;#039;л&amp;#039; .. palatalization,&lt;br /&gt;
	[&amp;quot;Ꙧ&amp;quot;] = &amp;#039;М&amp;#039; .. palatalization, [&amp;quot;ꙧ&amp;quot;] = &amp;#039;м&amp;#039; .. palatalization,&lt;br /&gt;
	[&amp;quot;Ҥ&amp;quot;] = &amp;#039;Н&amp;#039; .. palatalization, [&amp;quot;ҥ&amp;quot;] = &amp;#039;н&amp;#039; .. palatalization,&lt;br /&gt;
	[&amp;quot;Ѻ&amp;quot;] = &amp;#039;О&amp;#039;, [&amp;quot;ѻ&amp;quot;] = &amp;#039;о&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙩ&amp;quot;] = &amp;#039;О&amp;#039;, [&amp;quot;ꙩ&amp;quot;] = &amp;#039;о&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙫ&amp;quot;] = &amp;#039;О&amp;#039;, [&amp;quot;ꙫ&amp;quot;] = &amp;#039;о&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꚛ&amp;quot;] = &amp;#039;О&amp;#039;, [&amp;quot;ꚛ&amp;quot;] = &amp;#039;о&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꚙ&amp;quot;] = &amp;#039;О&amp;#039;, [&amp;quot;ꚙ&amp;quot;] = &amp;#039;о&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙭ&amp;quot;] = &amp;#039;О&amp;#039;, [&amp;quot;ꙭ&amp;quot;] = &amp;#039;о&amp;#039;,&lt;br /&gt;
	[&amp;quot;ꙮ&amp;quot;] = &amp;#039;о&amp;#039;,&lt;br /&gt;
	[&amp;quot;ᲂ&amp;quot;] = &amp;#039;о&amp;#039;,&lt;br /&gt;
	[&amp;quot;ᲃ&amp;quot;] = &amp;#039;с&amp;#039;,&lt;br /&gt;
	[&amp;quot;ᲄ&amp;quot;] = &amp;#039;т&amp;#039;,&lt;br /&gt;
	[&amp;quot;ᲅ&amp;quot;] = &amp;#039;т&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѹ&amp;quot;] = &amp;#039;Ꙋ&amp;#039;, [&amp;quot;ѹ&amp;quot;] = &amp;#039;ꙋ&amp;#039;, [&amp;quot;ᲈ&amp;quot;] = &amp;#039;ꙋ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙍ&amp;quot;] = &amp;#039;Ѡ&amp;#039;, [&amp;quot;ꙍ&amp;quot;] = &amp;#039;ѡ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ы&amp;quot;] = &amp;#039;Ꙑ&amp;#039;, [&amp;quot;ы&amp;quot;] = &amp;#039;ꙑ&amp;#039;,&lt;br /&gt;
	[&amp;quot;ᲆ&amp;quot;] = &amp;#039;ъ&amp;#039;,&lt;br /&gt;
	[&amp;quot;ᲇ&amp;quot;] = &amp;#039;ѣ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Я&amp;quot;] = &amp;#039;Ꙗ&amp;#039;, [&amp;quot;я&amp;quot;] = &amp;#039;ꙗ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙕ&amp;quot;] = &amp;#039;Ю&amp;#039;, [&amp;quot;ꙕ&amp;quot;] = &amp;#039;ю&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙛ&amp;quot;] = &amp;#039;Ѫ&amp;#039;, [&amp;quot;ꙛ&amp;quot;] = &amp;#039;ѫ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙙ&amp;quot;] = &amp;#039;Ѧ&amp;#039;, [&amp;quot;ꙙ&amp;quot;] = &amp;#039;ѧ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ꙝ&amp;quot;] = &amp;#039;Ѩ&amp;#039;, [&amp;quot;ꙝ&amp;quot;] = &amp;#039;ѩ&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Letters converted to their iotated equivalents when word-initial.&lt;br /&gt;
local common_iotated_initial = {&lt;br /&gt;
	[&amp;quot;Ѣ&amp;quot;] = &amp;#039;Ꙓ&amp;#039;, [&amp;quot;ѣ&amp;quot;] = &amp;#039;ꙓ&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Letters converted to their iotated equivalents after vowels or a&lt;br /&gt;
-- palatalization mark.&lt;br /&gt;
local common_iotated_after_vowel_or_soft = {&lt;br /&gt;
	[&amp;quot;Е&amp;quot;] = &amp;#039;Ѥ&amp;#039;, [&amp;quot;е&amp;quot;] = &amp;#039;ѥ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѣ&amp;quot;] = &amp;#039;Ꙓ&amp;#039;, [&amp;quot;ѣ&amp;quot;] = &amp;#039;ꙓ&amp;#039;,&lt;br /&gt;
	[&amp;quot;Ѧ&amp;quot;] = &amp;#039;Ѩ&amp;#039;, [&amp;quot;ѧ&amp;quot;] = &amp;#039;ѩ&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local lang_letters = {}&lt;br /&gt;
local lang_iotated_initial = {}&lt;br /&gt;
local lang_iotated_after_vowel_or_soft = {}&lt;br /&gt;
local uo_is_u = {}&lt;br /&gt;
&lt;br /&gt;
-- Old East Slavic&lt;br /&gt;
	lang_letters[&amp;quot;orv&amp;quot;] = setmetatable({&lt;br /&gt;
		[&amp;quot;Щ&amp;quot;] = &amp;#039;Šč&amp;#039;, [&amp;quot;щ&amp;quot;] = &amp;#039;šč&amp;#039;,&lt;br /&gt;
	}, {__index = common_letters})&lt;br /&gt;
	&lt;br /&gt;
	lang_iotated_initial[&amp;quot;orv&amp;quot;] = setmetatable({&lt;br /&gt;
		[&amp;quot;Е&amp;quot;] = &amp;#039;Ѥ&amp;#039;, [&amp;quot;е&amp;quot;] = &amp;#039;ѥ&amp;#039;,&lt;br /&gt;
		[&amp;quot;Ѧ&amp;quot;] = &amp;#039;Ѩ&amp;#039;, [&amp;quot;ѧ&amp;quot;] = &amp;#039;ѩ&amp;#039;,&lt;br /&gt;
	}, {__index = common_iotated_initial})&lt;br /&gt;
&lt;br /&gt;
-- Old Novgorodian&lt;br /&gt;
	lang_letters[&amp;quot;zle-ono&amp;quot;] = setmetatable({&lt;br /&gt;
		[&amp;quot;Ц&amp;quot;] = &amp;#039;Ć&amp;#039;, [&amp;quot;ц&amp;quot;] = &amp;#039;ć&amp;#039;,&lt;br /&gt;
		[&amp;quot;Ч&amp;quot;] = &amp;#039;Ć&amp;#039;, [&amp;quot;ч&amp;quot;] = &amp;#039;ć&amp;#039;,&lt;br /&gt;
		[&amp;quot;Щ&amp;quot;] = &amp;#039;Ść&amp;#039;, [&amp;quot;щ&amp;quot;] = &amp;#039;ść&amp;#039;,&lt;br /&gt;
	}, {__index = common_letters})&lt;br /&gt;
	&lt;br /&gt;
	lang_iotated_initial[&amp;quot;zle-ono&amp;quot;] = lang_iotated_initial[&amp;quot;orv&amp;quot;]&lt;br /&gt;
	uo_is_u[&amp;quot;zle-ono&amp;quot;] = true&lt;br /&gt;
&lt;br /&gt;
-- Old Pskovian&lt;br /&gt;
	lang_letters[&amp;quot;zle-ops&amp;quot;] = setmetatable({ -- In addition to zle-ono above.&lt;br /&gt;
		[&amp;quot;Ж&amp;quot;] = &amp;#039;Ź&amp;#039;, [&amp;quot;ж&amp;quot;] = &amp;#039;ź&amp;#039;,&lt;br /&gt;
		[&amp;quot;Ѕ&amp;quot;] = &amp;#039;Dź&amp;#039;, [&amp;quot;ѕ&amp;quot;] = &amp;#039;dź&amp;#039;,&lt;br /&gt;
		[&amp;quot;З&amp;quot;] = &amp;#039;Ź&amp;#039;, [&amp;quot;з&amp;quot;] = &amp;#039;ź&amp;#039;,&lt;br /&gt;
		[&amp;quot;С&amp;quot;] = &amp;#039;Ś&amp;#039;, [&amp;quot;с&amp;quot;] = &amp;#039;ś&amp;#039;,&lt;br /&gt;
		[&amp;quot;Ш&amp;quot;] = &amp;#039;Ś&amp;#039;, [&amp;quot;ш&amp;quot;] = &amp;#039;ś&amp;#039;,&lt;br /&gt;
		[&amp;quot;Щ&amp;quot;] = &amp;#039;Šk&amp;#039;, [&amp;quot;щ&amp;quot;] = &amp;#039;šk&amp;#039;,&lt;br /&gt;
	}, {__index = lang_letters[&amp;quot;zle-ono&amp;quot;]})&lt;br /&gt;
	&lt;br /&gt;
	lang_iotated_initial[&amp;quot;zle-ops&amp;quot;] = setmetatable({ -- In addition to zle-ono above.&lt;br /&gt;
		[&amp;quot;Ѫ&amp;quot;] = &amp;#039;Ѭ&amp;#039;, [&amp;quot;ѫ&amp;quot;] = &amp;#039;ѭ&amp;#039;,&lt;br /&gt;
	}, {__index = lang_iotated_initial[&amp;quot;zle-ono&amp;quot;]})&lt;br /&gt;
	&lt;br /&gt;
	lang_iotated_after_vowel_or_soft[&amp;quot;zle-ops&amp;quot;] = setmetatable({&lt;br /&gt;
		[&amp;quot;Ѫ&amp;quot;] = &amp;#039;Ѭ&amp;#039;, [&amp;quot;ѫ&amp;quot;] = &amp;#039;ѭ&amp;#039;,&lt;br /&gt;
	}, {__index = common_iotated_after_vowel_or_soft})&lt;br /&gt;
	&lt;br /&gt;
	uo_is_u[&amp;quot;zle-ops&amp;quot;] = true&lt;br /&gt;
&lt;br /&gt;
local function handle_v(prev, v)&lt;br /&gt;
	return prev .. (v == &amp;quot;Ѵ&amp;quot; and &amp;quot;В&amp;quot; or &amp;quot;в&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function handle_ou(o, ac)&lt;br /&gt;
	return (ulower(o) == o and &amp;quot;у&amp;quot; or &amp;quot;У&amp;quot;) .. ac&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function handle_breathing(vowel, br)&lt;br /&gt;
	-- Don&amp;#039;t mark smooth breathing.&lt;br /&gt;
	if br == psili then&lt;br /&gt;
		return vowel&lt;br /&gt;
	end&lt;br /&gt;
	-- Mark rough breathing with &amp;quot;h&amp;quot;.&lt;br /&gt;
	local vowel_lower = ulower(vowel)&lt;br /&gt;
	return (vowel_lower == vowel and &amp;quot;h&amp;quot; or &amp;quot;H&amp;quot;) .. vowel_lower&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.tr(text, lang, sc)&lt;br /&gt;
	if not sc then&lt;br /&gt;
		sc = require(&amp;quot;Module:languages&amp;quot;).getByCode(lang, nil, true):findBestScript(text):getCode()&lt;br /&gt;
	end&lt;br /&gt;
	if sc ~= &amp;quot;Cyrs&amp;quot; then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local input = text&lt;br /&gt;
	&lt;br /&gt;
	-- Decompose any acute and grave accents.&lt;br /&gt;
	text = ugsub(toNFD(text), &amp;quot;[^&amp;quot; .. acute .. grave .. &amp;quot;]+&amp;quot;, toNFC)&lt;br /&gt;
	&lt;br /&gt;
	-- Canonicalize any variants.&lt;br /&gt;
	text = text:gsub(&amp;quot;.[\128-\191]*&amp;quot;, variants)&lt;br /&gt;
&lt;br /&gt;
	-- Transliterate the palatalization mark as prime.&lt;br /&gt;
	text = text:gsub(palatalization, &amp;quot;ʹ&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	-- Treat &amp;quot;Ѵ&amp;quot; as the consonant &amp;quot;В&amp;quot; (transliterated &amp;quot;V&amp;quot;) in diphthongs that&lt;br /&gt;
	-- correspond to Ancient Greek &amp;quot;αυ&amp;quot;, &amp;quot;ευ&amp;quot; and &amp;quot;ηυ&amp;quot; (equivalent to &amp;quot;аѵ&amp;quot;, &amp;quot;еѵ&amp;quot;&lt;br /&gt;
	-- and &amp;quot;иѵ&amp;quot;).  Note that &amp;quot;ιυ&amp;quot; (&amp;quot;іѵ&amp;quot;) is not a diphthong, and &amp;quot;ου&amp;quot; (&amp;quot;оѵ&amp;quot;) is&lt;br /&gt;
	-- a long vowel. However, this doesn&amp;#039;t apply to &amp;quot;Ѷ&amp;quot;, as the diacritic means&lt;br /&gt;
	-- it must be treated as a vowel.&lt;br /&gt;
	text = ugsub(text, &amp;quot;([аАеЕиИꙗꙖѥѤ]&amp;quot; .. accent .. &amp;quot;)([ѵѴ])&amp;quot;, handle_v)&lt;br /&gt;
	&lt;br /&gt;
	local letters = lang_letters[lang] or common_letters&lt;br /&gt;
	&lt;br /&gt;
	-- Convert &amp;quot;ѿ&amp;quot; to &amp;quot;ѡт&amp;quot; if followed by a non-iotated vowel (including those&lt;br /&gt;
	-- which iotate only after vowels) or a palatalization mark, and &amp;quot;ѡтъ&amp;quot; in&lt;br /&gt;
	-- all other cases.&lt;br /&gt;
	text = ugsub(text, &amp;quot;([ѿѾ])(&amp;quot; .. accent .. &amp;quot;)()&amp;quot;, function(ot, ac, loc)&lt;br /&gt;
		ot = (ot == &amp;quot;Ѿ&amp;quot; and &amp;quot;Ѡ&amp;quot; or &amp;quot;ѡ&amp;quot;) .. ac .. &amp;quot;т&amp;quot;&lt;br /&gt;
		local nxt = toNFD(usub(text, loc, loc):gsub(&amp;quot;.[\128-\191]*&amp;quot;, letters))&lt;br /&gt;
		if not umatch(nxt, &amp;quot;^&amp;quot; .. vowel_or_soft) then&lt;br /&gt;
			ot = ot .. &amp;quot;ъ&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		return ot&lt;br /&gt;
	end)&lt;br /&gt;
	&lt;br /&gt;
	-- Handle any vowels which are iotated at the start of words.&lt;br /&gt;
	local iotated_initial = lang_iotated_initial[lang] or common_iotated_initial&lt;br /&gt;
	-- Not possible to input iotated_initial directly, as mw.ustring.gsub&lt;br /&gt;
	-- doesn&amp;#039;t respect metamethods...&lt;br /&gt;
	text = ugsub(text, &amp;quot;%f[%w].&amp;quot;, function(m)&lt;br /&gt;
		return iotated_initial[m]&lt;br /&gt;
	end)&lt;br /&gt;
	&lt;br /&gt;
	-- Handle any vowels which are iotated after another vowel or a&lt;br /&gt;
	-- palatalization mark.&lt;br /&gt;
	local iotated_after_vowel_or_soft = lang_iotated_after_vowel_or_soft[lang] or common_iotated_after_vowel_or_soft&lt;br /&gt;
	text = ugsub(text, &amp;quot;()(&amp;quot; .. accent .. &amp;quot;)(.)&amp;quot;, function(loc, ac, letter)&lt;br /&gt;
		local iotated = iotated_after_vowel_or_soft[letter]&lt;br /&gt;
		if iotated then&lt;br /&gt;
			loc = loc - 1&lt;br /&gt;
			local prev = toNFD((loc == 0 and &amp;quot;&amp;quot; or usub(text, loc, loc)):gsub(&amp;quot;.[\128-\191]*&amp;quot;, letters))&lt;br /&gt;
			if umatch(prev, vowel_or_soft .. &amp;quot;%W*$&amp;quot;) then&lt;br /&gt;
				return ac .. iotated&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end)&lt;br /&gt;
	&lt;br /&gt;
	-- Treat &amp;quot;ъі&amp;quot; as &amp;quot;ꙑ&amp;quot;, and make &amp;quot;ъ&amp;quot; tense (&amp;quot;ŷ&amp;quot;) before &amp;quot;и&amp;quot; or an iotated&lt;br /&gt;
	-- vowel.&lt;br /&gt;
	text = ugsub(text, &amp;quot;([Ъъ])(&amp;quot; .. accent .. &amp;quot;)()([иИіІ]?)&amp;quot;, function(yer, ac, loc, i)&lt;br /&gt;
		local nxt = toNFD(usub(text, loc, loc):gsub(&amp;quot;.[\128-\191]*&amp;quot;, letters)):match(&amp;quot;^[iIjJ]&amp;quot;)&lt;br /&gt;
		if nxt ~= nil then&lt;br /&gt;
			return (yer == &amp;quot;Ъ&amp;quot; and &amp;quot;Ꙑ&amp;quot; or &amp;quot;ꙑ&amp;quot;) .. ((i == &amp;quot;і&amp;quot; or i == &amp;quot;І&amp;quot;) and ac or circumflex .. ac .. i)&lt;br /&gt;
		end&lt;br /&gt;
	end)&lt;br /&gt;
	&lt;br /&gt;
	-- In some languages, treat &amp;quot;уо&amp;quot; (&amp;quot;uo&amp;quot;) as &amp;quot;у&amp;quot; (&amp;quot;u&amp;quot;).&lt;br /&gt;
	if uo_is_u[lang] then&lt;br /&gt;
		text = ugsub(text, &amp;quot;([уУѵѴѷѶ]&amp;quot; .. accent .. &amp;quot;)[оО]&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Treat &amp;quot;оу&amp;quot; (&amp;quot;ou&amp;quot;) as &amp;quot;у&amp;quot; (&amp;quot;u&amp;quot;).&lt;br /&gt;
	text = ugsub(text, &amp;quot;([оО])(&amp;quot; .. accent .. &amp;quot;)[уУѵѴѷѶ]&amp;quot;, handle_ou)&lt;br /&gt;
	&lt;br /&gt;
	-- Substitute any numbers.&lt;br /&gt;
	for key, repl in pairs(numbers) do&lt;br /&gt;
		text = ugsub(text, key, repl)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Main substitution.&lt;br /&gt;
	text = text:gsub(&amp;quot;.[\128-\191]*&amp;quot;, letters)&lt;br /&gt;
	&lt;br /&gt;
	-- Handle any breathing marks.&lt;br /&gt;
	text = ugsub(toNFD(text), &amp;quot;([&amp;quot; .. vowels .. &amp;quot;][&amp;quot; .. vowels .. &amp;quot;%W]-)([&amp;quot; .. breathing .. &amp;quot;])&amp;quot;, handle_breathing)&lt;br /&gt;
	&lt;br /&gt;
	if umatch(text, &amp;quot;[&amp;quot; .. breathing .. &amp;quot;]&amp;quot;) then&lt;br /&gt;
		error(&amp;quot;Invalid breathing marks in input &amp;quot; .. mw.dumpObject(input))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Transliterate the titlo and vzmet as colon.&lt;br /&gt;
	text = ugsub(text, &amp;quot;[&amp;quot; .. titlo .. vzmet .. &amp;quot;]&amp;quot;, &amp;quot;:&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	return toNFC(text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
</feed>