Moduł:Pudełko/DalszeFunkcje

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania
Template-info.png Dokumentacja modułu [stwórz] [odśwież]
local p={};
function p.Nazwa_strony_glownej_projektu(kod_jezyka,kod_projektu)
	local strona=require("Module:Pudełko")["Strona główna tego projektu"]();
    local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu};
    if(odpowiednik_strony)then 
    	nazwy_modul=require("Module:Nazwy");
    	return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
    else 
    	local pudelko_modul=require("Module:Pudełko");
    	if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then
    		return strona;
    	else
    		return "Main Page";
    	end;
    end;
end;
function p.Nazwa_strony_glownej_dla_dzieci(kod_jezyka)
    local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"]();
    local pudelko_modul=require("Module:Pudełko");
    local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
    if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end;
    local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
    local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu};
    if(odpowiednik_strony)then 
    	nazwy_modul=require("Module:Nazwy");
    	return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,};
    else 
    	return "Wikijunior";
    end;
end;
function p.Pobierz_ze_zmiennej_strone_glowna_projektu(frame,i,kod_jezyka,kod_projektu)
	local pf=frame:getParent();
	local strona_glowna_projektu;
	if(i~=0)then
	  	local pudelko_modul=require("Module:Pudełko");
	  	local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
	  	local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
     	if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then
     	    strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"]
     	else
     	    strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i]) 
     	end;
    else
        strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"]
    end;
    return (strona_glowna_projektu)and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
function p.Pobierz_ze_zmiennej_strone_glowna_dla_dzieci(frame,i,kod_jezyka)
   local pf=frame:getParent();
   local pudelko_modul=require("Module:Pudełko");
   local strona_glowna_dla_dzieci;
   if(i~=0)then
	  local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
      if(kod_jezyka==kod_jezyka_tego_projektu)then
     		strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"]
      else
     	    strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i]) 
      end;
   else
     	strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"]
   end;
   local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
   return (strona_glowna_dla_dzieci)and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,};
end;
function p.Normalna_przedmiotowa_lub_dyskusji_przestrzen_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu)
	local nazwa_przestrzeni_nazw_blad;
	local wiki_modul=require("Module:Wiki");
	local nazwy_modul=require("Module:Nazwy");
	local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	if(normmalna_przedmiotwa_dyskusji==0)then
		if(czy_biezaca)then
			nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		else
			nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		end;			
	elseif(normmalna_przedmiotwa_dyskusji==1)then
		if(czy_biezaca)then
			nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa=tak,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		else
	    	nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa=tak,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		end;	    	
	elseif(normmalna_przedmiotwa_dyskusji==2)then
	    if(czy_biezaca)then
			nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja=tak,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
	else
			nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja=tak,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		end;	
	else 
		if(czy_biezaca)then
			nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		else
	    	nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		end;	    	
	end;
	return nazwa_przestrzeni_nazw_blad
end;
function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,fal,numer_jednostki)
	local pf=frame:getParent()
    local nazwa_przestrzeni_nazw=(numer_jednostki~=0) and (frame.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..numer_jednostki]  or pf.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw "..numer_jednostki]) or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"];
	local nazwy_modul=require("Module:Nazwy");
	local wiki_modul=require("Module:Wiki");
  	local kod_jezyka,kod_projektu=p.KodyWikiPudelka(frame,numer_jednostki);
	local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	local czy_blad_nazwy_przestrzeni_nazw;
	if(kod_liczbowy_przestrzeni_nazw==1)then
		if(czy_biezaca_wiki)then
			czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{} or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		else
		    czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		end;
	elseif(kod_liczbowy_przestrzeni_nazw==2)then
		if(czy_biezaca_wiki)then
			czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{} or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		else
		   czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		end;
	else
	    if(czy_biezaca_wiki)then
			czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{} or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		else
		   	czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		end;
	end;
	if(czy_blad_nazwy_przestrzeni_nazw)then
		  return czy_blad_nazwy_przestrzeni_nazw;
	else
		if(((fal==nil)and true or fal) and frame.args[1])then
			local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]);
			if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then
				local nazwa_przestrzeni_nazw_alternatywnej_blad2;
				if(czy_biezaca)then
					nazwa_przestrzeni_nazw_alternatywnej_blad2=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
				else
					nazwa_przestrzeni_nazw_alternatywnej_blad2=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
				end;
				return nazwa_przestrzeni_nazw_alternatywnej_blad2 or "(błąd)";
			else
				return "(błąd)";
			end;
		else
			local parametry_modul=require("Module:Parametry");
  	    	nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",};
			if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
				return nazwa_przestrzeni_nazw;
			else
				return "(błąd)";
			end;
		end;
	end;
end;
function p.Kod_jezyka(frame,i,wartosc_domyslna)
	local pudelko_modul=require("Module:Pudełko");
	if(not i)then return pudelko_modul["Kod języka tego projektu"]();end;
	local pf=frame:getParent();
	if(i==0)then
		return pudelko_modul["Kod języka tego projektu"]();
	elseif(i==1)then
		local parametry_modul=require("Module:Parametry");
		local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"]
		return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
	elseif(i>1)then
		local parametry_modul=require("Module:Parametry");
		local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i]
		return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
	end;
end
function p.Kod_projektu(frame,i,wartosc_domyslna)
	local pudelko_modul=require("Module:Pudełko");
	if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end;
	local pf=frame:getParent();
	if(i==0)then
		return pudelko_modul["Kod projektu tego projektu"]();
	elseif(i==1)then
		local parametry_modul=require("Module:Parametry");
		local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"]
		return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
	elseif(i>1)then
		local parametry_modul=require("Module:Parametry");
		local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i]
		return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
	end;
end
function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)
	local pf=frame:getParent();
	local klucz_projektu;
	local function domyslne_klucz(klucz_projektu)
		local parametry_modul=require("Module:Parametry");
		return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil)));
	end;
	if(i==0)then
	    return nil;
	elseif(i==1)then
		local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"]
		return domyslne_klucz(klucz_projektu);
	elseif(i>1)then
		local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu"]
		return domyslne_klucz(klucz_projektu);
	end;
end;
function p.KodyWikiPudelka(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)
	local wiki_modul=require("Module:Wiki");
	local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu));
	return kod_jezyka,kod_projektu;
