Debiana

Zrozumienie lokalizacji w Debianie GNU/Linux

Zrozumienie lokalizacji w Debianie GNU/Linux
Każdy system komputerowy jest dostarczany z określoną konfiguracją dotyczącą języka systemu i używanego kodowania znaków. W oparciu o tę konfigurację na ekranie wyświetlane są komunikaty o błędach, system pomocy oraz informacje zwrotne dotyczące programu.

W systemach UNIX/Linux ta konfiguracja nazywa się ustawieniami lokalnymi POSIX [7] i jest standaryzowana jako IEEE Std 1003.1-2017 [3]. Takie ustawienia regionalne mogą się różnić dla całego systemu, a konta pojedynczego użytkownika, ponieważ każdy użytkownik może zindywidualizować swoje środowisko pracy. W tym artykule wyjaśnimy, jak ustalić aktualną konfigurację lokalizacji w Debianie GNU/Linux, zrozumieć jego pojedyncze śruby regulacyjne i jak dostosować system do własnych potrzeb.

Zauważ, że ten artykuł jest dostosowany do Debian GNU/Linux Release 10 „Buster”. O ile nie zaznaczono inaczej, opisane tutaj techniki działają również dla jego pochodnych, takich jak Ubuntu lub Linux Mint [8].

Co to jest lokalizacja?

Ogólnie rzecz biorąc, lokalizacja to zbiór wartości, które odzwierciedlają charakter i konwencje danego kraju lub kultury. Między innymi wartości te są przechowywane jako zmienne środowiskowe, które reprezentują język, kodowanie znaków, formatowanie daty i czasu, domyślny rozmiar papieru, walutę kraju oraz pierwszy dzień tygodnia.

Jak wspomnieliśmy wcześniej, istnieje ogólne ustawienie znane jako „domyślne ustawienia regionalne” i ustawienie zdefiniowane przez użytkownika. Domyślna lokalizacja działa w całym systemie i jest przechowywana w pliku /etc/default/locale. Listing 1 wyświetla domyślną lokalizację na Debian GNU/Linux, używając języka niemieckiego jako języka głównego i 8-bitowego Unicode (UTF-8) jako zestawu znaków [11].

Listing 1: Domyślna lokalizacja na niemieckim Debianie GNU/Linux

$ cat /etc/default/locale # Plik wygenerowany przez update-locale LANG=“de_DE.UTF-8” $ --

Należy pamiętać, że w przeciwieństwie do Debiana GNU/Linux, w niektórych wcześniejszych wersjach Ubuntu ustawienia regionalne dla całego systemu są przechowywane w /etc/locale.konf.

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'a (/bin/sh) [4] odczytuje dwa pliki /etc/profile i ~/.profil, podczas gdy powłoka Bourne-Again (Bash) (/bin/bash) [5] odczytuje /etc/profile i ~/.profil_bash. Jeśli twoją powłoką logowania jest powłoka Z (/bin/zsh) [9], dwa pliki ~/.profil z i ~/.zlogin są odczytywane, ale nie ~/.profil, chyba że został wywołany w trybie emulacji powłoki Bourne'a [10].

Uruchomienie powłoki w terminalu w istniejącej sesji powoduje powstanie interaktywnej powłoki bez logowania non. Może to spowodować odczytanie następujących plików - ~/.bashrc dla Basha i /etc/zshrc jak również ~/.zshrc dla powłoki Z [6].

Nazywanie języka

Jak wyjaśniono tutaj [12], nazwa lokalizacji ma określony wzór. Wzór składa się z kodów języków, kodowania znaków oraz opisu wybranego wariantu.

Nazwa zaczyna się od dwuliterowego kodu języka ISO 639-1 z małymi literami [13] lub trzyliterowego kodu języka ISO 639-2 [14], jeśli język nie ma dwuliterowego kodu. Na przykład jest to de dla niemieckiego, fr dla francuskiego, a cel dla celtyckiego. Po kodzie w wielu, ale nie we wszystkich językach, następuje podkreślenie _ oraz dwuliterowy kod kraju zgodny z ISO 3166 [15]. Na przykład prowadzi to do de_CH dla szwajcarskiego niemieckiego i fr_CA dla francuskojęzycznego systemu dla kanadyjskiego użytkownika, który prawdopodobnie znajduje się w Quebecu.

