<?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%3Amn-translit</id>
	<title>Module:mn-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%3Amn-translit"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:mn-translit&amp;action=history"/>
	<updated>2026-04-23T22:44:51Z</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:mn-translit&amp;diff=495537&amp;oldid=prev</id>
		<title>Sware: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:mn-translit&amp;diff=495537&amp;oldid=prev"/>
		<updated>2026-04-21T12:44:12Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:44, 21 April 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:mn-translit&amp;diff=495536&amp;oldid=prev</id>
		<title>wikt&gt;SurjectionBot: Protected &quot;Module:mn-translit&quot;: (bot) automatically protect highly visible templates/modules (reference score: 2000+ &gt;= 1000) ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:mn-translit&amp;diff=495536&amp;oldid=prev"/>
		<updated>2024-04-27T09:32:59Z</updated>

		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/wiki/Module:mn-translit&quot; title=&quot;Module:mn-translit&quot;&gt;Module:mn-translit&lt;/a&gt;&amp;quot;: (bot) automatically protect highly visible templates/modules (reference score: 2000+ &amp;gt;= 1000) ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:32, 27 April 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local mn = require(&amp;quot;Module:mn-common&amp;quot;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local mn = require(&amp;quot;Module:mn-common&amp;quot;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local gsub = mw.ustring.gsub&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local gsub = mw.ustring.gsub&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local toNFC = mw.ustring.toNFC&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local toNFD = mw.ustring.toNFD&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local UTF8_char = &quot;[%z\1-\127\194-\244][\128-\191]*&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local preConv = {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local preConv = {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	[&quot;є&quot;] = &quot;ө&quot;, [&quot;ѳ&quot;] = &quot;ө&quot;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	[&quot;є&quot;] = &quot;ө&quot;, [&quot;ѳ&quot;] = &quot;ө&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;, [&quot;ї&quot;] = &quot;ү&lt;/ins&gt;&quot;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	[&quot;Є&quot;] = &quot;Ө&quot;, [&quot;Ѳ&quot;] = &quot;Ө&quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	[&quot;Є&quot;] = &quot;Ө&quot;, [&quot;Ѳ&quot;] = &quot;Ө&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;, [&quot;Ї&quot;] = &quot;Ү&lt;/ins&gt;&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l22&quot;&gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		return nil&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		return nil&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-- Pre-convert any substitute characters.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local &lt;/del&gt;UTF8_char &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= &quot;[%z\1-\127\194-\244][\128-\191]*&quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;text = text:gsub(&lt;/ins&gt;UTF8_char&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, preConv)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- Decompose (except for &amp;quot;ё&amp;quot; and &amp;quot;й&amp;quot;) so that accents can be consistently detected.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- Decompose (except for &amp;quot;ё&amp;quot; and &amp;quot;й&amp;quot;) so that accents can be consistently detected.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	text = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mw.ustring.&lt;/del&gt;toNFD(text)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	text = toNFD(text)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	text = gsub(text, &quot;[еЕ]̈&quot;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mw.ustring.&lt;/del&gt;toNFC)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	text = gsub(text, &quot;[еЕ]̈&quot;, toNFC)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	text = gsub(text, &quot;[иИ]̆&quot;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mw.ustring.&lt;/del&gt;toNFC&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	text = gsub(text, &quot;[иИ]̆&quot;, toNFC)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	-- Pre-convert &quot;є&quot; and &quot;ѳ&quot; to &quot;ө&quot;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	text = string.gsub(text, UTF8_char, preConv&lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- Hard sign does nothing if word-final (extremely rare, but attested in borrowings of affected Russian proper nouns like &amp;quot;Коммерсантъ&amp;quot;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- Hard sign does nothing if word-final (extremely rare, but attested in borrowings of affected Russian proper nouns like &amp;quot;Коммерсантъ&amp;quot;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	text = gsub(text, &amp;quot;[Ъъ]([^а-яёөү])&amp;quot;, &amp;quot;%1&amp;quot;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	text = gsub(text, &amp;quot;[Ъъ]([^а-яёөү])&amp;quot;, &amp;quot;%1&amp;quot;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l63&quot;&gt;Line 63:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 64:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		-- Do primary substitutions. If still present, Cyrillic &amp;quot;е&amp;quot; becomes &amp;quot;je&amp;quot; and &amp;quot;ю&amp;quot; becomes &amp;quot;ju&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		-- Do primary substitutions. If still present, Cyrillic &amp;quot;е&amp;quot; becomes &amp;quot;je&amp;quot; and &amp;quot;ю&amp;quot; becomes &amp;quot;ju&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		for digraph, replacement in pairs(twoChars) do&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		for digraph, replacement in pairs(twoChars) do&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			text[i].substring = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;string.gsub(&lt;/del&gt;text[i].substring&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/del&gt;digraph, replacement)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			text[i].substring = text[i].substring&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:gsub(&lt;/ins&gt;digraph, replacement)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		text[i].substring = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;string.gsub(&lt;/del&gt;text[i].substring&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/del&gt;UTF8_char, oneChar)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		text[i].substring = text[i].substring&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:gsub(&lt;/ins&gt;UTF8_char, oneChar)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		table.insert(text.translit, text[i].substring)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		table.insert(text.translit, text[i].substring)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	return &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mw.ustring.&lt;/del&gt;toNFC(table.concat(text.translit, &quot;&quot;))&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	return toNFC(table.concat(text.translit, &quot;&quot;))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;return export&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;return export&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>wikt&gt;SurjectionBot</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:mn-translit&amp;diff=325031&amp;oldid=prev</id>
		<title>Sware: Created page with &quot;local export = {} local mn = require(&quot;Module:mn-common&quot;) local gsub = mw.ustring.gsub  local preConv = { 	[&quot;є&quot;] = &quot;ө&quot;, [&quot;ѳ&quot;] = &quot;ө&quot;, 	[&quot;Є&quot;] = &quot;Ө&quot;, [&quot;Ѳ&quot;] = &quot;Ө&quot; }  local oneChar = { 	[&quot;а&quot;] = &quot;a&quot;, [&quot;б&quot;] = &quot;b&quot;, [&quot;в&quot;] = &quot;v&quot;, [&quot;г&quot;] = &quot;g&quot;, [&quot;д&quot;] = &quot;d&quot;, [&quot;е&quot;] = &quot;je&quot;, [&quot;ё&quot;] = &quot;jo&quot;, [&quot;ж&quot;] = &quot;ž&quot;, [&quot;з&quot;] = &quot;z&quot;, [&quot;и&quot;] = &quot;i&quot;, [&quot;й&quot;] = &quot;j&quot;, [&quot;к&quot;] = &quot;k&quot;, [&quot;л&quot;] = &quot;l&quot;, [&quot;м&quot;] = &quot;m&quot;, [&quot;н&quot;] = &quot;n&quot;, [&quot;о&quot;] = &quot;o&quot;, [&quot;ө&quot;] = &quot;ö&quot;, [&quot;п&quot;] = &quot;p&quot;, [&quot;р&quot;] = &quot;r&quot;, [&quot;с&quot;] = &quot;s&quot;, [&quot;...&quot;</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:mn-translit&amp;diff=325031&amp;oldid=prev"/>
		<updated>2023-09-11T16:29:25Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local export = {} local mn = require(&amp;quot;Module:mn-common&amp;quot;) local gsub = mw.ustring.gsub  local preConv = { 	[&amp;quot;є&amp;quot;] = &amp;quot;ө&amp;quot;, [&amp;quot;ѳ&amp;quot;] = &amp;quot;ө&amp;quot;, 	[&amp;quot;Є&amp;quot;] = &amp;quot;Ө&amp;quot;, [&amp;quot;Ѳ&amp;quot;] = &amp;quot;Ө&amp;quot; }  local oneChar = { 	[&amp;quot;а&amp;quot;] = &amp;quot;a&amp;quot;, [&amp;quot;б&amp;quot;] = &amp;quot;b&amp;quot;, [&amp;quot;в&amp;quot;] = &amp;quot;v&amp;quot;, [&amp;quot;г&amp;quot;] = &amp;quot;g&amp;quot;, [&amp;quot;д&amp;quot;] = &amp;quot;d&amp;quot;, [&amp;quot;е&amp;quot;] = &amp;quot;je&amp;quot;, [&amp;quot;ё&amp;quot;] = &amp;quot;jo&amp;quot;, [&amp;quot;ж&amp;quot;] = &amp;quot;ž&amp;quot;, [&amp;quot;з&amp;quot;] = &amp;quot;z&amp;quot;, [&amp;quot;и&amp;quot;] = &amp;quot;i&amp;quot;, [&amp;quot;й&amp;quot;] = &amp;quot;j&amp;quot;, [&amp;quot;к&amp;quot;] = &amp;quot;k&amp;quot;, [&amp;quot;л&amp;quot;] = &amp;quot;l&amp;quot;, [&amp;quot;м&amp;quot;] = &amp;quot;m&amp;quot;, [&amp;quot;н&amp;quot;] = &amp;quot;n&amp;quot;, [&amp;quot;о&amp;quot;] = &amp;quot;o&amp;quot;, [&amp;quot;ө&amp;quot;] = &amp;quot;ö&amp;quot;, [&amp;quot;п&amp;quot;] = &amp;quot;p&amp;quot;, [&amp;quot;р&amp;quot;] = &amp;quot;r&amp;quot;, [&amp;quot;с&amp;quot;] = &amp;quot;s&amp;quot;, [&amp;quot;...&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;
local mn = require(&amp;quot;Module:mn-common&amp;quot;)&lt;br /&gt;
local gsub = mw.ustring.gsub&lt;br /&gt;
&lt;br /&gt;
local preConv = {&lt;br /&gt;
	[&amp;quot;є&amp;quot;] = &amp;quot;ө&amp;quot;, [&amp;quot;ѳ&amp;quot;] = &amp;quot;ө&amp;quot;,&lt;br /&gt;
	[&amp;quot;Є&amp;quot;] = &amp;quot;Ө&amp;quot;, [&amp;quot;Ѳ&amp;quot;] = &amp;quot;Ө&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local oneChar = {&lt;br /&gt;
	[&amp;quot;а&amp;quot;] = &amp;quot;a&amp;quot;, [&amp;quot;б&amp;quot;] = &amp;quot;b&amp;quot;, [&amp;quot;в&amp;quot;] = &amp;quot;v&amp;quot;, [&amp;quot;г&amp;quot;] = &amp;quot;g&amp;quot;, [&amp;quot;д&amp;quot;] = &amp;quot;d&amp;quot;, [&amp;quot;е&amp;quot;] = &amp;quot;je&amp;quot;, [&amp;quot;ё&amp;quot;] = &amp;quot;jo&amp;quot;, [&amp;quot;ж&amp;quot;] = &amp;quot;ž&amp;quot;, [&amp;quot;з&amp;quot;] = &amp;quot;z&amp;quot;, [&amp;quot;и&amp;quot;] = &amp;quot;i&amp;quot;, [&amp;quot;й&amp;quot;] = &amp;quot;j&amp;quot;, [&amp;quot;к&amp;quot;] = &amp;quot;k&amp;quot;, [&amp;quot;л&amp;quot;] = &amp;quot;l&amp;quot;, [&amp;quot;м&amp;quot;] = &amp;quot;m&amp;quot;, [&amp;quot;н&amp;quot;] = &amp;quot;n&amp;quot;, [&amp;quot;о&amp;quot;] = &amp;quot;o&amp;quot;, [&amp;quot;ө&amp;quot;] = &amp;quot;ö&amp;quot;, [&amp;quot;п&amp;quot;] = &amp;quot;p&amp;quot;, [&amp;quot;р&amp;quot;] = &amp;quot;r&amp;quot;, [&amp;quot;с&amp;quot;] = &amp;quot;s&amp;quot;, [&amp;quot;т&amp;quot;] = &amp;quot;t&amp;quot;, [&amp;quot;у&amp;quot;] = &amp;quot;u&amp;quot;, [&amp;quot;ү&amp;quot;] = &amp;quot;ü&amp;quot;, [&amp;quot;ф&amp;quot;] = &amp;quot;f&amp;quot;, [&amp;quot;х&amp;quot;] = &amp;quot;x&amp;quot;, [&amp;quot;ц&amp;quot;] = &amp;quot;c&amp;quot;, [&amp;quot;ч&amp;quot;] = &amp;quot;č&amp;quot;, [&amp;quot;ш&amp;quot;] = &amp;quot;š&amp;quot;, [&amp;quot;щ&amp;quot;] = &amp;quot;šč&amp;quot;, [&amp;quot;ъ&amp;quot;] = &amp;quot;ʺ&amp;quot;, [&amp;quot;ы&amp;quot;] = &amp;quot;y&amp;quot;, [&amp;quot;ь&amp;quot;] = &amp;quot;ʹ&amp;quot;, [&amp;quot;э&amp;quot;] = &amp;quot;e&amp;quot;, [&amp;quot;ю&amp;quot;] = &amp;quot;ju&amp;quot;, [&amp;quot;я&amp;quot;] = &amp;quot;ja&amp;quot;,&lt;br /&gt;
	[&amp;quot;А&amp;quot;] = &amp;quot;A&amp;quot;, [&amp;quot;Б&amp;quot;] = &amp;quot;B&amp;quot;, [&amp;quot;В&amp;quot;] = &amp;quot;V&amp;quot;, [&amp;quot;Г&amp;quot;] = &amp;quot;G&amp;quot;, [&amp;quot;Д&amp;quot;] = &amp;quot;D&amp;quot;, [&amp;quot;Е&amp;quot;] = &amp;quot;Je&amp;quot;, [&amp;quot;Ё&amp;quot;] = &amp;quot;Jo&amp;quot;, [&amp;quot;Ж&amp;quot;] = &amp;quot;Ž&amp;quot;, [&amp;quot;З&amp;quot;] = &amp;quot;Z&amp;quot;, [&amp;quot;И&amp;quot;] = &amp;quot;I&amp;quot;, [&amp;quot;Й&amp;quot;] = &amp;quot;J&amp;quot;, [&amp;quot;К&amp;quot;] = &amp;quot;K&amp;quot;, [&amp;quot;Л&amp;quot;] = &amp;quot;L&amp;quot;, [&amp;quot;М&amp;quot;] = &amp;quot;M&amp;quot;, [&amp;quot;Н&amp;quot;] = &amp;quot;N&amp;quot;, [&amp;quot;О&amp;quot;] = &amp;quot;O&amp;quot;, [&amp;quot;Ө&amp;quot;] = &amp;quot;Ö&amp;quot;, [&amp;quot;П&amp;quot;] = &amp;quot;P&amp;quot;, [&amp;quot;Р&amp;quot;] = &amp;quot;R&amp;quot;, [&amp;quot;С&amp;quot;] = &amp;quot;S&amp;quot;, [&amp;quot;Т&amp;quot;] = &amp;quot;T&amp;quot;, [&amp;quot;У&amp;quot;] = &amp;quot;U&amp;quot;, [&amp;quot;Ү&amp;quot;] = &amp;quot;Ü&amp;quot;, [&amp;quot;Ф&amp;quot;] = &amp;quot;F&amp;quot;, [&amp;quot;Х&amp;quot;] = &amp;quot;X&amp;quot;, [&amp;quot;Ц&amp;quot;] = &amp;quot;C&amp;quot;, [&amp;quot;Ч&amp;quot;] = &amp;quot;Č&amp;quot;, [&amp;quot;Ш&amp;quot;] = &amp;quot;Š&amp;quot;, [&amp;quot;Щ&amp;quot;] = &amp;quot;Šč&amp;quot;, [&amp;quot;Ъ&amp;quot;] = &amp;quot;ʺ&amp;quot;, [&amp;quot;Ы&amp;quot;] = &amp;quot;Y&amp;quot;, [&amp;quot;Ь&amp;quot;] = &amp;quot;ʹ&amp;quot;, [&amp;quot;Э&amp;quot;] = &amp;quot;E&amp;quot;, [&amp;quot;Ю&amp;quot;] = &amp;quot;Ju&amp;quot;, [&amp;quot;Я&amp;quot;] = &amp;quot;Ja&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local twoChars = {&lt;br /&gt;
	[&amp;quot;ий&amp;quot;] = &amp;quot;ii&amp;quot;,&lt;br /&gt;
	[&amp;quot;Ий&amp;quot;] = &amp;quot;Ii&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function export.tr(text, lang, sc)&lt;br /&gt;
	if sc ~= &amp;quot;Cyrl&amp;quot; then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local UTF8_char = &amp;quot;[%z\1-\127\194-\244][\128-\191]*&amp;quot;&lt;br /&gt;
	-- Decompose (except for &amp;quot;ё&amp;quot; and &amp;quot;й&amp;quot;) so that accents can be consistently detected.&lt;br /&gt;
	text = mw.ustring.toNFD(text)&lt;br /&gt;
	text = gsub(text, &amp;quot;[еЕ]̈&amp;quot;, mw.ustring.toNFC)&lt;br /&gt;
	text = gsub(text, &amp;quot;[иИ]̆&amp;quot;, mw.ustring.toNFC)&lt;br /&gt;
	-- Pre-convert &amp;quot;є&amp;quot; and &amp;quot;ѳ&amp;quot; to &amp;quot;ө&amp;quot;.&lt;br /&gt;
	text = string.gsub(text, UTF8_char, preConv)&lt;br /&gt;
	-- Hard sign does nothing if word-final (extremely rare, but attested in borrowings of affected Russian proper nouns like &amp;quot;Коммерсантъ&amp;quot;).&lt;br /&gt;
	text = gsub(text, &amp;quot;[Ъъ]([^а-яёөү])&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
	text = gsub(text, &amp;quot;[Ъъ]$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	-- &amp;quot;Е&amp;quot; is not iotated after a consonant and &amp;quot;ю&amp;quot; is not iotated after &amp;quot;ж&amp;quot;, &amp;quot;ш&amp;quot;, &amp;quot;ч&amp;quot; or &amp;quot;щ&amp;quot;, so they must be converted to their non-iotated romanizations in advance. However, a soft sign before &amp;quot;е&amp;quot; or &amp;quot;ю&amp;quot; (as a front vowel) creates a morphemic break, which means iotation does occur (i.e. it acts like a hard sign). These exceptions are converted into the iotated romanizations first; then, all instances of &amp;quot;е&amp;quot; and &amp;quot;ю&amp;quot; (which meet the prerequisites) are converted into non-iotated romanizations. This treats all instances of &amp;quot;ю&amp;quot; as front vowels, so deal with any back vowel instances of &amp;quot;ю&amp;quot; once iterating over the vowel harmonic segments later on, before doing the main substitutions.&lt;br /&gt;
	text = gsub(text, &amp;quot;([Ьь])е&amp;quot;, &amp;quot;%1je&amp;quot;)&lt;br /&gt;
	text = gsub(text, &amp;quot;([жчшщЖЧШЩ]ь)ю&amp;quot;, &amp;quot;%1ju&amp;quot;)&lt;br /&gt;
	text = gsub(text, &amp;quot;([^̀́̂аеёиоөуүъыэюяАЕЁИОӨУҮЪЫЬЭЮЯ%s][̀́̂]?)е&amp;quot;, &amp;quot;%1e&amp;quot;)&lt;br /&gt;
	text = gsub(text, &amp;quot;([жчшщЖЧШЩ]ь?)ю&amp;quot;,&amp;quot;%1u&amp;quot;)&lt;br /&gt;
	-- Divide into segments by vowel harmony and iterate over them.&lt;br /&gt;
	text = mn.vowelharmony(text)&lt;br /&gt;
	text.translit = {}&lt;br /&gt;
	for i, v in ipairs(text) do&lt;br /&gt;
		-- &amp;quot;Ю&amp;quot; is &amp;quot;jü/ü&amp;quot; if front harmonic.&lt;br /&gt;
		if text[i].position == &amp;quot;front&amp;quot; then&lt;br /&gt;
			-- Latin &amp;quot;u&amp;quot; (from previous substitution).&lt;br /&gt;
			text[i].substring = gsub(text[i].substring, &amp;quot;u&amp;quot;, &amp;quot;ü&amp;quot;)&lt;br /&gt;
			-- Cyrillic &amp;quot;ю&amp;quot;.&lt;br /&gt;
			text[i].substring = gsub(text[i].substring, &amp;quot;ю&amp;quot;, &amp;quot;jü&amp;quot;)&lt;br /&gt;
			text[i].substring = gsub(text[i].substring, &amp;quot;Ю&amp;quot;, &amp;quot;Jü&amp;quot;)&lt;br /&gt;
			-- &amp;quot;Е&amp;quot; is &amp;quot;jö/ö&amp;quot; if front round harmonic.&lt;br /&gt;
			if text[i].quality == &amp;quot;rounded&amp;quot; then&lt;br /&gt;
				-- Latin &amp;quot;e&amp;quot; (from previous substitution).&lt;br /&gt;
				text[i].substring = gsub(text[i].substring, &amp;quot;e&amp;quot;, &amp;quot;ö&amp;quot;)&lt;br /&gt;
				-- Cyrillic &amp;quot;е&amp;quot;.&lt;br /&gt;
				text[i].substring = gsub(text[i].substring, &amp;quot;е&amp;quot;, &amp;quot;jö&amp;quot;)&lt;br /&gt;
				text[i].substring = gsub(text[i].substring, &amp;quot;Е&amp;quot;, &amp;quot;Jö&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		-- If back harmonic, any instances of &amp;quot;ю&amp;quot; that were treated as front vowels need to be treated as back vowels (i.e. the soft sign doesn&amp;#039;t create a morphemic break, so iotation does not occur).&lt;br /&gt;
		else&lt;br /&gt;
			text[i].substring = gsub(text[i].substring, &amp;quot;([Ьь])ju&amp;quot;, &amp;quot;%1u&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		-- Do primary substitutions. If still present, Cyrillic &amp;quot;е&amp;quot; becomes &amp;quot;je&amp;quot; and &amp;quot;ю&amp;quot; becomes &amp;quot;ju&amp;quot;.&lt;br /&gt;
		for digraph, replacement in pairs(twoChars) do&lt;br /&gt;
			text[i].substring = string.gsub(text[i].substring, digraph, replacement)&lt;br /&gt;
		end&lt;br /&gt;
		text[i].substring = string.gsub(text[i].substring, UTF8_char, oneChar)&lt;br /&gt;
		table.insert(text.translit, text[i].substring)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return mw.ustring.toNFC(table.concat(text.translit, &amp;quot;&amp;quot;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
</feed>