]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' of git+ssh://jneem@git.sv.gnu.org/srv/git/lilypond
authorJoe Neeman <joeneeman@gmail.com>
Sun, 7 Jan 2007 17:45:48 +0000 (19:45 +0200)
committerJoe Neeman <joeneeman@gmail.com>
Sun, 7 Jan 2007 17:45:48 +0000 (19:45 +0200)
75 files changed:
Documentation/GNUmakefile
Documentation/fr/user/advanced-notation.itely
Documentation/fr/user/basic-notation.itely
Documentation/fr/user/changing-defaults.itely
Documentation/fr/user/cheatsheet.itely
Documentation/fr/user/converters.itely
Documentation/fr/user/instrument-notation.itely
Documentation/fr/user/introduction.itely
Documentation/fr/user/lilypond-book.itely
Documentation/fr/user/lilypond.tely
Documentation/fr/user/literature.itely
Documentation/fr/user/non-music.itely
Documentation/fr/user/notation-appendices.itely
Documentation/fr/user/preface.itely
Documentation/fr/user/programming-interface.itely
Documentation/fr/user/putting.itely
Documentation/fr/user/running.itely
Documentation/fr/user/scheme-tutorial.itely
Documentation/fr/user/spacing.itely
Documentation/fr/user/templates.itely
Documentation/fr/user/tutorial.itely
Documentation/fr/user/tweaks.itely
Documentation/fr/user/working.itely
Documentation/po/fr.po
Documentation/po/lilypond-doc.pot
Documentation/topdocs/NEWS.tely
Documentation/user/advanced-notation.itely
Documentation/user/basic-notation.itely
Documentation/user/changing-defaults.itely
Documentation/user/cheatsheet.itely
Documentation/user/converters.itely
Documentation/user/dedication.itely
Documentation/user/instrument-notation.itely
Documentation/user/introduction.itely
Documentation/user/lilypond-book.itely
Documentation/user/lilypond.tely
Documentation/user/literature.itely
Documentation/user/non-music.itely
Documentation/user/notation-appendices.itely
Documentation/user/preface.itely
Documentation/user/programming-interface.itely
Documentation/user/putting.itely
Documentation/user/running.itely
Documentation/user/scheme-tutorial.itely
Documentation/user/spacing.itely
Documentation/user/templates.itely
Documentation/user/tutorial.itely
Documentation/user/tweaks.itely
Documentation/user/working.itely
buildscripts/check_translation.py [new file with mode: 0644]
input/regression/markup-note-dot.ly [new file with mode: 0644]
input/regression/midi-volume-equaliser.ly
input/regression/spacing-bar-accidental.ly [new file with mode: 0644]
input/regression/spacing-bar-arpeggio.ly [new file with mode: 0644]
input/regression/spacing-bar-stem.ly
input/regression/spacing-bar-whole-measure.ly [new file with mode: 0644]
lily/constrained-breaking.cc
lily/include/spacing-options.hh
lily/include/spacing-spanner.hh
lily/include/staff-spacing.hh
lily/include/stencil.hh
lily/include/system.hh
lily/page-breaking.cc
lily/paper-column.cc
lily/paper-score.cc
lily/spacing-determine-loose-columns.cc
lily/spacing-options.cc
lily/spacing-spanner.cc
lily/staff-spacing.cc
lily/stencil.cc
lily/system.cc
po/es.po
po/es_MX.po [new file with mode: 0644]
scm/define-grobs.scm
scm/define-markup-commands.scm

index 37a452a11f1b975c33a484ac18f2b76e1b428572..cd96e38b5b61630c6bf3404be337826b59136442 100644 (file)
@@ -44,4 +44,7 @@ new-lang:
        msgmerge -U po/lilypond-doc.pot $(outdir)/doc.pot
        cp po/lilypond-doc.pot po/$(ISOLANG).po
        @echo "***  Please add a language definition for $(ISOLANG) in buildscripts/langdefs.py  ***"
+
+check-translation:
+       find $(ISOLANG)/user/ -name '*.*tely' | xargs $(PYTHON) $(buildscript-dir)/check_translation.py $(buildscript-dir)
 endif
index e1f82f07483490a74ba1a0259966a3a01481ee56..8481a50e3f7678b3cb73abfe00f13738d5976623 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Advanced notation
 @chapter Advanced notation
 
@@ -226,6 +235,7 @@ UNTRANSLATED NODE: IGNORE ME
 * Analysis brackets::
 * Coloring objects::
 * Parentheses::
+* Grid lines::
 @end menu 
 @node Balloon help
 @subsection Balloon help
@@ -267,3 +277,8 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
+@node Grid lines
+@subsection Grid lines
+
+UNTRANSLATED NODE: IGNORE ME
+
index d7c1bccb577fe99e74258a63c1af5a7d4f23a94e..709eef6d529414274cc1c8c391882642afc7c0d1 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Basic notation
 @chapter Basic notation
 
index 69342deaffa76e001a568f7515aee5216bdc697a..15345c1a601edf2c714963b40c74259ec24afe53 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Changing defaults
 @chapter Changing defaults
 
@@ -40,7 +49,9 @@ UNTRANSLATED NODE: IGNORE ME
 * Layout tunings within contexts::
 * Changing context default settings::
 * Defining new contexts::
+* Aligning contexts::           
 @end menu 
+
 @node Contexts explained
 @subsection Contexts explained
 
@@ -76,6 +87,11 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
+@node Aligning contexts
+@subsection Aligning contexts
+
+UNTRANSLATED NODE: IGNORE ME
+
 @node The \override command
 @section The \override command
 
index 24a63dc7745967a565016818afd00c3b6355effc..0e1c151288bb2ee0a2929c0bd8b3243e284c6fcf 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Cheat sheet
 @appendix Cheat sheet
 
index 07b91238fdde1468db28e35ecf3862cc188fc87f..93a51dbe276322cc66b32f7220479a5aad291dd3 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: 0d9d3feea8ca1b22388bd1c67545a518987e72f1
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Converting from other formats
 @chapter Converting from other formats
 
index bf8742de5d59586df25ee4866c4b014f6ad71fbf..46ce66be5769e7d66aa74dee2bce7ccd2cc36656 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Instrument-specific notation
 @chapter Instrument-specific notation
 
index bfb50ccdef13e1e8a4ad36d5f6f400016d9bdb57..97a1a7aaf6e0aeb0f02ce719e41f1918823febd6 100644 (file)
+@c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: 94e27fe2da58c91791e1cacb32c16a4acccf0638
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Introduction
 @chapter Introduction
 
-UNTRANSLATED NODE: IGNORE ME
 
-@menu 
-* Engraving::
+@menu
+* Engraving::         
 * Automated engraving::
-* What symbols to engrave?::
-* Music representation::
+* What symbols to engrave?::    
+* Music representation::      
 * Example applications::
 * About this manual::
-@end menu 
+@end menu
+
+
 @node Engraving
 @section Engraving
 
-UNTRANSLATED NODE: IGNORE ME
+L'art de la typographie musicale se nomme la @emph{gravure}.  Ce terme
+est issu du processus traditionnel d'impression musicale.  Il y a
+seulement quelques dizaines d'années, on faisait les partitions en
+coupant et en embossant une plaque de zinc ou d'étain en image miroir.
+Cette plaque était ensuite encrée, les dépressions créées par les
+creux et les bosses retenant l'encre.  Une image était formée en
+pressant du papier sur la plaque.  La découpe et l'embossage étaient
+entièrement faits à la main.  Il était pénible d'appliquer une
+correction, quand celle-ci n'était pas impossible, la gravure devait
+donc être parfaite du premier coup.  La gravure demandait une
+qualification hautement spécialisée : un artisan devait accomplir
+environ cinq ans de formation avant de mériter le titre de maître
+graveur, et il lui fallait cinq années d'expérience supplémentaires
+pour devenir vraiment habile.
+
+De nos jours, toutes les partitions récentes sont produites avec des
+ordinateurs.  Ceci a des avantages évidents : le coût des impressions
+a diminué, et le travail d'éditeur peut être envoyé par courriel.
+Malheureusement, l'utilisation dominante des ordinateurs a également
+diminué la qualité graphique des partitions.  L'impression
+informatisée leur donne un aspect fade et mécanique qui les rend
+désagréables à jouer.
+
+@c introduce illustrating aspects of engraving, font...
+Les images ci-dessous illustrent la différence entre la gravure
+traditionelle et l'impression typique par ordinateur, et la troisème
+image montre comment LilyPond mime l'aspect traditionnel.  L'image de
+gauche est une numérisation d'un symbole bémol d'une édition publiée
+en 2000.  Celle du centre montre un bémol d'une gravure à la main de
+l'édition Bärenreiter de la même musique.  L'image de gauche illustre
+des défauts typiques de l'impression informatique : les lignes de
+portée sont minces, l'épaisseur de trait du bémol est la même que les
+lignes fines, et il y a un aspect rigide avec des angles pointus.  Par
+contraste, le bémol Bärenreiter possède un aspect gras et arrondi,
+presque voluptueux.  Notre symbole bémol est créé, entre autres, à
+partir de celui-là.  Il est arrondi, et son épaisseur de trait
+s'harmonise avec nos lignes de portée, lesquelles sont également plus
+épaisses que celles de l'édition informatique.
+
+@multitable @columnfractions .125 .25 .25 .25 .125
+@item @tab
+@ifnotinfo
+@iftex
+@image{henle-flat-gray,,4cm}
+@end iftex
+@ifnottex
+@image{henle-flat-gray,,,png}
+@end ifnottex
+
+@tab
+@iftex
+@image{baer-flat-gray,,4cm}
+@end iftex
+@ifnottex
+@image{baer-flat-gray,,,png}
+@end ifnottex
+
+@tab
+@iftex
+@image{lily-flat-bw,,4cm}
+@end iftex
+@ifnottex
+@image{lily-flat-bw,,,png}
+@end ifnottex
+@end ifnotinfo
+@ifinfo
+@c workaround for makeinfo-4.6: line breaks and multi-column cookies
+@image{henle-flat-bw,,,png} @image{baer-flat-bw,,,png}
+@image{lily-flat-bw,,,png}
+@end ifinfo
+
+@item @tab
+Henle (2000)
+@tab
+Bärenreiter (1950)
+@tab
+Fonte Feta de LilyPond (2003)
+
+@end multitable
+
+
+@cindex musical symbols
+@cindex font
+@cindex blackness
+@cindex balance
+
+@c introduce illustrating aspects of engraving, spacing...
+En matière d'espacement, la répartition de l'espace devrait refléter
+les durées entre les notes.  Cependant, beaucoup de partitions
+modernes se contentent des durées avec une précision mathématique, ce
+qui mène à de mauvais résultats.  Dans l'exemple suivant, un motif est
+imprimé deux fois : une fois en utilisant un espacement mathématique
+exact, et une autre fois avec des corrections.  Pouvez-vous les
+repérer ?
+
+@cindex optical spacing
+@c file spacing-optical.
+@c need to include it here,  because we want two images.
+@lilypond
+\paper {
+  ragged-right = ##t
+  indent = #0.0
+}
+
+music = {
+   c'4 e''4 e'4 b'4 |
+   \stemDown
+   b'8[ e'' a' e'']
+   \stemNeutral
+   e'8[ e'8 e'8 e'8]
+}
+
+\score
+{
+  \music
+  \layout {
+    \context {
+      \Staff
+      \override NoteSpacing #'stem-spacing-correction = #0.6
+    }
+  }
+}
+@end lilypond
+
+@lilypond
+\paper {
+  ragged-right = ##t
+  indent = #0.0
+}
+
+music = {
+   c'4 e''4 e'4 b'4 |
+   \stemDown
+   b'8[ e'' a' e'']
+   \stemNeutral
+   e'8[ e'8 e'8 e'8]
+}
+\score
+{
+  \music
+  \layout {
+    \context {
+      \Staff
+      \override NoteSpacing #'stem-spacing-correction = #0.0
+      \override NoteSpacing #'same-direction-correction = #0.0
+      \override StaffSpacing #'stem-spacing-correction = #0.0
+    }
+  }
+}
+@end lilypond
+
+@cindex regular rhythms
+@cindex regular spacing
+
+L'extrait n'utilise que des notes de même durée ; l'espacement devrait
+le refléter.  Malheureusement, notre oeil nous trompe quelque peu ; il
+ne se contente pas de remarquer la distance entre les têtes de notes,
+il prend en compte également la distance entre les hampes
+consécutives.  Ainsi, par compensation, les notes avec une combinaison
+« hampe vers le haut »/@/« hampe vers le bas » doivent être éloignées
+l'une de l'autre, et les notes avec une combinaison « hampe vers le
+bas »/@/« hampe vers le haut » rapprochées, le tout dépendant de la
+position verticale des notes.  Les deux premières mesures sont
+imprimées avec cette correction, les deux suivantes sans.  Les notes
+dans les deux dernières mesures forment des blocs de notes « hampe
+vers le bas »/@/« hampe vers le haut ».
+
+@cindex typography
+
+Les musiciens sont généralement plus absorbés par l'exécution que par
+l'étude de l'aspect graphique d'une partition, donc discutailler sur
+les détails typographiques peut paraître peu important.  Il n'en est
+rien.  Dans de longues pièces avec des rythmes monotones, les
+corrections d'espacement engendrent de subtiles variations dans la
+mise en forme de chaque ligne, donnant à chacune une signature
+visuelle distincte.  Sans cette signature, toutes les lignes auraient
+le même aspect, et ressembleraient à un labyrinthe.  Si un musicien
+regarde ailleurs un instant ou se déconcentre momentanement, il peut
+avoir du mal à se retrouver sur la page.
+
+De même, l'aspect robuste des symboles sur d'épaisses lignes de
+portées ressort mieux quand la partition est éloignée du lecteur,
+comme sur un pupitre par exemple.  Une organisation minutieuse des
+espaces vides permet de minimiser l'espace qu'occupe la musique, tout
+en évitant que les symboles s'amassent les uns contre les autres.  le
+résultat permet de réduire le nombre de pages à tourner, ce qui est un
+grand avantage.
+
+Ceci est une caractéristique commune à toute typographie.  La
+disposition doit être belle, non seulement pour des raisons
+esthétiques, mais également pour l'aide apportée au lecteur dans la
+tâche qu'il doit accomplir.  Pour du matériel d'exécution comme les
+partitions de musique, cela prend une double importance : les
+musiciens ont une quantité limitée d'attention.  Moins ils en ont
+besoin pour lire, plus ils peuvent se concentrer sur la musique
+elle-même.  Autrement dit, une meilleure typographie permet une
+meilleure interprétation.
+
+Ces exemples démontrent que la typographie musicale est un art subtil
+et complexe, et que la produire demande une expertise considérable,
+que les musiciens n'ont généralement pas.  LilyPond représente notre
+effort pour apporter l'excellence graphique de la gravure à la main à
+l'ère de l'ordinateur, et la rendre accessible à tous les musiciens.
+Nous avons conçu nos algorithmes, fontes et paramètres de programme
+pour retrouver la qualité d'édition des anciennes partitions que nous
+aimons tant lire et jouer.
+
+
 
 @node Automated engraving
 @section Automated engraving
 
