پودمان:Triple tab Quran/Translate
ظاهر
-- تعریف ماژول
local q2 = {}
-- تابع اصلی برای نمایش ترجمهها در پاراگرافهای قابل تغییر اندازه
function q2.translate(frame)
-- گرفتن آرگومانها از فراخوانی قالب والد یا مستقیم
local parentArgs = frame:getParent() and frame:getParent().args or {} -- آرگومانهای قالب والد
local directArgs = frame.args or {} -- آرگومانهای مستقیم (اگر بدون قالب فراخوانی بشه)
local args = {} -- جدول نهایی آرگومانها
-- ترکیب آرگومانها: اولویت با parentArgs برای اطمینان از دریافت درست
for k, v in pairs(directArgs) do args[k] = v end
for k, v in pairs(parentArgs) do args[k] = v end
-- جمعآوری آرگومانها در یک جدول
local result = {}
for i, param in ipairs(args) do -- گرفتن آرگومانهای عددی
if param and param ~= "" then
table.insert(result, param)
end
end
for key, param in pairs(args) do -- گرفتن آرگومانهای اسمی (غیرعددی)
if type(key) == "string" and param and param ~= "" then
table.insert(result, param)
end
end
-- اگه هیچ آرگومانی نبود، یه پیام پیشفرض برگردون
if #result == 0 then
return '<p class="quran-resizable-text">هیچ ترجمهای وارد نشده است.</p>'
end
-- ساخت HTML با mw.html
local html = mw.html.create('div') -- div اصلی برای نگهداشتن پاراگرافها
for _, text in ipairs(result) do
html:tag('p') -- پاراگراف برای هر ترجمه
:addClass('quran-resizable-text') -- کلاس CSS برای تغییر اندازه
:wikitext(text) -- متن ترجمه واردشده
end
-- برگرداندن HTML به صورت رشته
return tostring(html)
end
-- برگرداندن ماژول
return q2
--[[Category:Template:Triple tab Quran]] -- دستهبندی مرتبط