Catégories:
Ci dessous le problème tel qu’il a été posté dans le forum www.drupal.org :
Week and Day dates are not properly displayed in Calendar view (calender «header») if French language is selected (probably an issue in all languages out of English). Date format seems to be hard coded and does not take into account the date format configured.
Please refer to the screenshot attached.
Versions des modules calendar et Date : 6.x-2.0 (ou 6.x-2.x-dev)
Quelqu’un aurait-il connaissance de ce problème ?
D’avance merci.
| Fichier attaché | Taille |
|---|---|
| calendar issue.png | 15 Ko |
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Bonjour ( ?)
Rien ne me choque dans ton screenshot. Suis-je miro ?
J’utilise Calendar (fourni avec le module Date) et je rencontre aucun souci.
Redéveloppe-nous ton problème en bon français et on pourrait sans doute t’en dire plus.
Drupalfr.org est aussi sur freenode à #drupal-fr
—
Amipicto communication et publicité
floown@drupal.org
910
Salut,
Peut être veut il : 24 mars 2009 et non mars 24 2009 ?
Jim
guitarman
75
Bonjour,
j’ai rencontré ce problème hier,n’étant pas développeur je n’ai pas su résoudre et je suis passée à la version précédente du module date
En fait il veut:mardi,mars 24 2009
aissatou
171
D’abord merci de votre réponse ultra rapide.
Le problème (en bon français cette fois ci) est que la légende de la vue ne prend pas en compte le format de date configuré. J’ai l’impression que la date est codée en dur. En plus, en anglais le jour de la semaine (Mardi par ex.) est rajouté aussi. En Français on a juste la «,».
Je vous envoi une 2ème copie d’écran.
Au fait même en anglais le format de date de la légende est insensible à la config de format.
Daniel Dos Santos
9
Ah ok, le format de date… J’avais mal lu ^^
Pour ton second prob (mardi) regarde si tu n’as pas une chaîne vide dans la trad (ou un double pipe).
Tu devrais avoir :
!day-name Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday
!day-name Dimanche|Lundi|Mardi|Mercredi|Jeudi|Vendredi|Samedi
Drupalfr.org est aussi sur freenode à #drupal-fr
—
Amipicto communication et publicité
floown@drupal.org
910
J’ai vérifié la trad. Rien d’anormal. Mais ce qui est incroyable c’est que si je fais un coupé collé de la chaine en anglais dans la trad française, le jour s’affiche ! Si j’y remplace tout simplement le «Tuesday» par «Mardi» le jour ne s’affiche plus. Quelque chose m’échappe là aussi !
Daniel Dos Santos
9
Encore un test : Si je garde ma chaine de trad en français et si je remplace «Mardi» par «Tuesday» alors le jour s’affiche ! Comme si les seules «strings» acceptés étaient les «strings» en anglais.
Daniel Dos Santos
9
J’ai eu le même souci… après une petite investigation j’ai trouvé un bug report (http://drupal.org/node/388874) qui m’a pointé dans la bonne direction. $nav_title est harcodée tu peux toujours essayer !
Pour éditer le format de la date dans le titre de la vue calendrier il faut éditer modules/date/theme/theme.inc la fonction function theme_date_nav_title ligne 70 et suiv.
Voilà la fonction modifiée qui me permet d’afficher la date à la française (ex : Jeudi 26 Mars 2009), j’ai juste changé le format des dates et rien à la logique :
function theme_date_nav_title($granularity, $view, $link = FALSE, $format = NULL) {switch ($granularity) {
case 'year':
$title = $view->date_info->year;
$url = $view->date_info->url .'/'. $view->date_info->year;
break;
case 'month':
$format = !empty($format) ? $format : (empty($view->date_info->mini) ? 'F Y' : 'F');
$title = date_format_date($view->date_info->min_date, 'custom', $format);
$url = $view->date_info->url .'/'. $view->date_info->year .'-'. date_pad($view->date_info->month);
break;
case 'day':
$format = !empty($format) ? $format : (empty($view->date_info->mini) ? 'l j F Y' : 'l j F ');
$title = date_format_date($view->date_info->min_date, 'custom', $format);
$url = $view->date_info->url .'/'. $view->date_info->year .'-'. date_pad($view->date_info->month) .'-'. date_pad($view->date_info->day);
break;
case 'week':
$format = !empty($format) ? $format : (empty($view->date_info->mini) ? 'j F Y' : 'j F');
$title = t('Week of @date', array('@date' => date_format_date($view->date_info->min_date, 'custom', $format)));
$url = $view->date_info->url .'/'. $view->date_info->year .'-W'. date_pad($view->date_info->week);
break;
}
Pour info la localisation des dates passe par modules/date_locale/date_locale.module
Software is like sex, it’s better when it’s free (Linus Torvalds)
http://twitter.com/davidm_fr
davidm
631
Super. Le pb. est résolu. J’avais loupé ce bug report et j’avais posté un autre dans le projet calendar.
Merci beaucoup pour ton aide.
Daniel Dos Santos
9
Bonjour,
@davidm:j’ai fait exactement comme tu as dit mais j’ai 26 mars 2009 et pas jeudi 26 mars 2009
aurais-je loupé quelque chose
En plus dans le bloc calendar les jours ne sont pas traduits alors que je l’ai fait en passant par traduction de l’interface
Merci de ton aide
Aissatou
aissatou
171
Tu parles de quel affichage exactement ?
Parceque si tu regardes bien pour l’affichage jour c’est paramétré pour afficher ce que tu souhaites :
case 'day':$format = !empty($format) ? $format : (empty($view->date_info->mini) ? 'l j F Y' : 'l j F ');
Sachant que la doc pour le format des date est celle de la fonction date() utilisé par le module : http://fr.php.net/date
Pour le bloc calendar depuis que j’ai mis à jour Date de la 2.0 RC6 -> 2.0 puis -> 2.0 dev j’ai remarqué que ces chaînes étaient effectivement seulement traduisible uniquement par l’interface… probablement un oubli du développeur…
Pour le moment il vaut mieux rester en 2.0 RC6
Software is like sex, it’s better when it’s free (Linus Torvalds)
http://twitter.com/davidm_fr
davidm
631
je te remercie pour ta disponibilité
c’est bon pour la traduction
Par contre,pour l’affichage,j’ai ça :
<pr
case ‘day’ :
$format = !empty($format) ? $format : (empty($view->date_info->mini) ? ‘l j F Y’ : ‘l j F ‘) ;
$title = date_format_date($view->date_info->min_date, ‘custom’, $format) ;
$url = $view->date_info->url .’/’. $view->date_info->year .’-‘. date_pad($view->date_info->month) .’-‘. date_pad($view->date_info->day) ;
break ;
mais j’ai 26 mars 2009 alors que je veux jeudi 26 mars 2009
à quoi correspondent les l j F Y ? je comprendrais mieux peut etre
Merci encore de ton si précieux pour un profane en dev comme moi
aissatou
171
Regarde bien le lien que je t’ai donné sur la fonction date, tu as l’explication des l j F Y ;)
Par exemple :
l (‘L’ minuscule) : Jour de la semaine, textuel, version longue, en anglais
Ne pas oublier que le module utilise date() et que c’est date_locale/date_locale.module qui se charge de localiser la date par la suite.
Software is like sex, it’s better when it’s free (Linus Torvalds)
http://twitter.com/davidm_fr
davidm
631
Il y quand même peut être un autre problème. Car chez moi aussi le jour de semaine n’est pas affiché. Par contre si dans la la chaine de trad !day-name je remplace la trad du jour (Jeudi) par le «string» anglais (Thursday) alors le jour est bien affiché.
Daniel Dos Santos
9
Oui c’est ce que je disai toute à l’heure, certaines chaînes nécessitent une traduction via l’interface depuis le passage au module Date 2.0 (avec la RC6 je n’avais pas ce problème, si je me souviens bien)
Le module s’appuie sur la date en anglais et passe ça à la moulinette de date_locale.module pour traduire donc si on traduit certains éléments, ça met le bazar… tout ça parcequ’il utilise la fonction date() et non strftime() mais je pense que c’est parceque le module date gère aussi les formats custom de date depuis la 2.0… une hypothèse.
Ceci dit il y a une remontée de bug je crois (je vais vérifier)…
Software is like sex, it’s better when it’s free (Linus Torvalds)
http://twitter.com/davidm_fr
davidm
631
Il y a une version 6.2.1 depuis hier.
Peut-être meilleure ?
Indépendante, mandats Drupal et PHP.
Migration Drupal 6 / Drupal 7
sahuni
972
Merci pour la news, je regarde le changelog, je teste et je fais un petit retour…
Software is like sex, it’s better when it’s free (Linus Torvalds)
http://twitter.com/davidm_fr
davidm
631
Je viens de faire le test. C’est pareil avec la 6.x - 2.1.
Daniel Dos Santos
9
Ça marche nickel. Merci.
LEKTUM : http://www.lektum.com/
TWITTER : http://twitter.com/atelierlektum
lektum
78
Génial. La technique de DavidM, «éditer la fonction theme_date_nav_title» fonctionne à merveille.
Il est malheureux de voir qu’encore aujourd’hui, avec la version 6.x-2.4 du module Date, le problème est toujours présent.
Mais, étant donner que j’ai modifier le fichier theme.inc du module Date, ça veux dire que dès que je met à jour le module Date, la modif va sauter et je vais devoir refaire la manip à toutes les mises-à-jour… nah ?
Il y aurais un moyen d’écrire par dessus la fonction theme_date_nav_title avec un module personnalisé ou alors avec le fichier template.php de notre thème ?
Parle si tu as des mots plus forts que le silence, ou garde le silence.
-Euripide
Johnnytapette
21
Je me répond à moi-même… (question stupide, réponse facile)
Alors, le mieux afin de conserver les modifications de la fonction theme_date_nav_title est de modifier la fonction directement dans le fichier template.php de votre thème.
Ainsi, j’ai ajouter le code suivant dans mon fichier template.php
<?phpfunction NOMDEVOTRETHÈME_date_nav_title($granularity, $view, $link = FALSE, $format = NULL) {
switch ($granularity) {
case 'year':
$title = $view->date_info->year;
$url = $view->date_info->url .'/'. $view->date_info->year;
break;
case 'month':
$format = !empty($format) ? $format : (empty($view->date_info->mini) ? 'F Y' : 'F');
$title = date_format_date($view->date_info->min_date, 'custom', $format);
$url = $view->date_info->url .'/'. $view->date_info->year .'-'. date_pad($view->date_info->month);
break;
case 'day':
$format = !empty($format) ? $format : (empty($view->date_info->mini) ? 'l j F Y' : 'l j F ');
$title = date_format_date($view->date_info->min_date, 'custom', $format);
$url = $view->date_info->url .'/'. $view->date_info->year .'-'. date_pad($view->date_info->month) .'-'. date_pad($view->date_info->day);
break;
case 'week':
$format = !empty($format) ? $format : (empty($view->date_info->mini) ? 'j F Y' : 'j F');
$title = t('Week of @date', array('@date' => date_format_date($view->date_info->min_date, 'custom', $format)));
$url = $view->date_info->url .'/'. $view->date_info->year .'-W'. date_pad($view->date_info->week);
break;
}
// TODO Update this.
if (!empty($view->date_info->mini) || $link) {
// Month navigation titles are used as links in the mini view.
$attributes = array('title' => t('View full page month'));
return l($title, $view->date_info->url, array('attributes' => $attributes));
}
else {
return $title;
}
}
?>
Puisque la fonction theme_date_nav_title commence par theme, vous n’avez alors qu’à changer la valeur ‘theme’ de theme_date_nav_title par le nom de votre thème. Le tour est jouer. Vous n’avez plus à vous soucier des mises à jour du module Date.
Parle si tu as des mots plus forts que le silence, ou garde le silence.
-Euripide
Johnnytapette
21
Merci pour le feedback, effectivement c’est ce que j’ai fini par faire aussi en voyant que cet élément de date n’est pas encore localisé (même dans la 6.x-2.5 d’ailleurs)…
Je vais vérifier dans la issue queue d’ailleurs où en est ce point…
Software is like sex, it’s better when it’s free (Linus Torvalds)
http://twitter.com/davidm_fr
davidm
631
Bonjour,
Pour moi, j’exporte mon fichier .po, je le traduit, mais quand j’essaye de l’importer une autre fois, il me dit :
Warning : move_uploaded_file(temporary://date.fr_.po) [function.move-uploaded-file] : failed to open stream : « DrupalTemporaryStreamWrapper::stream_open » call failed in drupal_move_uploaded_file() (line 1599 of E:\wamp\www\drupal-7.10\includes\file.inc).
Warning : move_uploaded_file() [function.move-uploaded-file] : Unable to move ‘E:\wamp\tmp\php4474.tmp’ to ‘temporary://date.fr_.po’ in drupal_move_uploaded_file() (line 1599 of E:\wamp\www\drupal-7.10\includes\file.inc).
File upload error. Could not move uploaded file.
File to import not found.
donc, j’ai bien compris votre solution, mais je ne peux même pas vérifier !!
Merci pour votre aide…
namasante
72
Salut,
Merci pour votre aide, je me retrouve dans la meme situation que vous.
Seul petit bémole, j’ai un message d’erreur qui apparait.
Parse error : syntax error, unexpected $end in /home2/unacator/public_html/sites/all/themes/pixture/template.php on line 66
J’ai pourtant vérifier les acolades et elles ont l’air toutes d’etre là.
Si vous pouviez jetez un coup d’oeil.
Merci
alf_78
44
un petit peu tard peut-être mais j’ai eu le même problème, il te manque la fin de la fonction :
// TODO Update this.if (!empty($view->date_info->mini) || $link) {
// Month navigation titles are used as links in the mini view.
$attributes = array('title' => t('View full page month'));
return l($title, $view->date_info->url, array('attributes' => $attributes));
}
else {
return $title;
}
}
par contre, malgré que je n’ai plus de message d’erreur, il me reste deux problèmes :
ça ne change rien pour moi au niveau de l’affichage du calendrier semaine et jour : En fait si je change le theme.inc directement ça fonctionne mais pas dans le template.php de mon thème.. pourtant j’ai bien renommé la fonction en montheme_date_nav_title mais ça marche pas.. il suffit de rajouter cette fonction dans le template.php de mon thème ou bien j’ai loupé une étape ?
et sinon ça marche pour le format de date (de type jour mois année), y compris pour la traduction des jours et mois mais pas pour le titre «semaine du»..
pour semaine j’ai : «Week of 30 Novembre 2009»
ça se change où ça ? (j’ai bien traduit les !datetime et !datetime_plurial)
edit : pour le second point j’ai trouvé : il faut traduire la chaîne du «Week of @date » en «Semaine du @date»
mouam
29