Dvosmerni tekst
Dvosmerni tekst je tekst koji sadrži tekst u oba smera, kako s desna nalevo (RTL) tako i s leva nadesno (LTR). To obično podrazumeva tekst koji sadrži različite vrste pisma, ali može se odnositi i na bustrofidon, koji menja smer teksta u svakom redu.

Neki svetski sistemi pisanja, posebno Arapsko i Jevrejsko, i izvedena pisma kao što su Urdu, Persijsko, Kurdsko i Jidiš, su napisana u obliku poznatom kao s-desna-na-levo (RTL), u kome pisanje počinje na desnoj strani stranice i završava se na levoj. Ovo je različito od s-leva-na-desno (LTR) smera korišćenog u većini svetskih jezika. Kada je LTR tekst pomešan sa RTL tekstom u istom pasusu, svaki tip teksta je napisan u svom smeru, i njega nazivamo dvosmerni tekst. Ovo može da postane vrlo komplikovano ako se koriste višestruki nivoi navodjenja.

Mnogi kompjuterski programi ne uspevaju ispravno da prikažu dvosmerne tekstove.
Na primer, Jevrejsko ime Sarah (שרה) se piše sin (ש) resh (ר) heh (ה) s desna na levo. 
Primetimo: Neki internet pretraživači mogu prikazivati jevrejski tekst u ovom članku u suprotnom smeru.

Unikod podrška 
Podrška dvosmernih pisama (Bidirectional script support) je mogućnost računarskog sistema da ispravno prikaže dvosmerni tekst. Naziv je obično skraćen u žargonu terminom BiDi ili bidi.

Rane kompjuterske instalacije bile su dizajnirane tako da podržavaju samo jednosmerna, najčešće s-leva-na-desno pisma zasnovana na latinskom pismu. Dodavanjem novih znakova i znakovnih kodiranja omogućeno je brojnim drugim s-leva-na-desno pismima da budu podržana, ali za s-desna-na-levo pisma kao što su Arapsko ili Jevrejsko je to bilo malo teže, i mešanje ta dva nije bilo jednostavno. S-desna-na-levo pisma predstavljena su kroz kodiranja kao što su ISO/IEC 8859-6 i ISO/IEC 8859-8, čuvajući slova (obično) u pisanom i čitanom redosledu. Moguće je da jesnostavno okrenemo s-leva-na-desno redosled prikaza u s-desna-na-levo, ali time žrtvujemo mogućnost ispravnog prikaza pisama s-leva-na-desno. Sa podrškom dvosmernog pisma, moguće je da se mešaju različita pisma na istoj stranici, bez obzira na smer pisanja.

Posebno, Unikodov standard obezbedjuje osnove za potpunu BiDi podršku, sa detaljnim pravilima kako se kodiraju i prikazuju mešanje s-leva-na-desno i s-desna-na-levo pisama.

U Unikod kodiranju, ne-interpunkijski znakovi su sačuvani u pisanom redosledu. Ovo znači da je smer pisanja znakova sačuvan u samim znakovima. Ako je to slučaj, znak zovemo "jak". Interpunkcijski znaci pak se mogu pojaviti kako u LTR tako i u RTL pismima. Njih zovemo "slabim" znakovima jer oni ne sadrže nikakve informacije o smeru. Tako softver odredjuje u kom smeru će ti "slabi" karakteri biti umetnuti. Ponekad (u tekstovima mešanog smera) ovo vodi do prikaza raznih grešaka izazvanih od strane BiDi algoritma, koji ispituje tekst,pronalazi LTR i RTL jake znakove i dodeljuje smer slabim znakovima, po odredjenim pravilima.

U algoritmu, svaki niz spojenih jakih znakova nazivamo "run". Slab znak koji se nalazi izmedju dva jaka znaka sa istim smerom nasledjuje njihov smer. Slab znak koji se nalazi ismedju dva jaka znaka sa različitim smerovima će naslediti smer glavnog konteksta(u LRT dokumentu znak će naslediti LTR smer, dok će u RTL dokumentu naslediti RTL smer). Ako je "slab" znak praćen drugim slabim znakom, algoritam će potražiti prvi najbliži "jak" znak. Ponekad ovo vodi do slučajnih grešaka prikazivanja. Te greške ispravljamo ili sprečavamo sa "pseudo-jakim" znakovima. Takve Unikod kontrolne znakove zovemo žigovi (marks). Ti žigovi se ubacuju na odredjena mesta tako da bi ogradjeni slabi karakteri nasledili njihov smer.

Na primer, da bi ispravno prikazali englesko ime brenda (LTR) u Arapskom (RTL) odeljku, ubacujemo LRM žig posle simbola marke ako on nije praćen LTR tekstom. Ako LRM žig nije ubačen, slab znak će biti najbliži jakom LTR znaku i jakom RTL znaku. Stoga, u RTL kontekstu, biće smatran da je RTL-smerni, i prikazan u pogrešnom redosledu.

