På UNIX / Linux-systemer kaldes denne opsætning POSIX [7] locales og standardiseres som IEEE Std 1003.1-2017 [3]. En sådan lokalitet kan variere for systemet som helhed, og den enkelte brugerkonti, da hver enkelt bruger kan individualisere sit arbejdsmiljø. I denne artikel vil vi forklare dig, hvordan du finder ud af den aktuelle lokalinstallation på Debian GNU / Linux, for at forstå dens enkelte justeringsskruer, og hvordan du tilpasser systemet til dine behov.
Bemærk, at denne artikel er skræddersyet til Debian GNU / Linux Release 10 “Buster”. Medmindre andet er angivet, fungerer de her beskrevne teknikker også for dets derivater som Ubuntu eller Linux Mint [8].
Hvad er en lokalitet?
Generelt er en lokalitet et sæt værdier, der afspejler naturen og konventionerne i et land eller en kultur. Disse værdier er blandt andet gemt som miljøvariabler, der repræsenterer sproget, tegnkodningen, dato og klokkeslætformatering, standardpapirstørrelse, landets valuta samt den første ugedag.
Som berørt før er der en generel indstilling kendt som 'standard landestandard' og en brugerdefineret indstilling. Standard locale fungerer hele systemet og er gemt i filen / etc / default / locale. Fortegnelse 1 viser standardsprog på en Debian GNU / Linux ved hjælp af tysk som hovedsprog og 8 bit unicode (UTF-8) som tegnsæt [11].
Liste 1: Standardsprog på en tysk Debian GNU / Linux
$ cat / etc / default / locale # Fil genereret af update-locale LANG = “de_DE.UTF-8 ”$ --Vær opmærksom på, at i modsætning til Debian GNU / Linux gemmes den systemdækkende landestandardopsætning på nogle tidligere Ubuntu-versioner på / etc / locale.konf.
De brugerdefinerede indstillinger gemmes som en skjult fil i dit hjemmekatalog, og de faktiske filer, der evalueres, afhænger af den login-shell, du bruger [6]. Den traditionelle Bourne-skal (/ bin / sh) [4] læser de to filer / etc / profil og ~ /.profil, mens Bourne-Again-skal (Bash) (/ bin / bash) [5] læser / etc / profil og ~ /.bash_profile. Hvis din login shell er Z shell (/ bin / zsh) [9], er de to filer ~ /.zprofile og ~ /.zlogin læses, men ikke ~ /.profil, medmindre den påberåbes i Bourne shell-emuleringstilstand [10].
At starte en shell i en terminal i en eksisterende session resulterer i en interaktiv shell, der ikke er login. Dette kan resultere i læsning af følgende filer - ~ /.bashrc for Bash og / etc / zshrc samt ~ /.zshrc til Z shell [6].
Navngivning af en lokalitet
Som forklaret her [12] følger navnet på en lokalitet et specifikt mønster. Mønsteret består af sprogkoder, tegnkodning og beskrivelsen af en valgt variant.
Et navn starter med en ISO 639-1 små bogstaver med to bogstaver [13] eller en ISO 639-2 tre bogstaver sprogkode [14], hvis sproget ikke har to bogstaver. For eksempel er det de for tysk, fr for fransk og cel for keltisk. Koden følges for mange, men ikke alle sprog, af en understregning _ og af en ISO 3166 store bogstav med to bogstaver [15]. For eksempel fører dette til de_CH for schweizertysk og fr_CA for et fransktalende system for en canadisk bruger, der sandsynligvis vil være placeret i Québec.
Eventuelt en prik . følger navnet på tegnkodningen såsom UTF-8 eller ISO-8859-1, og @ -tegnet efterfulgt af navnet på en variant. For eksempel beskriver navnet [e-mailbeskyttet] opsætningen af et engelsk system til Irland med UTF-8-tegnkodning og euroen som valutasymbol.
Kommandoer og værktøjer
Antallet af kommandoer relateret til lokaliteter er relativt lavt. Listen indeholder landestandard, der rent viser de aktuelle landestandardindstillinger. Den anden er localectl, der kan bruges til at forespørge og ændre indstillingerne for systemets lokalitet og tastaturlayout. For at aktivere en lokalitet kommer værktøjerne dpkg-reconfigure og locale-gen til spil - se eksemplet nedenfor.
Vis det sprog, der er i brug
Trin et er at finde ud af det aktuelle landestandard på dit system ved hjælp af landestandardkommandoen som følger:
Liste 2: Vis den aktuelle lokalitet
$ locale LANG = de_DE.UTF-8 SPROG = 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 = $ --
Bemærk, at andre Linux-distributioner end Debian GNU / Linux muligvis bruger yderligere miljøvariabler, der ikke er nævnt ovenfor. De enkelte variabler har følgende betydning:
- LANG: Bestemmer standard locale i fravær af andre locale relaterede miljøvariabler
- SPROG: Liste over oversættelsessprog til reservemeddelelser
- LC_CTYPE: Tegnklassifikation og sagskonvertering
- LC_NUMERIC: Numerisk formatering
- LC_TIME: Dato- og tidsformater
- LC_COLLATE: Sorteringsrækkefølge
- LC_MONETARY: Monetær formatering
- LC_MESSAGES: Format af interaktive ord og svar
- LC_PAPER: Standardpapirstørrelse for region
- LC_NAME: Navneformater
- LC_ADDRESS: Konvention brugt til formatering af gade- eller postadresser
- LC_TELEPHONE: Konventioner, der bruges til repræsentation af telefonnumre
- LC_MEASUREMENT: Standard målesystem, der anvendes i regionen
- LC_IDENTIFICATION: Metadata om lokal information
- LC_RESPONSE: Bestemmer, hvordan svar (såsom Ja og Nej) vises på det lokale sprog (ikke i brug af Debian GNU / Linux men Ubuntu)
- LC_ALL: Tilsidesætter alle andre sprogvariabler (undtagen SPROG)
Liste over tilgængelige lokaliteter
Derefter kan du liste de tilgængelige lokaliteter på dit system ved hjælp af landekommandoen ledsaget af dens valgmulighed -a. -a er forkortelse for -all-locales:
Liste 3: Vis tilgængelige lokaliteter
$ lokal -a C C.UTF-8 de_DE @ euro de_DE.utf8 da_DK.utf8 POSIX $ --Liste 3 indeholder to sprogindstillinger for både tysk (tyskland) og engelsk (USA). De tre poster C, C.UTF-8 og POSIX er synonyme og repræsenterer standardindstillingerne, der passer til data, der parses af et computerprogram. Outputtet i Listing 3 er baseret på listen over understøttede lokaliteter, der er gemt i / usr / share / i18n / SUPPORTED.
Desuden fører tilføjelse af optionen -v (kort for -verbose) til opkaldet til en meget mere omfattende output, der inkluderer LC_IDENTIFICATION-metadataene om hver lokalitet. Figur 1 viser dette for opkaldet fra liste 3.
For at se hvilke lokaliteter der allerede findes, og hvilke der har brug for yderligere hjælp for at blive afsluttet, kan du også kigge på kortet over Local Helper Project [20]. Røde markører viser tydeligt, hvilke lokaliteter der er ufærdige. Figur 2 viser lokaliteterne for Sydafrika, der ser ret komplette ud.
Vis tilgængelige tegnkort
Lokalkommandoen leveres med indstillingen -m, der er en forkortelse for -charmaps. Outputtet viser de tilgængelige tegnkort eller tegnsætbeskrivelsesfiler [16]. En sådan fil er beregnet til at “definere karakteristika for det kodede tegnsæt og kodning for de tegn, der er specificeret i bærbart tegnsæt, og kan definere kodning for yderligere tegn, der understøttes af implementeringen” [16]. Liste 4 illustrerer dette med et uddrag af hele listen.
Liste 4: Tekstsæt beskrivelsesfiler
$ locale -m ANSI_X3.110-1983 ANSI_X3.4-1968 ARMSCII-8 ASMO_449 BIG5 BIG5-HKSCS… $ --Vis definitionerne af lokalvariabler
Hver variabel, der bruges til et landestandard, har sin egen definition. Ved hjælp af indstillingen -k (forkortelse for -keyword-name) viser landestandardkommandoen denne indstilling i detaljer. Liste 5 illustrerer dette for variablen LC_TELEPHONE, som den er defineret i et tysk miljø - telefonnummerformatet, det indenlandske telefonformat, den internationale valgkode samt landekoden (internationalt præfiks) og kodesættet. Se Local Helper Project [20] for en detaljeret beskrivelse af værdierne.
Liste 5: Detaljerne i 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” $ --
Ændring af den aktuelle lokalitet
Viden om lokalitet bliver nødvendig, så snart du kører et system, der kommer med en anden lokalitet, end du er vant til - for eksempel på et Linux live-system. Ændring af lokalitet kan gøres på to måder - omkonfiguration af Debian-lokaliseringspakken [19] og tilføjelse af det krævede landestandard ved hjælp af kommandoen locale-gen. For valgmulighed én, ved at køre følgende kommando, åbnes en tekstbaseret konfigurationsdialog vist i figur 3:
# dpkg-omkonfigurer lokaliteter
Tryk på mellemrumstasten for at vælge det / de ønskede landestandarder fra listen vist i dialogboksen, og vælg "OK" for at bekræfte dit valg. Det næste dialogvindue giver dig en liste over lokaliteter, der er tilgængelige for standardsprog. Vælg den ønskede, og vælg “OK”. Nu genereres de tilsvarende landefiler, og den tidligere valgte landestand er indstillet til dit system.
For valgmulighed to, genereres den ønskede lokalitet ved hjælp af kommandoen locale-gen. Liste 6 illustrerer dette for en fransk opsætning:
Liste 6: Oprettelse af et fransk sprog
locale-gen fr_FR.UTF-8Genererer lokaliteter ... fr_FR.UTF-8 ... færdig Generation fuldført. # --
For at bruge det tidligere genererede landestandard som standard, skal du køre kommandoen i liste 7 for at konfigurere den korrekt:
Liste 7: Manuel indstilling af landestandard
# update-locale LANG = fr_FR.UTF-8Så snart du åbner en ny terminalsession eller logger ind på dit system igen, aktiveres ændringerne.
Kompilér en lokal definitionsfil
Kommandoen localectl hjælper dig med manuelt at kompilere en lokal definitionsfil. For at oprette en fransk indstilling skal du køre kommandoen som følger:
Liste 8: Kompilér en lokal definition
# localedef -i fr_FR -f UTF-8 fr_FR.UTF-8Konklusion
At forstå lokaliteter kan tage et stykke tid, da det er en opsætning, der er påvirket af flere faktorer. Vi forklarede, hvordan du finder ud af din nuværende lokalitet, og hvordan du ændrer den korrekt. Tilpasning af Linux-systemet til dine behov skulle være meget lettere for dig fra nu af.
Links og referencer
- [1] Lokalitet, Debian Wiki
- [2] ChangeLanguage, Sådan ændres sproget i dit Debian-system
- [3] POSIX Locale, The Open Group Base Specifications Issue 7, 2018 edition
- [4] Bourne-skal, Wikipedia
- [5] Bourne-Again-skal, Wikipedia
- [6] Forskel mellem login-shell og ikke-login-shell?, StackExchange
- [7] Portabelt operativsystemgrænseflade (POSIX), Wikipedia
- [8] Linux Mint
- [9] Z shell, Wikipedia
- [10] Zsh Shell indbyggede kommandoer
- [11] UTF-8, Wikipedia
- [12] Hvad skal jeg indstille min lokalitet til, og hvad er konsekvenserne af at gøre det?
- [13] ISO 639-1, Wikipedia
- [14] ISO 639-2, Wikipedia
- [15] ISO 3166, Wikipedia
- [16] Tegnsæt Beskrivelse filer
- [17] Lokalitet, Ubuntu Wiki
- [19] lokaliserer Debian-pakke
- [20] Lokalt hjælpeprojekt