Fujitsu-Siemens
 
M A G A Z I N
 
SOFTWARE 
  Mikanović S. Radenko

MS Access - začkoljice oko regionalizacije

Svaki realan i iole ozbiljan pogled na korišćenje softvera kod nas, nameće mnoštvo tema i problema oko prilagođavanja sistemskog i aplikativnog softvera regionu, a u našem slučaju regionima: Serbian Latin i Serbian Cyrillic. Bogatstvo jezika uglavnom donosi korist njegovim korisnicima (naciji), dok je to u našem slučaju sasvim suprotno i nije dovoljno što nas je to koštalo vremena i živaca, već se ta agonija i dalje nastavlja. Lepo su nas naterali da "se softverski legalizujemo", pa će tek onda da nam rade lokalizaciju, ali kakva korist od svega toga ako sistem pomoći ostane na engleskom jeziku.
Razlika između pojmova lokalizacija i regionalizacija je u tome što se lokalizacija vezuje za razvoj softvera za specifičan jezički region (uglavnom na jednom jeziku), dok je regionalizacija vezana za mogućnost da korisnik izvrši "sitna" podešavanja operativnog sistema i/ili korisničkog programa. Regionalizacija se bazira na podešavanjima: 1. korišćenje tastature i 2. format ispisa podataka, a ovim promenama prethodi (ako je OS uopšte prilagodljiv) nekoliko obaveznih "čekiranja" prilikom instalacije OS-a ili neposredno posle toga.
Iako sam ovih par redova, kako pomoći kolegi koji razvija aplikaciju pod MS Access-om, u glavi dugo osmišljavao svi su izgledi da ću ih otkucati za sat-dva. Tema je toliko široka da sam na kraju pisanja članka opet bio nezadovoljan, i pomislio "pa meni za ovo treba roman". Sa stanovišta programera i mojih kolega koji se bave sistem administriranjem i rešavaju u praksi probleme oko regionalizacije, biće ovde taman kol'ko treba.


Hardverska i prvo sistemsko podešavanje


Vratimo se mi našem korisniku programa, koji od nas, kao programera, očekuje da mu rešimo sve probleme, a po mogućnosti i one koji nemaju nikakve veze ni sa računarstvom ni sa informatikom. Pitanja: "ko je kupio tastature sa engleskim rasporedom" i "ko će sada da finansira kupovinu onih sa latiničnim YU slovima", sigurno je prvi zid između vas i korisnika, ali ako ne rešite taj problem, očekujte pitanja telefonom: "a gde sad da nađem ono slovo Ž," ili "zagrade mi nisu na mestu". Korisnik vaše aplikacije je svetinja, koliko god to nekome zvučalo prozaično, i pobrinite se da dobije sve što bi njegov rad učinilo lakšim. Ako direktor ne pristane da kupi YU tastature, zaračunajte mu to kao vaš deo honorara, a službenike obradujte time što ćete im ih vi kupiti i doneti. Naravno, nemojte da to uradite baš odmah, pustite ih mesec-dva, pa da vidite kako će se radovati kada osete prednosti (sve ovde se navodi iz ličnog iskustva). Možda će one engleske tastature biti od koristi nekom vašem kolegi koji se bavi grafičkim programima i ne koristi Unicode, već je i dalje na YUSCII - nikad se ne zna.
Sledeće što morate da uradite jeste, drugi korak, da "naterate" tu tastaturu da bude "Default", jer u suprotnom, korisnik ne primećuje prave efekte. Pod Windows 2000 i XP nećete imati nikakav problem, ako u sistemske softverske komponente uključite Multilanguage Support (Central European i Cyrillic). U starijim verzijama (Windows OSR2 i 98SE) koje daju na raspolaganje Multilanguage Support, pored navedenog, treba da: 1. dodate Serbian (Latin) tastaturu; 2. uklonite sve osim Serbian (Latin) preko Remove; 3. ignorišete sva upozorenja; 4. restartujete OS; 5. dodate ostale potrebne rasporede (English obavezno); 6. uključite vidljivost indikatora tastature na taskbaru.
U DOS Prompt-u ne možete da računate na korišćenje 16-o bitnih Unicode znakova: ŠĐČĆŽšđčćž, ali ako u config.sys dodate liniju:
INSTALL=C:\WINDOWS\COMMAND\KEYB.COM YU,,C:\WINDOWS\COMMAND\KEYBRD2.SYS
i u autoexec.bat, liniju:
keyb yu,,C:\WINDOWS\COMMAND\keybrd2.sys
bar nećete imati problema da, u nekoj MS DOS igrici, objašnjavate svom malom sinu da umesto Y treba da pritisne Z, kada piše "Yes or No" (umesto " C:\WINDOWS" koristite putanju na kojoj ste instalirali OS).


