Dyskusja modułu:categoriesIndexing
znaki unicode w pierwszej literze[edytuj]
Chciałbym zaproponować zamianę poniższego kodu w funkcji "stripAccents":
local result = '' for codepoint in mw.ustring.gcodepoint( text ) do local unstripped = mw.ustring.char(codepoint) local stripped = indexing[ unstripped ] if stripped == nil then stripped = unstripped end result = result .. stripped end
na następujący:
local result, poczatek = '', true for codepoint in mw.ustring.gcodepoint( text ) do local unstripped = mw.ustring.char(codepoint) local stripped = indexing[ unstripped ] if (stripped == nil) or (poczatek and (string.sub(stripped, -1) == "+")) then stripped = unstripped poczatek = false end result = result .. stripped end
Służyłby on do wykrywania znaków unicode, które nie są diakrytykami, tzn. mają swoje określone miejsce w alfabecie, a więc tworzą osobny nagłówek w kategoriach. Na myśli mam przypadek hiszpańskiej spółgłoski „ñ”, aczkolwiek można to samo przenieść na polskie „ć”, „ś”, „ź”, itp. W chwili obecnej nie da się tego zrobić, dopisując kolejne litery do listy zamian, albowiem wszystkie wyrazy zaczynające się na „ñ” będą źle kategoryzowane (pod nagłówkiem „N”). Proponowany kod sprawdza najpierw, czy wykryta została pierwsza litera danego wyrazu, a potem bada obecność znaku kontrolnego (w tym przykładzie jest to „+”). Tak więc po dopisaniu:
local hiszpanski = { … N = "N1", n = "n1", ["Ñ"] = "N2+", ["ñ"] = "n2+" }
skrypt powiniem umiejscawiać „nieve” i „ñu” pod osobnym nagłówkiem, a następne wyrazy w podanej kolejności: bandera, baño, batalla (obecnie baño trafia na sam koniec, po *baz-).
Jedna końcowa uwaga: zauważyłem, że MediaWiki indeksuje najpierw cyfry 0-9, a dopiero potem litery (kolejność ASCII?); dlatego należy dopisać literę bazową „n” w powyższym przykładzie. W przeciwnym razie wyraz „baño” trafiłby przed „bandera”. Peter Bowman (dyskusja) 20:04, 24 mar 2013 (CET)
- Jasne, bardzo dobry pomysł, nie mam nic przeciwko zmianom (: Alkamid (dyskusja) 20:36, 24 mar 2013 (CET)
- Zrobione. Uzupełniono też wietnamski, jednak wypadałoby go jeszcze raz sprawdzić (znak ơ powinien chyba być pod o2, a jest teraz pod o1). Są jakieś zastrzeżenia, żeby dodać polski do skryptu? Peter Bowman (dyskusja) 14:22, 25 mar 2013 (CET)
- Czy categoriesIndexing nie powinno być też uwzględnione w kategoryzowaniu a tergo (w {{nagłówek języka}} lub bezpośrednio w Module:a tergo) oraz w wywołaniach adresów kategorii w szablonach {{zaczynające się od}} i {{kończące się na}}? Liteman (dyskusja) 14:31, 25 mar 2013 (CET)
- Zrobione. Uzupełniono też wietnamski, jednak wypadałoby go jeszcze raz sprawdzić (znak ơ powinien chyba być pod o2, a jest teraz pod o1). Są jakieś zastrzeżenia, żeby dodać polski do skryptu? Peter Bowman (dyskusja) 14:22, 25 mar 2013 (CET)
W chwili obecnej rozpoznawanie znaków diakrytycznych działa tak:
- Jeżeli znak nie tworzy nagłówka (nie jest osobną literą w danym alfabecie), wpisujemy odpowiednik bez tego znaku: ["á"] = "a"
- Jeżeli znak tworzy nagłówek, ale nie jest stricte znakiem diakrytycznym (np. polskie c i ć to dwie różne litery): c = "c1", ["ć"] = "c2+"
- Jeżeli znak tworzy nagłówek i jest znakiem diakrytycznym; np. w wietnamskim dla grupy znaków ă:
a = "a0", ["ă"] = "a1+",
["ắ"] = "a1+", ["ằ"] = "a1+", … -- kombinacje znaku "ă" z różnymi akcentami
["ắ+"] = "ă", ["ằ+"] = "ă", …
Peter Bowman (dyskusja) 13:39, 27 mar 2013 (CET)
problemy[edytuj]
Moduł wycofano w 2013 (Specjalna:Diff/3221713) z powodu ograniczeń MW: Dyskusja:a perro flaco, todas son pulgas oraz Dyskusja kategorii:polski (indeks a tergo)#Znaki diakrytyczne. Peter Bowman (dyskusja) 22:32, 14 wrz 2019 (CEST)