Ispell i autodetekcja języka.

Paweł Wilk siefca w pl.QMAIL.ORG
Pią, 19 Lis 1999, 19:29:43 CET


+ ----- ---  --   -      -      -
| MSG:   <Pine.LNX.4.10.9911190722110.21873-100000 w rudy.mif.pg.gda.pl> [2,7KB]
| Autor: Tomasz Kłoczko z Polski (kloczek)
| Temat: Re: Ispell i autodetekcja języka.
| Czas:  piątek, 19 listopad 1999 - 07:39:22 (+0100)

> Nie ma co wymyślać młotka. Paweł .. wszystkie regóły doboru słownika można
> wręcz żywcem ściągnąć z LOCALE co oznacza, że jeżeli np. jest pl to już
> nie ma szukania w drugą strę do pl_PL tylko od razu C/POSIX .. finito.

Spoko, mniej roboty, właśnie nad tym myślałem. :-)

> Ustawienai LOACE też można wykorzystać do tego żeby dowiedzieć się co jest
> word separatorem a co jeszcze znakiem wchodzacym w skład znaku i tu bez
> prawidłowo ustawionego LOCALE nie pójdzie to czyli przy pl nie ma co sie
> wysilać tylko tzreba od razu zalecać pl_PL gdyż tylko przy tych
> ustawieniach zostaną odnalezione odpwiednie pliki LC_*.

Okidoki, ale word separatory i inne często są zależne od wydawcy
słownika, jak on to sobie zdefiniuje w [język].aff Jest owszem taka
możliwość, żeby to robić zależnie od LOCALE, lecz będzie to
przesłanianiem ustawień wprowadzonych przez zdefiniowany dla danego
języka aff. Na przykład chłopaki od ispella, z którymi wymieniam słówka
(i od których jest u nas baza dla języka polskiego) mają trochę inny
polish.aff niż nasz, a to ze względu na słownik PLDP (dawna nazwa SUX) z
repo, w którym są pozbierane wszelkie słówka zawierające _ czy -.
Są one często nazwami funkcji czy najczęstszych poleceń na jakie można
się natknąć pracując (redagując tekst) dotyczący systemu Linux i stąd ten
odbieg od normy. :) Słownik PLD chodzi ze standardowym .aff ale PLDP już
wymaga paru rozszerzeń bo  postawiłem sobie za zadanie mieć 0 błędów,
nawet gdy piszę coś bardzo technicznego i używam słówek, które są
nazwami funkcji, protokołów, poleceń, makr, domen, spolszczeniami, etc.
Muszę przyznać, że się cieszę bo ostatnio mi się trafiły 3 manuale,
w których ispell nie zauważył ani jednego nieznanegop słówka. :)

> Kolejna sprawa to to, że cały schemat to nie tylko pliki z wplecionymi
> nazwami języków. To takze inne jeszcze dodatkowe słowniki które będą też
> mogły być -> nie jeden plik tylko może i kilka -> nie plik z wplecioną
> nazwą tylko katalog którego nazwa jest taka jak ustawienia oznaczajace
> wybór słownika.

Aha, to by było cool, można by tam wrzucać wszelkie dodatkowe słowniki,
czy jakieś dziwactwa... aber ein słownik wymaga ein kompilacja, gdy
chcemy do niego dołączyć fachowy, więc na początek proponuję katalog
właśnie ale z tylko jednym słownikiem, już w formie "wynikowej", gotowym
do pracy. No i oczywiście plik .aff (jeden dla wszelkich słowników w
danym dialekcie) też by tam się mógł znaleźć. Czyli na początek dwa
pliki: główny słownik (dictionary) i plik z definicjami affixów
(affixes.aff).

Aha, nasunęło mi się coś jeszcze na myśl. Ispell domyślnie tworzy słownik
osobisty w domowym katalogu użytkownika, z którym ma do czynienia, gdy
ten chce dodawać słówka. To też trzeba będzie jakoś zmienić, żeby nie
było konfliktów słówek jak mamy do czynienia z poliglotą. :) Proponuję
podkatalog ~/.ispell i wewnątrz słowniki osobiste.. ?

> Myślę, że co do wyboru miejsca gdzie to ma być wstawiane, a także nazw
> zemiennych to także możnaby żywcem ciągnąć z LOCALE czyli zmienna
> oznaczajaca wybór języka słowników to mogłoby być wręcz to co jest w
> LOCALE czyli kolejność yła by taka: $LANGUAGES -> $LC_ALL -> $LANG i
> dodatkowa zmienna $LC_DICTIONARY lub LC_DICT czyli zachowywałoby się to
> dokładnie tak jak przy LC_MESSAGES. Słowniki mofłby być w
> <localedir>/<lang>/LC_DICT.
> 
> IMHO właśnie w tym kierunku moznaby rozwinbąć ispella ponieważ ten
> kierunek jest jak najbardzeij przystajacy do już istniejacychopisów
> zasobów narodowych.

Zaczynam. :) Trochę będzie dłubania bo last modify: 1995 :) Program ma
sztywnego Makefile (na razie nie ruszam), ale jakby co to zachowywać
pierwotne reakcje? Tzn. zostawiać ten kod odpowiedzialny za dobór
słownika po staremu, czy odświeżyć tak, żeby było tylko zgodne z LOCALES?
Osobiście to jestem za tą drugą opcją (i tak zawsze domyślnie jest
angielski i to jakiś przeterminowany:).

> > Aha i jeszcze coś, może by tak mana spaczować, żeby LESSCHARSET mu się
> > przeestawiał na LATIN1 jak wykryje nasz ojczysty język (czy inne
> > korzystające z tego ustawienia)?
> 
> Tutaj trzebaby przerobić lessa żeby nie trzeba było używać -latin1 czy
> -ascii (najlepiej byłoby wogóle wywalić te przełaczniki i obsługę
> LESSCHARSET) czy innych takich tylko żeby z ustawień LOCALE i z bazy
> LOCALE wyciągał sobie informacje na temat valid chars i bierzącego
> charseru.

Jak nikt się nie weźmie to zacznę to robić za 1,8 tygodnia (pierwsze
koło z algebry:)

-- 
   _____________ ___  ___   __  _             .. .  .. ... . . .. . .
  (                                                  .   . ..  ... ..
.__) i E f c A   :: Paweł Wilk <siewca w pld.org.pl>     .  . . .. . ..
                 :  Polska Dystrybucja GNU/Linux       .. .  .  .  ..
    fingerprint  :  A5B1 52BC D496 D08B 0E1F B6B0 86D8 52FE 0211 9484 



Więcej informacji o liście dyskusyjnej pld-devel-pl