txt-to-html:
$(PYTHON) $(step-bindir)/text2html.py $(OUT_TXT_FILES)
+po-update:
+ make -C po po-update
+
ifneq ($(ISOLANG),)
new-lang:
@if (( $$(file -b $(ISOLANG)) == directory )) 2>/dev/null; \
cp fr/GNUmakefile $(ISOLANG)
cp fr/user/GNUmakefile $(ISOLANG)/user
sed -i -e 's/ISOLANG *= *fr/ISOLANG = $(ISOLANG)/' $(ISOLANG)/GNUmakefile $(ISOLANG)/user/GNUmakefile
- $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -b "UNTRANSLATED NODE: IGNORE ME" -o doc.pot --skeleton --gettext ../user/lilypond.tely
+ $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -b "UNTRANSLATED NODE: IGNORE ME" -l $(ISOLANG) -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
check-translation:
find $(ISOLANG)/user/ -name '*.*tely' | xargs $(PYTHON) $(buildscript-dir)/check_translation.py $(buildscript-dir)
+
+skeleton-update:
+ $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -b "UNTRANSLATED NODE: IGNORE ME" -l $(ISOLANG) --skeleton ../user/lilypond.tely
+ $(PYTHON) $(buildscript-dir)/texi-skeleton-update.py $(ISOLANG)/user $(outdir)
endif
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Advanced notation
@chapter Advanced notation
@menu
* Text scripts::
+* Text and line spanners::
* Text spanners::
* Text marks::
* Text markup::
UNTRANSLATED NODE: IGNORE ME
+@node Text and line spanners
+@subsection Text and line spanners
+
+UNTRANSLATED NODE: IGNORE ME
+
@node Text spanners
@subsection Text spanners
UNTRANSLATED NODE: IGNORE ME
+@include markup-commands.tely
@node Font selection
@subsection Font selection
@menu
* Polymetric notation::
* Time administration::
-* Proportional notation::
+* Proportional notation (introduction)::
* Clusters::
* Special noteheads::
* Feathered beams::
UNTRANSLATED NODE: IGNORE ME
-@node Proportional notation
-@subsection Proportional notation
+@node Proportional notation (introduction)
+@subsection Proportional notation (introduction)
UNTRANSLATED NODE: IGNORE ME
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
Translation of GIT committish: 0bf1e119501727ab8217767d8ce6c29dedf4fed1
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Changing defaults
@chapter Changing defaults
* Layout tunings within contexts::
* Changing context default settings::
* Defining new contexts::
-* Aligning contexts::
+* Aligning contexts::
@end menu
-
@node Contexts explained
@subsection Contexts explained
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Cheat sheet
@appendix Cheat sheet
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 0d9d3feea8ca1b22388bd1c67545a518987e72f1
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Converting from other formats
@chapter Converting from other formats
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
--- /dev/null
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+
+@quotation
+Nous souhaitons dédier ce programme à tous les amis que nous avons
+rencontrés par la musique.
+
+Han-Wen et Jan
+@end quotation
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Instrument-specific notation
@chapter Instrument-specific notation
UNTRANSLATED NODE: IGNORE ME
+@subsubsection Adding stanza numbers
+@subsubsection Adding dynamics marks
+@subsubsection Adding singer names
+@subsubsection Printing stanzas at the end
+@subsubsection Printing stanzas at the end in multiple columns
@node Ambitus
@subsection Ambitus
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
Translation of GIT committish: 94e27fe2da58c91791e1cacb32c16a4acccf0638
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node LilyPond-book
-@chapter @command{lilypond-book}: Integrating text and music
+@chapter
UNTRANSLATED NODE: IGNORE ME
* Invoking lilypond-book::
* Filename extensions::
* Many quotes of a large score::
-* Inserting LilyPond output into OpenOffice.org::
+* Inserting LilyPond output into OpenOffice.org::
* Inserting LilyPond output into other programs::
@end menu
@node An example of a musicological document
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@ifnottex
Ce fichier documente GNU LilyPond.
-Copyright @copyright{} 1999--2006 by the authors
+Copyright @copyright{} 1999--2007 par les auteurs
@quotation
Permission is granted to copy, distribute and/or modify this document
@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.10.x.
+Ce document est le manuel de l'utilisateur pour GNU LilyPond 2.11.x.
@ifhtml
(Allez au bas de la page pour voir le numéro de version exact).
@end ifhtml
@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
Manuel de référence
* Basic notation:: notation musicale standard.
-* Instrument-specific notation:: notation spécifique à un instrument.
+* Instrument-specific notation:: notation spécifique à des instruments.
* Advanced notation:: notation plus rarement utilisée.
* Changing defaults:: retoucher la mise en forme.
* Non-musical notation:: aspects autres que la notation musicale.
* 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.
+* 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::
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Literature list
@appendix Literature list
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Non-musical notation
@chapter Non-musical notation
@menu
* File structure (introduction)::
-* Multiple scores in a book::
-* Extracting fragments of notation::
* File structure::
* A single music expression::
+* Multiple scores in a book::
+* Extracting fragments of notation::
* Including LilyPond files::
* Text encoding::
@end menu
UNTRANSLATED NODE: IGNORE ME
-@node Multiple scores in a book
-@subsection Multiple scores in a book
+@node File structure
+@subsection File structure
UNTRANSLATED NODE: IGNORE ME
-@node Extracting fragments of notation
-@subsection Extracting fragments of notation
+@node A single music expression
+@subsection A single music expression
UNTRANSLATED NODE: IGNORE ME
-@node File structure
-@subsection File structure
+@node Multiple scores in a book
+@subsection Multiple scores in a book
UNTRANSLATED NODE: IGNORE ME
-@node A single music expression
-@subsection A single music expression
+@node Extracting fragments of notation
+@subsection Extracting fragments of notation
UNTRANSLATED NODE: IGNORE ME
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Notation manual tables
@appendix Notation manual tables
* MIDI instruments::
* List of colors::
* The Feta font::
+* Note head styles::
@end menu
@node Chord name chart
@appendixsec Chord name chart
UNTRANSLATED NODE: IGNORE ME
+@node Note head styles
+@appendixsec Note head styles
+
+UNTRANSLATED NODE: IGNORE ME
+
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
Translation of GIT committish: a9d6b9a317e20cff479f9e0e54320dfae40bde31
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Interfaces for programmers
@chapter Interfaces for programmers
* Mathematics in functions::
* Void functions::
* Functions without arguments::
+* Overview of available music functions::
@end menu
@node Overview of music functions
@subsection Overview of music functions
UNTRANSLATED NODE: IGNORE ME
+@node Overview of available music functions
+@subsection Overview of available music functions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@include identifiers.tely
@node Programmer interfaces
@section Programmer interfaces
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
Translation of GIT committish: 0bf1e119501727ab8217767d8ce6c29dedf4fed1
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Running LilyPond
@chapter Running LilyPond
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 64f0d86a7c0987b311bfdfdfeddfa063e1f2d6e7
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Scheme tutorial
@appendix Scheme tutorial
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Spacing issues
@chapter Spacing issues
@menu
* Paper and pages::
* Music layout::
+* Displaying spacing::
+* Breaks::
* Vertical spacing::
* Horizontal spacing::
-* Breaks::
-* Displaying spacing::
-@end menu
-
+@end menu
@node Paper and pages
@section Paper and pages
@menu
* Paper size::
* Page formatting::
-@end menu
-
+@end menu
@node Paper size
@subsection Paper size
UNTRANSLATED NODE: IGNORE ME
@menu
-* Setting global staff size::
+* Setting the staff size::
* Score layout::
@end menu
-@node Setting global staff size
-@subsection Setting global staff size
+@node Setting the staff size
+@subsection Setting the staff size
UNTRANSLATED NODE: IGNORE ME
UNTRANSLATED NODE: IGNORE ME
+@node Displaying spacing
+@section Displaying spacing
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Breaks
+@section Breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Line breaking::
+* Page breaking::
+* Optimal page breaking::
+* Optimal page turning::
+* Explicit breaks::
+* Using an extra voice for breaks::
+@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 Explicit breaks
+@subsection Explicit breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Using an extra voice for breaks
+@subsection Using an extra voice for breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
@node Vertical spacing
@section Vertical spacing
@menu
* Vertical spacing inside a system::
-* Vertical spacing of piano staves::
* Vertical spacing between systems::
-* Controlling spacing of individual systems::
+* Explicit staff and system positioning::
* Two-pass vertical spacing::
+* Vertical collision avoidance::
@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
+@node Explicit staff and system positioning
+@subsection Explicit staff and system positioning
UNTRANSLATED NODE: IGNORE ME
UNTRANSLATED NODE: IGNORE ME
+@node Vertical collision avoidance
+@subsection Vertical collision avoidance
+
+UNTRANSLATED NODE: IGNORE ME
+
@node Horizontal spacing
@section Horizontal Spacing
* New spacing area::
* Changing horizontal spacing::
* Line length::
+* Proportional notation::
@end menu
@node Horizontal spacing overview
@subsection Horizontal spacing overview
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
+@node Proportional notation
+@subsection Proportional notation
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
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 0bf1e119501727ab8217767d8ce6c29dedf4fed1
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Templates
@appendix Templates
@appendixsubsec SATB vocal score
@appendixsubsec SATB vocal score and automatic piano reduction
+@appendixsubsec SATB with aligned contexts
@node Ancient notation templates
@appendixsec Ancient notation templates
@appendixsubsec LaTeX
@appendixsubsec Texinfo
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
Translation of GIT committish: a9d6b9a317e20cff479f9e0e54320dfae40bde31
Notez que le premier démarrage peut prendre une minute ou deux, car
toutes les polices système doivent être d'abord analysées.
-À l'avenir, vous aurez certainement recours aux commandes @qq{ Nouveau
-} ou @qq{ Ouvrir }. Vous devez enregistrer votre fichier avant de
-lancer la création de la partition. Si une erreur advient pendant le
-traitement, vous la trouverez dans la fenêtre @qq{ log }.
+À l'avenir, vous aurez certainement recours aux commandes @qq{Nouveau}
+ou @qq{Ouvrir}. Vous devez enregistrer votre fichier avant de lancer
+la création de la partition. Si une erreur advient pendant le
+traitement, vous la trouverez dans la fenêtre @qq{log}.
@subsubheading Windows
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 64f0d86a7c0987b311bfdfdfeddfa063e1f2d6e7
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Tweaking output
@chapter Tweaking output
@section Avoiding tweaks with slower processing
UNTRANSLATED NODE: IGNORE ME
+
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
doc-localedir=$(outdir)
DOMAIN=lilypond-doc
+DOC_PO_SOURCES = add_html_footer.py langdefs.py
messages: $(MO_FILES)
for i in $(CATALOGS); do \
done
po-update:
- $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -o doc.pot --gettext ../$(depth)/Documentation/user/lilypond.tely
+ $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -o texi.pot --gettext ../$(depth)/Documentation/user/lilypond.tely
+ xgettext -cjn -L Python -o $(outdir)/buildscripts.pot $(foreach i, $(DOC_PO_SOURCES), $(buildscript-dir)/$(i) )
+ msgcat -o $(outdir)/doc.pot $(outdir)/buildscripts.pot $(outdir)/texi.pot
msgmerge -U lilypond-doc.pot $(outdir)/doc.pot
for i in $(CATALOGS); do \
msgmerge -U $$i.po lilypond-doc.pot; \
# This file is distributed under the same license as the lilypond package.
#
# John Mandereau <john.mandereau@free.fr>, 2006, 2007.
-#. @chapter in ../../../Documentation/user/lilypond-book.itely
msgid ""
msgstr ""
"Project-Id-Version: fr\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-22 20:59+0100\n"
-"PO-Revision-Date: 2007-02-05 14:38+0100\n"
+"POT-Creation-Date: 2007-02-24 10:14+0100\n"
+"PO-Revision-Date: 2007-02-24 12:23+0100\n"
"Last-Translator: John Mandereau <john.mandereau@free.fr>\n"
"Language-Team: Français <lilypond-user-fr@gnu.org>\n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
+#: ../../buildscripts/add_html_footer.py:36
+#, python-format
+msgid "This page is for %(package_name)s-%(package_version)s (%(branch_str)s)."
+msgstr "Cette page documente %(package_name)s-%(package_version)s (%(branch_str)s)."
+
+#: ../../buildscripts/add_html_footer.py:39
+#, python-format
+msgid "Report errors to <a href=\"%(mail_address_url)s\">%(mail_address)s</a>."
+msgstr "Rapporter toute anomalie en français à <a href=\"mailto:lilypond-user-fr@gnu.org\">lilypond-user-fr@gnu.org</a> ou en anglais à <a href=\"%(mail_address_url)s\">%(mail_address)s</a>"
+
+#: ../../buildscripts/add_html_footer.py:52
+#, python-format
+msgid "Other languages: %s."
+msgstr "Autres langues : %s."
+
+#: ../../buildscripts/add_html_footer.py:53
+#, python-format
+msgid "About <A HREF=\"%s\">automatic language selection</A>."
+msgstr "À propos de la <A HREF=\"%s\">sélection automatique de la langue</A>."
+
+#: ../../buildscripts/add_html_footer.py:236
+msgid "stable-branch"
+msgstr "branche stable"
+
+#: ../../buildscripts/add_html_footer.py:238
+msgid "development-branch"
+msgstr "branche de développement"
+
+#: ../../buildscripts/langdefs.py:34
+msgid "English"
+msgstr "Anglais"
+
+#: ../../buildscripts/langdefs.py:35
+msgid "French"
+msgstr "Français"
+
#. @node in ../../../Documentation/user/lilypond.tely
msgid "Top"
msgstr "Sommaire"
#. @subsubheading in ../../../Documentation/user/macros.itexi
msgid "Commonly tweaked properties"
-msgstr "Propriétés couramment ajustées"
+msgstr "Propriétés couramment modifiées"
#. @node in ../../../Documentation/user/preface.itely
#. @unnumbered in ../../../Documentation/user/preface.itely
#. @node in ../../../Documentation/user/basic-notation.itely
#. @subsection in ../../../Documentation/user/basic-notation.itely
-#, fuzzy
msgid "Note names in other languages"
msgstr "Noms de note dans d'autres langues"
#. @node in ../../../Documentation/user/basic-notation.itely
#. @subsection in ../../../Documentation/user/basic-notation.itely
msgid "Augmentation dots"
-msgstr "Points d'addition"
+msgstr "Notes pointées"
#. @node in ../../../Documentation/user/basic-notation.itely
#. @subsection in ../../../Documentation/user/basic-notation.itely
#. @node in ../../../Documentation/user/basic-notation.itely
#. @section in ../../../Documentation/user/basic-notation.itely
-#, fuzzy
msgid "Polyphony"
-msgstr "Polyphonie basique"
+msgstr "Polyphonie"
#. @node in ../../../Documentation/user/basic-notation.itely
#. @subsection in ../../../Documentation/user/basic-notation.itely
#. @node in ../../../Documentation/user/basic-notation.itely
#. @subsection in ../../../Documentation/user/basic-notation.itely
-#, fuzzy
msgid "Falls and doits"
msgstr "Chutes et sauts"
#. @node in ../../../Documentation/user/instrument-notation.itely
#. @subsection in ../../../Documentation/user/instrument-notation.itely
msgid "Setting simple songs"
-msgstr "Écrire des chansons simples¿"
+msgstr "Écrire des chants simples"
#. @node in ../../../Documentation/user/instrument-notation.itely
#. @subsection in ../../../Documentation/user/instrument-notation.itely
#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
msgid "Adding stanza numbers"
-msgstr ""
+msgstr "Numéroter les strophes"
#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
msgid "Adding dynamics marks"
-msgstr ""
+msgstr "Ajouter des nuances"
#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
-#, fuzzy
msgid "Adding singer names"
-msgstr "Ajout de titres"
+msgstr "Ajouter le nom des chanteurs"
#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
msgid "Printing stanzas at the end"
-msgstr ""
+msgstr "Paroles à la fin de la partition"
#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
msgid "Printing stanzas at the end in multiple columns"
-msgstr ""
+msgstr "Paroles sur plusieurs colonnes à la fin de la partition"
#. @node in ../../../Documentation/user/instrument-notation.itely
#. @subsection in ../../../Documentation/user/instrument-notation.itely
msgstr ""
#. @section in ../../../Documentation/user/running.itely
-#, fuzzy
-msgid "Updating with"
-msgstr "Mettre à jour des anciens fichiers"
+msgid "Updating with @command{convert-ly}"
+msgstr ""
#. @node in ../../../Documentation/user/running.itely
#. @section in ../../../Documentation/user/running.itely
msgid "LilyPond-book"
msgstr "LilyPond-book"
+#. @chapter in ../../../Documentation/user/lilypond-book.itely
+msgid "@command{lilypond-book}: Integrating text and music"
+msgstr "@command{lilypond-book} : associer de la musique et du texte"
+
#. @node in ../../../Documentation/user/lilypond-book.itely
#. @section in ../../../Documentation/user/lilypond-book.itely
msgid "An example of a musicological document"
msgstr ""
#. @section in ../../../Documentation/user/lilypond-book.itely
-#, fuzzy
-msgid "Integrating La"
-msgstr "Gravure"
+msgid "Integrating La@TeX{} and music"
+msgstr "Intégrer de la musique dans @LaTeX{}"
#. @node in ../../../Documentation/user/lilypond-book.itely
#. @section in ../../../Documentation/user/lilypond-book.itely
msgstr ""
#. @section in ../../../Documentation/user/lilypond-book.itely
-#. @section in ../../../Documentation/user/converters.itely
-msgid "Invoking"
+msgid "Invoking @command{lilypond-book}"
msgstr ""
#. @node in ../../../Documentation/user/lilypond-book.itely
msgid "Invoking midi2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @command{midi2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
msgid "Invoking etf2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @command{etf2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
msgid "Invoking musicxml2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @code{musicxml2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
msgid "Invoking abc2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @code{abc2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
#. @section in ../../../Documentation/user/converters.itely
msgid "Generating LilyPond files"
#. @node in ../../../Documentation/user/templates.itely
#. @appendix in ../../../Documentation/user/templates.itely
-#, fuzzy
msgid "Templates"
-msgstr "Nolets"
+msgstr "Modèles"
#. @node in ../../../Documentation/user/templates.itely
#. @appendixsec in ../../../Documentation/user/templates.itely
msgid "Footnotes"
msgstr "Notes de bas de page"
-#~ msgid "@command{lilypond-book}: Integrating text and music"
-#~ msgstr "@command{lilypond-book} : associer de la musique et du texte"
# This file is distributed under the same license as the lilypond package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#. @chapter in ../../../Documentation/user/lilypond-book.itely
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-22 20:59+0100\n"
+"POT-Creation-Date: 2007-02-24 10:14+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
+#: ../../buildscripts/add_html_footer.py:36
+#, python-format
+msgid "This page is for %(package_name)s-%(package_version)s (%(branch_str)s)."
+msgstr ""
+
+#: ../../buildscripts/add_html_footer.py:39
+#, python-format
+msgid "Report errors to <a href=\"%(mail_address_url)s\">%(mail_address)s</a>."
+msgstr ""
+
+#: ../../buildscripts/add_html_footer.py:52
+#, python-format
+msgid "Other languages: %s."
+msgstr ""
+
+#: ../../buildscripts/add_html_footer.py:53
+#, python-format
+msgid "About <A HREF=\"%s\">automatic language selection</A>."
+msgstr ""
+
+#: ../../buildscripts/add_html_footer.py:236
+msgid "stable-branch"
+msgstr ""
+
+#: ../../buildscripts/add_html_footer.py:238
+msgid "development-branch"
+msgstr ""
+
+#: ../../buildscripts/langdefs.py:34
+msgid "English"
+msgstr ""
+
+#: ../../buildscripts/langdefs.py:35
+msgid "French"
+msgstr ""
+
#. @node in ../../../Documentation/user/lilypond.tely
msgid "Top"
msgstr ""
msgstr ""
#. @section in ../../../Documentation/user/running.itely
-msgid "Updating with"
+msgid "Updating with @command{convert-ly}"
msgstr ""
#. @node in ../../../Documentation/user/running.itely
msgid "LilyPond-book"
msgstr ""
+#. @chapter in ../../../Documentation/user/lilypond-book.itely
+msgid "@command{lilypond-book}: Integrating text and music"
+msgstr ""
+
#. @node in ../../../Documentation/user/lilypond-book.itely
#. @section in ../../../Documentation/user/lilypond-book.itely
msgid "An example of a musicological document"
msgstr ""
#. @section in ../../../Documentation/user/lilypond-book.itely
-msgid "Integrating La"
+msgid "Integrating La@TeX{} and music"
msgstr ""
#. @node in ../../../Documentation/user/lilypond-book.itely
msgstr ""
#. @section in ../../../Documentation/user/lilypond-book.itely
-#. @section in ../../../Documentation/user/converters.itely
-msgid "Invoking"
+msgid "Invoking @command{lilypond-book}"
msgstr ""
#. @node in ../../../Documentation/user/lilypond-book.itely
msgid "Invoking midi2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @command{midi2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
msgid "Invoking etf2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @command{etf2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
msgid "Invoking musicxml2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @code{musicxml2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
msgid "Invoking abc2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @code{abc2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
#. @section in ../../../Documentation/user/converters.itely
msgid "Generating LilyPond files"
import re
import os
import time
+import gettext
import langdefs
header = r"""
"""
-footer = r'''
+footer = '''
<div style="background-color: #e8ffe8; padding: 2; border: #c0ffc0 1px solid;">
<p>
<font size="-1">
-This page is for %(package_name)s-%(package_version)s (%(branch_str)s). <br>
+''' + _ ('This page is for %(package_name)s-%(package_version)s (%(branch_str)s).') + '''<br>
</font>
<address><font size="-1">
-Report errors to <a href="%(mail_address_url)s">%(mail_address)s</a>.</font></address>
+''' + _ ('Report errors to <a href="%(mail_address_url)s">%(mail_address)s</a>.') + '''</font></address>
</p>
</div>
'''
def _ (s):
return s
-language_available = _ ("Other languages: %s.") % "%(language_menu)s"
-browser_language = _ ("Using <A HREF='%s'>automatic language selection</A>.") \
- % "/web/about/browser-language"
+language_available = _ ("Other languages: %s.")
+browser_language = _ ('About <A HREF="%s">automatic language selection</A>.')
+browser_language_url = "/web/about/browser-language"
-LANGUAGES_TEMPLATE = '''\
+LANGUAGES_TEMPLATE = '''
<P>
%(language_available)s
<BR>
%(browser_language)s
</P>
-''' % vars ()
+'''
html_re = re.compile ('(.*?)(?:[.]([^/.]*))?[.]html$')
s = re.sub ('(?i)<body>', body, s)
if re.search ('(?i)<BODY', s):
s = re.sub ('(?i)<body[^>]*>', body + header, s, 1)
- elif re.search ('(?i)<html', s):
+ elif re.search ('(?i)<html', s):
s = re.sub ('(?i)<html>', '<HTML>' + header, s, 1)
else:
s = header + s
return s
info_nav_bar = re.compile (r'<div class="node">\s*<p>\s*<a name=".+?"></a>(.+?)<hr>\s*</div>', re.M | re.S)
+info_footnote_hr = re.compile (r'<hr>\s*(</div>)?\s*</body>', re.M | re.I)
def add_footer (s):
"""add footer
also add navigation bar to bottom of Info HTML pages"""
m = info_nav_bar.search (s)
if m:
- custom_footer = '<br><hr>\n<div class="node">\n<p>' + m.group (1) + '</div>\n' + footer
+ # avoid duplicate <hr> in case there are footnotes at the end of the Info HTML page
+ if info_footnote_hr.search (s):
+ custom_footer = '<div class="node">\n<p>' + m.group (1) + '</div>\n' + footer
+ else:
+ custom_footer = '<br><hr>\n<div class="node">\n<p>' + m.group (1) + '</div>\n' + footer
else:
custom_footer = footer
if re.search ('(?i)</body', s):
# Strip .html, .png suffix for auto language selection (content
# negotiation). The menu must keep the full extension, so do
# this before adding the menu.
- page_flavors[file_name] = re.sub (
+ page_flavors[file_name] = [lang_ext, re.sub (
'''(href|src)=[\'"]([^/][.]*[^.:\'"]*)(.html|.png)(#[^"\']*|)[\'"]''',
- '\\1="\\2\\4"', s)
+ '\\1="\\2\\4"', s)]
elif target == 'offline':
# in LANG doc index: don't rewrite .html suffixes as not all .LANG.html pages exist
# the doc index should be translated and contain the right links
if prefix == 'Documentation/out-www/index':
- page_flavors[file_name] = s
+ page_flavors[file_name] = [lang_ext, s]
elif lang_ext == '':
- page_flavors[file_name] = s
+ page_flavors[file_name] = [lang_ext, s]
for e in missing:
- page_flavors[langdefs.lang_file_name (prefix, e, '.html')] = re.sub (
+ page_flavors[langdefs.lang_file_name (prefix, e, '.html')] = [e, re.sub (
'''href=[\'"]([^/][.]*[^.:\'"]*)(.html)(#[^"\']*|)[\'"]''',
- 'href="\\1.' + e + '\\2\\3"', s)
+ 'href="\\1.' + e + '\\2\\3"', s)]
else:
- page_flavors[file_name] = re.sub (
+ page_flavors[file_name] = [lang_ext, re.sub (
'''href=[\'"]([^/][.]*[^.:\'"]*)(.html)(#[^"\']*|)[\'"]''',
- 'href="\\1.' + lang_ext + '\\2\\3"', s)
+ 'href="\\1.' + lang_ext + '\\2\\3"', s)]
return page_flavors
-def add_menu (page_flavors, prefix, available):
- language_menu = ''
- for lang in available:
- lang_file = lang.file_name (os.path.basename (prefix), '.html')
- if language_menu != '':
- language_menu += ', '
- language_menu += '<a href="%s">%s</a>' % (lang_file, lang.name)
-
- languages = ''
- if language_menu:
- languages = LANGUAGES_TEMPLATE % vars ()
-
- # put language menu before '</body>' and '</html>' tags
+def add_menu (page_flavors, prefix, available, target, translation):
for k in page_flavors.keys():
- if re.search ('(?i)</body', page_flavors[k]):
- page_flavors[k] = re.sub ('(?i)</body>', languages + '</BODY>', page_flavors[k], 1)
- elif re.search ('(?i)</html', page_flavors[k]):
- page_flavors[k] = re.sub ('(?i)</html>', languages + '</HTML>', page_flavors[k], 1)
+ language_menu = ''
+ languages = ''
+ if page_flavors[k][0] != '':
+ t = translation[page_flavors[k][0]]
else:
- page_flavors[k] += languages
+ t = _
+ for lang in available:
+ lang_file = lang.file_name (os.path.basename (prefix), '.html')
+ if language_menu != '':
+ language_menu += ', '
+ language_menu += '<a href="%s">%s</a>' % (lang_file, t (lang.name))
+ if target == 'offline':
+ browser_language = ''
+ elif target == 'online':
+ browser_language = t (browser_language) % browser_language_url
+ if language_menu:
+ language_available = t (language_available) % language_menu
+ languages = LANGUAGES_TEMPLATE % vars ()
+ # put language menu before '</body>' and '</html>' tags
+ if re.search ('(?i)</body', page_flavors[k][1]):
+ page_flavors[k][1] = re.sub ('(?i)</body>', languages + '</BODY>', page_flavors[k][1], 1)
+ elif re.search ('(?i)</html', page_flavors[k][1]):
+ page_flavors[k][1] = re.sub ('(?i)</html>', languages + '</HTML>', page_flavors[k][1], 1)
+ else:
+ page_flavors[k][1] += languages
return page_flavors
-def add_html_footer (package_name = '',
+def add_html_footer (translation,
+ package_name = '',
package_version = '',
target = 'offline',
name_filter = lambda s: s):
"""Add header, footer to a number of HTML files
Arguments:
+ translation gettext translations dictionary, with language codes as keys
package_name=NAME set package_name to NAME
package_version=VERSION set package version to VERSION
targets=offline|online set page processing depending on the target
mail_address_url= 'mailto:' + mail_address
versiontup = package_version.split ('.')
- branch_str = 'stable-branch'
+ branch_str = _('stable-branch')
if int ( versiontup[1]) % 2:
- branch_str = 'development-branch'
+ branch_str = _('development-branch')
for prefix, ext_list in pages_dict.items ():
for lang_ext in ext_list:
available, missing = find_translations (prefix, lang_ext)
page_flavors = process_links (s, prefix, lang_ext, file_name, missing, target)
# Add menu after stripping: must not have autoselection for language menu.
- page_flavors = add_menu (page_flavors, prefix, available)
- # urg, this stuff is oudated and seems useless, let's disable it
+ page_flavors = add_menu (page_flavors, prefix, available, translation)
+ # urg, this stuff is outdated and seems useless, let's disable it
#else:
# for e in [l.webext for l in langdefs.LANGUAGES]:
# if not e in pages_dict[prefix]:
# page_flavors[langdefs.lang_file_name (prefix, e, '.html')] = s
-
subst = globals ()
subst.update (locals())
for k in page_flavors.keys():
- page_flavors[k] = page_flavors[k] % subst
-
+ for name in subst.keys():
+ subst[name] = translation[page_flavors[k][0]] (subst[name])
+ page_flavors[k][1] = page_flavors[k][1] % subst
out_f = open (name_filter (k), 'w')
- out_f.write (page_flavors[k])
+ out_f.write (page_flavors[k][1])
out_f.close()
# if the page is translated, a .en.html symlink is necessary for content negotiation
if target == 'online' and ext_list != ['']:
Documentation i18n module
"""
+def _ (s):
+ return s
+
def lang_file_name (p, langext, ext):
if langext != '':
return p + '.' + langext + ext
# here. For each 'Documentation/ab' directory containing docs
# translated in 'ab', there should be an entry in LANGUAGES.
-site = LanguageDef ('en', 'English', webext='')
-fr = LanguageDef ('fr', 'French', double_punct_char_sep=' ')
+site = LanguageDef ('en', _('English'), webext='')
+fr = LanguageDef ('fr', _('French'), double_punct_char_sep=' ')
#nl = LanguageDef ('nl', 'Nederlands')
# Outdated or broken translations may be disabled
if __name__ == '__main__':
print ' '.join ([l.code for l in LANGUAGES if l.enabled and l.code != 'en'])
else:
- import gettext
LANGDICT = {}
for l in LANGUAGES:
LANGDICT[l.code] = l
import re
import getopt
import os
-import string
-optlist, texi_files = getopt.getopt(sys.argv[1:],'no:d:b:i:',['skeleton', 'gettext'])
+def read_pipe (command):
+ print command
+ pipe = os.popen (command)
+ output = pipe.read ()
+ if pipe.close ():
+ print "pipe failed: %(command)s" % locals ()
+ return output
+
+
+optlist, texi_files = getopt.getopt(sys.argv[1:],'no:d:b:i:l:',['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
output_file = 'doc.pot'
node_blurb = ''
-intro_blurb = ''
+doclang = ''
+topfile = os.path.basename (texi_files[0])
+head_committish = read_pipe ('git-rev-parse HEAD')
+intro_blurb = '''@c -*- coding: utf-8; mode: texinfo%(doclang)s -*-
+@c This file is part of %(topfile)s
+@ignore
+ Translation of GIT committish: %(head_committish)s
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+'''
+
+end_blurb = """
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
+"""
for x in optlist:
if x[0] == '-o': # -o NAME set PO output file name to NAME
node_blurb = x[1]
elif x[0] == '-i': # -i BLURB set blurb written at beginning of each file to BLURB
intro_blurb = x[1]
+ elif x[0] == '-l': # -l ISOLANG set documentlanguage to ISOLANG
+ doclang = '; documentlanguage: ' + x[1]
+
+
+intro_blurb = intro_blurb % vars()
+
def process_texi (texifilename, i_blurb, n_blurb, write_skeleton, output_file=None):
try:
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) *([^@
+ ]*?$|^@(include|menu|end menu|node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) *([^
]*)[^
]*?$|@(rglos){(.+?)}""", texifile, re.M)
node_trigger = False
if output_file:
output_file.write ('_("' + item[3].strip () + '") # @' + item[2] + \
' in ' + texifilename + '\n')
- node_trigger = True
+ if item[2] == 'node':
+ node_trigger = True
elif item[2] == 'include':
includes.append(item[3])
+ g.write (end_blurb)
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) *([^@
+ toto = re.findall (r"""^@(include|node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) *([^
]*)[^
]*?$|@(rglos){(.+?)}""", texifile, re.M)
for item in toto:
--- /dev/null
+#!@PYTHON@
+# texi-skeleton-update.py
+
+import sys
+import glob
+import os
+import shutil
+
+sys.stderr.write ('texi-skeleton-update.py\n')
+
+orig_skeletons = set ([os.path.basename (f) for f in glob.glob (sys.argv[1] + '/*.itely')])
+new_skeletons = set ([os.path.basename (f) for f in glob.glob (sys.argv[2] + '/*.itely')])
+
+for f in new_skeletons:
+ if f in orig_skeletons:
+ g = open (os.path.join (sys.argv[1], f), 'r').read ()
+ if '-- SKELETON FILE --' in g:
+ sys.stderr.write ("Updating %s...\n" % f)
+ shutil.copy (os.path.join (sys.argv[2], f), sys.argv[1])
+ else:
+ sys.stderr.write ("Copying new file %s...\n" % f)
+ shutil.copy (os.path.join (sys.argv[2], f), sys.argv[1])
+
+for f in orig_skeletons.difference (new_skeletons):
+ sys.stderr.write ("Warning: outdated skeleton file %s\n" % f)
f.write ('#.htaccess\nDirectoryIndex index\n')
f.close ()
+# load gettext messages catalogs
+t = {}
+localedir = os.path.join (buildscript_dir, '../Documentation/po', outdir)
+for l in langdefs.LANGUAGES:
+ if l.enabled and l.code != 'en':
+ try:
+ t[l.code] = gettext.translation('lilypond-doc', localedir, [l.code]).gettext
+ except:
+ t[l.code] = lambda s: s
+
add_html_footer.build_pages_dict (html_files)
for t in targets:
sys.stderr.write ("Processing HTML pages for %s target...\n" % t)
add_html_footer.add_html_footer (
+ translation = t
package_name = package_name,
package_version = package_version,
target = t,