Privacy Policy Cookie Policy Terms and Conditions Dyskusja:Funkcja haszująca - Wikipedia, wolna encyklopedia

Dyskusja:Funkcja haszująca

Z Wikipedii

Spis treści

[edytuj] Nazewnictwo - błagam, stop!

Panowie (i panie?), litości! Mamy tu do czynienia z artykułem, który (poza przeoranym przeze mnie wstępem, który też nie jest przecież wybitny) jest mało czytelny, kiepsko zilustrowany, i bardzo fragmentaryczny (nie omawia w rozsądnym zakresie ani zastosowań i ataków kryptograficznych, ani nie wyjaśnia wykorzystania przy budowaniu i adresowaniu struktur danych, ani nie opisuje całej masy innych rzeczy).

W świetle tego, trwające miesiącami debaty dotyczące nazewnictwa na tej stronie dyskusji (która jest już ni chybi dłuższa, niż sam artykuł!) jest w najlepszym wypadku bezowocne i niestosowne, a w najgorszym, jest przykładem destruktywnego trollowania.

W obecnej postaci, wobec braku konsensusu, powinniśmy zostawić artykuł pod obecną nazwą (bo tak! bo tak już jest, bo nie ma porozumienia, będzie czas na debaty po jego porządnym zredagowaniu), zostawić redir z funkcji skrótu, opisać tutaj starannie wspólne cechy tego, co niektórzy rozdzielają na funkcje skrótu i haszujące (bo są to zjawiska bardzo blisko ze sobą powiązane, jakbyśmy nie wyolbrzymiali różnic), opisać wszystkie wspominane tu zastosowania, i w najlepszym wypadku powinniśmy dopisać gdzieś tam na końcu mały rozdział pt. kontrowersje wokół nazewnictwa (albo po prostu konwencje nazewnictwa). A potem można ze spokojnym sumieniem sobie rozważać to i tamto. -- (lcamtuf) 21:07, 6 wrz 2006 (CEST)

[edytuj] Starsze dyskusje...

W książce dotyczącej kryptografii:

rozdział poświęcony wyłącznie funkcjom hashującym ma 13 stron. Autor stosuje wyłącznie określenie funkcja hashująca i to wiele razy.

Teraz trochę statystyki z Google. W polskiej przestrzeni stron następujące hasła występują:

Powyższe jest bardzo ciekawe. A może by tak staranniej pisać, zamiast bezmyślnie klepać Ctrl-c Ctrl-v? 213.173.202.158 01:14, 25 lip 2006 (CEST)

Efekt działania funkcji hashującej to hash (hasz). Znowu statystki z Google:

  • hasz – 14,4 tys. - tu spore zaskoczenie, ale większość tych stron odnosi się do haszyszu, a nie do efektu obliczeń funkcji skrótu,
  • hash – 22,8 tys. - część stron odnosi się do klawisza #, ale sporo do skrótu.

Podsumowując należy zastosować nazwy hash i funkcja hashująca w Wikipedii oraz skrót i funkcja skrótu. Określenie hasz i funkcja haszująca jest najmniej popularne i można zrobić dla niego redirecty oraz podać jako alternatywne określenie. Jednak w tekście raczej powinniśmy go unikać, bo wprowadzi czytelnika w błąd. Superborsuk 20:01, 28 cze 2005 (CEST)

Fragment przedmowy z książki:

Dlatego odrzuciliśmy na przykład termin funkcja skrótu jako tłumaczenie hashing function. Hashing function nie zawsze bowiem skraca, a jej zasadniczą rolą jest specyficzne mieszanie wartości. Dlatego pozostaliśmy przy terminie funkcja hashująca używaną przez wrocławskich studentów.
Strona XX

Superborsuk 20:16, 28 cze 2005 (CEST)

Z tego, co napisałeś wynika raczej, że powinniśmy stosować określenie „funkcja haszująca” niż „funkcja hashująca”, ma ono wyraźną przewagę w Google, a to, że w jednej książce używa się „f. hashująca” jeszcze nic nie wynika, są też takie pozycje, w których stosuje się „f. haszująca”. Poza tym „funkcja hashująca” to ewidentny potworek językowy – ani po polsku, ani po angielsku; jakie podejście do takich hybryd mają językoznawcy – wiadomo (np. [1]). Postuluję powrócić do „funkcja haszująca”. --Filemon 00:51, 29 cze 2005 (CEST)

