Zrozumienie lokalizacji w Debian Gnu/Linux

Zrozumienie lokalizacji w Debian Gnu/Linux
Każdy system komputerowy ma specyficzną konfigurację dotyczącą języka systemu i kodowanie znaków, które jest używane. Na podstawie tej konfiguracji komunikaty o błędach system pomocy, a także informacje zwrotne programu są wyświetlane na ekranie.

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].

Nazywanie lokalizacji

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.

Polecenia i narzędzia

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.

Pokaż lokalizację, która jest używana

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:

  • LANG: Określa domyślną lokalizację przy braku innych zmiennych środowiskowych związanych z lokalizacjami
  • Język: lista języków tłumaczenia wiadomości o awarii
  • LC_CTYPE: Klasyfikacja znaków i konwersja przypadków
  • LC_NUMERIC: Formatowanie numeryczne
  • LC_TIME: Formaty daty i godziny
  • LC_COLLATE: Zamówienie (sort)
  • LC_MONETARY: Formatowanie pieniężne
  • LC_Messages: Format interaktywnych słów i odpowiedzi
  • LC_PAPE: Domyślny rozmiar papieru dla regionu
  • LC_NAME: Formaty nazwy
  • LC_ADDRESS: Konwencja używana do formatowania adresów ulicznych lub pocztowych
  • LC_TELEPHON: Konwencje używane do reprezentacji numerów telefonów
  • LC_MEASUURTE: Domyślny system pomiarowy używany w regionie
  • LC_Identification: Metadane o informacji lokalizacji
  • Lc_response: określa, w jaki sposób odpowiedzi (takie jak tak i nie) pojawiają się w języku lokalnym (nie używane przez Debian GNU/Linux, ale Ubuntu)
  • LC_ALL: zastępuje wszystkie inne zmienne lokalizacyjne (z wyjątkiem języka)

Lista dostępnych lokalizacji

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.

Pokaż dostępne mapy znaków

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… $ --

Pokaż definicje zmiennych lokalizacji

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” $ --

Zmiana obecnej lokalizacji

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.

Skompiluj plik definicji lokalizacji

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

Wniosek

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.

Linki i referencje
  • [1] lokalizacja, debian wiki
  • [2] Changelanguage, jak zmienić język swojego systemu debiana
  • [3] POSIX LOCALE, The Open Group Base Specyfikacje Wydanie 7, 2018 Wydanie
  • [4] Bourne Shell, Wikipedia
  • [5] Bourne-Again Shell, Wikipedia
  • [6] Różnica między powłoką logowania a powłoką nie-loginową?, Stackexchange
  • [7] Przenośny interfejs systemu operacyjnego (POSIX), Wikipedia
  • [8] Linux Mint
  • [9] Z Shell, Wikipedia
  • [10] polecenia ZSH Shell Buildin
  • [11] UTF-8, Wikipedia
  • [12] Na co powinienem ustawić swoje miejsce i jakie są implikacje?
  • [13] ISO 639-1, Wikipedia
  • [14] ISO 639-2, Wikipedia
  • [15] ISO 3166, Wikipedia
  • [16] Zestaw znaków Pliki Opis
  • [17] lokalizacja, Ubuntu Wiki
  • [19] Miejscowe pakiet Debian
  • [20] Projekt pomocniczy lokalizacji