Subject: Traduction

From: Viviane Sourdine <[email-masked]>
Date: Mon, 3 Nov 2008 17:39:09 +0000 (GMT)

Bonjour,
Pour y voir un peu plus clair dans les commandes complexes, je me suis lancée tout doucement dans la traduction du tutoriel Scheme et du chapitre 12.
Cependant, je me heurte dans le chapitre 12.1.1 à certains mots qui ne sont pas dans mon dictionnaire... Voici donc ma traduction... J'ai mis mes commentaires en italique:

Interfaces pour programmeurs: 

    Vue d'ensemble des fonctions musicales:

        Faire une fonction qui substitue une variable au code LilyPond est facile. La forme générale de ces fonctions est:

    function = #(define-music-function (parser location var1 var2... )
                          (var1-type? var2-type?...)
               #(
                ... music...
            #}) 

    A cet endroit un petit exemple serait le bienvenu ;-) , d'autant plus que je n'ai pas trouvé dans mon dictionnaire le mot "parser", et que je ne comprends pas ce que vient faire une accolade juste après le dernier signe # 

Où

argi               "ith" variable      Comment traduire argi et  "ith" (peut-être argument i où 
                                            i remplace n'importe quoi?)
argi-type?       type de variable  (i?)
...music...      Entrée normale LilyPond, utilisant les variables comme #$var1.

Les types d'entrées suivants peuvent être utilisés comme variables dans une fonction musicale. Cette liste n'est pas exhaustive; voir d'autres documentations spécifiques à propos du Scheme pour plus de types de variables.

Type d'entrées        argi-type? notation
Entier                                       integer?
Float (nombre décimal)              number?    Dictionnaire pour "float" : flotteur,
                                               radeau, bouchon, char ;-)... Je mets quoi? 
Chaines de caractères (mots)    string?
Markup                                    markup?    Quelle traduction pour markup?
Expression musicale                 ly:music?
Une paire de variables               pair?

Les arguments  "parser" et "location" (emplacement?) sont obligatoires, et sont utilisés dans quelques situations plus poussées. L'argument "parser" est utilisé pour accéder à la valeur d'une autre variable LilyPond. L'argument "location" est utilisé pour (spécifier?) "l'origine" de l'expression musicale qui est construite par la fonction musique, afin que, en cas d'une erreur de syntaxe, LilyPond puisse prévenir l'utilisateur de regarder dans le fichier d'entrée une place appropriée. 

Je vous remercie pour votre aide
Viviane_d_v

---

From: Jean-Côme Charpentier<[email-masked]>
Date: Mon, 03 Nov 2008 19:06:54 +0100

Viviane Sourdine a écrit :
> Bonjour,
> Pour y voir un peu plus clair dans les commandes complexes, je me suis
> lancée tout doucement dans la traduction du tutoriel Scheme et du
> chapitre 12.

  Ce n'est pas déjà traduit ? (question de béotien).

> Cependant, je me heurte dans le chapitre 12.1.1 à certains mots qui ne
> sont pas dans mon dictionnaire... Voici donc ma traduction... J'ai mis
> mes commentaires en italique:

  Ok.

>         Faire une fonction qui substitue une variable au code LilyPond
> est facile. La forme générale de ces fonctions est:
> 
>     A cet endroit un petit exemple serait le bienvenu ;-),

  Joker.

> d'autant
> plus que je n'ai pas trouvé dans mon dictionnaire le mot "parser",

  En revanche, c'est un terme important en informatique. Comme c'est un
terme important, il est souvent non traduit ce qui a le don de me
hérisser le poil. Le terme français correspondant serait analyseur
grammaticale. Le plus rigolo, c'est que le terme anglais vient d'un
ancien mot français (pars, pluriel de part).

> et
> que je ne comprends pas ce que vient faire une accolade juste après le
> dernier signe #

  C'est de la syntaxe scheme. Il vaudrait mieux qu'un spécialiste
