Dokumentacja modułu [stwórz] [odśwież]
local m={};
function ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
  if(przedmiotowa)then
      return uchwyt_przestrzeni_nazw.subject;
  elseif(dyskusja)then
      return uchwyt_przestrzeni_nazw.talk;
  else
      return uchwyt_przestrzeni_nazw;
  end;
end;
function WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
	local parametry_modul=require("Module:Parametry");
	if(uchwyt_przestrzeni_nazw)then
		if(((uchwyt_przestrzeni_nazw.canonicalName=="Project")and(nazwij_projektem))
			or ((uchwyt_przestrzeni_nazw.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
				return uchwyt_przestrzeni_nazw.canonicalName;
		end;
		if(uchwyt_przestrzeni_nazw.canonicalName~=uchwyt_przestrzeni_nazw.name)then return uchwyt_przestrzeni_nazw.canonicalName;end;
		local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
        for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy)do
           if(uchwyt_przestrzeni_nazw.name==nazwa_niekanoniczna_przestrzeni_nazw)then
               return nazwa_kanoniczna_przestrzeni_nazw;
           end;
        end;
        return uchwyt_przestrzeni_nazw.canonicalName;
	else
		return nil;
	end;
end;
function NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu)
	local uchwyt_przestrzeni_glownej=mw.site.namespaces[""];
	return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu);
end;
function OperacjeKreskaPoziomaDolna(myslnik,nazwa)
   local parametry_modul=require("Module:Parametry");
   if(myslnik)then
        nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+","_");
   else 
       nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+"," ");
   end;
   return mw.getContentLanguage():ucfirst(nazwa2);
end;
function NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik)
   local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
   for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_nazwy_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy)do
      local nazwa_kanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw,"(.)"
      	                                                               ,function (s) 
      	                                                               	                return ((mw.ustring.match(s,"^%a$"))
      	                                                               	                	       and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);
  	                                                               	                	       end 
  	                                                               	     );
      nazwa_kanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw2,"%s+","[%s_]");
      if(nazwa_kanoniczna_przestrzeni_nazw2)then
    		if(mw.ustring.match((nazwa)and nazwa or "","^%s*"..nazwa_kanoniczna_przestrzeni_nazw2.."%s*$"))then
      			local uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_niekanoniczna_nazwy_przestrzeni_nazw];
                return uchwyt_przestrzeni_nazw;
    		end;
	  end;
   end;
   return nil;
end;
function DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
	local uchwyt_przestrzeni_nazw2=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw);
    if(uchwyt_przestrzeni_nazw2)then
    	if(kanoniczna)then
    		local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
    		if(kanoniczna_nazwa)then
    			return OperacjeKreskaPoziomaDolna(myslnik,kanoniczna_nazwa);
    		else
    			return nil;
    		end;
    	else
    		return OperacjeKreskaPoziomaDolna(myslnik,uchwyt_przestrzeni_nazw2.name);
    	end;
    else
    	return nil;
    end;
end;
function TranslacjaNieBazowejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
    if((nazwa)and(mw.ustring.match(nazwa,"^%s*[%+%-]?%d+%s*$")))then
    	local uchwyt_przestrzeni_nazw=mw.site.namespaces[tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))];
    	if(uchwyt_przestrzeni_nazw)then
            return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
    	else
    		return nil;
    	end;
    else
    	local uchwyt_przestrzeni_nazw=mw.site.namespaces[(nazwa)and nazwa or ""];
    	if(uchwyt_przestrzeni_nazw)then
             return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
    	else
    		local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik);
    		if(uchwyt_przestrzeni_nazw)then
                 return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
            else
                  if(czy_istnieje)then
                  	  return nil;
                  else
                  	  return OperacjeKreskaPoziomaDolna(myslnik,nazwa);
                  end;
            end;
    	end;
    end;
end;
function TranslacjaNazwyPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,wyswietlana,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
	local parametry_modul=require("Module:Parametry");
	if(wyswietlana)then
		if(parametry_modul.CzyTak(nazwa))then
			if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
				local nazwa2=NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
				if((nazwa2)and(nazwa2==""))then
					if(kanoniczna)then
						return "(main)";
					else
				    	return "(główna)";
				    end;
				else
					return nazwa2;
				end;
			else
				 local nazwa2=TranslacjaNieBazowejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
				 if((nazwa2)and(nazwa2==""))then
					if(kanoniczna)then
						return "(main)";
					else
				    	return "(główna)";
				    end;
				 else
				 	return nazwa2;
				 end;
			end;
        else
			local nazwa2=NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
			if((nazwa2)and(nazwa2==""))then
					if(kanoniczna)then
						return "(main)";
					else
				    	return "(główna)";
				    end;
			else
				return nazwa2;
			end;
		end;
	else
        if(parametry_modul.CzyTak(nazwa))then
			if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
				return NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
			else
				 return TranslacjaNieBazowejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
			end;
        else
    	   	return NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
		end;
	end;
