<?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%3Achg-translit</id>
	<title>Module:chg-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%3Achg-translit"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:chg-translit&amp;action=history"/>
	<updated>2026-04-21T22:44:21Z</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:chg-translit&amp;diff=495739&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:chg-translit&amp;diff=495739&amp;oldid=prev"/>
		<updated>2026-04-21T12:44:44Z</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;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 12:44, 21 April 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&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;!-- diff cache key mediawiki-mw_:diff:1.41:old-495738:rev-495739 --&gt;
&lt;/table&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:chg-translit&amp;diff=495738&amp;oldid=prev</id>
		<title>wikt&gt;Bartanaqa: Undo revision 87289466 by Bartanaqa (talk) nvm</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:chg-translit&amp;diff=495738&amp;oldid=prev"/>
		<updated>2025-10-04T18:50:57Z</updated>

		<summary type="html">&lt;p&gt;Undo revision &lt;a href=&quot;/wiki/Special:Diff/87289466&quot; title=&quot;Special:Diff/87289466&quot;&gt;87289466&lt;/a&gt; by &lt;a href=&quot;/wiki/Special:Contributions/Bartanaqa&quot; title=&quot;Special:Contributions/Bartanaqa&quot;&gt;Bartanaqa&lt;/a&gt; (&lt;a href=&quot;/w/index.php?title=User_talk:Bartanaqa&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:Bartanaqa (page does not exist)&quot;&gt;talk&lt;/a&gt;) nvm&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Author: Saam-andar&lt;br /&gt;
