GNU/Linux >> Tutoriels Linux >  >> Linux

Comment définir les paramètres régionaux et quelles sont les implications de le faire ?

Cette question a été stimulée en posant la question
Le navigateur Chromium ne permet pas de définir le format de papier par défaut pour "Imprimer dans un fichier", et également par une conversation avec @Gilles sur le chat. Comme l'a souligné @don_crissti, et comme vérifié par moi, changer les paramètres régionaux (au moins LC_PAPER ) fait une différence dans le format de papier sélectionné.

Je n'avais jamais beaucoup réfléchi à ce qu'il fallait sélectionner et j'avais toujours opté pour en_US.UTF-8 car cela semblait être un choix par défaut raisonnable.

Cependant, selon @Gilles sur le chat (voir la conversation à partir de http://chat.stackexchange.com/transcript/message/17017095#17017095). Extraits :

Gilles :LC_PAPER par défaut est $LANG

Gilles :Vous devez avoir LANG=en_US.UTF-8. C'est une mauvaise idée :cela définit
LC_COLLATE et c'est presque toujours une mauvaise chose

Gilles :LC_COLLATE ne décrit pas le classement correct, c'est trop
restrictif (il va caractère par caractère) supprimez LANG et à la place
définissez LC_CTYPE et LC_PAPER

Gilles :plus LC_MESSAGES si vous souhaitez des messages dans une autre langue que
l'anglais

De toute évidence, il y a des problèmes ici dont je ne suis pas au courant, et je suis sûr que beaucoup d'autres le sont aussi. Alors, quels problèmes devez-vous prendre en compte lors de la définition des paramètres régionaux et comment devez-vous les définir ? J'ai toujours exécuté dpkg-reconfigure locales dans Debian, sans y réfléchir à deux fois.

Question spécifique :Dois-je définir mes paramètres régionaux sur en_IN.UTF-8 ? Y a-t-il des inconvénients à le faire ?

Réponse acceptée :

Les paramètres régionaux sont des préférences utilisateur liées à votre culture.

Noms de paramètres régionaux

Sur toutes les variantes Unix actuelles que je connais (mais pas sur quelques antiquités), les noms de paramètres régionaux suivent le même schéma :

  • Un code de langue à deux lettres minuscules ISO 639-1 ou un code de langue à trois lettres ISO 639-2 si la langue n'a pas de code à deux lettres. Par exemple, en pour l'anglais, de pour l'allemand, ja pour le japonais, uk pour l'ukrainien, ber pour le berbère, …
  • Pour de nombreuses langues, mais pas toutes, un trait de soulignement _ suivi d'un code de pays à deux lettres majuscules ISO 3166. Ainsi :en_US pour l'anglais américain, en_UK pour l'anglais britannique, fr_CA Français canadien (québécois), de_DE pour l'allemand d'Allemagne, de_AT pour l'allemand d'Autriche, ja_JP pour le japonais (du Japon), etc.
  • Facultativement, un point . suivi du nom d'un encodage de caractères tel que UTF-8 , ISO-8859-1 , KOI8-U , GB2312 , Big5 , etc. Avec GNU libc au moins (je ne sais pas à quel point c'est répandu), la casse et la ponctuation sont ignorées dans l'encodage des noms. Par exemple, zh_CN.UTF-8 est le chinois mandarin (simplifié) encodé en UTF-8, tandis que zh_CN est le chinois mandarin encodé en GB2312, et zh_TW est le chinois taïwanais (traditionnel) encodé en Big5.
  • Facultativement, un arobase @ suivi du nom d'une variante. La signification des variantes dépend des paramètres régionaux. Par exemple, de nombreux pays européens ont un @euro variante locale où le signe monétaire est € et où l'encodage est celui qui inclut ce caractère (ISO 8859-15 ou ISO 8859-16), par opposition à la variante sans fioritures avec l'ancien signe monétaire. Par exemple, en_IE (Anglais, Irlande) utilise le codage latin1 (ISO 8859-1) et £ comme symbole monétaire tandis que [email protected] utilise l'encodage latin9 (ISO 8859-15) et € comme symbole monétaire.

