Při programovém procházení si se směrem AR textu není třeba lámat hlavu, třeba goRight jde prostě na další znak, goLeft na předchozí a je mu jedno, jestli je směr textu zleva doprava či opačně. Něco trochu jiného je to na klávesnici když mačkáte šipky vpravo/vlevo a pro CTL se vám pro šipku vpravo posune kurzor doleva a pro šipku vlevo doprava :-). Ale v Libre v Nástroje -> Možnosti -> Jazyková nastavení - Ovládání kurzoru se dá zvolit i Vizuální a pak se i v CTL textu na šipku vpravo posune kurzor doprava a ne opačně systémem jdi na další/předchozí. Ale nefunguje to pro Del&Bksp a jelikož jsem si na to nezvykl ani po pár měsících, tak jsem se snažil to pro Del/Bksp nějak spolehlivě naimplementovat, ale prostě narážím na nedokonalosti v detekci :-), byť pro prostý AR text mi mé Del/Bksp makro celkem funguje, ale pere se mi to na začátcích/koncích řádků a místech, kde je CTL smícháno s latinkou a nechce se mi to obsáhle podmínkovat, když ne všechny AR znaky mají směr textu zprava doleva :-).
Já použil to If elseif záměrně, neboť mám v nějaké podmínce i mnohdy vícero OR a AND, což bych v Select Case nemohl.
S arabštinou je problém s tím, že jeden AR znak má občas vícero významů, takže přímá znaková konverze nemusí být vůbec správná. Např. dlouhé samohlásky "í" nebo "ú" -> "í" je ve skutečnosti zapsáno jako dva znaky "ij" a "ú" je zapsáno jako dva znaky "uw" -> a nejlepší na tom je to, že někdy "ij" znamená jednotlivé "i" a "j" a nikoliv "í" -> a programově se to nepozná, pořád jsou zapsány dva znaky "ij" a jestli je to "ij" nebo "í" někdy vychází třeba dle tvaru jiného slova, ale někdy se to prostě nemusí poznat a v úvahu připadají oba významy, s tím, že ale první může být třeba přídavné jméno a druhý třeba sloveso nebo se třeba vázat až na další slovo, takže pokud si to nevysvětlíte s autorem textu, může být i dost radikální rozdíl v těch možnostech, nehledě na to, když jsou texty tzv. "nevokalizované" a nejsou v nich zapsané krátké samohlásky (což je nejjednodušší a nejčastější způsob zápisu), to pak třeba dlouhé "í" je zapsáno jako "j" a pokud to slovo a arabská pravidla gramatiky vyloženě neznáte, tak nepoznáte zda jde o "í" nebo "j" a i tak to občas může mít oba významy :-). V české latince je jedno, zda slovo znáte nebo ne, prostě čtete písmeno po písmenu, špatné už je to třeba s angličtinou, kde pro správnou výslovnost musíte slovo znát, a pro arabský text musíte znát i potřebná gramatická pravidla, a že těch je skutečně dost :-).
Ještě je i perlička, že ne všechny AR písemné znaky jsou na klávesnici, takže občas kdybyste chtěl mít AR text čistě spisovně, tak vás vyfakuje i Google translator, protože slova s vloženým čistě spisovným znakem vůbec nebude znát, to pak musíte něco nahradit za lidovou formu a pak to někdy jde a někdy stejně ne :-).
Pak je ještě problém s tím mým obarvováním určitých písmen a tím obarveným podtrháváním -> pro obé mám víc variant barev, takže někdy třeba "m" bude mít jednu barvu a někdy jinou a někdy bude neobarvené, v závislosti na okolních písmenech. Jako kdyby bylo třeba zapsané arabsky "kamil" a já v závislosti třeba na koncovkách okolních slov jednou potřeboval dostat "kamil" s červeným "m", jindy s modrým "m" a jindy s podtrženým "m" :-).
Ale inspiroval jste mně s Calcem, takže zkusím vytvořit si ty AR údaje v jednom sloupci a české všelijak částečně barevné údaje ve druhém a pak pustím nahrazování. Pokud se mi to povede, tak mi to práci skutečně obrovsky zjednoduší než neustále připisovat další a další If elseif, to máte naprostou pravdu; a implementovat do Basicu proměnlivé částečně barevné nahrazování, to bych se jistě množství If Elseif nevyhnul :-). A ještě je výhoda jak jste mi psal načítat to ze zavřeného dokumentu, načtu si arabštinu a pustím nahrazování rovnou na načtený AR text, takže než naimplementuji všechna pravidla, tak dostanu směs latinky a AR a alespoň pěkně uvidím, co dalšího ještě musím zapracovat :-).