]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond
authorJohn Mandereau <john.mandereau@gmail.com>
Sun, 17 Feb 2008 17:17:20 +0000 (18:17 +0100)
committerJohn Mandereau <john.mandereau@gmail.com>
Sun, 17 Feb 2008 17:17:20 +0000 (18:17 +0100)
* 'master' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond:
  LSR: Incipit example.
  Scheme markups: raise an error when an unknown #:command is found, to
  Update from Valentin.
  Fix possibly broken url.
  LSR update.

78 files changed:
Documentation/de/user/changing-defaults.itely
Documentation/de/user/converters.itely
Documentation/de/user/editorial.itely [new file with mode: 0644]
Documentation/de/user/fundamental.itely
Documentation/de/user/input.itely
Documentation/de/user/install.itely
Documentation/de/user/lilypond-book.itely
Documentation/de/user/lilypond-learning.tely
Documentation/de/user/lilypond-program.tely
Documentation/de/user/lilypond.tely
Documentation/de/user/non-music.itely
Documentation/de/user/programming-interface.itely
Documentation/de/user/running.itely
Documentation/de/user/spacing.itely
Documentation/de/user/text.itely
Documentation/de/user/vocal.itely
Documentation/es/user/converters.itely
Documentation/es/user/editorial.itely [new file with mode: 0644]
Documentation/es/user/fundamental.itely
Documentation/es/user/input.itely
Documentation/es/user/install.itely
Documentation/es/user/lilypond-book.itely
Documentation/es/user/lilypond-learning.tely
Documentation/es/user/lilypond-program.tely
Documentation/es/user/lilypond.tely
Documentation/es/user/programming-interface.itely
Documentation/es/user/running.itely
Documentation/es/user/scheme-tutorial.itely
Documentation/es/user/spacing.itely
Documentation/fr/user/ancient.itely
Documentation/fr/user/bagpipes.itely
Documentation/fr/user/changing-defaults.itely
Documentation/fr/user/cheatsheet.itely
Documentation/fr/user/chords.itely
Documentation/fr/user/converters.itely
Documentation/fr/user/editorial.itely [new file with mode: 0644]
Documentation/fr/user/educational.itely [deleted file]
Documentation/fr/user/expressive.itely
Documentation/fr/user/fundamental.itely
Documentation/fr/user/guitar.itely
Documentation/fr/user/input.itely
Documentation/fr/user/introduction.itely
Documentation/fr/user/lilypond-book.itely
Documentation/fr/user/lilypond-learning.tely
Documentation/fr/user/lilypond-program.tely
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/notation.itely
Documentation/fr/user/percussion.itely
Documentation/fr/user/piano.itely
Documentation/fr/user/pitches.itely
Documentation/fr/user/preface.itely
Documentation/fr/user/programming-interface.itely
Documentation/fr/user/repeats.itely
Documentation/fr/user/rhythms.itely
Documentation/fr/user/running.itely
Documentation/fr/user/scheme-tutorial.itely
Documentation/fr/user/setup.itely
Documentation/fr/user/simultaneous.itely
Documentation/fr/user/spacing.itely
Documentation/fr/user/specialist.itely
Documentation/fr/user/staff.itely
Documentation/fr/user/strings.itely
Documentation/fr/user/templates.itely
Documentation/fr/user/text.itely
Documentation/fr/user/tutorial.itely
Documentation/fr/user/tweaks.itely
Documentation/fr/user/vocal.itely
Documentation/fr/user/working.itely
Documentation/po/GNUmakefile
Documentation/translations.template.html [new file with mode: 0644]
buildscripts/translations-status.py [new file with mode: 0644]
make/doclang-rules.make
make/doclang-targets.make
make/doclang-vars.make
scripts/lilypond-book.py

index a9f29ffe3f89654e473c49b41d17d5c71bc1f65e..c956e6c2cd008b6ed21c240bfee33724a21d406e 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
index 59fb3c552061f0a3316b1dcf9b794e6fbe863eae..eb6a41a5617283b8e6f361b61bedba2546275d79 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
diff --git a/Documentation/de/user/editorial.itely b/Documentation/de/user/editorial.itely
new file mode 100644 (file)
index 0000000..3785235
--- /dev/null
@@ -0,0 +1,97 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+
+@node Editorial annotations
+@section Editorial annotations
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Inside the staff::
+* Outside the staff::
+@end menu 
+@node Inside the staff
+@subsection Inside the staff
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Selecting notation font size::
+* Fingering instructions::
+* Hidden notes::
+* Coloring objects::
+* Parentheses::
+* Stems::
+@end menu 
+@node Selecting notation font size
+@subsubsection Selecting notation font size
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fingering instructions
+@subsubsection Fingering instructions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Hidden notes
+@subsubsection Hidden notes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Coloring objects
+@subsubsection Coloring objects
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Parentheses
+@subsubsection Parentheses
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Stems
+@subsubsection Stems
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Outside the staff
+@subsection Outside the staff
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Balloon help::
+* Grid lines::
+* Blank music sheet::
+* Analysis brackets::
+@end menu 
+@node Balloon help
+@subsubsection Balloon help
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Grid lines
+@subsubsection Grid lines
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Blank music sheet
+@subsubsection Blank music sheet
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Analysis brackets
+@subsubsection Analysis brackets
+
+UNTRANSLATED NODE: IGNORE ME
+
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
index 7f636d80b5bbaebba8f92f0db441bf72c600cfb1..c6e90289a80e06646716d0bb8481a244e6ca16ab 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -27,7 +27,7 @@ UNTRANSLATED NODE: IGNORE ME
 @menu 
 * Introduction to the LilyPond file structure::
 * Score is a (single) compound musical expression::
-* Nesting Music Expressions::
+* Nesting music expressions::
 * On the un-nestedness of brackets and ties::
 @end menu 
 @node Introduction to the LilyPond file structure
@@ -40,8 +40,8 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
-@node Nesting Music Expressions
-@subsection Nesting Music Expressions
+@node Nesting music expressions
+@subsection Nesting music expressions
 
 UNTRANSLATED NODE: IGNORE ME
 
@@ -113,7 +113,9 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
+@subsubsection Changing a single context
 @ 
+@subsubsection Changing all contexts of the same type
 @node Extending the templates
 @section Extending the templates
 
index 3972e4f2cd11b4dafb2e50d5cfd085ac0fd49662..db42d3d39c795a51dc86b5bed5a73719ee69b42a 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -73,11 +73,11 @@ UNTRANSLATED NODE: IGNORE ME
 UNTRANSLATED NODE: IGNORE ME
 
 @menu 
-* Up and down::
+* Controlling direction::
 * Distances and measurements MAYBE MOVE::
 @end menu 
-@node Up and down
-@subsection Up and down
+@node Controlling direction
+@subsection Controlling direction
 
 UNTRANSLATED NODE: IGNORE ME
 
index 072a77f71dea99ac4cf331d233bb17946a0042b5..c8c3e06956796ab034affa9cf41ca3aa4a5ef670 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
index 129ddf52876eb771f487d5438896b2eace710265..87684bfca484117fe0f7e2492321f3e285ca7e24 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -74,6 +74,10 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
+@subheading Format-specific instructions
+@subsubheading @LaTeX{}
+@subsubheading Texinfo
+@subheading Command line options
 @node Filename extensions
 @section Filename extensions
 
index f2391bdf32b3a3e08624f6cf175024d80972c61d..361370139528840e86c7b2b1b73e421ffc67d602 100644 (file)
@@ -29,6 +29,7 @@
 @omflanguage German
 @end ignore
 
+@c Translators: Till Rettig
 
 @ifhtml
 Dieses Dokument ist auch als
index 4b4a2e4895f9ac5608a0a1aa8ae692fe6585ff5a..91807ef20ee896c88b00893148c20457a0e8c7d8 100644 (file)
@@ -29,6 +29,7 @@
 @omflanguage German
 @end ignore
 
+@c Translators: Till Rettig
 
 @ifhtml
 Dieses Dokument ist auch als
index ed215c154d0060e2b7cf7116ba4cfb33098719c8..134cffcd2b53596e345ab8a0977490ce43618528 100644 (file)
@@ -59,6 +59,7 @@ Distributions will want to install lilypond.info in postinstall, doing:
 @omflanguage German
 @end ignore
 
+@c Translators: Till Rettig
 
 @ifhtml
 Dieses Dokument ist auch als
index 9f1e0f11120150525d8bd06ef824fff81d2a6c1c..81d471ea576452f0e7dbb8a330a06fd30f59aaa5 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -16,6 +16,7 @@ UNTRANSLATED NODE: IGNORE ME
 @menu 
 * Titles and headers::
 * MIDI output::
+* other midi::
 @end menu 
 @node Titles and headers
 @section Titles and headers
@@ -83,7 +84,12 @@ UNTRANSLATED NODE: IGNORE ME
 * Repeats and MIDI::
 @end menu 
 @node Repeats and MIDI
-@unnumberedsubsubsec Repeats and MIDI
+@subsubsection Repeats and MIDI
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node other midi
+@section other midi
 
 UNTRANSLATED NODE: IGNORE ME
 
index 41a0fd73432671b60584419935a9937e2c56c444..6d48c59f4062e85eb2672e9d97951bd167892b24 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
index be697c2db583efefef47446584d41b033313daa8..a1778a7d60385928ec4fef3dfb32d784034e6d5a 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
index c19e873607fa20a6ecc4278f8996eed9c2e92dff..3075758d1e5f934deeef36a0d54bb17f3adb6239 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -20,6 +20,7 @@ UNTRANSLATED NODE: IGNORE ME
 * Breaks::
 * Vertical spacing::
 * Horizontal spacing::
+* Page layout MOVED FROM LM::
 @end menu 
 @node Paper and pages
 @section Paper and pages
@@ -187,6 +188,43 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
+@node Page layout MOVED FROM LM
+@section Page layout MOVED FROM LM
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Introduction to layout::
+* Global sizes::
+* Line breaks::
+* Page breaks::
+* Fitting music onto fewer pages::
+@end menu 
+@node Introduction to layout
+@subsection Introduction to layout
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Global sizes
+@subsection Global sizes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Line breaks
+@subsection Line breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Page breaks
+@subsection Page breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fitting music onto fewer pages
+@subsection Fitting music onto fewer pages
+
+UNTRANSLATED NODE: IGNORE ME
+
 
 -- SKELETON FILE --
 When you actually translate this file, please remove these lines as
index b4a6545a11c7180484dab6e460310a9281508fa1..d0a8e72cb88b223d6aeba9b1284f93a392a8d682 100644 (file)
@@ -1,8 +1,105 @@
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
+@c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: f7420240e4ce1fe2217646482a47d00f566af52c
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+
+@node Text
+@section Text
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Writing text::
+* Text markup::
+* Special text concerns::
+@end menu 
+@node Writing text
+@subsection Writing text
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Overview of text entry::
+* Text scripts::
+* Text spanners::
+* Text marks::
+@end menu 
+@node Overview of text entry
+@subsubsection Overview of text entry
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text scripts
+@subsubsection Text scripts
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text spanners
+@subsubsection Text spanners
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text marks
+@subsubsection Text marks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text markup
+@subsection Text markup
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Text markup introduction::
+* Nested scores::
+* Page wrapping text::
+* Font selection::
+@end menu 
+@node Text markup introduction
+@subsubsection Text markup introduction
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Nested scores
+@subsubsection Nested scores
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Page wrapping text
+@subsubsection Page wrapping text
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Font selection
+@subsubsection Font selection
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Special text concerns
+@subsection Special text concerns
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* New dynamic marks::
+* Text and line spanners::
+@end menu 
+@node New dynamic marks
+@subsubsection New dynamic marks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text and line spanners
+@subsubsection Text and line spanners
+
+UNTRANSLATED NODE: IGNORE ME
+
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
index f4636a02f131564c761254368dfd69121744a84c..b7c2cb190ed42e3590eb80041a3c860ce058a049 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -31,12 +31,12 @@ UNTRANSLATED NODE: IGNORE ME
 * Entering lyrics::
 @end menu 
 @node Setting simple songs
-@unnumberedsubsubsec Setting simple songs
+@subsubsection Setting simple songs
 
 UNTRANSLATED NODE: IGNORE ME
 
 @node Entering lyrics
-@unnumberedsubsubsec Entering lyrics
+@subsubsection Entering lyrics
 
 UNTRANSLATED NODE: IGNORE ME
 
@@ -53,27 +53,27 @@ UNTRANSLATED NODE: IGNORE ME
 * Extenders and hyphens::
 @end menu 
 @node Automatic syllable durations
-@unnumberedsubsubsec Automatic syllable durations
+@subsubsection Automatic syllable durations
 
 UNTRANSLATED NODE: IGNORE ME
 
 @node Another way of entering lyrics
-@unnumberedsubsubsec Another way of entering lyrics
+@subsubsection Another way of entering lyrics
 
 UNTRANSLATED NODE: IGNORE ME
 
 @node Assigning more than one syllable to a single note
-@unnumberedsubsubsec Assigning more than one syllable to a single note
+@subsubsection Assigning more than one syllable to a single note
 
 UNTRANSLATED NODE: IGNORE ME
 
 @node More than one note on a single syllable
-@unnumberedsubsubsec More than one note on a single syllable
+@subsubsection More than one note on a single syllable
 
 UNTRANSLATED NODE: IGNORE ME
 
 @node Extenders and hyphens
-@unnumberedsubsubsec Extenders and hyphens
+@subsubsection Extenders and hyphens
 
 UNTRANSLATED NODE: IGNORE ME
 
@@ -86,7 +86,7 @@ UNTRANSLATED NODE: IGNORE ME
 * Working with lyrics and variables::
 @end menu 
 @node Working with lyrics and variables
-@unnumberedsubsubsec Working with lyrics and variables
+@subsubsection Working with lyrics and variables
 
 UNTRANSLATED NODE: IGNORE ME
 
