Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 28-05-2009 20:08:28

Otomatic
Régisseur

Francisation des dates des messages

Bonjour,

Ce n'est que plusieurs années après l'installation de PunBB et ses mises à jour que je viens de voir que les dates des messages et des inscription de mon forum étaient avec des abréviations de mois anglaises (Jan Feb Mar Apr May Jun Jul Aug Sep Nov Dec) et que je me suis aperçu que celles des forums Punbb.fr étaient francisées.
J'ai donc effectué plusieurs recherche pour voir si il y avait une explication sur la localisation de ces dates, mais que nenni, je n'ai rien trouvé - J'ai peut-être mal cherché !

Après une petit recherche dans le code de FluxBB 1.2.21, j'ai trouvé facilement comment modifier ça :
Fichier fonctions.php, dans la fonction format_time remplacer

$date = date($pun_config['o_date_format'], $timestamp);
$today = date($pun_config['o_date_format'], $now+$diff);
$yesterday = date($pun_config['o_date_format'], $now+$diff-86400);

par

setlocale(LC_ALL,'French');
$date = strftime($pun_config['o_date_format'], $timestamp);
$today = strftime($pun_config['o_date_format'], $now+$diff);
$yesterday = strftime($pun_config['o_date_format'], $now+$diff-86400);

Dans le fichier viewtopic.php, remplacer

$user_info[] = '<dd>'.$lang_common['Registered'].': '.date($pun_config['o_date_format'], $cur_post['registered']);

par

setlocale(LC_ALL,'French');
$user_info[] = '<dd>'.$lang_common['Registered'].':<br/>'.strftime($pun_config['o_date_format'], $cur_post['registered']);

Maintenant, il faut modifier l'administration des options
Dans admin_options.php
Remplacer

<input type="text" name="form[date_format]" size="25" maxlength="25" value="<?php echo pun_htmlspecialchars($pun_config['o_date_format']) ?>" />
<span>[Format actuel : <?php echo date($pun_config['o_date_format']) ?>] Voir <a href="http://www.php.net/manual/fr/function.date.php">ici</a> pour les options de formatage.</span>

par

<input type="text" name="form[date_format]" size="25" maxlength="25" value="<?php echo pun_htmlspecialchars($pun_config['o_date_format']) ?>" />
<span>[Format actuel : <?php echo strftime($pun_config['o_date_format']) ?>] Voir <a href="http://www.php.net/manual/fr/function.strftime.php">ici</a> pour les options de formatage.</span>

Et puis, dernière modification, il faut dire sous quel format on veut voir les dates. Ceci ce passe dans Administration, Options, Date format, dans lequel j'ai mis : %d %B %Y
Pour les options possibles, voir http://www.php.net/manual/fr/function.strftime.php

Nota: le setlocale(LC_ALL,'French') est indispensable avec mes hébergeurs.


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#2 29-05-2009 01:42:31

EBS
Membre

Re : Francisation des dates des messages

Merci pour cette astuce.

Pour moi [c]setlocale(LC_ALL,'French');[/c] ne fonctionne pas, je dois mettre [c]setlocale(LC_ALL,'fr_FR');[/c]

Hors ligne

#3 29-05-2009 02:25:26

M@x
Membre

Re : Francisation des dates des messages

En effet EBS il existe plusieurs alternatives.

Pourquoi ne pas placer le setlocale dans header.php ? Enfin dans un fichier inclus.


...

Hors ligne

#4 29-05-2009 10:44:18

Otomatic
Régisseur

Re : Francisation des dates des messages

Bonjour,

M@x a écrit :

En effet EBS il existe plusieurs alternatives.

'French' fonctionne pour free.fr et en local avec Wampserver. En revanche, pour 1and1, ça ne fonctionne pas et il faut 'fr_FR'.

M@x a écrit :

Pourquoi ne pas placer le setlocale dans header.php ?

C'est ce que je viens de faire, et ça fonctionne.
Édition de 10h52 : 'french' tout en minuscules fonctionne chez 1and1.

Dernière modification par Otomatic (29-05-2009 10:53:48)


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#5 29-05-2009 12:18:32

Otomatic
Régisseur

Re : Francisation des dates des messages

M@x a écrit :

Pourquoi ne pas placer le setlocale dans header.php ?

En fin de compte, parfois, ça ne fonctionne pas toujours à chaque fois que l'on en a besoin dans des scripts différents, pourquoi ?
Extrait de http://fr3.php.net/manual/fr/function.setlocale.php : L'information locale est maintenue par processus, non par thread. Si vous faites fonctionner PHP sur un serveur multi-threadé comme IIS ou Apache sur Windows, vous pourriez obtenir des changements soudains des configurations locales pendant qu'un script fonctionne, même si celui-ci n'appelle jamais la fonction setlocale(). Ceci survient à cause des autres scripts qui fonctionnent dans des threads différents du même processus. Ces scripts changent les configurations locales dans le processus au complet en utilisant la fonction setlocale().

C'est pourquoi j'avais mis setlocale(...) juste avant les instructions qui en avaient besoin ayant déjà été confronté à ce problème et après avoir relu mes notes sur ce sujet.


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#6 29-05-2009 17:50:35

M@x
Membre

Re : Francisation des dates des messages

D'accord très bien. Pour info j'avais crée un article sur la francisation des dates en php.

Je vais rajouter le "setlocale(LC_ALL, 'French');".


...

Hors ligne

#7 29-05-2009 18:26:05

Otomatic
Régisseur

Re : Francisation des dates des messages

M@x a écrit :

Je vais rajouter le "setlocale(LC_ALL, 'French');".

Bonjour,

Même mieux car, suivant les hébergeurs, donc suivant les systèmes d'exploitation, cela peut ne pas fonctionner correctement. Comme, depuis PHP 4.3.0, « passer » plusieurs locales est possible, pour essayer de couvrir une majorité de cas, nous allons donc passer plusieurs possibilités dont seule la bonne pour le serveur sera prise en compte en mettant :

setlocale(LC_ALL,'fr_FR','french','France','fra');

Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#8 29-05-2009 22:58:07

Pandark
Guide

Re : Francisation des dates des messages

Il y a une page dans le wiki depuis… décembre 2006 wink
http://www.punbb.fr/aide/doku.php/franc … n_francais


=>  Plugins | Modifications | Liens utiles   <=
                .._ -Pandark- _..
                Serial Dreamer

Hors ligne

#9 30-05-2009 19:09:05

Mpok
Néo Admin

Re : Francisation des dates des messages

Oui, Pandark, j'allais le dire... mais néanmoins l'info postée par Otomatic dans son avant-dernier message est très intéressante (gestion par processus). Cela peut expliquer certains problèmes qui ont lieu chez certains hébergeurs et pas chez d'autres.

Hors ligne

Pied de page des forums