Bonjour,
Si vous utilisez le widget calendrier de Grist, vous avez peut-être rencontré les mêmes comportements gênants : semaine commençant le dimanche, heures en format américain, calendrier qui s’ouvre sur n’importe quelle date…
J’ai corrigé quatre problèmes et publié le résultat pour que tout le monde puisse en profiter.
Les corrections apportées
- Date d’ouverture — Le widget s’ouvrait sur la date du premier enregistrement sélectionné au lieu d’afficher aujourd’hui. Désormais il s’ouvre toujours sur la date du jour au chargement.
- Premier jour de la semaine — Les semaines commençaient toujours le dimanche. Le widget lit maintenant la locale Grist (
culture) et utilise Intl.Locale.getWeekInfo() pour démarrer la semaine le bon jour selon la région (lundi pour fr-FR par exemple).
- Format 12h/24h — Les créneaux horaires étaient toujours affichés en 24h. Le format est maintenant détecté automatiquement depuis la locale :
en-US affiche 2 PM, fr-FR affiche 14:00.
- Colonnes de type Date pure — Quand Start et End sont des colonnes
Date (sans heure), la grille horaire occupait tout l’écran inutilement. Elle se masque désormais automatiquement et le panneau « journée entière » prend toute la place.
Utilisation immédiate
Il suffit de pointer l’URL de votre widget personnalisé vers : https://lmzr.github.io/grist-widget/calendar/index.html
Note : Pour que les libellés du calendrier soient traduits (noms des jours, mois, boutons…), ajoutez ?language=fr directement à l’URL du widget : https://lmzr.github.io/grist-widget/calendar/index.html?language=fr
Grist impose actuellement en comme valeur même si la langue de votre compte ou document est Français.
Discussion sur le forum officiel Le post original (en anglais) avec plus de détails techniques : [Widget] Calendar improvements for European/non-US locales - Developers - Grist Creators
N’hésitez pas si vous avez des questions ou des retours !
1 « J'aime »
Bonsoir,
merci pour ces correctifs.
Pour ce qui est du premier jour de la semaine, je n’arrive pas à les avoir le lundi.
J’ai fait un essai en précisant le paramètre culture dans l’adresse du widget, mais sans succès. Est-ce bien comme suit ?
https://lmzr.github.io/grist-widget/calendar/index.html?culture=fr-FR
Je précise que j’utilise Grist via https://grist.numerique.gouv.fr, potentiellement ces correctifs seront pris en compte ultérieurement.
1 « J'aime »
Bonjour,
En utilisant Grist Online, pour moi (paramètre de compte et paramètres du doc sur FR+Euro), le paramètre culture est bien passé par le core, donc je n’ai pas besoin de le redéfinir dans l’URL personnalisée, seulement le paramètre language, en fr ou fr-FR. Voici pour un calendrier officiel, sans paramètre surchargé donc :
src="https://gristlabs.github.io/grist-widget/calendar/index.html?access=full&readonly=false&culture=fr-FR&language=en-US&timeZone=Europe%2FParis¤cy=EUR"
Dans votre instance, tu peux vérifier en testant le Calendrier standard de Grist, inspecte l’iframe, paramètre src, tu devrais voir les paramètres culture et language envoyé « nativement ». Dans l’utilisation du widget Calendar personnalisé, surcharge le paramètre nécessaire, pour moi seulement language.
Merci pour ce retour.
J’ai fait une vérification sur l’iframe donné par le widget Calendrier intégré à https://grist.numerique.gouv.fr.
J’obtiens :
src="https://gristgouv.github.io/gristlabs-widgets/calendar/index.html?access=full&readonly=false&culture=fr-FR&language=fr&timeZone=Europe%2FParis¤cy=EUR"
Mais malheureusement sur l’affichage, la semaine commence le dimanche et les heures sont affichées à l’anglo-saxone (10 am, au lieu de 10 h).
En utilisant le widget tiers suivant, j’ai au moins les heures bien affichées :
https://lmzr.github.io/grist-widget/calendar/index.html?culture=fr-FR
Mais la semaine commence encore le dimanche…
C’est bizarre, c’est bien le paramètre culture qui contrôle le premier jour de la semaine.
De mon côté, je n’ai pas besoin de ce paramètre pour le 1er jour car la valeur fournie par mon navigateur est bien sur fr-FR. Mais si je mets le paramètre quand même (URL https://lmzr.github.io/grist-widget/calendar/index.html?culture=fr-FR), le 1er jour reste bien Lundi.
J’imagine que, l’URL utilisée sans aucun paramètre sur ma version du widget, cela n’améliore pas les choses ?
Petits tests :
-
Votre navigateur est bien configuré en Français avec des paramètres par défaut ? Exemple pour moi dans Vivaldi :
(si je suis maso je peux forcer à Dimanche).
Ou dans Chrome, coller navigator.language dans la console des Outils de développement, ça doit donner 'fr-FR' ou 'fr'.
-
Votre navigateur est-il à jour ? Exemple : la locale accessible dans Chrome < v99, Firefox < v126 ou Safari < v17 n’a pas l’info du premier jour de semaine.
Test à faire dans la console : new Intl.Locale('fr-FR').getWeekInfo?.() ?? new Intl.Locale('fr-FR').weekInfo : si ça retourne undefined, plutôt que
c’est ça qui cloche.
-
Si culture est absent (paramètre et navigateur), le widget utilise la valeur de language. Cela ne devrait pas arriver vu qu’il est dans votre URL, mais à tout hasard essayez de mettre les 2 ?
J’espère que quelque chose là-dedans puisse nous en dire un peu plus.
Bonjour,
merci pour ce retour détaillé.
J’utilise essentiellement Firefox ESR 140.8.0esr (64 bits) sous Linux.
- Concernant le premier point, en effet il manquait le paramètres suivant :

J’ai corrigé en cochant mais cela ne semble toujours pas régler le soucis (je n’ai pas redémarré Firefox), mais j’ai tenté sur une fenêtre en navigation privée.
- Dans la console
new Intl.Locale('fr-FR').getWeekInfo?.() ?? new Intl.Locale('fr-FR').weekInfo retourne undefined. Vous avez vu juste.
- En essayant avec Chromium Version 146.0.7680.80 (Build officiel) built on Debian GNU/Linux 12 (bookworm) (64 bits) :
- L’URL
https://lmzr.github.io/grist-widget/calendar/index.html?culture=fr-FR utilisée comme widget affiche bien les lundi comme premier jour.
- En revanche dans le widget intégré dans Grist (
grist.numerique.gouv.fr), cela reste le dimanche.
- Dans la console
new Intl.Locale('fr-FR').getWeekInfo?.() ?? new Intl.Locale('fr-FR').weekInfo retourne :
{firstDay: 1, weekend: Array(2)}
firstDay: 1
weekend: (2) [6, 7]
[[Prototype]]: Object
Peut-être que ces éléments sont suffisants pour statuer que le problème vient :
- soit de Firefox (ou de sa configuration)
- soit de la version de Grist (utilisée pour
grist.numerique.gouv.fr)
Avez-vous une idée pour régler le problème ?
Merci pour votre aide