@@ -102,22 +102,22 @@ UNTRANSLATED NODE: IGNORE ME
 * Lyrics independent of notes::
 @end menu 
 @node Lyrics to multiple notes of a melisma
-@unnumberedsubsubsec Lyrics to multiple notes of a melisma
+@subsubsection Lyrics to multiple notes of a melisma
 
 UNTRANSLATED NODE: IGNORE ME
 
 @node Divisi lyrics
-@unnumberedsubsubsec Divisi lyrics
+@subsubsection Divisi lyrics
 
 UNTRANSLATED NODE: IGNORE ME
 
 @node Switching the melody associated with a lyrics line
-@unnumberedsubsubsec Switching the melody associated with a lyrics line
+@subsubsection Switching the melody associated with a lyrics line
 
 UNTRANSLATED NODE: IGNORE ME
 
 @node Lyrics independent of notes
-@unnumberedsubsubsec Lyrics independent of notes
+@subsubsection Lyrics independent of notes
 
 UNTRANSLATED NODE: IGNORE ME
 
@@ -130,7 +130,7 @@ UNTRANSLATED NODE: IGNORE ME
 * Spacing lyrics::
 @end menu 
 @node Spacing lyrics
-@unnumberedsubsubsec Spacing lyrics
+@subsubsection Spacing lyrics
 
 UNTRANSLATED NODE: IGNORE ME
 
@@ -147,27 +147,27 @@ UNTRANSLATED NODE: IGNORE ME
 * Printing stanzas at the end in multiple columns ::
 @end menu 
 @node Adding stanza numbers 
-@unnumberedsubsubsec Adding stanza numbers 
+@subsubsection Adding stanza numbers 
 
 UNTRANSLATED NODE: IGNORE ME
 
 @node Adding dynamics marks
-@unnumberedsubsubsec Adding dynamics marks
+@subsubsection Adding dynamics marks
 
 UNTRANSLATED NODE: IGNORE ME
 
 @node Adding singer names
-@unnumberedsubsubsec Adding singer names
+@subsubsection Adding singer names
 
 UNTRANSLATED NODE: IGNORE ME
 
 @node Printing stanzas at the end 
-@unnumberedsubsubsec Printing stanzas at the end 
+@subsubsection Printing stanzas at the end 
 
 UNTRANSLATED NODE: IGNORE ME
 
 @node Printing stanzas at the end in multiple columns 
-@unnumberedsubsubsec Printing stanzas at the end in multiple columns 
+@subsubsection Printing stanzas at the end in multiple columns 
 
 UNTRANSLATED NODE: IGNORE ME
 
index 3097e3470fd90c5176d7f16b317d675bfe3d2d69..22e411b3ba25f2aac4c6b27af7952e9906be0894 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     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/editorial.itely b/Documentation/es/user/editorial.itely
new file mode 100644 (file)
index 0000000..8b1d495
--- /dev/null
@@ -0,0 +1,97 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+
+@node Editorial annotations
+@section Editorial annotations
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Inside the staff::
+* Outside the staff::
+@end menu 
+@node Inside the staff
+@subsection Inside the staff
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Selecting notation font size::
+* Fingering instructions::
+* Hidden notes::
+* Coloring objects::
+* Parentheses::
+* Stems::
+@end menu 
+@node Selecting notation font size
+@subsubsection Selecting notation font size
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fingering instructions
+@subsubsection Fingering instructions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Hidden notes
+@subsubsection Hidden notes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Coloring objects
+@subsubsection Coloring objects
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Parentheses
+@subsubsection Parentheses
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Stems
+@subsubsection Stems
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Outside the staff
+@subsection Outside the staff
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Balloon help::
+* Grid lines::
+* Blank music sheet::
+* Analysis brackets::
+@end menu 
+@node Balloon help
+@subsubsection Balloon help
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Grid lines
+@subsubsection Grid lines
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Blank music sheet
+@subsubsection Blank music sheet
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Analysis brackets
+@subsubsection Analysis brackets
+
+UNTRANSLATED NODE: IGNORE ME
+
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
index 00afb08b1454e9454960a72f464397dad8b5cf91..e08c948b14c80063bf2028331100c5bb7957f571 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -27,7 +27,7 @@ UNTRANSLATED NODE: IGNORE ME
 @menu 
 * Introduction to the LilyPond file structure::
 * Score is a (single) compound musical expression::
-* Nesting Music Expressions::
+* Nesting music expressions::
 * On the un-nestedness of brackets and ties::
 @end menu 
 @node Introduction to the LilyPond file structure
@@ -40,8 +40,8 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
-@node Nesting Music Expressions
-@subsection Nesting Music Expressions
+@node Nesting music expressions
+@subsection Nesting music expressions
 
 UNTRANSLATED NODE: IGNORE ME
 
@@ -113,7 +113,9 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
+@subsubsection Changing a single context
 @ 
+@subsubsection Changing all contexts of the same type
 @node Extending the templates
 @section Extending the templates
 
index f156a254c06d629e97a7076449ce825af7394550..dc9a122ee9ef79e7cb597d50e3516915c5339cf9 100644 (file)
@@ -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: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -73,11 +73,11 @@ UNTRANSLATED NODE: IGNORE ME
 UNTRANSLATED NODE: IGNORE ME
 
 @menu 
-* Up and down::
+* Controlling direction::
 * Distances and measurements MAYBE MOVE::
 @end menu 
-@node Up and down
-@subsection Up and down
+@node Controlling direction
+@subsection Controlling direction
 
 UNTRANSLATED NODE: IGNORE ME
 
index 859b6b9611ee77f1617b1559a5e28d61e22a2aa9..590ffef5fdc980763e2bfda253e3c2684f225ef9 100644 (file)
@@ -8,6 +8,8 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Francisco Vila
+
 @ifclear INSTALL
 @node Install
 @chapter Install
index a4bc2088712c35aa65780093a0da76405b1b07a6..02f9a8809fece76e74303208a2ed797f35122d01 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -74,6 +74,10 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
+@subheading Format-specific instructions
+@subsubheading @LaTeX{}
+@subsubheading Texinfo
+@subheading Command line options
 @node Filename extensions
 @section Filename extensions
 
index 6e625330bc005bfdad4d00ceb5105c983f59b95c..456aea9525350de7ec5df5655fe38c94b7770d42 100644 (file)
@@ -9,7 +9,6 @@
 @settitle GNU LilyPond Learning Manual
 @documentencoding UTF-8
 @documentlanguage es
-@c TRANSLATE ME
 
 @iftex
 @afourpaper
@@ -30,6 +29,7 @@
 @omflanguage Spanish
 @end ignore
 
+@c Translators: Francisco Vila
 
 @ifhtml
 Este documento también está disponible como
index 7b7c6873a8709ac6e0327181577269499dbd2d75..30c2f701c305459965ca90628101263388edae04 100644 (file)
@@ -29,6 +29,7 @@
 @omflanguage English
 @end ignore
 
+@c Translators: Francisco Vila
 
 @ifhtml
 Este documento está disponible también en formato
index debfe8bec024bedf75ebe1c562d4499227d69bc0..0ac45d902bc758ecb41c3613b8a85832e1dc17b7 100644 (file)
@@ -59,6 +59,7 @@ Distributions will want to install lilypond.info in postinstall, doing:
 @omflanguage Spanish
 @end ignore
 
+@c Translators: Francisco Vila
 
 @ifhtml
 Este documento también está disponible como
index 1b412a21d623e33695b29feb3ba01427910717aa..9a28825111eb71a727490a00f07aa48952d7402b 100644 (file)
@@ -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: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
index 8ddeab724a604aea78789e5c7a9ac3a5b8a627ef..715b03eb9eb4b533ecfe44bf6936a3394ccb532e 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
index 902e83b7619d89aef6cbe3a82a80431ea2ebafbb..273fc8e4c2c181ff2a6f1f51f712de491b80f564 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
index 66d8ee725a12949339331d743419bbf2c7773847..bc545d3835f7a0bd76c8025eba7bfe9bb0c59369 100644 (file)
@@ -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: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -20,6 +20,7 @@ UNTRANSLATED NODE: IGNORE ME
 * Breaks::
 * Vertical spacing::
 * Horizontal spacing::
+* Page layout MOVED FROM LM::
 @end menu 
 @node Paper and pages
 @section Paper and pages
@@ -187,6 +188,43 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
+@node Page layout MOVED FROM LM
+@section Page layout MOVED FROM LM
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Introduction to layout::
+* Global sizes::
+* Line breaks::
+* Page breaks::
+* Fitting music onto fewer pages::
+@end menu 
+@node Introduction to layout
+@subsection Introduction to layout
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Global sizes
+@subsection Global sizes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Line breaks
+@subsection Line breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Page breaks
+@subsection Page breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fitting music onto fewer pages
+@subsection Fitting music onto fewer pages
+
+UNTRANSLATED NODE: IGNORE ME
+
 
 -- SKELETON FILE --
 When you actually translate this file, please remove these lines as
index 768671c422e4b22fc00c68e022e7c9697c17611d..bec2dc3506b22b68de9a45e1bce6b8d5dcd4b4b9 100644 (file)
@@ -7,6 +7,8 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
 
 @node Ancient notation
 @section Ancient notation
index 51d80c000b4a43f245e63d9bf0142a5b8e933418..ad1346ec933fbe7df9b2c4c4fe008eb41dc6dd40 100644 (file)
@@ -7,6 +7,8 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
 
 @node Bagpipes
 @section Bagpipes
index e394eadbdbb3d99e4f27769f1cce79084cf48ae2..57bd2ac9b7cee03b33004aef46fd4de4d9ed94cf 100644 (file)
@@ -7,10 +7,12 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
+@c Translation checkers: Gilles Thibault
+
 @node Changing defaults
 @chapter Changing defaults
 
-
 LilyPond est conçu pour engendrer, par défaut, des partitions de la
 plus haute qualité.  Cependant, on peut parfois avoir Ã  modifier cette
 mise en page par défaut.  Celle-ci est réglée par tout un ensemble de
index edac05330298da51412e6584bbaf539e33c85cbf..1f3f39143895534733e89f38d9b60499ebaeccd3 100644 (file)
@@ -7,6 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
 
 @c TODO: add tablature.
 
index 288efdb166dbe9d621235d710577126a62e51416..a378630f4701db3ac0620a669beea58cfa485c7d 100644 (file)
@@ -7,19 +7,29 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
 
-@node Chords Blah
-@section Chords Blah
+@node Chords
+@section Chords
 
 Intro text.
 
 @menu 
-* TODO chords fix::
+* Chords sections::
 @end menu
 
-@node TODO chords fix
-@subsection TODO chords fix
+@node Chords sections
+@subsection Chords sections
 
+@c awkard bit of English docs (not reproduced here):
+@c "A lead sheet" is shovved in here from the tutorial,
+@c before "Introducing chord names".
+@menu
+* Introducing chord names::     
+* Chords mode::                 
+* Printing chord names::        
+@end menu
 
 
 @c  awkward name; awkward section name.
index c9c711a4269ddb70d0146091272443c3aa4886fb..d47d50ee5f84242d0cccbd18fedf7b67b9d7f6ac 100644 (file)
@@ -3,11 +3,11 @@
 @ignore
     Translation of GIT committish: 27af34a245b02a6b89c9af3becefcfe676b2e19d
 
-
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Jean-Charles Malahieude
 
 @node Converting from other formats
 @chapter Converting from other formats
