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.