Ono jde i o nastavení parametrů v jakém jazyce vyhledat či naopak nevyhledat a poté ještě o "průniky jazyků". Například když zadám cs sk, tak bude vyhledávat jen v češtině a slovenštině, ale počítám i s tím, že to bude nastavitelně vyhledávat/nahrazovat i když se nalezne výraz který bude mít část v jednom a část v jiném jazyce. Např. kdybych měl slovo československý a část česko češtinou a slovensko slovenštinou, a například bych chtěl výraz kos nahradit za KOS, tak při povoleném "průniku jazyků" by po nahrazení vyšlo česKOSlovenský.
To samé by třeba platilo i pro vylučování jazyků, kdyby bylo zadáno cs -en tedy ber češtinu a také to co není anglicky. A ještě je varianta kdy odstavec může mít nastaveno 'Bez kontroly pravopisu'. Vzhledem tedy k průnikům a vylučování jazyků by instalace dalších jazyků nic nevyřešila. Navíc když se do Libre přidá další jazyk, tak to začne vypisovat stále dokola hlášky že nenašel slovník pro kontrolu pravopisu pro daný jazyk - alespoň takhle mi to pořád hlásilo pro arabštinu, takže jsem ten slovník musel doinstalovávat, naštěstí byl v Libre rozšířeních.
Nicméně to hledání už mi docela funguje, dám prostě nalézt vše jak v klasickém Najít&Nahradit a pak iteruji nalezené výsledky a pro výsledek který splňuje jazykovou podmínku udělám to, že mu nezměním vlastnost string abych mu nerozhodil případné formátování, ale na konec mu přidám sekvenci nulových arabských značek (značek s nulovou šířkou znaku: např. nulová mezera, směry pro ne/arabský text apod.). No a pak provedu druhé hledání kde zopakuji hledání akorát že hledaný výraz je rozšířen právě o tu sekvenci nulových značek. Toto druhé vyhledání pak dám normálně označit pomocí metody Select a poté přes replaceAll odstraním tu sekvenci nulek. I přes replaceAll však zůstane označeno to co bylo označeno Selectem a to je tedy to kýžené nalezené splňující dané jazykové parametry.
Akorát pro arabské písmo to někdy nejspíš problikne a 2x překreslí dokument, neboť ta sekvence nulových značek některé znaky rozpojí či naopak spojí a tím se změní šířky. A s tím nevím co udělat.
A zde by se hodilo právě umět označit více výběrů v dokumentu jako se to označí po klasickém Najít Vše. Jenže objekt com.sun.star.text.TextRanges prostě metodami Basicu nelze naplnit :-(. Procházel jsem i zdrojáky a největší úspěch byl, že mě z C++ nerozbolela hlava :-). Nicméně jsem i přes svou laickost došel k názoru (možná mylnému, nevím), že Basicem tohle prostě nejde, že ten objekt com.sun.star.text.TextRanges je vytvářen nějakou funkcí, která v Basicu implementována není. Kdyby to implementované bylo, tak by bylo po problému a nemusel bych to označovat přes ty nulové arabské značky.
Ale je fakt, že teď se mi to stejně nechce a nemám nějak chuť se tomuto problému v poslední době věnovat, neboť se to ukázalo o dost složitější a potřebuji to víc promyslet a přijít tomu zase na chuť. Např. jsem přišel na to, že by bylo záhodné vylepšit i samotné arabské nahrazování. Klasické Najít&Nahradit umožňuje pomocí volby Rozlišovat diakritiku vyhledávat třeba jen podle arabských souhlásek, takže např. abych vyhledal část slova kamil tak stačí dát hledat km a nemít zaplé rozlišování diakritiky. Jenže kdybych chtěl km nahradit třeba za nb, tak mi po nahrazení nezůstane nabil, ale jen nbil, neboť sice vyhledá jen dle souhlásek, ale nahradí bohužel i samohlásky. Pro tu arabštinu to alespoň znám a to nahrazování bych měl být schopen udělat tak jak to považuji za správné, ale problém už bych mohl mít třeba pro farsí nebo urdu, které mají navíc jiné samohlásky a nevím přesně jak se s nimi může nakládat - byť to asi bude to samé co pro arabštinu.
Dále se ještě poněkud děsím toho, že bych (i přesto že chci) měl udělat komplet checkboxy jako to je v Najít&Nahradit. Koukal jsem že je tam ještě možnost vyhledávat dle podobností, ale při testování mi to nefungovalo až tak jak jsem předpokládal či jak to bylo popsáno v Nápovědě. A to jsem zkoušel jen pro češtinu. Nevím jestli jsem testoval blbě nebo jde o chybu Libre. Pak jsem ještě zapnul podporu asijských písem a zděsil se, kolik voleb je tam pro japonštinu. Navíc některé ty volby právě nejdou nastavit pro metodu findFirst či findAll, ale je třeba vyhledávat přes UNO příkaz ExecuteSearch, který nemám tak důkladně prozkoumaný a nevím v jakých případech mohu které parametry vynechat a v jakých naopak některé musí mít dané nutné nastavení. No a stylem pokus/omyl jít fakt nechci, raději to pořádně promyslet.
Z toho jak se to ukázalo složité bych to také ani v nedodělané podobě nechtěl uveřejňovat, neboť bych nerad třeba odepisoval uživatelům -> o nedostatku vím, chystám se to dodělat, ale až NĚKDY Bůh-ví-kdy (+ a ví vůbec-li)! Navíc to ještě komunikovat v en, to by byla v současné situaci spíš noční můra. Přeci jen dělám stále usilovně na ar transkripci a ar fontu - ve kterém se mi třeba včera objevila chybová hláška, že tabulka s kotvami pro samohlásky do ligatur je už moc velká a tak jí to bude ignorovat. Naštěstí i přes tu chybovou hlášku se to chová stále stejně dobře a neblbne to. Vzhledem k tomu, že tam je několik stovek samohlásek, tak ručně přidávat další tabulku s kotvami by bylo strašnýho a možná i několikadenního klikání. Tak jsem koukal na to jestli by to nešlo přeci jen naskriptovat. A nejspíš šlo - asi snadněji kdybych uměl Python; ale vypadá to že to půjde i v nativním skriptování pro FontForge - akorát zrovna pro ty funkce které bych potřeboval není téměř dokumentace a bez pokusů/omylů by se to nejspíš neobešlo. Takže nechávám zatím nevyřešené a pokračuji a doufám, že jelikož to i přes tu chybu stále funguje, tak že to bude fungovat i při dalším rozšiřování fontu.
Věnovat nějaké větší úsilí tomu vytvářenému doplňku teď nechci, ukázalo se to o dost složitější než jak to zprvu vypadalo, mám spoustu jiné práce a nerad bych vydával neúplnou verzi kterou bych jaxi snad "dodělával" tak nějak po stížnostech uživatelů. Takže jsem zvolil prostě pomalu a postupně a až si budu jistý (nebo alespoň dost více jistý než nejistý) :-).