Submitted by Daniel Dos Santos on
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 |
Bonjour (?) Rien ne me
Permalien Soumis par floown@drupal.org le 24 Mars, 2009 - 14:18
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.
Salut, Peut être veut il :
Permalien Soumis par guitarman le 24 Mars, 2009 - 14:21
Salut,
Peut être veut il : 24 mars 2009 et non mars 24 2009 ?
Bonjour, j'ai rencontré ce
Permalien Soumis par aissatou le 24 Mars, 2009 - 14:27
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
D'abord merci de votre
Permalien Soumis par Daniel Dos Santos le 24 Mars, 2009 - 14:30
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.
Ah ok, le format de date...
Permalien Soumis par floown@drupal.org le 24 Mars, 2009 - 14:40
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
J'ai vérifié la trad. Rien
Permalien Soumis par Daniel Dos Santos le 24 Mars, 2009 - 14:50
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!
Encore un test: Si je garde
Permalien Soumis par Daniel Dos Santos le 24 Mars, 2009 - 15:06
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.
J'ai eu le même souci...
Permalien Soumis par davidm le 25 Mars, 2009 - 00:09
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
Super. Le pb. est résolu.
Permalien Soumis par Daniel Dos Santos le 25 Mars, 2009 - 07:51
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.
Bonjour, @davidm:j'ai fait
Permalien Soumis par aissatou le 26 Mars, 2009 - 10:01
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
Tu parles de quel affichage
Permalien Soumis par davidm le 26 Mars, 2009 - 10:50
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
je te remercie pour ta
Permalien Soumis par aissatou le 26 Mars, 2009 - 11:05
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
Regarde bien le lien que je
Permalien Soumis par davidm le 26 Mars, 2009 - 11:48
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.
Il y quand même peut être
Permalien Soumis par Daniel Dos Santos le 26 Mars, 2009 - 11:54
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é.
Oui c'est ce que je disai
Permalien Soumis par davidm le 26 Mars, 2009 - 11:59
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)...
Il y a une version 6.2.1
Permalien Soumis par sahuni le 26 Mars, 2009 - 12:01
Il y a une version 6.2.1 depuis hier.
Peut-être meilleure?
Merci pour la news, je
Permalien Soumis par davidm le 26 Mars, 2009 - 12:11
Merci pour la news, je regarde le changelog, je teste et je fais un petit retour...
Je viens de faire le test.
Permalien Soumis par Daniel Dos Santos le 26 Mars, 2009 - 12:23
Je viens de faire le test. C'est pareil avec la 6.x - 2.1.
Ça marche nickel. Merci.
Permalien Soumis par lektum le 8 Juillet, 2009 - 11:30
Ça marche nickel. Merci.
Génial. La technique de
Permalien Soumis par Johnnytapette le 23 Septembre, 2009 - 19:26
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?
Je me répond à
Permalien Soumis par Johnnytapette le 23 Septembre, 2009 - 20:01
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
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.
Merci pour le feedback,
Permalien Soumis par davidm le 24 Septembre, 2009 - 00:27
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...
Bonjour, Pour moi, j’exporte
Permalien Soumis par namasante le 29 Janvier, 2012 - 15:11
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…
Salut, Merci pour votre
Permalien Soumis par alf_78 le 12 Octobre, 2009 - 23:51
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
un petit peu tard peut-être
Permalien Soumis par mouam le 2 Décembre, 2009 - 21:33
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"