rapplique avant que je ne dise trop de bêtises mais il me semble que
c'est lié au fait que le bidule qui est entre parenthèse sera pris en
tant que littéral et non avec la signification « schemesque »
habituelle. En revanche, je pensais que l'accolade était réservé.
Maintenant une accolade précédées d'un dièse... et puis c'est peut-être
un ajout de lilypond.

> Où
> 
> argi               "ith" variable      Comment traduire argi et  "ith"

  Argi pourrait (à la limite) être traduit par Argn mais c'est *très*
discutable. Perso, je ne traduirais pas. En revanche, le ith, c'est le
i-ème (ou ième ?) ou nième si on a mis n à la place de i.

> (peut-être argument i où

  argument numéro i si on veut écrire en extension.

>                                             i remplace n'importe quoi?)

  un nombre (entier strictement positif)

> argi-type?       type de variable  (i?)

  Non, la variable, c'est argi. Donc type de la variable argi. Mais on
peut traduire plus mot à mot : type de argi.

> Les types d'entrées suivants peuvent être utilisés comme variables dans
> une fonction musicale. Cette liste n'est pas exhaustive; voir d'autres
> documentations spécifiques à propos du Scheme pour plus de types de
> variables.
> 

  Notation du type de argi

> Entier                                       integer?

  Yes

> Float (nombre décimal)              number?    Dictionnaire pour "float"

  On dit flottant. Théoriquement, on devrait dire nombre à virgule
flottante mais c'est un peu trop long.

> Chaines de caractères (mots)    string?

  Yes.

> Markup                                    markup?    Quelle traduction

  Cela doit sans doute dépendre du contexte mais je suppose qu'il s'agit
ici de balise (markup language => langage à balises)

> Expression musicale                 ly:music?

  Je suppose mais je vais prudemment jouer un joker.

> Une paire de variables               pair?

  Yes. pair, c'est bien paire.

> Les arguments  "parser" et "location" (emplacement?)

  Oui (mais il faut voir le contexte)

> sont obligatoires,
> et sont utilisés dans quelques situations plus poussées. L'argument
> "parser"

  L'agument parser ??? Le mot parser plutôt. Non ?

> est utilisé pour accéder à la valeur d'une autre variable
> LilyPond. L'argument "location" est utilisé pour (spécifier?)
> "l'origine" de l'expression musicale qui est construite par la fonction
> musique, afin que, en cas d'une erreur de syntaxe, LilyPond puisse
> prévenir l'utilisateur de regarder dans le fichier d'entrée une place
> appropriée.

  Je ne comprends pas trop ce qu'il y a au-dessus. C'est la traduction
du texte anglais ?

> Je vous remercie pour votre aide

  Je ne sais pas si j'ai beaucoup aidé. Il est possible que je n'ai pas
bien compris les questions.

  Jean-Côme Charpentier

---

From: Viviane Sourdine <[email-masked]>
Date: Mon, 3 Nov 2008 18:41:47 +0000 (GMT)

> Ce n'est pas déjà traduit ? (question de béotien).

  A quel endroit s'il vous plaît? Je serais évidemment très 
intéressée.

> Joker.

  J'ai en fait trouvé un exemple à la page suivante 12.1.2. Il est un 
peu difficile pour moi mais je pense en comprendre le principe.

> C'est de la syntaxe scheme... ancien mot français (pars, pluriel de part). Je m'aperçois que j'ai fait une erreur, ce qui explique l'accolade fermante. Ce n'est pas une parenthèse qu'il faut mettre après le deuxième dièse mais une accolade ouvrante...

> Argi pourrait (à la limite) être traduit par Argn mais c'est *très*discutable. Perso, je ne traduirais pas. En revanche, le ith, c'est lei-ème (ou ième ?) ou nième si on a mis n à la place de i.

Ok

> un nombre (entier strictement positif)

  Merci pour cette précision

Oui absolument

> Je ne sais pas si j'ai beaucoup aidé.

Si si, j'y vois un peu plus clair. Merci
Viviane_d_v

--- En date de : Lun 3.11.08, Jean-Côme Charpentier <[email-masked]> a écrit :
De: Jean-Côme Charpentier <[email-masked]>
Objet: Re: Traduction
À: [email-masked]
Date: Lundi 3 Novembre 2008, 19h06

  Ok.

  Joker.

Maintenant une accolade précédées d'un dièse... et puis c'est
peut-être
un ajout de lilypond.

  Notation du type de argi

  Yes

> Float (nombre décimal)              number?    Dictionnaire pour
"float"
> : flotteur,

  Yes.

> Markup                                    markup?    Quelle traduction

  Cela doit sans doute dépendre du contexte mais je suppose qu'il
s'agit
ici de balise (markup language => langage à balises)

> Je vous remercie pour votre aide

  Je ne sais pas si j'ai beaucoup aidé. Il est possible que je n'ai
pas
bien compris les questions.

  Jean-Côme Charpentier

_______________________________________________
liste de diffusion lilypond-user-fr
[email-masked]
http://lists.gnu.org/mailman/listinfo/lilypond-user-fr

---

From: "Valentin Villenave" <[email-masked]>
Date: Mon, 3 Nov 2008 19:58:49 +0100

Bonjour,

> lancée tout doucement dans la traduction du tutoriel Scheme et du chapitre
> 12.

Saine attitude, malheureusement peut-être prématurée : cette partie
doit être entièrement réécrite dans les mois à venir. Auquel cas la
traduction deviendrait caduque.

>         Faire une fonction qui substitue une variable au code LilyPond est
> facile. La forme générale de ces fonctions est:

Omission : "into"

 ===> "une fonction qui remplace une variable par du code LilyPond "

>     A cet endroit un petit exemple serait le bienvenu ;-) , d'autant plus
> que je n'ai pas trouvé dans mon dictionnaire le mot "parser", et que je ne
> comprends pas ce que vient faire une accolade juste après le dernier signe #