De plus, il existe deux noms de paramètres régionaux qui existent sur tous les systèmes de type Unix :C et POSIX . Ces noms sont synonymes et signifient informatique, c'est-à-dire des paramètres par défaut appropriés pour les données analysées par un programme informatique.

Paramètres régionaux

Les catégories de paramètres régionaux suivantes sont définies par POSIX :

En relation :Comment chronométrer plusieurs processus d'arrière-plan ?

GNU libc, que vous trouverez sur Linux non embarqué, définit des catégories de paramètres régionaux supplémentaires :

  • LC_PAPER :le format de papier par défaut (défini par la hauteur et la largeur).
  • LC_NAME , LC_ADDRESS , LC_TELEPHONE , LC_MEASUREMENT , LC_IDENTIFICATION :Je ne connais aucune application qui les utilise.

Variables d'environnement

Les applications qui utilisent des paramètres régionaux les déterminent à partir de variables d'environnement.

  • Puis la valeur du LANG La variable d'environnement est utilisée sauf si elle est remplacée par un autre paramètre. Si LANG n'est pas défini, les paramètres régionaux par défaut sont C .
  • Le LC_xxx les noms peuvent être utilisés comme variables d'environnement.
  • Si LC_ALL est défini, toutes les autres valeurs sont ignorées ; ceci est principalement utile pour définir LC_ALL=C exécuter des applications qui doivent produire la même sortie quel que soit l'endroit où elles sont exécutées.
  • De plus, GNU libc utilise LANGUAGE pour définir des replis pour LC_MESSAGES (ex. LANGUAGE=fr_BE:fr_FR:en de préférence le français belge, ou si indisponible le français français, ou si indisponible l'anglais).

Installation des paramètres régionaux

Les données locales peuvent être volumineuses, de sorte que certaines distributions ne les fournissent pas sous une forme utilisable et nécessitent à la place une étape d'installation supplémentaire.

  • Sur Debian, pour installer les paramètres régionaux, exécutez dpkg-reconfigure locales et sélectionnez dans la liste de la boîte de dialogue, ou modifiez /etc/locale.gen puis exécutez locale-gen .
  • Sur Ubuntu, pour installer les paramètres régionaux, exécutez locale-gen avec les noms des paramètres régionaux comme arguments.

Vous pouvez définir vos propres paramètres régionaux.

Recommandation

Les paramètres utiles sont :

  • Définir LC_CTYPE à la langue et à l'encodage dans lesquels vous encodez vos fichiers texte. Assurez-vous que vos terminaux utilisent cet encodage.
    Pour la plupart des langues, seul l'encodage compte. Il y a quelques exceptions; par exemple, un i majuscule est I dans la plupart des langues sauf İ en turc (tr_TR ).
  • Définir LC_MESSAGES à la langue dans laquelle vous souhaitez voir les messages.
  • Définir LC_PAPER vers en_US si vous voulez que US Letter soit le format de papier par défaut et à peu près n'importe quoi d'autre (par exemple, en_GB ) si vous voulez A4.
  • En option, définissez LC_TIME à votre format d'heure préféré.
En relation :Autoriser l'utilisateur1 à "su - utilisateur2" sans mot de passe ?

Comme expliqué ci-dessus, évitez de définir LC_COLLATE et LC_NUMERIC . Si vous utilisez LANG , remplacez explicitement ces deux catégories en les définissant sur C .


Linux
  1. Que sont les processus zombies et comment trouver et tuer les processus zombies ?

  2. Quels sont les opérateurs de contrôle et de redirection du Shell ?

  3. Que sont les modes SELinux et comment les configurer

  4. Quelles sont les différences entre lsof et netstat sous Linux ?

  5. Quelle est la différence entre les paramètres régionaux C.UTF-8 et en_US.UTF-8 ?

Qu'est-ce qu'un joli nom d'hôte et comment le configurer

Qu'est-ce qu'Intel SGX et quels en sont les avantages ?

Que sont les Snaps et comment les installer sur différentes distributions Linux

Comment installer et configurer SeedDMS

Comment configurer le joli nom d'hôte

En quoi le temps CPU et l'utilisation du CPU sont-ils identiques ?