Problemi sa objektima i programima


Bez obzira na prethodna podešavanja, neki od sledećih objekata neće raditi korektno, tj. neće prikazivati YU slova:
Clipboard, kod "prenosa" iz jednog u drugi program, objekata koji nisu vezani za aplikativni softver, YU slova se ne prikazuju korektno. DDE i OLE, razmena i ugradnja objekata jednog programa u drugi, pati od istih problema. Činilo se da je verovatnoća da u udarnim Microsoftovim programima (Word, Excel, Outlook, Outlook Express) imate problem sa "našim slovima", ali su problemi kod upornih korisnika brzo isplivali na površinu. Bilo da, u MS Word-u, koristite Insert Object ili Paste metod, kada ubacujete deo teksta iz drugog programa može vam se desiti da ne dobijete ono što ste očekivali. Word i Excel nemaju skoro nikakve potrebe za podešavanjima (osim Default Language u MS Word-u), ali kada uradite ćirilični grafikon u Excel-u, koristeći neki font koji ne spada u uobičajenu Windows paletu 20-ak fontova, probajte da ga prekopirate u Word. Mnogi se snalaze tako što izvrše Paste objekta Picture, a ne MS Excel objekta (preko Edit/Paste Special), što se preporučuje i kao najbolje univerzalno rešenje.
Printer, pri štampanju "najobičnijeg" RTF ili HTML dokumenta ne štampa YU slova. Prvo što treba proveriti jeste: da li se ta slova vide na ekranu u Preview režimu, pa tek onda podesiti opciju Print True Type Fonts na "as Bitmap" ili "Automatic". Kod nekih jeftinijih laserskih štampača, efekti zavise i od podešavanja kvaliteta štampe i rezolucije.
Rešenje ovih problema, krije se u nekoliko ključeva Windows Registry-a, pa ako ste vični unesite (za Serbian Latin):
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage]
@="1250"
"ACP"="1250"
"OEMCP"="1252"
kao na slici:


ili preuzmite fajl "setcp-1250-50-52.reg", otvorite i potvrdite sa Enter sve do kraja, pa restartujte vaš OS.
Za Serbian Cyrillic, umesto 1250, 1250 i 1252 treba uneti 1251, 1251 i 1251, što znači da ne možete istovremeno rešiti i latinične i ćirilične probleme.


MS Access & VBA standard


