GNU/Linux >> Linux Esercitazione >  >> Linux

Come impostare le impostazioni internazionali e quali sono le implicazioni di farlo?

Questa domanda è stata stimolata dalla domanda
Il browser Chromium non consente di impostare il formato carta predefinito per "Stampa su file" e anche da una conversazione con @Gilles in chat. Come sottolineato da @don_crissti, e come verificato da me, cambiando la localizzazione (almeno LC_PAPER ) fa la differenza nel formato carta selezionato.

Non avevo mai pensato molto a cosa selezionare e avevo sempre scelto en_US.UTF-8 perché sembrava una scelta predefinita ragionevole.

Tuttavia, per @Gilles in chat (vedi conversazione che inizia su http://chat.stackexchange.com/transcript/message/17017095#17017095). Estratti:

Gilles:per impostazione predefinita LC_PAPER è $LANG

Gilles:Devi avere LANG=en_US.UTF-8. È una cattiva idea:imposta
LC_COLLATE ed è quasi sempre una brutta cosa

Gilles:LC_COLLATE non descrive le regole di confronto corrette, è troppo
restrittivo (va di carattere per carattere) rimuove LANG e invece
imposta LC_CTYPE e LC_PAPER

Gilles:più LC_MESSAGES se desideri messaggi in una lingua diversa dall'
inglese

Chiaramente, ci sono problemi qui di cui non sono a conoscenza e sono sicuro che lo sono anche molti altri. Quindi, quali problemi dovresti considerare quando imposti le impostazioni locali e come dovresti impostarle? Ho sempre eseguito dpkg-reconfigure locales in Debian, e non ci ho pensato due volte.

Domanda specifica:devo impostare la mia locale su en_IN.UTF-8? Ci sono degli svantaggi nel farlo?

Risposta accettata:

Le impostazioni internazionali sono preferenze dell'utente relative alla tua cultura.

Nomi locali

Su tutte le attuali varianti Unix che conosco (ma non su alcuni oggetti d'antiquariato), i nomi delle impostazioni locali seguono lo stesso schema:

  • Un codice lingua ISO 639-1 minuscolo a due lettere o un codice lingua ISO 639-2 a tre lettere se la lingua non ha un codice a due lettere. Ad esempio, en per l'inglese, de per il tedesco, ja per il giapponese, uk per l'ucraino, ber per berbero, …
  • Per molte, ma non tutte, le lingue, un carattere di sottolineatura _ seguito da un codice paese di due lettere maiuscolo ISO 3166. Quindi:en_US per l'inglese americano, en_UK per l'inglese britannico, fr_CA Francese canadese (Québec), de_DE per il tedesco della Germania, de_AT per il tedesco d'Austria, ja_JP per giapponese (del Giappone), ecc.
  • Facoltativamente, un punto . seguito dal nome di una codifica di caratteri come UTF-8 , ISO-8859-1 , KOI8-U , GB2312 , Big5 , ecc. Almeno con GNU libc (non so quanto sia diffuso), maiuscole e minuscole e la punteggiatura vengono ignorate nei nomi di codifica. Ad esempio, zh_CN.UTF-8 è cinese mandarino (semplificato) codificato in UTF-8, mentre zh_CN è cinese mandarino codificato in GB2312 e zh_TW è il cinese taiwanese (tradizionale) codificato in Big5.
  • Facoltativamente, una chiocciola @ seguito dal nome di una variante. Il significato delle varianti dipende dalla localizzazione. Ad esempio, molti paesi europei hanno un @euro variante locale in cui il segno di valuta è € e dove la codifica è quella che include questo carattere (ISO 8859-15 o ISO 8859-16), al contrario della variante disadorna con il segno di valuta più vecchio. Ad esempio, en_IE (Inglese, Irlanda) utilizza la codifica latin1 (ISO 8859-1) e £ come simbolo di valuta mentre [email protected] utilizza la codifica latin9 (ISO 8859-15) e € come simbolo di valuta.

Inoltre, ci sono due nomi di locale che esistono su tutti i sistemi simili a Unix:C e POSIX . Questi nomi sono sinonimi e significano computeresi, ovvero impostazioni predefinite appropriate per i dati analizzati da un programma per computer.

Impostazioni locali

Le seguenti categorie locali sono definite da POSIX:

Correlati:come cronometrare diversi processi in background?

GNU libc, che troverai su Linux non incorporato, definisce categorie di locale aggiuntive:

  • LC_PAPER :il formato carta predefinito (definito da altezza e larghezza).
  • LC_NAME , LC_ADDRESS , LC_TELEPHONE , LC_MEASUREMENT , LC_IDENTIFICATION :Non conosco nessuna applicazione che li utilizzi.

Variabili d'ambiente

Le applicazioni che utilizzano le impostazioni locali le determinano dalle variabili di ambiente.

  • Quindi il valore del LANG viene utilizzata la variabile di ambiente a meno che non venga sovrascritta da un'altra impostazione. Se LANG non è impostato, la lingua predefinita è C .
  • Il LC_xxx i nomi possono essere usati come variabili di ambiente.
  • Se LC_ALL è impostato, tutti gli altri valori vengono ignorati; questo è utile principalmente per impostare LC_ALL=C eseguire applicazioni che devono produrre lo stesso output indipendentemente da dove vengono eseguite.
  • Inoltre, GNU libc usa LANGUAGE per definire i fallback per LC_MESSAGES (es. LANGUAGE=fr_BE:fr_FR:en preferire il francese belga, o se non disponibile il francese francese, o se non disponibile l'inglese).

Installazione delle localizzazioni

I dati sulle impostazioni locali possono essere di grandi dimensioni, quindi alcune distribuzioni non li spediscono in una forma utilizzabile e richiedono invece un passaggio di installazione aggiuntivo.

  • Su Debian, per installare le localizzazioni, eseguire dpkg-reconfigure locales e seleziona dall'elenco nella finestra di dialogo, oppure modifica /etc/locale.gen e quindi esegui locale-gen .
  • Su Ubuntu, per installare le localizzazioni, esegui locale-gen con i nomi delle localizzazioni come argomenti.

Puoi definire la tua lingua.

Raccomandamento

Le impostazioni utili sono:

  • Imposta LC_CTYPE alla lingua e alla codifica in cui codifichi i tuoi file di testo. Assicurati che i tuoi terminali utilizzino tale codifica.
    Per la maggior parte delle lingue, solo la codifica conta. Ci sono alcune eccezioni; ad esempio, una i maiuscola è I nella maggior parte delle lingue tranne İ in turco (tr_TR ).
  • Imposta LC_MESSAGES nella lingua in cui desideri visualizzare i messaggi.
  • Imposta LC_PAPER a en_US se vuoi che US Letter sia il formato carta predefinito e qualsiasi altra cosa (ad es. en_GB ) se vuoi A4.
  • Facoltativamente, imposta LC_TIME nel tuo formato orario preferito.
Correlati:consentire all'utente1 di "su – utente2" senza password?

Come spiegato sopra, evita di impostare LC_COLLATE e LC_NUMERIC . Se usi LANG , sovrascrivi esplicitamente queste due categorie impostandole su C .


Linux
  1. Cosa sono i processi zombi e come trovare e uccidere i processi zombi?

  2. Quali sono gli operatori di controllo e reindirizzamento di The Shell?

  3. Linux:come scoprire quali dischi rigidi ci sono nel sistema?

  4. Quali sono le differenze tra lsof e netstat su Linux?

  5. Come puoi scambiare i tasti j e k in vim?

Che cos'è un nome host carino e come configurarlo

Che cos'è Intel SGX e quali sono i vantaggi?

Cosa sono gli Snap e come installarli su varie distribuzioni Linux

Come installare e configurare SeedDMS

Come impostare il nome host Pretty

In che modo il tempo della CPU e l'utilizzo della CPU sono uguali?