<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3AChange</id>
	<title>وحدة:Change - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3AChange"/>
	<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Change&amp;action=history"/>
	<updated>2026-06-05T08:42:07Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Change&amp;diff=2729&amp;oldid=prev</id>
		<title>عبد العزيز: +وحدة مطلوبة</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Change&amp;diff=2729&amp;oldid=prev"/>
		<updated>2023-09-16T18:16:12Z</updated>

		<summary type="html">&lt;p&gt;+وحدة مطلوبة&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This implements {{change}}&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function ntsh(outvalue)&lt;br /&gt;
	local sortkey = &amp;#039;0000000000000000000&amp;#039;&lt;br /&gt;
	if outvalue == nil then&lt;br /&gt;
		return &amp;#039;&amp;lt;span style=&amp;quot;display:none&amp;quot; data-sort-value=&amp;quot;&amp;#039; .. sortkey .. &amp;#039;♠&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- This code was copied from [[Template:Convert]]	&lt;br /&gt;
	if outvalue == 0 then&lt;br /&gt;
		sortkey = &amp;#039;5000000000000000000&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		local mag = math.floor(math.log10(math.abs(outvalue)) + 1e-14)&lt;br /&gt;
		local prefix&lt;br /&gt;
		if outvalue &amp;gt; 0 then&lt;br /&gt;
			prefix = 7000 + mag&lt;br /&gt;
		else&lt;br /&gt;
			prefix = 2999 - mag&lt;br /&gt;
			outvalue = outvalue + 10^(mag+1)&lt;br /&gt;
		end&lt;br /&gt;
		sortkey = string.format(&amp;#039;%d&amp;#039;, prefix) .. string.format(&amp;#039;%015.0f&amp;#039;, math.floor(outvalue * 10^(14-mag)))&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;lt;span style=&amp;quot;display:none&amp;quot; data-sort-value=&amp;quot;&amp;#039; .. sortkey .. &amp;#039;♠&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function trim(s)&lt;br /&gt;
	return s:match(&amp;#039;^%s*(.-)%s*$&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isnotempty(s)&lt;br /&gt;
	return s and trim(s) ~= &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function change(args)&lt;br /&gt;
	local rnd = require(&amp;#039;Module:Math&amp;#039;)._round&lt;br /&gt;
	local prec_format = require(&amp;#039;Module:Math&amp;#039;)._precision_format&lt;br /&gt;
	local lang = mw.getContentLanguage()&lt;br /&gt;
	local function formatnum(num)&lt;br /&gt;
		return lang:parseFormattedNumber(num) and lang:formatNum(lang:parseFormattedNumber(num)) or num&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local errorflag = nil&lt;br /&gt;
	&lt;br /&gt;
	local dsp = args[&amp;#039;disp&amp;#039;] or &amp;#039;row&amp;#039;&lt;br /&gt;
	local inv = args[&amp;#039;invert&amp;#039;] or &amp;#039;off&amp;#039;&lt;br /&gt;
	local srt = args[&amp;#039;sort&amp;#039;] or ((isnotempty(args[&amp;#039;pre&amp;#039;]) or isnotempty(args[&amp;#039;sort&amp;#039;])) and &amp;#039;on&amp;#039; or &amp;#039;off&amp;#039;)&lt;br /&gt;
	local n1 = (inv == &amp;#039;on&amp;#039;) and tonumber(lang:parseFormattedNumber(args[&amp;#039;2&amp;#039;])) or tonumber(lang:parseFormattedNumber(args[&amp;#039;1&amp;#039;]))&lt;br /&gt;
	local n2 = (inv == &amp;#039;on&amp;#039;) and tonumber(lang:parseFormattedNumber(args[&amp;#039;1&amp;#039;])) or tonumber(lang:parseFormattedNumber(args[&amp;#039;2&amp;#039;]))&lt;br /&gt;
	local dec = args[&amp;#039;dec&amp;#039;] or &amp;#039;2&amp;#039;&lt;br /&gt;
	local s = ((args[&amp;#039;italics&amp;#039;] or &amp;#039;off&amp;#039;) == &amp;#039;on&amp;#039; and &amp;quot;&amp;#039;&amp;#039;&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
			.. ((args[&amp;#039;bold&amp;#039;] or &amp;#039;off&amp;#039;) == &amp;#039;on&amp;#039; and &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local pc, pcr, pcrf = &amp;#039;NA&amp;#039;, &amp;#039;NA&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	if n1 and n2 and n1 ~= 0 then&lt;br /&gt;
		pc = 100*(n2/n1 - 1)&lt;br /&gt;
		pcr = rnd(pc, dec)&lt;br /&gt;
		if pcr &amp;gt; 0 then&lt;br /&gt;
			pcrf = &amp;#039;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;#039; ..&lt;br /&gt;
				s .. &amp;#039;+&amp;#039; .. prec_format(pc, dec) .. &amp;#039;%&amp;#039; .. s .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		elseif pcr &amp;lt; 0 then&lt;br /&gt;
			pcrf = &amp;#039;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;#039; ..&lt;br /&gt;
				s .. prec_format(pc, dec) .. &amp;#039;%&amp;#039; .. s .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			pcrf = s .. prec_format(0, dec) .. &amp;#039;%&amp;#039; .. s&lt;br /&gt;
		end&lt;br /&gt;
		pcrf = ntsh(pcr) .. pcrf&lt;br /&gt;
	else&lt;br /&gt;
		pcrf = ntsh(nil) .. s .. &amp;#039;NA&amp;#039; .. s&lt;br /&gt;
		if n1 == nil or n2 == nil then&lt;br /&gt;
			errorflag = 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if dsp == &amp;#039;out&amp;#039; then&lt;br /&gt;
		return pcrf, errorflag&lt;br /&gt;
	else&lt;br /&gt;
		local pre1 = args[&amp;#039;pre1&amp;#039;] or args[&amp;#039;pre&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
		local pre2 = args[&amp;#039;pre2&amp;#039;] or args[&amp;#039;pre&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
		local suf1 = args[&amp;#039;suf1&amp;#039;] or args[&amp;#039;suf&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
		local suf2 = args[&amp;#039;suf2&amp;#039;] or args[&amp;#039;suf&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
		local rspn = &amp;#039;rowspan=&amp;#039; .. (args[&amp;#039;rowspan&amp;#039;] or &amp;#039;1&amp;#039;) .. &amp;#039; &amp;#039;&lt;br /&gt;
		local algn = &amp;#039;text-align:&amp;#039; .. (args[&amp;#039;align&amp;#039;] or &amp;#039;right&amp;#039;) .. &amp;#039;;&amp;#039;&lt;br /&gt;
		local bg = &amp;#039;background-color:&amp;#039; .. (args[&amp;#039;bgcolour&amp;#039;] or args[&amp;#039;bgcolor&amp;#039;] or &amp;#039;inherit&amp;#039;) .. &amp;#039;;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
		if rspn == &amp;#039;rowspan=1 &amp;#039; then rspn = &amp;#039;&amp;#039; end&lt;br /&gt;
		if bg == &amp;#039;background-color:inherit;&amp;#039; then bg = &amp;#039;&amp;#039; end&lt;br /&gt;
		local style = rspn .. &amp;#039;style=&amp;quot;&amp;#039; .. algn .. bg .. &amp;#039;&amp;quot;&amp;#039;&lt;br /&gt;
		&lt;br /&gt;
		local sk1, sk2 = &amp;#039;&amp;#039;, &amp;#039;&amp;#039;&lt;br /&gt;
		&lt;br /&gt;
		if srt == &amp;#039;on&amp;#039; then&lt;br /&gt;
			sk1 = ntsh(n1)&lt;br /&gt;
			sk2 = ntsh(n2)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if n1 ~= nil then&lt;br /&gt;
			if n1 &amp;lt; 0 then&lt;br /&gt;
				n1 = &amp;#039;−&amp;#039; .. formatnum(-1*n1)&lt;br /&gt;
			else&lt;br /&gt;
				n1 = formatnum(n1)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			n1 = (inv == &amp;#039;on&amp;#039;) and (args[&amp;#039;2&amp;#039;] or &amp;#039;&amp;#039;) or (args[&amp;#039;1&amp;#039;] or &amp;#039;&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if n2 ~= nil then&lt;br /&gt;
			if n2 &amp;lt; 0 then&lt;br /&gt;
				n2 = &amp;#039;−&amp;#039; .. formatnum(-1*n2)&lt;br /&gt;
			else&lt;br /&gt;
				n2 = formatnum(n2)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			n2 = (inv == &amp;#039;on&amp;#039;) and (args[&amp;#039;1&amp;#039;] or &amp;#039;&amp;#039;) or (args[&amp;#039;2&amp;#039;] or &amp;#039;&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if dsp == &amp;#039;row2&amp;#039; then&lt;br /&gt;
			return style .. &amp;#039;|&amp;#039; .. s .. pre2 .. n2 .. suf2 .. s&lt;br /&gt;
				.. &amp;#039;\n|&amp;#039; .. style .. &amp;#039;|&amp;#039; .. pcrf, errorflag&lt;br /&gt;
		elseif inv == &amp;#039;off&amp;#039; then&lt;br /&gt;
			return style .. &amp;#039;|&amp;#039; .. s .. pre1 .. n1 .. suf1 .. s&lt;br /&gt;
				.. &amp;#039;\n|&amp;#039; .. style .. &amp;#039;|&amp;#039; .. s .. pre2 .. n2 .. suf2 .. s&lt;br /&gt;
				.. &amp;#039;\n|&amp;#039; .. style .. &amp;#039;|&amp;#039; .. pcrf, errorflag&lt;br /&gt;
		else&lt;br /&gt;
			return style .. &amp;#039;|&amp;#039; .. s .. pre1 .. n2 .. suf1 .. s&lt;br /&gt;
				.. &amp;#039;\n|&amp;#039; .. style .. &amp;#039;|&amp;#039; .. s .. pre2 .. n1 .. suf2 .. s&lt;br /&gt;
				.. &amp;#039;\n|&amp;#039; .. style .. &amp;#039;|&amp;#039; .. pcrf, errorflag&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local res, eflag = change((frame.args[1] or frame.args[2]) and frame.args or frame:getParent().args)&lt;br /&gt;
	if eflag then&lt;br /&gt;
		res = res .. frame:expandTemplate{title = &amp;#039;change/error&amp;#039;}&lt;br /&gt;
	end&lt;br /&gt;
	return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
</feed>