<?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%3Auk-translit</id>
	<title>Module:uk-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%3Auk-translit"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:uk-translit&amp;action=history"/>
	<updated>2026-04-04T13:06:27Z</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:uk-translit&amp;diff=466219&amp;oldid=prev</id>
		<title>Sware: Created page with &quot;local export = {}  local m_str_utils = require(&quot;Module:string utilities&quot;)   local rsubn = m_str_utils.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  local regular_tt = { 	[&quot;А&quot;]=&#039;A&#039;, [&quot;а&quot;]=&#039;a&#039;, [&quot;Б&quot;]=&#039;B&#039;, [&quot;б&quot;]=&#039;b&#039;, [&quot;В&quot;]=&#039;V&#039;, [&quot;в&quot;]=&#039;v&#039;, [&quot;Г&quot;]=&#039;H&#039;, [&quot;г&quot;]=&#039;h&#039;,  	[&quot;Ґ&quot;]=&#039;G&#039;, [&quot;ґ&quot;]=&#039;g&#039;, [&quot;Д&quot;]=&#039;D&#039;, [&quot;д&quot;]=&#039;d&#039;, [&quot;Е&quot;]=&#039;E&#039;, [&quot;е&quot;]=&#039;e&#039;, [&quot;Є&quot;]=&#039;Je&#039;, [...&quot;</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:uk-translit&amp;diff=466219&amp;oldid=prev"/>
		<updated>2025-08-11T16:15:37Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local export = {}  local m_str_utils = require(&amp;quot;Module:string utilities&amp;quot;)   local rsubn = m_str_utils.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  local regular_tt = { 	[&amp;quot;А&amp;quot;]=&amp;#039;A&amp;#039;, [&amp;quot;а&amp;quot;]=&amp;#039;a&amp;#039;, [&amp;quot;Б&amp;quot;]=&amp;#039;B&amp;#039;, [&amp;quot;б&amp;quot;]=&amp;#039;b&amp;#039;, [&amp;quot;В&amp;quot;]=&amp;#039;V&amp;#039;, [&amp;quot;в&amp;quot;]=&amp;#039;v&amp;#039;, [&amp;quot;Г&amp;quot;]=&amp;#039;H&amp;#039;, [&amp;quot;г&amp;quot;]=&amp;#039;h&amp;#039;,  	[&amp;quot;Ґ&amp;quot;]=&amp;#039;G&amp;#039;, [&amp;quot;ґ&amp;quot;]=&amp;#039;g&amp;#039;, [&amp;quot;Д&amp;quot;]=&amp;#039;D&amp;#039;, [&amp;quot;д&amp;quot;]=&amp;#039;d&amp;#039;, [&amp;quot;Е&amp;quot;]=&amp;#039;E&amp;#039;, [&amp;quot;е&amp;quot;]=&amp;#039;e&amp;#039;, [&amp;quot;Є&amp;quot;]=&amp;#039;Je&amp;#039;, [...&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 m_str_utils = require(&amp;quot;Module:string utilities&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
local rsubn = m_str_utils.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;
local regular_tt = {&lt;br /&gt;
	[&amp;quot;А&amp;quot;]=&amp;#039;A&amp;#039;, [&amp;quot;а&amp;quot;]=&amp;#039;a&amp;#039;, [&amp;quot;Б&amp;quot;]=&amp;#039;B&amp;#039;, [&amp;quot;б&amp;quot;]=&amp;#039;b&amp;#039;, [&amp;quot;В&amp;quot;]=&amp;#039;V&amp;#039;, [&amp;quot;в&amp;quot;]=&amp;#039;v&amp;#039;, [&amp;quot;Г&amp;quot;]=&amp;#039;H&amp;#039;, [&amp;quot;г&amp;quot;]=&amp;#039;h&amp;#039;, &lt;br /&gt;
	[&amp;quot;Ґ&amp;quot;]=&amp;#039;G&amp;#039;, [&amp;quot;ґ&amp;quot;]=&amp;#039;g&amp;#039;, [&amp;quot;Д&amp;quot;]=&amp;#039;D&amp;#039;, [&amp;quot;д&amp;quot;]=&amp;#039;d&amp;#039;, [&amp;quot;Е&amp;quot;]=&amp;#039;E&amp;#039;, [&amp;quot;е&amp;quot;]=&amp;#039;e&amp;#039;, [&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;Ž&amp;#039;, [&amp;quot;ж&amp;quot;]=&amp;#039;ž&amp;#039;, [&amp;quot;З&amp;quot;]=&amp;#039;Z&amp;#039;, [&amp;quot;з&amp;quot;]=&amp;#039;z&amp;#039;, [&amp;quot;И&amp;quot;]=&amp;#039;Y&amp;#039;, [&amp;quot;и&amp;quot;]=&amp;#039;y&amp;#039;, [&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;Ji&amp;#039;, [&amp;quot;ї&amp;quot;]=&amp;#039;ji&amp;#039;, [&amp;quot;Й&amp;quot;]=&amp;#039;J&amp;#039;, [&amp;quot;й&amp;quot;]=&amp;#039;j&amp;#039;, [&amp;quot;К&amp;quot;]=&amp;#039;K&amp;#039;, [&amp;quot;к&amp;quot;]=&amp;#039;k&amp;#039;, [&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;, [&amp;quot;Н&amp;quot;]=&amp;#039;N&amp;#039;, [&amp;quot;н&amp;quot;]=&amp;#039;n&amp;#039;, [&amp;quot;О&amp;quot;]=&amp;#039;O&amp;#039;, [&amp;quot;о&amp;quot;]=&amp;#039;o&amp;#039;, [&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;, [&amp;quot;С&amp;quot;]=&amp;#039;S&amp;#039;, [&amp;quot;с&amp;quot;]=&amp;#039;s&amp;#039;, [&amp;quot;Т&amp;quot;]=&amp;#039;T&amp;#039;, [&amp;quot;т&amp;quot;]=&amp;#039;t&amp;#039;, [&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;, [&amp;quot;Х&amp;quot;]=&amp;#039;X&amp;#039;, [&amp;quot;х&amp;quot;]=&amp;#039;x&amp;#039;, [&amp;quot;Ц&amp;quot;]=&amp;#039;C&amp;#039;, [&amp;quot;ц&amp;quot;]=&amp;#039;c&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;, [&amp;quot;Щ&amp;quot;]=&amp;#039;Šč&amp;#039;, [&amp;quot;щ&amp;quot;]=&amp;#039;šč&amp;#039;, [&amp;quot;Ь&amp;quot;]=&amp;#039;ʹ&amp;#039;, [&amp;quot;ь&amp;quot;]=&amp;#039;ʹ&amp;#039;, [&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;Ja&amp;#039;, [&amp;quot;я&amp;quot;]=&amp;#039;ja&amp;#039;, &lt;br /&gt;
	-- right single quotation mark, modifier letter apostrophe → modifier letter double prime&lt;br /&gt;
	[&amp;quot;’&amp;quot;]=&amp;#039;ʺ&amp;#039;, [&amp;quot;ʼ&amp;quot;]= &amp;#039;ʺ&amp;#039;, &lt;br /&gt;
	-- Ukrainian style quotes&lt;br /&gt;
	[&amp;#039;«&amp;#039;]=&amp;#039;“&amp;#039;, [&amp;#039;»&amp;#039;]=&amp;#039;”&amp;#039;,&lt;br /&gt;
	-- Special char used in [[ₚосія]]&lt;br /&gt;
	[&amp;#039;ₚ&amp;#039;]=&amp;#039;ᵣ&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- These need to be separated from the `regular_tt` so they don&amp;#039;t interfere with reverse translit.&lt;br /&gt;
local obsolete_tt = {&lt;br /&gt;
	-- obsolete letters, pre-refom&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;, [&amp;quot;ъ&amp;quot;]=&amp;#039;ʺ&amp;#039;, [&amp;quot;Ы&amp;quot;]=&amp;#039;Y&amp;#039;, [&amp;quot;ы&amp;quot;]=&amp;#039;y&amp;#039;, [&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;È&amp;#039;, [&amp;quot;э&amp;quot;]=&amp;#039;è&amp;#039;, [&amp;quot;Ј&amp;quot;]=&amp;#039;J&amp;#039;, [&amp;quot;ј&amp;quot;]=&amp;#039;j&amp;#039;,&lt;br /&gt;
	-- obsolete letters, Middle Ukrainian&lt;br /&gt;
	[&amp;quot;Ѥ&amp;quot;]=&amp;#039;Je&amp;#039;, [&amp;quot;ѥ&amp;quot;]=&amp;#039;je&amp;#039;, [&amp;quot;Ъ&amp;quot;]=&amp;#039;ʺ&amp;#039;, [&amp;quot;ъ&amp;quot;]=&amp;#039;ʺ&amp;#039;, [&amp;quot;Ы&amp;quot;]=&amp;#039;Y&amp;#039;, [&amp;quot;ы&amp;quot;]=&amp;#039;y&amp;#039;, [&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;Ja&amp;#039;, [&amp;quot;ѧ&amp;quot;]=&amp;#039;ja&amp;#039;, [&amp;quot;Ѩ&amp;quot;]=&amp;#039;Ja&amp;#039;, [&amp;quot;ѩ&amp;quot;]=&amp;#039;ja&amp;#039;, [&amp;quot;Ѫ&amp;quot;]=&amp;#039;U&amp;#039;, [&amp;quot;ѫ&amp;quot;]=&amp;#039;u&amp;#039;, [&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;Ks&amp;#039;, [&amp;quot;ѯ&amp;quot;]=&amp;#039;ks&amp;#039;, [&amp;quot;Ѱ&amp;quot;]=&amp;#039;Ps&amp;#039;, [&amp;quot;Ѱ&amp;quot;]=&amp;#039;ps&amp;#039;, [&amp;quot;Ѳ&amp;quot;]=&amp;#039;F&amp;#039;, [&amp;quot;ѳ&amp;quot;]=&amp;#039;f&amp;#039;, [&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;O&amp;#039;, [&amp;quot;ѡ&amp;quot;]=&amp;#039;o&amp;#039;, &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local AC = m_str_utils.char(0x0301) -- acute =  ́&lt;br /&gt;
local acute_decomposer = {&lt;br /&gt;
	[&amp;quot;á&amp;quot;] = &amp;quot;a&amp;quot; .. AC,&lt;br /&gt;
	[&amp;quot;é&amp;quot;] = &amp;quot;e&amp;quot; .. AC,&lt;br /&gt;
	[&amp;quot;í&amp;quot;] = &amp;quot;i&amp;quot; .. AC,&lt;br /&gt;
	[&amp;quot;ó&amp;quot;] = &amp;quot;o&amp;quot; .. AC,&lt;br /&gt;
	[&amp;quot;ú&amp;quot;] = &amp;quot;u&amp;quot; .. AC,&lt;br /&gt;
	[&amp;quot;ý&amp;quot;] = &amp;quot;y&amp;quot; .. AC,&lt;br /&gt;
	[&amp;quot;Á&amp;quot;] = &amp;quot;A&amp;quot; .. AC,&lt;br /&gt;
	[&amp;quot;É&amp;quot;] = &amp;quot;E&amp;quot; .. AC,&lt;br /&gt;
	[&amp;quot;Í&amp;quot;] = &amp;quot;I&amp;quot; .. AC,&lt;br /&gt;
	[&amp;quot;Ó&amp;quot;] = &amp;quot;O&amp;quot; .. AC,&lt;br /&gt;
	[&amp;quot;Ú&amp;quot;] = &amp;quot;U&amp;quot; .. AC,&lt;br /&gt;
	[&amp;quot;Ý&amp;quot;] = &amp;quot;Y&amp;quot; .. AC,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.tr(text, lang, sc)--translit any words or phrases&lt;br /&gt;
	-- Remove word-final hard sign, either utterance-finally or followed by&lt;br /&gt;
	-- a non-letter character such as space, comma, period, hyphen, etc.&lt;br /&gt;
	text = rsub(text, &amp;quot;[Ъъ]$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	text = rsub(text, &amp;quot;[Ъъ]([%A])&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	text = rsub(text, &amp;quot;&amp;#039;+&amp;quot;, { [&amp;quot;&amp;#039;&amp;quot;] = &amp;#039;ʺ&amp;#039; }) -- neutral apostrophe&lt;br /&gt;
	text = rsub(text, &amp;#039;.&amp;#039;, regular_tt)&lt;br /&gt;
	text = rsub(text, &amp;#039;.&amp;#039;, obsolete_tt)&lt;br /&gt;
&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function export.reverse_tr(text)--reverse-translit any words or phrases&lt;br /&gt;
	local reverse_tt = {}&lt;br /&gt;
	for k, v in pairs(regular_tt) do&lt;br /&gt;
		reverse_tt[v] = k&lt;br /&gt;
	end&lt;br /&gt;
	reverse_tt[&amp;#039;ʺ&amp;#039;] = &amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
	reverse_tt[&amp;#039;ʹ&amp;#039;] = &amp;quot;ь&amp;quot;&lt;br /&gt;
	reverse_tt[&amp;#039;y&amp;#039;] = &amp;quot;и&amp;quot;&lt;br /&gt;
	reverse_tt[&amp;#039;Y&amp;#039;] = &amp;quot;И&amp;quot;&lt;br /&gt;
	text = rsub(text, &amp;#039;.&amp;#039;, acute_decomposer)&lt;br /&gt;
	text = rsub(text, &amp;#039;[Jj][aeiu]&amp;#039;, reverse_tt)&lt;br /&gt;
	text = rsub(text, &amp;#039;[Šš]č&amp;#039;, reverse_tt)&lt;br /&gt;
	text = rsub(text, &amp;#039;.&amp;#039;, reverse_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>