SUSE Linux je mezinárodní systém, který se dá velmi flexibilně přizpůsobit lokálním potřebám. Internacionální charakter (I18N) jinými slovy umožňuje specifický přístup k lokalizaci (L10N).
Lokální nastavení pro národní jazyky je zajištěno proměnnými LC_ definovanými v souboru /etc/sysconfig/language.
Nejde přitom pouze o určení jazyka pro komunikaci s jednotlivými aplikacemi a prostředí programů v původním jazyce, ale také o zprávy systému,
znakové sady, pořadí při abecedním třídění,
formát časových údajů, desetinných čísel a
peněžních částek.
Každou z těchto kategorií můžete definovat přímo její proměnnou, nebo nepřímo hlavní proměnnou v souboru language (podívejte se na manuálové stránky man
locale).
RC_LC_MESSAGES,
RC_LC_CTYPE,
RC_LC_COLLATE,
RC_LC_TIME,
RC_LC_NUMERIC,
RC_LC_MONETARY: Tyto proměnné se exportují do prostředí příkazového interpretu bez předpony RC_ a určují jednotlivé z lokalizačních kategorií. Soubory, kterých se to týká najdete v seznamu níže. Nastavení proměnných zjistíte výpisem příkazu locale.
RC_LC_ALL: Pokud je nastavena tato proměnná, přepíše svou hodnotou výše uvedené proměnné.
RC_LANG: Pokud není nastavena žádná z výše uvedených proměnných, je výchozí hodnotou. Defaultně SUSE Linux nastavuje pouze RC_LANG. Tato vlastnost pomáhá uživatelům zavést své vlastní hodnoty.
ROOT_USES_LANG: V případě nastavení na no,
root pracuje root v prostředí standardu POSIX.
Ostatní proměnné můžete nastavit YaSTem v editoru souborů sysconfig. Hodnota těchto proměnných obsahuje kód jazyka, země, kódování a modifikátoru. Individuální komponenty jsou připojitelné pomocí speciálních znaků:
LANG=<language>[[_<COUNTRY>].<Encoding>[@<Modifier>]]
Nastavení jazyka a kódů země by mělo jít ruku v ruce. Jazyková nastavení jsou dle standardu ISO 639
(http://www.evertype.com/standards/iso639/iso639-en.html
a http://www.loc.gov/standards/iso639-2/). Kódy zemí naleznete v ISO 3166, podívejte se na
(http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html).
Smysl má nastavit hodnoty, jejichž popis užití naleznete v /usr/lib/locale. Další soubory s popisy můžete vytvořit ze souborů v adresáři /usr/share/i18n použitím příkazu localedef. Soubor s popisem cs_CZ.UTF-8 (pro naši krásnou zemi) vytvoříte takto:
localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
LANG=cs_CZ.UTF-8
Toto je defaultní nastavení, když je v průběhu instalace vybrána čeština. Jestliže zvolíte jiný jazyk, bude tento jazyk také s kódováním UTF-8.
LANG=cs_CZ.ISO-8859-2
Takto nastavíme proměnnou na češtinu, zemi na Českou republiku a znakovou sadu na ISO-8859-2. Řetězec definující znakovou sadu, kterou je v našem případě ISO-8859-2 pak bude načítán programy jako je Emacs.
SuSEconfig čte proměnnou ze souboru
/etc/sysconfig/language a zapisuje nezbytné změny do
/etc/SuSEconfig/profile a do
/etc/SuSEconfig/csh.cshrc. Pak přečte
/etc/SuSEconfig/profile, nebo data načte
ze zdroje, kterým je /etc/profile.
/etc/SuSEconfig/csh.cshrc hledá svůj zdroj v
/etc/csh.cshrc. Toto uspořádání umožňuje široké spektrum nastavení i pro velký systém.
Uživatelé také mohou přepisovat původní hodnoty v systému editací
~/.bashrc ve svém home adresáři. Jako příklad je možné uvést zobrazování programových hlášek v češtině cs_CZ do španělštiny, což znamená použít LC_MESSAGES=es_ES.
Dle pravidel pro kategorii Messages pak systém zprávy ukládá v příslušném jazykovém adresáři (v našem případě cs) jako zálohu. Jestliže nastavíte LANG na cs_CZ a soubor zpráv ukládáte do
/usr/share/locale/en_US/LC_MESSAGES, který neexistuje, systém jej bude dále ukládat do souboru /usr/share/locale/en/LC_MESSAGES.
Řetěz zálohových souborů můžete nadefinovat např. pro slovenštinu a češtinu, či pro galštinu, španělštinu a portugalštinu:
LANGUAGE="cs_SK:cs_CZ"
LANGUAGE="gl_ES:es_ES:pt_PT"
Jestli toužíte po tradiční norštině nynorsk
a bokmĂĽl namísto a s dodatečnou zálohou pro
no), proveďte úpravu proměnné do tohoto tvaru:
LANG="nn_NO"
LANGUAGE="nn_NO:nb_NO:no"
or
LANG="nb_NO"
LANGUAGE="nb_NO:nn_NO:no"
Poznamenejme nakonec, že v norštině je odlišný i parametr LC_TIME.
Pro správnou práci s desetinnými čisly v češtině nestačí pouze nastavit proměnnou LANG na cs. Aby např. knihovna glibc našla správnou hodnotu v souboru /usr/share/locale/en_US/LC_NUMERIC, je třeba nastavit přímo proměnnou LC_NUMERIC na hodnotu
cs_CZ.
The GNU C Library Reference Manual,
Kapitola Locales and Internationalization, kkterou najdeme v
glibc-info.
Markus Kuhn, UTF-8 and Unicode FAQ for Unix/Linux, na http://www.cl.cam.ac.uk/~mgk25/unicode.html.
Unicode-Howto, autor Bruno Haible je v souboru file:/usr/share/doc/howto/en/html/Unicode-HOWTO.html.