Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Informace
Řešení problémů s rozloženími kláves
10. května 2004, 00.00 | S problémy týkajícími se rozložení kláves a obecně systému skriptů (práce s národním prostředí) se u nás setkal snad každý. Zřejmě i vás trápí stále se přepínající rozložení kláves a možná jste se to pokusili vyřešit některým z rozložení dostupných na internetu nebo si vytvořit vlastní.
S problémy týkajícími se rozložení kláves a obecně systému skriptů (práce s národním prostředí) se u nás setkal snad každý. Zřejmě i vás trápí stále se přepínající rozložení kláves a možná jste se to pokusili vyřešit některým z rozložení dostupných na internetu, nebo si vytvořit vlastní.
Jediné informační zdroje k této problematice byly dosud vývojářská dokumentace Apple a různé mýty a polopravdy, které můžete najít v internetových diskusích. To se pokusím alespoň trochu změnit tímto dvoudílným článkem. V tomto díle se dozvíte, jaká nastavení a rozložení pomohou vyřešit vaše problémy s přepínáním a psaní česky nebo slovensky pod X11.
V druhém díle zjednodušeně vysvětlím, jak funguje část tzv. Script Manageru řídící práci s rozloženími kláves a znakovými sadami. To je zajímavé vědět, pokud chcete pochopit, proč vlastně problémy s rozloženími kláves vznikly, a téměř nezbytné, pokud chcete rozložení upravovat nebo vytvářet. K tomu se dostanu na konci příštího dílu.
Kdy dochází k samovolnému přepínání
Při práci s Mac OS X se ještě častěji než u předchozích systémů stává, že se bez vašeho zásahu přepne rozložení kláves, nejčastěji na americké. Obvykle na to přijdete, až po tom, co napíšete nějaký text s pokaženou diakritikou a prohozenými z a y. Ač to tak nevypadá, toto přepínání je záměrné a dochází k němu v několika přesně definovaných případech. Některým z příčin se dá zamezit a problém lze částečně vyřešit.
Hlavní myšlenka, kterou se automatické přepínání řídí je tato: Pokud upravuje text, který je v západním kódování (západní kódování se používá pro jazyky západní Evropy a Ameriky, středoevropské například pro češtinu a slovenštinu), měli byste k tomu použít západní rozložení kláves. To samozřejmě analogicky platí o středoevropském nebo jakémkoli jiném kódování. Při editování textu v západním písmu (kódování) dochází k přepnutí na naposledy použité západní rozložení, což obvykle bývá americké (U.S.). Jde o dnes už do jisté míry překonaný technologický problém – před zavedením Unicode ve středoevropských (CE) písmech nebyly některé západní znaky, které jsou na západních rozloženích a vice versa.
Synchronizace písma a klávesnice
Jak už to bývá, krásné myšlenky uvedené do praxe radikálně mění svou povahu. Výše uvedený princip byl do Mac OS začleněn pod jménem Synchronizace písma a klávesnice. Mělo by se tím zabezpečit, že klávesnice bude přepínána podle písma daného textu, což by v případě středoevropského českého rozložení a velkého množství textu v západních písmech uvítal málokdo, i kdyby to fungovalo. Ve skutečnosti však tento systém dokáže rozpoznat druh písma jen v některých aplikacích a v jiných zase přepíná na západní (tzv. Roman). A pokud aplikace nějak současný skript neidentifikuje, ponechá se poslední použité, místo toho vybraného uživatelem. V důsledku toto chování způsobuje ještě více potíží.
Špatně napsané aplikace
Apple ponechal programátorům volnou ruku, takže jakákoli aplikace běžící na popředí může změnit rozložení kláves pokud uzná za vhodné – i pokud máte vypnutou synchronizaci písma a klávesnice. Jedna z takových aplikací je Internet Explorer, jehož vývojáři považují za vhodnější pro psaní internetových adres západoevropská rozložení. URL ve skutečnosti nemá obsahovat žádné speciální, tedy ani západoevropské znaky, takže to nemá žádné opodstatnění.
Pole pro hesla
Ve všech aplikacích, které používají systémová pole pro hesla (kde se místo znaků zobrazují puntíky), dochází při vstupu do těchto polí k přepnutí klávesnice na rozložení Roman (většinou tedy americké). Nejčastěji jde o instalátory, panely System Preferences, bezpečná pole na internetových stránkách a přihlašování k serverům (e-mail, FTP a jiné). Přestože toto přepínání řídí samotný systém, v Apple zapomněli na přepínání rozložení zpět po ukončení úprav. O tom, že je tato volba stejně nesmyslná jako u Internet Exploreru, snad ani není třeba se zmiňovat.
Jak problém řešit
V prvé řadě si vypněte Synchronizace písma a klávesnice (viz výše) v aplikaci System Preferences: panel International, záložka Input Menu, tlačítko Options…:
Pokud jste narazili na takzvané nepřepínací rozložení kláves, vězte, že jsou stejně přepínací jako kterákoli jiná, ale přesto vám mohou výrazně ulehčit život. Jejich princip tkvi v tom, že jde o rozložení, která se systému identifikují jako Roman (západní), ale ve skutečnosti jde o české nebo slovenské rozložení. Právě na toto rozložení se pak bude systém přepínat místo na americké. To má ovšem jednu vadu na kráse: specifické středoevropské znaky nebude v některých případech možné v tomto rozložení používat, i tak se tím vyřeší alespoň y a z, interpunkce, číslice a běžné symboly.
Pojďme se podívat, co nám různé druhy těchto rozložení nabízejí a kde je najdete. Ještě poznamenám, že rozložení kláves je třeba zkopírovat do složky /Library/Keyboard Layouts, pokud chcete, aby byla dostupná pro všechny uživatele. Pokud mají být dostupná jen pro vás, zkopírujte je do složky ~/Library/Keyboard Layouts, kde ~ je vaše domovská složka (např. /Users/franta). Zde zmiňovaná rozložení jsou buď soubory s koncovkou .keylayout (od Ondřeje Čady), nebo složky s koncovkou .bundle (ode mě).
Osmibitové české a slovenské rozložení ve skriptu Roman
Takové rozložení bude plně funkční ve starých aplikacích, které nepoužívají Unicode, například v AppleWorks a většině aplikací v prostředí Classic. V aplikacích, jako je Finder, Mail, Safari nebo TextEdit ale místo zanků specifických pro středoevropské kódování (ě, š, č…) vystoupí zcela odlišné znaky západoevropské.
Takové rozložení si můžete stáhnout v české a slovenské verzi z mých stránek. Obdobná rozložení vytvořil i Jakub Formánek a další, žádný rozdíl mezi nimi ale není (snad jedině v tom, že některé nemají ikonky, případně nejsou odlišené od standardního českého rozložení) a na internetu se mi je nepodařilo najít.
České a slovenské rozložení Unicode ve skriptu Roman
Takové rozložení bude plně funkční pouze v nových aplikacích napsaných pomocí rozhraní Cocoa, tedy v aplikacích Mail, Safari nebo TextEdit, ale ne ve Finderu (který ač podporuje Unicode, je v Carbonu). V těchto aplikacích ovšem středoevropské Unicode rozložení ve skriptu Roman funguje jen díky chybě v systému – Unicode Roman rozložení totiž nesmí generovat jiné než Roman (západoevropské) znaky.
V Carbon Unicode aplikacích, jako je Finder, ani ve většině starších aplikací (AppleWorks, aplikace pro Classic) nebudou specifické středoevropské znaky (ě, š, č…) vůbec fungovat.
Nápad vytvořit takové nestandardní rozložení pochází od Ondřeje Čady. Jeho rozložení OCRoman obsahuje obsahuje české znaky (ě, š, č…), zbytek rozložení (y a z, interpunkce a symboly) ale odpovídá americkému. Pro nás ostatní jsem vytvořil rozložení, které odpovídá běžnému českému rozložení (navíc má ikonku odlišenou od standardní české klávesnice). Pokud máte zájem o slovenské rozložení, stačí jen pár změn, které můžete udělat po přečtení příštího dílu vy, nebo případně já.
Skutečné řešení
Skutečným řešením by bylo donutit systém, aby přepínal rozložení jen pokud je to nezbytné a i v tom případě poté nastavení vrátil zpět. Pokus o takové řešení si můžete stáhnout. Zatím ale funguje jen pod Mac OS X 10.2.x a má nějaké ty chyby. Připravuji od základů novou verzi, která by byla kompatibilnější.
Psaní česky a slovensky pod X11 (X Window)
Sice nemám osobní zkušenost, ale problémy s používáním českého rozložení v aplikacích X11 (X Window), například OpenOffice, se zřejmě dají vyřešit používáním Unicode rozložení (ne ve skriptu Roman, s přepínáním kláves to nesouvisí), kterým můžete nahradit svou běžnou Českou klávesnici (funguje totiž správně i v ostatních aplikacích). Toto rozložení si můžete stáhnout buď ode mě (běžné české) nebo od Ondřeje Čady z (poloamerické rozložení znaků, také nefungují klávesové zkratky obsahující alt!). Pokud byste potřebovali slovenské rozložení, opět stačí jen pár změn.
Obsah seriálu (více o seriálu):