-UNTRANSLATED NODE: IGNORE ME
+Comment pouvons-nous implémenter la typographie ? Si les artisans ont
+besoin de plus de dix ans pour devenir de vrais maîtres, comment nous,
+simples programmeurs, pourrions-nous jamais écrire un programme pour
+faire leur travail?
+
+La réponse est : nous ne le pouvons pas.  La typographie se base sur
+le jugement visuel humain, donc les humains ne peuvent pas être
+complètement remplacés.  Si LilyPond arrive à résoudre la plupart des
+situations correctement, ce sera déjà une grande avancée sur les
+logiciels existants.  Les autres situations peuvent être résolues à la
+main.  Au fil des ans, le logiciel peut être affiné pour faire de plus
+en plus de choses automatiquement, pour que les ajustements manuels
+soient de moins en moins nécessaires.
+
+Quand nous avons commencé, nous avons écrit le programme Lilypond
+entièrement dans le language de programmation C++ ; les fonctions du
+programme étaient figées par les développeurs.  Ceci s'est avéré
+insatisfaisant pour plusieurs raisons :
+
+@itemize @bullet
+@item Quand Lilypond fait des erreurs,
+les utilisateurs ont besoin de contredire les décisions de formatage.
+Les utilisateurs doivent donc avoir accès au moteur de formatage.  Par
+conséquent, les règles et les propriétés ne peuvent pas être fixées
+par nous au moment de la compilation, mais doivent être accessibles
+aux utilisateurs au moment de l'exécution.
+
+@item La gravure est une question de jugement visuel, et donc de goût.
+Aussi bien informés que nous le sommes, les utilisateurs peuvent être
+en désaccord avec nos décisions personnelles.  Par conséquent, les
+définitions du modèle typographique doivent également être accessibles
+à l'utilisateur.
+
+@item Enfin, nous affinons continuellement les algorithmes de formatage,
+donc nous avons besoin d'une approche souple des règles.  Le language
+C++ oblige à une certaine méthode de groupage des règles qui ne
+convient pas bien au fonctionnement de la notation musicale.
+@end itemize
+
+Ces problèmes ont été résolus en intégrant un interpréteur pour le
+language de programmation Scheme, et en réécrivant des parties de
+LilyPond en Scheme.  L'architecture actuelle de formatage est
+construite autour de la notion d'objets graphiques, décrits par des
+fonctions et des variables Scheme.  Cette architecture comprend les
+règles de formatage, le style typographique, et des décisions
+individuelles de formatage.  L'utilisateur a un accès direct à la
+plupart de ces contrôles.
+
+Les variables Scheme contrôlent les décisions de mise en page.  Par
+exemple, beaucoup d'objets graphiques ont une variable de direction
+qui encode le choix entre haut et bas (ou gauche et droite).  Vous
+pouvez voir ici deux accords, avec des accents, et des arpèges.  Dans
+le premier accord, les objets graphiques sont tous dirigés vers le bas
+(ou la gauche).  Dans le second accord ils sont tous dirigés vers le
+haut (droite).
+
+@lilypond[quote,ragged-right]
+\new Score \with {
+   \override SpacingSpanner #'spacing-increment = #3
+   \override TimeSignature #'transparent = ##t
+} \relative {
+   \stemDown <e g b>4_>-\arpeggio
+   \override Arpeggio #'direction = #RIGHT
+   \stemUp <e g b>4^>-\arpeggio
+}
+@end lilypond
+
+@noindent
+Le processus de formatage d'une partition consiste à lire et écrire
+les variables d'objets graphiques.  Certaines variables ont une valeur
+prédéfinie.  Par exemple, l'épaisseur d'un grand nombre de lignes --
+une caractéristique du style typographique -- est une variable avec
+une valeur prédéfinie.  Vous êtes libres d'altérer cette valeur, ce
+qui vous donne une partition avec une impression typographique
+différente.
+
+@lilypond[quote,ragged-right]
+fragment = {
+   \clef bass f8 as8
+   c'4-~ c'16 as g f e16 g bes c' des'4
+}
+<<
+   \new Staff \fragment
+   \new Staff \with {
+      \override Beam #'thickness = #0.3
+      \override Stem #'thickness = #0.5
+      \override Bar #'thickness = #3.6
+      \override Tie #'thickness = #2.2
+      \override StaffSymbol #'thickness = #3.0
+      \override Tie #'extra-offset = #'(0 .  0.3)
+      }
+      \fragment
+>>
+@end lilypond
+
+Les règles de formatage ont aussi des variables prédéfinies : chaque
+objet possède des variables contenant des procédures.  Ces procédures
+exécutent le formatage, et en les substituant par d'autres, nous
+pouvons changer l'apparence des objets.  Dans l'exemple suivant, la
+règle du choix de têtes de notes est changée au cours de l'extrait de
+musique.
+
+@lilypond[quote,ragged-right]
+#(set-global-staff-size 30)
+
+#(define (mc-squared grob orig current)
+  (let* ((interfaces (ly:grob-interfaces grob))
+         (pos (ly:grob-property grob 'staff-position)))
+    (if (memq 'note-head-interface interfaces)
+        (begin
+          (ly:grob-set-property! grob 'stencil ly:text-interface::print)
+          (ly:grob-set-property! grob 'font-family 'roman)
+          (ly:grob-set-property! grob 'text
+            (make-raise-markup -0.5
+              (case pos
+                ((-5) (make-simple-markup "m"))
+                ((-3) (make-simple-markup "c "))
+                ((-2) (make-smaller-markup (make-bold-markup "2")))
+                (else (make-simple-markup "bla")))))))))
+
+\new Voice \relative c' {
+   \stemUp
+   \set autoBeaming = ##f
+   \time 2/4
+   <d f g>4
+   \once \override NoteHead #'stencil = #ly:note-head::brew-ez-stencil
+   \once \override NoteHead #'font-size = #-7
+   \once \override NoteHead #'font-family = #'sans
+   \once \override NoteHead #'font-series = #'bold
+   <d f g>
+   \once \override NoteHead #'style = #'cross
+   <d f g>
+   \applyOutput #'Voice #mc-squared
+   <d f g>
+   <<
+      { d8[ es-( fis^^ g] fis2-) }
+      \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
+   >>
+}
+@end lilypond
+
+
 
 @node What symbols to engrave?
 @section What symbols to engrave?
 
-UNTRANSLATED NODE: IGNORE ME
+@cindex engraving
+@cindex typography
+
+Le processus de formatage décide où placer les symboles.  Cependant,
+cela ne peut être fait qu'à partir du moment où il a été décidé
+@emph{quels} symbols doivent être imprimés, c'est-à-dire quelle
+notation utiliser.
+
+La notation musicale usuelle est un système d'écriture qui a évolué à
+travers les dix derniers siècles.  La forme qui est aujourd'hui
+communément utilisée date du début de la Renaissance.  Bien que la
+forme basique --- les têtes de notes sur une portée de cinq lignes ---
+n'a pas changé, les détails continuent d'évoluer pour exprimer les
+innovations de la notation contemporaine.  Par conséquent, elle
+comprend quelque 500 ans de musique, avec des applications allant des
+mélodies monodiques à de monstrueux contrepoints pour grand orchestre.
+
+Comment pouvons nous appréhender un tel monstre à plusieurs têtes, et
+le confiner dans l'espace réduit d'un programme informatique ?  Notre
+solution consiste à diviser le problème de la notation --- par
+opposition à la gravure, ou typographie --- en morceaux digestes et
+programmables : chaque type de symbole est géré par un module séparé,
+couramment appelé greffon@footnote{traduction de l'anglais
+@emph{plug-in}.}.  Chaque greffon est entièrement modulaire et
+indépendant, et donc peut être développé et amélioré séparément.  De
+tels greffons sont nommées @code{graveur}s@footnote{@code{engraver}s
+en anglais.}, par analogie avec les artisans qui traduisent les idées
+musicales en symboles graphiques.
+
+Dans l'exemple suivant, voyons comment nous commençons avec un greffon
+pour les têtes de notes, le graveur de têtes de note
+(@code{Note_heads_engraver}) :
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+
+\score {
+   \topVoice
+   \layout {
+   \context {
+      \Voice
+      \remove "Stem_engraver"
+      \remove "Phrasing_slur_engraver"
+      \remove "Slur_engraver"
+      \remove "Script_engraver"
+      \remove "Beam_engraver"
+      \remove "Auto_beam_engraver"
+   }
+   \context {
+      \Staff
+      \remove "Accidental_engraver"
+      \remove "Key_engraver"
+      \remove "Clef_engraver"
+      \remove "Bar_engraver"
+      \remove "Time_signature_engraver"
+      \remove "Staff_symbol_engraver"
+      \consists "Pitch_squash_engraver"
+   }
+}
+}
+@end lilypond
+
+@noindent
+Ensuite, le graveur du symbole de portée
+(@code{Staff_symbol_engraver}) ajoute la portée
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+
+\score {
+  \topVoice
+  \layout {
+    \context {
+      \Voice
+      \remove "Stem_engraver"
+      \remove "Phrasing_slur_engraver"
+      \remove "Slur_engraver"
+      \remove "Script_engraver"
+      \remove "Beam_engraver"
+      \remove "Auto_beam_engraver"
+    }
+    \context {
+      \Staff
+      \remove "Accidental_engraver"
+      \remove "Key_engraver"
+      \remove "Clef_engraver"
+      \remove "Bar_engraver"
+      \consists "Pitch_squash_engraver"
+      \remove "Time_signature_engraver"
+    }
+  }
+}
+@end lilypond
+
+@noindent
+le graveur de clef (@code{Clef_engraver}) définit un point de
+référence pour la portée
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+
+\score {
+  \topVoice
+  \layout {
+    \context {
+      \Voice
+      \remove "Stem_engraver"
+      \remove "Phrasing_slur_engraver"
+      \remove "Slur_engraver"
+      \remove "Script_engraver"
+      \remove "Beam_engraver"
+      \remove "Auto_beam_engraver"
+    }
+    \context {
+      \Staff
+      \remove "Accidental_engraver"
+      \remove "Key_engraver"
+      \remove "Bar_engraver"
+      \remove "Time_signature_engraver"
+    }
+  }
+}
+@end lilypond
+
+@noindent
+et le graveur de hampes (@code{Stem_engraver}) ajoute les hampes :
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+
+\score {
+  \topVoice
+  \layout {
+    \context {
+      \Voice
+      \remove "Phrasing_slur_engraver"
+      \remove "Slur_engraver"
+      \remove "Script_engraver"
+      \remove "Beam_engraver"
+      \remove "Auto_beam_engraver"
+    }
+    \context {
+      \Staff
+      \remove "Accidental_engraver"
+      \remove "Key_engraver"
+      \remove "Bar_engraver"
+      \remove "Time_signature_engraver"
+    }
+  }
+}
+@end lilypond
+
+Le graveur de hampe est notifié de chaque tête de note qui survient.
+Chaque fois qu'une tête de note --- plusieurs pour un accord --- est
+rencontrée, un objet hampe est créé et connecté à la tête de note.  En
+ajoutant des graveurs pour les barres de ligature, les liaisons, les
+accents, les altérations accidentelles, les barres de mesure, la
+métrique, et les armures, nous obtenons un jeu de notation complet.
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+\score { \topVoice }
+@end lilypond
+
+Ce système fonctionne bien pour de la musique monodique, mais qu'en
+est-il de la polyphonie ? En notation polyphonique, plusieurs voix
+peuvent partager une portée.
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+\new Staff << \topVoice \\ \botVoice >>
+@end lilypond
+
+Dans cette situation, la portée et les altérations accidentelles sont
+partagées, mais les hampes, liaisons etc., sont spécifiques à chaque
+voix.  Par conséquent, les graveurs doivent être groupés.  Les
+graveurs des têtes de notes, hampes, liaisons etc., vont dans un
+groupe appelé « contexte de Voix »@footnote{``Voice context'' en
+anglais, ``Voice'' commence par une majuscule comme tous les noms de
+contexte dans le programme LilyPond.}, alors que les graveurs des clés,
+altérations accidentelles, barres de mesure etc., vont dans un groupe
+appelé « contexte de Portée ». Dans le cas de la polyphonie, un seul
+contexte de Portée contient plusieurs contextes de Voix.  De même,
+plusieurs contextes de Portée peuvent être inclus dans un seul
+contexte de Partition.  Le contexte de Partition est le contexte de
+notation de plus haut niveau.
+
+@seealso
+
+Program reference: @internalsref{Contexts}.
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+\score {
+   <<
+      \new Staff << \topVoice \\ \botVoice >>
+      \new Staff << \pah \\ \hoom >>
+   >>
+}
+@end lilypond
 
 @node Music representation
 @section Music representation
 
-UNTRANSLATED NODE: IGNORE ME
+Idéalement, le format d'entrée pour n'importe quel système de
+formatage est une description abstraite du contenu.  Dans ce cas-ci,
+ce serait la musique elle-même.  Cela pose un formidable problème :
+comment pouvons-nous définir ce que la musique est réellement ? Plutôt
+que d'essayer de trouver une réponse, nous avons renversé la question.
+Nous écrivons un logiciel capable de produire de la musique écrite, et
+adaptons le format pour atteindre la plus grande concision possible.
+Quand le format ne peut plus être simplifé, il nous reste par
+définition le contenu lui-même.  Notre logiciel sert de définition
+formelle d'un document de musique.
+
+La syntaxe est également l'interface utilisateur pour LilyPond, par
+conséquent il est facile de saisir
+
+@example
+c'4 d'8
+@end example
+
+@noindent
+c'est-à-dire un do central noire et, juste au-dessus un ré croche
+
+@lilypond[quote,fragment]
+c'4 d'8
+@end lilypond
+
+Sur une échelle microscopique, une telle syntaxe est facile à
+utiliser.  A plus grande échelle, la syntaxe a besoin aussi de
+structure.  Comment serait-il possible autrement de rentrer des
+pièces complexes comme des symphonies ou des opéras? La structure
+est formée par le concept d'expression musicale : en combinant
+de petits fragments de musique pour en former de plus grands, on peut
+exprimer de la musique plus complexe.  Par exemple
+
+@lilypond[quote,verbatim,fragment,relative=1]
+c4
+@end lilypond
+
+@noindent
+Des accord peuvent être construits avec @code{<<} et @code{>>} autour
+des notes.
+
+@c < > is not a music expression,
+@c so we use <<>> iso. <> to drive home the point of
+@c expressions.  Don't change this back --hwn.
+@example
+<<c4 d4 e4>>
+@end example
+
+@lilypond[quote,fragment,relative=1]
+\new Voice { <<c4 d4 e>> }
+@end lilypond
+
+@noindent
+Cette expression est mise dans une séquence en l'encadrant avec des
+accolades @code{@{@tie{}@dots{}@tie{}@}}
+
+@example
+@{ f4 <<c4 d4 e4>> @}
+@end example
+
+@lilypond[quote,relative=1,fragment]
+{ f4 <<c d e4>> }
+@end lilypond
+
+@noindent
+Ceci est également une expression, et peut donc encore une fois
+être combinée avec d'autres expressions simultanées (une blanche)
+en utilisant <<, @code{\\}, et >>
+
+@example
+<< g2 \\ @{ f4 <<c4 d4 e4>> @} >>
+@end example
+
+@lilypond[quote,fragment,relative=2]
+\new Voice { << g2 \\ { f4 <<c d e>> } >> }
+@end lilypond
+
+De telles strucutres récursives peuvent être spécifiées formellement
+et de manière ordonnée dans une grammaire indépendante de tout
+contexte.  Le code d'analyse est aussi générée à partir de cette
+grammaire.  Autrement dit, la syntaxe de LilyPond est définie
+clairement et sans ambiguités.
+
+L'interface utilisateur et la syntaxe sont ce que les gens voient et
+manipulent le plus.  Elles sont e npartie une affaire de goût, et
+aussi sujettes à beaucoup de discussions.  Même si ces discussions sur
+les goûts ont leur mérite, elles ne sont pas très productives.  D'un
+point de vue plus large sur LilyPond, l'importance de la syntaxe est
+minime : il est facile d'inventer une syntaxe concise, alors qu'écrire
+un code de formatage décent est beaucoup plus difficile.  Ceci est
+également illustré par le nombre de lignes de codes pour les
+composants respectifs : l'analyse et la représentation représentent
+moins de 10% du code source.
 
 @node Example applications
 @section Example applications
 
-UNTRANSLATED NODE: IGNORE ME
+Nous avons conçu Lilypond comme une expérimentation visant à
+concentrer l'art de la gravure musicale dans un logiciel.  Grâce à
+tout ce dur labeur, le programme peut maintenant être utilisé pour
+accomplir des travaux utiles.  L'application la plus simple est
+d'imprimer des notes :
+
+@lilypond[quote,relative=1,fragment]
+\time 2/4 c4 c g'4 g a4 a g2
+@end lilypond
+
+@noindent
+En ajoutant des noms d'accords et des paroles, nous obtenons
+une partition de chanson :
+
+@lilypond[quote,ragged-right]
+<<
+   \chords { c2 c f2 c }
+   \new Staff \relative c' { \time 2/4 c4 c g'4 g a4 a g2 }
+   \new Lyrics \lyricmode { twin4 kle twin kle lit tle star2 }
+>>
+@end lilypond
+
+La notation polyphonique et la musique pour piano peuvent également
+être générées.  L'exemple suivant associe quelques constructions
+plus exotiques :
+
+@lilypondfile[quote,ragged-right]{screech-boink.ly}
+
+Les extraits exposés ici ont tous été écrits à la main, mais ce n'est
+pas une obligation.  Puisque le moteur de formatage est en grande
+partie automatique, il peut servir de sortie pour d'autres programmes
+qui manipulent la musique.  Par exemple, il peut être utilisé pour
+convertir des bases de données d'extraits musicaux en images pour des
+sites Internet et des présentations multimédias.
+
+Ce manuel montre également une application : le format d'entrée est du
+texte, et peut donc facilement être intégrés dans d'autres formats
+basés sur le texte comme @LaTex{}, HTML, ou dans le cas de ce manuel,
+Texinfo.  À l'aide d'un programme spécial, les extraits de code
+peuvent être remplacés par des images de musiques dans les fichiers de
+sortie PDF ou HTML.  Cela donne la possibilité de mélanger de la
+musique et du texte dans les documents.
+
+
 
 @node About this manual
 @section About this manual
 
-UNTRANSLATED NODE: IGNORE ME
+Le manuel est divisé en chapitres comme suit :
+@itemize @bullet
+
+@item
+@ifhtml
+Le
+@end ifhtml
+@emph{@ref{Tutorial}}
+propose une introduction en douceur à la typographie musicale.
+Les utilisateurs débutants sont invités à commencer ici.
+
+@item
+@emph{@ref{Putting it all together}}
+explique des concepts généraux du format de ficheir ly. Si vous n'êtes
+pas certain de l'endroit où placer une commande, lisez ce chapitre !
+
+@item
+@emph{@ref{Working on LilyPond projects}}
+montre des utilisations pratiques de LilyPond et donne des conseils
+afin d'éviter les problèmes les plus courants.
+
+@item
+@emph{@ref{Tweaking output}}
+est une introduction aux retouches de gravure avec LilyPond.
+
+@item
+@emph{@ref{Basic notation}}
+traite de sujets groupés par type de notation.  Cette section
+détaille la notation de base, qui sera utile dans la plupart des
+projets de partition.
+
+@item
+@emph{@ref{Instrument-specific notation}}
+traite de sujets groupés par type de notation.  Cette section détaille
+des notations spéciales qui ne seront utiles que pour des types
+particuliers d'instruments ou la voix.
+
+@item
+@emph{@ref{Advanced notation}}
+traite de sujets groupés par type de notation.  Cette section
+donne des précisions à propos de notations compliquées et
+inhabituelles
+
+@item
+@emph{@ref{Changing defaults}}
+explique comment ajuster finement la mise en page.
+
+@item
+@emph{@ref{Non-musical notation}}
+traite de sorties non musicales comme les titres, les mouvements
+multiples, et la sélection des instruments MIDI.
+
+@item
+@emph{@ref{Spacing issues}}
+traite de sujets affectant la sortie globale, comme sélectionner
+la taille de papier ou spécifier les sauts de page.
+
+@item
+@emph{@ref{Interfaces for programmers}}
+explique comment créer des fonctions de musique.
+
+@item
+@emph{@ref{Running LilyPond}}
+montre comment lancer LilyPond et ses programmes auxiliaires.  De
+plus, cette section explique comment mettre à jour des fichiers
+source écrits pour d'anciennes versions de LilyPond.
+
+@item
+@emph{@ref{LilyPond-book}} 
+explique comment créer des documents intégrant des exemples musicaux,
+comme ce manuel.
+
+@item
+@emph{@ref{Converting from other formats}}
+explique comment exécuter les programmes de conversion.  Ces programmes
+sont livrés avec le paquetage Lilypond, et convertissent une variété
+de formats musicaux vers le format @code{.ly}.
+
+@item
+@ifhtml
+La
+@end ifhtml
+@emph{@ref{Literature list}}
+contient un choix de livres de référence utiles pour ceux qui veulent
+en savoir plus sur la notation et la gravure.
+
+@item
+Le
+@emph{@ref{Scheme tutorial}}
+propose une courte introduction à Scheme, le langage de programmation
+utilisé par les fonctions de musique.
+
+@item
+@ifhtml
+Les
+@end ifhtml
+@emph{@ref{Notation manual tables}}
+sont un ensemble de tableaux montrant les noms d'accord, les
+instruments MIDI, les noms de couleur, et la police Feta.
+
+@item
+Les
+@emph{@ref{Example templates}}
+procurent des modèles de pièces LilyPond.  Copiez et collez un modèle
+dans un fichier, ajouter les notes, et c'est prêt!
+
+@item
+La
+@emph{@ref{Cheat sheet}}
+est une référence pratique des commandes LlyPond les plus courantes.
+
+@item
+L'
+@emph{@ref{LilyPond command index}}
+est un index de toutes les @code{\commandes} LilyPond.
+
+@item
+L'
+@emph{@ref{LilyPond index}}
+est un index complet.
+
+@end itemize
+
+Une fois que vous êtes un utilisateur expérimenté, vous pouvez
+utiliser le manuel comme référence : il y a un index
+exhaustif@footnote{Si vous cherchez quelque chose, et que vous ne le
+trouvez pas dans le manuel, ceci est considéré comme un bogue ; dans
+ce cas, envoyez un rapport de bogue s'il-vous-plaît.}, mais ce
+document est aussi disponible en
+@iftex
+une seule grande page HTML,
+@end iftex
+@ifhtml
+@uref{source/Documentation/user/lilypond.html, une seule grande page},
+@end ifhtml
+dans laquelle la fonction recherche d'un navigateur Web est très utile
+pour trouver quelque chose. 
+@cindex search in manual
+@cindex using the manual
+
+@c FIXME:
+@c add/integrate glossary, put in list above
+Si vous n'êtes pas familier avec la notation musicale ou la
+terminologie, il est conseillé de consulter le glossaire, notamment
+pour les parties non encore traduites de la documentation.
+@iftex
+Le glossaire de musique explique les termes musicaux, et inclut
+les traductions vers divers languages.  C'est un document séparé,
+disponible dans les formats HTML et PDF.
+@end iftex
+@ifnottex
+Le @ref{Top,Music glossary,,music-glossary} explique les termes
+musicaux et inclut les traductions vers divers languages.  Il est
+également disponible au format PDF. 
+@end ifnottex
+@cindex idiom
+@cindex jargon
+@cindex terminology
+@cindex foreign languages
+@cindex language
+
+
+Ce manuel ne serait pas complet sans un certain nombre d'autres
+documents.  Ils ne sont pas tous disponibles au format papier, mais
+devraient être inclus dans le paquetage de documentation pour votre
+plateforme.
+
+@itemize @bullet
+@item
+@iftex
+Référence du programme
+@end iftex
+@ifnottex
+@ref{Top,Program reference,,lilypond-internals}.
+@end ifnottex
+
+La référence du programme est un groupe de pages HTML étroitement
+liées entre elles, qui documente tous les petits détails de chaque
+classe, objet et fonction de LilyPond.  Elle est produite directement
+à partir des définitions de formatage utilisées.
+
+Presque toutes les fonctions de formatage utilisées en interne sont
+directement disponibles pour l'utilisateur.  Par exemple, toutes les
+variables qui contrôlent les épaisseurs, les distances etc., peuvent
+être modifiées dans les fichiers d'entrée.  Il y a un grand nombre
+d'options de formatage, et elles sont toutes décrites dans ce
+document.  Chaque section du manuel de notation a une section @b{Voir
+aussi} qui réfère à la documentation générée automatiquement.  Dans la
+documentation au format HTML, ces sous-sections ont des liens
+cliquables.
+
+@cindex snippets
+@item
+@ifnothtml
+Exemples de source divers.
+@end ifnothtml
+@ifhtml
+@c Works, but link name is not so nice; so write-out macro
+@c @inputfileref{input/test,Various input examples}.
+@uref{source/input/test/collated-files.html,Exemples de source divers}.
+@end ifhtml
+
+Cette ensemble de fichiers montre des trucs et astuces variés, sous
+la forme d'un large fichier HTML, avec des images et des textes
+explicatifs.
+
+@item
+@ifnothtml
+Les tests de régression.
+@end ifnothtml
+@ifhtml
+@c Works, but link name is not so nice; so write-out macro
+@c @inputfileref{input/regression,The regression tests}.
+@uref{source/input/regression/collated-files.html,Les tests de régression}.
+@end ifhtml
+
+Cet ensemble de fichiers teste chaque fonctionnalité de notation et de
+gravure de Lilypond en un seul fichier.  L'ensemble est surtout
+présent pour nous aider à deboguer les problèmes, mais peut également
+être instructif pour voir comment nous testons le logiciel.  Le format
+est identique au document de trucs et astuces.
+@end itemize
+
+
+Dans tous les documents HTML qui incluent des fragments musicaux,
+le code Lilypond utilisé pour produire l'image peut être vu en
+cliquant l'image.
+
+L'emplacement des fichiers de documentation mentionné ici peut varier
+d'un système à l'autre.  De temps en temps, ce manuel fait référence
+aux fichiers d'exemple et d'initialisation.  Tout au long de ce
+manuel, nous donnons les emplacements des fichiers d'entrée
+relativement au répértoire racine de l'archive source.  Par exemple,
+@file{input/@/test/@/bla@/.ly} peut référer au fichier
+@file{lilypond@/-2.8.0/@/input/@/test/@/bla@/.ly}.  Dans les paquets
+binaires pour les plateformes Unix, la documentation et les exemples
+se trouvent généralement sous @file{/usr/@/share/@/doc/@/lilypond/}.
+Les fichiers d'initialisation, par exemple @file{scm/@/lily@/.scm}, ou
+@file{ly/@/engraver@/-init@/.ly}, se trouvent généralement dans le
+répértoire @file{/usr/@/share/@/lilypond/}.
+
+@cindex adjusting output
+@cindex variables
+@cindex properties
+@cindex lilypond-internals
+@cindex internal documentation
+@cindex Scheme
+@cindex extending lilypond
+@cindex index
+
+Pour finir, ce manuel et les autres sont disponibles en ligne, à la
+fois aux formats PDF et HTML, à partir du site de LilyPond, accessible
+à l'adresse @uref{http://@/www@/.lilypond@/.org/}.
 
index a01caad7e5a543f67d3110da30dcb7c227598484..5f740da1ab0384d53ee84fe250cc302c62196ae8 100644 (file)
@@ -1,5 +1,14 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node LilyPond-book
-@chapter 
+@chapter @command{lilypond-book}: Integrating text and music
 
 UNTRANSLATED NODE: IGNORE ME
 
@@ -13,6 +22,7 @@ UNTRANSLATED NODE: IGNORE ME
 * Invoking lilypond-book::
 * Filename extensions::
 * Many quotes of a large score::
+* Inserting LilyPond output into OpenOffice.org::  
 * Inserting LilyPond output into other programs::
 @end menu 
 @node An example of a musicological document
@@ -64,6 +74,11 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
+@node Inserting LilyPond output into OpenOffice.org
+@section Inserting LilyPond output into OpenOffice.org
+
+UNTRANSLATED NODE: IGNORE ME
+
 @node Inserting LilyPond output into other programs
 @section Inserting LilyPond output into other programs
 
index 12fcd5750f4645c4aee7445c8dfad76b52930109..b173f38eed6cba81f1e99fd61ae2aee80fbfad79 100644 (file)
@@ -1,4 +1,11 @@
-\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
+\input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @setfilename lilypond.info
 @settitle GNU LilyPond
 @iftex
@@ -83,7 +90,7 @@ Free Documentation License''.
 @top GNU LilyPond --- The music typesetter
 @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
 
-Ce document est le manuel de l'utilisateur pour GNU LilyPond 2.8.X.
+Ce document est le manuel de l'utilisateur pour GNU LilyPond 2.10.x.
 @ifhtml
 (Allez au bas de la page pour voir le numéro de version exact).
 @end ifhtml
index 1400e5288afe83d7e08167c889a82ee18044e038..5a5a0434692ad8802eda974ffa8d4375caf8114c 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Literature list
 @appendix Literature list
 
index 38977cad047ae761b4f6a6e83c34aec63cdf954f..9e28ccf00fa9751ea1b74cc385f4d3999ae793e3 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Non-musical notation
 @chapter Non-musical notation
 
index 21642c5fe8045e9504d2e2030414fe13339891e4..e47578ee5417df6d29f06bdb18b7157017fcd7a5 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Notation manual tables
 @appendix Notation manual tables
 
index 91a0b4235b130db6ecb12ba588d15e4a9d44041f..d0bef0dbeffebfe3161e50ab608e5a8081623b6a 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Preface
 @unnumbered Preface
 
index 2417124af9ce2b50d1aa493d22c5a1c64293c1f3..27ae074aa0b431021117ce227f08ee3d545161f7 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Interfaces for programmers
 @chapter Interfaces for programmers
 
@@ -22,6 +31,7 @@ UNTRANSLATED NODE: IGNORE ME
 * Paired substitution functions::
 * Mathematics in functions::
 * Void functions::
+* Functions without arguments::
 @end menu 
 @node Overview of music functions
 @subsection Overview of music functions
@@ -48,6 +58,11 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
+@node Functions without arguments
+@subsection Functions without arguments
+
+UNTRANSLATED NODE: IGNORE ME
+
 @node Programmer interfaces
 @section Programmer interfaces
 
index 16d2054dfb1aa181df967e52eaf5742114c02c15..e7b309bed7c4beb7e8df9db2310647f07831a490 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Putting it all together
 @chapter Putting it all together
 
index 438c5bf07254ec50fc4adbef274bad9225262b21..f996d6152c40d1974ebd2c66820dc45fc4dfb5e7 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Running LilyPond
 @chapter Running LilyPond
 
index d89fb346fd4a9f94dbe277dc7140d57eaacf8ce7..08b5616aa5086858064d6982c7c9e2c2a8a6709c 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: 64f0d86a7c0987b311bfdfdfeddfa063e1f2d6e7
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Scheme tutorial
 @appendix Scheme tutorial
 
index bb9119890ea450e9e37fff4176a165ce4b429bd9..fa19990b91ef1e2b3bef699918019d7004790049 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Spacing issues
 @chapter Spacing issues
 
@@ -10,7 +19,8 @@ UNTRANSLATED NODE: IGNORE ME
 * Horizontal spacing::
 * Breaks::
 * Displaying spacing::
-@end menu 
+@end menu
+
 @node Paper and pages
 @section Paper and pages
 
@@ -19,7 +29,8 @@ UNTRANSLATED NODE: IGNORE ME
 @menu 
 * Paper size::
 * Page formatting::
-@end menu 
+@end menu
 @node Paper size
 @subsection Paper size
 
index bd3c4228a027b78389ec888de516e717bc6ade38..efe7bcec0bfa0cc81d2c51b69f3f3c75aaab9c6b 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Example templates
 @appendix Example templates
 
index 5f7e7138b774d883bdc7fa1c4eed2fd9dd256a2c..e6a719979293f6c90cd9b0dda6ae4f1bc4fe153e 100644 (file)
@@ -1,14 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
-@c
-@c Translation of GIT committish: 829be449be664ea765ed43f5d56b50b41e43b397
-@c
-@c When revising a translation, copy the HEAD committish of the
-@c version that you are working on.  Use
-@c
-@c   git-rev-list HEAD | head -1
-@c
-@c to discover that.
+@ignore
+    Translation of GIT committish: 64f0d86a7c0987b311bfdfdfeddfa063e1f2d6e7
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 
 @c TODO:
 @c   * more details about running lilypond; error messages,
 @node Tutorial   
 @chapter Tutorial
 
-Ce tutoriel commence par une courte introduction au langage utilisé
-par LilyPond pour représenter la musique.  Après ce premier contact,
-nous verrons comment produire une partition à imprimer.  Vous serez
-alors capable de créer et d'imprimer vos propres partitions.
+Ce tutoriel commence par une introduction au langage musical utilisé
+par LilyPond, qui vous permettra de faire fonctionner le logiciel pour
+prosuire une partition.  Après ce premier contact, nous verrons comment
+créer des partitions utilisant une notation musicale courante.
 
 @ifhtml
 Beaucoup de gens apprennent à utiliser les programmes en les essayant
@@ -52,7 +49,7 @@ pour une consultation rapide.
 
 @menu
 * First steps::                 
-* Running LilyPond for the first time::  
+* Second steps::  
 * More about pitches::          
 * Entering ties::               
 * Automatic and manual beams::  
@@ -84,15 +81,17 @@ entrez
 
 @example
 @{
-c d e f g a b
+c' d' e' f' g' a' b' c''
 @}
 @end example
 
 @noindent
 le résultat ressemblera à 
 
-@lilypond[fragment,quote,notime,relative=1]
-c d e f g a b
+@lilypond[quote]
+{
+c' d' e' f' g' a' b' c''
+}
 @end lilypond
 
 @c DIV specific
@@ -101,10 +100,116 @@ re mi fa sol la si}, en insérant au début du fichier la ligne
 @samp{\include "catalan.ly"}
 @c END DIV
 
-Tout extrait de code LilyPond doit être entouré d'une @{paire
-d'accolades@}.  Bien que la plupart des exemples de ce manuel n'en
-comportent pas, ne les oubliez pas dans vos compositions !
+@emph{Attention :} tout extrait de code LilyPond doit être entouré
+d'une @{paire d'accolades@}.  De plus, pour éviter toute ambiguïté, il
+est préférable d'entourer les accolades par des espaces ou retours à
+la ligne.  Bien que certains exemples de ce manuel ne comportent pas
+d'accolades, ne les oubliez pas dans vos partitions !
+
+@cindex Case sensitive
+De plus, LilyPond est sensible à la casse.  @code{ @{ c d e @} } est
+un code valide ; @code{ @{ C D E @} } produira un message d'erreur.
+
+@unnumberedsubsec Entering music and viewing output
+
+Dans cette section nous expliquerons quelles commandes exécuter et
+comment voir ou imprimer le résultat de LilyPond.
+
+@unnumberedsubsubsec MacOS X
+
+Si vous double-cliquez sur LilyPond.app, un fichier d'exemple sera
+ouvert.  Sauvegardez-le, par exemple, sous @file{test.ly} sur votre
+bureau, et traitez-le ensuite avec la commande du menu @samp{Compile >
+Typeset File}.  Le fichier PDF résultant est alors affiché sur votre
+écran.
+
+Pour l'utilisation future de LilyPond, vous commencerez certainement
+en sélectionnant « Nouveau » ou « Ouvrir ».
+
+Notez que le premier démarrage peut prendre une minute ou deux, car
+toutes les polices systèmes doivent être d'abord analysées.
+
+@unnumberedsubsubsec Windows
+
+Sous Windows, démarrez un éditeur de texte @footnote{N'importe quel
+éditeur simple ou orienté programmation, qui prend en charge le codage
+de caractères UTF-8, fera l'affaire, par exemple Notepad.  N'utilisez
+pas de traitement de texte car ceux-ci insèrent des codes de formatage
+qui posent problème à LilyPond.} et saisissez
+
+@verbatim
+{ c' e' g' c'' }
+@end verbatim
+
+Enregistrez-le sur le bureau sous @file{test.ly} et vérifiez bien
+qu'il ne s'appelle pas @file{test.ly.TXT}.  Double-cliquez sur le
+fichier @file{test.ly} pour le traiter et afficher le fichier
+PDF résultant.
+
+
+@unnumberedsubsubsec Unix
+
+Commencez par ouvrir une fenêtre de terminal et un éditeur de
+texte.  Par exemple, vous pouvez ouvrir un xterm et exécuter
+@code{joe}.  @footnote{Des fichiers de macros pour les fans de VIM et un
+@code{LilyPond-mode} pour les fans d'Emacs existent.   S'ils ne sont pas
+encore installés, consultez le fichier @file{INSTALL.txt}.} Dans votre
+éditeur, entrez le texte suivant et sauvegardez le fichier sous
+@file{test.ly}
+
+@verbatim
+{ c' e' g' c'' }
+@end verbatim
+
+@noindent
+Pour traiter @file{test.ly}, procédez comme ceci : 
+
+@example
+lilypond test.ly
+@end example
+
+@noindent
+Vous verrez quelque chose ressemblant à :
+
+@example
+lilypond test.ly
+GNU LilyPond 2.10.0
+Processing `test.ly'
+Parsing...
+Interpreting music... [1]
+Preprocessing graphical objects...
+Calculating line breaks... [2]
+Layout output to `test.ps'...
+Converting to `test.pdf'...
+@end example
+
+@c DIV specific
+Suivant votre installation, les messages peuvent être traduits.
+@c END DIV
+
+@cindex PDF file
+@cindex Viewing music
+
+@noindent
+Le résultat est le fichier @file{test.pdf}, que vous pouvez imprimer
+ou visualiser avec les outils standards de votre système
+d'exploitation.  @footnote{Si votre système ne dispose pas des outils
+nécessaires, vous pouvez essayer
+@uref{http://@/www@/.cs@/.wisc@/.edu/@/~ghost/,Ghostscript}, un
+programme pour voir et imprimer les fichiers PDF et PostScript.}
+
+
+@node Second steps
+@section Second steps
+
+@emph{N'oubliez pas :} tout extrait de musique source LilyPond doit
+être entouré d'@{accolades@}.  Pour éviter toute ambiguïté, il
+est préférable d'entourer les accolades par des espaces ou retours à
+la ligne.  Bien que certains exemples de ce manuel ne comportent pas
+d'accolades, ne les oubliez pas dans vos partitions !
 
+@c will be removed once the tutorial either explains \relative or
+@c examples are fixed so they don't use it.  -gp
 De plus, de nombreux exemples utilisent le mode @code{relative}.  Ceci
 est expliqué à la section @ref{Octave entry} ; sachez dès à présent
 que certains exemples devraient être libellés sous la forme 
@@ -117,6 +222,10 @@ De nombreux exemples ont aussi été compressés horizontalement pour
 Enfin, LilyPond est sensible à la casse.  @code{ @{ c d e @} } est
 un code valide ; @code{ @{ C D E @} } produira un message d'erreur.
 
+@c  End of latest re-write.  Since I have no life, I may do more
+@c  work on this, but I'd really like to have a Doc Helper take
+@c  over this task.  -gp
+
 La durée (@rglos{duration}) d'une note est spécifiée par un nombre
 qui suit le nom de cette note : @samp{1} pour une ronde (@rglos{whole
 note}), @samp{2} pour une blanche (@rglos{half note}), @samp{4} pour
@@ -234,98 +343,6 @@ voir @ref{Time signature}.
 @end quotation
 
 
-@node Running LilyPond for the first time
-@section Running LilyPond for the first time
-
-@c cheesy title to avoid clash with chapter name.
-
-Dans la section précédente, nous avons vu quelles sortes d'éléments
-peut contenir un fichier LilyPond.  Dans cette section nous
-expliquerons quelles commandes exécuter et comment voir ou imprimer le
-résultat de LilyPond.  Si vous n'avez jamais utilisé
-LilyPond, voulez tester votre installation ou souhaitez compiler
-vous-même un fichier d'exemple, lisez cette section.
-
-@unnumberedsubsec MacOS X
-
-Si vous double-cliquez sur LilyPond.app, un fichier d'exemple sera
-ouvert.  Sauvegardez-le, par exemple, sous @file{test.ly} sur votre
-bureau, et traitez-le ensuite avec la commande du menu 
-@samp{Compile > Typeset File}.
-Le fichier PDF résultant est alors affiché sur votre écran.
-
-Prenez note que le premier démarrage prend une minute ou deux ,
-car toutes les polices systèmes doivent être d'abord analysées.
-
-@unnumberedsubsec Windows
-
-Sous Windows, démarrez un éditeur de texte @footnote{N'importe quel
-éditeur simple ou orienté programmation, qui prend en charge le
-codage de caractères UTF-8, fera l'affaire, par exemple
-Notepad.  N'utilisez pas de traitement de texte car ceux-ci insèrent
-des codes de formatage qui posent problème à LilyPond.} et saisissez
-
-@verbatim
-@{ c'4 e' g' @}
-@end verbatim
-
-Enregistrez le sur le bureau sous @file{test.ly} et vérifiez bien
-qu'il ne s'appelle pas @file{test.ly.TXT}.  Double-cliquez sur le
-fichier @file{test.ly} pour le traiter et afficher le fichier
-PDF résultant.
-
-
-@unnumberedsubsec Unix
-
-Commencez par ouvrir une fenêtre de terminal et un éditeur de
-texte.  Par exemple, vous pouvez ouvrir un xterm et exécuter
-@code{joe}.  @footnote{Des fichiers de macros pour les fans de VIM et un
-@code{LilyPond-mode} pour les fans d'Emacs existent.   S'ils ne sont pas
-encore installés, consultez le fichier @file{INSTALL.txt}.} Dans votre
-éditeur, entrez le texte suivant et sauvegardez le fichier sous
-@file{test.ly}
-
-@verbatim
-@{ c'4 e' g' @}
-@end verbatim
-
-@noindent
-Pour traiter @file{test.ly}, procédez comme ceci : 
-
-@example
-lilypond test.ly
-@end example
-
-@noindent
-Vous verrez quelque chose ressemblant à :
-
-@example
-lilypond test.ly
-GNU LilyPond 2.10.0
-Processing `test.ly'
-Parsing...
-Interpreting music... [1]
-Preprocessing graphical objects...
-Calculating line breaks... [2]
-Layout output to `test.ps'...
-Converting to `test.pdf'...
-@end example
-
-@c DIV specific
-Suivant votre installation, les messages peuvent être traduits.
-@c END DIV
-
-@cindex DVI file
-@cindex Viewing music
-@cindex xdvi
-@noindent
-Le résultat est le fichier @file{test.pdf} que vous pouvez imprimer ou
-visualiser avec les outils standards de votre système d'exploitation.
-@footnote{Si votre système ne dispose pas des outils nécessaires,
-vous pouvez essayer
-@uref{http://@/www@/.cs@/.wisc@/.edu/@/~ghost/,Ghostscript}, un
-programme pour voir et imprimer les fichiers PDF et PostScript.}
-
 @node More about pitches
 @section More about pitches 
 
index ca79cdefce1f3360585779db3d3192e6c8580fbf..032f76c453ead135bd3efc5a8831de3cbf536147 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: 64f0d86a7c0987b311bfdfdfeddfa063e1f2d6e7
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Tweaking output
 @chapter Tweaking output
 
@@ -10,6 +19,7 @@ UNTRANSLATED NODE: IGNORE ME
 * Default files::
 * Fitting music onto fewer pages::
 * Advanced tweaks with Scheme::
+* Avoiding tweaks with slower processing::
 @end menu 
 @node Moving objects
 @section Moving objects
@@ -41,3 +51,7 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
+@node Avoiding tweaks with slower processing
+@section Avoiding tweaks with slower processing
+
+UNTRANSLATED NODE: IGNORE ME
index a05a3bc4336798c7905d34c23425b62c8253c0d6..f3e00af868664006092e6c51182ba6d377fd902c 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: 64f0d86a7c0987b311bfdfdfeddfa063e1f2d6e7
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Working on LilyPond projects
 @chapter Working on LilyPond projects
 
index fbf6cade9914b5c165ded46ce269e9391c6c816a..56a829cb7c5b3519b981dedae20190595b11b161 100644 (file)
@@ -3,13 +3,13 @@
 # Copyright (C) 2006 Han-Wen Nienhuys, Jan Nieuwenhuizen
 # This file is distributed under the same license as the lilypond package.
 #
-# John Mandereau <john.mandereau@free.fr>, 2006.
+# John Mandereau <john.mandereau@free.fr>, 2006, 2007.
 msgid ""
 msgstr ""
 "Project-Id-Version: fr\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-23 14:50+0100\n"
-"PO-Revision-Date: 2006-12-27 23:51+0100\n"
+"POT-Creation-Date: 2007-01-07 16:10+0100\n"
+"PO-Revision-Date: 2007-01-07 16:33+0100\n"
 "Last-Translator: John Mandereau <john.mandereau@free.fr>\n"
 "Language-Team: Français <lilypond-user-fr@gnu.org>\n"
 "MIME-Version: 1.0\n"
@@ -71,8 +71,8 @@ msgstr "Tutoriel"
 msgid "First steps"
 msgstr "Premiers pas"
 
-msgid "Running LilyPond for the first time"
-msgstr "Lancer LilyPond pour la première fois"
+msgid "Entering music and viewing output"
+msgstr "Saisir la musique et visualiser la partition produite"
 
 msgid "MacOS X"
 msgstr "MacOS X"
@@ -83,6 +83,9 @@ msgstr "Windows"
 msgid "Unix"
 msgstr "Unix"
 
+msgid "Second steps"
+msgstr "Initiation à la notation de base"
+
 msgid "More about pitches"
 msgstr "Les hauteurs en détail"
 
@@ -197,6 +200,9 @@ msgstr "Réduire le nombre de pages de la partition"
 msgid "Advanced tweaks with Scheme"
 msgstr "Retouches avancées avec Scheme"
 
+msgid "Avoiding tweaks with slower processing"
+msgstr ""
+
 msgid "Basic notation"
 msgstr "Notation de base"
 
@@ -699,9 +705,12 @@ msgstr ""
 msgid "Parentheses"
 msgstr ""
 
-msgid "Changing defaults"
+msgid "Grid lines"
 msgstr ""
 
+msgid "Changing defaults"
+msgstr "Changer les réglages prédéfinis"
+
 msgid "Automatic notation"
 msgstr ""
 
@@ -735,6 +744,9 @@ msgstr ""
 msgid "Defining new contexts"
 msgstr ""
 
+msgid "Aligning contexts"
+msgstr ""
+
 msgid "The \\override command"
 msgstr ""
 
@@ -760,7 +772,7 @@ msgid "Difficult tweaks"
 msgstr ""
 
 msgid "Non-musical notation"
-msgstr ""
+msgstr "Objets non musicaux"
 
 msgid "Input files"
 msgstr ""
@@ -814,7 +826,7 @@ msgid "Skipping corrected music"
 msgstr ""
 
 msgid "Spacing issues"
-msgstr ""
+msgstr "Questions d'espacement"
 
 msgid "Paper and pages"
 msgstr ""
@@ -828,7 +840,7 @@ msgstr ""
 msgid "Music layout"
 msgstr ""
 
-msgid "Setting global staff size"
+msgid "Setting the staff size"
 msgstr ""
 
 msgid "Score layout"
@@ -889,7 +901,7 @@ msgid "Displaying spacing"
 msgstr ""
 
 msgid "Interfaces for programmers"
-msgstr ""
+msgstr "Interfaces pour les programmeurs"
 
 msgid "Music functions"
 msgstr ""
@@ -909,6 +921,9 @@ msgstr ""
 msgid "Void functions"
 msgstr ""
 
+msgid "Functions without arguments"
+msgstr ""
+
 msgid "Programmer interfaces"
 msgstr ""
 
@@ -958,7 +973,7 @@ msgid "Scheme procedures as properties"
 msgstr ""
 
 msgid "Running LilyPond"
-msgstr ""
+msgstr "Lancer LilyPond"
 
 msgid "Invoking lilypond"
 msgstr ""
@@ -975,7 +990,7 @@ msgstr ""
 msgid "Updating files with convert-ly"
 msgstr ""
 
-msgid "Updating with"
+msgid "Updating with @command{convert-ly}"
 msgstr ""
 
 msgid "Reporting bugs"
@@ -991,7 +1006,10 @@ msgid "Point and click"
 msgstr ""
 
 msgid "LilyPond-book"
-msgstr ""
+msgstr "LilyPond-book"
+
+msgid "@command{lilypond-book}: Integrating text and music"
+msgstr "@command{lilypond-book} : associer de la musique et du texte"
 
 msgid "An example of a musicological document"
 msgstr ""
@@ -999,7 +1017,7 @@ msgstr ""
 msgid "Integrating LaTeX and music"
 msgstr ""
 
-msgid "Integrating La"
+msgid "Integrating La@TeX{} and music"
 msgstr ""
 
 msgid "Integrating Texinfo and music"
@@ -1029,7 +1047,7 @@ msgstr ""
 msgid "Invoking lilypond-book"
 msgstr ""
 
-msgid "Invoking"
+msgid "Invoking @command{lilypond-book}"
 msgstr ""
 
 msgid "Filename extensions"
@@ -1038,35 +1056,50 @@ msgstr ""
 msgid "Many quotes of a large score"
 msgstr ""
 
+msgid "Inserting LilyPond output into OpenOffice.org"
+msgstr ""
+
 msgid "Inserting LilyPond output into other programs"
 msgstr ""
 
 msgid "Converting from other formats"
-msgstr ""
+msgstr "Convertir à partir d'autres formats"
 
 msgid "Invoking midi2ly"
 msgstr ""
 
+msgid "Invoking @command{midi2ly}"
+msgstr ""
+
 msgid "Invoking etf2ly"
 msgstr ""
 
+msgid "Invoking @command{etf2ly}"
+msgstr ""
+
 msgid "Invoking musicxml2ly"
 msgstr ""
 
+msgid "Invoking @code{musicxml2ly}"
+msgstr ""
+
 msgid "Invoking abc2ly"
 msgstr ""
 
+msgid "Invoking @code{abc2ly}"
+msgstr ""
+
 msgid "Generating LilyPond files"
 msgstr ""
 
 msgid "Literature list"
-msgstr ""
+msgstr "Bibliographie"
 
 msgid "Scheme tutorial"
-msgstr ""
+msgstr "Tutoriel Scheme"
 
 msgid "Notation manual tables"
-msgstr ""
+msgstr "Tables du manuel de notation"
 
 msgid "Chord name chart"
 msgstr ""
@@ -1096,7 +1129,7 @@ msgid "The Feta font"
 msgstr ""
 
 msgid "Example templates"
-msgstr ""
+msgstr "Modèles-exemples"
 
 msgid "Single staff"
 msgstr ""
@@ -1143,6 +1176,9 @@ msgstr ""
 msgid "SATB vocal score and automatic piano reduction"
 msgstr ""
 
+msgid "SATB with aligned contexts"
+msgstr ""
+
 msgid "Ancient notation templates"
 msgstr ""
 
@@ -1165,7 +1201,7 @@ msgid "Texinfo"
 msgstr ""
 
 msgid "Cheat sheet"
-msgstr ""
+msgstr "Feuille aide-mémoire"
 
 msgid "GNU Free Documentation License"
 msgstr ""
@@ -1186,5 +1222,5 @@ msgid "Appendix"
 msgstr "Annexe"
 
 msgid "Footnotes"
-msgstr "Notes"
+msgstr "Notes de bas de page"
 
index 2ff82cea7781baf609bf787dcc4d8334c971bf61..158f29535063e769e274e7a4eea50783276eb1c4 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-23 14:50+0100\n"
+"POT-Creation-Date: 2007-01-07 16:10+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -70,7 +70,7 @@ msgstr ""
 msgid "First steps"
 msgstr ""
 
-msgid "Running LilyPond for the first time"
+msgid "Entering music and viewing output"
 msgstr ""
 
 msgid "MacOS X"
@@ -82,6 +82,9 @@ msgstr ""
 msgid "Unix"
 msgstr ""
 
+msgid "Second steps"
+msgstr ""
+
 msgid "More about pitches"
 msgstr ""
 
@@ -196,6 +199,9 @@ msgstr ""
 msgid "Advanced tweaks with Scheme"
 msgstr ""
 
+msgid "Avoiding tweaks with slower processing"
+msgstr ""
+
 msgid "Basic notation"
 msgstr ""
 
@@ -697,6 +703,9 @@ msgstr ""
 msgid "Parentheses"
 msgstr ""
 
+msgid "Grid lines"
+msgstr ""
+
 msgid "Changing defaults"
 msgstr ""
 
@@ -733,6 +742,9 @@ msgstr ""
 msgid "Defining new contexts"
 msgstr ""
 
+msgid "Aligning contexts"
+msgstr ""
+
 msgid "The \\override command"
 msgstr ""
 
@@ -826,7 +838,7 @@ msgstr ""
 msgid "Music layout"
 msgstr ""
 
-msgid "Setting global staff size"
+msgid "Setting the staff size"
 msgstr ""
 
 msgid "Score layout"
@@ -907,6 +919,9 @@ msgstr ""
 msgid "Void functions"
 msgstr ""
 
+msgid "Functions without arguments"
+msgstr ""
+
 msgid "Programmer interfaces"
 msgstr ""
 
@@ -973,7 +988,7 @@ msgstr ""
 msgid "Updating files with convert-ly"
 msgstr ""
 
-msgid "Updating with"
+msgid "Updating with @command{convert-ly}"
 msgstr ""
 
 msgid "Reporting bugs"
@@ -991,13 +1006,16 @@ msgstr ""
 msgid "LilyPond-book"
 msgstr ""
 
+msgid "@command{lilypond-book}: Integrating text and music"
+msgstr ""
+
 msgid "An example of a musicological document"
 msgstr ""
 
 msgid "Integrating LaTeX and music"
 msgstr ""
 
-msgid "Integrating La"
+msgid "Integrating La@TeX{} and music"
 msgstr ""
 
 msgid "Integrating Texinfo and music"
@@ -1027,7 +1045,7 @@ msgstr ""
 msgid "Invoking lilypond-book"
 msgstr ""
 
-msgid "Invoking"
+msgid "Invoking @command{lilypond-book}"
 msgstr ""
 
 msgid "Filename extensions"
@@ -1036,6 +1054,9 @@ msgstr ""
 msgid "Many quotes of a large score"
 msgstr ""
 
+msgid "Inserting LilyPond output into OpenOffice.org"
+msgstr ""
+
 msgid "Inserting LilyPond output into other programs"
 msgstr ""
 
@@ -1045,15 +1066,27 @@ msgstr ""
 msgid "Invoking midi2ly"
 msgstr ""
 
+msgid "Invoking @command{midi2ly}"
+msgstr ""
+
 msgid "Invoking etf2ly"
 msgstr ""
 
+msgid "Invoking @command{etf2ly}"
+msgstr ""
+
 msgid "Invoking musicxml2ly"
 msgstr ""
 
+msgid "Invoking @code{musicxml2ly}"
+msgstr ""
+
 msgid "Invoking abc2ly"
 msgstr ""
 
+msgid "Invoking @code{abc2ly}"
+msgstr ""
+
 msgid "Generating LilyPond files"
 msgstr ""
 
@@ -1141,6 +1174,9 @@ msgstr ""
 msgid "SATB vocal score and automatic piano reduction"
 msgstr ""
 
+msgid "SATB with aligned contexts"
+msgstr ""
+
 msgid "Ancient notation templates"
 msgstr ""
 
index f37f6ac49634f100dd177cdc1b4118accd8ab003..4769d08c7adabf9dfe1c8f741112a7ad4fe64912 100644 (file)
@@ -65,7 +65,19 @@ which scares away people.
 * only show user-visible changes. 
 
 @end ignore
+@item
+Notes or rests, such as a typical end note, that fill an entire
+measure are preceded by some more space.
 
+@lilypond[ragged-right,relative=1]
+{
+  \time 4/4
+  s1
+  c2. c4
+  \time 3/4
+  c2.
+}
+@end lilypond
 
 @item All @code{\score}s in a lilypond-book fragment are now inserted
 into the document. Also, toplevel markups don't result in an entire
index 2e4463ba15911f80904e23040f9ac58a78f6bfba..49163a8f2833de30b4198abf2aac560ab9ef75b2 100644 (file)
@@ -1,5 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 
 @c A menu is needed before every deeper *section nesting of @node's; run
 @c     M-x texinfo-all-menus-update
index 1e1a59a874a8223096009f74da8a39edb5e342c2..ad2cc92492fd2833b46cbfa6467986f8f239f2ba 100644 (file)
@@ -1,5 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 
 @c A menu is needed before every deeper *section nesting of @node's; run
 @c     M-x texinfo-all-menus-update
index 1dfaffd479c947cfce38278b5ea17f9bbfc4710d..f54ccc87626d803a53385167c810dd67383b649a 100644 (file)
@@ -1,4 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Changing defaults
 @chapter Changing defaults
 
index 634026393fc095d93d662e090b5377613d93f0cd..1bef3ccfebc123b77783438034da6b9f50f7c11d 100644 (file)
@@ -1,4 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 
 @c TODO: add tablature.
 
index 7ba2816ab23941d6878743b9c62153f71e735be7..40bd08e91dfd259c46f8a0822ace5dd0b0e7ce3b 100644 (file)
@@ -1,4 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 
 @node Converting from other formats
 @chapter Converting from other formats
index cc5b1fc081a51db2fe56175e974663628c1ac38c..59cae48337e71d8a9e82abd7db48e3d73f4c29af 100644 (file)
@@ -1,3 +1,11 @@
+@c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 
 @quotation
 We want to dedicate this program to all the friends that we
index d4da68346bf4af46db633947a0f89da0db8a242d..721c7f16bf5af549ddde8a98e26ebd752b954cc9 100644 (file)
@@ -1,5 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 
 @c A menu is needed before every deeper *section nesting of @node's; run
 @c     M-x texinfo-all-menus-update
index ce38bab3a546d260489afa98b76e5b432a1640a3..3f399f2948494ed78111b99fcf7c08b94a21a3a8 100644 (file)
@@ -1,5 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 
 @node Introduction
 @chapter Introduction
@@ -104,10 +110,10 @@ LilyPond Feta font (2003)
 @c introduce illustrating aspects of engraving, spacing...
 In spacing, the distribution of space should reflect the durations
 between notes.  However, many modern scores adhere to the durations
-with mathematical precision, which leads to poor results.  In the
-next example a motive is printed twice.  It is printed once using
-exact mathematical spacing, and once with corrections.  Can you
-spot which fragment is which?
+with mathematical precision, which leads to poor results.  In the next
+example a motive is printed twice : once using exact mathematical
+spacing, and once with corrections.  Can you spot which fragment is
+which?
 
 @cindex optical spacing
 @c file spacing-optical.
@@ -168,42 +174,42 @@ music = {
 @cindex regular rhythms
 @cindex regular spacing
 
-Each bar in the fragment only uses notes that are played in a
-constant rhythm.  The spacing should reflect that.  Unfortunately, the
-eye deceives us a little; not only does it notice the distance between
+Each bar in the fragment only uses notes that are played in a constant
+rhythm.  The spacing should reflect that.  Unfortunately, the eye
+deceives us a little; not only does it notice the distance between
 note heads, it also takes into account the distance between
 consecutive stems.  As a result, the notes of an up-stem/@/down-stem
 combination should be put farther apart, and the notes of a
-down-stem/@/up-stem
-combination should be put closer together, all depending on the
-combined vertical positions of the notes.  The upper two measures are
-printed with this correction, the lower two measures without, forming
-down-stem/@/up-stem clumps of notes.
+down-stem/@/up-stem combination should be put closer together, all
+depending on the combined vertical positions of the notes.  The upper
+two measures are printed with this correction, the lower two measures
+without, forming down-stem/@/up-stem clumps of notes.
 
 @cindex typography
 
 Musicians are usually more absorbed with performing than with studying
-the looks of a piece of music, so nitpicking about typographical details
-may seem academical.  But it is not.  In larger pieces with monotonous
-rhythms, spacing corrections lead to subtle variations in the layout
-of every line, giving each one a distinct visual signature.  Without
-this signature all lines would look the same, and they become like a
-labyrinth.  If a musician looks away once or has a lapse in
+the looks of a piece of music, so nitpicking about typographical
+details may seem academical.  But it is not.  In larger pieces with
+monotonous rhythms, spacing corrections lead to subtle variations in
+the layout of every line, giving each one a distinct visual signature.
+Without this signature all lines would look the same, and they become
+like a labyrinth.  If a musician looks away once or has a lapse in
 concentration, the lines might lose their place on the page.
 
 Similarly, the strong visual look of bold symbols on heavy staff lines
-stands out better when the music is far away from the reader, for example,
-if it is on a music stand.  A careful distribution of white space allows
-music to be set very tightly without cluttering symbols together.  The
-result minimizes the number of page turns, which is a great advantage.
+stands out better when the music is far away from the reader, for
+example, if it is on a music stand.  A careful distribution of white
+space allows music to be set very tightly without cluttering symbols
+together.  The result minimizes the number of page turns, which is a
+great advantage.
 
 This is a common characteristic of typography.  Layout should be
 pretty, not only for its own sake, but especially because it helps the
-reader in her task.  For performance material like sheet music, this is
-of double importance: musicians have a limited amount of attention.  The
-less attention they need for reading, the more they can focus on
-playing the music.  In other words, better typography translates to better
-performances.
+reader in her task.  For performance material like sheet music, this
+is of double importance: musicians have a limited amount of attention.
+The less attention they need for reading, the more they can focus on
+playing the music.  In other words, better typography translates to
+better performances.
 
 These examples demonstrate that music typography is an art that is
 subtle and complex, and that producing it requires considerable
@@ -311,8 +317,8 @@ Formatting rules are also preset variables: each object has variables
 containing procedures.  These procedures perform the actual
 formatting, and by substituting different ones, we can change the
 appearance of objects.  In the following example, the rule which note
-head objects are used to produce their symbol is changed during the music
-fragment.
+head objects are used to produce their symbol is changed during the
+music fragment.
 
 @lilypond[quote,ragged-right]
 #(set-global-staff-size 30)
@@ -361,17 +367,17 @@ fragment.
 @cindex engraving
 @cindex typography
 
-The formatting process decides where to place
-symbols.  However, this can only be done once it is decided @emph{what}
-symbols should be printed, in other words what notation to use.
+The formatting process decides where to place symbols.  However, this
+can only be done once it is decided @emph{what} symbols should be
+printed, in other words what notation to use.
 
 Common music notation is a system of recording music that has evolved
 over the past 1000 years.  The form that is now in common use dates
-from the early renaissance.  Although the basic form (i.e., note heads on a
-5-line staff) has not changed, the details still evolve to express the
-innovations of contemporary notation.  Hence, it encompasses some 500
-years of music.  Its applications range from monophonic melodies to
-monstrous counterpoints for large orchestras.
+from the early renaissance.  Although the basic form (i.e., note heads
+on a 5-line staff) has not changed, the details still evolve to
+express the innovations of contemporary notation.  Hence, it
+encompasses some 500 years of music.  Its applications range from
+monophonic melodies to monstrous counterpoints for large orchestras.
 
 How can we get a grip on such a many-headed beast, and force it into
 the confines of a computer program?  Our solution is to break up the
@@ -379,11 +385,11 @@ problem of notation (as opposed to engraving, i.e., typography) into
 digestible and programmable chunks: every type of symbol is handled by
 a separate module, a so-called plug-in.  Each plug-in is completely
 modular and independent, so each can be developed and improved
-separately.  Such plug-ins are called @code{engraver}s, by analogy with
-craftsmen who translate musical ideas to graphic symbols.
+separately.  Such plug-ins are called @code{engraver}s, by analogy
+with craftsmen who translate musical ideas to graphic symbols.
 
 In the following example, we see how we start out with a plug-in for
-note heads, the @code{Note_heads_engraver}.
+note heads, the @code{Note_heads_engraver}:
 
 @lilypond[quote,ragged-right]
 \include "engraver-example.ily"
@@ -475,7 +481,7 @@ the @code{Clef_engraver} defines a reference point for the staff
 @end lilypond
 
 @noindent
-and the @code{Stem_engraver} adds stems.
+and the @code{Stem_engraver} adds stems:
 
 @lilypond[quote,ragged-right]
 \include "engraver-example.ily"
@@ -526,8 +532,8 @@ polyphony?  In polyphonic notation, many voices can share a staff.
 In this situation, the accidentals and staff are shared, but the stems,
 slurs, beams, etc., are private to each voice.  Hence, engravers should
 be grouped.  The engravers for note heads, stems, slurs, etc., go into a
-group called `Voice context,' while the engravers for key, accidental,
-bar, etc., go into a group called `Staff context.'  In the case of
+group called `Voice context', while the engravers for key, accidental,
+bar, etc., go into a group called `Staff context'.  In the case of
 polyphony, a single Staff context contains more than one Voice context.
 Similarly, multiple Staff contexts can be put into a single Score
 context.  The Score context is the top level notation context.
@@ -643,14 +649,14 @@ and representation take up less than 10% of the source code.
 We have written LilyPond as an experiment of how to condense the art
 of music engraving into a computer program.  Thanks to all that hard
 work, the program can now be used to perform useful tasks.  The
-simplest application is printing notes.
+simplest application is printing notes:
 
 @lilypond[quote,relative=1,fragment]
 \time 2/4 c4 c g'4 g a4 a g2
 @end lilypond
 
 @noindent
-By adding chord names and lyrics we obtain a lead sheet.
+By adding chord names and lyrics we obtain a lead sheet:
 
 @lilypond[quote,ragged-right]
 <<
@@ -661,7 +667,7 @@ By adding chord names and lyrics we obtain a lead sheet.
 @end lilypond
 
 Polyphonic notation and piano music can also be printed.  The following
-example combines some more exotic constructs.
+example combines some more exotic constructs:
 
 @lilypondfile[quote,ragged-right]{screech-boink.ly}
 
@@ -674,7 +680,7 @@ presentations.
 
 This manual also shows an application: the input format is text, and
 can therefore be easily embedded in other text-based formats such as
-La@TeX{}, HTML, or in the case of this manual, Texinfo.  By means of a
+@LaTeX{}, HTML, or in the case of this manual, Texinfo.  By means of a
 special program, the input fragments can be replaced by music images
 in the resulting PDF or HTML output files.  This makes it easy
 to mix music and text in documents.
@@ -747,9 +753,9 @@ explains how to create music functions.
 
 @item
 @emph{@ref{Running LilyPond}}
-shows how to run LilyPond and its helper
-programs.  In addition, this section explains how to upgrade input
-files from previous versions of LilyPond.
+shows how to run LilyPond and its helper programs.  In addition, this
+section explains how to upgrade input files from previous versions of
+LilyPond.
 
 @item
 @emph{@ref{LilyPond-book}} explains the details behind creating
@@ -757,8 +763,8 @@ documents with in-line music examples, like this manual.
 
 @item
 @emph{@ref{Converting from other formats}}
-explains how to run the conversion programs.  These programs
-are supplied with the LilyPond package, and convert a variety of music
+explains how to run the conversion programs.  These programs are
+supplied with the LilyPond package, and convert a variety of music
 formats to the @code{.ly} format.
 
 @item
@@ -772,7 +778,7 @@ more on notation and engraving.
 @item
 The
 @emph{@ref{Scheme tutorial}}
-presents a short introduction to scheme, the programming
+presents a short introduction to Scheme, the programming
 language that music functions use.
 
 @item
@@ -863,10 +869,10 @@ Almost all formatting functionality that is used internally, is
 available directly to the user.  For example, all variables that
 control thickness values, distances, etc., can be changed in input
 files.  There are a huge number of formatting options, and all of them
-are described in this document.  Each section of the
-notation manual has a @b{See also} subsection, which refers to the
-generated documentation.  In the HTML document, these subsections
-have clickable links.
+are described in this document.  Each section of the notation manual
+has a @b{See also} subsection, which refers to the generated
+documentation.  In the HTML document, these subsections have clickable
+links.
 
 @cindex snippets
 @item
index 571bdbc199f3c1eeab5607e7d6f2c67b49a35f0a..bc15506b73ba8964ae2f02e6df6bc8e5495da800 100644 (file)
@@ -1,4 +1,11 @@
-c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 
 
 @ignore
index 2b0b3091e44e9ce1446fee381fbbe9dca2123871..3bd4ca5623de61e964933a32c1d4e141207978cb 100644 (file)
@@ -1,4 +1,10 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 @setfilename lilypond.info
 @settitle GNU LilyPond
 @iftex
index 2e7f3f7c2cd208cf54be159d6bc5e130688e3a2b..9501d7949dd2619c545abf032312104f950a7980 100644 (file)
@@ -1,3 +1,12 @@
+@c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Literature list
 @appendix Literature list
 
index 0743851592084f383d586f60f70e063d15de6392..522ddef67febec7f974f6897e384b1edf75c568d 100644 (file)
@@ -1,5 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 
 @c A menu is needed before every deeper *section nesting of @node's; run
 @c     M-x texinfo-all-menus-update
index 32afbd6f1bf2e9df3ddc562e8a450eb1c8ea305a..f52d831f4a873271cd01df91caea5e9a23bc65f0 100644 (file)
@@ -1,5 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 
 @node Notation manual tables
 @appendix Notation manual tables
index 09d561a6c0342510fbfe4f048a4616dc4772ca81..a4d8f295eaf9b4c9f3ec9a57221172d97c5b2761 100644 (file)
@@ -1,4 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 
 @node Preface
 @unnumbered Preface
index 3909b5b65c2c38faff53ffd690c7781d54c151dc..b64f0d87d126bf555d71b616d345a850739fba9c 100644 (file)
@@ -1,4 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Interfaces for programmers
 @chapter Interfaces for programmers
 
index f585f2d00f834f8852caf7a983363455a6aa4fdf..7e8f45fb51f8edae0d9ad5b97bc6d934e510209b 100644 (file)
@@ -1,4 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Putting it all together
 @chapter Putting it all together
 
index 89c786b535b27c680baad8fbce95e3afa9a84090..f4cbfdd3263765a292b297e1fcdeca0fad8bf4bb 100644 (file)
@@ -1,5 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 
 @node Running LilyPond
 @chapter Running LilyPond
index 64f1ff6e18b03d84b3ad6a1bf52fae2cb458bb26..5eba9a146516b5022e760650f75cfe4b5dbe54f0 100644 (file)
@@ -1,4 +1,11 @@
-
+@c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 
 @node Scheme tutorial
 @appendix Scheme tutorial
index b94c1da95a9382899d3fc4eb54c0dc03c6123336..08b4acc687bf7db27f488ee704ddbb67918d3bfa 100644 (file)
@@ -1,5 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 
 @c A menu is needed before every deeper *section nesting of @node's; run
 @c     M-x texinfo-all-menus-update
index dbb1490dfd6c76d2876bb724fb041a74b4632efa..fca2900d655f1b1cc9d53a332f37c7e448032f58 100644 (file)
@@ -1,4 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Example templates
 @appendix Example templates
 
index 33e147d4328b478386802b9118acecbe5b67da1b..54032eef2d43b0e40579e43943dae392c84e5433 100644 (file)
@@ -1,14 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
-@c
-@c Translation of GIT committish: <FILL-IN-HEAD-COMMITTISH>
-@c
-@c When revising a translation, copy the HEAD committish of the
-@c version that you are working on.  Use
-@c
-@c   git-rev-list HEAD | head -1
-@c
-@c to discover that.
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 
 @c TODO:
 @c   * more details about running lilypond; error messages,
@@ -76,8 +73,8 @@ commands for quick reference.
 @section First steps
 
 The first example demonstrates how to enter the most elementary piece
-of music, a @rglos{scale}.  A @rglos{note} can be entered by typing its
-name, from @samp{a} through @samp{g}.  So, if you enter
+of music, a @rglos{scale}.  A @rglos{note} can be entered by typing
+its name, from @samp{a} through @samp{g}.  So, if you enter
 
 @example
 @{
@@ -94,12 +91,11 @@ c' d' e' f' g' a' b' c''
 }
 @end lilypond
 
-@emph{Warning:}  Every piece of LilyPond input needs to have
-@{curly braces@} placed around the input.  The braces should be
-also be surrounded by a space unless
-they are at the beginning or end of a line to avoid ambiguities.  These
-may be omitted in examples in this manual, but don't forget them in
-your own music!
+@emph{Warning:} Every piece of LilyPond input needs to have @{curly
+braces@} placed around the input.  The braces should be also be
+surrounded by a space unless they are at the beginning or end of a
+line to avoid ambiguities.  These may be omitted in examples in this
+manual, but don't forget them in your own music!
 
 @cindex Case sensitive
 In addition, LilyPond input is case sensitive.  @code{ @{ c d e @} } is
@@ -112,26 +108,25 @@ valid input; @code{ @{ C D E @} } will produce an error message.
 In this section we will explain what commands to run
 and how to view or print the output.
 
-@unnumberedsubsec MacOS X
+@unnumberedsubsubsec MacOS X
 
 If you double click LilyPond.app, it will open with an example
 file. Save it, for example, to @file{test.ly} on your Desktop, and
 then process it with the menu command @samp{Compile > Typeset File}.
 The resulting PDF file will be displayed on your screen.
 
-Be warned that the first time you ever run lilypond 
-will take a minute or two, because
-all of the system fonts have to be analyzed first.
+Be warned that the first time you ever run lilypond will take a minute
+or two, because all of the system fonts have to be analyzed first.
 
 For future use of LilyPond, you should begin by selecting "New"
 or "Open".
 
-@unnumberedsubsec Windows
+@unnumberedsubsubsec Windows
 
 On Windows, start up a text-editor@footnote{Any simple or
-programmer-oriented editor will do, for example Notepad.  Do not use a
-word processor, since these insert formatting codes that will confuse
-LilyPond.} and enter
+programmer-oriented editor with UTF-8 support will do, for example
+Notepad.  Do not use a word processor, since these insert formatting
+codes that will confuse LilyPond.} and enter
 
 @verbatim
 { c' e' g' c'' }
@@ -142,7 +137,7 @@ called @file{test.ly.TXT}.  Double clicking @file{test.ly} will process
 the file and show the resulting PDF file.
 
 
-@unnumberedsubsec Unix
+@unnumberedsubsubsec Unix
 
 Begin by opening a terminal window and starting a text editor.  For
 example, you could open an xterm and execute
@@ -178,9 +173,9 @@ Layout output to `test.ps'...
 Converting to `test.pdf'...
 @end example
 
-@cindex DVI file
+@cindex PDF file
 @cindex Viewing music
-@cindex xdvi
+
 @noindent
 The result is the file @file{test.pdf} which you can print or view
 with the standard facilities of your operating system.@footnote{If
@@ -192,12 +187,11 @@ available package for viewing and printing PDF and PostScript files.}
 @node Second steps
 @section Second steps
 
-@emph{Remember:} Every piece of LilyPond input needs to
-have @{curly braces@} placed around the input.
-The braces should be surrounded by a space unless
-they are at the beginning or end of a line to avoid ambiguities.
-For the rest of this manual, most examples will
-omit these braces, but don't forget them in your own music!
+@emph{Remember:} Every piece of LilyPond input needs to have @{curly
+braces@} placed around the input.  The braces should be surrounded by
+a space unless they are at the beginning or end of a line to avoid
+ambiguities.  For the rest of this manual, most examples will omit
+these braces, but don't forget them in your own music!
 
 @c will be removed once the tutorial either explains \relative or
 @c examples are fixed so they don't use it.  -gp
index 27b74e1fc21f45c9e425674c59f561b9bb664d8a..dc4de56f2a20bf7bc3b67b9f6974c87ef018aefc 100644 (file)
@@ -1,4 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Tweaking output
 @chapter Tweaking output
 
index 73b83dc16e7abe300776a9250893ed44b15ffa1d..d02b6114985bb2275dab85655c2781902adf11e3 100644 (file)
@@ -1,4 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
 @node Working on LilyPond projects
 @chapter Working on LilyPond projects
 
diff --git a/buildscripts/check_translation.py b/buildscripts/check_translation.py
new file mode 100644 (file)
index 0000000..35ab59e
--- /dev/null
@@ -0,0 +1,88 @@
+#!@PYTHON@
+
+import __main__
+import optparse
+import gettext
+import os
+import re
+import sys
+
+verbose = 0
+lang = 'site'
+C = lang
+
+def dir_lang (file, lang):
+    path_components = [lang] + file.split ('/')[1:]
+    return os.path.join (*path_components)
+
+##     Translation of GIT Commit: <hash>
+REVISION_RE = re.compile ('.*GIT [Cc]ommittish: ([a-f0-9]+)', re.DOTALL)
+CVS_DIFF = 'git diff %(revision)s HEAD -- %(original)s | cat'
+
+def check_file (original, translated):
+    s = open (translated).read ()
+    m = REVISION_RE.match (s)
+    if not m:
+        raise translated + ': no GIT committish: <hash> found'
+    revision = m.group (1)
+
+    c = CVS_DIFF % vars ()
+    if verbose:
+        sys.stderr.write ('running: ' + c)
+    os.system (c)
+
+def do_file (file_name, langdefs):
+    if verbose:
+        sys.stderr.write ('%s...\n' % file_name)
+    file_lang = file_name.split ('/')[0]
+    if file_lang in langdefs.LANGDICT.keys():
+        check_lang = file_lang
+    else:
+        check_lang = lang
+    if check_lang == C:
+        raise 'cannot determine language for: ' + file_name
+    
+    original = dir_lang (file_name, '')
+    translated = dir_lang (file_name, check_lang)
+    check_file (original, translated)
+
+def usage ():
+    sys.stdout.write (r'''
+Usage:
+check-translation [--language=LANG] [--verbose] BUILDSCRIPT-DIR FILE...
+
+This script is licensed under the GNU GPL.
+''')
+
+def do_options ():
+    global lang, verbose
+
+    p = optparse.OptionParser (usage="check-translation [--language=LANG] [--verbose] FILE...",
+                               description="This script is licensed under the GNU GPL.")
+    p.add_option ("--language",
+                  action='store',
+                  default='site',
+                  dest="language")
+    p.add_option ("--verbose",
+                  action='store_true',
+                  default=False,
+                  dest="verbose",
+                  help="the GIT directory to merge.")
+    
+    (options, files) = p.parse_args ()
+    verbose = options.verbose
+    lang = options.language
+    
+    return (files[0], files[1:])
+
+def main ():
+    import_path, files = do_options ()
+    
+    sys.path.append (import_path)
+    import langdefs
+
+    for i in files:
+        do_file (i, langdefs)
+
+if __name__ == '__main__':
+    main ()
diff --git a/input/regression/markup-note-dot.ly b/input/regression/markup-note-dot.ly
new file mode 100644 (file)
index 0000000..517f541
--- /dev/null
@@ -0,0 +1,20 @@
+
+\header {
+
+  texidoc = " A dotted whole note displayed via the @code{\\note}
+  command must separate the note head and the dot. The dot avoids the upflag."
+
+       }
+\paper {
+  packed = ##T
+}
+
+\version "2.10.10"
+
+
+\relative {
+  c^\markup { \note #"1." #1 }
+  c^\markup { \note #"2." #1 }
+  c^\markup { \note #"8." #1 }
+}
+
index 0ad06cb93145cb0c7e8a60d57d5b4f174ff4b172..6df7de7c6dd33892bb97ffade9991c6b45cf5a2b 100644 (file)
@@ -22,32 +22,24 @@ Override, see scm/midi.scm:
 
 flauti =  \relative c' {
   \set Staff.midiInstrument = #"flute"
-  \set Staff.instrumentName = #"2 Flauti"
-  \set Staff.shortInstrumentName = #"Fl."
 
   c1\f R1*10
 }
 
 oboi =  \relative c' {
   \set Staff.midiInstrument = #"oboe"
-  \set Staff.instrumentName = #"2 Oboi"
-  \set Staff.shortInstrumentName = #"Ob."
 
   R1*1 c1\f R1*9
 }
 
 clarinetti =  \relative c' {
   \set Staff.midiInstrument = #"clarinet"
-  \set Staff.instrumentName = #"Clarinetti"
-  \set Staff.shortInstrumentName = #"Cl"
 
   R1*2 c1\f R1*8
 }
 
 fagotti =  \relative c' {
   \set Staff.midiInstrument = #"bassoon"
-  \set Staff.instrumentName = #"2 Fagotti"
-  \set Staff.shortInstrumentName = #"Fg."
 
   \clef bass
   R1*3 c1\f R1*7
@@ -55,16 +47,12 @@ fagotti =  \relative c' {
 
 corni =  \relative c' {
   \set Staff.midiInstrument = #"french horn"
-  \set Staff.instrumentName = #"Corni"
-  \set Staff.shortInstrumentName = #"Cor"
 
   R1*4 c1\f R1*6
 }
 
 trombe =  \relative c' {
   \set Staff.midiInstrument = #"trumpet"
-  \set Staff.instrumentName = #"Trombe"
-  \set Staff.shortInstrumentName = #"Tp."
 
   \clef bass
   R1*5 c1\f R1*5
@@ -72,32 +60,24 @@ trombe =  \relative c' {
 
 timpani =  \relative c' {
   \set Staff.midiInstrument = #"timpani"
-  \set Staff.instrumentName = #"Timpani"
-  \set Staff.shortInstrumentName = #"Timp."
 
   R1*6 c1\f R1*4
 }
 
 violinoI =  \relative c' {
   \set Staff.midiInstrument = #"violin"
-  \set Staff.instrumentName = #"Violino I "
-  \set Staff.shortInstrumentName = #"Vl. I "
 
   R1*7 c1\f R1*3
 }
 
 violinoII =  \relative c' {
   \set Staff.midiInstrument = #"violin"
-  \set Staff.instrumentName = #"Violino II "
-  \set Staff.shortInstrumentName = #"Vl. II "
   
   R1*8 c1\f R1*2
 }
 
 viola =  \relative c' {
   \set Staff.midiInstrument = #"viola"
-  \set Staff.instrumentName = #"Viola"
-  \set Staff.shortInstrumentName = #"Vla."
 
   \clef alto
   R1*9 c1\f R1*1
@@ -106,14 +86,13 @@ viola =  \relative c' {
 violoncello =  \relative c' {
   \set Staff.midiInstrument = #"cello"
                                %\set Staff.midiInstrument = #"contrabass"
-  \set Staff.instrumentName = #"Violoncello"
-  \set Staff.shortInstrumentName = #"Vc."
   
   \clef bass
   R1*10 c1\f
 }
 
 
