Polskie locale i UTF-8 na Ubuntu

Wynajmując serwer fizyczny bądź wirtualny (VPS) często otrzymujemy w pakiecie prekonfigurowany system operacyjny Linux. Gdy serwer jest wynajmowany za granicą, system operacyjny może nie być prawidłowo skonfigurowany do obsługi języka polskiego nawet, gdy zainstalujemy odpowiednie pakiety językowe i ustawimy odpowiednie wartości zmiennych środowiskowych LANG, LC_ALL i LANGUAGE.

Sygnałem, że konfiguracja systemu nie jest optymalna mogą być na przykład następujące komunikaty (poniższe wypisuje interpreter języka Perl):

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "pl_PL",
LC_ALL = "pl_PL.UTF-8",
LANG = "pl_PL.UTF-8"
are supported and installed on your system.

Wypisywane są nawet wtedy, gdy nadamy specyficznym zmiennym środowiskowym następujące wartości

LANG=pl_PL.UTF-8
LANGUAGE=pl_PL
LC_ALL=pl_PL.UTF-8

W dystrybucji Ubuntu rozwiązanie problemu jest następujące: przechodzimy do katalogu /var/lib/locales/supported.d i tworzymy w nim plik o nazwie pl i poniższej zawartości

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

Wywołujemy polecenie dpkg-reconfigure locales, które wypisze takie, lub podobne komunikaty

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "pl_PL.UTF-8",
LANG = "pl_PL.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales...
de_AT.UTF-8... up-to-date
de_BE.UTF-8... up-to-date
de_CH.UTF-8... up-to-date
de_DE.UTF-8... up-to-date
de_LI.UTF-8... up-to-date
de_LU.UTF-8... up-to-date
pl_PL.ISO-8859-2... done
pl_PL.UTF-8... done
Generation complete.


Gotowe.

Jeżeli do łączenia się ze zdalnym serwerem wykorzystywany jest terminal PuTTY, należy pamiętać, aby również w jego ustawieniach zmienić sposób translacji znaków na UTF-8.

Napisz komentarz