Jeżeli szanowny kolega zna przykłady książek stosujących określenie "funkcja haszująca", to proszę je podać w bibliografii. Określenie "takie pozycje" nie jest zbyt konkretne. W Google najpopularniejsze jest określenie funkcja hash. Możemy uznać je za najlepsze, ale funkcja hashująca jest tu pewnym kompromisem. Znajduje się w pół drogi pomiędzy polszczyzną i angielszczyzną. SuperborsukΩ 00:34, 15 lip 2005 (CEST) PS. Czy jakiś językoznawca ma choć blade pojęcie, co robi funkcja hashująca?


Proszę bardzo:

To znalazłem teraz w internecie, widziałem jeszcze w innej książce, ale nie mam do niej teraz dostępu. W każdym razie widzisz, że także w literaturze nie ma zgody i chyba jednak przeważa wersja z „sz”. Co do Twojego stwierdzenia „W Google najpopularniejsze jest określenie funkcja hash” to ewidentna nieprawda, bo link, który podałeś prowadzi do stron na których gdziekolwiek osobno występują wyrazy „funkcja” oraz „hash”, natomiast fraza „funkcja hash” pojawia się w Internecie zaledwie 39 razy [2]. Z kolei językoznawca absolutnie nie musi wiedzieć czym jest funkcja haszująca, chodzi o zasady, takie słówka „w pół drogi pomiędzy polszczyzną i angielszczyzną” są zdecydowanie niemile widziane. Albo po polsku, albo nie. Filemon 01:20, 15 lip 2005 (CEST)

Ciekawe co językoznawcy powiedzą na to, że hasz się niektórym osobom kojarzy z niezłym odlotem. Na serio, to zakładam, że szanowny kolega czytał te książki i widział w nich określenie "funkcja hashująca". Jeżeli tak jest, to powinniśmy zastosować procentowy udział różnych wersji terminu, aby odpowiadał procentom w literaturze. Część funkcji hashujących zmieniam w haszujące.

SuperborsukΩ 17:37, 15 lip 2005 (CEST)

No już lepiej, ale tak właściwie to chyba wymyślasz jakieś nowe reguły Wikipedii. Zalecenia edycyjne nic nie mówią o żadnym procentowym udziale różnych wersji. Filemon 13:33, 16 lip 2005 (CEST)

Podstawową zasadą Wikipedii jest konsensus i właśnie w dążeniu do niego zaproponowałem podział procentowy zbliżony do liczby pozycji książkowych stosujących określone określenie. SuperborsukΩ 14:11, 16 lip 2005 (CEST)

W takim razie ja to przyjmuję, ale możesz być pewny, że za jakiś czas dopiszę jeszcze inne książki z „haszującą”. Filemon 14:21, 16 lip 2005 (CEST)

[edytuj] zdecydowanie funkcja skrótu

Widzę, że istnieje spore nieporozumienie odnośnie polskiego słownictwa informatycznego (tu w szczególności kryptologicznego). Zdecydowanie nie należy używać określenia "funkcja hashująca" czy "haszująca" do angielskiego terminu hash function. Polskim odpowiednikiem jest funkcja skrótu. Przedstawione powyżej argumenty są dość słabe:

  • To, że jakiś autor albo tłumacz stosuje w swojej lub tłumaczonej książce określenie "funkcji haszującej" nie oznacza automatycznie, że jest to określenie prawidłowe. Autorzy i tłumacze popełniają błędy, redakcja wydawnictwa nie zawsze jest w stanie wyłapać błędy, w społeczności informatycznej istnieje wiele niepoprawnych, ukutych zwrotów funkcjonujących tylko dlatego, że ich użytkownicy gdzieś je zasłyszeli, przeczytali i nie sprawdzili ich poprawności.
  • Google nie jest autorytatywnym źródłem informacji (z całym szacunkiem dla możliwości technicznych Google). Na zapytanie "poszłem" daje około 40000 stron, na zapytanie autentykacja daje około 24000 stron.
  • Co do fragmentu przedmowy z książki. Zdanie "Hashing function nie zawsze bowiem skraca" świadczy co najmniej o nie rozumieniu zagadnienia przez autora. Dalej, czy to, że terminu używają studenci, świadczy automatycznie o jego poprawności? Chyba nie.

Teraz argumentacja za funkcją skrótu:

  • Wielu autorów książek używa tego terminu.
  • Jak już zostało pokazane, Google również zwraca wiele wyników dla funkcji skrótu.
  • Wielu studentów używa tego określenia.

