abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 14:55 | IT novinky

    Před 70 lety, 7. června 1954, ve věku 41 let, zemřel Alan Turing, britský matematik, logik, kryptoanalytik a zakladatel moderní informatiky.

    Ladislav Hagara | Komentářů: 10
    včera 11:44 | Zajímavý software

    NiceGUI umožňuje používat webový prohlížeč jako frontend pro kód v Pythonu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 1
    včera 10:55 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2024.6. Z novinek lze vypíchnout lepší integraci LLM (OpenAI, Google AI, Ollama) nebo podporu Matter 1.3.

    Ladislav Hagara | Komentářů: 0
    6.6. 20:55 | IT novinky

    IKEA ve Spojeném království hledá zaměstnance do své nové pobočky. Do pobočky v počítačové hře Roblox. Nástupní mzda je 13,15 liber na hodinu.

    Ladislav Hagara | Komentářů: 0
    6.6. 10:44 | Zajímavý článek

    Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.

    Ladislav Hagara | Komentářů: 35
    6.6. 01:00 | Nová verze

    Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    6.6. 00:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    5.6. 16:44 | IT novinky

    Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.

    Ladislav Hagara | Komentářů: 10
    5.6. 10:44 | Nová verze

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.

    Ladislav Hagara | Komentářů: 0
    5.6. 10:22 | Nová verze

    Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.

    Ladislav Hagara | Komentářů: 2
    Rozcestník

    Dotaz: smysl LC_CTYPE ?

    29.11.2004 15:23 Zdenek Stryhal | skóre: 10 | blog: ZS
    smysl LC_CTYPE ?
    Přečteno: 354×
    Snažím se pochopit jak funguje klávesnice.
    Čeština, jak jsem se dočetl a vyzkoušel, nefunguje bez příslušně nastavené LC_CTYPE. Chápu, že se takto nastaví systém, aby správně příjmal znaky z klávesnice. Nechápu však, jak zařídit aby systém byl schopen zpracovat znaky z různých znakových sad.
    Předpokládám, že pokud zvolím hodnotu "cs_CZ" bude fungovat také anglická klávesnice jako podmnožina. Jakou hodnotu mám však nastavit, kdybych chtěl přepínat mezi naprosto odlišnými klávesnicemi (např. us,cz,ru).

    Odpovědi

    29.11.2004 16:01 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Viz locale(7) a sekci Character Handling v info libc.

    LC_CTYPE určuje vlastnosti znaků -- co je a není písmeno, co je odpovídající malé/velké písmeno čeho a pod.

    S klávesnicí souvisí jen tak, že se špatně píší písmena, která nejsou považována za písmena (ale třeba za kontrolní znaky).

    LC_CTYPE má odpovídat kódování, kterou používáš. Buď je to UTF-8, pak je jazyk celkem irelevantní, nebo jsi schizofrenik, protože žádná osmibitová znaková sada neobsahuje zároveň kompletní české i ruské znaky.
    30.11.2004 08:19 rastos | skóre: 62 | blog: rastos
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Pravda je, ze tato problematika je pomerne komplikovana. Mal som problem najst ucelenu dokumentaciu, ktora by vysvetlila pojmy kodovania, charsetov, layoutov, (v linuxe tiez keybord option-vo, modelov a variantov) vztahov fontov a klavesnic ... proste je to chaos. Hlavne pre cloveka co sa s tou problematikou stretne prvy krat a nie je mu jasne aky nazov sa pouziva pre nieco co pozna z inej stranky.

    Myslim, ze tato tema, ako namet na clanok, by bola vysoko ocenena ;-)

    30.11.2004 10:11 Zdenek Stryhal | skóre: 10 | blog: ZS
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Ano, pak jsem to pochopil správně. Pokud chci zároveň používat více znakových sad(klávesnic) je třeba zvolit stále ne zcela použitelné UTF-8. Proč však potom existují locales typu "cs_CZ.UTF-8", proč ne pouze "UTF-8".
    Lze při změně klávesnice automaticky změnit hodnotu LC_CTYPE a aktuální font? (domnívám se, že ne, kvůli nepřipravenosti aplikací)
    Také se vám zdá situace kolem klávesnice(prakticky nejzákladnější HW) na linuxu značně neutěšená?
    30.11.2004 11:40 Michal Kubeček
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Protože LC_CTYPE slouží především pro klasifikaci znaků. Aplikace potřebují vědět, co je písmeno, které znaky jsou zobrazitelné na terminál apod. Tyhle věci se v jednotlivých jazycích (a občas i variantách) liší.
    30.11.2004 11:52 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Proč však potom existují locales typu "cs_CZ.UTF-8", proč ne pouze "UTF-8".

    Protože ostatní kategorie locale určují úplně jiné věci -- např. formát data a času nebo jazyk hlášek. Nevím, jak bys z UTF-8 poznal, jakým jazykem to má mluvit.

    Lze při změně klávesnice automaticky změnit hodnotu LC_CTYPE a aktuální font?

    Nejde a taková otázka vůbec nemá smysl -- hodnoty LC_CTYPE a aktuální font čeho? Používej UTF-8.

    Také se vám zdá situace kolem klávesnice (prakticky nejzákladnější HW) na linuxu značně neutěšená?

    Ne.
    30.11.2004 13:49 Zdenek Stryhal | skóre: 10 | blog: ZS
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Protože ostatní kategorie locale určují úplně jiné věci -- např. formát data a času nebo jazyk hlášek. Nevím, jak bys z UTF-8 poznal, jakým jazykem to má mluvit.

    Měl jsem na mysli LC_CTYPE, u ostatních locales je mi to jasné.


    hodnoty LC_CTYPE a aktuální font čeho? Používej UTF-8.

    Měl jsem na mysli LC_CTYPE a aktuální font pro příslušnou aplikaci. UTF-8 je patrně řešení, ale ne vše už uspokojivě funguje...

    30.11.2004 14:27 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Měl jsem na mysli LC_CTYPE, u ostatních locales je mi to jasné.

    To je nesmysl. Jméno locale je jen jedno. Když např. nastavím LANG=cs_CZ a nic jiného, tak se použije pro všechny kategorie. Kromě toho locale jsou dávno standardizovány ISO C (takže mimochodem stejně fungují i na MS Windows) a nemá smysl vymýšlet, jak by co by kdyby.

    Co to je ,aktuální font v příslušné aplikaci`? Tj. který program je příslušná aplikace a které jeho fonty se mají změnit?

    Kromě toho mohu xmodmapem plynule po jednom znaku předělat českou klávesnici na ruskou -- jak se má během toho přechodu chovat LC_CTYPE a fonty?

    Zkrátka to je pitomost, závislost chování aplikací na klávesnici je odporná vlasnost MS Windows, kterou rozhodně není dobrý nápad reprodukovat -- tobě se opravdu líbí, když máš text ve wordprocesoru napsaný střídavě po několika znacích různými fonty, protože jsi přepínal mezi českou a anglickou klávesnicí kvůli speciálním znakům (nebo naopak českým znakům, kterých mohlo být jen pár)?

    V Linuxu to nefunguje špatně, ale logicky. Tvůj názor, že je situace s klávesnicí neutěšená (a ostatně i tvoje představy o locale) spíš ukazuje na to, že naprosto netušíš, jak to funguje, než že to funguje špatně. Takže doporučuji nejprve si něco nastudovat.
    30.11.2004 20:03 Zdenek Stryhal | skóre: 10 | blog: ZS
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    jak se má během toho přechodu chovat LC_CTYPE a fonty?

    Domníval jsem se, že když stisknu klávesu, dostane program informaci závislou na kódování a bude jí podle stavu LC_CTYPE interpretovat. Když teda změním kódování měl by o tom program vědět. Pokud bude program ke stisknuté klávese vykreslovat znak, měl by vědět v jakém kódování, a zvolit příslušný font (nemyslím tedy měnit rodinu fontu ale pouze kódování, je li to možné).

    ...závislost chování aplikací na klávesnici je odporná vlasnost MS Windows, kterou rozhodně není dobrý nápad reprodukovat -- tobě se opravdu líbí, když máš text ve wordprocesoru napsaný střídavě po několika znacích různými fonty...

    Tohle bych opravdu nechtěl, ale MS Windows a wordprocesory prakticky nikdy nepoužívám.

    V Linuxu to nefunguje špatně, ale logicky. Tvůj názor, že je situace s klávesnicí neutěšená (a ostatně i tvoje představy o locale) spíš ukazuje na to, že naprosto netušíš, jak to funguje, než že to funguje špatně. Takže doporučuji nejprve si něco nastudovat.

    Opravdu se snažím pochopit(nastudovat) jak to funguje, často bohužel metodou pokus-omyl. Snažím se zjistit proč mi některé věci nefugují, nebo fugují jinak nž bych očekával. Uznávám, že mám značně zkreslené představy o locales. V systému mám nastaveno pouze LC_CTYPE, a snažím se zjistit k čemu vlastně je. V jeho existenci vidím spory, které zřejmě nejsou problém, a tak jsem chtel vědět proč.

    30.11.2004 20:22 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Domníval jsem se, že když stisknu klávesu, dostane program informaci závislou na kódování.

    Ne. Aplikace dostane symbol -- např. rcaron (neboli ř). Ten má význam nezávislý na kódování. Tedy ve skutečnosti je to kapku složitější, s řadou historických excesů, ale podstatné je, že symboly ,nepatří` žádnému kódování. Po

    xmodmap -e 'keysym a = Cyrillic_zhe'

    začne klávesa a psát ж. Což nijak nesouvisí s ruštinou -- nebo to má být ukrajinština? bulharština? Jak by se to poznalo? Prostě jen začne psát ж.
    1.12.2004 08:59 Zdenek Stryhal | skóre: 10 | blog: ZS
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Aplikace dostane symbol -- např. rcaron (neboli ř). Ten má význam nezávislý na kódování.

    Ano, to jsem zjistil programem xev. Právě to byl důvod, proč jsem se začal zajímat o LC_CTYPE. Symbol zřejmě dostane podle nastavené klávesnice a nezávisle na LC_CTYPE nebo jinde nastaveném kódování. Proč však je však symbol při neadekvátně nastavené LC_CTYPE chybně(vůbec ne) interpretován když je naprosto jasné o co jde nezávisle na kódování(např. xterm)? Očekával bych třeba chybovou hlášku, že program si není jistý co s takovým symbolem dělat.

    1.12.2004 09:07 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Nechápu, co je na tom chybného a neadekvátního. Nepoužíváš-li UTF-8, tak ses omezil na podmnožinu symbolů, které akceptuješ. Ty ostatní neakceptuješ.

    P.S.: Terminál, který by vypisoval jakékoli chybové hlášky při čemkoli (kromě při spuštění), by u mě nevydržel ani pět minut.
    Stanislav Brabec avatar 30.11.2004 14:28 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Měl jsem na mysli LC_CTYPE a aktuální font pro příslušnou aplikaci.

    Takovému řešení používal blahé paměti altfontpatch v AmigaOS. Také to uspokojivě nefungovalo: Okna se překreslila jen v překrytých částech. Jiným oknům neseděla velikost. Text v původním jazyce se stal nečitelný. Všechna kódování musela mít tentýž převod kód znaku <-> CTYPE (což pro ISO-8859 neplatí).

    V X, kde si každá aplikace vybírá font podle svého, a zdaleka ne každý má obdobu, by to vedlo k častým pádům aplikací.

    Navíc moderní aplikace (GTK2, KDE3) již dávno nepracují s jednotlivými fonty, ale s více fonty najednou a na vyžádání natahují jednotlivé znaky. A pracují interně v UNICODE.
    29.11.2004 17:07 Maude Lebowski
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    LC_CTYPE=cs_CZ.UTF-8
    30.11.2004 10:25 Zdenek Stryhal | skóre: 10 | blog: ZS
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Proč zrovna "cs_CZ.UTF-8" a ne "UTF-8", má snad "cs_CZ" nejaké výsadní postavení? / Rád bych si to myslel :-) /
    Stanislav Brabec avatar 30.11.2004 12:26 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Nemá, ale pokud si nastavíte třeba LC_CTYPE=tr_TR.UTF-8, pak se vám budou písmena chovat podle pravidel spisovné turečtiny, tedy písmenu i už nebude odpovídat velké I, ale velké İ, a písmenu I se přiřadí malé ı, nikoliv malé i.

    Podobně to bude i s jinými jazyky. U proměnné LC_COLLATE budou rozdíly ještě výraznější.

    Chcete-li kombinovat ruštinu s češtinou, budete muset použít UTF-8 (nebo jinou reprezentaci UNICODE), některé orientální kódování nebo nějaké obskurní kódování z dob RVHP (ke kterému si dopíšete charmap). Anebo se spokojit s tím, že budete neustále přepínat font, a vždy vidět správně jen polovinu textu.
    zgrep -l "CYRILLIC SMALL LETTER SHCHA" $(zgrep -l "SMALL LETTER N WITH CARON" /usr/share/i18n/charmaps/*)
    
    30.11.2004 13:56 Zdenek Stryhal | skóre: 10 | blog: ZS
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Jak to však udělá chudák turek když bude chtít psát taky ještě česky?
    Stanislav Brabec avatar 30.11.2004 14:20 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Použije některé z kódování, které mu najde výše zmíněný zgrep. Třeba UTF-8.

    A s tím, že mu nebude správně chodit převod malých písmen na velké, se musí smířit. Jen v aplikacích, kde je možné explicitně vyznačit, která číst textu je v kterém jazyce (třeba TeX), tam může převod fungovat korektně.
    30.11.2004 19:30 Zdenek Stryhal | skóre: 10 | blog: ZS
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Dobře, tomu rozumím, UTF-8 je pro tento případ dobrá nadmnožina kódování.
    Proč je však převod malých písmen na velké závislý na "proměnné" která se nastavuje v nadřazeném terminálu? Je to jen implicitní nastavení nebo to lze operativně nastavit? (xterm ... export LC_CTYPE=... asi nebude to pravé?)
    30.11.2004 20:19 Michal Kubeček
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Není. Je závislý na nastavení proměnné prostředí toho programu, který to převádí. Ten ji ovšem obvykle dědí od shellu, z něhož byl spuštěn. Terminál žádné proměnné prosředí nemá.
    30.11.2004 20:23 Zdenek Stryhal | skóre: 10 | blog: ZS
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Jasně shell :-)
    30.11.2004 20:24 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Každý proces má proměnné prostředí. Terminál je taky proces.

    LC_ALL=en xterm

    a

    LC_ALL=cz_CZ.UTF-8 xterm

    vytvoří znatelně jinak se chovající xtermy.
    30.11.2004 20:28 Michal Kubeček
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Terminál není proces. Terminál je znakové zařízení.
    30.11.2004 20:34 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Jeden z významů slova terminál je program emulující terminál (který je sám o sobě zařízení umožňující posílat příkazy na vzdálený počítač). A to je proces.
    30.11.2004 20:37 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Obecně terminál není to znakové zařízení, ale věc která se chová jako terminál. Tj. faktorgrupa emulací terminálu vzhledem k implementaci...
    30.11.2004 12:28 Miroslav Franc
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Ne nemá žádné výsadní postavení : ))) Proste je taková syntaxe : ))

    "jazyk_teritorium.znakovaSada"

    Jazyk je podle ISO 639 pro nas cs, teritorium podle ISO 3376 pro nas CZ.
    30.11.2004 12:36 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    Přesněji je to

    jazyk[_teritorium][.znakovásada][@modifikátor]

    Modifikátory jsou např. v no@nynorsk nebo uz@Cyrl, uz@Latn.
    1.12.2004 21:05 Miroslav Franc
    Rozbalit Rozbalit vše Re: smysl LC_CTYPE ?
    No dobre : ), nechtel jsem to zas az tak komplikovat.

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.