end;
function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu)
	 local numer_jednostki=i or frame.args["numer jednostki"];
	 local liczba_numer_jednostki=tonumber(numer_jednostki) or 0;
	 local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,liczba_numer_jednostki,numer_argorytmu);
	 local nazwy_modul=require("Module:Nazwy");
	 local kod_jezyka,kod_projektu=p.KodyWikiPudelka(frame,liczba_numer_jednostki);
  	 local wiki_modul=require("Module:Wiki");
  	 local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	 local czy_blad_nazwa_przestrzeni_nazw;
	 if(czy_biezaca)then
	 	  czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
	 else
	 	  czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
	 end;
  	 if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end;
  	 nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw;
     local pf=frame:getParent();
     local typ;
     if liczba_numer_jednostki~=0 then
     	typ=liczba_numer_jednostki and(frame.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki "..liczba_numer_jednostki]);
     	if(not typ)then
     		local nazwa_jednostki=((liczba_numer_jednostki>1)and frame.args["nazwa jednostki "..liczba_numer_jednostki]or ((liczba_numer_jednostki==1)and(frame.args["nazwa jednostki 1"]or frame.args["nazwa jednostki"])))or((liczba_numer_jednostki==1)and(pf.args['cel']))or pf.args[liczba_numer_jednostki];
     		if(nazwa_jednostki)then
     			if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then
     			    if(not frame.args['nazwa przestrzeni nazw '..liczba_numer_jednostki] or not pf.args['nazwa przestrzeni nazw '..liczba_numer_jednostki])then
     					typ=frame.args["typ jednostki"] or pf.args["typ jednostki"];
     				end;
     			end;
     		end;
     	end;
     else
     	typ=frame.args["typ jednostki"] or pf.args["typ jednostki"];
     end;
     if(typ)then
     	if(typ~="")then
     		local parametry_modul=require("Module:Parametry");
    		if((((nazwa_przestrzeni_nazw=="")and(((not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))
    			or((nazwa_przestrzeni_nazw=="Wikijunior")and(((not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci")))
    			   or((nazwa_przestrzeni_nazw=="Project")
    			   	   and(not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))
    			   	      and(((not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))
    			   or((nazwa_przestrzeni_nazw=="Template")
    			   	      and((parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu") 
    			   	      	or(not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"])
    			       	     	  and((not parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
    			       	     	   and not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"])
    			       	     	   and not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))
    			       	     	       and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu"))
    			       	     	         or((not parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
    			       	     	         	     and not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]) 
    			       	     	         	     and not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))
    			       	     	         	        and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu")))))
    			    or((nazwa_przestrzeni_nazw=="Module")
    			       and((parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu") 
    			         or(not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"])
    			          	 and((not parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
    			          	   	    	and not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))
    			          	   	         and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu"))
    			          	   	            or((not parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
    			          	   	             	   and not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))
    			          	   	             	       and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu")))))
    			          or((nazwa_przestrzeni_nazw=="User")
    			          	   and((not parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"])
    			          	   	                  and(((not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika")))or(typ=="strona użytkownika")))
    			          or((nazwa_przestrzeni_nazw=="File")and(typ=="strona pliku"))
    			          or((nazwa_przestrzeni_nazw=="Category")and(typ=="strona kategorii"))
    			          or((nazwa_przestrzeni_nazw=="Help")and(typ=="strona pomocy"))
    			          or((nazwa_przestrzeni_nazw=="MediaWiki")and(typ=="strona komunikatu"))
    			          or((nazwa_przestrzeni_nazw=="Special")and(typ=="strona specjalna"))
    			          or((nazwa_przestrzeni_nazw=="Gadget")and(typ=="strona gadżetu"))
    			          )or((typ=="strona główna projektu")or(typ=="strona główna dla dzieci"))
    			          )then
        		return typ;
    		else
    			return "(błąd typu jednostki)";
    		end
    	end;
    end;
  	 if(nazwa_jednostki~="")then
  	 	--local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki);
  	 	--local klucz_projektu=kod_projektu..":"..kod_jezyka;
  	 	local pudelko_modul=require("Module:Pudełko");
    	local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki;
    	if(p.CzyNiepoprawnaNiePustaNazwaJednostki(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end;
    	local nazwy_modul=require("Module:Nazwy")
    	pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
    	local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_przestrzen_nazw(nazwa_przestrzeni_nazw, kod_liczbowy_przestrzeni_nazw,kod_jezyka,kod_projektu);
    	local parametry_modul=require("Module:Parametry");
    	if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then
     		local Pobierz_ze_zmiennej_strone_glowna_dla_dzieci=p.Pobierz_ze_zmiennej_strone_glowna_dla_dzieci(frame,liczba_numer_jednostki,kod_jezyka);
     		if(Pobierz_ze_zmiennej_strone_glowna_dla_dzieci=="")then return "(błąd nazwy strony głównej dla dzieci)";end;
     		local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_glownej_dla_dzieci(kod_jezyka);	 
     		Pobierz_ze_zmiennej_strone_glowna_dla_dzieci=(not Pobierz_ze_zmiennej_strone_glowna_dla_dzieci)and nazwa_strony_glownej_wikijuniora or Pobierz_ze_zmiennej_strone_glowna_dla_dzieci;
     		if(p.CzyNiepoprawnaNiePustaNazwaJednostki(Pobierz_ze_zmiennej_strone_glowna_dla_dzieci))then return "(błąd nazwy strony głównej dla dzieci)";end;
     	    Pobierz_ze_zmiennej_strone_glowna_dla_dzieci=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=Pobierz_ze_zmiennej_strone_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
     		if(pelna_nazwa_strony==Pobierz_ze_zmiennej_strone_glowna_dla_dzieci)then return "strona główna dla dzieci";end;
     	end;
     	local Pobierz_ze_zmiennej_strone_glowna_projektu=p.Pobierz_ze_zmiennej_strone_glowna_projektu(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu);
     	if(Pobierz_ze_zmiennej_strone_glowna_projektu=="")then return "(błąd nazwy strony głównej projektu)";end;
     	local nazwa_strony_glownej_projektu=p.Nazwa_strony_glownej_projektu(kod_jezyka,kod_projektu);
     	Pobierz_ze_zmiennej_strone_glowna_projektu=(not Pobierz_ze_zmiennej_strone_glowna_projektu)and nazwa_strony_glownej_projektu or Pobierz_ze_zmiennej_strone_glowna_projektu;
     	if(p.CzyNiepoprawnaNiePustaNazwaJednostki(Pobierz_ze_zmiennej_strone_glowna_projektu))then return "(błąd nazwy strony głównej projektu)";end;
      	Pobierz_ze_zmiennej_strone_glowna_projektu=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=Pobierz_ze_zmiennej_strone_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; 
     	if(pelna_nazwa_strony==Pobierz_ze_zmiennej_strone_glowna_projektu)then return "strona główna projektu";end;
    	if(norm_przed_lub_dyskusji=="")then
    		local parametry_modul=require("Module:Parametry");
    		if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
    			return "artykuł";
    		else
        		local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$");
        		if(it)then return "podręcznik";else return "artykuł";end;
        	end;
        elseif(norm_przed_lub_dyskusji=="Wikijunior")then
        	local parametry_modul=require("Module:Parametry");
        	if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
        		return "artykuł dla dzieci";
        	else
        		local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$");
        		if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end;
        	end;
        elseif(norm_przed_lub_dyskusji=="User")then 
        	local parametry_modul=require("Module:Parametry");
    		if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then
    			return "strona użytkownika";
    		else
        		local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$")
        		if(czy_podstrony)then
        			return "strona główna użytkownika";
        		else
        			if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then    
        				if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then
        			    	local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$");
        			    	if(czy_ksiazka)then
        						return "podręcznik użytkownika";
        					else
        						return "artykuł użytkownika";
        			    	end;
        			    else
        			    	return  "jednostka użytkownika";
        			    end;
        			else
        				return "strona użytkownika";
        			end;
        		end;
        	end;
        elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku";
        elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii";
        elseif(norm_przed_lub_dyskusji=="Project")then 
        	local parametry_modul=require("Module:Parametry");
        	if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end;
        	if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then
        		if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
        			if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then
        				local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*");
        				if(czy_ksiazka)then
        	    			return "podręcznik brudnopisu projektu";
        	    		else
        	    			return "artykuł brudnopisu projektu";
        				end;
    	    	    else
    	    	    	return "jednostka brudnopisu projektu";
    	    	    end;
        	    else
        	    	return "strona brudnopisu projektu";
        	    end;
        	else
        		return "strona projektu";
        	end;	
        elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy";
        elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu";
        elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna";
        elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu";
        elseif(nazwa_przestrzeni_nazw=="Template")then
        	local parametry_modul=require("Module:Parametry");
        	if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end;
        	local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix)
        		local parametry_modul=require("Module:Parametry");
        		if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
        			 or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then 
        			return szablon;
        		else
        			if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then
    		   	    	return opis_szablonu;
    				else
        				if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then
        					local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$");
    						if(czy_brudnopis)then
    							local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
    		   	    			local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename);
    		   	    			if(czy_istnieje_strona==1)then
    		   	    				local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{
    		   	    	                   [1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>',
	                	      	   	  	   [2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0
    		   	    				};
	                				if(not czy_brudnopis_opisu_szablonu)then return  opis_szablonu;else return szablon;end;
	                			else
	                				return szablon;
    		   	    			end;
    		   	    		else
    		   	    			return strona_szablonu;
    		   	    		end;
    		   			else
	                		return szablon;
        				end;
        			end;
        		end;
        	end;
        	if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then 
        		return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/");
    		else
           		return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu","");
    		end;
    	elseif(nazwa_przestrzeni_nazw=="Module")then 
    		local parametry_modul=require("Module:Parametry");
    		if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end;
    	    if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then 
    	       if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
        			 or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
    	       	   return "strona brudnopisu modułu"
    	       else
    	    		local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
    	    		pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
    	    		local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony);
    				if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then
    		   	    	return "strona brudnopisu opisu modułu";
    				else
    		   	    	return "strona brudnopisu modułu";
    				end;
    			end;
    		else
    		   if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
        			 or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
    	       	   return "strona modułu"
    	       else
	        		local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
	        		pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
    	    		local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony);
    				if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then
    		   	    	return "strona opisu modułu";
    				else
    		   	    	return "strona modułu";
    				end;
    			end;
    		end;
        else return "inne";
    	end;
     end;
     return "inne";
 end;
function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu,co_ma_liczyc)
	local nazwa_przestrzeni_nazw,nazwa_jednostki;
	if(kod_liczbowy_przestrzeni_nazw==0)then
		nazwa_przestrzeni_fun="Nazwa przestrzeni nazw";
		nazwa_jednostki_fun="Nazwa jednostki";
	elseif(kod_liczbowy_przestrzeni_nazw==1)then
		nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw";
		nazwa_jednostki_fun="Nazwa przedmiotowa jednostki";
	elseif(kod_liczbowy_przestrzeni_nazw==2)then
		nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji"
		nazwa_jednostki_fun="Nazwa dyskusji jednostki";
	else
		nazwa_przestrzeni_fun="Nazwa przestrzeni nazw";
		nazwa_jednostki_fun="Nazwa jednostki";
	end;
	local pudelko_modul=require("Module:Pudełko");
	if(not numer_argorytmu)then
  		if((not i)or(i==0))then
  			if((not co_ma_liczyc)or(co_ma_liczyc==0))then
  				local nazwa_przestrzeni_nazw,nazwa_jednostki;
  				nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false);
  				nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame);
  				return nazwa_przestrzeni_nazw,nazwa_jednostki;
  			elseif(co_ma_liczyc==1)then
  				local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false);
  				return nazwa_przestrzeni_nazw;
  			elseif(co_ma_liczyc==2)then
  				return pudelko_modul["Nazwa jednostki"](frame);
  			end;
  		else
  			if((not co_ma_liczyc)or(co_ma_liczyc==0))then
  				local n=PrzeDodatkowe(frame,i);
  				nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
  				nazwa_jednostki=(n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
  				return nazwa_przestrzeni_nazw,nazwa_jednostki;
  			elseif(co_ma_liczyc==1)then
  				local n=PrzeDodatkowe(frame,i);
  				local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
  				return  nazwa_przestrzeni_nazw;
  			elseif(co_ma_liczyc==2)then
  				local n=PrzeDodatkowe(frame,i);
  				return (n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
  			end;
  		end;
  	else
  		if(numer_argorytmu==0)then
  			if((not co_ma_liczyc)or(co_ma_liczyc==0))then
  				local nazwa_przestrzeni_nazw,nazwa_jednostki;
  				nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i);
  				nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i);
  				return nazwa_przestrzeni_nazw,nazwa_jednostki;
  			elseif(co_ma_liczyc==1)then
  				local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i);
  				return nazwa_przestrzeni_nazw;
  			elseif(co_ma_liczyc==2)then
  				return pudelko_modul["Nazwa jednostki"](frame,i);
  			end;
  		else
  			if((not co_ma_liczyc)or(co_ma_liczyc==0))then
  				local nazwa_przestrzeni_nazw,nazwa_jednostki;
  				nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
  				nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
  				return nazwa_przestrzeni_nazw,nazwa_jednostki;
  			elseif(co_ma_liczyc==1)then
  				local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
  				return nazwa_przestrzeni_nazw;
  			elseif(co_ma_liczyc==2)then
  				return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
  			end;
  		end;
  	end;
end;
function p.Bledy_pudelka(frame, kod_liczbowy_przestrzeni_nazw)
  	local pf=frame:getParent();
  	local parametry_modul=require("Module:Parametry");
  	local zkategoria=not parametry_modul.CzyTak(frame.args["bez kategorii"] or pf.args["bez kategorii"]);
    local brudnopis_wikibooks=parametry_modul.CzyTak(frame.args["obsługiwany brudnopis projektu"]);
	local brudnopis_modul=parametry_modul.CzyTak(frame.args["obsługiwany brudnopis modułu"]);
	local brudnopis_szablon=parametry_modul.CzyTak(frame.args["obsługiwany brudnopis szablonu"]);
	local nieobslugiwane_strony=parametry_modul.CzyTak(frame.args["nieobsługiwane strony"]);
	
	local nieobslugiwane_strony_szablonow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony szablonów"]);
	local nieobslugiwane_strony_opisu_szablonow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony opisu szablonów"]);
	local nieobslugiwane_strony_modulow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony modułów"]);
	local nieobslugiwane_strony_opisu_modulow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony opisu szablonów"]);
	
	local nieobslugiwane_strony_brudnopisu_szablonow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony brudnopisu szablonów"]);
	local nieobslugiwane_strony_brudnopisu_opisu_szablonow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony brudnopisu opisu szablonów"]);
	local nieobslugiwane_strony_brudnopisu_modulow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony brudnopisu modułów"]);
	local nieobslugiwane_strony_brudnopisu_opisu_modulow=parametry_modul.CzyTak(frame.args["nieobsługiwane strona brudnopisu opisu modułów"]);
	
	local nieobslugiwane_strony_jednostek_programowych=parametry_modul.CzyTak(frame.args["nieobsługiwane strony jednostek programowych"]);
	local nieobslugiwane_strony_opisu_jednostek_programowych=parametry_modul.CzyTak(frame.args["nieobsługiwane strony opisu jednostek programowych"]);
	
	local nieobslugiwana_strony_glowne_uzytkownikow=nieobslugiwane_strony or parametry_modul.CzyTak(frame.args["nieobsługiwane strony główne użytkowników"]);
    local nieobslugiwana_strona_glowna_projektu=nieobslugiwane_strony or parametry_modul.CzyTak(frame.args["nieobsługiwana strona główna projektu"]);
	local nieobslugiwana_strona_glowna_dla_dzieci=nieobslugiwane_strony or parametry_modul.CzyTak(frame.args["nieobsługiwana strona główna dla dzieci"]);
	
	local obslugiwane_niebiezace_wiki=parametry_modul.CzyTak(frame.args["obsługiwane niebieżące wiki"]);
	local nieobslugiwane_polskie_wiki=parametry_modul.CzyTak(frame.args["nieobsługiwane polskie wiki"]);
	local nieobslugiwane_lokalne_wiki=parametry_modul.CzyTak(frame.args["nieobsługiwane lokalne wiki"]);
	
	local podkategoria_niebiezace_wiki;
	local wskazuje_wiki;
	local nazwij_jednostka=parametry_modul.CzyTak(frame.args["nazwij jednostką"] or pf.args["nazwij jednostką"]);
	local wylocz_niezaleznosc_od_nazwij_jednostka=parametry_modul.CzyTak(frame.args["wyłącz niezależność od nazwij jednostką"]);
	
	local pudelko_modul=require("Module:Pudełko");
  	local lancuch_bledow={};
  	local lancuch_kategorii_bledow={};
  	local czy_bez_szczegolow=not parametry_modul.CzyTak(frame.args["bez szczegółów"] or pf.args["bez szczegółów"]);
  	local wiki_modul=require("Module:Wiki");
  	local kod_jezyka_tego_projektu;
  	local kod_projektu_tego_projektu;
  	local pudelko_modul=require("Module:Pudełko");
  	function AnalizujDane(i)
  		local kod_jezyka;local kod_projektu;
  		if(obslugiwane_niebiezace_wiki)then
  	         kod_jezyka,kod_projektu=p.KodyWikiPudelka(frame,i);
  	    else
  	    	kod_jezyka=pudelko_modul["Kod języka tego projektu"]();
  	    	kod_projektu=pudelko_modul["Kod projektu tego projektu"]();
  	    end;
  	    if(i>0)then
  	    	if(obslugiwane_niebiezace_wiki)then
  	    		local klucz_projektu2=p.Klucz_projektu(frame,i);
  	    		local kod_jezyka2=p.Kod_jezyka(frame,i);
  	    		local kod_projektu2=p.Kod_projektu(frame,i);
  	    		podkategoria_niebiezace_wiki=podkategoria_niebiezace_wiki or (obslugiwane_niebiezace_wiki and (nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki)
  	    		                           and "polskie lub lokalne wiki" 
  	    		                           or ((nieobslugiwane_polskie_wiki and not nieobslugiwane_lokalne_wiki)
  	    		                                     and "polskie wiki" or "lokalne wiki"
  	    		                               ) or nil);
	            wskazuje_wiki=wskazuje_wiki or (obslugiwane_niebiezace_wiki and (nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki)
  	    		                           and "niepolski i nielokalny" 
  	    		                           or ((nieobslugiwane_polskie_wiki and not nieobslugiwane_lokalne_wiki)
  	    		                                      and "niepolski" or "nielokalny"
  	    		                               ) or nil);
  	    		if(not(klucz_projektu2 or kod_jezyka2 or kod_projektu2))then
  	    			if((nieobslugiwane_polskie_wiki)or(nieobslugiwane_lokalne_wiki))then
  	    				if(czy_bez_szczegolow)then
  	    					table.insert(lancuch_bledow,"<li>Nie podano, które wiki ma osbługiwać, dla zmiennych o numerze "..i..".</li>");
  	    					if(zkategoria)then
  								parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - "..podkategoria.."]]");
  							end; 
  	    				else
  	    			    	return "tak";
  	    				end;
  	    			end;
  	    		else
  	    			local wynik=wiki_modul:OddawajDaneKodyWiki(klucz_projektu2,kod_jezyka2,kod_projektu2);
  	    			if((type(wynik)=="table") and (wynik[4]) and (wynik[5])) then
  	    				if((nieobslugiwane_polskie_wiki)or(nieobslugiwane_lokalne_wiki))then
  	    					local pudelko_modul=require("Module:Pudełko");
  	    					local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
  	    					local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
  	    					local function projekt_lokalny_lub_polski_kategorie(podkategoria)
  	    						if(czy_bez_szczegolow)then
  									if(zkategoria)then
  										parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - "..podkategoria.."]]");
  									end; 
  	    						else
  	    		  					return "tak";
  	    						end;
  	    					end;
  	    		  			if(parametry_modul.CzyTak(klucz_projektu2))then
  	    		  				if((kod_jezyka)and(kod_projektu))then
  	    		  					if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then
  	    		  						table.insert(lancuch_bledow,"<li>Podany klucz projektu, a w nim: kod języka i kod projektu, nie wskazują na projekt "..wskazuje_wiki..", dla zmiennych o numerze "..i..".</li>");
  	    		  						projekt_lokalny_lub_polski_kategorie(podkategoria_niebiezace_wiki);
  	    		  					elseif(kod_jezyka==kod_jezyka_tego_projektu)then
      		  		    	    		table.insert(lancuch_bledow,"<li>Podany klucz projektu: a w nim: kod języka, nie wskazuje na projekt "..wskazuje_wiki..", dla zmiennych o numerze "..i..".</li>");
      		  		    	    		projekt_lokalny_lub_polski_kategorie(podkategoria_niebiezace_wiki);
  	    		  					elseif((nieobslugiwane_lokalne_wiki)and(kod_projektu==kod_projektu_tego_projektu))then
      		  		    	    		table.insert(lancuch_bledow,"<li>Podany klucz projektu: a w nim: kod projektu, nie wskazuje na projekt "..wskazuje_wiki..", dla zmiennych o numerze "..i..".</li>");
      		  		    	    		projekt_lokalny_lub_polski_kategorie(podkategoria_niebiezace_wiki);
      		  		    	    	end;
      		  					end;
  	    		  			else
  	    		  				if (kod_jezyka2 and kod_projektu2 
  	    		  					and (((nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki)
  	    		  					        and(((kod_jezyka2==kod_jezyka_tego_projektu)and(kod_projektu2~=kod_projektu_tego_projektu))
  	    		  					        	or((kod_jezyka2~=kod_jezyka_tego_projektu)and(kod_projektu2==kod_projektu_tego_projektu))
  	    		  					        	or((kod_jezyka2==kod_jezyka_tego_projektu)and(kod_projektu2==kod_projektu_tego_projektu))
  	    		  					       ))
  	    		  					      or((nieobslugiwane_polskie_wiki and not nieobslugiwane_lokalne_wiki)
  	    		  					        and(kod_jezyka2==kod_jezyka_tego_projektu))
  	    		  					       or((not nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki)
  	    		  					        and(kod_projektu2==kod_projektu_tego_projektu))
  	    		  				    ))then
  	    		  					table.insert(lancuch_bledow,"<li>Podany: kod języka i kod projektu, nie wskazują na projekt "..wskazuje_wiki..", dla zmiennych o numerze "..i..".</li>");
  	    		  					projekt_lokalny_lub_polski_kategorie(podkategoria_niebiezace_wiki);
  	    		  				    elseif(kod_jezyka2 and not kod_projektu2 and (((nieobslugiwane_polskie_wiki)and (kod_jezyka2==kod_jezyka_tego_projektu))or nieobslugiwane_lokalne_wiki))
      		  					    then
      		  		    	    	table.insert(lancuch_bledow,"<li>Podany kod języka nie wskazuje na projekt "..wskazuje_wiki..", dla zmiennych o numerze "..i..".</li>");
      		  		    	    	projekt_lokalny_lub_polski_kategorie(podkategoria_niebiezace_wiki);
      		  					    elseif(not kod_jezyka2 and kod_projektu2)and 
  		  		    	    	          ((nieobslugiwane_lokalne_wiki and (kod_projektu2==kod_projektu_tego_projektu))or nieobslugiwane_polskie_wiki)
  		  		    	    	    then
      		  		    	    	table.insert(lancuch_bledow,"<li>Podany kod projektu wskazuje na projekt "..wskazuje_wiki..", dla zmiennych o numerze "..i..".</li>");
      		  		    	    	projekt_lokalny_lub_polski_kategorie(podkategoria_niebiezace_wiki);
      		  		    	    end;
  	    		  			end;
  	    				end;
  	    			else
  	    				if(czy_bez_szczegolow)then
  	    					if(wynik[1])then
  	    						table.insert(lancuch_bledow,"<li>Podany klucz projektu, jest błędny, dla zmiennych o numerze "..i..".</li>");
  	    					elseif(not wynik[4] and not wynik[5])then
  	    						table.insert(lancuch_bledow,"<li>Podany: kod języka i kod projektu, są błędne, dla zmiennych o numerze "..i..".</li>");
  	    					elseif(not wynik[4])then
  	    						table.insert(lancuch_bledow,"<li>Podany kod języka, jest błędny, dla zmiennych o numerze "..i..".</li>");
  	    					elseif(not wynik[5])then
  	    						 table.insert(lancuch_bledow,"<li>Podany kod projektu, jest błędny, dla zmiennych o numerze "..i..".</li>");
  	    					end;
  	    					if(zkategoria)then
  								parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - błędne parametry wiki]]");
  							end; 
  	    				else
  	    					return "tak";
  	    				end;
  	    			end;
  	    		end;
  	    	end;
  	    end;
  	    local obslugiwane1=p.Czy_przestrzen_nazw_jest_obslugiwana(frame,"Template",kod_jezyka,kod_projektu);
    	local obslugiwane2=p.Czy_przestrzen_nazw_jest_obslugiwana(frame,"Module",kod_jezyka,kod_projektu);
     	local nazwa_strony_glownej_projektu=p.Nazwa_strony_glownej_projektu(kod_jezyka,kod_projektu);
     	local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_glownej_dla_dzieci(kod_jezyka)
  		local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,i)
  		local nazwy_modul=require("Module:Nazwy");
  		local wiki_modul=require("Module:Wiki");
  		local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  		local czy_blad_nazwa_przestrzeni_nazw;
  		if(czy_biezaca)then
  			czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
  		else
  			czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
  	    end;
  		if(not czy_blad_nazwa_przestrzeni_nazw)then
  			if((i==0)or ((i>0)and PrzeDodatkowe(frame,i)))then
  				if(czy_bez_szczegolow)then
  						table.insert(lancuch_bledow,(i==0)
  							and "<li>Wartość, nazwy przestrzeni nazw, dla korzystanej jednostki jest nieprawidłowa.</li>"
  							or "<li>Wartość, nazwy przestrzeni nazw, dla zmiennych o numerze "..i.." jest nieprawidłowa.</li>"
  	        				);
  					if(zkategoria)then
  						parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieprawidłowa nazwa przestrzeni nazw]]");
  					end; 
  				else
  					return "tak";
  				end;
  			end;
  		end;
  		if(nazwa_jednostki=="")then
  				if(czy_bez_szczegolow)then
  	 				table.insert(lancuch_bledow,(i==0)
  	 					and"<li>Wartość, nazwy jednostki, dla korzystanej jednostki jest pusta.</li>"
  	 					or"<li>Wartość, nazwy jednostki, dla zmiennych o numerze "..i.." jest pusta.</li>"
  	 					);
  	 				if(zkategoria)then
  						parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - pusta nazwa jednostki]]");
  	 				end; 
  	 			else
  	 				return "tak";
  				end;
		end;
		local mo, norm_przed_lub_dyskusji;
    	if(czy_blad_nazwa_przestrzeni_nazw)then
    		if(nazwa_jednostki~="")then
    			mo=(not nieprawidlowa_niepusta_pelna_nazwa_jednostki)and p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i) or nil;
    		end;
    		norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_przestrzen_nazw(czy_blad_nazwa_przestrzeni_nazw, kod_liczbowy_przestrzeni_nazw) or nil;
    	end;
		if((czy_blad_nazwa_przestrzeni_nazw)and(nazwa_jednostki~=""))then
			if((i==0)or ((i>0)and PrzeDodatkowe(frame,i)))then
				    local obslugiwane=czy_blad_nazwa_przestrzeni_nazw and p.Czy_przestrzen_nazw_jest_obslugiwana(frame,czy_blad_nazwa_przestrzeni_nazw,kod_jezyka,kod_projektu);
    				if((not obslugiwane)and((not mo)or(not(((czy_blad_nazwa_przestrzeni_nazw=="Project")and(brudnopis_wikibooks
    					  and((mo=="jednostka brudnopisu projektu")or(parametry_modul.CzyTak(nazwa_jednostki)and(mw.ustring.match(nazwa_jednostki,"^[Bb]rudnopis/.*"))))))
  			                   or((czy_blad_nazwa_przestrzeni_nazw=="Template")and(parametry_modul.CzyTak(brudnopis_szablon)
  			                   	and((mo=="strona brudnopisu szablonu")or(parametry_modul.CzyTak(nazwa_jednostki)and(mw.ustring.match(nazwa_jednostki,"^[Bb]rudnopis/.*"))))))
  			                      or((czy_blad_nazwa_przestrzeni_nazw=="Module")and(parametry_modul.CzyTak(brudnopis_modul)
  			                      	and((mo=="strona brudnopisu modułu")or(parametry_modul.CzyTak(nazwa_jednostki)and(mw.ustring.match(nazwa_jednostki,"^[Bb]rudnopis/.*")))))))))
    				)then
  						if(czy_bez_szczegolow)then
     						table.insert(lancuch_bledow,
     							(i==0)and"<li>Szablon wartości, nazwy przestrzeni nazw, dla korzystanej jednostki nie obsługuje.</li>"
     				    		or"<li>Szablon wartości, nazwy przestrzeni nazw, dla zmiennych o numerze "..i.." nie obsługuje.</li>"
     	        			);
     						if(zkategoria)then
  								parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieobsługiwana przestrzeń nazw]]");
     						end; 
     					else
     						return "tak";
  						end;
					end;
			end;
	   end;
       local nieprawidlowa_niepusta_pelna_nazwa_jednostki=false;
       if(czy_blad_nazwa_przestrzeni_nazw and nazwa_jednostki~="")then
     		nieprawidlowa_niepusta_pelna_nazwa_jednostki=p.CzyNiepoprawnaNiePustaNazwaJednostki(((parametry_modul.CzyTak(czy_blad_nazwa_przestrzeni_nazw))and czy_blad_nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki);
     		if(nieprawidlowa_niepusta_pelna_nazwa_jednostki)then
  				if(czy_bez_szczegolow)then
        			table.insert(lancuch_bledow,
        				(i==0)and"<li>Wartość, nazwy jednostki, dla korzystanej jednostki jest nieprawidłowa.</li>"
        				      or"<li>Wartość, nazwy jednostki, dla zmiennych o numerze "..i.." jest nieprawidłowa.</li>"
        				);
     				if(zkategoria)then
  						 parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieprawidłowa nazwa jednostki]]");
     				end; 
  				else
  					return "tak";
  				end;
  			end;
  		end;
  		if(czy_blad_nazwa_przestrzeni_nazw)and(nazwa_jednostki~="")then
    		if((not nieprawidlowa_niepusta_pelna_nazwa_jednostki)and((czy_blad_nazwa_przestrzeni_nazw=="")and(nazwa_jednostki~="")))then
     			local nazwy_modul=require("Module:Nazwy");
     			local nowa_nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
     			if(nowa_nazwa_przestrzeni_nazw~="")then
  					if(czy_bez_szczegolow)then
     	  					 table.insert(lancuch_bledow,
     	  			 			(i==0)and"<li>Zmienna <code>nazwa jednostki</code> zawiera w sobie przestrzeń.</li>"
     	  			 	    	  or"<li>Zmienna nienazwana "..i.." zawiera w sobie przestrzeń.</li>"
     	  					);
     	  				if(zkategoria)then
  			    				parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nazwa jednostki zawierająca w sobie przestrzeń]]");
     	  				end; 
     	  			else
     	  				return "tak";
  	    			end;
     			end;
    		end;
    	end;
    	if((obslugiwane1)and(mo)and(mo=="strona szablonu")and((nieobslugiwane_strony_szablonow)or (nieobslugiwane_strony_jednostek_programowych)))then
  				if(czy_bez_szczegolow)then
    				table.insert(lancuch_bledow,
     	  				 (i==0)and"<li>Strona szablonu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona szablonu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    		parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieobsługiwana strona szablonu]]");
     	  			end; 
     	  		else
     	  			return "tak";
  	    		end;
    	end;
    	if((obslugiwane1)and(mo)and(mo=="strona opisu szablonu")and((nieobslugiwane_strony_opisu_szablonow)or (nieobslugiwane_strony_opisu_jednostek_programowych)))then
  				if(czy_bez_szczegolow)then
    				table.insert(lancuch_bledow,
     	  					 (i==0)and"<li>Strona opisu szablonu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona opisu szablonu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  					);
     	  			if(zkategoria)then
  			    		parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieobsługiwana strona opisu szablonu]]");
     	  			end;	 
     	  		else
     	  			return "tak";
  	    		end;
    	end;
    	if((obslugiwane2)and(mo)and(mo=="strona modułu")and((nieobslugiwane_strony_modulow)or (nieobslugiwane_strony_jednostek_programowych)))then
  				if(czy_bez_szczegolow)then
    				table.insert(lancuch_bledow,
     	  				 (i==0)and"<li>Strona modułu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona modułu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    		parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieobsługiwana strona modułu]]");
     	  			end; 
     	  		else
     	  			return "tak";
  	    		end;
    	end;
    	if((obslugiwane2)and(mo)and(mo=="strona opisu modułu")and((nieobslugiwane_strony_opisu_modulow)or (nieobslugiwane_strony_opisu_jednostek_programowych)))then
  				if(czy_bez_szczegolow)then
    				table.insert(lancuch_bledow,
     	  					 (i==0)and"<li>Strona opisu modułu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona opisu modułu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    		parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieobsługiwana strona opisu modułu]]");
     	  			end; 
     	  		else
     	  			return "tak";
  	    		end;
    	end;    	
    	if((mo)and(mo=="strona brudnopisu szablonu")and((nieobslugiwane_strony_brudnopisu_szablonow)or (nieobslugiwane_strony_jednostek_programowych)))then
  				if(czy_bez_szczegolow)then
    				table.insert(lancuch_bledow,
     	  				 (i==0)and"<li>Strona brudnopisu szablonu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona brudnopisu szablonu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    			parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieobsługiwana strona brudnopisu szablonu]]");
     	  			end; 
     	  		else
     	  			return "tak";
  	    		end;
    	end;
    	if((mo)and(mo=="strona brudnopisu opisu szablonu")and((nieobslugiwane_strony_brudnopisu_opisu_szablonow)or (nieobslugiwane_strony_opisu_jednostek_programowych)))then
  				if(czy_bez_szczegolow)then
    				table.insert(lancuch_bledow,
     	  				 (i==0)and"<li>Strona brudnopisu opisu szablonu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona brudnopisu opisu szablonu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    		parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieobsługiwana strona brudnopisu opisu szablonu]]");
     	  			end; 
  	    		else
  	    			return "tak";
  	    		end;
    	end;
    	if((mo)and(mo=="strona brudnopisu modułu")and((nieobslugiwane_strony_brudnopisu_modulow)or (nieobslugiwane_strony_jednostek_programowych)))then
  				if(czy_bez_szczegolow)then
    				table.insert(lancuch_bledow,
     	  				 (i==0)and"<li>Strona brudnopisu modulu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona brudnopisu modułu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    			parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieobsługiwana strona brudnopisu modułu]]");
     	  			end; 
     	  		else
     	  			return "tak";
  	    		end;
    	end;
    	if((mo)and(mo=="strona brudnopisu opisu modułu")and((nieobslugiwane_strony_brudnopisu_opisu_modulow)or (nieobslugiwane_strony_opisu_jednostek_programowych)))then
  				if(czy_bez_szczegolow)then
    				table.insert(lancuch_bledow,
     	  				 (i==0)and"<li>Strona brudnopisu opisu modułu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona brudnopisu opisu modułu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    				parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieobsługiwana strona brudnopisu opisu modułu]]");
     	  			end; 
     	  		else
     	  			return "tak";
  	    		end;
    	end;    	    	
    	if(((i>0)and(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i]))
    		     or ((i==0)and(frame.args["strona główna projektu"] or pf.args["strona główna projektu"])))then
    		local projekt=p.Pobierz_ze_zmiennej_strone_glowna_projektu(frame,i,kod_jezyka,kod_projektu);
    	    projekt=(not projekt)and nazwa_strony_glownej_projektu or projekt;
    		if(projekt=="")then
  				if(czy_bez_szczegolow)then
     				table.insert(lancuch_bledow,
     				      (i==0)and"<li>Wartość nazwy, strony głównej projektu, dla zmiennej <code>strona główna projektu</code> jest pusta.</li>"
     						    or "<li>Wartość nazwy, strony głównej projektu, dla zmiennej <code>strona główna projektu .."..i.."</code> jest pusta.</li>"
     					);
     				if(zkategoria)then
  		    			parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - pusta nazwa strony głównej projektu]]");
     				end; 
  				else
  					return "tak";
  				end;
    		elseif(not mw.ustring.match(projekt,"^[^/]+$"))then
  				if(czy_bez_szczegolow)then
 	    	    	table.insert(lancuch_bledow,
 	    	    			(i==0)and"<li>Wartość nazwy, strony głównej projektu, dla zmiennej <code>strona główna projektu</code> zawiera prawe ukośniki.</li>"
     						      or "<li>Wartość nazwy, strony głównej projektu, dla zmiennej <code>strona główna projektu "..i.."</code> zawiera prawe ukośniki</li>"
     						 );
     	    		if(zkategoria)then
  		    			parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieprawidłowa nazwa strony głównej projektu]]");
     	    		end; 
     	    	else
     	    		return "tak";
  				end;
  			elseif(p.CzyNiepoprawnaNiePustaNazwaJednostki(projekt))then
  				if(czy_bez_szczegolow)then
 	    	    	table.insert(lancuch_bledow,
 	    	    			(i==0)and"<li>Wartość nazwy, strony głównej projektu, w zmiennej <code>strona główna projektu</code> ma nazwę niepustą nieprawidłową.</li>"
     						      or "<li>Wartość nazwy, strony głównej projektu, w zmiennej <code>strona główna projektu "..i.."</code> ma nazwę niepustą nieprawidłową.</li>"
     						 );
     	    		if(zkategoria)then
  		    			parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieprawidłowa nazwa strony głównej projektu]]");
     	    		end;   				
     	    	else
     	    		return "tak";
  				end;
			end;
		end;
		local typ=frame.args["typ jednostki"..((i)and((i~=0))and (" "..i) or "")] or pf.args["typ jednostki"..((i)and((i~=0))and (" "..i) or "")];
		if((czy_blad_nazwa_przestrzeni_nazw)and(nazwa_jednostki~="")and(not nieprawidlowa_niepusta_pelna_nazwa_jednostki))then
    		if(nieobslugiwana_strona_glowna_projektu)then
    			if(mo=="strona główna projektu")then
  					if(czy_bez_szczegolow)then
    				   if(typ~="strona główna projektu")then
    							table.insert(lancuch_bledow,
    										(i==0)and"<li>Wstawiono szablon na stronę główną projektu.</li>"
     						            			or ((frame.args["strona główna projektu "..i] 
                                            			or pf.args["strona główna projektu "..i])and"<li>Szablon, wskazuje na stronę główna projektu, według zmiennej <code>strona główna projektu "..i.."</code>, dla zmiennych o numerze "..i..".</li>"
     						                					or"<li>Szablon, wskazuje na stronę główną projektu, dla zmiennych o numerze "..i..".</li>"
     						    				));
     		    		else
     							table.insert(lancuch_bledow,(i==0)and "<li>Wstawiono szablon, na stronę, z ustawioną wartością <code>typ jednostki = strona główna projektu</code>.</li>"
     								                                                       or"<li>Wstawiono szablon, na stronę, z ustawioną wartością <code>typ jednostki "..i.." = strona główna projektu</code>.</li>"
     								                                             );
                        end;
     					if(zkategoria)then
  		    				parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieobsługiwana strona główna projektu]]");
     					end; 
     				else
     					return "tak";
     				end;
  				end;
	    	end;
		end;
		if(kod_projektu==require("Module:Pudełko")["Kod projektu tego projektu"]())then
			if(((i>0)and(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i]))
    		     or ((i==0)and(frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"])))then
				local junior=p.Pobierz_ze_zmiennej_strone_glowna_dla_dzieci(frame,i,kod_jezyka,kod_projektu);
    	    	junior=(not junior)and nazwa_strony_glownej_wikijuniora or junior;
				if(junior=="")then
  					if(czy_bez_szczegolow)then
	     					table.insert(lancuch_bledow,
	     						(i==0)and"<li>Wartość nazwy, strony głównej dla dzieci, w zmiennej <code>strona główna dla dzieci</code> jest pusta.</li>"
     						    	   or "<li>Wartość nazwy, strony głównej dla dzieci, w zmiennej <code>strona główna dla dzieci .."..i.."</code> jest pusta.</li>"
     				    		);
    	 					if(zkategoria)then
  			    				parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - pusta nazwa strony głównej dla dzieci]]");
    	 					end; 
  					else
  						return "tak";
  					end;
    			elseif(not mw.ustring.match(junior,"^[^/]+$"))then
  					if(czy_bez_szczegolow)then
 	        			table.insert(lancuch_bledow,
 	        					(i==0)and"<li>Wartość nazwy, strony głównej dla dzieci, w zmiennej <code>strona główna dla dzieci</code> zawiera prawe ukośniki.</li>"
     						    	  or"<li>Wartość nazwy, strony głównej dla dzieci, w zmiennej <code>strona główna dla dzieci "..i.."</code> zawiera prawe ukośniki.</li>"
     						);
     					if(zkategoria)then
  		    				parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieprawidłowa nazwa strony głównej dla dzieci]]");
     					end; 
  					else
  						return "tak";
  					end;
  				elseif(p.CzyNiepoprawnaNiePustaNazwaJednostki(junior))then
  					if(czy_bez_szczegolow)then
  						table.insert(lancuch_bledow,
 	        					(i==0)and"<li>Wartość nazwy, strony głównej dla dzieci, w zmiennej <code>strona główna dla dzieci</code> ma nazwę niepustą nieprawidłową.</li>"
     						    	  or"<li>Wartość nazwy, strony głównej dla dzieci, w zmiennej <code>strona główna dla dzieci "..i.."</code> ma nazwę niepustą nieprawidłową.</li>"
     						);
     					if(zkategoria)then
	  		    			parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieprawidłowa nazwa strony głównej dla dzieci]]");
     					end; 
  					else
  						return "tak";
  					end;
				end; 
			end;
			if((czy_blad_nazwa_przestrzeni_nazw)and(nazwa_jednostki~="")and(not nieprawidlowa_niepusta_pelna_nazwa_jednostki))then
    			if(nieobslugiwana_strona_glowna_dla_dzieci)then
    				if(mo=="strona główna dla dzieci")then
  						if(czy_bez_szczegolow)then
    					    if(typ~="strona główna dla dzieci")then
     									table.insert(lancuch_bledow,
     											(i==0)and"<li>Wstawiono szablon na stronę główną dla dzieci.</li>"
     						            				or ((frame.args["strona główna dla dzieci "..i] 
                                            				or pf.args["strona główna dla dzieci "..i])and"<li>Szablon, wskazuje na stronę główną dla dzieci, według zmiennej <code>strona główna dla dzieci .."..i..", dla zmiennych o numerze "..i..".</code>.</li>"
     						                						or"<li>Szablon, wskazuje na stronę główną dla dzieci, dla zmiennych o numerze "..i..".</li>"
     						        				));
     						else
     							table.insert(lancuch_bledow,(i==0)and "<li>Wstawiono szablon, na stronę, z ustawioną wartością <code>typ jednostki = strona główna dla dzieci</code>.</li>"
     								                                                            or"<li>Wstawiono szablon, na stronę, z ustawioną wartością <code>typ jednostki "..i.." = strona główna dla dzieci</code>.</li>"
                                                                                                 );     								                                                       
     						end                                                  
     						if(zkategoria)then
  		    					parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieobsługiwana strona główna dla dzieci]]");
     						end; 
  						else
  							return "tak";
  						end;
  					end;
				end;
			end;
		end;
		local obslugiwane3=(czy_blad_nazwa_przestrzeni_nazw)and((norm_przed_lub_dyskusji=="User") and p.Czy_przestrzen_nazw_jest_obslugiwana(frame,"User",kod_jezyka,kod_projektu));
		if((czy_blad_nazwa_przestrzeni_nazw)and(nazwa_jednostki~="")and(not nieprawidlowa_niepusta_pelna_nazwa_jednostki)and(obslugiwane3))then
        	if(nieobslugiwana_strony_glowne_uzytkownikow)then
        		if((mo~="jednostka użytkownika")and(mo~="strona główna użytkownika"))then
  					if(czy_bez_szczegolow)then
    					if(mw.ustring.match(nazwa_jednostki,"^[^/]+$"))then
    	  					table.insert(lancuch_bledow,
    	  					  	(i==0)and "<li>Wstawiono szablon na stronę główną użytkownika.</li>"
    	  				  		      or"<li>Szablon, wskazuje na stronę główną użytkownika, dla zmiennych o numerze "..i..".</li>"
    	  				  		);
     	  					if(zkategoria)then
  		    					parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieobsługiwana strona główna użytkownika]]");
  							end; 
    					end;
					else
						return "tak";
					end;
        		elseif(mo=="strona główna użytkownika")then
  					if(czy_bez_szczegolow)then
					  	table.insert(lancuch_bledow,
    	  					  	(i==0)and "<li>Wstawiono szablon na stronę główną użytkownika.</li>"
    	  				  		      or"<li>Szablon, wskazuje na stronę główną użytkownika, dla zmiennych o numerze "..i..".</li>"
    	  				  		);
     	  				if(zkategoria)then
  		    				parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieobsługiwana strona główna użytkownika]]");
     	  				end; 
  					else
  						return "tak";
  					end;
				end;
			end;
		end;
		if((not nieprawidlowa_niepusta_pelna_nazwa_jednostki)
			    and((not wylocz_niezaleznosc_od_nazwij_jednostka)or(not nazwij_jednostka))
			         and(mo=="(błąd typu jednostki)")
			         and(((i>0)and((frame.args["typ jednostki "..i])or(pf.args["typ jednostki "..i])))
			         or ((i==0)and((frame.args["typ jednostki"])or (pf.args["typ jednostki"]))))
		)then
  			if(czy_bez_szczegolow)then
     	    	table.insert(lancuch_bledow,
     	    			(i==0)and"<li>Podana wartość zmiennej <code>typ jednostki</code> jest nieprawidłowa.</li>"
     	    		    	  or "<li>Podana wartość zmiennej <code>typ jednostki "..i.."</code> jest nieprawidłowa.</li>"
     	    	    	);
     			if(zkategoria)then
  					parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - nieprawidłowa wartość typu jednostki]]");
     			end;     	
  			else
  				return "tak";
  			end;
		end;
  	  	if(not czy_bez_szczegolow)then return "";end;
  	end;
	local num=frame.args["nazwy jednostki numerowane"];
	if(parametry_modul.CzyTak(num))then 
		AnalizujDane(0);
		local i=1;
		local maksymalny_numer_elementu_nienazwanego=frame.args["maksymalny numer argumentu nienazwanego"];
		local czy_maksymalny_numer_elementu_nienazwanego=parametry_modul.CzyTak(maksymalny_numer_elementu_nienazwanego);
		local num2;
		if(czy_maksymalny_numer_elementu_nienazwanego)then
			num2=tonumber(maksymalny_numer_elementu_nienazwanego) or 0;
		else
			num2=0;
		end;
		local minimum_z_numerem_dodatkowego_warunku,maksimum_z_numerem_dodatkowego_warunku=parametry_modul.MinimalnyIMaksymalnyNumerParametru(frame.args,"nazwa jednostki");
		maksimum_z_numerem_dodatkowego_warunku=math.max(maksimum_z_numerem_dodatkowego_warunku,parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(pf.args));
	    if(pf.args["cel"])then maksimum_z_numerem_dodatkowego_warunku=math.max(1,maksimum_z_numerem_dodatkowego_warunku);end;
	    
	    minimum_z_numerem_dodatkowego_warunku=math.min(minimum_z_numerem_dodatkowego_warunku,parametry_modul.MinimalnaLiczbaParametruNienazwanegoTablicy(pf.args));
	    if(pf.args["cel"])then minimum_z_numerem_dodatkowego_warunku=math.min(1,minimum_z_numerem_dodatkowego_warunku);end;
	    if(czy_maksymalny_numer_elementu_nienazwanego)then 
	    	if(num2>0)then
	    		if(maksimum_z_numerem_dodatkowego_warunku>0)then
	    			if(minimum_z_numerem_dodatkowego_warunku>num2)then 
	    				maksimum_z_numerem_dodatkowego_warunku=0;
	    			elseif(maksimum_z_numerem_dodatkowego_warunku>=num2)then
	    				for i=num2,1,-1 do
	    					local wartosc_parametru=(((i>1)and frame.args["nazwa jednostki "..tostring(i)])or ((i==1)and (frame.args["nazwa jednostki 1"] or frame.args["nazwa jednostki"]))or  ((i==1)and(frame:getParent().args["cel"])) or frame:getParent().args[i]);
	    					if(wartosc_parametru)then
	    						maksimum_z_numerem_dodatkowego_warunku=i;
	    						break;
	    					end;
	    				end;
	    			end;
	    		end;
	    	end;
	    end;
	    
	    local tabelka_braku_zmiennych={};
	    for i=1,maksimum_z_numerem_dodatkowego_warunku,1 do
		    local wartosc_parametru=(((i>1)and frame.args["nazwa jednostki "..tostring(i)])or ((i==1)and (frame.args["nazwa jednostki 1"] or frame.args["nazwa jednostki"]))or  ((i==1)and(frame:getParent().args["cel"])) or frame:getParent().args[i]);
	        if(not wartosc_parametru)then
	        	  if(czy_bez_szczegolow)then
                       tabelka_braku_zmiennych[#tabelka_braku_zmiennych+1]=i;
  					else
  						return "tak";
  					end;
	        else
				local wynik=AnalizujDane(i);
				if((not czy_bez_szczegolow)and(wynik~=""))then return wynik;end;
			end;
	    end;
	    if(czy_bez_szczegolow)then
	    	if(parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka_braku_zmiennych))then
	    		local str_braku_parametru="";
	    		for i,wartosc in ipairs(tabelka_braku_zmiennych)do
	    			str_braku_parametru=str_braku_parametru..((str_braku_parametru=="")and "" or ((tabelka_braku_zmiennych[i+1])and ", " or " i "))..wartosc;
	    		end;
		    	table.insert(lancuch_bledow,"<li>Brak parametrów o numerach: "..str_braku_parametru..", w obsługiwanym zakresie zmiennych.</li>");
     			if(zkategoria)then
  		    		 parametry_modul.DodajElementDoZbioru(lancuch_kategorii_bledow,"[[{{Category}}:{{pierwszy człon kategorii błędu}} - brak parametrów]]");
     			end; 
	    	end;
 		end;
	else
		local wynik=AnalizujDane(0);
		if((not czy_bez_szczegolow)and(wynik~=""))then return wynik;end;
	end;
	local lancuch_kategorii_bledow_zlaczony=table.concat(lancuch_kategorii_bledow,"");
    local minimum_z_numerem_dodatkowego_warunku,maksimum_z_numerem_dodatkowego_warunku=parametry_modul.MinimalnyIMaksymalnyNumerParametru(frame.args,"dodatkowy warunek");
    for i=minimum_z_numerem_dodatkowego_warunku, maksimum_z_numerem_dodatkowego_warunku,1 do
       local wartosc_parametru=(i>1)and frame.args["dodatkowy warunek "..i] or ((i==1)and frame.args["dodatkowy warunek 1"] or frame.args["dodatkowy warunek"]);
	   if(parametry_modul.CzyTak(wartosc_parametru))then
  			if(czy_bez_szczegolow)then
				local bledy_dodatkowego_warunku=frame.args["błędy dodatkowego warunku "..i];
				if(parametry_modul.CzyTak(bledy_dodatkowego_warunku))then
					local bledy_w_postaci_kategorii="<li>"..bledy_dodatkowego_warunku.."</li>";
    				table.insert(lancuch_bledow,bledy_dodatkowego_warunku);
    				if(zkategoria)then
    					local bledy_w_postaci_kategorii=frame.args["dodatek kategorii błędu dodatkowego warunku "..i];
    				    if(parametry_modul.CzyTak(bledy_w_postaci_kategorii))then
    						local bledy_w_postaci_kategorii="[[{{Category}}:{{pierwszy człon kategorii błędu}} - "..bledy_w_postaci_kategorii.."]]";
  		        			lancuch_kategorii_bledow_zlaczony=lancuch_kategorii_bledow_zlaczony..bledy_w_postaci_kategorii;
  		        		else
  		        			lancuch_kategorii_bledow_zlaczony=lancuch_kategorii_bledow_zlaczony.."[[{{Category}}:{{pierwszy człon kategorii błędu}} - błędne wywołania]]";
  		        		end;
    				end;
  	    		else
  	    	    	table.insert(lancuch_bledow,"<li>Błąd wywołania szablonu.</li>");
  	    			if(zkategoria)then
  	    				local bledy_w_postaci_kategorii=frame.args["dodatek kategorii błędu dodatkowego warunku"];
  	    				if(parametry_modul.CzyTak(bledy_w_postaci_kategorii))then
  	    					local bledy_w_postaci_kategorii="[[{{Category}}:{{pierwszy człon kategorii błędu}} - "..bledy_w_postaci_kategorii.."]]";
  	    			        lancuch_kategorii_bledow_zlaczony=lancuch_kategorii_bledow_zlaczony..bledy_w_postaci_kategorii;
  	    			    else
  		        			lancuch_kategorii_bledow_zlaczony=lancuch_kategorii_bledow_zlaczony.."[[{{Category}}:{{pierwszy człon kategorii błędu}} - błędne wywołania]]";
  		        		end;
  		    		end;
				end;
  	    	else
  	    		return "tak";
  	    	end;
  		end;
    end;
  	if(not czy_bez_szczegolow)then return "";end;
    local i=1;
    local templates={};
    templates["{{Category}}"]="Category";
    local lancuch_kategorii_bledow_zlaczony2="";
    local minimum_z_numerem_dodatkowego_warunku,maksimum_z_numerem_dodatkowego_warunku=parametry_modul.MinimalnyIMaksymalnyNumerParametru(frame.args,"pierwszy człon kategorii błędu");
	for i=minimum_z_numerem_dodatkowego_warunku,maksimum_z_numerem_dodatkowego_warunku,1 do
         local pierwszy_czlon_kategorii_bledow=(i>1)and frame.args["pierwszy człon kategorii błędu "..i] or (frame.args["pierwszy człon kategorii błędu "..1] or frame.args["pierwszy człon kategorii błędu"] );
         templates["{{pierwszy człon kategorii błędu}}"]=pierwszy_czlon_kategorii_bledow;
         lancuch_kategorii_bledow_zlaczony2=lancuch_kategorii_bledow_zlaczony2..mw.ustring.gsub(lancuch_kategorii_bledow_zlaczony,"{{[%w%s]+}}",templates);
         i=i+1;
    end;
    local lancuch=table.concat(lancuch_bledow,"")..lancuch_kategorii_bledow_zlaczony2;
    if(lancuch~="")then lancuch="<ul>"..lancuch.."</ul>";end;
    return lancuch;
 end;
 function PrzeDodatkowe(frame,numer_jednostki)
  	 return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or frame:getParent().args["nazwa przestrzeni nazw "..tostring(numer_jednostki)]
 end;
