Table des matières

timezonectl

Dernière mise-à-jour : 2020/01/30 03:27

107.3 - Régionalisation et Internationalisation (3/60)

Les Variables de Régionalisation et d'Internationalisation

L'Internationalisation, aussi appelé i18n car il y a 18 lettres entre la lettre I et la lettre n dans le mot Internationalization, consiste à adapter un logiciel aux paramètres variant d'une région à l'autre :

Le Régionalisation, aussi appelé l10n car il y a 10 lettres entre la lettre L et la lettre n du mot Localisation, consiste à modifier l'internalisation en fonction d'une région spécifique.

Le code pays complet prend la forme suivante : langue-PAYS.jeu_de_caractères. Par exemple, pour la langue anglaise les valeurs de langue-PAYS sont :

Les variables système les plus importants contenant les informations concernant le régionalisation sont :

Variable Description
LC_ALL Avec une valeur non nulle, celle-ci prend le dessus sur la valeur de toutes les autres variables d'internationalisation
LANG Fournit une valeur par défaut pour les variables d'environnement dont la valeur est nulle ou non définie.
LC_CTYPE Détermine les paramètres régionaux pour l'interprétation de séquence d'octets de données texte en caractères.

Par exemple :

[trainee@centos7 ~]$ echo $LC_ALL
en_GB.UTF-8
[trainee@centos7 ~]$ echo $LC_CTYPE

[trainee@centos7 ~]$ echo $LANG
en_GB.UTF-8 

[trainee@centos7 ~]$ locale
LANG=en_GB.UTF-8
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=en_GB.UTF-8

Gestion du Fuseau d'Horaire

Linux utilise le fuseau d'horaire UTC (Coordinated Universal Time) en interne. Linux doit donc être capable de traduire entre l'UTC et l'heure locale et vice versa. Linux utilise le fichier /etc/localtime pour connaître l'heure locale :

[root@centos6 ~]# ls -l /etc/localtime 
-rw-r--r--. 1 root root 2945 23 mai    2012 /etc/localtime

Ce fichier peut être un fichier ordinaire ou bien un lien symbolique pointant vers un de sfichiers dans le répertoire /usr/share/zoneinfo :

[root@centos6 ~]# ls /usr/share/zoneinfo/
Africa      Chile    GB         Indian       Mideast   posixrules  US
America     CST6CDT  GB-Eire    Iran         MST       PRC         UTC
Antarctica  Cuba     GMT        iso3166.tab  MST7MDT   PST8PDT     WET
Arctic      EET      GMT0       Israel       Navajo    right       W-SU
Asia        Egypt    GMT-0      Jamaica      NZ        ROC         zone.tab
Atlantic    Eire     GMT+0      Japan        NZ-CHAT   ROK         Zulu
Australia   EST      Greenwich  Kwajalein    Pacific   Singapore
Brazil      EST5EDT  Hongkong   Libya        Poland    Turkey
Canada      Etc      HST        MET          Portugal  UCT
CET         Europe   Iceland    Mexico       posix     Universal

Pour connaître le fuseau d'horaire local, utilisez la commande date :

[root@centos6 ~]# date
jeu. sept. 25 14:07:21 CEST 2014

Vous pouvez consulter la liste des codes des zones à l'adresse http://www.timeanddate.com/library/abbreviations/timezones/.

Le fuseau d'horaire est aussi contenu en clair dans le fichier /etc/sysconfig/clock. Sous Red Hat :

[root@centos6 ~]# cat /etc/sysconfig/clock
# The time zone of the system is defined by the contents of /etc/localtime.
# This file is only for evaluation by system-config-date, do not rely on its
# contents elsewhere.
ZONE="Europe/Paris"

Sous Debian et ses dérivés, le fichier /etc/sysconfig/clock n'existe pas. Debian utilise le fichier /etc/timezone :

root@debian:~# cat /etc/timezone 
Europe/Paris

Vous pouvez modifier le fuseau d'horaire à l'aide de la commande tzselect. Sous Red Hat :

[root@centos6 ~]# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
 1) Africa
 2) Americas
 3) Antarctica
 4) Arctic Ocean
 5) Asia
 6) Atlantic Ocean
 7) Australia
 8) Europe
 9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 

Sous Debian :

root@debian:~# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
 1) Africa
 2) Americas
 3) Antarctica
 4) Arctic Ocean
 5) Asia
 6) Atlantic Ocean
 7) Australia
 8) Europe
 9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 

Vous pouvez aussi modifier le fuseau d'horaire directement ainsi :

[root@centos6 ~]# rm /etc/localtime
rm : supprimer fichier « /etc/localtime » ? o
[root@centos6 ~]# ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
[root@centos6 ~]# ls -l /etc/localtime 
lrwxrwxrwx. 1 root root 32 25 sept. 14:32 /etc/localtime -> /usr/share/zoneinfo/Europe/Paris

Dernièrement il est possible de modifier le fuseau d'horaire uniquement pour la session en cours et dans le shell courant :

[root@centos6 ~]# date
jeu. sept. 25 14:33:44 CEST 2014
[root@centos6 ~]# export TZ=:/usr/share/zoneinfo/Europe/London
[root@centos6 ~]# date
jeu. sept. 25 13:34:09 BST 2014

<html>

Copyright © 2004-2017 Hugh Norris.<br><br> <a rel=“license” href=“http://creativecommons.org/licenses/by-nc-nd/3.0/fr/”><img alt=“Licence Creative Commons” style=“border-width:0” src=“http://i.creativecommons.org/l/by-nc-nd/3.0/fr/88x31.png” /></a><br />Ce(tte) oeuvre est mise à disposition selon les termes de la <a rel=“license” href=“http://creativecommons.org/licenses/by-nc-nd/3.0/fr/”>Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 3.0 France</a>.

</html>