Microsoft-ovi razvojni alati (Access, VisualBasic, FrontPage) su po običaju nešto teži za podešavanje, jer se zasniva na više podešavanja: razvojna stanica, projekat, objekti, korisnička stanica.
Kako je MS Access-a najkompleksniji za ova podešavanja, jer ima više aspekata na kojima se podešenost reflektuje: aplikacija, baza i konvertovanja iz jedne u drugu verziju Access-a, najbolje je, da u nastavku, razmotrimo ovu problematiku baš pod Access-om.
Prvo: što treba uraditi, posle navedenih podešavanja, jeste da se izvrše podešavanja na nivou programa:
1. UKLJUČITI: Tools/Options/Dual font support, ako se očekuje unos Unicode karaktera u tabelama, kada se očekuje da korisnik unese karaktere koje ne omogućava font postavljen u Tools/Options/Datasheet/Default font.
2. NE MENJAJTE opciju: Tools/Options/General/New database Sort order, gde piše General, jer se može desiti da bazu ne možete da koristite sa stanice gde nije instalirana navedena kodna strana.
3. OBJEKTE (tabele, upiti, forme, moduli) imenovati samo slovima engleske abecede, bez bilo kojih specijalnih karatera osim znaka "_".
Drugo: Access je totalno multijezički orijentisan, ali problemi mogu nastati u dva slučaja: ćirilična aplikacija pod Access97 i konvertovanja iz verzije Access97 u Access2000, kako latinična tako i ćirilična. Da biste razvijali Cyr aplikaciju pod Access97 morate vašu razvojnu stanicu podesiti na čistu ćiriličnu mašinu, a promenu možete podešavanja programirati na restart OS-a. Sledeći problem, u kombinaciji Windows98+Access97, je što kod unosa vrednosti svojstava, ćirilicu ne možete da vidite korektno, već tek posle unosa kompletnog teksta, čime je kreiranje interfejsa (Forms, Reports) znatno otežano. Ono što je dobro je to da korisnik nema nikakav problem pri korišćenju završene aplikacije, pod uslovom da mu je Cyr tastatura postavljena na Default njegovog OS-a.
Konverzija iz jedne u drugu verziju (97<>2000), bez obzira na smer, kao i import objekata, je daleko veća enigma. Bilo da je u pitanju konverzija baze (samo Tabele) ili aplikacije (Queries, Forms, Reports, Modules), ako ne izvršite podešavanja u Windows Registry-u, šanse da će sve biti kako treba su ravne nuli. Sva YU slova bi se pretvorila u znake kao što su: ? ? ?, što naoko izgleda kao da multijezička podrška nije instalirana ili da korišteni font ne podržava Unicode. Dakle, ako radite konverziju, pre toga podesite OS na kodnu stranu pod kojom je urađen aplikacija.
Treće: Za FORMAT decimalnih vrednosti koristite "Standard" format, a za datume "Short Date", jer ćete na taj način omogućiti korisniku da podešavanjima na nivou OS-a, Regional Settings, sam sebi odredi oblik prikaza i unosa podataka. Za
Četvrto: Ne koristite svojstvo Input Mask, a ako ne možete da ga izbegnete, programirajte ga nekom funkcijom u zavisnosti od regionalnog podešavanja.
Peto: Ne koristite CURRENCY format prikaza vrednosti, jer je ono zavisno od regiona, pa se može desiti da prilikom igara oko promene regiona, saldo vaše firme padne ili skoči do "neslućenih visina". U slučaju valutnih vrednosti treba voditi: iznos, valutu i datum transakcije, kao i kursnu listu.
Šesto: Rad u samom VBA kodu Access aplikacije takođe se mora prilagoditi kodnoj stani aplikacije, pa je neophodno da pre svega podesite Tools/Options/Editor Format/Font na vrednost Courier New (CE).
Sedmo: Umesto deklaracije String-a, koristite Variant, kada očekujete da bi on sadržao Unicode karaktere.
Peto: Ako koristite String Funkcije, kao npr: Replace(), imajte na umu da su svi argumenti u vezi sa komparaciju tekstova OBAVEZNI, a ne opcioni, kako se to predstavlja u VisualBasic Help-u. Tako ćete najbolje proći ako za peti argument funkcije Replace() navedete konstantu vbTextCompare, a za podrazumevanu komparaciju na nivou modula stavite liniju: Option Compare Database (umesto podrazumevane: Option Compare Database) u zaglavlju modula koda.
Osmo: Ako ste u situaciji da negde programirate prikaz YU slova, a niste sigurni da ste baš sve podesili kako treba, najbolje će biti da isprogramirate nadovezivanje karaktera: ChrW(352) & ChrW(272) & ChrW(268) & ChrW(262) & ChrW(381) umesto ŠĐČĆŽ, a ChrW(353) & ChrW(273) & ChrW(269) & ChrW(263) & ChrW(382) umesto šđčćž. Funkcija Chr() ne može da vrati znak čiji kod prelazi vrednost 255, pa umesto nje treba da koristite ChrW(), a slično važi i za zamenu funkcije Asc() funkcijom AscW().
Deveto: Ako iz koda programirate svojstvo Font za neki objekat, trebalo bi da mu dodelite tzv. Script, a što je u VB imenovano kao Charset, pa je tako igra oko kodnih stana ovakva:


Script
CodePage
Charset
Western
CP437
Font.Charset=0
Serbian Latin
CP1252
Font.Charset=238
Serbian Cyrillic
CP1251
Font.Charset=204


Deseto: Ako u SQL komande ugrađujete numeričke vrednosti, pretvorite ih u izvorni format 2.13, gde je decimalni simbol ".", a ne ",". Datumske vrednosti u SQL komandama pretvorite u celobrojne vrednosti ili ih formatizujte u oblik: "mm/dd/yyyy". Zbog propusta ovog tipa, mnoge aplikacije, koje dobijem iz inostranstva ne mogu da isprobam dok svoj region ne podesim kao engleski ili promenim formate ispisa Number i Date. Najčešći odgovor razvojnog tima takvih programa je da je problem na nivou OS-a, a tek mali deo njih se izvuče na trik da "je program rađen za region zapadne Evrope i USA".


