Modul:Yiyəlik hal

Vikipediya, azad ensiklopediya
Naviqasiyaya keç Axtarışa keç

Modulun nəticələrinə dair nümunələr

[mənbəni redaktə et]
  • {{#invoke:Yiyəlik hal|make_possessive|Bakı}} → a
  • {{#invoke:Yiyəlik hal|make_possessive|Gəncə}} →
  • {{#invoke:Yiyəlik hal|make_possessive|Göynük}} →
  • {{#invoke:Yiyəlik hal|make_possessive|Şabran}} → aa
  • {{#invoke:Yiyəlik hal|make_possessive|Ramin}} → ai
  • {{#invoke:Yiyəlik hal|make_possessive|külək}} →
  • {{#invoke:Yiyəlik hal|make_possessive|qulaq}} → ua
  • {{#invoke:Yiyəlik hal|make_possessive|qulaq}} → ua
  • {{#invoke:Yiyəlik hal|make_possessive|mənbə}} →
  • {{#invoke:Yiyəlik hal|make_possessive|su}} → u
  • {{#invoke:Yiyəlik hal|make_possessive|əmr}} →
  • {{#invoke:Yiyəlik hal|make_possessive|kadr}} → a
  • {{#invoke:Yiyəlik hal|make_possessive}} → Lua xətası sətir 8: attempt to index local 'str' (a nil value).

local p = {}

local function htmlDecode(str)
    local entities = {
        ["ə"] = "ə", ["ö"] = "ö", ["ü"] = "ü"
    }

    return (str:gsub("&#%d+;", function(entity)
        return entities[entity] or entity
    end))
end

function p.make_possessive(frame)
    local word = frame.args[1]

    word = htmlDecode(word)

    local function vowelsOnly(word)
        local vowels = {
            ["a"] = true, ["ı"] = true, ["o"] = true, ["u"] = true,
            ["e"] = true, ["ə"] = true, ["i"] = true, ["ö"] = true, ["ü"] = true
        }
        
        local result = ""

        for i = 1, #word do
            local char = word:sub(i, i)
            if vowels[char] then
                result = result .. char
            end
        end

        return result
    end

    local trimmedWord = vowelsOnly(word)
    return trimmedWord
end

return p