Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.47.0-wmf.14 first-letter Media Specjalna Dyskusja Wikipedysta Dyskusja wikipedysty Wikibooks Dyskusja Wikibooks Plik Dyskusja pliku MediaWiki Dyskusja MediaWiki Szablon Dyskusja szablonu Pomoc Dyskusja pomocy Kategoria Dyskusja kategorii Wikijunior Dyskusja Wikijuniora TimedText TimedText talk Moduł Dyskusja modułu Wydarzenie Dyskusja wydarzenia Szablon:Infobox grafika/opis 10 24572 550390 394713 2026-08-04T14:32:48Z Persino 2851 550390 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon wstawia grafikę podaną w parametrze grafika. Jeżeli jej nie ma, próbuje wstawić grafikę podaną w P18 w WD. Najczęstsze wywołanie w szablonie powinno wyglądać: <pre> {{infobox grafika |grafika = {{{grafika}}} |opis grafiki = {{{opis grafiki}}} }} </pre> W razie potrzeby można użyć: <pre> |tytuł grafiki = |alt grafiki = |cecha = |wiersz = |pole = </pre> == Funkcjonalność == * grafika z WD {{done}} * wielkość grafiki z parametru z ograniczeniami {{done}} * alt grafiki gdy go nie podano {{done}} * funkcjonalność {{[[:en:w:Template:Wikidata image|Wikidata image]]}} <del>{{done}}</del> usunięta * automatycznie poprawianie <code><nowiki>[[Plik:cośtam.jpg|300px]]</nowiki></code> {{done}} * standardowe parametry {{{wiersz}}} i {{{pole}}} {{done}} * tylko lokalne dla innych obrazków niż pierwszy (bez obrazka WD i bez kategorii) {{done}} * tylko WD dla infoboksów pureWD (bez obrazka lokalnego i bez kategorii) {{done}} * inne niż P18 {{done}} * kategorie łatkowe {{done}} == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony infoboksów}} </includeonly> ib60k10vp7pp705x8vhszf369zvtfe4 Szablon:Infobox grafika dodaj/opis 10 24574 550401 165998 2026-08-04T14:43:55Z Persino 2851 550401 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY --> == Użycie == Szablon ułatwia warunkowe wstawianie grafik (ale nie tylko) w szablonie infoboksu. Jest nakładką na {{s|infobox grafika}} i ma takie same parametry. Różnica polega na tym, że szablon ten nic nie wstawia, gdy nie ma czego wstawiać, zaś szablon {{s|infobox grafika}} powoduje wstawienie pustego pola. == Zobacz też == * [[szablon:infobox grafika]] <includeonly><!-- ++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII --> {{Kategoria|Szablony infoboksów}} </includeonly> tcl4smqk0v6oocxmknv44wa64deor6b Szablon:Metakategoria 10 33138 550386 294542 2026-08-04T14:02:58Z Persino 2851 550386 wikitext text/x-wiki <includeonly>{{Ombox | grafika = {{ikona|meta|35}} | treść = '''To jest [[:Kategoria:Metastrony Wikibooks|metakategoria]]. Wykorzystywana jest do utrzymania Wikibooks i nie jest integralną częścią Wikibooks.''' Zawiera strony niebędące [[w:Pomoc:Jak napisać nowy artykuł|artykułami]] lub też grupuje artykuły według ich statusu technicznego, a nie zawartości. Nie należy umieszczać niniejszej kategorii w kategoriach podręcznikowych.{{#if:{{{dla kategorii|}}}{{{kontener|}}} |<p>'''Ta kategoria jest [[:Kategoria:Kategorie dla kategorii|kategorią-kontenerem]].''' Bezpośrednio w tej kategorii powinny być wyłącznie kategorie. Artykuły powinny mieć nadawaną którąś z podkategorii albo nadkategorii.}}{{#if:{{{ukryta|}}} |__HIDDENCAT__<p>'''Ta kategoria jest [[:Kategoria:Ukryte kategorie|kategorią ukrytą]].''' Informacja o uwzględnieniu danej strony w niniejszej kategorii nie jest pokazywana, chyba że włączono [[Specjalna:Preferences|wyświetlanie ukrytych kategorii w preferencjach konta]].}} }}{{#if:{{{bez kategorii|}}}||{{Kategoria|Metakategorie}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> h50ma3hpsckyh5avo9fim8zes95nsgv Szablon:Infobox Wikidane/opis 10 33211 550398 394769 2026-08-04T14:41:14Z Persino 2851 550398 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Używa Wikidane}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> Szablon tworzy wiersz infoboksa, który ma zawierać informacje pobierane z [[w:Wikidane|wikidanych]]. == Parametry == * id - identyfikator elementu jeżeli nie ma pobierać z wyświetlanej strony, np. Q1 * cecha - właściwość elementu do pobrania, np. P1 * etykieta - wyświetlana nazwa w tabelce == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Zobacz też == * {{s|Używa Wikidane}} * {{s|Infobox wiersz dodaj}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony infoboksów}} </includeonly> p426ogk4drei3g1vnj9u2hmiipib4jv Szablon:Kategoria dla kategorii 10 33667 550385 264459 2026-08-04T14:01:47Z Persino 2851 550385 wikitext text/x-wiki {{ombox | tekst = '''Ta kategoria jest [[:Kategoria:Kategorie dla kategorii|kategorią-kontenerem]].''' Bezpośrednio w tej kategorii powinny być wyłącznie kategorie. Artykuły powinny mieć nadawaną którąś z podkategorii albo nadkategorii. }}<includeonly>[[Kategoria:Kategorie dla kategorii|{{PAGENAME}}]]</includeonly><noinclude> {{Kategoria|Szablony umieszczane na stronach kategorii}} </noinclude> 3fo8a8lbzgv0v8zreer65iasq6t1g61 Szablon:Infobox jednostki administracyjne 10 34129 550391 349226 2026-08-04T14:37:19Z Persino 2851 550391 wikitext text/x-wiki <noinclude><templatestyles src="Moduł:Infobox/styles.css" /> {| class="infobox" cellpadding="4" </noinclude>{{#if:{{{j1|}}}{{{j2|}}}{{{j3|}}}{{{j4|}}}{{{j5|}}}{{{t1|}}}{{{t2|}}}{{{s1|}}}{{{s2|}}}{{{s3|}}}<noinclude>TEST</noinclude>| {{#ifexist:Szablon:jednostki dane {{{państwo|}}}| {{infobox wiersz dodaj|{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = jednostka 1}}|{{{j1<includeonly>|</includeonly>}}}}} |{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = jednostka 1 |wariant 1 = {{{j1|}}} |wariant 2 = {{{j2|}}} |wariant 3 = {{{j3|}}} |wariant 4 = {{{j4|}}} |wariant 5 = {{{j5|}}} }} |{{{j1}}} |kol1 = {{{kol1|}}} |kol2 = {{{kol2|}}} |wiersz = {{{wiersz|}}} }}{{infobox wiersz dodaj|{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = jednostka 2}}|{{{j2<includeonly>|</includeonly>}}}}} |{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = jednostka 2 |wariant 1 = {{{j1|}}} |wariant 2 = {{{j2|}}} |wariant 3 = {{{j3|}}} |wariant 4 = {{{j4|}}} |wariant 5 = {{{j5|}}} }} |{{{j2}}} |kol1 = {{{kol1|}}} |kol2 = {{{kol2|}}} |wiersz = {{{wiersz|}}} }}{{infobox wiersz dodaj|{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = jednostka 3}}|{{{j3<includeonly>|</includeonly>}}}}} |{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = jednostka 3 |wariant 1 = {{{j1|}}} |wariant 2 = {{{j2|}}} |wariant 3 = {{{j3|}}} |wariant 4 = {{{j4|}}} |wariant 5 = {{{j5|}}} }} |{{{j3}}} |kol1 = {{{kol1|}}} |kol2 = {{{kol2|}}} |wiersz = {{{wiersz|}}} }}{{infobox wiersz dodaj|{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = jednostka 4}}|{{{j4<includeonly>|</includeonly>}}}}} |{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = jednostka 4 |wariant 1 = {{{j1|}}} |wariant 2 = {{{j2|}}} |wariant 3 = {{{j3|}}} |wariant 4 = {{{j4|}}} |wariant 5 = {{{j5|}}} }} |{{{j4}}} |kol1 = {{{kol1|}}} |kol2 = {{{kol2|}}} |wiersz = {{{wiersz|}}} }}{{infobox wiersz dodaj|{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = jednostka 5}}|{{{j5<includeonly>|</includeonly>}}}}} |{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = jednostka 5 |wariant 1 = {{{j1|}}} |wariant 2 = {{{j2|}}} |wariant 3 = {{{j3|}}} |wariant 4 = {{{j4|}}} |wariant 5 = {{{j5|}}} }} |{{{j5}}} |kol1 = {{{kol1|}}} |kol2 = {{{kol2|}}} |wiersz = {{{wiersz|}}} }}{{infobox kreska dodaj|{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = tradycyjna 1}}|{{{t1<includeonly>|</includeonly>}}}}}{{{t2|}}} |styl=dashed }}{{infobox wiersz dodaj|{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = tradycyjna 1}}|{{{t1<includeonly>|</includeonly>}}}}} |{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = tradycyjna 1 |wariant 1 = {{{j1|}}} |wariant 2 = {{{j2|}}} |wariant 3 = {{{j3|}}} |wariant 4 = {{{j4|}}} |wariant 5 = {{{j5|}}} }} |{{{t1}}} |kol1 = {{{kol1|}}} |kol2 = {{{kol2|}}} |wiersz = {{{wiersz|}}} }}{{infobox wiersz dodaj|{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = tradycyjna 2}}|{{{t2<includeonly>|</includeonly>}}}}} |{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = tradycyjna 2 |wariant 1 = {{{j1|}}} |wariant 2 = {{{j2|}}} |wariant 3 = {{{j3|}}} |wariant 4 = {{{j4|}}} |wariant 5 = {{{j5|}}} }} |{{{t2}}} |kol1 = {{{kol1|}}} |kol2 = {{{kol2|}}} |wiersz = {{{wiersz|}}} }}{{infobox kreska dodaj|{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = tradycyjna 1}}|{{{t1<includeonly>|</includeonly>}}}{{{t2|}}}}}{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = statystyczna 1}}|{{{s1<includeonly>|</includeonly>}}}{{{s2|}}}{{{s3|}}}}} |styl=dashed }}{{infobox wiersz dodaj|{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = statystyczna 1}}|{{{s1<includeonly>|</includeonly>}}}}} |{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = statystyczna 1 |wariant 1 = {{{j1|}}} |wariant 2 = {{{j2|}}} |wariant 3 = {{{j3|}}} |wariant 4 = {{{j4|}}} |wariant 5 = {{{j5|}}} }} |{{{s1}}} |kol1 = {{{kol1|}}} |kol2 = {{{kol2|}}} |wiersz = {{{wiersz|}}} }}{{infobox wiersz dodaj|{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = statystyczna 2}}|{{{s2<includeonly>|</includeonly>}}}}} |{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = statystyczna 2 |wariant 1 = {{{j1|}}} |wariant 2 = {{{j2|}}} |wariant 3 = {{{j3|}}} |wariant 4 = {{{j4|}}} |wariant 5 = {{{j5|}}} }} |{{{s2}}} |kol1 = {{{kol1|}}} |kol2 = {{{kol2|}}} |wiersz = {{{wiersz|}}} }}{{infobox wiersz dodaj|{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = statystyczna 3}}|{{{s3<includeonly>|</includeonly>}}}}} |{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = statystyczna 3 |wariant 1 = {{{j1|}}} |wariant 2 = {{{j2|}}} |wariant 3 = {{{j3|}}} |wariant 4 = {{{j4|}}} |wariant 5 = {{{j5|}}} }} |{{{s3}}} |kol1 = {{{kol1|}}} |kol2 = {{{kol2|}}} |wiersz = {{{wiersz|}}} }}{{infobox kreska dodaj|{{#if:{{jednostki dane {{{państwo|}}} |infobox jednostki administracyjne/core |nazwa = statystyczna 1}}|{{{s1<includeonly>|</includeonly>}}}{{{s2|}}}{{{s3|}}}}} |styl=dashed }} | {{infobox nagłówek |1=BŁĘDNY PARAMETR <nowiki>{{{państwo}}}</nowiki> = {{{państwo}}}[[Kategoria:Szablony flag - brak szablonu jednostek administracyjnych]] |wiersz=style="text-align:center; color:red; font-weight:bold;" }}}}}}<noinclude> |}</noinclude><noinclude>{{Kategoria|Szablony infoboksów}}</noinclude> gxe25i01jdf0uqutwosrifv8ud2mpme Szablon:Infobox jednostki administracyjne/core 10 34130 550392 269060 2026-08-04T14:38:13Z Persino 2851 550392 wikitext text/x-wiki {{{{{{nazwa}}}}}}<noinclude>{{Kategoria|Szablony infoboksów}}</noinclude> 5fnf7lyh9udmuglf7hst6pdw20iuhmq Szablon:Infobox 2x2 dodaj/opis 10 34152 550400 516667 2026-08-04T14:43:05Z Persino 2851 550400 wikitext text/x-wiki {{Podstrona dokumentacji}} {{wysokie ryzyko}} <!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY --> == Użycie == Szablon ułatwia warunkowe wstawianie grafik (ale nie tylko) w szablonie infoboksu. Jest nakładką na {{s|infobox 2x2}} i ma takie same parametry. Różnica polega na tym, że szablon ten nic nie wstawia, gdy nie ma czego wstawiać, zaś szablon {{s|infobox 2x2}} powoduje wstawienie pustego pola. == Zobacz też == * [[szablon:infobox 2x2]] <includeonly><!-- ++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII --> {{Kategoria|Szablony infoboksów}} </includeonly> rm9ac9f7j4dl1bsb5xvy7z1bpu8ka16 Szablon:Infobox 2x2/opis 10 34153 550399 269097 2026-08-04T14:42:27Z Persino 2851 550399 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY --> == Użycie == Szablon ułatwia warunkowe wstawianie grafik (ale nie tylko) w szablonie infoboksu. Jest przydatny gdy chcemy wstawić do dwóch obrazków z podpisami to tabelki infoboksu, a nie wiemy ile ich w rzeczywistości będzie. Pojedynczy obrazek jest wstawiany w pole, o szerokości całego infoboksu. W przypadku dwóch obrazków, infoboks jest dzielony na dwie części o podziale niezależnym od pozostałej części infoboksu. Do infoboksu wstawiana jest komórka z tabelą 2wx2k (lub 2wx1k, lub pusta). parametry wymagane: : 1 = warunek wstawienia "pierwszej kolumny" : 2 = warunek wstawienia "drugiej kolumny" : 3 = treść komórki pierwszej komórki w "pierwszej kolumnie" : 4 = treść komórki drugiej komórki w "pierwszej kolumnie" : 5 = treść komórki pierwszej komórki w "drugiej kolumnie" : 6 = treść komórki drugiej komórki w "drugiej kolumnie" parametry opcjonalne: : kol1 = parametry pól "pierwszej kolumny" : kol2 = parametry pól "drugiej kolumny" : wiersz = parametry wiersza tabeli infoboksu Parametry opcjonalne można też podać bez nazw. Nienazwane parametry będą traktowane jako: : 7 -> kol1 : 8 -> kol2 : 9 -> wiersz == Zobacz też == * [[szablon:infobox 2x2 dodaj]] <includeonly><!-- ++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII --> {{Kategoria|Szablony infoboksów}} </includeonly> jokh5co28g3skpflg0x27nr0jnqsgkv Szablon:Infobox nazwa chińska 10 34161 550393 349179 2026-08-04T14:38:49Z Persino 2851 550393 wikitext text/x-wiki <noinclude><templatestyles src="Moduł:Infobox/styles.css" /> {| class="infobox" style="border-bottom:0px;" cellpadding="4" </noinclude>{{infobox {{#if:{{{ukryte|tak}}}|ukryte|tabela}} |{{infobox nazwa/nagłówek|rodzaj={{{rodzaj}}}|męski=[[w:Język chiński|chiński]]|żeński=[[w:Język chiński|chińska]]|nijaki=[[w:Język chiński|chińskie]]}} |pole=style="background:#d0d0d0; font-weight:normal; font-style:italic;" |zawartość = {{infobox wiersz dodaj|{{{pismo uproszczone}}} |[[w:Uproszczone pismo chińskie|Pismo uproszczone]] |{{{pismo uproszczone}}} |kol2=style="font-size:130%; padding-top:1px; padding-bottom:1px;" }}{{infobox wiersz dodaj|{{{pismo tradycyjne}}} |[[w:Tradycyjne pismo chińskie|Pismo tradycyjne]] |{{{pismo tradycyjne}}} |kol2=style="font-size:130%; padding-top:1px; padding-bottom:1px;" }}{{infobox wiersz dodaj|{{{transkrypcja hanyu pinyin}}} |[[w:Hanyu pinyin|Hanyu pinyin]] |{{{transkrypcja hanyu pinyin}}} }}{{infobox wiersz dodaj|{{{transkrypcja Wade-Giles}}} |[[w:Wade-Giles|Wade-Giles]] |{{{transkrypcja Wade-Giles}}} }}{{infobox wiersz dodaj|{{{transkrypcja jyutping}}} |[[w:Jyutping|Jyutping]] |{{{transkrypcja jyutping}}} }}{{infobox wiersz dodaj|{{{transkrypcja poj}}} |[[w:Pe̍h-ōe-jī|Pe̍h-ōe-jī]] |{{{transkrypcja poj}}} }}{{infobox wiersz dodaj|{{{nazwa skrócona}}} |Nazwa skrócona |{{{nazwa skrócona}}} |kol2=style="font-size:130%; padding-top:1px; padding-bottom:1px;" }}{{infobox wiersz dodaj|{{{IPA}}} |Wymowa ([[w:Międzynarodowy alfabet fonetyczny|IPA]]) |{{{IPA}}} {{#if:{{{audio}}}|{{wymowa|{{{audio}}}}}}} }} }}{{infobox kreska }}<noinclude> |}{{dokumentacja|zawartość=Szablon pomocniczy dla infoboksów}} {{Kategoria|Szablony infoboksów}} </noinclude> 7dhsgzgung0w8nyrtjeycr6tgo25zlg Szablon:Infobox nazwa/nagłówek 10 34162 550397 269108 2026-08-04T14:40:29Z Persino 2851 550397 wikitext text/x-wiki <includeonly>{{#switch:{{{rodzaj}}} |imię = Imię {{{nijaki}}} |imię osobiste = Imię {{{nijaki}}} osobiste |imię pośmiertne = Imię {{{nijaki}}} [[imię pośmiertne|pośmiertne]] |imię świątynne = Imię {{{nijaki}}} świątynne |nazwisko = Nazwisko {{{nijaki}}} |nazwisko klanu = Nazwisko klanu {{{nijaki}}} |nazwisko rodowe = Nazwisko rodowe {{{nijaki}}} |Nazwa {{{żeński}}} }}</includeonly><noinclude>{{dokumentacja|zawartość=Szablon pomocniczy dla szablonów ''infobox nazwa ...''}} {{Kategoria|Szablony infoboksów}} </noinclude> 79sslqqjnvvmkefydgyi1xmbdxhjdeb Szablon:Infobox nazwa japońska 10 34163 550394 349180 2026-08-04T14:39:14Z Persino 2851 550394 wikitext text/x-wiki <noinclude><templatestyles src="Moduł:Infobox/styles.css" /> {| class="infobox" style="border-bottom:0px;" cellpadding="4" </noinclude>{{infobox {{#if:{{{ukryte|tak}}}|ukryte|tabela}} |{{infobox nazwa/nagłówek|rodzaj={{{rodzaj}}}|męski=[[w:Język japoński|japoński]]|żeński=[[w:Język japoński|japońska]]|nijaki=[[w:Język japoński|japońskie]]}} |pole=style="background:#d0d0d0; font-weight:normal; font-style:italic;" |zawartość = {{infobox wiersz dodaj|{{{zapis kanji}}} |[[w:Kanji|Kanji]] |{{{zapis kanji}}} |kol2=style="font-size:130%; padding-top:1px; padding-bottom:1px;" }}{{infobox wiersz dodaj|{{{transkrypcja Hepburna}}} |[[w:Transkrypcja Hepburna|Transkrypcja Hepburna]] |{{{transkrypcja Hepburna}}} }}{{infobox wiersz dodaj|{{{hiragana}}} |[[w:Hiragana|Hiragana]] |{{{hiragana}}} |kol2=style="font-size:130%; padding-top:1px; padding-bottom:1px;" }}{{infobox wiersz dodaj|{{{katakana}}} |[[w:Katakana|Katakana]] |{{{katakana}}} |kol2=style="font-size:130%; padding-top:1px; padding-bottom:1px;" }}{{infobox wiersz dodaj|{{{IPA}}} |Wymowa ([[w:Międzynarodowy alfabet fonetyczny|IPA]]) |{{{IPA}}} {{#if:{{{audio}}}|{{wymowa|{{{audio}}}}}}} }} }}{{infobox kreska }}<noinclude> |}{{dokumentacja|zawartość=Szablon pomocniczy dla infoboksów}} {{Kategoria|Szablony infoboksów}} </noinclude> 3v4n3fraj4pjtgjj5yaykwrj50qohdg Szablon:Infobox nazwa koreańska 10 34164 550395 349181 2026-08-04T14:39:38Z Persino 2851 550395 wikitext text/x-wiki <noinclude><templatestyles src="Moduł:Infobox/styles.css" /> {| class="infobox" style="border-bottom:0px;" cellpadding="4" </noinclude>{{infobox {{#if:{{{ukryte|tak}}}|ukryte|tabela}} |{{infobox nazwa/nagłówek|rodzaj={{{rodzaj}}}|męski=[[w:Język koreański|koreański]]|żeński=[[w:Język koreański|koreańska]]|nijaki=[[w:Język koreański|koreańskie]]}} |pole=style="background:#d0d0d0; font-weight:normal; font-style:italic;" |zawartość = {{infobox wiersz dodaj|{{{zapis hangul}}} |[[w:Hangul|Hangul]] |{{{zapis hangul}}} }}{{infobox wiersz dodaj|{{{zapis hancha}}} |[[w:Hancha|Hancha]] |{{{zapis hancha}}} }}{{infobox wiersz dodaj|{{{transkrypcja poprawiona}}} |Transkrypcja poprawiona |{{{transkrypcja poprawiona}}} }}{{infobox wiersz dodaj|{{{transkrypcja MCR}}} |[[w:Transkrypcja McCune’a-Reischauera|Transkrypcja MCR]] |{{{transkrypcja MCR}}} }}{{infobox wiersz dodaj|{{{krótka nazwa}}} |Krótka nazwa |{{{krótka nazwa}}} }}{{infobox wiersz dodaj|{{{IPA}}} |Wymowa ([[w:Międzynarodowy alfabet fonetyczny|IPA]]) |{{{IPA}}} {{#if:{{{audio}}}|{{wymowa|{{{audio}}}}}}} }} }}{{infobox kreska }}<noinclude> |}{{dokumentacja|zawartość=Szablon pomocniczy dla infoboksów}} {{Kategoria|Szablony infoboksów}} </noinclude> 368opgi9ae4nf449n2ssaxtyszqelm3 Szablon:Infobox nazwa tybetańska 10 34167 550396 349182 2026-08-04T14:40:04Z Persino 2851 550396 wikitext text/x-wiki <noinclude><templatestyles src="Moduł:Infobox/styles.css" /> {| class="infobox" style="border-bottom:0px;" cellpadding="4" </noinclude>{{infobox {{#if:{{{ukryte|tak}}}|ukryte|tabela}} |{{infobox nazwa/nagłówek|rodzaj={{{rodzaj}}}|męski=[[w:Język tybetański|tybetański]]|żeński=[[w:Język tybetański|tybetańska]]|nijaki=[[w:Język tybetański|tybetańskie]]}} |pole=style="background:#d0d0d0; font-weight:normal; font-style:italic;" |zawartość = {{infobox wiersz dodaj|{{{zapis tybetański}}} |Zapis tybetański |{{{zapis tybetański}}} }}{{infobox wiersz dodaj|{{{transliteracja Wyliego}}} |[[w:Transliteracja Wyliego|Wylie]] |{{{transliteracja Wyliego}}} }}{{infobox wiersz dodaj|{{{transkrypcja ZWPY}}} |[[w:Pinyin tybetański|ZWPY]] |{{{transkrypcja ZWPY}}} }}{{infobox wiersz dodaj|{{{IPA}}} |Wymowa ([[w:Międzynarodowy alfabet fonetyczny|IPA]]) |{{{IPA}}} {{#if:{{{audio}}}|{{wymowa|{{{audio}}}}}}} }} }}{{infobox kreska }}<noinclude> |}{{dokumentacja|zawartość=Szablon pomocniczy dla infoboksów}} {{Kategoria|Szablony infoboksów}} </noinclude> fpdsflqx0zgapv4tsz4vfwf3joditrb Szablon:Jednostka administracyjna infobox/stanowisko zarządzającego 10 34179 550417 269526 2026-08-04T20:40:46Z Persino 2851 550417 wikitext text/x-wiki <includeonly> {{#switch:{{lc:{{{1}}}}} |burmistrz = {{lpg|Burmistrz}} |mer = {{lpg|Mer (urzędnik)|Mer}} |nadburmistrz = {{lpg|Nadburmistrz}} |gubernator = {{lpg|Gubernator}} |gubernator porucznik = {{lpg|Gubernator porucznik prowincji Kanady|Gubernator porucznik}} |premier = {{lpg|Premier}} |prezydent = {{lpg|Prezydent}} |prezydent miasta = {{lpg|Prezydent miasta|Prezydent}} |starosta = {{lpg|Starosta}} |sołtys = {{lpg|Sołtys}} |wójt = {{lpg|Wójt}} |naczelnik = {{lpg|Naczelnik}} |kmet = {{lpg|Kmet}} |alkad = {{lpg|Alkad}} |major = Major |lord mayor = {{lpg|Lord Mayor}} |szejk = {{lpg|Szejk}} |sułtan = {{lpg|Sułtan}} |prefekt = {{lpg|Prefekt (administracja)|Prefekt}} |wojewoda = {{lpg|Wojewoda}} |dyrektor = Dyrektor |komisarz królewski = {{lpg|Komisarz królewski}} |minister-prezydent = {{lpg|Minister-prezydent}} |Zarządzający{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Infoboksy – błędne dane – Jednostka administracyjna infobox – stanowisko zarządzającego}}}} }}</includeonly><noinclude>{{Dokumentacja|zawartość={{info|To jest szablon pomocniczy do szablonu {{S|Jednostka administracyjna infobox}}.}}}}{{Kategoria|Szablony infoboksów}}</noinclude> dwjq7fozwpjq0dutoptmbjrg82itdvt Szablon:Polskie miasto infobox/opis 10 34181 550404 394825 2026-08-04T15:22:02Z Persino 2851 /* Zobacz też */ 550404 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Używa Wikidane}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == * '''Przed wstawieniem szablonu zapoznaj się z [[w:Pomoc:Infoboks|informacją o roli infoboksu]] w artykule.''' <pre> {{Polskie miasto infobox |nazwa = |dopełniacz nazwy = |zdjęcie = |opis zdjęcia = |herb = |flaga = |dewiza = |województwo = |powiat = |gmina = |data założenia = |prawa miejskie = |stanowisko zarządzającego = |zarządzający = |powierzchnia = |wysokość = |rok = |liczba ludności = |gęstość zaludnienia = |strefa numeracyjna = |kod pocztowy = |tablice rejestracyjne = |współrzędne = |TERYT = |SIMC = |hasło promocyjne = |adres urzędu miasta = |commons = |wikinews = |wikicytaty = |wikisłownik = |www = |bip = }} </pre> W razie potrzeby można użyć następujących dodatkowych parametrów: <pre> |aglomeracja = |kod mapy = |wariant mapy = |opis miejsca = </pre> == Opis parametrów == ; nazwa : nazwa miasta ; dopełniacz nazwy : dopełniacz nazwy miasta ; zdjęcie : nazwa pliku [[w:Wikimedia Commons|Wikimedia Commons]] ; opis zdjęcia : opis powyższego zdjęcia ; herb : nazwa pliku z [[w:Wikimedia Commons|Wikimedia Commons]] z herbem miasta ; flaga : nazwa pliku z [[w:Wikimedia Commons|Wikimedia Commons]] z flagą miasta ; dewiza : dewiza miasta ; województwo : województwo (nazwa / kod akceptowalna przez [[w:Wikiprojekt:Szablony flag|szablony flag]]) ; powiat : powiat; jeżeli pozostanie pusty oraz pusty będzie także parametr gmina to zostanie w nagłówku pojawi się napis "[[miasto na prawach powiatu]]" ; gmina : gmina; jeżeli parametr będzie wypełniony to w nagłówku infoboksu pojawi się napis "miasto w gminie miejsko-wiejskiej" ; aglomeracja : nazwa aglomeracji, w skład której wchodzi miasto - ''uwaga: szablon przyjmuje tylko wybrane aglomeracje; jeżeli uważasz, że na liście brakuje aglomeracji zostaw wiadomość w dyskusji szablonu; do szablonu nie będą dodawane aglomeracje, które nie posiadają uźródłowionego artykułu na Wikipedii'' ; data założenia : data założenia miasta (miejscowości) ; prawa miejskie : data nadania praw miejskich ; stanowisko zarządzającego : tytuł zarządzającego miastem; domyślnie [[Prezydent miasta]]; inny dopuszczalny parametr to "[[Burmistrz]]" ; zarządzający : zarządzający (imię i nazwisko) ; powierzchnia : powierzchnia miasta ; wysokość : wysokość położenia miasta n.p.m. ; rok : data powyższej danej statystycznej ; liczba ludności : liczba ludności ; gęstość zaludnienia : gęstość zaludnienia ; strefa numeracyjna : dawna strefa numeracyjna ; kod pocztowy : kod pocztowy lub ich zakres ; tablice rejestracyjne : kod tabli rejestracyjnych ; kod mapy : kod/nazwa mapy lokalizacyjnej z [[w:Wikiprojekt:Szablony lokalizacyjne|Wikiprojekt:Szablony lokalizacyjne]] (o ile inny niż "państwo") ; wariant mapy : wariant mapy z szablonu lokalizacyjnego (o ile inny niż domyślny) ; współrzędne : współrzędne położenia ; opis miejsca : opis punktu na mapie lokalizacyjnej ; TERYT : [[w:TERYT|TERYT]] ; SIMC : [[w:SIMC|SIMC]] ; hasło promocyjne : slogan (hasło promocyjne miasta) ; adres urzędu miasta : adres urzędu miasta ; commons : nazwa galerii/kategorii [[w:Wikimedia Commons|Wikimedia Commons]] ; wikinews : nazwa artykułu/kategorii [[w:Wikinews|Wikinews]] ; wikicytaty : nazwa strony w serwisie [[w:Wikicytaty|Wikicytaty]] ; wikisłownik : link do [[w:Wikisłownik|Wikisłownika]] ; www : oficjalna strona internetowa ; bip : adres strony [[w:Biuletyn Informacji Publicznej|BIP]] miasta == Przykłady == === [[w:Bydgoszcz|Bydgoszcz]] (miasto na prawach powiatu) === {{Polskie miasto infobox |nazwa = Bydgoszcz |dopełniacz nazwy = Bydgoszczy |zdjęcie = Collage of views of Bydgoszcz, Poland.jpg |opis zdjęcia = [[w:Opera Nova|Opera Nova]],<br />[[w:Brda|Brda w centrum miasta]],<br />[[w:Łuczniczka (pomnik w Bydgoszczy)|pomnik Łuczniczki]], [[w:Ulica Jagiellońska w Bydgoszczy|ulica Jagiellońska]] |herb = POL Bydgoszcz COA.svg |flaga = POL Bydgoszcz flag.svg |dewiza = |województwo = kujawsko-pomorskie |powiat = |gmina = |aglomeracja = bydgosko-toruńska |data założenia = 1038 ([[w:gród|gród]]) |prawa miejskie = 19 kwietnia 1346 ([[w:Kazimierz III Wielki|Kazimierz Wielki]]) |stanowisko zarządzającego = prezydent |zarządzający = [[w:Rafał Bruski|Rafał Bruski]] |powierzchnia = 175,98 |wysokość = 28-107 |rok = 31.12.2017 |liczba ludności = 352 313 |gęstość zaludnienia = 2017,2 |strefa numeracyjna = 52 |kod pocztowy = od 85-001 do 85-950 |tablice rejestracyjne = CB |współrzędne = 53°7′30″N 18°0′40″E |TERYT = 0461011 |SIMC = 0928363 |hasło promocyjne = ''Bądź moim gościem'';<br />''Bydgoszcz od pierwszego wejrzenia'' |adres urzędu miasta = ul. Jezuicka 1<br />85-102 Bydgoszcz |commons = Bydgoszcz |wikinews = Kategoria:Bydgoszcz |wikicytaty = Bydgoszcz |wikisłownik = Bydgoszcz |www = http://www.bydgoszcz.pl/ |bip = http://bip.um.bydgoszcz.pl/ }} <pre> {{Polskie miasto infobox |nazwa = Bydgoszcz |dopełniacz nazwy = Bydgoszczy |zdjęcie = Collage of views of Bydgoszcz, Poland.jpg |opis zdjęcia = [[w:Opera Nova|Opera Nova]],<br />[[w:Brda|Brda w centrum miasta]],<br />[[w:Łuczniczka (pomnik w Bydgoszczy)|pomnik Łuczniczki]], [[w:Ulica Jagiellońska w Bydgoszczy|ulica Jagiellońska]] |herb = POL Bydgoszcz COA.svg |flaga = POL Bydgoszcz flag.svg |dewiza = |województwo = kujawsko-pomorskie |powiat = |gmina = |aglomeracja = bydgosko-toruńska |data założenia = 1038 ([[w:gród|gród]]) |prawa miejskie = 19 kwietnia 1346 ([[w:Kazimierz III Wielki|Kazimierz Wielki]]) |stanowisko zarządzającego = prezydent |zarządzający = [[w:Rafał Bruski|Rafał Bruski]] |powierzchnia = 175,98 |wysokość = 28-107 |rok = 31.12.2017 |liczba ludności = 352 313 |gęstość zaludnienia = 2017,2 |strefa numeracyjna = 52 |kod pocztowy = od 85-001 do 85-950 |tablice rejestracyjne = CB |współrzędne = 53°7′30″N 18°0′40″E |TERYT = 0461011 |SIMC = 0928363 |hasło promocyjne = ''Bądź moim gościem'';<br />''Bydgoszcz od pierwszego wejrzenia'' |adres urzędu miasta = ul. Jezuicka 1<br />85-102 Bydgoszcz |commons = Bydgoszcz |wikinews = Kategoria:Bydgoszcz |wikicytaty = Bydgoszcz |wikisłownik = Bydgoszcz |www = http://www.bydgoszcz.pl/ |bip = http://bip.um.bydgoszcz.pl/ }} </pre> {{BrClear}} === [[w:Ostrów Wielkopolski|Ostrów Wielkopolski]] (miasto będące gminą miejską) === {{Polskie miasto infobox |nazwa = Ostrów Wielkopolski |dopełniacz nazwy = Ostrowa Wielkopolskiego |zdjęcie = Panorama miasta Ostrów Wielkopolski.jpg |opis zdjęcia = Panorama Ostrowa Wielkopolskiego |herb = POL Ostrów Wielkopolski COA.svg |flaga = POL Ostrów Wielkopolski flag.svg |dewiza = |województwo = wielkopolskie |powiat = [[w:Powiat ostrowski (województwo wielkopolskie)|ostrowski]] |gmina = |aglomeracja = kalisko-ostrowska |data założenia = |prawa miejskie = około 1404, 1713 |stanowisko zarządzającego = prezydent |zarządzający = [[w:Beata Klimek|Beata Klimek]] |powierzchnia = 41,90 |wysokość = 123–175 |rok = 31.12.2017 |liczba ludności = 72 364 |gęstość zaludnienia = 1 727,1 |strefa numeracyjna = (+48) 62 |kod pocztowy = 63-400 do 63-404, 63-409, 63-410, 63-417 |tablice rejestracyjne = POS |kod mapy = powiat ostrowski (województwo wielkopolskie) |współrzędne = 51°39′17″N 17°48′26″E |TERYT = 3017011 |SIMC = 0937132 |hasło promocyjne = |adres urzędu miasta = al. Powstańców Wielkopolskich 18<br />63-400 Ostrów Wielkopolski |commons = Ostrów Wielkopolski |wikinews = Kategoria:Ostrów Wielkopolski |wikicytaty = Ostrów Wielkopolski |wikisłownik = |www = http://umostrow.pl/ |bip = http://bip.ostrow-wielkopolski.um.gov.pl/bip/chapter_170000.asp }} <pre> {{Polskie miasto infobox |nazwa = Ostrów Wielkopolski |dopełniacz nazwy = Ostrowa Wielkopolskiego |zdjęcie = Panorama miasta Ostrów Wielkopolski.jpg |opis zdjęcia = Panorama Ostrowa Wielkopolskiego |herb = POL Ostrów Wielkopolski COA.svg |flaga = POL Ostrów Wielkopolski flag.svg |dewiza = |województwo = wielkopolskie |powiat = [[w:Powiat ostrowski (województwo wielkopolskie)|ostrowski]] |gmina = |aglomeracja = kalisko-ostrowska |data założenia = |prawa miejskie = około 1404, 1713 |stanowisko zarządzającego = prezydent |zarządzający = [[w:Beata Klimek|Beata Klimek]] |powierzchnia = 41,90 |wysokość = 123–175 |rok = 31.12.2017 |liczba ludności = 72 364 |gęstość zaludnienia = 1 727,1 |strefa numeracyjna = (+48) 62 |kod pocztowy = 63-400 do 63-404, 63-409, 63-410, 63-417 |tablice rejestracyjne = POS |kod mapy = powiat ostrowski (województwo wielkopolskie) |współrzędne = 51°39′17″N 17°48′26″E |TERYT = 3017011 |SIMC = 0937132 |hasło promocyjne = |adres urzędu miasta = al. Powstańców Wielkopolskich 18<br />63-400 Ostrów Wielkopolski |commons = Ostrów Wielkopolski |wikinews = Kategoria:Ostrów Wielkopolski |wikicytaty = Ostrów Wielkopolski |wikisłownik = |www = http://umostrow.pl/ |bip = http://bip.ostrow-wielkopolski.um.gov.pl/bip/chapter_170000.asp }} </pre> {{BrClear}} === [[w:Zwoleń|Zwoleń]] (miasto w gminie miejsko-wiejskiej) === {{Polskie miasto infobox |nazwa = Zwoleń |dopełniacz nazwy = Zwolenia |zdjęcie = Zwoleń.Kościół 01.JPG |opis zdjęcia = [[w:Kościół Podwyższenia Krzyża Świętego w Zwoleniu|Kościół Podwyższenia Krzyża Świętego w Zwoleniu]] |herb = POL Zwoleń COA.svg |flaga = |dewiza = |województwo = mazowieckie |powiat = [[w:powiat zwoleński|zwoleński]] |gmina = [[w:Zwoleń (gmina)|Zwoleń]] |data założenia = 1425 |prawa miejskie = 1425 |stanowisko zarządzającego = |zarządzający = Bogusława Janina Jaworska |powierzchnia = 15,91 |wysokość = |rok = 30.06.2016 |liczba ludności = 7940 |gęstość zaludnienia = 499,1 |strefa numeracyjna = (+48) 48 |kod pocztowy = 26-700 |tablice rejestracyjne = WZW |kod mapy = Zwoleń (gmina) |współrzędne = 51°21′25″N 21°35′2″E |TERYT = 1436054 |SIMC = 0974096 |hasło promocyjne = |adres urzędu miasta = pl.&nbsp;Kochanowskiego&nbsp;1<br />26-700 Zwoleń |commons = Category:Zwoleń |wikinews = |wikicytaty = |wikisłownik = Zwoleń |www = http://www.zwolen.pl |bip = }} <pre> {{Polskie miasto infobox |nazwa = Zwoleń |dopełniacz nazwy = Zwolenia |zdjęcie = Zwoleń.Kościół 01.JPG |opis zdjęcia = [[w:Kościół Podwyższenia Krzyża Świętego w Zwoleniu|Kościół Podwyższenia Krzyża Świętego w Zwoleniu]] |herb = POL Zwoleń COA.svg |flaga = |dewiza = |województwo = mazowieckie |powiat = [[w:powiat zwoleński|zwoleński]] |gmina = [[w:Zwoleń (gmina)|Zwoleń]] |data założenia = 1425 |prawa miejskie = 1425 |stanowisko zarządzającego = |zarządzający = Bogusława Janina Jaworska |powierzchnia = 15,91 |wysokość = |rok = 30.06.2016 |liczba ludności = 7940 |gęstość zaludnienia = 499,1 |strefa numeracyjna = (+48) 48 |kod pocztowy = 26-700 |tablice rejestracyjne = WZW |kod mapy = Zwoleń (gmina) |współrzędne = 51°21′25″N 21°35′2″E |TERYT = 1436054 |SIMC = 0974096 |hasło promocyjne = |adres urzędu miasta = pl.&nbsp;Kochanowskiego&nbsp;1<br />26-700 Zwoleń |commons = Category:Zwoleń |wikinews = |wikicytaty = |wikisłownik = Zwoleń |www = http://www.zwolen.pl |bip = }} </pre> {{BrClear}} == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "description": "Szablon służy do podawania podstawowych informacji na temat Polskie miasto", "params": { "nazwa": { "label": "Nazwa", "description": "nazwa miasta", "required": true, "type": "line" }, "dopełniacz nazwy": { "label": "Dopełniacz nazwy", "description": "dopełniacz nazwy miasta", "required": true, "type": "line" }, "zdjęcie": { "label": "Zdjęcie", "description": "nazwa pliku Wikimedia Commons", "required": true, "type": "wiki-file-name" }, "opis zdjęcia": { "label": "Opis zdjęcia", "description": "opis powyższego zdjęcia", "required": true, "type": "line" }, "herb": { "label": "Herb", "description": "nazwa pliku z Wikimedia Commons z herbem miasta", "required": true, "type": "wiki-file-name" }, "flaga": { "label": "Flaga", "description": "nazwa pliku z Wikimedia Commons z flagą miasta", "required": true, "type": "wiki-file-name" }, "dewiza": { "label": "Dewiza", "description": "dewiza miasta", "required": true, "type": "line" }, "województwo": { "label": "Województwo", "description": "województwo (nazwa / kod akceptowalna przez szablony flag)", "required": true, "type": "line" }, "powiat": { "label": "Powiat", "description": "powiat; jeżeli pozostanie pusty oraz pusty będzie także parametr gmina to zostanie w nagłówku pojawi się napis „miasto na prawach powiatu”", "required": true, "type": "line" }, "gmina": { "label": "Gmina", "description": "gmina; jeżeli parametr będzie wypełniony to w nagłówku infoboksu pojawi się napis „miasto w gminie miejsko-wiejskiej'", "required": true, "type": "line" }, "aglomeracja": { "label": "Aglomeracja", "description": "nazwa aglomeracji, w skład której wchodzi miasto - ''uwaga: szablon przyjmuje tylko wybrane aglomeracje; jeżeli uważasz, że na liście brakuje aglomeracji zostaw wiadomość w dyskusji szablonu; do szablonu nie będą dodawane aglomeracje, które nie posiadają uźródłowionego artykułu na Wikipedii''", "required": false, "type": "line" }, "data założenia": { "label": "Data założenia", "description": "data założenia miasta (miejscowości)", "required": true, "type": "line" }, "prawa miejskie": { "label": "Prawa miejskie", "description": "data nadania praw miejskich", "required": true, "type": "line" }, "stanowisko zarządzającego": { "label": "Stanowisko zarządzającego", "description": "tytuł zarządzającego miastem; domyślnie Prezydent miasta; inny dopuszczalny parametr to „Burmistrz”", "required": true, "type": "line" }, "zarządzający": { "label": "Zarządzający", "description": "zarządzający (imię i nazwisko)", "required": true, "type": "line" }, "powierzchnia": { "label": "Powierzchnia", "description": "powierzchnia miasta", "required": true, "type": "line" }, "wysokość": { "label": "Wysokość", "description": "wysokość położenia miasta n.p.m.", "required": true, "type": "line" }, "rok": { "label": "Rok", "description": "data powyższej danej statystycznej", "required": true, "type": "line" }, "liczba ludności": { "label": "Liczba ludności", "description": "liczba ludności", "required": true, "type": "line" }, "gęstość zaludnienia": { "label": "Gęstość zaludnienia", "description": "gęstość zaludnienia", "required": true, "type": "line" }, "strefa numeracyjna": { "label": "Strefa numeracyjna", "description": "dawna strefa numeracyjna", "required": true, "type": "line" }, "kod pocztowy": { "label": "Kod pocztowy", "description": "kod pocztowy lub ich zakres", "required": true, "type": "line" }, "tablice rejestracyjne": { "label": "Tablice rejestracyjne", "description": "kod tabli rejestracyjnych", "required": true, "type": "line" }, "kod mapy": { "label": "Kod mapy", "description": "kod/nazwa mapy lokalizacyjnej z Wikiprojekt:Szablony lokalizacyjne (o ile inny niż „państwo”)", "required": false, "type": "line" }, "wariant mapy": { "label": "Wariant mapy", "description": "wariant mapy z szablonu lokalizacyjnego (o ile inny niż domyślny)", "required": false, "type": "line" }, "współrzędne": { "label": "Współrzędne", "description": "współrzędne położenia", "required": true, "type": "line" }, "opis miejsca": { "label": "Opis miejsca", "description": "opis punktu na mapie lokalizacyjnej", "required": false, "type": "line" }, "TERYT": { "label": "TERYT", "description": "TERYT", "required": true, "type": "line" }, "SIMC": { "label": "SIMC", "description": "SIMC", "required": true, "type": "line" }, "hasło promocyjne": { "label": "Hasło promocyjne", "description": "slogan (hasło promocyjne miasta)", "required": true, "type": "line" }, "adres urzędu miasta": { "label": "Adres urzędu miasta", "description": "adres urzędu miasta", "required": true, "type": "line" }, "commons": { "label": "Commons", "description": "nazwa galerii/kategorii Wikimedia Commons", "required": true, "type": "line" }, "wikinews": { "label": "Wikinews", "description": "nazwa artykułu/kategorii Wikinews", "required": true, "type": "line" }, "wikicytaty": { "label": "Wikicytaty", "description": "nazwa strony w serwisie Wikicytaty", "required": true, "type": "line" }, "wikisłownik": { "label": "Wikisłownik", "description": "link do Wikisłownika", "required": true, "type": "line" }, "www": { "label": "Www", "description": "oficjalna strona internetowa", "required": true, "type": "line" }, "bip": { "label": "Bip", "description": "adres strony BIP miasta", "required": true, "type": "line" } }, "paramOrder": [ "nazwa", "dopełniacz nazwy", "zdjęcie", "opis zdjęcia", "herb", "flaga", "dewiza", "województwo", "powiat", "gmina", "aglomeracja", "data założenia", "prawa miejskie", "stanowisko zarządzającego", "zarządzający", "powierzchnia", "wysokość", "rok", "liczba ludności", "gęstość zaludnienia", "strefa numeracyjna", "kod pocztowy", "tablice rejestracyjne", "kod mapy", "wariant mapy", "współrzędne", "opis miejsca", "TERYT", "SIMC", "hasło promocyjne", "adres urzędu miasta", "commons", "wikinews", "wikicytaty", "wikisłownik", "www", "bip" ], "format": "{{_\n |_________________________ = _\n}}\n" } </templatedata> == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. Braki w wywołaniach szablonu umieszczane są w kategoriach: * {{ln|Kategoria:Szablony lokalizacyjne – brak współrzędnych – Polskie miasto infobox}} * {{ln|Kategoria:Infoboksy – błędne dane – Polskie miasto infobox – aglomeracja}} * {{ln|Kategoria:Infoboksy – błędne dane – Polskie miasto infobox – stanowisko zarządzającego}} == Zobacz też == * [[w:Wikipedia:Standardy artykułów/miasto|Wikipedia:Standardy artykułów/miasto]] * {{s|miejscowość infobox}} * {{s|polska miejscowość infobox}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Infoboksy – podział administracyjny | Infoboksy – Polska }} </includeonly> 4rlr5kwa3x7eop9wigsr3od7sxm18jr Szablon:Bez infoboksu/opis 10 41977 550419 516675 2026-08-04T21:01:12Z Persino 2851 550419 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- EDYTUJ DOKUMENTACJĘ SZABLONU PONIŻEJ TEJ LINII --> {{WR}} == Podstawowe użycie == '''Szablon wstawiamy na stronę dyskusji artykułu lub do samego artykułu, ale zaleca się, by raczej wstawiać na stronę jego dyskusji'''. Używamy go w następujący sposób: {{S|Bez infoboksu|Początek nazwy szablonu}}. Po kresce wpisujemy skrótowo nazwę infoboksu bez słowa ''infobox'' na przykład: {{S|Bez infoboksu|Związek chemiczny}} (aby wywołać informację, że brakuje infoboksu {{s|Związek chemiczny infobox}}). Aby szablon z parametrem (po kresce pionowej) został wygenerowany odpowiednio, musi istnieć infoboks wymieniony w parametrze. Przykład:<br /> {{Pre|{{s|Bez infoboksu|Związek chemiczny}}}} {{OpakujKategorieZeSortowaniem|{{Bez infoboksu|Związek chemiczny|nazwa przestrzeni nazw=(main)|typ jednostki=artykuł}}}} == Wygląd szablonu == Szablon {{s|Bez infoboksu}} automatycznie wykrywa, czy infobox istnieje i czy posiada dokumentację {{lpp|Schemat opisu szablonu|na oddzielnej stronie opisu}} czy na stronie dyskusji szablonu: Jeżeli infoboks nie istnieje: {{Pre|{{s|Bez infoboksu}}}} {{OpakujKategorieZeSortowaniem|{{Bez infoboksu|nazwa przestrzeni nazw=(main)|typ jednostki=artykuł}}}} Jeżeli infoboks istnieje i ma opis na oddzielnej stronie: {{Pre|{{s|Bez infoboksu|Władca}}}} {{OpakujKategorieZeSortowaniem|{{Bez infoboksu|Władca|nazwa przestrzeni nazw=(main)|typ jednostki=artykuł}}}} Infoboks istnieje i ma opis na stronie dyskusji: {{Pre|{{s|Bez infoboksu|Miejscowość}}}} {{OpakujKategorieZeSortowaniem|{{Bez infoboksu|Miejscowość|nazwa przestrzeni nazw=(main)|typ jednostki=artykuł}}}} == Kategorie == Szablon automatycznie dołącza artykuł do kategorii {{lk|Artykuły bez infoboksu}}, chyba że istnieje specjalna kategoria o nazwie: {{Pre|Kategoria:<Początek nazwy szablonu> infobox do wstawienia}} np: {{Pre|Kategoria:Związek chemiczny infobox do wstawienia}} Wówczas artykuły oznaczone tym szablonem będą trafiały do tej, specjalnej kategorii. Jest to przydatne wówczas, gdy chcemy wyłowić artykuły wymagające wstawienia konkretnego infoboksu np. chcemy uzupełnić infoboks tylko w artykułach dotyczących związków chemicznych i szukamy ich w {{lk|Związek chemiczny infobox do wstawienia}}. Taką kategorię można założyć również już po wstawieniu szablonu. == Sortowanie w kategorii == Możemy też dodać dodatkowy parametr pozwalający na ustalenie kolejności sortowania artykułu w kategorii: {{Code|{{S|Bez infoboksu|Polityk|Lieberman, Joe}}}} ; '''Uwaga''': Przy zakładaniu kategorii należy wstawić na stronę kategorii szablon : {{s|Potrzebne infoboksy|''początek nazwy szablonu''}}, np. {{S|Potrzebne infoboksy|Związek chemiczny}}. <includeonly> <!-- DODAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Artykuły bez infoboksu | sortuj spacją 1=tak | Szablony dodające kategorie | Szablony stron dyskusji }} <!-- DODAJ INTERWIKI PONIŻEJ TEJ LINII --> </includeonly> nb3x0kythm3798anoog3m1yjl3814ks Szablon:Główna kategoria/opis 10 41999 550418 289591 2026-08-04T20:58:21Z Persino 2851 550418 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> Ten szablon powinien być umieszczany u góry stron kategorii głównych, czyli takich, które powinny w głównej mierze zawierać inne podkategorie, a nie strony bezpośrednio. == Przykład wywołania == * {{s|Główna kategoria}}: {{Główna kategoria}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony umieszczane na stronach kategorii}} </includeonly> 3g7gbnwseghqgy3o2czc4ubtz4cjg41 Śpiewnik 0 54239 550425 548176 2026-08-05T09:24:55Z Ashaio 4702 +4 550425 wikitext text/x-wiki __NOTOC__ {{Status|-100%|Muzyka}} == Wprowadzenie == Śpiewnik zawiera wyłącznie utwory na wolnych licencjach oraz takie, do których majątkowe prawa autorskie wygasły (utwory z domeny publicznej). Preferowaną formą zapisu muzycznego jest tzw. ''lead sheet'', tzn. nutowy zapis melodii jednogłosowej oraz schematyczny zapis towarzyszących akordów. Mile widziane są aranżacje wielogłosowe oraz na głos i fortepian – koniecznie oparte na źródłach. W spisie treści piosenki podane są w kolejności alfabetycznej. W materiałach dodatkowych można umieścić indeksy chronologiczne, tematyczne itp. == Pieśni i piosenki == {{Kolumny|3| # {{sr|A w Krakowie na ulicy}} # {{sr|Aaa, kotki dwa}} # {{sr|Akademik ci ja}} # {{sr|Alpuhara}} # {{sr|Anioł pasterzom mówił}} # {{sr|Auld Lang Syne}} # {{sr|Bartoszu, Bartoszu}} # {{sr|Bogurodzica}} # {{sr|Boże, coś Polskę}} # {{sr|Boże wieczny, Boże żywy}} # {{sr|Bóg się rodzi}} # {{sr|Był Matysek chłop przed laty}} # {{sr|Bywaj dziewczę zdrowe}} # {{sr|Choć burza huczy wkoło nas}} # {{sr|Choćbym ja jeździł we dnie i w nocy}} # {{sr|Cicha noc}} # {{sr|Czarna sukienka}} # {{sr|Czerwone jabłuszko}} # {{sr|Czerwony pas}} # {{sr|Cześć polskiej ziemi, cześć}} # {{sr|Cztery rzeczy w Polsce słyną}} # {{sr|Dajcież mi kielicha}} # {{sr|Dalibóg, że powiem mamie}} # {{sr|Deutschlandlied}} # {{sr|Do pracy, razem do pracy}} # {{sr|Duma ukrainna}} # {{sr|Dzisiaj w Betlejem}} # {{sr|Gaude mater}} # {{sr|Gaudeamus igitur}} # {{sr|Gdy się Chrystus rodzi}} # {{sr|Gdym z kozaki szedł na boje}} # {{sr|Gdzież to jedziesz Jasiu}} # {{sr|God Save the King}} # {{sr|Góralu, czy ci nie żal}} # {{sr|Greensleeves}} # {{sr|Haniu moja, pójdź do domu}} # {{sr|Hatikvah}} # {{sr|Hej, bracia opryszki}} # {{sr|Hej hej, hej hej, do kniej, do kniej}} # {{sr|Hej koledzy, dalej żywo}} # {{sr|Hej koledzy, po mozołach}} # {{sr|Hej koledzy, z wspólnej czary}} # {{sr|Hej, z góry, z góry jadą Mazury}} # {{sr|Hej, żeglujże, żeglarzu}} # {{sr|Idzie żołnierz borem, lasem}} # {{sr|Idź głosie po rosie, daj dziewczynie wiadę}} # {{sr|Jak dobrze nam}} # {{sr|Jak to na wojence ładnie}} # {{sr|Jesienią}} # {{sr|Jeszcze jeden mazur dzisiaj}} # {{sr|Jezus malusieńki}} # {{sr|Kiedy będzie słońce i pogoda}} # {{sr|Kochajmy się}} # {{sr|Kołysanka Brahmsa}} # {{sr|Kołyszże się, kołysz}} # {{sr|Komu dzwonią, temu dzwonią}} # {{sr|Kot kot pani matko}} # {{sr|Kiedy nam się pora zdarza}} # {{sr|Krakowianka i kat}} # {{sr|Kto się w opiekę}} # {{sr|Kukułeczka}} # {{sr|Kurdesz}} # {{sr|Laura i Filon}} # {{sr|Leci liście z drzewa}} # {{sr|Leć głosie po rosie, po niskiej leszczynie}} # {{sr|Leć głosie po rosie, prosto ku traktowi}} # {{sr|Lilie}} # {{sr|Lulajże, Jezuniu}} # {{sr|Lutni moja ulubiona}} # {{sr|Małgorzatka}} # {{sr|Marsylianka}} # {{sr|Marsz, marsz Polonia}} # {{sr|Marzenie o grajku}} # {{sr|Mazurek Dąbrowskiego}} # {{sr|Mędrcy świata monarchowie}} # {{sr|Mizerna, cicha}} # {{sr|Na dolinie zawierucha}} # {{sr|Ne chody Hryciu na weczernyci}} # {{sr|Nie tak in illo tempore bywało|Nie tak ''in illo tempore'' bywało}} # {{sr|O, gwiazdeczko, coś błyszczała}} # {{sr|O, gwiazdeczko, coś świeciła}} # {{sr|O Matko Polko}} # {{sr|O mój rozmarynie}} # {{sr|Obie kochał pan}} # {{sr|Oda do radości}} # {{sr|Ogródek}} # {{sr|Oj, chmielu, chmielu}} # {{sr|Oj ty horo kamennaja}} # {{sr|Ojcze z niebios Boże Panie}} # {{sr|Ospały i gnuśny, zgrzybiały ten świat}} # {{sr|Ozdobo twarzy, pokrętne wąsy}} # {{sr|Panicz i dziewczyna}} # {{sr|Pieśń poranna}} (Kiedy ranne wstają zorze...) # {{sr|Pieśń wieczorna}} (Wszystkie nasze dzienne sprawy...) # {{sr|Piękna nasza Polska cała}} # {{sr|Pije Kuba do Jakuba}} # {{sr|Płynie Wisła, płynie}} # {{sr|Po cóż ciągle w mieście siedzieć}} # {{sr|Po nocnej rosie płyń dźwięczny głosie}} # {{sr|Podolanka}} # {{sr|Pojedziemy na łów}} # {{sr|Polak nie sługa}} # {{sr|Polska młodzież niech nam żyje}} # {{sr|Polski przemysł niech nam żyje}} # {{sr|Potężny Boże}} # {{sr|Pożegnanie Childe Harolda}} # {{sr|Precz, precz od nas smutek wszelki}} # {{sr|Prząśniczka}} # {{sr|Przybieżeli do Betlejem}} # {{sr|Przybyli ułani pod okienko}} # {{sr|Przyjechał Jasieńko}} # {{sr|Rok się kochali}} # {{sr|Rota}} # {{sr|Rześko, żwawo, stuku puku ‎}} # {{sr|Sadźmy, przyjacielu, róże}} # {{sr|Serce nie sługa}} # {{sr|Serdeczna Matko}} # {{sr|Siedzi sobie zając pod miedzą}} # {{sr|Służył Jasio u pana}} # {{sr|Słynie Gopło i Kruszwica }} # {{sr|Spuśćcie nam na ziemskie niwy}} # {{sr|Staropolskie zaloty}} # {{sr|Szła dzieweczka}} # {{sr|Szynkareczko, szafareczko}} # {{sr|Śliczne gwoździki, piękne tulipany ‎}} # {{sr|Śnieżyca}} # {{sr|Śród opok i jarów}} # {{sr|Święta miłości kochanej ojczyzny}} # {{sr|Świtezianka}} # {{sr|Tam na błoniu błyszczy kwiecie}} # {{sr|Ten mem zdaniem dobrze żyje}} # {{sr|To są czary}} # {{sr|Trzech Budrysów}} # {{sr|Ty pójdziesz górą}} # {{sr|Umarł Maciek, umarł}} # {{sr|Upływa szybko życie}} # {{sr|Uśnijże mi, uśnij}} # {{sr|Użyjmy dziś żywota}} # {{sr|W krwawem polu srebrne ptaszę}} # {{sr|Veni Creator}} # {{sr|W głos serdeczna dumka płynie }} # {{sr|W murowanej piwnicy}} # {{sr|W ogrodzie na wodzie}} # {{sr|W okolicznem mieście}} # {{sr|W polu}} # {{sr|W polu lipeńka}} # {{sr|W tył wyloty, w górę wąsy}} # {{sr|W żłobie leży}} # {{sr|Wesoło, bracia, wesoło}} # {{sr|Wesoło żeglujmy, wesoło}} # {{sr|Wesoły nam dziś dzień nastał}} # {{sr|Wezmę ja skrzypki}} # {{sr|Witaj gwiazdko złota}} # {{sr|Witaj majowa jutrzenko}} # {{sr|Wojenko, wojenko}} # {{sr|Wszystkich dziś ciekawość budzi}} # {{sr|Za Niemen het precz}} # {{sr|Zagrzmiał mazur, w górę wąsy}} # {{sr|Zajączek}} # {{sr|Zdrowaś bądź Maryja}} # {{sr|Zielona łączka, żółty na niej kwiat}} # {{sr|Zielony dzban}} # {{sr|Zła zima}} # {{sr|Znaszli ten kraj}} # {{sr|Żal, żal za jedyną}} # {{sr|Życzenie}} # {{sr|Дзюба}} # {{sr|Їхав козак за Дунай}} # {{sr|Ще не вмерла України і слава, і воля}} }} == Materiały dodatkowe == * {{sr|Bibliografia}} * {{sr|Indeks tematyczny}} bw5tkgj8jwx066vgqa45v0ldfbi7hbt Śpiewnik/Indeks tematyczny 0 56092 550426 548822 2026-08-05T09:26:39Z Ashaio 4702 +2 i poprawa 1 tytułu 550426 wikitext text/x-wiki <noinclude>__NOTOC__{{ProstaStronaStart}}</noinclude> Poniższe grupy nie są rozłączne (piosenka może należeć do więcej niż jednej kategorii). {{Tabela|atrybuty=cellspacing="10" width="100%"|liczba wierszy=10|liczba kolumn=2|pozycja=brak|klasa op=siatka-mobilna tabela-szerokość |bez pionu 1_1=tak|opcje 1_1=width="50%" |bez pionu 1_2=tak|opcje 1_2=width="50%" |komórka 1_1={{Pudełko komórkowe 1|tytuł= Pieśni patriotyczne |grafika= |tekst= * {{sr|Bogurodzica}} * {{sr|Boże, coś Polskę}} * {{sr|Czarna sukienka}} * {{sr|Cześć polskiej ziemi, cześć}} * {{sr|Cztery rzeczy w Polsce słyną}} * {{sr|Leci liście z drzewa}} * {{sr|Marsz, marsz Polonia}} * {{sr|Mazurek Dąbrowskiego}} * {{sr|O Matko Polko}} * {{sr|Rota}} * {{sr|Święta miłości kochanej ojczyzny}} * {{sr|Witaj majowa jutrzenko}} }} |komórka 1_2={{Pudełko komórkowe 3|tytuł= Piosenki wojskowe |grafika= |tekst=* {{sr|Bartoszu, Bartoszu}} * {{sr|Bywaj dziewczę zdrowe}} * {{sr|Duma ukrainna}} * {{sr|Gdzież to jedziesz Jasiu}} * {{sr|Idzie żołnierz borem, lasem}} * {{sr|Jak to na wojence ładnie}} * {{sr|Jeszcze jeden mazur dzisiaj}} * {{sr|O mój rozmarynie}} * {{sr|Przybyli ułani pod okienko}} * {{sr|Tam na błoniu błyszczy kwiecie}} * {{sr|W krwawem polu srebrne ptaszę}} * {{sr|Wojenko, wojenko}} * {{sr|Za Niemen het precz}} }} |komórka 2_1={{Pudełko komórkowe 2 |tytuł= Pieśni nabożne |grafika= |tekst= {{Wikiźródła|Śpiewnik kościelny}} * {{sr|Boże wieczny, Boże żywy}} * {{sr|Gaude mater}} * {{sr|Kto się w opiekę}} * {{sr|Ojcze z niebios Boże Panie}} * {{sr|Pieśń poranna}} * {{sr|Pieśń wieczorna}} * {{sr|Potężny Boże}} * {{sr|Serdeczna Matko}} * {{sr|Spuśćcie nam na ziemskie niwy}} * {{sr|Veni Creator}} * {{sr|Wesoły nam dziś dzień nastał}} * {{sr|Zdrowaś bądź Maryja}} }} |komórka 2_2={{Pudełko komórkowe 4|tytuł= Kolędy |grafika= |tekst={{Wikiźródła|Wikitomik:Kancjonał bożonarodzeniowy... przez Wikiskrybów zebrany|Kancjonał bożonarodzeniowy}} {{Commons|Polish_Christmas_carols|Polish Christmas carols}} * {{sr|Anioł pasterzom mówił}} * {{sr|Bóg się rodzi}} * {{sr|Cicha noc}} * {{sr|Dzisiaj w Betlejem}} * {{sr|Gdy się Chrystus rodzi}} * {{sr|Jezus malusieńki}} * {{sr|Lulajże, Jezuniu}} * {{sr|Mędrcy świata monarchowie}} * {{sr|Mizerna, cicha}} * {{sr|O, gwiazdeczko, coś świeciła}} * {{sr|Przybieżeli do Betlejem}} * {{sr|W żłobie leży}} * {{sr|Witaj gwiazdko złota}} }} |komórka 3_1={{Pudełko komórkowe 1|tytuł= Piosenki i melodie ludowe |grafika= |tekst=* {{sr|Choćbym ja jeździł we dnie i w nocy}} * {{sr|Czerwone jabłuszko}} * {{sr|Hej, z góry, z góry jadą Mazury}} * {{sr|Idź głosie po rosie, daj dziewczynie wiadę}} * {{sr|Kiedy będzie słońce i pogoda}} * {{sr|Leć głosie po rosie, po niskiej leszczynie}} * {{sr|Leć głosie po rosie, prosto ku traktowi }} * {{sr|Oj, chmielu, chmielu}} * {{sr|Oj ty horo kamennaja}} * {{sr|Piękna nasza Polska cała}} * {{sr|Płynie Wisła, płynie}} * {{sr|Szła dzieweczka}} * {{sr|Umarł Maciek, umarł}} * {{sr|W murowanej piwnicy}} * {{sr|W polu lipeńka}} * {{sr|Zakochali się}} * {{sr|Zielona łączka, żółty na niej kwiat}} }} |komórka 3_2={{Pudełko komórkowe 3|tytuł= Piosenki dla dzieci |grafika= |tekst= {{Wikiźródła|Śpiewnik dla dzieci}} * {{sr|Jesienią}} * {{sr|Kukułeczka}} * {{sr|Ogródek}} * {{sr|Sokół}} * {{sr|Śnieżyca}} * {{sr|Taniec}} * {{sr|W polu}} * {{sr|Zajączek}} * {{sr|Zła zima}} '''Kołysanki:''' * {{sr|Aaa, kotki dwa}} * {{sr|Kołysanka Brahmsa }} * {{sr|Kołyszże się, kołysz}} * {{sr|Uśnijże mi, uśnij}} }} |komórka 4_1={{Pudełko komórkowe 2 |tytuł= Piosenki o miłości |grafika= |tekst=* {{sr|Dalibóg, że powiem mamie}} * {{sr|Kiedy będzie słońce i pogoda}} * {{sr|Kot kot pani matko}} * {{sr|Laura i Filon}} * {{sr|Marzenie o grajku}} * {{sr|Panicz i dziewczyna}} * {{sr|Rok się kochali}} * {{sr|Serce nie sługa}} * {{sr|Śliczne gwoździki, piękne tulipany}} * {{sr|Staropolskie zaloty}} * {{sr|To są czary}} * {{sr|Ty pójdziesz górą}} * {{sr|Z wysokich Parnasów}} * {{sr|Za Niemen het precz}} * {{sr|Zakochali się}} * {{sr|Zielona łączka, żółty na niej kwiat}} * {{sr|Życzenie}} }} |komórka 4_2={{Pudełko komórkowe 4 |tytuł= Piosenki „młodzieżowe” |grafika= |tekst=* {{sr|Akademik ci ja}} * {{sr|Gaudeamus igitur}} * {{sr|Hej koledzy, dalej żywo}} * {{sr|Hej koledzy, po mozołach}} * {{sr|Hej koledzy, z wspólnej czary}} * {{sr|Ospały i gnuśny, zgrzybiały ten świat}} * {{sr|Po cóż ciągle w mieście siedzieć}} * {{sr|Po nocnej rosie płyń dźwięczny głosie}} * {{sr|Polska młodzież niech nam żyje}} * {{sr|Precz, precz od nas smutek wszelki}} * {{sr|Sadźmy, przyjacielu, róże}} * {{sr|Szła dzieweczka}} * {{sr|Upływa szybko życie}} * {{sr|Użyjmy dziś żywota}} * {{sr|Żal, żal za jedyną}} }} |komórka 5_1={{Pudełko komórkowe 1|tytuł= Piosenki biesiadne |grafika= |tekst= * {{sr|Dajcież mi kielicha}} * {{sr|Góralu, czy ci nie żal}} * {{sr|Kiedy nam się pora zdarza}} * {{sr|Kochajmy się}} * {{sr|Komu dzwonią, temu dzwonią}} * {{sr|Kurdesz}} * {{sr|Małgorzatka}} * {{sr|Pije Kuba do Jakuba}} * {{sr|Precz, precz od nas smutek wszelki}} * {{sr|Szlachetne zdrowie}} * {{sr|Szła dzieweczka}} * {{sr|Szynkareczko, szafareczko}} * {{sr|Ten mem zdaniem dobrze żyje}} * {{sr|Wdzięczna miłości kochanej szklanice }} * {{sr|Wesoło, bracia, wesoło}} }} |komórka 5_2={{Pudełko komórkowe 3|tytuł= Pieśni zadumy i tęsknoty. Pożegnania |grafika= |tekst= * {{sr|Znaszli ten kraj}} '''Tęsknota za ukochaną/ukochanym:''' * {{sr|Gdym z kozaki szedł na boje}} * {{sr|Za Niemen het precz}} * {{sr|Żal, żal za jedyną}} '''Tęsknota za przeszłością:''' * {{sr|Cieszmy się bracia nadzieją}} * {{sr|Na dolinie zawierucha}} * {{sr|Nie tak in illo tempore bywało|Nie tak ''in illo tempore'' bywało}} * {{sr|O, gwiazdeczko, coś błyszczała}} * {{sr|Ozdobo twarzy, pokrętne wąsy}} * {{sr|W tył wyloty, w górę wąsy}} * {{sr|Zagrzmiał mazur, w górę wąsy}} '''Tęsknota za krajem rodzinnym:''' * {{sr|Góralu, czy ci nie żal}} * {{sr|Pożegnanie Childe Harolda}} * {{sr|Sokół}} * {{sr|W głos serdeczna dumka płynie}} }} |komórka 6_1={{Pudełko komórkowe 2 |tytuł= Dumki i ballady |grafika= |tekst='''Ballady literackie:''' * {{sr|Alpuhara}} * {{sr|Lilie}} * {{sr|Obie kochał pan}} * {{sr|Świtezianka}} * {{sr|Trzech Budrysów}} '''Ballady ludowe:''' * {{sr|A w Krakowie na ulicy}} * {{sr|Haniu moja, pójdź do domu}} * {{sr|Krakowianka i kat}} * {{sr|Podolanka}} * {{sr|Przyjechał Jasieńko}} * {{sr|Służył Jasio u pana}} * {{sr|Stała nam się nowina}} → {{sr|Lilie}} * {{sr|W okolicznem mieście}} * {{sr|Zielony dzban}} }} |komórka 6_2={{Pudełko komórkowe 4|tytuł= Piosenki wędrówkowe |grafika= |tekst= * {{sr|Zielona łączka, żółty na niej kwiat}} '''Piosenki łowieckie:''' * {{sr|Hej hej, hej hej, do kniej, do kniej}} * {{sr|Pojedziemy na łów}} * {{sr|Siedzi sobie zając pod miedzą}} * {{sr|Szła dzieweczka}} * {{sr|Śród opok i jarów}} * {{sr|Zajączek}} '''Piosenki żeglarskie:''' * {{sr|Choć burza huczy wkoło nas}} * {{sr|Hej, żeglujże, żeglarzu}} * {{sr|Wesoło żeglujmy, wesoło}} '''Piosenki o górach:''' * {{sr|Czerwony pas}} * {{sr|Góralu, czy ci nie żal}} * {{sr|Jak dobrze nam}} '''Piosenki zbójeckie''' * {{sr|Hej, bracia opryszki}} }} |komórka 7_1={{Pudełko komórkowe 1|tytuł= Hymny i hejnały |grafika= |tekst= * {{sr|Mazurek Dąbrowskiego}} (hymn Polski) * {{sr|Deutschlandlied}} (hymn Niemiec) * {{sr|God Save the King}} (hymn Wielkiej Brytanii) * {{sr|Hatikvah}} (hymn Izraela) * {{sr|Marsylianka}} (hymn Francji) * {{sr|Oda do radości}} (hymn Unii Europejskiej) * {{sr|Ще не вмерла України і слава, і воля}} (hymn Ukrainy) }} |komórka 7_2={{Pudełko komórkowe 3|tytuł= Pieśni (o) pracy |grafika= |tekst=* {{sr|Do pracy, razem do pracy}} * {{sr|Nad mularską profesyą}} (pieśń murarza) * {{sr|Polski przemysł niech nam żyje}} * {{sr|Prząśniczka}} * {{sr|Rześko, żwawo, stuku puku}} (pieśń kowala) * {{sr|Słynie Gopło i Kruszwica}} (piosnka kołodzieja) * {{sr|W ogrodzie na wodzie}} (przegląd zawodów) * {{sr|Wszystkich dziś ciekawość budzi}} (piosnka furmana) }} |komórka 8_1={{Pudełko komórkowe 2 |tytuł= O muzyce |grafika= |tekst=* {{sr|Lutni moja ulubiona}} * {{sr|Marzenie o grajku }} * {{sr|Taniec}} * {{sr|Wezmę ja skrzypki}} }} |komórka 8_2={{Pudełko komórkowe 4|tytuł= Pieśni i piosenki o śmierci |grafika= |tekst=* {{sr|Był Matysek chłop przed laty}} * {{sr|Komu dzwonią, temu dzwonią}} * {{sr|Umarł Maciek, umarł}} }} |komórka 9_1={{Pudełko komórkowe 1|tytuł= Pieśni i piosenki po angielsku |grafika= |tekst={{Projekt siostrzany|projekt=wikibooks|tekst=Zobacz w [[:en:Main_Page|anglojęzycznych Wikibooks]] podręcznik '''[[:en:Songbook/Content#123|Songbook]]'''}} * {{sr|Auld Lang Syne}} * {{sr|God Save the King}} (hymn Wielkiej Brytanii) * {{sr|Greensleeves}} }} |komórka 9_2={{Pudełko komórkowe 3|tytuł= Śpiewy w języku łacińskim |grafika= |tekst=* {{sr|Gaude mater}} * {{sr|Gaudeamus igitur}} * {{sr|Veni Creator}} }} |komórka 10_1={{Pudełko komórkowe 2 |tytuł= Pieśni i piosenki po niemiecku |grafika= |tekst={{Projekt siostrzany|projekt=wikibooks|tekst=Zobacz w [[:de:Hauptseite|niemieckojęzycznych Wikibooks]] podręcznik '''[[:de:Liederbuch/_Inhalt#Lieder|Liederbuch]]'''}} * {{sr|Deutschlandlied}} (hymn Niemiec) * {{sr|Kołysanka Brahmsa }} * {{sr|Oda do radości}} }} |komórka 10_2={{Pudełko komórkowe 4|tytuł= Pieśni i piosenki rusińskie i ukraińskie |grafika= |tekst=* {{sr|Ne chody Hryciu na weczernyci}} * {{sr|Oj ty horo kamennaja}} * {{sr|Дзюба}} * {{sr|Їхав козак за Дунай}} * {{sr|Ще не вмерла України і слава, і воля}} }} }} <noinclude>{{ProstaStronaKoniec}}</noinclude> ehuzjnhqqzloqsdun3ly2z52qbp5a6g Szablon:Opis kategorii/styles.css 10 58001 550402 545065 2026-08-04T15:04:24Z Persino 2851 550402 sanitized-css text/css /**/ @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ column-count:unset !important; column-rule:unset !important; } .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible), .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr, .strona_start-inne.mobilne div.noprint > table:not(.collapsible), .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr, .strona_start-inne.mobilne table:not(.collapsible).plainlinks, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr, .strona_start-inne.mobilne table:not(.collapsible).noprint, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr{ display:block; width:100% !important; box-sizing:border-box !important; margin:0 !important; } .strona_start-inne.mobilne table:not(.collapsible).plainlinks > caption, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > td, .strona_start-inne.mobilne table:not(.collapsible).noprint > caption, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > td, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > td, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > td{ display:block; box-sizing:border-box !important; } .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > td, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > td{ width:calc( 100% - 0.25rem) !important; margin:0.125rem !important; } .strona_start-inne.mobilne table:not(.collapsible).plainlinks > caption, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > td, .strona_start-inne.mobilne table:not(.collapsible).noprint > caption, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > td{ width:100% !important; margin:0 !important; } } /**/ body.skin-minerva div.strona-opis-kategorii-overflow{ margin-top:0.25rem; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > .szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.infobox{ margin-top:0 !important; margin-bottom:0.25rem !important; margin-left:0.25rem !important; } @media all and (min-width:745px)and (min-device-width: 745px) and (min-device-height: 745px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > style + table.infobox:nth-child(3):nth-of-type(1), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > style + div.infobox:nth-child(3):nth-of-type(1), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > link + table.infobox:nth-child(3):nth-of-type(1), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > link + div.infobox:nth-child(3):nth-of-type(1), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > table.infobox:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > div.infobox:first-child{ margin-top:0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > table.infobox:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > div.infobox:last-child{ margin-bottom:0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.siostrzane-zmienna-strona-opis-kategorii-infoboksy:not(:empty) + div.strona-opis-kategorii-infoboksy.siostrzane-projekty-kategorii-strona-opis-kategorii-infoboksy > table.infobox:last-child:not(:first-child), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.siostrzane-zmienna-strona-opis-kategorii-infoboksy:not(:empty) + div.strona-opis-kategorii-infoboksy.siostrzane-projekty-kategorii-strona-opis-kategorii-infoboksy > div.infobox:last-child:not(:first-child){ margin-top:0.25rem !important; } } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek > div:last-child{ margin-bottom:0.25rem !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible){ margin-bottom:0.25rem !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ margin-top:0 !important; margin-bottom:0.25rem; } @media all and (max-width:474px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks > caption > center{ text-align:left; } } @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.strona-opis-kategorii-overflow{ max-width:100vw; width:100%; overflow:visible; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii{ min-width:auto; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ min-width:auto !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii{ display:flex !important; flex-direction:column !important; width:100% !important; max-width:100%; min-width:auto !important; box-sizing:border-box; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .mójNagłówek{ order:1 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ max-width:none !important; margin-left:0 !important; margin-right:0 !important; margin-top:0 !important; margin-bottom:0.25rem !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks > tbody{ column-width:12.25rem; display:block; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.siostrzane-strona-opis-kategorii-infoboksy{ order:2 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.siostrzane-projekty-opis-infobox{ order:3 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.kategorie-siostrzane-strona-opis-kategorii-infoboksy{ order:4 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.kategorie-dla-kategorii-strona-opis-kategorii-infoboksy{ order:5 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .mójNagłówek, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > .szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ width:100% !important; box-sizing:border-box !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość{ order:6 !important; width:auto !important; box-sizing:border-box; min-width:auto !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tr > th > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tbody > tr > th > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ min-width:auto !important; width: 100% !important; box-sizing:border-box; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr{ display:flex; flex-direction:row; align-items: stretch; justify-content: center; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > td:first-child{ display:flex; flex-direction:column; align-items: stretch; justify-content: center; width:auto !important; border: none; padding: 0.125rem 0px 0.125rem 0.9rem; text-align: center; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > th:not(:first-child), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > td:not(:first-child){ width:100% !important; border: none; padding: 0.25rem 0.9rem; width: 100%; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td:first-child{ margin:0 !important; width:100% !important; } /*div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.wikitable{ margin-bottom:0 !important; }*/ } /**/ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:first-child{ margin-top: 0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:last-child{ margin-bottom: 0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p + ul, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p +ul{ margin-top: -0.6em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p{ font-size:inherit; line-height:inherit; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii.fonty_opis_kategorii{ font-size:calc(0.8125rem * 1.036); line-height:1.4em; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna{ margin:0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div{ border: 1px solid #ccc; border-radius: 5px; padding:0.1875rem 0.25rem; margin:0.1875rem 0; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:first-child{ margin-top:0; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:last-child{ margin-bottom:0; } div.strona-opis-kategorii-overflow.mw-overflow-x.mw-scrollbar-overflow-x, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość.mw-overflow-x.mw-scrollbar-overflow-x, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość.mw-overflow-x.mw-scrollbar-overflow-x{ padding-bottom:5px; } /*{{Kategoria|Szablony - arkusze stylów}}*/ 16v9efh5z9jb69s35dze4w3btebcrm1 550403 550402 2026-08-04T15:07:23Z Persino 2851 550403 sanitized-css text/css /**/ @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ column-count:unset !important; column-rule:unset !important; } .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible), .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr, .strona_start-inne.mobilne div.noprint > table:not(.collapsible), .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr, .strona_start-inne.mobilne table:not(.collapsible).plainlinks, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr, .strona_start-inne.mobilne table:not(.collapsible).noprint, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr{ display:block; width:100% !important; box-sizing:border-box !important; margin:0 !important; } .strona_start-inne.mobilne table:not(.collapsible).plainlinks > caption, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > td, .strona_start-inne.mobilne table:not(.collapsible).noprint > caption, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > td, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > td, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > td{ display:block; box-sizing:border-box !important; } .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > td, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > td{ width:calc( 100% - 0.25rem) !important; margin:0.125rem !important; } .strona_start-inne.mobilne table:not(.collapsible).plainlinks > caption, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > td, .strona_start-inne.mobilne table:not(.collapsible).noprint > caption, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > td{ width:100% !important; margin:0 !important; } } /**/ body.skin-minerva div.strona-opis-kategorii-overflow{ margin-top:0.25rem; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > .szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.infobox{ margin-top:0 !important; margin-bottom:0.25rem !important; margin-left:0.25rem !important; } @media all and (min-width:745px)and (min-device-width: 745px) and (min-device-height: 745px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > style + table.infobox:nth-child(3):nth-of-type(1), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > style + div.infobox:nth-child(3):nth-of-type(1), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > link + table.infobox:nth-child(3):nth-of-type(1), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > link + div.infobox:nth-child(3):nth-of-type(1), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > table.infobox:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > div.infobox:first-child{ margin-top:0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > table.infobox:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.strona-opis-kategorii-infoboksy > div.infobox:last-child{ margin-bottom:0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.siostrzane-zmienna-strona-opis-kategorii-infoboksy:not(:empty) + div.strona-opis-kategorii-infoboksy.siostrzane-projekty-kategorii-strona-opis-kategorii-infoboksy > table.infobox:last-child:not(:first-of-type), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek:first-child ~ div.siostrzane-zmienna-strona-opis-kategorii-infoboksy:not(:empty) + div.strona-opis-kategorii-infoboksy.siostrzane-projekty-kategorii-strona-opis-kategorii-infoboksy > div.infobox:last-child:not(:first-of-type){ margin-top:0.25rem !important; } } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek > div:last-child{ margin-bottom:0.25rem !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible){ margin-bottom:0.25rem !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ margin-top:0 !important; margin-bottom:0.25rem; } @media all and (max-width:474px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks > caption > center{ text-align:left; } } @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.strona-opis-kategorii-overflow{ max-width:100vw; width:100%; overflow:visible; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii{ min-width:auto; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ min-width:auto !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii{ display:flex !important; flex-direction:column !important; width:100% !important; max-width:100%; min-width:auto !important; box-sizing:border-box; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .mójNagłówek{ order:1 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ max-width:none !important; margin-left:0 !important; margin-right:0 !important; margin-top:0 !important; margin-bottom:0.25rem !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks > tbody{ column-width:12.25rem; display:block; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.siostrzane-strona-opis-kategorii-infoboksy{ order:2 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.siostrzane-projekty-opis-infobox{ order:3 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.kategorie-siostrzane-strona-opis-kategorii-infoboksy{ order:4 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.kategorie-dla-kategorii-strona-opis-kategorii-infoboksy{ order:5 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .mójNagłówek, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > .szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ width:100% !important; box-sizing:border-box !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość{ order:6 !important; width:auto !important; box-sizing:border-box; min-width:auto !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tr > th > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tbody > tr > th > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ min-width:auto !important; width: 100% !important; box-sizing:border-box; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr{ display:flex; flex-direction:row; align-items: stretch; justify-content: center; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > td:first-child{ display:flex; flex-direction:column; align-items: stretch; justify-content: center; width:auto !important; border: none; padding: 0.125rem 0px 0.125rem 0.9rem; text-align: center; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > th:not(:first-child), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > td:not(:first-child){ width:100% !important; border: none; padding: 0.25rem 0.9rem; width: 100%; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td:first-child{ margin:0 !important; width:100% !important; } /*div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.wikitable{ margin-bottom:0 !important; }*/ } /**/ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:first-child{ margin-top: 0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:last-child{ margin-bottom: 0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p + ul, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p +ul{ margin-top: -0.6em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p{ font-size:inherit; line-height:inherit; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii.fonty_opis_kategorii{ font-size:calc(0.8125rem * 1.036); line-height:1.4em; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna{ margin:0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div{ border: 1px solid #ccc; border-radius: 5px; padding:0.1875rem 0.25rem; margin:0.1875rem 0; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:first-child{ margin-top:0; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:last-child{ margin-bottom:0; } div.strona-opis-kategorii-overflow.mw-overflow-x.mw-scrollbar-overflow-x, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość.mw-overflow-x.mw-scrollbar-overflow-x, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość.mw-overflow-x.mw-scrollbar-overflow-x{ padding-bottom:5px; } /*{{Kategoria|Szablony - arkusze stylów}}*/ bgkoldkx1kjz8uzes3u2xe3f2zch71s Śpiewnik/Leć głosie po rosie, prosto ku traktowi 0 59214 550423 485101 2026-08-05T09:20:20Z Ashaio 4702 Ashaio przeniosła stronę [[Śpiewnik/Leć głosie po rosie, prosto ku laskowi]] do [[Śpiewnik/Leć głosie po rosie, prosto ku traktowi]]: Błędna pisownia tytułu: Poprawa tytułu (za źródłem) 485101 wikitext text/x-wiki {{T|Śpiewnik/NawigacjaOpis}} == Muzyka == '''Autor:''' nieznany (melodia ludowa)<br> Aranżacja: Stefan Surzyński (1855–1919)<br> <score raw=1 vorbis=1> \version "2.20.0" \header{ title = "Leć głosie po rosie" poet = "Słowa: autor nieznany (piosenka ludowa)" composer = "Muzyka: autor nieznany (melodia ludowa)" arranger = "Aranżacja: Stefan Surzyński (1855–1919)" tagline = "" } \score{ \new Staff \with { midiInstrument = "flute" } { \clef treble \key a \major \time 2/4 \relative a' { \autoBeamOff ^\mf a8 b cis4 | cis8 cis4 a8 | b8 cis d4 | d8 d4 b8 | a8 b cis4 | ^\< cis8 cis4 e8 \! | e8 d b gis ^\> | a8 a4 \! r8 | % --- ^\markup { \italic { con discretione } } cis8 cis cis4 | cis8 cis4 e8 | d8 d d4 | d8 cis4 cis8 | ^\f cis8 a16[ cis] e4 | e8 e4 cis8 | e8 d b gis | a8 a4 r8 \bar "|." } \addlyrics { \small { Leć gło -- sie po ro -- sie pro -- sto ku tra -- kto -- wi, po -- wiedz „do -- bry wie -- czór” me -- mu ko -- chan -- ko -- wi. Po -- wiedz „do -- bry wie -- czór”, kła -- niaj się o -- de mnie; za -- li on mnie ko -- cha, ja je -- go wza -- je -- mnie. } } } \layout{} \midi{ \tempo 4 = 90 } } </score> '''Źródło:''' Stefan Surzyński, ''[https://polona.pl/item/echo-polskie-najwiekszy-zbior-piesni-polskich-obyczajowych-i-okolicznosciowych-z,OTIyOTA2NTE/93/#info:metadata Echo polskie : największy zbiór pieśni polskich obyczajowych i okolicznościowych (...) z melodyami. T. 1]''. Tarnów : Z. Jeleń, [ca 1910]. S. 90–91 (pieśń 46). == Tekst == '''Autor:''' nieznany (piosenka ludowa)<br> Oprac. Stefan Surzyński (1855–1919)<br> {{Kolumny|3| <poem> 1. Leć głosie po rosie, prosto ku traktowi, Powiedz dobry wieczór memu kochankowi. ::Powiedz dobry wieczór, ::kłaniaj się ode mnie, ::Zali on mnie kocha, ::ja jego wzajemnie. 2. Widzę ja z daleka siwego konika, Mój kochanek jedzie, serce me przenika. ::Serce me przenika, ::jak chyba niczyje, ::Będę cię kochała, ::póki tylko żyję. 3. Przy bystrem jeziorze Jeleń wodę pije; Pamiętaj, pamiętaj! Ja dla ciebie żyję. ::Ja dla ciebie żyję, ::dla ciebie umieram, ::Dla cię świat zamykam, ::grób sobie otwieram. </poem> }} '''Źródło:''' Stefan Surzyński, ''[https://polona.pl/item/echo-polskie-najwiekszy-zbior-piesni-polskich-obyczajowych-i-okolicznosciowych-z,OTIyOTA2NTE/93/#info:metadata Echo polskie : największy zbiór pieśni polskich obyczajowych i okolicznościowych (...) z melodyami. T. 1]''. Tarnów : Z. Jeleń, [ca 1910]. S. 90–91 (pieśń 46). == Zobacz też == {{Wikiźródła|Idź głosie po rosie}} * ''[http://antologia.oskarkolberg.pl/pl-PL/Home/Song?id=9018 Oj, idź głosie po rosie]'' w [http://antologia.oskarkolberg.pl/Antologii polskich pieśni] [http://oskarkolberg.pl Instytutu im. Oskara Kolberga] 3s6fmklabti5bhnu8xxbtz9mww89a9a Śpiewnik/Leć głosie po rosie, prosto ku traktowi/Muzyka 0 59215 550428 485039 2026-08-05T10:55:54Z Ashaio 4702 Ashaio przeniosła stronę [[Śpiewnik/Leć głosie po rosie, prosto ku laskowi/Muzyka]] do [[Śpiewnik/Leć głosie po rosie, prosto ku traktowi/Muzyka]]: Błędna pisownia tytułu: Ujednolicenie z tytułem ze strony [[Śpiewnik/Leć głosie po rosie, prosto ku traktowi]] 485039 wikitext text/x-wiki {{T|Śpiewnik/NawigacjaMuzyka}} == Wersja z 1892 roku == '''Autor:''' nieznany (melodia ludowa)<br> Aranżacja: Zygmunt Noskowski<br> <score raw=1 vorbis=1> \version "2.20.0" \header{ title = "Leć głosie po rosie" poet = "Słowa: autor nieznany (piosenka ludowa)" meter = "Opracowanie: Zygmunt Gloger (1845–1910)" composer = "Muzyka: autor nieznany (melodia ludowa)" %arranger = "Aranżacja: Zygmunt Noskowski (1846–1909)" tagline = "" } global = { \key f \major \time 2/4 } \score{ << \new Staff \with { midiInstrument = "flute" } { \new Voice = "mel" { % \set Staff.midiInstrument = #"fiddle" \relative f' { \clef treble \global \autoBeamOff % tu melodia ^\markup { \bold { Moderato con moto } } r2 | r2 | ^\mf f8 g a4 | a8 a4 f8 | g8 a bes4 | bes8 bes4 g8 | ^\< f8 g a4 \! | a8 a4 c8 | ^\> c8 bes bes e, \! | f8 f4 r8 | % ====== f8 a ^\markup { \italic { cresc. } } c4 | c8 c4 a8 | ^\< bes8 c d4 \! | ^\f e8 f4 e16([ bes)] | a8 ^\markup { \italic { dimin. } } f16([ a)] c4 | ^\> c8 c4 a8 \! | ^\mf c8 bes g e | f8 f4 r8 \bar "|." } } } \addlyrics { \small { % tu liryka Leć gło -- sie po ro -- sie pro -- sto ku la -- sko -- wi, po -- wiedz „do -- bry wie -- czór” me -- mu ko -- chan -- ko -- wi. Po -- wiedz „do -- bry wie -- czór”, kła -- niaj się o -- de mnie; je -- śli on mnie ko -- cha, ja je -- go wza -- je -- mnie. } } \new PianoStaff << \new Staff = "RH" \relative c' { \clef treble \global % tu prawa ręka ^\markup { \italic { Umiarkowanie lecz z ruchem } } ^\p a16([ c e d)] c16([ <bes d> c8)] | a16([ c e d)] c16([ <e, bes' d> c'8)] | a16([ c e d)] c16([ d <a c>8)] | << { \stemDown r8 a4 a8 } { \stemUp f'8[ e16^( d] c8)[ f] } >> | bes16([ c a g)] c,([ d <g, c>8)] | << { \stemDown r8 bes4 bes8 } { \stemUp g'8[ e16( d] e8)[ g] } >> | a,16([ c e d)] c16([ d <a c>8)] | << { \stemDown r8 a4 a8 } { \stemUp a'8[ f16( g] f8)[ <f a>] } >> | r8 <bes, f' a> r <bes e> | a16([ c d e)] <a, e'>4 | % ======= \stemUp a16([ c a' g] f[ g <a, f'>8)] | << {\stemDown r8 c4 c8 } { \stemUp fis8[ fis16 g] a8[ fis] } >> | _\< bes,16([ f' bes g] \! << { d4 } { f16([ f f8)] } >> | _\f d16([ f bes f)] <d bes'>8-> r8 | c16([ e f d] c[ d <c f>8)] | _\> a16([ c f e)] f8[ <c f>] \! | bes16([ d f8)] bes,16([ c) e8] | a,16([ c d e)] <a, f'>8 r8 \bar "|." } \new Staff = "LH" { \clef bass \global % tu lewa ręka ^\p f,8[ c] e,[ c] | f,[ c] c,[ c] | << { \stemDown f,2 } { \stemUp r8 c4 c8 } >> | << { \stemDown f,2 } { \stemUp r8 c4 c8 } >> | << { \stemDown e,2 } { \stemUp r8 c4 c8 } >> | << { \stemDown c,2 } { \stemUp r8 c4 c8 } >> | << { \stemDown f,2 } { \stemUp r8 c4 c8 } >> | << { \stemDown es,2 } { \stemUp r8 c4 c8 } >> | d,4 c, | << { \stemDown f,2 } { \stemUp r8 c4 c8 } >> | % ======= << { \stemDown f,4 es, } { \stemUp r8 c4 c8 } >> | << { \stemDown d,2 } { \stemUp r8 d4 d8 } >> | d,8[ d] bes,,[ bes,] | g,,[ g,] g,-> r8 | << { \stemDown a,,2 } { \stemUp r8 a,4 a,8 } >> | << { \stemDown d,2 } { \stemUp r8 d4 d8 } >> | g,8[ d] c,[ c] | f,4 <f, c>8-> r8 \bar "|." } >> >> \layout{} \midi{ \tempo 4=90 } } </score> '''Źródło:''' Zygmunt Gloger, ''[https://polona.pl/item/piesni-ludu-w-latach-1861-1891,MTExMTI4MDc/334/#info:metadata Pieśni ludu]'', Zygmunt Noskowski (muz.). Kraków : nakładem autora, 1892. S. 331–332 (pieśń 237). 78es2y5kinflyd8uji5iovlu5t5zeln Moduł:Kategorie/dane 828 61693 550375 548872 2026-08-04T12:10:22Z Persino 2851 550375 Scribunto text/plain -- Zmienne potrzebne do funkcji: p.NazwaSortowaniaNazwyStrony(frame), która jest wykorzystywana do domyślnego formatowania stron do szablonów: "Kategoria" i "Kategorie", i ich pochodnych, które korzystają z funkcji o takich samych nazwach, co te szablony. local p={}; p.tablica_wyrazowa_alternatyw={ ["i"]=true, ["lub"]=true, ["oraz"]=true, ["bądź"]=true, ["ewentualnie"]=true, ["natomiast"]=true, }; p.tablica_wyrazowa_gdy_alternatywy={ ["szablon"]=true, }; p.tablica_wyrazowa_niealternatyw={ ["o"]=true, ["w"]=true, ["z"]=true, ["ze"]=true, ["od"]=true, ["ode"]=true, ["do"]=true, ["dla"]=true, ["na"]=true, ["pod"]=true, ["nad"]=true, ["znad"]=true, ["spod"]=true, ["stamtąd"]=true, ["podnad"]=true, ["bez"]=true, ["nie"]=true, ["tak"]=true, ["brak"]=true, ["spoza"]=true, }; p.tablica_wyrazowa_wybrane_przyimki={ ["o"]=true, ["z"]=true, ["ze"]=true, ["w"]=true, ["na"]=true, ["do"]=true, ["bez"]=true, ["od"]=true, }; p.tablica_charakterystycznych_przedrostek_od_wielkiej_litery={ ["Wiki"]=true, }; p.tablica_wyrazy_niedopuszczalne={ ["infobox"]=true, ["wikibooks"]=true, ["mediawiki"]=true, }; p.tablica_analizowanie_bez={ ["Wikibooks"]=true, ["MediaWiki"]=true, ["TemplateStyles"]=true, ["Lua"]=true, ["Scribunto"]=true, ["HTML"]=true, ["XHTML"]=true, ["CSS"]=true, ["String"]=true, ["Dump"]=true, ["Wikidan"]=true, ["Opis"]=true, }; p.tablica_analizowanie_specjalne_wyrazy={ ["błędam"]=true, } p.tablica_analizowanie_specjalne_sekwencje={ ["błędn"]=true, ["błędy"]=true, ["nazwy"]=true, }; p.tablica_wyrazy_do_usuwania_przez_sortowanie={ ["używa"]=true, ["wymag"]=true, ["podział"]=true, ["taki"]=true, ["jaki"]=true, ["samy"]=true, ["któr"]=true, ["zwróc"]=true, ["przez"]=true, ["przestarz"]=true, ["postac"]=true, ["zawiera"]=true, ["zawar"]=true, ["byc"]=true, ["dotycz"]=true, ["duż"]=true, ["małośc"]=true, ["malut"]=true, ["liczb"]=true, ["musi"]=true, ["musz"]=true, ["zgłaszan"]=true, ["przekracz"]=true, ["dopuszcz"]=true, ["duż"]=true, ["prawidł"]=true, ["samozamykaj"]=true, ["zależ"]=true, ["wyświetl"]=true, ["inn"]=true, ["tej"]=true, ["tego"]=true, ["pełn"]=true, ["dawn"]=true, --["definicj"]=true, ["główn"]=true, ["określon"]=true, ["poprawn"]=true, ["istniejąc"]=true, ["znan"]=true, ["zgodn"]=true, ["wszystk"]=true, ["sprawdzen"]=true, ["osobn"]=true, ["tworz"]=true, ["wywołan"]=true, ["wywołań"]=true, ["obsługując"]=true, ["wartość"]=true, ["pudełek"]=true, ["parametr"]=true, ["pozostał"]=true, ["użyc"]=true, ["szablonów"]=true, ["podano"]=true, ["złym"]=true, ["dobrym"]=true, ["brak"]=true, ["nazwanym"]=true, ["obiektam"]=true, ["pusty"]=true, ["puste"]=true, ["wykorzyst"]=true, ["potrzeb"]=true, ["korzystan"]=true, ["zbiorcz"]=true, ["powoduj"]=true, }; p.tablica_wyrazy_przez_sortowanie={ ["brak"]=true, ["spis"]=true, ["istniej"]=true, ["zobacz"]=true, ["grup"]=true, }; p.tablica_wyrazy_parsowania_nazwy_sortowania={ ["obiekt[^%s]*$"]=true, }; p.tablica_zmiana_liczenia_nazwy_sortowania={ ["odnośnik"]=true, }; p.tablica_dzielenia_elementowa_sortowania={ ["miast"]=true, ["gmin"]=true, ["powiat"]=true, ["województw"]=true, }; p.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie={ ["jest"]=true, ["może"]=true, ["można"]=true, ["być"]=true, ["zbyt"]=true, ["dane"]=true, ["się"]=true, ["szablon"]=true, ["według"]=true, ["mał[ayoe]"]=true, ["małość"]=true, }; p.tablica_wydzielania_subelementowych={ ["Link"]=true, }; p.tablica_wydzielania_subelementowych_innych={ ["Wiki"]=true, ["Multi%-?"]=true, }; p.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania={ ["skrypty"]=true, ["hasła"]=true, ["książki"]=true, ["artykuły"]=true, ["podręczniki"]=true, ["artykuły dla dzieci"]=true, ["podręczniki dla dzieci"]=true, ["strony brudnopisu opisu modułów"]=true, ["strony brudnopisu opisu szablonów"]=true, ["strony brudnopisu modułów"]=true, ["strony brudnopisu szablonów"]=true, ["strony opisu modułów"]=true, ["strony opisu szablonów"]=true, ["strony modułów"]=true, ["strony szablonów"]=true, ["jednostki brudnopisu projektu"]=true, ["strony brudnopisu projektu"]=true, ["strony kategorii"]=true, ["strony pomocy"]=true, ["strony projektu"]=true, ["jednostki użytkowników"]=true, ["strony użytkowników"]=true, ["strony niepodręcznikowe"]=true, }; return p; cs4fdtw3bah17yms6gcholp8akbjw40 550376 550375 2026-08-04T12:11:49Z Persino 2851 550376 Scribunto text/plain -- Zmienne potrzebne do funkcji: p.NazwaSortowaniaNazwyStrony(frame), która jest wykorzystywana do domyślnego formatowania stron do szablonów: "Kategoria" i "Kategorie", i ich pochodnych, które korzystają z funkcji o takich samych nazwach, co te szablony. local p={}; p.tablica_wyrazowa_alternatyw={ ["i"]=true, ["lub"]=true, ["oraz"]=true, ["bądź"]=true, ["ewentualnie"]=true, ["natomiast"]=true, }; p.tablica_wyrazowa_gdy_alternatywy={ ["szablon"]=true, }; p.tablica_wyrazowa_niealternatyw={ ["o"]=true, ["w"]=true, ["z"]=true, ["ze"]=true, ["od"]=true, ["ode"]=true, ["do"]=true, ["dla"]=true, ["na"]=true, ["pod"]=true, ["nad"]=true, ["znad"]=true, ["spod"]=true, ["stamtąd"]=true, ["podnad"]=true, ["bez"]=true, ["nie"]=true, ["tak"]=true, ["brak"]=true, ["spoza"]=true, }; p.tablica_wyrazowa_wybrane_przyimki={ ["o"]=true, ["z"]=true, ["ze"]=true, ["w"]=true, ["na"]=true, ["do"]=true, ["bez"]=true, ["od"]=true, }; p.tablica_charakterystycznych_przedrostowych={ ["wiki"]=true, }; p.tablica_wyrazy_niedopuszczalne={ ["infobox"]=true, ["wikibooks"]=true, ["mediawiki"]=true, }; p.tablica_analizowanie_bez={ ["Wikibooks"]=true, ["MediaWiki"]=true, ["TemplateStyles"]=true, ["Lua"]=true, ["Scribunto"]=true, ["HTML"]=true, ["XHTML"]=true, ["CSS"]=true, ["String"]=true, ["Dump"]=true, ["Wikidan"]=true, ["Opis"]=true, }; p.tablica_analizowanie_specjalne_wyrazy={ ["błędam"]=true, } p.tablica_analizowanie_specjalne_sekwencje={ ["błędn"]=true, ["błędy"]=true, ["nazwy"]=true, }; p.tablica_wyrazy_do_usuwania_przez_sortowanie={ ["używa"]=true, ["wymag"]=true, ["podział"]=true, ["taki"]=true, ["jaki"]=true, ["samy"]=true, ["któr"]=true, ["zwróc"]=true, ["przez"]=true, ["przestarz"]=true, ["postac"]=true, ["zawiera"]=true, ["zawar"]=true, ["byc"]=true, ["dotycz"]=true, ["duż"]=true, ["małośc"]=true, ["malut"]=true, ["liczb"]=true, ["musi"]=true, ["musz"]=true, ["zgłaszan"]=true, ["przekracz"]=true, ["dopuszcz"]=true, ["duż"]=true, ["prawidł"]=true, ["samozamykaj"]=true, ["zależ"]=true, ["wyświetl"]=true, ["inn"]=true, ["tej"]=true, ["tego"]=true, ["pełn"]=true, ["dawn"]=true, --["definicj"]=true, ["główn"]=true, ["określon"]=true, ["poprawn"]=true, ["istniejąc"]=true, ["znan"]=true, ["zgodn"]=true, ["wszystk"]=true, ["sprawdzen"]=true, ["osobn"]=true, ["tworz"]=true, ["wywołan"]=true, ["wywołań"]=true, ["obsługując"]=true, ["wartość"]=true, ["pudełek"]=true, ["parametr"]=true, ["pozostał"]=true, ["użyc"]=true, ["szablonów"]=true, ["podano"]=true, ["złym"]=true, ["dobrym"]=true, ["brak"]=true, ["nazwanym"]=true, ["obiektam"]=true, ["pusty"]=true, ["puste"]=true, ["wykorzyst"]=true, ["potrzeb"]=true, ["korzystan"]=true, ["zbiorcz"]=true, ["powoduj"]=true, }; p.tablica_wyrazy_przez_sortowanie={ ["brak"]=true, ["spis"]=true, ["istniej"]=true, ["zobacz"]=true, ["grup"]=true, }; p.tablica_wyrazy_parsowania_nazwy_sortowania={ ["obiekt[^%s]*$"]=true, }; p.tablica_zmiana_liczenia_nazwy_sortowania={ ["odnośnik"]=true, }; p.tablica_dzielenia_elementowa_sortowania={ ["miast"]=true, ["gmin"]=true, ["powiat"]=true, ["województw"]=true, }; p.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie={ ["jest"]=true, ["może"]=true, ["można"]=true, ["być"]=true, ["zbyt"]=true, ["dane"]=true, ["się"]=true, ["szablon"]=true, ["według"]=true, ["mał[ayoe]"]=true, ["małość"]=true, }; p.tablica_wydzielania_subelementowych={ ["Link"]=true, }; p.tablica_wydzielania_subelementowych_innych={ ["Wiki"]=true, ["Multi%-?"]=true, }; p.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania={ ["skrypty"]=true, ["hasła"]=true, ["książki"]=true, ["artykuły"]=true, ["podręczniki"]=true, ["artykuły dla dzieci"]=true, ["podręczniki dla dzieci"]=true, ["strony brudnopisu opisu modułów"]=true, ["strony brudnopisu opisu szablonów"]=true, ["strony brudnopisu modułów"]=true, ["strony brudnopisu szablonów"]=true, ["strony opisu modułów"]=true, ["strony opisu szablonów"]=true, ["strony modułów"]=true, ["strony szablonów"]=true, ["jednostki brudnopisu projektu"]=true, ["strony brudnopisu projektu"]=true, ["strony kategorii"]=true, ["strony pomocy"]=true, ["strony projektu"]=true, ["jednostki użytkowników"]=true, ["strony użytkowników"]=true, ["strony niepodręcznikowe"]=true, }; return p; 8ztfryvqru8sxzsp8xu2f4hypgj8itz 550381 550376 2026-08-04T13:04:09Z Persino 2851 550381 Scribunto text/plain -- Zmienne potrzebne do funkcji: p.NazwaSortowaniaNazwyStrony(frame), która jest wykorzystywana do domyślnego formatowania stron do szablonów: "Kategoria" i "Kategorie", i ich pochodnych, które korzystają z funkcji o takich samych nazwach, co te szablony. local p={}; p.tablica_wyrazowa_alternatyw={ ["i"]=true, ["lub"]=true, ["oraz"]=true, ["bądź"]=true, ["ewentualnie"]=true, ["natomiast"]=true, }; p.tablica_wyrazowa_gdy_alternatywy={ ["szablon"]=true, }; p.tablica_wyrazowa_niealternatyw={ ["o"]=true, ["w"]=true, ["z"]=true, ["ze"]=true, ["od"]=true, ["ode"]=true, ["do"]=true, ["dla"]=true, ["na"]=true, ["pod"]=true, ["nad"]=true, ["znad"]=true, ["spod"]=true, ["stamtąd"]=true, ["podnad"]=true, ["bez"]=true, ["nie"]=true, ["tak"]=true, ["brak"]=true, ["spoza"]=true, }; p.tablica_wyrazowa_wybrane_przyimki={ ["o"]=true, ["z"]=true, ["ze"]=true, ["w"]=true, ["na"]=true, ["do"]=true, ["bez"]=true, ["od"]=true, }; p.tablica_charakterystycznych_przedrostowych={ ["wiki"]=true, }; p.tablica_wyrazy_niedopuszczalne={ ["infobox"]=true, ["wikibooks"]=true, ["mediawiki"]=true, }; p.tablica_analizowanie_bez={ ["Wikibooks"]=true, ["MediaWiki"]=true, ["TemplateStyles"]=true, ["Lua"]=true, ["Scribunto"]=true, ["HTML"]=true, ["XHTML"]=true, ["CSS"]=true, ["String"]=true, ["Dump"]=true, ["Wikidan"]=true, ["Opis"]=true, }; p.tablica_analizowanie_specjalne_wyrazy={ ["błędam"]=true, } p.tablica_analizowanie_specjalne_sekwencje={ ["błędn"]=true, ["błędy"]=true, ["nazwy"]=true, }; p.tablica_wyrazy_do_usuwania_przez_sortowanie={ ["używa"]=true, ["wymag"]=true, ["podział"]=true, ["taki"]=true, ["jaki"]=true, ["samy"]=true, ["któr"]=true, ["zwróc"]=true, ["przez"]=true, ["przestarz"]=true, ["postac"]=true, ["zawiera"]=true, ["zawar"]=true, ["byc"]=true, ["dotycz"]=true, ["duż"]=true, ["małośc"]=true, ["malut"]=true, ["liczb"]=true, ["musi"]=true, ["musz"]=true, ["zgłaszan"]=true, ["przekracz"]=true, ["dopuszcz"]=true, ["duż"]=true, ["prawidł"]=true, ["samozamykaj"]=true, ["zależ"]=true, ["wyświetl"]=true, ["inn"]=true, ["tej"]=true, ["tego"]=true, ["pełn"]=true, ["dawn"]=true, --["definicj"]=true, ["główn"]=true, ["określon"]=true, ["poprawn"]=true, ["istniejąc"]=true, ["znan"]=true, ["zgodn"]=true, ["wszystk"]=true, ["sprawdzen"]=true, ["osobn"]=true, ["tworz"]=true, ["wywołan"]=true, ["wywołań"]=true, ["obsługując"]=true, ["wartość"]=true, ["pudełek"]=true, ["parametr"]=true, ["pozostał"]=true, ["użyc"]=true, ["szablonów"]=true, ["podano"]=true, ["złym"]=true, ["dobrym"]=true, ["brak"]=true, ["nazwanym"]=true, ["obiektam"]=true, ["pusty"]=true, ["puste"]=true, ["wykorzyst"]=true, ["potrzeb"]=true, ["korzystan"]=true, ["zbiorcz"]=true, ["powoduj"]=true, }; p.tablica_wyrazy_przez_sortowanie={ ["brak"]=true, ["spis"]=true, ["istniej"]=true, ["zobacz"]=true, ["grup"]=true, }; p.tablica_wyrazy_parsowania_nazwy_sortowania={ ["obiekt[^%s]*$"]=true, }; p.tablica_zmiana_liczenia_nazwy_sortowania={ ["odnośnik"]=true, }; p.tablica_dzielenia_elementowa_sortowania={ ["miast"]=true, ["gmin"]=true, ["powiat"]=true, ["województw"]=true, }; p.tablica_specjalne_wyrazy_sortowania={ ["portal"]=true, ["poziom"]=true, ["status"]=true, ["temat"]=true, }; p.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie={ ["jest"]=true, ["może"]=true, ["można"]=true, ["być"]=true, ["zbyt"]=true, ["dane"]=true, ["się"]=true, ["szablon"]=true, ["według"]=true, ["mał[ayoe]"]=true, ["małość"]=true, }; p.tablica_wydzielania_subelementowych={ ["Link"]=true, }; p.tablica_wydzielania_subelementowych_innych={ ["Wiki"]=true, ["Multi%-?"]=true, }; p.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania={ ["skrypty"]=true, ["hasła"]=true, ["książki"]=true, ["artykuły"]=true, ["podręczniki"]=true, ["artykuły dla dzieci"]=true, ["podręczniki dla dzieci"]=true, ["strony brudnopisu opisu modułów"]=true, ["strony brudnopisu opisu szablonów"]=true, ["strony brudnopisu modułów"]=true, ["strony brudnopisu szablonów"]=true, ["strony opisu modułów"]=true, ["strony opisu szablonów"]=true, ["strony modułów"]=true, ["strony szablonów"]=true, ["jednostki brudnopisu projektu"]=true, ["strony brudnopisu projektu"]=true, ["strony kategorii"]=true, ["strony pomocy"]=true, ["strony projektu"]=true, ["jednostki użytkowników"]=true, ["strony użytkowników"]=true, ["strony niepodręcznikowe"]=true, }; return p; g2i0avxa826f7kzcs933ujw4fqc10jx 550384 550381 2026-08-04T13:56:15Z Persino 2851 550384 Scribunto text/plain -- Zmienne potrzebne do funkcji: p.NazwaSortowaniaNazwyStrony(frame), która jest wykorzystywana do domyślnego formatowania stron do szablonów: "Kategoria" i "Kategorie", i ich pochodnych, które korzystają z funkcji o takich samych nazwach, co te szablony. local p={}; p.tablica_wyrazowa_alternatyw={ ["i"]=true, ["lub"]=true, ["oraz"]=true, ["bądź"]=true, ["ewentualnie"]=true, ["natomiast"]=true, }; p.tablica_wyrazowa_gdy_alternatywy={ ["szablon"]=true, }; p.tablica_wyrazowa_niealternatyw={ ["o"]=true, ["w"]=true, ["z"]=true, ["ze"]=true, ["od"]=true, ["ode"]=true, ["do"]=true, ["dla"]=true, ["na"]=true, ["pod"]=true, ["nad"]=true, ["znad"]=true, ["spod"]=true, ["stamtąd"]=true, ["podnad"]=true, ["bez"]=true, ["nie"]=true, ["tak"]=true, ["brak"]=true, ["spoza"]=true, }; p.tablica_wyrazowa_wybrane_przyimki={ ["o"]=true, ["z"]=true, ["ze"]=true, ["w"]=true, ["na"]=true, ["do"]=true, ["bez"]=true, ["od"]=true, }; p.tablica_charakterystycznych_przedrostowych={ ["wiki"]=true, }; p.tablica_wyrazy_niedopuszczalne={ ["infobox"]=true, ["wikibooks"]=true, ["mediawiki"]=true, }; p.tablica_analizowanie_bez={ ["Wikibooks"]=true, ["MediaWiki"]=true, ["TemplateStyles"]=true, ["Lua"]=true, ["Scribunto"]=true, ["HTML"]=true, ["XHTML"]=true, ["CSS"]=true, ["String"]=true, ["Dump"]=true, ["Wikidan"]=true, ["Opis"]=true, }; p.tablica_analizowanie_specjalne_wyrazy={ ["błędam"]=true, } p.tablica_analizowanie_specjalne_sekwencje={ ["błędn"]=true, ["błędy"]=true, ["nazwy"]=true, }; p.tablica_wyrazy_do_usuwania_przez_sortowanie={ ["używa"]=true, ["wymag"]=true, ["podział"]=true, ["taki"]=true, ["jaki"]=true, ["samy"]=true, ["któr"]=true, ["zwróc"]=true, ["przez"]=true, ["przestarz"]=true, ["postac"]=true, ["zawiera"]=true, ["zawar"]=true, ["byc"]=true, ["dotycz"]=true, ["duż"]=true, ["małośc"]=true, ["malut"]=true, ["liczb"]=true, ["musi"]=true, ["musz"]=true, ["zgłaszan"]=true, ["przekracz"]=true, ["dopuszcz"]=true, ["duż"]=true, ["prawidł"]=true, ["samozamykaj"]=true, ["zależ"]=true, ["wyświetl"]=true, ["inn"]=true, ["tej"]=true, ["tego"]=true, ["pełn"]=true, ["dawn"]=true, --["definicj"]=true, ["główn"]=true, ["określon"]=true, ["poprawn"]=true, ["istniejąc"]=true, ["znan"]=true, ["zgodn"]=true, ["wszystk"]=true, ["sprawdzen"]=true, ["osobn"]=true, ["tworz"]=true, ["wywołan"]=true, ["wywołań"]=true, ["obsługując"]=true, ["wartość"]=true, ["pudełek"]=true, ["parametr"]=true, ["pozostał"]=true, ["użyc"]=true, ["szablonów"]=true, ["podano"]=true, ["złym"]=true, ["dobrym"]=true, ["brak"]=true, ["nazwanym"]=true, ["obiektam"]=true, ["pusty"]=true, ["puste"]=true, ["wykorzyst"]=true, ["potrzeb"]=true, ["korzystan"]=true, ["zbiorcz"]=true, ["powoduj"]=true, }; p.tablica_wyrazy_przez_sortowanie={ ["brak"]=true, ["spis"]=true, ["istniej"]=true, ["zobacz"]=true, ["grup"]=true, }; p.tablica_wyrazy_parsowania_nazwy_sortowania={ ["obiekt[^%s]*$"]=true, }; p.tablica_zmiana_liczenia_nazwy_sortowania={ ["odnośnik"]=true, }; p.tablica_dzielenia_elementowa_sortowania={ ["miast"]=true, ["gmin"]=true, ["powiat"]=true, ["województw"]=true, }; p.tablica_specjalne_wyrazy_sortowania={ ["portal"]=true, ["poziom"]=true, ["status"]=true, ["temat"]=true, }; p.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie={ ["jest"]=true, ["może"]=true, ["można"]=true, ["być"]=true, ["zbyt"]=true, ["dane"]=true, ["się"]=true, ["szablon"]=true, ["według"]=true, ["mał[ayoe]"]=true, ["małość"]=true, }; p.tablica_wydzielania_subelementowych={ ["Link"]=true, }; p.tablica_wydzielania_subelementowych_innych={ ["Wiki"]=true, ["Multi%-?"]=true, ["Meta%-?"]=true, }; p.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania={ ["skrypty"]=true, ["hasła"]=true, ["książki"]=true, ["artykuły"]=true, ["podręczniki"]=true, ["artykuły dla dzieci"]=true, ["podręczniki dla dzieci"]=true, ["strony brudnopisu opisu modułów"]=true, ["strony brudnopisu opisu szablonów"]=true, ["strony brudnopisu modułów"]=true, ["strony brudnopisu szablonów"]=true, ["strony opisu modułów"]=true, ["strony opisu szablonów"]=true, ["strony modułów"]=true, ["strony szablonów"]=true, ["jednostki brudnopisu projektu"]=true, ["strony brudnopisu projektu"]=true, ["strony kategorii"]=true, ["strony pomocy"]=true, ["strony projektu"]=true, ["jednostki użytkowników"]=true, ["strony użytkowników"]=true, ["strony niepodręcznikowe"]=true, }; return p; fk68rio0vv8ief63ps85nyx00ux0ivy 550414 550384 2026-08-04T19:07:45Z Persino 2851 550414 Scribunto text/plain -- Zmienne potrzebne do funkcji: p.NazwaSortowaniaNazwyStrony(frame), która jest wykorzystywana do domyślnego formatowania stron do szablonów: "Kategoria" i "Kategorie", i ich pochodnych, które korzystają z funkcji o takich samych nazwach, co te szablony. local p={}; p.tablica_wyrazowa_alternatyw={ ["i"]=true, ["lub"]=true, ["oraz"]=true, ["bądź"]=true, ["ewentualnie"]=true, ["natomiast"]=true, }; p.tablica_wyrazowa_gdy_alternatywy={ ["szablon"]=true, }; p.tablica_wyrazowa_niealternatyw={ ["o"]=true, ["w"]=true, ["z"]=true, ["ze"]=true, ["od"]=true, ["ode"]=true, ["do"]=true, ["dla"]=true, ["na"]=true, ["pod"]=true, ["nad"]=true, ["znad"]=true, ["spod"]=true, ["stamtąd"]=true, ["podnad"]=true, ["bez"]=true, ["nie"]=true, ["tak"]=true, ["brak"]=true, ["spoza"]=true, }; p.tablica_wyrazowa_wybrane_przyimki={ ["o"]=true, ["z"]=true, ["ze"]=true, ["w"]=true, ["na"]=true, ["do"]=true, ["bez"]=true, ["od"]=true, }; p.tablica_charakterystycznych_przedrostowych={ ["wiki"]=true, }; p.tablica_wyrazy_niedopuszczalne={ ["infobox"]=true, ["wikibooks"]=true, ["mediawiki"]=true, }; p.tablica_analizowanie_bez={ ["Wikibooks"]=true, ["MediaWiki"]=true, ["TemplateStyles"]=true, ["Lua"]=true, ["Scribunto"]=true, ["HTML"]=true, ["XHTML"]=true, ["CSS"]=true, ["String"]=true, ["Dump"]=true, ["Wikidan"]=true, ["Opis"]=true, }; p.tablica_analizowanie_specjalne_wyrazy={ ["błędam"]=true, } p.tablica_analizowanie_specjalne_sekwencje={ ["błędn"]=true, ["błędy"]=true, ["nazwy"]=true, }; p.tablica_wyrazy_do_usuwania_przez_sortowanie={ ["używa"]=true, ["wymag"]=true, ["podział"]=true, ["taki"]=true, ["jaki"]=true, ["samy"]=true, ["któr"]=true, ["zwróc"]=true, ["przez"]=true, ["przestarz"]=true, ["postac"]=true, ["zawiera"]=true, ["zawar"]=true, ["byc"]=true, ["dotycz"]=true, ["duż"]=true, ["małośc"]=true, ["malut"]=true, ["liczb"]=true, ["musi"]=true, ["musz"]=true, ["zgłaszan"]=true, ["przekracz"]=true, ["dopuszcz"]=true, ["duż"]=true, ["prawidł"]=true, ["samozamykaj"]=true, ["zależ"]=true, ["wyświetl"]=true, ["inn"]=true, ["tej"]=true, ["tego"]=true, ["pełn"]=true, ["dawn"]=true, --["definicj"]=true, ["główn"]=true, ["określon"]=true, ["poprawn"]=true, ["istniejąc"]=true, ["znan"]=true, ["zgodn"]=true, ["wszystk"]=true, ["sprawdzen"]=true, ["osobn"]=true, ["tworz"]=true, ["wywołan"]=true, ["wywołań"]=true, ["obsługując"]=true, ["wartość"]=true, ["pudełek"]=true, ["parametr"]=true, ["pozostał"]=true, ["użyc"]=true, ["szablonów"]=true, ["podano"]=true, ["złym"]=true, ["dobrym"]=true, ["brak"]=true, ["nazwanym"]=true, ["obiektam"]=true, ["pusty"]=true, ["puste"]=true, ["wykorzyst"]=true, ["potrzeb"]=true, ["korzystan"]=true, ["zbiorcz"]=true, ["powoduj"]=true, ["operacyjn"]=true, ["system"]=true, }; p.tablica_wyrazy_przez_sortowanie={ ["brak"]=true, ["spis"]=true, ["istniej"]=true, ["zobacz"]=true, ["grup"]=true, }; p.tablica_wyrazy_parsowania_nazwy_sortowania={ ["obiekt[^%s]*$"]=true, }; p.tablica_zmiana_liczenia_nazwy_sortowania={ ["odnośnik"]=true, }; p.tablica_dzielenia_elementowa_sortowania={ ["miast"]=true, ["gmin"]=true, ["powiat"]=true, ["województw"]=true, }; p.tablica_specjalne_wyrazy_sortowania={ ["portal"]=true, ["poziom"]=true, ["status"]=true, ["temat"]=true, }; p.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie={ ["jest"]=true, ["może"]=true, ["można"]=true, ["być"]=true, ["zbyt"]=true, ["dane"]=true, ["się"]=true, ["szablon"]=true, ["według"]=true, ["mał[ayoe]"]=true, ["małość"]=true, }; p.tablica_wydzielania_subelementowych={ ["Link"]=true, }; p.tablica_wydzielania_subelementowych_innych={ ["Wiki"]=true, ["Multi%-?"]=true, ["Meta%-?"]=true, }; p.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania={ ["skrypty"]=true, ["hasła"]=true, ["książki"]=true, ["artykuły"]=true, ["podręczniki"]=true, ["artykuły dla dzieci"]=true, ["podręczniki dla dzieci"]=true, ["strony brudnopisu opisu modułów"]=true, ["strony brudnopisu opisu szablonów"]=true, ["strony brudnopisu modułów"]=true, ["strony brudnopisu szablonów"]=true, ["strony opisu modułów"]=true, ["strony opisu szablonów"]=true, ["strony modułów"]=true, ["strony szablonów"]=true, ["jednostki brudnopisu projektu"]=true, ["strony brudnopisu projektu"]=true, ["strony kategorii"]=true, ["strony pomocy"]=true, ["strony projektu"]=true, ["jednostki użytkowników"]=true, ["strony użytkowników"]=true, ["strony niepodręcznikowe"]=true, }; return p; 7t1dahwxymsokl7bghh07j6ze8ilcex 550415 550414 2026-08-04T19:09:20Z Persino 2851 550415 Scribunto text/plain -- Zmienne potrzebne do funkcji: p.NazwaSortowaniaNazwyStrony(frame), która jest wykorzystywana do domyślnego formatowania stron do szablonów: "Kategoria" i "Kategorie", i ich pochodnych, które korzystają z funkcji o takich samych nazwach, co te szablony. local p={}; p.tablica_wyrazowa_alternatyw={ ["i"]=true, ["lub"]=true, ["oraz"]=true, ["bądź"]=true, ["ewentualnie"]=true, ["natomiast"]=true, }; p.tablica_wyrazowa_gdy_alternatywy={ ["szablon"]=true, }; p.tablica_wyrazowa_niealternatyw={ ["o"]=true, ["w"]=true, ["z"]=true, ["ze"]=true, ["od"]=true, ["ode"]=true, ["do"]=true, ["dla"]=true, ["na"]=true, ["pod"]=true, ["nad"]=true, ["znad"]=true, ["spod"]=true, ["stamtąd"]=true, ["podnad"]=true, ["bez"]=true, ["nie"]=true, ["tak"]=true, ["brak"]=true, ["spoza"]=true, }; p.tablica_wyrazowa_wybrane_przyimki={ ["o"]=true, ["z"]=true, ["ze"]=true, ["w"]=true, ["na"]=true, ["do"]=true, ["bez"]=true, ["od"]=true, }; p.tablica_charakterystycznych_przedrostowych={ ["wiki"]=true, }; p.tablica_wyrazy_niedopuszczalne={ ["infobox"]=true, ["wikibooks"]=true, ["mediawiki"]=true, }; p.tablica_analizowanie_bez={ ["Wikibooks"]=true, ["MediaWiki"]=true, ["TemplateStyles"]=true, ["Lua"]=true, ["Scribunto"]=true, ["HTML"]=true, ["XHTML"]=true, ["CSS"]=true, ["String"]=true, ["Dump"]=true, ["Wikidan"]=true, ["Opis"]=true, }; p.tablica_analizowanie_specjalne_wyrazy={ ["błędam"]=true, } p.tablica_analizowanie_specjalne_sekwencje={ ["błędn"]=true, ["błędy"]=true, ["nazwy"]=true, }; p.tablica_wyrazy_do_usuwania_przez_sortowanie={ ["używa"]=true, ["wymag"]=true, ["podział"]=true, ["taki"]=true, ["jaki"]=true, ["samy"]=true, ["któr"]=true, ["zwróc"]=true, ["przez"]=true, ["przestarz"]=true, ["postac"]=true, ["zawiera"]=true, ["zawar"]=true, ["byc"]=true, ["dotycz"]=true, ["duż"]=true, ["małośc"]=true, ["malut"]=true, ["liczb"]=true, ["musi"]=true, ["musz"]=true, ["zgłaszan"]=true, ["przekracz"]=true, ["dopuszcz"]=true, ["duż"]=true, ["prawidł"]=true, ["samozamykaj"]=true, ["zależ"]=true, ["wyświetl"]=true, ["inn"]=true, ["tej"]=true, ["tego"]=true, ["pełn"]=true, ["dawn"]=true, --["definicj"]=true, ["główn"]=true, ["określon"]=true, ["poprawn"]=true, ["istniejąc"]=true, ["znan"]=true, ["zgodn"]=true, ["wszystk"]=true, ["sprawdzen"]=true, ["osobn"]=true, ["tworz"]=true, ["wywołan"]=true, ["wywołań"]=true, ["obsługując"]=true, ["wartość"]=true, ["pudełek"]=true, ["parametr"]=true, ["pozostał"]=true, ["użyc"]=true, ["szablonów"]=true, ["podano"]=true, ["złym"]=true, ["dobrym"]=true, ["brak"]=true, ["nazwanym"]=true, ["obiektam"]=true, ["pusty"]=true, ["puste"]=true, ["wykorzyst"]=true, ["potrzeb"]=true, ["korzystan"]=true, ["zbiorcz"]=true, ["powoduj"]=true, }; p.tablica_wyrazy_przez_sortowanie={ ["brak"]=true, ["spis"]=true, ["istniej"]=true, ["zobacz"]=true, ["grup"]=true, }; p.tablica_wyrazy_parsowania_nazwy_sortowania={ ["obiekt[^%s]*$"]=true, }; p.tablica_zmiana_liczenia_nazwy_sortowania={ ["odnośnik"]=true, }; p.tablica_dzielenia_elementowa_sortowania={ ["miast"]=true, ["gmin"]=true, ["powiat"]=true, ["województw"]=true, }; p.tablica_specjalne_wyrazy_sortowania={ ["portal"]=true, ["poziom"]=true, ["status"]=true, ["temat"]=true, }; p.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie={ ["jest"]=true, ["może"]=true, ["można"]=true, ["być"]=true, ["zbyt"]=true, ["dane"]=true, ["się"]=true, ["szablon"]=true, ["według"]=true, ["mał[ayoe]"]=true, ["małość"]=true, }; p.tablica_wydzielania_subelementowych={ ["Link"]=true, }; p.tablica_wydzielania_subelementowych_innych={ ["Wiki"]=true, ["Multi%-?"]=true, ["Meta%-?"]=true, }; p.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania={ ["skrypty"]=true, ["hasła"]=true, ["książki"]=true, ["artykuły"]=true, ["podręczniki"]=true, ["artykuły dla dzieci"]=true, ["podręczniki dla dzieci"]=true, ["strony brudnopisu opisu modułów"]=true, ["strony brudnopisu opisu szablonów"]=true, ["strony brudnopisu modułów"]=true, ["strony brudnopisu szablonów"]=true, ["strony opisu modułów"]=true, ["strony opisu szablonów"]=true, ["strony modułów"]=true, ["strony szablonów"]=true, ["jednostki brudnopisu projektu"]=true, ["strony brudnopisu projektu"]=true, ["strony kategorii"]=true, ["strony pomocy"]=true, ["strony projektu"]=true, ["jednostki użytkowników"]=true, ["strony użytkowników"]=true, ["strony niepodręcznikowe"]=true, }; return p; fk68rio0vv8ief63ps85nyx00ux0ivy 550416 550415 2026-08-04T20:27:17Z Persino 2851 550416 Scribunto text/plain -- Zmienne potrzebne do funkcji: p.NazwaSortowaniaNazwyStrony(frame), która jest wykorzystywana do domyślnego formatowania stron do szablonów: "Kategoria" i "Kategorie", i ich pochodnych, które korzystają z funkcji o takich samych nazwach, co te szablony. local p={}; p.tablica_wyrazowa_alternatyw={ ["i"]=true, ["lub"]=true, ["oraz"]=true, ["bądź"]=true, ["ewentualnie"]=true, ["natomiast"]=true, }; p.tablica_wyrazowa_gdy_alternatywy={ ["szablon"]=true, }; p.tablica_wyrazowa_niealternatyw={ ["o"]=true, ["w"]=true, ["z"]=true, ["ze"]=true, ["od"]=true, ["ode"]=true, ["do"]=true, ["dla"]=true, ["na"]=true, ["pod"]=true, ["nad"]=true, ["znad"]=true, ["spod"]=true, ["stamtąd"]=true, ["podnad"]=true, ["bez"]=true, ["nie"]=true, ["tak"]=true, ["brak"]=true, ["spoza"]=true, }; p.tablica_wyrazowa_wybrane_przyimki={ ["o"]=true, ["z"]=true, ["ze"]=true, ["w"]=true, ["na"]=true, ["do"]=true, ["bez"]=true, ["od"]=true, }; p.tablica_charakterystycznych_przedrostowych={ ["wiki"]=true, }; p.tablica_wyrazy_niedopuszczalne={ ["infobox"]=true, ["wikibooks"]=true, ["mediawiki"]=true, }; p.tablica_analizowanie_bez={ ["Wikibooks"]=true, ["MediaWiki"]=true, ["TemplateStyles"]=true, ["Lua"]=true, ["Scribunto"]=true, ["HTML"]=true, ["XHTML"]=true, ["CSS"]=true, ["String"]=true, ["Dump"]=true, ["Wikidan"]=true, ["Opis"]=true, }; p.tablica_analizowanie_specjalne_wyrazy={ ["błędam"]=true, } p.tablica_analizowanie_specjalne_sekwencje={ ["błędn"]=true, ["błędy"]=true, ["nazwy"]=true, }; p.tablica_wyrazy_do_usuwania_przez_sortowanie={ ["używa"]=true, ["wymag"]=true, ["podział"]=true, ["taki"]=true, ["jaki"]=true, ["samy"]=true, ["któr"]=true, ["zwróc"]=true, ["przez"]=true, ["przestarz"]=true, ["postac"]=true, ["zawiera"]=true, ["zawar"]=true, ["byc"]=true, ["dotycz"]=true, ["duż"]=true, ["małośc"]=true, ["malut"]=true, ["liczb"]=true, ["musi"]=true, ["musz"]=true, ["zgłaszan"]=true, ["przekracz"]=true, ["dopuszcz"]=true, ["duż"]=true, ["prawidł"]=true, ["samozamykaj"]=true, ["zależ"]=true, ["wyświetl"]=true, ["inn"]=true, ["tej"]=true, ["tego"]=true, ["pełn"]=true, ["dawn"]=true, --["definicj"]=true, ["główn"]=true, ["określon"]=true, ["poprawn"]=true, ["istniejąc"]=true, ["znan"]=true, ["zgodn"]=true, ["wszystk"]=true, ["sprawdzen"]=true, ["osobn"]=true, ["tworz"]=true, ["wywołan"]=true, ["wywołań"]=true, ["obsługując"]=true, ["wartość"]=true, ["pudełek"]=true, ["parametr"]=true, ["pozostał"]=true, ["użyc"]=true, ["szablonów"]=true, ["podano"]=true, ["złym"]=true, ["dobrym"]=true, ["brak"]=true, ["nazwanym"]=true, ["obiektam"]=true, ["pusty"]=true, ["puste"]=true, ["wykorzyst"]=true, ["potrzeb"]=true, ["korzystan"]=true, ["zbiorcz"]=true, ["powoduj"]=true, ["poszczególn"]=true, }; p.tablica_wyrazy_przez_sortowanie={ ["brak"]=true, ["spis"]=true, ["istniej"]=true, ["zobacz"]=true, ["grup"]=true, }; p.tablica_wyrazy_parsowania_nazwy_sortowania={ ["obiekt[^%s]*$"]=true, }; p.tablica_zmiana_liczenia_nazwy_sortowania={ ["odnośnik"]=true, }; p.tablica_dzielenia_elementowa_sortowania={ ["miast"]=true, ["gmin"]=true, ["powiat"]=true, ["województw"]=true, }; p.tablica_specjalne_wyrazy_sortowania={ ["portal"]=true, ["poziom"]=true, ["status"]=true, ["temat"]=true, }; p.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie={ ["jest"]=true, ["może"]=true, ["można"]=true, ["być"]=true, ["zbyt"]=true, ["dane"]=true, ["się"]=true, ["szablon"]=true, ["według"]=true, ["mał[ayoe]"]=true, ["małość"]=true, }; p.tablica_wydzielania_subelementowych={ ["Link"]=true, }; p.tablica_wydzielania_subelementowych_innych={ ["Wiki"]=true, ["Multi%-?"]=true, ["Meta%-?"]=true, }; p.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania={ ["skrypty"]=true, ["hasła"]=true, ["książki"]=true, ["artykuły"]=true, ["podręczniki"]=true, ["artykuły dla dzieci"]=true, ["podręczniki dla dzieci"]=true, ["strony brudnopisu opisu modułów"]=true, ["strony brudnopisu opisu szablonów"]=true, ["strony brudnopisu modułów"]=true, ["strony brudnopisu szablonów"]=true, ["strony opisu modułów"]=true, ["strony opisu szablonów"]=true, ["strony modułów"]=true, ["strony szablonów"]=true, ["jednostki brudnopisu projektu"]=true, ["strony brudnopisu projektu"]=true, ["strony kategorii"]=true, ["strony pomocy"]=true, ["strony projektu"]=true, ["jednostki użytkowników"]=true, ["strony użytkowników"]=true, ["strony niepodręcznikowe"]=true, }; return p; ng14acttcq9fej2y43kiibrr8z577kr 550420 550416 2026-08-04T21:02:40Z Persino 2851 550420 Scribunto text/plain -- Zmienne potrzebne do funkcji: p.NazwaSortowaniaNazwyStrony(frame), która jest wykorzystywana do domyślnego formatowania stron do szablonów: "Kategoria" i "Kategorie", i ich pochodnych, które korzystają z funkcji o takich samych nazwach, co te szablony. local p={}; p.tablica_wyrazowa_alternatyw={ ["i"]=true, ["lub"]=true, ["oraz"]=true, ["bądź"]=true, ["ewentualnie"]=true, ["natomiast"]=true, }; p.tablica_wyrazowa_gdy_alternatywy={ ["szablon"]=true, }; p.tablica_wyrazowa_niealternatyw={ ["o"]=true, ["w"]=true, ["z"]=true, ["ze"]=true, ["od"]=true, ["ode"]=true, ["do"]=true, ["dla"]=true, ["na"]=true, ["pod"]=true, ["nad"]=true, ["znad"]=true, ["spod"]=true, ["stamtąd"]=true, ["podnad"]=true, ["bez"]=true, ["nie"]=true, ["tak"]=true, ["brak"]=true, ["spoza"]=true, }; p.tablica_wyrazowa_wybrane_przyimki={ ["o"]=true, ["z"]=true, ["ze"]=true, ["w"]=true, ["na"]=true, ["do"]=true, ["bez"]=true, ["od"]=true, }; p.tablica_charakterystycznych_przedrostowych={ ["wiki"]=true, }; p.tablica_wyrazy_niedopuszczalne={ ["infobox"]=true, ["wikibooks"]=true, ["mediawiki"]=true, }; p.tablica_analizowanie_bez={ ["Wikibooks"]=true, ["MediaWiki"]=true, ["TemplateStyles"]=true, ["Lua"]=true, ["Scribunto"]=true, ["HTML"]=true, ["XHTML"]=true, ["CSS"]=true, ["String"]=true, ["Dump"]=true, ["Wikidan"]=true, ["Opis"]=true, }; p.tablica_analizowanie_specjalne_wyrazy={ ["błędam"]=true, } p.tablica_analizowanie_specjalne_sekwencje={ ["błędn"]=true, ["błędy"]=true, ["nazwy"]=true, }; p.tablica_wyrazy_do_usuwania_przez_sortowanie={ ["używa"]=true, ["wymag"]=true, ["podział"]=true, ["taki"]=true, ["jaki"]=true, ["samy"]=true, ["któr"]=true, ["zwróc"]=true, ["przez"]=true, ["przestarz"]=true, ["postac"]=true, ["zawiera"]=true, ["zawar"]=true, ["byc"]=true, ["dotycz"]=true, ["duż"]=true, ["małośc"]=true, ["malut"]=true, ["liczb"]=true, ["musi"]=true, ["musz"]=true, ["zgłaszan"]=true, ["przekracz"]=true, ["dopuszcz"]=true, ["duż"]=true, ["prawidł"]=true, ["samozamykaj"]=true, ["zależ"]=true, ["wyświetl"]=true, ["inn"]=true, ["tej"]=true, ["tego"]=true, ["pełn"]=true, ["dawn"]=true, --["definicj"]=true, ["główn"]=true, ["określon"]=true, ["poprawn"]=true, ["istniejąc"]=true, ["znan"]=true, ["zgodn"]=true, ["wszystk"]=true, ["sprawdzen"]=true, ["osobn"]=true, ["tworz"]=true, ["wywołan"]=true, ["wywołań"]=true, ["obsługując"]=true, ["wartość"]=true, ["pudełek"]=true, ["parametr"]=true, ["pozostał"]=true, ["użyc"]=true, ["szablonów"]=true, ["podano"]=true, ["złym"]=true, ["dobrym"]=true, ["brak"]=true, ["nazwanym"]=true, ["obiektam"]=true, ["pusty"]=true, ["puste"]=true, ["wykorzyst"]=true, ["potrzeb"]=true, ["korzystan"]=true, ["zbiorcz"]=true, ["powoduj"]=true, ["poszczególn"]=true, }; p.tablica_wyrazy_przez_sortowanie={ ["brak"]=true, ["bez"]=true, ["spis"]=true, ["istniej"]=true, ["zobacz"]=true, ["grup"]=true, }; p.tablica_wyrazy_parsowania_nazwy_sortowania={ ["obiekt[^%s]*$"]=true, }; p.tablica_zmiana_liczenia_nazwy_sortowania={ ["odnośnik"]=true, }; p.tablica_dzielenia_elementowa_sortowania={ ["miast"]=true, ["gmin"]=true, ["powiat"]=true, ["województw"]=true, }; p.tablica_specjalne_wyrazy_sortowania={ ["portal"]=true, ["poziom"]=true, ["status"]=true, ["temat"]=true, }; p.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie={ ["jest"]=true, ["może"]=true, ["można"]=true, ["być"]=true, ["zbyt"]=true, ["dane"]=true, ["się"]=true, ["szablon"]=true, ["według"]=true, ["mał[ayoe]"]=true, ["małość"]=true, }; p.tablica_wydzielania_subelementowych={ ["Link"]=true, }; p.tablica_wydzielania_subelementowych_innych={ ["Wiki"]=true, ["Multi%-?"]=true, ["Meta%-?"]=true, }; p.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania={ ["skrypty"]=true, ["hasła"]=true, ["książki"]=true, ["artykuły"]=true, ["podręczniki"]=true, ["artykuły dla dzieci"]=true, ["podręczniki dla dzieci"]=true, ["strony brudnopisu opisu modułów"]=true, ["strony brudnopisu opisu szablonów"]=true, ["strony brudnopisu modułów"]=true, ["strony brudnopisu szablonów"]=true, ["strony opisu modułów"]=true, ["strony opisu szablonów"]=true, ["strony modułów"]=true, ["strony szablonów"]=true, ["jednostki brudnopisu projektu"]=true, ["strony brudnopisu projektu"]=true, ["strony kategorii"]=true, ["strony pomocy"]=true, ["strony projektu"]=true, ["jednostki użytkowników"]=true, ["strony użytkowników"]=true, ["strony niepodręcznikowe"]=true, }; return p; 9ztj4i7pvh0v3533so5tw57qm7nnffq Moduł:Kategorie/sortowanie 828 62837 550377 546283 2026-08-04T12:18:18Z Persino 2851 550377 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); if((ile_jest_na_poczatku>0)and(ile_jest_charakterystycznych_przedrostkowych==0))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0))then local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; f302v986y8z7c3qbiruvzb419b4n7ub 550379 550377 2026-08-04T12:26:52Z Persino 2851 550379 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); if((ile_jest_na_poczatku>0)and(ile_jest_charakterystycznych_przedrostkowych==0))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; rj41alb28fzthkmw71qa8de1c3az4dn 550380 550379 2026-08-04T12:44:30Z Persino 2851 550380 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); if((ile_jest_na_poczatku>0)and(ile_jest_charakterystycznych_przedrostkowych==0))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; hi8lgo3575wan2rs185dnmn1uvb12n2 550382 550380 2026-08-04T13:08:07Z Persino 2851 550382 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)or(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; 4osimmicssojq6klwmjgok7nxg66vbp 550383 550382 2026-08-04T13:11:13Z Persino 2851 550383 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)and(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; bymwlpj18b5qfdg5ng4ldha87gd3yf9 550387 550383 2026-08-04T14:15:15Z Persino 2851 550387 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)and(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_jest_przyimki1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); local _,_,ile_jest_przyimki2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_jest_przyimki2-ile_jest_przyimki1>0)then return stara_nazwa_sortowania,true; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; hg8lq8z57ov345ppqve60ycy74jvn28 550388 550387 2026-08-04T14:16:50Z Persino 2851 550388 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)and(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_jest_przyimki1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); local _,_,ile_jest_przyimki2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_jest_przyimki1-ile_jest_przyimki2>0)then return stara_nazwa_sortowania,true; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; 4nm09vzcworyyn8j9f1bhrydyvaei2m 550389 550388 2026-08-04T14:31:06Z Persino 2851 550389 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)and(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_jest_przyimki0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^%p*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_przyimki1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); local _,_,ile_jest_przyimki2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if((ile_jest_przyimki0==0)and(ile_jest_przyimki1-ile_jest_przyimki2>0))then return stara_nazwa_sortowania,true; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; 3tshmtui2a6aug4kkr27ntv0sny14mv 550405 550389 2026-08-04T15:38:06Z Persino 2851 550405 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)and(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki local _,_,ile_jest_dla_przyimki0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^%p*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_przyimki1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_przyimki=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); local _,_,ile_jest_dla_przyimki2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if( (ile_jest_dla_przyimki0==0) and( ((ile_przyimki>0)and(ile_jest_dla_przyimki1-ile_jest_dla_przyimki2>0)) or((ile_przyimki==0)and(ile_jest_dla_przyimki1>0)) ) )then return stara_nazwa_sortowania,true; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; hfrxm4z57gsyztb2rqxtj59yo3xyhdp 550406 550405 2026-08-04T15:51:40Z Persino 2851 550406 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)and(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then local _,_,ile_jest_dla_przyimki1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_przyimki2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_jest_dla_przyimki1>ile_jest_dla_przyimki2)then nazwa_sortowania=stara_nazwa_sortowania; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local _,_,ile_jest_dla_przyimki0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^%p*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_przyimki1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_przyimki=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); local _,_,ile_jest_dla_przyimki2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if( (ile_jest_dla_przyimki0==0) and( ((ile_przyimki>0)and(ile_jest_dla_przyimki1-ile_jest_dla_przyimki2>0)) or((ile_przyimki==0)and(ile_jest_dla_przyimki1>0)) ) )then return stara_nazwa_sortowania,true; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; 7nn7tuqv9ke2nz6xifirfksowfkppvk 550407 550406 2026-08-04T16:01:35Z Persino 2851 550407 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)and(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then local _,_,ile_jest_dla_myslnika1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_myslnika2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_jest_dla_myslnika1>ile_jest_dla_myslnika2)then nazwa_sortowania=stara_nazwa_sortowania; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local _,_,ile_jest_dla_przyimki0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^%p*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_przyimki1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_przyimki=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); local _,_,ile_jest_dla_przyimki2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if( (ile_jest_dla_przyimki0==0) and( ((ile_przyimki>0)and(ile_jest_dla_przyimki1-ile_jest_dla_przyimki2>0)) or((ile_przyimki==0)and(ile_jest_dla_przyimki1>0)) ) )then return stara_nazwa_sortowania,true; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; aoyijfdk3q7ae52vlw4ghgjvv4bhemv 550408 550407 2026-08-04T16:06:22Z Persino 2851 550408 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)and(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then local _,_,ile_jest_dla_myslnika0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%p*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_myslnika1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_myslnika2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if((ile_jest_dla_myslnika0==0)and(ile_jest_dla_myslnika1>ile_jest_dla_myslnika2))then nazwa_sortowania=stara_nazwa_sortowania; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local _,_,ile_jest_dla_przyimki0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^%p*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_przyimki1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_przyimki=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); local _,_,ile_jest_dla_przyimki2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if( (ile_jest_dla_przyimki0==0) and( ((ile_przyimki>0)and(ile_jest_dla_przyimki1-ile_jest_dla_przyimki2>0)) or((ile_przyimki==0)and(ile_jest_dla_przyimki1>0)) ) )then return stara_nazwa_sortowania,true; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; 5u3w58pw0qitvdt5r1ti6ypqjoco7cu 550409 550408 2026-08-04T16:14:18Z Persino 2851 550409 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)and(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then local _,_,ile_jest_dla_myslnika0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%p*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_myslnika1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_myslnika2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if((ile_jest_dla_myslnika0==0)and(ile_jest_dla_myslnika1>ile_jest_dla_myslnika2))then nazwa_sortowania=stara_nazwa_sortowania; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local _,_,ile_jest_dla_przyimki0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^%p*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_przyimki1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_przyimki=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); local _,_,ile_jest_dla_przyimki2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if( (ile_jest_dla_przyimki0==0) and( ((ile_przyimki>0)and(ile_jest_dla_przyimki1-ile_jest_dla_przyimki2>0)) or((ile_przyimki==0)and(ile_jest_dla_przyimki1>0)) ) )then nazwa_sortowania=stara_nazwa_sortowania; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; p91wg8fh40853iz5sfjsdu48ujqrbt1 550410 550409 2026-08-04T18:11:44Z Persino 2851 550410 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); local _,_,ile_jest_dla_niedoposzczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_jest_dla_niedoposzczalne>0)then return stara_nazwa_sortowania; end; end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)and(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then local _,_,ile_jest_dla_myslnika0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_myslnika1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_myslnika2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if((ile_jest_dla_myslnika0==0)and(ile_jest_dla_myslnika1>ile_jest_dla_myslnika2))then nazwa_sortowania=stara_nazwa_sortowania; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local _,_,ile_jest_dla_przyimki0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_przyimki1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_przyimki=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); local _,_,ile_jest_dla_przyimki2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if( (ile_jest_dla_przyimki0==0) and( ((ile_przyimki>0)and(ile_jest_dla_przyimki1-ile_jest_dla_przyimki2>0)) or((ile_przyimki==0)and(ile_jest_dla_przyimki1>0)) ) )then nazwa_sortowania=stara_nazwa_sortowania; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; mw.log(nazwa_sortowania,1); nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; 766hk927clvo3bwbtrqxkph1b0zvyso 550411 550410 2026-08-04T18:14:29Z Persino 2851 550411 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); if(not ktoras_duza_litera)then local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); local _,_,ile_jest_dla_niedoposzczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_jest_dla_niedoposzczalne>0)then return stara_nazwa_sortowania; end; end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)and(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then local _,_,ile_jest_dla_myslnika0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_myslnika1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_myslnika2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if((ile_jest_dla_myslnika0==0)and(ile_jest_dla_myslnika1>ile_jest_dla_myslnika2))then nazwa_sortowania=stara_nazwa_sortowania; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local _,_,ile_jest_dla_przyimki0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_przyimki1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_przyimki=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); local _,_,ile_jest_dla_przyimki2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if( (ile_jest_dla_przyimki0==0) and( ((ile_przyimki>0)and(ile_jest_dla_przyimki1-ile_jest_dla_przyimki2>0)) or((ile_przyimki==0)and(ile_jest_dla_przyimki1>0)) ) )then nazwa_sortowania=stara_nazwa_sortowania; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; mufkqvumlaaryc3tgu689d4hnj27e6o 550412 550411 2026-08-04T18:19:54Z Persino 2851 550412 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); local _,_,ile_jest_dla_niedoposzczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_jest_dla_niedoposzczalne>0)then return stara_nazwa_sortowania; end; if(not ktoras_duza_litera)then local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); local _,_,ile_jest_dla_niedoposzczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_jest_dla_niedoposzczalne>0)then return stara_nazwa_sortowania; end; end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)and(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then local _,_,ile_jest_dla_myslnika0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_myslnika1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_myslnika2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if((ile_jest_dla_myslnika0==0)and(ile_jest_dla_myslnika1>ile_jest_dla_myslnika2))then nazwa_sortowania=stara_nazwa_sortowania; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local _,_,ile_jest_dla_przyimki0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_przyimki1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_przyimki=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); local _,_,ile_jest_dla_przyimki2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if( (ile_jest_dla_przyimki0==0) and( ((ile_przyimki>0)and(ile_jest_dla_przyimki1-ile_jest_dla_przyimki2>0)) or((ile_przyimki==0)and(ile_jest_dla_przyimki1>0)) ) )then nazwa_sortowania=stara_nazwa_sortowania; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; gkktrv8jx0phfngsojiv4vcvyeut5me 550413 550412 2026-08-04T19:01:29Z Persino 2851 550413 Scribunto text/plain local p={}; function p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wydzielania_subelementowych=kategorie_dane_modul.tablica_wydzielania_subelementowych; local ile;local ile_zastapien=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^(%a%l%l+)(%u+.*)$",function(wyraz,dalej) if(tablica_wydzielania_subelementowych[wyraz])then ile_zastapien=ile_zastapien+1; return dalej; end; return nil; end); if((ile>0)and(ile_zastapien>0))then return nazwa_sortowania,(ile-ile_zastapien); end; local tablica_wydzielania_subelementowych_innych=kategorie_dane_modul.tablica_wydzielania_subelementowych_innych; for name,_ in pairs(tablica_wydzielania_subelementowych_innych)do local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^("..name..")(%a)","%2"); if(ile>0)then return nazwa_sortowania,ile; end; end; return nazwa_sortowania,0; end; local CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania=function(nazwa_sortowania) local czy_tak=mw.ustring.match(nazwa_sortowania,"^[%c%s_%p]*$") if(czy_tak)then return true;end; return false; end; local UsuwanieElementuArtykularnegoWoluminu=function(nazwa_sortowania,nawias_lewy,nawias_prawy) local ile_zmieniono=0; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%"..nawias_lewy.."[%p%s_]*([^%"..nawias_lewy.."%"..nawias_prawy.."]-)[%p%s_]*%"..nawias_prawy,function(wyrazenie) if(wyrazenie=="")then return "";end; if(tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania[wyrazenie])then ile_zmieniono=ile_zmieniono+1; return ""; end; end); return nazwa_sortowania,ile_zmieniono; end; local UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony=function(nazwa_sortowania) repeat local ile1;local ile2;local ile3;local ile4;local ile5; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%(([^%(%)]+)%)","%1"); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%[([^%(%)]+)%]","%1"); nazwa_sortowania,ile3=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*%{([^%(%)]+)%}","%1"); nazwa_sortowania,ile4=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*\"([^%(%)]+)\"","%1"); nazwa_sortowania,ile5=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*„([^%(%)]+)”","%1"); local ile=ile1+ile2+ile3+ile4+ile5; until (ile==0); nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]*",""); return nazwa_sortowania; end; local UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania=function(nazwa_sortowania,czy_koniec) local czy_tak=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_tak)then return nazwa_sortowania,0;end; local ile; if(czy_koniec)then local ile1;local ile2; nazwa_sortowania,ile1=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile2=mw.ustring.gsub(nazwa_sortowania,"[%p%s_]+$",""); ile=ile1+ile2; else local UsuwanieNiepoprawnejInterpunkcjiNawiasowej=function(nazwa_sortowania,numer) local ile;local ile_nawias; repeat if(numer==1)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"(",")"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%(([^%(%)]+)%)","%1%2"); else ile=ile_nawias; end; elseif(numer==2)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"[","]"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%[([^%[%]]+)%]","%1%2"); else ile=ile_nawias; end; elseif(numer==3)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"{","}"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)%{([^%{%}]+)%}","%1%2"); else ile=ile_nawias; end; elseif(numer==4)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"\"","\""); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)\"([^\"]+)\"","%1%2"); else ile=ile_nawias; end; elseif(numer==5)then nazwa_sortowania,ile_nawias=UsuwanieElementuArtykularnegoWoluminu(nazwa_sortowania,"„","”"); if(ile_nawias==0)then nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,"^([%p%s_]*)„([^„”]+)”","%1%2"); else ile=ile_nawias; end; else mw.log("Funkcja: UsuwanieNiepoprawnejInterpunkcjiNawiasowej, niewłaściwa wartość parametru: numer.") end; until (ile==0); return nazwa_sortowania,ile; end; local ile1;local ile2;local ile3;local ile4;local ile5;local ile6;local ile7; nazwa_sortowania,ile1=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,1); nazwa_sortowania,ile2=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,2); nazwa_sortowania,ile3=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,3); nazwa_sortowania,ile4=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,4); nazwa_sortowania,ile5=UsuwanieNiepoprawnejInterpunkcjiNawiasowej(nazwa_sortowania,5); nazwa_sortowania,ile6=mw.ustring.gsub(nazwa_sortowania,"^[%p%s_]+",""); nazwa_sortowania,ile7=mw.ustring.gsub(nazwa_sortowania,"[%s_]+$",""); ile=ile1+ile2+ile3+ile4+ile5+ile6+ile7; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,ile; end; local ZamienianieWyrazoweSzereguWyrazu=function(nazwa_sortowania,wzor,funkcja,czy_wielkosc) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_dopasowania=0; local nazwa,ile=mw.ustring.gsub(nazwa_sortowania,wzor,function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(not czy_wielkosc)then wyraz=mw.ustring.lower(wyraz);end; local wynik=funkcja(wyraz); if(wynik)then ile_dopasowania=ile_dopasowania+1; return nil; end; return nil; end); return nazwa,ile,ile_dopasowania; end; local ZamienianieWyrazoweSzereguWyrazuKompleksowe=function(nazwa_sortowania,wzor,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_wielkosc) local ile;local ile_dopasowan; local nazwa,ile,ile_dopasowan=ZamienianieWyrazoweSzereguWyrazu(nazwa_sortowania,wzor,function(wyraz) if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return true; end; end; if(tablica_niekompletne_wyrazy)then for name,_ in pairs(tablica_niekompletne_wyrazy)do local czy_dopasowano=mw.ustring.match(wyraz,"^"..name) if(czy_dopasowano)then return true; end; end; end; return nil; end,czy_wielkosc); return nazwa,ile,ile_dopasowan; end; local UsuwaneElemementyNazwySortowania=function(nazwa_sortowania,tablica_kompletne_wyrazy,tablica_niekompletne_wyrazy,czy_nie,czy_od_poczatku) nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local ile_niezastapil=0; local nazwa_sortowania,ile=mw.ustring.gsub(nazwa_sortowania,((czy_od_poczatku and "^" or "").."%s*(%S+)"),function(wyraz) wyraz=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(wyraz,true); if(mw.ustring.match(wyraz,"^%u+$"))then ile_niezastapil=ile_niezastapil+1; return nil; end; wyraz=mw.ustring.lower(wyraz); if(tablica_kompletne_wyrazy)then if(tablica_kompletne_wyrazy[wyraz])then return ""; end; end; if(tablica_niekompletne_wyrazy)then for p_wzor_wyrazy,_ in pairs(tablica_niekompletne_wyrazy)do local p_wyraz=mw.ustring.match(wyraz,"^"..p_wzor_wyrazy) or (czy_nie and mw.ustring.match(wyraz,"^nie"..p_wzor_wyrazy) or nil); if(p_wyraz)then return ""; end; end; end; ile_niezastapil=ile_niezastapil+1; return nil; end); ile=ile-ile_niezastapil; return nazwa_sortowania,ile; end; local CzyPierwszyWyrazPrzezSortowanie=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_przez_sortowanie; for name,value in pairs(tablica_wyrazy_przez_sortowanie) do local czy_dopasowano=mw.ustring.match(nazwa_sortowania,"^"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst(name)) or mw.ustring.match(nazwa_sortowania,"^".."nie"..name) or mw.ustring.match(nazwa_sortowania,"^"..mw.getContentLanguage():ucfirst("nie"..name)); if(czy_dopasowano)then return true; end; end; return false; end; local UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania=function(nazwa_sortowania) if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,1;end; local nazwa_sortowania_stare=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania); local czy_pusta_nazwa_sortowania=CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania); if(czy_pusta_nazwa_sortowania)then return nazwa_sortowania_stare,0; end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_analizowanie_specjalne_sekwencje=kategorie_dane_modul.tablica_analizowanie_specjalne_sekwencje; local _,_,ile_wyrazy_sekwencje=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%p%s]*(%S+)",nil,tablica_analizowanie_specjalne_sekwencje); if(ile_wyrazy_sekwencje>0)then return nazwa_sortowania,0; end; nazwa_sortowania=mw.ustring.gsub(nazwa_sortowania,"^%s*([^/%s]+%s+)",""); local ile_wyrazy_niedopuszczalne=0; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; local _,_,ile_wyrazy_niedopuszczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_wyrazy_niedopuszczalne>0)then nazwa_sortowania=nazwa_sortowania_stare; end; return nazwa_sortowania,ile_wyrazy_niedopuszczalne; end; local IleJestSpacjiNazwySortowania=function(nazwa_sortowania) local _,ile=mw.ustring.gsub(nazwa_sortowania,"(%s)",function()return nil;end); return ile; end; local function CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_parsowania) local czy_tak=false; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"[%s%p]+"..name); if(czy_tak)then return czy_tak;end; end; for name,value in pairs(tablica_parsowania)do czy_tak=czy_tak or mw.ustring.match(nazwa_sortowania,"^"..name); if(czy_tak)then return czy_tak;end; end; return false; end; local TekstPoPrzyimkuNazwySortowania=function(nazwa_sortowania) local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local tablica_zmiana_liczenia_nazwy_sortowania=kategorie_dane_modul.tablica_zmiana_liczenia_nazwy_sortowania; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local tablica_wyrazy_parsowania_nazwy_sortowania=kategorie_dane_modul.tablica_wyrazy_parsowania_nazwy_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tab_dane={}; local nie_usuwaj_pierwszego_z_kolei_wyrazu; local czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka; local tab_przyimki={}; for name,value in pairs(tablica_wyrazowa_wybrane_przyimki)do local poczatek,koniec,_,nazwa_sortowania_temp=mw.ustring.find(nazwa_sortowania,"%s+("..name..")%s+(%S.*)%s*$",1); if(poczatek)then if(((name=="z")or(name=="ze"))and((not tab_przyimki["z"])and(not tab_przyimki["ze"])))then local poczatek2,koniec2,_,nazwa_sortowania_temp2; poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(z)%s+(%S.*)%s*$",1); local poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(z)%s+(%S.*)%s*$"); if(not poczatek3)then poczatek3,koniec3,_,nazwa_sortowania_temp3=mw.ustring.match(nazwa_sortowania_temp,",%s+(ze)%s+(%S.*)%s*$"); end; local poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^,%s]%s+(z)%s+(%S.*)%s*$"); if(not poczatek4)then poczatek4,koniec4,_,nazwa_sortowania_temp4=mw.ustring.match(nazwa_sortowania_temp,"[^%s,]%s+(ze)%s+(%S.*)%s*$"); end; local CzyWiecej=function(nazwa_sortowania) local ile=0;local tak=false; local iter=mw.ustring.gmatch(nazwa_sortowania,"%S+"); for wyraz in iter do if(tak)then return;end; local wyraz2=mw.ustring.gsub(wyraz,"%,+$",""); wyraz2=mw.ustring.lower(wyraz2); if(tablica_wyrazowa_niealternatyw[wyraz2])then tak=true;break;end; if(not mw.ustring.match(wyraz,",$"))then ile=ile+1; else ile=ile+1; tak=true; break; end; end; if(not tak)then return 1;end; return ile; end; local czy_wiecej=nazwa_sortowania_temp2 and (CzyWiecej(nazwa_sortowania_temp2)>1) or false; local czy_warunek=((not poczatek3) or poczatek4)or(czy_wiecej); if(poczatek2)then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true and ((not poczatek4)or(poczatek3)); else poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania,",%s+(ze)%s+(%S.*)%s*$",1); czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=(poczatek2 and true or false) and czy_warunek; end; if(poczatek2)then local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp2,"^%s*(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); nie_usuwaj_pierwszego_z_kolei_wyrazu=(ile_wyrazy_specialne==0)and true or false; tab_dane[poczatek]={name,(not czy_warunek)and nazwa_sortowania_temp or nazwa_sortowania_temp2,}; else local poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(z)%s+(%S.*)%s*$",1); if(not poczatek2)then poczatek2,koniec2,_,nazwa_sortowania_temp2=mw.ustring.find(nazwa_sortowania_temp,"%s+(ze)%s+(%S.*)%s*$",1); end; if(poczatek2)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; elseif((name~="z")and(name~="ze"))then tab_dane[poczatek]={name,nazwa_sortowania_temp,}; end; tab_przyimki[name]=true; end; end; czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=false or czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka or ( ((not tab_przyimki["z"])and(tab_przyimki["ze"])) and(not CzyJestWeNazwieSortowaniaTenParserowyWyrazLubGrupaWyrazowa(nazwa_sortowania,tablica_wyrazy_parsowania_nazwy_sortowania)) ); if(not czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka)then for name,value in pairs(tablica_zmiana_liczenia_nazwy_sortowania)do if( mw.ustring.match(nazwa_sortowania,name) or mw.ustring.match(nazwa_sortowania,mw.getContentLanguage():ucfirst(name)) )then czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka=true; break; end; end; end; local minimim_maksimum; local __min=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.min or math.max; local __max=czy_ma_liczyc_wartosc_maksymalna_pozycji_przyimka and math.max or math.min; for name,value in pairs(tab_dane)do if(not minimim_maksimum)then minimim_maksimum=name;end; if((value[1]=="w")or(value[1]=="we"))then minimim_maksimum=__min(minimim_maksimum,name); else minimim_maksimum=__max(minimim_maksimum,name); end; end; if(minimim_maksimum)then local nazwa_sortowania_temp=tab_dane[minimim_maksimum][2]; nazwa_sortowania_temp=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania_temp); local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania_temp,"^%s*(%S+)",nil,tablica_analizowanie_bez,true); if(ile_wyrazy_specialne>0)then nie_usuwaj_pierwszego_z_kolei_wyrazu=true;end; return nazwa_sortowania_temp,1,nie_usuwaj_pierwszego_z_kolei_wyrazu; else return nazwa_sortowania,0,nie_usuwaj_pierwszego_z_kolei_wyrazu; end; end; local WydzielonaNazwaSortowaniaPoMinusieLubPauzie=function(nazwa_sortowania) local czy_niezmieniono=true; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%-%–][^%-%–]*%s+[%-%–]%s+(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; local nazwa_sortowania_temp=mw.ustring.match(nazwa_sortowania,"^%s*[^%s%:][^%:]*%s*[%:]%s*(%S.-)%s*$"); czy_niezmieniono=czy_niezmieniono and (not nazwa_sortowania_temp); nazwa_sortowania=nazwa_sortowania_temp or nazwa_sortowania; return nazwa_sortowania,(not czy_niezmieniono); end; local WyrazOdWielkiejLiteryNazwySortowania=function(nazwa_sortowania,czy_od_poczatku) local ktoras_duza_litera=mw.ustring.match(nazwa_sortowania,((czy_od_poczatku and "^%s*" or "%s+").."%p*%u")); return ktoras_duza_litera and true or false; end; local function UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera) if(mw.ustring.match(nazwa_sortowania,"^%(%a+[%a%s]*%)"))then return nazwa_sortowania;end; local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_wyrazy_do_usuwania_przez_sortowanie; local tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie=kategorie_dane_modul.tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie; local tablica_dzielenia_elementowa_sortowania=kategorie_dane_modul.tablica_dzielenia_elementowa_sortowania; local tablica_wyrazowa_niealternatyw=kategorie_dane_modul.tablica_wyrazowa_niealternatyw; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; repeat local ile=0;local ile1=0;local ile2=0;local ile3=0; nazwa_sortowania,ile1=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_wyrazowa_niealternatyw,nil,false,true); local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania,ile2=UsuwaneElemementyNazwySortowania(nazwa_sortowania,tablica_kompletne_wyrazy_do_usuwania_przez_sortowanie,tablica_wyrazy_do_usuwania_przez_sortowanie,true,true); local _,_,ile_jest_dla_niedoposzczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_jest_dla_niedoposzczalne>0)then return stara_nazwa_sortowania; end; if(not ktoras_duza_litera)then local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania,ile3=UsuwaneElemementyNazwySortowania(nazwa_sortowania,nil,tablica_dzielenia_elementowa_sortowania,false,true); local _,_,ile_jest_dla_niedoposzczalne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); if(ile_jest_dla_niedoposzczalne>0)then return stara_nazwa_sortowania; end; end; ile=ile1+ile2+ile3; until (ile==0); return nazwa_sortowania; end; function p.NazwaSortowaniaNazwyStrony(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_sortowania=args[1]; local techniczne_modul=require("Module:Techniczne"); nazwa_sortowania=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(nazwa_sortowania); if(not mw.ustring.match(nazwa_sortowania,"/"))then local kategorie_dane_modul=mw.loadData("Module:Kategorie/dane"); local tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania=kategorie_dane_modul.tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania; local tablica_charakterystycznych_przedrostowych=kategorie_dane_modul.tablica_charakterystycznych_przedrostowych; local tablica_specjalne_wyrazy_sortowania=kategorie_dane_modul.tablica_specjalne_wyrazy_sortowania; local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); local _,_,ile_jest_charakterystycznych_przedrostkowych=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_charakterystycznych_przedrostowych); local _,_,ile_jest_specjalne_wyrazy_sortowania=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_specjalne_wyrazy_sortowania); if((ile_jest_na_poczatku>0)and((ile_jest_charakterystycznych_przedrostkowych==0)and(ile_jest_specjalne_wyrazy_sortowania==0)))then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; if(CzyPierwszyWyrazPrzezSortowanie(nazwa_sortowania))then return nazwa_sortowania,true;end; local czy_zmieniono; local stara_nazwa_sortowania=nazwa_sortowania; local nazwa_sortowania_po_minusie_lub_pausie=nazwa_sortowania; local tablica_wyrazy_niedopuszczalne=kategorie_dane_modul.tablica_wyrazy_niedopuszczalne; nazwa_sortowania,czy_zmieniono=WydzielonaNazwaSortowaniaPoMinusieLubPauzie(nazwa_sortowania); if(czy_zmieniono)then local _,_,ile_jest_dla_myslnika0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_myslnika1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_myslnika2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if((ile_jest_dla_myslnika0==0)and(ile_jest_dla_myslnika1>ile_jest_dla_myslnika2))then nazwa_sortowania=stara_nazwa_sortowania; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; else local _,_,ile_jest_na_poczatku=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%s_]*(.-)[%s_]*$",nil,tablica_kompletne_wyrazowy_do_sortowania_bez_analizowania); if(ile_jest_na_poczatku>0)then nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; local ktoras_duza_litera=WyrazOdWielkiejLiteryNazwySortowania(nazwa_sortowania); local tablica_analizowanie_bez=kategorie_dane_modul.tablica_analizowanie_bez; local tablica_analizowanie_specjalne_wyrazy=kategorie_dane_modul.tablica_analizowanie_specjalne_wyrazy; local _,_,ile_wyrazy_specialne=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_bez,true); local _,_,ile_wyrazy_specialne_wyrazy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",nil,tablica_analizowanie_specjalne_wyrazy,true); local nazwa_sortowania_przed_przyimkiem=(czy_zmieniono) and nazwa_sortowania_po_minusie_lub_pausie or nazwa_sortowania; local ile_przyimki;local nie_usuwaj_pierwszego_z_kolei_wyrazu; if((not ktoras_duza_litera)or(ile_wyrazy_specialne>0)or(ile_wyrazy_specialne_wyrazy>0)or(ile_jest_charakterystycznych_przedrostkowych>0))then local stara_nazwa_sortowania=nazwa_sortowania; local tablica_wyrazowa_wybrane_przyimki=kategorie_dane_modul.tablica_wyrazowa_wybrane_przyimki; local _,_,ile_jest_dla_przyimki0=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"^[%p%s]*(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_dla_przyimki1=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); local _,_,ile_jest_przyimki=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); nazwa_sortowania,ile_przyimki,nie_usuwaj_pierwszego_z_kolei_wyrazu=TekstPoPrzyimkuNazwySortowania(nazwa_sortowania); local _,_,ile_jest_dla_przyimki2=ZamienianieWyrazoweSzereguWyrazuKompleksowe(nazwa_sortowania,"%s+(%S+)",tablica_wyrazy_niedopuszczalne); if( (ile_jest_dla_przyimki0==0) and( ((ile_przyimki>0)and(ile_jest_dla_przyimki1-ile_jest_dla_przyimki2>0)) or((ile_przyimki==0)and(ile_jest_dla_przyimki1>0)) ) )then nazwa_sortowania=stara_nazwa_sortowania; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; end; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local nazwa_sortowania_temp=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania_temp))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; ile_przyimki=nil; nie_usuwaj_pierwszego_z_kolei_wyrazu=nil; end; ile=IleJestSpacjiNazwySortowania(nazwa_sortowania); if(ile>0)then local stara_nazwa_sortowania=nazwa_sortowania; if(not ktoras_duza_litera)then local tablica_wyrazowa_alternatyw=kategorie_dane_modul.tablica_wyrazowa_alternatyw; local _,_,ile_znalezione=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"%s+(%S+)",tablica_wyrazowa_alternatyw,nil); if(ile_znalezione>0)then local tablica_wyrazowa_gdy_alternatywy=kategorie_dane_modul.tablica_wyrazowa_gdy_alternatywy; local _,_,ile_specjalne_gdy_alternatywy=ZamienianieWyrazoweSzereguWyrazuKompleksowe(stara_nazwa_sortowania,"^%s*(%S+)",nil,tablica_wyrazowa_gdy_alternatywy); if(ile_specjalne_gdy_alternatywy==0)then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; end; end; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania,ktoras_duza_litera); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; nazwa_sortowania=UsuwanieNazwaSortowanie(nazwa_sortowania); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=nazwa_sortowania_przed_przyimkiem; nazwa_sortowania=(not nie_usuwaj_pierwszego_z_kolei_wyrazu)and UsuwanieKolejnegoPierwszegoWyrazuNazwySortowania(nazwa_sortowania) or nazwa_sortowania; end; end; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; local stara_nazwa_sortowania=nazwa_sortowania; nazwa_sortowania=UsuwanieZnakoweInterpunkcjiWprowadzeniaNazwySortowania(nazwa_sortowania,false); if(CzyZnakiTylkoNiewidzialneInterpukcjiOrazKreskiDolnejNazwySortowania(nazwa_sortowania))then nazwa_sortowania=stara_nazwa_sortowania; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); end; nazwa_sortowania=p.NazwaElementuZWyrazemOdWielkichLiter(nazwa_sortowania); return nazwa_sortowania,true; end; nazwa_sortowania=UsuwanieSekwencjiArtykularnychLubZnakowychNawiasowychZnakoweInterpunkcjiWprowadzeniaNazwySortowaniaStrony(nazwa_sortowania); return nazwa_sortowania,false; end; return p; er5owr1q02vqtvq9pkkfcgljfopw1an Żeglarz jachtowy 0 63741 550421 550272 2026-08-05T09:13:53Z BJPB110 38631 /* Teoria żeglowania */ 550421 wikitext text/x-wiki {{Status|-0%|Hobby}} '''Wstęp''' Ten podręcznik skierowany jest do osób zamierzających uzyskać patent Żeglarza jachtowego - pierwszy stopień w polskim systemie patentów żeglarskich. Pierwszy rozdział - ''Informacje wstępne'' obejmuje praktyczne informacje o patentach żeglarskich, a w szczególności o drodze do uzyskania patentu Żeglarza jachtowego. Następne rozdziały poświęcone są zagadnieniom potrzebnym na egzamin. == Spis treści == === Informacje wstępne === * [[Żeglarz jachtowy/Polskie patenty żeglarskie|Polskie patenty żeglarskie]] * [[Żeglarz jachtowy/Szkolenie|Szkolenie]] * [[Żeglarz jachtowy/Egzamin|Egzamin]] * [[Żeglarz jachtowy/Wniosek o patent|Wniosek o patent]] * [[Żeglarz jachtowy/Kosztorys|Kosztorys]] === Budowa i obsługa jachtu === * [[Żeglarz jachtowy/Kadłub|Kadłub]] * [[Żeglarz jachtowy/Pokład|Pokład]] * [[Żeglarz jachtowy/Kabina|Kabina]] * [[Żeglarz jachtowy/Instalacje|Instalacje]] * [[Żeglarz jachtowy/Ster|Ster]] * [[Żeglarz jachtowy/Silnik|Silnik]] * [[Żeglarz jachtowy/Omasztowanie i olinowanie stałe|Omasztowanie i olinowanie stałe]] * [[Żeglarz jachtowy/Cumowanie i kotwica|Cumowanie i kotwica]] * [[Żeglarz jachtowy/Ożaglowanie|Ożaglowanie]] * [[Żeglarz jachtowy/Olinowanie ruchome|Olinowanie ruchome]] === Teoria żeglowania === * [[Żeglarz jachtowy/Kurs względem wiatru|Kurs względem wiatru]] * [[Żeglarz jachtowy/Wiatr pozorny|Wiatr pozorny]] * [[Żeglarz jachtowy/Działanie żagla, miecza i steru|Działanie żagla, miecza i steru]] * [[Żeglarz jachtowy/Stateczność|Stateczność]] * [[Żeglarz jachtowy/Zawietrzność i nawietrzność|Zawietrzność i nawietrzność]] === Locja === * [[Żeglarz jachtowy/Oznakowanie dróg wodnych|Oznakowanie dróg wodnych]] * [[Żeglarz jachtowy/Oznakowanie statków|Oznakowanie statków]] * [[Żeglarz jachtowy/Sygnały dźwiękowe|Sygnały dźwiękowe]] * [[Żeglarz jachtowy/Szlaki żeglowne|Szlaki żeglowne]] * [[Żeglarz jachtowy/Budowle hydrotechniczne|Budowle hydrotechniczne]] * [[Żeglarz jachtowy/Czytanie wody|Czytanie wody]] * [[Żeglarz jachtowy/Geografia Wielkich Jezior Mazurskich|Geografia Wielkich Jezior Mazurskich]] === Meteorologia === * [[Żeglarz jachtowy/Niże, wyże, wiatr i fronty|Niże, wyże, wiatr i fronty]] * [[Żeglarz jachtowy/Chmury|Chmury]] * [[Żeglarz jachtowy/Wiatr i skala Beauforta|Wiatr i skala Beauforta]] * [[Żeglarz jachtowy/Trudne warunki|Trudne warunki]] * [[Żeglarz jachtowy/Prognoza pogody|Prognoza pogody]] === Bezpieczeństwo === * [[Żeglarz jachtowy/Zasady bezpieczeństwa|Zasady bezpieczeństwa]] * [[Żeglarz jachtowy/Pierwsza pomoc|Pierwsza pomoc]] * [[Żeglarz jachtowy/Pożar|Pożar]] * [[Żeglarz jachtowy/Wywrotka, zatonięcie|Wywrotka, zatonięcie]] * [[Żeglarz jachtowy/Środki ratunkowe|Środki ratunkowe]] * [[Żeglarz jachtowy/Wzywanie pomocy|Wzywanie pomocy]] === Prace bosmańskie === * [[Żeglarz jachtowy/Liny|Liny]] * [[Żeglarz jachtowy/Węzły|Węzły]] * [[Żeglarz jachtowy/Osprzęt|Osprzęt]] === Manewrowanie jachtem typu slup === * [[Żeglarz jachtowy/Podział obowiązków|Podział obowiązków]] * [[Żeglarz jachtowy/Wydawanie komend|Wydawanie komend]] * [[Żeglarz jachtowy/Ostrzenie i odpadanie|Ostrzenie i odpadanie]] * [[Żeglarz jachtowy/Zwroty|Zwroty]] * [[Żeglarz jachtowy/Manewry portowe|Manewry portowe]] * [[Żeglarz jachtowy/Boja|Boja]] * [[Żeglarz jachtowy/Człowiek za burtą|Człowiek za burtą]] * [[Żeglarz jachtowy/Kotwiczenie|Kotwiczenie]] * [[Żeglarz jachtowy/Kładzenie i stawianie masztu|Kładzenie i stawianie masztu]] === Przepisy żeglugowe i obyczaje żeglarskie === * [[Żeglarz jachtowy/Obowiązki kapitana, członka załogi i pasażera|Obowiązki kapitana, członka załogi i pasażera]] * [[Żeglarz jachtowy/Definicje prawne|Definicje prawne]] * [[Żeglarz jachtowy/Prawo drogi - wody śródlądowe|Prawo drogi - wody śródlądowe]] * [[Żeglarz jachtowy/Prawo drogi - morze|Prawo drogi - morze]] * [[Żeglarz jachtowy/Farwater|Farwater]] * [[Żeglarz jachtowy/Bandera|Bandera]] * [[Żeglarz jachtowy/Obyczaje|Obyczaje]] iy2li868x05w1yklr7u3jnt2o4v9pfi Śpiewnik/Kiedy będzie słońce i pogoda 0 63867 550378 2026-08-04T12:20:24Z Ashaio 4702 nowa piosenka 550378 wikitext text/x-wiki {{T|Śpiewnik/NawigacjaOpis}} == Muzyka == '''Autor:''' nieznany (melodia ludowa z poznańskiego) '''Opracowanie:''' Oskar Kolberg (1814–1890) <score raw="1" vorbis="1"> \version "2.19.0" \header{ title = "Jeno będzie słońce i pogoda" poet = "Słowa: autor nieznany (pieśń ludowa)" composer = "Muzyka: autor nieznany (melodia ludowa z poznańskiego)" arranger = "Opracowanie: Oskar Kolberg" tagline = "" } melodia = {<< \new Staff \with { midiInstrument = "fiddle" } { \clef "violin" \key bes \major \time 3/4 \tempo 4 = 120 \autoBeamOff \relative c''{ \repeat volta 2 { bes8 d f4 c | d8 f f g es c | \repeat volta 2 { bes8 d f4 c | es8 d d c << { \voiceOne \stemUp a8[ c] } \new Voice { \voiceTwo \stemDown a8 f } >> \oneVoice | } } } } \addlyrics{ \small { Je -- no bę -- dzie słoń -- ce i po -- go -- da, przyj -- dziesz Ja -- siu do mnie do o -- gro -- da. } } \addlyrics{ \small { Dam ci zie -- la, zie -- la zie -- lo -- ne -- go, na -- pa -- trzysz się ru -- mień -- ca mo -- je -- go. } } >> } \score{ \melodia \layout{} } \score{ \unfoldRepeats \melodia \midi{} } </score> '''Źródło:''' Oskar Kolberg, ''[https://polona.pl/item-view/0d652998-d138-4705-b516-3ced617dc4d1?page=203 Lud : jego zwyczaje, sposób życia, mowa, podania, przysłowia, obrzędy, gusła, zabawy, pieśni, muzyka i tańce. Ser. 9, W. Ks. Poznańskie. Cz. 1]''. Kraków, 1875. S.&nbsp;186 (pieśń 41). == Tekst == '''Autor:''' nieznany (piosenka ludowa z poznańskiego) '''Opracowanie:''' Oskar Kolberg (1814–1890) {{Kolumny|2| <poem> 1. Jeno będzie słońce i pogoda, Przyjdziesz Jasiu do mnie do ogroda (2x). 2. Dam ci ziela, ziela zielonego, Napatrzysz się rumieńca mojego. 3. Cóż mi przyjdzie z twojéj rumienności, Kiedy nie mam do ciebie wolności. 4. Trzebno-ć ojcu, matce do nóg upaść, Ażebym miał oj do ciebie ufność. 5. Jużem-ci ja upadał im do nóg, Jużem-ci ja upadał, upadał, 6. Pani matka chętnie przyzwoliła, A pan ojciec nie dał, da i nie dał. </poem> }} '''Źródło:''' Oskar Kolberg, ''[https://polona.pl/item-view/0d652998-d138-4705-b516-3ced617dc4d1?page=203 Lud : jego zwyczaje, sposób życia, mowa, podania, przysłowia, obrzędy, gusła, zabawy, pieśni, muzyka i tańce. Ser. 9, W. Ks. Poznańskie. Cz. 1]''. Kraków, 1875. S.&nbsp;186 (pieśń 41). == Zobacz też == {{Wikisource|W_słoneczku|W słoneczku}} * ''[https://bibliotekapiosenki.pl/utwory/Kiedy_bedzie_slonce_i_pogoda Kiedy będzie słońce i pogoda]'' w serwisie ''[https://bibliotekapiosenki.pl/ Cyfrowa Biblioteka Polskiej Piosenki]'' * W serwisie ''[http://antologia.oskarkolberg.pl Antologia Pieśni Polskiej]'' [http://oskarkolberg.pl/ Instytutu im. Oskara Kolberga]: ** ''[http://antologia.oskarkolberg.pl/pl-PL/Home/Song?id=9237 Jeno będzie słońce i pogoda]'' ** ''[http://antologia.oskarkolberg.pl/pl-PL/Home/Song?id=7122 Kiedy będzie słońce i pogoda]'' eh9a43c61z4cqlvzx8brj626xarsuyw Śpiewnik/Idź głosie po rosie, daj dziewczynie wiadę 0 63868 550422 2026-08-05T09:19:22Z Ashaio 4702 nowa pieśń 550422 wikitext text/x-wiki {{T|Śpiewnik/NawigacjaOpis}} == Muzyka == '''Autor:''' nieznany (melodia ludowa, krakowiak z sandomierskiego, od Tarłowa, Opatowa) '''Opracowanie:''' Oskar Kolberg (1814–1890) <score raw="1" vorbis="1"> \version "2.19.0" \header{ title = "Idź głosie po rosie" poet = "Słowa: autor nieznany (pieśń ludowa)" composer = "Muzyka: autor nieznany (melodia ludowa)" arranger = "Opracowanie: Oskar Kolberg (1814–1890)" tagline = "" } \score{ << \new Staff \with { midiInstrument = "flute" } { \clef "violin" \key c \major \time 2/4 \tempo 4=120 \autoBeamOff \relative c''{ c8 e4( e8) | f8 e d c16[ b] | a8 c e8. c16 | b16[ gis] e4. | e8 gis4 gis8 | << { \voiceOne \stemUp a16[ b] } \new Voice { \voiceTwo \stemDown a8 } >> \oneVoice \stemNeutral c8 \grace {d8} c8 b16[ gis] | << { \voiceOne \stemUp a16[ gis] a[ c] } \new Voice { \voiceTwo \stemDown \autoBeamOff a8 s16 c16 } >> \oneVoice \stemNeutral e8. c16 | b16[ gis] e4. | \set Staff.midiInstrument = "fiddle" \repeat volta 2{ a8^\markup{ \small {Skrzypce.} } c4 c8 | g8[ a16 b] c4 | b8[ d f8. d16] | e8 c4. | b8[ d f8. d16] | e8 c4 c8 | b8 c4 c8 | e8 c4. | } } } \addlyrics{ \small { Idź gło -- sie po ro -- sie, daj dzie -- wczy -- nie wia -- dę, niech się nie tur _ -- bu -- je, _ _ bo już _ do niej ja -- dę. } } >> \layout{} \midi{} } </score> '''Źródło:''' Oskar Kolberg, ''[https://polona.pl/item-view/b1cb4d39-68c6-400e-b99f-92e8f8a9fd29?page=142 Lud : jego zwyczaje, sposób życia, mowa, podania, przysłowia, obrzędy, gusła, zabawy, pieśni, muzyka i tańce. Ser. 1, Sandomierskie]''. Warszawa, 1865. S.&nbsp;137 (pieśń 166). == Tekst == '''Autor:''' nieznany (pieśń ludowa) '''Opracowanie:''' Oskar Kolberg (1814–1890) {{Kolumny|2| <poem> 1. Oj idź głosie po rosie, Daj dziewczynie wiadę, Niech się nie turbuje, Bo już do niéj jadę. (lub:) Wyleć ptaszku z lasku, Daj Teklusi wiadę, Że w nowym żupanie Już ja do niéj jadę. 2. A moje koniki, Skrócajcie mi drogę! Bo ja bez dziewczyny Wytrzymać nie mogę. 3. Dziewczyna mi w myśli, Dziewczyna mnie czeka, Koniki, koniki! Niech żaden nie zwleka. 4. Nic mnie tu nie bawi, Nic mi tu miłego, Kiedy ja tu nie mam Kochania mojego. 5. Weźże mnie ptaszyno Na skrzydełka swoje Zanieś że mnie, zanieś, Gdzie kochanie moje. </poem> }} '''Źródło:''' Oskar Kolberg, ''[https://polona.pl/item-view/b1cb4d39-68c6-400e-b99f-92e8f8a9fd29?page=142 Lud : jego zwyczaje, sposób życia, mowa, podania, przysłowia, obrzędy, gusła, zabawy, pieśni, muzyka i tańce. Ser. 1, Sandomierskie]''. Warszawa, 1865. S.&nbsp;137–138 (pieśń 166). == Zobacz też == {{Wikiźródła|Idź_głosie_po_rosie|Idź głosie po rosie do Janecka mego}} {{Wikiźródła|Najnowsze_krakowiaki/398|Idź głosie po rosie, daj dziewczynie wiadę}} {{Wikiźródła|Najnowsze_krakowiaki/548|Leć głosie po rosie do kochania mego}} * {{sr|Po nocnej rosie płyń dźwięczny głosie}} * {{sr|Leć głosie po rosie, po niskiej leszczynie}} * {{sr|Leć głosie po rosie, prosto ku traktowi}} * ''[https://bibliotekapiosenki.pl/utwory/Lec_glosie_po_rosie_(Lec_glosie_po_rosie_daj_dziewczynie_zwiade_) Leć głosie po rosie, daj dziewczynie zwiadę]'' w serwisie ''[https://bibliotekapiosenki.pl/ Cyfrowa Biblioteka Polskiej Piosenki]'' * ''[http://antologia.oskarkolberg.pl/pl-PL/Home/Song?id=9018 Oj, idź głosie po rosie]'' w serwisie ''[http://antologia.oskarkolberg.pl Antologia Pieśni Polskiej]'' [http://oskarkolberg.pl/ Instytutu im. Oskara Kolberga] nbi50g1y41i399pf98jk6wzs25rguuv Żeglarz jachtowy/Ożaglowanie 0 63870 550427 2026-08-05T10:32:56Z BJPB110 38631 Utworzono nową stronę „'''Żagle''' stanowią podstawowy napęd statku żaglowego. Wprawiają one go w ruch dzięki sile wiatru. ==Elementy żagla== Żagle składają się z następujących elementów: * Bryty - pojedyncze płaty płótna żaglowego (najczęściej dakronu), z których uszyty jest żagiel; * Remizka - otwór w żaglu z metalowym oczkiem, służący przewleczeniu liny; * Banta - wzmocnienie żagla w pobliżu miejsca jego zamocowania (jeżeli jest to miejsce mocowania…” 550427 wikitext text/x-wiki '''Żagle''' stanowią podstawowy napęd statku żaglowego. Wprawiają one go w ruch dzięki sile wiatru. ==Elementy żagla== Żagle składają się z następujących elementów: * Bryty - pojedyncze płaty płótna żaglowego (najczęściej dakronu), z których uszyty jest żagiel; * Remizka - otwór w żaglu z metalowym oczkiem, służący przewleczeniu liny; * Banta - wzmocnienie żagla w pobliżu miejsca jego zamocowania (jeżeli jest to miejsce mocowania żagla po zrefowaniu, nosi nazwę refbanty); * Lik - krawędź żagla; * Róg żagla. ==Typy żagli== Wyróżniamy różne typy żagli ze względu na ich budowę. ===Rejowe=== Żagiel rejowy rozpięty jest pod poziomą belką - reją. Stosowany głównie na żaglowcach. Nie da się na nim żeglować ostro na wiatr. [[Plik:Rigging-square-sail.svg|thumb]] ===Skośne=== Żagle skośne nadają się do żeglugi ostrzej na wiatr. ====Bermudzkie (Marconi)==== Jest to typ żagla powszechnie spotykany na jachtach żaglowych. Ma trójkątny kształt. Likiem przednim przymocowany do masztu, dolnym do bomu - poziomej belki idącej w tył od żagla, a lik wolny jest krawędzią zejścia. Miejsce mocowania bomu do masztu to pięta, a jego drugi koniec - nok. [[Plik:Rigging-marconi-sail.svg|thumb]] ====Sztaksel==== Sztaksel to trójkątny żagiel trzymający się likiem przednim sztagu, a na przeciwległym mu rogu trzymany szotami. ====Gaflowe==== Żagiel gaflowy jest czworokątny. W odróżnieniu od góry jest teżprzyczepiony do ukośnej belki - gafla, a nie jedynie masztu i bomu. Na niektórych jednostkach nad gaflem (między nim a masztem) jest drugi żagiel - topsel. Miejsce mocowania gafla do masztu to garda, a jego drugi koniec - pik. Żagle takie występują na żaglowcach i niektoʻrych typach jachtów, takich jak DZ. [[Plik:Rigging-gaff-sail.svg|thumb]] ====Rozprzowe==== Żagiel rozprzowy rozpięty jest przy pomocy skośnej belki - rozprza. Może nie mieć bomu. W wariancie z bomem używany jest np. na jachtach typu Optimist. [[Plik:Rigging-sprit-sail.svg|thumb]] ====Łacińskie==== Żagiel łaciński rozpięty jest poniżej rejki idącej od dziobu. Obecnie bardzo rzadko spotykany. [[Plik:Rigging-lateen-sail.svg|thumb]] ====Lugrowe==== Żagiel lugrowy jest mocowany do ukośnej rejki, mocowanej asymetrycznie, i może nie mieć bomu. [[Plik:Rigging-junk-sail.svg|thumb]] ===Żagle sztormowe=== Żagle sztormowe służą do żeglugi w bardzo trudnych warunkach. Foka zastępuje fok sztormowy, a grota -trajsel. Są małe i bardzo wytrzymałe. ===Rzadko spotykane rodzaje żagli=== Występują też inne, eksperymentalne lub egzotyczne typy żagli, jak skrzydła, rotory Flettnera, kleszcze kraba czy żagle dżonkowe. ==Nazwy żagli== Każdy żagiel jachtu ma swoją własną nazwę: * Grot to jedyny żagiel jachtu jednożaglowego, a na wielożaglowych - główny; * Fok to przedni żagiel; * Bezan to żagiel na samym tyle; * Jeżeli występuje więcej sztaksli na dziobie, to fokiem jest ten tylni, a następne to kliwer i latacz. ==Rodzaje ożaglowania== Ze względu na zestaw posiadanych żagli wyróżniamy typy ożaglowania jachtów żaglowych. * Ket posiada jedynie 1 żagiel skośny (nie sztaksel) (grot). Przykładem ketu jest jacht klasy Optimist. [[Plik:Rigging-catboat-berm.svg|thumb]] * Slup posiada żagiel skośny (grot) i sztaksel (fok) przed nim. Jest to typowy układ na jachtach turystycznych.[[Plik:Rigging-sloop-berm.svg|thumb]] * Jol przypomina slup, ale ma dodatkowy mały maszt z żaglem skośnym (bezanem) na samej rufie, za urządzeniem sterowym. Są to głównie jachty wyprawowe. [[Plik:Rigging-yawl-berm.svg|thumb]] * Kecz jest bardzo podobny do jolu, tylko posiada większy bezan znajdujący się przed sterem. Taki układ występuje w niektórych typach jachtów śródlądowych, jak DZ czy Trener. 079pp3twejvjb36kzbxrxk4j9zuxp6e Śpiewnik/Świeci miesiąc, świeci 0 63872 550432 2026-08-05T11:30:23Z Ashaio 4702 nowa pieśń ludowa 550432 wikitext text/x-wiki {{T|Śpiewnik/NawigacjaOpis}} == Muzyka == '''Autor:''' nieznany, melodia ludowa, krakowiak z sandomierskiego, od Tarłowa, Opatowa '''Opracowanie:''' Oskar Kolberg (1814–1890) <score raw="1" vorbis="1"> \version "2.19.0" \header{ title = "Świeci miesiąc, świeci" poet = "Słowa: autor nieznany (pieśń ludowa)" composer = "Muzyka: autor nieznany (melodia ludowa)" arranger = "Opracowanie: Oskar Kolberg (1814–1890)" tagline = "" } \score{ << \new Staff \with { midiInstrument = "flute" } { \clef "violin" \key c \major \time 2/4 \tempo 4=120 \autoBeamOff \relative c''{ c8 e4( e8) | f8 e d c16[ b] | a8 c e8. c16 | b16[ gis] e4. | e8 gis4 gis8 | << { \voiceOne \stemUp a16[ b] } \new Voice { \voiceTwo \stemDown a8 } >> \oneVoice \stemNeutral c8 \grace {d8} c8 b16[ gis] | << { \voiceOne \stemUp a16[ gis] a[ c] } \new Voice { \voiceTwo \stemDown \autoBeamOff a8 s16 c16 } >> \oneVoice \stemNeutral e8. c16 | b16[ gis] e4. | \set Staff.midiInstrument = "fiddle" \repeat volta 2{ a8^\markup{ \small {Skrzypce.} } c4 c8 | g8[ a16 b] c4 | b8[ d f8. d16] | e8 c4. | b8[ d f8. d16] | e8 c4 c8 | b8 c4 c8 | e8 c4. | } } } \addlyrics{ \small { Świe -- ci mie -- siąc, świe -- ci O -- ko -- ło pół -- no -- cy, Cie -- bie prze -- stać _ kochać _ _ Nie _ _ jest w_mo -- jej mo -- cy. } } >> \layout{} \midi{} } </score> '''Źródło:''' Oskar Kolberg, ''[https://polona.pl/item-view/b1cb4d39-68c6-400e-b99f-92e8f8a9fd29?page=142 Lud : jego zwyczaje, sposób życia, mowa, podania, przysłowia, obrzędy, gusła, zabawy, pieśni, muzyka i tańce. Ser. 1, Sandomierskie]''. Warszawa, 1865. S.&nbsp;137 (pieśń 166). == Tekst == '''Autor:''' nieznany (pieśń ludowa) '''Opracowanie:''' Oskar Kolberg (1814–1890) {{Kolumny|2| <poem> 1. Świeci miesiąc, świeci Około północy, Ciebie przestać kochać Nie jest w mojej mocy. 2. Jednegom chłopczynę Na świecie kochała, Nie przyjdzie ten moment, Bym go zapomniała. 3. Świeci miesiąc, świeci Z północy do rana, Nie przyjdzie zapomnieć Mojego kochania. 4. Leć głosie po rosie Do kochania mego, Powiedz mu ode mnie, Że tęsknię do niego. 5. Tam się pochmurało, Gdzie zaświtać miało, To moje kochanie Z wiatrem uleciało. 6. Z wiatrem uleciało, Popłynęło z wodą, A moje z łez oczy Obeschnąć nie mogą. </poem> }} '''Źródło:''' Oskar Kolberg, ''[https://polona.pl/item-view/b1cb4d39-68c6-400e-b99f-92e8f8a9fd29?page=142 Lud : jego zwyczaje, sposób życia, mowa, podania, przysłowia, obrzędy, gusła, zabawy, pieśni, muzyka i tańce. Ser. 1, Sandomierskie]''. Warszawa, 1865. S.&nbsp;138 (pieśń 166, wariant 2). d8d1wghrsy14q48okkvdrhxqnxaqtke