W systemach UNIX/Linux ta konfiguracja nazywa się lokalizacjami POSIX [7] i standaryzowana jako IEEE STD 1003.1-2017 [3]. Taka lokalizacja może się różnić dla systemu jako całości, a pojedynczy użytkownik, ponieważ każdy użytkownik może zindywidualizować swoje środowisko pracy. W tym artykule wyjaśnimy Ci, jak dowiedzieć się bieżącej konfiguracji lokalizacji na Debian GNU/Linux, aby zrozumieć jego pojedyncze śruby regulacyjne i jak dostosować system do twoich potrzeb.
Zauważ, że ten artykuł jest dostosowany do Debian GNU/Linux Wydanie 10 „Buster”. O ile nie określono inaczej, opisane tutaj techniki również działają dla jego pochodnych, takich jak Ubuntu lub Linux Mint [8].
Co to jest lokalizacja?
Ogólnie rzecz biorąc, lokalizacja jest zestawem wartości odzwierciedlających naturę i konwencje kraju lub kultury. Między innymi te wartości są przechowywane jako zmienne środowiskowe reprezentujące język, kodowanie postaci, formatowanie daty i godziny, domyślny rozmiar papieru, waluta kraju, a także pierwszy dzień tygodnia.
Jak dotyczyło wcześniej, istnieje ogólne ustawienie znane jako „domyślne regiony” i ustawienie zdefiniowane przez użytkownika. Domyślne ustawienia lokalizacji w całym systemie i jest przechowywane w pliku/etc/domyślne/. Lista 1 wyświetla domyślną lokalizację na Debian GNU/Linux za pomocą niemieckiego jako głównego języka, oraz 8-bitowy Unicode (UTF-8) jako zestaw znaków [11].
Lista 1: Domyślna lokalizacja na niemieckim debian gnU/Linux
$ cat/etc/default/locale # plik generowany przez aktualiza.UTF-8 ”$ --
Należy pamiętać, że w przeciwieństwie do Debian GNU/Linux, w niektórych wcześniejszych wersjach Ubuntu konfiguracja lokalizacji w całym systemie jest przechowywana na/etc/locale.conf.
Ustawienia zdefiniowane przez użytkownika są przechowywane jako ukryty plik w katalogu domowym, a rzeczywiste pliki, które są oceniane, zależą od używanej powłoki logowania [6]. Tradycyjna powłoka Bourne (/bin/sh) [4] odczytuje dwa pliki/etc/profil i ~/.Profil, podczas gdy Bourne-Again Shell (bash) (/bin/bash) [5] odczytuje/etc/profilu i ~/.bash_profile. Jeśli twoją powłoką logowania jest Z Shell (/bin/zsh) [9], dwa pliki ~/.Zprofile i ~/.Zlogin są odczytane, ale nie ~//.Profil, chyba że wywołany w trybie emulacji Shell Bourne [10].
Uruchomienie powłoki w terminalu w istniejącej sesji powoduje interaktywną, nie-loginową powłokę. Może to spowodować odczytanie następujących plików - ~//.bashrc dla bash i/etc/zshrc, a także ~/.Zshrc dla z powłoki z [6].
Jak wyjaśniono tutaj [12], nazwa regionu jest zgodna z określonym wzorem. Wzór składa się z kodów językowych, kodowania znaków i opisu wybranego wariantu.
Nazwa zaczyna się od małego dwustronnego kodu języka ISO 639-1 [13] lub trzyliterowego kodu języka ISO 639-2 [14] Jeśli język nie ma kodu dwuliterowego. Na przykład jest to de for niemieckie, fr dla francuskiego i cela dla celtyckiego. Kod jest przestrzegany przez wiele, ale nie wszystkich języków przez podkreślenie _ oraz przez wielkie dwupoziomowe kod kraju ISO 3166 [15]. Na przykład prowadzi to do DE_CH dla szwajcarskiego niemieckiego i FR_CA dla systemu francuskojęzycznego dla kanadyjskiego użytkownika, który może się zlokalizować w Quebecu.
Opcjonalnie kropka . Postępuje zgodnie z nazwą kodowania znaku, takiego jak UTF-8 lub ISO-8859-1, a także znak @, a następnie nazwa wariantu. Na przykład nazwa en_ie.UTF-8@euro opisuje konfigurację systemu angielskiego dla Irlandii z kodowaniem znaków UTF-8, a euro jako symbol waluty.
Liczba poleceń związanych z lokalizacją jest stosunkowo niska. Lista zawiera lokalizację, która wyświetla bieżące ustawienia lokalizacji. Drugi to lokalectl, którego można użyć do zapytania i zmiany ustawień układu regionalnego i klawiatury. Aby aktywować lokalizację, wchodzą w grę narzędzia DPKG-Reconfigure i genetycznie.
Pierwszym krokiem jest ustalenie bieżącej lokalizacji w systemie za pomocą polecenia ustawień lokalizacji w następujący sposób:
Lista 2: Pokaż aktualną lokalizację
$ locale lang = de_de.UTF-8 Language = lc_ctype = „de_de.UTF-8 ”lc_numeric =„ de_de.UTF-8 ”
Lc_time = „de_de.Utf-8 ”lc_collate =„ de_de.Utf-8 ”lc_monetary =„ de_de.UTF-8 ”
Lc_messages = „de_de.Utf-8 ”lc_paper =„ de_de.UTF-8 ”lc_name =„ de_de.UTF-8 ”
Lc_address = „de_de.Utf-8 ”lc_telephone =„ de_de.UTF-8 ”LC_MEASURUTER =„ de_de.UTF-8 ”
LC_Identification = „de_de.UTF-8 ”LC_ALL = $ --
Należy pamiętać, że inne dystrybucje Linux niż Debian GNU/Linux mogą używać dodatkowych zmiennych środowiskowych, które nie wymieniono powyżej. Pojedyncze zmienne mają następujące znaczenie:
Następnie możesz wymienić dostępne lokalizacje w systemie za pomocą polecenia lokalizacji, któremu towarzyszy jego opcja -a. -A jest krótkie dla -all -locale:
Lista 3: Pokaż dostępne lokalizacje
$ locale -a c c.UTF-8 de_de@euro de_de.UTF8 en_us.UTF8 POSIX $ --
Lista 3 zawiera dwa ustawienia lokalizacji zarówno dla Niemiec (Niemcy), jak i angielskiego (USA). Trzy wpisy C, C.UTF-8 i POSIX są synonimami i reprezentują ustawienia domyślne odpowiednie dla danych, które są analizowane przez program komputerowy. Dane wyjściowe na liście 3 oparte jest na liście obsługiwanych lokalizacji przechowywanych w/usr/share/i18n/obsługiwane.
Ponadto dodanie opcji -V (skrót od czasowy) do połączenia prowadzi do znacznie bardziej obszernej wydajności, która obejmuje metadane LC_Identification dotyczące każdego miejsca. Rysunek 1 pokazuje to dla połączenia z listy 3.
Aby zobaczyć, które lokalizacje już istnieją, a które z nich potrzebują dalszej pomocy do zakończenia, możesz również rzucić okiem na mapę projektu pomocnika lokalizacji [20]. Czerwone markery wyraźnie pokazują, które lokalizacje są niedokończone. Rysunek 2 pokazuje lokalizacje dla Afryki Południowej, które wyglądają całkiem kompletnie.
Polecenie lokalizacji jest wyposażone w opcję -m, która jest krótka dla -Charmaps. Dane wyjściowe pokazuje dostępne mapy znaków lub zestaw znaków Opis Pliki [16]. Taki plik ma „zdefiniować cechy dla kodowanego zestawu znaków i kodowanie znaków określonych w zestawie przenośnych znaków i może zdefiniować kodowanie dla dodatkowych znaków obsługiwanych przez implementację” [16]. Listing 4 ilustruje to z wyciągiem z całej listy.
Lista 4: Zestaw znaków Pliki Opis
$ locale -m ansi_x3.110-1983 ANSI_X3.4-1968 ARMSCII-8 ASMO_449 BIG5 BIG5-HKSCS… $ --
Każda zmienna używana do lokalizacji zawiera własną definicję. Korzystanie z opcji -K (skrót dla -keyword -name) Polecenie lokalizacji wyświetla to ustawienie szczegółowo. Listing 5 ilustruje to dla zmiennej LC_TELEPHONE, ponieważ jest on zdefiniowany w środowisku niemieckim - format numeru telefonu, format telefonu krajowego, międzynarodowy kod wyboru, a także kod kraju (przedrostek międzynarodowy) i zestaw kodów. Szczegółowy opis wartości można znaleźć w projekcie pomocniczej [20].
Lista 5: Szczegóły LC_TELEPHONE
$ LOCALE -K LC_TELEPHONE Tel_int_fmt = „+ %C %A %L” Tel_dom_fmt = „ %A %L”
int_select = „00” int_prefix = „49” Codeset telefoniczny = „UTF-8” $ --
Wiedza dotycząca regionu staje się konieczna, gdy tylko uruchomisz system, który ma inną lokalizację niż jesteś przyzwyczajony - na przykład w systemie Linux Live. Zmiana lokalizacji można wykonać na dwa sposoby - rekonfigurowanie pakietu lokalizacji Debiana [19] i dodanie wymaganej lokalizacji za pomocą generacji lokalizacji poleceń. W przypadku opcji pierwszej uruchomienie następującego polecenia otwiera okno dialogowe konfiguracji oparte na tekstie pokazane na rysunku 3:
# DPKG-RECONFIGURE Miejsce
Naciśnij pasek przestrzeni, aby wybrać żądaną lokalizację z listy pokazanej w oknie dialogowym i wybierz „OK”, aby potwierdzić swój wybór. Następne okno dialogowe oferuje listę lokalizacji, które są dostępne dla domyślnej regionu. Wybierz żądany i wybierz „OK”. Teraz generowane są pliki lokalizacyjne, a wcześniej wybrany lokalizacja jest ustawiona dla twojego systemu.
W przypadku drugiej opcji generowanie pożądanej regionu jest wykonywane za pomocą generacji lokalizacji poleceń. Lista 6 ilustruje to dla francuskiej konfiguracji:
Lista 6: Generowanie francuskiej lokalizacji
locale-gen fr_fr.UTF-8
Generowanie lokalizacji… FR_FR.UTF-8… gotowe pokolenie kompletne. # --
Aby użyć wcześniej wygenerowanego regionu jako domyślnego, uruchom polecenie na liście 7, aby poprawnie skonfigurować:
Lista 7: Ręczne ustawianie lokalizacji
# aktualizacja LANG LANG = FR_FR.UTF-8
Gdy tylko otworzysz nową sesję terminalową lub ponownie login do systemu, zmiany są aktywowane.
Polecenie Localectl pomaga ręcznie skompilować plik definicji lokalizacji. Aby utworzyć francuskie ustawienie, uruchom polecenie w następujący sposób:
Lista 8: Skompiluj definicję lokalizacji
# lokocedef -i fr_fr -f utf -8 fr_fr.UTF-8
Zrozumienie lokalizacji może zająć trochę czasu, ponieważ jest to konfiguracja, na którą wpływa kilka czynników. Wyjaśniliśmy, jak wymyślić obecną lokalizację i jak ją poprawnie zmienić. Przyleganie systemu Linux do twoich potrzeb powinno być dla Ciebie znacznie łatwiejsze.