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 PrzestrzenieNazwNormalnaPrzedmiotowaDyskusji(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
  local parametry_modul=require("Module:Parametry");
  if(przedmiotowa)then
    	local uchwyt_przestrzeni_nazw2=uchwyt_przestrzeni_nazw.subject;
    	if(not uchwyt_przestrzeni_nazw2)then
    		return nil;
    	end;
    	return uchwyt_przestrzeni_nazw2;
   elseif(dyskusja)then
    	local uchwyt_przestrzeni_nazw2=uchwyt_przestrzeni_nazw.talk;
        if(not uchwyt_przestrzeni_nazw2)then
    		return nil;
    	end;
    	return uchwyt_przestrzeni_nazw2;
   else
    	local uchwyt_przestrzeni_nazw2=uchwyt_przestrzeni_nazw;
    	return uchwyt_przestrzeni_nazw2;
   end;
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.name~=uchwyt_przestrzeni_nazw.canonicalName)
				and ((uchwyt_przestrzeni_nazw.canonicalName~="Project")or(nazwij_projektem))
				and ((uchwyt_przestrzeni_nazw.canonicalName~="Project talk")or(nazwij_dyskusja_projektu))
				) or((uchwyt_przestrzeni_nazw.name=="")
				  	  and(uchwyt_przestrzeni_nazw.name==uchwyt_przestrzeni_nazw.canonicalName))
				  	)then
			    return uchwyt_przestrzeni_nazw.canonicalName;
			else	
		  		local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
		  		local parametry_modul=require("Module:Parametry");
            	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.name;
			end;
		else
			return nil;
		end;
	else
		if(uchwyt_przestrzeni_nazw)then
			return uchwyt_przestrzeni_nazw.name;
		else
			return nil;
		end;
	end;
end;
function PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu)
	local uchwyt_przestzreni_glownej=mw.site.namespaces[""];
	if(uchwyt_przestzreni_glownej)then
	    local uchwyt_do_przestrzeni_nazw_normalnej_przedmiotowej_lub_dyskusji=PrzestrzenieNazwNormalnaPrzedmiotowaDyskusji(przedmiotowa, dyskusja,uchwyt_przestzreni_glownej);
	    if(not uchwyt_do_przestrzeni_nazw_normalnej_przedmiotowej_lub_dyskusji)then
	    	return nil;
	    end;
	    local nazwa_przestrzeni_nazw_kanoniczna=KanonicznaNazwa(kanoniczna,uchwyt_do_przestrzeni_nazw_normalnej_przedmiotowej_lub_dyskusji,nazwij_projektem,nazwij_dyskusja_projektu);
	    if(nazwa_przestrzeni_nazw_kanoniczna)then
		     return MyslikDolny(myslnik,nazwa_przestrzeni_nazw_kanoniczna);
		else
			 return nil;
		end;
	else
		return nil;
	end;
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=PrzestrzenieNazwNormalnaPrzedmiotowaDyskusji(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw);
    if(uchwyt_przestrzeni_nazw2)then
    	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 nil;
    end;
end;
function TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu)
    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
    			local parametry_modul=require("Module:Parametry");
    			if(kanoniczna)then
    					if((uchwyt_przestrzeni_nazw.isSubject)and (przedmiotowa))then
    						return MyslikDolny(myslnik,nazwa);
    					elseif((uchwyt_przestrzeni_nazw.isTalk)and (dyskusja))then
    						return MyslikDolny(myslnik,nazwa);
    					else	 
    						local uchwyt_przestrzeni_nazw2=PrzestrzenieNazwNormalnaPrzedmiotowaDyskusji(przedmiotowa, dyskusja, uchwyt_przestrzeni_nazw);
                			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;
						end;
				 else
				 	local uchwyt_przestrzeni_nazw2=PrzestrzenieNazwNormalnaPrzedmiotowaDyskusji(przedmiotowa, dyskusja, uchwyt_przestrzeni_nazw);
				 	return MyslikDolny(myslnik,uchwyt_przestrzeni_nazw2.name);
				 end;
    				
            else
                  return MyslikDolny(myslnik,nazwa);
            end;
    		
    	end;
    end;
