Cela fait des années que j’utilise le même thème graphique pour mon site et je n’ai jamais vraiment pris le temps de traduire la date de publication ou de mise à jour des articles en français.
Le tutoriel qui suit ne s’adresse qu’à un cercle réduit de développeurs : il est évidemment bien plus aisé d’installer WordPress en français (avec le langage pack qui convient) ou d’utiliser la fonction PHP setlocale()
comme je l’avais fait précédemment avec WP-Date FR.
Dans mon cas bien précis, je n’ai pas accès aux locales étant donné que le serveur est installé en anglais.
Je ne souhaite pas non plus installer la locale française, qui serait alors ajoutée à tous mes paquets Debian.
Et je ne souhaite pas non plus utiliser la traduction française de WordPress. It’s coding time !
La fonction sky_date_french()
Vous pouvez placer cette fonction dans le fichier functions.php
de votre thème :
/*
|-----------------------------------------------------------------------
| Sky Date in French by Matt - www.skyminds.net
|-----------------------------------------------------------------------
|
| Returns or echoes the date in French format (dd/mm/YYYY) for WordPress themes.
|
*/
function sky_date_french($format, $timestamp = null, $echo = null) {
$param_D = array('', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam', 'Dim');
$param_l = array('', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche');
$param_F = array('', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
$param_M = array('', 'Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Jun', 'Jul', 'Aoû', 'Sep', 'Oct', 'Nov', 'Déc');
$return = '';
if(is_null($timestamp)) { $timestamp = mktime(); }
for($i = 0, $len = strlen($format); $i < $len; $i++) {
switch($format[$i]) {
case '\\' : // fix.slashes
$i++;
$return .= isset($format[$i]) ? $format[$i] : '';
break;
case 'D' :
$return .= $param_D[date('N', $timestamp)];
break;
case 'l' :
$return .= $param_l[date('N', $timestamp)];
break;
case 'F' :
$return .= $param_F[date('n', $timestamp)];
break;
case 'M' :
$return .= $param_M[date('n', $timestamp)];
break;
default :
$return .= date($format[$i], $timestamp);
break;
}
}
if(is_null($echo)) { return $return;} else { echo $return;}
}
Code language: PHP (php)