]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' of ssh+git://jneem@git.sv.gnu.org/srv/git/lilypond
authorJoe Neeman <joeneeman@gmail.com>
Tue, 12 Dec 2006 15:53:07 +0000 (17:53 +0200)
committerJoe Neeman <joeneeman@gmail.com>
Tue, 12 Dec 2006 15:53:07 +0000 (17:53 +0200)
48 files changed:
.gitignore
Documentation/GNUmakefile
Documentation/fr/GNUmakefile [new file with mode: 0644]
Documentation/fr/user/GNUmakefile [new file with mode: 0644]
Documentation/fr/user/advanced-notation.itely [new file with mode: 0644]
Documentation/fr/user/basic-notation.itely [new file with mode: 0644]
Documentation/fr/user/changing-defaults.itely [new file with mode: 0644]
Documentation/fr/user/cheatsheet.itely [new file with mode: 0644]
Documentation/fr/user/converters.itely [new file with mode: 0644]
Documentation/fr/user/instrument-notation.itely [new file with mode: 0644]
Documentation/fr/user/introduction.itely [new file with mode: 0644]
Documentation/fr/user/lilypond-book.itely [new file with mode: 0644]
Documentation/fr/user/lilypond.tely [new file with mode: 0644]
Documentation/fr/user/literature.itely [new file with mode: 0644]
Documentation/fr/user/non-music.itely [new file with mode: 0644]
Documentation/fr/user/notation-appendices.itely [new file with mode: 0644]
Documentation/fr/user/preface.itely [new file with mode: 0644]
Documentation/fr/user/programming-interface.itely [new file with mode: 0644]
Documentation/fr/user/putting.itely [new file with mode: 0644]
Documentation/fr/user/running.itely [new file with mode: 0644]
Documentation/fr/user/scheme-tutorial.itely [new file with mode: 0644]
Documentation/fr/user/spacing.itely [new file with mode: 0644]
Documentation/fr/user/templates.itely [new file with mode: 0644]
Documentation/fr/user/tutorial.itely [new file with mode: 0644]
Documentation/fr/user/tweaks.itely [new file with mode: 0644]
Documentation/fr/user/working.itely [new file with mode: 0644]
Documentation/po/GNUmakefile [new file with mode: 0644]
Documentation/po/fr.po [new file with mode: 0644]
Documentation/po/lilypond-doc.pot [new file with mode: 0644]
Documentation/topdocs/AUTHORS.texi
Documentation/topdocs/NEWS.tely
Documentation/user/notation-appendices.itely
GNUmakefile.in
THANKS
buildscripts/html-gettext.py [new file with mode: 0644]
buildscripts/mutopia-index.py
buildscripts/texi-langutils.py [new file with mode: 0644]
input/no-notation/midi-drums.ly
make/doclang-rules.make [new file with mode: 0644]
make/doclang-targets.make [new file with mode: 0644]
make/doclang-vars.make [new file with mode: 0644]
po/GNUmakefile
scm/backend-library.scm
scm/lily.scm
scm/ps-to-png.scm
scripts/lilypond-book.py
stepmake/bin/add-html-footer.py
stepmake/stepmake/podir-vars.make

index 8f7ab1020a102025ea5de098ea51aaa07ac76fae..2489b9e8d237bcd275fbeab48955c00807a30ece 100644 (file)
@@ -23,7 +23,7 @@ config.hh
 /scons.cache
 ?.*
 AUTHORS.txt
-GNUmakefile
+/GNUmakefile
 INSTALL.txt
 TAGS
 \#*
@@ -38,4 +38,4 @@ configure
 gcstat*.scm
 lily-[0-9][0-9][0-9]*
 out-scons
-tags
\ No newline at end of file
+tags
index 64605cb98022b12cf075372c82009251fcd9cc29..55f08098858a0d0a92d48d4bc06c7a1b54d18afd 100644 (file)
@@ -1,7 +1,8 @@
 depth = ..
 
 NAME = documentation
-SUBDIRS=user bibliography pictures topdocs misc
+LANGS = fr # don't enable unpolished or broken translations
+SUBDIRS=user bibliography pictures topdocs misc po $(LANGS)
 STEPMAKE_TEMPLATES=documentation texinfo tex
 LOCALSTEPMAKE_TEMPLATES=lilypond ly
 LILYPOND_BOOK_FLAGS=--extra-options '-e "(ly:set-option (quote internal-type-checking) \#t)"'
@@ -27,3 +28,19 @@ OUT_TXT_FILES = $(addprefix $(outdir)/, $(addsuffix .txt, $(README_TOP_FILES)))
 # cd $(outdir) rule gets bit hairy for --srcdir configure builds
 txt-to-html:
        $(PYTHON) $(step-bindir)/text2html.py $(OUT_TXT_FILES)