Personellement, je traduis par "parseur". Mais en l'occurence, il ne
faut _pas_ traduire du tout : (parser location) est *la* syntaxe
canonique d'une music-function.

Les #{ #} servent à inclure du code LilyPond traditionnel à
l'intérieur d'une expression Scheme. J'y reviens dans un instant.

> ...music...      Entrée normale LilyPond, utilisant les variables comme

OK pour remplacer la lettre i par la lettre n, comme le suggère Jean-Côme.

> Les types d'entrées suivants peuvent être utilisés comme variables dans une
> fonction musicale. Cette liste n'est pas exhaustive; voir d'autres

Les "types" suivants [laissez tomber "input", traduisez-le par un verbe]

>                                                radeau, bouchon, char ;-)...

Décimal.

> Chaines de caractères (mots)    string?

Oui, chaîne de caractères.

> Markup                                    markup?    Quelle traduction pour

markup. Je sais qu'on a traduit par "étiquettes" dans la doc française
mais je pense qu'on va revenir au terme markup.

> Une paire de variables               pair?

Paire de nombres, il me semble.

> Les arguments  "parser" et "location" (emplacement?) sont obligatoires, et
> sont utilisés dans quelques situations plus poussées. L'argument "parser"
> est utilisé pour accéder à la valeur d'une autre variable LilyPond.
> L'argument "location" est utilisé pour (spécifier?) "l'origine" de
> l'expression musicale qui est construite par la fonction musique, afin que,
> en cas d'une erreur de syntaxe, LilyPond puisse prévenir l'utilisateur de
> regarder dans le fichier d'entrée une place appropriée.

Ça me paraît très bien. (sans traduire "parser" et "location", encore une fois)

Le principe d'une music-function (fonction de substitution) est le suivant :

si je veux souvent mettre des hampes en couleur, je peux utiliser un raccourci :

rouge = {
  \once \override Stem #'color = #(rgb-color 1 0 0)
}

Par contre, si je veux faire un raccourci pour faire des triolets,
cela ne marchera pas :

triolet = {
  \times 2/3
}

car la construction \times 2/3 se rattache directement aux notes qui
la suivent : elle prend un _argument_.

je vais donc devoir créer une fonction qui remplacera
\triolet { des notes}
par
\times 2/3 {les mêmes notes}

Donc, allons-y :

