انتقل إلى المحتوى

وحدة:وثيقة/ترجمة

من ويكي مصدر، المكتبة الحرة
-- وحدة:وثيقة/ترجمة
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