Pisma koja koriste dvosmerni tekst 
Egipatski hijeroglifi mogu se pisati dvosmerno, gde znakovi imaju "glavu" koja je okrenuta ka početku reda i "rep" okrenut ka kraju.

Kinesko pismo se takodje može pisati u oba smera, kao i vertikalno (odozgo na dole pa s desna na levo), naročito u znacima (kao što su pločice), ali smer zasebnog znaka se nikad ne menja. Ove se često može videti na autobusima za turističke obilaske u Kini, gde se ime kompanije obično piše od početka do kraja vozila — odnosno, s desna na levo na desnoj strani vozila, i s leva na desno na evoj stani autobusa. Engleski tekstovi na desnoj strani vozila se takodje vrlo često pišu u obrnutom redosledu.

Drugi različiti stilovi pisanja, nazvani bustrofidon (boustrophedon), su korišćeni u nekim pismima, kao što su starogrčki zapisi i rovaško pismo. Ovaj metod pisanja naizmenično menja smer, i često obrće zasebne znakove, u svakom uzastopnom redu.

Vidi još 
 Internacionalizacija i lokalizacija
 Horizontalno i vertikalno pisanje u istočnoazijskim pismima
 Pismo 
 Kombinovanje ćiriličnih miliona
 Transformacije teksta
 Bustrofedon

Reference

Literatura

Spoljašnje veze 
 Unicode Standards Annex #9 Dvosmerni algoritam
 W3C guidelines on authoring techniques for bi-directional text - sadrži primere i objašnjavanja
 GNU FriBidi  Slobodna impementacija Unikodovog dvosmernog algoritma
 ICU  Sadrži implementaciju dvosmernog algoritma — zajedno sa ostalim medjunarodnim servisima
 UCData: "Pretty Good Bidi Algorithm Library" Mali i brzi algoritam za promenu redosleda dvosmernih pisama koji radi dosta dobro, ali ne mora biti kompatibilan sa Unikod algoritmom
 Bidirectional Scripts in Desktop Software Radna grupa za podršku BiDi u Slobodnom softveru. Sadrži nekoliko veza ka materijalima za čitanje i implementaciji u računarskim sistemima koji se tiču BiDi.
 Another Wiki about BiDi
 Bidirectional text - Examples and practical advice 
 .Net BiDi Implementation
 A freely available rather final version of Israeli standard 5194 - bidirectional text editing
 Work in progress on new version of Bidi editing standard + reference implementation
 Series of articles about pitfalls of BiDi programming