diff --git a/Documentation/fr/user/editorial.itely b/Documentation/fr/user/editorial.itely
new file mode 100644 (file)
index 0000000..e8d5093
--- /dev/null
@@ -0,0 +1,669 @@
+@c -*- coding: utf-8; mode: texinfo; -*-
+@ignore
+    Translation of GIT committish: f7420240e4ce1fe2217646482a47d00f566af52c
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c Translators: Jean-Charles Malahieude
+
+@node Educational use
+@section Educational use
+
+@menu
+* Note heads::                  
+* Inside the staff::            
+* Outside the staff::           
+@end menu
+
+
+@node Note heads
+@subsection Note heads
+
+@menu
+* Easy notation note heads::    
+* Shape note heads::            
+* Improvisation::               
+* Special noteheads::           
+@end menu
+
+@node Easy Notation note heads
+@unnumberedsubsubsec Easy Notation note heads
+
+@cindex tête de note, apprentissage
+@cindex notation facile
+@cindex Hal Leonard
+
+Les notes @q{easy play} comportent le nom de la note Ã  l'intérieur de
+la tête.  On l'utilise dans des partitions pour débutants.
+
+@lilypond[quote,ragged-right,verbatim,fragment,staffsize=26]
+  \easyHeadsOn
+  c'2 e'4 f' | g'1
+@end lilypond
+
+La commande @code{\easyHeadsOn} remplace tous les réglages de l'objet
+@internalsref{NoteHead}.  L'impression doit Ãªtre de plus grande
+taille, afin que les lettres soient lisibles.  Voir Ã  ce propos
+@ref{Setting the staff size}.
+
+@refcommands
+
+@funindex \easyHeadsOn
+@code{\easyHeadsOn}
+
+
+@node Shape note heads
+@unnumberedsubsubsec Shape note heads
+
+@cindex tête de note, allure
+
+En notation profilée, le profil d'une tête de note correspond Ã  la
+fonction harmonique de cette note dans la gamme.  Ce style de notation
+était très en vogue dans les recueils de chansons américains du XIXe
+siècle. 
+
+Des notes profilées sont produites après activation de
+@code{\aikenHeads} ou @code{\sacredHarpHeads}, selon le style.
+
+@lilypond[verbatim,relative=1,fragment]
+  \aikenHeads
+  c8 d4 e8 a2 g1
+  \sacredHarpHeads
+  c8 d4. e8 a2 g1
+@end lilypond
+
+Les profils sont déterminés par la hauteur dans la gamme, le premier
+degré Ã©tant défini par la commande @code{\key}. 
+
+@funindex \key
+@funindex shapeNoteStyles
+@funindex \aikenHeads
+@funindex \sacredHarpHeads
+
+Les notes profilées sont mises en Å“uvre par la propriété
+@code{shapeNoteStyles}, dont les valeurs sont constituées d'une liste
+de symboles.  Le n-ième Ã©lément indique le style Ã  utiliser pour le
+n-ième degré de la gamme.  Toutes les combinaisons sont possibles :
+
+@lilypond[verbatim,relative=1,fragment]
+  \set shapeNoteStyles  = ##(cross triangle fa #f mensural xcircle diamond)
+  c8 d4. e8 a2 g1
+@end lilypond
+
+
+@node Improvisation
+@unnumberedsubsubsec Improvisation
+
+L'improvisation peut quelquefois s'indiquer Ã  l'aide de notes de forme
+allongée (@emph{slash}).  Ces têtes de notes sont créées  par
+l'adjonction du graveur @internalsref{Pitch_squash_engraver} au
+contexte @internalsref{Voice}, de telle sorte que la commande
+
+@example
+\set squashedPosition = #0
+\override NoteHead #'style = #'slash
+@end example
+
+@noindent
+active les notes penchées.
+
+Vous disposez des raccourcis @code{\improvisationOn} et son corollaire
+@code{\improvisationOff} pour cette séquence, comme l'illustre
+l'exemple ci dessous.
+
+@lilypond[verbatim,ragged-right,quote]
+\new Voice \with {
+  \consists Pitch_squash_engraver
+} \transpose c c' {
+  e8 e g a a16(bes)(a8) g \improvisationOn
+  e8
+  ~e2~e8 f4 fis8
+  ~fis2 \improvisationOff a16(bes) a8 g e
+}
+@end lilypond
+
+
+@node Special noteheads
+@unnumberedsubsubsec Special noteheads
+
+@cindex têtes de note, spéciales
+
+Certains instruments utilisent des têtes de note différentes Ã  des
+fins spécifiques --- des croix pour le @q{parlato} des chanteurs ou les
+notes Ã©touffées des guitares ; des losanges pour les harmoniques des
+cordes.  Il existe un raccourci (@code{\harmonic}) pour les notes en
+losange ; pour les autres styles de tête, il vous faudra jouer avec la
+propriété @code{NoteHead}.
+
+@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
+c4 d
+\override NoteHead #'style = #'cross
+e f
+\revert NoteHead #'style
+e d <c f\harmonic> <d a'\harmonic>
+@end lilypond
+
+@noindent
+Pour une liste exhaustive des styles de tête de note, consultez 
+@ref{Note head styles}.
+
+
+@seealso
+
+Référence du programme : @internalsref{NoteHead}.
+
+
+@node Inside the staff
+@subsection Inside the staff
+
+
+@menu
+* Selecting notation font size::  
+* Fingering instructions::      
+* Hidden notes::                
+* Coloring objects::            
+* Parentheses::                 
+* Ambitus::                     
+* Stems::                       
+@end menu
+
+@node Selecting notation font size
+@unnumberedsubsubsec Selecting notation font size
+
+Le plus sûr moyen de régler la taille de la police, quelque soit le
+contexte, consiste Ã  définir la propriété @code{fontSize}.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\set fontSize = #-4
+c f
+\set fontSize = #3
+g
+@end lilypond
+
+@noindent
+Ceci ne modifiera en rien la taille des différents symboles tels que
+ligatures ou liaisons.
+
+En interne, la propriété @code{fontSize} d'un contexte aura pour effet
+de définir la propriété @code{font-size} pour tous les objets de
+rendu.  La valeur de @code{font-size} est un entier représentant la
+taille proportionnellement Ã  la hauteur standard de la portée en
+cours.  Chaque incrément correspond Ã  une augmentation d'environ
+12@tie{}% de la taille de la police. Un pas de six aboutit exactement
+au doublement de la taille.  La fonction Scheme @code{magstep}
+convertit le nombre affecté Ã  @code{font-size} en facteur d'échelle.
+Vous pouvez aussi définir directement la propriété @code{font-size} de
+manière Ã  n'affecter seulement que certains objets de rendu.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\override NoteHead #'font-size = #-4
+c f
+\override NoteHead #'font-size = #3
+g
+@end lilypond
+
+Pour changer la taille des symboles musicaux (police Feta), LilyPond met
+à l'échelle la fonte dont la taille est la plus proche de la taille voulue ---
+cf. @ref{Setting the staff size}.  La taille standard, pour laquelle
+@code{font-size} vaut 0, dépend de la hauteur de la portée.  Ã€ une
+portée de 20 points correspond une police de 10 points.
+
+La propriété @code{font-size} ne peut intervenir que pour les objets
+qui utilisent des polices, autrement dit ceux qui disposent de
+l'interface de rendu @internalsref{font-interface}.
+
+@refcommands
+
+Les commandes suivantes définissent @code{fontSize} pour la voix en
+cours :
+
+@funindex \tiny
+@code{\tiny},
+@funindex \small
+@code{\small},
+@funindex \normalsize
+@code{\normalsize}.
+
+
+
+@node Fingering instructions
+@unnumberedsubsubsec Fingering instructions
+
+@cindex doigté
+@cindex substitution de doigt
+
+
+Les doigtés peuvent Ãªtre indiqués comme suit :
+@example
+@var{note}-@var{chiffre_du_doigt}
+@end example
+Pour les substitutions de doigts, on a recours Ã  une indication
+textuelle (commande @code{\markup}) de doigté
+(commande @code{\finger}).
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
+c4-1 c-2 c-3 c-4
+c^\markup { \finger "2 - 3" }
+@end lilypond
+
+
+La commande @code{\thumb} peut Ãªtre utilisée pour indiquer, par exemple
+dans une partition de violoncelle, si une note doit Ãªtre jouée avec le
+pouce (@q{thumb} en anglais).
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
+<a_\thumb a'-3>8 <b_\thumb b'-3>
+@end lilypond
+
+
+Les doigtés des accords peuvent Ãªtre saisis note par note,
+en les indiquant après chaque hauteur de note.
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
+< c-1 e-2 g-3 b-5 >4
+@end lilypond
+
+
+@commonprop
+
+On peut contrôler précisément les doigtés des accords en réglant
+la propriété @code{fingeringOrientations}.
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
+\set fingeringOrientations = #'(left down)
+<c-1 es-2 g-4 bes-5 > 4
+\set fingeringOrientations = #'(up right down)
+<c-1 es-2 g-4 bes-5 > 4
+@end lilypond
+
+
+Cette propriété permet Ã©galement, dans de la musique monophonique,
+d'indiquer des doigtés très proches des têtes de notes.
+
+@lilypond[verbatim,ragged-right,quote,fragment]
+\set fingeringOrientations = #'(right)
+<es'-2>4
+@end lilypond
+
+
+@seealso
+
+Référence du programme : @internalsref{Fingering}.
+
+D'autres exemples : @lsr{expressive,fingering-chords.ly}.
+
+
+@node Hidden notes
+@unnumberedsubsubsec Hidden notes
+
+@cindex Masquées, notes
+@cindex Invisibles, notes
+@cindex Transparentes, notes
+
+@funindex \hideNotes
+@funindex \unHideNotes
+Les notes masquées --- ou invisibles ou encore transparentes --- sont
+utiles dans le cadre d'exercices de théorie ou de composition.
+
+@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
+c4 d4
+\hideNotes
+e4 f4
+\unHideNotes
+g4 a
+@end lilypond
+
+
+@node Coloring objects
+@unnumberedsubsubsec Coloring objects
+
+Des objets peuvent Ãªtre colorisés individuellement.  Une listes des
+noms des couleurs disponibles se trouvent Ã  l'annexe @ref{List of colors}.
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
+\override NoteHead #'color = #red
+c4 c
+\override NoteHead #'color = #(x11-color 'LimeGreen)
+d
+\override Stem #'color = #blue
+e
+@end lilypond
+
+L'intégralité de la palette des couleurs définies pour X11 est
+accessible par la fonction Scheme x11-color.  Cette fonction prend
+en argument une expression symbolique
+
+@example
+\override Beam #'color = #(x11-color 'MediumTurquoise)
+@end example
+
+ou une chaîne de caractères
+
+@example
+\override Beam #'color = #(x11-color "MediumTurquoise")
+@end example
+
+La première formulation est Ã  la fois plus rapide Ã  Ã©crire et aussi
+plus efficace.  Néanmoins, la deuxième forme permet d'accéder aux noms
+composés des couleurs de X11.
+
+@example
+\override Beam #'color = #(x11-color "medium turquoise")
+@end example
+
+Lorsque la fonction x11-color ne trouve pas le paramètre fourni, elle
+revient Ã  la couleur par défaut, le noir.  Le problème ressort de
+façon Ã©vidente au vu de la partition finale.
+
+L'exemple suivant illustre l'utilisation de la fonction
+@code{x11-color}.  Notez que, après avoir Ã©té définie Ã  (x11-color
+'Boggle), la couleur des hampes repasse au noir.
+
+@lilypond[quote,ragged-right,verbatim]
+{
+  \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
+  \set Staff.instrumentName = \markup {
+    \with-color #(x11-color 'navy) "Clarinet"
+  }
+  \time 2/4
+  gis''8 a''
+  \override Beam #'color = #(x11-color "medium turquoise")
+  gis'' a''
+  \override NoteHead #'color = #(x11-color "LimeGreen")
+  gis'' a''
+  \override Stem #'color = #(x11-color 'Boggle)
+  gis'' a''
+}
+@end lilypond
+
+
+@seealso
+
+Annexes : @ref{List of colors}.
+
+
+@refbugs
+Les couleurs de X11 ne sont pas toutes perceptibles dans un navigateur
+internet.  Aussi nous vous recommandons, dans le cadre d'une
+présentation multimedia, d'utiliser des couleurs de base.
+
+Une couleur x11 n'aura pas forcément le même rendu qu'une couleur
+normale ayant un nom similaire.
+
+Vous ne pouvez pas coloriser des notes Ã  l'intérieur d'un accord avec
+@code{\override}. si besoin est, utilisez @code{\tweak}.  
+Pour plus de détails, consultez @ref{Objects connected to the input}.
+
+
+@node Parentheses
+@unnumberedsubsubsec Parentheses
+
+@cindex fantômes, notes
+@cindex notes fantômes
+@cindex parenthèses, notes entre
+
+Des objets peuvent Ãªtre mis entre parenthèses en saisissant
+@code{\parenthesize} juste avant l'événement musical.
+
+@lilypond[relative=2,fragment,verbatim,ragged-right]
+<
+  c
+  \parenthesize d
+  g
+>4-\parenthesize -.
+@end lilypond
+
+Ceci n'est opérationnel que dans le cadre d'un accord, qui peut ne
+comprendre qu'une seule note.
+
+@example
+< \parenthesize NOTE>
+@end example
+
+
+@node Ambitus
+@unnumberedsubsubsec Ambitus
+@cindex ambitus
+
+L'@emph{ambitus} est l'amplitude des hauteurs d'une voix donnée dans une
+partition.  Ce terme peut aussi désigner la tessiture qu'un instrument
+est capable d'atteindre.  Souvent, cet ambitus est imprimé au début des
+partitions vocales, afin que les exécutants puissent voir au premier
+coup d'oeil s'ils sont en mesure de tenir la partie en question.
+
+Pour exprimer l'ambitus d'une pièce, on indique avant la clé deux notes
+représentant la hauteur la plus basse et la plus haute.  Pour imprimer
+cet ambitus, il faut ajouter le graveur @internalsref{Ambitus_engraver}
+au contexte @internalsref{Voice}.  Ainsi,
+
+@example
+\layout @{
+  \context @{
+    \Voice
+    \consists Ambitus_engraver
+  @}
+@}
+@end example
+
+@noindent
+donne pour résultat
+
+@lilypond[quote,ragged-right]
+\layout {
+  \context {
+    \Staff
+    \consists Ambitus_engraver
+  }
+}
+
+\relative \new Staff {
+  as'' c e2 cis,2
+}
+@end lilypond
+
+Si plusieurs voix se trouvent sur une même portée, on peut attribuer le
+graveur @internalsref{Ambitus_engraver} au contexte @internalsref{Staff}
+plutôt qu'au contexte @internalsref{Voice} ; l'ambitus affiché sera
+alors celui de toutes les voix cumulées, non d'une seule des voix
+actives.
+
+@lilypond[verbatim,ragged-right,quote]
+\new Staff \with {
+  \consists "Ambitus_engraver"
+}
+<<
+  \new Voice \with {
+    \remove "Ambitus_engraver"
+  } \relative c'' {
+    \override Ambitus #'X-offset = #-1.0
+    \voiceOne
+    c4 a d e f2
+  }
+  \new Voice \with {
+    \remove "Ambitus_engraver"
+  } \relative c' {
+    \voiceTwo
+    es4 f g as b2
+  }
+>>
+@end lilypond
+
+@noindent
+Cet exemple met en Å“uvre une fonctionnalité avancée :
+
+@example
+\override Ambitus #'X-offset = #-1.0
+@end example
+
+@noindent
+Ce réglage déplace l'ambitus vers la gauche.  Le même résultat aurait pu
+être obtenu avec @code{extra-offset}, mais alors le système de mise en
+forme n'aurait pas attribué d'espace supplémentaire pour l'objet
+déplacé.
+
+@seealso
+
+Référence du programme : @internalsref{Ambitus},
+@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
+@internalsref{AmbitusAccidental}.
+
+Exemples :
+@lsr{vocal,ambitus@/.ly}.
+
+@refbugs
+
+LilyPond ne gère pas les collisions entre plusieurs ambitus présents sur
+une même portée.
+
+
+@node Stems
+@unnumberedsubsubsec Stems
+
+Dès qu'une note est rencontrée, un objet @internalsref{Stem} se crée
+automatiquement.  Pour les rondes et les silences, ils sont aussi
+créés, mais en mode invisible.
+
+@refcommands
+
+@funindex \stemUp
+@code{\stemUp},
+@funindex \stemDown
+@code{\stemDown},
+@funindex \stemNeutral
+@code{\stemNeutral}.
+
+
+@commonprop
+
+Pour changer la direction des hampes au milieu de la portée, utilisez
+
+@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+a4 b c b
+\override Stem #'neutral-direction = #up
+a4 b c b
+\override Stem #'neutral-direction = #down
+a4 b c b
+@end lilypond
+
+
+@node Outside the staff
+@subsection Outside the staff
+
+
+@menu
+* Balloon help::                
+* Grid lines::                  
+* Blank music sheet::           
+@end menu
+
+@node Balloon help
+@subsection Balloon help
+
+Vous pouvez marquer et nommer des Ã©léments de notation Ã  l'aide de
+bulles.  L'objectif premier de cette fonctionnalité est d'expliquer la
+notation. 
+
+En voici un exemple :
+@c KEEP LY
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\new Voice \with { \consists "Balloon_engraver" }
+{
+  \balloonGrobText #'Stem #'(3 . 4) \markup { "Je suis une hampe" }
+  <c-\balloonText #'(-2 . -2) \markup { Hello }  >8
+}
+@end lilypond
+
+@noindent
+Vous disposez de deux fonctions musicales, @code{balloonText} et
+@code{balloonGrobText}.  @code{balloonGrobText} prend en argument
+l'objet graphique Ã  agrémenter, alors que @code{balloonText} s'utilise
+comme une simple articulation.  Les autres arguments sont le décalage
+et le texte de la bulle.
+
+@cindex bulles
+@cindex notation, expliquer
+
+@seealso
+
+Référence du programme : @internalsref{text-balloon-interface}.
+
+
+@node Grid lines
+@subsection Grid lines
+
+Vous pouvez tracer des lignes entre les portées, synchronisées avec
+les notes.
+@c KEEP LY
+@lilypond[ragged-right,quote,verbatim]
+\layout {
+  \context {
+    \Staff
+    \consists "Grid_point_engraver" %% active les guides
+    gridInterval = #(ly:make-moment 1 4)
+  }
+}
+
+\new Score \with {
+  \consists "Grid_line_span_engraver"
+  %% centre les lignes guides horizontalement sous les notes
+  \override NoteColumn #'X-offset = #-0.5
+}
+
+\new ChoirStaff <<
+  \new Staff {
+    \stemUp
+    \relative {
+      c'4. d8 e8 f g4
+    }
+  }
+  \new Staff {
+    %% centre les lignes guides verticalement
+    \override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 )
+    \stemDown
+    \clef bass
+    \relative c {
+      c4  g'  f  e
+    }
+  }
+>>
+@end lilypond
+
+Exemples : @lsrdir{education}
+
+
+@node Blank music sheet
+@subsection Blank music sheet
+
+@cindex Papier musique
+@cindex Portées, feuille blanche
+
+Une feuille de papier musique s'obtient en utilisant des notes
+invisibles, et en invalidant le @code{Bar_number_engraver}.
+
+@c KEEP LY
+@lilypond[quote,verbatim]
+\layout{ indent = #0 }
+emptymusic = {
+  \repeat unfold 2 % Ã€ modifier pour plus de lignes.
+  { s1\break }
+  \bar "|."
+}
+\new Score \with {
+  \override TimeSignature #'transparent = ##t
+% décommenter la  ligne suivante selon besoin
+%  \override Clef #'transparent = ##t
+  defaultBarType = #""
+  \remove Bar_number_engraver
+} <<
+
+% Ã  adapter selon les portées désirées
+  \new Staff \emptymusic
+  \new TabStaff \emptymusic
+>>
+@end lilypond
+
+
diff --git a/Documentation/fr/user/educational.itely b/Documentation/fr/user/educational.itely
deleted file mode 100644 (file)
index 9b39c56..0000000
+++ /dev/null
@@ -1,667 +0,0 @@
-@c -*- coding: utf-8; mode: texinfo; -*-
-@ignore
-    Translation of GIT committish: f7420240e4ce1fe2217646482a47d00f566af52c
-
-    When revising a translation, copy the HEAD committish of the
-    version that you are working on.  See TRANSLATION for details.
-@end ignore
-
-@node Educational use
-@section Educational use
-
-@menu
-* Note heads::                  
-* Inside the staff::            
-* Outside the staff::           
-@end menu
-
-
-@node Note heads
-@subsection Note heads
-
-@menu
-* Easy notation note heads::    
-* Shape note heads::            
-* Improvisation::               
-* Special noteheads::           
-@end menu
-
-@node Easy Notation note heads
-@unnumberedsubsubsec Easy Notation note heads
-
-@cindex tête de note, apprentissage
-@cindex notation facile
-@cindex Hal Leonard
-
-Les notes @q{easy play} comportent le nom de la note Ã  l'intérieur de
-la tête.  On l'utilise dans des partitions pour débutants.
-
-@lilypond[quote,ragged-right,verbatim,fragment,staffsize=26]
-  \easyHeadsOn
-  c'2 e'4 f' | g'1
-@end lilypond
-
-La commande @code{\easyHeadsOn} remplace tous les réglages de l'objet
-@internalsref{NoteHead}.  L'impression doit Ãªtre de plus grande
-taille, afin que les lettres soient lisibles.  Voir Ã  ce propos
-@ref{Setting the staff size}.
-
-@refcommands
-
-@funindex \easyHeadsOn
-@code{\easyHeadsOn}
-
-
-@node Shape note heads
-@unnumberedsubsubsec Shape note heads
-
-@cindex tête de note, allure
-
-En notation profilée, le profil d'une tête de note correspond Ã  la
-fonction harmonique de cette note dans la gamme.  Ce style de notation
-était très en vogue dans les recueils de chansons américains du XIXe
-siècle. 
-
-Des notes profilées sont produites après activation de
-@code{\aikenHeads} ou @code{\sacredHarpHeads}, selon le style.
-
-@lilypond[verbatim,relative=1,fragment]
-  \aikenHeads
-  c8 d4 e8 a2 g1
-  \sacredHarpHeads
-  c8 d4. e8 a2 g1
-@end lilypond
-
-Les profils sont déterminés par la hauteur dans la gamme, le premier
-degré Ã©tant défini par la commande @code{\key}. 
-
-@funindex \key
-@funindex shapeNoteStyles
-@funindex \aikenHeads
-@funindex \sacredHarpHeads
-
-Les notes profilées sont mises en Å“uvre par la propriété
-@code{shapeNoteStyles}, dont les valeurs sont constituées d'une liste
-de symboles.  Le n-ième Ã©lément indique le style Ã  utiliser pour le
-n-ième degré de la gamme.  Toutes les combinaisons sont possibles :
-
-@lilypond[verbatim,relative=1,fragment]
-  \set shapeNoteStyles  = ##(cross triangle fa #f mensural xcircle diamond)
-  c8 d4. e8 a2 g1
-@end lilypond
-
-
-@node Improvisation
-@unnumberedsubsubsec Improvisation
-
-L'improvisation peut quelquefois s'indiquer Ã  l'aide de notes de forme
-allongée (@emph{slash}).  Ces têtes de notes sont créées  par
-l'adjonction du graveur @internalsref{Pitch_squash_engraver} au
-contexte @internalsref{Voice}, de telle sorte que la commande
-
-@example
-\set squashedPosition = #0
-\override NoteHead #'style = #'slash
-@end example
-
-@noindent
-active les notes penchées.
-
-Vous disposez des raccourcis @code{\improvisationOn} et son corollaire
-@code{\improvisationOff} pour cette séquence, comme l'illustre
-l'exemple ci dessous.
-
-@lilypond[verbatim,ragged-right,quote]
-\new Voice \with {
-  \consists Pitch_squash_engraver
-} \transpose c c' {
-  e8 e g a a16(bes)(a8) g \improvisationOn
-  e8
-  ~e2~e8 f4 fis8
-  ~fis2 \improvisationOff a16(bes) a8 g e
-}
-@end lilypond
-
-
-@node Special noteheads
-@unnumberedsubsubsec Special noteheads
-
-@cindex têtes de note, spéciales
-
-Certains instruments utilisent des têtes de note différentes Ã  des
-fins spécifiques --- des croix pour le @q{parlato} des chanteurs ou les
-notes Ã©touffées des guitares ; des losanges pour les harmoniques des
-cordes.  Il existe un raccourci (@code{\harmonic}) pour les notes en
-losange ; pour les autres styles de tête, il vous faudra jouer avec la
-propriété @code{NoteHead}.
-
-@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
-c4 d
-\override NoteHead #'style = #'cross
-e f
-\revert NoteHead #'style
-e d <c f\harmonic> <d a'\harmonic>
-@end lilypond
-
-@noindent
-Pour une liste exhaustive des styles de tête de note, consultez 
-@ref{Note head styles}.
-
-
-@seealso
-
-Référence du programme : @internalsref{NoteHead}.
-
-
-@node Inside the staff
-@subsection Inside the staff
-
-
-@menu
-* Selecting notation font size::  
-* Fingering instructions::      
-* Hidden notes::                
-* Coloring objects::            
-* Parentheses::                 
-* Ambitus::                     
-* Stems::                       
-@end menu
-
-@node Selecting notation font size
-@unnumberedsubsubsec Selecting notation font size
-
-Le plus sûr moyen de régler la taille de la police, quelque soit le
-contexte, consiste Ã  définir la propriété @code{fontSize}.
-
-@lilypond[quote,fragment,relative=1,verbatim]
-c8
-\set fontSize = #-4
-c f
-\set fontSize = #3
-g
-@end lilypond
-
-@noindent
-Ceci ne modifiera en rien la taille des différents symboles tels que
-ligatures ou liaisons.
-
-En interne, la propriété @code{fontSize} d'un contexte aura pour effet
-de définir la propriété @code{font-size} pour tous les objets de
-rendu.  La valeur de @code{font-size} est un entier représentant la
-taille proportionnellement Ã  la hauteur standard de la portée en
-cours.  Chaque incrément correspond Ã  une augmentation d'environ
-12@tie{}% de la taille de la police. Un pas de six aboutit exactement
-au doublement de la taille.  La fonction Scheme @code{magstep}
-convertit le nombre affecté Ã  @code{font-size} en facteur d'échelle.
-Vous pouvez aussi définir directement la propriété @code{font-size} de
-manière Ã  n'affecter seulement que certains objets de rendu.
-
-@lilypond[quote,fragment,relative=1,verbatim]
-c8
-\override NoteHead #'font-size = #-4
-c f
-\override NoteHead #'font-size = #3
-g
-@end lilypond
-
-Pour changer la taille des symboles musicaux (police Feta), LilyPond met
-à l'échelle la fonte dont la taille est la plus proche de la taille voulue ---
-cf. @ref{Setting the staff size}.  La taille standard, pour laquelle
-@code{font-size} vaut 0, dépend de la hauteur de la portée.  Ã€ une
-portée de 20 points correspond une police de 10 points.
-
-La propriété @code{font-size} ne peut intervenir que pour les objets
-qui utilisent des polices, autrement dit ceux qui disposent de
-l'interface de rendu @internalsref{font-interface}.
-
-@refcommands
-
-Les commandes suivantes définissent @code{fontSize} pour la voix en
-cours :
-
-@funindex \tiny
-@code{\tiny},
-@funindex \small
-@code{\small},
-@funindex \normalsize
-@code{\normalsize}.
-
-
-
-@node Fingering instructions
-@unnumberedsubsubsec Fingering instructions
-
-@cindex doigté
-@cindex substitution de doigt
-
-
-Les doigtés peuvent Ãªtre indiqués comme suit :
-@example
-@var{note}-@var{chiffre_du_doigt}
-@end example
-Pour les substitutions de doigts, on a recours Ã  une indication
-textuelle (commande @code{\markup}) de doigté
-(commande @code{\finger}).
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-c4-1 c-2 c-3 c-4
-c^\markup { \finger "2 - 3" }
-@end lilypond
-
-
-La commande @code{\thumb} peut Ãªtre utilisée pour indiquer, par exemple
-dans une partition de violoncelle, si une note doit Ãªtre jouée avec le
-pouce (@q{thumb} en anglais).
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
-<a_\thumb a'-3>8 <b_\thumb b'-3>
-@end lilypond
-
-
-Les doigtés des accords peuvent Ãªtre saisis note par note,
-en les indiquant après chaque hauteur de note.
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
-< c-1 e-2 g-3 b-5 >4
-@end lilypond
-
-
-@commonprop
-
-On peut contrôler précisément les doigtés des accords en réglant
-la propriété @code{fingeringOrientations}.
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-\set fingeringOrientations = #'(left down)
-<c-1 es-2 g-4 bes-5 > 4
-\set fingeringOrientations = #'(up right down)
-<c-1 es-2 g-4 bes-5 > 4
-@end lilypond
-
-
-Cette propriété permet Ã©galement, dans de la musique monophonique,
-d'indiquer des doigtés très proches des têtes de notes.
-
-@lilypond[verbatim,ragged-right,quote,fragment]
-\set fingeringOrientations = #'(right)
-<es'-2>4
-@end lilypond
-
-
-@seealso
-
-Référence du programme : @internalsref{Fingering}.
-
-D'autres exemples : @lsr{expressive,fingering-chords.ly}.
-
-
-@node Hidden notes
-@unnumberedsubsubsec Hidden notes
-
-@cindex Masquées, notes
-@cindex Invisibles, notes
-@cindex Transparentes, notes
-
-@funindex \hideNotes
-@funindex \unHideNotes
-Les notes masquées --- ou invisibles ou encore transparentes --- sont
-utiles dans le cadre d'exercices de théorie ou de composition.
-
-@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
-c4 d4
-\hideNotes
-e4 f4
-\unHideNotes
-g4 a
-@end lilypond
-
-
-@node Coloring objects
-@unnumberedsubsubsec Coloring objects
-
-Des objets peuvent Ãªtre colorisés individuellement.  Une listes des
-noms des couleurs disponibles se trouvent Ã  l'annexe @ref{List of colors}.
-
-@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\override NoteHead #'color = #red
-c4 c
-\override NoteHead #'color = #(x11-color 'LimeGreen)
-d
-\override Stem #'color = #blue
-e
-@end lilypond
-
-L'intégralité de la palette des couleurs définies pour X11 est
-accessible par la fonction Scheme x11-color.  Cette fonction prend
-en argument une expression symbolique
-
-@example
-\override Beam #'color = #(x11-color 'MediumTurquoise)
-@end example
-
-ou une chaîne de caractères
-
-@example
-\override Beam #'color = #(x11-color "MediumTurquoise")
-@end example
-
-La première formulation est Ã  la fois plus rapide Ã  Ã©crire et aussi
-plus efficace.  Néanmoins, la deuxième forme permet d'accéder aux noms
-composés des couleurs de X11.
-
-@example
-\override Beam #'color = #(x11-color "medium turquoise")
-@end example
-
-Lorsque la fonction x11-color ne trouve pas le paramètre fourni, elle
-revient Ã  la couleur par défaut, le noir.  Le problème ressort de
-façon Ã©vidente au vu de la partition finale.
-
-L'exemple suivant illustre l'utilisation de la fonction
-@code{x11-color}.  Notez que, après avoir Ã©té définie Ã  (x11-color
-'Boggle), la couleur des hampes repasse au noir.
-
-@lilypond[quote,ragged-right,verbatim]
-{
-  \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
-  \set Staff.instrumentName = \markup {
-    \with-color #(x11-color 'navy) "Clarinet"
-  }
-  \time 2/4
-  gis''8 a''
-  \override Beam #'color = #(x11-color "medium turquoise")
-  gis'' a''
-  \override NoteHead #'color = #(x11-color "LimeGreen")
-  gis'' a''
-  \override Stem #'color = #(x11-color 'Boggle)
-  gis'' a''
-}
-@end lilypond
-
-
-@seealso
-
-Annexes : @ref{List of colors}.
-
-
-@refbugs
-Les couleurs de X11 ne sont pas toutes perceptibles dans un navigateur
-internet.  Aussi nous vous recommandons, dans le cadre d'une
-présentation multimedia, d'utiliser des couleurs de base.
-
-Une couleur x11 n'aura pas forcément le même rendu qu'une couleur
-normale ayant un nom similaire.
-
-Vous ne pouvez pas coloriser des notes Ã  l'intérieur d'un accord avec
-@code{\override}. si besoin est, utilisez @code{\tweak}.  
-Pour plus de détails, consultez @ref{Objects connected to the input}.
-
-
-@node Parentheses
-@unnumberedsubsubsec Parentheses
-
-@cindex fantômes, notes
-@cindex notes fantômes
-@cindex parenthèses, notes entre
-
-Des objets peuvent Ãªtre mis entre parenthèses en saisissant
-@code{\parenthesize} juste avant l'événement musical.
-
-@lilypond[relative=2,fragment,verbatim,ragged-right]
-<
-  c
-  \parenthesize d
-  g
->4-\parenthesize -.
-@end lilypond
-
-Ceci n'est opérationnel que dans le cadre d'un accord, qui peut ne
-comprendre qu'une seule note.
-
-@example
-< \parenthesize NOTE>
-@end example
-
-
-@node Ambitus
-@unnumberedsubsubsec Ambitus
-@cindex ambitus
-
-L'@emph{ambitus} est l'amplitude des hauteurs d'une voix donnée dans une
-partition.  Ce terme peut aussi désigner la tessiture qu'un instrument
-est capable d'atteindre.  Souvent, cet ambitus est imprimé au début des
-partitions vocales, afin que les exécutants puissent voir au premier
-coup d'oeil s'ils sont en mesure de tenir la partie en question.
-
-Pour exprimer l'ambitus d'une pièce, on indique avant la clé deux notes
-représentant la hauteur la plus basse et la plus haute.  Pour imprimer
-cet ambitus, il faut ajouter le graveur @internalsref{Ambitus_engraver}
-au contexte @internalsref{Voice}.  Ainsi,
-
-@example
-\layout @{
-  \context @{
-    \Voice
-    \consists Ambitus_engraver
-  @}
-@}
-@end example
-
-@noindent
-donne pour résultat
-
-@lilypond[quote,ragged-right]
-\layout {
-  \context {
-    \Staff
-    \consists Ambitus_engraver
-  }
-}
-
-\relative \new Staff {
-  as'' c e2 cis,2
-}
-@end lilypond
-
-Si plusieurs voix se trouvent sur une même portée, on peut attribuer le
-graveur @internalsref{Ambitus_engraver} au contexte @internalsref{Staff}
-plutôt qu'au contexte @internalsref{Voice} ; l'ambitus affiché sera
-alors celui de toutes les voix cumulées, non d'une seule des voix
-actives.
-
-@lilypond[verbatim,ragged-right,quote]
-\new Staff \with {
-  \consists "Ambitus_engraver"
-}
-<<
-  \new Voice \with {
-    \remove "Ambitus_engraver"
-  } \relative c'' {
-    \override Ambitus #'X-offset = #-1.0
-    \voiceOne
-    c4 a d e f2
-  }
-  \new Voice \with {
-    \remove "Ambitus_engraver"
-  } \relative c' {
-    \voiceTwo
-    es4 f g as b2
-  }
->>
-@end lilypond
-
-@noindent
-Cet exemple met en Å“uvre une fonctionnalité avancée :
-
-@example
-\override Ambitus #'X-offset = #-1.0
-@end example
-
-@noindent
-Ce réglage déplace l'ambitus vers la gauche.  Le même résultat aurait pu
-être obtenu avec @code{extra-offset}, mais alors le système de mise en
-forme n'aurait pas attribué d'espace supplémentaire pour l'objet
-déplacé.
-
-@seealso
-
-Référence du programme : @internalsref{Ambitus},
-@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
-@internalsref{AmbitusAccidental}.
-
-Exemples :
-@lsr{vocal,ambitus@/.ly}.
-
-@refbugs
-
-LilyPond ne gère pas les collisions entre plusieurs ambitus présents sur
-une même portée.
-
-
-@node Stems
-@unnumberedsubsubsec Stems
-
-Dès qu'une note est rencontrée, un objet @internalsref{Stem} se crée
-automatiquement.  Pour les rondes et les silences, ils sont aussi
-créés, mais en mode invisible.
-
-@refcommands
-
-@funindex \stemUp
-@code{\stemUp},
-@funindex \stemDown
-@code{\stemDown},
-@funindex \stemNeutral
-@code{\stemNeutral}.
-
-
-@commonprop
-
-Pour changer la direction des hampes au milieu de la portée, utilisez
-
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
-a4 b c b
-\override Stem #'neutral-direction = #up
-a4 b c b
-\override Stem #'neutral-direction = #down
-a4 b c b
-@end lilypond
-
-
-@node Outside the staff
-@subsection Outside the staff
-
-
-@menu
-* Balloon help::                
-* Grid lines::                  
-* Blank music sheet::           
-@end menu
-
-@node Balloon help
-@subsection Balloon help
-
-Vous pouvez marquer et nommer des Ã©léments de notation Ã  l'aide de
-bulles.  L'objectif premier de cette fonctionnalité est d'expliquer la
-notation. 
-
-En voici un exemple :
-@c KEEP LY
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
-\new Voice \with { \consists "Balloon_engraver" }
-{
-  \balloonGrobText #'Stem #'(3 . 4) \markup { "Je suis une hampe" }
-  <c-\balloonText #'(-2 . -2) \markup { Hello }  >8
-}
-@end lilypond
-
-@noindent
-Vous disposez de deux fonctions musicales, @code{balloonText} et
-@code{balloonGrobText}.  @code{balloonGrobText} prend en argument
-l'objet graphique Ã  agrémenter, alors que @code{balloonText} s'utilise
-comme une simple articulation.  Les autres arguments sont le décalage
-et le texte de la bulle.
-
-@cindex bulles
-@cindex notation, expliquer
-
-@seealso
-
-Référence du programme : @internalsref{text-balloon-interface}.
-
-
-@node Grid lines
-@subsection Grid lines
-
-Vous pouvez tracer des lignes entre les portées, synchronisées avec
-les notes.
-@c KEEP LY
-@lilypond[ragged-right,quote,verbatim]
-\layout {
-  \context {
-    \Staff
-    \consists "Grid_point_engraver" %% active les guides
-    gridInterval = #(ly:make-moment 1 4)
-  }
-}
-
-\new Score \with {
-  \consists "Grid_line_span_engraver"
-  %% centre les lignes guides horizontalement sous les notes
-  \override NoteColumn #'X-offset = #-0.5
-}
-
-\new ChoirStaff <<
-  \new Staff {
-    \stemUp
-    \relative {
-      c'4. d8 e8 f g4
-    }
-  }
-  \new Staff {
-    %% centre les lignes guides verticalement
-    \override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 )
-    \stemDown
-    \clef bass
-    \relative c {
-      c4  g'  f  e
-    }
-  }
->>
-@end lilypond
-
-Exemples : @lsrdir{education}
-
-
-@node Blank music sheet
-@subsection Blank music sheet
-
-@cindex Papier musique
-@cindex Portées, feuille blanche
-
-Une feuille de papier musique s'obtient en utilisant des notes
-invisibles, et en invalidant le @code{Bar_number_engraver}.
-
-@c KEEP LY
-@lilypond[quote,verbatim]
-\layout{ indent = #0 }
-emptymusic = {
-  \repeat unfold 2 % Ã€ modifier pour plus de lignes.
-  { s1\break }
-  \bar "|."
-}
-\new Score \with {
-  \override TimeSignature #'transparent = ##t
-% décommenter la  ligne suivante selon besoin
-%  \override Clef #'transparent = ##t
-  defaultBarType = #""
-  \remove Bar_number_engraver
-} <<
-
-% Ã  adapter selon les portées désirées
-  \new Staff \emptymusic
-  \new TabStaff \emptymusic
->>
-@end lilypond
-
-
index f93caa44e54b6f7b4ed9c5fca7d80e9ebcc55b13..bc069c6f6919bb3c1909767f87419c56d5c445ab 100644 (file)
@@ -6,6 +6,10 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
+
+
 @node Expressive marks
 @section Expressive marks
 
index 9f65c9054e6f0f52ac61c47b9c813af88b3bce57..764d7e679fc312f9110570bcb09e39b751aec71f 100644 (file)
@@ -7,6 +7,8 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
 
 @node Fundamental concepts
 @chapter Fundamental concepts
index 62aec56c2e37f56a9f1c6b675df7740817111981..99439c8647d3f726b4f732d1e1d825d33c54fb88 100644 (file)
@@ -7,6 +7,8 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
 
 @node Guitar
 @section Guitar
 @cindex tablature de guitare
 
 @menu 
-* Guitar TODO::
+* Guitar sections::
 @end menu
 
-@node Guitar TODO
-@subsection Guitar TODO
+@node Guitar sections
+@subsection Guitar sections
 
-@menu 
+@menu
 * String number indications::
 * Tablatures basic::
 * Non-guitar tablatures::
index a66a0813ef43545c6db8d75e1bb1ecc59e0ad8a2..95e6ff948f647a08207927c8d59893c2b65684f1 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -73,11 +73,11 @@ UNTRANSLATED NODE: IGNORE ME
 UNTRANSLATED NODE: IGNORE ME
 
 @menu 
-* Up and down::
+* Controlling direction::
 * Distances and measurements MAYBE MOVE::
 @end menu 
-@node Up and down
-@subsection Up and down
+@node Controlling direction
+@subsection Controlling direction
 
 UNTRANSLATED NODE: IGNORE ME
 
index 6b2545a3ac140aa55c7cbf52e7555d7082f13667..5c4fd589f2ef1d725ab45cf61cb2a0870d6a9778 100644 (file)
@@ -7,6 +7,10 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Ludovic Sardain, John Mandereau
+@c Translation checkers: Jean-Charles Malahieude, Jean-Yves Baudais
+
+
 @node Introduction
 @chapter Introduction
 
index 28bea5e50510f8175473ed6f11a4f967ec6caeb0..223a39199caaf680ac9f59008945e9f5f8c408c8 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -74,6 +74,10 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
+@subheading Format-specific instructions
+@subsubheading @LaTeX{}
+@subsubheading Texinfo
+@subheading Command line options
 @node Filename extensions
 @section Filename extensions
 
index 29dbb2a076e4e01c3d321c6a555acd904b3c184d..2d028fd15282d58f36567c7fae405ae2ec8ba346 100644 (file)
@@ -29,6 +29,7 @@
 @omflanguage French
 @end ignore
 
+@c Translators: John Mandereau
 
 @ifhtml
 Ce document est Ã©galement disponible au format
index 024572dc05c0514655787ef361089f620570de38..a496a9f505c2d107a73703a62fc77dc4025ee0eb 100644 (file)
@@ -28,6 +28,8 @@
 @omflanguage French
 @end ignore
 
+@c Translators: John Mandereau
+
 @ifhtml
 Ce document est Ã©galement disponible au format
 @uref{source/Documentation/user/lilypond-program.fr.pdf,PDF}.
index b646fa6b5c4119d1770196125d83e984233c00b1..c03bcd60a43fc411e645b032edefc143238949fd 100644 (file)
@@ -30,6 +30,8 @@
 @omflanguage French
 @end ignore
 
+@c Translators: John Mandereau
+
 @ifhtml
 Ce document est Ã©galement disponible au format
 @uref{source/Documentation/user/lilypond.fr.pdf,PDF}.
index bb6a03b07eec8c38917045476fd17844de009416..83deae3addebe45b720a91b4c60b58dfb4d7bcb4 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
index 7e6e7bbfc4a5cf2acbba1abb32f32eedadeb2068..c9e45a13ca4809fcd9e3e0be11d0c8991e67f0c2 100644 (file)
@@ -8,6 +8,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Jean-Charles Malahieude
 
 @node Non-musical notation
 @chapter Non-musical notation
index 0738f95bff50664253101c6bca9a8f743eede324..ced4b2254e4f1b58aeacf54c3dbcb324f6f7c31b 100644 (file)
@@ -7,6 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Frédéric Chiasson, Jean-Charles Malahieude
 
 @node Notation manual tables
 @appendix Notation manual tables
index 93fddb97cc8b608477555ac86d666ee3beff1bb4..23da2555d6d177203c2ad5d4c58404de0344fddc 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 1859194a9f46a8886166cafee0e450b39fc5a963
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -9,17 +9,17 @@
 @node Musical notation
 @chapter Musical notation
 
-This chapter explains how to create musical notation.
+Ce chapitre explique comment créer la notation musicale standard.
 
 @menu
-* Pitches::            Writing and display the pitches of notes.
-* Rhythms::            Writing and displaying the durations of notes.
-* Expressive marks::   Adding expression to notes.
-* Repeats::            Repeat music.
-* Simultaneous notes:: More than one note at once.
-* Staff notation::     Displaying staves.
-* Educational use::    Special notation to increase legibility.
-* Text::               Adding text to scores.
+* Pitches::            Ã©criture et gravure des hauteurs de note.
+* Rhythms::            Ã©criture et gravure des durées.
+* Expressive marks::   ajout de signes d'exécution et d'interprétation.
+* Repeats::            différents types de répétitions de musique.
+* Simultaneous notes:: polyphonie et accords.
+* Staff notation::     gravure de la portée.
+* Editorial annotations:: annotations d'édition ou Ã  usage pédagogique.
+* Text::               ajout de texte Ã  la partition.
 @end menu
 
 @include pitches.itely
@@ -28,6 +28,6 @@ This chapter explains how to create musical notation.
 @include repeats.itely
 @include simultaneous.itely
 @include staff.itely
-@include educational.itely
+@include editorial.itely
 @include text.itely
 
index b5e989bd0e57fece64f1843210fa36e3ac94e22f..8977ea0543213c548664c99c592b0b5a7f047cd0 100644 (file)
@@ -7,16 +7,18 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
 
 @node Percussion
 @section Percussion
 
-@menu 
-* TODO percussion node fix::
+@menu
+* Percussion sections::
 @end menu
 
-@node TODO percussion node fix
-@subsection TODO percussion node fix
+@node Percussion sections
+@subsection Percussion sections
 
 La notation rythmique sert avant tout aux parties de percussions ou de
 batterie, mais on peut aussi s'en servir Ã  des fins pédagogiques, pour
index 962cb0631f4c83ac2441a7e3ca609fb7bf84f6d0..6c372f260f790b3957a19841395bae806cbf4894 100644 (file)
@@ -7,16 +7,18 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
 
 @node Piano music
 @section Piano music
 
 @menu 
-* TODO piano node fix::
+* Piano sections::
 @end menu
 
-@node TODO piano node fix
-@subsection TODO piano node fix
+@node Piano sections
+@subsection Piano sections
 
 Les systèmes de piano comprennent deux portées réunies par une accolade.
 Les portées sont largement autonomes, mais il arrive que des voix passent
index 68c6bd0af19b5741ce8e1d4bec4496efbec55faf..e7782818d6e6eb7783ca03add8f45ae5a37eb884 100644 (file)
@@ -6,6 +6,9 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Frédéric Chiasson
+@c Translation checkers: Valentin Villenave, Jean-Charles Malahieude
+
 @node Pitches
 @section Pitches
 
index b2868fe4d2fe85344564b9061b70078a50672042..f17c5130933da2f24c489f26cba4cf8009078fd3 100644 (file)
@@ -7,6 +7,9 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
+@c Translation checkers: Ludovic Sardain
+
 @node Preface
 @unnumbered Preface
 
index d6bb38e195ea7d643ae3af00cdf4881dddb2442f..8cfe27f740540ed1aad79a09326829394199b7c3 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
index 4961e763c1816412e0b110b00a79ab04aa25dd6c..494a1efb9d6a11d59b9141f2bd86cf2b8940eebd 100644 (file)
@@ -6,6 +6,9 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
+
 @node Repeats
 @section Repeats
 
index 1acb7ef84c4e2b95129c04a6f00d84bb3795fe8a..4675e288b8e4d9497f7fe6ef908bc5ea0540dfb9 100644 (file)
@@ -6,6 +6,9 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Frédéric Chiasson
+@c Translation checkers: Valentin Villenave, Jean-Charles Malahieude
+
 @node Rhythms
 @section Rhythms
 
index 466ed51a1affb4e3acc5d612a9c5711f2d105f1b..0d3deb42da1bfa1cdd0489990a8f66ac5bf260a0 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
index 3a7f134d24eda10ee95d604b08ba8e6f7aa94acd..f4717689657828c89a29a5a739e3f276d3f3b34d 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
index d57f193d0d9085cbfc2af2c474259181f4a07bd9..e25cfded2736faf9edd995659a11dc82f79e3bb3 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
index b74ae652ef00907a9a3fe25a7bae3821331d3576..c3177761ca7977c638d564cfbc8433359e3606c3 100644 (file)
@@ -6,6 +6,9 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Frédéric Chiasson, Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
+
 @node Simultaneous notes
 @section Simultaneous notes
 
index d8b8366561c3c5f7f908af2ba3008b350093de80..ea647cbbf41f4887243a89124cbf9a79c65cc5ff 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -20,6 +20,7 @@ UNTRANSLATED NODE: IGNORE ME
 * Breaks::
 * Vertical spacing::
 * Horizontal spacing::
+* Page layout MOVED FROM LM::
 @end menu 
 @node Paper and pages
 @section Paper and pages
@@ -187,6 +188,43 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
+@node Page layout MOVED FROM LM
+@section Page layout MOVED FROM LM
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Introduction to layout::
+* Global sizes::
+* Line breaks::
+* Page breaks::
+* Fitting music onto fewer pages::
+@end menu 
+@node Introduction to layout
+@subsection Introduction to layout
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Global sizes
+@subsection Global sizes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Line breaks
+@subsection Line breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Page breaks
+@subsection Page breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fitting music onto fewer pages
+@subsection Fitting music onto fewer pages
+
+UNTRANSLATED NODE: IGNORE ME
+
 
 -- SKELETON FILE --
 When you actually translate this file, please remove these lines as
index 66edc579f2880b8c5b1242fd1318cd0301531cb0..66500a0b05d8cb3305f1a1d61341799ea2a1d9ef 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 1859194a9f46a8886166cafee0e450b39fc5a963
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -9,17 +9,18 @@
 @node Specialist notation
 @chapter Specialist notation
 
-This chapter explains how to create musical notation.
+Ce chapitre explique comment créer la notation musicale
+spécifique Ã  certains intruments ou certaines Ã©poques.
 
 @menu
-* Vocal music:: a
-* Chords Blah:: b
-* Piano music:: c
-* Percussion:: d
-* Guitar:: e
+* Vocal music::
+* Chords::
+* Piano music::
+* Percussion::
+* Guitar::
 * Orchestral strings::
 * Bagpipes::
-* Ancient notation:: g
+* Ancient notation::
 @end menu
 
 @include vocal.itely
index cbc72dc99ea9cb8bbee1de9f2d2f9acd7310eda0..3258d4041ddce65fbfcc93475234c97132babb08 100644 (file)
@@ -6,6 +6,9 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave, Jean-Charles Malahieude
+@c Translation checkers: John Mandereau
+
 @node Staff notation
 @section Staff notation
 
index 39c150c27189fe0fe7629100d2cafbf6efb383ce..d01927dcfae9c00ca4df0d83304f38f2633be349 100644 (file)
@@ -7,6 +7,8 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
 
 @node Orchestral strings
 @section Orchestral strings
 Cette section dispense des informations supplémentaires et utiles Ã 
 l'écriture pour les cordes frottées.
 
-@menu 
-* Orchestral strings TODO::
+@menu
+* Orchestral strings sections::
 @end menu
 
 
-@node Orchestral strings TODO
-@subsection Orchestral strings TODO
+@node Orchestral strings sections
+@subsection Orchestral strings sections
 
-@menu 
+@menu
 * Artificial harmonics (strings)::
 @end menu
 
index 2bd76f2d3f653201b3e7c9260a9ddc6a627d5e81..4939ec95a13c72096944e723af513527fba8aba2 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+    Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
index 86e8e3475805f7aa3fb971263a89b1c793ee2ceb..aa552ebe131a6519c1e64db5aefb0c8cc65110bf 100644 (file)
@@ -6,6 +6,9 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Jean-Charles Malahieude
+@c Translation checkers: Valentin Villenave, John Mandereau
+
 @node Text
 @section Text
 
index 46233483a3694bda957248eac12b6cc1092018d4..e1644f0d080c351734f29411a5aa463ff6f02836 100644 (file)
@@ -34,6 +34,10 @@ Tutorial guidelines:
 
 @c Your first LilyPond score in 10 minutes?
 
+@c Translators: Nicolas Grandclaude, Ludovic Sardain, Gauvain Pocentek
+@c Translation checkers: Jean-Charles Malahieude, Valentin Villenave, John Mandereau
+
+
 @node Tutorial
 @chapter Tutorial
 
index 38c9f4d527cae4b00eac5cc5756b5d1524e40b81..3393cfe8eae904056b3607281107c2b9b0002cf3 100644 (file)
@@ -7,6 +7,9 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave, Nicolas Klutchnikoff
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
+
 @node Tweaking output
 @chapter Tweaking output
 
index 37041fd0e311083de0ea56937665bf5de7c52602..e4bda96e20c1754cb3fc31d5126d20f242873c77 100644 (file)
@@ -7,6 +7,8 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude
 
 @node Vocal music
 @section Vocal music
index 1625af305e412cadffbae072bce334a100304b04..ae0b394095d57471ee64c357928e26078d655113 100644 (file)
@@ -7,6 +7,9 @@
    version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Ludovic Sardain
+@c Translation checkers: Jean-Yves Baudais, Valentin Villenave, John Mandereau, Jean-Charles Malahieude
+
 @node Working on LilyPond projects
 @chapter Working on LilyPond projects
 
index 19b27e23be23468633e8f10dca501f698bf57cc1..4542740e1d21e3a45bcf10eb4c22a9e385071ab8 100644 (file)
@@ -11,11 +11,14 @@ DOC_PO_SOURCES = add_html_footer.py texi-gettext.py
 TELY_FILES = $(shell ls $(depth)/Documentation/user/lilypond*.tely)
 TELY_FILES += $(foreach l, $(LANGS), $(shell ls $(depth)/Documentation/$(l)/user/lilypond*.tely))
 
-messages: $(MO_FILES)
+messages: $(outdir)/messages
+
+$(outdir)/messages: $(MO_FILES)
        for i in $(CATALOGS); do \
          mkdir -p $(doc-localedir)/$$i/LC_MESSAGES; \
          cp $(outdir)/$$i.mo $(doc-localedir)/$$i/LC_MESSAGES/$(DOMAIN).mo; \
        done
+       touch $@
 
 po-update:
        $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -o texi.pot --gettext $(TELY_FILES:%.tely=../%.tely)
diff --git a/Documentation/translations.template.html b/Documentation/translations.template.html
new file mode 100644 (file)
index 0000000..e0bbadc
--- /dev/null
@@ -0,0 +1,40 @@
+<html>
+<!--
+    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.
+!-->
+<head>
+  <title>LilyPond documentation translations status</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+<p><a href="index.html">Up to documentation index</a></p>
+
+<h1>Documentation translations status</h1>
+
+<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
+  documentation are translated; for each documentation section, you
+  can read the word count in parentheses, who translated and verified
+  it (translation checkers are printed with a smaller font size), how
+  much of the original section in English has been translation, how
+  up-to-date is the translation, and whether the translation has
+  already been updated after Grand Documentation Project (GDP) was
+  started.
+</p>
+
+<p>Please note that GDP makes a lot of changes to documentation in
+  English, therefore translated documentation is mostly not
+  up-to-date; however, this does not mean translated documentation is
+  inaccurate regarding current LilyPond version, it only means that
+  translated docmentation is not synced with documentation in English.
+  We do our best to keep translated documentation consistent with
+  current LilyPond syntax and features, and will update it per
+  section, when GDP processing of the corresponding section in English
+  is finished.
+</p>
+
+</body>
+</html>
diff --git a/buildscripts/translations-status.py b/buildscripts/translations-status.py
new file mode 100644 (file)
index 0000000..494b59b
--- /dev/null
@@ -0,0 +1,366 @@
+#!@PYTHON@
+
+"""
+USAGE: translations-status.py BUILDSCRIPT-DIR LOCALEDIR
+
+  This script must be run from Documentation/
+
+  Reads template files translations.template.html
+and for each LANG in LANGUAGES LANG/translations.template.html
+
+  Writes translations.html.in and for each LANG in LANGUAGES
+translations.LANG.html.in
+"""
+
+import sys
+import re
+import string
+import os
+import gettext
+
+def progress (str):
+    sys.stderr.write (str + '\n')
+
+progress ("translations-status.py")
+
+buildscript_dir = sys.argv[1]
+localedir = sys.argv[2]
+
+_doc = lambda s: s
+
+sys.path.append (buildscript_dir)
+import langdefs
+
+# load gettext messages catalogs
+translation = {}
+for l in langdefs.LANGUAGES:
+    if l.enabled and l.code != 'en':
+        translation[l.code] = gettext.translation('lilypond-doc', localedir, [l.code]).gettext
+
+def read_pipe (command):
+    pipe = os.popen (command)
+    output = pipe.read ()
+    if pipe.close ():
+        print "pipe failed: %(command)s" % locals ()
+    return output
+
+comments_re = re.compile (r'^@ignore\n(.|\n)*?\n@end ignore$|@c .*?$', re.M)
+space_re = re.compile (r'\s+', re.M)
+lilypond_re = re.compile (r'@lilypond({.*?}|(.|\n)*?\n@end lilypond$)', re.M)
+node_re = re.compile ('^@node .*?$', re.M)
+title_re = re.compile ('^@(top|chapter|(?:sub){0,2}section|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?) (.*?)$', re.M)
+include_re = re.compile ('^@include (.*?)$', re.M)
+
+committish_re = re.compile ('GIT [Cc]ommittish: ([a-f0-9]+)')
+translators_re = re.compile (r'^@c\s+Translators\s*:\s*(.*?)$', re.M | re.I)
+checkers_re = re.compile (r'^@c\s+Translation\s*checkers\s*:\s*(.*?)$', re.M | re.I)
+status_re = re.compile (r'^@c\s+Translation\s*status\s*:\s*(.*?)$', re.M | re.I)
+post_gdp_re = re.compile ('post.GDP', re.I)
+untranslated_node_str = 'UNTRANSLATED NODE: IGNORE ME'
+skeleton_str = '-- SKELETON FILE --'
+
+diff_cmd = 'git diff --no-color %(committish)s HEAD -- %(original)s | cat'
+
+format_table = {
+    'not translated': {'color':'d0f0f8', 'short':_doc ('no'), 'long':_doc ('not translated')},
+    'partially translated': {'color':'dfef77', 'short':_doc ('partially (%(p)d %%)'),
+                             'long':_doc ('partially translated (%(p)d %%)')},
+    'fully translated': {'color':'1fff1f', 'short':_doc ('yes'), 'long': _doc ('translated')},
+    'up to date': {'short':_doc ('yes'), 'long':_doc ('up to date')},
+    'outdated': {'short':_doc ('partially (%(p)d %%)'), 'long':_doc ('partially up-to-date (%(p)d %%)')},
+    'pre-GDP':_doc ('pre-GDP'),
+    'post-GDP':_doc ('post-GDP')
+}
+
+texi_level = {
+# (Unumbered/Numbered/Lettered, level)
+    'top': ('u', 0),
+    'unnumbered': ('u', 1),
+    'unnumberedsec': ('u', 2),
+    'unnumberedsubsec': ('u', 3),
+    'chapter': ('n', 1),
+    'section': ('n', 2),
+    'subsection': ('n', 3),
+    'appendix': ('l', 1)
+}
+
+appendix_number_trans = string.maketrans ('@ABCDEFGHIJKLMNOPQRSTUVWXY','ABCDEFGHIJKLMNOPQRSTUVWXYZ')
+
+class SectionNumber (object):
+    def __init__ (self):
+        self.__current_number = [0]
+        self.__type = 'n'
+
+    def __increase_last_index (self):
+        if isinstance (self.__current_number[-1], str):
+            self.__current_number[-1] = self.__current_number[-1].translate (appendix_number_trans)
+        else:
+            self.__current_number[-1] += 1
+
+    # ugh, current implementation is too naive:
+    # unnumbered stuff is really printed without number for @top only
+    def format (self):
+        if self.__current_number == [0] or self.__type == 'u':
+            return ''
+        return '.'.join ([str (i) for i in self.__current_number[1:]]) + ' '
+
+    def increase (self, (type, level)):
+        if level == 0:
+            self.__current_number = [0]
+        while level + 1 < len (self.__current_number):
+            del self.__current_number[-1]
+        if level + 1 > len (self.__current_number):
+            self.__type = type
+            if type == 'l':
+                self.__current_number.append ('@')
+            else:
+                self.__current_number.append (0)
+
+        if type == self.__type:
+            self.__increase_last_index ()
+        elif type == 'l' and level == 1:
+            self.__current_number[-1] = 'A'
+        else:
+            self.__current_number[-1] = 1
+        return self.format ()
+
+
+def percentage_color (percent):
+    p = percent / 100.0
+    if p < 0.33:
+        c = [hex (int (3 * p * b + (1 - 3 * p) * a))[2:] for (a, b) in [(0xff, 0xff), (0x5c, 0xa6), (0x5c, 0x4c)]]
+    elif p < 0.67:
+        c = [hex (int ((3 * p - 1) * b + (2 - 3 * p) * a))[2:] for (a, b) in [(0xff, 0xff), (0xa6, 0xff), (0x4c, 0x3d)]]
+    else:
+        c = [hex (int ((3 * p - 2) * b + 3 * (1 - p) * a))[2:] for (a, b) in [(0xff, 0x1f), (0xff, 0xff), (0x3d, 0x1f)]]
+    return ''.join (c)
+
+def line_word_count (tely_line):
+    if tely_line.startswith ('@'):
+        return 0
+    tely_line = comments_re.sub ('', tely_line)
+    return len (space_re.split (tely_line))
+
+def tely_word_count (tely_doc):
+    '''
+    Calculate word count of a Texinfo document node by node.
+
+    Take string tely_doc as an argument.
+    Return a list of integers.
+
+    Texinfo comments and @lilypond blocks are not included in word counts.
+    '''
+    tely_doc = comments_re.sub ('', tely_doc)
+    tely_doc = lilypond_re.sub ('', tely_doc)
+    nodes = node_re.split (tely_doc)
+    return [len (space_re.split (n)) for n in nodes]
+
+
+class TelyDocument (object):
+    def __init__ (self, filename):
+        self.filename = filename
+        self.contents = open (filename).read ()
+
+        ## record title and sectionning level of first Texinfo section
+        m = title_re.search (self.contents)
+        if m:
+            self.title = m.group (2)
+            self.level = texi_level [m.group (1)]
+        else:
+            self.title = 'Untitled'
+            self.level = ('u', 1)
+
+        included_files = [os.path.join (os.path.dirname (filename), t) for t in include_re.findall (self.contents)]
+        self.included_files = [p for p in included_files if os.path.exists (p)]
+
+    def print_title (self, section_number):
+        return section_number.increase (self.level) + self.title
+
+
+class TranslatedTelyDocument (TelyDocument):
+    def __init__ (self, filename, masterdocument, parent_translation=None):
+        TelyDocument.__init__ (self, filename)
+
+        self.masterdocument = masterdocument
+
+        ## record authoring information
+        m = translators_re.search (self.contents)
+        if m:
+            self.translators = [n.strip () for n in m.group (1).split (',')]
+        else:
+            self.translators = parent_translation.translators
+        m = checkers_re.search (self.contents)
+        if m:
+            self.checkers = [n.strip () for n in m.group (1).split (',')]
+        elif isinstance (parent_translation, TranslatedTelyDocument):
+            self.checkers = parent_translation.checkers
+        else:
+            self.checkers = []
+
+        ## check whether translation is pre- or post-GDP
+        m = status_re.search (self.contents)
+        if m:
+            self.post_gdp = bool (post_gdp_re.search (m.group (1)))
+        else:
+            self.post_gdp = False
+
+        ## record which parts (nodes) of the file are actually translated
+        self.partially_translated = not skeleton_str in self.contents
+        nodes = node_re.split (self.contents)
+        self.translated_nodes = [not untranslated_node_str in n for n in nodes]
+
+        ## calculate translation percentage
+        master_total_word_count = sum (masterdocument.word_count)
+        translation_word_count = sum ([masterdocument.word_count[k] * self.translated_nodes[k]
+                                       for k in range (min (len (masterdocument.word_count), len (self.translated_nodes)))])
+        self.translation_percentage = 100 * translation_word_count / master_total_word_count
+
+        ## calculate how much the file is outdated
+        m = committish_re.search (self.contents)
+        if not m:
+            sys.stderr.write ('error: ' + filename + \
+                                  ": no 'GIT committish: <hash>' found.\nPlease check " + \
+                                  'the whole file against the original in English, then ' + \
+                                  'fill in HEAD committish in the header.\n')
+            sys.exit (1)
+        diff = read_pipe (diff_cmd % {'committish':m.group (1), 'original':masterdocument.filename}).splitlines ()
+        insertions = sum ([line_word_count (l[1:]) for l in diff if l.startswith ('+') and not l.startswith ('+++')])
+        deletions = sum ([line_word_count (l[1:]) for l in diff if l.startswith ('-') and not l.startswith ('---')])
+        outdateness_percentage = 50.0 * (deletions + insertions) / (master_total_word_count + 0.5 * (deletions - insertions))
+        self.uptodate_percentage = 100 - int (outdateness_percentage)
+        if self.uptodate_percentage > 100:
+            alternative = 50
+            progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
+                          % (self.filename, self.uptodate_percentage, alternative))
+            self.uptodate_percentage = alternative
+        elif self.uptodate_percentage < 1:
+            alternative = 1
+            progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
+                          % (self.filename, self.uptodate_percentage, alternative))
+            self.uptodate_percentage = alternative
+
+    def completeness (self, formats=['long']):
+        if isinstance (formats, str):
+            formats = [formats]
+        p = self.translation_percentage
+        if p == 0:
+            status = 'not translated'
+        elif p == 100:
+            status = 'fully translated'
+        else:
+            status = 'partially translated'
+        return dict ([(f, format_table[status][f] % locals()) for f in formats])
+
+    def uptodateness (self, formats=['long']):
+        if isinstance (formats, str):
+            formats = [formats]
+        p = self.uptodate_percentage
+        if p == 100:
+            status = 'up to date'
+        else:
+            status = 'outdated'
+        l = {}
+        for f in formats:
+            if f == 'color':
+                l['color'] = percentage_color (p)
+            else:
+                l[f] = format_table[status][f] % locals ()
+        return l
+
+    def gdp_status (self, translation=lambda s: s):
+        if self.post_gdp:
+            return translation (format-table['post-GDP'])
+        else:
+            return translation (format-table['pre-GDP'])
+
+    def short_html_status (self):
+        s = '  <td>'
+        if self.partially_translated:
+            s += '<br>\n   '.join (self.translators) + '<br>\n'
+            if self.checkers:
+                s += '   <small>' + '<br>\n   '.join (self.checkers) + '</small><br>\n'
+
+        c = self.completeness (['long', 'color'])
+        s += '   <span style="background-color: #%(color)s">%(long)s</span><br>\n' % c
+
+        if self.partially_translated:
+            u = self.uptodateness (['long', 'color'])
+            s += '   <span style="background-color: #%(color)s">%(long)s</span><br>\n' % u
+
+        s += '  </td>\n'
+        return s
+
+    def html_status (self):
+        # TODO
+        return ''
+
+class MasterTelyDocument (TelyDocument):
+    def __init__ (self, filename, parent_translations=dict ([(lang, None) for lang in langdefs.LANGDICT.keys()])):
+        #print "init MasterTelyDocument %s" % filename
+        TelyDocument.__init__ (self, filename)
+        self.word_count = tely_word_count (self.contents)
+        translations = dict ([(lang, os.path.join (lang, filename)) for lang in langdefs.LANGDICT.keys()])
+        #print translations
+        self.translations = dict ([(lang, TranslatedTelyDocument (translations[lang], self, parent_translations.get (lang)))
+                                   for lang in langdefs.LANGDICT.keys() if os.path.exists (translations[lang])])
+        if self.translations:
+            self.includes = [MasterTelyDocument (f, self.translations) for f in self.included_files]
+        else:
+            self.includes = []
+
+    # TODO
+    def print_wc_priority (self):
+        return
+
+    def html_status (self, numbering=SectionNumber ()):
+        if self.title == 'Untitled' or not self.translations:
+            return ''
+        if self.level[1] == 0: # if self is a master document
+            s = '''<table align="center" border="2">
+ <tr align="center">
+  <th>%s</th>''' % self.print_title (numbering)
+            s += ''.join (['  <th>%s</th>\n' % l for l in self.translations.keys ()])
+            s += ' </tr>\n'
+            s += ' <tr align="left">\n  <td>Section titles<br>(%d)</td>\n' \
+                % sum (self.word_count)
+
+        else:
+            s = ' <tr align="left">\n  <td>%s<br>(%d)</td>\n' \
+                % (self.print_title (numbering), sum (self.word_count))
+
+        s += ''.join ([t.short_html_status () for t in self.translations.values ()])
+        s += ' </tr>\n'
+        s += ''.join ([i.html_status (numbering) for i in self.includes])
+
+        if self.level[1] == 0:
+            s += '</table>\n<p></p>\n'
+        return s
+
+progress ("Reading documents...")
+
+tely_files = read_pipe ("find -maxdepth 2 -name '*.tely'").splitlines ()
+master_docs = [MasterTelyDocument (filename) for filename in tely_files]
+master_docs = [doc for doc in master_docs if doc.translations]
+
+main_status_page = open ('translations.template.html').read ()
+
+## TODO
+#per_lang_status_pages = dict ([(l, open (os.path.join (l, 'translations.template.html')). read ())
+#                               for l in langdefs.LANGDICT.keys ()
+#                               if langdefs.LANGDICT[l].enabled])
+
+progress ("Generating status pages...")
+
+main_status_html = ' <p><i>Last updated %s</i></p>\n' % read_pipe ('LANG= date -u')
+main_status_html += '\n'.join ([doc.html_status () for doc in master_docs])
+
+html_re = re.compile ('<html>', re.I)
+end_body_re = re.compile ('</body>', re.I)
+
+main_status_page = html_re.sub ('''<html>
+<!-- This page is automatically generated by translation-status.py from
+translations.template.html; DO NOT EDIT !-->''', main_status_page)
+
+main_status_page = end_body_re.sub (main_status_html + '\n</body>', main_status_page)
+
+open ('translations.html.in', 'w').write (main_status_page)
index ea30561d839798e1ef284fb70adc009fda12db16..f7b95d447869b7b64dd8485cd790c121cb8e8fbf 100644 (file)
@@ -1 +1,15 @@
-#empty
+# cancel the rule that generates .n[o lilypond images t]exi files
+$(outdir)/%.nexi: $(ITELY_FILES) $(ITEXI_FILES)
+
+$(outdir)/%/index.html: $(outdir)/%.texi
+       mkdir -p $(dir $@)
+       -$(MAKEINFO) -P $(outdir) --output=$(outdir)/$* --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
+
+$(outdir)/%-big-page.html: $(outdir)/%.texi
+       -$(MAKEINFO) -P $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $< 
+
+$(outdir)/%.pdftexi: $(outdir)/%.texi doc-po
+       $(PYTHON) $(buildscript-dir)/texi-gettext.py $(buildscript-dir) $(top-build-dir)/Documentation/po/$(outdir) $(ISOLANG) $<
+
+$(outdir)/%.pdf: $(outdir)/%.pdftexi
+       cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) $(TEXINFO_PAPERSIZE_OPTION) $(notdir $*).pdftexi
index 496c1d9de411efa855706702a6e3e1e272159d78..cddd58615e0891b243b6c9e6934d287ddbd46d1e 100644 (file)
@@ -1,53 +1,11 @@
-# one assumes depth and ISOLANG are defined
-
-OUT_ITEXI_FILES = $(ITELY_FILES:%.itely=$(outdir)/%.itexi)
-
-TEXINFO_PAPERSIZE_OPTION= $(if $(findstring $(PAPERSIZE),a4),,-t @afourpaper)
-
-LILYPOND_BOOK_INCLUDES += \
-  -I$(top-src-dir)/Documentation/user \
-  -I$(top-build-dir)/Documentation/user/$(outdir)
-
 default:
 
