Portál AbcLinuxu, 27. dubna 2024 02:25


Dotaz: KDE nechce psát háčky

1.4.2005 01:23 Andrej | skóre: 51 | blog: Republic of Mordor
KDE nechce psát háčky
Přečteno: 288×
Odpovědět | Admin
Ahoj, mám následující problém s KDE.

V KDE jsem si stáhl lokalizaci a nastavil češtinu. Všechna písmena horní řady (ěščřžýáíé) se píší správně. Prefixová klávesa ale funguje jen pro čárky, což je zcela nepochopitelné. Např. ó, Ó napíšu bez problémů, zatímco ď, ť, ň psát nemůžu... Místo nich se píší písmena bez háčků. Chová se to, jako bych prefix vůbec nestiskl, a to i u písmen, která jinak horní řada kláves bez potíží vypíše. Dvě největší záhady nakonec:

1) Děje se to s každým fontem.

2) Děje se to pouze a výhradně v aplikacích KDE, (např. KWrite, Konsole). Všude jinde (Mozilla, Gimp, ...) to funguje správně s každým českým fontem.

Zkoušel jsem desítky kombinací nastavení. Prošel jsem všechny klávesové zkratky v KDE, jestli nekolidují s prefixem, četl jsem kdejaké konfigurační soubory a manuály, ale ono pořád nic. :-( Věděl by někdo co s tím?

Linux: Arch Linux 0.7 KDE: 3.4
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.4.2005 01:36 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
Rozbalit Rozbalit vše Re: KDE nechce psát háčky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Střílím od pasu, ale malinko podobně se projevovaly (tedy i při správné mapě klávesnice) nesprávně nastavené hodnoty proměnných prostředí pro lokály.

Zjednodušeně: Vysype "printenv | grep LC" alespoň jeden řádek s cs_CZ? Resp. jak takový výpis vypadá...
http://prirucka.ujc.cas.cz/?ref=785&id=790.
1.4.2005 02:11 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Skvělá trefa
To bude určině ono. :-) Díky za výborný postřeh. Grep tam nenajde nic kromě tohoto:
LC_COLLATE=C
To je dost málo. Jak bych to mohl nastavit?

Ještě mě napadá další otázka: Abych měl v konzolích češtinu (mám framebuffer), musel jsem zavést takový ošklivý tlustý český font. Nešlo by vhodným nastavením těch proměnných docílit, abych žádný konzolový font použít nemusel? Jsem si 100% jist, že můj stroj má v BIOSu i české fonty. (A defaultně se přece fonty pro framebuffer natahují rovnou z ROM, jestli se nemýlím.)
1.4.2005 09:42 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
Rozbalit Rozbalit vše Re: Skvělá trefa
Mělo by snad stačit mít nastavenou např. proměnnou LC_CTYPE=cs_CZ. LC_COLLATE na C snad nebude dělat problémy - v tomto se omlouvám, ale nejsem opravdový znalec lokálů a můj vztah k nim je velmi pragmatický. :)

Kam ji píchnout v konkrétní distribuci si nejsem jistý, ale začal bych určitě od /etc/profile, někdy /etc/profile.d/ kde může být extra soubor s jazykovými proměnnými (ne že by to bylo tak podstatné, ale aby v tom byl pořádek). Dobrou volbou může být, najít kde je LC_COLLATE ( grep -r 'LC_COLLATE=C' /etc ).

Pak je taky samozřejmě podstatné, abyste měl vygenerované lokály cs_CZ, u mě bydlí v /usr/lib/locale a mají tam i UTF8 brášku.

Framebuffer vůbec nepoužívám a tato část dotazu tak zůstává pro někoho dalšího...
1.4.2005 09:53 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Skvělá trefa
Jednoduše si správně nastavte proměnnou LANG=cs_CZ.UTF-8 nebo na iso pokud nepoužíváte unicode.

>Jsem si 100% jist, že můj stroj má v BIOSu i české fonty.

No a já jsem si jistý že tvůj BIOS na 100% české znaky neobsahuje. (BIOS MB zaručeně ne a BIOS grafiky sice většinou může obsahovat více fontů, ale za celej svůj život jsem neviděl grafiku která by měla tam jiné fonty než EN :-) pokud byla prodaná u nás, a nebyl její bios upravován - to už jsem taky viděl. )

To že grafika píše česky je spůsobeno zavedením externích fontů, nejakým rezidentním programem v MS-DOSU nebo i samotným programem. Jinak moderní OS již používají grafický výstup takže tam si fonty vykresluje přímo OS v grafickém režimu.