end;
function m.Np(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	local nazwa=args.nazwa or args[1] or "";
	local przedmiotowa=parametry_modul["CzyTakCiąg"](args.przedmiotowa);
    local dyskusja=parametry_modul["CzyTakCiąg"](args.dyskusja);
    local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);    
    local z_myslnikami_dolnymi=parametry_modul["CzyTakCiąg"](args["z myślnikami dolnymi"]);
    local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
    local link=parametry_modul["CzyTakCiąg"](args.link);
    local id=parametry_modul["CzyTakCiąg"](args.id);
    local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
    local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
    local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
    local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
    local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt)
    ----
    local html_modul=require("Module:Html");
    nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil;
    ----
	if((przedmiotowa)and(dyskusja))then
    	if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
	end;
    nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
    nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
    nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
	if(((id)and(not link))or(uchwyt))then
		local dd;
		if((nazwa)and((nazwa=="")
			  or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))
			     or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$"))))then		
            dd="";
        else
            dd=nazwa;
	    end;	
	    local num=mw.ustring.match(dd,"^%s*([%+%-]?%d+)%s*$");
	    dd=tonumber(num) or dd;
		local uchwyt_przestrzeni_nazw=mw.site.namespaces[dd];
		if((num)and(not uchwyt_przestrzeni_nazw))then 
			 if(uchwyt)then return;end;
			 if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
	    end;
		if(uchwyt_przestrzeni_nazw)then
			local uchwyt_przestrzeni_nazw2=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
			if(uchwyt)then return uchwyt_przestrzeni_nazw2;end;
			if(uchwyt_przestrzeni_nazw2)then
				return uchwyt_przestrzeni_nazw2.id;
			else
				if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
			end;
		else
			local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,z_myslnikami_dolnymi)
			uchwyt_przestrzeni_nazw=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja, uchwyt_przestrzeni_nazw);
			if(uchwyt)then return uchwyt_przestrzeni_nazw;end;
			if(uchwyt_przestrzeni_nazw)then
				if(uchwyt_przestrzeni_nazw)then
					return uchwyt_przestrzeni_nazw.id;
				else
					if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
				end;
			else
				if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
			end;
		end;
	else
		local parametry_modul=require("Module:Parametry");
		if(link)then
			local tabela_przestrzeni_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw_wraz_z_ich_opisem_wedle_danych_stron;
			local uchwyt=m.Np{["nazwa"]=nazwa,
				                 ["dyskusja"]=((dyskusja)and "tak" or ""),
				                 ["przedmiotowa"]=((przedmiotowa)and "tak" or ""),
				                 ["uchwyt"]="tak",
			};
			if(uchwyt)then
				local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(uchwyt);
				local kanoniczna_nazwa2=(uchwyt.canonicalName=="Project" or uchwyt.canonicalName=="Project talk")and uchwyt.canonicalName or nil;
				if(kanoniczna_nazwa=="")then kanoniczna_nazwa="(main)";end;
				local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw;
				if(kanoniczna)then
					if(id)then 
						uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
					else
						if(uchwyt.name=="")then 
							uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(main)";
						else
							if(((uchwyt.canonicalName=="Project")and(nazwij_projektem))or((uchwyt.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
								uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.canonicalName;
							else
								uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=kanoniczna_nazwa;
							end;
						end
					end;
				else
					if(id)then 
						uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
					else
						if(uchwyt.name=="")then 
							uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(główna)";
						else
							uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.name;
						end
					end;
				end;
				local strona_dyskusji={"w","Pomoc:Strona dyskusji",};
				local nazwa_strony=(dyskusja 
				                  or ((not przedmiotowa)  
				                  	       and (not dyskusja)
				                  	       and ((uchwyt)and(uchwyt.isTalk)))
				                   )  and strona_dyskusji 
			                          or tabela_przestrzeni_nazw[kanoniczna_nazwa2 or kanoniczna_nazwa];
				if(nazwa_strony)then
					if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
					    local bez_znacznikow=args["bez znaczników"];
			            local bez_przetwarzania=args["bez przetwarzania"];
						return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=nazwa_strony[1],["strona"]=nazwa_strony[2],["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
					else
						if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
					end;
				elseif(not id)then
				    local bez_znacznikow=args["bez znaczników"];
			        local bez_przetwarzania=args["bez przetwarzania"];
					return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]="Wikibooks:Przestrzenie nazw",["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
				else
					if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
				end;
    		else
    			if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
    		end;
    	else
    	    local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=TranslacjaNazwyPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,z_myslnikami_dolnymi,wyswietlana, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
			if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then 
				return uzyskana_przetlumaczona_nazwa_przestrzeni_nazw 
			else
				if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
			end;
		end;
	end;
end;
function m.NpDane(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	local wiki_modul=require("Module:Wiki");
	local klucz_projektu=args["klucz projektu"];
	local kod_jezyka=args["kod języka"];
	local kod_projektu=args["kod projektu"];
	local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
	local nazwa=args.nazwa or args[1] or "";
	local dyskusja=args.dyskusja;
	local przedmiotowa=args.przedmiotowa;
	local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
	local id=parametry_modul["CzyTakCiąg"](args.id);
	local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
    local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
    local awaryjnie=parametry_modul["CzyTakCiąg"](args.awaryjnie);
	local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);
	local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt);
	local po_polsku=parametry_modul["CzyTakCiąg"](args["po polsku"]);
	
	local html_modul=require("Module:Html");
	nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil;
	klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil;
	kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil;
	kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil;
	----
	nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
    nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
    nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
	----
    local link=parametry_modul.CzyTak(args.link);
	if(link)then
		local wartosc_kanoniczna=m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["wyświetlana"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje="tak",["wynik błędu nietekstowy"]="tak",}
		
		if(not wartosc_kanoniczna)then
			   if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
		end;
		
		local wartosc_oczekiwana=m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna=kanoniczna,id=id,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["po polsku"]=po_polsku,["awaryjnie"]=awaryjnie,["wyświetlana"]="tak",["z myślnikami dolnymi"]=z_myslnikami_dolnymi,["nazwij projektem"]=nazwij_projektem,["nazwij dyskusją projektu"]=nazwij_dyskusja_projektu,istnieje=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,};
		
		if(not wartosc_oczekiwana)then
			   if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
		end;
		
		wartosc_oczekiwana=tostring(wartosc_oczekiwana);
		
		local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw_wraz_z_ich_opisem_wedle_danych_stron;
		local pos=not (mw.ustring.match(wartosc_kanoniczna,"^Talk$") or mw.ustring.match(wartosc_kanoniczna," talk$"))
		                 and (tabela_przestrzenii_nazw[wartosc_kanoniczna] or {"w","Pomoc:Przestrzeń nazw"})
		                 or {"w","Pomoc:Strona dyskusji"};
		local klucz_projektu2=pos[1];
		local strona2=pos[2];
		local wiki_modul=require("Module:Wiki");
		local nazwy_modul=require("Module:Nazwy")
		local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona2,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["klucz projektu bazy"]=klucz_projektu2,};
		if(not strona)then
			local pos={"w","Pomoc:Przestrzeń nazw"};
			local strona2=pos[2];
			local klucz_projektu2=pos[1];
			strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona2,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["klucz projektu bazy"]=klucz_projektu2,};
			if(not strona)then
				klucz_projektu=pos[1];
				kod_jezyka=nil;
				kod_projektu=nil;
				return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
			end;
		end;
		return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
	end;
	----
    local nazwy_przestrzenie_modul=mw.loadData("Module:Nazwy/przestrzenie");
    
    local tabnp=nazwy_przestrzenie_modul.tabnp
    
    local przestrzenie_nazw=nazwy_przestrzenie_modul.charakterystyczne_przestrzenie_nazw;
    local pudelko_modul=require("Module:Pudełko");
    local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
    --if(not id and not kanoniczna)then
    --	if(po_polsku)then kod_jezyka=kod_jezyka_pl;end;
    --end;
    local tabnp_local=przestrzenie_nazw and przestrzenie_nazw[kod_projektu] or {["wiki"]="Project",};
    --local tabnp_jezyk=tabnp_local and tabnp_local[kod_jezyka];
    local tabnp2_local_en;
    local uzupelnij_en=true;
    if(tabnp_local["en"])then
    	if(not tabnp_local["en"]["Project"])then
    		tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
    		tabnp2_local_en["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",};
    		uzupelnij_en=false;
    	end;
    	if(not tabnp_local["en"]["User"])then
    		if(not tabnp2_local_en)then
    			tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
    		end;
    		tabnp2_local_en["User"]={"User","User talk",};
    		uzupelnij_en=false;
    	end;
    end;
    local tabnp_jezyk_en=tabnp_local and (uzupelnij_en and tabnp_local["en"] or tabnp2_local_en) or {["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",},["User"]={"User","User talk",},};
    local tabnp_jezyk_zapasowe_pl={--[[["Project"]={"Strona projektu","Dyskusja strony projektu",},]]["User"]={"Użytkownik","Dyskusja użytkownika",},};
    local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
    local jezykowe_projekty=wiki_interwiki_modul.tablica_lokalne_lingwistyczne_siostrzane[kod_projektu]
    local poza_jezykowe_projekty=not jezykowe_projekty;
    local tabnp_jezyk_pl=tabnp_local and (tabnp_local[kod_jezyka_pl] or tabnp_jezyk_zapasowe_pl);
    local tabnp_jezyk=tabnp_local and ((jezykowe_projekty and kod_jezyka~="en") and (tabnp_local[kod_jezyka] or ((not awaryjnie)and tabnp_jezyk_en))) or ((kod_jezyka=="en") and tabnp_jezyk_en or (poza_jezykowe_projekty and tabnp_jezyk_en));
    
    local pozostale_przestrzenie=nazwy_przestrzenie_modul.podstawowe_przestrzenie_nazw;
    local pozostale_przestrzenie_jezyk_en=pozostale_przestrzenie and pozostale_przestrzenie["en"];
    local pozostale_przestrzenie_jezyk_pl=pozostale_przestrzenie and (pozostale_przestrzenie[kod_jezyka_pl] or pozostale_przestrzenie_jezyk_en);
    local pozostale_przestrzenie_jezyk=pozostale_przestrzenie and (jezykowe_projekty and (pozostale_przestrzenie[kod_jezyka] or ((not awaryjnie)and pozostale_przestrzenie_jezyk_en)))
         or ((kod_jezyka=="en") and pozostale_przestrzenie_jezyk_en or (poza_jezykowe_projekty and pozostale_przestrzenie_jezyk_en));
    if(uchwyt)then
    	if(parametry_modul.CzyTak(nazwa))then
    		local nazwa_kanoniczna=m.NpDane{nazwa=nazwa, kanoniczna="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,awaryjnie=awaryjnie,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje="tak",["wynik błędu nietekstowy"]="tak",};
    		if(not nazwa_kanoniczna)then return;end;
    		local nazwa_kanoniczna_dyskusja=mw.ustring.match(nazwa_kanoniczna,"%s+[Tt][Aa][Ll][Kk]$") or mw.ustring.match(nazwa_kanoniczna,"^[Tt][Aa][Ll][Kk]$");
    		if(nazwa_kanoniczna_dyskusja)then
    			local nazwa_kanoniczna_przedmiotowa,_=mw.ustring.gsub(nazwa_kanoniczna,"%s*[Tt][Aa][Ll][Kk]$","");
    			local tab_prze=tabnp_jezyk[nazwa_kanoniczna_przedmiotowa] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna_przedmiotowa];
    			if(not tab_prze)then return nil;end;
    			return tab_prze[2];
    		else
    			local tab_prze=tabnp_jezyk[nazwa_kanoniczna] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna];
    			if(not tab_prze)then return nil;end;
    			return tab_prze[1];
    		end;
    	else
    		return parametry_modul["ŁączDwieTabele"](tabnp_jezyk,pozostale_przestrzenie_jezyk);
    	end;
    end;
    local num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$");
    if(num)then
    	local nazwa_kan;
    	if(id)then
    		nazwa_kan=m.Np{["nazwa"]=num,["id"]="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
    	else
    		nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
    	end;
    	if(not nazwa_kan)then
    		if(czy_istnieje)then
   	        	if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        else
   	        	return nazwa;
    		end;
        else
        	if(id)then return nazwa_kan;end;
        	nazwa=nazwa_kan;
    	end;
    else
    	local main=mw.ustring.match(nazwa,"^%s*(%([Mm][Aa][Ii][Nn]%))%s*$")
    	if(main)then nazwa="";end;
    end;
    local nazwa_local=mw.ustring.lower(parametry_modul["Odstępy"]{[1]=nazwa,[2]="tak"});
    local function por_prze(nazwa2)
    	if(type(nazwa2)~="table")then
    		nazwa2=mw.ustring.lower(nazwa2);
    		if(nazwa_local==nazwa2)then
    			return true;
    		end;
    		return false;
    	end;
    	local pos=nazwa2[1];
    	if(pos)then
    		local nazwad=mw.ustring.lower(pos);
    		if(nazwa_local==nazwad)then return true;end;
    	end;
    	local pos=nazwa2["wyświetlana"];
    	if(pos)then
    		local nazwad=mw.ustring.lower(pos);
    		if(nazwa_local==nazwad)then return true;end;
    	end;
    	if(nazwa2.aliasy)then
    		for _,value in ipairs(nazwa2.aliasy)do
    			 local nazwas=mw.ustring.lower(value);
    			if(nazwa_local==nazwas)then
    		 		return true;
    			end;
    		end;
    	end;
    	return false;
    end;
    local function wyswietlana_nazwa(name)
    	if(type(name)~="table")then
    		if(wyswietlana)then
    			if(name=="")then 
    				if(not po_polsku)then
    					return "(main)";
    				else
    					return "(główna)";
    				end;
    			end;
    			return name;
    		end;
    		return name;
    	end;
    	if(wyswietlana)then
    		local element=name[1];
    		if(element=="")then
    			if(not po_polsku)then
    				local pos_wyswietlana=name["wyświetlana"];
    				if(pos_wyswietlana)then 
    					return pos_wyswietlana;
    				else 
    					return "(main)";
    				end;
    			else
    				return "(główna)";
    			end;
    		end;
    		return element;
    	end;
    	return name[1];
    end;
    local function wyswietlana_nazwa_kanoniczna(name,wyswietlana)
    	if(wyswietlana)then
    		return (name=="")and "(main)" or name;
    	end;
    	return name;
    end;
	if(id or kanoniczna)then
	    local pudelko_modul=require("Module:Pudełko");
		local projekt=tabnp_local and tabnp_local["wiki"];
	   	if(projekt)then
	   	 	if por_prze(projekt)then
	   	 	    local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
	   	 	    local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
		        local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
		        if(not id)then
		            if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
		                if(not czy_dyskusja)then
		                	return "Project";
		                else
		                	return "Project talk";
		                end;
		            elseif(nazwij_projektem)then
		                if(not czy_dyskusja)then
		                	return "Project";
		                else 
		                	return projekt.." talk";
		                end;
		            elseif(nazwij_dyskusja_projektu)then
		                if(not czy_dyskusja)then
		                	return projekt;
		                else
		                	return "Project talk";
		                end;
		            else
		                if(not czy_dyskusja)then
		                	return projekt;
		                else
		                	return projekt.." talk";
		                end;
		            end
                else
                 	  return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
	
		         end	
	   	 	elseif por_prze(projekt.." talk")then
                local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
	   	 	    local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
		        local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
		        if(not id)then
		            if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
		                if(not czy_przedmiotowa)then
		                	return "Project talk";
		                else
		                	return "Project";
		                end;
		            elseif(nazwij_projektem)then
		                if(not czy_przedmiotowa)then
		                	return projekt.." talk";
		                else 
		                	return "Project";
		                end;
		            elseif(nazwij_dyskusja_projektu)then
		                if(not czy_przedmiotowa)then
		                	return "Project talk";
		                else
		                	return projekt;
		                end;
		            else
		                if(not czy_przedmiotowa)then
		                	return projekt.. " talk";
		                else
		                	return projekt;
		                end;
		            end
               else
                 	 return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
	
		        end            	  
	   	 	end;
	   	end; 
   	    if por_prze("Project")then
   	        local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
	   	 	local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
		    local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
		    if(not id)then
		        if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
		              if(not czy_dyskusja)then
		                	return "Project";
		               else
		                	return "Project talk";
		               end;
		        elseif(nazwij_projektem)then
		            if(not czy_dyskusja)then
		                return projekt;
		            else 
		            	return "Projekt talk";
		            end;
		       elseif(nazwij_dyskusja_projektu)then
		            if(not czy_dyskusja)then
		               return "Project";
		            else
		               return projekt.." talk";
		            end;
		       else
		            if(not czy_dyskusja)then
		               return projekt;
		            else
		               return projekt.." talk";
		            end;
		        end
            else
                 return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
	
		    end  
   	  elseif por_prze("Project talk")then
   	        local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
	   	 	local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
		    local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
		    if(not id)then
		    	if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
		           if(not czy_przedmiotowa)then
		              return "Project talk";
		           else
		              return "Project";
		           end;
		        elseif(nazwij_projektem)then
		           if(not czy_przedmiotowa)then
		               return projekt.." talk";
		           else 
		               return "Projekt";
		           end;
		       elseif(nazwij_dyskusja_projektu)then
		           if(not czy_przedmiotowa)then
		                return "Project talk";
		            else
		                 return projekt;
		            end;
		        else
		        	if(not czy_przedmiotowa)then
		           		return projekt.." talk";
		           	else
		           		return projekt;
		           	end;
		        end
             else
                 return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
	
   	        end 
   		end;
   	    local tabprojekt=tabnp_jezyk and tabnp_jezyk["Project"];
    	if(tabprojekt)then
    		if por_prze(tabprojekt[1])then
	   	 	    local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
	   	 	    local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
		        local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
		        if(not id)then
		            if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
		                if(not czy_dyskusja)then
		                	return "Project";
		                else
		                	return "Project talk";
		                end;
		            elseif(nazwij_projektem)then
		                if(not czy_dyskusja)then
		                	return "Project";
		                else 
		                	return projekt.." talk"
		                end;
		            elseif(nazwij_dyskusja_projektu)then
		                if(not czy_dyskusja)then
		                	return projekt;
		                else
		                	return "Project talk";
		                end;
		            else
		                if(not czy_dyskusja)then
		                	return projekt;
		                else
		                	return projekt.." talk";
		                end;
		            end
                else
                 		return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
		        end
       		elseif por_prze(tabprojekt[2])then
                local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
	   	 	    local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
		        local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
		        if(not id)then
		            if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
		                if(not czy_przedmiotowa)then
		                	return "Project talk";
		                else
		                	return "Project";
		                end;
		        	elseif(nazwij_projektem)then
		                if(not czy_przedmiotowa)then
		                	return projekt.." talk";
		                else 
		                	return "Projekt";
		                end;
		        	elseif(nazwij_dyskusja_projektu)then
		                if(not czy_przedmiotowa)then
		                	return "Project talk";
		                else
		                	return projekt;
		                end;
		        	else
		                if(not czy_przedmiotowa)then
		                	return projekt.." talk";
		                else
		                	return projekt;
		                end;
		        	end
                else
                 	return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
		        end            	  
	   	 	end;
    	end;
    	if por_prze("User")then
       		local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
       		if(not id)then
       	  		if(not czy_dyskusja)then
       	  			return "User";
       	  		else
       	  			return "User talk";
       	  		end;
       		else
       	    	 return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
       		end;
    	elseif por_prze("User talk")then
       		  local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
       		  if(not id)then
       	  		if(not czy_przedmiotowa)then
       	  			return "User talk";
       	  		else
       	  			return "User";
       	  		end;
       		else
       	    	 return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
       		end;
       end;
    	userprze=tabnp_jezyk and tabnp_jezyk["User"];
    	if(userprze)then
    		if por_prze(userprze[1])then 
    			local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
    			if(not id)then
    				if(not czy_dyskusja)then
    					return "User";
    				else
    					return "User talk";
    				end;
    			else
    				return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
		        end;
    		elseif por_prze(userprze[2])then 
		 	    local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
         	    if(not id)then
         	    	if(not czy_przedmiotowa)then
         	    		return "User talk";
         	    	else
         	    		return "User";
         	    	end;
         	    else
         	        return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
	         	 end;
              end;
    	end;
    	---
    	if( pozostale_przestrzenie_jezyk)then
            for name,value in pairs(pozostale_przestrzenie_jezyk)do
            	if por_prze(name)then
   	        	    local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
   	        	    if(not id)then
   	        	    	if(not czy_dyskusja)then
   	        	     		return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
   	        	    	else
   	        	    		if(value[2])then
   	        	     			return ((name~="")and(name.." talk") or "Talk");
   	        	     		else
   	        	     			if(czy_istnieje)then
   	        	     				if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     			else
   	        	     			    return nazwa;
   	        	     			end;
   	        	     		end;
   	        	    	end;
   	        	    else
   	        	    	   return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
		            end;
            	elseif ((name~="")and (por_prze(name.." talk"))) or((name=="")and(por_prze("Talk"))) then
	        	  	local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
   	        	    if(not id)then
   	        	    	if(not czy_przedmiotowa)then
   	        	    		if(value[2])then
   	        	     			return ((name~="")and(name.." talk") or "Talk");
   	        	     		else
   	        	     			if(czy_istnieje)then
   	        	     				if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     			else
   	        	     				return nazwa;
   	        	     			 end;
   	        	     		end;
   	        	    	else
   	        	     	    return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
   	        	    	end;
   	        	    else
   	        	    	return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
		            end;
		        elseif por_prze(value[1])then
   	        	    local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
   	        	    if(not id)then
   	        	    	if(not czy_dyskusja)then
   	        	     		return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
   	        	    	else
   	        	     		if(value[2])then
   	        	     			return ((name~="")and(name.." talk") or "Talk");
   	        	     		else
   	        	     			if(czy_istnieje)then
   	        	     				if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     			else
   	        	     				return nazwa;
   	        	     			end;
   	        	     		end;
   	        	    	end;
   	        	    else
   	        	    	 return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
		             end;
            	elseif(value[2] and por_prze(value[2]))then
	        	  	local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
   	        	    if(not id)then
   	        	    	if(not czy_przedmiotowa)then
   	        	     		if(value[2])then
   	        	     			return ((name~="")and(name.." talk") or "Talk");
   	        	     		else
   	        	     			if(czy_istnieje)then
   	        	     				if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     			else
   	        	     				return nazwa;
   	        	     			end;
   	        	     		end;
   	        	    	else
   	        	     		return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
   	        	    	end;
   	        	    else
   	        	    	   return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
		             end;
            	end;
            end;
          end;
    	---
   	    if(tabnp_jezyk)then
            for name,value in pairs(tabnp_jezyk)do
            	if((name~="Project")and(name~="User"))then
            		if por_prze(name)then
   	        	    	local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
   	        	    	if(not id)then
   	        	    		if(not czy_dyskusja)then
   	        	     			return wyswietlana_nazwa(name);
   	        	    		else
   	        	    			if(value[2])then
   	        	     				return name.." talk";
   	        	     			else
   	        	     				if(czy_istnieje)then
   	        	     					if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     				else
   	        	     					return nazwa;
   	        	     				end;
   	        	     			end;
   	        	    		end;
   	        	    	else
   	        	    	    return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
		                end;
            		elseif por_prze(name.." talk")then
	        	  		local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
   	        	    	if(not id)then
   	        	    		if(not czy_przedmiotowa)then
   	        	     			if(value[2])then
   	        	     				return name.." talk";
   	        	     			else
   	        	     				if(czy_istnieje)then
   	        	     					if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     				else
   	        	     					return nazwa;
   	        	     				end;
   	        	     			end;
   	        	    		else
   	        	     			return wyswietlana_nazwa(name);
   	        	    		end;
   	        	    	else
   	        	    	    return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
		                end;
		        	elseif por_prze(value[1])then
   	        	    	local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
   	        	    	if(not id)then
   	        	    		if(not czy_dyskusja)then
   	        	     			return wyswietlana_nazwa(name);
   	        	    		else
   	        	     			if(value[2])then
   	        	     				return name.." talk";
   	        	     			else
   	        	     				if(czy_istnieje)then
   	        	     					if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     				else
   	        	     					return nazwa;
   	        	     				end;
   	        	     			end;
   	        	    		end;
   	        	    	else
   	        	    	    return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}	
		                end;
            		elseif(por_prze(value[2]))then
	        	  		local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
   	        	    	if(not id)then
   	        	    		if(not czy_przedmiotowa)then
   	        	     			if(value[2])then
   	        	     				return name.." talk";
   	        	     			else
   	        	     				if(czy_istnieje)then
   	        	     					if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     				else
   	        	     					return nazwa;
   	        	     				end;
   	        	     			end;
   	        	    		else
   	        	     			return wyswietlana_nazwa(name);
   	        	    		end;
   	        	    	else
   	        	    	    return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
		                end;
            		end;
            	end;
            end;
          end;
			kanon=tabnp[nazwa];
			local nazwa2;
			if(not kanon)then 
				nazwa2=mw.ustring.match(nazwa, "^(.+%w)[%s_]+talk$");
				if(nazwa2)then
					kanon=tabnp[nazwa2];
				elseif(por_prze("Talk"))then
				    kanon=tabnp[""];
				elseif(por_prze(""))then
					kanon=tabnp[""];
				end;
			else
				nazwa2=nazwa;
			end;
			if(kanon)then
	   			if(not id)then
	   	   			local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
	   	   		    local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
		    		if(not id)then
		            	 if(czy_dyskusja)then
		                	    return nazwa2.." talk";
		            	 elseif(czy_przedmiotowa)then
		                	return nazwa2;
		                else
		                	return nazwa;
		            	end;
		    		else
		      	    	return m.Np{nazwa=nazwa2,dyskusja=dyskusja,przedmiotowa=przedmiotowa, id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
		        	end;
	   			end; 
	   		end;
		if awaryjnie then
			if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
				if por_prze("")then 
	   	        	 return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),id=(id)and"tak" or "",kanoniczna=(kanoniczna)and "tak" or "",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
	   	    	end;
    			local wiki_modul=require("Module:Wiki");
				for np,strona in pairs(tabnp)do
					local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
					if(strona2)then
						local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
						if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
							 local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
							if(not id)then
								if(not czy_dyskusja)then
									return np;
								else
			  						return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
								end;
							else
								return m.Np{["nazwa"]=np,["id"]="tak",["dyskusja"]=dyskusja,};
		  		    		end;
						end;
					end;
				end;
			end;
		end;
	   if(awaryjnie)then
			return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["id"]=(id)and"tak" or "",["kanoniczna"]=(kanoniczna)and "tak" or "",["nazwij projektem"]=args["nazwij projektem"],["nazwij dyskusją projektu"]=args["nazwij dyskusją projektu"],["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
	   else
	   		if(czy_istnieje)then
   	        	if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        else
   	        	return nazwa;
   	        end;
	   	end;
	else
	    local pudelko_modul=require("Module:Pudełko");
	    local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
		local projekt=tabnp_local and tabnp_local["wiki"];
		local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["Project"] or {projekt, projekt.." talk"};
		local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"];
		local function Zwracanie(pos1,pos2,name,numer)
			if((po_polsku)and(pos1))then 
                   local pos=name and (pos1[name] or {})[numer] or (not name and pos1[numer]);
                   if(pos)then
                		return wyswietlana_nazwa(pos);
                	end;
			end;
            local pos=pos2[numer];
            return wyswietlana_nazwa(pos);
		end;
		if(projekt_jezyk)then
	   		if(projekt)then
	   	 		if por_prze(projekt)then
	   	 	    	local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
		            if(not czy_dyskusja)then
		                return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
		            else
		                return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
		            end;
	   	 		elseif por_prze(projekt.." talk")then
                	local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
		        	if(not czy_przedmiotowa)then
		            	return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
		            else
		            	return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil, 1);
			        end;
	   	 		end;
	   		end; 
   	        if por_prze("Project")then
   	        	local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
		        if(not czy_dyskusja)then
		              return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
		        else
		              return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
		        end;
   	        elseif por_prze("Project talk")then
   	        	local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
		        if(not czy_przedmiotowa)then
		             return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
		        else
		              return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
		        end;
   	        end;
    		if por_prze(projekt_jezyk[1])then
	   	 	    local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
		        if(not czy_dyskusja)then
		             return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1)
		        else
		             return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
				end;
       		elseif por_prze(projekt_jezyk[2])then
                local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
		        if(not czy_przedmiotowa)then
		             return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
		        else
		             return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
		        end;
	   	 	end;
		end;
		local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["User"];
    	local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["User"];
    	if(projekt_jezyk)then
    		if por_prze("User")then
       			local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
       			if(not czy_dyskusja)then
       				return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
       			else
       	  			return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
       			end;
    		elseif por_prze("User talk")then
       			local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa)
       	  		if(not czy_przedmiotowa)then
       	  			return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);	
       	  		else
       	  			return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
       	  		end;
        	end;
    		if por_prze(projekt_jezyk[1])then 
    			local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
    			if(not czy_dyskusja)then
    				return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
    			else
    				return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
    			end;
    		elseif por_prze(projekt_jezyk[2])then 
		 	    local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
         	    if(not czy_przedmiotowa)then
         	    	return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
         	    else
         	    	return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
         	    end;
            end;
    	end;
   	    if((tabnp_jezyk and not po_polsku) or (po_polsku and tabnp_jezyk_pl and tabnp_jezyk))then
            for name,value in pairs(tabnp_jezyk)do
            	if((name~="Project")and(name~="User"))then
            		if por_prze(name)then
   	        	    	local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
   	        	        if(not czy_dyskusja)then
   	        	     		return Zwracanie(tabnp_jezyk_pl,value,name,1);
   	        	        else
   	        	        	if(value[2])then
   	        	     			return Zwracanie(tabnp_jezyk_pl,value,name,2);
   	        	     		else
   	        	     			if(czy_istnieje)then
   	        	     				if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     			else
   	        	     				return nazwa;
   	        	     			end;
   	        	     		end;
   	        	        end;
            		elseif por_prze(name.." talk") then
	        	  		local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
   	        	    	if(not czy_przedmiotowa)then
   	        	    		if(value[2])then
   	        	     			return Zwracanie(tabnp_jezyk_pl,value,name,2);
   	        	     		else
   	        	     			if(czy_istnieje)then
   	        	     				if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     			else
   	        	     				return nazwa;
   	        	     			end;
   	        	     		end;
   	        	    	 else
   	        	     		return Zwracanie(tabnp_jezyk_pl,value,name,1);
   	        	    	end;
		        	elseif por_prze(value[1])then
   	        	    	local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
   	        	    	if(not czy_dyskusja)then
   	        	     		return Zwracanie(tabnp_jezyk_pl,value,name,1);
   	        	    	else
   	        	    		if(value[2])then
   	        	     			return Zwracanie(tabnp_jezyk_pl,value,name,2);
   	        	     		else
   	        	     			if(czy_istnieje)then
   	        	     				if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     			else
   	        	     				return nazwa;
   	        	     			end;
   	        	     		end;
   	        	     	end;
		        	elseif(por_prze(value[2]))then	        	  	
        			    local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
   	        	    	if(not czy_przedmiotowa)then
   	        	    		if(value[2])then
   	        	     			return Zwracanie(tabnp_jezyk_pl,value,name,2);
   	        	     		else
   	        	     			if(czy_istnieje)then
   	        	     				if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     			else
   	        	     				return nazwa;
   	        	     			end;
   	        	     		end;
   	        	    	else
   	        	     		return Zwracanie(tabnp_jezyk_pl,value,name,1);
   	        	     	end;
            		end;
            	end;
            end;
   	    end;
	---
	   if ((pozostale_przestrzenie_jezyk and not po_polsku) or (po_polsku and pozostale_przestrzenie_jezyk_pl and pozostale_przestrzenie_jezyk))then
            for name,value in pairs(pozostale_przestrzenie_jezyk)do
            	if por_prze(name)then
   	        	    local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
   	        	    if(not czy_dyskusja)then
   	        	     	return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
   	        	    else
   	        	    	if(value[2])then
   	        	     		return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
   	        	     	else
   	        	     		if(czy_istnieje)then
   	        	     			if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     		else
   	        	     			return nazwa;
   	        	     		end;
   	        	     	end;
   	        	    end;
            	elseif ((name~="")and (por_prze(name.." talk"))) or ((name=="")and (por_prze("Talk"))) then
	        	  	local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
   	        	    if(not czy_przedmiotowa)then
   	        	    	if(value[2])then
   	        	     		return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
   	        	     	else
   	        	     		if(czy_istnieje)then
   	        	     			if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     		else
   	        	     			return nazwa;
   	        	     		end;
   	        	     	end;
   	        	    else
   	        	     	return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
   	        	    end;
		        elseif por_prze(value[1])then
   	        	    local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
   	        	    if(not czy_dyskusja)then
   	        	     	return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
   	        	    else
   	        	    	if(value[2])then
   	        	     		return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
   	        	     	else
   	        	     		if(czy_istnieje)then
   	        	     			if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     		else
   	        	     			return nazwa;
   	        	     		end;
   	        	     	end;
   	        	     end;
		        elseif(value[2] and por_prze(value[2]))then
        		    local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
   	        	    if(not czy_przedmiotowa)then
   	        	    	if(value[2])then
   	        	     		return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
   	        	     	else
   	        	     		if(czy_istnieje)then
   	        	     			if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        	     		else
   	        	     			return nazwa;
   	        	     		end;
   	        	     	end;
   	        	    else
   	        	     	return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
   	        	     end;
            	end;
            end;
   	    end;
	---
    	if awaryjnie then
    		if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
    			if por_prze("")then 
	   	        	 return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),};
	   	    	end;
    			local wiki_modul=require("Module:Wiki");
				for np,strona in pairs(tabnp)do
					local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
					if(strona2)then
						local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
						if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
							local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
							if(not czy_dyskusja)then
								if(not po_polsku)then
									return np2;
								else
									return m.Np{["nazwa"]=np,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
								end;
							else
								return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
							end;
						end;
					end;
				end;
			end;
    	end;
    	if(awaryjnie)then
			return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["kanoniczna"]=((po_polsku)and "" or (((kod_jezyka=="en")or(poza_jezykowe_projekty)) and "tak" or "")),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
	    else
	   		if(czy_istnieje)then
   	        	if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
   	        else
   	        	return nazwa;
   	        end;
   		end;
	end;
end;
m["NAZWASERWISU"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
	local link=PobierzParametr("link");
	local za=PobierzParametr("za");
	local po=PobierzParametr("po");
	local wikipedia=PobierzParametr("wikipedia");
	local klucz_projektu=PobierzParametr("klucz projektu");
	local kod_jezyka=PobierzParametr("kod języka");
	local kod_projektu=PobierzParametr("kod projektu");
	-----
	local html_modul=require("Module:Html");
	nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil;
	klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil;
	kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil;
	kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil;
	-----
	local w_jezyku_wiki=PobierzParametr("w języku wiki");
	
    local bez_znacznikow=PobierzParametr("bez znaczników");
    local bez_przetwarzania=PobierzParametr("bez przetwarzania");
	
	local parametry_modul=require("Module:Parametry");
	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 wiki_modul=require("Module:Wiki");
	local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
    local lista_projektow=mw.loadData("Module:Nazwy/przestrzenie").lista_kody_projektu_wraz_z_ich_nazwami_stron;
    local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
    local tablica_aliasowe_kody_projektu=wiki_interwiki_modul.tablica_aliasowe_kody_projektu;
    local interwikimap=wiki_interwiki_modul.interwikimap;
    local url=interwikimap[kod_projektu];
    
    local aliasy=tablica_aliasowe_kody_projektu[url];
    local projekt=nil;
    
    for kod,_ in pairs(aliasy)do
    	projekt=lista_projektow[kod];
    	if(projekt)then break;end;
    end;
  
     if(not projekt)then
    	local html_modul=require("Module:html");
    	local adres=html_modul["UrlBezProtokołu"](url);
    	projekt=mw.ustring.match(adres,"^//([%a%.]+)");
    end;
  
    if(not projekt)then
    	projekt="Wikibooks";
    	kod_jezyka=kod_jezyka_tego_projektu;
    	kod_projektu=kod_projektu_tego_projektu;
    end;
    local wikipedia=parametry_modul.CzyTak(wikipedia);
    local link=parametry_modul.CzyTak(link);
    local wiki_modul=require("Module:Wiki");
    local function Nazwa_projektu()
       return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=projekt,["kod języka"]=kod_jezyka,["kod projektu"]="w",["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]="w",} or projekt;
    end;
    local function Nazwa_strony_glownej()
       return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=pudelko_modul["Strona główna tego projektu"](),["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]=kod_projektu_tego_projektu,} or pudelko_modul["Strona główna tego projektu"]();
    end;
    local nazwa_projektu2=Nazwa_projektu();
    local nazwa=((link)and (nazwa or (parametry_modul.CzyTak(w_jezyku_wiki)and nazwa_projektu2 or projekt)) or nazwa_projektu2);
	if(link)then
		local linki_modul=require("Module:Linki");
		if(wikipedia)then				 
			if(kod_jezyka==kod_jezyka_tego_projektu)then
				 return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
			else
				return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
			end;
		else				 
			if(kod_jezyka==kod_jezyka_tego_projektu)then
				if(kod_projektu==kod_projektu_tego_projektu)then
					return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
				else
					return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
				end;
			else
				if(kod_projektu==kod_projektu_tego_projektu)then
					return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
				else
					return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
				end;
			end;
		end;
	else
		return nazwa;
	end;
end;
m["NAZWAPRZESTRZENI"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
	local klucz_projektu=PobierzParametr("klucz projektu");
	local kod_jezyka=PobierzParametr("kod języka");
	local kod_projektu=PobierzParametr("kod projektu");
	local bez_zmiany_adresu=PobierzParametr("bez zmiany adresu");
	
	local html_modul=require("Module:Html");
	nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil;
	klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil;
	kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil;
	kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil;
	
	local pelna_nazwa=nazwa;
	local parametry_modul=require("Module:Parametry");
	local wiki_modul=require("Module:Wiki");
	local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	if(czy_biezaca_wiki)then
		if(not pelna_nazwa)then
			local title=mw.title.getCurrentTitle();
			if(not title)then return "";end;
			local f,_= mw.ustring.gsub(title.nsText,"_"," ");
			return f;
		elseif((pelna_nazwa)and(pelna_nazwa==""))then
			return "";
		end;
	elseif(not pelna_nazwa)then
		local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
		local pudelko_modul=require("Module:Pudełko");
		local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
	    local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
	    strona=strona or strona_glowna_tego_projektu;
		local np=mw.ustring.match(strona,"^%s*([^:]+)%s*:");
		if(not np)then return "";end;
		return np;
	end;
	
	local html_modul=require("Module:Html");
	pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true);
	
	while(true)do
		local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.*$");
		if(not nazwa_przestrzeni)then
			  return "";
    	else
    		nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
		end;
		local nazwy_modul=require("Module:Nazwy");
		local nstext;
		if(czy_biezaca_wiki)then
			nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		else
	    	nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
    	end;
		if(nstext) then
			if(nstext~="")then
				return nstext;
			else
				if(nazwa_przestrzeni~="")then
					pelna_nazwa,_=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:%s*","");
				else
					return "";
				end;
			end;
		else
			return "";
		end;
	end;
end;
m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
	local klucz_projektu=PobierzParametr("klucz projektu");
	local kod_jezyka=PobierzParametr("kod języka");
	local kod_projektu=PobierzParametr("kod projektu");
	
	local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
	local nazwy_modul=require("Module:Nazwy");
	local wiki_modul=require("Module:Wiki");
	local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	if(czy_biezaca_wiki)then
		   return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"};
	else
		return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
    end;
end;
m["PRZESTRZEŃDYSKUSJI"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
	local klucz_projektu=PobierzParametr("klucz projektu");
	local kod_jezyka=PobierzParametr("kod języka");
	local kod_projektu=PobierzParametr("kod projektu");
	
	local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
	local nazwy_modul=require("Module:Nazwy");
	local wiki_modul=require("Module:Wiki");
	local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	if(czy_biezaca_wiki)then
    	return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"};		
	else
		return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
    end;
end;
m["NAZWASTRONY"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
	local klucz_projektu=PobierzParametr("klucz projektu");
	local kod_jezyka=PobierzParametr("kod języka");
	local kod_projektu=PobierzParametr("kod projektu");
	local bez_zmiany_adresu=PobierzParametr("bez zmiany adresu");
	
	local html_modul=require("Module:Html");
	nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil;
	klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil;
	kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil;
	kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil;
	
	local pelna_nazwa=nazwa;
	local parametry_modul=require("Module:Parametry");
	local wiki_modul=require("Module:Wiki");
	local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	if(czy_biezaca_wiki)then
		if(not pelna_nazwa)then
			local title=mw.title.getCurrentTitle();
			if(not title)then return "";end;
			local f,_=mw.ustring.gsub(title.text,"_"," ");
			return f;
		elseif((pelna_nazwa)and(pelna_nazwa==""))then
			return "";		
		end;
	elseif(not pelna_nazwa)then
        local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
		local pudelko_modul=require("Module:Pudełko");
		local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
	    local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
	    strona=strona or strona_glowna_tego_projektu;
		local nazwa_strony=mw.ustring.match(strona,"^%s*[^:]+%s*:%s*(.*[^%s])%s*$");
		if(not nazwa_strony)then return mw.getContentLanguage():ucfirst(strona);end;
		nazwa_strony=mw.getContentLanguage():ucfirst(nazwa_strony);
		return nazwa_strony;
	end;
	
	local html_modul=require("Module:Html");
	pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true);
	
	while(true)do
		local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.*$");
		if(not nazwa_przestrzeni)then
		   	    pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
				pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
				pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
				return mw.getContentLanguage():ucfirst(pelna_nazwa);
    	else
    		nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
		end;
		local nstext;
		local nazwy_modul=require("Module:Nazwy");
		if(czy_biezaca_wiki)then
	    	nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};		
		else
		     nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
		end;
		if(nstext)then
			if(nstext~="")or((nstext=="")and(nazwa_przestrzeni==""))then
				local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*[^:]*[^%s_:][%s_:]*:[%s_:]*(.*[^%s_])[%s_]*$");
	    		if(not nazwa_jednostki)then nazwa_jednostki="";end;
	    		nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"[%s_]+"," ");
				return mw.getContentLanguage():ucfirst(nazwa_jednostki);
			else
				pelna_nazwa,_=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:%s*","");
			end;
		else
			pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
			pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
			pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
			return mw.getContentLanguage():ucfirst(pelna_nazwa);
		end;	
	end;
end;
m["BAZOWANAZWASTRONY"]=function(frame)
	local nazwy_modul=require("Module:Nazwy");
	local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
    local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$");
    return (base)and base or nazwa2;
end;
m["PEŁNANAZWASTRONY"] = function(frame)
	local nazwy_modul=require("Module:Nazwy");
    local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
    local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
   
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PEŁNABAZOWANAZWASTRONY"]=function(frame)
    local nazwy_modul=require("Module:Nazwy");
    local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
    local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWABAZOWANAZWASTRONY"]=function(frame)
	local nazwy_modul=require("Module:Nazwy");
    local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
    local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["BAZOWANAZWASTRONYDYSKUSJI"]=function(frame)
	local nazwy_modul=require("Module:Nazwy");	
    local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
    local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWANAZWASTRONY"] = function(frame)
	local nazwy_modul=require("Module:Nazwy");	
    local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
    local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["NAZWASTRONYDYSKUSJI"] = function(frame)
    local nazwy_modul=require("Module:Nazwy");
	local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
    local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["CzęśćTytułu"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local tytul=PobierzParametr(1);
	local ktora=PobierzParametr(2);
	ktora=tonumber(ktora) or 1;
	    
	local czesc_tytulu=mw.ustring.match(tytul,"^%s*([^/]*"..mw.ustring.rep("/[^/]*",ktora-1)..")")
	return (czesc_tytulu)and czesc_tytulu or tytul;
end;
m["NAZWAKSIĄŻKI"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
	local klucz_projektu=PobierzParametr("klucz projektu");
	local kod_jezyka=PobierzParametr("kod języka");
	local kod_projektu=PobierzParametr("kod projektu");
	
	local nazwy_modul=require("Module:Nazwy");
	local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	
	local wiki_modul=require("Module:Wiki");
	local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	if(czy_biezaca_wiki)then
    	nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};		
	else
	     nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
	end;
	local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
	local kanoniczna=nazwy_np_modul.kanoniczna;
	
	if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
		return nazwy_modul["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,};
	elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
		return nazwy_modul["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,};
	elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
		if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
			return nazwy_modul["CzęśćTytułu"]{[1]=nazwa_strony,[2]=3,};
		else
			return nazwy_modul["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,};
		end;
	else
		return nazwy_modul["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,};
	end;
end;
m["PEŁNANAZWAKSIĄŻKI"]=function(frame)
	local nazwy_modul=require("Module:Nazwy");
	local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
	local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
	return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki;
end;
m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
	local klucz_projektu=PobierzParametr("klucz projektu");
	local kod_jezyka=PobierzParametr("kod języka");
	local kod_projektu=PobierzParametr("kod projektu");
	
	local nazwy_modul=require("Module:Nazwy");
	local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	
	local wiki_modul=require("Module:Wiki");
	
	local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	if(czy_biezaca_wiki)then
    	nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};		
	else
	     nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
	end;
	
	local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
	
	local kanoniczna=nazwy_np_modul.kanoniczna;
	
	local nazw;
	if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
		nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
	elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
		nazw=mw.ustring.match(nazwa_strony,"^[^/]*/[^/]*/(.*)$");
	elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
		if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
		    nazw=mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/[^/]*/(.*)$");
		else
		    nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
		end;
	else
		nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
	end;
	return nazw or "";
end;
m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame)
	local nazwy_modul=require("Module:Nazwy");
	local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
	if(artykul=="")then
		local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
		local tytul=mw.ustring.match(nazwa_ksiazki,"([^/]*)$");
		return tytul or nazwa_ksiazki;
	else
		return artykul;
	end;
end;
m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]=function(frame)
	local nazwy_modul=require("Module:Nazwy");
	local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
    local nazwa_ksiazki=nazwy_modul["SUBNAZWAKSIĄŻKI"](frame);
    return ((artykul~="")and(nazwa_ksiazki.."/") or nazwa_ksiazki)..artykul;
end;
m["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
	local klucz_projektu=PobierzParametr("klucz projektu");
	local kod_jezyka=PobierzParametr("kod języka");
	local kod_projektu=PobierzParametr("kod projektu");
	
	local nazwy_modul=require("Module:Nazwy");
	local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	
	local wiki_modul=require("Module:Wiki");
	local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	
	local nazwa_przedmiotowa_przestrzeni_nazw;
	if(czy_biezaca_wiki)then
    	nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};		
	else
	     nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
	end;
	
	local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
	local kanoniczna=nazwy_np_modul.kanoniczna;
	
	if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
		return nazwa_przestrzeni_nazw;
	elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
		local pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
		if(mw.ustring.match(pelna_nazwa_strony,"^[^/]*/.*"))then
	    	return nazwy_modul["CzęśćTytułu"]{[1]=pelna_nazwa_strony,[2]=1,};
	    else
	    	return nazwa_przestrzeni_nazw;
	    end;
	elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
		local pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
		if(mw.ustring.match(pelna_nazwa_strony,"^"..((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "").."[Bb]rudnopis/[^/]+/.-$"))then
			return nazwy_modul["CzęśćTytułu"]{[1]=pelna_nazwa_strony,[2]=2,};
		else
			return nazwa_przestrzeni_nazw;
		end;
	else
		return nazwa_przestrzeni_nazw;
	end;
end;
m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
	local klucz_projektu=PobierzParametr("klucz projektu");
	local kod_jezyka=PobierzParametr("kod języka");
	local kod_projektu=PobierzParametr("kod projektu");
	
	local nazwy_modul=require("Module:Nazwy");
	local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	
	local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
	
	if((nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Main)or(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Wikijunior))then
		return "";
	elseif(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.User)then
	    local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
		if(mw.ustring.match(nazwa_strony,"^[^/]*/.*"))then
	    	return nazwy_modul["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,};
	    else
	    	return "";
	    end;
	elseif((nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Wikibooks)or(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Module))then
		local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
		if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]+/.-$"))then
			return nazwy_modul["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,};
		else
			return "";
		end;
	else
		return "";
	end;
end;
m["NAZWASUBSTRONY"] = function(frame)
	local nazwy_modul=require("Module:Nazwy");
	local pelna_nazwa_strony2=nazwy_modul["NAZWASTRONY"](frame);
	return mw.ustring.match(pelna_nazwa_strony2,"[^/]*$");
end;
m["SUBNAZWAKSIĄŻKI"] = function(frame)
	local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["NAZWASUBSTRONY"]{nazwa=nazwy_modul["NAZWAKSIĄŻKI"](frame)};
end;
m["NAZWAKORZENIASTRONY"] = function(frame)
	local nazwy_modul=require("Module:Nazwy");
	local nazwa_strony=nazwy_modul["NAZWASTRONY"](frame);
    return nazwy_modul["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
m["PEŁNANAZWAKORZENIASTRONY"] = function(frame)
	local nazwy_modul=require("Module:Nazwy");
	local pelna_nazwa_strony_2=nazwy_modul["PEŁNANAZWASTRONY"](frame);
    return nazwy_modul["CzęśćTytułu"]{[1]=pelna_nazwa_strony_2,[2]=1,};
end;
m["NazwaModułu"]=function(...)
	local args={ ... };
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(args);
	local nazwa_przestrzeni=PobierzParametr(1);
	local nazwa_przestrzeni_ksiazki=PobierzParametr(2);
	local nazwa_ksiazki=PobierzParametr(3);
	local nazwa_artykulu=PobierzParametr(4);
	return (((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or ""));
end;
return m