+
+ifneq ($(ISOLANG),)
+new-lang:
+       @if (( $$(file -b $(ISOLANG)) == directory )) 2>/dev/null; \
+       then echo "Error: $(ISOLANG) directory already exists. Exiting." ; \
+       exit 3 ; \
+       fi
+       mkdir -p $(ISOLANG)/user
+       cp fr/GNUmakefile $(ISOLANG)
+       cp fr/user/GNUmakefile $(ISOLANG)/user
+       sed -i -e 's/ISOLANG *= *fr/ISOLANG = $(ISOLANG)/' $(ISOLANG)/GNUmakefile $(ISOLANG)/user/GNUmakefile
+       $(PYTHON) $(depth)/buildscripts/texi-langutils.py -d $(outdir) -b "UNTRANSLATED NODE: IGNORE ME" -o doc.pot --skeleton --gettext ../user/lilypond.tely
+       mv $(outdir)/*.*tely $(ISOLANG)/user
+       msgmerge -U po/lilypond-doc.pot $(outdir)/doc.pot
+       cp po/lilypond-doc.pot po/$(ISOLANG).po
+endif
\ No newline at end of file
diff --git a/Documentation/fr/GNUmakefile b/Documentation/fr/GNUmakefile
new file mode 100644 (file)
index 0000000..296c720
--- /dev/null
@@ -0,0 +1,5 @@
+ISOLANG = fr
+depth = ../..
+SUBDIRS = user
+STEPMAKE_TEMPLATES = documentation
+include $(depth)/make/stepmake.make
diff --git a/Documentation/fr/user/GNUmakefile b/Documentation/fr/user/GNUmakefile
new file mode 100644 (file)
index 0000000..e492cfe
--- /dev/null
@@ -0,0 +1,5 @@
+ISOLANG = fr
+depth = ../../..
+LOCALSTEPMAKE_TEMPLATES = lilypond ly doclang
+include $(depth)/make/stepmake.make
+
diff --git a/Documentation/fr/user/advanced-notation.itely b/Documentation/fr/user/advanced-notation.itely
new file mode 100644 (file)
index 0000000..e1f82f0
--- /dev/null
@@ -0,0 +1,269 @@
+@node Advanced notation
+@chapter Advanced notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Text::
+* Preparing parts::
+* Orchestral music::
+* Contemporary notation::
+* Educational use::
+@end menu 
+@node Text
+@section Text
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Text scripts::
+* Text spanners::
+* Text marks::
+* Text markup::
+* Nested scores::
+* Overview of text markup commands::
+* Font selection::
+* New dynamic marks::
+@end menu 
+@node Text scripts
+@subsection Text scripts
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text spanners
+@subsection Text spanners
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text marks
+@subsection Text marks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text markup
+@subsection Text markup
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Nested scores
+@subsection Nested scores
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Overview of text markup commands
+@subsection Overview of text markup commands
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Font selection
+@subsection Font selection
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node New dynamic marks
+@subsection New dynamic marks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Preparing parts
+@section Preparing parts
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Multi measure rests::
+* Metronome marks::
+* Rehearsal marks::
+* Bar numbers::
+* Instrument names::
+* Instrument transpositions::
+* Ottava brackets::
+* Different editions from one source::
+@end menu 
+@node Multi measure rests
+@subsection Multi measure rests
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Metronome marks
+@subsection Metronome marks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Rehearsal marks
+@subsection Rehearsal marks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Bar numbers
+@subsection Bar numbers
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Instrument names
+@subsection Instrument names
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Instrument transpositions
+@subsection Instrument transpositions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Ottava brackets
+@subsection Ottava brackets
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Different editions from one source
+@subsection Different editions from one source
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Orchestral music
+@section Orchestral music
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Automatic part combining::
+* Hiding staves::
+* Quoting other voices::
+* Formatting cue notes::
+* Aligning to cadenzas::
+@end menu 
+@node Automatic part combining
+@subsection Automatic part combining
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Hiding staves
+@subsection Hiding staves
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Quoting other voices
+@subsection Quoting other voices
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Formatting cue notes
+@subsection Formatting cue notes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Aligning to cadenzas
+@subsection Aligning to cadenzas
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Contemporary notation
+@section Contemporary notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Polymetric notation::
+* Time administration::
+* Proportional notation::
+* Clusters::
+* Special noteheads::
+* Feathered beams::
+* Improvisation::
+* Selecting notation font size::
+@end menu 
+@node Polymetric notation
+@subsection Polymetric notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Time administration
+@subsection Time administration
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Proportional notation
+@subsection Proportional notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Clusters
+@subsection Clusters
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Special noteheads
+@subsection Special noteheads
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Feathered beams
+@subsection Feathered beams
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Improvisation
+@subsection Improvisation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Selecting notation font size
+@subsection Selecting notation font size
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Educational use
+@section Educational use
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Balloon help::
+* Blank music sheet::
+* Hidden notes::
+* Shape note heads::
+* Easy Notation note heads::
+* Analysis brackets::
+* Coloring objects::
+* Parentheses::
+@end menu 
+@node Balloon help
+@subsection Balloon help
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Blank music sheet
+@subsection Blank music sheet
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Hidden notes
+@subsection Hidden notes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Shape note heads
+@subsection Shape note heads
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Easy Notation note heads
+@subsection Easy Notation note heads
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Analysis brackets
+@subsection Analysis brackets
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Coloring objects
+@subsection Coloring objects
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Parentheses
+@subsection Parentheses
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/basic-notation.itely b/Documentation/fr/user/basic-notation.itely
new file mode 100644 (file)
index 0000000..d7c1bcc
--- /dev/null
@@ -0,0 +1,381 @@
+@node Basic notation
+@chapter Basic notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Pitches::
+* Rhythms::
+* Multiple notes at once::
+* Staff notation::
+* Connecting notes::
+* Expressive marks::
+* Repeats::
+@end menu 
+@node Pitches
+@section Pitches
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Normal pitches::
+* Accidentals::
+* Cautionary accidentals::
+* Micro tones::
+* Notes names in other languages::
+* Relative octaves::
+* Octave check::
+* Transpose::
+* Rests::
+* Skips::
+@end menu 
+@node Normal pitches
+@subsection Normal pitches
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Accidentals
+@subsection Accidentals
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Cautionary accidentals
+@subsection Cautionary accidentals
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Micro tones
+@subsection Micro tones
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Notes names in other languages
+@subsection Notes names in other languages
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Relative octaves
+@subsection Relative octaves
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Octave check
+@subsection Octave check
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Transpose
+@subsection Transpose
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Rests
+@subsection Rests
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Skips
+@subsection Skips
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Rhythms
+@section Rhythms
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Durations::
+* Augmentation dots::
+* Tuplets::
+* Scaling durations::
+* Bar check::
+* Barnumber check::
+* Automatic note splitting::
+@end menu 
+@node Durations
+@subsection Durations
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Augmentation dots
+@subsection Augmentation dots
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Tuplets
+@subsection Tuplets
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Scaling durations
+@subsection Scaling durations
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Bar check
+@subsection Bar check
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Barnumber check
+@subsection Barnumber check
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Automatic note splitting
+@subsection Automatic note splitting
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Multiple notes at once
+@section Multiple notes at once
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Chords::
+* Stems::
+* Basic polyphony::
+* Explicitly instantiating voices::
+* Collision Resolution::
+@end menu 
+@node Chords
+@subsection Chords
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Stems
+@subsection Stems
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Basic polyphony
+@subsection Basic polyphony
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Explicitly instantiating voices
+@subsection Explicitly instantiating voices
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Collision Resolution
+@subsection Collision Resolution
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Staff notation
+@section Staff notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Clef::
+* Key signature::
+* Time signature::
+* Partial measures::
+* Bar lines::
+* Unmetered music::
+* System start delimiters::
+* Staff symbol::
+* Writing music in parallel::
+@end menu 
+@node Clef
+@subsection Clef
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Key signature
+@subsection Key signature
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Time signature
+@subsection Time signature
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Partial measures
+@subsection Partial measures
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Bar lines
+@subsection Bar lines
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Unmetered music
+@subsection Unmetered music
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node System start delimiters
+@subsection System start delimiters
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Staff symbol
+@subsection Staff symbol
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Writing music in parallel
+@subsection Writing music in parallel
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Connecting notes
+@section Connecting notes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Ties::
+* Slurs::
+* Phrasing slurs::
+* Laissez vibrer ties::
+* Automatic beams::
+* Manual beams::
+* Grace notes::
+@end menu 
+@node Ties
+@subsection Ties
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Slurs
+@subsection Slurs
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Phrasing slurs
+@subsection Phrasing slurs
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Laissez vibrer ties
+@subsection Laissez vibrer ties
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Automatic beams
+@subsection Automatic beams
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Manual beams
+@subsection Manual beams
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Grace notes
+@subsection Grace notes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Expressive marks
+@section Expressive marks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Articulations::
+* Fingering instructions::
+* Dynamics::
+* Breath marks::
+* Trills::
+* Glissando::
+* Arpeggio::
+* Falls and doits::
+@end menu 
+@node Articulations
+@subsection Articulations
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fingering instructions
+@subsection Fingering instructions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Dynamics
+@subsection Dynamics
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Breath marks
+@subsection Breath marks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Trills
+@subsection Trills
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Glissando
+@subsection Glissando
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Arpeggio
+@subsection Arpeggio
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Falls and doits
+@subsection Falls and doits
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Repeats
+@section Repeats
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Repeat types::
+* Repeat syntax::
+* Repeats and MIDI::
+* Manual repeat commands::
+* Tremolo repeats::
+* Tremolo subdivisions::
+* Measure repeats::
+@end menu 
+@node Repeat types
+@subsection Repeat types
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Repeat syntax
+@subsection Repeat syntax
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Repeats and MIDI
+@subsection Repeats and MIDI
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Manual repeat commands
+@subsection Manual repeat commands
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Tremolo repeats
+@subsection Tremolo repeats
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Tremolo subdivisions
+@subsection Tremolo subdivisions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Measure repeats
+@subsection Measure repeats
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/changing-defaults.itely b/Documentation/fr/user/changing-defaults.itely
new file mode 100644 (file)
index 0000000..69342de
--- /dev/null
@@ -0,0 +1,127 @@
+@node Changing defaults
+@chapter Changing defaults
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Automatic notation::
+* Interpretation contexts::
+* The \override command::
+@end menu 
+@node Automatic notation
+@section Automatic notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Automatic accidentals::
+* Setting automatic beam behavior::
+@end menu 
+@node Automatic accidentals
+@subsection Automatic accidentals
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Setting automatic beam behavior
+@subsection Setting automatic beam behavior
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Interpretation contexts
+@section Interpretation contexts
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Contexts explained::
+* Creating contexts::
+* Changing context properties on the fly::
+* Modifying context plug-ins::
+* Layout tunings within contexts::
+* Changing context default settings::
+* Defining new contexts::
+@end menu 
+@node Contexts explained
+@subsection Contexts explained
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Creating contexts
+@subsection Creating contexts
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Changing context properties on the fly
+@subsection Changing context properties on the fly
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Modifying context plug-ins
+@subsection Modifying context plug-ins
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Layout tunings within contexts
+@subsection Layout tunings within contexts
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Changing context default settings
+@subsection Changing context default settings
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Defining new contexts
+@subsection Defining new contexts
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node The \override command
+@section The \override command
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Constructing a tweak::
+* Navigating the program reference::
+* Layout interfaces::
+* Determining the grob property::
+* Objects connected to the input::
+* \set vs. \override::
+* Difficult tweaks::
+@end menu 
+@node Constructing a tweak
+@subsection Constructing a tweak
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Navigating the program reference
+@subsection Navigating the program reference
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Layout interfaces
+@subsection Layout interfaces
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Determining the grob property
+@subsection Determining the grob property
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Objects connected to the input
+@subsection Objects connected to the input
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node \set vs. \override
+@subsection \set vs. \override
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Difficult tweaks
+@subsection Difficult tweaks
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/cheatsheet.itely b/Documentation/fr/user/cheatsheet.itely
new file mode 100644 (file)
index 0000000..24a63dc
--- /dev/null
@@ -0,0 +1,5 @@
+@node Cheat sheet
+@appendix Cheat sheet
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/converters.itely b/Documentation/fr/user/converters.itely
new file mode 100644 (file)
index 0000000..07b9123
--- /dev/null
@@ -0,0 +1,37 @@
+@node Converting from other formats
+@chapter Converting from other formats
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Invoking midi2ly::
+* Invoking etf2ly::
+* Invoking musicxml2ly::
+* Invoking abc2ly::
+* Generating LilyPond files::
+@end menu 
+@node Invoking midi2ly
+@section Invoking 
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Invoking etf2ly
+@section Invoking 
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Invoking musicxml2ly
+@section Invoking 
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Invoking abc2ly
+@section Invoking 
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Generating LilyPond files
+@section Generating LilyPond files
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/instrument-notation.itely b/Documentation/fr/user/instrument-notation.itely
new file mode 100644 (file)
index 0000000..bf8742d
--- /dev/null
@@ -0,0 +1,399 @@
+@node Instrument-specific notation
+@chapter Instrument-specific notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Piano music::
+* Chord names::
+* Vocal music::
+* Rhythmic music::
+* Guitar::
+* Bagpipe::
+* Ancient notation::
+* Other instrument specific notation::
+@end menu 
+@node Piano music
+@section Piano music
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Automatic staff changes::
+* Manual staff switches::
+* Pedals::
+* Staff switch lines::
+* Cross staff stems::
+@end menu 
+@node Automatic staff changes
+@subsection Automatic staff changes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Manual staff switches
+@subsection Manual staff switches
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Pedals
+@subsection Pedals
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Staff switch lines
+@subsection Staff switch lines
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Cross staff stems
+@subsection Cross staff stems
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Chord names
+@section Chord names
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Introducing chord names::
+* Chords mode::
+* Printing chord names::
+@end menu 
+@node Introducing chord names
+@subsection Introducing chord names
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Chords mode
+@subsection Chords mode
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Printing chord names
+@subsection Printing chord names
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Vocal music
+@section Vocal music
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Setting simple songs::
+* Entering lyrics::
+* Hyphens and extenders::
+* The Lyrics context::
+* Melismata::
+* Another way of entering lyrics::
+* Flexibility in placement::
+* Spacing lyrics::
+* More about stanzas::
+* Ambitus::
+* Other vocal issues::
+@end menu 
+@node Setting simple songs
+@subsection Setting simple songs
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Entering lyrics
+@subsection Entering lyrics
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Hyphens and extenders
+@subsection Hyphens and extenders
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node The Lyrics context
+@subsection The Lyrics context
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Melismata
+@subsection Melismata
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Another way of entering lyrics
+@subsection Another way of entering lyrics
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Flexibility in placement
+@subsection Flexibility in placement
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Lyrics to multiple notes of a melisma::
+* Divisi lyrics::
+* Switching the melody associated with a lyrics line::
+* Specifying melismata within the lyrics::
+* Lyrics independent of notes::
+@end menu 
+@node Lyrics to multiple notes of a melisma
+@subsubsection Lyrics to multiple notes of a melisma
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Divisi lyrics
+@subsubsection Divisi lyrics
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Switching the melody associated with a lyrics line
+@subsubsection Switching the melody associated with a lyrics line
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Specifying melismata within the lyrics
+@subsubsection Specifying melismata within the lyrics
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Lyrics independent of notes
+@subsubsection Lyrics independent of notes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Spacing lyrics
+@subsection Spacing lyrics
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node More about stanzas
+@subsection More about stanzas
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Ambitus
+@subsection Ambitus
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Other vocal issues
+@subsection Other vocal issues
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Rhythmic music
+@section Rhythmic music
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Showing melody rhythms::
+* Entering percussion::
+* Percussion staves::
+* Ghost notes::
+@end menu 
+@node Showing melody rhythms
+@subsection Showing melody rhythms
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Entering percussion
+@subsection Entering percussion
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Percussion staves
+@subsection Percussion staves
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Ghost notes
+@subsection Ghost notes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Guitar
+@section Guitar
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* String number indications::
+* Tablatures basic::
+* Non-guitar tablatures::
+* Banjo tablatures::
+* Fret diagrams::
+* Right hand fingerings::
+* Other guitar issues::
+@end menu 
+@node String number indications
+@subsection String number indications
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Tablatures basic
+@subsection Tablatures basic
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Non-guitar tablatures
+@subsection Non-guitar tablatures
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Banjo tablatures
+@subsection Banjo tablatures
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fret diagrams
+@subsection Fret diagrams
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Right hand fingerings
+@subsection Right hand fingerings
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Other guitar issues
+@subsection Other guitar issues
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Bagpipe
+@section Bagpipe
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Bagpipe definitions::
+* Bagpipe example::
+@end menu 
+@node Bagpipe definitions
+@subsection Bagpipe definitions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Bagpipe example
+@subsection Bagpipe example
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Ancient notation
+@section Ancient notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Ancient note heads::
+* Ancient accidentals::
+* Ancient rests::
+* Ancient clefs::
+* Ancient flags::
+* Ancient time signatures::
+* Ancient articulations::
+* Custodes::
+* Divisiones::
+* Ligatures::
+* Gregorian Chant contexts::
+* Mensural contexts::
+* Musica ficta accidentals::
+* Figured bass::
+@end menu 
+@node Ancient note heads
+@subsection Ancient note heads
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Ancient accidentals
+@subsection Ancient accidentals
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Ancient rests
+@subsection Ancient rests
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Ancient clefs
+@subsection Ancient clefs
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Ancient flags
+@subsection Ancient flags
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Ancient time signatures
+@subsection Ancient time signatures
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Ancient articulations
+@subsection Ancient articulations
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Custodes
+@subsection Custodes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Divisiones
+@subsection Divisiones
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Ligatures
+@subsection Ligatures
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* White mensural ligatures::
+* Gregorian square neumes ligatures::
+@end menu 
+@node White mensural ligatures
+@subsubsection White mensural ligatures
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Gregorian square neumes ligatures
+@subsubsection Gregorian square neumes ligatures
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Gregorian Chant contexts
+@subsection Gregorian Chant contexts
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Mensural contexts
+@subsection Mensural contexts
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Musica ficta accidentals
+@subsection Musica ficta accidentals
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Figured bass
+@subsection Figured bass
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Other instrument specific notation
+@section Other instrument specific notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Artificial harmonics (strings)::
+@end menu 
+@node Artificial harmonics (strings)
+@subsection Artificial harmonics (strings)
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/introduction.itely b/Documentation/fr/user/introduction.itely
new file mode 100644 (file)
index 0000000..bfb50cc
--- /dev/null
@@ -0,0 +1,43 @@
+@node Introduction
+@chapter Introduction
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Engraving::
+* Automated engraving::
+* What symbols to engrave?::
+* Music representation::
+* Example applications::
+* About this manual::
+@end menu 
+@node Engraving
+@section Engraving
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Automated engraving
+@section Automated engraving
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node What symbols to engrave?
+@section What symbols to engrave?
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Music representation
+@section Music representation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Example applications
+@section Example applications
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node About this manual
+@section About this manual
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/lilypond-book.itely b/Documentation/fr/user/lilypond-book.itely
new file mode 100644 (file)
index 0000000..a01caad
--- /dev/null
@@ -0,0 +1,71 @@
+@node LilyPond-book
+@chapter 
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* An example of a musicological document::
+* Integrating LaTeX and music::
+* Integrating Texinfo and music::
+* Integrating HTML and music::
+* Integrating DocBook and music::
+* Music fragment options::
+* Invoking lilypond-book::
+* Filename extensions::
+* Many quotes of a large score::
+* Inserting LilyPond output into other programs::
+@end menu 
+@node An example of a musicological document
+@section An example of a musicological document
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Integrating LaTeX and music
+@section Integrating La
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Integrating Texinfo and music
+@section Integrating Texinfo and music
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Integrating HTML and music
+@section Integrating HTML and music
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Integrating DocBook and music
+@section Integrating DocBook and music
+
+UNTRANSLATED NODE: IGNORE ME
+
+@unnumberedsubsec Common conventions
+@unnumberedsubsec Including a LilyPond file
+@unnumberedsubsec Including LilyPond code
+@unnumberedsubsec Processing the DocBook document
+@node Music fragment options
+@section Music fragment options
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Invoking lilypond-book
+@section Invoking 
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Filename extensions
+@section Filename extensions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Many quotes of a large score
+@section Many quotes of a large score
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Inserting LilyPond output into other programs
+@section Inserting LilyPond output into other programs
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/lilypond.tely b/Documentation/fr/user/lilypond.tely
new file mode 100644 (file)
index 0000000..6b65254
--- /dev/null
@@ -0,0 +1,184 @@
+\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
+@setfilename lilypond.info
+@settitle GNU LilyPond
+@iftex
+@afourpaper
+@end iftex
+
+@c don't remove this comment.
+@ignore
+@omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival
+@omfdescription User manual of the LilyPond music engraving system
+@omftype user manual
+@omfcategory Applications|Publishing
+@omflanguage French
+@end ignore
+
+@documentlanguage fr
+@documentencoding UTF-8
+
+@syncodeindex fn cp
+@syncodeindex ky cp
+@syncodeindex pg cp
+@syncodeindex tp cp
+@syncodeindex vr cp
+
+@finalout
+
+@titlepage
+@title GNU LilyPond
+@subtitle Le système de gravure musicale
+@author L'équipe de développement de LilyPond
+
+
+Copyright @copyright{} 1999--2006 by the authors
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end quotation
+
+@vskip 20pt
+
+@lilypond[raggedright]
+\score {
+    \context Lyrics {
+        \override Score.RehearsalMark #'self-alignment-X = #LEFT
+        \override Score.RehearsalMark #'font-size = #-2 
+        \mark #(ly:export (string-append
+             "(Pour LilyPond version " (lilypond-version) ")"))
+        s2
+     }
+     \layout {
+         indent = 0.0\pt
+     }
+}
+@end lilypond
+
+@end titlepage
+
+
+@ifnottex
+Ce fichier documente GNU LilyPond.
+
+Copyright @copyright{} 1999--2006 by the authors
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end quotation
+@end ifnottex
+
+
+@ifnottex
+@node Top
+@top GNU LilyPond --- The music typesetter
+@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
+
+Ce document est le manuel de l'utilisateur pour GNU LilyPond 2.8.X.
+@ifhtml
+(Allez au bas de la page pour voir le numéro de version exact).
+@end ifhtml
+
+@cindex web site
+@cindex URL
+
+Vous pouvez obtenir plus d'informations sur
+@uref{http://@/www@/.lilypond@/.org/}. Ce site contient des copies en
+ligne de ce manuel, ainsi qu'une documentation supplémentaire.
+
+@ignore
+@include dedication.itely
+@end ignore
+
+@menu
+Manuel d'apprentissage
+
+* Preface::
+* Introduction::                   quoi, pourquoi comment.
+* Tutorial::                       un tutoriel d'introduction.
+* Putting it all together::        explication plus détaillée des concepts de LilyPond.
+* Working on LilyPond projects::   traite de l'utilisation quotidienne.
+* Tweaking output::                introduction aux retouches de mise en forme.
+
+Manuel de référence
+
+* Basic notation::                 notation musicale standard.
+* Instrument-specific notation::
+* Advanced notation::              notation plus rarement utilisée.
+* Changing defaults::              retoucher la mise en forme.
+* Non-musical notation::           aspects autres que la notation musicale.
+* Spacing issues::                 mise en page de la musique sur le papier.
+* Interfaces for programmers::     utilisation avancée.
+
+Utilisation du programme
+
+* Running LilyPond::               mode d'emploi.
+* LilyPond-book::                  intégrer texte et musique.
+* Converting from other formats::  conversion vers le format source lilypond.
+
+Annexes
+
+* Literature list::                ouvrages de référence sur la notation musicale.
+* Scheme tutorial::                programmer au sein de LilyPond.
+* Notation manual tables::         tables et diagrammes.
+* Example templates::              modèles prêts à l'emploi.
+* Cheat sheet::                    résumé de la syntaxe de LilyPond.
+* GNU Free Documentation License:: licence de ce document.
+* LilyPond command index::
+* LilyPond index::
+
+@end menu
+@end ifnottex
+
+@contents
+
+
+@include macros.itexi
+@include preface.itely
+@include introduction.itely
+@include tutorial.itely
+@include putting.itely
+@include working.itely
+@include tweaks.itely
+
+
+@include basic-notation.itely
+@include instrument-notation.itely
+@include advanced-notation.itely
+@include changing-defaults.itely
+@include non-music.itely
+@include spacing.itely
+@include programming-interface.itely
+
+@include running.itely
+@include lilypond-book.itely
+@include converters.itely
+
+
+@include literature.itely
+@include scheme-tutorial.itely
+@include notation-appendices.itely
+@include templates.itely
+@include cheatsheet.itely
+@include fdl.itexi
+
+@node LilyPond command index
+@appendix LilyPond command index
+
+@printindex ky
+
+@node LilyPond index
+@appendix LilyPond index
+
+@printindex cp
+
+@bye
diff --git a/Documentation/fr/user/literature.itely b/Documentation/fr/user/literature.itely
new file mode 100644 (file)
index 0000000..1400e52
--- /dev/null
@@ -0,0 +1,5 @@
+@node Literature list
+@appendix Literature list
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/non-music.itely b/Documentation/fr/user/non-music.itely
new file mode 100644 (file)
index 0000000..38977ca
--- /dev/null
@@ -0,0 +1,115 @@
+@node Non-musical notation
+@chapter Non-musical notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Input files::
+* Titles and headers::
+* MIDI output::
+* Displaying LilyPond notation::
+* Skipping corrected music::
+@end menu 
+@node Input files
+@section Input files
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* File structure (introduction)::
+* Multiple scores in a book::
+* Extracting fragments of notation::
+* File structure::
+* A single music expression::
+* Including LilyPond files::
+* Text encoding::
+@end menu 
+@node File structure (introduction)
+@subsection File structure (introduction)
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Multiple scores in a book
+@subsection Multiple scores in a book
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Extracting fragments of notation
+@subsection Extracting fragments of notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node File structure
+@subsection File structure
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node A single music expression
+@subsection A single music expression
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Including LilyPond files
+@subsection Including LilyPond files
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text encoding
+@subsection Text encoding
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Titles and headers
+@section Titles and headers
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Creating titles::
+* Custom titles::
+@end menu 
+@node Creating titles
+@subsection Creating titles
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Custom titles
+@subsection Custom titles
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node MIDI output
+@section MIDI output
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Creating MIDI files::
+* MIDI block::
+* MIDI instrument names::
+@end menu 
+@node Creating MIDI files
+@subsection Creating MIDI files
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node MIDI block
+@subsection MIDI block
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node MIDI instrument names
+@subsection MIDI instrument names
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Displaying LilyPond notation
+@section Displaying LilyPond notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Skipping corrected music
+@section Skipping corrected music
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/notation-appendices.itely b/Documentation/fr/user/notation-appendices.itely
new file mode 100644 (file)
index 0000000..21642c5
--- /dev/null
@@ -0,0 +1,36 @@
+@node Notation manual tables
+@appendix Notation manual tables
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Chord name chart::
+* MIDI instruments::
+* List of colors::
+* The Feta font::
+@end menu 
+@node Chord name chart
+@appendixsec Chord name chart
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node MIDI instruments
+@appendixsec MIDI instruments
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node List of colors
+@appendixsec List of colors
+
+UNTRANSLATED NODE: IGNORE ME
+
+@subsubheading Normal colors
+@subsubheading X color names
+@subsubheading Color Names without a numerical suffix:
+@subsubheading Color names with a numerical suffix
+@subsubheading Grey Scale
+@node The Feta font
+@appendixsec The Feta font
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/preface.itely b/Documentation/fr/user/preface.itely
new file mode 100644 (file)
index 0000000..91a0b42
--- /dev/null
@@ -0,0 +1,5 @@
+@node Preface
+@unnumbered Preface
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/programming-interface.itely b/Documentation/fr/user/programming-interface.itely
new file mode 100644 (file)
index 0000000..2417124
--- /dev/null
@@ -0,0 +1,149 @@
+@node Interfaces for programmers
+@chapter Interfaces for programmers
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Music functions::
+* Programmer interfaces::
+* Building complicated functions::
+* Markup programmer interface::
+* Contexts for programmers::
+* Scheme procedures as properties::
+@end menu 
+@node Music functions
+@section Music functions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Overview of music functions::
+* Simple substitution functions::
+* Paired substitution functions::
+* Mathematics in functions::
+* Void functions::
+@end menu 
+@node Overview of music functions
+@subsection Overview of music functions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Simple substitution functions
+@subsection Simple substitution functions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Paired substitution functions
+@subsection Paired substitution functions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Mathematics in functions
+@subsection Mathematics in functions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Void functions
+@subsection Void functions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Programmer interfaces
+@section Programmer interfaces
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Input variables and Scheme::
+* Internal music representation::
+@end menu 
+@node Input variables and Scheme
+@subsection Input variables and Scheme
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Internal music representation
+@subsection Internal music representation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Building complicated functions
+@section Building complicated functions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Displaying music expressions::
+* Music properties::
+* Doubling a note with slurs (example)::
+* Adding articulation to notes (example)::
+@end menu 
+@node Displaying music expressions
+@subsection Displaying music expressions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Music properties
+@subsection Music properties
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Doubling a note with slurs (example)
+@subsection Doubling a note with slurs (example)
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Adding articulation to notes (example)
+@subsection Adding articulation to notes (example)
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Markup programmer interface
+@section Markup programmer interface
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Markup construction in Scheme::
+* How markups work internally::
+* New markup command definition::
+@end menu 
+@node Markup construction in Scheme
+@subsection Markup construction in Scheme
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node How markups work internally
+@subsection How markups work internally
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node New markup command definition
+@subsection New markup command definition
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Contexts for programmers
+@section Contexts for programmers
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Context evaluation::
+* Running a function on all layout objects::
+@end menu 
+@node Context evaluation
+@subsection Context evaluation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Running a function on all layout objects
+@subsection Running a function on all layout objects
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Scheme procedures as properties
+@section Scheme procedures as properties
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/putting.itely b/Documentation/fr/user/putting.itely
new file mode 100644 (file)
index 0000000..16d2054
--- /dev/null
@@ -0,0 +1,25 @@
+@node Putting it all together
+@chapter Putting it all together
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Extending the templates::
+* How LilyPond files work::
+* Score is a single musical expression::
+@end menu 
+@node Extending the templates
+@section Extending the templates
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node How LilyPond files work
+@section How LilyPond files work
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Score is a single musical expression
+@section Score is a single musical expression
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/running.itely b/Documentation/fr/user/running.itely
new file mode 100644 (file)
index 0000000..438c5bf
--- /dev/null
@@ -0,0 +1,51 @@
+@node Running LilyPond
+@chapter Running LilyPond
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Invoking lilypond::
+* Notes for the MacOS X app::
+* Updating files with convert-ly::
+* Reporting bugs::
+* Error messages::
+* Editor support::
+* Point and click::
+@end menu 
+@node Invoking lilypond
+@section Invoking lilypond
+
+UNTRANSLATED NODE: IGNORE ME
+
+@subsection Command line options
+@subsection Environment variables
+@node Notes for the MacOS X app
+@section Notes for the MacOS X app
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Updating files with convert-ly
+@section Updating with 
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Reporting bugs
+@section Reporting bugs
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Error messages
+@section Error messages
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Editor support
+@section Editor support
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Point and click
+@section Point and click
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/scheme-tutorial.itely b/Documentation/fr/user/scheme-tutorial.itely
new file mode 100644 (file)
index 0000000..d89fb34
--- /dev/null
@@ -0,0 +1,5 @@
+@node Scheme tutorial
+@appendix Scheme tutorial
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/spacing.itely b/Documentation/fr/user/spacing.itely
new file mode 100644 (file)
index 0000000..bb91198
--- /dev/null
@@ -0,0 +1,155 @@
+@node Spacing issues
+@chapter Spacing issues
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Paper and pages::
+* Music layout::
+* Vertical spacing::
+* Horizontal spacing::
+* Breaks::
+* Displaying spacing::
+@end menu 
+@node Paper and pages
+@section Paper and pages
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Paper size::
+* Page formatting::
+@end menu 
+@node Paper size
+@subsection Paper size
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Page formatting
+@subsection Page formatting
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Music layout
+@section Music layout
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Setting global staff size::
+* Score layout::
+@end menu 
+@node Setting global staff size
+@subsection Setting global staff size
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Score layout
+@subsection Score layout
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Vertical spacing
+@section Vertical spacing
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Vertical spacing inside a system::
+* Vertical spacing of piano staves::
+* Vertical spacing between systems::
+* Controlling spacing of individual systems::
+* Two-pass vertical spacing::
+@end menu 
+@node Vertical spacing inside a system
+@subsection Vertical spacing inside a system
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Vertical spacing of piano staves
+@subsection Vertical spacing of piano staves
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Vertical spacing between systems
+@subsection Vertical spacing between systems
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Controlling spacing of individual systems
+@subsection Controlling spacing of individual systems
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Two-pass vertical spacing
+@subsection Two-pass vertical spacing
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Horizontal spacing
+@section Horizontal Spacing
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Horizontal spacing overview::
+* New spacing area::
+* Changing horizontal spacing::
+* Line length::
+@end menu 
+@node Horizontal spacing overview
+@subsection Horizontal spacing overview
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node New spacing area
+@subsection New spacing area
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Changing horizontal spacing
+@subsection Changing horizontal spacing
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Line length
+@subsection Line length
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Breaks
+@section Breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Line breaking::
+* Page breaking::
+* Optimal page breaking::
+* Optimal page turning::
+@end menu 
+@node Line breaking
+@subsection Line breaking
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Page breaking
+@subsection Page breaking
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Optimal page breaking
+@subsection Optimal page breaking
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Optimal page turning
+@subsection Optimal page turning
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Displaying spacing
+@section Displaying spacing
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/templates.itely b/Documentation/fr/user/templates.itely
new file mode 100644 (file)
index 0000000..bd3c422
--- /dev/null
@@ -0,0 +1,65 @@
+@node Example templates
+@appendix Example templates
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Single staff::
+* Piano templates::
+* String quartet::
+* Vocal ensembles::
+* Ancient notation templates::
+* Jazz combo::
+* Lilypond-book templates::
+@end menu 
+@node Single staff
+@appendixsec Single staff
+
+UNTRANSLATED NODE: IGNORE ME
+
+@appendixsubsec Notes only
+@appendixsubsec Notes and lyrics
+@appendixsubsec Notes and chords
+@appendixsubsec Notes, lyrics, and chords.
+@node Piano templates
+@appendixsec Piano templates
+
+UNTRANSLATED NODE: IGNORE ME
+
+@appendixsubsec Solo piano
+@appendixsubsec Piano and melody with lyrics
+@appendixsubsec Piano centered lyrics
+@appendixsubsec Piano centered dynamics
+@node String quartet
+@appendixsec String quartet
+
+UNTRANSLATED NODE: IGNORE ME
+
+@appendixsubsec String quartet
+@appendixsubsec String quartet parts
+@node Vocal ensembles
+@appendixsec Vocal ensembles
+
+UNTRANSLATED NODE: IGNORE ME
+
+@appendixsubsec SATB vocal score
+@appendixsubsec SATB vocal score and automatic piano reduction
+@node Ancient notation templates
+@appendixsec Ancient notation templates
+
+UNTRANSLATED NODE: IGNORE ME
+
+@appendixsubsec Transcription of mensural music
+@appendixsubsec Gregorian transcription template
+@node Jazz combo
+@appendixsec Jazz combo
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Lilypond-book templates
+@appendixsec Lilypond-book templates
+
+UNTRANSLATED NODE: IGNORE ME
+
+@appendixsubsec LaTeX
+@appendixsubsec Texinfo
diff --git a/Documentation/fr/user/tutorial.itely b/Documentation/fr/user/tutorial.itely
new file mode 100644 (file)
index 0000000..b886942
--- /dev/null
@@ -0,0 +1,1476 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+
+@c TODO:
+@c   * more details about running lilypond; error messages,
+@c     compiling/viewing (emacs?)
+@c   * where to go from First steps+More basics?
+
+@c  wherever possible, do not include index entries here; the
+@c  index should point to stuff in the reference manual.  -gp
+
+@c Your first LilyPond score in 10 minutes?
+
+@node Tutorial   
+@chapter Tutorial
+
+Ce tutoriel commence par une courte introduction au langage utilisé
+par LilyPond pour représenter la musique.  Après ce premier contact,
+nous verrons comment produire une partition à imprimer.  Vous serez
+alors capable de créer et d'imprimer vos propres partitions.
+
+@ifhtml
+Beaucoup de gens apprennent à utiliser les programmes en les essayant
+et en bidouillant avec.  C'est également possible avec LilyPond.  Si
+vous cliquez sur une image dans la version HTML de ce manuel, vous
+verrez exactement le code LilyPond utilisé pour générer cette image.
+Essayez sur cette image
+
+@lilypond[fragment,quote,ragged-right,relative=2]
+c-\markup { \bold \huge { Click here.  } }
+@end lilypond
+@end ifhtml
+
+En copiant et en collant l'intégralité du code dans un fichier test,
+vous aurez un modèle comme base pour expérimenter.  Si vous
+apprenez de cette façon, vous aurez probablement envie d'imprimer ou
+de créer un lien vers
+@ifhtml
+la
+@end ifhtml
+@ref{Cheat sheet}, tableau qui répertorie les commandes usuelles
+pour une consultation rapide.
+
+@menu
+* First steps::                 
+* Running LilyPond for the first time::  
+* More about pitches::          
+* Entering ties::               
+* Automatic and manual beams::  
+* Octave entry::                
+* Music expressions explained::  
+* More staves::                 
+* Adding articulation marks to notes::  
+* Combining notes into chords::  
+* Advanced rhythmic commands::   
+* Commenting input files::      
+* Printing lyrics::             
+* A lead sheet::                
+* Adding titles::               
+* Single staff polyphony::      
+* Piano staves::                
+* Organizing larger pieces::    
+* An orchestral part::          
+* After the tutorial::
+@end menu
+
+
+@node First steps
+@section First steps
+
+Le premier exemple montre comment écrire la partition la plus
+élémentaire qui soit, une gamme (@rglos{scale}).  Une @rglos{note} peut
+être entrée en tapant son nom, de @samp{a} à @samp{g}.  Donc si vous
+entrez
+
+@example
+@{
+c d e f g a b
+@}
+@end example
+
+@noindent
+le résultat ressemblera à 
+
+@lilypond[fragment,quote,notime,relative=1]
+c d e f g a b
+@end lilypond
+
+@c DIV specific
+Il est aussi possible d'utiliser les noms de notes français @samp{do
+re mi fa sol la si}, en insérant au début du fichier la ligne
+@samp{\include "catalan.ly"}
+@c END DIV
+
+Tout extrait de code LilyPond doit être entouré d'une @{paire
+d'accolades@}.  Bien que la plupart des exemples de ce manuel n'en
+comportent pas, ne les oubliez pas dans vos compositions !
+
+De plus, de nombreux exemples utilisent le mode @code{relative}.  Ceci
+est expliqué à la section @ref{Octave entry} ; sachez dès à présent
+que certains exemples devraient être libellés sous la forme 
+@code{\relative @{ @emph{...musique...} @}}.
+De nombreux exemples ont aussi été compressés horizontalement pour
+économiser de la place, grace à la commande
+@code{\paper @{ragged-right = ##t @}}. 
+
+@cindex Case sensitive
+Enfin, LilyPond est sensible à la casse.  @code{ @{ c d e @} } est
+un code valide ; @code{ @{ C D E @} } produira un message d'erreur.
+
+La durée (@rglos{duration}) d'une note est spécifiée par un nombre
+qui suit le nom de cette note : @samp{1} pour une ronde (@rglos{whole
+note}), @samp{2} pour une blanche (@rglos{half note}), @samp{4} pour
+une noire (@rglos{quarter note}) et ainsi de suite.
+
+@example
+a1 a2 a4 a16 a32
+@end example
+
+@lilypond[fragment,quote,notime,relative=2]
+\set Staff.autoBeaming = ##f
+{ a1 a2 a4 a16 a32 s16_" " }
+@end lilypond
+
+Si aucune durée n'est spécifiée, la dernière durée entrée est utilisée
+pour les notes suivantes.  La valeur implicite de la première note
+dans les fichiers sources de la partition est la noire :
+
+@example
+a a8 a a2 a
+@end example
+
+@lilypond[fragment,quote,notime,relative=2]
+{ a a8 a a2 a s16_" " }
+@end lilypond
+
+
+On saisit un silence (@rglos{rest}) tout comme une note, mais avec le
+caractère @samp{r}
+
+@example
+r2 r4 r8 r16
+@end example
+
+@lilypond[fragment,quote,notime]
+r2 r4 r8 r16 s16_" "
+@end lilypond
+
+Ajouter un point @samp{.} après une durée permet d'obtenir une note
+pointée (@rglos{dotted note})
+
+@example
+a2. a4 a8. a16
+@end example
+
+@lilypond[fragment,quote,notime,relative=1]
+{ a2. a4 a8. a16 s16_" " }
+@end lilypond
+
+La métrique (@rglos{time signature}) est définie par
+la commande @code{\time}
+
+@example
+\time 3/4
+\time 6/8
+\time 4/4
+@end example
+
+@c A clef here may lead to confusion, remove it.
+@lilypond[fragment,quote]
+\override Staff.Clef #'transparent = ##t
+\time 3/4
+s4_" "
+\time 6/8
+s4_" "
+\time 4/4
+s16_" "
+@end lilypond
+
+La @rglos{clef} est définie par la commande @code{\clef}
+
+@example
+\clef treble
+\clef bass
+\clef alto
+\clef tenor
+@end example
+
+@lilypond[fragment,quote,notime]
+\clef treble
+s4_" "
+\clef bass
+s4_" "
+\clef alto
+s4_" "
+\clef tenor
+s16_" "
+@end lilypond
+
+Pensez bien à encadrer les notes et les commandes avec des accolades
+@code{@{@tie{}@dots{}@tie{}@}} pour pouvoir obtenir un résultat
+imprimable.
+
+@lilypond[fragment,quote,noindent,verbatim]
+\time 3/4
+\clef bass
+c2 e4 g2.
+f4 e d c2 r4
+@end lilypond
+
+Pour plus d'informations sur
+
+@quotation
+@table @asis
+@item la définition des hauteurs et des durées
+voir
+@ref{Pitches}, et @ref{Durations}.
+@item les clefs
+voir @ref{Clef}
+@item les silences
+voir @ref{Rests}.
+@item la métrique et autres commandes liées au temps
+voir @ref{Time signature}.
+@end table
+@end quotation
+
+
+@node Running LilyPond for the first time
+@section Running LilyPond for the first time
+
+@c cheesy title to avoid clash with chapter name.
+
+Dans la section précédente, nous avons vu quelles sortes d'éléments
+peut contenir un fichier LilyPond.  Dans cette section nous
+expliquerons quelles commandes exécuter et comment voir ou imprimer le
+résultat de LilyPond.  Si vous n'avez jamais utilisé
+LilyPond, voulez tester votre installation ou souhaitez compiler
+vous-même un fichier d'exemple, lisez cette section.
+
+@unnumberedsubsec MacOS X
+
+Si vous double-cliquez sur LilyPond.app, un fichier d'exemple sera
+ouvert.  Sauvegardez-le, par exemple, sous @file{test.ly} sur votre
+bureau, et traitez-le ensuite avec la commande du menu 
+@samp{Compile > Typeset File}.
+Le fichier PDF résultant est alors affiché sur votre écran.
+
+Prenez note que le premier démarrage prend une minute ou deux ,
+car toutes les polices systèmes doivent être d'abord analysées.
+
+@unnumberedsubsec Windows
+
+Sous Windows, démarrez un éditeur de texte @footnote{N'importe quel
+éditeur simple ou orienté programmation, qui prend en charge le
+codage de caractères UTF-8, fera l'affaire, par exemple
+Notepad.  N'utilisez pas de traitement de texte car ceux-ci insèrent
+des codes de formatage qui posent problème à LilyPond.} et saisissez
+
+@verbatim
+@{ c'4 e' g' @}
+@end verbatim
+
+Enregistrez le sur le bureau sous @file{test.ly} et vérifiez bien
+qu'il ne s'appelle pas @file{test.ly.TXT}.  Double-cliquez sur le
+fichier @file{test.ly} pour le traiter et afficher le fichier
+PDF résultant.
+
+
+@unnumberedsubsec Unix
+
+Commencez par ouvrir une fenêtre de terminal et un éditeur de
+texte.  Par exemple, vous pouvez ouvrir un xterm et exécuter
+@code{joe}.  @footnote{Des fichiers de macros pour les fans de VIM et un
+@code{LilyPond-mode} pour les fans d'Emacs existent.   S'ils ne sont pas
+encore installés, consultez le fichier @file{INSTALL.txt}.} Dans votre
+éditeur, entrez le texte suivant et sauvegardez le fichier sous
+@file{test.ly}
+
+@verbatim
+@{ c'4 e' g' @}
+@end verbatim
+
+@noindent
+Pour traiter @file{test.ly}, procédez comme ceci : 
+
+@example
+lilypond test.ly
+@end example
+
+@noindent
+Vous verrez quelque chose ressemblant à :
+
+@example
+lilypond test.ly
+GNU LilyPond 2.10.0
+Processing `test.ly'
+Parsing...
+Interpreting music... [1]
+Preprocessing graphical objects...
+Calculating line breaks... [2]
+Layout output to `test.ps'...
+Converting to `test.pdf'...
+@end example
+
+@c DIV specific
+Suivant votre installation, les messages peuvent être traduits.
+@c END DIV
+
+@cindex DVI file
+@cindex Viewing music
+@cindex xdvi
+@noindent
+Le résultat est le fichier @file{test.pdf} que vous pouvez imprimer ou
+visualiser avec les outils standards de votre système d'exploitation.
+@footnote{Si votre système ne dispose pas des outils nécessaires,
+vous pouvez essayer
+@uref{http://@/www@/.cs@/.wisc@/.edu/@/~ghost/,Ghostscript}, un
+programme pour voir et imprimer les fichiers PDF et PostScript.}
+
+@node More about pitches
+@section More about pitches 
+
+Un dièse (@rglos{sharp}) s'obtient en ajoutant @samp{is} au nom de la
+note, un bémol (@rglos{flat}) en ajoutant @samp{es}.  Comme vous pouvez
+vous y attendre, un double dièse ou double bémol est obtenu en
+ajoutant @samp{isis} ou @samp{eses}@footnote{Cette syntaxe est dérivée
+de la convention de dénomination des notes dans les langues nordiques
+et germaniques, comme l'allemand ou le hollandais.}.
+
+@c DIV specific
+Si vous utilisez la commande @samp{\include "catalan.ly"} pour entrer
+les noms de notes français au lieu des noms hollandais, il faudra
+ajouter un @samp{d} pour un dièse, et un @samp{b} pour un bèmol.  Le
+double dièse et le double bémol s'obtiennent en ajoutant
+respectivement @samp{dd} et @samp{bb}
+@c END DIV
+
+@example
+cis1 ees fisis aeses
+@end example
+
+@lilypond[fragment,quote,notime]
+\set Score.timing = ##f
+\transpose c c' { cis1 ees fisis aeses s16_" " }
+@end lilypond
+
+@cindex key signature, setting
+L'armure est déterminée par la commande @code{\key}, suivie d'une
+hauteur puis de @code{\major} (majeur) ou @code{\minor} (mineur) :
+
+@example
+\key d \major
+g1
+\key c \minor
+g
+@end example
+
+@lilypond[fragment,quote,notime,fragment]
+\key d \major
+g'1
+\key c \minor
+g'
+@end lilypond
+
+@noindent
+La combinaison de l'armure et des hauteurs de note -- y compris les
+altérations -- permet de déterminer dans quel cas afficher les
+altérations accidentelles.  Cette fonctionnalité est souvent source de
+confusion pour les nouveaux utilisateurs, aussi expliquons-la en
+détail.
+
+
+LilyPond fait une nette distinction entre le contenu musical et la
+mise en forme.  L'altération d'une note -- bémol, bécarre ou dièse --
+fait partie de sa hauteur, et donc du contenu musical.  La présence
+d'une altération accidentelle -- un @emph{signe} bémol, bécarre ou
+dièse -- devant la note correspondante est une question de mise en
+page.  La mise en page est un processus qui obéit à des règles ; les
+altérations accidentelles sont donc automatiquement imprimées suivant
+ces règles.  Les hauteurs de note appartiennent à la musique que vous
+entrez, et comme vous êtes sensé(e) entrer ce que vous voulez entendre,
+LilyPond, qui n'est chargé que de la gravure, ne les choisit pas à
+votre place.
+
+Dans cet exemple
+
+@lilypond[quote,notime,fragment]
+\key d \major
+d' cis' fis'
+@end lilypond
+
+@noindent
+si aucune note n'a d'altération accidentelle, vous devez
+cependant entrer
+
+@example
+\key d \major
+d cis fis
+@end example
+
+@noindent
+Le code @samp{d} ne veut pas dire « imprimer un point noir juste
+en-dessous de la portée. » Cela signifie plutôt : « une note ayant la
+hauteur ré naturel. » Avec l'armure de la bémol majeur, ce ré sera flanqué
+d'un bécarre accidentel.
+
+@lilypond[quote,notime,fragment,relative=1,verbatim]
+\key as \major
+d
+@end lilypond
+
+Ajouter explicitement toutes les altérations requiert un peu plus
+d'effort dans la phase de saisie, mais avec l'avantage que la
+transposition en sera facilitée.  De plus les altérations accidentelles
+peuvent être imprimées suivant plusieurs conventions.  Regardez
+@ref{Automatic accidentals} pour connaître la manière dont les
+altérations accidentelles peuvent être imprimées suivant différentes
+règles.
+
+
+Pour plus d'informations sur
+
+@quotation
+@table @asis
+@item les altérations accidentelles
+voir @ref{Automatic accidentals}.
+
+@item les armures
+voir @ref{Key signature}.
+@end table
+@end quotation
+
+@node Entering ties
+@section Entering ties
+
+@cindex tie
+Une liaison de prolongation@footnote{parfois aussi appelée liaison de
+tenue.} (@rglos{tie}) est créée en ajoutant un tilde @samp{~} à
+la suite de la première note liée.
+
+@lilypond[quote,notime,fragment,verbatim,relative=3]
+g4~ g a2~ a4
+@end lilypond
+
+Pour plus d'informations sur les liaisons de prolongation, voir @ref{Ties}.
+
+
+
+@node Automatic and manual beams
+@section Automatic and manual beams
+
+@cindex beams, by hand
+Toutes les ligatures@footnote{parfois appelées aussi liens de croches}
+(@rglos{beam}), sont dessinées automatiquement :
+
+@lilypond[quote,fragment,relative=2,verbatim]
+a8 ais d es r d
+@end lilypond
+
+@noindent
+Si l'emplacement des barres ne vous convient pas, vous pouvez
+les entrer à la main.  Marquer la première note à être attachée d'un 
+@samp{[} et la dernière d'un @samp{]}.
+
+@lilypond[quote,fragment,relative=2,verbatim]
+a8[ ais] d[ es r d]
+@end lilypond
+
+Pour plus d'informations sur les ligatures, voir @ref{Manual beams}.
+
+
+Voici comment se comportent ensemble armures, altérations
+accidentelles et liaisons :
+
+@lilypond[fragment,quote,noindent,line-width=50\staff-space,verbatim]
+\relative c'' {
+  \time 4/4
+  \key g \minor
+  \clef treble
+  r4 r8 a8 gis4 b
+  a8 d4.~ d e,8
+  fis4 fis8 fis8 eis4 a8 gis~
+  gis2 r2
+}
+@end lilypond
+
+@cindex accidentals
+
+
+@noindent
+Il y a plusieurs points intéressants à noter dans cet exemple.  Les
+barres de mesure et les liens de croches sont dessinés
+automatiquement.  Les sauts de ligne sont calculés automatiquement ;
+peu importe où se situent les sauts de ligne dans le fichier source.
+Enfin, l'ordre dans lequel la métrique, l'armure et les changements de
+clefs sont saisis n'a pas d'importance : dans la sortie imprimable,
+ils sont organisés suivant les conventions standard de notation.
+
+
+
+@node Octave entry
+@section Octave entry
+
+
+@c Tim wants to move this quotes example just before the: quotes-do not-work
+@c score, but we'd need to remove quotes from the other two (key and
+@c tie) examples...
+
+@c better to have this just before the `octaves are bad' snipped
+@c but we'd need to remove the ', from \key and tie
+Pour hausser une note d'une octave, ajoutez une apostrophe @code{'} au
+nom de la note ; pour la baisser d'une octave, ajoutez une virgule
+@code{,}.  Le do central (entre la clef de sol et la clef de fa) est
+@code{c'}
+
+@lilypond[quote,notime,fragment,verbatim]
+c'4 c'' c''' \clef bass c c,
+@end lilypond
+
+Un exemple de l'utilisation des apostrophes dans ce fragment de Mozart :
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\key a \major
+\time 6/8
+cis''8. d''16 cis''8 e''4 e''8
+b'8. cis''16 b'8 d''4 d''8
+@end lilypond
+
+@noindent
+Cet exemple montre qu'il faut beaucoup d'apostrophes pour écrire de la
+musique dans un registre aigu.  Ceci rend le fichier moins lisible, et
+c'est une source d'erreurs.  La solution consiste à utiliser le mode
+d'« octaves relatives ».  C'est la façon la plus commode de copier de
+la musique existante.
+
+En mode relatif, une note sans signe d'octaviation -- @code{'} ou
+@code{,} après le nom de la note -- est interprétée de manière à ce
+qu'elle soit la plus proche de la note précédente.  Par exemple,
+@samp{c f} monte, alors que @samp{c g} descend.
+
+Pour utiliser le mode relatif, ajoutez @code{\relative} avant le
+morceau de musique.  La première hauteur de note est choisie
+relativement en fonction du do central -- c'est-à-dire @code{c'}.
+
+
+
+@lilypond[quote,notime,fragment,verbatim]
+\relative {
+  c' f c g c
+}
+@end lilypond
+
+
+Puisque la plus grande partie de la musique utilise de petits
+intervalles, les pièces peuvent être écrites en mode relatif sans
+pratiquement utiliser de signes d'octavation.  L'exemple précédent est
+entré comme
+
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+  \key a \major
+  \time 6/8
+  cis'8. d16 cis8 e4 e8
+  b8. cis16 b8 d4 d8
+}
+@end lilypond
+
+@c needed better, maybe even redundant explanation
+@c   added another example below.
+@c grappig: Pa vond het heel logies, en slim toen-i eenmaal begreep.
+@c in eerste instantie drong het `relative' niet door zonder extra uitleg.
+Les intervalles plus grands qu'une quarte sont produits en ajoutant
+les signes d'octavation :
+
+@lilypond[quote,notime,verbatim,fragment]
+\relative c {
+  c'' f, f c' c g' c,
+}
+@end lilypond
+
+En résumé, apostrophes et virgules ne déterminent pas la hauteur
+absolue d'une note dans le mode @code{\relative}.  Au lieu de cela, la
+hauteur de la note est relative à la précédente, et modifier l'octave
+d'une seule note changera l'octave de toutes les notes suivantes.
+
+Pour plus d'information sur les octaves relatives, voir
+@ref{Relative octaves}, et @ref{Octave check}.
+
+
+@node Music expressions explained
+@section Music expressions explained
+
+
+Dans les fichiers source LilyPond, la musique est représentée par ce qu'on
+appelle des @emph{expressions musicales}.  Nous en avons déjà vu dans
+les quelques exemples précédents ; une seule note constitue une
+expression  musicale :
+
+@lilypond[fragment,quote,verbatim,relative=3]
+a4
+@end lilypond
+
+Mettre un groupe de notes entre accolades crée une nouvelle expression
+musicale :
+
+@lilypond[fragment,quote,verbatim,relative=3]
+{ a4 g4 }
+@end lilypond
+
+Placer une séquence d'expressions musicales -- des notes par exemple
+-- entre accolades signifie qu'elles doivent être jouées
+successivement, les unes après les autres.  Le résultat est une
+expression, qui peut elle-même être regroupée séquentiellement avec
+d'autres expressions.  Ici, l'expression de l'exemple précédent est
+combinée à deux notes :
+
+@lilypond[fragment,quote,verbatim,relative=3]
+{ { a4 g } f g }
+@end lilypond
+
+Cette technique est utile pour de la musique non monophonique.  Pour
+entrer une musique avec plusieurs voix ou plusieurs portées, nous
+pouvons aussi combiner en parallèle les expressions.  Deux voix qui doivent être
+jouées en même temps, sont entrées comme une combinaison simultanée de
+deux expression.  Une expression musicale « simultanée » est formée en
+entourant les expressions entre @code{<<} et @code{>>}.  Dans l'exemple
+suivant, trois expressions (contenant chacune deux notes distinctes) sont
+combinées simultanément.
+
+@lilypond[fragment,quote,verbatim,relative=3]
+<<
+  { a4 g }
+  { f e }
+  { d b }
+>>
+@end lilypond
+
+Ce mécanisme est similaire au formules mathématiques : une grosse formule
+est créée en assemblant plusieurs petites formules.  Ces types
+de formules, appelées expressions, ont une définition récursive, de
+telle sorte que vous pouvez fabriquer des expressions
+arbitrairement longues et complexes.  Par exemple,
+
+@example
+1
+
+1 + 2
+
+(1 + 2) * 3
+
+((1 + 2) * 3) / (4 * 5)
+@end example
+
+@cindex expression
+@cindex music expression
+Ceci est une suite d'expressions, où chacune est contenue dans la
+suivante.  Les expressions les plus simples sont les nombres, et de
+plus grandes expressions sont produites en combinant des expressions
+avec des opérateurs -- comme @samp{+}, @samp{*} et @samp{/} -- et des
+parenthèses.  Tout comme les expressions mathématiques, les expressions
+musicales peuvent être imbriquées avec une profondeur arbitraire, ce
+qui est nécessaire pour de la musique complexe comme des partitions
+polyphoniques.
+
+Notez que l'exemple suivant ne comporte qu'une seule portée,
+contrairement à l'exemple précédent qui contenait trois portées
+séparées.  C'est parce que l'exemple commence par une note seule.  Pour
+déterminer le nombre de portées, LilyPond regarde le premier élément
+qui n'est pas une accolade.  Si c'est une seule note, il y a une portée
+; si c'est une expression simultanée, il y aura plus d'une portée.
+
+@lilypond[fragment,quote,verbatim,relative=2]
+{
+  c <<c e>>
+  << { e f } { c <<b d>> } >>
+}
+@end lilypond
+
+Il est facile de s'y perdre avec des fichiers musicaux comprenant de nombreuses
+imbrications, tant pour leur création que pour leur maintenance.  Une
+convention permet d'éviter cette confusion : l'indentation.  Pour
+entrer un fichier avec de prfondes imbrications d'accolades et de
+crochets, il est d'usage d'avoir recours à une indentation qui indique
+le niveau de profondeur.  Formater la musique d'une telle manière en
+facilite la lecture et vous aide à insérer le bon nombre d'accolades
+fermant les expressions.  Par exemple,
+
+@example
+<<
+  @{
+    @dots{}
+  @}
+  @{
+    @dots{}
+  @}
+>>
+@end example
+
+Certains éditeurs disposent d'un mode spécifique pour saisir des
+fichiers LilyPond, qui peut vous aider à indenter le fichier source.
+Voir la section @ref{Editor support} pour plus d'informations.
+
+@node More staves
+@section More staves
+
+Pour créer plus d'une portée, chaque partie de la musique constituant
+une portée est entrée en la faisant précéder de
+@code{\new Staff}.  Ces éléments @code{Staff} sont combinés en parallèle avec
+@code{<<} et @code{>>}, comme
+
+@lilypond[quote,fragment,verbatim]
+<<
+  \new Staff { \clef treble c'' }
+  \new Staff { \clef bass c }
+>>
+@end lilypond
+
+
+La commande @code{\new} introduit un « contexte de notation ».  Un
+contexte de notation est un environnement dans lequel les événements
+musicaux -- comme les notes ou les commandes @code{\clef} -- sont
+interprétés.   Pour des pièces simples, ces contextes sont créés
+automatiquement.  Pour des pièces plus complexes, il est préférable de
+spécifier explicitement les contextes.  Cela assure que chaque fragment
+aura sa propre portée.
+
+Il existe différents types de contextes.  Les contextes @code{Staff}
+(portée), @code{Voice} (voix) et @code{Score} (partition) gèrent la
+notation de la mélodie, alors que @code{Lyrics} gère les paroles et
+@code{ChordNames} imprime le nom des accords.
+
+En termes de syntaxe, faire précéder une expression musicale de
+@code{\new} crée une plus grosse expression musicale.  En reprenant la
+comparaison, cela ressemble au signe « moins » en mathématiques.  La formule
+@math{(4+5)} est une expression, donc @math{-(4+5)} est une plus grosse
+expression.
+
+Nous pouvons maintenant écrire un morceau à deux portées :
+
+@c TODO: (c) status of this Paul McCartney (?) song (let's all stand together)
+
+@lilypond[fragment,quote,verbatim,ragged-right]
+\relative <<
+  \new Staff {
+    \time 3/4
+    \clef treble
+
+    e'2 d4 c2 b4 a8[ a]
+    b[ b] g[ g] a2.
+  }
+  \new Staff {
+     \clef bass
+     c,,2 e4 g2.
+     f4 e d c2.
+  }
+>>
+@end lilypond
+
+Pour plus d'informations sur les contextes, voir leur description à
+@ref{Interpretation contexts}.
+
+
+
+@node Adding articulation marks to notes
+@section Adding articulation marks to notes
+
+@cindex articulation
+@cindex accents
+@cindex staccato
+
+Les articulations standard peuvent être ajoutées à une note en
+utilisant un tiret (@samp{-}) et un caractère :
+
+@lilypond[fragment,quote,verbatim,relative=2]
+c-.  c-- c-> c-^ c-+ c-_
+@end lilypond
+
+@cindex fingering
+De la même manière, des indications de doigté peuvent être ajoutées à
+une note en utilisant un tiret (@samp{-}) et le chiffre à écrire :
+
+@lilypond[fragment,quote,verbatim,relative=2]
+c-3 e-5 b-2 a-1
+@end lilypond
+
+Articulations et doigtés sont habituellement placés automatiquement,
+mais vous pouvez spécifier une direction en utilisant @samp{^} (en haut)
+ou @samp{_} (en bas).  Vous pouvez aussi utiliser plusieurs articulations
+sur la même note.  Dans la plupart des cas, cependant, il est mieux de
+laisser LilyPond déterminer l'emplacement de l'articulation.
+
+@lilypond[fragment,quote,verbatim,relative=2]
+c_-^1 d^. f^4_2-> e^-_+
+@end lilypond
+
+Les signes de nuances sont obtenus en ajoutant à la note les noms des nuances,
+précédées d'un anti-slash @samp{\} :
+
+@lilypond[fragment,quote,verbatim,relative=2]
+c\ff c\mf
+@end lilypond
+
+@cindex dynamics
+@cindex decrescendo
+@cindex crescendo
+
+Crescendi et decrescendi débutent avec les commandes @code{\<} et
+@code{\>}.  Ils se terminent soit par une nuance d'arrivée, par exemple @code{\f},
+soit par la commande @code{\!} :
+
+@lilypond[fragment,quote,verbatim,relative=2]
+c2\< c2\ff\> c2 c2\!
+@end lilypond
+
+
+
+@cindex slur
+
+Une liaison d'articulation (@rglos{slur}) est une courbe tracée
+au-dessus de plusieurs notes.  Elle indique un jeu legato.  Les notes de
+départ et d'arrivée sont suivies respectivement par @samp{(} et
+@samp{)} :
+
+@lilypond[fragment,quote,fragment,relative=2,verbatim]
+d4( c16) cis( d e c cis d) e( d4)
+@end lilypond
+
+@cindex slurs versus ties
+Une liaison d'articulation ressemble à une liaison de
+prolongation (@rglos{tie}),
+mais a une signification différente.  Une liaison de prolongation fait
+durer la première note plus longtemps, et ne peut être utilisée que
+sur une paire de notes de même hauteur.  Ces deux types de liaison
+peuvent être imbriqués :
+
+@lilypond[quote,fragment,relative=2]
+c2~( c8 fis fis4 ~ fis2 g2)
+@end lilypond
+
+@cindex phrasing slurs
+Une liaison de phrasé peut être entrée avec @code{\(} et @code{\)},
+vous pouvez donc avoir simultanément une liaison d'articulation et une
+liaison de phrasé.  Vous ne pouvez pas avoir de liaisons d'articulation
+simultanées ni de liaisons de phrasé simultanées.
+
+@lilypond[quote,fragment,relative=2,verbatim]
+a8(\( ais b c) cis2 b'2 a4 cis, c\)
+@end lilypond
+
+
+Pour plus d'informations sur les
+
+@quotation
+@table @asis
+@item doigtés
+voir @ref{Fingering instructions}.
+@item articulations
+voir @ref{Articulations}.
+@item liaisons d'articulation
+voir @ref{Slurs}.
+@item liaisons de phrasé
+voir @ref{Phrasing slurs}.
+@item nuances
+voir @ref{Dynamics}.
+@end table
+@end quotation
+
+
+@node Combining notes into chords
+@section Combining notes into chords
+
+@cindex chords
+Des accords peuvent être produits en entourant les hauteurs de note
+avec les angles gauche et droit -- @samp{<} et @samp{>} --
+
+@lilypond[quote,relative=1,fragment,verbatim]
+r4 <c e g>4 <c f a>8
+@end lilypond
+
+
+Vous pouvez combiner les indications comme les liaisons et les liens de
+croches avec les accords.  Ils doivent cependant être placés en
+dehors des angles :
+
+@lilypond[quote,relative=1,fragment,verbatim]
+r4 <c e g>8[ <c f a>]~ <c f a>
+@end lilypond
+
+@example
+r4 <c e g>8\>( <c e g> <c e g> <c f a>\!)
+@end example
+
+@lilypond[quote,relative=1,fragment]
+\slurUp
+r4 <c e g>8\>( <c e g> <c e g> <c f a>\!)
+@end lilypond
+
+
+@node Advanced rhythmic commands
+@section Advanced rhythmic commands
+
+@cindex pickup
+@cindex anacruse
+@cindex partial measure
+Une levée est entrée avec le mot-clé @code{\partial}.  Il est suivi par
+une durée : @code{\partial 4} est une levée d'une noire et
+@code{\partial 8} d'une croche.
+
+@lilypond[quote,relative=2,verbatim,fragment]
+\partial 8
+f8 c2 d e
+@end lilypond
+
+@cindex tuplets
+@cindex triplets
+Les n-olets sont créés avec le mot-clef @code{\times}.  Celui-ci prend
+deux arguments : une fraction et une expression musicale.  La durée des
+notes de l'expression musicale est multipliée par la fraction.  Les
+notes d'un triolet durent les deux tiers du temps de leur notation
+réelle, cette fraction est donc de 2/3 pour les triolets :
+
+@lilypond[quote,relative=1,verbatim,fragment]
+\times 2/3 { f8 g a }
+\times 2/3 { c r c }
+@end lilypond
+
+@cindex grace notes
+@cindex acciaccatura
+Des notes d'ornement sont produites en préfixant une expression musicale
+avec le mot-clé @code{\appoggiatura} ou @code{\acciaccatura} :
+@cindex appoggiatura
+@cindex acciaccatura
+
+@lilypond[quote,relative=2,verbatim,fragment]
+c4 \appoggiatura b16 c4
+c4 \acciaccatura b16 c4
+@end lilypond
+
+@noindent
+
+Pour plus d'informations sur les
+
+@quotation
+@table @asis
+@item ornementations
+voir @ref{Grace notes},
+@item n-olets
+voir @ref{Tuplets},
+@item mesures incomplètes (levées)
+voir @ref{Partial measures}.
+@end table
+@end quotation
+
+
+@node Commenting input files
+@section Commenting input files
+
+@cindex comments
+@cindex line comment
+@cindex block comment
+Un commentaire est une remarque à l'attention du lecteur du fichier
+source ; il est ignoré lors de l'analyse du fichier, et n'a donc 
+aucun effet sur la sortie imprimable.  Il existe deux types
+de commentaires.  Le symbole pourcent @samp{%} introduit un commentaire
+d'une ligne : après @code{%}, le reste de la ligne est ignoré.  Un bloc de
+commentaire marque une section entière dans le fichier d'entrée.  Tout ce
+qui est à l'intérieur de @code{%@{} et @code{%@}} est ignoré.  Le fragment
+suivant montre les utilisations possible des commentaires :
+
+@example
+% mélodie de "ah vous dirais-je maman"
+  c4 c g' g a a g2
+
+%@{
+    Cette ligne, et les notes ci-dessous
+   sont ignorées, puisque'elles sont dans
+   un bloc de commentaire.
+
+    f f e e d d c2
+%@}
+@end example
+
+@c  TODO   post-2.6 reorg
+@c   This is good info, but I wouldn't call it a comment.  IMO it should
+@c   be moved somewhere else.
+
+@cindex versioning
+
+Il y a une déclaration particulière qui est une sorte de commentaire.  La
+déclaration @code{\version} stipule le numéro de la version de LilyPond
+pour laquelle le fichier a été écrit.  Pour donner à un fichier la version
+2.10.0, utilisez 
+
+@example
+\version "2.10.0"
+@end example
+
+@noindent
+Cette annotation permet de faciliter les prochaines mises à jour de
+LilyPond.  Les changements dans la syntaxe sont gérés avec un
+programme spécial, @file{convert-ly} -- voir
+@ref{Updating files with convert-ly} -- et il utilise @code{\version}
+pour déterminer les règles de conversion à appliquer au fichier.
+
+
+@node Printing lyrics
+@section Printing lyrics
+@cindex lyrics
+
+@c TODO: (c) status of the Queen fragment.
+
+@cindex Lyrics
+@cindex Songs
+Les paroles sont entrées en séparant chaque syllable par un espace :
+
+@example
+I want to break free
+@end example
+
+Voyons la mélodie
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\relative {
+  r4 c \times 2/3 { f g g }
+  \times 2/3 { g4( a2) }
+}
+@end lilypond
+
+Les paroles peuvent être associées à ces notes en les combinant avec le
+mot-clé @code{\addlyrics}
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+<<
+  \relative {
+    r4 c \times 2/3 { f g g }
+    \times 2/3 { g4( a2) }
+  }
+  \addlyrics { I want to break free }
+>>
+@end lilypond
+
+@cindex melisma
+@cindex extender line
+@c synonyms?
+Cette mélodie se termine sur un mélisme (@rglos{melisma}),
+c'est-à-dire qu'une seule syllable (« free ») correspond à plus d'une
+note.  Ceci est indiqué avec une @emph{ligne d'extension}.  Elle est
+entrée avec deux caractères souligné (@code{_}), c'est-à-dire
+
+@example
+@{ I want to break free __ @}
+@end example
+
+@lilypond[fragment,quote,ragged-right]
+<<
+  \relative {
+    r4 c \times 2/3 { f g g }
+    \times 2/3 { g4( a2) }
+  }
+  \addlyrics { I want to break free __ }
+>>
+@end lilypond
+
+De la même manière, les séparations syllabiques d'un mot peuvent être entrées
+avec deux tirets (@code{-}), ce qui produit un tiret centré entre les deux
+syllabes :
+
+@example
+A -- le gri -- a
+@end example
+
+@c no ragged-right here, because otherwise the hypens get lost.
+@lilypond[fragment,quote]
+<<
+  \relative {
+    \time 2/4
+    f4 f c' c
+  }
+  \addlyrics { A -- le gri -- a }
+>>
+@end lilypond
+
+Plus de possibilités, comme celle d'ajouter plusieurs lignes de
+paroles en dessous d'une même mélodie sont exposées à
+@ref{Vocal music}.
+
+
+@node A lead sheet
+@section A lead sheet
+
+@cindex Lead sheets
+@cindex chords
+@cindex chord names
+
+@c TODO: revise this, \chords { } is shorter and more intuitive.
+
+Dans la musique de variété, il est courant d'indiquer l'accompagnement
+par le nom des accords.  De tels accords peuvent être entrés comme les
+notes :
+
+@lilypond[quote,verbatim,ragged-right]
+\chordmode { c2 f4. g8 }
+@end lilypond
+
+@noindent
+Maintenant, chaque hauteur est lue comme la base de l'accord à la
+place de la note.  Ce mode est activé avec @code{\chordmode}.
+
+Les autres accords peuvent être créés en ajoutant des modifiacteurs après
+deux points.  L'exemple suivant montre quelques modificateurs usuels :
+
+@lilypond[quote,verbatim,ragged-right]
+\chordmode { c2 f4:m g4:maj7 gis1:dim7 }
+@end lilypond
+
+Pour la musique improvisée, les accords ne sont pas imprimés sur des
+portées mais comme des lignes à part entière.  Ceci s'obtient en
+utilisant @code{\chords} à la place de @code{\chordmode}.  La même
+syntaxe sera utilisée que dans le cas de@code{\chordmode}, mais le
+rendu des notes interviendra dans un contexte de @code{ChordNames},
+avec le résultat suivant
+
+@lilypond[quote,verbatim,ragged-right]
+\chords { c2 f4.:m g4.:maj7 gis8:dim7 }
+@end lilypond
+
+@cindex lead sheet
+Une fois assemblés, les accords, paroles et mélodie forment une
+partition de chanson :
+
+@example
+<<
+  \chords @{ @emph{les accords} @}
+  @emph{la mélodie}
+  \addlyrics @{ @emph{le texte} @}
+>>
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+<<
+  \chords { r2 c:sus4 f }
+  \relative {
+    r4 c' \times 2/3 { f g g }
+    \times 2/3 { g4( a2) }
+  }
+  \addlyrics { I want to break free __ }
+>>
+@end lilypond
+
+Une liste complète de modificateurs et d'autres options de
+mise en forme se trouve à la section @ref{Chords}.
+
+
+@node Adding titles
+@section Adding titles
+
+Les informations bibliographiques sont entrées dans un bloc séparé, le
+bloc d'en-tête (@code{\header}).  Le nom du morceau, son compositeur, etc., sont
+définis dans @code{\header@{@tie{}@dots{}@tie{}@}}.
+Le bloc @code{\header} est habituellement placé en début de fichier.
+Par exemple,
+
+@example
+\header @{
+  title = "Miniature"
+  composer = "Igor Stravinsky"
+@}
+
+@{ @dots{} @}
+@end example
+
+
+Quand le fichier est traité, le titre et le compositeur sont imprimés
+en haut de la partition.  Vous trouverez plus d'informations sur les
+titres à @ref{Creating titles}.
+
+
+@node Single staff polyphony
+@section Single staff polyphony
+
+@cindex polyphony
+@cindex multiple voices
+@cindex voices, more -- on a staff
+Quand différentes lignes mélodiques sont combinées sur une seule et
+même portée, elle sont imprimées comme des voix polyphoniques ; chaque
+voix a ses propre hampes@footnote{familièrement appelées queues de
+note.}, liaisons et ligatures, la voix supérieure ayant les hampes
+vers le haut, la voix inférieure vers le bas.
+
+Ce type de partition est réalisé en entrant chaque voix comme
+une séquence (avec @code{@{...@}}), en combinant simultanément les
+voix et en les séparant par  @code{\\} :
+
+@lilypond[quote,verbatim,relative=2,fragment]
+<< { a4 g2 f4~ f4 } \\
+   { r4 g4 f2 f4 } >>
+@end lilypond
+
+Pour l'écriture de musique polyphonique, les silences invisibles
+(spacer rests) s'avèrent bien pratiques ; ce sont des silences qui ne
+s'impriment pas.  Ils sont utiles pour remplir des voix qui,
+temporairement, ne jouent rien.  On peut voir ici le même exemple avec
+un silence espace invisible (@code{s}) à la place d'un silence normal
+(@code{r}) :
+
+@lilypond[quote,verbatim,relative=2,fragment]
+<< { a4 g2 f4~ f4 } \\
+   { s4 g4 f2 f4 } >>
+@end lilypond
+
+@noindent
+Encore une fois, ces expressions peuvent s'imbriquer arbitrairement :
+
+@lilypond[quote,fragment,verbatim,relative=2,fragment]
+<<
+  \new Staff <<
+    { a4 g2 f4~ f4 } \\
+    { s4 g4 f2 f4 }
+  >>
+  \new Staff <<
+    \clef bass
+    { <c g>1 ~ <c g>4 } \\
+    { e,,4 d e2 ~ e4}
+  >>
+>>
+@end lilypond
+
+Plus de fonctionnalités sur l'écriture polyphonique sont décrites à la
+section @ref{Basic polyphony} du manuel.
+
+
+@node Piano staves
+@section Piano staves
+
+@cindex staff switch, manual
+@cindex cross staff voice, manual
+La musique pour piano s'écrit avec deux portées reliées par une
+accolade.  Imprimer ce type de portée revient au même que dans l'exemple de
+musique polyphonique (@ref{More staves}),
+
+@example
+<< \new Staff @{ @dots{} @}
+   \new Staff @{ @dots{} @} >>
+@end example
+
+@noindent
+mais maintenant cette expression entière doit être interprétée dans un
+contexte @code{PianoStaff}
+
+@example
+\new PianoStaff << \new Staff @dots{} >>
+@end example
+
+Voici un petit exemple :
+
+@lilypond[quote,verbatim,relative=1,fragment]
+\new PianoStaff <<
+  \new Staff { \time 2/4 c4 c g' g }
+  \new Staff { \clef bass c,, c' e c }
+>>
+@end lilypond
+
+Plus d'informations sur le formatage de la musique pour piano sont
+données à @ref{Piano music}.
+
+
+@node Organizing larger pieces
+@section Organizing larger pieces
+
+Lorsqu'on combine tous les éléments étudiés plus haut pour produire
+des fichiers plus volumineux, les blocs @code{\score} deviennent
+beaucoup plus gros parce que les expressions musicales sont plus
+longues et, dans le cas des pièces polyphoniques, profondément
+imbriquées.  De telles expressions imposantes finissent par devenir peu
+maniables.
+
+En utilisant des variables, appelées également identificateurs, il est
+possible de découper des expressions musicales complexes.  Un identificateur
+se définit comme
+
+@example
+MusiqueToto = @{ @dots{} @}
+@end example
+
+@noindent
+Le contenu de l'expression musicale @code{MusiqueToto}, peut être
+utilisé plus loin en faisant précéder son nom d'un anti-slash, c'est-à-dire
+@code{\MusiqueToto}.  Dans l'exemple suivant, un motif de deux notes est
+répété deux fois en utilisant la substitution par une variable :
+
+@lilypond[quote,ragged-right,verbatim,nofragment]
+seufzer = {
+  e'4( dis'4)
+}
+{ \seufzer \seufzer }
+@end lilypond
+
+Le nom d'un identificateur ne doit comporter que des caractères
+alphabétiques non accentués, aucun nombre ni tiret.  On doit le définir
+en dehors de toute expression musicale.
+
+Il est possible d'utiliser des variables de types variés.
+Par exemple,
+
+@example
+largeur = 4.5\cm
+nom = "Wendy"
+papierACinq = \paper @{ paperheight = 21.0 \cm @}
+@end example
+
+En fonction de son contenu, l'identificateur peut être utilisé à différents
+endroits.  L'exemple suivant utilise la variable précédente :
+
+@example
+\paper @{
+  \papierACinq
+  line-width = \largeur
+@}
+@{ c4^\nom @}
+@end example
+
+Vous trouverez plus d'informations sur les usages possibles des
+identificateurs dans le manuel technique, section
+@ref{Input variables and Scheme}.
+@c fixme: the ref is too technical.
+
+
+@node An orchestral part
+@section An orchestral part
+
+Pour la musique d'orchestre, toute la musique est imprimée deux fois.
+Une partie séparée pour chaque pupitre, et un conducteur pour le chef.
+Recourir à des identifiants permet de s'épargner un double travail.  La
+musique est entrée une seule fois, et enregistrée dans une variable.  Le
+contenu de ces variables sera utilisé pour générer à la fois la
+partie d'instrument et le conducteur.
+
+Définir les notes dans un fichier à part est très pratique.  Par
+exemple, supposons que le fichier @file{musique-cor.ly} contienne la
+partie d'un duo cor/@/basson :
+
+@example
+notesCor = \relative c @{
+  \time 2/4
+  r4 f8 a cis4 f e d
+@}
+@end example
+
+@noindent
+Puis, une partie individuelle est créée en mettant ce qui suit dans
+un fichier
+
+@example
+\include "musique-cor.ly"
+\header @{
+  instrument = "Cor en fa"
+@}
+
+@{
+ \transpose f c' \notesCor
+@}
+@end example
+
+La ligne
+
+@example
+\include "musique-cor.ly"
+@end example
+
+@noindent
+indique à LilyPond de lire le contenu de @file{musique-cor.ly} à cet
+endroit dans le fichier, ainsi @code{notesCor} est défini pour ce qui
+suivra.  La commande @code{\transpose f@tie{}c'} indique que
+l'argument, en l'occurence @code{\notesCor}, doit être transposé d'une
+quinte ascendante.  Le son entendu @samp{fa} correspond à la note écrite
+@code{do'}, ce qui correspond bien à la transpostion d'un cor en
+fa.  La transposition peut être constatée dans la sortie suivante :
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+  \time 2/4
+  r4 f8 a cis4 f e d
+}
+@end lilypond
+
+Dans la musique d'ensemble, il arrive souvent qu'une des voix ne joue
+pas pendant plusieurs mesures.  Ceci est spécifié par un silence
+spécial, le silence multi-mesures (mesures à compter).  Il est saisi
+par une lettre capitale @samp{R} suivie d'une durée (@code{1}@tie{}pour une
+ronde, @code{2}@tie{}pour une blanche, etc.).  En multipliant la durée, on
+peut construire des silences plus longs.  Par exemple, ce silence dure
+3@tie{}mesures à 2/4
+
+@example
+R2*3
+@end example
+
+Pour l'impression de parties séparées, ces silences multi-mesures doivent être
+condensés.  On peut l'obtenir en réglant une variable d'exécution
+
+@example
+\set Score.skipBars = ##t
+@end example
+
+@noindent
+Cette commande règle la propriété @code{skipBars} dans le contexte
+@code{Score} à vrai (@code{##t}).  En faisant précéder la musique plus haut
+du silence et de cette option, on obtient
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+  \time 2/4
+  \set Score.skipBars = ##t
+  R2*3
+  r4 f8 a cis4 f e d
+}
+@end lilypond
+
+
+On crée le conducteur en combinant toutes les parties.  En
+supposant que l'autre voix soit dans l'expression @code{notesBasson} du fichier
+@file{musique-basson.ly}, le conducteur est composé des commandes
+
+@example
+\include "musique-cor.ly"
+\include "musique-basson.ly"
+
+<<
+  \new Staff \notesCor
+  \new Staff \notesBasson
+>>
+@end example
+
+@noindent
+donnant pour résultat
+
+@lilypond[quote,ragged-right]
+\relative c <<
+  \new Staff {
+    \time 2/4 R2*3
+    r4 f8 a cis4 f e d
+  }
+  \new Staff {
+    \clef bass
+    r4 d,8 f | gis4 c | b bes |
+    a8 e f4 | g d | gis f
+  }
+>>
+@end lilypond
+
+De plus amples informations sur la gestion des parties et conducteurs
+se trouvent dans le manuel de notation, section @ref{Orchestral music}.
+
+Le réglage des variables d'exécution (« propriétés ») est abordé dans
+@ref{Changing context properties on the fly}.
+
+
+@node After the tutorial
+@section After the tutorial
+
+Après avoir parcouru ce tutoriel, vous devriez vous essayer à écrire
+un morceau ou deux.  Commencez par copier l'un des modèles types (@ref{Example
+templates}) et ajoutez-y des notes.  Si vous voulez employer une notation que
+vous n'avez pas trouvé dans le tutoriel, consultez la référence de
+notation, en commençant par la @ref{Basic notation}.  Si vous désirez écrire pour un
+ensemble instrumental non couvert par les @ref{Example templates},
+lisez la section @ref{Extending the templates}.
+
+Après avoir écrit quelques pièces courtes, lisez les chapitres 3 à 5
+du manuel d'apprentissage.  Rien ne s'oppose à ce que vous consultiez dès à
+présent les autres chapitres, bien sûr ! Néanmoins, le reste du manuel
+de l'utilisateur part du principe que vous avez déjà bien assimilé la
+syntaxe de LilyPond.  Vous pouvez toujours survoler le reste du manuel,
+et y revenir plus tard après avoir acquis de l'expérience.
+
diff --git a/Documentation/fr/user/tweaks.itely b/Documentation/fr/user/tweaks.itely
new file mode 100644 (file)
index 0000000..ca79cde
--- /dev/null
@@ -0,0 +1,43 @@
+@node Tweaking output
+@chapter Tweaking output
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Moving objects::
+* Fixing overlapping notation::
+* Common tweaks::
+* Default files::
+* Fitting music onto fewer pages::
+* Advanced tweaks with Scheme::
+@end menu 
+@node Moving objects
+@section Moving objects
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fixing overlapping notation
+@section Fixing overlapping notation
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Common tweaks
+@section Common tweaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Default files
+@section Default files
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fitting music onto fewer pages
+@section Fitting music onto fewer pages
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Advanced tweaks with Scheme
+@section Advanced tweaks with Scheme
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/fr/user/working.itely b/Documentation/fr/user/working.itely
new file mode 100644 (file)
index 0000000..a05a3bc
--- /dev/null
@@ -0,0 +1,57 @@
+@node Working on LilyPond projects
+@chapter Working on LilyPond projects
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* Suggestions for writing LilyPond files::
+* Saving typing with identifiers and functions::
+* Style sheets::
+* Updating old files::
+* Troubleshooting (taking it all apart)::
+@end menu 
+@node Suggestions for writing LilyPond files
+@section Suggestions for writing LilyPond files
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu 
+* General suggestions::
+* Typesetting existing music::
+* Large projects::
+@end menu 
+@node General suggestions
+@subsection General suggestions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Typesetting existing music
+@subsection Typesetting existing music
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Large projects
+@subsection Large projects
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Saving typing with identifiers and functions
+@section Saving typing with identifiers and functions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Style sheets
+@section Style sheets
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Updating old files
+@section Updating old files
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Troubleshooting (taking it all apart)
+@section Troubleshooting (taking it all apart)
+
+UNTRANSLATED NODE: IGNORE ME
+
diff --git a/Documentation/po/GNUmakefile b/Documentation/po/GNUmakefile
new file mode 100644 (file)
index 0000000..2393929
--- /dev/null
@@ -0,0 +1,21 @@
+depth = ../..
+
+STEPMAKE_TEMPLATES=podir
+
+include $(depth)/make/stepmake.make
+
+doc-localedir=$(outdir)
+DOMAIN=lilypond-doc
+
+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
+
+po-update:
+       $(PYTHON) $(depth)/buildscripts/texi-langutils.py -d $(outdir) -o doc.pot --gettext ../$(depth)/Documentation/user/lilypond.tely
+       msgmerge -U lilypond-doc.pot $(outdir)/doc.pot
+       for i in $(CATALOGS); do \
+         msgmerge -U $$i.po lilypond-doc.pot; \
+       done
diff --git a/Documentation/po/fr.po b/Documentation/po/fr.po
new file mode 100644 (file)
index 0000000..990cb2a
--- /dev/null
@@ -0,0 +1,1186 @@
+# translation of fr.po to Français
+# translation of LilyPond documentation
+# Copyright (C) 2006 Han-Wen Nienhuys, Jan Nieuwenhuizen
+# This file is distributed under the same license as the lilypond package.
+#
+# John Mandereau <john.mandereau@free.fr>, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: fr\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-11-19 10:23+0100\n"
+"PO-Revision-Date: 2006-11-25 16:47+0100\n"
+"Last-Translator: John Mandereau <john.mandereau@free.fr>\n"
+"Language-Team: Français <lilypond-user-fr@gnu.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+msgid "Top"
+msgstr "Sommaire"
+
+msgid "GNU LilyPond --- The music typesetter"
+msgstr "GNU LilyPond -- le système de gravure musicale"
+
+msgid "LilyPond command index"
+msgstr "Index des commandes LilyPond"
+
+msgid "LilyPond index"
+msgstr "Index de LilyPond"
+
+msgid "Bugs"
+msgstr "Bogues"
+
+msgid "See also"
+msgstr "Voir aussi"
+
+msgid "Predefined commands"
+msgstr "Commandes prédéfinies"
+
+msgid "Commonly tweaked properties"
+msgstr "Propriétés couramment ajustées"
+
+msgid "Preface"
+msgstr "Préface"
+
+msgid "Introduction"
+msgstr "Introduction"
+
+msgid "Engraving"
+msgstr "Gravure"
+
+msgid "Automated engraving"
+msgstr "Gravure automatisée"
+
+msgid "What symbols to engrave?"
+msgstr "Quels signes graver ?"
+
+msgid "Music representation"
+msgstr "Représentation de la musique"
+
+msgid "Example applications"
+msgstr "Exemples d'applications"
+
+msgid "About this manual"
+msgstr "À propos de ce manuel"
+
+msgid "Tutorial"
+msgstr "Tutoriel"
+
+msgid "First steps"
+msgstr "Premiers pas"
+
+msgid "Running LilyPond for the first time"
+msgstr "Lancer LilyPond pour la première fois"
+
+msgid "MacOS X"
+msgstr "MacOS X"
+
+msgid "Windows"
+msgstr "Windows"
+
+msgid "Unix"
+msgstr "Unix"
+
+msgid "More about pitches"
+msgstr "Les hauteurs en détail"
+
+msgid "Entering ties"
+msgstr "Liaisons de durée"
+
+msgid "Automatic and manual beams"
+msgstr "Barres de ligature automatiques et manuelles"
+
+msgid "Octave entry"
+msgstr "Saisie des octaves"
+
+msgid "Music expressions explained"
+msgstr "Les expressions musicales en clair"
+
+msgid "More staves"
+msgstr "Plus de portées"
+
+msgid "Adding articulation marks to notes"
+msgstr "Ajout de signes d'articulation"
+
+msgid "Combining notes into chords"
+msgstr "Combinaison de notes en accords"
+
+msgid "Advanced rhythmic commands"
+msgstr "Commandes rythmiques avancées"
+
+msgid "Commenting input files"
+msgstr "Commenter un fichier source"
+
+msgid "Printing lyrics"
+msgstr "Imprimer des paroles"
+
+msgid "A lead sheet"
+msgstr "Partition d'une chanson"
+
+msgid "Adding titles"
+msgstr "Ajout de titres"
+
+msgid "Single staff polyphony"
+msgstr "Polyphonie sur une portée"
+
+msgid "Piano staves"
+msgstr "Double portée"
+
+msgid "Organizing larger pieces"
+msgstr "Comment organiser de plus grandes pièces"
+
+msgid "An orchestral part"
+msgstr "Partitions d'orchestre"
+
+msgid "After the tutorial"
+msgstr "Après le tutoriel"
+
+msgid "Putting it all together"
+msgstr ""
+
+msgid "Extending the templates"
+msgstr ""
+
+msgid "How LilyPond files work"
+msgstr ""
+
+msgid "Score is a single musical expression"
+msgstr ""
+
+msgid "Working on LilyPond projects"
+msgstr ""
+
+msgid "Suggestions for writing LilyPond files"
+msgstr ""
+
+msgid "General suggestions"
+msgstr ""
+
+msgid "Typesetting existing music"
+msgstr ""
+
+msgid "Large projects"
+msgstr ""
+
+msgid "Saving typing with identifiers and functions"
+msgstr ""
+
+msgid "Style sheets"
+msgstr ""
+
+msgid "Updating old files"
+msgstr ""
+
+msgid "Troubleshooting (taking it all apart)"
+msgstr ""
+
+msgid "Tweaking output"
+msgstr ""
+
+msgid "Moving objects"
+msgstr ""
+
+msgid "Fixing overlapping notation"
+msgstr ""
+
+msgid "Common tweaks"
+msgstr ""
+
+msgid "Default files"
+msgstr ""
+
+msgid "Fitting music onto fewer pages"
+msgstr ""
+
+msgid "Advanced tweaks with Scheme"
+msgstr ""
+
+msgid "Basic notation"
+msgstr ""
+
+msgid "Pitches"
+msgstr ""
+
+msgid "Normal pitches"
+msgstr ""
+
+msgid "Accidentals"
+msgstr ""
+
+msgid "Cautionary accidentals"
+msgstr ""
+
+msgid "Micro tones"
+msgstr ""
+
+msgid "Notes names in other languages"
+msgstr ""
+
+msgid "Relative octaves"
+msgstr ""
+
+msgid "Octave check"
+msgstr ""
+
+msgid "Transpose"
+msgstr ""
+
+msgid "Rests"
+msgstr ""
+
+msgid "Skips"
+msgstr ""
+
+msgid "Rhythms"
+msgstr ""
+
+msgid "Durations"
+msgstr ""
+
+msgid "Augmentation dots"
+msgstr ""
+
+msgid "Tuplets"
+msgstr ""
+
+msgid "Scaling durations"
+msgstr ""
+
+msgid "Bar check"
+msgstr ""
+
+msgid "Barnumber check"
+msgstr ""
+
+msgid "Automatic note splitting"
+msgstr ""
+
+msgid "Multiple notes at once"
+msgstr ""
+
+msgid "Chords"
+msgstr ""
+
+msgid "Stems"
+msgstr ""
+
+msgid "Basic polyphony"
+msgstr ""
+
+msgid "Explicitly instantiating voices"
+msgstr ""
+
+msgid "Collision Resolution"
+msgstr ""
+
+msgid "Staff notation"
+msgstr ""
+
+msgid "Clef"
+msgstr ""
+
+msgid "Key signature"
+msgstr ""
+
+msgid "Time signature"
+msgstr ""
+
+msgid "Partial measures"
+msgstr ""
+
+msgid "Bar lines"
+msgstr ""
+
+msgid "Unmetered music"
+msgstr ""
+
+msgid "System start delimiters"
+msgstr ""
+
+msgid "Staff symbol"
+msgstr ""
+
+msgid "Writing music in parallel"
+msgstr ""
+
+msgid "Connecting notes"
+msgstr ""
+
+msgid "Ties"
+msgstr ""
+
+msgid "Slurs"
+msgstr ""
+
+msgid "Phrasing slurs"
+msgstr ""
+
+msgid "Laissez vibrer ties"
+msgstr ""
+
+msgid "Automatic beams"
+msgstr ""
+
+msgid "Manual beams"
+msgstr ""
+
+msgid "Grace notes"
+msgstr ""
+
+msgid "Expressive marks"
+msgstr ""
+
+msgid "Articulations"
+msgstr ""
+
+msgid "Fingering instructions"
+msgstr ""
+
+msgid "Dynamics"
+msgstr ""
+
+msgid "Breath marks"
+msgstr ""
+
+msgid "Trills"
+msgstr ""
+
+msgid "Glissando"
+msgstr ""
+
+msgid "Arpeggio"
+msgstr ""
+
+msgid "Falls and doits"
+msgstr ""
+
+msgid "Repeats"
+msgstr ""
+
+msgid "Repeat types"
+msgstr ""
+
+msgid "Repeat syntax"
+msgstr ""
+
+msgid "Repeats and MIDI"
+msgstr ""
+
+msgid "Manual repeat commands"
+msgstr ""
+
+msgid "Tremolo repeats"
+msgstr ""
+
+msgid "Tremolo subdivisions"
+msgstr ""
+
+msgid "Measure repeats"
+msgstr ""
+
+msgid "Instrument-specific notation"
+msgstr ""
+
+msgid "Piano music"
+msgstr ""
+
+msgid "Automatic staff changes"
+msgstr ""
+
+msgid "Manual staff switches"
+msgstr ""
+
+msgid "Pedals"
+msgstr ""
+
+msgid "Staff switch lines"
+msgstr ""
+
+msgid "Cross staff stems"
+msgstr ""
+
+msgid "Chord names"
+msgstr ""
+
+msgid "Introducing chord names"
+msgstr ""
+
+msgid "Chords mode"
+msgstr ""
+
+msgid "Printing chord names"
+msgstr ""
+
+msgid "Vocal music"
+msgstr ""
+
+msgid "Setting simple songs"
+msgstr ""
+
+msgid "Entering lyrics"
+msgstr ""
+
+msgid "Hyphens and extenders"
+msgstr ""
+
+msgid "The Lyrics context"
+msgstr ""
+
+msgid "Melismata"
+msgstr ""
+
+msgid "Another way of entering lyrics"
+msgstr ""
+
+msgid "Flexibility in placement"
+msgstr ""
+
+msgid "Lyrics to multiple notes of a melisma"
+msgstr ""
+
+msgid "Divisi lyrics"
+msgstr ""
+
+msgid "Switching the melody associated with a lyrics line"
+msgstr ""
+
+msgid "Specifying melismata within the lyrics"
+msgstr ""
+
+msgid "Lyrics independent of notes"
+msgstr ""
+
+msgid "Spacing lyrics"
+msgstr ""
+
+msgid "More about stanzas"
+msgstr ""
+
+msgid "Ambitus"
+msgstr ""
+
+msgid "Other vocal issues"
+msgstr ""
+
+msgid "Rhythmic music"
+msgstr ""
+
+msgid "Showing melody rhythms"
+msgstr ""
+
+msgid "Entering percussion"
+msgstr ""
+
+msgid "Percussion staves"
+msgstr ""
+
+msgid "Ghost notes"
+msgstr ""
+
+msgid "Guitar"
+msgstr ""
+
+msgid "String number indications"
+msgstr ""
+
+msgid "Tablatures basic"
+msgstr ""
+
+msgid "Non-guitar tablatures"
+msgstr ""
+
+msgid "Banjo tablatures"
+msgstr ""
+
+msgid "Fret diagrams"
+msgstr ""
+
+msgid "Right hand fingerings"
+msgstr ""
+
+msgid "Other guitar issues"
+msgstr ""
+
+msgid "Bagpipe"
+msgstr ""
+
+msgid "Bagpipe definitions"
+msgstr ""
+
+msgid "Bagpipe example"
+msgstr ""
+
+msgid "Ancient notation"
+msgstr ""
+
+msgid "Ancient note heads"
+msgstr ""
+
+msgid "Ancient accidentals"
+msgstr ""
+
+msgid "Ancient rests"
+msgstr ""
+
+msgid "Ancient clefs"
+msgstr ""
+
+msgid "Ancient flags"
+msgstr ""
+
+msgid "Ancient time signatures"
+msgstr ""
+
+msgid "Ancient articulations"
+msgstr ""
+
+msgid "Custodes"
+msgstr ""
+
+msgid "Divisiones"
+msgstr ""
+
+msgid "Ligatures"
+msgstr ""
+
+msgid "White mensural ligatures"
+msgstr ""
+
+msgid "Gregorian square neumes ligatures"
+msgstr ""
+
+msgid "Gregorian Chant contexts"
+msgstr ""
+
+msgid "Mensural contexts"
+msgstr ""
+
+msgid "Musica ficta accidentals"
+msgstr ""
+
+msgid "Figured bass"
+msgstr ""
+
+msgid "Other instrument specific notation"
+msgstr ""
+
+msgid "Artificial harmonics (strings)"
+msgstr ""
+
+msgid "Advanced notation"
+msgstr ""
+
+msgid "Text"
+msgstr ""
+
+msgid "Text scripts"
+msgstr ""
+
+msgid "Text spanners"
+msgstr ""
+
+msgid "Text marks"
+msgstr ""
+
+msgid "Text markup"
+msgstr ""
+
+msgid "Nested scores"
+msgstr ""
+
+msgid "Overview of text markup commands"
+msgstr ""
+
+msgid "Font selection"
+msgstr ""
+
+msgid "New dynamic marks"
+msgstr ""
+
+msgid "Preparing parts"
+msgstr ""
+
+msgid "Multi measure rests"
+msgstr ""
+
+msgid "Metronome marks"
+msgstr ""
+
+msgid "Rehearsal marks"
+msgstr ""
+
+msgid "Bar numbers"
+msgstr ""
+
+msgid "Instrument names"
+msgstr ""
+
+msgid "Instrument transpositions"
+msgstr ""
+
+msgid "Ottava brackets"
+msgstr ""
+
+msgid "Different editions from one source"
+msgstr ""
+
+msgid "Orchestral music"
+msgstr ""
+
+msgid "Automatic part combining"
+msgstr ""
+
+msgid "Hiding staves"
+msgstr ""
+
+msgid "Quoting other voices"
+msgstr ""
+
+msgid "Formatting cue notes"
+msgstr ""
+
+msgid "Aligning to cadenzas"
+msgstr ""
+
+msgid "Contemporary notation"
+msgstr ""
+
+msgid "Polymetric notation"
+msgstr ""
+
+msgid "Time administration"
+msgstr ""
+
+msgid "Proportional notation"
+msgstr ""
+
+msgid "Clusters"
+msgstr ""
+
+msgid "Special noteheads"
+msgstr ""
+
+msgid "Feathered beams"
+msgstr ""
+
+msgid "Improvisation"
+msgstr ""
+
+msgid "Selecting notation font size"
+msgstr ""
+
+msgid "Educational use"
+msgstr ""
+
+msgid "Balloon help"
+msgstr ""
+
+msgid "Blank music sheet"
+msgstr ""
+
+msgid "Hidden notes"
+msgstr ""
+
+msgid "Shape note heads"
+msgstr ""
+
+msgid "Easy Notation note heads"
+msgstr ""
+
+msgid "Analysis brackets"
+msgstr ""
+
+msgid "Coloring objects"
+msgstr ""
+
+msgid "Parentheses"
+msgstr ""
+
+msgid "Changing defaults"
+msgstr ""
+
+msgid "Automatic notation"
+msgstr ""
+
+msgid "Automatic accidentals"
+msgstr ""
+
+msgid "Setting automatic beam behavior"
+msgstr ""
+
+msgid "Interpretation contexts"
+msgstr ""
+
+msgid "Contexts explained"
+msgstr ""
+
+msgid "Creating contexts"
+msgstr ""
+
+msgid "Changing context properties on the fly"
+msgstr ""
+
+msgid "Modifying context plug-ins"
+msgstr ""
+
+msgid "Layout tunings within contexts"
+msgstr ""
+
+msgid "Changing context default settings"
+msgstr ""
+
+msgid "Defining new contexts"
+msgstr ""
+
+msgid "The \\override command"
+msgstr ""
+
+msgid "Constructing a tweak"
+msgstr ""
+
+msgid "Navigating the program reference"
+msgstr ""
+
+msgid "Layout interfaces"
+msgstr ""
+
+msgid "Determining the grob property"
+msgstr ""
+
+msgid "Objects connected to the input"
+msgstr ""
+
+msgid "\\set vs. \\override"
+msgstr ""
+
+msgid "Difficult tweaks"
+msgstr ""
+
+msgid "Non-musical notation"
+msgstr ""
+
+msgid "Input files"
+msgstr ""
+
+msgid "File structure (introduction)"
+msgstr ""
+
+msgid "Multiple scores in a book"
+msgstr ""
+
+msgid "Extracting fragments of notation"
+msgstr ""
+
+msgid "File structure"
+msgstr ""
+
+msgid "A single music expression"
+msgstr ""
+
+msgid "Including LilyPond files"
+msgstr ""
+
+msgid "Text encoding"
+msgstr ""
+
+msgid "Titles and headers"
+msgstr ""
+
+msgid "Creating titles"
+msgstr ""
+
+msgid "Custom titles"
+msgstr ""
+
+msgid "MIDI output"
+msgstr ""
+
+msgid "Creating MIDI files"
+msgstr ""
+
+msgid "MIDI block"
+msgstr ""
+
+msgid "MIDI instrument names"
+msgstr ""
+
+msgid "Displaying LilyPond notation"
+msgstr ""
+
+msgid "Skipping corrected music"
+msgstr ""
+
+msgid "Spacing issues"
+msgstr ""
+
+msgid "Paper and pages"
+msgstr ""
+
+msgid "Paper size"
+msgstr ""
+
+msgid "Page formatting"
+msgstr ""
+
+msgid "Music layout"
+msgstr ""
+
+msgid "Setting global staff size"
+msgstr ""
+
+msgid "Score layout"
+msgstr ""
+
+msgid "Vertical spacing"
+msgstr ""
+
+msgid "Vertical spacing inside a system"
+msgstr ""
+
+msgid "Vertical spacing of piano staves"
+msgstr ""
+
+msgid "Vertical spacing between systems"
+msgstr ""
+
+msgid "Controlling spacing of individual systems"
+msgstr ""
+
+msgid "Two-pass vertical spacing"
+msgstr ""
+
+msgid "Horizontal spacing"
+msgstr ""
+
+msgid "Horizontal Spacing"
+msgstr ""
+
+msgid "Horizontal spacing overview"
+msgstr ""
+
+msgid "New spacing area"
+msgstr ""
+
+msgid "Changing horizontal spacing"
+msgstr ""
+
+msgid "Line length"
+msgstr ""
+
+msgid "Breaks"
+msgstr ""
+
+msgid "Line breaking"
+msgstr ""
+
+msgid "Page breaking"
+msgstr ""
+
+msgid "Optimal page breaking"
+msgstr ""
+
+msgid "Optimal page turning"
+msgstr ""
+
+msgid "Displaying spacing"
+msgstr ""
+
+msgid "Interfaces for programmers"
+msgstr ""
+
+msgid "Music functions"
+msgstr ""
+
+msgid "Overview of music functions"
+msgstr ""
+
+msgid "Simple substitution functions"
+msgstr ""
+
+msgid "Paired substitution functions"
+msgstr ""
+
+msgid "Mathematics in functions"
+msgstr ""
+
+msgid "Void functions"
+msgstr ""
+
+msgid "Programmer interfaces"
+msgstr ""
+
+msgid "Input variables and Scheme"
+msgstr ""
+
+msgid "Internal music representation"
+msgstr ""
+
+msgid "Building complicated functions"
+msgstr ""
+
+msgid "Displaying music expressions"
+msgstr ""
+
+msgid "Music properties"
+msgstr ""
+
+msgid "Doubling a note with slurs (example)"
+msgstr ""
+
+msgid "Adding articulation to notes (example)"
+msgstr ""
+
+msgid "Markup programmer interface"
+msgstr ""
+
+msgid "Markup construction in Scheme"
+msgstr ""
+
+msgid "How markups work internally"
+msgstr ""
+
+msgid "New markup command definition"
+msgstr ""
+
+msgid "Contexts for programmers"
+msgstr ""
+
+msgid "Context evaluation"
+msgstr ""
+
+msgid "Running a function on all layout objects"
+msgstr ""
+
+msgid "Scheme procedures as properties"
+msgstr ""
+
+msgid "Running LilyPond"
+msgstr ""
+
+msgid "Invoking lilypond"
+msgstr ""
+
+msgid "Command line options"
+msgstr ""
+
+msgid "Environment variables"
+msgstr ""
+
+msgid "Notes for the MacOS X app"
+msgstr ""
+
+msgid "Updating files with convert-ly"
+msgstr ""
+
+msgid "Updating with"
+msgstr ""
+
+msgid "Reporting bugs"
+msgstr ""
+
+msgid "Error messages"
+msgstr ""
+
+msgid "Editor support"
+msgstr ""
+
+msgid "Point and click"
+msgstr ""
+
+msgid "LilyPond-book"
+msgstr ""
+
+msgid "An example of a musicological document"
+msgstr ""
+
+msgid "Integrating LaTeX and music"
+msgstr ""
+
+msgid "Integrating La"
+msgstr ""
+
+msgid "Integrating Texinfo and music"
+msgstr ""
+
+msgid "Integrating HTML and music"
+msgstr ""
+
+msgid "Integrating DocBook and music"
+msgstr ""
+
+msgid "Common conventions"
+msgstr ""
+
+msgid "Including a LilyPond file"
+msgstr ""
+
+msgid "Including LilyPond code"
+msgstr ""
+
+msgid "Processing the DocBook document"
+msgstr ""
+
+msgid "Music fragment options"
+msgstr ""
+
+msgid "Invoking lilypond-book"
+msgstr ""
+
+msgid "Invoking"
+msgstr ""
+
+msgid "Filename extensions"
+msgstr ""
+
+msgid "Many quotes of a large score"
+msgstr ""
+
+msgid "Inserting LilyPond output into other programs"
+msgstr ""
+
+msgid "Converting from other formats"
+msgstr ""
+
+msgid "Invoking midi2ly"
+msgstr ""
+
+msgid "Invoking etf2ly"
+msgstr ""
+
+msgid "Invoking musicxml2ly"
+msgstr ""
+
+msgid "Invoking abc2ly"
+msgstr ""
+
+msgid "Generating LilyPond files"
+msgstr ""
+
+msgid "Literature list"
+msgstr ""
+
+msgid "Scheme tutorial"
+msgstr ""
+
+msgid "Notation manual tables"
+msgstr ""
+
+msgid "Chord name chart"
+msgstr ""
+
+msgid "MIDI instruments"
+msgstr ""
+
+msgid "List of colors"
+msgstr ""
+
+msgid "Normal colors"
+msgstr ""
+
+msgid "X color names"
+msgstr ""
+
+msgid "Color Names without a numerical suffix:"
+msgstr ""
+
+msgid "Color names with a numerical suffix"
+msgstr ""
+
+msgid "Grey Scale"
+msgstr ""
+
+msgid "The Feta font"
+msgstr ""
+
+msgid "Example templates"
+msgstr ""
+
+msgid "Single staff"
+msgstr ""
+
+msgid "Notes only"
+msgstr ""
+
+msgid "Notes and lyrics"
+msgstr ""
+
+msgid "Notes and chords"
+msgstr ""
+
+msgid "Notes, lyrics, and chords."
+msgstr ""
+
+msgid "Piano templates"
+msgstr ""
+
+msgid "Solo piano"
+msgstr ""
+
+msgid "Piano and melody with lyrics"
+msgstr ""
+
+msgid "Piano centered lyrics"
+msgstr ""
+
+msgid "Piano centered dynamics"
+msgstr ""
+
+msgid "String quartet"
+msgstr ""
+
+msgid "String quartet parts"
+msgstr ""
+
+msgid "Vocal ensembles"
+msgstr ""
+
+msgid "SATB vocal score"
+msgstr ""
+
+msgid "SATB vocal score and automatic piano reduction"
+msgstr ""
+
+msgid "Ancient notation templates"
+msgstr ""
+
+msgid "Transcription of mensural music"
+msgstr ""
+
+msgid "Gregorian transcription template"
+msgstr ""
+
+msgid "Jazz combo"
+msgstr ""
+
+msgid "Lilypond-book templates"
+msgstr ""
+
+msgid "LaTeX"
+msgstr ""
+
+msgid "Texinfo"
+msgstr ""
+
+msgid "Cheat sheet"
+msgstr ""
+
+msgid "GNU Free Documentation License"
+msgstr ""
+
+msgid "ADDENDUM: How to use this License for your documents"
+msgstr ""
+
+msgid "Up:"
+msgstr "Haut&nbsp;:"
+
+msgid "Next:"
+msgstr "Suivant&nbsp;:"
+
+msgid "Previous:"
+msgstr "Précédent&nbsp;:"
+
+msgid "Appendix"
+msgstr "Annexe"
+
diff --git a/Documentation/po/lilypond-doc.pot b/Documentation/po/lilypond-doc.pot
new file mode 100644 (file)
index 0000000..13cf8ce
--- /dev/null
@@ -0,0 +1,1184 @@
+# translation of LilyPond documentation
+# Copyright (C) 2006 Han-Wen Nienhuys, Jan Nieuwenhuizen
+# This file is distributed under the same license as the lilypond package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-11-19 10:23+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Top"
+msgstr ""
+
+msgid "GNU LilyPond --- The music typesetter"
+msgstr ""
+
+msgid "LilyPond command index"
+msgstr ""
+
+msgid "LilyPond index"
+msgstr ""
+
+msgid "Bugs"
+msgstr ""
+
+msgid "See also"
+msgstr ""
+
+msgid "Predefined commands"
+msgstr ""
+
+msgid "Commonly tweaked properties"
+msgstr ""
+
+msgid "Preface"
+msgstr ""
+
+msgid "Introduction"
+msgstr ""
+
+msgid "Engraving"
+msgstr ""
+
+msgid "Automated engraving"
+msgstr ""
+
+msgid "What symbols to engrave?"
+msgstr ""
+
+msgid "Music representation"
+msgstr ""
+
+msgid "Example applications"
+msgstr ""
+
+msgid "About this manual"
+msgstr ""
+
+msgid "Tutorial"
+msgstr ""
+
+msgid "First steps"
+msgstr ""
+
+msgid "Running LilyPond for the first time"
+msgstr ""
+
+msgid "MacOS X"
+msgstr ""
+
+msgid "Windows"
+msgstr ""
+
+msgid "Unix"
+msgstr ""
+
+msgid "More about pitches"
+msgstr ""
+
+msgid "Entering ties"
+msgstr ""
+
+msgid "Automatic and manual beams"
+msgstr ""
+
+msgid "Octave entry"
+msgstr ""
+
+msgid "Music expressions explained"
+msgstr ""
+
+msgid "More staves"
+msgstr ""
+
+msgid "Adding articulation marks to notes"
+msgstr ""
+
+msgid "Combining notes into chords"
+msgstr ""
+
+msgid "Advanced rhythmic commands"
+msgstr ""
+
+msgid "Commenting input files"
+msgstr ""
+
+msgid "Printing lyrics"
+msgstr ""
+
+msgid "A lead sheet"
+msgstr ""
+
+msgid "Adding titles"
+msgstr ""
+
+msgid "Single staff polyphony"
+msgstr ""
+
+msgid "Piano staves"
+msgstr ""
+
+msgid "Organizing larger pieces"
+msgstr ""
+
+msgid "An orchestral part"
+msgstr ""
+
+msgid "After the tutorial"
+msgstr ""
+
+msgid "Putting it all together"
+msgstr ""
+
+msgid "Extending the templates"
+msgstr ""
+
+msgid "How LilyPond files work"
+msgstr ""
+
+msgid "Score is a single musical expression"
+msgstr ""
+
+msgid "Working on LilyPond projects"
+msgstr ""
+
+msgid "Suggestions for writing LilyPond files"
+msgstr ""
+
+msgid "General suggestions"
+msgstr ""
+
+msgid "Typesetting existing music"
+msgstr ""
+
+msgid "Large projects"
+msgstr ""
+
+msgid "Saving typing with identifiers and functions"
+msgstr ""
+
+msgid "Style sheets"
+msgstr ""
+
+msgid "Updating old files"
+msgstr ""
+
+msgid "Troubleshooting (taking it all apart)"
+msgstr ""
+
+msgid "Tweaking output"
+msgstr ""
+
+msgid "Moving objects"
+msgstr ""
+
+msgid "Fixing overlapping notation"
+msgstr ""
+
+msgid "Common tweaks"
+msgstr ""
+
+msgid "Default files"
+msgstr ""
+
+msgid "Fitting music onto fewer pages"
+msgstr ""
+
+msgid "Advanced tweaks with Scheme"
+msgstr ""
+
+msgid "Basic notation"
+msgstr ""
+
+msgid "Pitches"
+msgstr ""
+
+msgid "Normal pitches"
+msgstr ""
+
+msgid "Accidentals"
+msgstr ""
+
+msgid "Cautionary accidentals"
+msgstr ""
+
+msgid "Micro tones"
+msgstr ""
+
+msgid "Notes names in other languages"
+msgstr ""
+
+msgid "Relative octaves"
+msgstr ""
+
+msgid "Octave check"
+msgstr ""
+
+msgid "Transpose"
+msgstr ""
+
+msgid "Rests"
+msgstr ""
+
+msgid "Skips"
+msgstr ""
+
+msgid "Rhythms"
+msgstr ""
+
+msgid "Durations"
+msgstr ""
+
+msgid "Augmentation dots"
+msgstr ""
+
+msgid "Tuplets"
+msgstr ""
+
+msgid "Scaling durations"
+msgstr ""
+
+msgid "Bar check"
+msgstr ""
+
+msgid "Barnumber check"
+msgstr ""
+
+msgid "Automatic note splitting"
+msgstr ""
+
+msgid "Multiple notes at once"
+msgstr ""
+
+msgid "Chords"
+msgstr ""
+
+msgid "Stems"
+msgstr ""
+
+msgid "Basic polyphony"
+msgstr ""
+
+msgid "Explicitly instantiating voices"
+msgstr ""
+
+msgid "Collision Resolution"
+msgstr ""
+
+msgid "Staff notation"
+msgstr ""
+
+msgid "Clef"
+msgstr ""
+
+msgid "Key signature"
+msgstr ""
+
+msgid "Time signature"
+msgstr ""
+
+msgid "Partial measures"
+msgstr ""
+
+msgid "Bar lines"
+msgstr ""
+
+msgid "Unmetered music"
+msgstr ""
+
+msgid "System start delimiters"
+msgstr ""
+
+msgid "Staff symbol"
+msgstr ""
+
+msgid "Writing music in parallel"
+msgstr ""
+
+msgid "Connecting notes"
+msgstr ""
+
+msgid "Ties"
+msgstr ""
+
+msgid "Slurs"
+msgstr ""
+
+msgid "Phrasing slurs"
+msgstr ""
+
+msgid "Laissez vibrer ties"
+msgstr ""
+
+msgid "Automatic beams"
+msgstr ""
+
+msgid "Manual beams"
+msgstr ""
+
+msgid "Grace notes"
+msgstr ""
+
+msgid "Expressive marks"
+msgstr ""
+
+msgid "Articulations"
+msgstr ""
+
+msgid "Fingering instructions"
+msgstr ""
+
+msgid "Dynamics"
+msgstr ""
+
+msgid "Breath marks"
+msgstr ""
+
+msgid "Trills"
+msgstr ""
+
+msgid "Glissando"
+msgstr ""
+
+msgid "Arpeggio"
+msgstr ""
+
+msgid "Falls and doits"
+msgstr ""
+
+msgid "Repeats"
+msgstr ""
+
+msgid "Repeat types"
+msgstr ""
+
+msgid "Repeat syntax"
+msgstr ""
+
+msgid "Repeats and MIDI"
+msgstr ""
+
+msgid "Manual repeat commands"
+msgstr ""
+
+msgid "Tremolo repeats"
+msgstr ""
+
+msgid "Tremolo subdivisions"
+msgstr ""
+
+msgid "Measure repeats"
+msgstr ""
+
+msgid "Instrument-specific notation"
+msgstr ""
+
+msgid "Piano music"
+msgstr ""
+
+msgid "Automatic staff changes"
+msgstr ""
+
+msgid "Manual staff switches"
+msgstr ""
+
+msgid "Pedals"
+msgstr ""
+
+msgid "Staff switch lines"
+msgstr ""
+
+msgid "Cross staff stems"
+msgstr ""
+
+msgid "Chord names"
+msgstr ""
+
+msgid "Introducing chord names"
+msgstr ""
+
+msgid "Chords mode"
+msgstr ""
+
+msgid "Printing chord names"
+msgstr ""
+
+msgid "Vocal music"
+msgstr ""
+
+msgid "Setting simple songs"
+msgstr ""
+
+msgid "Entering lyrics"
+msgstr ""
+
+msgid "Hyphens and extenders"
+msgstr ""
+
+msgid "The Lyrics context"
+msgstr ""
+
+msgid "Melismata"
+msgstr ""
+
+msgid "Another way of entering lyrics"
+msgstr ""
+
+msgid "Flexibility in placement"
+msgstr ""
+
+msgid "Lyrics to multiple notes of a melisma"
+msgstr ""
+
+msgid "Divisi lyrics"
+msgstr ""
+
+msgid "Switching the melody associated with a lyrics line"
+msgstr ""
+
+msgid "Specifying melismata within the lyrics"
+msgstr ""
+
+msgid "Lyrics independent of notes"
+msgstr ""
+
+msgid "Spacing lyrics"
+msgstr ""
+
+msgid "More about stanzas"
+msgstr ""
+
+msgid "Ambitus"
+msgstr ""
+
+msgid "Other vocal issues"
+msgstr ""
+
+msgid "Rhythmic music"
+msgstr ""
+
+msgid "Showing melody rhythms"
+msgstr ""
+
+msgid "Entering percussion"
+msgstr ""
+
+msgid "Percussion staves"
+msgstr ""
+
+msgid "Ghost notes"
+msgstr ""
+
+msgid "Guitar"
+msgstr ""
+
+msgid "String number indications"
+msgstr ""
+
+msgid "Tablatures basic"
+msgstr ""
+
+msgid "Non-guitar tablatures"
+msgstr ""
+
+msgid "Banjo tablatures"
+msgstr ""
+
+msgid "Fret diagrams"
+msgstr ""
+
+msgid "Right hand fingerings"
+msgstr ""
+
+msgid "Other guitar issues"
+msgstr ""
+
+msgid "Bagpipe"
+msgstr ""
+
+msgid "Bagpipe definitions"
+msgstr ""
+
+msgid "Bagpipe example"
+msgstr ""
+
+msgid "Ancient notation"
+msgstr ""
+
+msgid "Ancient note heads"
+msgstr ""
+
+msgid "Ancient accidentals"
+msgstr ""
+
+msgid "Ancient rests"
+msgstr ""
+
+msgid "Ancient clefs"
+msgstr ""
+
+msgid "Ancient flags"
+msgstr ""
+
+msgid "Ancient time signatures"
+msgstr ""
+
+msgid "Ancient articulations"
+msgstr ""
+
+msgid "Custodes"
+msgstr ""
+
+msgid "Divisiones"
+msgstr ""
+
+msgid "Ligatures"
+msgstr ""
+
+msgid "White mensural ligatures"
+msgstr ""
+
+msgid "Gregorian square neumes ligatures"
+msgstr ""
+
+msgid "Gregorian Chant contexts"
+msgstr ""
+
+msgid "Mensural contexts"
+msgstr ""
+
+msgid "Musica ficta accidentals"
+msgstr ""
+
+msgid "Figured bass"
+msgstr ""
+
+msgid "Other instrument specific notation"
+msgstr ""
+
+msgid "Artificial harmonics (strings)"
+msgstr ""
+
+msgid "Advanced notation"
+msgstr ""
+
+msgid "Text"
+msgstr ""
+
+msgid "Text scripts"
+msgstr ""
+
+msgid "Text spanners"
+msgstr ""
+
+msgid "Text marks"
+msgstr ""
+
+msgid "Text markup"
+msgstr ""
+
+msgid "Nested scores"
+msgstr ""
+
+msgid "Overview of text markup commands"
+msgstr ""
+
+msgid "Font selection"
+msgstr ""
+
+msgid "New dynamic marks"
+msgstr ""
+
+msgid "Preparing parts"
+msgstr ""
+
+msgid "Multi measure rests"
+msgstr ""
+
+msgid "Metronome marks"
+msgstr ""
+
+msgid "Rehearsal marks"
+msgstr ""
+
+msgid "Bar numbers"
+msgstr ""
+
+msgid "Instrument names"
+msgstr ""
+
+msgid "Instrument transpositions"
+msgstr ""
+
+msgid "Ottava brackets"
+msgstr ""
+
+msgid "Different editions from one source"
+msgstr ""
+
+msgid "Orchestral music"
+msgstr ""
+
+msgid "Automatic part combining"
+msgstr ""
+
+msgid "Hiding staves"
+msgstr ""
+
+msgid "Quoting other voices"
+msgstr ""
+
+msgid "Formatting cue notes"
+msgstr ""
+
+msgid "Aligning to cadenzas"
+msgstr ""
+
+msgid "Contemporary notation"
+msgstr ""
+
+msgid "Polymetric notation"
+msgstr ""
+
+msgid "Time administration"
+msgstr ""
+
+msgid "Proportional notation"
+msgstr ""
+
+msgid "Clusters"
+msgstr ""
+
+msgid "Special noteheads"
+msgstr ""
+
+msgid "Feathered beams"
+msgstr ""
+
+msgid "Improvisation"
+msgstr ""
+
+msgid "Selecting notation font size"
+msgstr ""
+
+msgid "Educational use"
+msgstr ""
+
+msgid "Balloon help"
+msgstr ""
+
+msgid "Blank music sheet"
+msgstr ""
+
+msgid "Hidden notes"
+msgstr ""
+
+msgid "Shape note heads"
+msgstr ""
+
+msgid "Easy Notation note heads"
+msgstr ""
+
+msgid "Analysis brackets"
+msgstr ""
+
+msgid "Coloring objects"
+msgstr ""
+
+msgid "Parentheses"
+msgstr ""
+
+msgid "Changing defaults"
+msgstr ""
+
+msgid "Automatic notation"
+msgstr ""
+
+msgid "Automatic accidentals"
+msgstr ""
+
+msgid "Setting automatic beam behavior"
+msgstr ""
+
+msgid "Interpretation contexts"
+msgstr ""
+
+msgid "Contexts explained"
+msgstr ""
+
+msgid "Creating contexts"
+msgstr ""
+
+msgid "Changing context properties on the fly"
+msgstr ""
+
+msgid "Modifying context plug-ins"
+msgstr ""
+
+msgid "Layout tunings within contexts"
+msgstr ""
+
+msgid "Changing context default settings"
+msgstr ""
+
+msgid "Defining new contexts"
+msgstr ""
+
+msgid "The \\override command"
+msgstr ""
+
+msgid "Constructing a tweak"
+msgstr ""
+
+msgid "Navigating the program reference"
+msgstr ""
+
+msgid "Layout interfaces"
+msgstr ""
+
+msgid "Determining the grob property"
+msgstr ""
+
+msgid "Objects connected to the input"
+msgstr ""
+
+msgid "\\set vs. \\override"
+msgstr ""
+
+msgid "Difficult tweaks"
+msgstr ""
+
+msgid "Non-musical notation"
+msgstr ""
+
+msgid "Input files"
+msgstr ""
+
+msgid "File structure (introduction)"
+msgstr ""
+
+msgid "Multiple scores in a book"
+msgstr ""
+
+msgid "Extracting fragments of notation"
+msgstr ""
+
+msgid "File structure"
+msgstr ""
+
+msgid "A single music expression"
+msgstr ""
+
+msgid "Including LilyPond files"
+msgstr ""
+
+msgid "Text encoding"
+msgstr ""
+
+msgid "Titles and headers"
+msgstr ""
+
+msgid "Creating titles"
+msgstr ""
+
+msgid "Custom titles"
+msgstr ""
+
+msgid "MIDI output"
+msgstr ""
+
+msgid "Creating MIDI files"
+msgstr ""
+
+msgid "MIDI block"
+msgstr ""
+
+msgid "MIDI instrument names"
+msgstr ""
+
+msgid "Displaying LilyPond notation"
+msgstr ""
+
+msgid "Skipping corrected music"
+msgstr ""
+
+msgid "Spacing issues"
+msgstr ""
+
+msgid "Paper and pages"
+msgstr ""
+
+msgid "Paper size"
+msgstr ""
+
+msgid "Page formatting"
+msgstr ""
+
+msgid "Music layout"
+msgstr ""
+
+msgid "Setting global staff size"
+msgstr ""
+
+msgid "Score layout"
+msgstr ""
+
+msgid "Vertical spacing"
+msgstr ""
+
+msgid "Vertical spacing inside a system"
+msgstr ""
+
+msgid "Vertical spacing of piano staves"
+msgstr ""
+
+msgid "Vertical spacing between systems"
+msgstr ""
+
+msgid "Controlling spacing of individual systems"
+msgstr ""
+
+msgid "Two-pass vertical spacing"
+msgstr ""
+
+msgid "Horizontal spacing"
+msgstr ""
+
+msgid "Horizontal Spacing"
+msgstr ""
+
+msgid "Horizontal spacing overview"
+msgstr ""
+
+msgid "New spacing area"
+msgstr ""
+
+msgid "Changing horizontal spacing"
+msgstr ""
+
+msgid "Line length"
+msgstr ""
+
+msgid "Breaks"
+msgstr ""
+
+msgid "Line breaking"
+msgstr ""
+
+msgid "Page breaking"
+msgstr ""
+
+msgid "Optimal page breaking"
+msgstr ""
+
+msgid "Optimal page turning"
+msgstr ""
+
+msgid "Displaying spacing"
+msgstr ""
+
+msgid "Interfaces for programmers"
+msgstr ""
+
+msgid "Music functions"
+msgstr ""
+
+msgid "Overview of music functions"
+msgstr ""
+
+msgid "Simple substitution functions"
+msgstr ""
+
+msgid "Paired substitution functions"
+msgstr ""
+
+msgid "Mathematics in functions"
+msgstr ""
+
+msgid "Void functions"
+msgstr ""
+
+msgid "Programmer interfaces"
+msgstr ""
+
+msgid "Input variables and Scheme"
+msgstr ""
+
+msgid "Internal music representation"
+msgstr ""
+
+msgid "Building complicated functions"
+msgstr ""
+
+msgid "Displaying music expressions"
+msgstr ""
+
+msgid "Music properties"
+msgstr ""
+
+msgid "Doubling a note with slurs (example)"
+msgstr ""
+
+msgid "Adding articulation to notes (example)"
+msgstr ""
+
+msgid "Markup programmer interface"
+msgstr ""
+
+msgid "Markup construction in Scheme"
+msgstr ""
+
+msgid "How markups work internally"
+msgstr ""
+
+msgid "New markup command definition"
+msgstr ""
+
+msgid "Contexts for programmers"
+msgstr ""
+
+msgid "Context evaluation"
+msgstr ""
+
+msgid "Running a function on all layout objects"
+msgstr ""
+
+msgid "Scheme procedures as properties"
+msgstr ""
+
+msgid "Running LilyPond"
+msgstr ""
+
+msgid "Invoking lilypond"
+msgstr ""
+
+msgid "Command line options"
+msgstr ""
+
+msgid "Environment variables"
+msgstr ""
+
+msgid "Notes for the MacOS X app"
+msgstr ""
+
+msgid "Updating files with convert-ly"
+msgstr ""
+
+msgid "Updating with"
+msgstr ""
+
+msgid "Reporting bugs"
+msgstr ""
+
+msgid "Error messages"
+msgstr ""
+
+msgid "Editor support"
+msgstr ""
+
+msgid "Point and click"
+msgstr ""
+
+msgid "LilyPond-book"
+msgstr ""
+
+msgid "An example of a musicological document"
+msgstr ""
+
+msgid "Integrating LaTeX and music"
+msgstr ""
+
+msgid "Integrating La"
+msgstr ""
+
+msgid "Integrating Texinfo and music"
+msgstr ""
+
+msgid "Integrating HTML and music"
+msgstr ""
+
+msgid "Integrating DocBook and music"
+msgstr ""
+
+msgid "Common conventions"
+msgstr ""
+
+msgid "Including a LilyPond file"
+msgstr ""
+
+msgid "Including LilyPond code"
+msgstr ""
+
+msgid "Processing the DocBook document"
+msgstr ""
+
+msgid "Music fragment options"
+msgstr ""
+
+msgid "Invoking lilypond-book"
+msgstr ""
+
+msgid "Invoking"
+msgstr ""
+
+msgid "Filename extensions"
+msgstr ""
+
+msgid "Many quotes of a large score"
+msgstr ""
+
+msgid "Inserting LilyPond output into other programs"
+msgstr ""
+
+msgid "Converting from other formats"
+msgstr ""
+
+msgid "Invoking midi2ly"
+msgstr ""
+
+msgid "Invoking etf2ly"
+msgstr ""
+
+msgid "Invoking musicxml2ly"
+msgstr ""
+
+msgid "Invoking abc2ly"
+msgstr ""
+
+msgid "Generating LilyPond files"
+msgstr ""
+
+msgid "Literature list"
+msgstr ""
+
+msgid "Scheme tutorial"
+msgstr ""
+
+msgid "Notation manual tables"
+msgstr ""
+
+msgid "Chord name chart"
+msgstr ""
+
+msgid "MIDI instruments"
+msgstr ""
+
+msgid "List of colors"
+msgstr ""
+
+msgid "Normal colors"
+msgstr ""
+
+msgid "X color names"
+msgstr ""
+
+msgid "Color Names without a numerical suffix:"
+msgstr ""
+
+msgid "Color names with a numerical suffix"
+msgstr ""
+
+msgid "Grey Scale"
+msgstr ""
+
+msgid "The Feta font"
+msgstr ""
+
+msgid "Example templates"
+msgstr ""
+
+msgid "Single staff"
+msgstr ""
+
+msgid "Notes only"
+msgstr ""
+
+msgid "Notes and lyrics"
+msgstr ""
+
+msgid "Notes and chords"
+msgstr ""
+
+msgid "Notes, lyrics, and chords."
+msgstr ""
+
+msgid "Piano templates"
+msgstr ""
+
+msgid "Solo piano"
+msgstr ""
+
+msgid "Piano and melody with lyrics"
+msgstr ""
+
+msgid "Piano centered lyrics"
+msgstr ""
+
+msgid "Piano centered dynamics"
+msgstr ""
+
+msgid "String quartet"
+msgstr ""
+
+msgid "String quartet parts"
+msgstr ""
+
+msgid "Vocal ensembles"
+msgstr ""
+
+msgid "SATB vocal score"
+msgstr ""
+
+msgid "SATB vocal score and automatic piano reduction"
+msgstr ""
+
+msgid "Ancient notation templates"
+msgstr ""
+
+msgid "Transcription of mensural music"
+msgstr ""
+
+msgid "Gregorian transcription template"
+msgstr ""
+
+msgid "Jazz combo"
+msgstr ""
+
+msgid "Lilypond-book templates"
+msgstr ""
+
+msgid "LaTeX"
+msgstr ""
+
+msgid "Texinfo"
+msgstr ""
+
+msgid "Cheat sheet"
+msgstr ""
+
+msgid "GNU Free Documentation License"
+msgstr ""
+
+msgid "ADDENDUM: How to use this License for your documents"
+msgstr ""
+
+msgid "Up:"
+msgstr ""
+
+msgid "Next:"
+msgstr ""
+
+msgid "Previous:"
+msgstr ""
+
+msgid "Appendix"
+msgstr ""
index db201896adbb14b2731e1a4fcc3e70a657735611..c2c816327a9d8eb3f698dc95688a7c988dfefef5 100644 (file)
@@ -99,6 +99,8 @@ Documentation and examples
     Example files, documentation
 @item @email{heikki.junes@@hut.fi, Heikki Junes},
     Cleanups in docs and example files.
+@item @email{john.mandereau@@free.fr, John Mandereau},
+    Internationalization.
 @item @email{scancm@@biobase.dk, Christian Mondrup},
     Glossary.
 @item @email{hanwen@@xs4all.nl, Han-Wen Nienhuys}, 
@@ -109,7 +111,7 @@ Documentation and examples
     Main author.
 @item @email{gpermus@@gmail.com, Graham Percival},
     @uref{http://percival-music.ca},
-    Documenation Editor.
+    Documentation Editor.
 @item @email{pinard@@iro.umontreal.ca, François Pinard},
     @uref{http://www.iro.umontreal.ca/~pinard/},
     Parts of Documentation/user/glossary*, started
@@ -147,10 +149,17 @@ Translations
     Russian translation.
 @item @email{, David González},
     Spanish glossary translations.
+@item @email{ngclaude@@123mail.org, Nicolas Grandclaude},
+    French documentation translation.
+@item @email{lolyfan@@wanadoo.fr, Jean-Charles Malahieude},
+    French translation of messages, website and documentation.
 @item @email{john.mandereau@@free.fr, John Mandereau},
-    French translation.
-@item @email{lilyfan@@wanadoo.fr, Jean-Charles Malahieude}
-    French translation
+    French translation of messages, website and documentation
+@item @email{gauvainpocentek@@yahoo.fr, Gauvain Pocentek},
+    French website translation.
+@item @email{ludovicsardain@@gmail.com, Ludovic Sardain},
+    French documentation translation.
 @end itemize
 
+
 @bye
index 574febff57b224e850f4eb0e6bc89ff92f84e15f..e5984dfe85821c5e00f0118af44c9108417178d0 100644 (file)
@@ -66,6 +66,17 @@ which scares away people.
 
 @end ignore
 
+@item Tablature now supports harmonics and slides,
+
+@lilypond[fragment,ragged-right,relative=1]
+\new TabVoice
+{
+    <c g'\harmonic> d\2\glissando e\2
+}
+@end lilypond
+
+This feature was sponsored by Mike Amundsen
+
 @item Horizontal spacing now follows object outlines more
 accurately. This allows tighter horizontal spacing.
 
index 9ad1949cad7ea92d7ef517cc28c341247849be7d..32afbd6f1bf2e9df3ddc562e8a450eb1c8ea305a 100644 (file)
@@ -189,13 +189,13 @@ accessed directly using text markup such as @code{g^\markup @{
 
 
 @ignore
-@node All context properties
+@n ode All context properties
 @a ppendixsec All context properties
 
 @i nclude context-properties.tely
 
 
-@node Layout properties
+@n ode Layout properties
 @ap pendixsec Layout properties
 
 @in clude layout-properties.tely
index b5af8926c5ff801caf2aa7169472514cc6de95d6..d25212c13d76066807a70be65358bd2c7d12b84e 100644 (file)
@@ -82,7 +82,9 @@ final-install:
 
 web-ext = html midi pdf png txt ly signature
 
-footify = $(PYTHON) $(step-bindir)/add-html-footer.py  --name $(PACKAGE_NAME) --version $(TOPLEVEL_VERSION)
+# For docball, issue `make web CONTENT_NEGOTIATION='
+CONTENT_NEGOTIATION = --content-negotiation
+footify = $(PYTHON) $(step-bindir)/add-html-footer.py --name $(PACKAGE_NAME) --version $(TOPLEVEL_VERSION) $(CONTENT_NEGOTIATION)
 footifymail = MAILADDRESS='http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs'
 
 
@@ -98,7 +100,8 @@ local-WWW-post:
 
        cd $(top-build-dir) && find Documentation input \
                $(web-ext:%=-path '*/out-www/*.%' -or) -type l \
-               | grep -v 'lily-[0-9].*.pdf' \
+               | grep -v 'lily-[0-9a-f]*.*pdf' \
+               | grep -v '/fr/' \
                > $(outdir)/weblist
        ls $(outdir)/*.html >> $(outdir)/weblist
 
diff --git a/THANKS b/THANKS
index e7d226a2d8311b5513e6d2a36033699b52bb1c5c..83696a70c6cb5d232d291548a61d1b56101b3448 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -12,11 +12,21 @@ Graham Percival   - Documentation Editor and Bug Meister
 Mats Bengtsson    - Support Guru 
 
 
-BUG HUNTERS/SUGGESTIONS
+SPONSORS
 
-Phillip Kirlin
+Mike Amundsen
 
 
+BUG HUNTERS/SUGGESTIONS
+
+Benjamin Drung
+Cameron Horsburgh
+Maarten Hijzelendoorn 
+Phillip Kirlin
+Rick Hansen
+Thomas Scharkowski
+Trevor Bača
+Werner Lemberg
 
 
 Release 2.10
@@ -40,6 +50,16 @@ Erlend Aasland
 Guido Amoruso
 Heikki Junes
 Joe Neeman
+John Mandereau
+
+
+TRANSLATORS
+
+Gauvain Pocentek
+Jean-Charles Malahieude
+John Mandereau
+Ludovic Sardain
+Nicolas Grandclaude
 
 
 SPONSORS
diff --git a/buildscripts/html-gettext.py b/buildscripts/html-gettext.py
new file mode 100644 (file)
index 0000000..97f8e5f
--- /dev/null
@@ -0,0 +1,73 @@
+#!@PYTHON@
+# html-gettext.py
+
+# Usage:  html-gettext.py [-o OUTDIR] LOCALEDIR LANG FILES
+#
+# -o OUTDIR specifies that output files should be written in OUTDIR
+#    rather than be overwritten
+#
+# LANG
+# LOCALEDIR should contain 'lilypond-doc' message catalogs
+
+
+### DATA
+# Currently, typo_rules[LANG] only defines the HTML-coded space occuring
+# before double punctuation characters (i.e. : ; ? ! ) for LANG
+
+typo_rules = { 'fr':'&nbsp;', 'default':'' }
+
+
+### PROGRAM
+
+import sys
+import re
+import os
+import string
+import gettext
+import getopt
+
+optlist, args = getopt.getopt(sys.argv[1:],'o:')
+
+outdir = '.'
+for x in optlist:
+       if x[0] == '-o':
+               outdir = x[1]
+
+if args[1] in typo_rules.keys():
+       dbl_punct_char_separator = typo_rules[args[1]]
+else:
+       dbl_punct_char_separator = typo_rules['default']
+
+t = gettext.translation('lilypond-doc', args[0], [args[1]])
+_ = t.gettext
+
+def link_gettext (m):
+       return '<link rel="' + m.group(1) + '" ' + m.group(2) + ' title="' + _(m.group(3)) + '">'
+
+def title_gettext (m):
+       return '<title>' + _(m.group(1)) + ' - ' + m.group(2) + '</title>'
+
+def a_href_gettext (m):
+       if m.group(4) == ':':
+               s = dbl_punct_char_separator + ':'
+       elif m.group(4) == None:
+               s = ''
+       return '<a ' + (m.group(1) or '') + m.group(2) + _(m.group(3)) + '</a>' + s
+
+def h_gettext (m):
+       return '<h' + m.group(1) + ' class="' + m.group(2) + '">' + \
+              (m.group(3) or '') + _(m.group(4)) + '</h' + m.group(1) + '>'
+
+for filename in args[2:]:
+       f = open (filename, 'r')
+       page = f.read ()
+       f.close()
+       page = re.sub (r'<link rel="(up|prev|next)" (.*?) title="([^"]*?)">', link_gettext, page)
+       page = re.sub (r'<title>([^<]*?) - ([^<]*?)</title>', title_gettext, page)
+       page = re.sub (r'<a ((?:rel="\w+")? ?(?:accesskey="[^"]+?" ?)?)(href="[^"]+?">)([^<]+)</a>(:)?', a_href_gettext, page)
+       page = re.sub (r'<h(\d) class="(\w+)">([\d.]+ )?([^<]+)</h\1>', h_gettext, page)
+       for w in ('Next:', 'Previous:', 'Up:'):
+               page = re.sub (w, _(w), page)
+       f = open (os.path.join (outdir, filename), 'w')
+       f.write (page)
+       f.close ()
index f63240cec8f001395a392f64d500fb5455f2195d..8bb5af36ab94d7ba00ff665a34804f13188bc3b7 100644 (file)
@@ -198,7 +198,7 @@ allfiles = []
 for d in dirs:
     allfiles = allfiles + find ('*.ly', d)
 
-allfiles = filter (lambda x: not x.endswith ('snippet-map.ly') and not re.search ('lily-[0-9]+', x), allfiles)
+allfiles = filter (lambda x: not x.endswith ('snippet-map.ly') and not re.search ('lily-[0-9a-f]+', x), allfiles)
 
 gen_list (allfiles, outfile)
 
diff --git a/buildscripts/texi-langutils.py b/buildscripts/texi-langutils.py
new file mode 100644 (file)
index 0000000..0973763
--- /dev/null
@@ -0,0 +1,95 @@
+#!@PYTHON@
+# texi-langutils.py
+
+# WARNING: this script can't find files included in a different directory
+
+import sys
+import re
+import getopt
+import os
+import string
+
+optlist, texi_files = getopt.getopt(sys.argv[1:],'no:d:b:i:',['skeleton', 'gettext'])
+process_includes = not ('-n', '') in optlist # -n   don't process @include's in texinfo files
+
+make_gettext = ('--gettext', '') in optlist   # --gettext    generate a node list from a Texinfo source
+make_skeleton = ('--skeleton', '') in optlist # --skeleton   extract the node tree from a Texinfo source
+
+output_file = 'doc.pot'
+node_blurb = ''
+intro_blurb = ''
+
+for x in optlist:
+       if x[0] == '-o': # -o NAME   set PO output file name to NAME
+               output_file = x[1]
+       elif x[0] == '-d': # -d DIR    set working directory to DIR
+               os.chdir (x[1])
+       elif x[0] == '-b': # -b BLURB  set blurb written at each node to BLURB
+               node_blurb = x[1]
+       elif x[0] == '-i': # -i BLURB  set blurb written at beginning of each file to BLURB
+               intro_blurb = x[1]
+
+def process_texi (texifilename, i_blurb, n_blurb, write_skeleton, output_file=None):
+       try:
+               #print "Processing %s..." % texifilename
+               f = open (texifilename, 'r')
+               texifile = f.read ()
+               f.close ()
+               includes = []
+               if write_skeleton:
+                       g = open (os.path.basename (texifilename), 'w')
+                       g.write (i_blurb)
+                       tutu = re.findall (r"""^(\*) +([^:
+                       ]+)::[^
+                       ]*?$|^@(include|menu|end menu|node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) *([^@
+                       ]*)[^
+                       ]*?$""", texifile, re.M)
+                       node_trigger = False
+                       for item in tutu:
+                               if item[0] == '*':
+                                       g.write ('* ' + item[1] + '::\n')
+                               else:
+                                       g.write ('@' + item[2] + ' ' + item[3] + '\n')
+                                       if node_trigger:
+                                               g.write (n_blurb)
+                                               node_trigger = False
+                                       if not item[2] in ('include', 'menu', 'end menu'):
+                                               if output_file:
+                                                       output_file.write ('_("' + item[3].strip () + '")\n')
+                                               node_trigger = True
+                                       elif item[2] == 'include':
+                                               includes.append(item[3])
+                       g.close ()
+               elif output_file:
+                       toto = re.findall (r"""^@(include|node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) *([^@
+                       ]*)[^
+                       ]*?$""", texifile, re.M)
+                       for item in toto:
+                               if item[0] == 'include':
+                                       includes.append(item[1])
+                               else:
+                                       output_file.write ('_("' + item[1].strip () + '")\n')
+               if process_includes:
+                       dir = os.path.dirname (texifilename)
+                       for item in includes:
+                               process_texi (os.path.join (dir, item.strip ()), i_blurb, n_blurb, write_skeleton, output_file)
+       except IOError, (errno, strerror):
+               print "I/O error(%s): %s: %s" % (errno, texifilename, strerror)
+
+
+if intro_blurb != '':
+       intro_blurb += '\n\n'
+if node_blurb != '':
+       node_blurb = '\n' + node_blurb + '\n\n'
+if make_gettext:
+       node_list_filename = 'node_list'
+       node_list = open (node_list_filename, 'w')
+       for texi_file in texi_files:
+               process_texi (texi_file, intro_blurb, node_blurb, make_skeleton, node_list)
+       for word in ('Up:', 'Next:', 'Previous:', 'Appendix'):
+               node_list.write ('_("' + word + '")\n')
+       node_list.close ()
+       os.system ('xgettext -L Python --no-location -o ' + output_file + ' ' + node_list_filename)
+else:
+       for texi_file in texi_files:
+               process_texi (texi_file, intro_blurb, node_blurb, make_skeleton)
index d3cc565e63f3f0f13e9ef9e19a8413aa20565896..2b799be25bb3a2a5c7fc7877b5ca5cadbf3a9b6c 100644 (file)
@@ -1,6 +1,8 @@
 
 \version "2.10.0"
 
+\version "2.10.1" 
+
 \score {
   \new DrumStaff <<
     \drummode {
diff --git a/make/doclang-rules.make b/make/doclang-rules.make
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/make/doclang-targets.make b/make/doclang-targets.make
new file mode 100644 (file)
index 0000000..1c8f501
--- /dev/null
@@ -0,0 +1,54 @@
+# assumes depth and ISOLANG are defined
+
+OUT_ITEXI_FILES = $(ITELY_FILES:%.itely=$(outdir)/%.itexi)
+
+LILYPOND_BOOK_INCLUDES += \
+  -I$(top-src-dir)/Documentation/user \
+  -I$(top-build-dir)/Documentation/user/$(outdir)
+
+default:
+
+$(outdir)/lilypond.nexi: $(ITELY_FILES) $(ITEXI_FILES)
+
+MAKEINFO = LANG=$(ISOLANG) $(MAKEINFO_PROGRAM) --force
+
+$(outdir)/lilypond/index.html: $(outdir)/lilypond.nexi doc-po
+       mkdir -p $(dir $@)
+       -$(MAKEINFO) -I$(outdir) --output=$(outdir)/lilypond --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
+       find $(outdir) -name '*.html' | xargs grep -L 'UNTRANSLATED NODE: IGNORE ME' | xargs $(PYTHON) $(top-src-dir)/buildscripts/html-gettext.py $(depth)/Documentation/po/$(outdir) $(ISOLANG)
+
+$(outdir)/lilypond.html: $(outdir)/lilypond.nexi
+       -$(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $< 
+
+local-WWW: png-ln $(outdir)/lilypond.html $(outdir)/lilypond/index.html deep-ln lang-merge
+
+lang-merge:
+       $(foreach i, $(shell find $(outdir) -name '*.html' | xargs grep -L 'UNTRANSLATED NODE: IGNORE ME'), ln -f $(i) $(i:$(outdir)/%.html=$(depth)/Documentation/user/$(outdir)/%.$(ISOLANG).html) &&) true
+
+png-ln:
+       mkdir -p $(outdir)/lilypond
+       # makeinfo is broken, it MUST have PNGs in output dir
+       # symlinking PNGs...
+       $(foreach i, $(shell find $(depth)/Documentation/user/$(outdir) -maxdepth 1 -name '*.png'), ln -sf ../$(i) $(i:$(depth)/Documentation/user/$(outdir)/%.png=$(outdir)/%.png) &&) true
+       $(foreach i, $(shell find $(depth)/Documentation/user/$(outdir)/lilypond -name '*.png'), ln -sf ../../$(i) $(i:$(depth)/Documentation/user/$(outdir)/%.png=$(outdir)/%.png) &&) true
+
+# Links referred to by Documentation index
+# BROKEN: the following makes broken symlinks
+#LILYPOND_LINKS = Reference-Manual.html Tutorial.html Ly2dvi.html Midi2ly.html
+
+
+deep-ln:
+       mkdir -p $(outdir)/lilypond
+       cd $(outdir)/lilypond && $(foreach i, $(LILYPOND_LINKS),\
+                rm -f $(i) && ln -s lilypond.html $(i) &&) true
+
+local-WWW-clean: deep-WWW-clean
+
+deep-WWW-clean:
+       rm -rf $(outdir)/lilypond
+
+web-clean: clean
+       $(MAKE) out=www local-WWW-clean
+
+doc-po:
+       $(MAKE) -C $(depth)/Documentation/po messages
diff --git a/make/doclang-vars.make b/make/doclang-vars.make
new file mode 100644 (file)
index 0000000..e69de29
index a9b8f72c5da6a985a615027b3b670c699646d398..c277ee920c141290123a686c7df5186ae47b41dc 100644 (file)
@@ -5,14 +5,9 @@ depth = ..
 
 NAME = lilypond
 MODULE_NAME = po
-
-POT_FILES = $(call src-wildcard,*.pot)
-PO_FILES = $(call src-wildcard,*.po)
-MO_FILES = $(addprefix $(outdir)/, $(PO_FILES:.po=.mo))
-HELP_CATALOGS = $(PO_FILES:%.po=%)
-CATALOGS = $(HELP_CATALOGS:lilypond=)
-EXTRA_DIST_FILES = TODO $(PO_FILES) $(POT_FILES)
-STEPMAKE_TEMPLATES=podir
+DOMAIN = $(NAME)
+EXTRA_DIST_FILES = TODO 
+STEPMAKE_TEMPLATES=podir 
 
 include $(depth)/make/stepmake.make
 
index 07ab29ecd70880bc94dd5fdaa08c011ae7f29ff0..5258bcf516249978a06d25166fa46b6b50964dc4 100644 (file)
        (rename-page-1 #f))
 
     (ly:message (_ "Converting to ~a...") "PNG")
-    (make-ps-images name resolution paper-width paper-height rename-page-1 verbose
-                   (ly:get-option 'anti-alias-factor))
+
+    (make-ps-images name
+                   #:resolution resolution
+                   #:page-width  paper-width
+                   #:page-height paper-height
+                   #:rename-page-1 rename-page-1
+                   #:be-verbose verbose
+                   #:anti-alias-factor (ly:get-option 'anti-alias-factor)
+                   #:pixmap-format (ly:get-option 'pixmap-format) 
+                   )
+    
     (ly:progress "\n")))
 
 (define-public (postprocess-output paper-book module filename formats)
index d64fd57f4e11327109cfc2bc0d8024b546cec3fc..e71d400859488587b8d86f440064b6237ac3357b 100644 (file)
@@ -48,6 +48,7 @@ similar to chord syntax")
                           "experimental mechanism for remembering tweaks")
              (point-and-click #t "use point & click")
              (paper-size "a4" "the default paper size")
+             (pixmap-format "png16m" "GS format to use for pixel images")
              (protected-scheme-parsing #t "continue when finding errors in inline
 scheme are caught in the parser. If off, halt 
 on errors, and print a stack trace.")
@@ -348,8 +349,10 @@ The syntax is the same as `define*-public'."
        (,vector? . "vector")))
 
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; debug mem leaks
 
+(define gc-dumping #f)
 (define gc-protect-stat-count 0)
 (define-public (dump-gc-protects)
   (set! gc-protect-stat-count (1+ gc-protect-stat-count))
@@ -364,6 +367,7 @@ The syntax is the same as `define*-public'."
                         ".scm"))
         (outfile    (open-file  out-file-name  "w")))
 
+    (set! gc-dumping #t)
     (display (format "Dumping GC statistics ~a...\n" out-file-name))
     (display
      (map (lambda (y)
@@ -424,6 +428,8 @@ The syntax is the same as `define*-public'."
        '(protected-objects bytes-malloced cell-heap-size
                           
                           )))
+
+    (set! gc-dumping #f)
     
     ))
 
@@ -533,11 +539,18 @@ The syntax is the same as `define*-public'."
        ))
   
   (let* ((failed '())
+        (first #t)
         (handler (lambda (key failed-file)
                    (set! failed (append (list failed-file) failed)))))
 
     (for-each
      (lambda (x)
+
+       ;; We don't carry info across file boundaries
+       (if first
+          (set! first #f)
+          (gc))
+       
        (lilypond-file handler x)
        (ly:clear-anonymous-modules)
        (if (ly:get-option 'debug-gc)
index d76f926a90203b02d006a082d99d25f8f2190c9d..212029ed176f28df16843203c8c198d8c0775695 100644 (file)
        0)))
 
 (define-public (make-ps-images ps-name . rest)
-  (let-optional
-   rest ((resolution 90)
-        page-width
-        page-height
-        (rename-page-1? #f)
-        (verbose? #f)
-        (aa-factor 1) 
-        )
-
-   (let* ((base (basename (re-sub "[.]e?ps" "" ps-name)))
-         (png1 (string-append base ".png"))
-         (pngn (string-append base "-page%d.png"))
+  (let-keywords*
+   rest #f
+     ((resolution 90)
+      (page-width  100)
+      (page-height 100)
+      (rename-page-1 #f)
+      (be-verbose #f)
+      (pixmap-format 'png16m)
+      (anti-alias-factor 1))
+     
+   (let* (
+         (format-str (format "~a" pixmap-format))
+         (extension (cond
+                     ((string-contains format-str "png") "png")
+                     ((string-contains format-str "jpg") "jpeg")
+                     ((string-contains format-str "jpeg") "jpeg")
+                     (else
+                      (ly:error "Unknown pixmap format ~a" pixmap-format))))
+         (base (basename (re-sub "[.]e?ps" "" ps-name)))
+         (png1 (format "~a.~a" base extension))
+         (pngn (format  "~a-page%d.~a" base extension))
          (page-count (ps-page-count ps-name))
-         
          (multi-page? (> page-count 1))
          (output-file (if multi-page? pngn png1))
 
-         ;; png16m is because Lily produces color nowadays.
-         ;; can't use pngalpha device, since IE is broken.
-         ;;
          (gs-variable-options
           (if multi-page?
               (format #f "-dDEVICEWIDTHPOINTS=~,2f -dDEVICEHEIGHTPOINTS=~,2f" page-width page-height)
  -dGraphicsAlphaBits=4\
  -dTextAlphaBits=4\
  -dNOPAUSE\
- -sDEVICE=png16m\
+ -sDEVICE=~a\
  -sOutputFile=~S\
  -r~S\
  ~S\
  -c quit"
                       (search-gs)
-                      (if verbose? "" "-q")
+                      (if be-verbose "" "-q")
                       gs-variable-options
+                      pixmap-format
                       output-file 
-                      (* aa-factor resolution) ps-name))
+                      (* anti-alias-factor resolution) ps-name))
          (status 0)
          (files '()))
 
           (set! cmd (re-sub "=" "#" cmd))
           (set! cmd (re-sub "-dSAFER " "" cmd))))
 
-     (set! status (my-system verbose? #f cmd))
+     (set! status (my-system be-verbose #f cmd))
 
      (set! files
           (if multi-page?
           (map delete-file files)
           (exit 1)))
 
-     (if (and rename-page-1? multi-page?)
+     (if (and rename-page-1 multi-page?)
         (begin
           (rename-file (re-sub "%d" "1" pngn) png1)
           (set! files
                       (cdr files)))
           ))
 
-     (if (not (= 1 aa-factor))
-        (for-each  (lambda (f) (scale-down-image verbose? aa-factor f))
+     (if (not (= 1 anti-alias-factor))
+        (for-each  (lambda (f) (scale-down-image be-verbose anti-alias-factor f))
                    files))
 
      files)))
index a99ceb49e4416d5f4c31793cd843354ad174e3ab..66e0704e69ec6ab41e039d50f829619b2bf198ab 100644 (file)
@@ -1069,7 +1069,7 @@ class Lilypond_snippet (Snippet):
     # TODO: Use md5?
     def get_hash (self):
         if not self.hash:
-            self.hash = abs (hash (self.full_ly ()))
+            self.hash = abs (hash (self.relevant_contents (self.full_ly ())))
         return self.hash
 
     def basename (self):
@@ -1082,30 +1082,33 @@ class Lilypond_snippet (Snippet):
     def write_ly (self):
         outf = open (self.basename () + '.ly', 'w')
         outf.write (self.full_ly ())
-
         open (self.basename () + '.txt', 'w').write ('image of music')
 
+    def relevant_contents (self, ly):
+        return re.sub (r'\\(version|sourcefileline)[^\n]*\n', '', ly)
+             
     def ly_is_outdated (self):
         base = self.basename ()
-
-        tex_file = '%s.tex' % base
-        eps_file = '%s.eps' % base
-        system_file = '%s-systems.tex' % base
-        ly_file = '%s.ly' % base
-        ok = os.path.exists (ly_file) \
-          and os.path.exists (system_file)\
-          and os.stat (system_file)[stat.ST_SIZE] \
-          and re.match ('% eof', open (system_file).readlines ()[-1])
-        if ok and (not global_options.use_hash or FILENAME in self.option_dict):
-            ok = (self.full_ly () == open (ly_file).read ())
-        if ok:
-            # TODO: Do something smart with target formats
-            #       (ps, png) and m/ctimes.
+        ly_file = base + '.ly'
+        tex_file = base + '.tex'
+        eps_file = base + '.eps'
+        systems_file = base + '-systems.tex'
+
+        if (os.path.exists (ly_file)
+            and os.path.exists (systems_file)
+            and os.stat (systems_file)[stat.ST_SIZE]
+            and re.match ('% eof', open (systems_file).readlines ()[-1])
+            and (global_options.use_hash or FILENAME in self.option_dict)
+            and (self.relevant_contents (self.full_ly ())
+                 == self.relevant_contents (open (ly_file).read ()))):
             return None
+        if global_options.verbose:
+            print 'OUT OF DATE: ', ly_file
         return self
 
     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')
@@ -1127,6 +1130,7 @@ class Lilypond_snippet (Snippet):
         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'))
@@ -1279,11 +1283,6 @@ class Lilypond_file_snippet (Lilypond_snippet):
     def ly (self):
         name = self.substring ('filename')
         contents = open (find_file (name)).read ()
-
-        ## strip version string to make automated regtest comparisons
-        ## across versions easier.
-        contents = re.sub (r'\\version *"[^"]*"', '', contents)
-
         return ('\\sourcefilename \"%s\"\n\\sourcefileline 0\n%s'
                 % (name, contents))
 
@@ -1766,6 +1765,7 @@ def do_options ():
     return args
 
 def main ():
+    # FIXME: 85 lines of `main' macramee??
     files = do_options ()
 
     file = files[0]
index d19a9a4b74fcb8fb5c04904ff31bb24d6c830165..08ff5ff061c3cd764ef082071b6e4e510e91b895 100644 (file)
@@ -13,6 +13,7 @@ import getopt
 index_url=''
 top_url=''
 changelog_file=''
+content_negotiation = False
 package_name = ''
 package_version = ''
 
@@ -68,6 +69,7 @@ Add header, footer and top of ChangLog file (up to the ********) to HTML-FILE
 
 Options:
  --changelog=FILE          use FILE as ChangeLog [ChangeLog]
+ --content-negotiation     strip .html and .png from urls
  --footer=FILE             use FILE as footer
  --header=FILE             use FILE as header
  -h, --help                print this help
@@ -80,13 +82,15 @@ Options:
 
 (options, files) = getopt.getopt(sys.argv[1:], 'h', [
     'changelog=', 'footer=', 'header=', 'help', 'index=',
-    'name=', 'version=']) 
+    'name=', 'content-negotiation', 'version=']) 
 
 for opt in options:
     o = opt[0]
     a = opt[1]
     if o == '--changelog':
         changelog_file = a
+    elif o == '--content-negotiation':
+        content_negotiation = True
     elif o == '--footer':
         footer_file = a
     elif o == '--header':
@@ -266,10 +270,11 @@ except:
         return s
 underscore = _
 
-
+C = 'site'
 LANGUAGES = (
-    ('site', 'English'),
+    (C, 'English'),
     ('nl', 'Nederlands'),
+    ('fr', 'French')
     )
 
 language_available = _ ("Other languages: %s.") % "%(language_menu)s"
@@ -287,7 +292,7 @@ LANGUAGES_TEMPLATE = '''\
 def file_lang (file, lang):
     (base, ext) = os.path.splitext (file)
     base = os.path.splitext (base)[0]
-    if lang and lang != 'site':
+    if lang and lang != C:
         return base + '.' + lang + ext
     return base + ext
 
@@ -298,8 +303,8 @@ def i18n (file_name, page):
 
     base_name = os.path.basename (file_name)
 
-    lang = 'site'
-    m = re.match ('.*[.]([^.]*).html', file_name)
+    lang = C
+    m = re.match ('.*[.]([^/.]*).html', file_name)
     if m:
         lang = m.group (1)
 
@@ -308,14 +313,19 @@ def i18n (file_name, page):
               and os.path.exists (file_lang (file_name, x[0])),
               LANGUAGES)
 
-    # Strip .html, .png suffix for auto language selection.
-#        page = re.sub ('''(href|src)=[\'"]([^/][.]*[^.:\'"]*)(.html(#[^"]*)|.png)[\'"]''',
-#                       '\\1="\\2"', page)
+    # Strip .html, .png suffix for auto language selection (content
+    # negotiation).  The menu must keep the full extension, so do
+    # this before adding the menu.
+    if content_negotiation:
+        page = re.sub ('''(href|src)=[\'"]([^/][.]*[^.:\'"]*)(.html|.png)(#[^"\']*|)[\'"]''',
+                       '\\1="\\2\\4"', page)
 
-    # Create language menu.
+    # Add menu after stripping: must not have autoselection for language menu.
     language_menu = ''
     for (prefix, name) in available:
         lang_file = file_lang (base_name, prefix)
+        if language_menu != '':
+            language_menu += ', '
         language_menu += '<a href="%(lang_file)s">%(name)s</a>' % vars ()
 
     languages = ''
@@ -331,7 +341,6 @@ def i18n (file_name, page):
         page = page + languages
 
     return page
-    ## end i18n
 
 for f in files:
     do_file (f)
index 1bb8bf6d7fd4c8d09aea89b47de20fb8bbb61626..b8e53f4b2ce7280527ce95d903e9f553487592e1 100644 (file)
@@ -1 +1,11 @@
 # empty
+
+POT_FILES = $(call src-wildcard,*.pot)
+PO_FILES = $(call src-wildcard,*.po)
+MO_FILES = $(addprefix $(outdir)/, $(PO_FILES:.po=.mo))
+
+HELP_CATALOGS = $(PO_FILES:%.po=%)
+CATALOGS = $(HELP_CATALOGS:$(DOMAIN)=)
+
+DIST_FILES += $(POT_FILES) $(PO_FILES)
+