Powyższe trzy punkty to oczywiście żartobliwa lista argumentów, choć też zgodna z prawdą. Natomiast poważnym argumentem za funkcją skrótu jest:

  • Polska Norma PN-ISO/IEC 10118. Krótki opis norm na stronie Polskiego Komitetu Normalizacyjnego. Termin funkcji skrótu jest ustandaryzowanym terminem w dziedzinie ochrony informacji i jako taki jest jedynym poprawnym. Określenie "funkcja hashująca" jest terminem nieakceptowanym. Podobny problem występuje w przypadku terminu authentication znaczącego uwierzytelnianie, nie zaś nagminnie i niepoprawnie używane "autentykacja" (ale to już temat na inną dyskusję). Proponuję zajrzeć też do Słowniczka terminów związanych z kryptologią i ochroną informacji. Polskie Normy w obszarze nomenklatury informatycznej są tworzone przez specjalistów w danej dziedzinie.

Należy dodatkowo zaznaczyć jedną rzecz: angielski termin hash function ma dwojakie znaczenie, które na język polski tłumaczy się jako funkcja skrótu oraz funkcja mieszająca. To są dwie różne rzeczy. Pierwsza z nich należy do dziedziny ochrony informacji (kryptologii w szczególności), druga do dziedziny algorytmiki i struktur danych. W polskiej wikipedii funkcjonuje dotychczas tylko hasło tablicy mieszającej, która jest strukturą danych. Funkcja mieszająca (która w polskiej wikipedii nie występuje) jest algorytmem "obróbki" tej tablicy. Mimo, że obie w języku angielskim mają to samo określenie - hash function, ich działanie i wynik nie polegają na tym samym. Są to różne rzeczy. Dlatego proponuję, co następuje (mam nadzieję, że mechanizm wikipedii to umożliwia):

  • stworzenie przekierowań dla haseł "hash function" "hashing function" "funkcja haszująca" "funkcja hashująca" do strony typu disambig dla haseł "funkcja skrótu" i "funkcja mieszająca" (lub "tablica mieszająca" dla ułatwienia na początku)
  • odpowiednio poprawić treść hasła "funkcja skrótu" z zaznaczeniem, że termin "funkcja haszująca" jest określeniem nieakceptowanym i dodać linki do PN i słowniczka
  • wyszukać hasła linkujące do "funkcji haszującej" itp. i odpowiednio je poprawić

I na zakończenie. Po obejrzeniu tego hasła postanowiłem się zarejestrować w wikipedii i wziąć udział w dyskusji, ponieważ to hasło wymaga poprawienia. I należałoby je poprawić zgodnie z obowiązującymi standardami, bo wikipedia powinna być zdaje się nie tylko szerokim źródłem wiedzy, ale i merytorycznym źródłem wiedzy.

--nerfin 03:14, 3 sty 2006 (CET)

Witam nowego wikipedystę i na początku chcę podziękować za tak wnikliwą analizę problemu. Spór dotyczący powyższej funkcji, bierze się głównie z faktu, że Wikipedię tworzą bardzo różne osoby. Nie możemy odrzucić danego słowa na oznaczenie tego pojęcia, jeżeli są środowiska, w którym jest ono popularne. Na pewno warto w artykule umieścić informację o nazewnictwie zgodnym z PN, ale moim zdaniem w artykule powinniśmy się posługiwać wszystkimi popularnymi formami terminu. Google jest o tyle interesujące, że daje nam możliwość stworzenia pewnej statystyki, jednak jej interpretacja może być dwuznaczna. SuperborsukΩ 14:02, 18 sty 2006 (CET)

[edytuj] Czym się różni funkcja hashująca od funkcji skrótu

