local p = {};
local prefix = "";
local function olGen (params)
return mw.getCurrentFrame():expandTemplate{
title = 'Ordered list',
args = params
}
end
local function checkFirstCharIsUpperCase ( name )
if mw.ustring.match( name, "^[a-z]" ) then
return prefix .. "Tên mới phải bắt đầu bằng chữ hoa vì lý do kỹ thuật\n";
end
return "";
end
local function checkEmptyName( name, identify )
if name == nil or name == "" then
return prefix .. "Tên " .. identify .. " không được để trống\n";
end
return "";
end
local function checkNewNameEqualOldName ( new, old )
if mw.ustring.lower( mw.ustring.gsub( new, "_", " " ) ) == mw.ustring.lower( mw.ustring.gsub( old, "_", " " ) ) then
return prefix .. "Tên mới giống với tên cũ\n";
end
return "";
end
local function checkNameContainsInvalidCharacters ( name )
if mw.ustring.find( name, "[@#<>%[%]{}|]" ) then
return prefix .. "Tên mới chứa (các) ký tự không hợp lệ\n";
end
return "";
end
function p.checkValidName ( frame )
local args = frame.args;
local oldname = args[1];
local name = args[2];
local errOutput = "";
local params = {}
local errObject = {
checkEmptyName( name, "mới" ),
checkEmptyName( oldname, "cũ" ),
checkFirstCharIsUpperCase( name ),
checkNewNameEqualOldName( name, oldname ),
checkNameContainsInvalidCharacters( name )
}
for i = 1, #errObject do
if errObject[i] ~= "" then
params[#params + 1] = errObject[i]
end
end
if #params > 0 then
errOutput = "Các lỗi đã phát hiện:" .. olGen( params );
end
return errOutput;
end
return p;