Obousměrný text - Bidirectional text

Obousměrného textu obsahuje dva textové směrovostí , zprava doleva (RTL) a zleva doprava (LTR). Obecně zahrnuje text obsahující různé typy abeced , ale může také odkazovat na boustrofedon , který mění směr textu v každém řádku.

Mnoho počítačových programů nedokáže správně zobrazit obousměrný text. Hebrejské jméno Sarah (שרה) je například napsáno: sin (ש) (které se zobrazuje úplně vpravo), pak resh (ר) a nakonec heh (ה) (které by mělo vypadat úplně vlevo).

Poznámka: Některé webové prohlížeče mohou zobrazovat hebrejský text v tomto článku v opačném směru.

Obousměrná podpora skriptů

Obousměrná podpora skriptů je schopnost počítačového systému správně zobrazit obousměrný text. Termín je často zkrácen na „ BiDi “ nebo „ bidi “.

Rané počítačové instalace byly navrženy pouze pro podporu jediného systému psaní , typicky pro skripty zleva doprava založené pouze na latinské abecedě . Přidání nových znakových sad a kódování znaků umožnilo podporovat řadu dalších skriptů zleva doprava, ale nepodporovalo snadno skripty zprava doleva, jako je arabština nebo hebrejština , a míchání těchto dvou nebylo praktické. Skripty zprava doleva byly zavedeny prostřednictvím kódování jako ISO/IEC 8859-6 a ISO/IEC 8859-8 , které ukládalo písmena (obvykle) v pořadí psaní a čtení. Je možné jednoduše otočit pořadí zobrazení zleva doprava na pořadí zobrazení zprava doleva, ale tím se obětuje schopnost správně zobrazit skripty zleva doprava. S podporou obousměrného skriptu je možné na stejné stránce míchat postavy z různých skriptů bez ohledu na směr psaní.

Standard Unicode zejména poskytuje základy pro úplnou podporu BiDi s podrobnými pravidly, jak mají být kódovány a zobrazovány směsi skriptů zleva doprava a zprava doleva.

Podpora Unicode bidi

Standard Unicode požaduje, aby byly znaky uspořádány „logicky“, tj. V pořadí, v jakém mají být interpretovány, na rozdíl od „vizuálně“, v pořadí, v jakém se objevují. Toto rozlišení je relevantní pro podporu bidi, protože při jakémkoli přechodu bidi přestává být vizuální prezentace „logická“. Aby tedy Unicode nabídla podporu bidi, předepisuje algoritmus, jak převést logickou sekvenci znaků na správnou vizuální prezentaci. Za tímto účelem standard kódování Unicode rozděluje všechny své znaky na jeden ze čtyř typů: „silný“, „slabý“, „neutrální“ a „explicitní formátování“.

Silné postavy

Silné postavy jsou ty, které mají určitý směr. Mezi příklady tohoto typu znaků patří většina abecedních znaků, slabičných znaků, hanopisů, neevropských nebo nearabských číslic a interpunkčních znamének, které jsou specifické pouze pro tyto skripty .

Slabé postavy

Slabé postavy jsou ty s neurčitým směrem. Mezi příklady tohoto typu znaků patří evropské číslice, východní arabsko-indické číslice, aritmetické symboly a symboly měn.

Čísla

Pokud není k dispozici směrové přepsání, jsou čísla vždy zakódována (a zadána) big-endian a číslice vykresleny LTR. Slabá směrovost se týká pouze umístění čísla jako celku.

Neutrální postavy

Neutrální postavy mají směr neurčitelný bez kontextu. Mezi příklady patří oddělovače odstavců, tabulátory a většina ostatních prázdných znaků. Do této kategorie spadají také interpunkční symboly, které jsou společné mnoha skriptům, například dvojtečka, čárka, tečka a mezera bez přerušení.

Explicitní formátování

Explicitní formátovací znaky, označované také jako „směrově formátovací znaky“, jsou speciální sekvence Unicode, které směřují algoritmus ke změně jeho výchozího chování. Tyto znaky jsou rozděleny na „značky“, „vložení“, „izoláty“ a „přepsání“. Jejich účinek pokračuje, dokud se neobjeví oddělovač odstavců nebo znak „pop“.

Marks

Pokud za „slabým“ znakem následuje další „slabý“ znak, algoritmus se podívá na první sousední „silný“ znak. Někdy to vede k neúmyslným chybám zobrazení. Tyto chyby jsou opravovány nebo jim lze předcházet pomocí „pseudosilných“ znaků. Takové řídicí znaky Unicode se nazývají značky . Značka ( U+200E LEFT-TO-RIGHT MARK (LRM) nebo U+200F RIGHT-TO-LEFT MARK (RLM)) má být vložena na místo, aby uzavřený slabý znak zdědil její směr psaní.