Też specjalnie założyłem sobie konto na wikipedii żeby wziąć udział w tej dyskusji. Zasadniczym problemem nie jest pytanie który z terminów - funkcja hashująca, czy skrótu jest poprawny. Poprawne są oba, tyle że dotyczą dość różnych pojęć. Pozwolę sobie to wyjaśnić.

  • Obie funkcje mają wspólnego tyle, że z długiej wiadomości generują wiadomość krótką.
  • Funkcja hashująca, po polsku nazywana funkcją mieszającą, jest podstawowym elementem algorytmu tablic hashujących. Wobec tego wymagane jest by dawała się szybko policzyć i wartości przez nią zwracane były z równym prawdopodobieństwem rozrzucone po pewnym zakresie. Ponadto zazwyczaj wartość funkcji mieszającej mieści się w góra 32, no może 64 bitach - większe zakresy nie mają sensu, bo gdzie zmieścić taką tablicę?
  • Funkcja skrótu, od angielskiego message digest function, służy zaś do weryfikacji oryginalności pewnych danych. Wobec tego musi spełniać pewne dodatkowe warunki: musi być nieodwracalna, niemożliwe (z odpowiednim prawdopodobieństwem) powinno być wygenerowanie wiadomości o zadanym skrócie, nawet mając oryginalną wiadomość (tzn. poprzez jej zmienianie), oraz wygenerowanie równolegle 2 wiadomości o identycznych skrótach (tzn. mamy oryginał i zmienioną wiadomość i staramy się je obydwie na raz zmodyfikować tak by dały ten sam skrót). Funkcja skrótu nie musi liczyć się tak szybko jak funkcja mieszająca i może (a nawet powinna) zwracać wartości dłuższe niż funkcje mieszające. Np. MD5 tworzy skrót 128 bitowy i jest to chyba najkrótszy skrót pośród aktualnie używanych algorytmów.

Owszem, zdarza się używanie funkcji skrótu jak mieszających, zazwyczaj po dodatkowym skróceniu ich wyniku, ale za użycie funkcji mieszającej jako skrótu powinno się projektanta systemy rozstrzelać. Można wobec tego przyjąć, że wymagania na funkcję skrótu są silniejsze niż na funkcję mieszającą. Inną pokrewną rodziną funkcji są sumy kontrolne używane głównie w telekomunikacji, ale to temat na kolejny komentarz.

Mazurek


Powyższe zgodne z prawdą, ale ja doszedłbym do zgoła innych wniosków. Otóż - krótko mówiąc - należałoby utworzyć dwa artykuły, o funkcji mieszającej oraz o funkcji skrótu. "Poprawne są oba, tyle że dotyczą dość różnych pojęć." - i właśnie ponieważ pojęcia są różne, moim zdaniem trzeba zrobić odrębne artykuły.

[edytuj] Dyskusje o terminologii a czytelność artykułu

Panowie, prowadzicie fascynujące dyskusje o terminologii, ale rzecz, która tutaj zdecydowanie wszystkim umknęła, to to, że wstęp do artykułu był wyjątkowo mało czytelny dla osób postronnych, a poza tym w wielu kwestiach po prostu niezbyt ścisły (np. definicja zawarta w pierwszym zdaniu była de facto definicją DOWOLNEJ funkcji matematycznej, bez wskazania na to, co wyróżnia te funkcje, o których piszemy).

Dokonałem dość odważnych edycji tej pierwszej części, mam nadzieję, że uczynią artykuł przystępniejszym dla zwykłych śmiertelników, nawet jeśli odbywa się to kosztem przestrzegania arkanów terminologii. Natomiast przyznam, że nie miałem siły walczyć z dalszymi sekcjami - i faktem, że nie omawiają być może najistotniejszej grupy ataków związanych z kryptografią (choćby cała afera z kolizjami MD5), nie ma wzmianki o birthday paradox, itp....

Serio, warto popracować najpierw nad treścią, potem nad tym, czy powinno być "haszujące", "hashujące", "skrótu", czy "zielone-w-kropki". --Lcamtuf 19:17, 24 lip 2006 (CEST)

Jak dla mnie wstęp jest OK, ale brakuje kolorowych obrazków. Czy masz jakieś propozycje, co warto naszkicować, aby ułatwić czytelnikowi zrozumienie idei funkcji haszującej? Dalszą część rzeczywiście należy dopracować. Wydaje mi się, że powinniśmy skupić się na dwóch zagadnieniach – funkcji skrótu w kryptografii oraz w strukturach danych i chyba trzeba to napisać od nowa. SuperborsukΩ 00:25, 25 lip 2006 (CEST)


[edytuj] Funkcja skrótu?

--Migol 00:18, 4 wrz 2006 (CEST)

Dokładając moje trzy grosze do dyskusji chciałbym powiedzieć, że moim zdaniem termin funkcja skrótu nie oddaje istoty tejże funkcji. Uważam, iż najbardziej poprawną nazwą jest funkcja hashująca, gdyż termin hasz jest najbardziej związany z narkotykami.

Co do unormowań PN, to często są one przestarzałe i pomimo ich istnienie ignorowane. Jeśli mam być szczery, to dopiero tutaj się spotkałem z takim określeniem.

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu