Jonathan Beliën

Jonathan Beliën

Freelance Web Developer

« Spécialiste » en cartographie numérique
Membre du conseil d'administration d'OpenStreetMap Belgique
Membre du conseil d'administration d'Open Knowledge Belgique
Fan de LEGO et de bande-dessinées



PHP: Afficher les dates en français

Publié le 07.04.2011

Par défaut, le PHP est généralement en anglais. Par exemple, les dates littérales sont affichées en anglais (« Thursday 7 April 2011 »).

La fonction strftime() permet d’afficher la date dans une autre langue.

Exemple:

setlocale(LC_TIME, "fr_FR");
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 4, 7, 2011));

Si la langue française (fr_FR) a été installée sur votre serveur, l’exemple ci-dessus affichera « jeudi 7 avril 2011 ».

Si ce n’est pas le cas, voici la procédure à suivre pour apprendre la langue française au PHP. La procédure ci-dessous a été testée sur un QNAP TS-419P Turbo NAS mais fonctionne probablement sur n’importe quel serveur Linux.

La procédure provient du site http://wiki.qnap.com/wiki/Country_Locale.

Introduction

Les fichiers de langues se trouvent dans les répertoires suivants:

/mnt/ext/usr/share/i18n/locales : différentes langues
/mnt/ext/usr/share/i18n/charmaps : différents jeux de caractères (utf8, iso-8859-1, …)

Copie des nouvelles langues sur le serveur

Téléchargez tout d’abord le fichier posix-locales : http://wiki.qnap.com/w/images/7/77/Posix-locales.rar.

Copiez les fichiers ci-dessous dans le répertoire /usr/share/i18n/locales:

translit_cjk_variants
translit_combining
xx_XX (en fonction de la langue ou des langues que vous souhaitez installer)

Copiez les jeux de caractères nécessaires dans le répertoire /usr/share/i18n/charmaps (ex.: ISO-8859-1.gz et UTF-8.gz)

Installation des nouvelles langues

Ouvrez une console et entrez les commandes ci-dessous.

Compiler la nouvelle langue:

localedef -i [locale] -f [character map] [database]

Exemple pour la langue française en UTF-8:

localedef -i fr_FR -f UTF-8 fr_FR.utf8

Vérifiez que la nouvelle langue est bien installée:

locale -a

Redémarrez votre serveur (dans ce cas-ci serveur Apache sur un NAS QNAP):

/etc/init.d/Qthttpd.sh restart

Utilisation de la nouvelles langue

Pour afficher la date dans la langue que vous venez d’installer; dans notre exemple, la langue française en UTF-8 que nous avons nommé fr_FR.utf8:

setlocale(LC_TIME, "fr_FR.utf8");
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 4, 7, 2011));