A rendszer igen nagy mértékben lokalizálható és igen rugalmasan a helyi igényekhez igazítható. Más szavakkal, a nemzetközi igényekhez alakítás (internationalization, I18N) lehetővé teszi az egyedi honosítást (localization, L10N). Az I18N és L10N rövidítések az angol szavak első és utolsó betűjéből, illetve a kihagyott betűk számából származnak.
A beállításokat az /etc/sysconfig/language
fájlban található LC_
változókkal lehet megadni. Ezek nemcsak a nemzeti nyelv támogatására vonatkoznak, hanem az Üzenetek (nyelv), Karakterkészlet, Rendezési sorrend, Dátum és idő, Számok és a Pénznem beállítására is. A kategóriák mindegyike megadható közvetlenül a saját változójával, vagy közvetve, a language
fájl egy fő változójával (lásd a man locale kézikönyvoldalt).
RC_LC_MESSAGES
, RC_LC_CTYPE
, RC_LC_COLLATE
, RC_LC_TIME
, RC_LC_NUMERIC
, RC_LC_MONETARY
Ezek a változók az RC_
előtag nélkül kerülnek átadásra a parancsértelmezőnek, és ezek szabályozzák a fenti kategóriákat. Az érintett parancsértelmező-profilok listája alább látható. Az aktuális beállítások a locale paranccsal jeleníthetők meg.
RC_LC_ALL
Ez a változó (ha be van állítva) felülírja a fent említett változók értékét.
RC_LANG
Ha a fenti változók egyike sincs beállítva, a rendszer ezt használja maradék lehetőségként. Alapértelmezésben csak az RC_LANG
változó van beállítva. Így egyszerűbb a felhasználóknak beírniuk a saját értékeiket.
ROOT_USES_LANG
Egy igen
vagy nem
értékű változó. Ha az értéke nem
, akkor a root
mindig a POSIX környezetben dolgozik.
A többi változó a YaST sysconfig-szerkesztőjével állítható be (lásd: 17.3.1. szakasz - A rendszerkonfiguráció módosítása a YaST sysconfig-szerkesztőjével). Az ilyen változók értéke egy nyelvkódból, egy országkódból, egy kódolásból és egy módosítóból áll. Az egyes elemeket speciális karakterek kötik össze:
LANG=<language>[[_<COUNTRY>].<Encoding>[@<Modifier>]]
A nyelv és az ország kódját mindig egyszerre kell állítani. A nyelv megadása az ISO 639-es szabványt követi (http://www.evertype.com/standards/iso639/iso639-en.html és http://www.loc.gov/standards/iso639-2/). Az országkódokat az ISO 3166 sorolja fel (http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html).
Csak olyan értékeket célszerű megadni, amelyhez használható leírófájlok találhatók az /usr/lib/locale
könyvtárban. További leírófájlok létrehozhatók az /usr/share/i18n
könyvtár fájljaiból a localedef paranccsal. A leírófájlok a glibc-i18ndata
csomag részei. Az en_US.UTF-8
(angol nyelvű, Egyesült Államok) leírófájlja például a következő paranccsal hozható létre:
localedef -i en_US -f UTF-8 en_US.UTF-8
LANG=en_US.UTF-8
Ez az alapértelmezett beállítás, ha a telepítés során az amerikai angol a kiválasztott nyelv. Ha más nyelvet választott, az a nyelv kerül bekapcsolásra, de a karakterkódolás továbbra is UTF-8.
LANG=en_US.ISO-8859-1
Ez angol nyelvet állít be, az ország az Egyesült Államok, a karakterkódolás pedig ISO-8859-1
. Ez a karakterkészlet nem támogatja az euro pénznem jelét, de hasznos lehet olyan programok esetében, amelyek még nincsenek felkészítve az UTF-8
kódolás használatára. A karakterkészletet megadó karaktersorozatot (ami a jelen esetben az ISO-8859-1
) ezután a programok, például az Emacs értékeli ki.
LANG=en_IE@euro
A fenti példa kifejezetten tartalmazza az euro karaktert egy nyelvi beállításban. Szigorúan véve ez a beállítás mára túlhaladott, hiszen az UTF-8 szintén tartalmazza az euro szimbólumot. Csak akkor hasznos, ha a használni kívánt alkalmazás nem támogatja az UTF-8 kódolást, csak az ISO-8859-15-öt.
A SuSEconfig beolvassa az /etc/sysconfig/language
könyvtárban található fájlokat és az /etc/SuSEconfig/profile
, valamint az /etc/SuSEconfig/csh.cshrc
helyekre írja ki a szükséges módosításokat. Az /etc/SuSEconfig/profile
az /etc/profile
-t olvassa vagy használja forrásul. Az /etc/SuSEconfig/csh.cshrc
-t az /etc/csh.cshrc
használja forrásul. Ennek hatására a beállítások az egész rendszerre kiterjedően elérhetővé válnak.
A felhasználók felülbírálhatják a rendszer alapértelmezett értékeit, ha módosítják saját ~/.bashrc
fájljaikat. Ha például a rendszerszintű en_US
beállítás helyett a programok üzeneteit spanyolul akarják látni, akkor az LC_MESSAGES=es_ES
beállítást kell megadniuk.
Ha nincs megelégedve a rendszer területi beállításaival, akkor módosítsa az ~/.i18n
fájl beállításait a Bash parancsnyelvi szintaxisának megfelelően. A ~/.i18n
bejegyzései felülírják a rendszer /etc/sysconfig/language
helyen lévő alapértelmezett beállításait. Használja ugyanazokat a változóneveket, csak az RC_
név prefixumot hagyja el (például az RC_LANG
helyett használja a LANG
változót:
LANG=cs_CZ.UTF-8 LC_COLLATE=C
Az alapszabály az, hogy az Üzenetek kategóriába eső fájlok csak a megfelelő nyelvi könyvtárban (például en
) tárolódnak, hogy legyen mire visszalépni. Ha a LANG
változót az en_US
értékre állítja, viszont nem létezik az /usr/share/locale/en_US/LC_MESSAGES
könyvtárban a message fájl, akkor a rendszer az /usr/share/locale/en/LC_MESSAGES
fájlhoz tér vissza.
Visszalépési lánc is megadható, például bretonról franciára, vagy galíciairól spanyolra, és onnan portugálra:
LANGUAGE="br_FR:fr_FR"
LANGUAGE="gl_ES:es_ES:pt_PT"
Így állíthatók be a norvég variánsok (a Nynorsk és a Bokmål, további visszalépéssel a sima no
beállításra):
LANG="nn_NO"
LANGUAGE="nn_NO:nb_NO:no"
vagy
LANG="nb_NO"
LANGUAGE="nb_NO:nn_NO:no"
Ügyeljünk arra, hogy a norvég nyelv használata esetén az LC_TIME
kezelése is eltér.
Egy lehetséges probléma, ha az ezres elválasztó karaktert nem helyesen ismeri fel a rendszer. Ez akkor fordul elő, ha a LANG
értéke csak egy kétbetűs nyelvi kódra van állítva (pl. de
), de a glibc által használt leírás az /usr/share/lib/de_DE/LC_NUMERIC
helyen található. Ilyenkor az LC_NUMERIC
változót de_DE
értékre kell állítani, hogy az elválasztódefinícót helyesen lássa a rendszer.
A GNU C Library referencia-kézikönyv „Területi beállítások és lokalizálás” c. fejezete. A glibc-info
része.
A Markus Kuhn által írt UTF-8 and Unicode FAQ for Unix/Linux. Jelenleg a http://www.cl.cam.ac.uk/~mgk25/unicode.html címen található.
Unicode-Howto, amelyet Bruno Haible írt:/usr/share/doc/howto/en/html/Unicode-HOWTO.html
.