function p.Jaka_nazwa_jednostki(frame,i,jaka)
  	local pf=frame:getParent();
  	local numer_jednostki=i or frame.args["numer jednostki"];
  	local liczba_numer_jednostki=tonumber(numer_jednostki) or 0;
  	local nazwa_jednostki;
  	local bool_numer_jednostki=(liczba_numer_jednostki~=0);
  	if bool_numer_jednostki then
  		nazwa_jednostki=frame.args["nazwa jednostki "..liczba_numer_jednostki] or ((liczba_numer_jednostki==1)and(frame:getParent().args["cel"])) or frame:getParent().args[liczba_numer_jednostki];
	else
 	    nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"];
 	end;
  	local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki]) 
  	    or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"];
  	local nazwy_modul=require("Module:Nazwy");
  	nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{};
  	nazwa_jednostki=nazwa_jednostki and mw.text.trim(nazwa_jednostki) or nazwy_modul["NAZWASTRONY"]{};
  	local kod_jezyka,kod_projektu=p.KodyWikiPudelka(frame,liczba_numer_jednostki);
  	local wiki_modul=require("Module:Wiki");
  	local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  	if(jaka)then
  		if(czy_biezaca)then
  	    	nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak"};
  	    else
  	    	nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  	    end;
  	else
  		if(czy_biezaca)then
  			nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw};
  		else
  			nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  		end;
  	end;
  	if(not mw.ustring.match(nazwa_jednostki,"^:"))then
  		if(nazwa_przestrzeni_nazw~="")then 
  			if(czy_biezaca)then
  				local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
  				if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then
  					local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
  					if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then
  						return nazwy_modul["NAZWASTRONY"](nazwa_jednostki);
  					end;
  				elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then
  					local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
  					if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then
						return nazwy_modul["NAZWASTRONY"](nazwa_jednostki);
  					end;
  				end;
  			else
  				local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  				local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  				if(nazwa_przestrzeni_nazw==template_prze)then
  					local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  					if(nazwa_przestrzeni_nazw_d==template_prze)then
  						return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  					end;
  				elseif(nazwa_przestrzeni_nazw==module_prze)then
  					local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  					if(nazwa_przestrzeni_nazw_d==module_prze)then
						return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  					end;
  				end;
  			end;
  			 return  mw.getContentLanguage():ucfirst(nazwa_jednostki);
  		else
  	    	return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  		end;
  	else
  		return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  	end;
  end;
