hilpers


  hilpers > comp.divers.* > comp.applications.emacs

 #1  
13/11/2017, 23h54
yves
Bonjour,

la fonction org-agenda-list permet d'afficher une vue "agenda" d'un
fichier au format org-mode.

Exemple:

------------
Day-agenda (W46):
Monday 13 November 2017 W46
retour: Scheduled: TODO debuguer bus.sh
retour: Scheduled: TODO françisation de org-agenda-list
------------

je voudrais savoir s'il existe un paramétrage simple pour franciser
cet agenda ? Pour l'instant, mes recherches ont fait chou blanc.

@+

 #2  
14/11/2017, 06h21
Jean-Jacques Rétorré
lun. 13 nov. 2017, yves <yves> disait :

[..]
> ------------
> je voudrais savoir s'il existe un paramétrage simple pour franciser
> cet agenda ? Pour l'instant, mes recherches ont fait chou blanc.


Déjà on peut facilement franciser le calendrier.

(setq french-holiday
'((holiday-fixed 1 1 "Jour de l'an")
(holiday-fixed 5 1 "Fête du travail")
(holiday-fixed 5 8 "Victoire 45")
(holiday-fixed 7 14 "Fête nationale")
(holiday-fixed 8 15 "Assomption")
(holiday-fixed 11 1 "Toussaint")
(holiday-fixed 11 11 "Armistice 18")
(holiday-fixed 12 25 "Noël")
(holiday-easter-etc 1 "Lundi de Pâques")
(holiday-easter-etc 39 "Ascension")
(holiday-easter-etc 50 "Lundi de Pentecôte"))
calendar-date-style 'european
calendar-holidays (append french-holiday)
calendar-mark-holidays-flag t
calendar-day-name-array ["dimanche" "lundi" "mardi" "mercredi" "jeudi" "vendredi" "samedi"]
calendar-day-abbrev-array ["dim" "lun" "mar" "mer" "jeu" "ven" "sam"]
calendar-day-header-array ["di" "lu" "ma" "me" "je" "ve" "sa"]
calendar-month-abbrev-array ["Jan" "Fev" "Mar" "Avr" "Mai" "Jun" "Jui" "Aou" "Sep" "Oct" "Nov" "Dec"]
calendar-month-name-array ["janvier" "février" "mars" "avril" "mai" "juin" "juillet" "août" "septembre" "octobre" "novembre" "décembre"]
lunar-phase-names '("Nouvelle lune" "Premier quartier" "Pleine lune" "Dernier Quartier"))

On peut franciser org-agenda-scheduled-leaders
,----
| org-agenda-scheduled-leaders is a variable defined in ?org-agenda..el?.
| Its value is ("Scheduled: " "Sched.%2dx: ")
|
| Documentation:
| Text preceding scheduled items in the agenda view.
| This is a list with two strings. The first applies when the item is
| scheduled on the current day. The second applies when it has been scheduled
| previously, it may contain a %d indicating that this is the nth time that
| this item is scheduled, due to automatic rescheduling of unfinished items
| for the following day. So this number is one larger than the number of days
| that passed since this item was scheduled first.
|
| You can customize this variable.
`----

Voir
(customize-group 'org-agenda-line-format)
 #3  
14/11/2017, 11h06
yves
Le Tue, 14 Nov 2017 05:21:49 +0100, Jean-Jacques Rétorré a écrit:

> Déjà on peut facilement franciser le calendrier.
> (setq french-holiday


Merci, ça marche:

Day-agenda (W46):
lundi 13 novembre 2017 W46
retour: Programmé: TODO debuguer bus.sh
retour: Programmé: TODO françisation de org-agenda-list

Sauf pour "Day-agenda" et "W46", mais bon, ceci peut attendre.

@+
 #4  
14/11/2017, 12h55
Jean-Jacques Rétorré
mar. 14 nov. 2017, yves <yves> disait :

> Le Tue, 14 Nov 2017 05:21:49 +0100, Jean-Jacques Rétorré a écrit:
> Day-agenda (W46):
> lundi 13 novembre 2017 W46
> retour: Programmé: TODO debuguer bus.sh
> retour: Programmé: TODO françisation de org-agenda-list
> @+


Je doute un peu que ce soit facile à faire simplement, ça semble codé «
en dur »

Je pense avoir trouvé le code responsable de cette sortie.
Ce sont les lignes 4161 à 4168 de org-agenda.el
,----
| (insert (org-agenda-span-name span)
| "-agenda"
| (if (< (- d2 d1) 350)
| (if (= w1 w2)
| (format " (W%02d)" w1)
| (format " (W%02d-W%02d)" w1 w2))
| "")
| ":\n")))
|
`----

