 
			Introduction
Dans la plupart des langages de programmation, il est pratique d’utiliser les paramètres régionaux (locales) pour afficher des nombres, des dates… Les paramètres régionaux évitent le développement de fonctions pour formater les données (mois, jours, devises, etc…).
Exemple Python :
import locale import datetime d = datetime.date(2020, 12, 10) # US english format locale.setlocale(locale.LC_ALL , 'en_US.utf8') print(d.strftime('%B %e, %Y')) v = locale.currency(1234567.89,grouping=True) print(v) # FR format locale.setlocale(locale.LC_ALL , 'fr_FR.utf8') print(d.strftime('%e %B %Y')) v = locale.currency(1234567.89,grouping=True) print(v)December 10, 2020 $1,234,567.89 10 décembre 2020 1 234 567,89 €
Exemple PHP :
$d = DateTime::createFromFormat("Y-m-d", "2020-12-10"); // US english format setlocale(LC_ALL, 'en_US.UTF-8'); echo strftime("%B %e, %Y", strtotime($d->format('Y-m-d')))."\n"; $v = numfmt_create('en_US.UTF-8', NumberFormatter::CURRENCY ); echo numfmt_format_currency($v, 1234567.89, 'USD')."\n"; // FR format setlocale(LC_ALL, 'fr_FR.UTF-8'); echo strftime("%e %B %Y", strtotime($d->format('Y-m-d')))."\n"; $v = numfmt_create('fr_FR.UTF-8', NumberFormatter::CURRENCY ); echo numfmt_format_currency($v, 1234567.89, 'EUR')."\n";December 10, 2020 $1,234,567.89 10 décembre 2020 1 234 567,89 €
L’inconvénient majeur : les paramètres régionaux disponibles dépendent de l’OS. Si le paramètre régional demandé n’est pas installé sur l’OS hébergeant le programme, le formatage échoue ou revient à des paramètres par défaut.
Dans cet article, un rapide survol des paramètres régionaux sur Ubuntu : installation, modification temporaire ou permanente.
Paramètres régionaux sur Ubuntu
Les paramètres courants sont affichés avec la commande locale :
$ localeLANG=C.UTF-8 LANGUAGE= LC_CTYPE="C.UTF-8" LC_NUMERIC="C.UTF-8" LC_TIME="C.UTF-8" LC_COLLATE="C.UTF-8" LC_MONETARY="C.UTF-8" LC_MESSAGES="C.UTF-8" LC_PAPER="C.UTF-8" LC_NAME="C.UTF-8" LC_ADDRESS="C.UTF-8" LC_TELEPHONE="C.UTF-8" LC_MEASUREMENT="C.UTF-8" LC_IDENTIFICATION="C.UTF-8" LC_ALL=
Utiliser locale -a pour lister les paramètres régionaux installés :
$ locale -aC C.UTF-8 POSIX en_US.utf8
Installation d’une nouvelle région
Les paramètres régionaux supportés par Ubuntu sont stockés dans le fichier /usr/share/i18n/SUPPORTED :
/usr/share/i18n/SUPPORTED
…
de_DE.UTF-8 UTF-8       # Allemand, Allemagne, encodage UTF-8
de_DE ISO-8859-1        # Allemand, Allemagne, encodage ISO-8859-1
de_DE@euro ISO-8859-15  # Allemand, Allemagne, encodage ISO-8859-15 (symbole euro)
…
fr_CA.UTF-8 UTF-8       # Français, Canada, encodage UTF-8
fr_CA ISO-8859-1        # Français, Canada, encodage ISO-8859-1
…
fr_FR.UTF-8 UTF-8       # Français, France, encodage UTF-8
fr_FR ISO-8859-1        # Français, France, encodage ISO-8859-1
fr_FR@euro ISO-8859-15  # Français, France, encodage ISO-8859-15 (symbole euro)
…Utiliser locale-gen en tant que root pour installer une nouvelle région. Ci-dessous, les paramètres régionaux pour la France fr_FR.UTF-8 sont installés : 
root$ locale-gen fr_FR.UTF-8Generating locales (this might take a while)... fr_FR.UTF-8... done Generation complete.
L’installation ne modifie pas les paramètres régionaux par défaut. Pour vérifier l’installation :
$ locale -a | grep 'fr'fr_FR.utf8
Modification des paramètres régionaux
Temporairement
Pour modifier les paramètres régionaux d’une session (dates, nombres…) :
$ export LANG=fr_FR.UTF-8 $ datelundi 11 janvier 2021, 08:29:07 (UTC+0000)
Pour un seul paramètre, par exemple les dates/heures :
$ export LC_TIME=fr_FR.UTF-8 $ datelundi 11 janvier 2021, 08:29:07 (UTC+0000)
Modification permanente
Pour changer de façon permanente les paramètres régionaux pour un user : mettre à jour $HOME/.bashrc ou $HOME/.pam_environment files
$HOME/.bashrc
export LANG=fr_FR.UTF-8
export LC_MESSAGES=POSIX$HOME/.pam_environment
LANG=fr_FR.UTF-8
LC_MESSAGES=POSIXL’option LC_MESSAGES=POSIX empêche la traduction des messages systèmes, généralement préférable.
Pour changer de façon permanente les paramètres régionaux d’un serveur Ubuntu: en tant queroot,
        mettre à jour /etc/default/locale ou utiliser la commande update-locale
/etc/default/locale
LANG=fr_FR.UTF-8
LC_MESSAGES=POSIXupdate-localeroot$ update-locale LANG=fr_FR.UTF-8 LC_MESSAGES=POSIXLe fichier /etc/default/locale peut ne pas déjà exister si aucun paramètre régional n’a encore été défini sur le système.