请输入您要查询的百科知识:

 

词条 Module:User:Mr. Stradivarius/Latvian declension
释义 -- This module generates templates for dealing with Latvian declensions.

local libraryUtil = require('libraryUtil')

local DATA_PAGE_PREFIX = mw.getCurrentFrame():getTitle() .. '/'

local NO_RESULT = 'Invalid'

local function main(dataPage, code, declen)

-- Get the data page first, as we want a big red error message if the data

-- page is bad.

libraryUtil.checkType('main', 1, dataPage, 'string')

local data = mw.loadData(DATA_PAGE_PREFIX .. dataPage)

-- Check argument types and do preprocessing.

if type(code) == 'string' then

if tonumber(code) then

code = tonumber(code)

else

code = mw.ustring.lower(code)

end

elseif type(code) ~= 'number' then

return NO_RESULT

end

if type(declen) ~= 'string' then

return NO_RESULT

end

-- Get the data.

local termData = data[code]

if termData == nil then

return NO_RESULT

elseif type(termData) ~= 'table' then

error(string.format(

"the data page '%s' contains malformatted data for code '%s'",

dataPage,

tostring(code)

), 2)

end

if declen == 'Ģ' or declen == 'ģ' then

-- Normalize declension string without using mw.ustring, which can be

-- slow.

declen = 'g'

else

declen = string.lower(declen)

end

return termData[declen] or NO_RESULT

end

return setmetatable(

{main = main},

{

__index = function (p, key)

return function (frame)

local args = require('Module:Arguments').getArgs(frame, {

parentOnly = true

})

return main(key, args[1], args[2])

end

end

}

)

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/25 2:22:31