From: Francisco Vila Zuletzt aktualisiert am·Mon Oct 6 20:03:36 UTC 2008
+· Zuletzt aktualisiert am·Mon Oct 13 22:24:32 UTC 2008
Actualizado en Mon Oct 6 20:03:36 UTC 2008
+ Actualizado en Mon Oct 13 22:24:32 UTC 2008
Dernière mise à jour Mon Oct 6 20:03:36 UTC 2008
+ Dernière mise à jour Mon Oct 13 22:24:32 UTC 2008
4 Die Ausgabe verändern
(12353)Till Rettig
- teilweise (94 %)
- teilweise
+ ja
+ ja
vor-GDP
@@ -112,7 +112,7 @@ translations.template.html.in; DO NOT EDIT !-->
Till Rettig
ja
- teilweise
+ ja
vor-GDP
@@ -127,8 +127,8 @@ translations.template.html.in; DO NOT EDIT !-->
@@ -216,7 +216,7 @@ translations.template.html.in; DO NOT EDIT !-->
B Scheme-Ãbung
(960)Till Rettig
- teilweise (91 %)
- teilweise
+ ja
+ ja
vor-GDP
Till Rettig
ja
- teilweise
+ ja
vor-GDP
@@ -224,19 +224,19 @@ translations.template.html.in; DO NOT EDIT !-->
Till Rettig
ja
- teilweise
+ ja
vor-GDP
-
1.2 Rhythmus
+
(6714)1.2 Rhythmus
(6312)Till Rettig
- teilweise (81 %)
+ teilweise (80 %)
teilweise
vor-GDP
-
1.3 Ausdrucksbezeichnungen
+
(1097)1.3 Ausdrucksbezeichnungen
(1110)Till Rettig
ja
@@ -260,7 +260,7 @@ translations.template.html.in; DO NOT EDIT !-->
vor-GDP
-
1.6 Notation innerhalb eines Systems
+
(1767)1.6 Notation auf Systemen
(1768)Till Rettig
ja
@@ -276,7 +276,7 @@ translations.template.html.in; DO NOT EDIT !-->
vor-GDP
-
1.8 Text
+
(2412)1.8 Text
(2410)
nein
@@ -308,26 +308,26 @@ translations.template.html.in; DO NOT EDIT !-->
vor-GDP
-
2.3 Bundlose Saiteninstrumente
+
(463)2.3 Bundlose Saiteninstrumente
(210)Till Rettig
- teilweise (38 %)
+ nein
teilweise
vor-GDP
-
2.4 Saiteninstrumente mit Bünden
+
(1509)2.4 Saiteninstrumente mit Bünden
(1748)Till Rettig
- teilweise (15 %)
+ teilweise (16 %)
teilweise
vor-GDP
-
@@ -348,7 +348,7 @@ translations.template.html.in; DO NOT EDIT !-->
2.5 Schlagzeug
+
(806)2.5 Schlagzeug
(810)Till Rettig
- teilweise (43 %)
+ teilweise (42 %)
teilweise
vor-GDP
vor-GDP
-
2.8 Notation von alter Musik
+
(4260)2.8 Notation von alter Musik
(4240)Till Rettig
teilweise (78 %)
@@ -372,7 +372,7 @@ translations.template.html.in; DO NOT EDIT !-->
vor-GDP
-
4 Abstände
+
(8303)4 Abstände
(8297)Till Rettig
teilweise (14 %)
@@ -380,7 +380,7 @@ translations.template.html.in; DO NOT EDIT !-->
vor-GDP
-
5 Standardeinstellungen verändern
+
(11025)5 Standardeinstellungen verändern
(11197)
nein
diff --git a/Documentation/de/user/ancient.itely b/Documentation/de/user/ancient.itely
index 8e81a5ed31..8c3448842a 100644
--- a/Documentation/de/user/ancient.itely
+++ b/Documentation/de/user/ancient.itely
@@ -13,7 +13,13 @@
@node Ancient notation
@section Ancient notation
-@untranslated
+@lilypondfile[quote]{ancient-headword.ly}
+
+@cindex Vaticana, Editio
+@cindex Medicaea, Editio
+@cindex Hufnagel
+@cindex Petrucci
+@cindex Mensuralnotation
@menu
* Introduction to ancient notation::
diff --git a/Documentation/de/user/editorial.itely b/Documentation/de/user/editorial.itely
index de487bfe3a..8b2cdf5180 100644
--- a/Documentation/de/user/editorial.itely
+++ b/Documentation/de/user/editorial.itely
@@ -1,6 +1,6 @@
@c -*- coding: utf-8; mode: texinfo; -*-
@ignore
- Translation of GIT committish: d0614c27e88dc7bd3993f3744a388749ba93b267
+ Translation of GIT committish: 7c57f1469e057f25f5d7a7b75c18f33bb4e5bed9
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@@ -13,6 +13,10 @@
@lilypondfile[quote]{editorial-headword.ly}
+Dieser Abschnitt zeigt die verschiedenen Möglichkeiten, die
+Erscheinung der Noten zu ändern und analytische bzw. pädagogische
+Anmerkungen anzubringen.
+
@menu
* Inside the staff::
* Outside the staff::
@@ -22,6 +26,8 @@
@node Inside the staff
@subsection Inside the staff
+Dieser Abschnitt zeigt, wie man Elemente hervorhebt, die sich
+innerhalb des Notensystems befinden.
@menu
* Selecting notation font size::
@@ -35,7 +41,107 @@
@node Selecting notation font size
@unnumberedsubsubsec Selecting notation font size
-@untranslated
+@cindex Font, GröÃe ändern für Notation
+@cindex SchriftgröÃe (Notation) ändern
+@cindex Auswahl von SchriftgröÃe (Notation)
+@cindex Noten, SchriftgröÃe
+@cindex Notenköpfe
+@funindex fontSize
+@funindex font-size
+@funindex magstep
+@funindex \huge
+@funindex \large
+@funindex \normalsize
+@funindex \small
+@funindex \tiny
+@funindex \teeny
+@funindex huge
+@funindex large
+@funindex normalsize
+@funindex small
+@funindex tiny
+@funindex teeny
+
+Die SchriftgröÃe von Notationselementen kann geändert werden.
+Damit wird allerdings nicht die GröÃe von veränderlichen
+Symbolen, wie Balken oder Bögen, geändert.
+
+@warning{Für SchriftgröÃe von Text, siehe
+@ref{Selecting font and font size}.}
+
+@lilypond[verbatim,quote,relative=2]
+\huge
+c4.-> d8---3
+\large
+c4.-> d8---3
+\normalsize
+c4.-> d8---3
+\small
+c4.-> d8---3
+\tiny
+c4.-> d8---3
+\teeny
+c4.-> d8---3
+@end lilypond
+
+Intern wird hiermit die @code{fontSize}-Eigenschaft gesetzt. Sie
+wird für alle Layout-Objekte definiert. Der Wert von
+@code{font-size} ist eine Zahl, die die GröÃe relativ zur StandardgröÃe
+für die aktuelle Systemhöhe angibt. Jeder VergröÃerungsschritt bedeutet
+etwa eine VergröÃerung um 12% der SchriftgröÃe. Mit sechs Schritten wird
+die SchriftgröÃe exakt verdoppelt. Die Scheme-Funktion @code{magstep}
+wandelt einen Wert von @code{font-size} in einen Skalierungsfaktor um.
+Die @code{font-size}-Eigenschaft kann auch direkt gesetzt werden, so dass
+sie sich nur auf bestimmte Layoutobjekte bezieht.
+
+@lilypond[verbatim,quote,relative=2]
+\set fontSize = #3
+c4.-> d8---3
+\override NoteHead #'font-size = #-4
+c4.-> d8---3
+\override Script #'font-size = #2
+c4.-> d8---3
+\override Stem #'font-size = #-5
+c4.-> d8---3
+@end lilypond
+
+@cindex Standard-SchriftgröÃe (Notation)
+@cindex SchriftgröÃe (Notation), Standard
+@funindex font-interface
+@funindex font-size
+
+SchriftgröÃenänderungen werden erreicht, indem man die Design-SchriftgröÃe
+nimmt, die der gewünschten am nächsten kommt, und sie dann skaliert. Die
+Standard-SchriftgröÃe (für @code{font-size = #0}) hängt von der
+Standard-Systemhöhe ab. Für ein Notensystem von 20pt wird eine SchriftgröÃe
+von 10pt ausgewählt.
+
+Die @code{font-size}-Eigenschaft kann nur für die Layoutobjekte gesetzt
+werden, die Schrift-Dateien benutzen. Das sind die, welche die
+@code{font-interface}-Layoutschnittstelle unterstützen.
+
+@predefined
+
+@funindex \teeny
+@code{\teeny},
+@funindex \tiny
+@code{\tiny},
+@funindex \small
+@code{\small},
+@funindex \normalsize
+@code{\normalsize},
+@funindex \large
+@code{\large},
+@funindex \huge
+@code{\huge}.
+
+@seealso
+
+Schnipsel:
+@rlsr{Editorial annotations}.
+
+Referenz der Interna:
+@rinternals{font-interface}.
@node Fingering instructions
@@ -43,84 +149,289 @@
@cindex Fingersatz
@cindex Fingerwechsel
+@cindex Griff: Fingersatz
+@funindex \finger
+@funindex finger
Fingersatzanweisungen können folgenderweise notiert werden:
-@example
@var{Note}-@var{Zahl}
-@end example
+
+@lilypond[verbatim,quote,relative=2]
+c4-1 d-2 f-4 e-3
+@end lilypond
+
Für Fingerwechsel muss eine Textbeschriftung (markup) benutzt werden:
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-c4-1 c-2 c-3 c-4
-c^\markup { \finger "2 - 3" }
+@lilypond[quote,verbatim,relative=2]
+c4-1 d-2 f-4 c^\markup { \finger "2 - 3" }
@end lilypond
+@cindex thumb-script
+@cindex Fingersatz: Daumen-Zeichen
+@funindex \thumb
+@funindex thumb
+
Mit dem Daumen-Befehl (@code{\thumb}) können die Noten bezeichnet
werden, die mit dem
Daumen (etwa auf dem Cello) gespielt werden sollen.
-@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
-pre-GDP
-
1.2 Duraciones
+
(6714)1.2 Duraciones
(6312)Francisco Vila
sÃ
@@ -228,7 +228,7 @@ translations.template.html.in; DO NOT EDIT !-->
pre-GDP
-
1.3 Expresiones
+
(1097)1.3 Expresiones
(1110)Francisco Vila
sÃ
@@ -252,7 +252,7 @@ translations.template.html.in; DO NOT EDIT !-->
post-GDP
-
1.6 Notación de los pentagramas
+
(1767)1.6 Notación de los pentagramas
(1768)Francisco Vila
sÃ
@@ -268,11 +268,11 @@ translations.template.html.in; DO NOT EDIT !-->
pre-GDP
-
1.8 Texto
+
(2412)1.8 Texto
(2410)Francisco Vila
sÃ
- parcialmente
+ sÃ
pre-GDP
@@ -300,27 +300,27 @@ translations.template.html.in; DO NOT EDIT !-->
pre-GDP
-
2.3 Instrumentos de cuerda sin trastes
+
(463)2.3 Instrumentos de cuerda sin trastes
(210)Francisco Vila
- parcialmente (22 %)
- parcialmente
+ sÃ
+ sÃ
pre-GDP
-
2.4 Instrumentos de cuerda con trastes
+
(1509)2.4 Instrumentos de cuerda con trastes
(1748)Francisco Vila
- parcialmente (40 %)
- parcialmente
+ sÃ
+ parcialmente
pre-GDP
-
2.5 Percusión
+
(806)2.5 Percusión
(810)Francisco Vila
- parcialmente (44 %)
- parcialmente
+ sÃ
+ sÃ
pre-GDP
@@ -340,7 +340,7 @@ translations.template.html.in; DO NOT EDIT !-->
pre-GDP
-
2.8 Notación antigua
+
(4260)2.8 Notación antigua
(4240)Francisco Vila
sÃ
@@ -359,12 +359,12 @@ translations.template.html.in; DO NOT EDIT !-->
3 Entrada y salida generales
(5605)Francisco Vila
- parcialmente (48 %)
- parcialmente
+ sÃ
+ sÃ
pre-GDP
-
4 Problemas de espaciado
+
(8303)4 Problemas de espaciado
(8297)Francisco Vila
sÃ
@@ -372,11 +372,11 @@ translations.template.html.in; DO NOT EDIT !-->
pre-GDP
-
5 Cambiar los valores por omisión
+
(11025)5 Cambiar los valores por omisión
(11197)Francisco Vila
parcialmente (66 %)
- parcialmente
+ parcialmente
pre-GDP
diff --git a/Documentation/es/user/ancient.itely b/Documentation/es/user/ancient.itely
index d074f8fb31..37ccf26bc3 100644
--- a/Documentation/es/user/ancient.itely
+++ b/Documentation/es/user/ancient.itely
@@ -180,7 +180,7 @@ Véanse uno de los contextos predefinidos @code{VaticanaVoice},
Una ligadura es un sÃmbolo gráfico que representa al menos dos notas
distintas. Las ligaduras aparecieron originalmente en los manuscritos
-de la notación del Canto Gregoriano para denotar secuencias de notas
+de la notación del canto gregoriano para denotar secuencias de notas
ascendentes o descendentes en la misma sÃlaba. Se usan también en
notación mensural.
@@ -242,7 +242,7 @@ ayudando al intérprete con los saltos de lÃnea durante la ejecución.
Las custodias se utilizaron mucho en la notación musical hasta el
siglo XVII. En nuestros dÃas, sobreviven sólo en algunas formas
particulares de notación musical como las ediciones contemporáneas de
-Canto Gregoriano como la @emph{Editio Vaticana}. Hay distintos glifos
+canto gregoriano como la @emph{Editio Vaticana}. Hay distintos glifos
para el custos que se utilizan en las diferentes variaciones de estilo
notacional.
@@ -668,7 +668,7 @@ mensurales siempre se alinea verticalmente con una lÃnea de la pauta.
No existe un estilo particular de corchete para la notación neo-mensural.
-No existen corchetes en la notación del Canto Gregoriano.
+No existen corchetes en la notación del canto gregoriano.
@seealso
@@ -719,7 +719,7 @@ estilo predeterminado.
Consulte @rlsr{Pitches,rests} para ver un cuadro de todos los
silencios.
-No hay silencios en la notación del Canto Gregoriano; en su lugar, se
+No hay silencios en la notación del canto gregoriano; en su lugar, se
utilizan @ref{Divisiones}.
@seealso
@@ -953,7 +953,7 @@ grabadores de ligaduras.
El contexto predefinido de voz @code{VaticanaVoiceContext} y el de
pauta @code{VaticanaStaffContext} se pueden utilizar para grabar una
-pieza de Canto Gregoriano en el estilo de la Editio Vaticana. Estos
+pieza de canto gregoriano en el estilo de la Editio Vaticana. Estos
contextos establecen a unos valores iniciales adecuados todas las
propiedades relevantes de los contextos y de los objetos gráficos, de
forma que pueda inmediatamente comenzar a escribir el canto en sÃ,
@@ -1198,7 +1198,7 @@ Referencia de funcionamiento interno:
Una @emph{divisio} (en plural: @emph{divisiones}, que en latÃn
significa @q{división}) es un sÃmbolo del contexto del pentagrama que
-se usa para estructurar la música Gregoriana en frases y secciones.
+se usa para estructurar la música gregoriana en frases y secciones.
El significado musical de @emph{divisio minima}, @emph{divisio maior}
y @emph{divisio maxima} se podrÃan caracterizar como una pausa corta,
media y larga (respectivamente), algo asà como las marcas de
diff --git a/Documentation/es/user/changing-defaults.itely b/Documentation/es/user/changing-defaults.itely
index 4be7b0f120..ae87fdcc21 100644
--- a/Documentation/es/user/changing-defaults.itely
+++ b/Documentation/es/user/changing-defaults.itely
@@ -992,7 +992,7 @@ Aquà @var{nombre} es el nombre de un objeto gráfico, como @code{Stem}
o @code{NoteHead}, y @var{propiedad} es una variable interna del
sistema de formateo (@q{propiedad del grob} o @q{propiedad de
disposición}). Este último es un sÃmbolo, y por ello debe ir
-precedido de un apóstrofe. La subsección @ref{Modifying properties}
+precedido de un apóstrofo. La subsección @ref{Modifying properties}
explica cómo se deben cumplimentar los conceptos @var{nombre},
@var{propiedad} y @var{valor}. Aquà sólo nos ocuparemos de la
funcionalidad des esta instrucción.
diff --git a/Documentation/es/user/fretted-strings.itely b/Documentation/es/user/fretted-strings.itely
index 80871d43e5..50c33f53b2 100644
--- a/Documentation/es/user/fretted-strings.itely
+++ b/Documentation/es/user/fretted-strings.itely
@@ -1,7 +1,7 @@
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: e976c5dcd45a9adddd8005ba099c9aad01004f62
+ Translation of GIT committish: 46e221e7e08ee0e17dd6977a46acec8dabf63944
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@@ -19,6 +19,8 @@ exclusivos de los instrumentos de cuerda con trastes.
@cindex tablatura
@cindex guitarra, tablatura de
+@cindex tablatura de banj
+@cindex banjo, tablatura de
@menu
* Common notation for fretted strings::
@@ -88,6 +90,8 @@ Referencia de la notación:
@unnumberedsubsubsec String number indications
@cindex cuerda, número de la
+@cindex números de cuerda frente a digitaciones
+@cindex digitación frente a números de cuerda
Se puede indicar la cuerda en que se debe tocar una nota añadiendo
@code{\}@tie{}@var{número} a una nota dentro de una construcción de
@@ -140,6 +144,9 @@ Referencia de funcionamiento interno:
@cindex tablatura, principios básicos
@cindex tablatura predeterminada
+@funindex TabStaff
+@funindex TabVoice
+
La notación de tablatura se utiliza para la notación de música de
instrumentos de cuerda pulsada. Las alturas no se denotan mediante
cabezas de nota, sino mediante números que indican sobre qué cuerda y
@@ -161,6 +168,7 @@ aguda, y la afinación normal es la afinación estándar de guitarra (con
@end lilypond
@funindex minimumFret
+
@cindex traste
Cuando no se especifica ninguna cuerda, se selecciona la primera
@@ -183,7 +191,12 @@ de @code{minimumFret} es cero:
>>
@end lilypond
-As pueden añadir indicaciones de armónicos y @emph{slides} a la
+@cindex armónicos en tablatura
+@cindex tablatura y armónicos
+@cindex slides en notación de tablatura
+@cindex tablatura y slides
+
+Se pueden añadir indicaciones de armónicos y @emph{slides} a la
notación de tablatura.
@lilypond[fragment, verbatim, quote, relative=1]
@@ -244,6 +257,14 @@ Los efectos especiales de guitarra se limitan a armónicos y @emph{slides}.
@unnumberedsubsubsec Custom tablatures
@cindex tablaturas personalizadas
+@cindex tablatura de banjo
+@cindex tablatura de mandolina
+@cindex tablatura de bajo
+@cindex tablatura, afinaciones predefinidas de
+@cindex trastes, instrumentos con, afinaciones predefinidas
+@cindex predefinidas, afinaciones, para instrumentos de traste
+
+@funindex StringTunings
La tablatura en LilyPond calcula automáticamente el traste para cada
nota, basándose en la cuerda a que está asignada la nota. Para
@@ -336,6 +357,10 @@ Referencia de funcionamiento interno:
@cindex trastes, diagramas de
@cindex acordes, diagramas de
+@cindex diagramas de trastes
+@cindex diagramas de acordes para instrumentos de trastes
+@cindex trastes, diagramas de, personalizados
+@cindex personalizados, diagramas de trastes
Se pueden añadir diagramas de trastes a la música como elementos de
marcado sobre la nota deseada. El marcado contiene información sobre
@@ -368,6 +393,8 @@ y cuerdas mudas (que no se tocan).
>>
@end lilypond
+@cindex cejilla, indicación de
+
Las indicaciones de cejilla se pueden añadir al diagrama a partir de
la cadena de marcado del diagrama de trastes.
@@ -388,6 +415,11 @@ la cadena de marcado del diagrama de trastes.
>>
@end lilypond
+@cindex fret-diagram, marcado con
+
+@funindex fret-diagram
+@funindex \fret-diagram
+
El tamaño del diagrama de trastes y el número de trastes del diagrama,
se puede cambiar en la cadena de marcado @code{fret-diagram}.
@@ -467,6 +499,11 @@ de marcado @code{fret-diagram}.
>>
@end lilypond
+@cindex fret-diagram-terse, marcado con
+
+@funindex fret-diagram-terse
+@funindex \fret-diagram-terse
+
La cadena de marcado de diagrama de trastes escueta,
@code{fret-diagram-terse}, omite los números de la cuerda; el número
de cuerda viene implÃcito por la presencia del punto y coma. Hay un
@@ -539,6 +576,11 @@ Otras propiedades de los diagramas de trastes se deben ajustar usando
@code{\override} al utilizar el marcado escueto con
fret-diagram-terse.
+@cindex fret-diagram-verbose, marcado con
+
+@funindex fret-diagram-verbose
+@funindex \fret-diagram-verbose
+
La cadena de marcado prolija @code{fret-diagram-verbose} está en el
formato de una lista de Scheme. Cada elemento de la lista indica la
colocación un elemento sobre el diagrama de trastes.
@@ -652,6 +694,12 @@ and color of dots.
@end lilypond
@end ignore
+@cindex personalizados, diagramas de trastes
+@cindex trastes, diagramas personalizados de
+@cindex diagrama de trastes personalizado
+
+@funindex fret-diagram-interface
+
El aspecto gráfico de un diagrama de trastes se puede personalizar
según las preferencias del usuario a través de las propiedades del
interface @code{fret-diagram-interface}. Los detalles están en
@@ -681,6 +729,9 @@ Referencia de funcionamiento interno:
@cindex fret diagrams
@cindex chord diagrams
+@funindex FretBoards
+@funindex stringTunings
+
Se pueden imprimir los diagramas de trastes usando el contexto
@code{FretBoards}. De forma predeterminada, el contexto
@code{FretBoards} imprime diagramas de trastes que están almacenados
@@ -716,6 +767,13 @@ bein usando el modo de acordes (véase @ref{Chord mode overview}).
}
@end lilypond
+@cindex acordes, diagramas de trastes con nombres de
+@cindex trastes, diagramas de, con nombres de acorde
+
+@funindex ChordNames
+@funindex chordmode
+@funindex \chordmode
+
Es corriente que se impriman juntos los nombres de acorde y los
diagramas de traste. Esto se puede hacer poniendo un contexto de
nombres de acorde @code{ChordNames} en paralelo con un contexto de
@@ -738,6 +796,10 @@ mychords = \chordmode{
>>
@end lilypond
+@cindex transporte de diagramas de trastes
+@cindex trastes, diagramas de, transporte
+@cindex diagramas de traste, transporte de los
+
Los diagramas de traste predefinidos se pueden transportar, en la
medida en que esté almacenado un diagrama para el acorde transportado,
en la tabla de diagramas de traste.
@@ -788,6 +850,10 @@ mychords = \chordmode{
>>
@end lilypond
+@cindex trastes personalizados, añadir diagramas de
+@cindex personalizados, añadir diagramas de traste
+@cindex diagramas de trastes personalizados, añadir
+
Se pueden añadir diagramas de traste a la tabla de diagramas sFret
diagrams can be added to the fret diagram table. Para añadir un
diagrama debemos especificar el acorde del diagrama, la afinación
@@ -839,6 +905,14 @@ mychords = \chordmode{
>>
@end lilypond
+@cindex trastes, instrumentos de, formas de acordes
+@cindex acordes, formas de, en instrumentos de trastes
+
+@funindex \addChordShape
+@funindex add ChordShape
+@funindex storePredefinedDiagram
+@funindex \storePredefinedDiagram
+
Además de los diagramas de traste, LilyPond almacena una lista interna
de formas de acorde. Las formas de acorde son diagramas de traste que
se pueden desplazar por el mástil para dar acordes distintos. Se
@@ -908,8 +982,11 @@ Referencia de funcionamiento interno:
@node Automatic fret diagrams
@unnumberedsubsubsec Automatic fret diagrams
-@cindex fret diagrams
-@cindex chord diagrams
+
+@cindex trastes, diagramas automáticos de
+@cindex acordes, diagramas automáticos de
+@cindex automáticos, diagramas de traste
+@cindex automáticos, diagramas de acordes
Se pueden crear diagramas de traste automáticamente a partir de las
notas introducidas usando el contexto @code{FretBoards}. Si no está
@@ -936,6 +1013,11 @@ cuerdas y los trastes que se pueden usar para tocar las notas.
>>
@end lilypond
+@funindex predefinedFretboardsOff
+@funindex \predefinedFretboardsOff
+@funindex predefinedFretboardsOn
+@funindex \predefinedFretboardsOn
+
Puesto que de forma predeterminada no se carga ningún diagrama
predefinido, el comportamiento predeterminado es el cálculo automático
de los diagramas de traste. Una vez que los diagramas predeterminados
@@ -994,6 +1076,9 @@ situará en el lugar adecuado por parte del contexto @code{FretBoards}.
>>
@end lilypond
+@cindex trastes, añadir digitaciones a diagramas de
+@cindex digitaciones, añadir, a diagramas de trastes
+
Se pueden añadir digitaciones a los diagramas de traste del contexto
FretBoard.
@@ -1068,10 +1153,16 @@ Referencia de funcionamiento interno:
@rinternals {fret-diagram-interface}.
-
@node Right-hand fingerings
@unnumberedsubsubsec Right-hand fingerings
+@cindex trastes, instrumentos de, digitaciones de la derecha
+@cindex digitaciones de la mano derecha para instrumentos de trastes
+@cindex derecha, mano, digitaciones para instrumentos de traste
+
+@funindex rightHandFinger
+@funindex \rightHandFinger
+
Las digitaciones de la mano derecha @var{p-i-m-a} se deben introducir
dentro de una construcción de acorde @code{<>} para que se impriman en
la partitura, incluso si se aplican a una nota suelta.
@@ -1095,9 +1186,6 @@ corto, como por ejemplo @code{RH}:
#(define RH rightHandFinger)
@end example
-@cindex digitaciones, mano derecha, de guitarra
-@cindex mano derecha, digitaciones para guitarra
-
@snippets
@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
@@ -1138,6 +1226,9 @@ experiencia, un tipografiador como GuitarTeX.
@node Indicating position and barring
@unnumberedsubsubsec Indicating position and barring
+@cindex posición y cejilla, indicación para instrumentos de trastes
+@cindex trastes, instrumentos de, indicacion de la posición y cejilla
+
Este ejemplo muestra cómo incluir indicaciones de posición y cejilla
de guitarra:
@@ -1163,6 +1254,11 @@ Fragmentos de código:
@node Indicating harmonics and dampened notes
@unnumberedsubsubsec Indicating harmonics and dampened notes
+@cindex trastes, notas tapadas en instrumentos de
+@cindex trastes, armónicos en instrumentos de
+@cindex tapadas, notas, en instrumentos de trastes
+@cindex armónicos en instrumentos de trastes
+
Se pueden usar cabezas de nota especiales para indicar notas apagadas
o armónicos. Los armónicos se suelen explicar de forma más completa
con un marcado de texto.
@@ -1197,6 +1293,7 @@ Referencia de la notación:
@unnumberedsubsubsec Banjo tablatures
@cindex banjo, tablaturas de
+@cindex tablatura de banjo
LilyPond contempla el banjo de cinco cuerdas de una manera básica.
Cuando haga tablaturas para banjo de cinco cuerdas, utilice la función
@@ -1218,6 +1315,15 @@ los trastes para la quinta cuerda:
>>
@end lilypond
+@cindex banjo, afinaciones del
+@cindex afinaciones del banjo
+
+@funindex banjo-c-tuning
+@funindex banjo-modal-tuning
+@funindex banjo-open-d-tuning
+@funindex banjo-open-dm-tuning
+@funindex four-string-banjo
+
En LilyPond se encuentran predefinidas varias afinaciones comunes para
el banjo: @code{banjo-c-tuning} (sol-Do-Sol-Si-Re),
@code{banjo-modal-tuning} (sol-Re-Sol-Do-Re),
diff --git a/Documentation/es/user/pitches.itely b/Documentation/es/user/pitches.itely
index ef8fe3cee8..5cf63f589b 100644
--- a/Documentation/es/user/pitches.itely
+++ b/Documentation/es/user/pitches.itely
@@ -1,6 +1,6 @@
@c -*- coding: utf-8; mode: texinfo; -*-
@ignore
- Translation of GIT committish: 635c9ec04620eaf1303e3ab3c04c8a7d6e0a9fe4
+ Translation of GIT committish: 7c57f1469e057f25f5d7a7b75c18f33bb4e5bed9
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
diff --git a/Documentation/es/user/programming-interface.itely b/Documentation/es/user/programming-interface.itely
index 1331329946..9c7d433f64 100644
--- a/Documentation/es/user/programming-interface.itely
+++ b/Documentation/es/user/programming-interface.itely
@@ -1,18 +1,20 @@
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 4a527608c5ff2ce31e596495d00dce181dc1b9ea
+ Translation of GIT committish: 1c1a90eaa67cdb75cd62c80fc11cd20635e68f93
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+@c \version "2.11.61"
@node Interfaces for programmers
@chapter Interfaces for programmers
-@untranslated
-
+Se pueden realizar trucos avanzados mediante el uso de Scheme. Si no
+está familizarizado con Scheme, le conviene leer nuestro tutorial de
+Scheme, @rlearning{Scheme tutorial}.
@menu
* Music functions::
@@ -21,14 +23,16 @@
* Markup programmer interface::
* Contexts for programmers::
* Scheme procedures as properties::
-* TODO moved into scheme::
+* Using Scheme code instead of \tweak::
+* Difficult tweaks::
@end menu
+
@node Music functions
@section Music functions
-@untranslated
-
+Esta sección trata sobre cómo crear funciones musicales dentro de
+LilyPond.
@menu
* Overview of music functions::
@@ -43,51 +47,255 @@
@node Overview of music functions
@subsection Overview of music functions
-@untranslated
+Es fácil hacer una función que sustituya a una variable en código de
+LilyPond. La forma general de estas funciones es:
+
+@example
+funcion =
+#(define-music-function (parser location @var{var1} @var{var2}... )
+ (@var{var1-type?} @var{var2-type?}...)
+ #@{
+ @emph{...música...}
+ #@})
+@end example
+
+@noindent
+donde
+
+@multitable @columnfractions .33 .66
+@item @var{argi} @tab @var{i}-ésima variable
+@item @var{argi-type?} @tab tipo de variable
+@item @var{...música...} @tab entrada normal de LilyPond, usando las variables como @code{#$var1}.
+@end multitable
+
+Los siguientes tipos de entrada se pueden usar como variables en una
+función musical. Esta lista no es exhaustiva; consulte otros lugares
+de la documentación especÃfica de Scheme para ver otros tipos de
+variables.
+
+@multitable @columnfractions .33 .66
+@headitem Tipo de entrada @tab notación de @var{argi-type?}
+@item Entero @tab @code{integer?}
+@item Flotante (número decimal) @tab @code{number?}
+@item Cadena de texto @tab @code{string?}
+@item Marcado @tab @code{markup?}
+@item Expresión musical @tab @code{ly:music?}
+@item Pareja de variables @tab @code{pair?}
+@end multitable
+
+Los argumentos @code{parser} y @code{location} son obligatorios, y
+se usan en ciertas situaciones avanzadas. El argumento
+@code{parser} se usa para acceder al valor de otra variable de
+LilyPond. El argumento @code{location} se usa para establecer el
+@q{origen} de la expresión musical que construye la función musical,
+de forma que en caso de producirse un error de sintaxis LilyPond pueda
+informar al usuario de un lugar adecuado donde buscar en el archivo de
+entrada.
@node Simple substitution functions
@subsection Simple substitution functions
-@untranslated
+He aquà un ejemplo sencillo:
+
+@lilypond[quote,verbatim,ragged-right]
+padText = #(define-music-function (parser location padding) (number?)
+ #{
+ \once \override TextScript #'padding = #$padding
+ #})
+
+\relative c''' {
+ c4^"piu mosso" b a b
+ \padText #1.8
+ c4^"piu mosso" d e f
+ \padText #2.6
+ c4^"piu mosso" fis a g
+}
+@end lilypond
+
+También se pueden sustituir las expresiones musicales:
+
+@lilypond[quote,verbatim,ragged-right]
+custosNote = #(define-music-function (parser location note)
+ (ly:music?)
+ #{
+ \once \override Voice.NoteHead #'stencil =
+ #ly:text-interface::print
+ \once \override Voice.NoteHead #'text =
+ \markup \musicglyph #"custodes.mensural.u0"
+ \once \override Voice.Stem #'stencil = ##f
+ $note
+ #})
+
+{ c' d' e' f' \custosNote g' }
+@end lilypond
+
+Se pueden usar más de una variable:
+
+@lilypond[quote,verbatim,ragged-right]
+tempoMark = #(define-music-function (parser location padding marktext)
+ (number? string?)
+#{
+ \once \override Score . RehearsalMark #'padding = $padding
+ \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+ \mark \markup { \bold $marktext }
+#})
+
+\relative c'' {
+c2 e
+\tempoMark #3.0 #"Allegro"
+g c
+}
+@end lilypond
@node Paired substitution functions
@subsection Paired substitution functions
-@untranslated
+Algunas instrucciones @code{\override} requieren un par de números
+(llamados en Scheme una @code{célula cons}). Para pasar estos números
+a una función, usamos una variable @code{pair?} o bien insertamos el
+@code{cons} en la función musical.
+
+@quotation
+@example
+manualBeam =
+#(define-music-function (parser location beg-end)
+ (pair?)
+#@{
+ \once \override Beam #'positions = #$beg-end
+#@})
+
+\relative @{
+ \manualBeam #'(3 . 6) c8 d e f
+@}
+@end example
+@end quotation
+
+@noindent
+o bien
+
+@lilypond[quote,verbatim,ragged-right]
+manualBeam =
+#(define-music-function (parser location beg end)
+ (number? number?)
+#{
+ \once \override Beam #'positions = #(cons $beg $end)
+#})
+
+\relative {
+ \manualBeam #3 #6 c8 d e f
+}
+@end lilypond
@node Mathematics in functions
@subsection Mathematics in functions
-@untranslated
+Las funciones musicales pueden contar con programación de Scheme
+además de la simple sustitución:
+
+@lilypond[quote,verbatim,ragged-right]
+AltOn = #(define-music-function (parser location mag) (number?)
+ #{ \override Stem #'length = #$(* 7.0 mag)
+ \override NoteHead #'font-size =
+ #$(inexact->exact (* (/ 6.0 (log 2.0)) (log mag))) #})
+
+AltOff = {
+ \revert Stem #'length
+ \revert NoteHead #'font-size
+}
+
+{ c'2 \AltOn #0.5 c'4 c'
+ \AltOn #1.5 c' c' \AltOff c'2 }
+@end lilypond
+
+@noindent
+Este ejemplo se puede reescribir de forma que pase expresiones
+musicales:
+
+@lilypond[quote,verbatim,ragged-right]
+withAlt = #(define-music-function (parser location mag music) (number? ly:music?)
+ #{ \override Stem #'length = #$(* 7.0 mag)
+ \override NoteHead #'font-size =
+ #$(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
+ $music
+ \revert Stem #'length
+ \revert NoteHead #'font-size #})
+
+{ c'2 \withAlt #0.5 {c'4 c'}
+ \withAlt #1.5 {c' c'} c'2 }
+@end lilypond
@node Void functions
@subsection Void functions
-@untranslated
+Una función musical debe devolver una expresión musical, per a veces
+podemos necesitar una función en la que no hay música en juego (como
+la desactivación de la funcionalidad Apuntar y Pulsar). Para hacerlo,
+devolvemos una expresión musical @code{void} (vacÃa).
+
+Este es el motivo por el que la forma que se devuelve es
+@code{(make-music ...)}. Con el valor de la propiedad @code{'void}
+establecido a @code{#t}, le decimos al analizador que descarte la
+expresión musical devuelta. asÃ, la parte importante de la función
+musical vacÃa es el proceso realizado por la función, no la expresión
+musical que se devuelve.
+
+@example
+noPointAndClick =
+#(define-music-function (parser location) ()
+ (ly:set-option 'point-and-click #f)
+ (make-music 'SequentialMusic 'void #t))
+...
+\noPointAndClick % desactivar la funcionalidad Apuntar y Pulsar.
+@end example
@node Functions without arguments
@subsection Functions without arguments
-@untranslated
+En casi todos los casos, una función sin argumentos se debe escribir
+con una variable:
+
+@example
+dolce = \markup@{ \italic \bold dolce @}
+@end example
+
+Sin embargo, en raras ocasiones puede ser de utilidad crear una
+función musical sin argumentos:
+
+@example
+displayBarNum =
+#(define-music-function (parser location) ()
+ (if (eq? #t (ly:get-option 'display-bar-numbers))
+ #@{ \once \override Score.BarNumber #'break-visibility = ##f #@}
+ #@{#@}))
+@end example
+
+Para la imresión real de los números de compás donde se llama a esta
+función, invoque a @command{lilypond} con
+
+@example
+lilypond -d display-bar-numbers ARCHIVO.ly
+@end example
@node Overview of available music functions
@subsection Overview of available music functions
-@untranslated
-
+@c fixme ; this should be move somewhere else?
+Las siguientes instrucciones son funciones musicales:
@include identifiers.tely
+
+
@node Programmer interfaces
@section Programmer interfaces
-@untranslated
-
+Esta sección contiene información sobre cómo mezclar LilyPond y
+Scheme.
@menu
* Input variables and Scheme::
@@ -97,19 +305,155 @@
@node Input variables and Scheme
@subsection Input variables and Scheme
-@untranslated
+El formato de entrada contempla la noción de variables: en el ejemplo
+siguiente, se asigna una expresión musical a una variable con el
+nombre @code{traLaLa}.
+
+@example
+traLaLa = @{ c'4 d'4 @}
+@end example
+
+@noindent
+
+También existe una forma de ámbito léxico: en el ejemplo siguiente, el
+bloque @code{\layout} también contiene una variable @code{traLaLa},
+que es independiente de la @code{\traLaLa} exterior.
+
+@example
+traLaLa = @{ c'4 d'4 @}
+\layout @{ traLaLa = 1.0 @}
+@end example
+@c
+De hecho, cada archivo de entrada es un ámbito léxico, y todos los
+bloques @code{\header}, @code{\midi} y @code{\layout} son ámbitos
+anidados dentro de dicho ámbito de nivel superior.
+
+Tanto el ámbito léxico como las variables están implementados en el
+sistema de módulos GUILE. Se adjunta un módulo anónimo de Scheme a
+cada ámbito. Una asignación de la forma
+@example
+traLaLa = @{ c'4 d'4 @}
+@end example
+
+@noindent
+se convierte internamente a una definición de Scheme
+@example
+(define traLaLa @var{Scheme value of `@code{... }'})
+@end example
+
+Esto supone que las variables de entrada y las variables de Scheme se
+pueden intermezclar con libertad. En el ejemplo siguiente, se
+almacena un fragmento musical en la variable @code{traLaLa}, y se
+dupplica utilizando Scheme. El resultado se importa en un bloque
+@code{\score} por medio de una segunda variable @code{twice}:
+
+@lilypond[verbatim]
+traLaLa = { c'4 d'4 }
+
+%% dummy action to deal with parser lookahead
+#(display "this needs to be here, sorry!")
+
+#(define newLa (map ly:music-deep-copy
+ (list traLaLa traLaLa)))
+#(define twice
+ (make-sequential-music newLa))
+
+{ \twice }
+@end lilypond
+
+@c Due to parser lookahead
+
+En este ejemplo, la asignación se produce después de que el analizador
+sintáctico ha verificado que no ocurre nada interesante después de
+@code{traLaLa = @{ ... @}}. Sin el argumento mudo del ejemplo, la
+definición @code{newLa} se ejecuta antes de que se defina
+@code{traLaLa}, conduciendo a un error de sintaxis.
+
+El ejemplo anterior muestra cómo @q{exportar} expresiones musicales
+desde la entrada hasta el intérprete de Scheme. También es posible lo
+contrario. Envolviendo un valor de Scheme en la función
+@code{ly:export}, un valor de Scheme se interpreta como si hubiera
+sido introducido en sintaxis de LilyPond. En vez de definir
+@code{\twice}, el ejemplo anterior podrÃa también haberse escrito como
+@example
+@dots{}
+@{ #(ly:export (make-sequential-music (list newLa))) @}
+@end example
+
+El sódigo de Scheme se evalúa tan pronto como el analizador sintáctico
+lo encuentra. Para definir código de Scheme en un macro (para
+llamarlo con posterioridad), use @ref{Void functions}, o bien
+
+@example
+#(define (nopc)
+ (ly:set-option 'point-and-click #f))
+
+...
+#(nopc)
+@{ c'4 @}
+@end example
+
+@knownissues
+
+No es posible mezclar variables de Scheme y de LilyPond con la opción
+@code{--safe}.
@node Internal music representation
@subsection Internal music representation
-@untranslated
+Cuando se analiza sintácticamente una expresión musical, se convierte
+en un conjunto de objetos musicales de Scheme. La propiedad que
+define a un objeto musical es que tiene una cierta duración. El
+tiempo es un número racional que mide la longitud de un fragmento de
+música en unidades del valor de una redonda.
+
+Un objeto musical tiene tres clases de tipos:
+@itemize
+@item
+nombre musical: cada expresión musical tiene un nombre. Por ejemplo,
+una nota conduce a un evento @rinternals{NoteEvent}, y
+@code{\simultaneous} conduce a @rinternals{SimultaneousMusic}. Hay
+una lista de todas las expresiones que están disponibles en el Manual
+de referencia de funcionamiento interno, bajo @rinternals{Music
+expressions}.
+
+@item
+@q{typo} o intterface: cada nombre de música tiene varios @q{tipos} o
+interfaces, por ejemplo una nota es un @code{event}, pero también es
+un @code{note-event}, un @code{rhythmic-event} y un
+@code{melodic-event}. Todas las clases musicales se encuentran
+relacionadas en la Referencia de funcionamiento interno bajo
+@rinternals{Music classes}.
+
+@item
+Objeto de C++: cada objeto musical está representado por un objeto de
+la clase de C++ @code{Music}.
+@end itemize
+
+La información real de una expresión musical se almacena en forma de
+propiedades. Por ejemplo, un evento @rinternals{NoteEvent} tiene
+propiedades @code{pitch} y @code{duration} que almacenan la altura y
+duración de la nota. Hay una lista completa de las propiedades que
+están disponibles en la Referencia de funcionamiento interno, bajo
+@rinternals{Music properties}.
+
+Una expresión musical compuesta es un objeto musical que contiene
+otros objetos musicales en sus propiedades. Se puede almacernar una
+lista de objetos en la propiedad @code{elements} de un objeto musical,
+o un solo objeto musical @q{hijo} en la propiedad @code{element}. Por
+ejemplo, @rinternals{SequentialMusic} tiene sus hijos en
+@code{elements}, y @rinternals{GraceMusic} tiene su elemento único en
+@code{element}. El cuerpo de una repetición se almacena en la
+propiedad @code{element} de @rinternals{RepeatedMusic}, y las
+alternativas en @code{elements}.
@node Building complicated functions
@section Building complicated functions
-@untranslated
+Esta sección explica cómo reunir la información necesaria para crear
+funciones musicales complejas.
@menu
@@ -122,32 +466,392 @@
@node Displaying music expressions
@subsection Displaying music expressions
-@untranslated
+@cindex interno, almacenamiento
+@funindex \displayMusic
+
+Si se está escribiendo una función musical puede ser muy instructivo
+examinar cómo se almacena internamente una expresión musical. Esto se
+puede hacer con la función musical @code{\displayMusic}:
+
+@example
+@{
+ \displayMusic @{ c'4\f @}
+@}
+@end example
+
+@noindent
+imprime lo siguiente:
+
+@example
+(make-music
+ 'SequentialMusic
+ 'elements
+ (list (make-music
+ 'EventChord
+ 'elements
+ (list (make-music
+ 'NoteEvent
+ 'duration
+ (ly:make-duration 2 0 1 1)
+ 'pitch
+ (ly:make-pitch 0 0 0))
+ (make-music
+ 'AbsoluteDynamicEvent
+ 'text
+ "f")))))
+@end example
+
+De forma predeterminada, LilyPond imprime estos mensajes en la consola
+junto al resto de los mensajes. Para discernir entre estos mensajes y
+guardar el resultado de @code{\display@{MATERIAL@}}, redirija la
+salida hacia un archivo.
+
+@example
+lilypond archivo.ly >resultado.txt
+@end example
+
+Con la aplicación de un poco de formato, la inforamción anterior es
+fácil de leer:
+
+@example
+(make-music 'SequentialMusic
+ 'elements (list (make-music 'EventChord
+ 'elements (list (make-music 'NoteEvent
+ 'duration (ly:make-duration 2 0 1 1)
+ 'pitch (ly:make-pitch 0 0 0))
+ (make-music 'AbsoluteDynamicEvent
+ 'text "f")))))
+@end example
+
+Una secuencia musical @code{@{ ... @}} tiene el nombre
+@code{SequentialMusic}, y sus expresiones internas se almacenan como
+una lista en su propiedad @code{'elements}. Una nota se representa
+como una expresión @code{EventChord} que contiene un objeto
+@code{NoteEvent} (que almacena las propiedades de duración y altura) y
+cualquier otra información adicional (en este caso, un evento
+@code{AbsoluteDynamicEvent} con una porpiedad de texto @code{"f"}.
@node Music properties
@subsection Music properties
-@untranslated
+El objeto @code{NoteEvent} es el primer objeto de la propiedad
+@code{'elements} de @code{someNote}.
+
+@example
+unaNota = c'
+\displayMusic \unaNota
+===>
+(make-music
+ 'EventChord
+ 'elements
+ (list (make-music
+ 'NoteEvent
+ 'duration
+ (ly:make-duration 2 0 1 1)
+ 'pitch
+ (ly:make-pitch 0 0 0))))
+@end example
+
+La función @code{display-scheme-music} es la función utilizada por
+@code{\displayMusic} para imprimir la representación de Scheme de una
+expresión musical.
+
+@example
+#(display-scheme-music (first (ly:music-property unaNota 'elements)))
+===>
+(make-music
+ 'NoteEvent
+ 'duration
+ (ly:make-duration 2 0 1 1)
+ 'pitch
+ (ly:make-pitch 0 0 0))
+@end example
+
+Después se accede a la altura de la nota a través de la propiedad
+@code{'pitch} del objeto @code{NoteEvent}:
+
+@example
+#(display-scheme-music
+ (ly:music-property (first (ly:music-property unaNota 'elements))
+ 'pitch))
+===>
+(ly:make-pitch 0 0 0)
+@end example
+
+La altura de la nota se puede cambiar estableciendo el valor de esta
+propiedad 'pitch:
+
+@funindex \displayLilyMusic
+
+@example
+#(set! (ly:music-property (first (ly:music-property unaNota 'elements))
+ 'pitch)
+ (ly:make-pitch 0 1 0)) ;; fijar la altura a d'.
+\displayLilyMusic \unaNota
+===>
+d'
+@end example
@node Doubling a note with slurs (example)
@subsection Doubling a note with slurs (example)
-@untranslated
+Supongamos que queremos crear una función que traduce una entrada como
+@code{a} a algo como @code{a( a)}. Empezamos examinando la
+representación interna de la música con la que queremos terminar.
+
+@example
+\displayMusic@{ a'( a') @}
+===>
+(make-music
+ 'SequentialMusic
+ 'elements
+ (list (make-music
+ 'EventChord
+ 'elements
+ (list (make-music
+ 'NoteEvent
+ 'duration
+ (ly:make-duration 2 0 1 1)
+ 'pitch
+ (ly:make-pitch 0 5 0))
+ (make-music
+ 'SlurEvent
+ 'span-direction
+ -1)))
+ (make-music
+ 'EventChord
+ 'elements
+ (list (make-music
+ 'NoteEvent
+ 'duration
+ (ly:make-duration 2 0 1 1)
+ 'pitch
+ (ly:make-pitch 0 5 0))
+ (make-music
+ 'SlurEvent
+ 'span-direction
+ 1)))))
+@end example
+
+Las malas noticias son que las espresiones @code{SlurEvent} se deben
+añadir @q{dentro} de la nota (o más concretamente, dentro de la
+expresión @code{EventChord}).
+
+Ahora observamos la entrada:
+
+@example
+(make-music
+ 'SequentialMusic
+ 'elements
+ (list (make-music
+ 'EventChord
+ 'elements
+ (list (make-music
+ 'NoteEvent
+ 'duration
+ (ly:make-duration 2 0 1 1)
+ 'pitch
+ (ly:make-pitch 0 5 0))))))
+@end example
+
+Asà pues, en nuestra función, tenemos que clonar esta expresión (de
+forma que tengamos dos notas para construir la secuencia), añadir
+@code{SlurEvents} a la propiedad @code{'elements} de cada una de
+ellas, y por último hacer una secuencia @code{SequentialMusic} con los
+dos @code{EventChords}.
+
+@example
+doubleSlur = #(define-music-function (parser location note) (ly:music?)
+ "Return: @{ note ( note ) @}.
+ `note' is supposed to be an EventChord."
+ (let ((note2 (ly:music-deep-copy note)))
+ (set! (ly:music-property note 'elements)
+ (cons (make-music 'SlurEvent 'span-direction -1)
+ (ly:music-property note 'elements)))
+ (set! (ly:music-property note2 'elements)
+ (cons (make-music 'SlurEvent 'span-direction 1)
+ (ly:music-property note2 'elements)))
+ (make-music 'SequentialMusic 'elements (list note note2))))
+@end example
@node Adding articulation to notes (example)
@subsection Adding articulation to notes (example)
-@untranslated
+La manera fácil de añadir articulación a las notas es fundir dos
+expresiones musicales en un contexto único, como está explicado en
+@ref{Creating contexts}. Sin embargo, suponga que queremos escribir
+una función musical que haga esto.
+
+Una @code{$variable} dentro de la notación @code{#@{...#@}} es como
+usar una @code{\variable} normal en la notación clásica de LilyPond.
+Sabemos que
+
+@example
+@{ \musica -. -> @}
+@end example
+
+@noindent
+no funciona en LilyPond. Podemos evitar este problema adjuntando la
+articulación a una nota de mentira,
+
+@example
+@{ << \musica s1*0-.-> @}
+@end example
+
+@noindent
+pero a los efectos de este ejemplo, aprenderemos ahora cómo hacerlo en
+Scheme. Comenzamos examinando nuestra entrada y la salida deseada:
+
+@example
+% entrada
+\displayMusic c4
+===>
+(make-music
+ 'EventChord
+ 'elements
+ (list (make-music
+ 'NoteEvent
+ 'duration
+ (ly:make-duration 2 0 1 1)
+ 'pitch
+ (ly:make-pitch -1 0 0))))
+=====
+% salida deseada
+\displayMusic c4->
+===>
+(make-music
+ 'EventChord
+ 'elements
+ (list (make-music
+ 'NoteEvent
+ 'duration
+ (ly:make-duration 2 0 1 1)
+ 'pitch
+ (ly:make-pitch -1 0 0))
+ (make-music
+ 'ArticulationEvent
+ 'articulation-type
+ "marcato")))
+@end example
+
+Vemos que una nota (@code{c4}) se representa como una expresión
+@code{EventChord}, con una expresión @code{NoteEvent} en su lista de
+elementos. Para añadir una articulación marcato, se debe añadir una
+expresión @code{ArticulationEvent} a la propiedad elementos de la
+expresión @code{EventChord}.
+
+Para construir esta función, empezamos con
+
+@example
+(define (add-marcato event-chord)
+ "Añadir una ArticulationEvent de marcato a los elementos de `event-chord',
+ que se ssupone que es una expresión EventChord."
+ (let ((result-event-chord (ly:music-deep-copy event-chord)))
+ (set! (ly:music-property result-event-chord 'elements)
+ (cons (make-music 'ArticulationEvent
+ 'articulation-type "marcato")
+ (ly:music-property result-event-chord 'elements)))
+ result-event-chord))
+@end example
+
+La primera lÃnea es la forma de definir una función en Scheme: el
+nombre de la función es @code{add-marcato}, y tiene una variable
+llamada @code{event-chord}. En Scheme, el tipo de variable suele
+quedar claro a partir de su nombre (¡esto también es una buena
+práctica en otros lenguajes de programación!).
+
+@example
+"Añadir una ArticulationEvent de marcato..."
+@end example
+
+@noindent
+es una descripción de lo que hace la función. No es estrictamente
+necesario, pero como los nombres de variable claros, es una buena
+práctica.
+
+@example
+(let ((result-event-chord (ly:music-deep-copy event-chord)))
+@end example
+
+@code{let} se usa para declarar variables locales. Aquà usamos una
+variable local, llamada @code{result-event-chord}, a la que le damos
+el valor @code{(ly:music-deep-copy event-chord)}.
+@code{ly:music-deep-copy} es una función especÃfica de LilyPond, como
+todas las funciones que comienzan por @code{ly:}. Se usa para hacer
+una copia de una expresión musical. AquÃ, copiamos @code{event-chord}
+(el parámetro de la función). Recuerde que el propósito es añadir un
+marcato a una expresión @code{EventChord}. Es mejor no modificar el
+@code{EventChord} que se dio como argumento, porque podrÃa utilizarse
+en algún otro lugar.
+
+Ahora tenemos un @code{result-event-chord}, que es una expresión
+@code{NoteEventChord} y es una copia de @code{event-chord}. Añadimos
+el marcato a su propiedad lista de elementos.
+
+@example
+(set! place new-value)
+@end example
+
+AquÃ, lo que queremos establecer (el @q{place}) es la propiedad
+@q{elements} de la expresión @code{result-event-chord}.
+
+@example
+(ly:music-property result-event-chord 'elements)
+@end example
+
+@code{ly:music-property} es la función que se usa para acceder a las
+propiedades musicales (los @code{'elements}, @code{'duration},
+@code{'pitch}, etc., que vemos en la salida de @code{\displayMusic}
+más arriba). El nuevo valor es la anterior propiedad elements, con un
+elemento adicional: la expresión @code{ArticulationEvent}, que
+copiamos a partir de la salida de @code{\displayMusic},
+
+@example
+(cons (make-music 'ArticulationEvent
+ 'articulation-type "marcato")
+ (ly:music-property result-event-chord 'elements))
+@end example
+
+@code{cons} se usa para añadir un elemento a una lsita sin modificar
+la lista original. Esto es lo que queremos: la misma lista que antes,
+más la nueva expresión @code{ArticulationEvent}. El orden dentro de
+la propiedad elements no es importante aquÃ.
+
+Finalmente, una vez añadida la articulación marcato a su propiedad
+@code{elements}, podemos devolver @code{result-event-chord}, de aquÃ
+la última lÃnea de la función.
+
+Ahora transformamos la función @code{add-marcato} en una función
+musical,
+
+@example
+addMarcato = #(define-music-function (parser location event-chord)
+ (ly:music?)
+ "Add a marcato ArticulationEvent to the elements of `event-chord',
+ which is supposed to be an EventChord expression."
+ (let ((result-event-chord (ly:music-deep-copy event-chord)))
+ (set! (ly:music-property result-event-chord 'elements)
+ (cons (make-music 'ArticulationEvent
+ 'articulation-type "marcato")
+ (ly:music-property result-event-chord 'elements)))
+ result-event-chord))
+@end example
+
+Podemos verificar que esta función musical funciona correctamente,
+
+@example
+\displayMusic \addMarcato c4
+@end example
@node Markup programmer interface
@section Markup programmer interface
-@untranslated
-
+Los marcados están implementados como funciones de Scheme especiales
+que producen un elemento Stencil (sello) dado un número de argumentos.
@menu
* Markup construction in Scheme::
@@ -159,33 +863,381 @@
@node Markup construction in Scheme
@subsection Markup construction in Scheme
-@untranslated
+@cindex marcado, definir instrucciones de
+
+El macro @code{markup} construye expresiones de marcado en Scheme,
+proporcionando una sintaxis similar a la de LilyPond. Por ejemplo:
+
+@example
+(markup #:column (#:line (#:bold #:italic "hola" #:raise 0.4 "mundo")
+ #:larger #:line ("fulano" "fulanito" "menganito")))
+@end example
+
+@noindent
+equivale a:
+@example
+\markup \column @{ \line @{ \bold \italic "hola" \raise #0.4 "mundo" @}
+ \larger \line @{ fulano fulanito menganito @} @}
+@end example
+
+@noindent
+Este ejemplo muestra las principales reglas de traducción entre la
+sitaxis del marcado normal de LilyPond y la sintaxis del marcado de
+Scheme.
+
+@quotation
+@multitable @columnfractions .3 .3
+@item @b{LilyPond} @tab @b{Scheme}
+@item @code{\markup marcado1} @tab @code{(markup marcado1)}
+@item @code{\markup @{ marcado1 marcado2 ... @}} @tab
+ @code{(markup marcado1 marcado2 ... )}
+@item @code{\instruccion} @tab @code{#:instruccion}
+@item @code{\variable} @tab @code{variable}
+@item @code{\center-column @{ ... @}} @tab @code{#:center-column ( ... )}
+@item @code{cadena} @tab @code{"cadena"}
+@item @code{#argumento-de-scheme} @tab @code{argumento-de-scheme}
+@end multitable
+@end quotation
+
+Todo el lenguaje Scheme está accesible dentro del macro @code{markup}.
+Por ejemplo, podemos usar llamadas a funciones dentro de @code{markup}
+para asà manipular cadenas de caracteres. Esto es útil si se están
+definiendo instrucciones de marcado nuevas (véase @ref{New markup
+command definition}).
+
+@knownissues
+
+El argumento markup-list de instrucciones como @code{#:line},
+@code{#:center} y @code{#:column} no pueden se una variable o el
+resultado de la llamada a una función.
+
+@lisp
+(markup #:line (funcion-que-devuelve-marcados))
+@end lisp
+
+@noindent
+no es válido. Hay que usar las funciones @code{make-line-markup},
+@code{make-center-markup} o @code{make-column-markup} en su lugar:
+
+@lisp
+(markup (make-line-markup (funcion-que-devuelve-marcados)))
+@end lisp
@node How markups work internally
@subsection How markups work internally
-@untranslated
+En un elemento de marcado como
+
+@example
+\raise #0.5 "ejemplo de texto"
+@end example
+
+@noindent
+@code{\raise} se representa en realidad por medio de la función
+@code{raise-markup}. La expresión de marcado se almacena como
+
+@example
+(list raise-markup 0.5 (list simple-markup "ejemplo de texto"))
+@end example
+
+Cuando el marcado se convierte en objetos imprimibles (Stencils o
+sellos), se llama la función @code{raise-markup} como
+
+@example
+(apply raise-markup
+ @var{\objeto de marcado}
+ @var{lista de listas asociativas de propiedades}
+ 0.5
+ @var{el marcado "ejemplo de texto"})
+@end example
+
+Primero la función @code{raise-markup} crea el sello para la cadena
+@code{ejemplo de texto}, y después eleva el sello Stencil en 0.5
+espacios de pentagrama. Este es un ejemplo bastante simple; en el
+resto de la sección podrán verse ejemplos más complejos, asà como en
+@file{scm/@/define@/-markup@/-commands@/.scm}.
@node New markup command definition
@subsection New markup command definition
-@untranslated
+Las instrucciones de marcado nuevas se pueden definir con el macro de
+Scheme @code{define-markup-command}.
+
+@lisp
+(define-markup-command (@var{nombre-de-la-instruccion} @var{layout} @var{props} @var{arg1} @var{arg2} ...)
+ (@var{arg1-type?} @var{arg2-type?} ...)
+ ..command body..)
+@end lisp
+
+Los argumentos son
+
+@table @var
+@item argi
+@var{i}-ésimo argumento de la instrucción
+@item argi-type?
+predicado de tipo para el argumento @var{i}-ésimo
+@item layout
+la definición de @q{presentación}
+@item props
+lista de listas asociativas, que contiene todas las propiedades
+activas.
+@end table
+
+Como ejemplo sencillo, mostramos cómo añadir una instrucción
+@code{\smallcaps}, que selecciona una tipografÃa de versalitas.
+Normalmente podrÃamos seleccionar la tipografÃa de versalitas,
+
+@example
+\markup @{ \override #'(font-shape . caps) Texto-en-versalitas @}
+@end example
+
+@noindent
+Esto selecciona la tipografÃa de versalitas mediante el
+establecimiento de la propiedad @code{font-shape} a @code{#'caps} para
+la interpretación de @code{Texto-en-versalitas}.
+
+Para poner lo anterior disponible como la instrucción
+@code{\smallcaps}, tenemos que definir una función utilizando
+@code{define-markup-command}. La instrucción ha de tomar un argumento
+del tipo @code{markup}. Por tanto, el inicio de la definición ha de
+ser
+
+@example
+(define-markup-command (smallcaps layout props argument) (markup?)
+@end example
+
+@noindent
+
+Lo que aparece a continuación es el contenido de la instrucción:
+debemos interpretar el @code{argument} como un marcado, es decir:
+
+@example
+(interpret-markup layout @dots{} argument)
+@end example
+
+@noindent
+Esta interpretación tiene que añadir @code{'(font-shape . caps)} a las
+propiedades activas, por lo que sustituimos lo siguiente por los
+@dots{} en el ejemplo anterior:
+
+@example
+(cons (list '(font-shape . caps) ) props)
+@end example
+
+@noindent
+La variable @code{props} es una lista de a-listas, y se lo anteponemos
+haciendo la operación cons de una lista con el ajuste adicional.
+
+Supongamos que estamos tipografiando un recitativo de una ópera y nos
+gustarÃa definir una instrucción que presente los nombres de los
+personajes de una forma personalizada. Queremos que los nombres se
+impriman con versalitas y se desplacen un poco a la izquierda y hacia
+arriba. Definimos una instrucción @code{\character} que toma en
+cuenta la traslación necesaria y utiliza la instrucción
+@code{\smallcaps} recién definida:
+
+@example
+#(define-markup-command (character layout props nombre) (string?)
+ "Imprimir el nombre del personaje en versalitas, desplazado a la izquierda y hacia
+ arriba. Sintaxis: \\character #\"nombre\""
+ (interpret-markup layout props
+ (markup #:hspace 0 #:translate (cons -3 1) #:smallcaps nombre)))
+@end example
+
+Esta es una complicación que requiere una explicación: los textos por
+encima y por debajo del pentagrama se mueven verticalmente de forma
+que estén a una cierta distancia (la propiedad @code{padding}) del
+pentagrama y de las notas. Para asegurar que este mecanismo no anula
+el efecto de nuestro @code{#:translate}, añadimos una cadena vacÃa
+(@code{#:hspace 0}) antes del texto trasladado. Ahora el
+@code{#:hspace 0} se pone encima de las notas, y el @code{nombre} se
+mueve en relación a dicha cadena vacÃa. El efecto neto es que el
+texto se mueve hacia la izquierda y hacia arriba.
+
+El resultado final es como sigue:
+
+@example
+@{
+ c''^\markup \character #"Cleopatra"
+ e'^\markup \character #"Giulio Cesare"
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+#(define-markup-command (smallcaps layout props str) (string?)
+ "Print the string argument in small caps. Syntax: \\smallcaps #\"string\""
+ (interpret-markup layout props
+ (make-line-markup
+ (map (lambda (s)
+ (if (= (string-length s) 0)
+ s
+ (markup #:large (string-upcase (substring s 0 1))
+ #:translate (cons -0.6 0)
+ #:tiny (string-upcase (substring s 1)))))
+ (string-split str #\Space)))))
+
+#(define-markup-command (character layout props name) (string?)
+ "Print the character name in small caps, translated to the left and
+ top. Syntax: \\character #\"name\""
+ (interpret-markup layout props
+ (markup #:hspace 0 #:translate (cons -3 1) #:smallcaps name)))
+
+{
+ c''^\markup \character #"Cleopatra" c'' c'' c''
+ e'^\markup \character #"Giulio Cesare" e' e' e'
+}
+@end lilypond
+
+Hemos usado la forma de fuente tipográfica @code{caps}, pero
+supongamos que nuestra fuente no tiene la variante de versalitas. En
+ese caso tenemos que hacer una falsa fuente de mayúsculas pequeñas
+haciendo que la cadena en mayúsculas tenga la primera legra un poco
+mayor:
+
+@example
+#(define-markup-command (smallcaps layout props str) (string?)
+ "Print the string argument in small caps."
+ (interpret-markup layout props
+ (make-line-markup
+ (map (lambda (s)
+ (if (= (string-length s) 0)
+ s
+ (markup #:large (string-upcase (substring s 0 1))
+ #:translate (cons -0.6 0)
+ #:tiny (string-upcase (substring s 1)))))
+ (string-split str #\Space)))))
+@end example
+
+La instrucción @code{smallcaps} primero divide su argumento de cadena
+en unidades o palabras separadas por espacios (@code{(string-split str
+#\Space)}); para cada unidad o palabra, se construye un marcado con la
+primera letra agrandada y en mayúscula (@code{#:large (string-upcase
+(substring s 0 1))}), y un segundo marcado construido con las letras
+siguientes reducidas de tamaño y en mayúsculas (@code{#:tiny
+(string-upcase (substring s 1))}). Como LilyPond introduce un espacio
+entre los marcados de una misma lÃnea, el segundo marcado se traslada
+a la izquierda (@code{#:translate (cons -0.6 0) ...}). Después, los
+marcados construidos para cada palabra se ponen en una lÃnea mediante
+@code{(make-line-markup ...)}. Finalmente, el marcado resultante se
+pasa a la función @code{interpret-markup}, con los argumentos
+@code{layout} y @code{props}.
+
+Nota: ahora existe una instrucción interna @code{\smallCaps} que se
+puede usar para poner texto en versalitas. Consulte @ref{Text markup
+commands}, para ver más detalles.
+
+@knownissues
+
+Actualmente las combinaciones de argumentos que hay disponibles
+(después de los argumentos estándar @var{layout} y @var{props}) para
+una instrucción de marcado definida con @code{define-markup-command}
+se limitan a la siguiente lista:
+
+@table @asis
+@item (ningún argumento)
+@itemx @var{list}
+@itemx @var{markup}
+@itemx @var{markup markup}
+@itemx @var{scm}
+@itemx @var{scm markup}
+@itemx @var{scm scm}
+@itemx @var{scm scm markup}
+@itemx @var{scm scm markup markup}
+@itemx @var{scm markup markup}
+@itemx @var{scm scm scm}
+@end table
+
+@noindent
+En la tabla de arriba, @var{scm} representa los tipos de datos nativos
+de Scheme como @q{number} (número) o @q{string} (cadena).
+
+Como ejemplo, no es posible usar una instrucción de marcado
+@code{fulanito} con cuatro argumentos definida como
+
+@example
+#(define-markup-command (fulanito layout props
+ num1 str1 num2 str2)
+ (number? string? number? string?)
+ ...)
+@end example
+
+@noindent
+Si la aplicamos como, digamos,
+
+@example
+\markup \fulanito #1 #"mengano" #2 #"zutano"
+@end example
+
+@cindex Scheme signature
+@cindex signature, Scheme
+@noindent
+@command{lilypond} protesta diciendo que no puede analizar
+@code{fulanito} debido a su firma de Scheme desconocida.
@node New markup list command definition
@subsection New markup list command definition
-@untranslated
+Las instrucciones de listas de marcado se definen con el macro de
+Scheme @code{define-markup-list-command}, que es similar al macro
+@code{define-markup-command} descrito en @ref{New markup command
+definition}, excepto que donde éste devuelve un sello único, aquél
+devuelve una lista de sellos.
+
+En el siguiente ejemplo se define una instrucción de lista de marcado
+@code{\paragraph}, que devuelve una lista de lÃneas justificadas,
+estando la primera de ellas sangrada. La anchura del sangrado se toma
+del argumento @code{props}.
+
+@example
+#(define-markup-list-command (paragraph layout props args) (markup-list?)
+ (let ((indent (chain-assoc-get 'par-indent props 2)))
+ (interpret-markup-list layout props
+ (make-justified-lines-markup-list (cons (make-hspace-markup indent)
+ args)))))
+@end example
+
+Aparte de los argumentos usuales @code{layout} y @code{props}, la
+instrucción de lista de marcados @code{paragraph} toma un argumento de
+lista de marcados, llamado @code{args}. El predicado para listas de
+marcados es @code{markup-list?}.
+
+Em primer lugar, la función toma el ancho del sangrado, una propiedad
+llamada aquà @code{par-indent}, de la lista de propiedades
+@code{props}. Si no se encuentra la propiedad, el valor
+predeterminado es @code{2}. Después, se hace una lista de lÃneas
+justificadas usando la función
+@code{make-justified-lines-markup-list}, que está relacionada con la
+instrucción incorporada de lista de marcados @code{\justified-lines}.
+Se añade un espacio horizontal al principio usando la función
+@code{make-hspace-markup}. Finalmente, la lista de marcados se
+interpreta usando la función @code{interpret-markup-list}.
+
+Esta nueva instrucción de lista de marcados se puede usar como sigue:
+
+@example
+\markuplines @{
+ \paragraph @{
+ El arte de la tipografÃa musical se llama \italic @{grabado (en plancha).@}
+ El término deriva del proceso tradicional de impresión de música.
+ hace sólo algunas décadas, las partituras se hacÃan cortando y estampando
+ la música en una plancha de zinc o lata en una imagen invertida.
+ @}
+ \override-lines #'(par-indent . 4) \paragraph @{
+ La plancha se tenÃa que entintar, y las depresiones causadas por los cortes
+ y estampados retienen la tinta. Se formaba una imagen presionando el papel
+ contra la plancha. El estampado y cortado se hacÃa completamente
+ a mano.
+ @}
+@}
+@end example
@node Contexts for programmers
@section Contexts for programmers
-@untranslated
-
-
@menu
* Context evaluation::
* Running a function on all layout objects::
@@ -194,43 +1246,285 @@
@node Context evaluation
@subsection Context evaluation
-@untranslated
+@cindex código, llamadas durante la interpretación
+@funindex \applyContext
+
+Se pueden modificar los contextos durante la interpretación con código
+de Scheme. La sintaxis para esto es
+
+@example
+\applyContext @var{función}
+@end example
+
+@var{función} debe ser una función de Scheme que toma un único
+argumento, que es el contexto al que aplicarla. El código siguiente
+imprime el número del compás actual sobre la salida estándar durante
+la compilación:
+
+@example
+\applyContext
+ #(lambda (x)
+ (format #t "\nSe nos ha llamado en el compás número ~a.\n"
+ (ly:context-property x 'currentBarNumber)))
+@end example
@node Running a function on all layout objects
@subsection Running a function on all layout objects
-@untranslated
+@cindex código, llamar sobre objetos de presentación
+@funindex \applyOutput
-@node Scheme procedures as properties
-@section Scheme procedures as properties
-@untranslated
+La manera más versátil de realizar el ajuste fino de un objeto es
+@code{\applyOutput}. Su sintaxis es
+@example
+\applyOutput @var{contexto} @var{proc}
+@end example
-@node TODO moved into scheme
-@section TODO moved into scheme
+@noindent
+donde @var{proc} es una función de Scheme, que toma tres argumentos.
-@untranslated
+Al interpretarse, la función @var{proc} se llama para cada objeto de
+presentación que se encuentra en el contexto @var{contexto}, con los
+siguientes argumentos:
+@itemize
+@item el propio objeto de presentación,
+@item el contexto en que se creó el objeto de presentación, y
+@item el contexto en que se procesa @code{\applyOutput}.
+@end itemize
-@menu
-* Using Scheme code instead of \tweak::
-* Difficult tweaks::
-@end menu
+Además, la causa del objeto de presentación, es decir el objeto o
+expresión musical que es responsable de haberlo creado, está en la
+propiedad @code{cause} del objeto. Por ejemplo, para la cabeza de una
+nota, éste es un evento @rinternals{NoteHead}, y para un objeto
+@rinternals{Stem} (plica), éste es un objeto @rinternals{Stem}.
+@c Impossible - changed to Stem --FV
-@node Using Scheme code instead of \tweak
-@subsection Using Scheme code instead of @code{\tweak}
+He aquà una función que usar para @code{\applyOutput}; borra las
+cabezas de las notas que están sobre la lÃnea central:
-@untranslated
+@example
+(define (blanker grob grob-origin context)
+ (if (and (memq (ly:grob-property grob 'interfaces)
+ note-head-interface)
+ (eq? (ly:grob-property grob 'staff-position) 0))
+ (set! (ly:grob-property grob 'transparent) #t)))
+@end example
-@node Difficult tweaks
-@subsection Difficult tweaks
+@node Scheme procedures as properties
+@section Scheme procedures as properties
-@untranslated
+Las propiedades (como el grosor, la dirección, etc.) se pueden
+establecer a valores fijos con \override, p. ej.
+
+@example
+\override Stem #'thickness = #2.0
+@end example
+
+Las propiedades pueden fijarse también a un procedimiento de scheme,
+
+@lilypond[fragment,verbatim,quote,relative=2]
+\override Stem #'thickness = #(lambda (grob)
+ (if (= UP (ly:grob-property grob 'direction))
+ 2.0
+ 7.0))
+c b a g b a g b
+@end lilypond
+
+@noindent
+En este caso, el procedimiento se ejecuta tan pronto como el valor de
+la propiedad se reclama durante el proceso de formateo.
+
+Casi todo el motor de tipografiado está manejado por estos
+@emph{callbacks}. Entre las propiedades que usan normalmente
+@emph{callbacks} están
+
+@table @code
+@item stencil
+ La rutina de impresión, que construye un dibujo para el sÃmbolo
+@item X-offset
+ La rutina que establece la posición horizontal
+@item X-extent
+ La rutina que calcula la anchura de un objeto
+@end table
+
+El procedimiento siempre toma un argumento único, que es el grob (el
+objeto gráfico).
+
+Si se deben llamar rutinas con varios argumentos, el grob actual se
+puede insertar con una cerradura de grob. He aquà un ajuste
+procedente de @code{AccidentalSuggestion},
+
+@example
+(X-offset .
+ ,(ly:make-simple-closure
+ `(,+
+ ,(ly:make-simple-closure
+ (list ly:self-alignment-interface::centered-on-x-parent))
+ ,(ly:make-simple-closure
+ (list ly:self-alignment-interface::x-aligned-on-self)))))
+@end example
+
+@noindent
+En este ejemplo, tanto
+@code{ly:self-alignment-interface::x-aligned-on-self} como
+@code{ly:self-alignment-interface::centered-on-x-parent} se llaman con
+el grob como argumento. El resultado se añade con la función
+@code{+}. Para asegurar que esta adición se ejecuta adecuadamente,
+todo ello se encierra dentro de @code{ly:make-simple-closure}.
+
+De hecho, usar un solo procedimiento como valor de una propiedad
+equivale a
+
+@example
+(ly:make-simple-closure (ly:make-simple-closure (list @var{proc})))
+@end example
+
+@noindent
+El @code{ly:make-simple-closure} interior aporta el grob como
+argumento de @var{proc}, el exterior asegura que el resultado de la
+función es lo que se devuelve, en lugar del objeto
+@code{simple-closure}.
+@node Using Scheme code instead of \tweak
+@section Using Scheme code instead of @code{\tweak}
+
+La principal desventaja de @code{\tweak} es su inflexibilidad
+sintáctica. Por ejemplo, lo siguiente produce un error de sintaxis.
+
+@example
+F = \tweak #'font-size #-3 -\flageolet
+
+\relative c'' @{
+ c4^\F c4_\F
+@}
+@end example
+
+@noindent
+En otras palabras, @code{\tweak} no se comporta como una articulación
+en cuando a la sintaxis; concretamente, no se puede adjuntar con
+@code{^} y @code{_}.
+
+Usando Scheme, se puede dar un rodeo a este problema. La ruta hacia
+el resultado se da en @ref{Adding articulation to notes (example)},
+especialmente cómo usar @code{\displayMusic} como guÃa de ayuda.
+
+@example
+F = #(let ((m (make-music 'ArticulationEvent
+ 'articulation-type "flageolet")))
+ (set! (ly:music-property m 'tweaks)
+ (acons 'font-size -3
+ (ly:music-property m 'tweaks)))
+ m)
+
+\relative c'' @{
+ c4^\F c4_\F
+@}
+@end example
+
+@noindent
+AquÃ, las propiedades @code{tweaks} del objeto flageolet @code{m}
+(creado con @code{make-music}) se extraen con
+@code{ly:music-property}, se antepone un nuevo par clave-valor para
+cambiar el tamaño de la tipografÃa a la lista de propiedades con la
+función de Scheme @code{acons}, y finalmente el resultado se escribe
+de nuevo con @code{set!}. El último elemento del bloque @code{let} es
+el valor de retorno, el propio @code{m}.
-@c -- SKELETON FILE --
+@node Difficult tweaks
+@section Difficult tweaks
+
+Hay un cierto número de tipos de ajustes difÃciles.
+
+@itemize
+
+@item
+Un tipo de ajuste difÃcil es la apariencia de los objetos de
+extensión, como las ligaduras de expresión y de unión. Inicialmente,
+sólo se crea uno de estos objetos, y pueden ajustarse con el mecanismo
+normal. Sin embargo, en ciertos casos los objetos extensores cruzan
+los saltos de lÃnea. Si esto ocurre, estos objetos se clonan. Se
+crea un objeto distinto por cada sistema en que se encuentra. Ãstos
+son clones del objeto original y heredan todas sus propiedades,
+incluidos los @code{\override}s.
+
+En otras palabras, un @code{\override} siempre afecta a todas las
+piezas de un objeto de extensión fragmentado. Para cambiar sólo una
+parte de un extensor en el salto de lÃnea, es necesario inmiscuirse en
+el proceso de formateado. El @emph{callback}
+@code{after-line-breaking} contiene el procedimiento Scheme que se
+llama después de que se han determinado los saltos de lÃnea, y los
+objetos de presentación han sido divididos sobre los distintos
+sistemas.
+
+En el ejemplo siguiente, definimos un procedimiento
+@code{my-callback}. Este procedimiento
+
+@itemize
+@item
+determina si hemos sido divididos por los saltos de lÃnea
+@item
+en caso afirmativo, reúne todos los objetos divididos
+@item
+comprueba si somos el último de los objetos divididos
+@item
+en caso afirmativo, establece @code{extra-offset}.
+@end itemize
+
+Este procedimiento se instala en @rinternals{Tie} (ligadura de unión),
+de forma que la última parte de la ligadura dividida se traslada hacia
+arriba.
+
+@lilypond[quote,verbatim,ragged-right]
+#(define (my-callback grob)
+ (let* (
+ ; have we been split?
+ (orig (ly:grob-original grob))
+
+ ; if yes, get the split pieces (our siblings)
+ (siblings (if (ly:grob? orig)
+ (ly:spanner-broken-into orig) '() )))
+
+ (if (and (>= (length siblings) 2)
+ (eq? (car (last-pair siblings)) grob))
+ (ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
+
+\relative c'' {
+ \override Tie #'after-line-breaking =
+ #my-callback
+ c1 ~ \break c2 ~ c
+}
+@end lilypond
+
+@noindent
+Al aplicar este truco, la nueva función de callback
+@code{after-line-breaking} también debe llamar a la antigua
+@code{after-line-breaking}, si existe. Por ejemplo, si se usa con
+@code{Hairpin}, se debe llamar también a
+@code{ly:hairpin::after-line-breaking}.
+
+
+@item Algunos objetos no se pueden cambiar con @code{\override} por
+razones técnicas. Son ejemplos @code{NonMusicalPaperColumn} y
+@code{PaperColumn}. Se pueden cambiar con la función
+@code{\overrideProperty} que funciona de forma similar a @code{\once
+\override}, pero usa una sintaxis distinta.
+
+@example
+\overrideProperty
+#"Score.NonMusicalPaperColumn" % Nombre del grob
+#'line-break-system-details % Nombre de la propiedad
+#'((next-padding . 20)) % Valor
+@end example
+
+Observe, sin embargo, que @code{\override}, aplicado a
+@code{NoteMusicalPaperColumn} y a @code{PaperColumn}, aún funciona
+como se espera dentro de los bloques @code{\context.
+
+@end itemize
diff --git a/Documentation/es/user/rhythms.itely b/Documentation/es/user/rhythms.itely
index 81907abad7..90328fe620 100644
--- a/Documentation/es/user/rhythms.itely
+++ b/Documentation/es/user/rhythms.itely
@@ -1,6 +1,6 @@
@c -*- coding: utf-8; mode: texinfo; -*-
@ignore
- Translation of GIT committish: 635c9ec04620eaf1303e3ab3c04c8a7d6e0a9fe4
+ Translation of GIT committish: 7c57f1469e057f25f5d7a7b75c18f33bb4e5bed9
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@@ -1112,7 +1112,7 @@ Glosario musical:
@rglos{cadenza}.
Referencia de la notación:
-@c ref{Visibility of objects}
+@c ref{Controlling visibility of objects}
Fragmentos de código:
@rlsr{Rhythms}.
diff --git a/Documentation/es/user/scheme-tutorial.itely b/Documentation/es/user/scheme-tutorial.itely
index daf6a192ed..d91b856a15 100644
--- a/Documentation/es/user/scheme-tutorial.itely
+++ b/Documentation/es/user/scheme-tutorial.itely
@@ -140,7 +140,7 @@ un número o una cadena. Se introduce como
@funindex #'symbol
@cindex comillas en Scheme
-El apóstrofe @code{'} evita que el intérprete de Scheme sustituya
+El apóstrofo @code{'} evita que el intérprete de Scheme sustituya
@code{veintiCuatro} por @code{24}. En vez de esto, obtenemos el
nombre @code{veintiCuatro}.
@@ -174,7 +174,7 @@ derecho) se introducen como @code{parejas}. Una pareja@footnote{En la
terminologÃa de Scheme, la pareja se llama @code{cons}, y sus dos
elementos se llaman @code{car} y @code{cdr} respectivamente.} se
introduce como @code{(primero . segundo)} y, como los sÃmbolos, se deben
-preceder de un apóstrofe:
+preceder de un apóstrofo:
@example
\override TextScript #'extra-offset = #'(1 . 2)
@@ -195,7 +195,7 @@ ejemplo
@end example
Una lista se escribe encerrando sus elementos entre paréntesis, y
-añadiendo un apóstrofe. Por ejemplo,
+añadiendo un apóstrofo. Por ejemplo,
@example
#'(1 2 3)
@@ -207,11 +207,11 @@ Todo el tiempo hemos estado usando listas. Un cálculo, como @code{(+
números 1 y@tie{}2). Normalmente, las listas se interpretan como
cálculos, y el intérprete de Scheme sustituye el resultado del
cálculo. Para escribir una lista, detenemos la evaluación. Esto se
-hace precediendo la lista por un apóstrofe @code{'}. AsÃ, para los
-cálculos no usamos ningún apóstrofe.
+hace precediendo la lista por un apóstrofo @code{'}. AsÃ, para los
+cálculos no usamos ningún apóstrofo.
-Dentro de una lista o pareja precedida de apóstrofe, no hay necesidad
-de escribir ningún apóstrofe más. Lo siguiente es una pareja de
+Dentro de una lista o pareja precedida de apóstrofo, no hay necesidad
+de escribir ningún apóstrofo más. Lo siguiente es una pareja de
sÃmbolos, una lista de sÃmbolos y una lista de listas respectivamente:
@example
diff --git a/Documentation/es/user/spacing.itely b/Documentation/es/user/spacing.itely
index f1c1862d6c..3cb339cfb1 100644
--- a/Documentation/es/user/spacing.itely
+++ b/Documentation/es/user/spacing.itely
@@ -1,7 +1,7 @@
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 635c9ec04620eaf1303e3ab3c04c8a7d6e0a9fe4
+ Translation of GIT committish: 7c57f1469e057f25f5d7a7b75c18f33bb4e5bed9
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@@ -393,6 +393,16 @@ comenzar con un número par o impar. Esto hace que el número de la
primera página se quede como está, o que se aumente en una unidad.
Predeterminado: @code{##f}.
+@ignore
+
+FIXME: this variable is used, but I don't know what it does. -pm
+@item blank-after-score-page-force
+@funindex blank-after-score-page-force
+
+Default: @code{2}.
+
+@end ignore
+
@item blank-last-page-force
@funindex blank-last-page-force
diff --git a/Documentation/es/user/staff.itely b/Documentation/es/user/staff.itely
index 9f2a01e922..afc33682a9 100644
--- a/Documentation/es/user/staff.itely
+++ b/Documentation/es/user/staff.itely
@@ -1,6 +1,6 @@
@c -*- coding: utf-8; mode: texinfo; -*-
@ignore
- Translation of GIT committish: 635c9ec04620eaf1303e3ab3c04c8a7d6e0a9fe4
+ Translation of GIT committish: 7c57f1469e057f25f5d7a7b75c18f33bb4e5bed9
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@@ -49,7 +49,7 @@ llave o un corchete.
@cindex pentagrama único
@cindex percusión, pauta de
@cindex pauta de percusión
-@cindex Gregoriano, canto, pauta de transcripción de
+@cindex gregoriano, canto, pauta de transcripción de
@cindex rÃtmica, pauta
@cindex tablatura, pauta de
@@ -77,7 +77,7 @@ instrucción @code{\drummode}. Para ver más detalles, consulte
@c FIXME: remove when mentioned in NR 2.8
@code{GregorianTranscriptionStaff} crea una pauta para la notación
-moderna de canto Gregoriano. No muestra lÃneas divisorias.
+moderna de canto gregoriano. No muestra lÃneas divisorias.
@lilypond[verbatim,quote,relative=2]
\new GregorianTranscriptionStaff { c4 d e f }
diff --git a/Documentation/es/user/text.itely b/Documentation/es/user/text.itely
index 12d073875c..3cabc78a01 100644
--- a/Documentation/es/user/text.itely
+++ b/Documentation/es/user/text.itely
@@ -1,6 +1,6 @@
@c -*- coding: utf-8; mode: texinfo; -*-
@ignore
- Translation of GIT committish: 635c9ec04620eaf1303e3ab3c04c8a7d6e0a9fe4
+ Translation of GIT committish: 7c57f1469e057f25f5d7a7b75c18f33bb4e5bed9
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
diff --git a/Documentation/es/user/tutorial.itely b/Documentation/es/user/tutorial.itely
index 1b6f8bc67c..76aa4717f4 100644
--- a/Documentation/es/user/tutorial.itely
+++ b/Documentation/es/user/tutorial.itely
@@ -234,7 +234,7 @@ automáticos son adecuados.
@cindex alturas
@cindex notas
@cindex relativo, modo
-@cindex apóstrofe
+@cindex apóstrofo
@cindex comilla simple
@cindex coma
@cindex alteraciones y modo relativo
@@ -332,7 +332,7 @@ de una nota situada en cualquier otro lugar del mismo.
Para añadir intervalos mayores de tres espacios de pentagrama, podemos
elevar la @notation{octava} añadiendo una comilla simple @code{'} (o
-apóstrofe) a continuación del nombre de la nota. También podemos
+apóstrofo) a continuación del nombre de la nota. También podemos
bajar la octava escribiendo una coma @code{,} a continuación del
nombre de la nota.
@@ -2079,7 +2079,7 @@ He aquà una escala que abarca cuatro octavas:
@end lilypond
Como puede ver, escribir una melodÃa en clave de Sol implica escribir
-gran cantidad de apóstrofes @q{'} . Consideremos este fragmento de
+gran cantidad de apóstrofos @q{'} . Consideremos este fragmento de
Mozart:
@lilypond[verbatim,quote]
@@ -2091,7 +2091,7 @@ Mozart:
}
@end lilypond
-Todos estos apóstrofes hacen casi ilegible el código de entrada y será
+Todos estos apóstrofos hacen casi ilegible el código de entrada y será
origen de numerosos errores. Con @code{\relative}, el ejemplo
anterior es mucho más fácil de leer:
diff --git a/Documentation/es/user/tweaks.itely b/Documentation/es/user/tweaks.itely
index d3c7a54761..5ed3dfab89 100644
--- a/Documentation/es/user/tweaks.itely
+++ b/Documentation/es/user/tweaks.itely
@@ -765,8 +765,8 @@ antes, omitiremos el contexto.
Como nota aparte, aunque una nota importante, observe que a causa de
que los valores de @code{font-shape} son sÃmbolos, deben ir precedidos
-de un apóstrofe, @code{'}. Esa es la razón por la que se necesitan
-apóstrofes antes de @code{thickness} en el ejemplo anterior y en
+de un apóstrofo, @code{'}. Esa es la razón por la que se necesitan
+apóstrofos antes de @code{thickness} en el ejemplo anterior y en
@code{font-shape}. Los dos son también sÃmbolos. Los sÃmbolos son
nombres especiales que son conocidos por LilyPond internamente.
Algunos de ellos son nombres de propiedades, como @code{thickness} o
@@ -870,7 +870,7 @@ en la instrucción @code{\override}.
@tab Un número entero positivo
@tab @code{3}, @code{1}
@item Lista
- @tab Un conjunto de valores separados por espacios, encerrado entre paréntesis y precedido de un apóstrofe
+ @tab Un conjunto de valores separados por espacios, encerrado entre paréntesis y precedido de un apóstrofo
@tab @code{'(left-edge staff-bar)}, @code{'(1)},
@code{'(1.0 0.25 0.5)}
@item Marcado
@@ -884,17 +884,17 @@ en la instrucción @code{\override}.
@tab Cualquier valor decimal positivo o negativo
@tab @code{3.5}, @code{-2.45}
@item Pareja (de números)
- @tab Dos números separados por un @q{espacio . espacio}, encerrado entre paréntesis y precedido de un apóstrofe
+ @tab Dos números separados por un @q{espacio . espacio}, encerrado entre paréntesis y precedido de un apóstrofo
@tab @code{'(2 . 3.5)}, @code{'(0.1 . -3.2)}
@item SÃmbolo
- @tab Cualquiera del conjunto de sÃmbolos permitidos para esa propiedad, precedido de un apóstrofe
+ @tab Cualquiera del conjunto de sÃmbolos permitidos para esa propiedad, precedido de un apóstrofo
@tab @code{'italic}, @code{'inside}
@item Desconocido
@tab Un procedimiento o @code{#f} para no producir ninguna acción
@tab @code{bend::print}, @code{ly:text-interface::print},
@code{#f}
@item Vector
- @tab Una lista de tres elementos encerrados entre paréntesis y precedida de apóstrofe-almohadilla, @code{'#}.
+ @tab Una lista de tres elementos encerrados entre paréntesis y precedida de apóstrofo-almohadilla, @code{'#}.
@tab @code{'#(#t #t #f)}
@end multitable
@@ -1112,7 +1112,7 @@ poner las lÃneas divisorias de color blanco, escribimos:
@noindent
y de nuevo podemos comprobar que las barras de compás no son visibles.
-Observe que @emph{white} no viene precedido de un apóstrofe: no es un
+Observe que @emph{white} no viene precedido de un apóstrofo: no es un
sÃmbolo, sino una @emph{función}. Cuando se invoca, proporciona la
lista de valores internos que se requieren para establecer el color a
blanco. Los otros colores de la lista normal también son funciones.
@@ -1140,7 +1140,7 @@ internos, @code{x11-color}, de la siguiente manera:
@noindent
Observe que en este caso la función @code{x11-color} toma un sÃmbolo
-como argumento, asà que el sÃmbolo debe ir precedido de un apóstrofe y
+como argumento, asà que el sÃmbolo debe ir precedido de un apóstrofo y
los dos deben ir entre paréntesis.
@cindex rgb, colores
diff --git a/Documentation/es/user/unfretted-strings.itely b/Documentation/es/user/unfretted-strings.itely
index 7fd5535cfb..b139e60a9f 100644
--- a/Documentation/es/user/unfretted-strings.itely
+++ b/Documentation/es/user/unfretted-strings.itely
@@ -1,7 +1,7 @@
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 635c9ec04620eaf1303e3ab3c04c8a7d6e0a9fe4
+ Translation of GIT committish: 7c57f1469e057f25f5d7a7b75c18f33bb4e5bed9
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
diff --git a/Documentation/fr/translations.html.in b/Documentation/fr/translations.html.in
index 69907903bd..2532c82861 100644
--- a/Documentation/fr/translations.html.in
+++ b/Documentation/fr/translations.html.in
@@ -1,4 +1,4 @@
-
pré-GDP
-
1.2 Rythme
+
(6714)1.2 Rythme
(6312)Frédéric Chiasson
Valentin Villenave
@@ -245,7 +245,7 @@ translations.template.html.in; DO NOT EDIT !-->
Jean-Charles Malahieudepré-GDP
-
1.3 Signes d'interprétation
+
(1097)1.3 Signes d'interprétation
(1110)Valentin Villenave
Jean-Charles Malahieude
@@ -273,7 +273,7 @@ translations.template.html.in; DO NOT EDIT !-->
John Mandereaupré-GDP
-
1.6 Notation sur la portée
+
(1767)1.6 Notation sur la portée
(1768)Valentin Villenave
Jean-Charles MalahieudeJohn Mandereau
@@ -290,7 +290,7 @@ translations.template.html.in; DO NOT EDIT !-->
pré-GDP
-
1.8 Texte
+
(2412)1.8 Texte
(2410)Jean-Charles Malahieude
Valentin Villenave
@@ -325,25 +325,25 @@ translations.template.html.in; DO NOT EDIT !-->
John Mandereaupré-GDP
-
2.3 Cordes non frettées
+
(463)2.3 Cordes non frettées
(210)Valentin Villenave
Jean-Charles Malahieude
-
John Mandereaupartiellement (46 %)
+ partiellement (7 %)
partiellement
pré-GDP
-
2.4 Instruments à cordes frettées
+
(1509)2.4 Instruments à cordes frettées
(1748)Valentin Villenave
Jean-Charles Malahieude
-
John Mandereaupartiellement (15 %)
+ partiellement (16 %)
partiellement
pré-GDP
-
2.5 Percussions
+
(806)2.5 Percussions
(810)Valentin Villenave
Jean-Charles Malahieude
@@ -370,7 +370,7 @@ translations.template.html.in; DO NOT EDIT !-->
John Mandereaupré-GDP
-
2.8 Notations anciennes
+
(4260)2.8 Notations anciennes
(4240)John Mandereau
Jean-Charles Malahieude
@@ -396,7 +396,7 @@ translations.template.html.in; DO NOT EDIT !-->
pré-GDP
-
4 Gestion de l'espace
+
(8303)4 Gestion de l'espace
(8297)Frédéric Chiasson
Jean-Charles Malahieude
@@ -405,10 +405,10 @@ translations.template.html.in; DO NOT EDIT !-->
pré-GDP
-
diff --git a/Documentation/po/de.po b/Documentation/po/de.po
index 760fe29985..931648aba6 100644
--- a/Documentation/po/de.po
+++ b/Documentation/po/de.po
@@ -2,14 +2,14 @@
# Copyright (C) 2006 Han-Wen Nienhuys, Jan Nieuwenhuizen
# This file is distributed under the same license as the lilypond package.
# Till Rettig 5 Modification des réglages prédéfinis
+
(11025)5 Modification des réglages prédéfinis
(11197)Valentin Villenave
Gilles Thibault
- partiellement (33 %)
+ partiellement (34 %)
partiellement
pré-GDP
Last updated Mon Oct 6 20:03:36 UTC 2008 +
Last updated Mon Oct 13 22:24:32 UTC 2008
Till Rettig - partially translated (94 %) - partially up to date + translated + up to date |
Francisco Vila translated @@ -165,7 +165,7 @@ translations.template.html.in; DO NOT EDIT !--> |
Till Rettig translated - partially up to date + up to date |
Francisco Vila translated @@ -190,8 +190,8 @@ translations.template.html.in; DO NOT EDIT !--> | not translated |
Till Rettig - partially translated (91 %) - partially up to date + translated + up to date |
Francisco Vila translated @@ -328,7 +328,7 @@ translations.template.html.in; DO NOT EDIT !--> |
Till Rettig translated - partially up to date + up to date |
Francisco Vila translated @@ -345,7 +345,7 @@ translations.template.html.in; DO NOT EDIT !--> |
Till Rettig translated - partially up to date + up to date |
Francisco Vila translated @@ -353,7 +353,7 @@ translations.template.html.in; DO NOT EDIT !--> |
1.2 Rhythms (6714) |
+ 1.2 Rhythms (6312) |
Frédéric Chiasson Valentin Villenave Jean-Charles Malahieude @@ -361,7 +361,7 @@ translations.template.html.in; DO NOT EDIT !--> partially up to date |
Till Rettig - partially translated (81 %) + partially translated (80 %) partially up to date |
Francisco Vila @@ -370,7 +370,7 @@ translations.template.html.in; DO NOT EDIT !--> |
||||||
1.3 Expressive marks (1097) |
+ 1.3 Expressive marks (1110) |
Valentin Villenave Jean-Charles Malahieude John Mandereau @@ -422,7 +422,7 @@ translations.template.html.in; DO NOT EDIT !--> |
||||||||
1.6 Staff notation (1767) |
+ 1.6 Staff notation (1768) |
Valentin Villenave Jean-Charles Malahieude John Mandereau @@ -454,7 +454,7 @@ translations.template.html.in; DO NOT EDIT !--> |
||||||||
1.8 Text (2412) |
+ 1.8 Text (2410) |
Jean-Charles Malahieude Valentin Villenave John Mandereau @@ -465,7 +465,7 @@ translations.template.html.in; DO NOT EDIT !--> |
Francisco Vila translated - partially up to date + up to date |
|||||||
2.3 Unfretted string instruments (463) |
+ 2.3 Unfretted string instruments (210) |
Valentin Villenave Jean-Charles Malahieude John Mandereau - partially translated (46 %) + partially translated (7 %) partially up to date |
Till Rettig - partially translated (38 %) + not translated partially up to date |
Francisco Vila - partially translated (22 %) - partially up to date + translated + up to date |
||||||
2.4 Fretted string instruments (1509) |
+ 2.4 Fretted string instruments (1748) |
Valentin Villenave Jean-Charles Malahieude John Mandereau - partially translated (15 %) + partially translated (16 %) partially up to date |
Till Rettig - partially translated (15 %) + partially translated (16 %) partially up to date |
Francisco Vila - partially translated (40 %) - partially up to date + translated + partially up to date |
||||||
2.5 Percussion (806) |
+ 2.5 Percussion (810) |
Valentin Villenave Jean-Charles Malahieude John Mandereau @@ -558,12 +558,12 @@ translations.template.html.in; DO NOT EDIT !--> partially up to date |
Till Rettig - partially translated (43 %) + partially translated (42 %) partially up to date |
Francisco Vila - partially translated (44 %) - partially up to date + translated + up to date |
||||||
2.8 Ancient notation (4260) |
+ 2.8 Ancient notation (4240) |
John Mandereau Jean-Charles Malahieude partially translated (82 %) @@ -639,12 +639,12 @@ translations.template.html.in; DO NOT EDIT !--> partially up to date |
Francisco Vila - partially translated (48 %) - partially up to date + translated + up to date |
|||||||
4 Spacing issues (8303) |
+ 4 Spacing issues (8297) |
Frédéric Chiasson Jean-Charles Malahieude partially translated (19 %) @@ -660,17 +660,17 @@ translations.template.html.in; DO NOT EDIT !--> |
||||||||
5 Changing defaults (11025) |
+ 5 Changing defaults (11197) |
Valentin Villenave Gilles Thibault - partially translated (33 %) + partially translated (34 %) partially up to date |
not translated |
Francisco Vila partially translated (66 %) - partially up to date + partially up to date |
||||||