Gentoo Logo

Lokalizacja Gentoo Linux

Spis treści:

1.  Strefa czasowa

Aby system działał poprawnie, musi wiedzieć w jakiej strefie czasowej się znajduje. Należy zatem najpierw poszukać odpowiedniej strefy w katalogu /usr/share/zoneinfo. Następnie należy ją ustawić w pliku /etc/conf.d/clock. Przestrzegamy przed używaniem stref /usr/share/zoneinfo/Etc/GMT* gdyż ich nazwy nie mówią nic o tym gdzie dokładnie te strefy się znajdują. Na przykład GMT-8 to tak naprawdę strefa GMT+8.

Listing 1.1: Konfiguracja strefy czasowej

# ls /usr/share/zoneinfo
(Przykład dla Warszawy)
# nano -w /etc/conf.d/clock
TIMEZONE="Europe/Warsaw"

# date
Tue May  8 14:16:32 CEST 2007

Uwaga: Należy sprawdzić czy trzy lub cztery litery kodu strefy czasowej są poprawne (w naszym polskim przypadku będą to "CEST" (Central European Summer Time) latem lub "CET" (Central European Time) zimą).

Uwaga: Można ustawić wartość TZ (również wziętą z /usr/share/zoneinfo w pliku rc (.bash_profile dla basha), aby skonfigurować strefę czasową tylko dla jednego użytkownika. W naszym przypadku może to być TZ="Europe/Warsaw".

2.  Zegar sprzętowy

W większości systemów Gentoo Linux, zegar sprzętowy jest ustawiony na UTC (lub GMT, Greenwhich Mean Time), a następnie strefa czasowa jest brana pod uwagę przy ustalaniu konkretnej godziny. Jeżeli z jakichś powodów zegar sprzętowy nie jest ustawiony na UTC, to należy wyedytować /etc/rc.conf i zmienić wartość zmiennej CLOCK.

Listing 2.1: Zegar lokalny vs. GMT

Rekomendowany:
CLOCK="UTC"
Alternatywny:
CLOCK="local"

3.  Lokalizacje systemu

Co to jest lokalizacja?

Lokalizacje są zbiorem informacji dla większości programów pozwalającym na ustalenie kraju i języka. Lokalizacje i informacje o nich są częścią biblioteki systemowej i możesz je znaleźć w /usr/share/locale w większości systemów. Nazwy lokalizacji mają postać ab_CD, gdzie ab jest kodem języka (jak określono w ISO-639), a CD kodem kraju (z ISO-3166). Warianty są często dołączane do nazw lokalizacji, na przykład en_GB.utf8 lub de_DE@euro. Więcej informacji można znaleźć na stronach Wikipedii.

Zmienne środowiskowe dla lokalizacji

Ustawienia lokalizacji są zapisywane w zmiennych środowiskowych, które ustawia się w pliku /etc/env.d/02locale (dla ustawień całego systemu) i pliku ~/.bashrc (dla użytkownika). Zmienne kontrolują różne aspekty ustawień lokalizacji, omawiamy je w tabeli poniżej, te z większym priorytetem są na górze tabelki. Ustawienia o większym priorytecie nadpiszą te z priorytetem mniejszym. Wszystkie zmienne mają jeden format lokalizacji ab_CD - tak jak opisano to powyżej.

Nazwa zmiennej Opis
LC_ALL Definiuje wszystkie ustawienia w lokalizacji naraz. Jest to najwyższy poziom ustawień dla lokalizacji i zastąpi wszystkie inne ustawienia.
LC_COLLATE Definiuje porządek alfabetyczny. Może mieć efekt na np. wyświetlenie zawartości katalogów.
LC_CTYPE Definiuje zarządzanie ustawieniami znaków dla systemu. Np. które znaki są widziane jako część alfabetu, a które jako numeryczne. Czasami ustawia to również zestaw używanych znaków.
LC_MESSAGES Ustawienie dla aplikacji, które używają zmiennych lokalizacji do wyświetlania wiadomości (większość programów GNU, więcej informacji w następnym rozdziale).
LC_MONETARY Definiuje jednostkę waluty i jej format numeryczny.
LC_NUMERIC Definiuje formatowanie wartości numerycznych które nie są walutą. Ustala np. separatory tysięcy i dziesiątek.
LC_TIME Definiuje format daty i czasu.
LC_PAPER Definiuje domyślny rozmiar papieru.
LANG Definiuje wszystkie lokalne ustawienia. Te ustawienia mogą być nadpisane przez indywidualne ustawienia LC_* powyżej lub nawet przez LC_ALL.

Uwaga: Mimo że większość programów współpracuje jedynie z LC_ALL warto również ustawić zmienną LANG, bez której część z nich może się dziwnie zachowywać.

Większość użytkowników ustawia zmienne LANG i LC_CTYPE na poziomie użytkownika przez ręczne dodanie definicji zmiennych do skryptów startowych powłok.

Listing 3.1: Ustawianie polskiej lokalizacji

export LANG="pl_PL"

Uwaga: Dodajemy @euro do lokalizacji jeżeli chcemy używać symbolu tej waluty (€). Nie ma go w polskich lokalizacjach, ponieważ nie znajduje się w tabeli znaków normy iso8859-2.

Możliwe jest skonfigurowanie systemu tak, aby używał lokalizacji dla wszystkich użytkowników i programów.

Listing 3.2: Konfiguracja lokalizacji w pliku /etc/env.d/02locale

LC_ALL="pl_PL"
LANG="pl_PL"

Częstym zwyczajem jest pozostawienie systemowych ustawień lokalizacji bez zmian i konfiguracja ich jedynie dla poszczególnych użytkowników. W takim wypadku system będzie korzystał z domyślnego ustawienia "C", które z powodów historycznych jest angielskie.

Aby wiadomości w programach działały jak należy, konieczne będzie skompilowanie ich z obsługą nls (native language support), którą zapewnia flaga USE o tej samej nazwie. W takim wypadku do wyświetlania właściwych wiadomości konieczna będzie biblioteka gettext. Portage zainstaluje ją automatycznie kiedy tylko będzie potrzebna.

Gdy mamy już ustawione odpowiednie lokale, należy upewnić się, że zaaktualizowaliśmy zmienną środowiskową:

Listing 3.3: Aktualizacja środowiska

(Gdy lokalizacje zostały ustawione dla całego systemu)
# env-update && source /etc/profile

(Gdy lokalizacje zostały ustawione tylko dla poszczególnych użytkowników)
$ source ~/.bashrc

Po aktualizacji, należy zabić serwer X poprzed kombinację klawiszy Ctrl-Alt-Backspace, wylogować się, a następnie zalogować jako użytkownik.

Powinniśmy sprawdzić czy zmiany, które wprowadziliśmy przyniosły oczekiwane działanie:

Listing 3.4: Weryfikacja zmian

$ env | grep -i LC_

Istnieje dodatkowa zmienna mająca wpływ na instalowane lokalizacje, ma ona nazwę LINGUAS. Pozwala ona na określenie plików językowych jakie mają być instalowane wraz z aplikacjami opartymi na gettext. Pozwala ona również na wybranie i zainstalowanie tylko niektórych z lokalizacji dostępnych w pakietach, takich jak kde-base/kde-i18n, czy app-office/openoffice. Ustawia się ją w pliku /etc/make.conf i ma ona postać listy kodów języków, jakie chcemy zainstalować oddzielonych spacjami.

Listing 3.5: Ustawianie zmiennej LINGUAS w pliku make.conf

# nano -w /etc/make.conf
(Dodajemy zmienną LINGUAS. Przykład dla języków angielskiego, fińskiego i polskiego:)
LINGUAS="en fi pl"

Generowanie specyficznych lokalizacji

Do wygenerowania lokalizacji innych niż domyślne służy program localedef. Na przykład:

Listing 3.6: Generowanie lokalizacji za pomocą localedef

# localedef -c -i pl_PL -f ISO-8859-2 pl_PL.ISO-8859-2

Po wygenerowaniu lokalizacji, można je wyeksportować jako zmienną LANG.

Listing 3.7: Eksportowanie zmiennej LANG

# export LANG="pl_PL.ISO-8859-2"

Należy zaaktualizować środowisko po dokonaniu zmian

Listing 3.8: Aktualizacja środowiska

# env-update && source /etc/profile

Po aktualizacji, należy zabić serwer X poprzed kombinację klawiszy Ctrl-Alt-Backspace, wylogować się, a następnie zalogować jako użytkownik.

Budowanie lokalizacji dla glibc

W systemie rzadko kiedy używa się więcej niż jednej, góra dwóch lokalizacji. Można je wybrać w pliku /etc/locale.gen.

Listing 3.9: Dodawanie wpisów do pliku /etc/locale.gen

en_US ISO-8859-1
en_US.UTF-8 UTF-8
pl_PL ISO-8859-2

Kolejnym krokiem jest przekompilowanie i uruchomienie programu locale-gen. Utworzy on wszystkie lokalizacje określone w pliku /etc/locale.gen.

Uwaga: locale-gen jest dostępne w glibc-2.3.6-r4 i nowszych. Jeśli w systemie jest zainstalowana starsza wersja, należy ją zaktualizować.

Aby sprawdzić czy wybrane lokalizacje są dostępne należy uruchomić locale -a.

4.  Ustawienia klawiatury dla konsoli

Ustawienie klawiatury używane przez konsole jest konfigurowane w pliku /etc/conf.d/keymaps przez zmienną KEYMAP. Poprawne wartości można znaleźć w /usr/share/keymaps/{arch}/. i386 ma podgromady (qwerty/, azerty/...). Niektóre języki mają kilka opcji, należy na drodze eksperymentów wybrać najlepsze ustawienia.

Listing 4.1: Ustawianie mapowania klawiatury dla konsoli

KEYMAP="pl"

5.  Mapowanie klawiatury dla serwera X

Mapowanie klawiatury używane przez serwer X jest ustawianie w pliku /etc/X11/xorg.conf w zmiennej XkbLayout.

Listing 5.1: Ustawianie mapowania dla X

 Section "InputDevice"
     Identifier  "Keyboard1"
     ...
     Option "XkbLayout"    "pl2"
     #Option "XkbModel"     "pc105"    ## ustawienie dla
międzynarodowych klawiatur.
     # Option "XkbVariant"  "nodeadkeys" ## ustawienie zmiennej
używanej przez xterm
     ...

Jeżeli posiadamy międzynarodowy układ klawiatury, powinniśmy ustawić opcję XkbModel na wartość pc102 lub pc105. Pozwoli to mapować dodakowe klawisze specyficzne dla danej klawiatury.

Opcja martweklawisze (deadkeys) pozwala na wciskanie klawiszy, których znaki nie pojawiają się od razu, a muszą zostać wciśnięte w kombinacji z innymi, aby wyświetlić znak np. é, á itp. Ustawienie opcji XkbVariant na nodeadkeys pozwala wprowadzać znaki specjalne do terminali X.

Jeżeli chcemy przełączać się miedzy więcej niż jednym układem klawiatury (dla przykładu między rosyjskim i angielskim), wystarczy dodać kilka linijek do pliku xorg.conf, aby zdefiniować porządane przez nas ustawienia klawiatury oraz skórt do przełączania się między nimi.

Listing 5.2: Przełączanie się pomiędzy dwoma układami klawiatury

Section "InputDevice"
  Identifier  "Keyboard1"
  ...
  Option "XkbLayout"    "us,ru"
  Option "XkbOptions"   "grp:alt_shift_toggle,grp_led:scroll"

Ustawienie opcji XkbOptions pozwala na przełączanie się pomiędzy różnymi układami klawiatury poprzez prostą kombinację klawiszy Alt-Shift. Dzięki opcji grp_led:scroll włączana i wyłączana będzie również dioda Scroll Lock. Jest to poręczna informacja, pozwalająca rozpoznać jakiego układu używamy w danym momencie.

6.  KDE

W celu spolszczenia KDE należy zainstalować pakiet kde-i18n. Sporo ułatwi ustawienie wcześniej zmiennej LINGUAS, którą opisaliśmy nieco wcześniej.

7.  Symbol Euro w konsoli

Aby wyświetlał się symbol Euro, należy ustawić zmienną CONSOLEFONT w /etc/conf.d/consolefont. Wartość jaką należy do niej wpisać można odnaleźć w katalogu /usr/share/consolefonts/. Należy wybrać nazwę czcionki i opuścić rozszerzenie pliku (.psfu.gz). Symbol euro znajduje się na przykład w czcionce lat2a-16.

Listing 7.1: Ustawienie fontów dla konsoli

CONSOLEFONT="lat2a-16"

Powinniśmy sprawdzić czy CONSOLEFONT znajduje się w poziomie uruchomieniowym boot:

Listing 7.2: Weryfikacja poziomu uruchomieniowego

# rc-update -v show | grep -i consolefont

Jeżeli CONSOLEFONT nie znajduje się na żadnym z poziomów uruchomieniowych, należy je na jakiś dodać.

Listing 7.3: Dodawanie consolefont do prawidłowego poziomu uruchomieniowego

# rc-update add consolefont boot

8.  Symbol Euro w X

Większość aplikacji

Zmuszenie X-ów do wyświetlania symbolu Euro jest trochę trudniejsze. Pierwszą rzeczą, jaką należy zrobić jest zmiana definicji fixed i variable w pliku /usr/share/fonts/misc/fonts.alias tak, by kończyły się ciągiem iso8859-2 zamiast iso8859-1.

Listing 8.1: Ustawienie domyślnych czcionek dla X

fixed        -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-2
variable     -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-2

Niektóre aplikacje używają własnych czcionek i należy skonfigurować je oddzielnie do używania takich z symbolem Euro. Można to zrobić na poziomie użytkownika w pliku .Xdefaults (plik można skopiować do /etc/skel/, aby stał się domyślnym dla nowych użytkowników) lub na poziomie globalnym dla każdej aplikacji w plikach /usr/share/X11/app-defaults/ (jak xterm). W tych plikach generalnie trzeba zmienić istniejącą linię, niż dodawać nową. Na przykład, aby zmienić czcionkę dla xterma:

Listing 8.2: Ustawianie czcionek dla xterm

(W katalogu domowym)
$ echo 'XTerm*font: fixed' >> .Xresources 
$ xrdb -merge .Xresources

Symbol Euro w (X)Emacs

Aby używać symbolu Euro w (X)Emacs, należy dodać poniższą linijkę do pliku .Xdefaults:

Listing 8.3: Ustawianie czcionek dla emacsa

Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-2

Dla XEmacs (nie Emacs), należy dokonać więcej zmian i dodać następujący wpis w pliku /home/user/.xemacs/init.el:

Listing 8.4: Ustawianie czcionek dla xemacs

(define-key global-map '(EuroSign) '[€])

Uwaga: Symbol w [] jest symbolem Euro.

OpenOffice.org

Ebuild app-office/openoffice oraz app-office/openoffice-bin korzysta ze zmiennej LINGUAS w celu wybrania odpowiedniego pakietu językowego dla interfejsu użytkownika. Wszystkie szczegóły dotyczące statusu poszczególnych lokalizacji OpenOffice znajdują się na jego stronie domowej.



Drukuj

Zaktualizowano 4 października 2007

Podsumowanie: Tekst opisujący wszystkie czynności związane ze spolszczeniem systemu Gentoo Linux.

Alexander Holler
Autor

Steven Lucy
Tłumacz/Redaktor

Benny Chuang
Redaktor

Lars Weiler
Redaktor

Tobias Scherbaum
Redaktor

Flammie Pirinen
Redaktor

Paweł Kilian
Tłumaczenie

Donate to support our development efforts.

Support OSL

Support OSL

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Linux World Expo

Linux World Expo

Copyright 2001-2008 Gentoo Foundation, Inc. Questions, Comments? Contact us.