Zahtevi korisnika i standard


Programer se uvek nalazi između korisnika (koji ima svoje poglede na to kako nešto treba da izgleda) i standarda koji mora da zadovolji. Odstupi li od standarda - ubiće se od rada, a ako ne izađe u susret korisniku - neće dobiti posao. Ja sam mnoge poslove izgubio zbog toga što nisam odstupio standarda - koji su drugi pre mene već uspostavili. Ako dođete u situaciju ubeđivanja korisnika/naručioca u to kako se šta radi i zbog čega je TO TAKO - uputite ga na neku podebelu knjigu, najverovatnije će odustati.
Još jedan od problema je i zaostavština baza podataka pod DOS-om, unetih u YUSCII kodnom rasporedu, gde su se za YU slova koristili specijalni simboli: []\|@, pa je bilo problema oko kucanja, pretraživanja, štampanja,... Podatke u bazama, unete u takvom rasporedu moguće je konvertovati nekim od programa koji rade pod Excel-om, Access-om i VisualBasic-om.


Ostalo na nivou OS-a


Kroz Win.ini se operativnom sistemu može zadati tzv. supstitucija fontova, koja čime se omogućava imenovanje novog fonta sa definicijom kodne strane postojećeg fonta, kao npr:


S leve strane je novi, a s desne postojeći font. Ovde se uočava otkud oni sufix-i (CE i Cyr) kod imena fontova, koji se mogu uočiti u Wordpad-u i Excel-u. Ovo podešavanje se mora uraditi, kada se koriste programi koji ne prepoznaju da neki font, kao npr. "CentSchbook Win95BT" ima ćirilični skript, pa se njegovo novo ime pojavljuje kao " CentSchbook Win95BT Cyr". Najčešći slučaj korišćenja ove metode je kod kreiranja ćiriličnih aplikacija pod Windows 95/98.


Srpski Windows


Između 99 i 100% korisnika PC-a zna ono malo engleskog koji mu je potreban za korisničke programe, odnosno kretanje kroz menije i pozivanje raznoraznih dijaloga. Onih 1% nikada nisu ni videli ništa osim BIOS-a i onog svog programa za obradu podataka u STR, pa bi im proširivanje znanja u korišćenju računara, bilo čisto gubljenje vremena.
Koga li će samo da oduševi program sa meni linijom nalik sledećem "Datoteka, Ažuriranje, Pregled, Ubacivanje,...", ali bi se mnogi ozbiljno obradovali da na svom srpskom jeziku dobiju sistem pomoći programa koji koriste. Latinica ili ćirilica, za većini korisnika nije ni važno, ali (da se ne lažemo) izbor se lako može podesiti za većinu korisničkih programa, npr. kao što radi Auto Correct u MS Word-u (zavisan je od trenutno izabranog rasporeda tastature).
Upravo ovo pitanje: "Šta će zaista biti prevedeno: interfejs ili help sistem?", sam i uputio kolegama koji rade na prevodu Microsoft-ovog softvera na ćirilicu, u Microsoft-ovom Test Centru u Grčkoj. Da li će ovim svi naši problemi lokalizacije i regionalizacije biti rešeni, ili ćemo dobiti još neki problem, saznaćete u sledećem broju MAGAZIN-a, kada će biti više reči o kampanji lokalizacije.


Zaključak


Koliko god vam se oni dopali, svi fontovi nisu namenjeni za svaku upotrebu, pa budite racionalni, pa kod kreiranja interfejsa, koristite preporučljive fontove. Njih korisnik dobija samim OS-om, a što je još važnije, neki važniji programi neće ni raditi bez osnovne palete fontova, kao što su: Tahoma, Arial, Times New Roman, Verdana, Courier New.
Koliko god neiskusnog korisnika oduševljavali šarenilom vaše aplikacije, iskusnog ćete osvojiti fleksibilnošću rada, prilagodljivošću aplikacije njegovim potrebama i brzim ispravkama otkrivenih grešaka. Šansu imate samo ako poštujete standarde, u suprotnom izgubićete silno vreme.

 

VRH STRANE

(c) 2003 OMEGA - sva prava zadržana