&lt;br /&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 gcodepoint = m_str_utils.gcodepoint&lt;br /&gt;
local rfind = m_str_utils.find&lt;br /&gt;
local rsubn = m_str_utils.gsub&lt;br /&gt;
local rmatch = m_str_utils.match&lt;br /&gt;
local rsplit = m_str_utils.split&lt;br /&gt;
local U = m_str_utils.char&lt;br /&gt;
local unpack = unpack or table.unpack -- Lua 5.2 compatibility&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 zwnj = U(0x200C) -- zero-width non-joiner&lt;br /&gt;
local alif_madda = U(0x622)&lt;br /&gt;
local alif_hamza_below = U(0x625)&lt;br /&gt;
local alif = U(0x627)&lt;br /&gt;
local taa_marbuta = U(0x629)&lt;br /&gt;
local laam = U(0x644)&lt;br /&gt;
local waaw = U(0x648)&lt;br /&gt;
local yaa = U(0x64A)&lt;br /&gt;
local fatHataan = U(0x64B)&lt;br /&gt;
local Dammataan = U(0x64C)&lt;br /&gt;
local kasrataan = U(0x64D)&lt;br /&gt;
local shadda = U(0x651)&lt;br /&gt;
local sukuun = U(0x652)&lt;br /&gt;
local dagger_alif = U(0x670)&lt;br /&gt;
local alif_wasl = U(0x671)&lt;br /&gt;
local fatha = U(0x64E)&lt;br /&gt;
local kasra = U(0x650)&lt;br /&gt;
local zamma = U(0x64F)&lt;br /&gt;
local highhmz = U(0x654)&lt;br /&gt;
local sukun = &amp;quot;ْ&amp;quot;&lt;br /&gt;
--local zwj = U(0x200D) -- zero-width joiner&lt;br /&gt;
local lrm = U(0x200E) -- left-to-right mark&lt;br /&gt;
local rlm = U(0x200F) -- right-to-left mark&lt;br /&gt;
&lt;br /&gt;
local consonants = &amp;quot;بپتثجچحخدذرزژسشصضطظعغفقکگلمنوؤهیئء&amp;quot;&lt;br /&gt;
local diacritics = fatha .. kasra .. zamma .. highhmz .. sukun .. shadda .. dagger_alif .. fatHataan .. Dammataan .. kasrataan&lt;br /&gt;
&lt;br /&gt;
-- mapping&lt;br /&gt;
local tt = {&lt;br /&gt;
	[&amp;quot;آ&amp;quot;] = &amp;quot;ʾā&amp;quot;,&lt;br /&gt;
	[&amp;quot;ا&amp;quot;] = &amp;quot;ʾ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ب&amp;quot;] = &amp;quot;b&amp;quot;,&lt;br /&gt;
	[&amp;quot;پ&amp;quot;] = &amp;quot;p&amp;quot;,&lt;br /&gt;
	[&amp;quot;ت&amp;quot;] = &amp;quot;t&amp;quot;,&lt;br /&gt;
	[&amp;quot;ث&amp;quot;] = &amp;quot;s̱&amp;quot;,&lt;br /&gt;
	[&amp;quot;ج&amp;quot;] = &amp;quot;j&amp;quot;,&lt;br /&gt;
	[&amp;quot;چ&amp;quot;] = &amp;quot;č&amp;quot;,&lt;br /&gt;
	[&amp;quot;ح&amp;quot;] = &amp;quot;ḥ&amp;quot;,&lt;br /&gt;
	[&amp;quot;خ&amp;quot;] = &amp;quot;x&amp;quot;,&lt;br /&gt;
	[&amp;quot;د&amp;quot;] = &amp;quot;d&amp;quot;,&lt;br /&gt;
	[&amp;quot;ذ&amp;quot;] = &amp;quot;ẕ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ر&amp;quot;] = &amp;quot;r&amp;quot;,&lt;br /&gt;
	[&amp;quot;ز&amp;quot;] = &amp;quot;z&amp;quot;,&lt;br /&gt;
	[&amp;quot;ژ&amp;quot;] = &amp;quot;ž&amp;quot;,&lt;br /&gt;
	[&amp;quot;س&amp;quot;] = &amp;quot;s&amp;quot;,&lt;br /&gt;
	[&amp;quot;ش&amp;quot;] = &amp;quot;š&amp;quot;,&lt;br /&gt;
	[&amp;quot;ص&amp;quot;] = &amp;quot;ṣ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ض&amp;quot;] = &amp;quot;ż&amp;quot;,&lt;br /&gt;
	[&amp;quot;ط&amp;quot;] = &amp;quot;ṭ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ظ&amp;quot;] = &amp;quot;ẓ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ع&amp;quot;] = &amp;quot;ʿ&amp;quot;,&lt;br /&gt;
	[&amp;quot;غ&amp;quot;] = &amp;quot;ġ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ف&amp;quot;] = &amp;quot;f&amp;quot;,&lt;br /&gt;
	[&amp;quot;ق&amp;quot;] = &amp;quot;q&amp;quot;,&lt;br /&gt;
	[&amp;quot;ک&amp;quot;] = &amp;quot;k&amp;quot;,&lt;br /&gt;
	[&amp;quot;گ&amp;quot;] = &amp;quot;g&amp;quot;,&lt;br /&gt;
	[&amp;quot;ل&amp;quot;] = &amp;quot;l&amp;quot;,&lt;br /&gt;
	[&amp;quot;م&amp;quot;] = &amp;quot;m&amp;quot;,&lt;br /&gt;
	[&amp;quot;ن&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
	[&amp;quot;و&amp;quot;] = &amp;quot;w&amp;quot;,&lt;br /&gt;
	[&amp;quot;ه&amp;quot;] = &amp;quot;h&amp;quot;,&lt;br /&gt;
	[&amp;quot;ی&amp;quot;] = &amp;quot;y&amp;quot;,&lt;br /&gt;
	[taa_marbuta] = &amp;quot;t&amp;quot;,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;ݣ&amp;quot;] = &amp;quot;ñ&amp;quot;,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;ء&amp;quot;] = &amp;quot;ʾ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ئ&amp;quot;] = &amp;quot;ʾ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ؤ&amp;quot;] = &amp;quot;ʾ&amp;quot;,&lt;br /&gt;
	[&amp;quot;أ&amp;quot;] = &amp;quot;ʾ&amp;quot;,&lt;br /&gt;
	[&amp;quot;إ&amp;quot;] = &amp;quot;ʾ&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
	[zwnj] = &amp;quot;-&amp;quot;, -- ZWNJ (zero-width non-joiner)&lt;br /&gt;