function p.CzyNiepoprawnaNiePustaNazwaJednostki(nazwa_jednostki)
	return mw.ustring.match(nazwa_jednostki,"[{}|%[%]#\n]+");
end;
function p.CechaPudelkowa(frame,__funkcja)
  local parametry_modul=require("Module:Parametry");
  local parametry_pudelka=frame:getParent().args["parametry pudełka"]
  if(parametry_modul.CzyTak(parametry_pudelka))then
  	return require("Module:Pudełko/ParametryCechy")["Parametry ogólnego pudelka"](frame);
  end;
  local wymuszenie_bledu=frame.args["wymuszenie błędu"];
  local funkcja=frame.args["funkcja cechowania"];
  if(not parametry_modul.CzyTak(funkcja))then funkcja=__funkcja;end;
  local modul=frame.args["moduł"];
  if(not parametry_modul.CzyTak(modul))then modul="Pudełko";end;
  local cecha=require("Module:"..modul)[funkcja](frame);
  return cecha;
end;
function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu)		
  	local pf=frame:getParent();
  	local nazwy_modul=require("Module:Nazwy");
  	local parametry_modul=require("Module:Parametry");
  	local wiki_modul=require("Module:Wiki");
  	local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  	if(czy_biezaca)then
  		jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw};
  	else
  		jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  	end;
  	local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter)
  		if(czy_biezaca)then
  			nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter};
  		else
  			nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
  		end;
  		if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then
  	   		return true;
  		end;
  		return false;
  	end;
  	for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do
  		if(type(licznik)=="number")then
  			local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*");
  			if(nazwa_przestrzeni_nazw_element and klucze_element)then
  				local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false);
  				local wiki_modul=require("Module:Wiki");
  				for _,klucz_element in ipairs(tab_klucze)do
  					local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element);
  					if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then
  						local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element);
  						if(wynik)then return true;end;
  					end;
  				end;
  			else
  				local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw);
  				if(wynik)then return true;end;
  			end;
     	end;
  end;
  return false;	
end;
function p.AnalizaKodowWiki(frame,czy_jezyk,czy_projekt)
	local parametry_modul=require("Module:Parametry");
	local p=parametry_modul.CzyTak(frame["wyspecjalizowana"])and frame or frame:getParent();
  	local pudelko_modul=require("Module:Pudełko");
  	local wiki_modul=require("Module:Wiki");
  	local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"]();
  	local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"]();
  	for i,_ in pairs(p.args)do
  		if(type(i)=="number")then
  			local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i);
  			local kod_jezyka=pudelko_modul["Kod języka"](frame,i);
  			local kod_projektu=pudelko_modul["kod projektu"](frame,i);
  			local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
  			if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then
  				return "tak";
  			end;
  		end;
  	end;
  	return;
end;
return p;