A terminálban - angolul

kimarite képe

Néhányunkban biztosan felmerült már az a kérdés, hogyha a terminál üzeneteket a saját nyelvünkön, például magyarul kapjuk, akkor jóval kevesebb keresési találatot kapunk a neten a megoldások tekintetében, ... mintha azokra angol nyelven keresnénk. Ugye, az utóbbi az elterjedtebb?

Nyitsz egy terminált ...

-- angol nyelv

export LC_MESSAGES=C

-- vissza az alapértelmezett nyelvre
(ami a rendszereden be van állítva)

unset LC_MESSAGES

És máris angol a kimenet.

A változtatás nincs sehol fixálva, egy terminál ablak nyitásának idejéig szól, azaz új ablak nyitásakor már az alapértelmezett nyelven köszön vissza a terminál.

Néhány érdekesség

-- a

locale

parancs mutatja meg, hogy melyek a beállításaid.
(még nem adtam ki az 'unset LC_MESSAGES' parancsot)

LANG=hu_HU.UTF-8
LANGUAGE=
LC_CTYPE="hu_HU.UTF-8"
LC_NUMERIC="hu_HU.UTF-8"
LC_TIME="hu_HU.UTF-8"
LC_COLLATE="hu_HU.UTF-8"
LC_MONETARY="hu_HU.UTF-8"
LC_MESSAGES=C
LC_PAPER="hu_HU.UTF-8"
LC_NAME="hu_HU.UTF-8"
LC_ADDRESS="hu_HU.UTF-8"
LC_TELEPHONE="hu_HU.UTF-8"
LC_MEASUREMENT="hu_HU.UTF-8"
LC_IDENTIFICATION="hu_HU.UTF-8"
LC_ALL=

-- a

cat /usr/share/i18n/SUPPORTED

parancs mutatja meg a rendszereden elérhető (támogatott) nyelveket. Nem mutatom, mert hosszú. De innen vehetsz nyelvi mintákat az export parancsba. Legyen benne az UTF-8, vagyis a Unicode szövegkódolás.

-- a

locale -a

parancs pedig azok fajtáit.

C
C.UTF-8
POSIX
hu_HU.utf8

Egy magyar nyelvű rendszer amúgy saccperkábé így néz ki alapértelmezetten:

locale
LANG=hu_HU.UTF-8
LANGUAGE=
LC_CTYPE="hu_HU.UTF-8"
LC_NUMERIC="hu_HU.UTF-8"
LC_TIME="hu_HU.UTF-8"
LC_COLLATE="hu_HU.UTF-8"
LC_MONETARY="hu_HU.UTF-8"
LC_MESSAGES="hu_HU.UTF-8"
LC_PAPER="hu_HU.UTF-8"
LC_NAME="hu_HU.UTF-8"
LC_ADDRESS="hu_HU.UTF-8"
LC_TELEPHONE="hu_HU.UTF-8"
LC_MEASUREMENT="hu_HU.UTF-8"
LC_IDENTIFICATION="hu_HU.UTF-8"
LC_ALL=

Más beállításokat is meg tudsz változtatni az 'export' (és az 'unset') paranccsal.
Némelyik néha nem úgy működik, ahogy elképzeled, de az alábbi oldalak eligazítanak.

Források:
https://askubuntu.com/questions/264283/switch-command-output-language-from-native-language-to-english/264709#264709
(https://unix.stackexchange.com/q/87745/21278)
https://unix.stackexchange.com/questions/87745/what-does-lc-all-c-do
https://stackoverflow.com/questions/5137726/creating-permanent-executable-aliases
https://help.ubuntu.com/community/Locale
https://www.shellhacks.com/linux-define-locale-language-settings/
https://superuser.com/questions/1108090/how-do-i-change-the-language-of-the-linux-subsystem-in-windows-10-wsl/1177012
https://wiki.archlinux.org/index.php/locale

Enjoy

Hozzászólások

Salabakter képe

Kényelmesre véve...

Köszönet a témáért, használni fogom. Viszont általában nincs mindig időm / kedvem keresgélni az elmentett segéd-anyagokban a megfelelő parancsokat, és nem biztos, hogy egy probléma kellős közepén pont eszembe jut a parancs pontos szintaxisa, stb. Ezért én mint alias-okként betettem ezeket a parancsokat ~/.bashrc fájlokba, az alábbi sorok beillesztésével (pl. a többi alias alá, vagy ha nincs ilyen akkor a fájl végére).

alias Ang="export LC_MESSAGES=C && locale | grep "LC_MESSAGES""

alias Eng="export LC_MESSAGES=C && locale | grep "LC_MESSAGES""

alias Hun="unset LC_MESSAGES && locale | grep "LC_MESSAGES""

(Figyelem, soronként 4 db, azaz 2 pár idézőjelet tartalmaz, ebből a sor végén kettő van. Ha jó a szemed, úgyis észrevetted, de inkább szólok, hogy biztosan működjön nálad is a dolog. Az első és az utolsó idézőjel közrezárja az egyenlőségjel utáni utasításokat, míg a másik két idézőjel a grep parancs utáni LC_MESSAGES előtt és után van közvetlenül.)

A fájl mentése után ha nyitunk egy új terminált  (a  ~/.bash_aliases fájlban levők végrehajtása végett), akkor már tudni fogja az angolra váltást az Eng vagy akár az Ang beírása után is, illetve a Hun rövidítésre pedig visszavált magyarra (már ha az eredeti magyar volt az angolra változtatás előtt). Mindhárom parancs után ki is írja egy üzenetben a locale parancs LC_MESSAGE értékét, hogy biztosak lehessünk a terminál-üzenetek nyelvében (és ne kelljen a locale parancs hosszú kimenetében kikeresve ellenőrizni azt).

Látható, hogy az első parancsnak két alias-t is adtam, mert nem biztos, hogy az adott pillanatban eszembe jut, hogy az angol nyelvre váltás alias-át hogyan definiáltam, így mind a magyar, mind az angol név rövidített változatára megadtam a parancsot. (Természetesen ha valakinek jobban tetszik, akkor akár az országjelzést is megadhatja, pl. GB vagy US és HU, vagy írhatja kisbetűkkel is, pl. ang vagy/és eng, vagy esetleg gb / us és hu . Viszont kezdőknek megjegyezném, hogy a Linux/Unix logikának megfelelően fontos a kis és nagybetű azonosság az alias nevének megadásakor, mert különben nem fogja végrehajtani az alias-t. Tehát ha Eng-nek definiáltam az angol üzenetre váltó parancsot, akkor az eng beírása nem fogja futtatni a megadott parancsot.)

Értékelés: 

5
Átlag: 5 (1 szavazat)
kimarite képe

Kényelmesre véve...

#1 Igen, lehet így is. :)

Nem hosszú a másik módszer sem. Az általad ismertetett hátránya, hogy ... 'elfelejted'. ;)
A legkényelmesebb ... egy bim-bam parancsikon.

Értékelés: 

0
Még nincs értékelve