-$(outdir)/%.nexi: $(ITELY_FILES) $(ITEXI_FILES)
-
-MAKEINFO_FLAGS += --force
-
-$(outdir)/%/index.html: $(outdir)/%.nexi $(outdir)/user-ln doc-po
-       mkdir -p $(dir $@)
-       -$(MAKEINFO) $(MAKEINFO_FLAGS) -I$(outdir) --output=$(outdir)/$* --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
-
-# we don't make the big page until the whole manual is translated
-# if this happens, we'll have to define local-WWW differently for this language
-#$(outdir)/lilypond.html: $(outdir)/lilypond.nexi
-#      -$(MAKEINFO) $(MAKEINFO_FLAGS) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $< 
-
-$(outdir)/%.pdf: $(outdir)/%.texi $(outdir)/user-ln doc-po
-       $(PYTHON) $(buildscript-dir)/texi-gettext.py $(buildscript-dir) $(top-build-dir)/Documentation/po/$(outdir) $(ISOLANG) $<
-       cd $(outdir); texi2pdf --batch $(TEXINFO_PAPERSIZE_OPTION) $(notdir $*).pdftexi
-
-TELY_FILES = $(call src-wildcard,*.tely)
-DEEP_HTML_FILES = $(TELY_FILES:%.tely=$(outdir)/%/index.html)
-PDF_FILES = $(TELY_FILES:%.tely=$(outdir)/%.pdf)
-
-local-WWW: $(DEEP_HTML_FILES) $(PDF_FILES)
+# BIG_PAGE_HTML_FILES is defined differently in each language makefile
+local-WWW: $(DEEP_HTML_FILES) $(PDF_FILES) doc-po $(BIG_PAGE_HTML_FILES)
        find $(outdir) -name '*.html' | xargs grep -L 'UNTRANSLATED NODE: IGNORE ME' | xargs $(PYTHON) $(buildscript-dir)/html-gettext.py $(buildscript-dir) $(top-build-dir)/Documentation/po/$(outdir) $(ISOLANG)
        find $(outdir) -name '*.html' | xargs grep -L --label="" 'UNTRANSLATED NODE: IGNORE ME' | sed 's!$(outdir)/!!g' | xargs $(PYTHON) $(buildscript-dir)/mass-link.py --prepend-suffix .$(ISOLANG) hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir) $(TELY_FILES:%.tely=%.pdf)
