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 Aliansy(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 ZamiastKanoniczne(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=Aliansy(uchwyt2);
		   if(pos)then return pos;end;
		   if((uchwyt2.canonicalName~=uchwyt2.name)or(uchwyt2.name==""))then
		   	  return uchwyt2.canonicalName;
		   end;
	end;
	return;
end;
function KanonicznaNazwa(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=Aliansy(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ępyFun"](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 DalszeOperacje(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu);
end;
function MyslikDolny(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 DalszeOperacje(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=ZamiastKanoniczne(nazwa,uchwyt_przestrzeni_nazw,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
    		if(zamiast_kanoniczne)then return MyslikDolny(myslnik,zamiast_kanoniczne);end;
    		local kanoniczna_nazwa=KanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
    		if(kanoniczna_nazwa)then
    			return MyslikDolny(myslnik,kanoniczna_nazwa);
    		else
    			return nil;
    		end;
    	else
    		return MyslikDolny(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 DalszeOperacje(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 DalszeOperacje(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 DalszeOperacje(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
            else
                  if(czy_istnieje)then
                  	  return nil;
                  else
                  	  return MyslikDolny(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.CzyTakFun(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.CzyTakFun(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.NpFun(args)
	local parametry_modul=require("Module:Parametry");
	local nazwa=args.nazwa or "";
	local przedmiotowa=parametry_modul["CzyTakCiągFun"](args.przedmiotowa);
    local dyskusja=parametry_modul["CzyTakCiągFun"](args.dyskusja);
    local kanoniczna=parametry_modul["CzyTakCiągFun"](args.kanoniczna);    
    local z_myslnikami_dolnymi=parametry_modul["CzyTakCiągFun"](args["z myślnikami dolnymi"]);
    local wyswietlana=parametry_modul["CzyTakCiągFun"](args["wyświetlana"]);
    local link=parametry_modul["CzyTakCiągFun"](args.link);
    local id=parametry_modul["CzyTakCiągFun"](args.id);
    local nazwij_projektem=parametry_modul["CzyTakCiągFun"](args["nazwij projektem"]);
    local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiągFun"](args["nazwij dyskusją projektu"]);
    local czy_istnieje=parametry_modul["CzyTakCiągFun"](args["istnieje"]);
    local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiągFun"](args["wynik błędu nietekstowy"]);
    local uchwyt=parametry_modul["CzyTakCiągFun"](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.NpFun{["nazwa"]=nazwa,
				                 ["dyskusja"]=((dysksuja)and "tak" or ""),
				                 ["przedmiotowa"]=((przedmiotowa)and "tak" or ""),
				                 ["uchwyt"]="tak",
			};
			if(uchwyt)then
				local kanoniczna_nazwa=KanonicznaNazwa(true,uchwyt);
				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=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=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_nazwa];
				if(nazwa_strony)then
					if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
						return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=nazwa_strony[1],["strona"]=nazwa_strony[2],["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,},};
					else
						if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
					end;
				elseif(not id)then
					return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]="Wikibooks:Przestrzenie nazw",["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,},};
				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.Np(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/Np").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	return m.NpFun{		                 
		          nazwa=args["nazwa"] or args[1],
		          przedmiotowa=args["przedmiotowa"],
		          dyskusja=args["dyskusja"],
		          kanoniczna=args["kanoniczna"],
		          ["z myślnikami dolnymi"]=args["z myślnikami dolnymi"],
		          ["wyświetlana"]=args["wyświetlana"],
		          id=args["id"];
		          link=args["link"],
		          ["nazwij projektem"]=args["nazwij projektem"],
		          ["nazwij dyskusją projektu"]=args["nazwij dyskusją projektu"],
		          ["istnieje"]=args["istnieje"],
		          ["wynik błędu nietekstowy"]=args["wynik błędu nietekstowy"];
	           };
end;
function m.NpDaneFun(args)
	local parametry_modul=require("Module:Parametry");
	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 "";
	local dyskusja=args.dyskusja;
	local przedmiotowa=args.przedmiotowa;
	local wyswietlana=parametry_modul["CzyTakCiągFun"](args["wyświetlana"]);
	local id=parametry_modul["CzyTakCiągFun"](args.id);
	local czy_istnieje=parametry_modul["CzyTakCiągFun"](args["istnieje"]);
    local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiągFun"](args["wynik błędu nietekstowy"]);
    local awaryjnie=parametry_modul["CzyTakCiągFun"](args.awaryjnie);
	local kanoniczna=parametry_modul["CzyTakCiągFun"](args.kanoniczna);
	local uchwyt=parametry_modul["CzyTakCiągFun"](args.uchwyt);
	
	nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
    nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
    nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
	
    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"]();
    local po_polsku=parametry_modul["CzyTakCiągFun"](args["po polsku"]);
    --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.NpFun{["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(nazwa,"tak");
    local function por_prze(nazwa2)
    	nazwa2=mw.ustring.lower(parametry_modul["OdstępyFun"](nazwa2,"tak"));
    	if(nazwa_local==nazwa2)then
    		return true;
    	end;
    	return false;
    end;
    local function wyswietlana_nazwa(name)
    	if(wyswietlana)then
    		if(name=="")then return "(main)";end;
    		return name;
    	end;
    	return name;
    end;
	if(id or kanoniczna)then
		if(awaryjnie)then
			if por_prze("")then 
	   	         return m.NpFun{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ągFun"](dyskusja);
	   	 	    local nazwij_projektem=parametry_modul["CzyTakCiągFun"](args["nazwij projektem"]);
		        local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiągFun"](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.NpFun{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ągFun"](przedmiotowa);
	   	 	    local nazwij_projektem=parametry_modul["CzyTakCiągFun"](args["nazwij projektem"]);
		        local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiągFun"](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.NpFun{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ągFun"](dyskusja);
	   	 	local nazwij_projektem=parametry_modul["CzyTakCiągFun"](args["nazwij projektem"]);
		    local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiągFun"](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.NpFun{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ągFun"](przedmiotowa);
	   	 	local nazwij_projektem=parametry_modul["CzyTakCiągFun"](args["nazwij projektem"]);
		    local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiągFun"](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.NpFun{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ągFun"](dyskusja);
	   	 	    local nazwij_projektem=parametry_modul["CzyTakCiągFun"](args["nazwij projektem"]);
		        local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiągFun"](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.NpFun{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ągFun"](przedmiotowa);
	   	 	    local nazwij_projektem=parametry_modul["CzyTakCiągFun"](args["nazwij projektem"]);
		        local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiągFun"](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.NpFun{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ągFun"](dyskusja);
       		if(not id)then
       	  		if(not czy_dyskusja)then
       	  			return "User";
       	  		else
       	  			return "User talk";
       	  		end;
       		else
       	    	 return m.NpFun{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ągFun"](przedmiotowa);
       		  if(not id)then
       	  		if(not czy_przedmiotowa)then
       	  			return "User talk";
       	  		else
       	  			return "User";
       	  		end;
       		else
       	    	 return m.NpFun{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ągFun"](dyskusja);
    			if(not id)then
    				if(not czy_dyskusja)then
    					return "User";
    				else
    					return "User talk";
    				end;
    			else
    				return m.NpFun{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ągFun"](przedmiotowa);
         	    if(not id)then
         	    	if(not czy_przedmiotowa)then
         	    		return "User talk";
         	    	else
         	    		return "User";
         	    	end;
         	    else
         	        return m.NpFun{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ągFun"](dyskusja);
   	        	    if(not id)then
   	        	    	if(not czy_dyskusja)then
   	        	     		return 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.NpFun{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ągFun"](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 name;
   	        	    	end;
   	        	    else
   	        	    	return m.NpFun{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ągFun"](dyskusja);
   	        	    if(not id)then
   	        	    	if(not czy_dyskusja)then
   	        	     		return 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.NpFun{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ągFun"](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 name;
   	        	    	end;
   	        	    else
   	        	    	   return m.NpFun{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ągFun"](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.NpFun{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ągFun"](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.NpFun{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ągFun"](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.NpFun{
		                        	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ągFun"](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.NpFun{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_przedmiotowa=parametry_modul["CzyTakCiągFun"](przedmiotowa);
	   	   			local czy_dyskusja=parametry_modul["CzyTakCiągFun"](dyskusja);
	   	   		    local czy_przedmiotowa=parametry_modul["CzyTakCiągFun"](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.NpFun{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.WikidaneOdpowiednikStronyFun{["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ągFun"](dyskusja);
						 if(not id)then
							if(not czy_dyskusja)then
								return np;
							else
			  					return m.NpFun{["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.NpFun{["nazwa"]=np,["id"]="tak",["dyskusja"]=dyskusja,};
		  		    	end;
					end;
				end;
			end;
		end;
	   if(awaryjnie)then
			return m.NpFun{["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.NpFun{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)
			if(po_polsku)then return wyswietlana_nazwa(pos1);end;
			return wyswietlana_nazwa(pos2);
		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ągFun"](dyskusja);
		            if(not czy_dyskusja)then
		                return Zwracanie(projekt_jezyk_pl[1],projekt_jezyk[1]);
		            else
		                return Zwracanie(projekt_jezyk_pl[2],projekt_jezyk[2]);
		            end;
	   	 		elseif por_prze(projekt.." talk")then
                	local czy_przedmiotowa=parametry_modul["CzyTakCiągFun"](przedmiotowa);
		        	if(not czy_przedmiotowa)then
		            	return Zwracanie(projekt_jezyk_pl[2],projekt_jezyk[2]);
		            else
		            	return Zwracanie(projekt_jezyk_pl[1],projekt_jezyk[1]);
			        end;
	   	 		end;
	   		end; 
   	        if por_prze("Project")then
   	        	local czy_dyskusja=parametry_modul["CzyTakCiągFun"](dyskusja);
		        if(not czy_dyskusja)then
		              return Zwracanie(projekt_jezyk_pl[1],projekt_jezyk[1]);
		        else
		              return Zwracanie(projekt_jezyk_pl[2],projekt_jezyk[2]);
		        end;
   	        elseif por_prze("Project talk")then
   	        	local czy_przedmiotowa=parametry_modul["CzyTakCiągFun"](przedmiotowa);
		        if(not czy_przedmiotowa)then
		             return Zwracanie(projekt_jezyk_pl[2],projekt_jezyk[2]);
		        else
		              return Zwracanie(projekt_jezyk_pl[1],projekt_jezyk[1]);
		        end;
   	        end;
    		if por_prze(projekt_jezyk[1])then
	   	 	    local czy_dyskusja=parametry_modul["CzyTakCiągFun"](dyskusja);
		        if(not czy_dyskusja)then
		             return Zwracanie(projekt_jezyk_pl[1],projekt_jezyk[1])
		        else
		             return Zwracanie(projekt_jezyk_pl[2],projekt_jezyk[2]);
				end;
       		elseif por_prze(projekt_jezyk[2])then
                local czy_przedmiotowa=parametry_modul["CzyTakCiągFun"](przedmiotowa);
		        if(not czy_przedmiotowa)then
		             return Zwracanie(projekt_jezyk_pl[2],projekt_jezyk[2]);
		        else
		             return Zwracanie(projekt_jezyk_pl[1],projekt_jezyk[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ągFun"](dyskusja);
       			if(not czy_dyskusja)then
       				return Zwracanie(projekt_jezyk_pl[1],projekt_jezyk[1]);
       			else
       	  			return Zwracanie(projekt_jezyk_pl[2],projekt_jezyk[2]);
       			end;
    		elseif por_prze("User talk")then
       			local czy_przedmiotowa=parametry_modul["CzyTakCiągFun"](przedmiotowa)
       	  		if(not czy_przedmiotowa)then
       	  			return Zwracanie(projekt_jezyk_pl[2],projekt_jezyk[2]);	
       	  		else
       	  			return Zwracanie(projekt_jezyk_pl[1],projekt_jezyk[1]);
       	  		end;
        	end;
    		if por_prze(projekt_jezyk[1])then 
    			local czy_dyskusja=parametry_modul["CzyTakCiągFun"](dyskusja);
    			if(not czy_dyskusja)then
    				return Zwracanie(projekt_jezyk_pl[1],projekt_jezyk[1]);
    			else
    				return Zwracanie(projekt_jezyk_pl[2],projekt_jezyk[2]);
    			end;
    		elseif por_prze(projekt_jezyk[2])then 
		 	    local czy_przedmiotowa=parametry_modul["CzyTakCiągFun"](przedmiotowa);
         	    if(not czy_przedmiotowa)then
         	    	return Zwracanie(projekt_jezyk_pl[2],projekt_jezyk[2]);
         	    else
         	    	return Zwracanie(projekt_jezyk_pl[1],projekt_jezyk[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ągFun"](dyskusja);
   	        	        if(not czy_dyskusja)then
   	        	     		return Zwracanie(tabnp_jezyk_pl[name][1],value[1]);
   	        	        else
   	        	        	if(value[2])then
   	        	     			return Zwracanie(tabnp_jezyk_pl[name][2],value[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ągFun"](przedmiotowa);
   	        	    	if(not czy_przedmiotowa)then
   	        	    		if(value[2])then
   	        	     			return Zwracanie(tabnp_jezyk_pl[name][2],value[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ągFun"](dyskusja);
   	        	    	if(not czy_dyskusja)then
   	        	     		return Zwracanie(tabnp_jezyk_pl[name][1],value[1]);
   	        	    	else
   	        	    		if(value[2])then
   	        	     			return Zwracanie(tabnp_jezyk_pl[name][2],value[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ągFun"](przedmiotowa);
   	        	    	if(not czy_przedmiotowa)then
   	        	    		if(value[2])then
   	        	     			return Zwracanie(tabnp_jezyk_pl[name][2],value[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;
            		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ągFun"](dyskusja);
   	        	    if(not czy_dyskusja)then
   	        	     	return Zwracanie(pozostale_przestrzenie_jezyk_pl[name][1],value[1]);
   	        	    else
   	        	    	if(value[2])then
   	        	     		return Zwracanie(pozostale_przestrzenie_jezyk_pl[name][2],value[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ągFun"](przedmiotowa);
   	        	    if(not czy_przedmiotowa)then
   	        	    	if(value[2])then
   	        	     		return Zwracanie(pozostale_przestrzenie_jezyk_pl[name][2],value[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[name][1],value[1]);
   	        	    end;
		        elseif por_prze(value[1])then
   	        	    local czy_dyskusja=parametry_modul["CzyTakCiągFun"](dyskusja);
   	        	    if(not czy_dyskusja)then
   	        	     	return Zwracanie(pozostale_przestrzenie_jezyk_pl[name][1],value[1]);
   	        	    else
   	        	    	if(value[2])then
   	        	     		return Zwracanie(pozostale_przestrzenie_jezyk_pl[name][2],value[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ągFun"](przedmiotowa);
   	        	    if(not czy_przedmiotowa)then
   	        	    	if(value[2])then
   	        	     		return Zwracanie(pozostale_przestrzenie_jezyk_pl[name][2],value[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[name][1],value[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.WikidaneOdpowiednikStronyFun{["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ągFun"](dyskusja);
						if(not czy_dyskusja)then
							if(not po_polsku)then
								return np2;
							else
								return m.NpFun{["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.NpFun{["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.NpFun{["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;
function m.NpDane(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/Np").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	return m.NpDaneFun{["nazwa"]=args.nazwa or args[1],["dyskusja"]=args["dyskusja"],["przedmiotowa"]=args["przedmiotowa"],["wyświetlana"]=args["wyświetlana"],["id"]=args["id"],["klucz projektu"]=args["klucz projektu"],["kod języka"]=args["kod języka"],["kod projektu"]=args["kod projektu"],["kanoniczna"]=args["kanoniczna"],["po polsku"]=args["po polsku"],["nazwij projektem"]=args["nazwij projektem"],["nazwij dyskusją projektu"]=args["nazwij dyskusją projektu"],["awaryjnie"]=args["awaryjnie"],["istnieje"]=args["istnieje"],["wynik błędu nietekstowy"]=args["wynik błędu nietekstowy"],
	}
end;
m["NAZWASERWISU"]=function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/NAZWASERWISU").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
    local nazwy_modul=require("Module:Nazwy");	
	return nazwy_modul["NAZWASERWISUFUN"](args[1],args["link"],args["po"],args["wikipedia"],args["klucz projektu"],args["kod języka"],args["kod projektu"],args["w języku wiki"]);
end;
m["NAZWASERWISUFUN"]=function(nazwa,link,po,wikipedia,klucz_projektu,kod_jezyka,kod_projektu,w_jezyku_wiki)
	if(type(nazwa)=="table")then args=nazwa;nazwa=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"];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.CzyTakFun(wikipedia);
    local link=parametry_modul.CzyTakFun(link);
    local wiki_modul=require("Module:Wiki");
    local function Nazwa_projektu()
       return wiki_modul.WikidaneOdpowiednikStronyFun{["nazwa strony"]=projekt,["kod języka"]=kod_jezyka,["kod projektu"]="w",["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]="w",};
    end;
    local function Nazwa_strony_glownej()
       return wiki_modul.WikidaneOdpowiednikStronyFun{["nazwa strony"]=pudelko_modul["StronaGłównaTegoProjektuFun"](),["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]=kod_projektu_tego_projektu,};
    end;
    local nazwa_projektu2=Nazwa_projektu();
    local nazwa=((link)and (nazwa or (parametry_modul.CzyTakFun(w_jezyku_wiki)and nazwa_projektu2 or projekt)) or nazwa_projektu2)..(parametry_modul.CzyTakFun(po)and po or "");
	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"]{args={["strona"]=nazwa_projektu2,["nazwa"]=nazwa,["kod projektu"]="w",}};
			else
				return linki_modul["Link wewnętrzny"]{args={["strona"]=nazwa_projektu2,["nazwa"]=nazwa,["kod projektu"]="w",["kod języka"]=kod_jezyka,},};
			end;
		else
			if(kod_jezyka==kod_jezyka_tego_projektu)then
				if(kod_projektu==kod_projektu_tego_projektu)then
					return linki_modul["Link wewnętrzny"]{args={["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,},};
				else
					return linki_modul["Link wewnętrzny"]{args={["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,["kod projektu"]=kod_projektu,},}
				end;
			else
				if(kod_projektu==kod_projektu_tego_projektu)then
					return linki_modul["Link wewnętrzny"]{args={["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,["kod języka"]=kod_jezyka,},}
				else
					return linki_modul["Link wewnętrzny"]{args={["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},}
				end;
			end;
		end;
	else
		return nazwa;
	end;
end;
m["NAZWAPRZESTRZENI"] = function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/NAZWAPRZESTRZENI").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	local nazwy_modul=require("Module:Nazwy");	
	return nazwy_modul["NAZWAPRZESTRZENIFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"]);
end;
m["NAZWAPRZESTRZENIFUN"] = function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];end;
	local pelna_nazwa=nazwa;
	local parametry_modul=require("Module:Parametry");
	local wiki_modul=require("Module:Wiki");
	local czy_biezaca_wiki=wiki_modul["CzyBieżącaWikiFun"](klucz_projektu,kod_jezyka,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["StronaGłównaTegoProjektuFun"]();
	    local strona=wiki_modul.WikidaneOdpowiednikStronyFun{["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.NpFun{nazwa=prze,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
	else
	     nstext=nazwy_modul.NpDaneFun{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)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/PRZEDMIOTOWAPRZESTRZEŃ").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;	
	local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"]);
end;
m["PRZEDMIOTOWAPRZESTRZEŃFUN"] = function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];end;
	local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENIFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
	local nazwy_modul=require("Module:Nazwy");
	local wiki_modul=require("Module:Wiki");
	local czy_biezaca_wiki=wiki_modul["CzyBieżącaWikiFun"](klucz_projektu,kod_jezyka,kod_projektu);
	if(czy_biezaca_wiki)then
		   return nazwy_modul.NpFun{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"};
	else
		return nazwy_modul.NpDaneFun{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)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/PRZESTRZEŃDYSKUSJI").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["PRZESTRZEŃDYSKUSJIFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"]);
end;
m["PRZESTRZEŃDYSKUSJIFUN"] = function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];end;
	local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENIFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
	local nazwy_modul=require("Module:Nazwy");
	local wiki_modul=require("Module:Wiki");
	local czy_biezaca_wiki=wiki_modul["CzyBieżącaWikiFun"](klucz_projektu,kod_jezyka,kod_projektu);
	if(czy_biezaca_wiki)then
    	return nazwy_modul.NpFun{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"};		
	else
		return nazwy_modul.NpDaneFun{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)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/NAZWASTRONY").id	
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;	
	local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["NAZWASTRONYFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"]);
end;
m["NAZWASTRONYFUN"] = function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];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żącaWikiFun"](klucz_projektu,kod_jezyka,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["StronaGłównaTegoProjektuFun"]();
	    local strona=wiki_modul.WikidaneOdpowiednikStronyFun{["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 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.NpFun{nazwa=prze,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};		
	else
	     nstext=nazwy_modul.NpDaneFun{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)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/BAZOWANAZWASTRONY").id	
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
    local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["BAZOWANAZWASTRONYFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"]);
end;
m["BAZOWANAZWASTRONYFUN"]=function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];end;
	if((nazwa)and(nazwa==""))then return "";end;
	local nazwy_modul=require("Module:Nazwy");
	local nazwa2=nazwy_modul["NAZWASTRONYFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$");
    return (base)and base or nazwa2;
end;
m["PEŁNANAZWASTRONY"] = function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/PEŁNANAZWASTRONY").id	
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
    local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["PEŁNANAZWASTRONYFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"]);
end;
m["PEŁNANAZWASTRONYFUN"] = function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];end;
	if((nazwa)and(nazwa==""))then return "";end;
	local nazwy_modul=require("Module:Nazwy");
    local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENIFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    local nazwa2=nazwy_modul["NAZWASTRONYFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
   
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PEŁNABAZOWANAZWASTRONY"]=function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/PEŁNABAZOWANAZWASTRONY").id	
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["PEŁNABAZOWANAZWASTRONYFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"]);
end;
m["PEŁNABAZOWANAZWASTRONYFUN"]=function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];end;
    if((nazwa)and(nazwa==""))then return "";end;
    local nazwy_modul=require("Module:Nazwy");
    local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENIFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    local nazwa2=nazwy_modul["BAZOWANAZWASTRONYFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWABAZOWANAZWASTRONY"]=function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/PRZEDMIOTOWABAZOWANAZWASTRONY").id	
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	local nazwy_modul=require("Module:Nazwy");	
	return nazwy_modul["PRZEDMIOTOWABAZOWANAZWASTRONYFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"])
end;
m["PRZEDMIOTOWABAZOWANAZWASTRONYFUN"]=function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];end;
	if((nazwa)and(nazwa==""))then return "";end;
	local nazwy_modul=require("Module:Nazwy");
    local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    local nazwa2=nazwy_modul["BAZOWANAZWASTRONYFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["BAZOWANAZWASTRONYDYSKUSJI"]=function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/BAZOWANAZWASTRONYDYSKUSJI").id	
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["BAZOWANAZWASTRONYDYSKUSJIFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"])
end;
m["BAZOWANAZWASTRONYDYSKUSJIFUN"]=function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];end;
	if((nazwa)and(nazwa==""))then return "";end;
	local nazwy_modul=require("Module:Nazwy");	
    local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJIFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    local nazwa2=nazwy_modul["BAZOWANAZWASTRONYFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWANAZWASTRONY"] = function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/PRZEDMIOTOWANAZWASTRONY").id	
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["PRZEDMIOTOWANAZWASTRONYFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"])
end;
m["PRZEDMIOTOWANAZWASTRONYFUN"] = function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];end;
	if((nazwa)and(nazwa==""))then return "";end;
	local nazwy_modul=require("Module:Nazwy");	
    local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    local nazwa2=nazwy_modul["NAZWASTRONYFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["NAZWASTRONYDYSKUSJI"] = function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/NAZWASTRONYDYSKUSJI").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["NAZWASTRONYDYSKUSJIFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"])
end;
m["NAZWASTRONYDYSKUSJIFUN"] = function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];end;
    if((nazwa)and(nazwa==""))then return "";end;
    local nazwy_modul=require("Module:Nazwy");
	local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJIFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    local nazwa2=nazwy_modul["NAZWASTRONYFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    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.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	return require("Module:Nazwy")["CzęściTytułuFun"](args[1],tonumber(args[2]));
end;
m["CzęściTytułuFun"] = function(tytul,ktora)
	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)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/NAZWAKSIĄŻKI").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	local nazwy_modul=require("Module:Nazwy");	
	return nazwy_modul["NAZWAKSIĄŻKIFUN"](args[1]);
end;
m["NAZWAKSIĄŻKIFUN"] = function(pelna_nazwa_strony)
    local nazwy_modul=require("Module:Nazwy");
	local nazwa_strony=nazwy_modul["NAZWASTRONYFUN"](pelna_nazwa_strony);
	local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃFUN"](pelna_nazwa_strony);
	local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
	if(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.User)then
		return nazwy_modul["CzęściTytułuFun"](nazwa_strony,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łuFun"](nazwa_strony,3);
		else
			return nazwy_modul["CzęściTytułuFun"](nazwa_strony,1);
		end;
	else
		return nazwy_modul["CzęściTytułuFun"](nazwa_strony,1);
	end;
end;
m["PEŁNANAZWAKSIĄŻKI"]=function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/PEŁNANAZWAKSIĄŻKI").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["PEŁNANAZWAKSIĄŻKIFUN"](args[1]);
end
m["PEŁNANAZWAKSIĄŻKIFUN"]=function(pelna_nazwa_strony)
	local nazwy_modul=require("Module:Nazwy");
	local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENIFUN"](pelna_nazwa_strony);
	local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKIFUN"](pelna_nazwa_strony);
	return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki;
end;
m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/NAZWAARTYKUŁUKSIĄŻKI").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["NAZWAARTYKUŁUKSIĄŻKIFUN"](args[1]);
end;
m["NAZWAARTYKUŁUKSIĄŻKIFUN"] = function(pelna_nazwa_strony)
    local nazwy_modul=require("Module:Nazwy");
	local nazwa_strony=nazwy_modul["NAZWASTRONYFUN"](pelna_nazwa_strony);
	local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃFUN"](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;
	else
		    nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
	end;
	if(nazw)then return nazw;else return "";end;
end;
m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/NAZWAPRZESTRZENIKSIĄŻKI").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	return require("Module:Nazwy")["NAZWAPRZESTRZENIKSIĄŻKIFUN"](args[1]);
end;
m["NAZWAPRZESTRZENIKSIĄŻKIFUN"] = function(pelna_nazwa_strony)
    local nazwy_modul=require("Module:Nazwy");
	pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONYFUN"](pelna_nazwa_strony);
	local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENIFUN"](pelna_nazwa_strony);
	local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
	if((nazwa_przestrzeni_nazw==nazwy_np_modul.User)or(nazwa_przestrzeni_nazw==nazwy_np_modul.User_talk))then
	     return nazwy_modul["CzęściTytułuFun"](pelna_nazwa_strony,1);
	elseif((nazwa_przestrzeni_nazw==nazwy_np_modul.Wikibooks)or(nazwa_przestrzeni_nazw==nazwy_np_modul.Wikibooks_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łuFun"](pelna_nazwa_strony,2);
		else
			return nazwa_przestrzeni_nazw;
		end;
	else
		return nazwa_przestrzeni_nazw;
	end;
end;
m["NAZWASUBSTRONY"] = function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/NAZWASUBSTRONY").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["NAZWASUBSTRONYFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"]);
end;
m["NAZWASUBSTRONYFUN"] = function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];end;
	local pelna_nazwa_strony2=require("Module:Nazwy")["NAZWASTRONYFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
	return mw.ustring.match(pelna_nazwa_strony2,"[^/]*$");
end;
m["NAZWAKORZENIASTRONY"] = function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/NAZWAKORZENIASTRONY").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["NAZWAKORZENIASTRONYFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"]);
end;
m["NAZWAKORZENIASTRONYFUN"] = function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];end;
	local nazwy_modul=require("Module:Nazwy");
	local nazwa_strony=nazwy_modul["NAZWASTRONYFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    return nazwy_modul["CzęściTytułuFun"](nazwa_strony,1);
end;
m["PEŁNANAZWAKORZENIASTRONY"] = function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/PEŁNANAZWAKORZENIASTRONY").id
	local parametry_modul=require("Module:Parametry");
	local args=(frame.getParent and ((parametry_modul.CzyTakFun(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args;
	local nazwy_modul=require("Module:Nazwy");
	return nazwy_modul["PEŁNANAZWAKORZENIASTRONYFUN"](args[1],args["klucz projektu"],args["kod języka"],args["kod projektu"])
end;
m["PEŁNANAZWAKORZENIASTRONYFUN"] = function(nazwa,klucz_projektu,kod_jezyka,kod_projektu)
	if(type(nazwa)=="table")then args=nazwa;nazwa=args.nazwa or args[1];klucz_projektu=args["klucz projektu"];kod_jezyka=args["kod języka"];kod_projektu=args["kod projektu"];end;
	local nazwy_modul=require("Module:Nazwy");
	local pelna_nazwa_strony_2=nazwy_modul["PEŁNANAZWASTRONYFUN"](nazwa,klucz_projektu,kod_jezyka,kod_projektu);
    return nazwy_modul["CzęściTytułuFun"](pelna_nazwa_strony_2,1);
end;
return m