 |
| |
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.
|