-       find $(outdir) \( -name 'lily-??????????.png' -o -name 'lily-??????????.ly' \) -a -not -type l | sed 's!$(outdir)/!!g' | xargs $(PYTHON) $(buildscript-dir)/mass-link.py hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir)
-
-LINKED_PNGS = henle-flat-gray.png baer-flat-gray.png lily-flat-bw.png
+       find $(outdir) \( -name 'lily-??????????.png' -o -name 'lily-??????????.ly' \) | sed 's!$(outdir)/!!g' | xargs $(PYTHON) $(buildscript-dir)/mass-link.py hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir)
 
-# makeinfo MUST have PNGs in cwd for info images to work
-# symlinking PNGs...
-# texi2pdf -I flag confuses pdfetex with .aux and other files
-# from English manual
-# symlinking lily-*...
-$(outdir)/user-ln: $(top-build-dir)/Documentation/user/$(outdir)
-       $(PYTHON) $(buildscript-dir)/mass-link.py symbolic $(top-build-dir)/Documentation/user/$(outdir) $(outdir) 'lily-*.pdf' 'lily-*.tex' 'lily-*.texi' 'lily-*.ly' 'lily-*.txt' 'lily-*.png' 'henle-flat-gray.*' 'baer-flat-gray.*' 'lily-flat-bw.*' 'context-example.*'
-       mkdir -p $(outdir)/lilypond
-       cd $(outdir)/lilypond && $(foreach i, $(LINKED_PNGS), ln -sf ../../$(depth)/Documentation/user/$(i) $(i) &&) true
-       touch -mr $(top-build-dir)/Documentation/user/$(outdir) $@
 
 local-WWW-clean: deep-WWW-clean
 
