From: Joe Neeman Date: Tue, 12 Dec 2006 15:53:07 +0000 (+0200) Subject: Merge branch 'master' of ssh+git://jneem@git.sv.gnu.org/srv/git/lilypond X-Git-Tag: release/2.11.3-1~32^2~3 X-Git-Url: https://git.donarmstrong.com/?p=lilypond.git;a=commitdiff_plain;h=9d9aa44b75f4a97ea1399c12ab9bac299da08e6e;hp=424dee2dd114c4b69c3b58d2ef61e310e5d492f8 Merge branch 'master' of ssh+git://jneem@git.sv.gnu.org/srv/git/lilypond --- diff --git a/.gitignore b/.gitignore index 8f7ab1020a..2489b9e8d2 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile index 64605cb980..55f0809885 100644 --- a/Documentation/GNUmakefile +++ b/Documentation/GNUmakefile @@ -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 index 0000000000..296c7209d3 --- /dev/null +++ b/Documentation/fr/GNUmakefile @@ -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 index 0000000000..e492cfeb9c --- /dev/null +++ b/Documentation/fr/user/GNUmakefile @@ -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 index 0000000000..e1f82f0748 --- /dev/null +++ b/Documentation/fr/user/advanced-notation.itely @@ -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 index 0000000000..d7c1bccb57 --- /dev/null +++ b/Documentation/fr/user/basic-notation.itely @@ -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 index 0000000000..69342deaff --- /dev/null +++ b/Documentation/fr/user/changing-defaults.itely @@ -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 index 0000000000..24a63dc774 --- /dev/null +++ b/Documentation/fr/user/cheatsheet.itely @@ -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 index 0000000000..07b91238fd --- /dev/null +++ b/Documentation/fr/user/converters.itely @@ -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 index 0000000000..bf8742de5d --- /dev/null +++ b/Documentation/fr/user/instrument-notation.itely @@ -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 index 0000000000..bfb50ccdef --- /dev/null +++ b/Documentation/fr/user/introduction.itely @@ -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 index 0000000000..a01caad7e5 --- /dev/null +++ b/Documentation/fr/user/lilypond-book.itely @@ -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 index 0000000000..6b65254191 --- /dev/null +++ b/Documentation/fr/user/lilypond.tely @@ -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 index 0000000000..1400e5288a --- /dev/null +++ b/Documentation/fr/user/literature.itely @@ -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 index 0000000000..38977cad04 --- /dev/null +++ b/Documentation/fr/user/non-music.itely @@ -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 index 0000000000..21642c5fe8 --- /dev/null +++ b/Documentation/fr/user/notation-appendices.itely @@ -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 index 0000000000..91a0b4235b --- /dev/null +++ b/Documentation/fr/user/preface.itely @@ -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 index 0000000000..2417124af9 --- /dev/null +++ b/Documentation/fr/user/programming-interface.itely @@ -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 index 0000000000..16d2054dfb --- /dev/null +++ b/Documentation/fr/user/putting.itely @@ -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 index 0000000000..438c5bf072 --- /dev/null +++ b/Documentation/fr/user/running.itely @@ -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 index 0000000000..d89fb346fd --- /dev/null +++ b/Documentation/fr/user/scheme-tutorial.itely @@ -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 index 0000000000..bb9119890e --- /dev/null +++ b/Documentation/fr/user/spacing.itely @@ -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 index 0000000000..bd3c4228a0 --- /dev/null +++ b/Documentation/fr/user/templates.itely @@ -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 index 0000000000..b8869424a5 --- /dev/null +++ b/Documentation/fr/user/tutorial.itely @@ -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 <> + << { e f } { c <> } >> +} +@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 4 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 8[ ]~ +@end lilypond + +@example +r4 8\>( \!) +@end example + +@lilypond[quote,relative=1,fragment] +\slurUp +r4 8\>( \!) +@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 + { 1 ~ 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 index 0000000000..ca79cdefce --- /dev/null +++ b/Documentation/fr/user/tweaks.itely @@ -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 index 0000000000..a05a3bc433 --- /dev/null +++ b/Documentation/fr/user/working.itely @@ -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 index 0000000000..23939296d0 --- /dev/null +++ b/Documentation/po/GNUmakefile @@ -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 index 0000000000..990cb2a490 --- /dev/null +++ b/Documentation/po/fr.po @@ -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 , 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 \n" +"Language-Team: Français \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 :" + +msgid "Next:" +msgstr "Suivant :" + +msgid "Previous:" +msgstr "Précédent :" + +msgid "Appendix" +msgstr "Annexe" + diff --git a/Documentation/po/lilypond-doc.pot b/Documentation/po/lilypond-doc.pot new file mode 100644 index 0000000000..13cf8cefa2 --- /dev/null +++ b/Documentation/po/lilypond-doc.pot @@ -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 , 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 \n" +"Language-Team: LANGUAGE \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 "" diff --git a/Documentation/topdocs/AUTHORS.texi b/Documentation/topdocs/AUTHORS.texi index db201896ad..c2c816327a 100644 --- a/Documentation/topdocs/AUTHORS.texi +++ b/Documentation/topdocs/AUTHORS.texi @@ -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 diff --git a/Documentation/topdocs/NEWS.tely b/Documentation/topdocs/NEWS.tely index 574febff57..e5984dfe85 100644 --- a/Documentation/topdocs/NEWS.tely +++ b/Documentation/topdocs/NEWS.tely @@ -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 +{ + 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. diff --git a/Documentation/user/notation-appendices.itely b/Documentation/user/notation-appendices.itely index 9ad1949cad..32afbd6f1b 100644 --- a/Documentation/user/notation-appendices.itely +++ b/Documentation/user/notation-appendices.itely @@ -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 diff --git a/GNUmakefile.in b/GNUmakefile.in index b5af8926c5..d25212c13d 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -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 e7d226a2d8..83696a70c6 100644 --- 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 index 0000000000..97f8e5f6f6 --- /dev/null +++ b/buildscripts/html-gettext.py @@ -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':' ', '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 '' + +def title_gettext (m): + return '' + _(m.group(1)) + ' - ' + m.group(2) + '' + +def a_href_gettext (m): + if m.group(4) == ':': + s = dbl_punct_char_separator + ':' + elif m.group(4) == None: + s = '' + return '' + s + +def h_gettext (m): + return '' + \ + (m.group(3) or '') + _(m.group(4)) + '' + +for filename in args[2:]: + f = open (filename, 'r') + page = f.read () + f.close() + page = re.sub (r'', link_gettext, page) + page = re.sub (r'([^<]*?) - ([^<]*?)', title_gettext, page) + page = re.sub (r')([^<]+)(:)?', a_href_gettext, page) + page = re.sub (r'([\d.]+ )?([^<]+)', 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 () diff --git a/buildscripts/mutopia-index.py b/buildscripts/mutopia-index.py index f63240cec8..8bb5af36ab 100644 --- a/buildscripts/mutopia-index.py +++ b/buildscripts/mutopia-index.py @@ -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 index 0000000000..09737639b7 --- /dev/null +++ b/buildscripts/texi-langutils.py @@ -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) diff --git a/input/no-notation/midi-drums.ly b/input/no-notation/midi-drums.ly index d3cc565e63..2b799be25b 100644 --- a/input/no-notation/midi-drums.ly +++ b/input/no-notation/midi-drums.ly @@ -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 index 0000000000..e69de29bb2 diff --git a/make/doclang-targets.make b/make/doclang-targets.make new file mode 100644 index 0000000000..1c8f501de1 --- /dev/null +++ b/make/doclang-targets.make @@ -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 index 0000000000..e69de29bb2 diff --git a/po/GNUmakefile b/po/GNUmakefile index a9b8f72c5d..c277ee920c 100644 --- a/po/GNUmakefile +++ b/po/GNUmakefile @@ -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 diff --git a/scm/backend-library.scm b/scm/backend-library.scm index 07ab29ecd7..5258bcf516 100644 --- a/scm/backend-library.scm +++ b/scm/backend-library.scm @@ -108,8 +108,17 @@ (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) diff --git a/scm/lily.scm b/scm/lily.scm index d64fd57f4e..e71d400859 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -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) diff --git a/scm/ps-to-png.scm b/scm/ps-to-png.scm index d76f926a90..212029ed17 100644 --- a/scm/ps-to-png.scm +++ b/scm/ps-to-png.scm @@ -127,26 +127,31 @@ 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) @@ -158,16 +163,17 @@ -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 '())) @@ -178,7 +184,7 @@ (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? @@ -193,7 +199,7 @@ (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 @@ -201,8 +207,8 @@ (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))) diff --git a/scripts/lilypond-book.py b/scripts/lilypond-book.py index a99ceb49e4..66e0704e69 100644 --- a/scripts/lilypond-book.py +++ b/scripts/lilypond-book.py @@ -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] diff --git a/stepmake/bin/add-html-footer.py b/stepmake/bin/add-html-footer.py index d19a9a4b74..08ff5ff061 100644 --- a/stepmake/bin/add-html-footer.py +++ b/stepmake/bin/add-html-footer.py @@ -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 += '%(name)s' % 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) diff --git a/stepmake/stepmake/podir-vars.make b/stepmake/stepmake/podir-vars.make index 1bb8bf6d7f..b8e53f4b2c 100644 --- a/stepmake/stepmake/podir-vars.make +++ b/stepmake/stepmake/podir-vars.make @@ -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) +