پرش به محتوا

پودمان:Number Converter

از ویکی‌نبشته

توضیحات این پودمان می‌تواند در پودمان:Number Converter/توضیحات قرار گیرد.

--[=[ اعداد فارسی داده شده را به انگلیسی یا اعداد انگلیسی را به فارسی تبدیل می کند.
]=]

local p = {}

function p._translate2bn(text)
	if type(text) == 'string' then
		text = mw.ustring.gsub(text, '%d', {
			['0'] = '۰',
			['1'] = '۱',
			['2'] = '۲',
			['3'] = '۳',
			['4'] = '۴',
			['5'] = '۵',
			['6'] = '۶',
			['7'] = '۷',
			['8'] = '۸',
			['9'] = '۹',
		})
	end
	return text
end

function p._translate2en(text)
	if type(text) == 'string' then
		text = mw.ustring.gsub(text, '%d', {
			['۰'] = '0',
			['۱'] = '1',
			['۲'] = '2',
			['۳'] = '3',
			['۴'] = '4',
			['۵'] = '5',
			['۶'] = '6',
			['۷'] = '7',
			['۸'] = '8',
			['۹'] = '9',
		})
	end
	return text
end

function p.convert(lang, text)
	if lang == 'fa' then
		return p._translate2bn(text)
	end
	if lang == 'en' then
		return p._translate2en(text)
	end
	return text
end

function p.translate2bn(frame)
	local text = frame.args[1] or frame:getParent().args[1]
	return p._translate2bn(text)
end

function p.translate2en(frame)
	local text = frame.args[1] or frame:getParent().args[1]
	return p._translate2en(text)
end

function p.convert_template(frame)
	local args = frame.args
	local pargs = frame:getParent().args
	local lang = args[1] or pargs[1]
	local text = args[2] or pargs[2]
	return p.convert(lang, text)
end

return p