AVTOMATIZIRANA PRETVORBA ZNAKOV ARABSKE ABECEDE IZ KODNEGA SISTEMA 0600-06FF V KODNI SISTEM PREZENTACIJSKE OBLIKE FE70-FEFF Saša Klampfer, Peter Šamperl, Zdenko Mezgec, Amor Chowdhury Margento R&D d.o.o., Maribor, Slovenija Kjučne besede: mPOS, kodni sistemi, arabska abeceda, arabski znaki, pretvorbe, translacijska matrika, pravila, plačilni terminal, zaslon, hexadecimalni zapis, inverzna pretvorba, terminalsko orodje, translacijsko orodje, enostopenjsko pravilo, večstopenjsko pravilo. Izvleček: Razširjenost brezgotovinskega plačevanja z mobilnimi telefoni preko mPOS plačilnih terminalov postaja vse bolj aktulno in priročno. Razvite rešitve se lansirajo tako na domače, kot tuje trge. Z lansiranjem rešitev na tržišča bližnjega vzhoda, pa so se pojavile specifične potrebe po podpori arabskih jezikov v menijih mPOS plačilnih terminalov. Članek opisuje enega izmed možnih načinov pretvarjanja arabskih znakov iz kodnega sistema 0600-06FF v prezentacijske forme arabskih znakov, ki se nahajajo v kodnem sistemu FE70-FEFF. V prvem delu smo se omejili predvsem na problematiko prikazovanja arabskih znakov na zaslonu terminala, ki se nahajajo v kodnem zapisu 0600-06FF. Iz tega razloga smo predstavili rešitev, ki se navezuje na pretvorbo arabskih znakov kodnega sistema 0600-06FF v kodni sistem arabskih prezentacijskih form FE70-FEFF. Na osnovi tega smo v nadaljevanju na praktičnih primerih predstavili rešitev pretvorbe v dveh korakih. Najprej se pretvorba izvrši preko translacijske matrike, v drugem koraku pa se pretvorjen zapis preko translacijske matrike primerja z ekvivalentnim originalnim arabskim zapisom. Na osnovi primerjave in ugotovljenih odstopanj se zasnujejo pravila po katerih se izbirajo oblike črk, glede na predhodno črko v besedi. Vsak predstavljen korak smo obrazložili na številnih praktičnih primerih. V članku predstavljamo tudi koncept izbire in aktivacije pravila, ki je povsem identičen ekspertnim sistemom, ki temeljijo na osnovi produkcijskih pravil. V drugem delu smo se osredotočili na jasno predstavitev posameznih rešitev, ki jih uporabljamo za konfiguracijo mPOS plačilnega terminala, kamor smo umestili tudi razvit produkt in njegove funkcionalnosti. V zadnjem delu smo se omejili predvsem na prikaz pretvorjenih besed v kodni zapis FE70-FEFF na zaslonu mPOS terminala. Arabic characters automatic translation from 0600-06FF code system to Arabic presentation forms code system FE70-FEFF Key words: mPOS, code systems, Arabic alphabet, Arabic signs, conversions, conversions matrix, rules, payment terminal, screen, hexadecimal record, inverse conversion, terminal tool, conversion tool, single rule, multiple rule. Abstract: Prevalence of non-cash payment with mobile phones via mPOS payment terminal is becoming increasingly important and convenient. The developed solutions are ready to launch on the domestic and foreign markets. With the launch of a different solutions to the Middle Eastern markets, have emerged to support the specific needs upon the Arab language in the menus of mPOS payment terminals. This paper describes one possible way to convert the Arab characters from code page 0600-06FF into the Arabic presentation forms which are specified in FE70-FEFF code page. In the first part of the article, we are limited primarily to the problems which concerns correct displaying Arabic words (written in 0600-06FF code system) on the terminal screen. For this reason, we presented a solution which is tightly connected with the transformation of the Arab characters from 0600-06FF code system into the FE70-FEFF Arabic presentation form code page. On this basis, we present a solution on practical examples which is constructed with two steps. First step presets conversion over conversion matrix, meanwhile in second step we compare converted word (FE70-FEFF) with the original one (0600-06FF). Based on a comparison of the anomalies the rules are created and written into conversion setup file. The rules are created on the following way: for temporary char (FE70-FEFF), system observe char which is before it and then temporary char compares with original (0600-06FF) one shape. If there are differences in shape, then system produces rule which contains proper shape of temporary char correspond to char before it. All described is explain on practical examples. During this paper we present the concept of rules creation, selection and activation, which is completely identical to the expert system based on production rules. In the second part, we focused on a clear presentation of individual solutions that are used to configure mPOS payment terminal, where we place our well-developed product and its functionality. In the last part, we have limited primarily to see how the converted words (FE70-FEFF) looks like on the screen of the mPOS terminal. 1. Uvod Brezgotovinsko plačevanje z mobilnim telefonom je zaradi razširjenosti mobilne telefonije postalo tržno zanimivo. Razvile so se različne tehnologije, ki omogočajo mobilno plačevanje. MPay je eden od sistemov mobilnega plačevanja, ki ga je razvilo podjetje Ultra d.o.o.. Sistem temelji na osnovi prenosa podatkov po govornem kanalu različnih mobilnih omrežij, kot so GSM, CDMA in UMTS. Glede na različne plačilne storitve, ki jih omogoča MPay sistem, se na trgu uporabljata dva tipa terminalov, in sicer aPOS ter mPOS. Osnova obeh terminalov je enaka, razlika je v tem, da ima mPOS terminal vgrajen uporabniški vmesniki (tipkovnica, zaslon, tiskalnik). aPOS terminal se najpogosteje uporablja v restavracijah, trgovinah, taksiji,..., in ne vsebuje grafičnega uporabniškega vmesnika, zato za našo razvito aplikacijo ni primeren. aPOS terminal ima vgrajene različne komunikacijske vmesnike, ki omogočajo priklop na razne prodajne avtomate, parkirne ure, igralne avtomate,^ Na novo razvita aplikacija se seveda nanaša na mPOS plačilne terminale, ki razpolagajo z uporabniškim vmesnikom s sposobnostjo prikazovanja različnih jezikov. Ideja za strokovni prispevek je nastala na podlagi vse večje večje potrebe podjetja Margento R&D d.o.o., ki razvija sisteme brezgotovinskega plačevanja z mobilnimi telefoni preko mPOS terminalov za celotno svetovno tržišče. V večini priemerov se na mPOS terminalih podpre večjezična podpora. S pridobitvijo razvojnih projektov za področje Združenih Arabskih Emiratov se je v podjetju pojavila potreba implementacije arabskega jezika na plačilne terminale. Problematika s katero smo se srečali se nanaša na sposobnost prikazovanja arabskih znakov na plačilnem terminalu T4000. Slika 1: Prikaz aPOS in mPOS terminalov Postopek priprave izpisov, ki se prikazujejo na zaslonu plačilnega terminala se prične z osnovno excel datoteko. Npr. V koloni 'A' se nahajajo npr. angleški izrazi, v koloni 'G' pa arabski izrazi, ki jih preko arabske tipkovnice zapiše prevajalec. Privzeto se arabski znaki, ki se vnašajo preko arabske tipkovnice nahajajo v kodnem zapisu 0600-06FF /1/. Z združevanjem znakov iz omenjenega kodnega sistema, črke spreminjajo obliko, glede na lokacijo v besedi in glede na tip predhodne in zaporedne črke. To pomeni, da črka spremeni obliko, vendar v hexadecimalnem zapisu, le ta še vedno ohranja enako 'hexa' vrednost, kljub temu, da se je črki spremenila oblika. To je tudi glavni problem na katerega naletimo pri implementaciji arabskega jezika na plačilni terminal (mPOS). Le ta ne pozna pretvorbe črk, glede na predhodnjo in naslednjo črko, zato jo prikaže nepovezano v obliki samostoječe črke (beseda kot končni produkt ne izgleda povezano, temveč vsaka črka stoji sama zase). Tekom študije smo prišli do zaključka, da je za pravilno prikazovanje arabskega jezika na plačilnem terminalu, potrebna pretvorba znakov arabske abecede iz kodnega sistema 0600-06FF v prezentacijsko obliko arabskega kodnega sistema FE70-FEFF /5/. Le ta vsebuje kodne znake, ki upoštevajo lokacijo črke v besedi. To pomeni, da za vsak znak arabske abecede v kodnem sistemu 0600-06FF obstajajo štiri različice zapisa istega znaka v prezent-acijskem /2/ arabskem kodnem sistemu FE70-FEFF. Takšne štiri različice se navezujejo na lokacijo arabskega znaka v besedi, in sicer: začetna črka besede, vmesna črka besede, končna črka besede in osamljena (izolorana/sa-mostoječa) črka abecede (vsaka ima svojo obliko). Ker arabsko tržišče predstavlja enega izmed najpomembnejših področij uvajanja sodobnih načinov brezgotovinskega plačevanja, je bilo za nas izrednega pomena razviti avtomatizirano rešitev za pretvorbo znakov arabske abecede v prezentacijsko formo, saj podobne programske rešitve, ki bi bile sposobne izvesti opisano pretvorbo, ne obstajajo. Pri razvoju tako imenovanega 'translacijskega' orodja smo šli še korak dlje v smeri avtomatične priprave t.i. 'printout' datotek, preko katerih v interni pomnilnik plačilnega terminala naložimo izraze različnih jezikov (npr. angleški in arabski jezik). Povzetek pregleda operabilnosti in funkcionalnosti sistema bomo na kratko predstavili v nadaljevanju. V drugem poglavju predstavljamo definicijo problema in osnovno problematiko pretvorbe arabskih znakov iz enega kodnega sistema v drug kodni sistem. V okviru tretjega poglavja bomo predstavili metodologijo pretvorbe in t.i. 'translacijsko' matriko z upoštevanjem pozicij posameznih črk v besedi. Četrto poglavje je namenjeno predstavitvi drugega koraka, ki upošteva pravila predhodne in zaporedne črke glede na trenutno črko, in s tem pripomore k pravilni pretvorbi arabskih izrazov v kodni sitem FE70-FEFF. V petem poglavju predstavljamo pomembne korake od pretvorbe arabskih znakov do postopka naložitve le teh v flash pomnilnik mPOS terminala. Šesto poglavje je namenjeno predstavitvi funkcionalnosti razvite rešitve in njenih režimov delovanja. V sedmem poglavju so prikazani rezultati razvitega orodja, medtem ko z osmim sklepnim poglavjem zaključujemo članek. 2. Definicija problema in osnovna problematika Kot smo že v uvodu nakazali, se osnovna problematika navezuje na razširitev trženja razvitih tehnologij na tuja tržišča, predvsem pa na tržišče Združenih Arabskih Emiratov. S prodorom na tuje trge se pojavlja potreba po več jezični podpori. Zaradi specifike arabskega jezika, in omejitev programske opreme mPOS terminala smo morali razviti univerzalno rešitev, ki nam bo v veliko pomoč pri lan-siranju nadalnjih produktov na omenjeno tržišče. Omejitev programske opreme plačilnega terminala mPOS se navezuje na nesposobnost prikazovanja znakov arabske abecede, ki se nahajajo v izvornem kodnem sistemu 0600-06FF (slika 2). a6uu Arabic U6FF 06D 051 062 063 064 065 D66 D67 068 069 06A 06B 06C D6D 06E D6F i^i O B i - O 6 OBIO O 06» 'i L / • C) • «01 eeii «21 J (Ö1 J» DNI U5I \ Ht1 1 a«Ti f U(l 1. J US1 / OSBI as 01 Offll o «El ^ TJ O T (es: j Cj f 1 0812 f CBU J / i o f P: eeia i ata LT" asi »a C) HB r aua Odra Z osa J US3 MM / aSB3 Mca os» Q r an 1 O J J" ce34 u 06*4 6 9S5t t M* 067* Z 0®* J. m* Js MM / OSM J CfiM ■0 MEt f 1 i (6?S r 9 0 0675 J J J » a Slika 2: Izsek kodne tabele 0600-06FF z arabskimi znaki /7/ Uvodoma smo omenili, da osnovni element med nami in prevajalcem v arabski jezik predstavlja excel datoteka. Vsak preveden izraz v excel datoteki je zapisan v 0600-06FF kodnem zapisu (gledano hexadecimalno). Lastnost takšnega zapisa je avtomatsko prilagajanje in spreminjanje oblike črk /4/, glede na predhodno in zaporedno zapisas-no črko. Naj spomnimo, da je lastnost arabske pisave tudi zapis od desne proti levi, za razliko od našega jezika, v katerem pišemo od leve proti desni. Da bo opisan princip čimbolj nazoren si poglejmo naslednji primer: Tabela 1: Spreminjanje oblike arabskih črk pri proceduri združevanja Tabela 3: Primerjava hexadecimalnih zapisov oblike arabske črke FEH v obeh kodnih tabelah Na zgornjem primeru je lepo razviden status in oblika sa-mostoječih (skrajno levi in arabski znak na sredini - glej tabelo 1) arabskih črk iz kodnega sistema (0600-06FF), ter spremenjena oblika znakov v primeru zapisa obeh, enega za drugim. S pregledom hexadecimalnega zapisa /6/ združenih znakov v besedo, pa le ta še vedno ohranjata izvirni hexadecimalni zapis, kljub spremenjeni obliki črk. Tabela 2: Hexadecimalna vrednost posameznih ter združenih arabskih znakov Siimostojiiü črka {0600-06FF) SainusUijiiü črka {0600-06FF) Združeni črki (0600-06FF) i—i lS He\ii<)ectmiilni zapis arabskih znal^ov 0641 064A 0641 064A Iz zgornjega primera je že lepo razvidna problematika, s katero smo se srečali pri prikazovanju arabskih izrazov na zaslonu terminala. Kljub združenim črkam in spremenjeni obliki le te še vedno ohranjajo kodni hexadecimalni zapis v takšni formi, kot da črka stoji samostojno in ni vezana na druge črke v zapisani besedi (kljub avtomatski spremembi oblike ob zapisu dveh zaporednih arabskih znakov). Iz tega razloga je tudi prikaz na zaslonu terminala napačen. Rešitev za takšen problem najdemo v arabskih prezentac-ijskih znakih, ki so zapisani v kodnem zapisu FE70-FEFR Takšen kodni zapis vsebuje za vsak znak iz 0600-06FF vse oblike tovrstnega znaka glede na pozicijo v besedi (samostojni zank, na začetku besede, na koncu v sredini). Da bo razlaga še bolj jasna, si oglejmo primer za arabski znak FEH (0641): Marsikomu se na tem mestu porodi ideja, da je potrebno spremljati pozicije črk v besedi iz kodnega sistema 0600-06FF, in na osnovi teh pozicij nato izbiramo črke iz kodnega sistema FE70-FEFF. To je deloma pravilno, in tudi to metodologijo, ki jo bomo razložili v nadaljevanju uporablja- Kodiii sistem 0600-06FF Črka Osamljena Začetek Src'({inu Konec FEH J9 064! 0641 064 i 0641 0641 Kodni sistem FE70-FEFF n:H i JL 064 i FEDl FEDS FED4 FED2 mo tudi mi. Vendar pa končna rešitev ni tako trivialna in enostavna, kot smo jo ravnokar navedli. Problematiko dodatno otežijo še dejstva, da je v FE70-FEFF kodnem sistemu potrebno upoštevati še dodatna pravila, katera črka je pred in za pretvorjeno. Tipičen primer upoštevajoč samo pozicije znakov brez upoštevanja dodatnih pravil pretvorbe daje napačen rezultat (glej tabelo 4). Vendarle pa nam je bil takšen način v veliko pomoč pri postavljanju pravil za drugi način pretvorbe, ki upošteva tako pozicijo kot tudi pravila. Iz tega razloga je potrebno za pravilne pretvorbe zasnovati še dodatna pravila, ki pripomorejo k točnemu končnemu rezultatu. V sredinski koloni tabele 4 sta z rdečo barvo prikazani arabski črki zapisani v kodnem zapisu FE70-FEFF, ki sta bili vpeljani z upoštevanjem pozicije brez dodatnih pravil, le ti pa sta napačni. Tabela 4: Pretvorba v FE70-FEFF kodni sistem z upoštevanjem samo pozicije (sredinska kolona) ter z uportevanjem pozicije in dodatnih pravil (desna kolona) Pr(.'t> orba t UpoKti^ana Nki ura/. 11600- upoNtctiinjctn (lixliitnu pmvilu or>FF j)u/.icijc FE70- Pnh ol bi' FE7I)- FE77 FE77 čil Napačno 1'rcn'ilno 3. Potek pretvorbe z upoštevanjem pozicije Logiko pretvarjanja izrazov iz 0600-06FF v FE70-FEFF smo zasnovali v programskem jeziku C# /3/. Da bo predstava lažja, bomo potek tovrstne pretvorbe opisali na primeru arabske besede, ki jo sestavljajo arabski znaki iz 0600-06FF. Logika programa je v prvi fazi zasnovana tako, da besedo najprej razdeli na posamezne arabske znake, ki le to sestavljajo in jih zapiše v tako imenovane tipizirane liste, pri čemer ohranja zaporedje črk (od desne proti levi). V kolikor gre za stavek, le tega najprej razdruži na posamezne besede, nato pa vsako besedo v posamične črke, ki se ponovno zapišejo v pripravljene podatkovne strukture. Temelj pretvarjanja je torej razdružtev stavka na besede in nadalje besede na posamične črke. Na tem mestu se marskomu pojavi vprašanje zakaj besedo razdeliti na posamezne črke? Odgovor je sila preprost. Za pretvorbo črke iz 0600-06FF v FE70-FEFF uporabljamo translac-ijsko matriko v naslednji obliki: Tabela 5: Izsek Iz sestavljne translacljske matrike Original končna Začetna Vmesna Izolirana (hex) črkii črka črka či-ka (hex) (hex) (hex) (hex) OM! FE[)2 FED3 FEM FEDI 0642 IED6 fed7 FEDH FED5 ()62fi FE (FE70-FEFF) (1) Izhod iz transiacijskega sistema 1 Printer Test-i^^^^ liui^in 2 Transaction li^i^n ^^^ 'Printout'datotel^a je vhod v terminalsl^o orodje Terminal Tool (3) (C C 2 E Slika 3: Procedura od pretvorbe do zapisa na flash pomnilnik mPOS terminala Terminalsko orodje (Terminal Tool): S pomočjo terminalskega orodja urejamo tako imenovane M-Pay konfiguracijske datoteke. Primarni namen orodja je nastavitev parametrov, ki se nato zapišejo v flash pomnilnik mPOS terminala. Dodajamo lahko tudi druge parametre, katerih vrednost lahko spremenimo preko uporabniškega vmesnika, brez posega na kodni nivo. Z enakim orodjem lahko naložimo tudi pripravljeno 'printout' datoteko, ki predstavlja izhod in translacijskega orodja. Vse nastavljene in naložene vsebine v M-Pay konfiguracijski datoteki se nato preko Terminalskega orodja prenesejo in zapišejo na interni pomnilnik mPOS terminala. Terminalsko orodje se uporablja tudi za zapis konfiguracijskih parametrov na aPOS terminale (glej uvodno poglavje), vendar se v tem primeru 'printout' datoteka ne uporabi, saj aPOS terminal ne razpolaga z uporabniškim zaslonom, torej ne izpisuje in ne prikazuje nikakršnih vsebin. Če povzamemo funkcionalnosti terminalskega orodja; omogoča spreminajanje 'firmware-a', terminalskih nastavitev, logotipov, izpisov, fontov, zvočnih zapisov itd. Inverzna pretvorba: Proces pretvorbe, ki smo ga spoznali v predhodnih poglavjih smo razširili tudi na pretvorbo v obratni (inverzni) smeri. Inverzni postopek 1 Printer 2 Transaction il^i^n 3 4 Battery~i-iJ='-j:Än Printout' datoteka je vhod v transiacijski r sistem Transiacijsko orodje (FE70-FEFF)-> (0600-06FF) Inverzna pretvorba 'Excel' datoteka je izhod iz transiacijskega sistema Slika 4: Inverzna pretvorba Inverzno pretvorbo smo uvedli iz dveh razlogov: v kolikor poptrebujemo kakršne koli spremembe arabskih izrazov s strani prevajalca, je najenostavnejša rešitev izvoz v novo excel datoteko, ki jo lahko prevajalec enostavno sprem- inja. Na osnovi spremenjene datoteke lahko s translaci-jskim orodjem ponovno ustvarimo novo 'printout' datoteko. Inverzna pretvorba, je enostavnejša v primerjavi z normalno pretvorbo, zaradi samo ene oblike arabskih črk v kodnem zapisu 0600-06FF. Naj spomnimo, da pri inverznem poteku pretvarjamo arabske črke iz kodnega sistema FE70-FEFF v kodni sistem 0600-06FF. Pretvorba poteka na sledeč način. Vsako arabsko besedo v prezent-acijski formi (FE70-FEFF) razdelimo na posamezne črke, le te pa pretvorimo v hexadecimalni zapis. V naslednjem koraku za vsako črko besede s pomočjo preproste programske logike preiščemo translacijsko matriko. Ko algoritem najde ekvivalentno hexadecimalno vrednost črke besede kodnega sistema FE70-FEFF v translacijski matriki (Tabela 5), poišče istoležno originalno hexadecimalno vrednost (zapisano v hexadecimalni obliki sistema 0600-06FF), ki jo nato pretvori nazaj v črko iz kodnega sistema 0600-06FF. Črke posamičnih besed algoritem sestavi, in zapiše na ustrezno mesto ustrezne kolone excel datoteke. Enako storimo za vse ostale črke besed. Drugi razlog, zakaj inverzna pretvorba, pa se nanaša na morebitno izgubo oziroma poškodovanje izvorne .xls datoteke s prevodi. Ker se le ti nahajajo v flashu terminala, jih lahko najprej s pomočjo terminalskega orodja izvozimo v 'printout' .hex datoteko, nato pa s pomočjo translacijske-ga orodja v izvorno .xls datoteko. 6. Uporabniški vmesnik in funkcionalnosti Uporabniški vmesnik temelji na dveh temeljnih korakih, ki hkrati poenostavljata uporabo razvite rešitve. Uporabniški korak tvorita ukaz naloži, s katerim uporabnik naloži izvorno datoteko (.xls, .hex) in ukaz pretvori s katerim sistem pretvori arabske zapise iz enega kodnega sistema v drugega. Z minimalnim številom korakov smo izpolnili pogoj uporabniške prijaznosti, z upoštevanjem minimalističnega oblikovanja pa poskrbeli za pregleden uporabniški vmesnik. Prebrane in pretvorjene izraze ispisujemo v dve ločeni tex-tovni listi, predvsem iz razloga preverjanja ustreznosti Slika 5: Uporabniški vmesnik in osnovne funkcije razvite rešitve 0,Unauthorized Terminal.|Please Call Mobily Support. O.Transaction Denied.|Please Call Mobily Support. Qi s-^^'-.aJl "-ojij jL^Vl S-Li.jlll"^^^ 'doU^I O.Transaction Type Denied.IPIease Call Mobily Support. O.Transaction Delivery Denied.IPIease Call Mobily Support. 0> - J ■ --''■'I jä J..0 'CLU^I 1.Transaction Delivery Failed.IPIease Repeat. 1 i ^jLi^l tLi.jlll'^loU^I (.jLu O.Transaction AuthorizationlDenied. Please CalllMobily Support. 0> t-^-^i "-.^suIJl^vi t-i^.^wajajy.^i'ii.bL.Ji 1 .Transaction AuthorizationlFailed. Please Repeat. 1,M-Pay System Is Currently|Unavailable. Please Repeat. Slika 6: Originalen zapis (0600-06FF) v Auxiliary.xls datoteki 1 i 'OjLi^i .iJLij ^jio ^ M-Pay pretvorbe. Funkcij in gumbov, ki jih uporabnik v določenem trenutku ne potrebuje ne prikazujemo. V primeru pretvorbe .xls datoteke v .hex datoteko se izvrši normalna pretvorba, torej iz kodnega sistema 0600-06FF v kodni zapis arabskih prezentacijskih fontov FE70-FEFF. V primeru inverzne pretvorbe pa sistem pretvori .hex 'printout' datoteko in njeno arabsko vsebino iz kodnega sistema FE70-FEFF v kodni sistem 0600-06FF, in arabsko vsebino zapiše v novo .xls datoteko. Na ta način zagotovimo podporo pretvorbe v obe smeri. Zraven pretvorbe t.i. 'printout' datoteke smo vključili še funkcionalnost pretvorbe t.i. 'auxiliary' datoteke, kjer so zapisani razni dodatni napotki in er-rorji, ki jih terminal prikazuje ob razičnih dogodkih. Struktura zpisa v 'auxiliary' .hex in .xls datoteki je povsem identična strukturi zapisa v 'printout' .hex in .xls datoteki. Iz tega razloga je enaka logika uporabljena tako za normalno kot inverzno pretvorbo auxiliary datoteke. V razvito programsko rešitev smo dodatno implementirali še rešitev dopolnjevanja dodatne (ang. additional) .hex datoteke. Additional.hex datoteka privzeto vsebuje vse al-fanumerične znake (evropsko tržišče). V primeru implementacije drugih jezikov, kot je npr. Arabski, pa implementirana logika za vsak znak vsake besede preveri, ali ga že ima zapisanega v t.i. additional.hex datoteki. Če le tega ne vsebuje, ga avtomatično doda. Postopek ponavlja vse do zadnje črke zadnje besede, ki je zapisana v .xls datoteki. Na ta način napolnimo additional datoteko z vsemi znaki, ki so zastopani v .xls datoteki, vendar en znak lahko v additional datoteki nastopa samo enkrat. Pri proceduri zapisa v flash pomnilnik mPOS terminala, terminalsko orodje preverja vsako črko besede z črkami, ki so enkratno zastopane v additional datoteki. Če slednjega v datoteki ne bi našel, ga tudi terminal na zaslonu ne bi prikazal (znak bi enostavno izpustil). Iz tega razloga je še toliko pomemne-je, da avtomatiziran postopek napolni vsebino additional datoteke z novimi znaki, ki jih do tedaj še ne vsebuje. Da bi bila uporaba razvite rešitve še toliko lažja, smo vsakemu gumbu, funkciji, listi ipd. dodali namige (ang. tool tips), s katerimi ob enem uporabnika usmerja, in seznanja čemu je določen gumb, meni ipd. namenjen. Pri načrtovanju uporabniškega vmesnika smo prav tako upoštevali Miller-jev zakon kratkotrajnega spomina, ter priporočene smernice. 7. Rezultati Primer pretvorbe izrazov iz Auxiliary.xls datoteke v prezent-acijsko obliko ter zapis v Auxiliary.hex datoteko: Na sliki 6, je prikazan izsek zapisa Auxiliary.xls datoteke. Na skrajni desni se nahajajo izrazi zapisani v arabskem jeziku kodnega sistema 0600-06FF. Na sliki 7 je prikazan izsek izpisov (kodni sistem FE70-FEFF) iz ustvarjene Auxiliary.hex datoteke, ki predstavlja enega izmed izhodov translacijskega orodja. 2 Release Call^Mobily Support.~0,^w^><' j^p 5 Release Call^Mobily Support.si^i^i 8 Release Call^Mobily Support.-O.^i^i^^ tJ^ Slika 7: Pretvorjen arabski zapis v kodni sistem FE70-FEFF Potrditev, da se pretvorjen zapis nahaja v kodnem sistemu FE70-FEFF prikazuje slika 8. QOQOQOOOh: □□□□□□lOh: □0000020h: GOGOGOSOh: □OOOOOSOh: 00000060h: GOGOGOTOh: □0000090h: OOOOOOaOh: GOGOGObOh: □OOOOOcOh: O ; 2 ? 4 5 ^ 7 FF FE 30 00 68 00 er 00 54 00 65 00 2E OG GD 00 65 00 20 00 6F 00 62 00 70 00 70 00 2C OG BA FE CF FE 20 00 □D 00 OA 00 20 00 94 FE 8E FE BC FE AO FE AE FE 2C 00 72 00 72 00 OA 00 43 00 69 00 6F 00 AS FE BO FE 55 GO 6E 00 59 00 7A 00 SD 00 69 00 SG GO 6C 00 51 00 6C 00 6C 00 79 00 72 00 74 00 AE FE E3 FE 8E FE EC FE FC FE E4 FE AA FE A8 FE FB FE SD FE 8D FE A4 00 ^ 1? g ^ ^ t 61 OG 65 00 6E 00 65 OG 6C 00 20 00 2E 00 20 OG AO FE CC FE 91 FE 20 OG 0J> 00 75 00 74 64 00 20 61 00 6C 61 00 73 20 00 4D 53 00 75 7E 00 30 AE FE F4 EO FE 8D EO FE 8D 20 00 DE 80 FE 8E □A 00 30 ......P.l.e.a.3. e. .C.a.1.1. .H. o.b.i.l.y. .S.u. p.p.o.r.t. . .-.0. IlD .'tŽlDilD PäUi> ....€lDÜlDälDilDälDD{3 ."tat'lDlD^lD .f=t, ŽID^ID-IDUIDDID .€lDŽti iDStatOlDH.....□. Slika 8: Hexadecimalni zapis vsebine v kodnem sistemu FE70-FEFF Pretvorjeni izpisi v kodni sistem FE70-FEFF, ki jih nato zapišemo v flash pomnilnik mPOS terminala in prikažemo v menijih na zaslonu terminala so desno poravnani. Branje tovrstnih arabskih izpisov v menijih prav tako poteka od desne proti levi strani (zakonitosti pretvorbe iz enega v drug kodni sistem in obratno se ohranjajo). Primer arabskih izpisov na zaslonu mPOS terminala je prikazan na sliki 9. je. Enak pristop velja za pravila. To pomeni, da je sistem možno dograjevati in izpopolnjevati s strani drugih uporabnikov, saj je le ta javno dostopen vsakomur. Uspešna pretvorba je bila prav tako potrjena s strani naročnika iz Združenih Arabskih Emiratov. Rezultati, ki smo jih prejeli zadovoljujejo tako naše, kakor tudi naročnikove potrebe. Literatura /1/ http://unicode.org/charts/PDF/U0600.pdf /2/ Zina Saadi, Arabic, Farsi and Urdu Text Normalization for Natural Language Processing, http://www.basistech.com/knowledge-center/Arabic/arabic-text-normalization.pdf /3/ Kari Laitinen, A Natural Introduction to Computer Programming with C# /4/ Sarmad Hussain, Nadir Durrani, Sana Gul, Survey of Language Computing in Asia 2005, http://www.panl10n.net/english/out-puts/Survey/Arabic.pdf /5/ http://www.unicode.org/charts/PDF/Unicode-3.2/U32-FE70.pdf /6/ http://www.uconv.com/translit.htm /7/ http://en.wikipedia.org/wiki/Glyph Slika 9: Izpis arabskih znakov kodnega sistema FE70-FEFF na zaslonu mPOS terminala 8. Sklep Tekom članka smo predstavili princip in implementirane rešitve, ki pripomorejo k pravilni pretvorbi arabskih znakov iz kodnega sistema 0600-06FF v kodni sistem FE70-FEFF. Pristop z uporabo translacijskih matrik in aktivacijskih pravil se je v našem primeru izkazal za pravilnega. Ker so translac-ijske matrike zapisane v tako imenovani namestitveni datoteki, lahko uporabnik poljubno dodaja nove kombinaci- Saša Klampfer, Peter Šamperl, Zdenko Mezgec, Amor Chowdhury Margento R&D d.o.o. Gosposvetska cesta 84, Maribor, 2000, Slovenija Epošta: sasa.klampfer@margento.com Prispelo (Arrived): 21.09.2009 Sprejeto (Accepted): 09.03.2010