@@ -58,4 +16,4 @@ web-clean: clean
        $(MAKE) out=www local-WWW-clean
 
 doc-po:
-       $(MAKE) -C $(depth)/Documentation/po messages
+       $(MAKE) -C $(depth)/Documentation/po out=www messages
index ea30561d839798e1ef284fb70adc009fda12db16..96c8bec42da70c33dc97c063fb7eca7c22bf5837 100644 (file)
@@ -1 +1,21 @@
-#empty
+# ISOLANG must be defined
+
+LANGS = $(shell $(PYTHON) $(buildscript-dir)/langdefs.py)
+
+OUT_ITEXI_FILES = $(ITELY_FILES:%.itely=$(outdir)/%.itexi)
+
+DOCUMENTATION_INCLUDES = \
+  -I $(top-src-dir)/Documentation/user \
+  -I $(top-build-dir)/Documentation/user/$(outdir)
+DOCUMENTATION_INCLUDES += $(foreach lang, $(LANGS), -I $(top-build-dir)/Documentation/$(lang)/user/$(outdir))
+
+LILYPOND_BOOK_INCLUDES += $(DOCUMENTATION_INCLUDES)
+MAKEINFO_FLAGS += --force --enable-encoding $(DOCUMENTATION_INCLUDES)
+MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS)
+
+TEXI2PDF_FLAGS += --batch --tidy
+TEXI2PDF_FLAGS += $(DOCUMENTATION_INCLUDES)
+
+TELY_FILES = $(call src-wildcard,*.tely)
+DEEP_HTML_FILES = $(TELY_FILES:%.tely=$(outdir)/%/index.html)
+PDF_FILES = $(TELY_FILES:%.tely=$(outdir)/%.pdf)
index 21d6f44c676098967ebf755e3eb62ef1d8ab9817..23db86898596e024d27ebf73901e40ae26725240 100644 (file)
@@ -29,13 +29,13 @@ TODO:
 '''
 
 import stat
-import string
 import tempfile
 import commands
 import os
 import sys
 import re
 import md5
+import operator
 
 """
 @relocate-preamble@
@@ -69,7 +69,7 @@ authors = ('Jan Nieuwenhuizen <janneke@gnu.org>',
 ################################################################
 def exit (i):
     if global_options.verbose:
-        raise _ ('Exiting (%d)...') % i
+        raise Exception (_ ('Exiting (%d)...') % i)
     else:
         sys.exit (i)
 
@@ -88,7 +88,7 @@ def ps_page_count (ps_name):
     header = open (ps_name).read (1024)
     m = re.search ('\n%%Pages: ([0-9]+)', header)
     if m:
-        return string.atoi (m.group (1))
+        return int (m.group (1))
     return 0
 
 def warranty ():
@@ -779,14 +779,15 @@ def classic_lilypond_book_compatibility (key, value):
 
     return (None, None)
 
-def find_file (name):
+def find_file (name, raise_error=True):
     for i in global_options.include_path:
         full = os.path.join (i, name)
         if os.path.exists (full):
             return full
         
-    error (_ ("file not found: %s") % name + '\n')
-    exit (1)
+    if raise_error:
+        error (_ ("file not found: %s") % name + '\n')
+        exit (1)
     return ''
 
 def verbatim_html (s):
@@ -1006,7 +1007,7 @@ class Lilypond_snippet (Snippet):
                 option_list.append (key)
             else:
                 option_list.append (key + '=' + value)
-        option_string = string.join (option_list, ',')
+        option_string = ','.join (option_list)
 
         compose_dict = {}
         compose_types = [NOTES, PREAMBLE, LAYOUT, PAPER]
@@ -1062,14 +1063,10 @@ class Lilypond_snippet (Snippet):
         elif relative > 0:
             relative_quotes += "'" * relative
 
-        paper_string = string.join (compose_dict[PAPER],
-                      '\n  ') % override
-        layout_string = string.join (compose_dict[LAYOUT],
-                      '\n  ') % override
-        notes_string = string.join (compose_dict[NOTES],
-                      '\n  ') % vars ()
-        preamble_string = string.join (compose_dict[PREAMBLE],
-                       '\n  ') % override
+        paper_string = '\n  '.join (compose_dict[PAPER]) % override
+        layout_string = '\n  '.join (compose_dict[LAYOUT]) % override
+        notes_string = '\n  '.join (compose_dict[NOTES]) % vars ()
+        preamble_string = '\n  '.join (compose_dict[PREAMBLE]) % override
         padding_mm = global_options.padding_mm
         font_dump_setting = ''
         if FONTLOAD in self.option_dict:
@@ -1105,10 +1102,9 @@ class Lilypond_snippet (Snippet):
              
     def ly_is_outdated (self):
         base = self.basename ()
-        ly_file = base + '.ly'
-        tex_file = base + '.tex'
-        eps_file = base + '.eps'
-        systems_file = base + '-systems.tex'
+        ly_file = find_file (base + '.ly', raise_error=False)
+        tex_file = find_file (base + '.tex', raise_error=False)
+        systems_file = find_file (base + '-systems.tex', raise_error=False)
 
         if (os.path.exists (ly_file)
             and os.path.exists (systems_file)
@@ -1123,33 +1119,26 @@ class Lilypond_snippet (Snippet):
 
     def png_is_outdated (self):
         base = self.basename ()
-        # FIXME: refactor stupid OK stuff
-        ok = not self.ly_is_outdated ()
-        if global_options.format in (HTML, TEXINFO):
-            ok = ok and os.path.exists (base + '.eps')
-
-            page_count = 0
-            if ok:
-                page_count = ps_page_count (base + '.eps')
-
-            if page_count <= 1:
-                ok = ok and os.path.exists (base + '.png')
-             
-            elif page_count > 1:
-                for a in range (1, page_count + 1):
-                        ok = ok and os.path.exists (base + '-page%d.png' % a)
-                
-        return not ok
+        eps_file = find_file (base + '.eps', raise_error=False)
+        png_file = find_file (base + '.png', raise_error=False)
+        if not self.ly_is_outdated () and global_options.format in (HTML, TEXINFO):
+            if os.path.exists (eps_file):
+                page_count = ps_page_count (eps_file)
+                if page_count <= 1:
+                    return not os.path.exists (png_file)
+                else:
+                    return not reduce (operator.or_,
+                                       [find_file (base + '-page%d.png' % a, raise_error=False)
+                                        for a in range (1, page_count + 1)])
+        return True
     
     def texstr_is_outdated (self):
         if backend == 'ps':
             return 0
 
-        # FIXME: refactor stupid OK stuff
         base = self.basename ()
-        ok = self.ly_is_outdated ()
-        ok = ok and (os.path.exists (base + '.texstr'))
-        return not ok
+        return not (self.ly_is_outdated ()
+                    and find_file (base + '.texstr', raise_error=False))
 
     def filter_text (self):
         code = self.substring ('code')
@@ -1483,16 +1472,16 @@ def process_snippets (cmd, ly_snippets, texstr_snippets, png_snippets):
     # the --process=CMD switch is a bad idea
     # it is too generic for lilypond-book.
     if texstr_names:
-        my_system (string.join ([cmd, '--backend texstr',
-                                 'snippet-map.ly'] + texstr_names))
+        my_system (' '.join ([cmd, '--backend texstr',
+                              'snippet-map.ly'] + texstr_names))
         for l in texstr_names:
             my_system ('latex %s.texstr' % l)
 
     if ly_names:
         open ('snippet-names', 'wb').write ('\n'.join (['snippet-map.ly']
-                                                      + ly_names))
+                                                       + ly_names))
         
-        my_system (string.join ([cmd, 'snippet-names']))
+        my_system (' '.join ([cmd, 'snippet-names']))
 
 
 LATEX_INSPECTION_DOCUMENT = r'''
@@ -1648,7 +1637,7 @@ def write_if_updated (file_name, lines):
     try:
         f = open (file_name)
         oldstr = f.read ()
-        new_str = string.join (lines, '')
+        new_str = ''.join (lines)
         if oldstr == new_str:
             progress (_ ("%s is up to date.") % file_name)
             progress ('\n')
@@ -1837,7 +1826,7 @@ def main ():
                                       + ' --formats=%s --backend eps ' % formats)
 
     if global_options.process_cmd:
-        global_options.process_cmd += string.join ([(' -I %s' % ly.mkarg (p))
+        global_options.process_cmd += ' '.join ([(' -I %s' % ly.mkarg (p))
                               for p in global_options.include_path])
 
     if global_options.format in (TEXINFO, LATEX):