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. Kochanowskiego 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. Kochanowskiego 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. 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. 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. 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. 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. 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. 138 (pieśń 166, wariant 2).
d8d1wghrsy14q48okkvdrhxqnxaqtke