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
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) |
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
|
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ší.
Na pravé straně tohoto letadla Hainan Airlines text běží zprava doleva (海南 航空).
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é
- Internacionalizace a lokalizace
- Horizontální a vertikální psaní ve východoasijských skriptech
- Systém psaní § Směrovost
- Kombinace cyrilice milionů
- Značka zprava doleva
- Transformace textu
- Boustrofedon
Reference
externí odkazy
- Standardy Unicode, příloha č. 9 Obousměrný algoritmus
- Pokyny W3C k technikám vytváření textu pro obousměrný text - obsahují příklady a dobrá vysvětlení
- ICU International Components for Unicode obsahuje implementaci obousměrného algoritmu-spolu s dalšími službami internacionalizace