+
 \score {
   << 
     \new StaffGroup = "legni" << 
@@ -144,12 +123,6 @@ violoncello =  \relative c' {
     >>
   >>
 
-  \layout {
-    \context {
-      \RemoveEmptyStaffContext
-    }
-  }
-  
   \midi {
     \context {
       \Score
diff --git a/input/regression/spacing-bar-accidental.ly b/input/regression/spacing-bar-accidental.ly
new file mode 100644 (file)
index 0000000..5a34a10
--- /dev/null
@@ -0,0 +1,23 @@
+
+\header {
+  texidoc = "An accidental following a bar gets space so
+ the left edge of the acc is at 0.3 - 0.6 staff space of the bar line"
+}
+
+
+\version "2.11.10"
+\layout{
+  ragged-right = ##t 
+}
+
+
+\relative c'' {
+  \override Score.NonMusicalPaperColumn #'stencil = #ly:paper-column::print
+  \override Score.NonMusicalPaperColumn #'layer = #2
+  
+  \time 1/4
+  \stemUp
+  s4
+  c4 
+  cis4 
+}
diff --git a/input/regression/spacing-bar-arpeggio.ly b/input/regression/spacing-bar-arpeggio.ly
new file mode 100644 (file)
index 0000000..fd84be5
--- /dev/null
@@ -0,0 +1,16 @@
+\header{
+  texidoc = "An arpeggio following a bar gets space"
+
+}
+
+\version "2.10.10"
+
+\layout{ragged-right=##t}
+\new Staff {
+
+  \override Score.NonMusicalPaperColumn #'stencil = #ly:paper-column::print
+  \override Score.NonMusicalPaperColumn #'layer = #1
+  
+  s1
+  <b' c'' c'>1\arpeggio
+}
index d5801605075e946d3f7a1c2253b244c28fd6c96f..3bcba2cacacafcc7d66eea0859d67de8d5864115 100644 (file)
@@ -1,26 +1,27 @@
 
-\version "2.10.0"
 \header {
   texidoc = "Downstem notes following a barline are
 printed with some extra space. This is an optical correction similar
 to juxtaposed stems.
 
-Accidentals after the barline get some space as well.
-"
+The bar upstem should be approx 1.1 staff space, the bar downstem 1.3
+to 1.5 staff space."
 }
 
-\layout { ragged-right = ##t}
 
-\relative c''
-{
-
-  %%\override Staff.StaffSpacing  #'stem-spacing-correction = #10
-  %%\override Staff.NoteSpacing  #'stem-spacing-correction = #10
-
-  \time 1/4 \stemDown c4 \stemUp c4
-  \stemDown c4 \stemUp c4
-  \stemDown f c,4  c'4 cis4 \stemUp c4
+\version "2.11.10"
+\layout{
+  ragged-right = ##t 
 }
 
 
-
+\relative c'' {
+  \override Score.NonMusicalPaperColumn #'stencil = #ly:paper-column::print
+  \override Score.NonMusicalPaperColumn #'layer = #2
+  
+  \time 1/4
+  \stemDown
+  s4
+  e4 
+  e,4 
+}
diff --git a/input/regression/spacing-bar-whole-measure.ly b/input/regression/spacing-bar-whole-measure.ly
new file mode 100644 (file)
index 0000000..e2cb1d9
--- /dev/null
@@ -0,0 +1,21 @@
+\header{
+  texidoc = "Notes that fill a whole measure are preceded by extra space. "
+  
+  }
+
+\version "2.11.10"
+
+\layout{
+  ragged-right=##t
+}
+
+\new Staff \relative {
+  \override Score.NonMusicalPaperColumn #'stencil = #ly:paper-column::print
+  \override Score.NonMusicalPaperColumn #'layer = #1
+  
+  \time 4/4
+  s1
+  c2. c4
+  \time 3/4
+  c2.
+}
index cbc22cfc05e8e4d49ee795f88ceae68b61c6704d..1a03c6b32402b6adcdcf51c04b6094f5c950d529 100644 (file)
@@ -329,7 +329,7 @@ Constrained_breaking::initialize ()
   Interval other_lines = line_dimensions_int (pscore_->layout (), 1);
   /* do all the rod/spring problems */
   breaks_ = pscore_->find_break_indices ();
-  all_ = pscore_->root_system ()->columns ();
+  all_ = pscore_->root_system ()->used_columns ();
   lines_.resize (breaks_.size (), breaks_.size (), Line_details ());
   vector<Real> forces = get_line_forces (all_,
                                         other_lines.length (),
index faebb55489e7d2eb0ba934c84d7c64ca3d7e41db..1b5ee32db09e49170f533713927f47bb1ffd3aee 100644 (file)
@@ -12,6 +12,7 @@
 
 #include "lily-proto.hh"
 #include "rational.hh"
+#include "std-vector.hh"
 
 struct Spacing_options
 {
@@ -22,7 +23,8 @@ struct Spacing_options
   Rational global_shortest_;
   Real increment_;
   Real shortest_duration_space_;
-
+  vector<Grob*> columns_;
+  
   Spacing_options();
   void init_from_grob (Grob *me);
   Real get_duration_space (Rational d, bool *) const;
index 6a27eb158b7ae57e4123c27b3cdbc92d1ba185c6..6723dfefbfed25bb6c9b6790cb1f0091966c5992 100644 (file)
@@ -26,14 +26,14 @@ private:
   static Real get_duration_space (Moment dur, Spacing_options const *, bool *);
   static Rational effective_shortest_duration (Grob *me, vector<Grob*> const &all);
   static void breakable_column_spacing (Grob *, Item *l, Item *r, Spacing_options const *);
-  static void prune_loose_columns (Grob *, vector<Grob*> *cols, Spacing_options const *);
+  static void prune_loose_columns (Grob *, Spacing_options  *);
   static void set_explicit_neighbor_columns (vector<Grob*> const &cols);
   static void set_implicit_neighbor_columns (vector<Grob*> const &cols);
-  static void generate_springs (Grob *me, vector<Grob*> const &cols, Spacing_options const *);
+  static void generate_springs (Grob *me, Spacing_options const *);
   static void musical_column_spacing (Grob *, Item *, Item *, Spacing_options const *);
-  static vector<Grob*> get_columns (Spanner *me);
-  
+  static bool fills_measure (Grob *, Item *, Item *);
 public:
+  static vector<Grob*> get_columns (Grob *me);
   static Real note_spacing (Grob *, Grob *, Grob *, Spacing_options const *, bool *);
   static void standard_breakable_column_spacing (Grob *me, Item *l, Item *r,
                                                 Real *fixed, Real *space,
index af6d394ead586b0d438f8dabb581f11ec81788b9..75cb644eed5a7992f27dea4e9c8eb4720fe8a9fb 100644 (file)
@@ -15,8 +15,8 @@
 class Staff_spacing
 {
 public:
-  static void next_notes_correction (Grob *, Grob *, Real *, Real *);
-  static void next_note_correction (Grob *, Grob *, Interval, Real*, Real *);
+  static void next_notes_correction (Grob *, Grob *, Real, Real, Real *, Real *);
+  static void next_note_correction (Grob *, Grob *, Interval, Real, Real, Real*, Real *, int *);
   DECLARE_GROB_INTERFACE();
   static void get_spacing_params (Grob *, Real *, Real *);
 
index 807ea6d110d5d3594720f0e239965b534995ddd1..a0256be39faf266c57fed33ed67ad7bce9bec85d 100644 (file)
@@ -73,6 +73,7 @@ public:
                    Real minimum);
   void add_stencil (Stencil const &m);
   void translate (Offset);
+  Stencil translated (Offset) const;
   void rotate (Real, Offset);
   void align_to (Axis a, Real x);
   void translate_axis (Real, Axis);
index 44bb21d516879af9b452cfb689cb1df605d464df..597b3204fc7c447b4699d39c563c9ece0270a42c 100644 (file)
@@ -44,8 +44,8 @@ public:
   DECLARE_GROB_INTERFACE();
 
   vector<Item*> broken_col_range (Item const *, Item const *) const;
-  vector<Grob*> columns () const;
-  Grob *column (int i) const;
+  vector<Grob*> used_columns () const;
+  Grob *column (vsize i) const;
 
   void add_column (Paper_column *);
   void typeset_grob (Grob *);
index b43c302367053bf5418ea7f77db00530f2cf2fcc..76cecc03c39fce34f590b036f21b3cf5d409efce 100644 (file)
@@ -255,7 +255,7 @@ Page_breaking::find_chunks_and_breaks (Break_predicate is_break)
     {
       if (all_[i].pscore_)
        {
-         vector<Grob*> cols = all_[i].pscore_->root_system ()->columns ();
+         vector<Grob*> cols = all_[i].pscore_->root_system ()->used_columns ();
          vector<vsize> line_breaker_columns;
          line_breaker_columns.push_back (0);
 
index 4f97c81afb7755c0bd3a71329125dc89368105c0..e42a3417e22001df09314c455a52695f7a877bfb 100644 (file)
@@ -22,6 +22,7 @@
 #include "system.hh"
 #include "spring.hh"
 #include "lookup.hh"
+#include "string-convert.hh"
 
 Grob *
 Paper_column::clone (int count) const
@@ -165,20 +166,18 @@ Paper_column::print (SCM p)
 
   Stencil l = Lookup::filled_box (Box (Interval (-0.01, 0.01),
                                       Interval (-2, -1)));
-
-
   
-  System * my_system = me->get_system ();
-  int drank =
-    me->get_rank ()
-    - my_system->get_bound (LEFT)->get_column ()->get_rank ();
+  SCM small_letters = scm_cons (scm_acons (ly_symbol2scm ("font-size"),
+                                          scm_from_int (-6), SCM_EOL),
+                               properties);
+  
   int j = 0;
   for (SCM s = me->get_object ("ideal-distances");
        scm_is_pair (s); s = scm_cdr (s))
     {
       Spring_smob *sp = unsmob_spring (scm_car (s));
       
-      Real y = -j * 0.1 -3;
+      Real y = -j * 1 -3;
       vector<Offset> pts;
       pts.push_back (Offset (0, y));
 
@@ -187,17 +186,20 @@ Paper_column::print (SCM p)
       
       Stencil id_stencil = Lookup::points_to_line_stencil (0.1, pts);
       Stencil head (musfont->find_by_name ("arrowheads.open.01"));
-      head.translate (p2);
-      id_stencil.add_stencil (head);
+
+      SCM distance_stc = Text_interface::interpret_markup (me->layout ()->self_scm (),
+                                                          small_letters,
+                                                          ly_string2scm (String_convert::form_string ("%5.2lf", sp->distance_)));
+      
+      id_stencil.add_stencil (unsmob_stencil (distance_stc)->translated (Offset (sp->distance_/3, y+1)));
+      id_stencil.add_stencil (head.translated (p2));
       id_stencil = id_stencil.in_color (0,0,1);
-      l.add_stencil (id_stencil) ;
-     
+      l.add_stencil (id_stencil);
     }
    
   for (SCM s = me->get_object ("minimum-distances");
        scm_is_pair (s); s = scm_cdr (s))
     {
-      Grob *other  = unsmob_grob (scm_caar (s));
       Real dist = scm_to_double (scm_cdar (s));
 
       Real y = -j * 0.1 -3.5;
@@ -211,7 +213,15 @@ Paper_column::print (SCM p)
       Stencil head (musfont->find_by_name ("arrowheads.open.0M1"));
       head.translate_axis (y, Y_AXIS);
       id_stencil.add_stencil (head);
-      
+
+      SCM distance_stc = Text_interface::interpret_markup (me->layout ()->self_scm (),
+                                                          small_letters,
+                                                          ly_string2scm (String_convert::form_string ("%5.2lf",
+                                                                                                      dist)));
+          
+      id_stencil.add_stencil (unsmob_stencil (distance_stc)->translated (Offset (dist/3, y-1)));
+       
       id_stencil = id_stencil.in_color (1,0,0);
       l.add_stencil (id_stencil);
     }
index 047e880f3c1fc085ce2899f1efd65c03fc842b51..f299e56e8e74f04241ea7ae3d686706e29224e7a 100644 (file)
@@ -62,7 +62,7 @@ Paper_score::typeset_system (System *system)
 vector<vsize>
 Paper_score::find_break_indices () const
 {
-  vector<Grob*> all = root_system ()->columns ();
+  vector<Grob*> all = root_system ()->used_columns ();
   vector<vsize> retval;
 
   for (vsize i = 0; i < all.size (); i++)
@@ -125,7 +125,7 @@ Paper_score::process ()
      down the road.
 
      doubly, also done in Score_engraver */
-  vector<Grob*> pc (system_->columns ());
+  vector<Grob*> pc (system_->used_columns ());
   pc[0]->set_property ("line-break-permission", ly_symbol2scm ("allow"));
   pc.back ()->set_property ("line-break-permission", ly_symbol2scm ("allow"));
 
index 052e0d766bf441c64d1d7c71ec0c539be3864c9c..11e9caa18d5ced03ef77fc2b2fa335c839236cda 100644 (file)
@@ -194,9 +194,9 @@ Spacing_spanner::set_distances_for_loose_col (Grob *me, Grob *c,
   between.
 */
 void
-Spacing_spanner::prune_loose_columns (Grob *me, vector<Grob*> *cols,
-                                     Spacing_options const *options)
-{
+Spacing_spanner::prune_loose_columns (Grob *me, Spacing_options *options)
+ {
+  vector<Grob*> *cols = &options->columns_;  
   vector<Grob*> newcols;
 
   for (vsize i = 0; i < cols->size (); i++)
index c0e11fa62cf7a074a1e059d99ac1e0cd2d0a55bf..9a73ad6d7f70abd51e00cd5e2031a6239c52d3c7 100644 (file)
@@ -8,9 +8,11 @@
 */
 
 #include "spacing-options.hh"
+#include "spacing-spanner.hh"
 #include "grob.hh"
 #include "misc.hh"
 #include "moment.hh"
+#include "spanner.hh"
 
 void
 Spacing_options::init_from_grob (Grob *me)
@@ -34,6 +36,7 @@ Spacing_options::init_from_grob (Grob *me)
   else
     global_shortest_ = shortest_dur.grace_part_;
 
+  columns_ = Spacing_spanner::get_columns (me);        // ugh.
 }
 
 Spacing_options::Spacing_options ()
index a196c3990f10b141ee53cea5463e0b98687c9214..fb91f0b0102b4c7e0432e0ffde48cb57e62e7eb4 100644 (file)
@@ -29,14 +29,15 @@ using namespace std;
 #include "warn.hh"
 
 vector<Grob*>
-Spacing_spanner::get_columns (Spanner *me)
+Spacing_spanner::get_columns (Grob *me_grob)
 {
-  vector<Grob*> all (get_root_system (me)->columns ());
+  Spanner *me = dynamic_cast<Spanner*> (me_grob);
+  vector<Grob*> all (get_root_system (me)->used_columns ());
   vsize start = binary_search (all, (Grob*)me->get_bound (LEFT),
                               &Paper_column::less_than);
   vsize end = binary_search (all, (Grob*) me->get_bound (RIGHT),
-                            &Paper_column::less_than);
-
+                            &Paper_column::less_than);  
+  
   all = vector<Grob*>::vector<Grob*> (all.begin () + start,
                                      all.begin () + end + 1);
   return all;
@@ -51,15 +52,14 @@ Spacing_spanner::set_springs (SCM smob)
   /*
     can't use get_system() ? --hwn.
   */
-  vector<Grob*> all (get_columns (me));
-  set_explicit_neighbor_columns (all);
-
   Spacing_options options;
   options.init_from_grob (me);
 
-  prune_loose_columns (me, &all, &options);
-  set_implicit_neighbor_columns (all);
-  generate_springs (me, all, &options);
+  set_explicit_neighbor_columns (options.columns_);
+
+  prune_loose_columns (me, &options);
+  set_implicit_neighbor_columns (options.columns_);
+  generate_springs (me, &options);
 
   return SCM_UNSPECIFIED;
 }
@@ -216,14 +216,13 @@ Spacing_spanner::generate_pair_spacing (Grob *me,
 
 void
 Spacing_spanner::generate_springs (Grob *me,
-                                  vector<Grob*> const &cols,
                                   Spacing_options const *options)
 {
   Paper_column *prev = 0;
-  for (vsize i = 0; i < cols.size (); i++)
+  for (vsize i = 0; i < options->columns_.size (); i++)
     {
-      Paper_column *col = dynamic_cast<Paper_column *> (cols[i]);
-      Paper_column *next = (i < cols.size()-1) ? dynamic_cast<Paper_column *> (cols[i+1]) : 0;
+      Paper_column *col = dynamic_cast<Paper_column *> (options->columns_[i]);
+      Paper_column *next = (i < options->columns_.size()-1) ? dynamic_cast<Paper_column *> (options->columns_[i+1]) : 0;
       
       if (i > 0)
        generate_pair_spacing (me, prev, col, next, options);
@@ -394,6 +393,27 @@ Spacing_spanner::musical_column_spacing (Grob *me,
   Spaceable_grob::add_spring (left_col, right_col, distance, inverse_strength);
 }
 
+bool
+Spacing_spanner::fills_measure (Grob *me, Item *l, Item *r)
+{
+  return false;
+  System *sys = get_root_system (me);
+  Grob *next = sys->column (r->get_column()->get_rank () + 1);
+  if (!next)
+    return false;
+
+  Moment dt =
+    Paper_column::when_mom (next) - Paper_column::when_mom (r);
+  
+  Moment *len = unsmob_moment (l->get_property ("measure-length"));
+  if (!len)
+    return false;
+  
+  if (dt.main_part_ == len->main_part_)
+    return true;
+
+  return false;
+}
 /*
   Read hints from L and generate springs.
 */
@@ -421,13 +441,12 @@ Spacing_spanner::breakable_column_spacing (Grob *me, Item *l, Item *r,
          if (!spacing_grob || !Staff_spacing::has_interface (spacing_grob))
            continue;
 
-         Real space;
-         Real fixed_space;
+         Real space = 0.;
+         Real fixed_space = 0.;
 
          /*
            column for the left one settings should be ok due automatic
            pointer munging.
-
          */
          assert (spacing_grob->get_column () == l);
 
@@ -474,6 +493,11 @@ Spacing_spanner::breakable_column_spacing (Grob *me, Item *l, Item *r,
       
     }
 
+  if (fills_measure (me, l, r))
+    {
+      compound_space += 1.0; 
+    }
+  
   if (options->stretch_uniformly_ && l->break_status_dir () != RIGHT)
     compound_fixed = 0.0;
 
index 0f1ec15de111210756d5ff0a20d6ecaa484c895d..c7023db3aa436bd59a234758620e0c7670438d30 100644 (file)
@@ -30,65 +30,90 @@ void
 Staff_spacing::next_note_correction (Grob *me,
                                     Grob *g,
                                     Interval bar_size,
+                                    Real current_space, Real current_fixed,
                                     Real *space,
-                                    Real *fix)
+                                    Real *fix,
+                                    int *wish_count)
 {
-  (void)space;
-  
+  (void) current_fixed; 
   if (!g || !Note_column::has_interface (g))
     return ;
 
   Item *col = dynamic_cast<Item *> (g)->get_column ();
-  Real max_corr = max (0., (- g->extent (col, X_AXIS)[LEFT]));
+  Real left_stickout_correction = max (0., (- g->extent (col, X_AXIS)[LEFT]));
 
   /*
     Duh. If this gets out of hand, we should invent something more generic.
   */
-  if (Grob *a = Note_column::accidentals (g))
+  Grob *accs = Note_column::accidentals (g);
+  if (accs)
     {
       Interval v;
-      if (Accidental_placement::has_interface (a))
-       v = Accidental_placement::get_relevant_accidental_extent (a, col, me);
+      if (Accidental_placement::has_interface (accs))
+       v = Accidental_placement::get_relevant_accidental_extent (accs, col, me);
       else
-       v = a->extent (col, X_AXIS);
-
-      max_corr = max (max_corr, (- v[LEFT]));
+       v = accs->extent (col, X_AXIS);
+      
+      left_stickout_correction = max (left_stickout_correction, (- v[LEFT]));
     }
-  if (Grob *a = unsmob_grob (g->get_object ("arpeggio")))
-    max_corr = max (max_corr, - a->extent (col, X_AXIS)[LEFT]);
+  Grob *arpeggio = unsmob_grob (g->get_object ("arpeggio"));
+  if (arpeggio)
+    left_stickout_correction = max (left_stickout_correction, - arpeggio->extent (col, X_AXIS)[LEFT]);
 
+  
   /*
     Let's decrease the space a little if the problem is not located
     after a barline.
   */
   if (bar_size.is_empty ())
-    max_corr *= 0.75;
-
-  if (!bar_size.is_empty ())
-    if (Grob *stem = Note_column::get_stem (g))
-      {
-       Direction d = get_grob_direction (stem);
-       if (d == DOWN)
-         {
-           Real stem_start = Stem::head_positions (stem) [DOWN];
-           Real stem_end = Stem::stem_end_position (stem);
-           Interval stem_posns (min (stem_start, stem_end),
-                                max (stem_end, stem_start));
-
-           stem_posns.intersect (bar_size);
-
-           Real corr = min (abs (stem_posns.length () / 7.0), 1.0);
-           corr *= robust_scm2double (me->get_property ("stem-spacing-correction"), 1);
-
-           if (d != DOWN)
-             corr = 0.0;
-           max_corr = max (max_corr, corr);
-         }
-      }
-
-  *fix += max_corr;
-}
+    left_stickout_correction *= 0.75;
+
+  /*
+    We want 0.3 ss before the sticking-out object.
+    
+    current_fixed/2 is our guess at (right side of left object + 0.3)
+   */
+  left_stickout_correction += current_fixed/2 - current_space;
+  left_stickout_correction = max (left_stickout_correction, 0.0);
+
+  
+  Real optical_corr = 0.0;
+  Grob *stem = Note_column::get_stem (g);
+  if (!bar_size.is_empty ()
+      && !arpeggio
+      && !accs
+      && stem)
+    {
+      Direction d = get_grob_direction (stem);
+      if (Stem::is_normal_stem (stem) && d == DOWN)
+       {
+         Real stem_start = Stem::head_positions (stem) [DOWN];
+         Real stem_end = Stem::stem_end_position (stem);
+         Interval stem_posns (min (stem_start, stem_end),
+                              max (stem_end, stem_start));
+
+         stem_posns.intersect (bar_size);
+
+         optical_corr = min (abs (stem_posns.length () / 7.0), 1.0);
+         optical_corr *= robust_scm2double (me->get_property ("stem-spacing-correction"), 1);
+       }
+    }
+
 
+  Real correction = optical_corr + left_stickout_correction;
+  if (correction)
+    {
+      wish_count ++; 
+
+      /*
+       This minute adjustments don't make sense for widely spaced scores.
+       Hence, we need to keep the stretchable (that is, space - fix)
+       distance equal.
+      */
+      *space += correction;
+      *fix += correction;
+    }
+}
 /*
   Y-positions that are covered by BAR_GROB, in the case that it is a
   barline.  */
@@ -121,8 +146,10 @@ Staff_spacing::bar_y_positions (Grob *bar_grob)
   pointers to the separation-items, not the note-columns or
   note-spacings.
 */
+
 void
 Staff_spacing::next_notes_correction (Grob *me, Grob *last_grob,
+                                     Real current_space, Real current_fixed,
                                      Real *compound_space, Real *compound_fixed
                                      )
 {
@@ -133,22 +160,23 @@ Staff_spacing::next_notes_correction (Grob *me, Grob *last_grob,
   *compound_fixed = 0.0;
   *compound_space = 0.0;
   int wish_count = 0;
-  
+
   for (vsize i = right_items.size (); i--;)
     {
       Grob *g = right_items[i];
-
-
-      if (Note_column::has_interface (g))
+      if (Note_column::has_interface (right_items[i]))
        {
+         Grob *g = right_items[i];
+
          Real space = 0.0;
          Real fixed = 0.0;
       
-         next_note_correction (me, g, bar_size, &space, &fixed);
-
+         next_note_correction (me, g, bar_size,
+                               current_space, current_fixed,
+                               &space, &fixed, &wish_count);
+      
          *compound_space += space;
          *compound_fixed += fixed; 
-         wish_count ++;
        }
       else
        {
@@ -157,13 +185,16 @@ Staff_spacing::next_notes_correction (Grob *me, Grob *last_grob,
            {
              Real space = 0.0;
              Real fixed = 0.0;
-             next_note_correction (me, elts[j], bar_size, &space, &fixed);
+             next_note_correction (me, elts[j], bar_size,
+                                   current_space, current_fixed,
+                                   &space, &fixed,
+                                   &wish_count);
              *compound_fixed += fixed;
              *compound_space += space;
-             wish_count ++;
            }
        }
     }
+  
   if (wish_count > 1)
     {
       *compound_space /= wish_count;
@@ -260,8 +291,11 @@ Staff_spacing::get_spacing_params (Grob *me, Real *space, Real *fixed)
       *fixed = *space;
     }
 
-  Real correction_fixed, correction_space;
-  next_notes_correction (me, last_grob, &correction_space, &correction_fixed );
+  Real correction_fixed = 0.0;
+  Real correction_space = 0.0;
+  next_notes_correction (me, last_grob,
+                        *space, *fixed,
+                        &correction_space, &correction_fixed );
   *space += correction_space;
   *fixed += correction_fixed;
 }
index 329c5cae61d2d85b87a41273ae9564bc6b486749..009ce6b3f1286216f5d2928e18e5eb977e1a9c23 100644 (file)
@@ -237,3 +237,12 @@ Stencil::in_color (Real r, Real g, Real b) const
                                   expr ()));
   return new_stencil;
 }
+
+/* convenience */
+Stencil
+Stencil::translated (Offset z) const
+{
+  Stencil s (*this);
+  s.translate (z);
+  return s;
+}
index 5070f9426cd92506b77d97e3a9f108200f55e1ff..12ceddd1f53857d0e421c9eefdbbf294f87fa480 100644 (file)
@@ -467,7 +467,7 @@ System::broken_col_range (Item const *left, Item const *right) const
 /** Return all columns, but filter out any unused columns , since they might
     disrupt the spacing problem. */
 vector<Grob*>
-System::columns () const
+System::used_columns () const
 {
   extract_grob_set (this, "columns", ro_columns);
 
@@ -490,9 +490,12 @@ System::columns () const
 }
 
 Grob*
-System::column (int which) const
+System::column (vsize which) const
 {
   extract_grob_set (this, "columns", columns);
+  if (which >= columns.size ())
+    return 0;
+  
   return columns[which];
 }
 
index f3ef51bf818c16be7d9b95acee8915f76a918088..3163b846708b0121869e6bd1ceba67bead45461c 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -1,64 +1,67 @@
+# translation of es.po to Spanish
 # Spanish translation of GNU LilyPond - http://lilypond.org
-# Copyright (C) 2002 Free Software Foundation, Inc.
-# Quique <quique@sindominio.net>, 2002.
+# Copyright (C) 2002, 2007 Free Software Foundation, Inc.
 #
+# Quique <quique@sindominio.net>, 2002.
+# Daniel Tonda Castillo <daniel.tonda@gmail.com>, 2007.
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 1.4.13\n"
+"Project-Id-Version: lilypond 2.11.10\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2006-12-24 10:40+0100\n"
-"PO-Revision-Date: 2006-12-23 16:15+0100\n"
-"Last-Translator: Quique <quique@sindominio.net>\n"
+"PO-Revision-Date: 2007-01-07 02:53-0600\n"
+"Last-Translator: Daniel Tonda Castillo <daniel.tonda@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #: convertrules.py:12
 #, python-format
 msgid "Not smart enough to convert %s"
-msgstr ""
+msgstr "No soy capaz de convertir: %s"
 
 #: convertrules.py:13
 msgid "Please refer to the manual for details, and update manually."
-msgstr ""
+msgstr "Por favor dirígase al manual para más detalles y actualice manualmente."
 
 #: convertrules.py:14
 #, python-format
 msgid "%s has been replaced by %s"
-msgstr ""
+msgstr "%s se reemplazado por %s"
 
 #: convertrules.py:2398
 msgid "LilyPond source must be UTF-8"
-msgstr ""
+msgstr "La fuente LilyPond debe ser UTF-8"
 
 #: convertrules.py:2401
 msgid "Try the texstrings backend"
-msgstr ""
+msgstr "Intente el procesador texstrings"
 
 #: convertrules.py:2404
 #, python-format
 msgid "Do something like: %s"
-msgstr ""
+msgstr "Haga algo cómo: %s"
 
 #: convertrules.py:2407
 msgid "Or save as UTF-8 in your editor"
-msgstr ""
+msgstr "O guárdelo como UTF-8 en su editor."
 
 #: fontextract.py:26
-#, fuzzy, python-format
+#, python-format
 msgid "Scanning %s"
-msgstr "advertencia: "
+msgstr "Analizando %s"
 
 #: fontextract.py:71
 #, python-format
 msgid "Extracted %s"
-msgstr ""
+msgstr "Se ha extraído: %s"
 
 #: fontextract.py:86
-#, fuzzy, python-format
+#, python-format
 msgid "Writing fonts to %s"
-msgstr "no se puede crear el directorio: `%s'"
+msgstr "Escribiendo fuentes a %s"
 
 #: lilylib.py:85 lilylib.py:136
 #, python-format
@@ -71,14 +74,14 @@ msgid "Running %s..."
 msgstr "Ejecutando %s..."
 
 #: lilylib.py:203
-#, fuzzy, python-format
+#, python-format
 msgid "Usage: %s"
-msgstr "advertencia: "
+msgstr "Uso: %s"
 
 #: abc2ly.py:1349 convert-ly.py:80 lilypond-book.py:125 midi2ly.py:869
-#, fuzzy, python-format
+#, python-format
 msgid "%s [OPTION]... FILE"
-msgstr "Sintaxis: %s [OPTIONS]... FICHERO"
+msgstr "Sintaxis: %s [OPCION]... ARCHIVO"
 
 #: abc2ly.py:1351
 #, python-format
@@ -86,6 +89,8 @@ msgid ""
 "abc2ly converts ABC music files (see\n"
 "%s) to LilyPond input."
 msgstr ""
+"abc2ly convierte archivos de música ABC (vea\n"
+"%s) a código LilyPond."
 
 #: abc2ly.py:1355 etf2ly.py:1200 midi2ly.py:885
 msgid "write output to FILE"
@@ -93,84 +98,85 @@ msgstr "escribir la salida en el FICHERO"
 
 #: abc2ly.py:1357
 msgid "be strict about succes"
-msgstr ""
+msgstr "Sea estricto sobre el éxito"
 
 #: abc2ly.py:1359
 msgid "preserve ABC's notion of beams"
-msgstr ""
+msgstr "preservar la idea de ABC sobre las barras"
 
 #: abc2ly.py:1361 convert-ly.py:112 etf2ly.py:1208 lilypond-book.py:168
 #: midi2ly.py:911 musicxml2ly.py:505
-#, fuzzy
 msgid "Report bugs via"
-msgstr "Informar de gazapos a %s."
+msgstr "Reporte errores por medio de"
 
 #: convert-ly.py:41
 msgid ""
 "Update LilyPond input to newer version.  By default, update from the\n"
 "version taken from the \\version command, to the current LilyPond version."
 msgstr ""
+"Actualice el código LilyPond a una versión más reciente. Por defecto, actualice desde la \n"
+"versión tomada del comando \\version, a la versión actual de LilyPond."
 
 #: convert-ly.py:43 lilypond-book.py:73
 msgid "Examples:"
-msgstr ""
+msgstr "Ejemplos:"
 
 #: convert-ly.py:56 lilypond-book.py:98 warn.cc:48 input.cc:90
-#, fuzzy, c-format, python-format
+#, c-format, python-format
 msgid "warning: %s"
-msgstr "advertencia: "
+msgstr "advertencia: %s"
 
 #: convert-ly.py:59 lilypond-book.py:101 warn.cc:54 input.cc:96 input.cc:104
-#, fuzzy, c-format, python-format
+#, c-format, python-format
 msgid "error: %s"
-msgstr "error: "
+msgstr "error: %s"
 
 #: convert-ly.py:75 etf2ly.py:1190 lilypond-book.py:121 midi2ly.py:98
 msgid "Distributed under terms of the GNU General Public License."
-msgstr ""
+msgstr "Distribuido bajo los términos de la GNU General Public License."
 
 #: convert-ly.py:76 etf2ly.py:1191 lilypond-book.py:122 midi2ly.py:99
 msgid "It comes with NO WARRANTY."
-msgstr ""
+msgstr "No se entrega con GARANTIA."
 
 #: convert-ly.py:86 convert-ly.py:106
 msgid "VERSION"
-msgstr ""
+msgstr "VERSIÓN"
 
 #: convert-ly.py:88
 msgid "start from VERSION [default: \\version found in file]"
-msgstr ""
+msgstr "iniciando desde VERSIÓN [por defecto \\version encontrada en archivo]"
 
 #: convert-ly.py:91
 msgid "edit in place"
-msgstr ""
+msgstr "editar en sitio"
 
 #: convert-ly.py:94
 msgid "do not add \\version command if missing"
-msgstr ""
+msgstr "no añadir comando \\version si es que falta"
 
 #: convert-ly.py:100
 msgid "show rules [default: --from=0, --to=@TOPLEVEL_VERSION@]"
-msgstr ""
+msgstr "mostrar reglas [por defecto: --from=0, --to=@TOPLEVEL_VERSION@]"
 
 #: convert-ly.py:105
 msgid "convert to VERSION [default: @TOPLEVEL_VERSION@]"
-msgstr ""
+msgstr "convertir a VERSION [default: @TOPLEVEL_VERSION@]"
 
 #: convert-ly.py:153
 msgid "Applying conversion: "
-msgstr ""
+msgstr "Aplicando conversión:"
 
 #: convert-ly.py:166
 msgid "Error while converting"
-msgstr ""
+msgstr "Error al hacer la conversión"
 
 #: convert-ly.py:168
 msgid "Stopping at last succesful rule"
-msgstr ""
+msgstr "Deteniéndose en la última regla exitosa"
 
 #: convert-ly.py:190
-#, fuzzy, python-format
+#, python-format
 msgid "Processing `%s'... "
 msgstr "Procesando `%s'..."
 
@@ -180,21 +186,21 @@ msgid "cannot open file: `%s'"
 msgstr "no se puede abrir el fichero: `%s'"
 
 #: convert-ly.py:284
-#, fuzzy, python-format
+#, python-format
 msgid "cannot determine version for `%s'.  Skipping"
-msgstr "no puedo encontrar la fuente por defecto: `%s'"
+msgstr "no se puede determinar la versión para `%s'.  Saltando"
 
 #: etf2ly.py:1196
-#, fuzzy, python-format
+#, python-format
 msgid "%s [OPTION]... ETF-FILE"
-msgstr "Sintaxis: %s [OPTIONS]... FICHERO"
+msgstr "%s [OPTIONS]... ARCHIVO ETF"
 
 #: etf2ly.py:1198
 msgid ""
 "Enigma Transport Format is a format used by Coda Music Technology's\n"
 "Finale product.  etf2ly converts a subset of ETF to a ready-to-use LilyPond "
 "file."
-msgstr ""
+msgstr "Enigma Transport Format es un formato usado por el producto Finale de Coda Music.  etf2ly convierte un subconjunto de ETF a un código LilyPond listo para usarse."
 
 #: etf2ly.py:1201 midi2ly.py:886 musicxml2ly.py:498 main.cc:172 main.cc:178
 msgid "FILE"
@@ -202,21 +208,20 @@ msgstr "FICHERO"
 
 #: etf2ly.py:1203 lilypond-book.py:165 midi2ly.py:899 main.cc:185
 msgid "show warranty and copyright"
-msgstr "mostrar los avisos de garantía y de copyright"
+msgstr "mostrar los avisos de garantía y de copyright"
 
 #: lilypond-book.py:71
-msgid ""
-"Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
-msgstr ""
+msgid "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
+msgstr "Procesar fragmentos LilyPond en híbridos de HTML, LaTeX, texinfo o documentos DocBook."
 
 #: lilypond-book.py:78
 msgid "BOOK"
-msgstr ""
+msgstr "BOOK"
 
 #: lilypond-book.py:87
-#, fuzzy, python-format
+#, python-format
 msgid "Exiting (%d)..."
-msgstr "Saliendo..."
+msgstr "Saliendo (%d)..."
 
 #: lilypond-book.py:119
 #, python-format
@@ -224,51 +229,48 @@ msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s "
 
 #: lilypond-book.py:129
-#, fuzzy
 msgid "FILTER"
-msgstr "FICHERO"
+msgstr "FILTRO"
 
 #: lilypond-book.py:132
 msgid "pipe snippets through FILTER [convert-ly -n -]"
-msgstr ""
+msgstr "redirigir fragmentos a través del FILTRO [convert-ly -n -]"
 
 #: lilypond-book.py:135
-#, fuzzy
-msgid ""
-"use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
-msgstr "utilizar el formato de salida EXT (scm, ps, tex o as) "
+msgid "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
+msgstr "use formato de salida FORMATO (texi [default], texi-html, latex, html, docbook)"
 
 #: lilypond-book.py:138
-#, fuzzy
 msgid "add DIR to include path"
-msgstr "añadir DIR a la ruta de búsqueda"
+msgstr "añadir DIR a la ruta de búsqueda"
 
 #: lilypond-book.py:139 lilypond-book.py:144 main.cc:171
 msgid "DIR"
 msgstr "DIR"
 
 #: lilypond-book.py:143
-#, fuzzy
 msgid "write output to DIR"
-msgstr "escribir la salida en el FICHERO"
+msgstr "escribir la salida en el DIRECTORIO"
 
 #: lilypond-book.py:147
 msgid "COMMAND"
-msgstr ""
+msgstr "COMANDO"
 
 #: lilypond-book.py:148
 msgid "process ly_files using COMMAND FILE..."
-msgstr ""
+msgstr "procesar archivos_ly usando COMMANDO ARCHIVO"
 
 #: lilypond-book.py:154
 msgid "Create PDF files for use with PDFTeX"
-msgstr ""
+msgstr "Crear archivos PDF para usarse con PDFTeX"
 
 #: lilypond-book.py:157
 msgid ""
 "extract all PostScript fonts into INPUT.psfonts for LaTeX\n"
 "must use this with dvips -h INPUT.psfonts"
 msgstr ""
+"extraer todas las fuentes POSTCRIPT en INPUT.psfonts, para  LaTeX\n"
+"debe usar esto para dvips -h INPUT.psfonts "
 
 #: lilypond-book.py:160 midi2ly.py:896 musicxml2ly.py:489 main.cc:184
 msgid "be verbose"
@@ -277,75 +279,72 @@ msgstr "ser prolijo"
 #: lilypond-book.py:773
 #, python-format
 msgid "file not found: %s"
-msgstr ""
+msgstr "archivo no encontrado: %s"
 
 #: lilypond-book.py:1004
 #, python-format
 msgid "deprecated ly-option used: %s=%s"
-msgstr ""
+msgstr "opción ly en desuso: %s=%s"
 
 #: lilypond-book.py:1007
 #, python-format
 msgid "compatibility mode translation: %s=%s"
-msgstr ""
+msgstr "modo de traducción de compatibilidad: %s=%s"
 
 #: lilypond-book.py:1011
 #, python-format
 msgid "deprecated ly-option used: %s"
-msgstr ""
+msgstr "opción ly en desuso: %s"
 
 #: lilypond-book.py:1014
 #, python-format
 msgid "compatibility mode translation: %s"
-msgstr ""
+msgstr "modo de traducción de compatibilidad: %s"
 
 #: lilypond-book.py:1033
 #, python-format
 msgid "ignoring unknown ly option: %s"
-msgstr ""
+msgstr "ignorando opicón ly desconocida: %s"
 
 #: lilypond-book.py:1388
-#, fuzzy, python-format
+#, python-format
 msgid "Opening filter `%s'"
-msgstr "Limpiando `%s'..."
+msgstr "Abriendo filtro `%s'..."
 
 #: lilypond-book.py:1405
 #, python-format
 msgid "`%s' failed (%d)"
-msgstr ""
+msgstr "%s falló (%d)"
 
 #: lilypond-book.py:1406
 msgid "The error log is as follows:"
-msgstr ""
+msgstr "La bitácora de error a continuación:"
 
 #: lilypond-book.py:1476
 msgid "cannot find \\begin{document} in LaTeX document"
-msgstr ""
+msgstr "no se puede encontrar \\begin{document} en el documento LaTeX"
 
 #: lilypond-book.py:1586
-#, fuzzy
 msgid "Writing snippets..."
-msgstr "Escribiendo `%s'..."
+msgstr "Escribiendo fragmentos..."
 
 #: lilypond-book.py:1591
-#, fuzzy
 msgid "Processing..."
 msgstr "Procesando..."
 
 #: lilypond-book.py:1595
-#, fuzzy
 msgid "All snippets are up to date..."
-msgstr "calma, %s está al día"
+msgstr "Todos los fragmentos están actualizados"
 
 #: lilypond-book.py:1605
-#, fuzzy, python-format
+#, python-format
 msgid "cannot determine format for: %s"
-msgstr "no puedo encontrar la fuente por defecto: `%s'"
+msgstr "no puedo determinar el formato para: %s"
 
 #: lilypond-book.py:1616
-#, fuzzy, python-format
+#, python-format
 msgid "%s is up to date."
-msgstr "calma, %s está al día"
+msgstr "%s está actualizado."
 
 #: lilypond-book.py:1622
 #, python-format
@@ -354,49 +353,48 @@ msgstr "Escribiendo `%s'..."
 
 #: lilypond-book.py:1677
 msgid "Output would overwrite input file; use --output."
-msgstr ""
+msgstr "La salida sobreescribirá el archivo de entrada, use --output."
 
 #: lilypond-book.py:1681
-#, fuzzy, python-format
+#, python-format
 msgid "Reading %s..."
-msgstr "Limpiando %s..."
+msgstr "Leyendo %s..."
 
 #: lilypond-book.py:1700
-#, fuzzy
 msgid "Dissecting..."
-msgstr "Listando `%s'..."
+msgstr "Analizando..."
 
 #: lilypond-book.py:1716
-#, fuzzy, python-format
+#, python-format
 msgid "Compiling %s..."
-msgstr "Limpiando %s..."
+msgstr "Compilando %s..."
 
 #: lilypond-book.py:1725
-#, fuzzy, python-format
+#, python-format
 msgid "Processing include: %s"
-msgstr "Procesando `%s'..."
+msgstr "Procesando inclusión: %s"
 
 #: lilypond-book.py:1739
-#, fuzzy, python-format
+#, python-format
 msgid "Removing `%s'"
-msgstr "Invocando `%s'"
+msgstr "Borrando `%s'"
 
 #: lilypond-book.py:1815
-#, fuzzy, python-format
+#, python-format
 msgid "Writing fonts to %s..."
-msgstr "no se puede crear el directorio: `%s'"
+msgstr "Escribiendo fuentes a %s..."
 
 #: lilypond-book.py:1830
 msgid "option --psfonts not used"
-msgstr ""
+msgstr "opción --psfonts no usada"
 
 #: lilypond-book.py:1831
 msgid "processing with dvips will have no fonts"
-msgstr ""
+msgstr "al procesar con dvips no contendrá fuentes"
 
 #: lilypond-book.py:1834
 msgid "DVIPS usage:"
-msgstr ""
+msgstr "uso para DVIPS:"
 
 #: midi2ly.py:106 lily-library.scm:624 lily-library.scm:632
 msgid "warning: "
@@ -416,13 +414,13 @@ msgid "%s output to `%s'..."
 msgstr "%s producidos en `%s'..."
 
 #: midi2ly.py:871 musicxml2ly.py:485
-#, fuzzy, python-format
+#, python-format
 msgid "Convert %s to LilyPond input."
-msgstr "Convertir mup a ly."
+msgstr "Convertir %s a código LilyPond"
 
 #: midi2ly.py:875
 msgid "print absolute pitches"
-msgstr ""
+msgstr "imprimir notas absolutos"
 
 #: midi2ly.py:877 midi2ly.py:889
 msgid "DUR"
@@ -430,24 +428,23 @@ msgstr "DUR"
 
 #: midi2ly.py:878
 msgid "quantise note durations on DUR"
-msgstr ""
+msgstr "quantizar duraciones de notas en DUR"
 
 #: midi2ly.py:881
 msgid "print explicit durations"
-msgstr ""
+msgstr "imprimir duraciones explícitas"
 
 #: midi2ly.py:882
 msgid "set key: ALT=+sharps|-flats; MINOR=1"
 msgstr ""
 
 #: midi2ly.py:883
-#, fuzzy
 msgid "ALT[:MINOR]"
-msgstr "ACC[:MENOR]"
+msgstr "ALT[:MINOR]"
 
 #: midi2ly.py:888
 msgid "quantise note starts on DUR"
-msgstr ""
+msgstr "quantizar inicios de notas en DUR"
 
 #: midi2ly.py:891
 msgid "DUR*NUM/DEN"
@@ -455,104 +452,103 @@ msgstr ""
 
 #: midi2ly.py:894
 msgid "allow tuplet durations DUR*NUM/DEN"
-msgstr ""
+msgstr "permitir duracione de grupetos DUR*NUM/DEN"
 
 #: midi2ly.py:902
 msgid "treat every text as a lyric"
-msgstr ""
+msgstr "tratar cualquier texto como letra"
 
 #: midi2ly.py:905
 msgid "Examples"
-msgstr ""
+msgstr "Ejemplos"
 
 #: midi2ly.py:925
 msgid "no files specified on command line."
-msgstr "no se ha especificado ningún fichero en la línea de órdenes."
+msgstr "no se ha especificado ningún fichero en la línea de órdenes."
 
 #: musicxml2ly.py:473
 msgid "musicxml2ly FILE.xml"
-msgstr ""
+msgstr "musicxml2ly ARCHIVO.xml"
 
 #: musicxml2ly.py:476
-#, fuzzy, python-format
+#, python-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
 "License and you are welcome to change it and/or distribute copies of it\n"
 "under certain conditions.  Invoke as `%s --warranty' for more\n"
 "information."
 msgstr ""
-"Este software es libre. Está protegido por la Licencia Pública\n"
-"General de GNU, y quedas invitado a modificarlo y/o distribuir copias de\n"
-"él bajo ciertas condiciones. Invócalo como `%s --warranty' para más\n"
-"información.\n"
+"Este software es libre. Está protegido por la Licencia Pública\n"
+"General de GNU, y es libre de modificarlo y/o distribuir copias de él bajo ciertas condiciones.  Invoquese como `%s --warranty' para más información."
 
 #: musicxml2ly.py:495
 msgid "Use lxml.etree; uses less memory and cpu time."
-msgstr ""
+msgstr "Usar lxml.etree; usa menos memoria y tiempo del cpu."
 
 #: musicxml2ly.py:503
-#, fuzzy
 msgid "set output filename to FILE"
-msgstr "escribir la salida en el FICHERO"
+msgstr "escribir la salida en el ARCHIVO"
 
 #: getopt-long.cc:140
 #, c-format
 msgid "option `%s' requires an argument"
-msgstr "la opción `%s' requiere un argumento"
+msgstr "la opción `%s' requiere un argumento"
 
 #: getopt-long.cc:144
-#, fuzzy, c-format
+#, c-format
 msgid "option `%s' does not allow an argument"
-msgstr "la opción `%s' no permite argumentos"
+msgstr "la opción `%s' no permite argumentos"
 
 #: getopt-long.cc:148
 #, c-format
 msgid "unrecognized option: `%s'"
-msgstr "opción no reconocida: `%s'"
+msgstr "opción no reconocida: `%s'"
 
 #: getopt-long.cc:154
 #, c-format
 msgid "invalid argument `%s' to option `%s'"
-msgstr "argúmento no válido `%s' para la opción `%s'"
+msgstr "argúmento no válido `%s' para la opción `%s'"
 
 #: warn.cc:68 grob.cc:559 input.cc:82
-#, fuzzy, c-format
+#, c-format
 msgid "programming error: %s"
-msgstr "error de programación: "
+msgstr "error de programación: %s"
 
 #: warn.cc:69 input.cc:83
 msgid "continuing, cross fingers"
-msgstr ""
+msgstr "continuando, cruzando los dedos"
 
 #: accidental-engraver.cc:240
 #, c-format
 msgid "accidental typesetting list must begin with context-name: %s"
-msgstr ""
+msgstr "lista de grabado de accidentes debe iniciar con un nombre de contexto: %s"
 
 #: accidental-engraver.cc:268
 #, c-format
 msgid "ignoring unknown accidental: %s"
-msgstr ""
+msgstr "ignorando accidentes desconocidos: %s"
 
 #: accidental-engraver.cc:284
 #, c-format
 msgid "pair or context-name expected for accidental rule, found %s"
-msgstr ""
+msgstr "se encontró regla para: se esperaba un par o nombre de contexto para accidente: %s"
 
 #: accidental.cc:243 key-signature-interface.cc:133
 #, c-format
 msgid "accidental `%s' not found"
-msgstr ""
+msgstr "accidente `%s' no encontrado"
 
 #: align-interface.cc:222
 msgid ""
 "vertical alignment called before line-breaking.\n"
 "Only do cross-staff spanners with PianoStaff."
 msgstr ""
+"vertical alignment llamado antes de un corte de línea.\n"
+"Solamente hacer cross-staff-spanners con PianoStaff."
 
 #: align-interface.cc:329
 msgid "tried to get a translation for something that is no child of mine"
-msgstr ""
+msgstr "intentando obtener una traducción para algo que no está en mi ámbito"
 
 #: all-font-metrics.cc:173
 #, c-format
@@ -561,91 +557,89 @@ msgstr "no encuentro la fuente: `%s'"
 
 #: apply-context-iterator.cc:31
 msgid "\\applycontext argument is not a procedure"
-msgstr ""
+msgstr "El argumento \\applycontext no es un procedimiento"
 
 #: auto-change-iterator.cc:63 change-iterator.cc:61
-#, fuzzy, c-format
+#, c-format
 msgid "cannot change, already in translator: %s"
-msgstr "no puedo cambiar de `%s' a `%s'"
+msgstr "no se puede cambiar, ya está en el traductor: %s"
 
 #: axis-group-engraver.cc:78
 msgid "Axis_group_engraver: vertical group already has a parent"
-msgstr ""
+msgstr "El grupo vertical Axis_group_engraver: ya tiene un padre"
 
 #: axis-group-engraver.cc:79
 msgid "are there two Axis_group_engravers?"
-msgstr ""
+msgstr "hay dos Axis_group_engravers?"
 
 #: axis-group-engraver.cc:80
 msgid "removing this vertical group"
-msgstr ""
+msgstr "quitando este grupo vertical"
 
 #: axis-group-interface.cc:96
 msgid "tried to calculate pure-height at a non-breakpoint"
-msgstr ""
+msgstr "se trató de calcular la altura pura en un lugar que no es punto de quiebre"
 
 #: axis-group-interface.cc:370
 msgid "an outside-staff object should have a direction, defaulting to up"
-msgstr ""
+msgstr "un objeto externo al pentagrama debe tener dirección, por defecto deiniéndolo hacia arriba"
 
 #: axis-group-interface.cc:383
 #, c-format
 msgid "outside-staff object %s has an empty extent"
-msgstr ""
+msgstr "Objeto externo al pentagrama %s tiene una extensión vacía"
 
 #: bar-check-iterator.cc:73
 #, c-format
 msgid "barcheck failed at: %s"
-msgstr ""
+msgstr "revisión de compases falló en: %s"
 
 #: beam-engraver.cc:128
 msgid "already have a beam"
-msgstr ""
+msgstr "ya hay una barra de compás "
 
 #: beam-engraver.cc:196
 msgid "unterminated beam"
-msgstr ""
+msgstr "barra sin terminar"
 
 #: beam-engraver.cc:238 chord-tremolo-engraver.cc:134
 msgid "stem must have Rhythmic structure"
-msgstr ""
+msgstr "la plica debe tener una estructura rítmica"
 
 #: beam-engraver.cc:246
 msgid "stem does not fit in beam"
-msgstr ""
+msgstr "la plica no cabe en la barra"
 
 #: beam-engraver.cc:247
 msgid "beam was started here"
-msgstr ""
+msgstr "se inició barra aquí"
 
 #: beam-quanting.cc:307
-#, fuzzy
 msgid "no feasible beam position"
-msgstr "No se ha encontrado ninguna ruptura de línea factible"
+msgstr "No se ha encontrado posicionamiento de barra factible"
 
 #: beam.cc:144
 msgid "removing beam with no stems"
-msgstr ""
+msgstr "quitando barra sin plicas"
 
 #: beam.cc:1007
 msgid "no viable initial configuration found: may not find good beam slope"
-msgstr ""
+msgstr "no se pudo encontrar una configuración inicial factible: la inclinación de la barra puede no ser correcta"
 
 #: break-alignment-interface.cc:208
-#, fuzzy, c-format
+#, c-format
 msgid "No spacing entry from %s to `%s'"
-msgstr "No se añade el traductor: `%s'"
+msgstr "No hay entrada de espaciado desde %s a `%s'"
 
 #: change-iterator.cc:23
-#, fuzzy, c-format
+#, c-format
 msgid "cannot change `%s' to `%s'"
-msgstr "no puedo cambiar de `%s' a `%s'"
+msgstr "no se puede cambiar `%s' a `%s'"
 
 #. FIXME: constant error message.
 #: change-iterator.cc:82
-#, fuzzy
 msgid "cannot find context to switch to"
-msgstr "no se puede encontrar el contexto de `%s'"
+msgstr "no se encuentra encontrar a qué contexto cambiar"
 
 #. We could change the current translator's id, but that would make
 #. errors hard to catch.
@@ -653,76 +647,75 @@ msgstr "no se puede encontrar el contexto de `%s'"
 #. last->translator_id_string () = get_change
 #. ()->change_to_id_string ();
 #: change-iterator.cc:91
-#, fuzzy, c-format
+#, c-format
 msgid "not changing to same context type: %s"
-msgstr "no hay tal contexto: %s"
+msgstr "no se cambiará al mismo tipo de contexto: %s"
 
 #. FIXME: uncomprehensable message
 #: change-iterator.cc:95
 msgid "none of these in my family"
-msgstr "ninguno de éstos en mi familia"
+msgstr "ninguno de éstos en mi familia"
 
 #: chord-tremolo-engraver.cc:88
 msgid "No tremolo to end"
-msgstr ""
+msgstr "No hay trémolo que terminar"
 
 #: chord-tremolo-engraver.cc:110
 msgid "unterminated chord tremolo"
-msgstr "acorde de trémolo sin terminar"
+msgstr "acorde de trémolo sin terminar"
 
 #: chord-tremolo-iterator.cc:33
 #, c-format
 msgid "expect 2 elements for chord tremolo, found %d"
-msgstr ""
+msgstr "esperaba dos elementos para acorde con trémolo, encontré %d"
 
 #: clef.cc:54
 #, c-format
 msgid "clef `%s' not found"
-msgstr ""
+msgstr "no se encontró la clave de %s"
 
 #: cluster.cc:110
-#, fuzzy, c-format
+#, c-format
 msgid "unknown cluster style `%s'"
-msgstr "traductor desconocido: `%s'"
+msgstr "tipo de grupo (cluster) desconocido `%s'"
 
 #: cluster.cc:135
 msgid "junking empty cluster"
-msgstr ""
+msgstr "ignorando cluster vacío"
 
 #: coherent-ligature-engraver.cc:100
 #, c-format
 msgid "Coherent_ligature_engraver: setting `spacing-increment=0.01': ptr=%ul"
-msgstr ""
+msgstr "Coherent_ligature_engraver: incrementando `spacing-increment=0.01': ptr=%ul"
 
 #. if we get to here, just put everything on one line
 #: constrained-breaking.cc:176 constrained-breaking.cc:193
-#, fuzzy
 msgid "cannot find line breaking that satisfies constraints"
-msgstr "no he podido encontrar ninguna fuente satisfactoria "
+msgstr "no puedo determinar un corte de línea que satisfaga las restricciones"
 
 #: context-def.cc:130
-#, fuzzy, c-format
+#, c-format
 msgid "program has no such type: `%s'"
-msgstr "El programa no tiene este tipo"
+msgstr "el programa no tiene tal tipo: `%s'"
 
 #: context-property.cc:76
 msgid "need symbol arguments for \\override and \\revert"
-msgstr ""
+msgstr "faltan argumentos del símbolo para \\override y \\revert"
 
 #: context.cc:151
-#, fuzzy, c-format
+#, c-format
 msgid "cannot find or create new `%s'"
-msgstr "no se puede encontrar o crear: `%s'"
+msgstr "no se puede encontrar o crear nuevo: `%s'"
 
 #: context.cc:213
-#, fuzzy, c-format
+#, c-format
 msgid "cannot find or create `%s' called `%s'"
 msgstr "no se puede encontrar o crear `%s' llamado `%s'"
 
 #: context.cc:276
 #, c-format
 msgid "Invalid CreateContext event: Cannot create %s context"
-msgstr ""
+msgstr "Evento CreateContext inválido: No puedo crear contexto %s"
 
 #: context.cc:388
 #, c-format
@@ -732,21 +725,21 @@ msgstr "no se puede encontrar o crear: `%s'"
 #: custos.cc:77
 #, c-format
 msgid "custos `%s' not found"
-msgstr ""
+msgstr "custos `%s' no encontrado"
 
 #: dispatcher.cc:71
 msgid "Event class should be a symbol"
-msgstr ""
+msgstr "Clase de evento debe ser un símbolo"
 
 #: dispatcher.cc:78
-#, fuzzy, c-format
+#, c-format
 msgid "Unknown event class %s"
-msgstr "traductor desconocido: `%s'"
+msgstr "Clase de evento desconocida: `%s'"
 
 #: dots.cc:38
 #, c-format
 msgid "dot `%s' not found"
-msgstr ""
+msgstr "puntillo `%s' no encontrado"
 
 #: dynamic-engraver.cc:186 span-dynamic-performer.cc:87
 msgid "cannot find start of (de)crescendo"
@@ -762,7 +755,7 @@ msgstr "ya tengo un crescendo"
 
 #: dynamic-engraver.cc:200
 msgid "cresc starts here"
-msgstr ""
+msgstr "crescendo inicia aquí"
 
 #: dynamic-engraver.cc:323
 msgid "unterminated (de)crescendo"
@@ -770,115 +763,109 @@ msgstr "(de)crescendo sin terminar"
 
 #: extender-engraver.cc:131 extender-engraver.cc:140
 msgid "unterminated extender"
-msgstr "prolongación sin terminar"
+msgstr "prolongación sin terminar"
 
 #: font-config.cc:28
 msgid "Initializing FontConfig..."
-msgstr ""
+msgstr "Inicializando FontConfig..."
 
 #: font-config.cc:44
 #, c-format
 msgid "Rebuilding FontConfig cache %s, this may take a while..."
-msgstr ""
+msgstr "Reconstruyendo caché de FontConfig %s, puede tomar un rato..."
 
 #: font-config.cc:55
-#, fuzzy, c-format
+#, c-format
 msgid "failed adding font directory: %s"
-msgstr "no se puede crear el directorio: `%s'"
+msgstr "falló al añadir directorio de fuentes: %s"
 
 #: font-config.cc:57
-#, fuzzy, c-format
+#, c-format
 msgid "adding font directory: %s"
-msgstr "no se puede crear el directorio: `%s'"
+msgstr "añadiendo directorio de fuentes: %s"
 
 #: general-scheme.cc:160
 msgid "infinity or NaN encountered while converting Real number"
-msgstr ""
+msgstr "Se encontró infinito o NaN al tratar de convertir a un número Real"
 
 #: general-scheme.cc:161
 msgid "setting to zero"
-msgstr ""
+msgstr "asignando valor de cero"
 
 #: glissando-engraver.cc:92
-#, fuzzy
 msgid "unterminated glissando"
-msgstr "prolongación sin terminar"
+msgstr "glissando sin terminar"
 
 #: global-context-scheme.cc:91 global-context-scheme.cc:107
-#, fuzzy
 msgid "no music found in score"
-msgstr "ya tengo un crescendo"
+msgstr "no se encontró música en la partitura"
 
 #: global-context-scheme.cc:97
-#, fuzzy
 msgid "Interpreting music... "
-msgstr "Interpretación de la música..."
+msgstr "Interpretando música... "
 
 #: global-context-scheme.cc:120
 #, c-format
 msgid "elapsed time: %.2f seconds"
-msgstr ""
+msgstr "tiempo transcurrido: %.2f segundos"
 
 #: gregorian-ligature-engraver.cc:59
-#, fuzzy, c-format
+#, c-format
 msgid "\\%s ignored"
-msgstr "(ignorado)"
+msgstr "\\%s ignorado"
 
 #: gregorian-ligature-engraver.cc:64
 #, c-format
 msgid "implied \\%s added"
-msgstr ""
+msgstr "\\%s implicados añadidos"
 
 #. ligature may not start with 2nd head of pes or flexa
 #: gregorian-ligature-engraver.cc:212
-#, fuzzy
 msgid "cannot apply `\\~' on first head of ligature"
-msgstr "no puedo encontrar el principio del (de)crescendo"
+msgstr "no se puede aplicar `\\~' en pricipio de la ligadura"
 
 #. (pitch == prev_pitch)
 #: gregorian-ligature-engraver.cc:224
 msgid "cannot apply `\\~' on heads with identical pitch"
-msgstr ""
+msgstr "no se puede aplicar \\~' en cabezas con la misma nota"
 
 #: grob-interface.cc:57
-#, fuzzy, c-format
+#, c-format
 msgid "Unknown interface `%s'"
-msgstr "traductor desconocido: `%s'"
+msgstr "Interfase desconocida: `%s'"
 
 #: grob-interface.cc:68
 #, c-format
 msgid "Grob `%s' has no interface for property `%s'"
-msgstr ""
+msgstr "El elemento `%s' no tiene interface para la propiedad `%s'"
 
 #: grob.cc:253
 msgid "Infinity or NaN encountered"
-msgstr ""
+msgstr "Se encontró infinito o NaN"
 
 #: hairpin.cc:183
 msgid "decrescendo too small"
-msgstr "decrescendo demasiado pequeño"
+msgstr "decrescendo demasiado pequeño"
 
 #: horizontal-bracket-engraver.cc:59
 msgid "do not have that many brackets"
-msgstr ""
+msgstr "no hay tantos corchetes"
 
 #: horizontal-bracket-engraver.cc:68
 msgid "conflicting note group events"
-msgstr ""
+msgstr "grupo de eventos de notas en conflicto"
 
 #: hyphen-engraver.cc:93
-#, fuzzy
 msgid "removing unterminated hyphen"
-msgstr "prolongación sin terminar"
+msgstr "eliminando prolongación sin terminar"
 
 #: hyphen-engraver.cc:107
-#, fuzzy
 msgid "unterminated hyphen; removing"
-msgstr "acorde de trémolo sin terminar"
+msgstr "prolongación sin terminar; eliminando"
 
 #: includable-lexer.cc:53
 msgid "include files are not allowed in safe mode"
-msgstr ""
+msgstr "incluir archivos no se permite en modo seguro"
 
 #: includable-lexer.cc:60 lily-guile.cc:90 lily-parser-scheme.cc:116
 #, c-format
@@ -888,42 +875,39 @@ msgstr "no puedo encontrar el fichero: `%s'"
 #: includable-lexer.cc:62 lily-parser-scheme.cc:107
 #, c-format
 msgid "(search path: `%s')"
-msgstr "(ruta de búsqueda: `%s')"
+msgstr "(ruta de búsqueda: `%s')"
 
 #: input.cc:112 source-file.cc:168 source-file.cc:183
 msgid "position unknown"
-msgstr "posición desconocida"
+msgstr "posición desconocida"
 
 #: ligature-engraver.cc:93
-#, fuzzy
 msgid "cannot find start of ligature"
-msgstr "no puedo encontrar el principio del (de)crescendo"
+msgstr "no puedo encontrar el principio del ligadura"
 
 #: ligature-engraver.cc:98
 msgid "no right bound"
-msgstr ""
+msgstr "no hay límite derecho"
 
 #: ligature-engraver.cc:120
-#, fuzzy
 msgid "already have a ligature"
-msgstr "ya tengo un crescendo"
+msgstr "ya hay una ligadura"
 
 #: ligature-engraver.cc:129
 msgid "no left bound"
-msgstr ""
+msgstr "no hay límite izquierdo"
 
 #: ligature-engraver.cc:173
-#, fuzzy
 msgid "unterminated ligature"
-msgstr "prolongación sin terminar"
+msgstr "ligadura sin terminar"
 
 #: ligature-engraver.cc:202
 msgid "ignoring rest: ligature may not contain rest"
-msgstr ""
+msgstr "ignorando silencio: una ligadura no puede contener silencio"
 
 #: ligature-engraver.cc:203
 msgid "ligature was started here"
-msgstr ""
+msgstr "la ligadura no se inició aquí"
 
 #: lily-guile.cc:92
 #, c-format
@@ -933,25 +917,25 @@ msgstr "(ruta de carga: `%s')"
 #: lily-guile.cc:518
 #, c-format
 msgid "cannot find property type-check for `%s' (%s)."
-msgstr ""
+msgstr "no puedo encontrar revisión de propiedad para `%s' (%s)."
 
 #: lily-guile.cc:521
 msgid "perhaps a typing error?"
-msgstr ""
+msgstr "posiblemente un error de dedo?"
 
 #: lily-guile.cc:527
 msgid "doing assignment anyway"
-msgstr ""
+msgstr "realizando asignación de todas maneras"
 
 #: lily-guile.cc:539
 #, c-format
 msgid "type check for `%s' failed; value `%s' must be of type `%s'"
-msgstr ""
+msgstr "revisión de tipo para `%s' falló; el valor `%s' debe ser de tipo  `%s'"
 
 #: lily-lexer.cc:254
-#, fuzzy, c-format
+#, c-format
 msgid "identifier name is a keyword: `%s'"
-msgstr "El nombre del identificativo es una palabra clave: `%s'"
+msgstr "el identificador es una palabra clave: `%s'"
 
 #: lily-lexer.cc:269
 #, c-format
@@ -959,24 +943,24 @@ msgid "error at EOF: %s"
 msgstr "error al final del fichero (EOF): %s"
 
 #: lily-parser-scheme.cc:29
-#, fuzzy, c-format
+#, c-format
 msgid "deprecated function called: %s"
-msgstr "no puedo encontrar el carácter llamado: `%s'"
+msgstr "función en desuso llamada: %s"
 
 #: lily-parser-scheme.cc:88
-#, fuzzy, c-format
+#, c-format
 msgid "Changing working directory to: `%s'"
-msgstr "no se puede crear el directorio: `%s'"
+msgstr "Cambiando directorio de trabajo a: `%s'"
 
 #: lily-parser-scheme.cc:106
-#, fuzzy, c-format
+#, c-format
 msgid "cannot find init file: `%s'"
-msgstr "no puedo encontrar el fichero: `%s'"
+msgstr "no puedo encontrar archivo de inicialización: `%s'"
 
 #: lily-parser-scheme.cc:125
-#, fuzzy, c-format
+#, c-format
 msgid "Processing `%s'"
-msgstr "Procesando `%s'..."
+msgstr "Procesando `%s'"
 
 #: lily-parser.cc:99
 msgid "Parsing..."
@@ -984,25 +968,25 @@ msgstr "Analizando..."
 
 #: lily-parser.cc:127
 msgid "braces do not match"
-msgstr ""
+msgstr "Llaves no concuerdan"
 
 #: lyric-combine-music-iterator.cc:291
-#, fuzzy, c-format
+#, c-format
 msgid "cannot find Voice `%s'"
-msgstr "no puedo encontrar el fichero: `%s'"
+msgstr "no se puede encontrar Voice `%s'"
 
 #: main.cc:116
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
 "License and you are welcome to change it and/or distribute copies of it\n"
 "under certain conditions.  Invoke as `%s --warranty' for more\n"
 "information.\n"
 msgstr ""
-"Este software es libre. Está protegido por la Licencia Pública\n"
-"General de GNU, y quedas invitado a modificarlo y/o distribuir copias de\n"
-"él bajo ciertas condiciones. Invócalo como `%s --warranty' para más\n"
-"información.\n"
+"Este software es libre. Está protegido por la Licencia Pública\n"
+"General de GNU, y es libre para modificarlo y/o distribuir copias de\n"
+"él bajo ciertas condiciones. Invóquelo como `%s --warranty' para más\n"
+"información.\n"
 
 #: main.cc:122
 msgid ""
@@ -1020,27 +1004,39 @@ msgid ""
 "the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
 "Boston, MA 02111-1307, USA.\n"
 msgstr ""
+"    Este programa es libre, puede redistribuirlo y/o \n"
+"modificarlo bajo los términos de la Licencia Públic General GNU versión 2\n"
+"tal como está publicada por la Fundación de Software Libre (FSF).\n"
+"    Este programa se distribuye con la esperanza de que será de utilidad,\n"
+"pero sin NINGUNA CLASE DE GARANTÍA, ni siquiera implicada por COMERCIO o para PROPOSITO PARTICULAR.  Vea la: "
+"Licencia Pública General GNU para más detalles.\n"
+"    Debe haber recibido una copia de la Licencia Públic General GNU con este programa; si no es así, escriba a:\n"
+"Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
+"Boston, MA 02111-1307, USA.\n"
 
 #: main.cc:153
 msgid "BACK"
-msgstr ""
+msgstr "REGRESAR"
 
 #: main.cc:153
 msgid ""
 "use backend BACK (eps, gnome, ps [default],\n"
 "scm, svg, tex, texstr)"
 msgstr ""
+"use el procesador BACK (eps, gnome, ps [defecto],\n"
+"scm, svg, tex, texstr)"
 
 #: main.cc:155
-#, fuzzy
 msgid "SYM[=VAL]"
-msgstr "CLAVE=VALOR"
+msgstr "SYM[=VAL]"
 
 #: main.cc:156
 msgid ""
 "set Scheme option SYM to VAL (default: #t)\n"
 "Use -dhelp for help."
 msgstr ""
+"asignando opción Scheme SYM a VAL (por defecto: #t)\n"
+"Use -dhelp para obtener ayuda."
 
 #: main.cc:159
 msgid "EXPR"
@@ -1048,64 +1044,61 @@ msgstr "EXPR"
 
 #: main.cc:159
 msgid "evaluate scheme code"
-msgstr ""
+msgstr "evaluar código scheme"
 
 #. Bug in option parser: --output =foe is taken as an abbreviation
 #. for --output-format.
 #: main.cc:162
 msgid "FORMATs"
-msgstr ""
+msgstr "FORMATOS"
 
 #: main.cc:162
 msgid "dump FORMAT,...  Also as separate options:"
-msgstr ""
+msgstr "volcar FORMATO,...  Adicionalmente como opciones separadas:"
 
 #: main.cc:163
-#, fuzzy
 msgid "generate DVI (tex backend only)"
-msgstr "generar una salida PostScript"
+msgstr "generar DVI (sólo procesador tex)"
 
 #: main.cc:164
-#, fuzzy
 msgid "generate PDF (default)"
-msgstr "generar una salida PostScript"
+msgstr "generar salida PDF (predeterminado)"
 
 #: main.cc:165
-#, fuzzy
 msgid "generate PNG"
-msgstr "generar una salida PostScript"
+msgstr "generar salida PNG"
 
 #: main.cc:166
-#, fuzzy
 msgid "generate PostScript"
-msgstr "generar una salida PostScript"
+msgstr "generar salida PostScript"
 
 #: main.cc:167
 msgid "generate TeX (tex backend only)"
-msgstr ""
+msgstr "generar TeX (sólo procesador tex)"
 
 #: main.cc:168
 msgid "show this help and exit"
-msgstr ""
+msgstr "mostrar esta ayuda y salir"
 
 #: main.cc:169
 msgid "FIELD"
 msgstr "CAMPO"
 
 #: main.cc:169
-#, fuzzy
 msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
-msgstr "escribir campo de cabecera a BASENAME.FIELD"
+msgstr ""
+"vaciar campo de cabecera FIELD a archvio\n"
+"llamado BASENAME.FIELD"
 
 #: main.cc:171
 msgid "add DIR to search path"
-msgstr "añadir DIR a la ruta de búsqueda"
+msgstr "añadir DIR a la ruta de búsqueda"
 
 #: main.cc:172
 msgid "use FILE as init file"
-msgstr "usar FICHERO como fichero de inicialización"
+msgstr "usar FICHERO como fichero de inicialización"
 
 #: main.cc:174
 msgid "USER,GROUP,JAIL,DIR"
@@ -1116,63 +1109,66 @@ msgid ""
 "chroot to JAIL, become USER:GROUP\n"
 "and cd into DIR"
 msgstr ""
+"chroot a JAIL, convertirse en USER:GROUP\n"
+"y cd en DIR"
 
 #: main.cc:177
-#, fuzzy
 msgid "do not generate printed output"
-msgstr "generar una salida PostScript"
+msgstr "no generar salida de impresión"
 
 #: main.cc:178
-#, fuzzy
 msgid "write output to FILE (suffix will be added)"
-msgstr "escribir la salida en el FICHERO"
+msgstr "escribir la salida en el FICHERO (se añadirá extensión)"
 
 #: main.cc:179
 msgid "generate a preview of the first system"
-msgstr ""
+msgstr "generar un previsualización del primer sistema"
 
 #: main.cc:180
 msgid "relocate using directory of lilypond program"
-msgstr ""
+msgstr "relocalice usando el directorio del programa lilypond"
 
 #: main.cc:181
 msgid ""
 "disallow unsafe Scheme and PostScript\n"
 "operations"
 msgstr ""
+"no permitir operaciones inseguras de Scheme y \n"
+"PostScript"
 
 #: main.cc:183
-#, fuzzy
 msgid "show version number and exit"
-msgstr "mostrar número de versión"
+msgstr "mostrar número de versión y salir"
 
 #: main.cc:224
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Copyright (c) %s by\n"
 "%s  and others."
-msgstr "Copyright (c) %s "
+msgstr ""
+"Copyright (c) %s  por\n"
+"%s  y otros."
 
 #. No version number or newline here.  It confuses help2man.
 #: main.cc:251
-#, fuzzy, c-format
+#, c-format
 msgid "Usage: %s [OPTION]... FILE..."
-msgstr "Sintaxis: %s [OPCIÓN]... FICHERO..."
+msgstr "Uso: %s [OPCIÓN]... FICHERO..."
 
 #: main.cc:253
 #, c-format
 msgid "Typeset music and/or produce MIDI from FILE."
-msgstr ""
+msgstr "Grabar música y/o producir archivo MIDI desde ARCHIVO"
 
 #: main.cc:255
 #, c-format
 msgid "LilyPond produces beautiful music notation."
-msgstr ""
+msgstr "LilyPond produce una hermosa notación musical"
 
 #: main.cc:257
 #, c-format
 msgid "For more information, see %s"
-msgstr ""
+msgstr "Para más información, vea %s"
 
 #: main.cc:259
 #, c-format
@@ -1180,103 +1176,105 @@ msgid "Options:"
 msgstr "Opciones: "
 
 #: main.cc:263
-#, fuzzy, c-format
+#, c-format
 msgid "Report bugs via %s"
-msgstr "Informar de gazapos a %s."
+msgstr "Informe de errores por medio de %s"
 
 #: main.cc:309
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
-msgstr ""
+msgstr "se esperaba(n) %d argumentos con jail, se encontró: %u"
 
 #: main.cc:323
-#, fuzzy, c-format
+#, c-format
 msgid "no such user: %s"
-msgstr "no existe tal parámetro: %s"
+msgstr "no hay tal usuario: %s"
 
 #: main.cc:325
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
-msgstr ""
+msgstr "no puedo obtener id de usuario a partir del nombre: %s: %s"
 
 #: main.cc:340
-#, fuzzy, c-format
+#, c-format
 msgid "no such group: %s"
-msgstr "no hay tal contexto: %s"
+msgstr "no hay tal grupo: %s"
 
 #: main.cc:342
-#, fuzzy, c-format
+#, c-format
 msgid "cannot get group id from group name: %s: %s"
-msgstr "no puedo cambiar de `%s' a `%s'"
+msgstr "no se puede determinar el id del grupo desde el nombre del grupo: %s: %s"
 
 #: main.cc:350
-#, fuzzy, c-format
+#, c-format
 msgid "cannot chroot to: %s: %s"
-msgstr "no se puede crear el directorio: `%s'"
+msgstr "no se puede hacer chroot a: %s: %s"
 
 #: main.cc:357
-#, fuzzy, c-format
+#, c-format
 msgid "cannot change group id to: %d: %s"
-msgstr "no puedo cambiar de `%s' a `%s'"
+msgstr "no puedo cambiar el id de grupo a: %d: %s"
 
 #: main.cc:363
-#, fuzzy, c-format
+#, c-format
 msgid "cannot change user id to: %d: %s"
-msgstr "no puedo cambiar de `%s' a `%s'"
+msgstr "no se puede cambiar el id de usuario a: %d: %s"
 
 #: main.cc:369
-#, fuzzy, c-format
+#, c-format
 msgid "cannot change working directory to: %s: %s"
-msgstr "no se puede crear el directorio: `%s'"
+msgstr "no se puede cambiar el directorio de trabajo a: %s: %s"
 
 #: main.cc:415
 #, c-format
 msgid "Evaluating %s"
-msgstr ""
+msgstr "Evaluando %s"
 
 #: main.cc:645
 #, c-format
 msgid "exception caught: %s"
-msgstr ""
+msgstr "ocurrió una excepción: %s"
 
 #. FIXME: constant error message.
 #: mark-engraver.cc:154
 msgid "rehearsalMark must have integer value"
-msgstr ""
+msgstr "rehearsalMark debe tener un valor de entero"
 
 #: mark-engraver.cc:160
 msgid "mark label must be a markup object"
-msgstr ""
+msgstr "etiqueta mark debe tener un objeto markup"
 
 #: mensural-ligature-engraver.cc:85
 msgid "ligature with less than 2 heads -> skipping"
-msgstr ""
+msgstr "ligadura con menos de dos notas -> saltando"
 
 #: mensural-ligature-engraver.cc:112
 msgid "cannot determine pitch of ligature primitive -> skipping"
-msgstr ""
+msgstr "no puedo determinar nota de la primitiva de la ligadura -> saltando"
 
 #: mensural-ligature-engraver.cc:126
 msgid "single note ligature - skipping"
-msgstr ""
+msgstr "ligadura de una sola nota - saltando"
 
 #: mensural-ligature-engraver.cc:138
 msgid "prime interval within ligature -> skipping"
-msgstr ""
+msgstr "intervalo primo dentro de ligadura -> saltando"
 
 #: mensural-ligature-engraver.cc:150
 msgid "mensural ligature: duration none of Mx, L, B, S -> skipping"
-msgstr ""
+msgstr "duración de ligadura mensural no es una de Mx, L, B o S -> saltando"
 
 #: mensural-ligature-engraver.cc:198
 msgid "semibrevis must be followed by another one -> skipping"
-msgstr ""
+msgstr "semibrevis debe ser seguida de otra igual -> saltando"
 
 #: mensural-ligature-engraver.cc:209
 msgid ""
 "semibreves can only appear at the beginning of a ligature,\n"
 "and there may be only zero or two of them"
 msgstr ""
+"sólo puede aparecer una semibreve al principio de una ligadura.\n"
+"y sólo puede haber cero o dos de ellas"
 
 #: mensural-ligature-engraver.cc:236
 msgid ""
@@ -1285,123 +1283,125 @@ msgid ""
 "the penultimate note must be another one,\n"
 "or the ligatura must be LB or SSB"
 msgstr ""
+"terminación de ligadura inválida:\n"
+"cuando la última nota es una brevis descendente.\n"
+"la penúltima nota debe ser otra igual,\n"
+"o la ligadura debe ser LB o SSB"
 
 #: mensural-ligature-engraver.cc:356
 msgid "unexpected case fall-through"
-msgstr ""
+msgstr "no se contempló este caso"
 
 #: mensural-ligature.cc:141
 msgid "Mensural_ligature: unexpected case fall-through"
-msgstr ""
+msgstr "Mensural_ligature: no se esperaba caso no contemplado"
 
 #: mensural-ligature.cc:192
 msgid "Mensural_ligature: (join_right == 0)"
 msgstr ""
 
 #: midi-item.cc:152
-#, fuzzy, c-format
+#, c-format
 msgid "no such MIDI instrument: `%s'"
-msgstr "no hay este instrumento: `%s'"
+msgstr "no hay tal instrumento MIDI: `%s'"
 
 #: midi-item.cc:285
 #, c-format
 msgid "experimental: temporarily fine tuning (of %d cents) a channel."
-msgstr ""
+msgstr "experimental: tempralmente afinando (%d) el canal"
 
 #: midi-stream.cc:28
-#, fuzzy, c-format
+#, c-format
 msgid "cannot open for write: %s: %s"
-msgstr "no se puede abrir el fichero: `%s'"
+msgstr "no se puede abrir para escritura: %s: %s"
 
 #: midi-stream.cc:44
-#, fuzzy, c-format
+#, c-format
 msgid "cannot write to file: `%s'"
-msgstr "no se puede abrir el fichero: `%s'"
+msgstr "no se puede abrir al fichero: `%s'"
 
 #: music-iterator.cc:171
 msgid "Sending non-event to context"
-msgstr ""
+msgstr "Enviando evento nulo a contexto"
 
 #: music.cc:141
 #, c-format
 msgid "octave check failed; expected \"%s\", found: \"%s\""
-msgstr ""
+msgstr "revisión de octava falló; se esperaba \"%s\", se encontró: \"%s\""
 
 #: music.cc:207
 #, c-format
 msgid "transposition by %s makes alteration larger than double"
-msgstr ""
+msgstr "transposición por %s hace que la alteración sea mayor al doble"
 
 #: new-fingering-engraver.cc:96
 msgid "cannot add text scripts to individual note heads"
-msgstr ""
+msgstr "no se pueden agregar textos a notas individuales"
 
 #: new-fingering-engraver.cc:239
 msgid "no placement found for fingerings"
-msgstr ""
+msgstr "no se pudo encontrar colocación para la digitación"
 
 #: new-fingering-engraver.cc:240
 msgid "placing below"
-msgstr ""
+msgstr "colocando abajo"
 
 #: note-collision.cc:457
-#, fuzzy
 msgid "ignoring too many clashing note columns"
-msgstr "Demasiadas columnas de notas que chocan entre sí. Se las ignora."
+msgstr "ignorando demasiadas columnas de notas en conflicto"
 
 #: note-column.cc:124
 msgid "cannot have note heads and rests together on a stem"
-msgstr ""
+msgstr "no se pueden colocar cabezas de notas y silencios en la misma plica"
 
 #: note-head.cc:63
 #, c-format
 msgid "none of note heads `%s' or `%s' found"
-msgstr ""
+msgstr "ninguna de las notas `%s' o `%s' encontradas"
 
 #: note-heads-engraver.cc:61
 msgid "NoteEvent without pitch"
-msgstr ""
+msgstr "Evento de Nota sin tonalidad"
 
 #: open-type-font.cc:33
-#, fuzzy, c-format
+#, c-format
 msgid "cannot allocate %lu bytes"
-msgstr "no se puede abrir el fichero: `%s'"
+msgstr "No se puede asignar %lu bytes"
 
 #: open-type-font.cc:37
-#, fuzzy, c-format
+#, c-format
 msgid "cannot load font table: %s"
-msgstr "no encuentro la fuente: `%s'"
+msgstr "no se puede cargar tabla de fuentes: %s"
 
 #: open-type-font.cc:98
 #, c-format
 msgid "unsupported font format: %s"
-msgstr ""
+msgstr "formato de fuente no soportado: %s"
 
 #: open-type-font.cc:100
 #, c-format
 msgid "unknown error: %d reading font file: %s"
-msgstr ""
+msgstr "error desconocido: %d al leer archivo de fuente: %s"
 
 #: open-type-font.cc:173 open-type-font.cc:297
 #, c-format
 msgid "FT_Get_Glyph_Name() returned error: %u"
-msgstr ""
+msgstr "FT_Get_Glyph_Name() regresó error: %u"
 
 #: page-turn-page-breaking.cc:205
 msgid ""
 "cannot fit the first page turn onto a single page.  Consider setting first-"
 "page-number to an even number."
-msgstr ""
+msgstr "no puedo ajustar primer vuelta de página a una sóla página.  Considere asignar primero un número par para la primer página."
 
 #: page-turn-page-breaking.cc:218
 #, c-format
 msgid "Calculating page and line breaks (%d possible page breaks)..."
-msgstr ""
+msgstr "Calculando paginación y cortes de línea (%d posibles cortes de página)"
 
 #: page-turn-page-breaking.cc:236 paper-score.cc:154
-#, fuzzy
 msgid "Drawing systems..."
-msgstr "Creando voces..."
+msgstr "Creando sistemas..."
 
 #: pango-font.cc:181
 #, c-format
@@ -1409,57 +1409,55 @@ msgid ""
 "Glyph has no name, but font supports glyph naming.\n"
 "Skipping glyph U+%0X, file %s"
 msgstr ""
+"El glifo no tiene nombre, pero la fuente soporta el nombrado de glifos.\n"
+"Saltando glifo U+%0X, archivo %s"
 
 #: pango-font.cc:224
-#, fuzzy, c-format
+#, c-format
 msgid "no PostScript font name for font `%s'"
-msgstr "no es un fichero PostScript: `%s'"
+msgstr "no existe esa fuente PostScript: `%s'"
 
 #: pango-font.cc:272
 msgid "FreeType face has no PostScript font name"
-msgstr ""
+msgstr "Fuente FreeType no tiene un nombre de fuente PostScript"
 
 #: paper-outputter-scheme.cc:33
-#, fuzzy, c-format
+#, c-format
 msgid "Layout output to `%s'..."
-msgstr "%s producidos en `%s'..."
+msgstr "Diseño de página generado en `%s'..."
 
 #: paper-score.cc:105
-#, fuzzy
 msgid "Calculating line breaks..."
-msgstr "Calculando las posiciones de las columnas"
+msgstr "Calculando cortes de línea..."
 
 #: paper-score.cc:118
-#, fuzzy, c-format
+#, c-format
 msgid "Element count %d (spanners %d) "
-msgstr "Elementos contados %d"
+msgstr "Elementos contados %d (spanners %d) "
 
 #: paper-score.cc:122
-#, fuzzy
 msgid "Preprocessing graphical objects..."
-msgstr "Preprocesando elementos..."
+msgstr "Preprocesando objetos gráficos..."
 
 #: parse-scm.cc:83
 msgid "GUILE signaled an error for the expression beginning here"
-msgstr ""
+msgstr "GUILE señaló un error para la expresión iniciada aquí"
 
 #: percent-repeat-engraver.cc:200
-#, fuzzy
 msgid "unterminated percent repeat"
-msgstr "prolongación sin terminar"
+msgstr "repetición de porcentaje sin terminar"
 
 #: performance.cc:45
-#, fuzzy
 msgid "Track..."
-msgstr "Pista ... "
+msgstr "Pista..."
 
 #: performance.cc:74
 msgid "MIDI channel wrapped around"
-msgstr ""
+msgstr "Se envolvió al canal MIDI"
 
 #: performance.cc:75
 msgid "remapping modulo 16"
-msgstr ""
+msgstr "remapeando modulo 16"
 
 #: performance.cc:103
 #, c-format
@@ -1468,52 +1466,52 @@ msgstr "Salida MIDI a `%s'..."
 
 #: phrasing-slur-engraver.cc:146
 msgid "unterminated phrasing slur"
-msgstr ""
+msgstr "ligadura de praseo no terminada"
 
 #: piano-pedal-engraver.cc:286
 #, c-format
 msgid "expect 3 strings for piano pedals, found: %ld"
-msgstr ""
+msgstr "esperaba tres cadenas de texto para pedales de piano, se encontraron: %ld"
 
 #: piano-pedal-engraver.cc:301 piano-pedal-engraver.cc:312
 #: piano-pedal-performer.cc:93
 #, c-format
 msgid "cannot find start of piano pedal: `%s'"
-msgstr ""
+msgstr "No se encuentra pedal de piano inicial: `%s'"
 
 #: piano-pedal-engraver.cc:347
-#, fuzzy, c-format
+#, c-format
 msgid "cannot find start of piano pedal bracket: `%s'"
-msgstr "no puedo encontrar el principio del (de)crescendo"
+msgstr "no se encuentra el principio del pedal: `%s'"
 
 #: program-option.cc:205
-#, fuzzy, c-format
+#, c-format
 msgid "no such internal option: %s"
-msgstr "no hay este instrumento: `%s'"
+msgstr "no existe esa opción: %s"
 
 #: property-iterator.cc:74
 #, c-format
 msgid "not a grob name, `%s'"
-msgstr ""
+msgstr "No es un nombre de elemento, `%s'"
 
 #: relative-octave-check.cc:38
 msgid "Failed octave check, got: "
-msgstr ""
+msgstr "Falló la revisión de octava, se obtuvo: "
 
 #: relocate.cc:44
-#, fuzzy, c-format
+#, c-format
 msgid "Setting %s to %s"
-msgstr "no se puede crear el directorio: `%s'"
+msgstr "Asignando %s a %s"
 
 #: relocate.cc:59
-#, fuzzy, c-format
+#, c-format
 msgid "no such file: %s for %s"
-msgstr "no hay tal contexto: %s"
+msgstr "no hay tal archivo: %s para %s"
 
 #: relocate.cc:69 relocate.cc:87
-#, fuzzy, c-format
+#, c-format
 msgid "no such directory: %s for %s"
-msgstr "no hay tal contexto: %s"
+msgstr "no existe el directorio: %s para %s"
 
 #: relocate.cc:79
 #, c-format
@@ -1523,22 +1521,22 @@ msgstr ""
 #: relocate.cc:99
 #, c-format
 msgid "Relocation: compile prefix=%s, new prefix=%s"
-msgstr ""
+msgstr "Relocación: prefijo de compilación=%s, nuevo prefijo=%s"
 
 #: relocate.cc:129
 #, c-format
 msgid "Relocation: framework_prefix=%s"
-msgstr ""
+msgstr "Relocación: framework_prefix=%s"
 
 #: relocate.cc:169
 #, c-format
 msgid "Relocation: is absolute: argv0=%s"
-msgstr ""
+msgstr "Relocación: es absoluta: argv0=%s"
 
 #: relocate.cc:176
 #, c-format
 msgid "Relocation: from cwd: argv0=%s"
-msgstr ""
+msgstr "Relocación: desde cwd: argv0=%s"
 
 #: relocate.cc:185
 #, c-format
@@ -1546,129 +1544,125 @@ msgid ""
 "Relocation: from PATH=%s\n"
 "argv0=%s"
 msgstr ""
+"Relocación: desde TRAYECTO=%s\n"
+"argv0=%s"
 
 #: relocate.cc:354
-#, fuzzy, c-format
+#, c-format
 msgid "Relocation file: %s"
-msgstr "no se puede abrir el fichero: `%s'"
+msgstr "Archivo de relocación: %s"
 
 #: relocate.cc:390
 #, c-format
 msgid "Unknown relocation command %s"
-msgstr ""
+msgstr "Comando de relocación desconocido: %s"
 
 #: rest-collision.cc:151
 msgid "cannot resolve rest collision: rest direction not set"
-msgstr ""
+msgstr "no puedo resolver colisión de silencios: no se fijó dirección de silencio"
 
 #: rest-collision.cc:165 rest-collision.cc:210
 msgid "too many colliding rests"
-msgstr ""
+msgstr "demasiados silencios en colisión"
 
 #: rest.cc:144
 #, c-format
 msgid "rest `%s' not found"
-msgstr ""
+msgstr "silencio `%s' no encontrado"
 
 #: score-engraver.cc:67
-#, fuzzy, c-format
+#, c-format
 msgid "cannot find `%s'"
 msgstr "no se puede encontrar: `%s'"
 
 #: score-engraver.cc:69
 msgid "Music font has not been installed properly."
-msgstr ""
+msgstr "La fuente de música no ha sido instalada correctamente"
 
 #: score-engraver.cc:71
-#, fuzzy, c-format
+#, c-format
 msgid "Search path `%s'"
-msgstr "(ruta de búsqueda: `%s')"
+msgstr "Ruta de búsqueda: `%s'"
 
 #: score-engraver.cc:73
 msgid "Aborting"
-msgstr ""
+msgstr "Abortando"
 
 #: score.cc:225
-#, fuzzy
 msgid "already have music in score"
-msgstr "ya tengo un crescendo"
+msgstr "debe existir música en la partitura"
 
 #: score.cc:226
 msgid "this is the previous music"
-msgstr ""
+msgstr "esta es la música previa"
 
 #: score.cc:231
-#, fuzzy
 msgid "errors found, ignoring music expression"
-msgstr ""
-"Erreurs trouvées/*, pas de traitement de la feuille de musique*/ Se han "
-"encontrado errores/*, no se procesa la partitura*/"
+msgstr "se encontraron errores, ignorando expresión musical"
 
 #. FIXME:
 #: script-engraver.cc:102
-#, fuzzy
 msgid "do not know how to interpret articulation: "
-msgstr "No se sabe como interpretar la articulación `%s'"
+msgstr "No se sabe como interpretar la articulación `%s'"
 
 #: script-engraver.cc:103
 msgid "scheme encoding: "
-msgstr ""
+msgstr "codificación scheme"
 
 #: simple-spacer.cc:375
 #, c-format
 msgid "No spring between column %d and next one"
-msgstr ""
+msgstr "No hay separación entre la columna %d y la siguiente"
 
 #: slur-engraver.cc:83 tuplet-engraver.cc:75
 #, c-format
 msgid "direction of %s invalid: %d"
-msgstr ""
+msgstr "dirección de %s es inválida: %d"
 
 #: slur-engraver.cc:157
 msgid "unterminated slur"
-msgstr ""
+msgstr "ligadura sin terminar"
 
 #: slur-engraver.cc:166
-#, fuzzy
 msgid "cannot end slur"
-msgstr "no se puede encontrar: `%s'"
+msgstr "no se puede terminar frase"
 
 #: source-file.cc:74
 #, c-format
 msgid "expected to read %d characters, got %d"
-msgstr ""
+msgstr "se esperaba leer %d caracteres, se obtuvieron %d"
 
 #: staff-symbol-engraver.cc:62
 msgid "staff-span event has no direction"
-msgstr ""
+msgstr "evento de 'staff-span' sin idirección"
 
 #: stem-engraver.cc:92
 msgid "tremolo duration is too long"
-msgstr ""
+msgstr "la duración del trémolo es demasiado larga"
 
 #. FIXME:
 #: stem-engraver.cc:129
 #, c-format
 msgid "adding note head to incompatible stem (type = %d)"
-msgstr ""
+msgstr "añadiendo cabeza de nota a plica incompatible (tipo = %d)"
 
 #: stem-engraver.cc:131
 msgid "maybe input should specify polyphonic voices"
-msgstr ""
+msgstr "Quizás la entrada deba especificar voces polifónicas"
 
 #: stem.cc:105
 msgid "weird stem size, check for narrow beams"
-msgstr ""
+msgstr "longitud extraña de plica, revisando barras angostas"
 
 #: stem.cc:641
 #, c-format
 msgid "flag `%s' not found"
-msgstr ""
+msgstr "bandera `%s' no encontrada"
 
 #: stem.cc:652
 #, c-format
 msgid "flag stroke `%s' not found"
-msgstr ""
+msgstr "flag stroke `%s' no encontrada"
 
 #: system.cc:180
 #, c-format
@@ -1676,25 +1670,25 @@ msgid "Element count %d."
 msgstr "Elementos contados %d."
 
 #: system.cc:276
-#, fuzzy, c-format
+#, c-format
 msgid "Grob count %d"
 msgstr "Elementos contados %d"
 
 #: text-spanner-engraver.cc:61
 msgid "cannot find start of text spanner"
-msgstr ""
+msgstr "no se puede encontrar inicio de spanner de texto"
 
 #: text-spanner-engraver.cc:73
 msgid "already have a text spanner"
-msgstr ""
+msgstr "ya hay un spanner de texto"
 
 #: text-spanner-engraver.cc:133
 msgid "unterminated text spanner"
-msgstr ""
+msgstr "spanner de texto sin terminar"
 
 #: tie-engraver.cc:264
 msgid "lonely tie"
-msgstr ""
+msgstr "ligadura solitaria"
 
 #.
 #. Todo: should make typecheck?
@@ -1704,14 +1698,14 @@ msgstr ""
 #: time-signature-engraver.cc:64
 #, c-format
 msgid "strange time signature found: %d/%d"
-msgstr ""
+msgstr "se encontró un compás extraño: %d/%d"
 
 #. If there is no such symbol, we default to the numbered style.
 #. (Here really with a warning!)
 #: time-signature.cc:83
 #, c-format
 msgid "time signature symbol `%s' not found; reverting to numbered style"
-msgstr ""
+msgstr "no se encontró un símbolo de compás `%s'; revirtiendo a estilo numerado"
 
 #: translator-ctors.cc:52
 #, c-format
@@ -1726,137 +1720,131 @@ msgstr "no se puede encontrar: `%s'"
 #: translator.cc:332
 #, c-format
 msgid "Two simultaneous %s events, junking this one"
-msgstr ""
+msgstr "Dos eventos %s simultáneos, descartando este"
 
 #: translator.cc:333
 #, c-format
 msgid "Previous %s event here"
-msgstr ""
+msgstr "Evento %s previo aquí"
 
 #: trill-spanner-engraver.cc:68
-#, fuzzy
 msgid "cannot find start of trill spanner"
-msgstr "no puedo encontrar el principio del (de)crescendo"
+msgstr "no se encuentra el inicio del trino"
 
 #: trill-spanner-engraver.cc:80
-#, fuzzy
 msgid "already have a trill spanner"
-msgstr "ya tengo un crescendo"
+msgstr "ya hay un trino"
 
 #: vaticana-ligature-engraver.cc:388
 #, c-format
 msgid ""
 "ignored prefix (es) `%s' of this head according to restrictions of the "
 "selected ligature style"
-msgstr ""
+msgstr "se ignora prefijo(s) `%s' de esta nota de acuerdo a las restricciones de estilo de ligadura seleccionada"
 
 #: vaticana-ligature-engraver.cc:714
 #, c-format
 msgid "Vaticana_ligature_engraver: setting `spacing-increment = %f': ptr =%ul"
-msgstr ""
+msgstr "Vaticana_ligature_engraver: asignando `spacing-increment = %f': ptr =%ul"
 
 #: vaticana-ligature.cc:84
 msgid "flexa-height undefined; assuming 0"
-msgstr ""
+msgstr "flexa-height no definida, se asume 0"
 
 #: vaticana-ligature.cc:89
 msgid "ascending vaticana style flexa"
-msgstr ""
+msgstr "estilo ascendente vaticana flexa"
 
 #: vaticana-ligature.cc:177
 msgid "Vaticana_ligature: zero join (delta_pitch == 0)"
-msgstr ""
+msgstr "Vaticana_ligature: unión cero join (delta_pitch == 0)"
 
 #. fixme: be more verbose.
 #: volta-engraver.cc:144
-#, fuzzy
 msgid "cannot end volta spanner"
-msgstr "no puedo encontrar el principio del (de)crescendo"
+msgstr "no se encuentra en final de la repetición"
 
 #: volta-engraver.cc:154
 msgid "already have a volta spanner, ending that one prematurely"
-msgstr ""
+msgstr "ya existe un spanner de volta, terminando este de forma prematura"
 
 #: volta-engraver.cc:158
-#, fuzzy
 msgid "also already have an ended spanner"
-msgstr "ya tengo un crescendo"
+msgstr "ya hay un final de volta"
 
 #: volta-engraver.cc:159
-#, fuzzy
 msgid "giving up"
 msgstr "Abandonando"
 
 #: parser.yy:702
 msgid "\\paper cannot be used in \\score, use \\layout instead"
-msgstr ""
+msgstr "\\paper no puede ser usado en \\score, mejor use \\layout"
 
 #: parser.yy:726
 msgid "need \\paper for paper block"
-msgstr ""
+msgstr "se requiere \\paper para la sección paper"
 
 #: parser.yy:1172
 msgid "Grob name should be alphanumeric"
-msgstr ""
+msgstr "El nombre del elemento debe ser alfanumérico"
 
 #: parser.yy:1475
-#, fuzzy
 msgid "second argument must be pitch list"
-msgstr "El segundo argumento debe ser un símbolo"
+msgstr "El segundo argumento debe ser una lista de tonos"
 
 #: parser.yy:1502 parser.yy:1507 parser.yy:1972
 msgid "have to be in Lyric mode for lyrics"
-msgstr ""
+msgstr "Debe estar en modo Lyric para letra"
 
 #: parser.yy:1604
 msgid "expecting string as script definition"
-msgstr ""
+msgstr "esperando una cadena de texto como definición del script"
 
 #: parser.yy:1759 parser.yy:1809
 #, c-format
 msgid "not a duration: %d"
-msgstr "no es una duración: %d"
+msgstr "no es una duración: %d"
 
 #: parser.yy:1926
 msgid "have to be in Note mode for notes"
-msgstr ""
+msgstr "debe estar en modo de Note para notas"
 
 #: parser.yy:1987
 msgid "have to be in Chord mode for chords"
-msgstr ""
+msgstr "debe estar en modo Chord para acordes"
 
 #: lexer.ll:176
 msgid "stray UTF-8 BOM encountered"
-msgstr ""
+msgstr "se encontró caracter UTF-8 BOM aislado"
 
 #: lexer.ll:180
 msgid "Skipping UTF-8 BOM"
-msgstr ""
+msgstr "Saltando UTF-8 BOM"
 
 #: lexer.ll:235
-#, fuzzy, c-format
+#, c-format
 msgid "Renaming input to: `%s'"
-msgstr "Limpiando `%s'..."
+msgstr "Renombrando entrada a: `%s'"
 
 #: lexer.ll:252
 msgid "quoted string expected after \\version"
-msgstr ""
+msgstr "se esperaba cadena entre comillas después de \\version"
 
 #: lexer.ll:256
 msgid "quoted string expected after \\sourcefilename"
-msgstr ""
+msgstr "se esperaba cadena entre comillas después de \\sourcefilename"
 
 #: lexer.ll:260
 msgid "integer expected after \\sourcefileline"
-msgstr ""
+msgstr "se esperaba un entero después de \\sourcefileline"
 
 #: lexer.ll:273
 msgid "EOF found inside a comment"
-msgstr ""
+msgstr "Se encontró FIN de ARCHIVO dentro de un comentario"
 
 #: lexer.ll:288
 msgid "\\maininput not allowed outside init files"
-msgstr ""
+msgstr "\\maininput no es permitido fuera de los archivos de incicialización"
 
 #: lexer.ll:312
 #, c-format
@@ -1866,176 +1854,174 @@ msgstr "identificativo equivocado o no definido: `%s'"
 #. backup rule
 #: lexer.ll:321
 msgid "end quote missing"
-msgstr ""
+msgstr "comillas de cierre faltantes"
 
 #: lexer.ll:466
 msgid "Brace found at end of lyric.  Did you forget a space?"
-msgstr ""
+msgstr "Se encontró un corchete al final de una letra. ¿Olvidó poner espacio?"
 
 #: lexer.ll:559
 msgid "Brace found at end of markup.  Did you forget a space?"
-msgstr ""
+msgstr "Se encontró un corchete al final de un markup. ¿Olvidó poner espacio?"
 
 #: lexer.ll:659
 #, c-format
 msgid "invalid character: `%c'"
-msgstr "carácter no válido: `%c'"
+msgstr "carácter no válido: `%c'"
 
 #: lexer.ll:774 lexer.ll:775
 #, c-format
 msgid "unknown escaped string: `\\%s'"
-msgstr ""
+msgstr "cadena de escape desconocida: `\\%s'"
 
 #: lexer.ll:880 lexer.ll:881
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
-msgstr ""
+msgstr "versión de archivo demasiado vieja: %s (más antigua soportada: %s)"
 
 #: lexer.ll:881 lexer.ll:882
-#, fuzzy
 msgid "consider updating the input with the convert-ly script"
-msgstr ""
-"Considere la conversión de la entrada con ayuda del guión (script) convert-ly"
+msgstr "considere actualizar la entrada con el script convert-ly"
 
 #: lexer.ll:887 lexer.ll:888
 #, c-format
 msgid "program too old: %s (file requires: %s)"
-msgstr ""
+msgstr "programa demasiado viejo: %s (archivo requiere: %s)"
 
 #: backend-library.scm:19 lily.scm:599 ps-to-png.scm:82
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "Invoking `~a'..."
-msgstr "Invocando `%s'"
+msgstr "Invocando `~a'..."
 
 #: backend-library.scm:24
 #, scheme-format
 msgid "`~a' failed (~a)"
-msgstr ""
+msgstr "`~a' falló (~a)"
 
 #: backend-library.scm:95 framework-tex.scm:343 framework-tex.scm:368
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "Converting to `~a'..."
-msgstr "Escribiendo `%s'..."
+msgstr "Convirtiendo a `~a'..."
 
 #: backend-library.scm:108
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "Converting to ~a..."
-msgstr "Escribiendo `%s'..."
+msgstr "Convirtiendo a ~a..."
 
 #: backend-library.scm:145
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "Writing header field `~a' to `~a'..."
-msgstr "escribiendo el campo de cabecera `%s' a `%s'"
+msgstr "Escribiendo el campo de cabecera `~a' to `~a'..."
 
 #: define-context-properties.scm:20 define-grob-properties.scm:10
 #: define-music-properties.scm:10
 #, scheme-format
 msgid "symbol ~S redefined"
-msgstr ""
+msgstr "símbolo ~S redefinido"
 
 #: define-event-classes.scm:119
 #, scheme-format
 msgid "event class ~A seems to be unused"
-msgstr ""
+msgstr "evento de clase ~A parece no ser usado"
 
 #. should be programming-error
 #: define-event-classes.scm:125
 #, scheme-format
 msgid "translator listens to nonexisting event class ~A"
-msgstr ""
+msgstr "traductor escucha a un evento de clase inexistente ~A"
 
 #: define-markup-commands.scm:255
 msgid "no systems found in \\score markup, does it have a \\layout block?"
-msgstr ""
+msgstr "No se encontraron sistemas en el bloque \\score, tiene un bloque de \\layout?"
 
 #: define-markup-commands.scm:1297
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "not a valid duration string: ~a"
-msgstr "no es una duración: %d"
+msgstr "no representa una duración válida: ~a"
 
 #: define-music-types.scm:751
 #, scheme-format
 msgid "symbol expected: ~S"
-msgstr ""
+msgstr "se esperaba un símbolo:~S"
 
 #: define-music-types.scm:754
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "cannot find music object: ~S"
-msgstr "no se puede encontrar el contexto de `%s'"
+msgstr "no se encuentra objeto musical: ~S"
 
 #: define-music-types.scm:774
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "unknown repeat type `~S'"
-msgstr "traductor desconocido: `%s'"
+msgstr "tipo de repetición desconocido `~S'"
 
 #: define-music-types.scm:775
 msgid "See music-types.scm for supported repeats"
-msgstr ""
+msgstr "Vea music-types.scp para repeticiones soportadas"
 
 #: document-backend.scm:91
 #, scheme-format
 msgid "pair expected in doc ~s"
-msgstr ""
+msgstr "se esperaba un par en doc ~s"
 
 #: document-backend.scm:135
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "cannot find interface for property: ~S"
-msgstr "no puedo encontrar el carácter número: %d"
+msgstr "no se encuentra interface para la propiedad: ~S"
 
 #: document-backend.scm:145
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "unknown Grob interface: ~S"
-msgstr "traductor desconocido: `%s'"
+msgstr "Interface de elemento desconocida: ~S"
 
 #: documentation-lib.scm:45
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "Processing ~S..."
-msgstr "Procesando..."
+msgstr "Procesando ~S..."
 
 #: documentation-lib.scm:150
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "Writing ~S..."
-msgstr "Escribiendo `%s'..."
+msgstr "Escribiendo ~S..."
 
 #: documentation-lib.scm:172
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "cannot find description for property ~S (~S)"
-msgstr "no puedo encontrar el carácter número: %d"
+msgstr "no se encuentra la descripción para la propiedad ~S(~S)"
 
 #: framework-eps.scm:91 framework-eps.scm:92
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "Writing ~a..."
-msgstr "Escribiendo `%s'..."
+msgstr "Escribiendo ~a..."
 
 #: framework-ps.scm:279
 #, scheme-format
 msgid "cannot embed ~S=~S"
-msgstr ""
+msgstr "no se puede empotrar ~S=~S"
 
 #: framework-ps.scm:332
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
-msgstr ""
+msgstr "no se puede extraer archivo que concuerde ~a desde ~a"
 
 #: framework-ps.scm:349
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
-msgstr ""
+msgstr "se ignora como empotrar ~S=~S"
 
 #: framework-ps.scm:380
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
-msgstr "No se sabe como interpretar la articulación `%s'"
+msgstr "no se sabe como empotrar la fuente ~s ~s ~s"
 
 #: framework-ps.scm:729
 #, scheme-format
 msgid "cannot convert <stdout> to ~S"
-msgstr ""
+msgstr "no se puede convertir <stdout> a ~S"
 
 #: framework-ps.scm:748 framework-ps.scm:751
 #, scheme-format
 msgid "cannot generate ~S using the postscript back-end"
-msgstr ""
+msgstr "no se puede generar ~S usando el backend postscript"
 
 #: framework-ps.scm:758
 msgid ""
@@ -2047,719 +2033,170 @@ msgid ""
 "\n"
 "or remove the lilypond-book specific settings from the input.\n"
 msgstr ""
+"\n"
+"El procesador PostScript no soporta la infraestructura 'clásica'.\n"
+"Use el procesador EPS en su lugar.\n"
+"  lilipond -b eps <archivo>\n"
+"\\ "
+"o elimine sintaxis específicas de lilypond-book de la entrada.\n"
 
 #: framework-tex.scm:360
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "TeX file name must not contain whitespace: `~a'"
-msgstr "el nombre del fichero no debería contener espacios: `%s'"
+msgstr "El nombre del archivo TeX no puede contener espacios: `~a'"
 
 #: layout-beam.scm:29
 #, scheme-format
 msgid "Error in beam quanting.  Expected (~S,~S) found ~S."
-msgstr ""
+msgstr "Error en cuantizado de barras. Esperaba (~S,~S) se encontró ~S"
 
 #: layout-beam.scm:46
 #, scheme-format
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
-msgstr ""
+msgstr "Error en cuantizado de barras. Esperaba ~S 0, se encontró ~S"
 
 #: layout-page-layout.scm:357
-#, fuzzy
 msgid "Calculating page breaks..."
-msgstr "Calculando las posiciones de las columnas"
+msgstr "Calculando cortes de página..."
 
 #: lily-library.scm:593
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "unknown unit: ~S"
-msgstr "traductor desconocido: `%s'"
+msgstr "unidad desconocida: ~S"
 
 #: lily-library.scm:626
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
-msgstr ""
+msgstr "no se encontró enunciado \\version, por favor añáda ~a para compatibilidad futura."
 
 #: lily-library.scm:633
 msgid "old relative compatibility not used"
-msgstr ""
+msgstr "old relative: compatibilidad anitgua no se usó"
 
 #: lily.scm:144
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "cannot find: ~A"
-msgstr "no se puede encontrar: `%s'"
+msgstr "no se puede encontrar: ~A"
 
 #: lily.scm:209
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
-msgstr ""
+msgstr "argumento erróneo ~a.  Se esperaba ~a, se encontró ~s"
 
 #: lily.scm:525 lily.scm:589
 #, scheme-format
 msgid "failed files: ~S"
-msgstr ""
+msgstr "se falló en los archivos: ~S"
 
 #: lily.scm:579
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "Redirecting output to ~a..."
-msgstr "dependencias producidas en `%s'..."
+msgstr "Redirigiendo salida a ~a..."
 
 #: ly-syntax-constructors.scm:40
 msgid "Music head function must return Music object"
-msgstr ""
+msgstr "Función de cabecera de Music debe regresar un objeto Music."
 
 #: ly-syntax-constructors.scm:136
 #, scheme-format
 msgid "Invalid property operation ~a"
-msgstr ""
+msgstr "Operación de propiedad inválida ~a"
 
 #: markup.scm:123
 #, scheme-format
 msgid "Wrong number of arguments.  Expect: ~A, found ~A: ~S"
-msgstr ""
+msgstr "Cantidad errónea de argumentos.  Esperaba: ~A, se encontró ~A: ~S"
 
 #: markup.scm:129
 #, scheme-format
 msgid "Invalid argument in position ~A.  Expect: ~A, found: ~S."
-msgstr ""
+msgstr "Argumento erróneo en la posición ~A. .Esperaba: ~A, se encontró: ~S"
 
 #: music-functions.scm:213
 msgid "More alternatives than repeats.  Junking excess alternatives"
-msgstr ""
+msgstr "Más alternativas que repeticiones.  Descartando alternativas excedentes."
 
 #: music-functions.scm:232
 #, scheme-format
 msgid "expecting 2 elements for chord tremolo, found ~a"
-msgstr ""
+msgstr "se esperaban dos elementos den trémolo de acorde, se encontró ~a"
 
 #: music-functions.scm:538
 #, scheme-format
 msgid "music expected: ~S"
-msgstr ""
+msgstr "se esperaba música: ~S"
 
 #. FIXME: uncomprehensable message
 #: music-functions.scm:589
 #, scheme-format
 msgid "Bar check failed.  Expect to be at ~a, instead at ~a"
-msgstr ""
+msgstr "Revisión de compases falló. Esperaba estar en ~a, en vez de ~a "
 
 #: music-functions.scm:748
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "cannot find quoted music: `~S'"
-msgstr "no encuentro la fuente: `%s'"
+msgstr "no se encuentra la música: `~S'"
 
 #: music-functions.scm:942
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "unknown accidental style: ~S"
-msgstr "traductor desconocido: `%s'"
+msgstr "estilo desconocido de accidentes: ~S"
 
 #: output-ps.scm:315
 msgid "utf-8-string encountered in PS backend"
-msgstr ""
+msgstr "se encontró una cadena utf-8 en el procesador PS"
 
 #: output-svg.scm:42
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "undefined: ~S"
-msgstr "prolongación sin terminar"
+msgstr "indefinido: ~S"
 
 #: output-svg.scm:132
 #, scheme-format
 msgid "cannot decypher Pango description: ~a"
-msgstr ""
+msgstr "no puedo descifrar descripción Pango: ~a"
 
 #: output-tex.scm:98
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "cannot find ~a in ~a"
-msgstr "no encuentro la fuente: `%s'"
+msgstr "no se puede enconrtar ~a en ~a"
 
 #: paper.scm:69
 msgid "Not in toplevel scope"
-msgstr ""
+msgstr "No en el ámbito superior"
 
 #: paper.scm:117
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
-msgstr ""
+msgstr "Este no es un objeto \\layout{}, ~S"
 
 #: paper.scm:129
 #, scheme-format
 msgid "Unknown papersize: ~a"
-msgstr ""
+msgstr "papersize (tamaño de papel) desconocido: ~a"
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
 #: paper.scm:144
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
-msgstr ""
+msgstr "Debe usar #(set-paper-size .. ) dentro de \\paper { ... }"
 
 #: parser-clef.scm:126
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "unknown clef type `~a'"
-msgstr "traductor desconocido: `%s'"
+msgstr "tipo de clave desconocida `~a'"
 
 #: parser-clef.scm:127
 msgid "see scm/clef.scm for supported clefs"
-msgstr ""
+msgstr "vea scm/clef.scm para las claves soportadas"
 
 #: ps-to-png.scm:88
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "~a exited with status: ~S"
-msgstr "fin de la orden con valor %d"
+msgstr "~a terminó con estado: ~S"
 
 #: to-xml.scm:190
 #, scheme-format
 msgid "assertion failed: ~S"
-msgstr ""
-
-#, fuzzy
-#~ msgid "show warranty"
-#~ msgstr "mostrar los avisos de garantía y de copyright"
-
-#, fuzzy
-#~ msgid "loading default font"
-#~ msgstr "Cargando la fuente por defecto"
-
-#~ msgid "cannot find default font: `%s'"
-#~ msgstr "no puedo encontrar la fuente por defecto: `%s'"
-
-#~ msgid "crescendo too small"
-#~ msgstr "crescendo demasiado pequeño"
-
-#~ msgid "print this help"
-#~ msgstr "esta ayuda"
-
-#, fuzzy
-#~ msgid "cannot open file %s"
-#~ msgstr "no se puede abrir el fichero: `%s'"
-
-#, fuzzy
-#~ msgid "Incorrect lilypond version: %s (%s, %s)"
-#~ msgstr "versión de lilypond incorrecta: %s (%s, %s)"
-
-#~ msgid "no one to print a tremolos"
-#~ msgstr "ninguno para la impresión de trémolos"
-
-#, fuzzy
-#~ msgid "junking event: `%s'"
-#~ msgstr "Invocando `%s'"
-
-#~ msgid "no one to print a repeat brace"
-#~ msgstr "ninguno para la impresión de llaves repetidas"
-
-#~ msgid "cannot find `%s' context"
-#~ msgstr "no se puede encontrar el contexto de `%s'"
-
-#, fuzzy
-#~ msgid "no feasible line breaking found"
-#~ msgstr "No se ha encontrado ninguna ruptura de línea factible"
-
-#~ msgid "Creator: "
-#~ msgstr "Creador: "
-
-#, fuzzy
-#~ msgid "at "
-#~ msgstr ", en "
-
-#, fuzzy
-#~ msgid "in quotation: junking event %s"
-#~ msgstr "Invocando `%s'"
-
-#, fuzzy
-#~ msgid "unterminated trill spanner"
-#~ msgstr "prolongación sin terminar"
-
-#, fuzzy
-#~ msgid "identifier should have alphabetic characters only"
-#~ msgstr "El identificativo debería contener solamente caracteres alfabéticos"
-
-#, fuzzy
-#~ msgid "cannot find signature for music function"
-#~ msgstr "no se puede encontrar el contexto de `%s'"
-
-#, fuzzy
-#~ msgid "Opening pipe `%s'"
-#~ msgstr "Limpiando `%s'..."
-
-#~ msgid "(ignored)"
-#~ msgstr "(ignorado)"
-
-#~ msgid "Cleaning %s..."
-#~ msgstr "Limpiando %s..."
-
-#, fuzzy
-#~ msgid "Usage: %s [OPTION]... [FILE]..."
-#~ msgstr "Sintaxis: %s [OPCIÓN]... FICHERO..."
-
-#, fuzzy
-#~ msgid "%s: skipping: `%s'"
-#~ msgstr "no existe tal parámetro: %s"
-
-#, fuzzy
-#~ msgid "print version information"
-#~ msgstr "mostrar número de versión"
-
-#~ msgid "getopt says: `%s'"
-#~ msgstr "getopt() dice: `%s'"
-
-#~ msgid "command exited with value %d"
-#~ msgstr "fin de la orden con valor %d"
-
-#~ msgid "debug"
-#~ msgstr "depurar"
-
-#~ msgid "define macro NAME [optional expansion EXP]"
-#~ msgstr "define la macro NOMBRE [EXPRESIÓN de expansión opcional]"
-
-#~ msgid "only pre-process"
-#~ msgstr "solamente preprocesar"
-
-#~ msgid "no such context: %s"
-#~ msgstr "no hay tal contexto: %s"
-
-#~ msgid "Processing `%s'..."
-#~ msgstr "Procesando `%s'..."
-
-#, fuzzy
-#~ msgid "Wrote `%s'"
-#~ msgstr "Escribiendo `%s'..."
-
-#, fuzzy
-#~ msgid "cannot dlopen: %s: %s"
-#~ msgstr "no se puede abrir el fichero: `%s'"
-
-#, fuzzy
-#~ msgid "install package: %s or %s"
-#~ msgstr "no puedo cambiar de `%s' a `%s'"
-
-#, fuzzy
-#~ msgid "parsing AFM file: `%s'"
-#~ msgstr "Error de análisis sintáctico del fichero AFM: `%s'"
-
-#~ msgid "checksum mismatch for font file: `%s'"
-#~ msgstr "suma de control no acorde para el fichero de fuentes: `%s'"
-
-#~ msgid "does not match: `%s'"
-#~ msgstr "no concuerda: `%s'"
-
-#, fuzzy
-#~ msgid "Rebuild all .afm files, and remove all .pk and .tfm files."
-#~ msgstr ""
-#~ "Reconstruir todos los ficheros .afm, y borrar todos los ficheros .pk y ."
-#~ "tfm. Re-ejecutar con la opción -V para mostrar las rutas de las fuentes."
-
-#, fuzzy
-#~ msgid "adding lilypond directory: %s"
-#~ msgstr "no se puede crear el directorio: `%s'"
-
-#~ msgid "Separation_item:  I've been drinking too much"
-#~ msgstr "Separation_item: He bebido demasiado"
-
-#, fuzzy
-#~ msgid "suspect duration in beam: %s"
-#~ msgstr "no es una duración: %d"
-
-#, fuzzy
-#~ msgid "syntax error: cannot back up"
-#~ msgstr "error no fatal: "
-
-#, fuzzy
-#~ msgid "Stack now"
-#~ msgstr "pista "
-
-#, fuzzy
-#~ msgid "Reading a token: "
-#~ msgstr "Limpiando `%s'..."
-
-#, fuzzy
-#~ msgid "syntax error, unexpected %s"
-#~ msgstr "error no fatal: "
-
-#, fuzzy
-#~ msgid "syntax error, unexpected %s, expecting %s"
-#~ msgstr "error no fatal: "
-
-#, fuzzy
-#~ msgid "syntax error, unexpected %s, expecting %s or %s"
-#~ msgstr "error no fatal: "
-
-#, fuzzy
-#~ msgid "syntax error, unexpected %s, expecting %s or %s or %s"
-#~ msgstr "error no fatal: "
-
-#, fuzzy
-#~ msgid "syntax error; also memory exhausted"
-#~ msgstr "error no fatal: "
-
-#, fuzzy
-#~ msgid "syntax error"
-#~ msgstr "error no fatal: "
-
-#, fuzzy
-#~ msgid "cannot find CFF/PFA/PFB font ~S=~S"
-#~ msgstr "no encuentro la fuente: `%s'"
-
-#, fuzzy
-#~ msgid "unknown bar glyph: `~S'"
-#~ msgstr "traductor desconocido: `%s'"
-
-#, fuzzy
-#~ msgid "Extracting fonts to %s..."
-#~ msgstr "no se puede crear el directorio: `%s'"
-
-#, fuzzy
-#~ msgid "Writing %s..."
-#~ msgstr "Escribiendo `%s'..."
-
-#, fuzzy
-#~ msgid "Second argument must be pitch list."
-#~ msgstr "El segundo argumento debe ser un símbolo"
-
-#, fuzzy
-#~ msgid "programming error: "
-#~ msgstr "error de programación: "
-
-#, fuzzy
-#~ msgid "Programming error: "
-#~ msgstr "error de programación: "
-
-#~ msgid "I'm one myself"
-#~ msgstr "Yo mismo soy uno"
-
-#~ msgid "Huh?  Got %d, expected %d characters"
-#~ msgstr "¿Eh? Se han obtenido %d caracteres, cuando se esperaban %d"
-
-#~ msgid "EXT"
-#~ msgstr "EXT"
-
-#, fuzzy
-#~ msgid "kpathsea cannot find %s file: `%s'"
-#~ msgstr "no puedo encontrar el fichero: `%s'"
-
-#, fuzzy
-#~ msgid "kpathsea cannot find file: `%s'"
-#~ msgstr "no puedo encontrar el fichero: `%s'"
-
-#, fuzzy
-#~ msgid "EXTs"
-#~ msgstr "EXT"
-
-#, fuzzy
-#~ msgid "generate DVI"
-#~ msgstr "generar una salida PostScript"
-
-#, fuzzy
-#~ msgid "generate TeX"
-#~ msgstr "generar una salida PostScript"
-
-#, fuzzy
-#~ msgid "kpathsea can not find %s file: `%s'"
-#~ msgstr "no puedo encontrar el fichero: `%s'"
-
-#, fuzzy
-#~ msgid "kpathsea can not find AFM file `%s'"
-#~ msgstr "no puedo encontrar el fichero: `%s'"
-
-#, fuzzy
-#~ msgid "kpathsea can not find TFM file: `%s'"
-#~ msgstr "no puedo encontrar el fichero: `%s'"
-
-#, fuzzy
-#~ msgid "Converting to `~a.ps'..."
-#~ msgstr "Escribiendo `%s'..."
-
-#~ msgid "find pfa fonts used in FILE"
-#~ msgstr "buscar las fuentes pfa utilizadas en FICHERO"
-
-#~ msgid "add DIR to LilyPond's search path"
-#~ msgstr "añadir DIR a la ruta de búsqueda de LilyPond"
-
-#, fuzzy
-#~ msgid "keep all output, output to directory %s.dir"
-#~ msgstr "conservar todas las salidas, y nombrar el directorio %s.dir"
-
-#~ msgid "do not run LilyPond"
-#~ msgstr "no ejecutar LilyPond"
-
-#~ msgid "produce MIDI output only"
-#~ msgstr "producir solamente una salida MIDI"
-
-#, fuzzy
-#~ msgid "generate PDF output"
-#~ msgstr "generar una salida PostScript"
-
-#, fuzzy
-#~ msgid "generate PS.GZ"
-#~ msgstr "generar una salida PostScript"
-
-#~ msgid "change global setting KEY to VAL"
-#~ msgstr "cambiar el parámetro global CLAVE a VALOR"
-
-#, fuzzy
-#~ msgid "Continuing..."
-#~ msgstr "Ejecutando %s..."
-
-#~ msgid "Analyzing %s..."
-#~ msgstr "Analizando %s..."
-
-#, fuzzy
-#~ msgid "no LilyPond output found for `%s'"
-#~ msgstr "no se ha encontrado ninguna salida de lilypond para %s"
-
-#, fuzzy
-#~ msgid "no files specified on command line"
-#~ msgstr "no se ha especificado ningún fichero en la línea de órdenes."
-
-#, fuzzy
-#~ msgid "%s output to <stdout>..."
-#~ msgstr "%s producidos en `%s'..."
-
-#, fuzzy
-#~ msgid "%s output to %s..."
-#~ msgstr "%s producidos en `%s'..."
-
-#, fuzzy
-#~ msgid "cannot find file: `%s.%s'"
-#~ msgstr "no puedo encontrar el fichero: `%s'"
-
-#, fuzzy
-#~ msgid "DIM"
-#~ msgstr "DIR"
-
-#, fuzzy
-#~ msgid "write dependencies"
-#~ msgstr "añadir el prefijo DIR a las dependencias"
-
-#, fuzzy
-#~ msgid "prepend PREF before each -M dependency"
-#~ msgstr "añadir el prefijo DIR a las dependencias"
-
-#, fuzzy
-#~ msgid "do not run lilypond"
-#~ msgstr "no ejecutar LilyPond"
-
-#~ msgid "write Makefile dependencies for every input file"
-#~ msgstr "crear las dependencias para Makefile de cada fichero de entrada"
-
-#, fuzzy
-#~ msgid "invalid value: `%s'"
-#~ msgstr "valor no válido: %s"
-
-#, fuzzy
-#~ msgid "Writing HTML menu `%s'"
-#~ msgstr "Escribiendo `%s'..."
-
-#, fuzzy
-#~ msgid "programming error: %s (Continuing; cross thumbs)\n"
-#~ msgstr " (Continuando; cruza los dedos)"
-
-#~ msgid "NaN"
-#~ msgstr "NaN"
-
-#, fuzzy
-#~ msgid ""
-#~ "Nothing to connect extender to on the left.  Ignoring extender event."
-#~ msgstr ""
-#~ "Nada a la izquierda a lo que conectar la prologación. Ignorando la "
-#~ "petición de prolongación."
-
-#, fuzzy
-#~ msgid "Nothing to connect hyphen to on the left.  Ignoring hyphen event."
-#~ msgstr ""
-#~ "Nada a la izquierda a lo que conectar la prologación. Ignorando la "
-#~ "petición de prolongación."
-
-#~ msgid "Score contains errors; will not process it"
-#~ msgstr "La partitura contiene errores; no será procesada."
-
-#~ msgid "Now processing: `%s'"
-#~ msgstr "Ahora en proceso: `%s'"
-
-#~ msgid "prepend DIR to dependencies"
-#~ msgstr "añadir el prefijo DIR a las dependencias"
-
-#~ msgid "inhibit file output naming and exporting"
-#~ msgstr "inhibir la denominación del fichero de salida y la exportación"
-
-#~ msgid "silly duration"
-#~ msgstr "duración ridícula"
-
-#~ msgid "I'm one myself: `%s'"
-#~ msgstr "Yo mismo soy uno: `%s'"
-
-#~ msgid "from musical definition: %s"
-#~ msgstr "a partir de la definición musical: %s"
-
-#, fuzzy
-#~ msgid "unterminated pedal bracket"
-#~ msgstr "prolongación sin terminar"
-
-#~ msgid "Already contains: `%s'"
-#~ msgstr "Ya contiene: `%s'"
-
-#~ msgid "Not adding translator: `%s'"
-#~ msgstr "No se añade el traductor: `%s'"
-
-#~ msgid "Fetch and rebuild from latest source package"
-#~ msgstr "Obtener y reconstruir a partir del último paquete fuente"
-
-#~ msgid "unpack and build in DIR [%s]"
-#~ msgstr "desempaquetar y construir en DIR [%s]"
-
-#~ msgid "execute COMMAND, subtitute:"
-#~ msgstr "ejecutar la órden de sustitución:"
-
-#~ msgid "%b: build root"
-#~ msgstr "%b: construir la raíz"
-
-#~ msgid "%n: package name"
-#~ msgstr "%n: nombre del paquete"
-
-#~ msgid "%r: release directory"
-#~ msgstr "%r: directorio de publicación"
-
-#~ msgid "%t: tarball"
-#~ msgstr "%t: tarball"
-
-#~ msgid "%v: package version"
-#~ msgstr "%v: versión del paquete"
-
-#~ msgid "keep all output, and name the directory %s"
-#~ msgstr "conservar todas las salidas, y nombrar el directorio %s"
-
-#~ msgid "upon failure notify EMAIL[,EMAIL]"
-#~ msgstr "en caso de fallo avisar por EMAIL[,EMAIL]"
-
-#~ msgid "remove previous build"
-#~ msgstr "eliminar la construcción anterior"
-
-#~ msgid "fetch and build URL [%s]"
-#~ msgstr "obtener y construir el URL [%s]"
-
-#~ msgid "latest is: %s"
-#~ msgstr "el último es: %s"
-
-#~ msgid "Fetching `%s'..."
-#~ msgstr "Obteniendo `%s'..."
-
-#~ msgid "Building `%s'..."
-#~ msgstr "Construyendo `%s'..."
-
-#~ msgid "invalid subtraction: not part of chord: %s"
-#~ msgstr "sustracción no válida: no forma parte del acorde: %s"
-
-#~ msgid "invalid inversion pitch: not part of chord: %s"
-#~ msgstr "inversión de tonos no válida: no forma parte del acorde: %s"
-
-#~ msgid ", at "
-#~ msgstr ", en "
-
-#~ msgid "Generate .dvi with LaTeX for LilyPond"
-#~ msgstr "Generar un fichero .dvi con la ayuda de LaTeX para LilyPond"
-
-#~ msgid "cannot map file"
-#~ msgstr "no es posible producir el fichero map"
-
-#~ msgid "This binary was compiled with the following options:"
-#~ msgstr "Este binario fue compilado con las siguientes opciones:"
-
-#~ msgid "%s is far from completed.  Not all constructs are recognised."
-#~ msgstr ""
-#~ "%s está lejos de estar completo. No se han reconocido todas las "
-#~ "construcciones."
-
-#~ msgid "EOF in a string"
-#~ msgstr "Fin de fichero (EOF) en una cadena"
-
-#~ msgid "<stdin>"
-#~ msgstr "<stdin>"
-
-#~ msgid "unknown spacing pair `%s', `%s'"
-#~ msgstr "par de espacimiento desconocido `%s', `%s'"
-
-#~ msgid "track %d:"
-#~ msgstr "pista %d:"
-
-#~ msgid "% MIDI copyright:"
-#~ msgstr "% Copyright MIDI:"
-
-#~ msgid "% MIDI instrument:"
-#~ msgstr "% Instrumento MIDI:"
-
-#~ msgid "% Creator: "
-#~ msgstr "% Creador: "
-
-#~ msgid "% Automatically generated"
-#~ msgstr "% Generado automáticamente"
-
-#~ msgid "% from input file: "
-#~ msgstr "% a partir del fichero de entrada: "
-
-#~ msgid "set FILE as default output"
-#~ msgstr "establecer FICHERO como salida por defecto"
-
-#~ msgid "be quiet"
-#~ msgstr "trabajar en silencio"
-
-#~ msgid "do not output rests or skips"
-#~ msgstr "no producir pausas o saltos"
-
-#~ msgid "set smallest duration"
-#~ msgstr "definir la duración más pequeña"
-
-#~ msgid "do not timestamp the output"
-#~ msgstr "no datar la salida"
-
-#~ msgid "assume no double dotted notes"
-#~ msgstr "no asumir notas doblemente puntuadas"
-
-#~ msgid "Usage: %s [OPTION]... [FILE]"
-#~ msgstr "Sintaxis: %s [OPCIÓN]... [FICHERO]"
-
-#~ msgid "Translate MIDI-file to lilypond"
-#~ msgstr "Traducir un fichero MIDI a lilypond"
-
-#~ msgid "no_double_dots: %d\n"
-#~ msgstr "no_double_dots: %d\n"
-
-#~ msgid "no_rests: %d\n"
-#~ msgstr "no_rests: %d\n"
-
-#~ msgid "no_quantify_b_s: %d\n"
-#~ msgstr "no_quantify_b_s: %d\n"
-
-#~ msgid "no_smaller_than: %d (1/%d)\n"
-#~ msgstr "no_smaller_than: %d (1/%d)\n"
-
-#~ msgid "no_tuplets: %d\n"
-#~ msgstr "no_tuplets: %d\n"
-
-#~ msgid "zero length string encountered"
-#~ msgstr "encontrada cadena de longitud cero"
-
-#~ msgid "MIDI header expected"
-#~ msgstr "Esperado encabezado de formato MIDI"
-
-#~ msgid "invalid header length"
-#~ msgstr "longitud del encabezado no válida"
-
-#~ msgid "invalid MIDI format"
-#~ msgstr "formato MIDI no válido"
-
-#~ msgid "invalid number of tracks"
-#~ msgstr "número de pistas no válido"
-
-#~ msgid "cannot handle non-metrical time"
-#~ msgstr "no se pueden manejar tiempos no métricos"
-
-#~ msgid "invalid running status"
-#~ msgstr "estado de ejecución no válido"
-
-#~ msgid "unimplemented MIDI meta-event"
-#~ msgstr "meta-evento MIDI no implementado"
-
-#~ msgid "invalid MIDI event"
-#~ msgstr "evento MIDI no válido"
-
-#~ msgid "MIDI track expected"
-#~ msgstr "Esperada pista MIDI"
+msgstr "declaración falló: ~S"
 
-#~ msgid "invalid track length"
-#~ msgstr "longitud de pista no válida"
diff --git a/po/es_MX.po b/po/es_MX.po
new file mode 100644 (file)
index 0000000..3163b84
--- /dev/null
@@ -0,0 +1,2202 @@
+# translation of es.po to Spanish
+# Spanish translation of GNU LilyPond - http://lilypond.org
+# Copyright (C) 2002, 2007 Free Software Foundation, Inc.
+#
+# Quique <quique@sindominio.net>, 2002.
+# Daniel Tonda Castillo <daniel.tonda@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: lilypond 2.11.10\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-12-24 10:40+0100\n"
+"PO-Revision-Date: 2007-01-07 02:53-0600\n"
+"Last-Translator: Daniel Tonda Castillo <daniel.tonda@gmail.com>\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: convertrules.py:12
+#, python-format
+msgid "Not smart enough to convert %s"
+msgstr "No soy capaz de convertir: %s"
+
+#: convertrules.py:13
+msgid "Please refer to the manual for details, and update manually."
+msgstr "Por favor dirígase al manual para más detalles y actualice manualmente."
+
+#: convertrules.py:14
+#, python-format
+msgid "%s has been replaced by %s"
+msgstr "%s se reemplazado por %s"
+
+#: convertrules.py:2398
+msgid "LilyPond source must be UTF-8"
+msgstr "La fuente LilyPond debe ser UTF-8"
+
+#: convertrules.py:2401
+msgid "Try the texstrings backend"
+msgstr "Intente el procesador texstrings"
+
+#: convertrules.py:2404
+#, python-format
+msgid "Do something like: %s"
+msgstr "Haga algo cómo: %s"
+
+#: convertrules.py:2407
+msgid "Or save as UTF-8 in your editor"
+msgstr "O guárdelo como UTF-8 en su editor."
+
+#: fontextract.py:26
+#, python-format
+msgid "Scanning %s"
+msgstr "Analizando %s"
+
+#: fontextract.py:71
+#, python-format
+msgid "Extracted %s"
+msgstr "Se ha extraído: %s"
+
+#: fontextract.py:86
+#, python-format
+msgid "Writing fonts to %s"
+msgstr "Escribiendo fuentes a %s"
+
+#: lilylib.py:85 lilylib.py:136
+#, python-format
+msgid "Invoking `%s'"
+msgstr "Invocando `%s'"
+
+#: lilylib.py:87 lilylib.py:138
+#, python-format
+msgid "Running %s..."
+msgstr "Ejecutando %s..."
+
+#: lilylib.py:203
+#, python-format
+msgid "Usage: %s"
+msgstr "Uso: %s"
+
+#: abc2ly.py:1349 convert-ly.py:80 lilypond-book.py:125 midi2ly.py:869
+#, python-format
+msgid "%s [OPTION]... FILE"
+msgstr "Sintaxis: %s [OPCION]... ARCHIVO"
+
+#: abc2ly.py:1351
+#, python-format
+msgid ""
+"abc2ly converts ABC music files (see\n"
+"%s) to LilyPond input."
+msgstr ""
+"abc2ly convierte archivos de música ABC (vea\n"
+"%s) a código LilyPond."
+
+#: abc2ly.py:1355 etf2ly.py:1200 midi2ly.py:885
+msgid "write output to FILE"
+msgstr "escribir la salida en el FICHERO"
+
+#: abc2ly.py:1357
+msgid "be strict about succes"
+msgstr "Sea estricto sobre el éxito"
+
+#: abc2ly.py:1359
+msgid "preserve ABC's notion of beams"
+msgstr "preservar la idea de ABC sobre las barras"
+
+#: abc2ly.py:1361 convert-ly.py:112 etf2ly.py:1208 lilypond-book.py:168
+#: midi2ly.py:911 musicxml2ly.py:505
+msgid "Report bugs via"
+msgstr "Reporte errores por medio de"
+
+#: convert-ly.py:41
+msgid ""
+"Update LilyPond input to newer version.  By default, update from the\n"
+"version taken from the \\version command, to the current LilyPond version."
+msgstr ""
+"Actualice el código LilyPond a una versión más reciente. Por defecto, actualice desde la \n"
+"versión tomada del comando \\version, a la versión actual de LilyPond."
+
+#: convert-ly.py:43 lilypond-book.py:73
+msgid "Examples:"
+msgstr "Ejemplos:"
+
+#: convert-ly.py:56 lilypond-book.py:98 warn.cc:48 input.cc:90
+#, c-format, python-format
+msgid "warning: %s"
+msgstr "advertencia: %s"
+
+#: convert-ly.py:59 lilypond-book.py:101 warn.cc:54 input.cc:96 input.cc:104
+#, c-format, python-format
+msgid "error: %s"
+msgstr "error: %s"
+
+#: convert-ly.py:75 etf2ly.py:1190 lilypond-book.py:121 midi2ly.py:98
+msgid "Distributed under terms of the GNU General Public License."
+msgstr "Distribuido bajo los términos de la GNU General Public License."
+
+#: convert-ly.py:76 etf2ly.py:1191 lilypond-book.py:122 midi2ly.py:99
+msgid "It comes with NO WARRANTY."
+msgstr "No se entrega con GARANTIA."
+
+#: convert-ly.py:86 convert-ly.py:106
+msgid "VERSION"
+msgstr "VERSIÓN"
+
+#: convert-ly.py:88
+msgid "start from VERSION [default: \\version found in file]"
+msgstr "iniciando desde VERSIÓN [por defecto \\version encontrada en archivo]"
+
+#: convert-ly.py:91
+msgid "edit in place"
+msgstr "editar en sitio"
+
+#: convert-ly.py:94
+msgid "do not add \\version command if missing"
+msgstr "no añadir comando \\version si es que falta"
+
+#: convert-ly.py:100
+msgid "show rules [default: --from=0, --to=@TOPLEVEL_VERSION@]"
+msgstr "mostrar reglas [por defecto: --from=0, --to=@TOPLEVEL_VERSION@]"
+
+#: convert-ly.py:105
+msgid "convert to VERSION [default: @TOPLEVEL_VERSION@]"
+msgstr "convertir a VERSION [default: @TOPLEVEL_VERSION@]"
+
+#: convert-ly.py:153
+msgid "Applying conversion: "
+msgstr "Aplicando conversión:"
+
+#: convert-ly.py:166
+msgid "Error while converting"
+msgstr "Error al hacer la conversión"
+
+#: convert-ly.py:168
+msgid "Stopping at last succesful rule"
+msgstr "Deteniéndose en la última regla exitosa"
+
+#: convert-ly.py:190
+#, python-format
+msgid "Processing `%s'... "
+msgstr "Procesando `%s'..."
+
+#: convert-ly.py:277 relocate.cc:360 source-file.cc:54
+#, c-format, python-format
+msgid "cannot open file: `%s'"
+msgstr "no se puede abrir el fichero: `%s'"
+
+#: convert-ly.py:284
+#, python-format
+msgid "cannot determine version for `%s'.  Skipping"
+msgstr "no se puede determinar la versión para `%s'.  Saltando"
+
+#: etf2ly.py:1196
+#, python-format
+msgid "%s [OPTION]... ETF-FILE"
+msgstr "%s [OPTIONS]... ARCHIVO ETF"
+
+#: etf2ly.py:1198
+msgid ""
+"Enigma Transport Format is a format used by Coda Music Technology's\n"
+"Finale product.  etf2ly converts a subset of ETF to a ready-to-use LilyPond "
+"file."
+msgstr "Enigma Transport Format es un formato usado por el producto Finale de Coda Music.  etf2ly convierte un subconjunto de ETF a un código LilyPond listo para usarse."
+
+#: etf2ly.py:1201 midi2ly.py:886 musicxml2ly.py:498 main.cc:172 main.cc:178
+msgid "FILE"
+msgstr "FICHERO"
+
+#: etf2ly.py:1203 lilypond-book.py:165 midi2ly.py:899 main.cc:185
+msgid "show warranty and copyright"
+msgstr "mostrar los avisos de garantía y de copyright"
+
+#: lilypond-book.py:71
+msgid "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
+msgstr "Procesar fragmentos LilyPond en híbridos de HTML, LaTeX, texinfo o documentos DocBook."
+
+#: lilypond-book.py:78
+msgid "BOOK"
+msgstr "BOOK"
+
+#: lilypond-book.py:87
+#, python-format
+msgid "Exiting (%d)..."
+msgstr "Saliendo (%d)..."
+
+#: lilypond-book.py:119
+#, python-format
+msgid "Copyright (c) %s by"
+msgstr "Copyright (c) %s "
+
+#: lilypond-book.py:129
+msgid "FILTER"
+msgstr "FILTRO"
+
+#: lilypond-book.py:132
+msgid "pipe snippets through FILTER [convert-ly -n -]"
+msgstr "redirigir fragmentos a través del FILTRO [convert-ly -n -]"
+
+#: lilypond-book.py:135
+msgid "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
+msgstr "use formato de salida FORMATO (texi [default], texi-html, latex, html, docbook)"
+
+#: lilypond-book.py:138
+msgid "add DIR to include path"
+msgstr "añadir DIR a la ruta de búsqueda"
+
+#: lilypond-book.py:139 lilypond-book.py:144 main.cc:171
+msgid "DIR"
+msgstr "DIR"
+
+#: lilypond-book.py:143
+msgid "write output to DIR"
+msgstr "escribir la salida en el DIRECTORIO"
+
+#: lilypond-book.py:147
+msgid "COMMAND"
+msgstr "COMANDO"
+
+#: lilypond-book.py:148
+msgid "process ly_files using COMMAND FILE..."
+msgstr "procesar archivos_ly usando COMMANDO ARCHIVO"
+
+#: lilypond-book.py:154
+msgid "Create PDF files for use with PDFTeX"
+msgstr "Crear archivos PDF para usarse con PDFTeX"
+
+#: lilypond-book.py:157
+msgid ""
+"extract all PostScript fonts into INPUT.psfonts for LaTeX\n"
+"must use this with dvips -h INPUT.psfonts"
+msgstr ""
+"extraer todas las fuentes POSTCRIPT en INPUT.psfonts, para  LaTeX\n"
+"debe usar esto para dvips -h INPUT.psfonts "
+
+#: lilypond-book.py:160 midi2ly.py:896 musicxml2ly.py:489 main.cc:184
+msgid "be verbose"
+msgstr "ser prolijo"
+
+#: lilypond-book.py:773
+#, python-format
+msgid "file not found: %s"
+msgstr "archivo no encontrado: %s"
+
+#: lilypond-book.py:1004
+#, python-format
+msgid "deprecated ly-option used: %s=%s"
+msgstr "opción ly en desuso: %s=%s"
+
+#: lilypond-book.py:1007
+#, python-format
+msgid "compatibility mode translation: %s=%s"
+msgstr "modo de traducción de compatibilidad: %s=%s"
+
+#: lilypond-book.py:1011
+#, python-format
+msgid "deprecated ly-option used: %s"
+msgstr "opción ly en desuso: %s"
+
+#: lilypond-book.py:1014
+#, python-format
+msgid "compatibility mode translation: %s"
+msgstr "modo de traducción de compatibilidad: %s"
+
+#: lilypond-book.py:1033
+#, python-format
+msgid "ignoring unknown ly option: %s"
+msgstr "ignorando opicón ly desconocida: %s"
+
+#: lilypond-book.py:1388
+#, python-format
+msgid "Opening filter `%s'"
+msgstr "Abriendo filtro `%s'..."
+
+#: lilypond-book.py:1405
+#, python-format
+msgid "`%s' failed (%d)"
+msgstr "%s falló (%d)"
+
+#: lilypond-book.py:1406
+msgid "The error log is as follows:"
+msgstr "La bitácora de error a continuación:"
+
+#: lilypond-book.py:1476
+msgid "cannot find \\begin{document} in LaTeX document"
+msgstr "no se puede encontrar \\begin{document} en el documento LaTeX"
+
+#: lilypond-book.py:1586
+msgid "Writing snippets..."
+msgstr "Escribiendo fragmentos..."
+
+#: lilypond-book.py:1591
+msgid "Processing..."
+msgstr "Procesando..."
+
+#: lilypond-book.py:1595
+msgid "All snippets are up to date..."
+msgstr "Todos los fragmentos están actualizados"
+
+#: lilypond-book.py:1605
+#, python-format
+msgid "cannot determine format for: %s"
+msgstr "no puedo determinar el formato para: %s"
+
+#: lilypond-book.py:1616
+#, python-format
+msgid "%s is up to date."
+msgstr "%s está actualizado."
+
+#: lilypond-book.py:1622
+#, python-format
+msgid "Writing `%s'..."
+msgstr "Escribiendo `%s'..."
+
+#: lilypond-book.py:1677
+msgid "Output would overwrite input file; use --output."
+msgstr "La salida sobreescribirá el archivo de entrada, use --output."
+
+#: lilypond-book.py:1681
+#, python-format
+msgid "Reading %s..."
+msgstr "Leyendo %s..."
+
+#: lilypond-book.py:1700
+msgid "Dissecting..."
+msgstr "Analizando..."
+
+#: lilypond-book.py:1716
+#, python-format
+msgid "Compiling %s..."
+msgstr "Compilando %s..."
+
+#: lilypond-book.py:1725
+#, python-format
+msgid "Processing include: %s"
+msgstr "Procesando inclusión: %s"
+
+#: lilypond-book.py:1739
+#, python-format
+msgid "Removing `%s'"
+msgstr "Borrando `%s'"
+
+#: lilypond-book.py:1815
+#, python-format
+msgid "Writing fonts to %s..."
+msgstr "Escribiendo fuentes a %s..."
+
+#: lilypond-book.py:1830
+msgid "option --psfonts not used"
+msgstr "opción --psfonts no usada"
+
+#: lilypond-book.py:1831
+msgid "processing with dvips will have no fonts"
+msgstr "al procesar con dvips no contendrá fuentes"
+
+#: lilypond-book.py:1834
+msgid "DVIPS usage:"
+msgstr "uso para DVIPS:"
+
+#: midi2ly.py:106 lily-library.scm:624 lily-library.scm:632
+msgid "warning: "
+msgstr "advertencia: "
+
+#: midi2ly.py:109 midi2ly.py:924
+msgid "error: "
+msgstr "error: "
+
+#: midi2ly.py:110
+msgid "Exiting ... "
+msgstr "Saliendo..."
+
+#: midi2ly.py:857
+#, python-format
+msgid "%s output to `%s'..."
+msgstr "%s producidos en `%s'..."
+
+#: midi2ly.py:871 musicxml2ly.py:485
+#, python-format
+msgid "Convert %s to LilyPond input."
+msgstr "Convertir %s a código LilyPond"
+
+#: midi2ly.py:875
+msgid "print absolute pitches"
+msgstr "imprimir notas absolutos"
+
+#: midi2ly.py:877 midi2ly.py:889
+msgid "DUR"
+msgstr "DUR"
+
+#: midi2ly.py:878
+msgid "quantise note durations on DUR"
+msgstr "quantizar duraciones de notas en DUR"
+
+#: midi2ly.py:881
+msgid "print explicit durations"
+msgstr "imprimir duraciones explícitas"
+
+#: midi2ly.py:882
+msgid "set key: ALT=+sharps|-flats; MINOR=1"
+msgstr ""
+
+#: midi2ly.py:883
+msgid "ALT[:MINOR]"
+msgstr "ALT[:MINOR]"
+
+#: midi2ly.py:888
+msgid "quantise note starts on DUR"
+msgstr "quantizar inicios de notas en DUR"
+
+#: midi2ly.py:891
+msgid "DUR*NUM/DEN"
+msgstr ""
+
+#: midi2ly.py:894
+msgid "allow tuplet durations DUR*NUM/DEN"
+msgstr "permitir duracione de grupetos DUR*NUM/DEN"
+
+#: midi2ly.py:902
+msgid "treat every text as a lyric"
+msgstr "tratar cualquier texto como letra"
+
+#: midi2ly.py:905
+msgid "Examples"
+msgstr "Ejemplos"
+
+#: midi2ly.py:925
+msgid "no files specified on command line."
+msgstr "no se ha especificado ningún fichero en la línea de órdenes."
+
+#: musicxml2ly.py:473
+msgid "musicxml2ly FILE.xml"
+msgstr "musicxml2ly ARCHIVO.xml"
+
+#: musicxml2ly.py:476
+#, python-format
+msgid ""
+"This program is free software.  It is covered by the GNU General Public\n"
+"License and you are welcome to change it and/or distribute copies of it\n"
+"under certain conditions.  Invoke as `%s --warranty' for more\n"
+"information."
+msgstr ""
+"Este software es libre. Está protegido por la Licencia Pública\n"
+"General de GNU, y es libre de modificarlo y/o distribuir copias de él bajo ciertas condiciones.  Invoquese como `%s --warranty' para más información."
+
+#: musicxml2ly.py:495
+msgid "Use lxml.etree; uses less memory and cpu time."
+msgstr "Usar lxml.etree; usa menos memoria y tiempo del cpu."
+
+#: musicxml2ly.py:503
+msgid "set output filename to FILE"
+msgstr "escribir la salida en el ARCHIVO"
+
+#: getopt-long.cc:140
+#, c-format
+msgid "option `%s' requires an argument"
+msgstr "la opción `%s' requiere un argumento"
+
+#: getopt-long.cc:144
+#, c-format
+msgid "option `%s' does not allow an argument"
+msgstr "la opción `%s' no permite argumentos"
+
+#: getopt-long.cc:148
+#, c-format
+msgid "unrecognized option: `%s'"
+msgstr "opción no reconocida: `%s'"
+
+#: getopt-long.cc:154
+#, c-format
+msgid "invalid argument `%s' to option `%s'"
+msgstr "argúmento no válido `%s' para la opción `%s'"
+
+#: warn.cc:68 grob.cc:559 input.cc:82
+#, c-format
+msgid "programming error: %s"
+msgstr "error de programación: %s"
+
+#: warn.cc:69 input.cc:83
+msgid "continuing, cross fingers"
+msgstr "continuando, cruzando los dedos"
+
+#: accidental-engraver.cc:240
+#, c-format
+msgid "accidental typesetting list must begin with context-name: %s"
+msgstr "lista de grabado de accidentes debe iniciar con un nombre de contexto: %s"
+
+#: accidental-engraver.cc:268
+#, c-format
+msgid "ignoring unknown accidental: %s"
+msgstr "ignorando accidentes desconocidos: %s"
+
+#: accidental-engraver.cc:284
+#, c-format
+msgid "pair or context-name expected for accidental rule, found %s"
+msgstr "se encontró regla para: se esperaba un par o nombre de contexto para accidente: %s"
+
+#: accidental.cc:243 key-signature-interface.cc:133
+#, c-format
+msgid "accidental `%s' not found"
+msgstr "accidente `%s' no encontrado"
+
+#: align-interface.cc:222
+msgid ""
+"vertical alignment called before line-breaking.\n"
+"Only do cross-staff spanners with PianoStaff."
+msgstr ""
+"vertical alignment llamado antes de un corte de línea.\n"
+"Solamente hacer cross-staff-spanners con PianoStaff."
+
+#: align-interface.cc:329
+msgid "tried to get a translation for something that is no child of mine"
+msgstr "intentando obtener una traducción para algo que no está en mi ámbito"
+
+#: all-font-metrics.cc:173
+#, c-format
+msgid "cannot find font: `%s'"
+msgstr "no encuentro la fuente: `%s'"
+
+#: apply-context-iterator.cc:31
+msgid "\\applycontext argument is not a procedure"
+msgstr "El argumento \\applycontext no es un procedimiento"
+
+#: auto-change-iterator.cc:63 change-iterator.cc:61
+#, c-format
+msgid "cannot change, already in translator: %s"
+msgstr "no se puede cambiar, ya está en el traductor: %s"
+
+#: axis-group-engraver.cc:78
+msgid "Axis_group_engraver: vertical group already has a parent"
+msgstr "El grupo vertical Axis_group_engraver: ya tiene un padre"
+
+#: axis-group-engraver.cc:79
+msgid "are there two Axis_group_engravers?"
+msgstr "hay dos Axis_group_engravers?"
+
+#: axis-group-engraver.cc:80
+msgid "removing this vertical group"
+msgstr "quitando este grupo vertical"
+
+#: axis-group-interface.cc:96
+msgid "tried to calculate pure-height at a non-breakpoint"
+msgstr "se trató de calcular la altura pura en un lugar que no es punto de quiebre"
+
+#: axis-group-interface.cc:370
+msgid "an outside-staff object should have a direction, defaulting to up"
+msgstr "un objeto externo al pentagrama debe tener dirección, por defecto deiniéndolo hacia arriba"
+
+#: axis-group-interface.cc:383
+#, c-format
+msgid "outside-staff object %s has an empty extent"
+msgstr "Objeto externo al pentagrama %s tiene una extensión vacía"
+
+#: bar-check-iterator.cc:73
+#, c-format
+msgid "barcheck failed at: %s"
+msgstr "revisión de compases falló en: %s"
+
+#: beam-engraver.cc:128
+msgid "already have a beam"
+msgstr "ya hay una barra de compás "
+
+#: beam-engraver.cc:196
+msgid "unterminated beam"
+msgstr "barra sin terminar"
+
+#: beam-engraver.cc:238 chord-tremolo-engraver.cc:134
+msgid "stem must have Rhythmic structure"
+msgstr "la plica debe tener una estructura rítmica"
+
+#: beam-engraver.cc:246
+msgid "stem does not fit in beam"
+msgstr "la plica no cabe en la barra"
+
+#: beam-engraver.cc:247
+msgid "beam was started here"
+msgstr "se inició barra aquí"
+
+#: beam-quanting.cc:307
+msgid "no feasible beam position"
+msgstr "No se ha encontrado posicionamiento de barra factible"
+
+#: beam.cc:144
+msgid "removing beam with no stems"
+msgstr "quitando barra sin plicas"
+
+#: beam.cc:1007
+msgid "no viable initial configuration found: may not find good beam slope"
+msgstr "no se pudo encontrar una configuración inicial factible: la inclinación de la barra puede no ser correcta"
+
+#: break-alignment-interface.cc:208
+#, c-format
+msgid "No spacing entry from %s to `%s'"
+msgstr "No hay entrada de espaciado desde %s a `%s'"
+
+#: change-iterator.cc:23
+#, c-format
+msgid "cannot change `%s' to `%s'"
+msgstr "no se puede cambiar `%s' a `%s'"
+
+#. FIXME: constant error message.
+#: change-iterator.cc:82
+msgid "cannot find context to switch to"
+msgstr "no se encuentra encontrar a qué contexto cambiar"
+
+#. We could change the current translator's id, but that would make
+#. errors hard to catch.
+#.
+#. last->translator_id_string () = get_change
+#. ()->change_to_id_string ();
+#: change-iterator.cc:91
+#, c-format
+msgid "not changing to same context type: %s"
+msgstr "no se cambiará al mismo tipo de contexto: %s"
+
+#. FIXME: uncomprehensable message
+#: change-iterator.cc:95
+msgid "none of these in my family"
+msgstr "ninguno de éstos en mi familia"
+
+#: chord-tremolo-engraver.cc:88
+msgid "No tremolo to end"
+msgstr "No hay trémolo que terminar"
+
+#: chord-tremolo-engraver.cc:110
+msgid "unterminated chord tremolo"
+msgstr "acorde de trémolo sin terminar"
+
+#: chord-tremolo-iterator.cc:33
+#, c-format
+msgid "expect 2 elements for chord tremolo, found %d"
+msgstr "esperaba dos elementos para acorde con trémolo, encontré %d"
+
+#: clef.cc:54
+#, c-format
+msgid "clef `%s' not found"
+msgstr "no se encontró la clave de %s"
+
+#: cluster.cc:110
+#, c-format
+msgid "unknown cluster style `%s'"
+msgstr "tipo de grupo (cluster) desconocido `%s'"
+
+#: cluster.cc:135
+msgid "junking empty cluster"
+msgstr "ignorando cluster vacío"
+
+#: coherent-ligature-engraver.cc:100
+#, c-format
+msgid "Coherent_ligature_engraver: setting `spacing-increment=0.01': ptr=%ul"
+msgstr "Coherent_ligature_engraver: incrementando `spacing-increment=0.01': ptr=%ul"
+
+#. if we get to here, just put everything on one line
+#: constrained-breaking.cc:176 constrained-breaking.cc:193
+msgid "cannot find line breaking that satisfies constraints"
+msgstr "no puedo determinar un corte de línea que satisfaga las restricciones"
+
+#: context-def.cc:130
+#, c-format
+msgid "program has no such type: `%s'"
+msgstr "el programa no tiene tal tipo: `%s'"
+
+#: context-property.cc:76
+msgid "need symbol arguments for \\override and \\revert"
+msgstr "faltan argumentos del símbolo para \\override y \\revert"
+
+#: context.cc:151
+#, c-format
+msgid "cannot find or create new `%s'"
+msgstr "no se puede encontrar o crear nuevo: `%s'"
+
+#: context.cc:213
+#, c-format
+msgid "cannot find or create `%s' called `%s'"
+msgstr "no se puede encontrar o crear `%s' llamado `%s'"
+
+#: context.cc:276
+#, c-format
+msgid "Invalid CreateContext event: Cannot create %s context"
+msgstr "Evento CreateContext inválido: No puedo crear contexto %s"
+
+#: context.cc:388
+#, c-format
+msgid "cannot find or create: `%s'"
+msgstr "no se puede encontrar o crear: `%s'"
+
+#: custos.cc:77
+#, c-format
+msgid "custos `%s' not found"
+msgstr "custos `%s' no encontrado"
+
+#: dispatcher.cc:71
+msgid "Event class should be a symbol"
+msgstr "Clase de evento debe ser un símbolo"
+
+#: dispatcher.cc:78
+#, c-format
+msgid "Unknown event class %s"
+msgstr "Clase de evento desconocida: `%s'"
+
+#: dots.cc:38
+#, c-format
+msgid "dot `%s' not found"
+msgstr "puntillo `%s' no encontrado"
+
+#: dynamic-engraver.cc:186 span-dynamic-performer.cc:87
+msgid "cannot find start of (de)crescendo"
+msgstr "no puedo encontrar el principio del (de)crescendo"
+
+#: dynamic-engraver.cc:195
+msgid "already have a decrescendo"
+msgstr "ya tengo un decrescendo"
+
+#: dynamic-engraver.cc:197
+msgid "already have a crescendo"
+msgstr "ya tengo un crescendo"
+
+#: dynamic-engraver.cc:200
+msgid "cresc starts here"
+msgstr "crescendo inicia aquí"
+
+#: dynamic-engraver.cc:323
+msgid "unterminated (de)crescendo"
+msgstr "(de)crescendo sin terminar"
+
+#: extender-engraver.cc:131 extender-engraver.cc:140
+msgid "unterminated extender"
+msgstr "prolongación sin terminar"
+
+#: font-config.cc:28
+msgid "Initializing FontConfig..."
+msgstr "Inicializando FontConfig..."
+
+#: font-config.cc:44
+#, c-format
+msgid "Rebuilding FontConfig cache %s, this may take a while..."
+msgstr "Reconstruyendo caché de FontConfig %s, puede tomar un rato..."
+
+#: font-config.cc:55
+#, c-format
+msgid "failed adding font directory: %s"
+msgstr "falló al añadir directorio de fuentes: %s"
+
+#: font-config.cc:57
+#, c-format
+msgid "adding font directory: %s"
+msgstr "añadiendo directorio de fuentes: %s"
+
+#: general-scheme.cc:160
+msgid "infinity or NaN encountered while converting Real number"
+msgstr "Se encontró infinito o NaN al tratar de convertir a un número Real"
+
+#: general-scheme.cc:161
+msgid "setting to zero"
+msgstr "asignando valor de cero"
+
+#: glissando-engraver.cc:92
+msgid "unterminated glissando"
+msgstr "glissando sin terminar"
+
+#: global-context-scheme.cc:91 global-context-scheme.cc:107
+msgid "no music found in score"
+msgstr "no se encontró música en la partitura"
+
+#: global-context-scheme.cc:97
+msgid "Interpreting music... "
+msgstr "Interpretando música... "
+
+#: global-context-scheme.cc:120
+#, c-format
+msgid "elapsed time: %.2f seconds"
+msgstr "tiempo transcurrido: %.2f segundos"
+
+#: gregorian-ligature-engraver.cc:59
+#, c-format
+msgid "\\%s ignored"
+msgstr "\\%s ignorado"
+
+#: gregorian-ligature-engraver.cc:64
+#, c-format
+msgid "implied \\%s added"
+msgstr "\\%s implicados añadidos"
+
+#. ligature may not start with 2nd head of pes or flexa
+#: gregorian-ligature-engraver.cc:212
+msgid "cannot apply `\\~' on first head of ligature"
+msgstr "no se puede aplicar `\\~' en pricipio de la ligadura"
+
+#. (pitch == prev_pitch)
+#: gregorian-ligature-engraver.cc:224
+msgid "cannot apply `\\~' on heads with identical pitch"
+msgstr "no se puede aplicar \\~' en cabezas con la misma nota"
+
+#: grob-interface.cc:57
+#, c-format
+msgid "Unknown interface `%s'"
+msgstr "Interfase desconocida: `%s'"
+
+#: grob-interface.cc:68
+#, c-format
+msgid "Grob `%s' has no interface for property `%s'"
+msgstr "El elemento `%s' no tiene interface para la propiedad `%s'"
+
+#: grob.cc:253
+msgid "Infinity or NaN encountered"
+msgstr "Se encontró infinito o NaN"
+
+#: hairpin.cc:183
+msgid "decrescendo too small"
+msgstr "decrescendo demasiado pequeño"
+
+#: horizontal-bracket-engraver.cc:59
+msgid "do not have that many brackets"
+msgstr "no hay tantos corchetes"
+
+#: horizontal-bracket-engraver.cc:68
+msgid "conflicting note group events"
+msgstr "grupo de eventos de notas en conflicto"
+
+#: hyphen-engraver.cc:93
+msgid "removing unterminated hyphen"
+msgstr "eliminando prolongación sin terminar"
+
+#: hyphen-engraver.cc:107
+msgid "unterminated hyphen; removing"
+msgstr "prolongación sin terminar; eliminando"
+
+#: includable-lexer.cc:53
+msgid "include files are not allowed in safe mode"
+msgstr "incluir archivos no se permite en modo seguro"
+
+#: includable-lexer.cc:60 lily-guile.cc:90 lily-parser-scheme.cc:116
+#, c-format
+msgid "cannot find file: `%s'"
+msgstr "no puedo encontrar el fichero: `%s'"
+
+#: includable-lexer.cc:62 lily-parser-scheme.cc:107
+#, c-format
+msgid "(search path: `%s')"
+msgstr "(ruta de búsqueda: `%s')"
+
+#: input.cc:112 source-file.cc:168 source-file.cc:183
+msgid "position unknown"
+msgstr "posición desconocida"
+
+#: ligature-engraver.cc:93
+msgid "cannot find start of ligature"
+msgstr "no puedo encontrar el principio del ligadura"
+
+#: ligature-engraver.cc:98
+msgid "no right bound"
+msgstr "no hay límite derecho"
+
+#: ligature-engraver.cc:120
+msgid "already have a ligature"
+msgstr "ya hay una ligadura"
+
+#: ligature-engraver.cc:129
+msgid "no left bound"
+msgstr "no hay límite izquierdo"
+
+#: ligature-engraver.cc:173
+msgid "unterminated ligature"
+msgstr "ligadura sin terminar"
+
+#: ligature-engraver.cc:202
+msgid "ignoring rest: ligature may not contain rest"
+msgstr "ignorando silencio: una ligadura no puede contener silencio"
+
+#: ligature-engraver.cc:203
+msgid "ligature was started here"
+msgstr "la ligadura no se inició aquí"
+
+#: lily-guile.cc:92
+#, c-format
+msgid "(load path: `%s')"
+msgstr "(ruta de carga: `%s')"
+
+#: lily-guile.cc:518
+#, c-format
+msgid "cannot find property type-check for `%s' (%s)."
+msgstr "no puedo encontrar revisión de propiedad para `%s' (%s)."
+
+#: lily-guile.cc:521
+msgid "perhaps a typing error?"
+msgstr "posiblemente un error de dedo?"
+
+#: lily-guile.cc:527
+msgid "doing assignment anyway"
+msgstr "realizando asignación de todas maneras"
+
+#: lily-guile.cc:539
+#, c-format
+msgid "type check for `%s' failed; value `%s' must be of type `%s'"
+msgstr "revisión de tipo para `%s' falló; el valor `%s' debe ser de tipo  `%s'"
+
+#: lily-lexer.cc:254
+#, c-format
+msgid "identifier name is a keyword: `%s'"
+msgstr "el identificador es una palabra clave: `%s'"
+
+#: lily-lexer.cc:269
+#, c-format
+msgid "error at EOF: %s"
+msgstr "error al final del fichero (EOF): %s"
+
+#: lily-parser-scheme.cc:29
+#, c-format
+msgid "deprecated function called: %s"
+msgstr "función en desuso llamada: %s"
+
+#: lily-parser-scheme.cc:88
+#, c-format
+msgid "Changing working directory to: `%s'"
+msgstr "Cambiando directorio de trabajo a: `%s'"
+
+#: lily-parser-scheme.cc:106
+#, c-format
+msgid "cannot find init file: `%s'"
+msgstr "no puedo encontrar archivo de inicialización: `%s'"
+
+#: lily-parser-scheme.cc:125
+#, c-format
+msgid "Processing `%s'"
+msgstr "Procesando `%s'"
+
+#: lily-parser.cc:99
+msgid "Parsing..."
+msgstr "Analizando..."
+
+#: lily-parser.cc:127
+msgid "braces do not match"
+msgstr "Llaves no concuerdan"
+
+#: lyric-combine-music-iterator.cc:291
+#, c-format
+msgid "cannot find Voice `%s'"
+msgstr "no se puede encontrar Voice `%s'"
+
+#: main.cc:116
+#, c-format
+msgid ""
+"This program is free software.  It is covered by the GNU General Public\n"
+"License and you are welcome to change it and/or distribute copies of it\n"
+"under certain conditions.  Invoke as `%s --warranty' for more\n"
+"information.\n"
+msgstr ""
+"Este software es libre. Está protegido por la Licencia Pública\n"
+"General de GNU, y es libre para modificarlo y/o distribuir copias de\n"
+"él bajo ciertas condiciones. Invóquelo como `%s --warranty' para más\n"
+"información.\n"
+
+#: main.cc:122
+msgid ""
+"    This program is free software; you can redistribute it and/or\n"
+"modify it under the terms of the GNU General Public License version 2\n"
+"as published by the Free Software Foundation.\n"
+"\n"
+"    This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n"
+"General Public License for more details.\n"
+"\n"
+"    You should have received a copy of the\n"
+"GNU General Public License along with this program; if not, write to\n"
+"the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
+"Boston, MA 02111-1307, USA.\n"
+msgstr ""
+"    Este programa es libre, puede redistribuirlo y/o \n"
+"modificarlo bajo los términos de la Licencia Públic General GNU versión 2\n"
+"tal como está publicada por la Fundación de Software Libre (FSF).\n"
+"    Este programa se distribuye con la esperanza de que será de utilidad,\n"
+"pero sin NINGUNA CLASE DE GARANTÍA, ni siquiera implicada por COMERCIO o para PROPOSITO PARTICULAR.  Vea la: "
+"Licencia Pública General GNU para más detalles.\n"
+"    Debe haber recibido una copia de la Licencia Públic General GNU con este programa; si no es así, escriba a:\n"
+"Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
+"Boston, MA 02111-1307, USA.\n"
+
+#: main.cc:153
+msgid "BACK"
+msgstr "REGRESAR"
+
+#: main.cc:153
+msgid ""
+"use backend BACK (eps, gnome, ps [default],\n"
+"scm, svg, tex, texstr)"
+msgstr ""
+"use el procesador BACK (eps, gnome, ps [defecto],\n"
+"scm, svg, tex, texstr)"
+
+#: main.cc:155
+msgid "SYM[=VAL]"
+msgstr "SYM[=VAL]"
+
+#: main.cc:156
+msgid ""
+"set Scheme option SYM to VAL (default: #t)\n"
+"Use -dhelp for help."
+msgstr ""
+"asignando opción Scheme SYM a VAL (por defecto: #t)\n"
+"Use -dhelp para obtener ayuda."
+
+#: main.cc:159
+msgid "EXPR"
+msgstr "EXPR"
+
+#: main.cc:159
+msgid "evaluate scheme code"
+msgstr "evaluar código scheme"
+
+#. Bug in option parser: --output =foe is taken as an abbreviation
+#. for --output-format.
+#: main.cc:162
+msgid "FORMATs"
+msgstr "FORMATOS"
+
+#: main.cc:162
+msgid "dump FORMAT,...  Also as separate options:"
+msgstr "volcar FORMATO,...  Adicionalmente como opciones separadas:"
+
+#: main.cc:163
+msgid "generate DVI (tex backend only)"
+msgstr "generar DVI (sólo procesador tex)"
+
+#: main.cc:164
+msgid "generate PDF (default)"
+msgstr "generar salida PDF (predeterminado)"
+
+#: main.cc:165
+msgid "generate PNG"
+msgstr "generar salida PNG"
+
+#: main.cc:166
+msgid "generate PostScript"
+msgstr "generar salida PostScript"
+
+#: main.cc:167
+msgid "generate TeX (tex backend only)"
+msgstr "generar TeX (sólo procesador tex)"
+
+#: main.cc:168
+msgid "show this help and exit"
+msgstr "mostrar esta ayuda y salir"
+
+#: main.cc:169
+msgid "FIELD"
+msgstr "CAMPO"
+
+#: main.cc:169
+msgid ""
+"dump header field FIELD to file\n"
+"named BASENAME.FIELD"
+msgstr ""
+"vaciar campo de cabecera FIELD a archvio\n"
+"llamado BASENAME.FIELD"
+
+#: main.cc:171
+msgid "add DIR to search path"
+msgstr "añadir DIR a la ruta de búsqueda"
+
+#: main.cc:172
+msgid "use FILE as init file"
+msgstr "usar FICHERO como fichero de inicialización"
+
+#: main.cc:174
+msgid "USER,GROUP,JAIL,DIR"
+msgstr ""
+
+#: main.cc:174
+msgid ""
+"chroot to JAIL, become USER:GROUP\n"
+"and cd into DIR"
+msgstr ""
+"chroot a JAIL, convertirse en USER:GROUP\n"
+"y cd en DIR"
+
+#: main.cc:177
+msgid "do not generate printed output"
+msgstr "no generar salida de impresión"
+
+#: main.cc:178
+msgid "write output to FILE (suffix will be added)"
+msgstr "escribir la salida en el FICHERO (se añadirá extensión)"
+
+#: main.cc:179
+msgid "generate a preview of the first system"
+msgstr "generar un previsualización del primer sistema"
+
+#: main.cc:180
+msgid "relocate using directory of lilypond program"
+msgstr "relocalice usando el directorio del programa lilypond"
+
+#: main.cc:181
+msgid ""
+"disallow unsafe Scheme and PostScript\n"
+"operations"
+msgstr ""
+"no permitir operaciones inseguras de Scheme y \n"
+"PostScript"
+
+#: main.cc:183
+msgid "show version number and exit"
+msgstr "mostrar número de versión y salir"
+
+#: main.cc:224
+#, c-format
+msgid ""
+"Copyright (c) %s by\n"
+"%s  and others."
+msgstr ""
+"Copyright (c) %s  por\n"
+"%s  y otros."
+
+#. No version number or newline here.  It confuses help2man.
+#: main.cc:251
+#, c-format
+msgid "Usage: %s [OPTION]... FILE..."
+msgstr "Uso: %s [OPCIÓN]... FICHERO..."
+
+#: main.cc:253
+#, c-format
+msgid "Typeset music and/or produce MIDI from FILE."
+msgstr "Grabar música y/o producir archivo MIDI desde ARCHIVO"
+
+#: main.cc:255
+#, c-format
+msgid "LilyPond produces beautiful music notation."
+msgstr "LilyPond produce una hermosa notación musical"
+
+#: main.cc:257
+#, c-format
+msgid "For more information, see %s"
+msgstr "Para más información, vea %s"
+
+#: main.cc:259
+#, c-format
+msgid "Options:"
+msgstr "Opciones: "
+
+#: main.cc:263
+#, c-format
+msgid "Report bugs via %s"
+msgstr "Informe de errores por medio de %s"
+
+#: main.cc:309
+#, c-format
+msgid "expected %d arguments with jail, found: %u"
+msgstr "se esperaba(n) %d argumentos con jail, se encontró: %u"
+
+#: main.cc:323
+#, c-format
+msgid "no such user: %s"
+msgstr "no hay tal usuario: %s"
+
+#: main.cc:325
+#, c-format
+msgid "cannot get user id from user name: %s: %s"
+msgstr "no puedo obtener id de usuario a partir del nombre: %s: %s"
+
+#: main.cc:340
+#, c-format
+msgid "no such group: %s"
+msgstr "no hay tal grupo: %s"
+
+#: main.cc:342
+#, c-format
+msgid "cannot get group id from group name: %s: %s"
+msgstr "no se puede determinar el id del grupo desde el nombre del grupo: %s: %s"
+
+#: main.cc:350
+#, c-format
+msgid "cannot chroot to: %s: %s"
+msgstr "no se puede hacer chroot a: %s: %s"
+
+#: main.cc:357
+#, c-format
+msgid "cannot change group id to: %d: %s"
+msgstr "no puedo cambiar el id de grupo a: %d: %s"
+
+#: main.cc:363
+#, c-format
+msgid "cannot change user id to: %d: %s"
+msgstr "no se puede cambiar el id de usuario a: %d: %s"
+
+#: main.cc:369
+#, c-format
+msgid "cannot change working directory to: %s: %s"
+msgstr "no se puede cambiar el directorio de trabajo a: %s: %s"
+
+#: main.cc:415
+#, c-format
+msgid "Evaluating %s"
+msgstr "Evaluando %s"
+
+#: main.cc:645
+#, c-format
+msgid "exception caught: %s"
+msgstr "ocurrió una excepción: %s"
+
+#. FIXME: constant error message.
+#: mark-engraver.cc:154
+msgid "rehearsalMark must have integer value"
+msgstr "rehearsalMark debe tener un valor de entero"
+
+#: mark-engraver.cc:160
+msgid "mark label must be a markup object"
+msgstr "etiqueta mark debe tener un objeto markup"
+
+#: mensural-ligature-engraver.cc:85
+msgid "ligature with less than 2 heads -> skipping"
+msgstr "ligadura con menos de dos notas -> saltando"
+
+#: mensural-ligature-engraver.cc:112
+msgid "cannot determine pitch of ligature primitive -> skipping"
+msgstr "no puedo determinar nota de la primitiva de la ligadura -> saltando"
+
+#: mensural-ligature-engraver.cc:126
+msgid "single note ligature - skipping"
+msgstr "ligadura de una sola nota - saltando"
+
+#: mensural-ligature-engraver.cc:138
+msgid "prime interval within ligature -> skipping"
+msgstr "intervalo primo dentro de ligadura -> saltando"
+
+#: mensural-ligature-engraver.cc:150
+msgid "mensural ligature: duration none of Mx, L, B, S -> skipping"
+msgstr "duración de ligadura mensural no es una de Mx, L, B o S -> saltando"
+
+#: mensural-ligature-engraver.cc:198
+msgid "semibrevis must be followed by another one -> skipping"
+msgstr "semibrevis debe ser seguida de otra igual -> saltando"
+
+#: mensural-ligature-engraver.cc:209
+msgid ""
+"semibreves can only appear at the beginning of a ligature,\n"
+"and there may be only zero or two of them"
+msgstr ""
+"sólo puede aparecer una semibreve al principio de una ligadura.\n"
+"y sólo puede haber cero o dos de ellas"
+
+#: mensural-ligature-engraver.cc:236
+msgid ""
+"invalid ligatura ending:\n"
+"when the last note is a descending brevis,\n"
+"the penultimate note must be another one,\n"
+"or the ligatura must be LB or SSB"
+msgstr ""
+"terminación de ligadura inválida:\n"
+"cuando la última nota es una brevis descendente.\n"
+"la penúltima nota debe ser otra igual,\n"
+"o la ligadura debe ser LB o SSB"
+
+#: mensural-ligature-engraver.cc:356
+msgid "unexpected case fall-through"
+msgstr "no se contempló este caso"
+
+#: mensural-ligature.cc:141
+msgid "Mensural_ligature: unexpected case fall-through"
+msgstr "Mensural_ligature: no se esperaba caso no contemplado"
+
+#: mensural-ligature.cc:192
+msgid "Mensural_ligature: (join_right == 0)"
+msgstr ""
+
+#: midi-item.cc:152
+#, c-format
+msgid "no such MIDI instrument: `%s'"
+msgstr "no hay tal instrumento MIDI: `%s'"
+
+#: midi-item.cc:285
+#, c-format
+msgid "experimental: temporarily fine tuning (of %d cents) a channel."
+msgstr "experimental: tempralmente afinando (%d) el canal"
+
+#: midi-stream.cc:28
+#, c-format
+msgid "cannot open for write: %s: %s"
+msgstr "no se puede abrir para escritura: %s: %s"
+
+#: midi-stream.cc:44
+#, c-format
+msgid "cannot write to file: `%s'"
+msgstr "no se puede abrir al fichero: `%s'"
+
+#: music-iterator.cc:171
+msgid "Sending non-event to context"
+msgstr "Enviando evento nulo a contexto"
+
+#: music.cc:141
+#, c-format
+msgid "octave check failed; expected \"%s\", found: \"%s\""
+msgstr "revisión de octava falló; se esperaba \"%s\", se encontró: \"%s\""
+
+#: music.cc:207
+#, c-format
+msgid "transposition by %s makes alteration larger than double"
+msgstr "transposición por %s hace que la alteración sea mayor al doble"
+
+#: new-fingering-engraver.cc:96
+msgid "cannot add text scripts to individual note heads"
+msgstr "no se pueden agregar textos a notas individuales"
+
+#: new-fingering-engraver.cc:239
+msgid "no placement found for fingerings"
+msgstr "no se pudo encontrar colocación para la digitación"
+
+#: new-fingering-engraver.cc:240
+msgid "placing below"
+msgstr "colocando abajo"
+
+#: note-collision.cc:457
+msgid "ignoring too many clashing note columns"
+msgstr "ignorando demasiadas columnas de notas en conflicto"
+
+#: note-column.cc:124
+msgid "cannot have note heads and rests together on a stem"
+msgstr "no se pueden colocar cabezas de notas y silencios en la misma plica"
+
+#: note-head.cc:63
+#, c-format
+msgid "none of note heads `%s' or `%s' found"
+msgstr "ninguna de las notas `%s' o `%s' encontradas"
+
+#: note-heads-engraver.cc:61
+msgid "NoteEvent without pitch"
+msgstr "Evento de Nota sin tonalidad"
+
+#: open-type-font.cc:33
+#, c-format
+msgid "cannot allocate %lu bytes"
+msgstr "No se puede asignar %lu bytes"
+
+#: open-type-font.cc:37
+#, c-format
+msgid "cannot load font table: %s"
+msgstr "no se puede cargar tabla de fuentes: %s"
+
+#: open-type-font.cc:98
+#, c-format
+msgid "unsupported font format: %s"
+msgstr "formato de fuente no soportado: %s"
+
+#: open-type-font.cc:100
+#, c-format
+msgid "unknown error: %d reading font file: %s"
+msgstr "error desconocido: %d al leer archivo de fuente: %s"
+
+#: open-type-font.cc:173 open-type-font.cc:297
+#, c-format
+msgid "FT_Get_Glyph_Name() returned error: %u"
+msgstr "FT_Get_Glyph_Name() regresó error: %u"
+
+#: page-turn-page-breaking.cc:205
+msgid ""
+"cannot fit the first page turn onto a single page.  Consider setting first-"
+"page-number to an even number."
+msgstr "no puedo ajustar primer vuelta de página a una sóla página.  Considere asignar primero un número par para la primer página."
+
+#: page-turn-page-breaking.cc:218
+#, c-format
+msgid "Calculating page and line breaks (%d possible page breaks)..."
+msgstr "Calculando paginación y cortes de línea (%d posibles cortes de página)"
+
+#: page-turn-page-breaking.cc:236 paper-score.cc:154
+msgid "Drawing systems..."
+msgstr "Creando sistemas..."
+
+#: pango-font.cc:181
+#, c-format
+msgid ""
+"Glyph has no name, but font supports glyph naming.\n"
+"Skipping glyph U+%0X, file %s"
+msgstr ""
+"El glifo no tiene nombre, pero la fuente soporta el nombrado de glifos.\n"
+"Saltando glifo U+%0X, archivo %s"
+
+#: pango-font.cc:224
+#, c-format
+msgid "no PostScript font name for font `%s'"
+msgstr "no existe esa fuente PostScript: `%s'"
+
+#: pango-font.cc:272
+msgid "FreeType face has no PostScript font name"
+msgstr "Fuente FreeType no tiene un nombre de fuente PostScript"
+
+#: paper-outputter-scheme.cc:33
+#, c-format
+msgid "Layout output to `%s'..."
+msgstr "Diseño de página generado en `%s'..."
+
+#: paper-score.cc:105
+msgid "Calculating line breaks..."
+msgstr "Calculando cortes de línea..."
+
+#: paper-score.cc:118
+#, c-format
+msgid "Element count %d (spanners %d) "
+msgstr "Elementos contados %d (spanners %d) "
+
+#: paper-score.cc:122
+msgid "Preprocessing graphical objects..."
+msgstr "Preprocesando objetos gráficos..."
+
+#: parse-scm.cc:83
+msgid "GUILE signaled an error for the expression beginning here"
+msgstr "GUILE señaló un error para la expresión iniciada aquí"
+
+#: percent-repeat-engraver.cc:200
+msgid "unterminated percent repeat"
+msgstr "repetición de porcentaje sin terminar"
+
+#: performance.cc:45
+msgid "Track..."
+msgstr "Pista..."
+
+#: performance.cc:74
+msgid "MIDI channel wrapped around"
+msgstr "Se envolvió al canal MIDI"
+
+#: performance.cc:75
+msgid "remapping modulo 16"
+msgstr "remapeando modulo 16"
+
+#: performance.cc:103
+#, c-format
+msgid "MIDI output to `%s'..."
+msgstr "Salida MIDI a `%s'..."
+
+#: phrasing-slur-engraver.cc:146
+msgid "unterminated phrasing slur"
+msgstr "ligadura de praseo no terminada"
+
+#: piano-pedal-engraver.cc:286
+#, c-format
+msgid "expect 3 strings for piano pedals, found: %ld"
+msgstr "esperaba tres cadenas de texto para pedales de piano, se encontraron: %ld"
+
+#: piano-pedal-engraver.cc:301 piano-pedal-engraver.cc:312
+#: piano-pedal-performer.cc:93
+#, c-format
+msgid "cannot find start of piano pedal: `%s'"
+msgstr "No se encuentra pedal de piano inicial: `%s'"
+
+#: piano-pedal-engraver.cc:347
+#, c-format
+msgid "cannot find start of piano pedal bracket: `%s'"
+msgstr "no se encuentra el principio del pedal: `%s'"
+
+#: program-option.cc:205
+#, c-format
+msgid "no such internal option: %s"
+msgstr "no existe esa opción: %s"
+
+#: property-iterator.cc:74
+#, c-format
+msgid "not a grob name, `%s'"
+msgstr "No es un nombre de elemento, `%s'"
+
+#: relative-octave-check.cc:38
+msgid "Failed octave check, got: "
+msgstr "Falló la revisión de octava, se obtuvo: "
+
+#: relocate.cc:44
+#, c-format
+msgid "Setting %s to %s"
+msgstr "Asignando %s a %s"
+
+#: relocate.cc:59
+#, c-format
+msgid "no such file: %s for %s"
+msgstr "no hay tal archivo: %s para %s"
+
+#: relocate.cc:69 relocate.cc:87
+#, c-format
+msgid "no such directory: %s for %s"
+msgstr "no existe el directorio: %s para %s"
+
+#: relocate.cc:79
+#, c-format
+msgid "%s=%s (prepend)\n"
+msgstr ""
+
+#: relocate.cc:99
+#, c-format
+msgid "Relocation: compile prefix=%s, new prefix=%s"
+msgstr "Relocación: prefijo de compilación=%s, nuevo prefijo=%s"
+
+#: relocate.cc:129
+#, c-format
+msgid "Relocation: framework_prefix=%s"
+msgstr "Relocación: framework_prefix=%s"
+
+#: relocate.cc:169
+#, c-format
+msgid "Relocation: is absolute: argv0=%s"
+msgstr "Relocación: es absoluta: argv0=%s"
+
+#: relocate.cc:176
+#, c-format
+msgid "Relocation: from cwd: argv0=%s"
+msgstr "Relocación: desde cwd: argv0=%s"
+
+#: relocate.cc:185
+#, c-format
+msgid ""
+"Relocation: from PATH=%s\n"
+"argv0=%s"
+msgstr ""
+"Relocación: desde TRAYECTO=%s\n"
+"argv0=%s"
+
+#: relocate.cc:354
+#, c-format
+msgid "Relocation file: %s"
+msgstr "Archivo de relocación: %s"
+
+#: relocate.cc:390
+#, c-format
+msgid "Unknown relocation command %s"
+msgstr "Comando de relocación desconocido: %s"
+
+#: rest-collision.cc:151
+msgid "cannot resolve rest collision: rest direction not set"
+msgstr "no puedo resolver colisión de silencios: no se fijó dirección de silencio"
+
+#: rest-collision.cc:165 rest-collision.cc:210
+msgid "too many colliding rests"
+msgstr "demasiados silencios en colisión"
+
+#: rest.cc:144
+#, c-format
+msgid "rest `%s' not found"
+msgstr "silencio `%s' no encontrado"
+
+#: score-engraver.cc:67
+#, c-format
+msgid "cannot find `%s'"
+msgstr "no se puede encontrar: `%s'"
+
+#: score-engraver.cc:69
+msgid "Music font has not been installed properly."
+msgstr "La fuente de música no ha sido instalada correctamente"
+
+#: score-engraver.cc:71
+#, c-format
+msgid "Search path `%s'"
+msgstr "Ruta de búsqueda: `%s'"
+
+#: score-engraver.cc:73
+msgid "Aborting"
+msgstr "Abortando"
+
+#: score.cc:225
+msgid "already have music in score"
+msgstr "debe existir música en la partitura"
+
+#: score.cc:226
+msgid "this is the previous music"
+msgstr "esta es la música previa"
+
+#: score.cc:231
+msgid "errors found, ignoring music expression"
+msgstr "se encontraron errores, ignorando expresión musical"
+
+#. FIXME:
+#: script-engraver.cc:102
+msgid "do not know how to interpret articulation: "
+msgstr "No se sabe como interpretar la articulación `%s'"
+
+#: script-engraver.cc:103
+msgid "scheme encoding: "
+msgstr "codificación scheme"
+
+#: simple-spacer.cc:375
+#, c-format
+msgid "No spring between column %d and next one"
+msgstr "No hay separación entre la columna %d y la siguiente"
+
+#: slur-engraver.cc:83 tuplet-engraver.cc:75
+#, c-format
+msgid "direction of %s invalid: %d"
+msgstr "dirección de %s es inválida: %d"
+
+#: slur-engraver.cc:157
+msgid "unterminated slur"
+msgstr "ligadura sin terminar"
+
+#: slur-engraver.cc:166
+msgid "cannot end slur"
+msgstr "no se puede terminar frase"
+
+#: source-file.cc:74
+#, c-format
+msgid "expected to read %d characters, got %d"
+msgstr "se esperaba leer %d caracteres, se obtuvieron %d"
+
+#: staff-symbol-engraver.cc:62
+msgid "staff-span event has no direction"
+msgstr "evento de 'staff-span' sin idirección"
+
+#: stem-engraver.cc:92
+msgid "tremolo duration is too long"
+msgstr "la duración del trémolo es demasiado larga"
+
+#. FIXME:
+#: stem-engraver.cc:129
+#, c-format
+msgid "adding note head to incompatible stem (type = %d)"
+msgstr "añadiendo cabeza de nota a plica incompatible (tipo = %d)"
+
+#: stem-engraver.cc:131
+msgid "maybe input should specify polyphonic voices"
+msgstr "Quizás la entrada deba especificar voces polifónicas"
+
+#: stem.cc:105
+msgid "weird stem size, check for narrow beams"
+msgstr "longitud extraña de plica, revisando barras angostas"
+
+#: stem.cc:641
+#, c-format
+msgid "flag `%s' not found"
+msgstr "bandera `%s' no encontrada"
+
+#: stem.cc:652
+#, c-format
+msgid "flag stroke `%s' not found"
+msgstr "flag stroke `%s' no encontrada"
+
+#: system.cc:180
+#, c-format
+msgid "Element count %d."
+msgstr "Elementos contados %d."
+
+#: system.cc:276
+#, c-format
+msgid "Grob count %d"
+msgstr "Elementos contados %d"
+
+#: text-spanner-engraver.cc:61
+msgid "cannot find start of text spanner"
+msgstr "no se puede encontrar inicio de spanner de texto"
+
+#: text-spanner-engraver.cc:73
+msgid "already have a text spanner"
+msgstr "ya hay un spanner de texto"
+
+#: text-spanner-engraver.cc:133
+msgid "unterminated text spanner"
+msgstr "spanner de texto sin terminar"
+
+#: tie-engraver.cc:264
+msgid "lonely tie"
+msgstr "ligadura solitaria"
+
+#.
+#. Todo: should make typecheck?
+#.
+#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
+#.
+#: time-signature-engraver.cc:64
+#, c-format
+msgid "strange time signature found: %d/%d"
+msgstr "se encontró un compás extraño: %d/%d"
+
+#. If there is no such symbol, we default to the numbered style.
+#. (Here really with a warning!)
+#: time-signature.cc:83
+#, c-format
+msgid "time signature symbol `%s' not found; reverting to numbered style"
+msgstr "no se encontró un símbolo de compás `%s'; revirtiendo a estilo numerado"
+
+#: translator-ctors.cc:52
+#, c-format
+msgid "unknown translator: `%s'"
+msgstr "traductor desconocido: `%s'"
+
+#: translator-group.cc:151
+#, c-format
+msgid "cannot find: `%s'"
+msgstr "no se puede encontrar: `%s'"
+
+#: translator.cc:332
+#, c-format
+msgid "Two simultaneous %s events, junking this one"
+msgstr "Dos eventos %s simultáneos, descartando este"
+
+#: translator.cc:333
+#, c-format
+msgid "Previous %s event here"
+msgstr "Evento %s previo aquí"
+
+#: trill-spanner-engraver.cc:68
+msgid "cannot find start of trill spanner"
+msgstr "no se encuentra el inicio del trino"
+
+#: trill-spanner-engraver.cc:80
+msgid "already have a trill spanner"
+msgstr "ya hay un trino"
+
+#: vaticana-ligature-engraver.cc:388
+#, c-format
+msgid ""
+"ignored prefix (es) `%s' of this head according to restrictions of the "
+"selected ligature style"
+msgstr "se ignora prefijo(s) `%s' de esta nota de acuerdo a las restricciones de estilo de ligadura seleccionada"
+
+#: vaticana-ligature-engraver.cc:714
+#, c-format
+msgid "Vaticana_ligature_engraver: setting `spacing-increment = %f': ptr =%ul"
+msgstr "Vaticana_ligature_engraver: asignando `spacing-increment = %f': ptr =%ul"
+
+#: vaticana-ligature.cc:84
+msgid "flexa-height undefined; assuming 0"
+msgstr "flexa-height no definida, se asume 0"
+
+#: vaticana-ligature.cc:89
+msgid "ascending vaticana style flexa"
+msgstr "estilo ascendente vaticana flexa"
+
+#: vaticana-ligature.cc:177
+msgid "Vaticana_ligature: zero join (delta_pitch == 0)"
+msgstr "Vaticana_ligature: unión cero join (delta_pitch == 0)"
+
+#. fixme: be more verbose.
+#: volta-engraver.cc:144
+msgid "cannot end volta spanner"
+msgstr "no se encuentra en final de la repetición"
+
+#: volta-engraver.cc:154
+msgid "already have a volta spanner, ending that one prematurely"
+msgstr "ya existe un spanner de volta, terminando este de forma prematura"
+
+#: volta-engraver.cc:158
+msgid "also already have an ended spanner"
+msgstr "ya hay un final de volta"
+
+#: volta-engraver.cc:159
+msgid "giving up"
+msgstr "Abandonando"
+
+#: parser.yy:702
+msgid "\\paper cannot be used in \\score, use \\layout instead"
+msgstr "\\paper no puede ser usado en \\score, mejor use \\layout"
+
+#: parser.yy:726
+msgid "need \\paper for paper block"
+msgstr "se requiere \\paper para la sección paper"
+
+#: parser.yy:1172
+msgid "Grob name should be alphanumeric"
+msgstr "El nombre del elemento debe ser alfanumérico"
+
+#: parser.yy:1475
+msgid "second argument must be pitch list"
+msgstr "El segundo argumento debe ser una lista de tonos"
+
+#: parser.yy:1502 parser.yy:1507 parser.yy:1972
+msgid "have to be in Lyric mode for lyrics"
+msgstr "Debe estar en modo Lyric para letra"
+
+#: parser.yy:1604
+msgid "expecting string as script definition"
+msgstr "esperando una cadena de texto como definición del script"
+
+#: parser.yy:1759 parser.yy:1809
+#, c-format
+msgid "not a duration: %d"
+msgstr "no es una duración: %d"
+
+#: parser.yy:1926
+msgid "have to be in Note mode for notes"
+msgstr "debe estar en modo de Note para notas"
+
+#: parser.yy:1987
+msgid "have to be in Chord mode for chords"
+msgstr "debe estar en modo Chord para acordes"
+
+#: lexer.ll:176
+msgid "stray UTF-8 BOM encountered"
+msgstr "se encontró caracter UTF-8 BOM aislado"
+
+#: lexer.ll:180
+msgid "Skipping UTF-8 BOM"
+msgstr "Saltando UTF-8 BOM"
+
+#: lexer.ll:235
+#, c-format
+msgid "Renaming input to: `%s'"
+msgstr "Renombrando entrada a: `%s'"
+
+#: lexer.ll:252
+msgid "quoted string expected after \\version"
+msgstr "se esperaba cadena entre comillas después de \\version"
+
+#: lexer.ll:256
+msgid "quoted string expected after \\sourcefilename"
+msgstr "se esperaba cadena entre comillas después de \\sourcefilename"
+
+#: lexer.ll:260
+msgid "integer expected after \\sourcefileline"
+msgstr "se esperaba un entero después de \\sourcefileline"
+
+#: lexer.ll:273
+msgid "EOF found inside a comment"
+msgstr "Se encontró FIN de ARCHIVO dentro de un comentario"
+
+#: lexer.ll:288
+msgid "\\maininput not allowed outside init files"
+msgstr "\\maininput no es permitido fuera de los archivos de incicialización"
+
+#: lexer.ll:312
+#, c-format
+msgid "wrong or undefined identifier: `%s'"
+msgstr "identificativo equivocado o no definido: `%s'"
+
+#. backup rule
+#: lexer.ll:321
+msgid "end quote missing"
+msgstr "comillas de cierre faltantes"
+
+#: lexer.ll:466
+msgid "Brace found at end of lyric.  Did you forget a space?"
+msgstr "Se encontró un corchete al final de una letra. ¿Olvidó poner espacio?"
+
+#: lexer.ll:559
+msgid "Brace found at end of markup.  Did you forget a space?"
+msgstr "Se encontró un corchete al final de un markup. ¿Olvidó poner espacio?"
+
+#: lexer.ll:659
+#, c-format
+msgid "invalid character: `%c'"
+msgstr "carácter no válido: `%c'"
+
+#: lexer.ll:774 lexer.ll:775
+#, c-format
+msgid "unknown escaped string: `\\%s'"
+msgstr "cadena de escape desconocida: `\\%s'"
+
+#: lexer.ll:880 lexer.ll:881
+#, c-format
+msgid "file too old: %s (oldest supported: %s)"
+msgstr "versión de archivo demasiado vieja: %s (más antigua soportada: %s)"
+
+#: lexer.ll:881 lexer.ll:882
+msgid "consider updating the input with the convert-ly script"
+msgstr "considere actualizar la entrada con el script convert-ly"
+
+#: lexer.ll:887 lexer.ll:888
+#, c-format
+msgid "program too old: %s (file requires: %s)"
+msgstr "programa demasiado viejo: %s (archivo requiere: %s)"
+
+#: backend-library.scm:19 lily.scm:599 ps-to-png.scm:82
+#, scheme-format
+msgid "Invoking `~a'..."
+msgstr "Invocando `~a'..."
+
+#: backend-library.scm:24
+#, scheme-format
+msgid "`~a' failed (~a)"
+msgstr "`~a' falló (~a)"
+
+#: backend-library.scm:95 framework-tex.scm:343 framework-tex.scm:368
+#, scheme-format
+msgid "Converting to `~a'..."
+msgstr "Convirtiendo a `~a'..."
+
+#: backend-library.scm:108
+#, scheme-format
+msgid "Converting to ~a..."
+msgstr "Convirtiendo a ~a..."
+
+#: backend-library.scm:145
+#, scheme-format
+msgid "Writing header field `~a' to `~a'..."
+msgstr "Escribiendo el campo de cabecera `~a' to `~a'..."
+
+#: define-context-properties.scm:20 define-grob-properties.scm:10
+#: define-music-properties.scm:10
+#, scheme-format
+msgid "symbol ~S redefined"
+msgstr "símbolo ~S redefinido"
+
+#: define-event-classes.scm:119
+#, scheme-format
+msgid "event class ~A seems to be unused"
+msgstr "evento de clase ~A parece no ser usado"
+
+#. should be programming-error
+#: define-event-classes.scm:125
+#, scheme-format
+msgid "translator listens to nonexisting event class ~A"
+msgstr "traductor escucha a un evento de clase inexistente ~A"
+
+#: define-markup-commands.scm:255
+msgid "no systems found in \\score markup, does it have a \\layout block?"
+msgstr "No se encontraron sistemas en el bloque \\score, tiene un bloque de \\layout?"
+
+#: define-markup-commands.scm:1297
+#, scheme-format
+msgid "not a valid duration string: ~a"
+msgstr "no representa una duración válida: ~a"
+
+#: define-music-types.scm:751
+#, scheme-format
+msgid "symbol expected: ~S"
+msgstr "se esperaba un símbolo:~S"
+
+#: define-music-types.scm:754
+#, scheme-format
+msgid "cannot find music object: ~S"
+msgstr "no se encuentra objeto musical: ~S"
+
+#: define-music-types.scm:774
+#, scheme-format
+msgid "unknown repeat type `~S'"
+msgstr "tipo de repetición desconocido `~S'"
+
+#: define-music-types.scm:775
+msgid "See music-types.scm for supported repeats"
+msgstr "Vea music-types.scp para repeticiones soportadas"
+
+#: document-backend.scm:91
+#, scheme-format
+msgid "pair expected in doc ~s"
+msgstr "se esperaba un par en doc ~s"
+
+#: document-backend.scm:135
+#, scheme-format
+msgid "cannot find interface for property: ~S"
+msgstr "no se encuentra interface para la propiedad: ~S"
+
+#: document-backend.scm:145
+#, scheme-format
+msgid "unknown Grob interface: ~S"
+msgstr "Interface de elemento desconocida: ~S"
+
+#: documentation-lib.scm:45
+#, scheme-format
+msgid "Processing ~S..."
+msgstr "Procesando ~S..."
+
+#: documentation-lib.scm:150
+#, scheme-format
+msgid "Writing ~S..."
+msgstr "Escribiendo ~S..."
+
+#: documentation-lib.scm:172
+#, scheme-format
+msgid "cannot find description for property ~S (~S)"
+msgstr "no se encuentra la descripción para la propiedad ~S(~S)"
+
+#: framework-eps.scm:91 framework-eps.scm:92
+#, scheme-format
+msgid "Writing ~a..."
+msgstr "Escribiendo ~a..."
+
+#: framework-ps.scm:279
+#, scheme-format
+msgid "cannot embed ~S=~S"
+msgstr "no se puede empotrar ~S=~S"
+
+#: framework-ps.scm:332
+#, scheme-format
+msgid "cannot extract file matching ~a from ~a"
+msgstr "no se puede extraer archivo que concuerde ~a desde ~a"
+
+#: framework-ps.scm:349
+#, scheme-format
+msgid "do not know how to embed ~S=~S"
+msgstr "se ignora como empotrar ~S=~S"
+
+#: framework-ps.scm:380
+#, scheme-format
+msgid "do not know how to embed font ~s ~s ~s"
+msgstr "no se sabe como empotrar la fuente ~s ~s ~s"
+
+#: framework-ps.scm:729
+#, scheme-format
+msgid "cannot convert <stdout> to ~S"
+msgstr "no se puede convertir <stdout> a ~S"
+
+#: framework-ps.scm:748 framework-ps.scm:751
+#, scheme-format
+msgid "cannot generate ~S using the postscript back-end"
+msgstr "no se puede generar ~S usando el backend postscript"
+
+#: framework-ps.scm:758
+msgid ""
+"\n"
+"The PostScript backend does not support the 'classic'\n"
+"framework. Use the EPS backend instead,\n"
+"\n"
+"  lilypond -b eps <file>\n"
+"\n"
+"or remove the lilypond-book specific settings from the input.\n"
+msgstr ""
+"\n"
+"El procesador PostScript no soporta la infraestructura 'clásica'.\n"
+"Use el procesador EPS en su lugar.\n"
+"  lilipond -b eps <archivo>\n"
+"\\ "
+"o elimine sintaxis específicas de lilypond-book de la entrada.\n"
+
+#: framework-tex.scm:360
+#, scheme-format
+msgid "TeX file name must not contain whitespace: `~a'"
+msgstr "El nombre del archivo TeX no puede contener espacios: `~a'"
+
+#: layout-beam.scm:29
+#, scheme-format
+msgid "Error in beam quanting.  Expected (~S,~S) found ~S."
+msgstr "Error en cuantizado de barras. Esperaba (~S,~S) se encontró ~S"
+
+#: layout-beam.scm:46
+#, scheme-format
+msgid "Error in beam quanting.  Expected ~S 0, found ~S."
+msgstr "Error en cuantizado de barras. Esperaba ~S 0, se encontró ~S"
+
+#: layout-page-layout.scm:357
+msgid "Calculating page breaks..."
+msgstr "Calculando cortes de página..."
+
+#: lily-library.scm:593
+#, scheme-format
+msgid "unknown unit: ~S"
+msgstr "unidad desconocida: ~S"
+
+#: lily-library.scm:626
+#, scheme-format
+msgid "no \\version statement found, please add~afor future compatibility"
+msgstr "no se encontró enunciado \\version, por favor añáda ~a para compatibilidad futura."
+
+#: lily-library.scm:633
+msgid "old relative compatibility not used"
+msgstr "old relative: compatibilidad anitgua no se usó"
+
+#: lily.scm:144
+#, scheme-format
+msgid "cannot find: ~A"
+msgstr "no se puede encontrar: ~A"
+
+#: lily.scm:209
+#, scheme-format
+msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
+msgstr "argumento erróneo ~a.  Se esperaba ~a, se encontró ~s"
+
+#: lily.scm:525 lily.scm:589
+#, scheme-format
+msgid "failed files: ~S"
+msgstr "se falló en los archivos: ~S"
+
+#: lily.scm:579
+#, scheme-format
+msgid "Redirecting output to ~a..."
+msgstr "Redirigiendo salida a ~a..."
+
+#: ly-syntax-constructors.scm:40
+msgid "Music head function must return Music object"
+msgstr "Función de cabecera de Music debe regresar un objeto Music."
+
+#: ly-syntax-constructors.scm:136
+#, scheme-format
+msgid "Invalid property operation ~a"
+msgstr "Operación de propiedad inválida ~a"
+
+#: markup.scm:123
+#, scheme-format
+msgid "Wrong number of arguments.  Expect: ~A, found ~A: ~S"
+msgstr "Cantidad errónea de argumentos.  Esperaba: ~A, se encontró ~A: ~S"
+
+#: markup.scm:129
+#, scheme-format
+msgid "Invalid argument in position ~A.  Expect: ~A, found: ~S."
+msgstr "Argumento erróneo en la posición ~A. .Esperaba: ~A, se encontró: ~S"
+
+#: music-functions.scm:213
+msgid "More alternatives than repeats.  Junking excess alternatives"
+msgstr "Más alternativas que repeticiones.  Descartando alternativas excedentes."
+
+#: music-functions.scm:232
+#, scheme-format
+msgid "expecting 2 elements for chord tremolo, found ~a"
+msgstr "se esperaban dos elementos den trémolo de acorde, se encontró ~a"
+
+#: music-functions.scm:538
+#, scheme-format
+msgid "music expected: ~S"
+msgstr "se esperaba música: ~S"
+
+#. FIXME: uncomprehensable message
+#: music-functions.scm:589
+#, scheme-format
+msgid "Bar check failed.  Expect to be at ~a, instead at ~a"
+msgstr "Revisión de compases falló. Esperaba estar en ~a, en vez de ~a "
+
+#: music-functions.scm:748
+#, scheme-format
+msgid "cannot find quoted music: `~S'"
+msgstr "no se encuentra la música: `~S'"
+
+#: music-functions.scm:942
+#, scheme-format
+msgid "unknown accidental style: ~S"
+msgstr "estilo desconocido de accidentes: ~S"
+
+#: output-ps.scm:315
+msgid "utf-8-string encountered in PS backend"
+msgstr "se encontró una cadena utf-8 en el procesador PS"
+
+#: output-svg.scm:42
+#, scheme-format
+msgid "undefined: ~S"
+msgstr "indefinido: ~S"
+
+#: output-svg.scm:132
+#, scheme-format
+msgid "cannot decypher Pango description: ~a"
+msgstr "no puedo descifrar descripción Pango: ~a"
+
+#: output-tex.scm:98
+#, scheme-format
+msgid "cannot find ~a in ~a"
+msgstr "no se puede enconrtar ~a en ~a"
+
+#: paper.scm:69
+msgid "Not in toplevel scope"
+msgstr "No en el ámbito superior"
+
+#: paper.scm:117
+#, scheme-format
+msgid "This is not a \\layout {} object, ~S"
+msgstr "Este no es un objeto \\layout{}, ~S"
+
+#: paper.scm:129
+#, scheme-format
+msgid "Unknown papersize: ~a"
+msgstr "papersize (tamaño de papel) desconocido: ~a"
+
+#. TODO: should raise (generic) exception with throw, and catch
+#. that in parse-scm.cc
+#: paper.scm:144
+msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
+msgstr "Debe usar #(set-paper-size .. ) dentro de \\paper { ... }"
+
+#: parser-clef.scm:126
+#, scheme-format
+msgid "unknown clef type `~a'"
+msgstr "tipo de clave desconocida `~a'"
+
+#: parser-clef.scm:127
+msgid "see scm/clef.scm for supported clefs"
+msgstr "vea scm/clef.scm para las claves soportadas"
+
+#: ps-to-png.scm:88
+#, scheme-format
+msgid "~a exited with status: ~S"
+msgstr "~a terminó con estado: ~S"
+
+#: to-xml.scm:190
+#, scheme-format
+msgid "assertion failed: ~S"
+msgstr "declaración falló: ~S"
+
index 64f32c62724513692c05bb0b9fe45af9f919f82f..e8fc167d87c12fea2fa374aa878e9c052bd8607e 100644 (file)
        (layer . 0)
        (break-visibility . ,all-visible)
        (non-musical . #t)
-       (extra-spacing-width . (-0.3 . 0.3))
-
        (stencil . ,ly:bar-line::print)
        (glyph-name . ,bar-line::calc-glyph-name)
        (bar-size .  ,ly:bar-line::calc-bar-size)
                        (key-signature . (extra-space . 1.0))
                        (key-cancellation . (extra-space . 1.0))
                        (first-note . (fixed-space . 1.3))
-                       (next-note . (semi-fixed-space . 1.3))
+                       (next-note . (semi-fixed-space . 0.9))
                        (right-edge . (extra-space . 0.0))))
 
        ;;
index 436d2c23781b33ab1133e3f9a0f1d77cdf159ca0..8f5728c31be3379771f6229b1cde465f4f68f2e3 100644 (file)
@@ -1263,8 +1263,8 @@ figured bass notation"
                     (apply ly:stencil-add
                            (map (lambda (x)
                                   (ly:stencil-translate-axis
-                                   dot  (* (+ 1 (* 2 x)) dotwid) X))
-                                (iota dot-count 1)))))
+                                   dot (* 2 x dotwid) X))
+                                (iota dot-count)))))
          (flaggl (and (> log 2)
                       (ly:stencil-translate
                        (ly:font-get-glyph font
@@ -1272,6 +1272,9 @@ figured bass notation"
                                                         (if (> dir 0) "u" "d")
                                                         (number->string log)))
                        (cons (+ (car attach-off) (/ stem-thickness 2)) stemy)))))
+
+    (if (and flaggl (> dir 0))
+       (set! dots (ly:stencil-translate-axis dots 0.35 X)))
     (if flaggl
         (set! stem-glyph (ly:stencil-add flaggl stem-glyph)))
     (if (ly:stencil? stem-glyph)
@@ -1282,12 +1285,7 @@ figured bass notation"
               (ly:stencil-add
                (ly:stencil-translate-axis
                dots
-               (+ (if (and (> dir 0) (> log 2))
-                      (* 1.5 dotwid)
-                      0)
-                  ;; huh ? why not necessary?
-                  ;;(cdr (ly:stencil-extent head-glyph X))
-                  dotwid)
+               (+ (cdr (ly:stencil-extent head-glyph X)) dotwid)
                X)
                stem-glyph)))
     stem-glyph))