localp={};localprefix="";localfunctionolGen(params)returnmw.getCurrentFrame():expandTemplate{title='Ordered list',args=params}endlocalfunctioncheckFirstCharIsUpperCase(name)ifmw.ustring.match(name,"^[a-z]")thenreturnprefix.."Tên mới phải bắt đầu bằng chữ hoa vì lý do kỹ thuật\n";endreturn"";endlocalfunctioncheckEmptyName(name,identify)ifname==nilorname==""thenreturnprefix.."Tên "..identify.." không được để trống\n";endreturn"";endlocalfunctioncheckNewNameEqualOldName(new,old)ifmw.ustring.lower(mw.ustring.gsub(new,"_"," "))==mw.ustring.lower(mw.ustring.gsub(old,"_"," "))thenreturnprefix.."Tên mới giống với tên cũ\n";endreturn"";endlocalfunctioncheckNameContainsInvalidCharacters(name)ifmw.ustring.find(name,"[@#<>%[%]{}|]")thenreturnprefix.."Tên mới chứa (các) ký tự không hợp lệ\n";endreturn"";endfunctionp.checkValidName(frame)localargs=frame.args;localoldname=args[1];localname=args[2];localerrOutput="";localparams={}localerrObject={checkEmptyName(name,"mới"),checkEmptyName(oldname,"cũ"),checkFirstCharIsUpperCase(name),checkNewNameEqualOldName(name,oldname),checkNameContainsInvalidCharacters(name)}fori=1,#errObjectdoiferrObject[i]~=""thenparams[#params+1]=errObject[i]endendif#params>0thenerrOutput="Các lỗi đã phát hiện:"..olGen(params);endreturnerrOutput;endreturnp;