Takže nastavit LANG podle toho co používáte za kodování zda unicode či iso nebo nějaké jiné. No a pro framebufer zavést fonty podle vašeho uvážení jaké se vám budou líbit, nebo změnit rozlišení toho framebuferu aby to vypadalo pěkně (ono taky záleží jaké se používá rozlišení a kolik řádků a znaků se tím pádem vleze na ten monitor čili zda se použije font o X x Y pixelů) prostě musíte si s tím pohrát co se vám bude líbit.
1.4.2005 12:27 Ondřej Kubečka
Rozbalit Rozbalit vše Re: Skvělá trefa
Dovolil bych si mírně oponovat: jde o to, čeho chce člověk dosáhnout. proměnná LANG má např. z mého pohledu nepříjemné vedlejší účinky. :) Prostě pokud jde jen o psaní háčků, je to trochu moc ze široka.Čímž neříkám, že to není cesta. :)
2.4.2005 03:39 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Už to háčkuje
Moc díky za rady. Pokud jde o háčky v KDE, vyřešil to tento záznam v /etc/profile:
export LANG="cs_CZ.iso88592"
export LC_CTYPE="cs_CZ"
export LC_COLLATE="C"
Pořád netuším, k čemu je LC_COLLATE... Nikde v manuálových stránkách jsem se nějak nedočetl, jakých hodnot by měla taková proměnná nabývat a co se podle ní vůbec řídí. Zda je důležitá čí nikoliv, to je ve hvězdách. (I Linux má svá tajemství... :-))

Co se týká konzole a češtiny, při načítání příkazem v rc.sysinit se bez potíží načte správné rozložení klávesnice, font i znaková sada. Jenže během přihlašovacího procesu (tj. agetty, který spustí login) nezůstane zachováno nastavení znakové sady. Zachová se pouze rozložení klávesnice a font, což samo o sobě není k ničemu, když se přistupuje ke špatné části toho fontu. (Je to font typu drdos, který má přes 400 znaků.) Samozřejmě jsem důkladně přečetl všechny inicializační soubory pro bash ve všech profilech, ale nic závadného jsem tam nenašel.

Zatím jsem to (nouzově) vyřešil tak, že jsem to z bootovacích skriptů přesunul do /etc/profile. Při každém přihlášení se pak spustí (mimo jiné):
/bin/loadkeys -q i386/qwertz/cz-us-qwertz.map.gz
/usr/bin/setfont drdos8x16 -m 8859-2
(Poznámka 1: Tohle je pro Arch Linux 0.7, jiné distro má třeba jinde jiné fonty...)

(Poznámka 2: Kdybych totéž napsal do rc.sysinit, po přihlášení se zachová všechno kromě toho "-m 8859-2", které je pak nutné ještě jednou explicitně nastavit. Přitom ale pomocí -v (verbose) lze snadno ověřit, že se během bootu skutečně nastaví i ta znaková sada, která se pak během loginu záhadně vytratí.)

Tohle ovšem není zrovna nejčistší řešení a přihlášení v některé z konzolí někdy ovlivní nastavení těch ostatních a jindy zase ne. (Nevysvětlitelné... :-D) Kdyby někdo věděl o lepším řešení, s nadšením bych to uvítal.
wake avatar 2.4.2005 08:08 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: Už to háčkuje
LC_COLLATE nastavuje poradi znaku pro třídění (aábcčdď..hchií..zž). Otazka je, ktere programy to vyuzijí.

jinak misto vasich tri promennych staci nastavit jedinou: LC_ALL=cs_CZ. Navic, pokud se prihlasujete pomoci KDM nebo GDM, tak to lze nastavit tam, jeste predtim, nez se prihlasite. Pka se vas to zeptra na ulozeni settings.

konzole pri bootu: Arch linux neznam, ale tipoval bych, ze tu konzoli po vasem nastaveni neco vyresetuje. zkoumal bych boot sekvenci.
Tento příspěvek má hlavičku i patičku!
2.4.2005 17:22 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Už to háčkuje
LC_ALL bych nepoužíval podle toho co jsem slyšel to dělá problémy v knihovně. Toto je spíše pro přebytí ostatních nastavení. Doporučuje se provádět nastavení LANG a ostatní proměnné nenastavovat případně je nastavit pokud je chcete nastavit odlišně od LANG.

Jak jsou proměnné nastavené zjistíte pomocí locale viz třeba u mě je nastavené pouze LANG a nastaví se ostatní LC_* mimo LC_ALL.
[petr@soban ~]$ locale
LANG=cs_CZ.UTF-8
LC_CTYPE="cs_CZ.UTF-8"
LC_NUMERIC="cs_CZ.UTF-8"
LC_TIME="cs_CZ.UTF-8"
LC_COLLATE="cs_CZ.UTF-8"
LC_MONETARY="cs_CZ.UTF-8"
LC_MESSAGES="cs_CZ.UTF-8"
LC_PAPER="cs_CZ.UTF-8"
LC_NAME="cs_CZ.UTF-8"
LC_ADDRESS="cs_CZ.UTF-8"
LC_TELEPHONE="cs_CZ.UTF-8"
LC_MEASUREMENT="cs_CZ.UTF-8"
LC_IDENTIFICATION="cs_CZ.UTF-8"
LC_ALL=
[petr@soban ~]$
wake avatar 2.4.2005 20:47 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: Už to háčkuje
mate pravdu, popletl jsem si ty dve. mam to stejne. omlouvam se za mystifikaci.
Tento příspěvek má hlavičku i patičku!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.