Модуль:Parameter

Материал из Ant Colony Wiki
Перейти к навигации Перейти к поиску

Для документации этого модуля может быть создана страница Модуль:Parameter/doc

local p = {}

local parameters_data = require("Module:Parameter/data")

local function toTitleCase(str)
    return (str:gsub("(%a)([%w_']*)", function(first, rest) return first:upper() .. rest:lower() end))
end

function p.to_title_case(frame)
    local text = frame.args[1] or ""
    return toTitleCase(text)
end

function p.get_parameter_data(frame)
    local parameter_name = frame.args[1]
    local formatted_parameter_name = toTitleCase(parameter_name)
    local key = frame.args[2]
    local parameter_info = parameters_data[formatted_parameter_name]

    if parameter_info and parameter_info[key] then
        return parameter_info[key]
    else
        return "Data not found"
    end
end

function p.getParameter(frame)
    local parameterName = frame.args[1]
    local language = frame.args[2]
    local lowerParameterName = string.lower(parameterName)

    for key, value in pairs(parameters_data) do
        if string.lower(value.ru) == lowerParameterName or string.lower(value.en) == lowerParameterName then
            if language == 'ru' then
                return value.ru
            elseif language == 'en' then
                return value.en
            end
        end
    end

    return 'Ошибка'
end

return p