Pour avoir toutes les dates en français partout dans le forum - Version imprimable +- MyBB.support, le portail francophone de MyBB (https://mybb.fr) +-- Forum : MyBB.fr (https://mybb.fr/forum-1.html) +--- Forum : Annonces (https://mybb.fr/forum-47.html) +--- Sujet : Pour avoir toutes les dates en français partout dans le forum (/thread-323.html) Pages :
1
2
|
Pour avoir toutes les dates en français partout dans le forum - spyto - 01-06-2007 Salut, Suite à une demande de SunDark dans la section Annonces, à savoir comment avoir la date de l'enregistrement en français dans la partie gauche du thread d'un "posteur", ex: Citation :Messages : 9 j'ai posté en réponse une modif du fichier inc/fonctions_post.php. Ça marche... mais j'ai essayé d'approfondir le truc pour ne pas restreindre cette "traduction" à ce seul cas, mais à tout le forum en général. Si j'ai tout bien compris, les "mises en forme" des dates passent par la fonction my_date() du fichier /inc/functions.php. J'ai donc travaillé là-dessus. Si l'on regarde de près cette fonction, elle utilise la fonction gmdate() qui retourne une chaîne formatée de la date GMT... mais forcément en anglais. D'où l'idée de "remplacer" cete fonction par une fonction qui rendrait cette même heure GMT mais formatée en français. Voilà le résultat de mes travaux, ça marche (en local, pas encore testé en ligne...). Editer le fichier /inc/functions.php Chercher: function my_date($format, $stamp="", $offset="", $ty=1) Voici la fonction en détail Code : [color=#0000a0]/** Il faut intercepter la fonction gmdate(). J'ai donc écrit une nouvelle fonction à cet effet. La voici en détail, commentée largement dans les deux langues ! Citation :/** Il suffit donc ensuite de remplacer les occurrences de gmdate() dans my_date() par my_gmdate() et le tour est joué ! Ce qui donne le code complet suivant: Code : /** Rappel: Par expérience (je n'en savais fichtrement rien), en local (avec EasyPHP en tout cas), il faut utiliser setlocale(LC_TIME, "FR"); (il ne veut pas de la syntaxe "fr_FR") alors qu'en ligne il faut utiliser setlocale(LC_TIME, "fr_FR"); Note: Pour ceux qui auraient éventuellement modifié le fichier /inc/functions_post.php de mon post précédent, il faut bien sûr rétablir l'original ! Merci de bien vouloir me dire si c'est bon. Pour faire plus simple, je joins le fichier functions.php modifié. Faites une copie de l'original en cas... Vive MyBB ! @+ Spyto PS: Merci au staff (et aux autres) de bien vouloir vérifier la liste des paramètres de la fonction! $format=str_replace( array ("D", "l", "M", "F", "d", "j", "y", "o", "M", "H", "h", "z", "m", "i", "a", "s", "N", "W", "w", "y", "Y", "e"), array("%a", "%A", "%b", "%B", "%d", "%e", "%g", "%G", "%h", "%H", "%I", "%j", "%m", "%M", "%p", "%u", "%W", "%w", "%u", "%y", "%Y", "%z"), $format); Le premier array contient les paramètres de format principaux de date() Le deuxième array contient les paramètres de format correspondants de gmstrftime(). Ce sont les mêmes que pour strftime(). RE: Pour avoir toutes les dates en français partout dans le forum - Sundark - 02-06-2007 Bon allez , c'est partie, je test!! (je garde une save de functions.php on sais jamais:p:p) Si sa marche niquel, il manque plus qu'a la mettre dans le pack français complet.. (si il y as besoin de remettre un lien, je suis là^^) Aucun problème: Sundark's forum a écrit :Sundark Enfin, deux petit point: -Il y as un A après les date horloge -Les mois dans le volet de gauche est en minuscule (Inscription : mai 2007 , avant Inscription : May 2007) RE: Pour avoir toutes les dates en français partout dans le forum - spyto - 02-06-2007 SunDark a écrit :Enfin, deux petit point:Je ne comprends pas ce que tu veux dire !... A quel endroit ?... Précise ! As-tu modifié le format de l'heure l'admin ? Pour ma part, j'ai mis H:i alors que par défaut c'est H:i A (le paramètre de format 'A' force l'affichage de A ou P en majuscules, pour Ante Meridiem et Post Meridiem !) C'est sans doute de ce A que tu veux parler ? Le remède est simple. Citation :-Les mois dans le volet de gauche est en minuscule Normal, c'est le retour lié � setlocale(fr_FR) de PHP... L� si tu tiens absolument � avoir le nom des mois en majuscules, il faut modifier la dernière ligne de la fonction my_gmdate() de cette façon: remplacer: return gmstrftime($format, $stamp); par return strtoupper(gmstrftime($format, $stamp)); Mais je ne vois pas l'intérêt... D'autant plus que toutes les fonctions d'affichage de date du forum passent par l� , ça pourrait éventuellement provoquer certains comportements inattendus... @+ PS: Pour ce qui est de l'upload du "nouveau" pack, attendons un peu que le staff valide cette modif... Merci de ton offre. Je te ferai signe si j'ai besoin de toi pour upper. Edit du Poulpe : Je recommande toutefois l'utilisation du paramètre G:i RE: Pour avoir toutes les dates en français partout dans le forum - Sundark - 05-06-2007 Je vais voir pour le fameux "A". Et la minuscule est très bien comme cela. RE: Pour avoir toutes les dates en français partout dans le forum - Alex131089 - 11-07-2007 Astuce pour setlocale, utilisez ca : Code PHP : setlocale (LC_TIME, "fr_FR.UTF-8", "french", "fr_FR", "fr", "fre", "fra"); RE: Pour avoir toutes les dates en français partout dans le forum - Sundark - 20-08-2007 Possibilité de réavoir cette traduction de date pour la 1.2.9 ?? :$ RE: Pour avoir toutes les dates en français partout dans le forum - spyto - 21-11-2007 SunDark a écrit :Possibilité de réavoir cette traduction de date pour la 1.2.9 ?? :$Je pense que la modif est valable pour la 1.2.9... (édite le fichier "functions.php" et remplace comme cité dans le post ci-dessus !) @+ RE: Pour avoir toutes les dates en français partout dans le forum - Sword91 - 20-12-2008 cette modification marche t'elle pour la version 1.4.3? RE: Pour avoir toutes les dates en français partout dans le forum - Nodark - 20-12-2008 Sword91 a écrit :cette modification marche t'elle pour la version 1.4.3? Je pense qu'elle doit marcher,mais tu devrais essayer RE: Pour avoir toutes les dates en français partout dans le forum - Sword91 - 20-12-2008 je vais essayer alors mais le fichier fonction étant assez différent, ça ne marche pas si je télécharge le fichier posté ^^ RE: Pour avoir toutes les dates en français partout dans le forum - spyto - 20-12-2008 Sword91 a écrit :je vais essayer alors mais le fichier fonction étant assez différent, ça ne marche pas si je télécharge le fichier posté ^^ C'est sûr, le fichier que tu as téléchargé était prévu pour 1.2.8 autant qu'il m'en souvienne ! En partant de ce code, j'ai essayé d'adapter à 1.4.4. Je pense que c'est bon (testé en local). Rajouter au-dessus de function my_date() cette fonction d'interception : Code PHP : function my_gmdate ($format, $stamp) Juste une petite modif : utilisation de la fonction utf8_encode() pour convertir les caractères accentués en UTF-8 : Code PHP : return (gmstrftime($format, $stamp); Code PHP : return utf8_encode(gmstrftime($format, $stamp)); et dans la fonction my-date(), remplacer toutes les occurrences de gmdate() par my_gmdate() qui se charger de convertir en fr avant de rendre la main... Ce qui donne ce fichier /inc/functions.php pour 1.4.4 (gardez une copie de l'original) : RE: Pour avoir toutes les dates en français partout dans le forum - Sword91 - 21-12-2008 merci ^^ je vais tester EDIT: j'ai cette date qui apparait: %p 17 décembre avec ton fichier et si j'ajoute le code dans le mien. il faut affiché la date sous quel format dans le panel admin? j'ai comme ça dan mon panel admin: D j F EDIT2: Ma question serait comment avoir Décembre afficher au lieu de décembre (modif cité en haut = DECEMBRE) RE: Pour avoir toutes les dates en français partout dans le forum - Sword91 - 21-12-2008 up. tu sais d'où sa viens? RE: Pour avoir toutes les dates en français partout dans le forum - spyto - 21-12-2008 Sword91 a écrit :merci ^^ je vais tester Mes formats de date/heure du panel admin : Date : d-m-Y Heure : G:i Date d'enregistrement : M Y é, ça ressemble à un mauvais encodage UTF-8... Essaie de remettre l'original Code PHP : return gmstrftime($format, $stamp); // petite modif ici Code PHP : return utf8_encode(gmstrftime($format, $stamp)); // petite modif ici J'avais rajouté le fonction utf8_encode() parce que le é de Décembre s'affichait mal... Sinon, essaie utf8_encode(). Citation :EDIT2: Ma question serait comment avoir Décembre afficher au lieu de décembre (modif cité en haut = DECEMBRE) Là, je ne comprends pas ce que tu demandes. A quel niveau Décembre au lieu de décembre ? En fait ce thread est ancien : c'était au départ juste pour avoir la date d'enregistrement dans le postbit sous la forme 'mai' au lieu de 'may'. Il n'y avait pas d'autre ambition. De plus dans la verson 1.4, ils utilisent la fonction "adodb_date()" mais je ne connais pas bien son rôle... Info : http://phplens.com/phpeverywhere/adodb_date_library RE: Pour avoir toutes les dates en français partout dans le forum - Sword91 - 27-12-2008 j'ai remis par défaut car je trouve pas mais dans ces cas la, à quoi sert la traduction dans global.lang.php (inc\languages\french): Code PHP : $l['month_1'] = "Janvier"; RE: Pour avoir toutes les dates en français partout dans le forum - spyto - 28-12-2008 Mai si, ça c'est utile et heureusement !!! Si tu remontes au début de la discussion, tu verras que le seul but était au départ d'afficher le mois d'enregistrement abrégé en fr dans le volet de l'auteur d'un post. ex. "mai 2008" au lieu de "may 2008" Regarde là : http://www.mybb.fr/showthread.php?tid=323&pid=1718#pid1718 C'est tout ! RE: Pour avoir toutes les dates en français partout dans le forum - Sword91 - 30-12-2008 ok, merci pour les réponses. RE: Pour avoir toutes les dates en français partout dans le forum - Hellus - 07-02-2009 J'ai mis la fichier functions.php ce que ta mis spyto et faire le truc dans le panel admin mais sa met l'heure 22:24 au lieux de 23:24. RE: Pour avoir toutes les dates en français partout dans le forum - iParadise - 09-02-2009 Merci, c'est l'heure fr maintenant Décidément vous m'aider beaucoup ! RE: Pour avoir toutes les dates en français partout dans le forum - I_Am_The_King_In_Personn_So_? - 26-02-2009 Si je veux remplacer par le fichier en pièce jointe ça me fait un beau foirage du forum : MyBB has experienced an internal SQL error and cannot continue. SQL Error: 1146 - Table 'mondenews.mybb_mybb_moderators' doesn't exist Query: SELECT COUNT(*) as count FROM mybb_mybb_moderators WHERE uid=1 LIMIT 1 |