Konzol locale váltás/módosítás

Fórumok

Biztos volt már erről szó, de nem találom :(
Locale -t szeretnék váltani - van néhány DOS -os lista amiben bogarásznom kéne - de nem akarom a globális locale (pl. LANG=en_US.UTF-8 stb.) váltani. Csak egy munkamenetre (session - amíg be vagyok jelentkezve) egy adott konzolra szeretnék váltani (nyelv, karakter készlet stb.).
Tudja valaki hogy lehet ezt megoldani?
A globális, rendszer locale az egyszerű (dpkg-reconfigure console-setup) és kész. De mi van ha csak átmenetileg kell/kéne váltanom (mindent LANG ... LC_IDENTIFICATION).

Hozzászólások

Ez működik - minden átállt hu_HU.ISO8859-2
De akkor ez nem az ami nekem kell :(
Hogy tudok (konverzió nélkül) belenézni egy IBM-852 kódlappal készült fájlba, parancssorból, úgy hogy az ékezetek is megjelenjenek? Ráadásul nekem olyanok is kellenek mint pl. a grep.
Itt nem csak a locale -t de sok mást is másképp kell beállítani :(

* Én egy indián vagyok. Minden indián hazudik.

Alapvetően két dolgot kell beállítani: a LANG és LC_BIGYÓ környezeti változókat, valamint a terminál tényleges viselkedését. Utóbbit a terminál menüjében, beállításai között keresheted meg, vagy használhatsz köztes szoftvert, amelyik elvégzi az átalakítást, ilyen a "luit", vagy a "screen", utóbbiban Ctrl-A, kettőspont, "encoding iso-8859-2", enter. Harmadikként (bár ez csak ritkán gond ha nincs jól beállítva) a stty iutf8-at is illik kikapcsolni.

Most meglepődtem! Elég régen használok screent de ezt az utasítási lehetőséget még sosem. Köszönöm!
A luit -ot jobban át kellene néznem, ahhoz hogy használjam - megint látszik mennyire nem ismerem a rendszeremet, ott van de sosem használtam, azt sem tudtam hogy a világon van. Köszönöm!
Viszont ezen a gépen van X és gnome terminál - tényleg be lehet neki állítani azt amire szükségem van az "IBM852" kódlapot. A local -hoz nem nyűltam, viszont a head, a cat és a tail működik :) A Midnight Commander sajnos nem - a viewer és az aditor is csak pontokat jelenít meg az ékezetes betűk helyett :( Ami viszont gáz, hogy a grep nem :(
Amint ékezetes betűt teszek a keresésbe nincs eredmény :(
Mit tudok még tenni? dosemu?

* Én egy indián vagyok. Minden indián hazudik.

Köszönöm a sok jó ötletet!
Viszont még mindig viszket a hátam :( át kell fogalmaznom mit is akarok.
Tehát, hogy lehet elérni, hogy egy konzol NE a rendszer globális beállításait kövesse, hanem más local, karakter készlet (pl. utf8 helyett IBM852 kódlap). Ha a felhasználó profiljában kell megtenni a beállításokat az is elfogadható, lenni kell erre módszernek. Még megnézem a neten. Ab abszurd valaha tudtak ugyanazon a gépen, nemzeti konzolokat létrehozni/beállítani egy-egy felhasználónak (pl. cirill betűk, azt hiszem koi8?).

* Én egy indián vagyok. Minden indián hazudik.

Írd bele a user profile vagy bashrc fájljába. Idemásolok egy példát euró használathoz:

~/.bash_profile:

LANG=fr_FR@euro
export LANG
LC_CTYPE=fr_FR@euro
export LC_CTYPE

Megint nem dolgoztam ki, használd némi utánaolvasás mellett. Hasonlókat találhatsz megfelelő google használattal. Pl: "debian set locale for user" stb.

Még kellhet ez is:
http://www.debian.org/doc/manuals/debian-reference/ch08.en.html#_the_ke…

Linuxscripting

Sajnos a nemzeti konzol kezelés még mindig homályos számomra. A DOS kicsit egyszerűbb volt, de ehhez is el kellet telnie úgy 5-6 évnek.
A Linux multi user környezetében ez sokkal összetettebb feladat. Mint azt azt hiszem írtam, az mc és a hozzá való view és editor már nem teljesen követi le a konzol beállításait (legalábbis magától nem).
Igazából, már ott kezdődnek a hiányosságaim, hogy pontosan miből is áll össze a konzol infrastruktúrája (az IBus -ról eddig csak mint a Magyar utazási társaságról hallottam :).

* Én egy indián vagyok. Minden indián hazudik.

Az mc kellően új verziói (>= 4.7) maguktól korrektül követik a locale beállításokat.

A Linux sok esetben azért szívás, mert az elmúlt ~10 évben állt át a 8 bites karakterkészletekről az UTF-8-ra, és a kompatibilitás lehetősége még mindig szinte mindenütt megvan, habár ehhez nagyon kell érteni ahhoz hogy ne problémát okozzon, hanem okosan ki tudd aknázni.

Én azt javaslom, messze ez jár a legkevesebb szívással, hogy:

- Rendszerbeállításokban (konzol viselkedése, locale-ek stb.) mindig, kivétel nélkül UTF-8 karakterkészletet válassz. Fájljaidat is lehetőség szerint konvertáld át mind.

- Ha meg kell tekintened vagy szerkesztened kell más kódolású fájlt, ám a konvertálás nem járható út, akkor azt ne rendszer locale, terminál stb. szintjén, hanem alkalmazás szintjén oldd meg, például mc/mcview/mcedit-ben 4.7-es verziótól kezdve Alt+E, majd utána kiválaszthatod a fájl karakterkódolását. Az összes többi említésre méltó fájlnéző vagy szövegszerkesztő rendelkezik hasonló lehetőséggel, keresd meg benne, vagy ha nem tud ilyet akkor szokj át másikra.

- Ha esetleg olyan, terminálban futó programot kell használnod, amelyik csak 8 bites karakterkészletet ismer, és semmiképp nincs lehetőséged ezt a programot lecserélni másikra, befrissíteni UTF-8 támogatásúra, megpatchelni stb., akkor kizárólag ezen program erejére készíts egy olyan wrappert, amelyik 8 bites LANG stb. változókat állít be, majd luit-on keresztül indítja a programot.

A többi nemzeti dolog, például nyelv átállítása sokkal egyszerűbb, elég a megfelelő környezeti változókat átállítanod mondjuk egy terminálban, és az úgy indított programok ezen az új nyelven fognak megjelenni.

Alt+e ezt sem tudtam! Kösz!
Nagyjából egyetértek azzal amit leírtál - a házi szerverem en_US.UTF-8 és minden szépen műkszik (samba, cups, apache2 stb.) ráadásul olyan hibaüzeneteket kapok (kernel és applikációs szinten) amire simán rákeresek a neten és csak győzzem őket átolvasni :)
Viszont hol lehet az IBM852 - ezt az mcedit nem kínálja fel, csak az iso8859-2 van meg?
A Linux -os programocskámat pikk-pakk át lehet írni, viszont akkor a windows oldalakat is át kell írni. Itt még jól meg kell gondolnom mit csináljak (van ahol még NT4.0 fut). Lehet hogy jobban járok ha a Linuxos programjaim másképp futtatom.

* Én egy indián vagyok. Minden indián hazudik.