serbiangnome-lista
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Serbiangnome-lista] Recnik 1.0RC1


From: Goran Rakić
Subject: [Serbiangnome-lista] Recnik 1.0RC1
Date: Wed, 23 Apr 2003 22:04:44 +0200
User-agent: KMail/1.5

http://www.devbase.net/recnik/recnik.tar.gz

prenosim datoteku PROCITAJ.TXT:

Napokon sam završio onaj moj rečnik.

Program je jednostavan koliko to moje znanje programiranja,
koje nije baš veliko, dozvoljava. Najviše se bojim da imam
neko curenje memorije, ali se nadam da sam ipak otklonio
sve probleme.

Druga mana je što neko mora da napravi configure skriptu, jer
ja to ne znam, koja bi kreirala Makefile, međutim i ovako je
funkcionalno.

Za ispravno linkovanje je potrebno imati libmysqlite i 
libmysqlclient biblioteke. Danilo, da li znaš da li bi ovo moglo
statički da se linkuje? (slab sam sa tim stvarima).

Takođe, src/Makefile sam ručno prepravljao i dodavao -lsqlite
i odziv naredbe "mysql_config --libs" i "mysql_config --cflags"
u paramtere kompajlera i linkera, što bi se trebalo (pored GTK stvari
za koje je GLADE napisao configure) dodati u configure skriptu.

U datoteci src/callbacks.c su definisani prametri mysql korisnika, lozinke
imena baze i adrese mysql servera (prevod.org ?). Korisnik treba imati samo 
dozvole za SELECT nad tabelom "recnik". Za program je bitno da ta tabela
sadrži sledeća polja:

CREATE TABLE `recnik` (
  `eng` varchar(255) NOT NULL default '',
  `srp` varchar(255) NOT NULL default '',
  `obrisano` tinyint(1) default NULL,
  `timestamp` varchar(10) NOT NULL default ''
  ... ostala polja vezana za online verziju rečnika...
) TYPE=MyISAM

E sada malo objašnjenja vezano sa ovim:

"eng" predstavlja neki izraz na engleskom i jedinstven je u celoj
tabeli, znači postoji samo jedan eng='Copy' izraz u celoj tabeli.

"srp" je prevod izraza na srpski.

"timestamp" je vremenski indikator bilo koje promene. Kada se god
promeni prevod izraza, ili se izraz "obriše" iz rečnika, ovo
polje sa ažurira na najnoviji timestamp. Klijent prilikom ažuriranja
preuzima sve reči koje imaju noviji timestamp od onog koji je program
zapamtio.

"obrisano" je indikator koji program koristi da utvrdi da li je
izraz obrisan. Kako je brisanje izraza takođe promena, timestamp
ovakvog izraza će biti ažuriran. Program zatim proverava da li
polje obrisano nije jednako NULL (što znači da izraz nije obrisan).
Ako nije onda vrši upis/ispravku izraza tako što obriše izraz i onda
upiše novi, ako jeste onda samo briše izraz. Možda je komplikovanije,
ali je neophodno.

Nakon obavljenog ažuriranja upisuje se nova verzija rečnika (novi
timestamp) kao najveći timestamp iz udaljene baze rečnika.

Baza rečnika se mora nalaziti u istom direktorijumu odakle je pokrenut
sam rečnik. Potrebna je mala skriptica da to ispravi, ili je možda bolje
da rečnik učitavam iz nekog direktorijuma (~/.recnik, /usr/local/share/recnik/
ili kako već...)
 
Valjalo bi implementirati gettext, ali je i ovako na ćirilici.


E sada malo o korišćenju programa:

Program ima jednu liniju za unos engleske varijante izraza, i dugme
Nađi koje pokreće pretraživanje lokalne baze. Program će naći sve izraze
koji sadrže uneseni izraz. Stoga će upit "Cancel" pronaći i "Odustani = 
Cancel"
i "Otkaži sve = Cancel all".

Sve varijante se "pune" u listu, a klikom na određenu varijantu se ista
kopira u GTK-ovu bazu isečaka (Clipboard) i mogu se dobiti upotrebom
"Zalepi" opcije iz bilo kog OpenDesktop kompatibilne aplikacije.


Nadam se da nema mnogo grešaka,
i takođe se nadam da će koristiti
sadašnjim i budućim prevodiocima,

Pozdrav,
Goran Rakić







reply via email to

[Prev in Thread] Current Thread [Next in Thread]