Aller au contenu
Support de Zwii
roger

Codage UTF8 et les dates FR

Messages recommandés

ūüí° Pour les dates en fran√ßais il suffira de remplacer dans index.php √† la base du zwii ceci:

/* Set locale to French */
date_default_timezone_set('Europe/Paris');
setlocale (LC_TIME, 'fra_FRA', 'french');

Par cela:

/* Set locale to French */
date_default_timezone_set('Europe/Paris');
setlocale (LC_TIME, 'fr_FR.utf8','fra');

La valeur fr_FR.utf8 étant la clé de la traduction des dates à afficher dans notre belle langue.

 

le r√©sultat se visualise de suite ==> ¬† ¬† capb.png.58494e55b5064d0858bb7c500229a2f0.png¬†¬† ūüėÄ

 

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 32 minutes, roger a dit :

 

Remarqué aussi lors de l'ajour d'un commentaire (vérification  du captcha blog), ce serait bien que la date soit vraiment écrite en français dans la date d'un post ou d'un com.

 

Je l'ai aussi remarqué, il y a très longtemps, selon certains serveurs, en fonction donc de la configuration de celui-ci, les dates sont en anglais, je pense l'avoir signalé au passage de la version 9 vers la 10 (mais je n'en trouve plus la trace sur ce forum)

 

version 9 : setlocale (LC_TIME, 'fr_FR', 'french');

version 10 : setlocale (LC_TIME, 'fra_FRA', 'french');

 

Solution :

 

index.php


remplacer : setlocale (LC_TIME, 'fra_FRA', 'french');
par : setlocale (LC_TIME, 'fr_FR.utf8','fra');

 

Puis, supprimer dans tous les modules : utf8_encode()

 

module blog : 

 

pour article.php :

 

remplacer :

<?php echo utf8_encode(strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn']))); ?>
à <?php echo utf8_encode(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn']))); ?>        
    
par :

<?php echo strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn'])); ?>
à <?php echo strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn'])); ?>

 

remplacer :
le <?php echo utf8_encode(strftime('%d %B %Y - %H:%M', $comment['createdOn'])); ?>

 

par :
le <?php echo strftime('%d %B %Y - %H:%M', $comment['createdOn']); ?>


pour index.php :

 

remplacer :
<?php echo utf8_encode(strftime('%d %B %Y', $article['publishedOn']));  ?>
                
par :
<?php echo strftime('%d %B %Y', $article['publishedOn']);  ?>


et pour blog.php :

 

remplacer :
utf8_encode(strftime('%d %B %Y - %H:%M', $comment['createdOn'])),

 

par :
strftime('%d %B %Y - %H:%M', $comment['createdOn']),

 

remplacer :
utf8_encode(strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn'])))
                .' à '.
utf8_encode(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn']))),    

            

par :
strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn']))
                .' à '.
strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn'])),

 


Même chose à faire pour le module news, dans news.php et dans index.php

 

Je pense ne pas en avoir oublié des utf8_encode

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 4 minutes, roger a dit :

Pour les dates en français il suffira de remplacer dans index.php à la base du zwii ceci:

 

Yes ! J'√©tais en train de r√©diger la r√©ponse, tu as trouv√© la solution pour l'index du site, il te reste √† faire le m√©nage dans les modules, dont voici la liste et les n¬į de lignes :

 

./blog/blog.php:130:                utf8_encode(strftime('%d %B %Y - %H:%M', $comment['createdOn'])),
./blog/blog.php:194:                utf8_encode(strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn'])))
./blog/blog.php:196:                utf8_encode(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn']))),
./blog/view/article/article.php:5:            <?php echo utf8_encode(strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn']))); ?>
./blog/view/article/article.php:6:                à <?php echo utf8_encode(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn']))); ?>
./blog/view/article/article.php:113:                    le <?php echo utf8_encode(strftime('%d %B %Y - %H:%M', $comment['createdOn'])); ?>
./blog/view/index/index.php:37:                            <?php echo utf8_encode(strftime('%d %B %Y', $article['publishedOn']));  ?>
./news/news.php:94:                utf8_encode(strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $newsIds[$i], 'publishedOn'])))
./news/news.php:96:                utf8_encode(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $newsIds[$i], 'publishedOn']))),
./news/view/index/index.php:13:                    <?php echo utf8_encode(strftime('%d %B %Y', $news['publishedOn'])); ?>

 

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour @Gilux

 

Juste en ajoutant ce petit bout de code, tout ce qui comportait une date avec un mois en anglais à illico été retraduit (le Mois) en français. Peut être que sans devoir tout récrire pour Fred dans le module blog concerné cette simple modif du fichier index.php suffira;;

 

je vais cloner sur mon git la version avec juste cette ligne modifiée puis l'installer telle qu'elle pour voir si ça fonctionne. Dommage que cici n'ai pas été signalé avant.

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 2 minutes, roger a dit :

Peut être que sans devoir tout récrire pour Fred dans le module blog concerné cette simple modif du fichier index.php suffira

 

Puisque avec la modif la date est déjà en Français codée en UTF8 par l'index du site, il est inutile, et possiblement une source de bug, de recoder de l'UTF8 en ... UTF8

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 2 minutes, Gilux a dit :

Puisque avec la modif la date est déjà en Français codée en UTF8 par l'index du site, il est inutile, et possiblement une source de bug, de recoder de l'UTF8 en ... UTF8

C'est bien pour cela que j'ai v√©rifier que cette simple manip du fichier indes.php ne posait aucun probl√®me sans r√©√©crire le reste dans le fichier du blog¬†ūüėČ

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 15 minutes, Gilux a dit :

Il n'en reste pas moins vrai qu'écrire du code inutile en php est non seulement contre-productif mais source de bug

Ce que j'approuve aussi de mon coté comme raisonnement, moins il y aura de code inutiles ou obsolète dans un cms moins se produira la possibilité d'un bug ou de dis-fonctionnements dus à des scripts incompatibles entre eux. C'est bien pour cela que sont importants les tests lancés par un développeur et que des personnes comme nous tous remontent ce qu'ils constatent.

Parfois l'on passe justement à coté de petits détails comme celui ci car nous regardons d'abord es nouvelles fonctionnalités sans pour autant faire attention (dans le cas des dates et touti en français) à quelque chose qui nous semblait déjà traité par le passé.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Voila le bug, c'est lorsqu'il y a des accents, et donc la ou le codage UTF8 est nécessaire (le FRançais étant établi par FR :  'fr_FR.utf8','fra') :

 

Avant modification de l'index à la racine du site :

01.png.ba14cf97dba6ce5d41cfb4040ac8cb5d.png

 

Modification seule de l'index à la racine du site :

02.png.f4839d633ec3e7b0d9033a48a06ba7e5.png

 

02b.png.4d42a8819419c8cff7ea7621d66849c2.png

 

Les accents sont codés 2 fois, donc s'affichent en UTF8 code source

 

Suppression de tous les utf8_encode du module blog, résultat :

03.png.36d7a631f972129f1de490b753fadd22.png  

 

Y'a ¬†pas photo ūüėČ

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suis d'accord sur les constatations et les solutions, un petit coup de Studio Visual Code et les corrections sont faites. A retrouver contre toute logique dans la branche sur login_captcha que je viens de renommer en 10302

  • Merci 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Vous √™tes tout les deux des "Zwiensd'amour" tant vous r√©agissez vite et "r√©parez" les choses en suivant. ūüĎć

il y a 51 minutes, Fred a dit :

A retrouver contre toute logique dans la branche sur login_captcha que je viens de renommer en 10302

Excellente idée, ainsi on discerne bien les différentes versions entre elles.

Good Job Misters @Gilux and @Fred ūüėÄ

Roger

Partager ce message


Lien à poster
Partager sur d’autres sites

10.3.02 tient compte de cette manip sauf que je n’ai pas pensé à livrer index.php dans l’update. 
 

Désolé, ce sera corrigé ce soir, il faudra refaire un update auto le 11/10. 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a une heure, sylvainlelievre a dit :

En fait pour le deuxième point le pseudo et la signature ne sont pas mémorisées dans user.json à la création d'utilisateur :

En effet ces données sont absentes lors de l'installation du cms dans le fichier install.php (dossier /core/module/install/ ) à la création du premier utilisateur du zwii, donc l'admin. Il suffira de les inclure dans le fichier d'installation pour qu'ensuite elles soient répercutées dans le fichier user.json.

 

il y a une heure, sylvainlelievre a dit :

Perte des accentuées dans la date de publication d'un article de blog,

Chez moi aucune perte des caractères accentués dans la date d'un article crée, j'ai volontairement choisi décembre (en plus de celui posé en Février) qui est dans l'installation de base du cms.

j.thumb.png.d267a4ab91b86c7103260973d37365af.png

 

k.png.26dabef66c538bf017442c223109ddc5.png je suis avec la même version de test depuis le début

Partager ce message


Lien à poster
Partager sur d’autres sites

La mienne Sylvain c'est celle qui était en ligne le 28/10 juste avant la tienne, et comme Fred a remis l'encodage des langues autrement dans le fichier à la racine du zwiii (index.php) ça provoque chez toi ce "blème" avec les accents.

setlocale(LC_ALL, 'fr','fr_FR','fr_FR.utf8','fr-FR','fra');

Chez moi sur la version précédent l'index.php pour le jeu de langue est celui ci

setlocale (LC_ALL, 'fr_FR.utf8','fra');

A vérifier surtout si une virgule n'a pas été oubliée dans la correction de fred tout à la fin de la ligne, je vérifie aussitot et vient te dire avant de fermer le pc.

 

EDIT: Je confirme c'est la correction apportée par Fred qui affiche mal les caractères accentués dans les dates (testé sur FF, GC et Edge)

Bonne soirée les amis, je file

Modifié par roger

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir,

 

J'ai parcouru rapidement vos travaux, je viens de passer 7h en bagnole pour retourner à mon domicile.

 

Trois remarques :

  1. Sylvain gèrera le débogage de la 10.4.00
  2. Le code CSS que propose @roger devra être placé sous la ligne 272 de common.css, une smartphone en 320 ne peut pas afficher en paysage ? On ne gère pas un problème qui n'existe pas ?
  3. Ce problème d'accent est vraiment pénible ! Tout dépend de la configuration du serveur Web, du système, tu as quoi toi @roger ?. Sur ma machine tout est ok, cf copie d'écran. Soit on revient sur le commit soit on utilise une fonction comme celle-ci. Je ferai de nouveaux tests demain si je peux.

Capture d‚ÄôeŐĀcran 2020-10-30 aŐÄ 20.31.07.png

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 14 heures, Fred a dit :

Tout dépend de la configuration du serveur Web, du système, tu as quoi toi @roger ?. Sur ma machine tout est ok,

Bonjour Fred.

Chez moi mes tests se passent tous directement sur serveurs en ligne (donc je ne teste pas en local, ainsi je suis "au plus prêt" de l'utilisation du cms telle qu'elle se fera par un utilisateur).

 

Niveau des navigateurs web que j'utilise pour voir le rendu de mes sites: (tous dans leur toute dernière version à jour) ce sont les principaux utilisés dans le mode.

  - Firefox

  - Google Chrome

  - Edge

ūüĎČ Je n'installe plus chez moi les navigateurs pr√©vus pour les Mac, Apple ou autre, je laisse ce soin √† "nos testeurs" qui poss√®dent de telles machines.

 

Les serveurs que j'utilise et o√Ļ j'envoie mes sites qui seront ensuite visibles sur la toile.Ce sont ceux que je privil√©gie en priorit√©

- Ceux de Ionos.fr (c'est là que j'ai mes noms de domaines déposés)

- ceux de Free o√Ļ j'ai un compte gratuit depuis des lustres

Accessoirement les solutions (serveur web et espace) que j'utilise aussi et qui sont gratuites

- Ceux de Byehost

- Ceux de webou

Et tout un tas d'autres... donc je crois que niveau serveur le panel est varié suivant le FAI, complet pour les tests ou exploitation d'un zwii en ligne.

Il y a 14 heures, Fred a dit :

Soit on revient sur le commit soit on utilise une fonction comme celle-ci.

Pour ma part le choix est vite fait, je n'utiliserais pas la seconde solution car elle prive et formate notre belle langue française de tout ce qui fait son charme: sa ponctuation ainsi que les différentes subtilités de celle ci.

Les anciens commit fonctionnaient à merveille, pourquoi vouloir en essayer un autre alors qu'il suffit simplement de remettre ce qui marchait?

 

Ceux affiche correctement les caractères accentués dans le zwii:

setlocale (LC_TIME, 'fr_FR.utf8','fra');

celui là aussi:

setlocale (LC_ALL, 'fr_FR.utf8','fra');

 

Chez moi sur mes sites en ligne LC_ALL & touti... marchent nickel, tout comme le code que j'avais donn√© avant celui ci. Et sur tout les serveurs o√Ļ sont h√©berg√©s mes zwii.

 

Il y a 14 heures, Fred a dit :

je viens de passer 7h en bagnole pour retourner à mon domicile.

Tu as fais le plus facile là, le plus dur sera à venir!!!

1¬į Prendre soin de toi

2¬į Faire gaffe √† ne pas chopper cette saloperie de covid

3¬į Si tu bosses, essayer de faire au mieux avec ce que l'on te donnera comme moyens

5 Le plus important surtout, la famille doit être privilégiée et soutenue même si tu dois sacrifier à d'autres obligations.

ūüĎČ Et surtout prends soin de toi car ce qui n'est pas fait dans l'instant il sera toujours possible de le faire plus tard ūüôā

 

Voila je crois que j'ai répondu aux questions posées.

Bon samedi à toi Fred.

Roger

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 29/10/2020 à 22:05, Fred a dit :

Supprimer les encodage utf8_encode était donc une connerie. Cependant au lieu de les remettre en place, je préfère compléter index.php avec ceci :

 


setlocale(LC_ALL, 'fr','fr_FR','fr_FR.utf8','fr-FR','fra');

C'est chargé mais ça devrait fonctionner avec différents OS et serveurs.

 

Ce week-end je pourrai faire le test sous une machine linux, selon vos retours, on avisera pour clore ce problème définitivement.

Bonjour @Fred et @roger,

 

Le 'fr_FR' pose un problème avec mon serveur, si je supprime cet élément du setlocale je retrouve les accentuées sur les dates des articles de blog.

 

un echo de cette fonction me renvoie alors fr_FR.utf8 et là le serveur il aime !

 

A plus

 

Sylvain

Modifié par sylvainlelievre
  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Il faudrait peut-être changer l’ordre des instructions. J’ai fait un test ce matin sur Linux tout est ok, le serveur Web est Apache natif. 
 

Je vais créer un autre sujet pour éviter de s’y perdre, je pense que ce problème  mérite d’être creusé. 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a une heure, Fred a dit :

Je vais créer un autre sujet pour éviter de s’y perdre, je pense que ce problème  mérite d’être creusé.

Bonjour @Fred,

 

En effet la fonction php setlocale() semble particulièrement délicate.

 

Ce qui marche sur mon serveur c'est avec 'fr_FR.utf8' ET sans 'fr_FR'. Ceci avec LC_TIME ou LC_ALL ce qui est normal.

'fra' seul fait appara√ģtre la date en anglais.

 

A plus

 

Sylvain

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 23 heures, Fred a dit :

Soit on revient sur le commit soit on utilise une fonction comme celle-ci

 

Le mieux étant de ne rien changer, ce commit est ce qui permet au mieux l'affichage en UTF8 Français sur le CMS

Une fois encore, si les dates sont en anglais sur ton serveur mac, c'est que l'UTF8 n'y est pas activé, tu le dis toi-même :

 

Il y a 23 heures, Fred a dit :

Tout dépend de la configuration du serveur Web, du système,

 

L'UTF8 étant la norme sur le web, il est étonnant qu'un serveur soit paramétré avec un autre encodage, et puis, des serveurs sous Mac, sauf en local, ça court pas les rues

Partager ce message


Lien à poster
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Coll√© en tant que texte enrichi.   Coller en tant que texte brut √† la place

  Seulement 75 √©motic√īnes maximum sont autoris√©es.

×   Votre lien a √©t√© automatiquement int√©gr√©.   Afficher plut√īt comme un lien

×   Votre contenu pr√©c√©dent a √©t√© r√©tabli.   Vider l‚Äô√©diteur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou ins√©rez-les depuis une URL.


×
×
  • Cr√©er...