&lt;br /&gt;
	-- ligatures&lt;br /&gt;
	[&amp;quot;ﻻ&amp;quot;] = &amp;quot;lʾ&amp;quot;,&lt;br /&gt;
	[&amp;quot;اللّٰه&amp;quot;] = &amp;quot;ʾllh&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
	-- kashida&lt;br /&gt;
	[&amp;quot;ـ&amp;quot;] = &amp;quot;-&amp;quot;, -- kashida, no sound&lt;br /&gt;
&lt;br /&gt;
	-- alif_wasla&lt;br /&gt;
	[alif_wasl] = &amp;quot;ʾ̃&amp;quot;, &lt;br /&gt;
&lt;br /&gt;
	-- numerals&lt;br /&gt;
	[&amp;quot;۱&amp;quot;] = &amp;quot;1&amp;quot;,&lt;br /&gt;
	[&amp;quot;۲&amp;quot;] = &amp;quot;2&amp;quot;,&lt;br /&gt;
	[&amp;quot;۳&amp;quot;] = &amp;quot;3&amp;quot;,&lt;br /&gt;
	[&amp;quot;۴&amp;quot;] = &amp;quot;4&amp;quot;,&lt;br /&gt;
	[&amp;quot;۵&amp;quot;] = &amp;quot;5&amp;quot;,&lt;br /&gt;
	[&amp;quot;۶&amp;quot;] = &amp;quot;6&amp;quot;,&lt;br /&gt;
	[&amp;quot;۷&amp;quot;] = &amp;quot;7&amp;quot;,&lt;br /&gt;
	[&amp;quot;۸&amp;quot;] = &amp;quot;8&amp;quot;,&lt;br /&gt;
	[&amp;quot;۹&amp;quot;] = &amp;quot;9&amp;quot;,&lt;br /&gt;
	[&amp;quot;۰&amp;quot;] = &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
	-- punctuation (leave on separate lines)&lt;br /&gt;
	[&amp;quot;؟&amp;quot;] = &amp;quot;?&amp;quot;, -- question mark&lt;br /&gt;
	[&amp;quot;،&amp;quot;] = &amp;quot;,&amp;quot;, -- comma&lt;br /&gt;
	[&amp;quot;؛&amp;quot;] = &amp;quot;;&amp;quot;, -- semicolon&lt;br /&gt;
	[&amp;quot;«&amp;quot;] = &amp;quot;“&amp;quot;, -- quotation mark&lt;br /&gt;
	[&amp;quot;»&amp;quot;] = &amp;quot;”&amp;quot;, -- quotation mark&lt;br /&gt;
	[&amp;quot;٪&amp;quot;] = &amp;quot;%&amp;quot;, -- percent&lt;br /&gt;
	[&amp;quot;؉&amp;quot;] = &amp;quot;‰&amp;quot;, -- per mille&lt;br /&gt;
	[&amp;quot;٫&amp;quot;] = &amp;quot;.&amp;quot;, -- decimals&lt;br /&gt;
	[&amp;quot;٬&amp;quot;] = &amp;quot;,&amp;quot;, -- thousan&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Main function&lt;br /&gt;
function export.tr(text, lang, sc, options)&lt;br /&gt;
	if not text or text == &amp;quot;&amp;quot; then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if type(text) == &amp;quot;table&amp;quot; then&lt;br /&gt;
		local function f(x) return (x ~= &amp;quot;&amp;quot;) and x or nil end&lt;br /&gt;
		text, lang, sc = f(text.args[1]), f(text.args[2]), f(text.args[3])&lt;br /&gt;
		options = text.args[4] and {} or nil&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Only process if script is Arabic&lt;br /&gt;
	if sc and sc ~= &amp;quot;Arab&amp;quot; then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Strip diacritics&lt;br /&gt;
	text = rsubn(text, &amp;quot;[&amp;quot; .. diacritics .. &amp;quot;]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	text = rsubn(text, &amp;quot;([&amp;quot; .. consonants .. &amp;quot;]+)ا&amp;quot;, &amp;quot;%1ā&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
	text = rsubn(text, &amp;quot;.&amp;quot;, function(char)&lt;br /&gt;
		return tt[char] or char&lt;br /&gt;
	end)&lt;br /&gt;
	&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>wikt&gt;Bartanaqa</name></author>
	</entry>
</feed>