Moduł:Nazwy

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania
Template-info.png Dokumentacja modułu [stwórz] [odśwież]
local m={};
function ZnajdzPowiazanePrzestrzenieNazw(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;
local function SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw)
    local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
	local aliansy=kanoniczne_modul.aliansy;
	function alias_namespace()
		local czy;
		for _,aliases_start in pairs(uchwyt_przestrzeni_nazw.aliases)do
			 local aliases=mw.ustring.gsub(aliases_start,"[%s_]+"," ");
			czy=czy or (aliansy[aliases] and aliases or nil);
		end;
		return czy;
     end;
     local canonicalName=mw.ustring.gsub(uchwyt_przestrzeni_nazw.canonicalName,"[%s_]+"," ");
	 local name=mw.ustring.gsub(uchwyt_przestrzeni_nazw.name,"[%s_]+"," ");
     local pos=(aliansy[canonicalName] and canonicalName or nil)
		              or (aliansy[name] and name or nil)
		                 or alias_namespace();
	  if(pos)then return pos;end;
end;
function ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt1,uchwyt2,nazwij_projektem,nazwij_dyskusja_projektu)
	if(((uchwyt1.isSubject)and(uchwyt2.isSubject))or((uchwyt1.isTalk)and(uchwyt2.isTalk)))then
		   if(((uchwyt2.canonicalName=="Project")and(nazwij_projektem))
				  or ((uchwyt2.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
				    return uchwyt2.canonicalName;
			end;
		   local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt2);
		   if(pos)then return pos;end;
		   if((uchwyt2.canonicalName~=uchwyt2.name)or(uchwyt2.name==""))then
		   	  return uchwyt2.canonicalName;
		   end;
	end;
	return;
end;
function WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
	local parametry_modul=require("Module:Parametry");
    if(kanoniczna)then
		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;
		    local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw);
		    if(pos)then return pos;end;
		    if(uchwyt_przestrzeni_nazw.name~=uchwyt_przestrzeni_nazw.canonicalName)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.aliansy)do
            	nazwa_niekanoniczna_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_niekanoniczna_przestrzeni_nazw);
            	local nazwa_niekanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end );
                nazwa_niekanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw2,"[%s_]+","[%s_]");
                if(mw.ustring.match(uchwyt_przestrzeni_nazw.name,"^%s*"..nazwa_niekanoniczna_przestrzeni_nazw2.."%s*$"))then
                    return nazwa_kanoniczna_przestrzeni_nazw;
                end;
            end;
            return uchwyt_przestrzeni_nazw.canonicalName;

		else
			return nil;
		end;
	else
		if(uchwyt_przestrzeni_nazw)then
			return uchwyt_przestrzeni_nazw.canonicalName;
		else
			return nil;
		end;
	end;
end;
function PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu)
	local uchwyt_przestrzeni_glownej=mw.site.namespaces[""];
	return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu);
end;
function OperacjeMyslikDolny(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.aliansy)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 DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
	local uchwyt_przestrzeni_nazw2=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw);
    if(uchwyt_przestrzeni_nazw2)then
    	if(kanoniczna)then
    		local zamiast_kanoniczne=ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt_przestrzeni_nazw,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
    		if(zamiast_kanoniczne)then return OperacjeMyslikDolny(myslnik,zamiast_kanoniczne);end;
    		local kanoniczna_nazwa=WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
    		if(kanoniczna_nazwa)then
    			return OperacjeMyslikDolny(myslnik,kanoniczna_nazwa);
    		else
    			return nil;
    		end;
    	else
    		return OperacjeMyslikDolny(myslnik,uchwyt_przestrzeni_nazw2.name);
    	end;
    else
    	return nil;
    end;
