Mô đun:labels/data/functions
< Mô đun:labels | data
local export = {}
function export.typecheck(labels)
local errors = require "Module:array"()
for label, data in pairs(labels) do
local languages, language = data["languages"], data["language"]
if languages then
if type(languages) ~= "table" then
errors:insert("giá trị ngôn ngữ cho " .. label .. " không phải là một bảng")
else
for i, language in ipairs(languages) do
if type(language) ~= "string" then
errors:insert(
"giá trị #" .. i .. " trong giá trị ngôn ngữ cho "
.. label .. " không phải là một xâu")
else
data["languages"][language] = true
end
end
end
elseif language then
if type(language) ~= "string" then
errors:insert(
"giá trị ngôn ngữ cho " .. label .. " không phải là một xâu")
else
data["languages"] = {}
data["languages"][language] = true
end
end
end
if #errors > 0 then
error(errors:concat ", ")
end
end
function export.handle_languages(labels)
if type(labels) ~= "table" then
error('Hàm "handle_languages" yêu cầu một bảng làm đối số.')
end
if mw.title.getCurrentTitle().fullText:find "Mô đun:labels" then
return export.typecheck(labels)
end
for label, data in pairs(labels) do
local languages, language = data["languages"], data["language"]
if languages then
for _, language in ipairs(languages) do
languages[language] = true
end
elseif language and language ~= "" then
data["languages"] = {}
data["languages"][language] = true
end
end
end
return export