V systémech UNIX / Linux se toto nastavení nazývá národní prostředí POSIX [7] a je standardizováno jako IEEE Std 1003.1-2017 [3]. Takové národní prostředí se může lišit pro systém jako celek a jednotlivé uživatelské účty, protože každý uživatel může individualizovat své pracovní prostředí. V tomto článku vám vysvětlíme, jak zjistit aktuální nastavení národního prostředí v Debian GNU / Linux, porozumět jeho jednotlivým nastavovacím šroubům a jak přizpůsobit systém vašim potřebám.
Tento článek je šitý na míru pro Debian GNU / Linux verze 10 „Buster“. Pokud není uvedeno jinak, zde popsané techniky fungují také pro její deriváty, jako je Ubuntu nebo Linux Mint [8].
Co je to národní prostředí?
Obecně lze říci, že národní prostředí je sada hodnot, které odrážejí povahu a konvence země nebo kultury. Mimo jiné jsou tyto hodnoty uloženy jako proměnné prostředí, které představují jazyk, kódování znaků, formátování data a času, výchozí velikost papíru, měnu země a první den v týdnu.
Jak jsme se již dříve zmínili, existuje obecné nastavení známé jako „výchozí národní prostředí“ a uživatelem definované nastavení. Výchozí národní prostředí funguje v celém systému a je uloženo v souboru / etc / default / locale. Výpis 1 zobrazuje výchozí národní prostředí v Debianu GNU / Linux s použitím němčiny jako hlavního jazyka a 8bitového unicode (UTF-8) jako znakové sady [11].
Výpis 1: Výchozí národní prostředí v německém Debianu GNU / Linux
$ cat / etc / default / locale # Soubor vygenerovaný aktualizací-locale LANG = “de_DE.UTF-8 ”$ --Vezměte prosím na vědomí, že na rozdíl od Debianu GNU / Linux je u některých starších verzí Ubuntu nastavení národního prostředí celého systému uloženo na / etc / locale.konf.
Uživatelem definovaná nastavení jsou uložena jako skrytý soubor ve vašem domovském adresáři a skutečné soubory, které jsou hodnoceny, závisí na přihlašovacím prostředí, které používáte [6]. Tradiční prostředí Bourne (/ bin / sh) [4] čte dva soubory / etc / profile a ~ /.profil, zatímco prostředí Bourne-Again (Bash) (/ bin / bash) [5] čte / etc / profile a ~ /.bash_profile. Pokud je vaším přihlašovacím shellem Z shell (/ bin / zsh) [9], dva soubory ~ /.zprofile a ~ /.zlogin jsou čteny, ale ne ~ /.profil, pokud není vyvolán v režimu emulace prostředí Bourne [10].
Spuštění prostředí v terminálu v existující relaci má za následek interaktivní prostředí bez přihlášení. To může mít za následek čtení následujících souborů - ~ /.bashrc pro Bash a / etc / zshrc stejně jako ~ /.zshrc pro Z shell [6].
Pojmenování národního prostředí
Jak je vysvětleno zde [12], název národního prostředí se řídí specifickým vzorem. Vzor se skládá z jazykových kódů, kódování znaků a popisu vybrané varianty.
Název začíná dvojpísmenným kódem jazyka ISO 639-1 [13] nebo třípísmenným kódem jazyka ISO 639-2 [14], pokud jazyk nemá dvoupísmenný kód. Například je to de pro němčinu, fr pro francouzštinu a cel pro keltštinu. Za tímto kódem následuje v mnoha, ale ne ve všech jazycích podtržítko _ a velký dvoupísmenný kód země podle ISO 3166 [15]. Například to vede k de_CH pro švýcarskou němčinu a fr_CA pro frankofonní systém pro kanadského uživatele, který bude pravděpodobně umístěn v Québecu.
Volitelně tečka . následuje za názvem kódování znaků, jako je UTF-8 nebo ISO-8859-1, a za znakem @ následovaným názvem varianty. Například název [email protected] popisuje nastavení anglického systému pro Irsko s kódováním znaků UTF-8 a symbolem měny Euro.
Příkazy a nástroje
Počet příkazů souvisejících s národními prostředími je relativně nízký. Seznam obsahuje národní prostředí, které čistě zobrazuje aktuální nastavení národního prostředí. Druhým z nich je localectl, který lze použít k dotazování a změně nastavení národního prostředí systému a rozložení klávesnice. Aby bylo možné aktivovat národní prostředí, vstupují do hry nástroje dpkg-reconfigure a locale-gen - viz příklad níže.
Zobrazit národní prostředí, které se používá
Prvním krokem je zjistit aktuální národní prostředí ve vašem systému pomocí následujícího příkazu:
Výpis 2: Zobrazit aktuální národní prostředí
$ 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_MEASUREMENT =“ de_DE.UTF-8 ”
LC_IDENTIFICATION = “de_DE.UTF-8 ”LC_ALL = $ --
Pamatujte, že jiné distribuce Linuxu než Debian GNU / Linux mohou používat další proměnné prostředí, které nejsou uvedeny výše. Jednotlivé proměnné mají následující význam:
- LANG: Určuje výchozí národní prostředí při absenci dalších proměnných prostředí souvisejících s národním prostředím
- JAZYK: Seznam jazyků pro překlad záložních zpráv
- LC_CTYPE: Klasifikace znaků a převod písmen
- LC_NUMERIC: Numerické formátování
- LC_TIME: Formáty data a času
- LC_COLLATE: Pořadí řazení (řazení)
- LC_MONETARY: Peněžní formátování
- LC_MESSAGES: Formát interaktivních slov a odpovědí
- LC_PAPER: Výchozí velikost papíru pro region
- LC_NAME: Formáty jmen
- LC_ADDRESS: Konvence použitá pro formátování poštovních nebo poštovních adres
- LC_TELEPHONE: Konvence používané k reprezentaci telefonních čísel
- LC_MEASUREMENT: Výchozí měřicí systém používaný v regionu
- LC_IDENTIFICATION: Metadata o místních informacích
- LC_RESPONSE: Určuje, jak se odpovědi (například Ano a Ne) objeví v místním jazyce (nepoužívá je Debian GNU / Linux, ale Ubuntu)
- LC_ALL: Přepíše všechny ostatní proměnné národního prostředí (kromě LANGUAGE)
Seznam dostupných národních prostředí
Dále můžete zobrazit dostupná národní prostředí ve vašem systému pomocí příkazu locale doprovázeného jeho volbou -a. -a je zkratka pro -all-locales:
Výpis 3: Zobrazit dostupná národní prostředí
$ národní prostředí -a C C.UTF-8 de_DE @ euro de_DE.utf8 cs_US.utf8 POSIX $ --Výpis 3 obsahuje dvě národní nastavení pro němčinu (Německo) a angličtinu (USA). Tři položky C, C.UTF-8 a POSIX jsou synonyma a představují výchozí nastavení, které je vhodné pro data analyzovaná počítačovým programem. Výstup v seznamu 3 je založen na seznamu podporovaných národních prostředí uložených v / usr / share / i18n / PODPOROVÁNO.
Navíc přidání volby -v (zkratka pro -verbose) k volání vede k mnohem rozsáhlejšímu výstupu, který zahrnuje metadata LC_IDENTIFICATION o každém národním prostředí. Obrázek 1 to ukazuje pro hovor ze seznamu 3.
Abyste zjistili, která národní prostředí již existují a která potřebují k dokončení další pomoc, můžete se také podívat na mapu projektu Locale Helper Project [20]. Červené značky jasně ukazují, která národní prostředí jsou nedokončená. Obrázek 2 zobrazuje národní prostředí pro Jihoafrickou republiku, která vypadají docela kompletně.
Zobrazit dostupné mapy znaků
Příkaz locale je dodáván s volbou -m, což je zkratka pro -charmaps. Výstup zobrazuje dostupné mapy znaků nebo soubory s popisem znakové sady [16]. Takový soubor je určen k „definování charakteristik kódované znakové sady a kódování znaků specifikovaných v přenosné znakové sadě a může definovat kódování dalších znaků podporovaných implementací“ [16]. Výpis 4 to ilustruje výňatkem z celého seznamu.
Výpis 4: Soubory popisu znakové sady
$ locale -m ANSI_X3.110-1983 ANSI_X3.4-1968 ARMSCII-8 ASMO_449 BIG5 BIG5-HKSCS… $ --Zobrazit definice proměnných národního prostředí
Každá proměnná použitá pro národní prostředí má svou vlastní definici. Pomocí volby -k (zkratka pro -keyword-name) příkaz locale zobrazí toto nastavení podrobně. Výpis 5 to ilustruje pro proměnnou LC_TELEPHONE, jak je definována v německém prostředí - formát telefonního čísla, formát domácího telefonu, mezinárodní výběrový kód i kód země (mezinárodní předvolba) a sada kódů. Podrobný popis hodnot najdete v projektu Locale Helper Project [20].
Výpis 5: Podrobnosti o LC_TELEPHONE
$ locale -k LC_TELEPHONE tel_int_fmt = “+% c% a% l” tel_dom_fmt = “% A% l”int_select = “00” int_prefix = “49” telefonní kódová sada = “UTF-8” $ --
Změna aktuálního národního prostředí
Znalosti týkající se národního prostředí jsou nezbytné, jakmile spustíte systém, který je dodáván s jiným národním prostředím, než na jaké jste zvyklí - například na živém systému Linux. Změnu národního prostředí lze provést dvěma způsoby - překonfigurováním balíčku národních prostředí Debian [19] a přidáním požadovaného národního prostředí pomocí příkazu locale-gen. U možnosti jedna se spuštěním následujícího příkazu otevře textový konfigurační dialog zobrazený na obrázku 3:
# dpkg-překonfigurovat národní prostředí
Stisknutím mezerníku vyberte požadované národní prostředí ze seznamu zobrazeného v dialogovém okně a výběr potvrďte kliknutím na „OK“. Následující dialogové okno nabízí seznam národních prostředí, která jsou k dispozici pro výchozí národní prostředí. Vyberte požadovaný a zvolte „OK“. Nyní se vygenerují odpovídající soubory národního prostředí a dříve vybrané národní prostředí se nastaví pro váš systém.
U možnosti dva se generování požadovaného národního prostředí provádí pomocí příkazu locale-gen. Výpis 6 to ilustruje u francouzského nastavení:
Výpis 6: Generování francouzského národního prostředí
národní prostředí fr_FR.UTF-8Generování národních prostředí… fr_FR.UTF-8… hotovo Generace dokončena. # --
Chcete-li použít dříve vygenerované národní prostředí jako výchozí, spusťte příkaz v seznamu 7 a nastavte jej správně:
Výpis 7: Ruční nastavení národního prostředí
# update-locale LANG = fr_FR.UTF-8Jakmile otevřete novou relaci terminálu nebo se znovu přihlásíte do systému, změny se aktivují.
Zkompilujte soubor definice národního prostředí
Příkaz localectl vám pomůže ručně sestavit definiční soubor národního prostředí. Chcete-li vytvořit francouzské nastavení, spusťte příkaz následujícím způsobem:
Výpis 8: Zkompilovat definici národního prostředí
# localedef -i fr_FR -f UTF-8 fr_FR.UTF-8Závěr
Pochopení národních prostředí může chvíli trvat, protože jde o nastavení, které je ovlivněno několika faktory. Vysvětlili jsme, jak zjistit aktuální národní prostředí a jak jej správně změnit. Adaptace systému Linux na vaše potřeby by od nynějška měla být pro vás mnohem jednodušší.
Odkazy a reference
- [1] Národní prostředí, Debian Wiki
- [2] ChangeLanguage, Jak změnit jazyk vašeho systému Debian
- [3] POSIX Locale, The Open Group Base Specification Issue 7, 2018 edition
- [4] Bourneova skořápka, Wikipedia
- [5] Bourne-Again shell, Wikipedia
- [6] Rozdíl mezi přihlašovacím prostředím a nepřihlašovacím prostředím?, StackExchange
- [7] Přenosné rozhraní operačního systému (POSIX), Wikipedia
- [8] Linux Mint
- [9] Z shell, Wikipedia
- [10] Příkazy vestavěné Zsh Shell
- [11] UTF-8, Wikipedia
- [12] Na co bych měl nastavit své národní prostředí a jaké to má důsledky?
- [13] ISO 639-1, Wikipedia
- [14] ISO 639-2, Wikipedia
- [15] ISO 3166, Wikipedia
- [16] Soubory popisu znakové sady
- [17] Národní prostředí, Ubuntu Wiki
- [19] lokalizuje balíček Debian
- [20] Locale Helper Project