وحدة:وثيقة/ترجمة
المظهر

-- وحدة:وثيقة/ترجمة
local p = {}
local cal_aliases = mw.loadData('وحدة:وثيقة/المدخلات')
-- تنظيف المدخلات وضمان الاتساق
local function clean_args(args)
local cleaned = {}
for k, v in pairs(args) do
v = mw.text.trim(v)
if v == '' then
v = nil
end
-- البحث عن الكلمة المفتاحية المكافئة في الجدول cal_aliases
for key, aliases in pairs(cal_aliases) do
for _, alias in ipairs(aliases) do
if k == alias then
cleaned[key] = v
end
end
end
cleaned[k] = v
end
return cleaned
end
-- استخراج القيم باللغتين العربية والفرنسية
local function get_value_from_aliases(args, key)
if not cal_aliases or not cal_aliases[key] then
return nil
end
for _, alias in ipairs(cal_aliases[key]) do
if args[alias] then
return args[alias]
end
end
return nil
end
-- تحويل العنوان إذا كان إعادة توجيه
local function normalize_title(title)
if title and title.isRedirect then
return normalize_title(title.redirectTarget)
else
return title
end
end
p.clean_args = clean_args
p.get_value_from_aliases = get_value_from_aliases
p.normalize_title = normalize_title
return p