Кодирање знакова
Уникодни алгоритми
Dvosmerni tekst je tekst koji sadrži tekst u oba smera , kako s desna nalevo ( RTL ) tako i s leva nadesno ( LTR ) . To obično podrazumeva tekst koji sadrži različite vrste pisma , ali može se odnositi i na bustrofidon , koji menja smer teksta u svakom redu . Neki svetski sistemi pisanja , posebno Arapsko i Jevrejsko , i izvedena pisma kao što su Urdu , Persijsko , Kurdsko i Jidiš , su napisana u obliku poznatom kao s-desna-na-levo ( RTL ) , u kome pisanje počinje na desnoj strani stranice i završava se na levoj . Ovo je različito od s-leva-na-desno ( LTR ) smera korišćenog u većini svetskih jezika . Kada je LTR tekst pomešan sa RTL tekstom u istom pasusu , svaki tip teksta je napisan u svom smeru , i njega nazivamo dvosmerni tekst . Ovo može da postane vrlo komplikovano ako se koriste višestruki nivoi navodjenja . Mnogi kompjuterski programi ne uspevaju ispravno da prikažu dvosmerne tekstove . Na primer , Jevrejsko ime Sarah ( שרה ) se piše sin ( ש ) resh ( ר ) heh ( ה ) s desna na levo . Primetimo : Neki internet pretraživači mogu prikazivati jevrejski tekst u ovom članku u suprotnom smeru . Unikod podrška Podrška dvosmernih pisama ( Bidirectional script support ) je mogućnost računarskog sistema da ispravno prikaže dvosmerni tekst . Naziv je obično skraćen u žargonu terminom BiDi ili bidi . Rane kompjuterske instalacije bile su dizajnirane tako da podržavaju samo jednosmerna , najčešće s-leva-na-desno pisma zasnovana na latinskom pismu . Dodavanjem novih znakova i znakovnih kodiranja omogućeno je brojnim drugim s-leva-na-desno pismima da budu podržana , ali za s-desna-na-levo pisma kao što su Arapsko ili Jevrejsko je to bilo malo teže , i mešanje ta dva nije bilo jednostavno . S-desna-na-levo pisma predstavljena su kroz kodiranja kao što su ISO / IECi ISO / IEC čuvajući slova ( obično ) u pisanom i čitanom redosledu . Moguće je da jesnostavno okrenemo s-leva-na-desno redosled prikaza u s-desna-na-levo , ali time žrtvujemo mogućnost ispravnog prikaza pisama s-leva-na-desno . Sa podrškom dvosmernog pisma , moguće je da se mešaju različita pisma na istoj stranici , bez obzira na smer pisanja . Posebno , Unikodov standard obezbedjuje osnove za potpunu BiDi podršku , sa detaljnim pravilima kako se kodiraju i prikazuju mešanje s-leva-na-desno i s-desna-na-levo pisama . U Unikod kodiranju , ne-interpunkijski znakovi su sačuvani u pisanom redosledu . Ovo znači da je smer pisanja znakova sačuvan u samim znakovima . Ako je to slučaj , znak zovemo " jak " . Interpunkcijski znaci pak se mogu pojaviti kako u LTR tako i u RTL pismima . Njih zovemo " slabim " znakovima jer oni ne sadrže nikakve informacije o smeru . Tako softver odredjuje u kom smeru će ti " slabi " karakteri biti umetnuti . Ponekad ( u tekstovima mešanog smera ) ovo vodi do prikaza raznih grešaka izazvanih od strane BiDi algoritma , koji ispituje tekst,pronalazi LTR i RTL jake znakove i dodeljuje smer slabim znakovima , po odredjenim pravilima . U algoritmu , svaki niz spojenih jakih znakova nazivamo " run " . Slab znak koji se nalazi izmedju dva jaka znaka sa istim smerom nasledjuje njihov smer . Slab znak koji se nalazi ismedju dva jaka znaka sa različitim smerovima će naslediti smer glavnog konteksta( u LRT dokumentu znak će naslediti LTR smer , dok će u RTL dokumentu naslediti RTL smer ) . Ako je " slab " znak praćen drugim slabim znakom , algoritam će potražiti prvi najbliži " jak " znak . Ponekad ovo vodi do slučajnih grešaka prikazivanja . Te greške ispravljamo ili sprečavamo sa " pseudo-jakim " znakovima . Takve Unikod kontrolne znakove zovemo žigovi ( marks ) . Ti žigovi se ubacuju na odredjena mesta tako da bi ogradjeni slabi karakteri nasledili njihov smer . Na primer , da bi ispravno prikazali englesko ime brenda ( LTR ) u Arapskom ( RTL ) odeljku , ubacujemo LRM žig posle simbola marke ako on nije praćen LTR tekstom . Ako LRM žig nije ubačen , slab znak će biti najbliži jakom LTR znaku i jakom RTL znaku . Stoga , u RTL kontekstu , biće smatran da je RTL-smerni , i prikazan u pogrešnom redosledu . Pisma koja koriste dvosmerni tekst Egipatski hijeroglifi mogu se pisati dvosmerno , gde znakovi imaju " glavu " koja je okrenuta ka početku reda i " rep " okrenut ka kraju . Kinesko pismo se takodje može pisati u oba smera , kao i vertikalno ( odozgo na dole pa s desna na levo ) , naročito u znacima ( kao što su pločice ) , ali smer zasebnog znaka se nikad ne menja . Ove se često može videti na autobusima za turističke obilaske u Kini , gde se ime kompanije obično piše od početka do kraja vozila — odnosno , s desna na levo na desnoj strani vozila , i s leva na desno na evoj stani autobusa . Engleski tekstovi na desnoj strani vozila se takodje vrlo često pišu u obrnutom redosledu . Drugi različiti stilovi pisanja , nazvani bustrofidon ( boustrophedon ) , su korišćeni u nekim pismima , kao što su starogrčki zapisi i rovaško pismo . Ovaj metod pisanja naizmenično menja smer , i često obrće zasebne znakove , u svakom uzastopnom redu . Vidi još Internacionalizacija i lokalizacija Horizontalno i vertikalno pisanje u istočnoazijskim pismima Pismo Kombinovanje ćiriličnih miliona Transformacije teksta Bustrofedon Reference Literatura Spoljašnje veze Unicode Standards Annex #9 Dvosmerni algoritam W3C guidelines on authoring techniques for bi-directional text - sadrži primere i objašnjavanja GNU FriBidi Slobodna impementacija Unikodovog dvosmernog algoritma ICU Sadrži implementaciju dvosmernog algoritma — zajedno sa ostalim medjunarodnim servisima UCData : " Pretty Good Bidi Algorithm Library " Mali i brzi algoritam za promenu redosleda dvosmernih pisama koji radi dosta dobro , ali ne mora biti kompatibilan sa Unikod algoritmom Bidirectional Scripts in Desktop Software Radna grupa za podršku BiDi u Slobodnom softveru . Sadrži nekoliko veza ka materijalima za čitanje i implementaciji u računarskim sistemima koji se tiču BiDi . Another Wiki about BiDi Bidirectional text - Examples and practical advice \ .Net BiDi Implementation A freely available rather final version of Israeli standard- bidirectional text editing Work in progress on new version of Bidi editing standard + reference implementation Series of articles about pitfalls of BiDi programming Кодирање знакова Уникодни алгоритми