Například pro správné zobrazení ZNAČKY OBCHODNÍ ZNAČKY U+2122 pro anglickou značku (LTR) v pasáži v arabštině (RTL) je za symbol ochranné známky vložena značka LRM, pokud za symbolem není text LTR (např. „ قرأ Wikipedia ™ طوال اليوم. “). Pokud není přidána značka LRM, bude slabý znak ™ sousedit se silným znakem LTR a silným znakem RTL. V kontextu RTL bude tedy považován za RTL a bude zobrazen v nesprávném pořadí (např. „ قرأ Wikipedia ™ طوال اليوم. “).

Vkládání

"Vkládání" směrových formátovacích znaků je klasickou metodou explicitního formátování Unicode a od Unicode 6.3 se nedoporučuje používat "izoláty". „Vložení“ signalizuje, že s textem je třeba zacházet jako s odlišným směrem. Text v rozsahu vkládání formátovacích znaků není nezávislý na okolním textu. Také znaky v rámci vkládání mohou ovlivnit pořadí znaků venku. Unicode 6.3 uznal, že směrová vložení mají obvykle příliš silný vliv na své okolí, a proto je jejich použití zbytečně obtížné.

Izoluje

Znaky „izolovat“ směrové formátování signalizují, že s kusem textu je třeba zacházet jako se směrově izolovaným okolím. Od Unicode 6.3 jsou to formátovací znaky, které jsou podporovány v nových dokumentech - jakmile je známo, že je podporují cílové platformy. Tyto formátovací znaky byly představeny poté, co vyšlo najevo, že směrová vložení mají obvykle příliš silný vliv na své okolí, a proto jsou zbytečně obtížně použitelná. Na rozdíl od starších „vkládajících“ znaků směrového formátování nemají znaky „izolovat“ žádný vliv na uspořádání textu mimo jejich rozsah. Izoláty lze vnořovat a mohou být umístěny do vložení a přepsání.

Přepisy

Směrové formátovací znaky „přepsat“ umožňují speciální případy, například čísla dílů (např. Vynucení psaní čísla součásti ze smíšené angličtiny, číslic a hebrejských písmen zprava doleva), a doporučuje se jim vyhnout, kdykoli je to možné . Stejně jako u ostatních znaků směrového formátování, „přepisy“ lze vnořovat jeden do druhého, a to do vložení a izolátů.

Pops

Směrové formátovací znaky „pop“ ukončují rozsah nejnovějšího „vkládání“, „přepisování“ nebo „izolování“.

Běží

V algoritmu se každá sekvence zřetězených silných znaků nazývá „běh“. „Slabý“ znak, který se nachází mezi dvěma „silnými“ postavami se stejnou orientací, zdědí jejich orientaci. „Slabý“ znak, který se nachází mezi dvěma „silnými“ postavami s odlišným směrem psaní, zdědí směr psaní hlavního kontextu (v dokumentu LTR se znak stane LTR, v dokumentu RTL se stane RTL).

Tabulka možných typů znaků BiDi