triolet =
#(define-music-function (parser location mes-notes) (ly:music?)
#{ \times 2/3 $mes-notes #})

et voilà :

\triolet  {do re mi}

Le premier # indique à LilyPond que cette fonction n'est pas à
intérpréter comme de la musique normale, mais comme du code Scheme.
les parenthèses délimitent les différentes expressions Scheme.
le #{ #} délimite le fragment de code que LilyPond va insérer.

Je vous invite à jeter un coup d'oeil, par exemple, à ce snippet qui
reprend mon exemple (c'est celui-là même qui m'a appris à coder ces
fonctions) :
http://lsr.dsi.unimi.it/LSR/Item?id=328

Et pour la traduction, encore une fois, pas d'urgence. par contre, si
vous voulez reformuler ces explications de façon plus simple et
progressive (en français ou en anglais), cela me sera utile lorsque
l'on réécrira ce chapitre -- il y a des chances pour que ce soit moi
qui m'y colle, d'ailleurs.

Cordialement,
Valentin

---

From: Jean-Jacques Rétorré<[email-masked]>
Date: Mon, 03 Nov 2008 21:06:47 +0100

> Viviane Sourdine a écrit :
[SNIP]

>> integer?
>> string?
  markup?

>> pair?

[SNIP]

Il s'agit de fonctions  de test scheme renvoyant #t ou #f selon que 
l'argument est  du type donné. par exemple
jjr@zoe:~$ guile
guile> (pair? (cons 1 2))
#t
(cons 1 2) cosntruit la paire ( 1 . 2 ) qui est du type "cons"
guile> (pair? 2)
#f
; 2 est un nombre entier, n'est pas du type cons
guile> (integer? 2)
#t
; 2 est un nombre entier
guile> (string? "toto")
#t
; "toto" est une chaîne de caractères

JJR.
-- 
Un concerné n'est pas obligatoirement un imbécile encerclé.
	-+- Pierre Dac -+-

---

From: John Mandereau <[email-masked]>
Date: Thu, 06 Nov 2008 00:06:29 +0100

> traduction deviendrait caduque.

En effet, alors que les 2 premiers chapitres du manuel de notation dans
la version 2.11 ont été profondément révisés dans la version en anglais,
et que la traduction française n'est pas du tout à jour.  La traduction
française a commencé bien avant la traduction en espagnol et a mobilisé
plusieurs personnes, elle n'est ni complète ni à jour, alors que
l'unique traducteur espagnol a tout traduit et sa traduction est
quasiment à jour !

> Personellement, je traduis par "parseur".

On peut aussi traduire "parser" par l'expression plus longue "analyseur
syntaxique" ("lexer" se traduirait par "analyseur lexical").  Je préfère
cette traduction car elle est très claire tout en évitant un anglicisme.

>  Mais en l'occurence, il ne

En effet, il me semble que LilyPond a besoin que les arguments "parser"
et "location" soient nommés ainsi.

> > Quelle traduction pour

Je ne crois pas qu'on peut traduire "markup" par un seul mot français ;
que penses-tu de "texte formaté" ?  Si on ne trouve vraiment rien, on
s'en tiendra à "markup".

> Paire de nombres, il me semble.

Ça peut être une paire de n'importe quoi, pas forcément de deux éléments
de même types d'ailleurs ; par exemple, une liste non vide est une paire
de premier élément n'importe quoi et de second élément une liste.  En
code Scheme, la phrase précédente signifie que

'(3 1 2)

est une expression (ici une liste d'entiers) équivalente à

'(3 . '(1 2))

En notant '() la liste vide, on a qu'une liste à un élément nommé a
s'écrit

'(a)

ou bien

'(a . '())

où '() est la liste vide.  En développant la liste plusieurs fois en
paires, on obtient que la liste de départ '(3 1 2) s'écrit aussi

'(3 . '(1 . '(2 . '() )))

(ce bout d'explication pourrait rentrer dans la traduction future du
tutoriel Scheme)

> l'on réécrira ce chapitre

Ce serait une excellente initiative en effet.  À défaut, je recommande
la mise à jour des chapitres 1 et 2 du manuel de notation.