end;
function Tlumaczenie(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,wyswietlana,nazwij_projektem,nazwij_dyskusja_projektu)
	local parametry_modul=require("Module:Parametry");
	if(wyswietlana)then
		if((nazwa)and(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=="")then
					if((kanoniczna)and(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);
				 if(nazwa2=="")then
					if((kanoniczna)and(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=="")then
					if((kanoniczna)and(kanoniczna~=""))then
						return "(main)";
					else
				    	return "(główna)";
				    end;
			else
				return nazwa2;
			end;
		end;
	else
        if((nazwa)and(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);
			end;
        else
    	   	return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
		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 p=(parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent();
	return m.NpFun{		                 
		                 nazwa=p.args[1],
		                 przedmiotowa=p.args["przedmiotowa"],
		                 dyskusja=p.args["dyskusja"],
		                 kanoniczna=p.args["kanoniczna"],
		                 ["z myślnikami dolnymi"]=p.args["z myślnikami dolnymi"],
		                 ["wyświetlana"]=p.args["wyświetlana"],
		                 id=p.args["id"];
		                 link=p.args["link"],
		                 ["nazwij projektem"]=p.args["nazwij projektem"],
		                 ["nazwij dyskusją projektu"]=p.args["nazwij dyskusją projektu"],
	           };
end;
function m.NpFun(args)
	local parametry_modul=require("Module:Parametry");
	local nazwa=parametry_modul["OdstępyFun"](args.nazwa,"tak");
	local przedmiotowa=parametry_modul.CzyTak(parametry_modul["OdstępyFun"](args.przedmiotowa,"tak"));
    local dyskusja=parametry_modul.CzyTak(parametry_modul["OdstępyFun"](args.dyskusja,"tak"));
    local kanoniczna=parametry_modul.CzyTak(parametry_modul["OdstępyFun"](args.kanoniczna,"tak"));    
    local z_myslnikami_dolnymi=parametry_modul.CzyTak(parametry_modul["OdstępyFun"](args["z myślnikami dolnymi"],"tak"));
    local wyswietlana=parametry_modul.CzyTak(parametry_modul["OdstępyFun"](args["wyświetlana"],"tak"));
    local link=parametry_modul.CzyTak(parametry_modul["OdstępyFun"](args.link,"tak"));
    local id=parametry_modul.CzyTak(parametry_modul["OdstępyFun"](args["id"],"tak"));
    --local bez_linku=(args["bez linku"])and parametry_modul["OdstępyFun"](args["bez linku"],"tak");
    local nazwij_projektem=parametry_modul.CzyTak(parametry_modul["OdstępyFun"](args["nazwij projektem"],"tak"));
    local nazwij_dyskusja_projektu=parametry_modul.CzyTak(parametry_modul["OdstępyFun"](args["nazwij dyskusją projektu"],"tak"));
	if((przedmiotowa)and(dyskusja))then
    	return "(błąd)";
    end;
	if((id)and(not link))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)and nazwa or "";
		end;	
		local uchwyt_przestrzeni_nazw=mw.site.namespaces[dd];
		if(uchwyt_przestrzeni_nazw)then
			local uchwyt_przestrzeni_nazw2=PrzestrzenieNazwNormalnaPrzedmiotowaDyskusji(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
			if(uchwyt_przestrzeni_nazw2)then
				return uchwyt_przestrzeni_nazw2.id;
			else
				return "(błąd)";
			end;
		elseif(mw.ustring.match((nazwa)and nazwa or "","^%s*[%+%-]?%d+%s*$"))then
			local uchwyt_przestrzeni_nazw=mw.site.namespaces[tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))];
			if(uchwyt_przestrzeni_nazw)then
				local uchwyt_przestrzeni_nazw2=PrzestrzenieNazwNormalnaPrzedmiotowaDyskusji(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
				if(uchwyt_przestrzeni_nazw2)then
					return uchwyt_przestrzeni_nazw2.id;
				else
					return "(błąd)";
				end;
			else
				return "(błąd)"
			end;
		else
			local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,z_myslnikami_dolnymi)
			uchwyt_przestrzeni_nazw=PrzestrzenieNazwNormalnaPrzedmiotowaDyskusji(przedmiotowa, dyskusja, uchwyt_przestrzeni_nazw);
			if(uchwyt_przestrzeni_nazw)then
				local uchwyt_przestrzeni_nazw2=PrzestrzenieNazwNormalnaPrzedmiotowaDyskusji(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
				if(uchwyt_przestrzeni_nazw2)then
					return uchwyt_przestrzeni_nazw2.id;
				else
					return "(błąd)";
				end;
			else
				return "(błąd)";
			end;
		end;
	else
		local parametry_modul=require("Module:Parametry");
		if(link)then
			local tabela_przestrzeni_nazw={
				["(main)"]="Pomoc:Tworzenie podręczników",
				["Wikijunior"]="Wikijunior:Strona główna",
				["User"]="w:Wikipedia:Strona użytkownika",
				["Wikibooks"]="Kategoria:Metastrony Wikibooks",
				["File"]="w:Pomoc:Ilustrowanie",
				["MediaWiki"]="w:Pomoc:Przestrzeń nazw/MediaWiki",
				["Template"]="Wikibooks:Szablony",
				["Help"]="Pomoc:Spis treści",
				["Category"]="w:Pomoc:Kategorie",
				["Module"]="w:Wikipedia:Lua",
				["Gadget"]="w:Wikipedia:Narzędzia",
				["Media"]="w:Pomoc:Ilustrowanie",
				["Special"]="Specjalna:Strony specjalne",
			};
			local strona_dyskusji="w:Pomoc:Strona dyskusji";
			local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=Tlumaczenie(nazwa,przedmiotowa,dyskusja,kanoniczna,z_myslnikami_dolnymi,((not id)and true or false),nazwij_projektem,nazwij_dyskusja_projektu);
			if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
				if(id)then 
					uchwyt_uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=mw.site.namespaces[uzyskana_przetlumaczona_nazwa_przestrzeni_nazw];
					if(uchwyt_uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
						uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt_uzyskana_przetlumaczona_nazwa_przestrzeni_nazw.id;
					end;
				end;
				local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw2=Tlumaczenie(nazwa,przedmiotowa,dyskusja,nil,nil,nil);
				local uchwyt_do_nazwy_przestrzeni_nazw2=mw.site.namespaces[uzyskana_przetlumaczona_nazwa_przestrzeni_nazw2];
				local nazwa_strony=(dyskusja 
				                  or ((not przedmiotowa)  
				                  	       and (not dyskusja)
				                  	       and ((uchwyt_do_nazwy_przestrzeni_nazw2)and(uchwyt_do_nazwy_przestrzeni_nazw2.isTalk)))
				                   )  and strona_dyskusji 
			                          or tabela_przestrzeni_nazw[Tlumaczenie(nazwa,true,nil,true,nil,true)];
				if(nazwa_strony)then
					if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw2)then
						return "[[:"..nazwa_strony.."|"..uzyskana_przetlumaczona_nazwa_przestrzeni_nazw.."]]";
					else
						return "(błąd)";
					end;
				elseif(not id)then
					return "[[:Wikibooks:Przestrzenie nazw|"..uzyskana_przetlumaczona_nazwa_przestrzeni_nazw.."]]";
				else
					return "(błąd)";
	    		end;
	    	else
	    		return "(błąd)"
	    	end;
    	else
    	    local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=Tlumaczenie(nazwa,przedmiotowa,dyskusja,kanoniczna,z_myslnikami_dolnymi,wyswietlana, nazwij_projektem,nazwij_dyskusja_projektu);
			return (uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)and uzyskana_przetlumaczona_nazwa_przestrzeni_nazw or "(błąd)";
		end;
	end;
end;
m["NAZWASERWISU"]=function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/NAZWASERWISU").id
	return require("Module:Nazwy")["NAZWASERWISUFUN"](require("Module:Parametry").CzyTak(frame.args["wyspecjalizowana"]) and frame.args or frame:getParent().args);
end;
m["NAZWASERWISUFUN"]=function(args)
	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 kod_jezyka=(parametry_modul.CzyTak(args["kod języka"]))and args["kod języka"] or kod_jezyka_tego_projektu;
    local kod_projektu=(parametry_modul.CzyTak(args["kod projektu"]))and args["kod projektu"] or kod_projektu_tego_projektu;
    local lista_projektow={
    	["w"]="Wikipedia",
    	["b"]="Wikibooks",
    	["wikt"]="Wikisłownik",
    	["q"]="Wikicytaty",
    	["s"]="Wikiźródła",
    	["voy"]="Wikipodróże",    	
    	["n"]="Wikinews",
    	["v"]="Wikiversity",    
    	["commons"]="Wikimedia Commons",
    	["wikispecies"]="Wikispecies", 
    	["d"]="Wikidane",
    	["mw"]="MediaWiki",
    	["m"]="Meta-Wiki",
    	["wikimania"]="Wikimania",
    }
    local projekt=lista_projektow[kod_projektu];
    if(not projekt)then
    	projekt="Wikibooks";
    	kod_jezyka=pudelko_modul["Kod języka tego projektu"]();
    	kod_projektu=pudelko_modul["Kod projektu tego projektu"]();
    end;
    local wikipedia=parametry_modul.CzyTak(args["wikipedia"]);
    local link=parametry_modul.CzyTak(args["link"]);
    local function Nazwa_projektu()
       return parametry_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 parametry_modul.WikidaneOdpowiednikStronyFun{["nazwa strony"]=pudelko_modul["StronaGłównaTegoProjektuFun"](),["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]=pudelko_modul["Kod języka tego projektu"](),["kod projektu bazy"]=pudelko_modul["Kod projektu tego projektu"](),};
    end;
    local nazwa_projektu2=Nazwa_projektu();
    local nazwa=(link)and (args[1] or (parametry_modul.CzyTak(args["w języku wiki"])and nazwa_projektu2 or projekt)) or nazwa_projektu2;
	if(link)then
		if(wikipedia)then
			if(kod_jezyka==kod_jezyka_tego_projektu)then
				 return "[[:w:"..nazwa_projektu2.."|"..nazwa.."]]";
			else
				return "[[:w:"..kod_jezyka..":"..nazwa_projektu2.."|"..nazwa.."]]";
			end;
		else
			if(kod_jezyka==kod_jezyka_tego_projektu)then
				if(kod_projektu==kod_projektu_tego_projektu)then
					return "[[:"..Nazwa_strony_glownej().."|"..nazwa.."]]";
				else
					return "[[:"..kod_projektu..":"..Nazwa_strony_glownej().."|"..nazwa.."]]";
				end;
			else
				if(kod_projektu==kod_projektu_tego_projektu)then
					return "[[:"..kod_jezyka..":"..Nazwa_strony_glownej().."|"..nazwa.."]]";
				else
					return "[[:"..kod_projektu..":"..kod_jezyka..":"..Nazwa_strony_glownej().."|"..nazwa.."]]";
				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
	return require("Module:Nazwy")["NAZWAPRZESTRZENIFUN"](frame:getParent().args[1]);
end;
m["NAZWAPRZESTRZENIFUN"] = function(nazwa)
	local pelna_nazwa=nazwa;
	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;
	pelna_nazwa=require("Module:Parametry")["OdstępyFun"](pelna_nazwa,"tak");
	local prze=mw.ustring.match(pelna_nazwa,"^([^:]+):.+$");
	if(not prze)then
		prze=mw.ustring.match(pelna_nazwa,"^:([^:]+):.+$");
		if(not prze)then
		   return "";
		end;
	end;
	local nstext=require("Module:Nazwy").NpFun{nazwa=prze};
	local ns=mw.site.namespaces[nstext];
	if(ns)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
	return require("Module:Nazwy")["PRZEDMIOTOWAPRZESTRZEŃFUN"](frame:getParent().args[1]);
end;
m["PRZEDMIOTOWAPRZESTRZEŃFUN"] = function(nazwa)
	local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENIFUN"](nazwa);
    return require("Module:Nazwy").NpFun{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"};
end;
m["PRZESTRZEŃDYSKUSJI"] = function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/PRZESTRZEŃDYSKUSJI").id	
	return require("Module:Nazwy")["PRZESTRZEŃDYSKUSJIFUN"](frame:getParent().args[1]);
end;
m["PRZESTRZEŃDYSKUSJIFUN"] = function(nazwa)
	local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENIFUN"](nazwa);
    return require("Module:Nazwy").NpFun{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"};
end;
m["NAZWASTRONY"] = function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Nazwy/Wywołanie funkcji/NAZWASTRONY").id	
	return require("Module:Nazwy")["NAZWASTRONYFUN"](frame:getParent().args[1]);
end;
m["NAZWASTRONYFUN"] = function(nazwa)
	local pelna_nazwa=nazwa;
	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;
	pelna_nazwa=require("Module:Parametry")["OdstępyFun"](pelna_nazwa,"tak");
	local prze=mw.ustring.match(pelna_nazwa,"^([^:]+):.+$");
	if(not prze)then
		prze=mw.ustring.match(pelna_nazwa,"^:([^:]+):.+$");
		if(not prze)then
			pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^:","");
		    return mw.getContentLanguage():ucfirst(pelna_nazwa);
		end;
	end;
	local nstext=require("Module:Nazwy").NpFun{nazwa=prze};
	local ns=mw.site.namespaces[nstext];
	if(ns)then
		local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[^:]+:(.*)$");
	    if(not nazwa_jednostki)then nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^:[^:]+:(.*)$");end;
		return mw.getContentLanguage():ucfirst(nazwa_jednostki);
	else
		pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^:","");
		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	
	return require("Module:Nazwy")["BAZOWANAZWASTRONYFUN"](frame:getParent().args[1]);
end;
m["BAZOWANAZWASTRONYFUN"]=function(nazwa)
	if((nazwa)and(nazwa==""))then return "";end;
	local nazwa2=require("Module:Nazwy")["NAZWASTRONYFUN"](nazwa);
    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	
	return require("Module:Nazwy")["PEŁNANAZWASTRONYFUN"](frame:getParent().args[1]);
end;
m["PEŁNANAZWASTRONYFUN"] = function(nazwa)
	if((nazwa)and(nazwa==""))then return "";end;
    local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENIFUN"](nazwa);
    local nazwa2=require("Module:Nazwy")["NAZWASTRONYFUN"](nazwa);
    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	
	return require("Module:Nazwy")["PEŁNABAZOWANAZWASTRONYFUN"](frame:getParent().args[1]);
end;
m["PEŁNABAZOWANAZWASTRONYFUN"]=function(nazwa)
    if((nazwa)and(nazwa==""))then return "";end;
    local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENIFUN"](nazwa);
    local nazwa2=require("Module:Nazwy")["BAZOWANAZWASTRONYFUN"](nazwa);
    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	
	return require("Module:Nazwy")["PRZEDMIOTOWABAZOWANAZWASTRONYFUN"](frame:getParent().args[1])
end;
m["PRZEDMIOTOWABAZOWANAZWASTRONYFUN"]=function(nazwa)
	if((nazwa)and(nazwa==""))then return "";end;
    local nazwa_przestrzeni_nazw=require("Module:Nazwy")["PRZEDMIOTOWAPRZESTRZEŃFUN"](nazwa);
    local nazwa2=require("Module:Nazwy")["BAZOWANAZWASTRONYFUN"](nazwa);
    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	
	return require("Module:Nazwy")["BAZOWANAZWASTRONYDYSKUSJIFUN"](frame:getParent().args[1])
end;
m["BAZOWANAZWASTRONYDYSKUSJIFUN"]=function(nazwa)
	if((nazwa)and(nazwa==""))then return "";end;
    local nazwa_przestrzeni_nazw=require("Module:Nazwy")["PRZESTRZEŃDYSKUSJIFUN"](nazwa);
    local nazwa2=require("Module:Nazwy")["BAZOWANAZWASTRONYFUN"](nazwa);
    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	
	return require("Module:Nazwy")["PRZEDMIOTOWANAZWASTRONYFUN"](frame:getParent().args[1])
end;
m["PRZEDMIOTOWANAZWASTRONYFUN"] = function(nazwa)
	if((nazwa)and(nazwa==""))then return "";end;
    local nazwa_przestrzeni_nazw=require("Module:Nazwy")["PRZEDMIOTOWAPRZESTRZEŃFUN"](nazwa);
    local nazwa2=require("Module:Nazwy")["NAZWASTRONYFUN"](nazwa);
    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	
	return require("Module:Nazwy")["NAZWASTRONYDYSKUSJIFUN"](frame:getParent().args[1])
end;
m["NAZWASTRONYDYSKUSJIFUN"] = function(nazwa)
    if((nazwa)and(nazwa==""))then return "";end;
	local nazwa_przestrzeni_nazw=require("Module:Nazwy")["PRZESTRZEŃDYSKUSJIFUN"](nazwa);
    local nazwa2=require("Module:Nazwy")["NAZWASTRONYFUN"](nazwa);
    return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["CzęściTytułu"] = function(frame)
	local pf=frame:getParent();
	return require("Module:Nazwy")["CzęściTytułuFun"](pf.args[1],tonumber(pf.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)
	return require("Module:Nazwy")["NAZWAKSIĄŻKIFUN"](frame:getParent().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)
	return require("Module:Nazwy")["PEŁNANAZWAKSIĄŻKIFUN"](frame:getParent().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)
	return require("Module:Nazwy")["NAZWAARTYKUŁUKSIĄŻKIFUN"](frame:getParent().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)
	return require("Module:Nazwy")["NAZWAPRZESTRZENIKSIĄŻKIFUN"](frame:getParent().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)
	return require("Module:Nazwy")["NAZWASUBSTRONYFUN"](frame:getParent().args[1]);
end;
m["NAZWASUBSTRONYFUN"] = function(pelna_nazwa_strony)
	local pelna_nazwa_strony2=require("Module:Nazwy")["NAZWASTRONYFUN"](pelna_nazwa_strony);
	return mw.ustring.match(pelna_nazwa_strony2,"[^/]*$");
end;
m["NAZWAKORZENIASTRONY"] = function(frame)
	return require("Module:Nazwy")["NAZWAKORZENIASTRONYFUN"](frame:getParent().args[1])
end;
m["NAZWAKORZENIASTRONYFUN"] = function(pelna_nazwa_strony)
	local nazwy_modul=require("Module:Nazwy");
	local nazwa_strony=nazwy_modul["NAZWASTRONYFUN"](pelna_nazwa_strony);
    return nazwy_modul["CzęściTytułuFun"](nazwa_strony,1);
end;
m["PEŁNANAZWAKORZENIASTRONY"] = function(frame)
	return require("Module:Nazwy")["PEŁNANAZWAKORZENIASTRONYFUN"](frame:getParent().args[1])
end;
m["PEŁNANAZWAKORZENIASTRONYFUN"] = function(pelna_nazwa_strony)
	local nazwy_modul=require("Module:Nazwy");
	local pelna_nazwa_strony_2=nazwy_modul["PEŁNANAZWASTRONYFUN"](pelna_nazwa_strony);
    return nazwy_modul["CzęściTytułuFun"](pelna_nazwa_strony_2,1);
end;
return m