Obousměrný typ znaku ( vlastnost znaku Unicode Bidi_Class)
Typ Popis Síla Směrovost Obecný rozsah Znak Bidi_Control
L Zleva do prava Silný L-to-R Většina abecedních a slabičných znaků, čínské znaky, mimoevropské nebo nearabské číslice, znak LRM, ... U+200E ZNAČKA ZLEVA VPRAVO (LRM)
R. Zprava doleva Silný R-to-L Adlam, Hebrew, Mandaic, Mende Kikakui, N'Ko, Samaritan, starověké skripty jako Kharoshthi a Nabataean, charakter RLM, ... U+200F ZNAČKA Zprava doleva (RLM)
AL Arabský dopis Silný R-to-L Arabská, Hanifi Rohingya, Sogdian, Syriac a Thaana abeceda a většina interpunkce specifická pro tyto skripty, ALM znak, ... U+061C ARABIC LETTER MARK (ALM)
EN Evropské číslo Slabý Evropské číslice, východní arabsko-indické číslice, koptská epaktová čísla, ...
ES Evropský separátor Slabý znaménko plus , mínus , ...
ET Evropský terminátor čísel Slabý znak stupně , symboly měny, ...
AN Arabské číslo Slabý Arabsko-indické číslice, arabská desetinná čísla a oddělovače tisíců, číslice Rumi, číslice Hanifi Rohingya, ...
CS Společný oddělovač čísel Slabý dvojtečka , čárka , tečka , mezera bez přerušení , ...
NSM Mezera Slabý Znaky v obecných kategoriích Označit, bez mezer a Označit, uzavírající (Mn, Me)
BN Hranice Neutrální Slabý Výchozí ignorovatelné, neznaky, řídicí znaky jiné než ty, které jsou výslovně uvedeny u jiných typů
B Oddělovač odstavců Neutrální oddělovač odstavců , příslušné funkce nového řádku, určení odstavce protokolu na vyšší úrovni
S Oddělovač segmentů Neutrální Záložky
WS Prázdné místo Neutrální mezera , mezera obrázku , oddělovač řádků , posuv formuláře , mezery v obecných interpunkčních blocích (menší sada než prázdný seznam Unicode )
NA Ostatní neutrální Neutrální Všechny ostatní znaky, včetně znaku pro nahrazení objektu
LRE Vkládání zleva doprava Explicitní L-to-R Pouze znak LRE U+202A VLEVO-VPRAVO VLOŽENÍ (LRE)
LRO Přepsání zleva doprava Explicitní L-to-R Pouze znak LRO U+202D OVLÁDÁNÍ ZLEVA VPRAVO (LRO)
RLE Vkládání zprava doleva Explicitní R-to-L Pouze znak RLE U+202B VLEVO VLEVO (RLE)
RLO Přepsání zprava doleva Explicitní R-to-L Pouze znak RLO U+202E PŘEPRAVA Zprava doleva (RLO)
PDF Pop Directional Format Explicitní Pouze znak PDF SMĚROVÉ FORMÁTOVÁNÍ U+202C POP (PDF)
LRI Izolujte zleva doprava Explicitní L-to-R Pouze znak LRI U+2066 IZOLACE ZLEVA VPRAVO (LRI)
RLI Izolace zprava doleva Explicitní R-to-L Pouze znak RLI U+2067 ODOLNOST ZPRÁVY ZLEVA (RLI)
FSI První silný izolát Explicitní Pouze znak FSI U+2068 PRVNÍ SILNÝ IZOLÁT (FSI)
PDI Pop Directional Isolate Explicitní Pouze znak PDI U+2069 POP DIRECTIONAL ISOLATE (PDI)
Poznámky
1. ^ Unicode Bidirectional Algorithm (UAX#9) , Od verze Unicode 12.0
2. ^ Možné obousměrné typy znaků pro znakovou vlastnost: Bidi_Class nebo 'type'
3. ^ Znaky Bidi_Control : Je definováno dvanáct znaků formátování Bidi_Control. Jsou neviditelní a kromě směrovosti nemají žádný účinek. Devět z nich má jedinečný, potlačující typ BiDi, který algoritmus používá. Jejich typ je také jejich zkratkou (např. Znak 'LRE' má typ BiDi 'LRE').

Skripty využívající obousměrný text

Egyptské hieroglyfy

Egyptské hieroglyfy lze psát obousměrně, kde znamení měla výraznou „hlavu“, která směřovala na začátek čáry, a „ocas“, který směřoval ke konci.

Čínské znaky a další skripty CJK

Čínské znaky lze psát v obou směrech i ve svislém směru (shora dolů, pak zprava doleva), zejména ve znacích (například plakety), ale orientace jednotlivých znaků se nikdy nezmění. To lze často vidět na zájezdových autobusech v Číně, kde název společnosti obvykle běží od přední části vozidla k jeho zadní části - tj. Zprava doleva na pravé straně autobusu a zleva doprava vlevo straně autobusu. Anglické texty na pravé straně vozidla jsou také zcela běžně psány v opačném pořadí. (Níže viz obrázky zájezdového autobusu a poštovního vozidla.)

Podobně lze další skripty CJK tvořené stejnými čtvercovými znaky, jako je japonský psací systém a korejský psací systém , zapisovat libovolným směrem, i když zleva doprava, shora dolů a zprava doleva vlevo jsou nejčastější.

Boustrofedon

Boustrophedon je styl psaní, který se nachází ve starověkých řeckých nápisech a v maďarských runách . Tento způsob psaní střídá směr a obvykle obrací jednotlivé znaky na každém následujícím řádku.

Měsíční typ

Měsíční typ je reliéfní adaptace latinské abecedy vynalezená jako hmatová abeceda pro nevidomé. Zpočátku text změnil směr (ale ne orientaci znaků) na konci řádků. Speciální reliéfní čáry spojovaly konec řádku a začátek dalšího. Kolem roku 1990 došlo ke změně orientace zleva doprava .

Viz také

Reference

externí odkazy