På UNIX / Linux-systemer kalles dette oppsettet POSIX [7] locales, og standardiseres som IEEE Std 1003.1-2017 [3]. En slik lokalitet kan variere for systemet som helhet, og enkeltbrukerkontoer som hver bruker kan individualisere sitt arbeidsmiljø. I denne artikkelen vil vi forklare deg hvordan du finner ut det nåværende lokaloppsettet på Debian GNU / Linux, for å forstå de enkelte justeringsskruene, og hvordan du kan tilpasse systemet til dine behov.
Merk at denne artikkelen er skreddersydd til Debian GNU / Linux Release 10 “Buster”. Med mindre annet er oppgitt, fungerer teknikkene beskrevet her også for dets derivater som Ubuntu eller Linux Mint [8].
Hva er en lokal?
Generelt sett er et sted et sett med verdier som gjenspeiler naturen og konvensjonene i et land eller en kultur. Blant annet lagres disse verdiene som miljøvariabler som representerer språket, tegnkodingen, dato og klokkeslettformatering, standard papirstørrelse, landets valuta samt den første dagen i uken.
Som berørt før, er det en generell innstilling kjent som 'standard sted', og en brukerdefinert innstilling. Standard locale fungerer hele systemet og lagres i filen / etc / default / locale. Oppføring 1 viser standardområdet på en Debian GNU / Linux ved bruk av tysk som hovedspråk, og 8-biters unicode (UTF-8) som tegnsett [11].
Oppføring 1: Standardområdet på en tysk Debian GNU / Linux
$ cat / etc / default / locale # Fil generert av update-locale LANG = “de_DE.UTF-8 ”$ --Vær oppmerksom på at i motsetning til Debian GNU / Linux lagres det systemomfattende lokaloppsettet i noen tidligere Ubuntu-versjoner på / etc / locale.konf.
De brukerdefinerte innstillingene lagres som en skjult fil i hjemmekatalogen, og de faktiske filene som evalueres avhenger av påloggingsskallet du bruker [6]. Det tradisjonelle Bourne-skallet (/ bin / sh) [4] leser de to filene / etc / profile og ~ /.profil, mens Bourne-Again-skallet (Bash) (/ bin / bash) [5] leser / etc / profile og ~ /.bash_profile. Hvis påloggingsskallet ditt er Z-skall (/ bin / zsh) [9], er de to filene ~ /.zprofile og ~ /.zlogin blir lest, men ikke ~ /.profil med mindre påkalt i Bourne shell-emuleringsmodus [10].
Å starte et skall i en terminal i en eksisterende økt resulterer i et interaktivt skall som ikke er pålogget. Dette kan resultere i å lese følgende filer - ~ /.bashrc for Bash, og / etc / zshrc samt ~ /.zshrc for Z shell [6].
Navngi et sted
Som forklart her [12] følger navnet på et sted et bestemt mønster. Mønsteret består av språkkoder, tegnkoding og beskrivelsen av en valgt variant.
Et navn starter med en ISO 639-1 små bokstaver språkkode [13], eller en ISO 639-2 trebokstav språkkode [14] hvis språket ikke har to-bokstavskode. For eksempel er det de for tysk, fr for fransk og cel for keltisk. Koden følges for mange, men ikke alle språk, av en understreking _ og av en ISO 3166-bokstav med to bokstaver [15]. For eksempel fører dette til de_CH for sveitsertysk, og fr_CA for et fransktalende system for en kanadisk bruker som sannsynligvis befinner seg i Québec.
Eventuelt en prikk . følger navnet på tegnkodingen som UTF-8 eller ISO-8859-1, og @ -tegnet etterfulgt av navnet på en variant. For eksempel beskriver navnet [e-postbeskyttet] oppsettet for et engelsk system for Irland med UTF-8-tegnkoding, og Euro som valutasymbol.
Kommandoer og verktøy
Antall kommandoer relatert til lokalitet er relativt lavt. Listen inneholder språk som bare viser gjeldende språkinnstillinger. Den andre er localectl som kan brukes til å spørre og endre innstillingene for systemets lokalitet og tastaturoppsett. For å aktivere et sted, kommer verktøyene dpkg-omkonfigurering og lokal-gener til spill - se eksemplet nedenfor.
Vis lokaliteten som er i bruk
Trinn ett er å finne ut gjeldende sted på systemet ditt ved hjelp av stedskommandoen som følger:
Oppføring 2: Vis gjeldende lokalitet
$ locale LANG = de_DE.UTF-8 SPRÅK = 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 = $ --
Vær oppmerksom på at andre Linux-distribusjoner enn Debian GNU / Linux kan bruke flere miljøvariabler som ikke er oppført ovenfor. De enkelte variablene har følgende betydning:
- LANG: Bestemmer standard locale i fravær av andre locale relaterte miljøvariabler
- SPRÅK: Liste over oversettelsesspråk for reservemeldinger
- LC_CTYPE: Tegnklassifisering og sakskonvertering
- LC_NUMERIC: Numerisk formatering
- LC_TIME: Dato- og tidsformat
- LC_COLLATE: Sorteringsrekkefølge
- LC_MONETARY: Monetær formatering
- LC_MESSAGES: Format på interaktive ord og svar
- LC_PAPER: Standard papirstørrelse for region
- LC_NAME: Navneformater
- LC_ADDRESS: Konvensjon brukt til formatering av gate- eller postadresser
- LC_TELEPHONE: Konvensjoner brukt til representasjon av telefonnumre
- LC_MEASUREMENT: Standard målesystem som brukes i regionen
- LC_IDENTIFICATION: Metadata om lokal informasjon
- LC_RESPONSE: Bestemmer hvordan svar (som Ja og Nei) vises på det lokale språket (ikke i bruk av Debian GNU / Linux, men Ubuntu)
- LC_ALL: Overstyrer alle andre språkvariabler (unntatt SPRÅK)
Vis tilgjengelige lokaliteter
Deretter kan du liste opp tilgjengelige lokaliteter på systemet ditt ved hjelp av lokalkommandoen ledsaget av alternativet -a. -a er en forkortelse for alle steder:
Oppføring 3: Vis tilgjengelige lokaliteter
$ sted -a C C.UTF-8 de_DE @ euro de_DE.utf8 no_US.utf8 POSIX $ --Oppføring 3 inneholder to lokale innstillinger for både tysk (tysk) og engelsk (us). De tre oppføringene C, C.UTF-8 og POSIX er synonyme og representerer standardinnstillingene som er passende for data som blir analysert av et dataprogram. Utdataene i Listing 3 er basert på listen over støttede lokaliteter som er lagret i / usr / share / i18n / SUPPORTED.
Videre vil det å legge til alternativet -v (kort for -verbose) til samtalen føre til en mye mer omfattende produksjon som inkluderer LC_IDENTIFICATION-metadataene om hvert sted. Figur 1 viser dette for samtalen fra Listing 3.
For å se hvilke lokaliteter som allerede finnes, og hvilke som trenger ytterligere hjelp for å bli fullført, kan du også ta en titt på kartet over Locale Helper Project [20]. Røde markører viser tydelig hvilke lokaliteter som er uferdige. Figur 2 viser lokalitetene for Sør-Afrika som ser ganske komplette ut.
Vis tilgjengelige tegnkart
Lokalkommandoen kommer med alternativet -m som er en forkortelse for -charmaps. Utgangen viser tilgjengelige tegnkart eller tegnsettbeskrivelsesfiler [16]. En slik fil er ment å "definere egenskaper for det kodede tegnsettet og kodingen for tegnene som er spesifisert i bærbart tegnsett, og kan definere koding for flere tegn som støttes av implementeringen" [16]. Oppføring 4 illustrerer dette med et utdrag av hele listen.
Oppføring 4: Beskrivelsefiler for tegnsett
$ locale -m ANSI_X3.110-1983 ANSI_X3.4-1968 ARMSCII-8 ASMO_449 BIG5 BIG5-HKSCS… $ --Vis definisjonene av lokalvariabler
Hver variabel som brukes for en lokal, har sin egen definisjon. Ved hjelp av alternativet -k (forkortelse for -nøkkelordnavn) viser locale-kommandoen denne innstillingen i detalj. Oppføring 5 illustrerer dette for variabelen LC_TELEPHONE slik den er definert i et tysk miljø - telefonnummerformatet, det innenlandske telefonformatet, den internasjonale valgkoden samt landskoden (internasjonalt prefiks) og kodesettet. Se Locale Helper Project [20] for en detaljert beskrivelse av verdiene.
Oppføring 5: Detaljer om LC_TELEPHONE
$ locale -k LC_TELEPHONE tel_int_fmt = “+% c% a% l” tel_dom_fmt = “% A% l”int_select = “00” int_prefix = “49” telefonkodesett = “UTF-8” $ --
Endrer gjeldende sted
Kunnskapen om lokalområdet blir nødvendig så snart du kjører et system som kommer med et annet sted enn du er vant til - for eksempel på et Linux live-system. Endring av lokalitet kan gjøres på to måter - konfigurere om Debian locales-pakken [19], og legge til ønsket språk ved hjelp av kommandoen locale-gen. For alternativ ett åpner du en tekstbasert konfigurasjonsdialog som vises i figur 3 ved å kjøre følgende kommando:
# dpkg-re-konfigurere lokaliteter
Trykk på mellomromstasten for å velge ønsket sted (er) fra listen som vises i dialogboksen, og velg "OK" for å bekrefte valget. Det neste dialogvinduet gir deg en liste over lokaliteter som er tilgjengelige for standardområdet. Velg ønsket, og velg “OK”. Nå genereres de tilsvarende stedfiler, og den tidligere valgte lokaliteten er satt for systemet ditt.
For alternativ to gjøres generering av ønsket lokalitet ved hjelp av kommandoen locale-gen. Oppføring 6 illustrerer dette for et fransk oppsett:
Oppføring 6: Genererer et fransk språk
locale-gen fr_FR.UTF-8Genererer lokaler ... fr_FR.UTF-8 ... ferdig Generasjon fullført. # --
For å bruke den tidligere genererte lokaliteten som standard, kjør kommandoen i oppføring 7 for å konfigurere den riktig:
Oppføring 7: Innstilling av lokalitet manuelt
# update-locale LANG = fr_FR.UTF-8Så snart du åpner en ny terminalsession, eller logger på systemet på nytt, blir endringene aktivert.
Kompilere en lokal definisjonsfil
Kommandoen localectl hjelper deg med å manuelt kompilere en lokal definisjonsfil. For å opprette en fransk innstilling, kjør kommandoen som følger:
Oppføring 8: Kompilere en lokal definisjon
# localedef -i fr_FR -f UTF-8 fr_FR.UTF-8Konklusjon
Å forstå lokaliteter kan ta litt tid, da det er et oppsett som påvirkes av flere faktorer. Vi forklarte hvordan du kan finne ut din nåværende lokalitet, og hvordan du kan endre den riktig. Tilpasning av Linux-systemet til dine behov burde være mye lettere for deg fra nå av.
Lenker og referanser
- [1] Lokalitet, Debian Wiki
- [2] ChangeLanguage, Hvordan endre språket i Debian-systemet
- [3] POSIX Locale, The Open Group Base Specifications Issue 7, 2018 edition
- [4] Bourne-skall, Wikipedia
- [5] Bourne-Again-skall, Wikipedia
- [6] Forskjell mellom påloggingsskall og ikke påloggingsskall?, StackExchange
- [7] Portabelt operativsystemgrensesnitt (POSIX), Wikipedia
- [8] Linux Mint
- [9] Z shell, Wikipedia
- [10] Zsh Shell innebygde kommandoer
- [11] UTF-8, Wikipedia
- [12] Hva skal jeg sette min lokale og hva er implikasjonene av å gjøre det??
- [13] ISO 639-1, Wikipedia
- [14] ISO 639-2, Wikipedia
- [15] ISO 3166, Wikipedia
- [16] Tegnsett Beskrivelse filer
- [17] Lokalitet, Ubuntu Wiki
- [19] lokaliserer Debian-pakke
- [20] Locale Helper Project