Opcjonalnie kropka . następuje po nazwie kodowania znaków, takim jak UTF-8 lub ISO-8859-1, a po znaku @ następuje nazwa wariantu. Na przykład nazwa [email protected] opisuje konfigurację angielskiego systemu dla Irlandii z kodowaniem znaków UTF-8, a euro jest symbolem waluty.

Polecenia i narzędzia

Liczba poleceń związanych z lokalizacjami jest stosunkowo niska. Lista zawiera ustawienia regionalne, które wyświetlają wyłącznie bieżące ustawienia regionalne. Drugi to localectl, którego można używać do sprawdzania i zmiany ustawień regionalnych systemu i układu klawiatury. Aby aktywować locale, do gry wchodzą narzędzia dpkg-reconfigure i locale-gen - patrz przykład poniżej.

Pokaż używany język

Pierwszym krokiem jest ustalenie aktualnej lokalizacji w systemie za pomocą polecenia locale w następujący sposób:

Listing 2: Pokaż aktualną lokalizację

$ lokalizacja LANG=de_DE.UTF-8 JĘZYK= 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_MEASUREMENT = „de_DE.UTF-8”
LC_IDENTIFICATION=“de_DE.UTF-8” LC_ALL= $ --

Należy pamiętać, że inne dystrybucje Linuksa niż Debian GNU/Linux mogą używać dodatkowych zmiennych środowiskowych niewymienionych powyżej. Pojedyncze zmienne mają następujące znaczenie:

Lista dostępnych lokalizacji

Następnie możesz wyświetlić listę dostępnych lokalizacji w systemie za pomocą polecenia locale wraz z opcją -a. -a jest skrótem od -all-locales:

Listing 3: Pokaż dostępne lokalizacje

$ lokalizacja -a C C.UTF-8 de_DE@euro de_DE.utf8 pl_PL.utf8 POSIX $ --

Listing 3 zawiera dwa ustawienia regionalne dla języka niemieckiego (Niemcy) i angielskiego (USA). Trzy wpisy C, C.UTF-8 i POSIX są synonimami i reprezentują domyślne ustawienia odpowiednie dla danych analizowanych przez program komputerowy. Dane wyjściowe z Listingu 3 są oparte na liście obsługiwanych lokalizacji przechowywanych w /usr/share/i18n/SUPPORTED.

Co więcej, dodanie opcji -v (skrót od -verbose) do wywołania prowadzi do znacznie bardziej obszernych danych wyjściowych, które zawierają metadane LC_IDENTIFICATION dotyczące każdego ustawienia narodowego. Rysunek 1 pokazuje to dla połączenia z wykazu 3.

Aby zobaczyć, które lokalizacje już istnieją, a które wymagają dalszej pomocy do uzupełnienia, możesz również spojrzeć na mapę projektu Locale Helper [20]. Czerwone znaczniki wyraźnie pokazują, które lokalizacje są niedokończone. Rysunek 2 przedstawia języki RPA, które wyglądają na całkiem kompletne.

Pokaż dostępne mapy postaci

Polecenie locale zawiera opcję -m, która jest skrótem od -charmaps. Wyjście pokazuje dostępne mapy znaków lub pliki opisu zestawu znaków [16]. Taki plik ma na celu „określenie właściwości zakodowanego zestawu znaków i kodowania znaków określonych w Portable Character Set oraz może definiować kodowanie dodatkowych znaków obsługiwanych przez implementację” [16]. Listing 4 ilustruje to fragmentem całej listy.

Listing 4: Pliki opisu zestawu znaków

$ lokalizacja -m ANSI_X3.110-1983 ANSI_X3.4-1968 ARMSCII-8 ASMO_449 BIG5 BIG5-HKSCS… $ --

Pokaż definicje zmiennych lokalnych