Pas très difficile à modifier, la fonction org-agenda-span-name se
contente de renvoyer la valeur de span (week, fortnight, month, year..)
avec la première lettre en capitale. Le W de W45 sort de format "w%02d"
Il suffit de remplacer W par ce qui plaît. Après, ça pose problème avec
les mises à jour, il faut gérer ça, personnellement je ne leferais pas.
 #5  
14/11/2017, 15h34
Jean-Jacques Rétorré
mar. 14 nov. 2017, jj.retorre (Jean-Jacques Rétorré) disait :

[..]
> | ":\n")))
> |
> `----
> Pas très difficile à modifier, la fonction org-agenda-span-namese
> contente de renvoyer la valeur de span (week, fortnight, month, year..)
> avec la première lettre en capitale. Le W de W45 sort de format "w%02d"
> Il suffit de remplacer W par ce qui plaît. Après, ça poseproblème avec
> les mises à jour, il faut gérer ça, personnellement je ne le ferais pas.

J'ai quand même essayé d'effectuer les modifications « pour voir » Je ne
suis pas un pro de elisp, mais ça m'amuse. Chacun s'amuse comme il
peut...

Voici les lignes que je modifie
,----
| 4161 (insert (org-agenda-span-name span)
| 4162 "-agenda"
| 4163 (if (< (- d2 d1) 350)
| 4164 (if (= w1 w2)
| 4165 (format " (W%02d)" w1)
| 4166 (format " (W%02d-W%02d)" w1 w2))
| 4167 "")
| 4168 ":\n")))
`----

Modifiées comme suit
,----
| 4161 (insert "Agenda " (case span
| 4162 ('week "hebdomadaire")
| 4163 ('fortnight "bi-hebdomadaire")
| 4164 ('month "mensuel")
| 4165 ('year "annuel"))
| 4166 (if (< (- d2 d1) 350)
| 4167 (if (= w1 w2)
| 4168 (format " (S%02d)" w1)
| 4169 (format " (S%02d-S%02d)" w1 w2))
| 4170 "")
| 4171 ":\n")))
`----

J'ai testé, ça marche mais je ne garantis rien quand aux effets de bord
éventuels.
 #6  
15/11/2017, 14h33
yves
Le Tue, 14 Nov 2017 14:34:03 +0100, Jean-Jacques Rétorré a écrit:

> J'ai quand même essayé d'effectuer les modifications « pour voir » Je ne
> suis pas un pro de elisp, mais ça m'amuse. Chacun s'amuse comme il
> peut...


Merci.

Effectivement, je ne vais probablement pas le faire à cause de la
maintenance et des possibles effets de bord.

Mais j'ai noté tout ça soigneusement.

@+
 #7  
15/11/2017, 15h50
Nicolas Goaziou
Bonjour,

yves <yves> writes:

> Effectivement, je ne vais probablement pas le faire à cause de la
> maintenance et des possibles effets de bord.


Il y a plus « propre ».

`org-agenda-finalize-hook' permet de modifier le texte de l'agenda juste
avant qu'il ne soit affiché. Cela permet donc, par exemple, de traduire
des éléments de l'agenda.

J'utilise par exemple le procédé suivant pour ajouter "/A" ou "/B" au
numéro de semaines selon qu'il s'agit d'une semaine paire ou impaire.

(defun my-agenda-set-week-letter ()
(save-excursion
(goto-char (point-min))
(while (re-search-forward "W\\([0-9]+\\)" (line-end-position) t)
(unless (looking-at-p "/[AB]")
(let ((week-number (string-to-number (match-string 1))))
(insert
(propertize (if (= 0 (% week-number 2)) "/A" "/B")
'face 'org-agenda-structure 'org-date-line t)))))))

(add-hook 'org-agenda-finalize-hook #'my-agenda-set-week-letter)

Cordialement,
 #8  
15/11/2017, 22h08
Jean-Jacques Rétorré
mer. 15 nov. 2017, Nicolas Goaziou <mail> disait :

[..]
> (while (re-search-forward "W\([0-9]+\)" (line-end-position) t)
> (unless (looking-at-p "/[AB]")
> (let ((week-number (string-to-number (match-string 1))))
> (insert
> (propertize (if (= 0 (% week-number 2)) "/A" "/B")
> 'face 'org-agenda-structure 'org-date-line t)))))))
> (add-hook 'org-agenda-finalize-hook #'my-agenda-set-week-letter)
> Cordialement,


Super, mais je ne sais pas comment j'aurais pu trouver ça tout
seul.
En tout cas, merci à tous ceux qui contribuent au développement de
org-mode.

Discussions similaires
Agenda public vers agenda privé

erase entre un list<T>::iterator et un list<T>:reverse_iterator ???

Synchronisation agenda Pocket PC et agenda public

Agenda Outlook en réseau (partage d'agenda)


Fuseau horaire GMT +2. Il est actuellement 01h05. | Privacy Policy