Salutations lilyesques
John

---

From: Jean-Charles Malahieude <[email-masked]>
Date: Thu, 06 Nov 2008 19:14:36 +0100

Le 06.11.2008 00:06, John Mandereau disait :
>> Le 3 novembre 2008 18:39, Viviane Sourdine a écrit :

Je n'ai malheureusement pas assez d'heures à dédier à notre ami 
LilyPond, le journées n'en comptant que 24...

> et "location" soient nommés ainsi.

Pour mémoire, jeter un œil au fichier fr.po des sources (autrement dit 
les messages, avertissements et notifications d'erreur qui surgissent 
intempestivement lors de la compilation d'un fichier lily) peut 
permettre une uniformisation des termes, comme par exemple :

#: lily-parser.cc:99
msgid "Parsing..."
msgstr "Analyse..."

> que penses-tu de "texte formaté" ?  Si on ne trouve vraiment rien, on

San vouloir dire de bêtise, à comparer avec le chapitre 1.8 (Texte)
du Manuel de notation.

@+
Jean-Charles

---

From: Nicolas Sceaux <[email-masked]>
Date: Thu, 6 Nov 2008 20:58:50 +0100

> et "location" soient nommés ainsi.

Ils peuvent être nommés n'importe comment, comme n'importe quel autre
argument de fonction. Mais mieux vaut appliquer le principe de moindre
surprise, disons, et appeler ces arguments comme ils le sont partout
ailleurs.

Les arguments parser et location, ne seront pas utilisés la plupart du  
temps.
Ils sont néanmoins utiles :

- `location' peut être utilisé pour positionner la propriété 'origin de
l'expression  musicale produite de façon à ce que l'analyseur syntaxique
puisse produire un message d'erreur avec numéro de ligne qui va bien  
quand
une erreur de syntaxe a lieu avec cette expression. Voir par exemple la
définition de la fonction applyOutput dans ly/music-functions-init.ly ;

- `parser' est utile par exemple pour accéder à la valeur d'une variable
musicale, qu'on aura saisi par exemple à un autre endroit sous la  
forme :
toto = { do re mi fa }
Alors on peut faire par exemple :
   (let ((music (ly:parser-lookup parser 'toto)))
     ... utiliser la variable music qui contient alors { do re mi  
fa } ...)

> [...]

'(3 . (1 2)) en fait
ce que tu as écrit est équivalent à '(3 . (quote (1 2))

> En notant '() la liste vide, on a qu'une liste à un élément nommé a

'(a . ())

> paires, on obtient que la liste de départ '(3 1 2) s'écrit aussi

'(3 . (1 . (2 . ())))

nicolas

---

From: John Mandereau <[email-masked]>
Date: Thu, 06 Nov 2008 21:02:13 +0100

Le jeudi 06 novembre 2008 à 19:14 +0100, Jean-Charles Malahieude a
> LilyPond, le journées n'en comptant que 24...

Justement, on ne peut que te féliciter et t'encourager pour ton récent
travail de mise à jour, avant les interventions de Viviane et Damien, tu
étais le seul à contribuer à la traduction en français ces temps-ci ; et
c'est vrai que Francisco a l'air d'y passer des bonnes parties de nuits
pour arriver à son résultat :-P

> permettre une uniformisation des termes,

Bien sûr, ainsi que notre glossaire sur
http://lilypondwiki.tuxfamily.org/index.php?title=Fr:Page_principale

> comme par exemple :

Cette traduction me semble juste, mais dans d'autres contextes on peut
avoir besoin de préciser si l'analyse est lexicale ou syntaxique.

> San vouloir dire de bêtise, à comparer avec le chapitre 1.8 (Texte)

Si je me souviens bien, nous n'étions pas arrivé à un consensus lors de
la traduction de cette section, donc les termes français que l'on y
trouve ne sont pas toujours exemplaires ; c'est le récent remplacement
de "Text markup" par "Formatting text" dans le titre en anglais qui m'a
fait penser à "Texte formaté".

Salutations lilyesques
John