Każda zmienna używana w ustawieniach regionalnych ma swoją własną definicję. Używając opcji -k (skrót od -keyword-name) polecenie locale wyświetla szczegółowo to ustawienie. Listing 5 ilustruje to dla zmiennej LC_TELEPHONE, tak jak jest ona zdefiniowana w środowisku niemieckim - format numeru telefonu, format telefonu krajowego, międzynarodowy kod wyboru oraz kod kraju (prefiks międzynarodowy) i zestaw kodów. Zobacz projekt Locale Helper [20], aby uzyskać szczegółowy opis wartości.

Listing 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” telefon-codeset=„UTF-8” $ --

Zmiana aktualnego języka

Wiedza na temat lokalizacji staje się niezbędna, gdy tylko uruchomisz system, który ma inny język niż jesteś przyzwyczajony - na przykład w systemie Linux Live. Zmianę locale można wykonać na dwa sposoby - rekonfigurację pakietu locale Debiana [19] i dodanie wymaganego locale za pomocą polecenia locale-gen. W przypadku opcji pierwszej uruchomienie następującego polecenia powoduje otwarcie tekstowego okna dialogowego konfiguracji pokazanego na rysunku 3:

# dpkg-reconfigure locales

Naciśnij spację, aby wybrać żądany język z listy wyświetlonej w oknie dialogowym i wybierz „OK”, aby potwierdzić wybór. Następne okno dialogowe zawiera listę ustawień regionalnych dostępnych dla ustawień domyślnych. Wybierz żądany i wybierz „OK”. Teraz generowane są odpowiednie pliki locale, a poprzednio wybrane locale są ustawiane dla twojego systemu.

W przypadku opcji drugiej generowanie żądanych lokalizacji odbywa się za pomocą polecenia locale-gen. Listing 6 ilustruje to dla francuskiej konfiguracji:

Listing 6: Generowanie francuskiego języka

locale-gen fr_FR.UTF-8
Generuję języki… fr_FR.UTF-8… gotowe Generowanie zakończone. # --

Aby użyć wcześniej wygenerowanej lokalizacji jako domyślnej, uruchom polecenie z Listingu 7, aby skonfigurować je poprawnie:

Listing 7: Ręczne ustawianie lokalizacji

# update-locale LANG=fr_FR.UTF-8

Gdy tylko otworzysz nową sesję terminala lub ponownie zalogujesz się do swojego systemu, zmiany zostaną aktywowane.

Skompiluj plik definicji lokalizacji

Polecenie localectl pomaga ręcznie skompilować plik definicji lokalizacji local. Aby utworzyć ustawienie francuskie, uruchom polecenie w następujący sposób:

Listing 8: Skompiluj definicję lokalizacji

# localedef -i fr_FR -f UTF-8 fr_FR.UTF-8

Wniosek

Zrozumienie lokalizacji może trochę potrwać, ponieważ jest to konfiguracja, na którą wpływa kilka czynników. Wyjaśniliśmy, jak ustalić aktualną lokalizację i jak ją odpowiednio zmienić. Od teraz dostosowanie systemu Linux do Twoich potrzeb powinno być dla Ciebie znacznie łatwiejsze.

Linki i referencje
Gry Jak wyświetlić nakładkę OSD w pełnoekranowych aplikacjach i grach dla systemu Linux?
Jak wyświetlić nakładkę OSD w pełnoekranowych aplikacjach i grach dla systemu Linux?
Granie w gry pełnoekranowe lub korzystanie z aplikacji w trybie pełnoekranowym bez rozpraszania uwagi może odciąć Cię od istotnych informacji systemow...
Gry 5 najlepszych kart do przechwytywania gier
5 najlepszych kart do przechwytywania gier
Wszyscy widzieliśmy i uwielbialiśmy strumieniowe rozgrywki na YouTube on. PewDiePie, Jakesepticye i Markiplier to tylko niektórzy z najlepszych graczy...
Gry Jak stworzyć grę na Linuksie
Jak stworzyć grę na Linuksie
Dziesięć lat temu niewielu użytkowników Linuksa przewidywało, że ich ulubiony system operacyjny pewnego dnia stanie się popularną platformą do gier dl...