Sari la conținut

Modul:Utilizare mare

De la Wikipedia, enciclopedia liberă
-- Acest modul implementează {{Utilizare mare}}

local p = {}
local getArgs = require('Modul:Arguments').getArgs

function p._num(args, count, no_percent)
	if count == nil then
		if (args[1] or '') ~= '' then count = tonumber(args[1]) end
	end
	
	-- Build output string
	local return_value = ""
	if count == nil then
		return "multe pagini"
	else
		-- Use 2 significant figures for smaller numbers and 3 for larger ones
		local sigfig = 2
		if count >= 100000 then
			sigfig = 3
		end
		
		-- Prepare to round to appropriate number of sigfigs
		local f = math.floor(math.log10(count)) - sigfig + 1
		return_value = require('Modul:Plural').build_plural(count, 'pagină', 'pagini', 'de pagini');
		if count then
			local numpages = mw.getCurrentFrame():callParserFunction('NUMBEROFPAGES', 'R')
			local percent = math.floor( ( ( count/numpages ) * 100) + 0.5)
			if percent >= 1 then
				return_value = string.format("peste %s, sau aproximativ %s%% din totalul paginilor", return_value, percent)
			else 
				return_value = string.format("peste %s", return_value)
			end
		end	
	end
	
	return return_value
end

function p.num(frame, count)
	return p._num(getArgs(frame), count)
end

function p._text(args, count)
	-- Only show the information about how this template gets updated if someone
	-- is actually editing the page and maybe trying to update the count.

	if count == nil then
		if (args[1] or '') ~= '' then count = tonumber(args[1]) end
	end
	local title = mw.title.getCurrentTitle()
	
	-- This retrieves the project URL automatically to simplify localization.
	local templateCount = ('în [https://linkcount.toolforge.org/?project=%s&page=%s#transclusions %s]'):format(
		title:fullUrl():gsub('//(.-)/.*', '%1'),
		mw.uri.encode(title.fullText), p._num(args, count))
	local used_on_text = "'''Acest format este folosit " .. templateCount .. ".'''<br/>"
	
	local sandbox_text =  ("subpaginile: [[%s/cutie cu nisip|/cutie cu nisip]] sau [[%s/test|/test]], sau [[Special:Mypage/teste|propria cutie cu nisip]]. "):format(
		title.fullText, title.fullText
	)
	
	if (count and count >= 100000) then
		sandbox_text = 'Acesta este un număr foarte mare! Pentru a evita perturbările majore și încărcarea serverului, orice modificări trebuie testate pe ' ..
			sandbox_text
	else
		sandbox_text = 'Modificările aduse acestuia pot fi vizibile imediat. Pentru a testa modificările folosiți ' .. sandbox_text
	end

	local discussion_text = 'Luați în considerare discutarea eventualelor modificări cu alți utilizatori '
	discussion_text = string.format("%spe [[%s|pagina de discuție]]", discussion_text, title.talkPageTitle.fullText )
	
	return used_on_text .. sandbox_text .. discussion_text .. " înainte de a le implementa."
end

function p.text(frame, count)
	return p._text(getArgs(frame), count)
end

function p._main(args)
	local count = nil
	if (args[1] or '') ~= '' then count = tonumber(args[1]) end
	local image = "[[File:Nuvola apps important yellow.svg|40px|alt=|link=]]"
	local type_param = "style"
	if (count and count >= 100000) then 
		image = "[[File:Nuvola apps important orange.svg|40px|alt=|link=]]"
		type_param = "content"
	end
	
	return require('Module:Message box').main('ombox', {
		type = type_param,
		image = image,
		text = p._text(args, count),
		class = 'def'
	}) .. '[[Categorie:Formate cu utilizare mare]]' .. mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = 'Meta-casetămap/styles.css'} }
end

function p.main(frame)
	return p._main(getArgs(frame))
end
return p