<?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%3Att-translit</id>
	<title>Module:tt-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%3Att-translit"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tt-translit&amp;action=history"/>
	<updated>2026-04-27T12:45:31Z</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:tt-translit&amp;diff=495535&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:tt-translit&amp;diff=495535&amp;oldid=prev"/>
		<updated>2026-04-21T12:44:11Z</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:tt-translit&amp;diff=495534&amp;oldid=prev</id>
		<title>wikt&gt;Fish bowl: remove tatweel</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tt-translit&amp;diff=495534&amp;oldid=prev"/>
		<updated>2026-02-27T15:58:15Z</updated>

		<summary type="html">&lt;p&gt;remove tatweel&lt;/p&gt;
&lt;a href=&quot;https://linguifex.com/w/index.php?title=Module:tt-translit&amp;amp;diff=495534&amp;amp;oldid=345683&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>wikt&gt;Fish bowl</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:tt-translit&amp;diff=345683&amp;oldid=prev</id>
		<title>Sware: Created page with &quot;local export = {}  local rsubn = mw.ustring.gsub  -- version of rsubn() that discards all but the first return value local function rsub(term, foo, bar) 	local retval = rsubn(term, foo, bar) 	return retval end  -- apply rsub() repeatedly until no change local function rsub_repeatedly(term, foo, bar) 	while true do 		local new_term = rsub(term, foo, bar) 		if new_term == term then 			return term 		end 		term = new_term 	end end  local tt = { 	[&quot;ү&quot;]=&quot;ü&quot;,[&#039;Ү&#039;]=&#039;Ü&#039;,   [&quot;...&quot;</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:tt-translit&amp;diff=345683&amp;oldid=prev"/>
		<updated>2024-01-26T22:02:41Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local export = {}  local rsubn = mw.ustring.gsub  -- version of rsubn() that discards all but the first return value local function rsub(term, foo, bar) 	local retval = rsubn(term, foo, bar) 	return retval end  -- apply rsub() repeatedly until no change local function rsub_repeatedly(term, foo, bar) 	while true do 		local new_term = rsub(term, foo, bar) 		if new_term == term then 			return term 		end 		term = new_term 	end end  local tt = { 	[&amp;quot;ү&amp;quot;]=&amp;quot;ü&amp;quot;,[&amp;#039;Ү&amp;#039;]=&amp;#039;Ü&amp;#039;,   [&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;
&lt;br /&gt;
local rsubn = mw.ustring.gsub&lt;br /&gt;
&lt;br /&gt;
-- version of rsubn() that discards all but the first return value&lt;br /&gt;
local function rsub(term, foo, bar)&lt;br /&gt;
	local retval = rsubn(term, foo, bar)&lt;br /&gt;
	return retval&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- apply rsub() repeatedly until no change&lt;br /&gt;
local function rsub_repeatedly(term, foo, bar)&lt;br /&gt;
	while true do&lt;br /&gt;
		local new_term = rsub(term, foo, bar)&lt;br /&gt;
		if new_term == term then&lt;br /&gt;
			return term&lt;br /&gt;
		end&lt;br /&gt;
		term = new_term&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local tt = {&lt;br /&gt;
	[&amp;quot;ү&amp;quot;]=&amp;quot;ü&amp;quot;,[&amp;#039;Ү&amp;#039;]=&amp;#039;Ü&amp;#039;,   [&amp;quot;т&amp;quot;]=&amp;quot;t&amp;quot;,[&amp;#039;Т&amp;#039;]=&amp;#039;T&amp;#039;, [&amp;quot;р&amp;quot;]=&amp;quot;r&amp;quot;,[&amp;#039;Р&amp;#039;]=&amp;#039;R&amp;#039;,   [&amp;quot;ф&amp;quot;]=&amp;quot;f&amp;quot;,[&amp;#039;Ф&amp;#039;]=&amp;#039;F&amp;#039;,&lt;br /&gt;
	[&amp;quot;ю&amp;quot;]=&amp;quot;yu&amp;quot;,[&amp;#039;Ю&amp;#039;]=&amp;#039;Yu&amp;#039;, [&amp;quot;ш&amp;quot;]=&amp;quot;ş&amp;quot;,[&amp;#039;Ш&amp;#039;]=&amp;#039;Ş&amp;#039;, [&amp;quot;ь&amp;quot;]=&amp;quot;’&amp;quot;,[&amp;#039;Ь&amp;#039;]=&amp;#039;’&amp;#039;,   [&amp;quot;ъ&amp;quot;]=&amp;quot;ʺ&amp;quot;,[&amp;#039;Ъ&amp;#039;]=&amp;#039;ʺ&amp;#039;, [&amp;quot;н&amp;quot;]=&amp;quot;n&amp;quot;,[&amp;#039;Н&amp;#039;]=&amp;#039;N&amp;#039;, &lt;br /&gt;
	[&amp;quot;п&amp;quot;]=&amp;quot;p&amp;quot;,[&amp;#039;П&amp;#039;]=&amp;#039;P&amp;#039;,   [&amp;quot;й&amp;quot;]=&amp;quot;y&amp;quot;,[&amp;#039;Й&amp;#039;]=&amp;#039;Y&amp;#039;, [&amp;quot;л&amp;quot;]=&amp;quot;l&amp;quot;,[&amp;#039;Л&amp;#039;]=&amp;#039;L&amp;#039;,   [&amp;quot;з&amp;quot;]=&amp;quot;z&amp;quot;,[&amp;#039;З&amp;#039;]=&amp;#039;Z&amp;#039;, [&amp;quot;е&amp;quot;]=&amp;quot;e&amp;quot;,[&amp;#039;Е&amp;#039;]=&amp;#039;E&amp;#039;, &lt;br /&gt;
	[&amp;quot;г&amp;quot;]=&amp;quot;g&amp;quot;,[&amp;#039;Г&amp;#039;]=&amp;#039;G&amp;#039;,   [&amp;quot;б&amp;quot;]=&amp;quot;b&amp;quot;,[&amp;#039;Б&amp;#039;]=&amp;#039;B&amp;#039;, [&amp;quot;у&amp;quot;]=&amp;quot;u&amp;quot;,[&amp;#039;У&amp;#039;]=&amp;#039;U&amp;#039;,   [&amp;quot;с&amp;quot;]=&amp;quot;s&amp;quot;,[&amp;#039;С&amp;#039;]=&amp;#039;S&amp;#039;, [&amp;quot;х&amp;quot;]=&amp;quot;x&amp;quot;,[&amp;#039;Х&amp;#039;]=&amp;#039;X&amp;#039;,&lt;br /&gt;
	[&amp;quot;ч&amp;quot;]=&amp;quot;ç&amp;quot;,[&amp;#039;Ч&amp;#039;]=&amp;#039;Ç&amp;#039;, [&amp;quot;щ&amp;quot;]=&amp;quot;şç&amp;quot;,[&amp;#039;Щ&amp;#039;]=&amp;#039;Şç&amp;#039;, [&amp;quot;я&amp;quot;]=&amp;quot;ya&amp;quot;,[&amp;#039;Я&amp;#039;]=&amp;#039;Ya&amp;#039;, [&amp;quot;ы&amp;quot;]=&amp;quot;ı&amp;quot;,[&amp;#039;Ы&amp;#039;]=&amp;#039;I&amp;#039;, [&amp;quot;э&amp;quot;]=&amp;quot;e&amp;quot;,[&amp;#039;Э&amp;#039;]=&amp;#039;E&amp;#039;, &lt;br /&gt;
	[&amp;quot;м&amp;quot;]=&amp;quot;m&amp;quot;,[&amp;#039;М&amp;#039;]=&amp;#039;M&amp;#039;,   [&amp;quot;о&amp;quot;]=&amp;quot;o&amp;quot;,[&amp;#039;О&amp;#039;]=&amp;#039;O&amp;#039;, [&amp;quot;ө&amp;quot;]=&amp;quot;ö&amp;quot;,[&amp;#039;Ө&amp;#039;]=&amp;#039;Ö&amp;#039;,   [&amp;quot;и&amp;quot;]=&amp;quot;i&amp;quot;,[&amp;#039;И&amp;#039;]=&amp;#039;İ&amp;#039;, [&amp;quot;ё&amp;quot;]=&amp;quot;yo&amp;quot;,[&amp;#039;Ё&amp;#039;]=&amp;#039;Yo&amp;#039;,&lt;br /&gt;
	[&amp;quot;ж&amp;quot;]=&amp;quot;j&amp;quot;,[&amp;#039;Ж&amp;#039;]=&amp;#039;J&amp;#039;,   [&amp;quot;к&amp;quot;]=&amp;quot;k&amp;quot;,[&amp;#039;К&amp;#039;]=&amp;#039;K&amp;#039;, [&amp;quot;д&amp;quot;]=&amp;quot;d&amp;quot;,[&amp;#039;Д&amp;#039;]=&amp;#039;D&amp;#039;,   [&amp;quot;в&amp;quot;]=&amp;quot;w&amp;quot;,[&amp;#039;В&amp;#039;]=&amp;#039;W&amp;#039;, [&amp;quot;ц&amp;quot;]=&amp;quot;ts&amp;quot;,[&amp;#039;Ц&amp;#039;]=&amp;#039;Ts&amp;#039;,&lt;br /&gt;
	[&amp;quot;а&amp;quot;]=&amp;quot;a&amp;quot;,[&amp;#039;А&amp;#039;]=&amp;#039;A&amp;#039;,   [&amp;quot;ң&amp;quot;]=&amp;quot;ñ&amp;quot;,[&amp;#039;Ң&amp;#039;]=&amp;#039;Ñ&amp;#039;, [&amp;quot;җ&amp;quot;]=&amp;quot;c&amp;quot;,[&amp;#039;Җ&amp;#039;]=&amp;#039;C&amp;#039;,   [&amp;quot;һ&amp;quot;]=&amp;quot;h&amp;quot;,[&amp;#039;Һ&amp;#039;]=&amp;#039;H&amp;#039;, [&amp;quot;ә&amp;quot;]=&amp;quot;ä&amp;quot;,[&amp;#039;Ә&amp;#039;]=&amp;#039;Ä&amp;#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
function export.tr(text, lang, sc)&lt;br /&gt;
	text = rsub(&lt;br /&gt;
		text,&lt;br /&gt;
		&amp;quot;([АОӘУЫЕЯЁЮИЕаоәуыэяёюиеъь%A][́̀]?)([Ее])&amp;quot;,&lt;br /&gt;
		function(a,e) return a..(e==&amp;#039;е&amp;#039; and &amp;#039;ye&amp;#039; or &amp;#039;Ye&amp;#039;) end&lt;br /&gt;
	)&lt;br /&gt;
	&lt;br /&gt;
	-- ү/у should be transliterated as w after vowels (except у/ү itself)&lt;br /&gt;
	text = rsub_repeatedly(text, &amp;quot;([АаЕеЭэЯяӘәИиӨөЫы])[үу]&amp;quot;, &amp;quot;%1w&amp;quot;)&lt;br /&gt;
	text = rsub_repeatedly(text, &amp;quot;([УҮүу])([АаЫыОоУуӘәЕеИиӨөҮү])&amp;quot;, &amp;quot;%1w%2&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	text = rsub(text, &amp;quot;^Е&amp;quot;, &amp;quot;Ye&amp;quot;)&lt;br /&gt;
	text = rsub(text, &amp;quot;^е&amp;quot;,&amp;quot;ye&amp;quot;)&lt;br /&gt;
	text = rsub(text, &amp;quot;ия$&amp;quot;, &amp;quot;iyä&amp;quot;) --not last word end handled in code end&lt;br /&gt;
	&lt;br /&gt;
	-- Deal with dual nature of к, г, transliterated either to &amp;quot;front&amp;quot; variants&lt;br /&gt;
	-- k/g or &amp;quot;back&amp;quot; variants q/ğ. The back variants occur before hard signs&lt;br /&gt;
	-- (Ъ/ъ), which then disappear, and also in the vicinity of the back vowels&lt;br /&gt;
	-- а/о/у/ы (and their capital equivalents А/О/У/Ы). The code below that&lt;br /&gt;
	-- handles this appears to say that the sound of word-initial к/г is&lt;br /&gt;
	-- determined by the following vowel, and the sound of non-word-initial&lt;br /&gt;
	-- к/г is determined by the preceding vowel. FIXME: Not sure if this is&lt;br /&gt;
	-- correct.&lt;br /&gt;
	&lt;br /&gt;
	-- glottal stop&lt;br /&gt;
	text = rsub(text, &amp;quot;([АаЫыОоУуӘәЭэИиӨөҮүЕе])([ЪъЬьЭэ])&amp;quot;, &amp;quot;%1&amp;#039;&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local t = {[&amp;#039;К&amp;#039;]=&amp;#039;Q&amp;#039;,[&amp;#039;к&amp;#039;]=&amp;#039;q&amp;#039;,[&amp;#039;Г&amp;#039;]=&amp;#039;Ğ&amp;#039;,[&amp;#039;г&amp;#039;]=&amp;#039;ğ&amp;#039;}&lt;br /&gt;
	text = rsub(text, &amp;quot;([КкГг])([Ъъ])&amp;quot;, function(a,b) return t[a] end)&lt;br /&gt;
	text = rsub(text,&lt;br /&gt;
		&amp;quot;(%a?)([КкГг])(.?)&amp;quot;,&lt;br /&gt;
		function(b,c,a)&lt;br /&gt;
			return b .. (mw.ustring.match(b&amp;gt;&amp;#039;&amp;#039; and b or a,&amp;quot;[АОУЫаоуы]&amp;quot;) and t[c] or tt[c]) .. a&lt;br /&gt;
		end&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
	text = rsub(text, &amp;quot;ия%A&amp;quot;, &amp;quot;iyä&amp;quot;)&lt;br /&gt;
	text = rsub(text, &amp;quot;.&amp;quot;, tt)&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
</feed>