Locale

Linux.fista
Versio hetkellä 24. marraskuuta 2009 kello 16.03 – tehnyt LP (keskustelu | muokkaukset) (suomenkieliset lokaalit)
Siirry navigaatioon Siirry hakuun

Locale on komentoriviohjelma, joka tulostaa kieltä ja muita alueellisia tietoja koskevat ympäristömuuttujat ja näyttää saatavilla olevat lokaalivaihtoehdot.

Käyttö

Tulostetaan kieli- ja aluemuuttujien tiedot:

kayttaja@kone:~$ locale
LANG=en_GB.utf8
LC_CTYPE="en_GB.utf8"
LC_NUMERIC="en_GB.utf8"
LC_TIME="en_GB.utf8"
LC_COLLATE="en_GB.utf8"
LC_MONETARY="en_GB.utf8"
LC_MESSAGES="en_GB.utf8"
LC_PAPER="en_GB.utf8"
LC_NAME="en_GB.utf8"
LC_ADDRESS="en_GB.utf8"
LC_TELEPHONE="en_GB.utf8"
LC_MEASUREMENT="en_GB.utf8"
LC_IDENTIFICATION="en_GB.utf8"
LC_ALL=en_GB.utf8

Tulostetaan saatavilla olevat lokaalit (joskus hyvin pitkä lista):

kayttaja@kone:~$ locale -a
C
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
POSIX

Tulostetaan suomenkieliset lokaalit (jotka alkavat kielikoodilla ”fi”):

kayttaja@kone:~$ locale -a | grep "^fi"
fi_FI
fi_FI@euro
fi_FI.iso88591
fi_FI.iso885915@euro
fi_FI.utf8
fil_PH
fil_PH.utf8
finnish

Tähän eksyi näköjään mukaan filipiini.

fi, fi_FI ja finnish viittaavat (vrt. locale.dir) yleensä järjestelmän oletusarvoiseen suomi-lokaaliin, eli johonkin lokaaleista fi_FI.iso88591, fi_FI.iso885915@euro ja fi_FI.utf8. Viimeksimainittu, Unicodea käyttävä, on nykyään suositeltavin, ellei yhteensopivuussyistä joudu käyttämään jotakin muuta.

Ympäristömuuttujat

Haluttua locale-ympäristöä voi säätää joukolla ympäristömuuttujia (katso yllä). Näistä erityisen kiinnostavia ovat seuraavat:

  • LC_CTYPE: käytettävä merkistö, merkkien luokittelu sekä pienten ja isojen kirjainten vastaavuus
  • LC_COLLATE aakkosjärjestys
  • LC_MESSAGES: ohjelmien viestien kieli; jos käännös puuttuu viesti näytetään alkuperäisellä kielellä (käytännössä englanniksi)
  • LANG: oletusympäristö
  • LANGUAGE: GNU-projektin LANG-muuttuja, hyväksyy listan eri vaihtoehdoista
  • LC_ALL: käytettävä ympäristö muista locale-muuttujista välittämättä

Lokaalien generointi

Kotikoneilla harvemmin on tarvetta tukea maailman kaikkia kieliä ja kulttuureja. Tilan säästämiseksi lokaaleja generoidaan usein käytettäviksi vain pyynnöstä. C ja POSIX (eli C-kielen ja POSIX-standardin oletuslokaalit, käytännössä samat) ovat aina käytössä, usein oletusarvoisesti liuta englanninkielisiä lokaaleja sekä asennuksessa valittu järjestelmän oletuskieli. Tuen saamiseksi halutut lokaalit pitää generoida. Tapa vaihtelee jakelusta toiseen.

Lokaalin asettaminen

Lokaalin voi asettaa tiettyyn arvoon komentotulkista riippuen (esimerkiksi) komennolla

export LANG=fi_FI.utf8

tai

setenv LANG fi_FI.utf8

Edellinen toimii mm bashissa ja zsh:ssa, jälkimmäinen csh-sukuisissa tulkeissa. Komento voi olla hyvä lisätä komentotulkin käynnistysskriptiin (bashrc, zshrc, tcshrc ym), mikäli haluaa asetuksen pysyvän jatkuvasti voimassa.

Käyttämällä LANG-muuttujaa yksittäiset arvot voi asettaa toisenlaisiksi, esimerkiksi virheviestit alkukielellä (englanniksi) ja aakkostaminen perinteiseen tapaan jossa 00INDEX.txt ja README hakemistolistauksen alussa:

export LC_MESSAGES=C LC_COLLATE=C

Käyttämällä muuttujaa LC_ALL näiden muiden muuttujien arvot jätetään huomiotta, mikä on kätevää esimerkiksi yksittäisen komennon ajamiseksi oletusympäristössä tai aiotussa oletusympäristössä:

env LC_ALL=C komento

Katso myös