Sur une installation par défaut de Debian avec apache / PHP, un certain nombre de fonctions de PHP (date() ou mktime() par exemple) retournent des dates formatées en anglais, par exemple Monday 26th of March 2018.
Si l’on souhaite qu’elles soient en français, il faut changer la configuration de la langue par défaut du système en utilisant les locale
Modification du fichier de configuration des langues disponibles :
Le fichier de configuration responsable des langues est /etc/locale.gen : pour l’éditer il faut être en sudo/root
En utilisant nano comme éditeur cela donne :
- sudo nano /etc/locale.gen
On va alors ajouter en tête du fichier toutes les variantes du français (avec ou sans UTF8) comme langues disponibles, ce qui donne après modification :
- fr_FR ISO-8859-1
- fr_FR.UTF-8 UTF-8
- fr_FR.UTF-8@euro UTF-8
- fr_FR@euro ISO-8859-15
- en_US.UTF-8 UTF-8
- # aa_DJ ISO-8859-1
- # aa_DJ.UTF-8 UTF-8
- # aa_ER UTF-8
- # aa_ER@saaho UTF-8
- # aa_ET UTF-8
- # af_ZA ISO-8859-1
- # af_ZA.UTF-8 UTF-8
- # ak_GH UTF-8
- ...
toutes les langues commentées (= précédées d’un #) ne sont pas disponibles
Régénération des locales :
Pour que le système prenne en compte les modifications de locale.gen, il faut lancer la commande régénération des locales (toujours en sudo/root) :
- sudo locale-gen
On peut alors vérifier les langues disponibles pour le système avec la commande :
- locale -a
qui devrait donner quelque chose comme :
- C
- C.UTF-8
- en_US.utf8
- français
- french
- fr_FR
- fr_FR@euro
- fr_FR.iso88591
- fr_FR.iso885915@euro
- fr_FR.utf8
- fr_FR.utf8@euro
- POSIX
Une fois le serveur apache redémarré pour prendre en compte cette modification du système :
- sudo systemctl restart apache2
- ou
- sudo /etc/init.d/apache2 restart
l’affichage de la date par le même script PHP devrait donner : Lundi 26 mars 2018