end;
function TlumaczenieNieGlownejPrzestrzeniNazw(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 DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(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 DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(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 DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
            else
                  if(czy_istnieje)then
                  	  return nil;
                  else
                  	  return OperacjeMyslikDolny(myslnik,nazwa);
                  end;
            end;
    		
    	end;
    end;
end;
function TlumaczenieNazwPrzestrzeniNazw(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=PrzestrzenGlowna(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=TlumaczenieNieGlownejPrzestrzeniNazw(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=PrzestrzenGlowna(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 PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
			else
				 return TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
			end;
        else
    	   	return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
		end;
	end;
end;
function m.Np(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	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)
	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=ZnajdzPowiazanePrzestrzenieNazw(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=ZnajdzPowiazanePrzestrzenieNazw(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;
			local uchwyt=m.Np{["nazwa"]=nazwa,
				                 ["dyskusja"]=((dyskusja)and "tak" or ""),
				                 ["przedmiotowa"]=((przedmiotowa)and "tak" or ""),
				                 ["uchwyt"]="tak",
			};
			if(uchwyt)then
				local kanoniczna_nazwa=WyznaczKanonicznaNazwa(true,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=TlumaczenieNazwPrzestrzeniNazw(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=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	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"]);
	
	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=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,}
		
		if(not wartosc_kanoniczna)then
			   if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
		end;
		
		local wartosc_oczekiwana=(not id and not kanoniczna) and 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"]="tak",["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,} or ((kanoniczna and not id) and  wartosc_kanoniczna or ((not kanoniczna and id)and m.Np{nazwa=nazwa,id="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,} or nil));
		
		if(not wartosc_oczekiwana)then
			   if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
		end;
		
		local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw;
		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
			return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
		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.przestrzenie_nazw_projektow;
    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_interprojekty_modul=mw.loadData("Module:Wiki/interprojekty");
    local jezykowe_projekty=wiki_interprojekty_modul.tablokalnejezykowesiostrzane[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.pozostale_przestrzenie;
    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
    	return parametry_modul["ŁączDwieTabele"](tabnp_jezyk,pozostale_przestrzenie_jezyk);
    end;
    local nazwa_kan;
    local num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$");
    if(num)then
    	nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["id"]=((id)and "tak" or ""),["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
    	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 or kanoniczna)then return nazwa_kan;end;
    	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.aliase)then
    		for _,value in ipairs(nazwa2.aliase)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
		if(awaryjnie)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;
	    end;
	    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",["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",["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",["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",["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",["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",["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",["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",["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",["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",["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.." 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",["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_kanoniczna(name,wyswietlana);
   	        	    	end;
   	        	    else
   	        	    	return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["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.." 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",["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.." 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.." talk",przedmiotowa=przedmiotowa,id="tak",["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~="")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",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
		                end;
            		elseif((name~="")and por_prze(name.." talk") or 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(name);
   	        	    		end;
   	        	    	else
   	        	    	    return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["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~="")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",
		                            ["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~="")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(name);
   	        	    		end;
   	        	    	else
   	        	    	    return m.Np{nazwa=((name~="")and (name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["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",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
		        	end;
	   			end; 
	   		end;
		if awaryjnie and((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
    		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;
	   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
		if(awaryjnie)then
			if por_prze("")then 
	   	         return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),};
	   	    end;
		end;
	    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"];
		local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"];
		local function Zwracanie(pos1,pos2,name,numer)
			if(po_polsku)then 
                   local pos=name and pos1[name][numer] or (not name and pos1[numer]);
                   return wyswietlana_nazwa(pos);
			end;
            local pos=pos2[numer];
            return wyswietlana_nazwa(pos);
		end;
		if((projekt_jezyk)and(not po_polsku))or(po_polsku and projekt_jezyk_pl and 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 and not po_polsku)or (po_polsku and projekt_jezyk_pl and 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 ((name~="")and por_prze(name.." talk") or por_prze("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[name][1],value[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 por_prze(name.." 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 and ((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
    		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;
    	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 args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
    local nazwy_modul=require("Module:Nazwy");	
	
	local nazwa;local link;local po;local wikipedia;local klucz_projektu;local kod_jezyka;local kod_projektu;local w_jezyku_wiki;
	if(type(frame)=="table")then
		nazwa=args["nazwa"] or args[1];
		link=args["link"];
		po=args["po"];
		wikipedia=args["wikipedia"];
		klucz_projektu=args["klucz projektu"];
		kod_jezyka=args["kod języka"];
		kod_projektu=args["kod projektu"];
		w_jezyku_wiki=args["w języku wiki"];
	else
		nazwa=frame;
	end;
	
	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_projektow;
    local projekt=lista_projektow[kod_projektu];
    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)..(parametry_modul.CzyTak(po)and po or "");
	if(link)then
		local linki_modul=require("Module:Linki");
		if(wikipedia)then				 
			local bez_znacznikow=args["bez znaczników"];
		    local bez_przetwarzania=args["bez przetwarzania"];
			if(kod_jezyka==kod_jezyka_tego_projektu)then
				 return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,["kod projektu"]="w",["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
			else
				return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,["kod projektu"]="w",["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
			end;
		else				 
			local bez_znacznikow=args["bez znaczników"];
		    local bez_przetwarzania=args["bez przetwarzania"];
			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,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
				else
					return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,["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,["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,["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 args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	local nazwy_modul=require("Module:Nazwy");	
	
	local nazwa;local klucz_projektu;local kod_jezyka;local kod_projektu;
	if(type(frame)=="table")then
		nazwa=args.nazwa or args[1];
		klucz_projektu=args["klucz projektu"];
		kod_jezyka=args["kod języka"];
		kod_projektu=args["kod projektu"];
	else
		nazwa=frame;
	end;
	
	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",};
		local np=mw.ustring.match(strona,"^%s*([^:]+)%s*:");
		if(not np)then return "";end;
		return np;
	end;
	local prze=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
	if(not prze)then
		  return "";
    else
    	prze=mw.ustring.gsub(prze,"[%s_]+"," ");
	end;
	local nazwy_modul=require("Module:Nazwy");
	local nstext;
	if(czy_biezaca_wiki)then
		   nstext=nazwy_modul.Np{nazwa=prze,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
	else
	     nstext=nazwy_modul.NpDane{nazwa=prze,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
    end;
	if(nstext) then
		return nstext;
	else
		return "";
	end;
end;
m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};	
	local nazwy_modul=require("Module:Nazwy");
	local nazwa;local klucz_projektu;local kod_jezyka;local kod_projektu;
	if(type(frame)=="table")then
		klucz_projektu=args["klucz projektu"];
		kod_jezyka=args["kod języka"];
		kod_projektu=args["kod projektu"];
	end;
	
	local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](args);
	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 args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	local nazwy_modul=require("Module:Nazwy");
	local nazwa;local klucz_projektu;local kod_jezyka;local kod_projektu;
	if(type(frame)=="table")then
		klucz_projektu=args["klucz projektu"];
		kod_jezyka=args["kod języka"];
		kod_projektu=args["kod projektu"];
	end;
	local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](args);
	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 args=frame and((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};	
	local nazwy_modul=require("Module:Nazwy");
	local nazwa;local klucz_projektu;local kod_jezyka;local kod_projektu;
	if(type(frame)=="table")then
		nazwa=args.nazwa or args[1];
		klucz_projektu=args["klucz projektu"];
		kod_jezyka=args["kod języka"];
		kod_projektu=args["kod projektu"];
	else
		nazwa=frame;
	end;
	
	local pelna_nazwa=nazwa;
	local wiki_modul=require("Module:Wiki");
	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 strona2=mw.ustring.match(strona,"^%s*[^:]+%s*:%s*(.+[%s])%s*$");
		if(not strona2)then return mw.getContentLanguage():ucfirst(strona);end;
		strona2=mw.getContentLanguage():ucfirst(strona2);
		return strona2;
	end;
	
	local prze=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
	if(not prze)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
    	prze=mw.ustring.gsub(prze,"[%s_]+"," ");
	end;
	local nstext;
	local nazwy_modul=require("Module:Nazwy");
	if(czy_biezaca_wiki)then
    	nstext=nazwy_modul.Np{nazwa=prze,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};		
	else
	     nstext=nazwy_modul.NpDane{nazwa=prze,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
	end;
	if(nstext)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_:]*","");
		pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
		pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
		return mw.getContentLanguage():ucfirst(pelna_nazwa);
	end;	
end;
m["BAZOWANAZWASTRONY"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
 
	if((nazwa)and(nazwa==""))then return "";end;
	local nazwy_modul=require("Module:Nazwy");
	local nazwa2=nazwy_modul["NAZWASTRONY"](args);
    local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$");
    return (base)and base or nazwa2;
end;
m["PEŁNANAZWASTRONY"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	
	if((nazwa)and(nazwa==""))then return "";end;
	local nazwy_modul=require("Module:Nazwy");
    local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](args);
    local nazwa2=nazwy_modul["NAZWASTRONY"](args);
   
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PEŁNABAZOWANAZWASTRONY"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
    if((nazwa)and(nazwa==""))then return "";end;
    local nazwy_modul=require("Module:Nazwy");
    local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](args);
    local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](args);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWABAZOWANAZWASTRONY"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	
	if((nazwa)and(nazwa==""))then return "";end;
	local nazwy_modul=require("Module:Nazwy");
    local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](args);
    local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](args);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["BAZOWANAZWASTRONYDYSKUSJI"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	if((nazwa)and(nazwa==""))then return "";end;
	local nazwy_modul=require("Module:Nazwy");	
    local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](args);
    local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](args);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWANAZWASTRONY"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	if((nazwa)and(nazwa==""))then return "";end;
	local nazwy_modul=require("Module:Nazwy");	
    local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](args);
    local nazwa2=nazwy_modul["NAZWASTRONY"](args);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["NAZWASTRONYDYSKUSJI"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
    if((nazwa)and(nazwa==""))then return "";end;
    local nazwy_modul=require("Module:Nazwy");
	local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](args);
    local nazwa2=nazwy_modul["NAZWASTRONY"](args)
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["CzęściTytułu"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	local tytul=args[1];
	local ktora=args[2];
	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 args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	local nazwy_modul=require("Module:Nazwy");	
	
	local czy=(type(frame)=="table");
	local pelna_nazwa_strony=(type(frame)=="table") and (args["nazwa"] or args[1])or (not czy and frame);
	
    local nazwy_modul=require("Module:Nazwy");
	local nazwa_strony=nazwy_modul["NAZWASTRONY"](pelna_nazwa_strony);
	local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](pelna_nazwa_strony);
	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 nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
	elseif(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.User)then
		return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=2,};
	elseif(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Wikibooks)then
		if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/.-$"))then
			return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=3,};
		else
			return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
		end;
	elseif((nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Module))then
		if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/.-$"))then
			return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=2,};
		else
			return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
		end;
	else
		return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
	end;
end;
m["PEŁNANAZWAKSIĄŻKI"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	local nazwy_modul=require("Module:Nazwy");
	
	local czy=(type(frame)=="table");
	local pelna_nazwa_strony=(type(frame)=="table") and (args["nazwa"] or args[1])or (not czy and frame);
	
	local nazwy_modul=require("Module:Nazwy");
	local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_strony);
	local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_strony);
	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 args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	local nazwy_modul=require("Module:Nazwy");
	
	local czy=(type(frame)=="table");
	local pelna_nazwa_strony=(type(frame)=="table") and (args["nazwa"] or args[1])or (not czy and frame);
	
    local nazwy_modul=require("Module:Nazwy");
	local nazwa_strony=nazwy_modul["NAZWASTRONY"](pelna_nazwa_strony);
	local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](pelna_nazwa_strony);
	local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
	local nazw;
	if((nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Main)or(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Wikijunior))then
		nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
	elseif(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.User)then
		nazw=mw.ustring.match(nazwa_strony,"^[^/]*/[^/]*/(.*)$");
	elseif(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Wikibooks)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;
	elseif((nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.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;
	if(nazw)then return nazw;else return "";end;
end;
m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	local nazwy_modul=require("Module:Nazwy");
	
	local czy=(type(frame)=="table");
	local pelna_nazwa_strony=(type(frame)=="table") and (args["nazwa"] or args[1])or (not czy and frame);
	
	local nazwy_modul=require("Module:Nazwy");
	local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony);
	if(artykul=="")then
		local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_strony);
		local tytul=mw.ustring.match(nazwa_ksiazki,"([^/]*)$");
		return tytul or nazwa_ksiazki;
	else
		return artykul;
	end;
end;
m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	
	local czy=(type(frame)=="table");
	local pelna_nazwa_strony=(type(frame)=="table") and (args["nazwa"] or args[1])or (not czy and frame);
	
    local nazwy_modul=require("Module:Nazwy");
	pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony);
	local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_strony);
	local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
	if((nazwa_przestrzeni_nazw==nazwy_np_modul.Main)or(nazwa_przestrzeni_nazw==nazwy_np_modul.Wikijunior)or(nazwa_przestrzeni_nazw==nazwy_np_modul.Talk)or(nazwa_przestrzeni_nazw==nazwy_np_modul.Wikijunior_talk))then
		return nazwa_przestrzeni_nazw;
	elseif((nazwa_przestrzeni_nazw==nazwy_np_modul.User)or(nazwa_przestrzeni_nazw==nazwy_np_modul.User_talk))then
	     return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=1,};
	elseif((nazwa_przestrzeni_nazw==nazwy_np_modul.Wikibooks)or(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)or(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)or(nazwa_przestrzeni_nazw==nazwy_np_modul.Wikibooks_talk)or(nazwa_przestrzeni_nazw==nazwy_np_modul.Template_talk)or(nazwa_przestrzeni_nazw==nazwy_np_modul.Module_talk))then
		if(mw.ustring.match(pelna_nazwa_strony,"^"..((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "").."[Bb]rudnopis/.-$"))then
			return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=2,};
		else
			return nazwa_przestrzeni_nazw;
		end;
	else
		return nazwa_przestrzeni_nazw;
	end;
end;
m["NAZWASUBSTRONY"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	local nazwy_modul=require("Module:Nazwy");
	local pelna_nazwa_strony2=nazwy_modul["NAZWASTRONY"](args);
	return mw.ustring.match(pelna_nazwa_strony2,"[^/]*$");
end;
m["NAZWAKORZENIASTRONY"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	local nazwy_modul=require("Module:Nazwy");
	local nazwa_strony=nazwy_modul["NAZWASTRONY"](args);
    return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
m["PEŁNANAZWAKORZENIASTRONY"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
	local nazwy_modul=require("Module:Nazwy");
	local pelna_nazwa_strony_2=nazwy_modul["PEŁNANAZWASTRONY"](args);
    return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony_2,[2]=1,};
end;
return m