]> git.donarmstrong.com Git - lilypond.git/blobdiff - po/fi.po
lilypond-manuals.css: edit color scheme and some spacing
[lilypond.git] / po / fi.po
index 5d92d5cacd4a45d7f5b134067d8e708adc4a5bd9..a83fbc483f128814e39d3dbd8e0b536b91daf27e 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
 # Finnish Translation of lilypond.
 # Copyright (C) 2003 Han-Wen Nienhuys, Jan Nieuwenhuizen
 # This file is distributed under the same license as the lilypond package.
-# FIRST AUTHOR: Heikki Junes <hjunes@cc.hut.fi>, 2003.
-# (ersetzt die Übersetzung von 1999 von Erwin Dieterich <bamse@gmx.de>)
 #
+# Heikki Junes <hjunes@cc.hut.fi>, 2003-2006.
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 1.7.27\n"
-"POT-Creation-Date: 2003-07-23 0:40+0300\n"
-"PO-Revision-Date: 2003-07-23 13:37+0300\n"
+"Project-Id-Version: lilypond 2.6.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-12-24 10:40+0100\n"
+"PO-Revision-Date: 2006-11-04 02:19+0200\n"
 "Last-Translator: Heikki Junes <hjunes@cc.hut.fi>\n"
-"Language-Team: Finnish <fi@li.org>\n"
+"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.2\n"
 
-#. this is where special info is often stored
-#. ###############################################################
-#. lilylib.py -- options and stuff
-#.
-#. source file of the GNU LilyPond music typesetter
-#.
-#. (c)  1998--2003  Han-Wen Nienhuys <hanwen@cs.uu.nl>
-#. Jan Nieuwenhuizen <janneke@gnu.org>
-#. ##  subst:\(^\|[^._a-z]\)\(abspath\|identify\|warranty\|progress\|warning\|error\|exit\|getopt_args\|option_help_str\|options_help_str\|help\|setup_temp\|read_pipe\|system\|cleanup_temp\|strip_extension\|cp_to_dir\|mkdir_p\|init\) *(
-#. ##  replace:\1ly.\2 (
-#. ## subst: \(help_summary\|keep_temp_dir_p\|option_definitions\|original_dir\|program_name\|pseudo_filter_p\|temp_dir\|verbose_p\)
-#. ###############################################################
-#. Users of python modules should include this snippet
-#. and customize variables below.
-#. We'll suffer this path init stuff as long as we don't install our
-#. python packages in <prefix>/lib/pythonx.y (and don't kludge around
-#. it as we do with teTeX on Red Hat Linux: set some environment var
-#. (PYTHONPATH) in profile)
-#. If set, LILYPONDPREFIX must take prevalence
-#. if datadir is not set, we're doing a build and LILYPONDPREFIX
-#. Customize these
-#. lilylib globals
-#: lilylib.py:60
-msgid "lilylib module"
-msgstr "lilylib moduuli"
-
-#: lilylib.py:63 lilypond-book.py:131 lilypond.py:128 midi2ly.py:100
-#: mup2ly.py:75 main.cc:111
-msgid "print this help"
-msgstr "näytä tämä opastus"
-
-#. ###############################################################
-#. Handle bug in Python 1.6-2.1
-#.
-#. there are recursion limits for some patterns in Python 1.6 til 2.1.
-#. fix this by importing pre instead. Fix by Mats.
-#. Attempt to fix problems with limited stack size set by Python!
-#. Sets unlimited stack size. Note that the resource module only
-#. is available on UNIX.
-#: lilylib.py:114 midi2ly.py:136 mup2ly.py:130 main.cc:188 main.cc:200
-#, c-format, python-format
-msgid "Copyright (c) %s by"
-msgstr "Copyright (c) %s by"
-
-#: lilylib.py:114
-msgid " 1998--2003"
-msgstr "1998--2003"
-
-#: lilylib.py:118
-msgid "Distributed under terms of the GNU General Public License."
-msgstr "Levitettävissä ehdoilla GNU General Public License."
+#: convertrules.py:12
+#, python-format
+msgid "Not smart enough to convert %s"
+msgstr "Ei tarpeeksi fiksu konvertoidakseen %s"
 
-#: lilylib.py:120
-msgid "It comes with NO WARRANTY."
-msgstr "Se toimitetaan ILMAN TAKUUTA."
+#: convertrules.py:13
+msgid "Please refer to the manual for details, and update manually."
+msgstr "Ole hyvä ja katso ohjekirjasta yksityiskohdat, ja päivitä käsin."
 
-#: lilylib.py:127 midi2ly.py:150 mup2ly.py:144 input.cc:88
-msgid "warning: "
-msgstr "varoitus: "
+#: convertrules.py:14
+#, python-format
+msgid "%s has been replaced by %s"
+msgstr "%s on korvattu %s:lla"
 
-#. lots of midi files use plain text for lyric events
-#. FIXME: read from stdin when files[0] = '-'
-#: lilylib.py:130 midi2ly.py:165 midi2ly.py:1018 midi2ly.py:1083 mup2ly.py:147
-#: mup2ly.py:161 input.cc:93
-msgid "error: "
-msgstr "virhe: "
+#: convertrules.py:2398
+msgid "LilyPond source must be UTF-8"
+msgstr "LilyPond lähdekoodin täytyy olla UTF-8 muodossa"
 
-#: lilylib.py:134
-#, python-format
-msgid "Exiting (%d)..."
-msgstr "Lopetetaan (%d)..."
+#: convertrules.py:2401
+msgid "Try the texstrings backend"
+msgstr "Koeta tex-merkkijonon käyttöä"
 
-#: lilylib.py:194 midi2ly.py:224 mup2ly.py:220
+#: convertrules.py:2404
 #, python-format
-msgid "Usage: %s [OPTIONS]... FILE"
-msgstr "Käyttö: %s [OPTIOT]... TIEDOSTO"
+msgid "Do something like: %s"
+msgstr "Tee jotain tällaista: %s"
 
-#: lilylib.py:198 midi2ly.py:228 mup2ly.py:224 main.cc:166
-msgid "Options:"
-msgstr "Optiot:"
+#: convertrules.py:2407
+msgid "Or save as UTF-8 in your editor"
+msgstr "Tai talleta UTF-8 -muodossa editorissasi"
 
-#: lilylib.py:202 midi2ly.py:232 mup2ly.py:228 main.cc:172
-#, c-format, python-format
-msgid "Report bugs to %s."
-msgstr "Raportoi virheet osoitteeseen %s."
-
-#: lilylib.py:228
+#: fontextract.py:26
 #, python-format
-msgid "Opening pipe `%s'"
-msgstr "Avataan putki `%s'"
+msgid "Scanning %s"
+msgstr "Skannataan %s"
 
-#. successful pipe close returns 'None'
-#: lilylib.py:240
+#: fontextract.py:71
 #, python-format
-msgid "`%s' failed (%d)"
-msgstr "`%s' epäonnistui (%d)"
+msgid "Extracted %s"
+msgstr "Poimittiin %s"
 
-#: lilylib.py:242 lilylib.py:289 lilypond-book.py:231 lilypond.py:512
-msgid "The error log is as follows:"
-msgstr "Virheloki on seuraava:"
+#: fontextract.py:86
+#, python-format
+msgid "Writing fonts to %s"
+msgstr "Kirjoitetaan fontit osoitteeseen `%s'"
 
-#: lilylib.py:262 midi2ly.py:260 mup2ly.py:256
+#: lilylib.py:85 lilylib.py:136
 #, python-format
 msgid "Invoking `%s'"
 msgstr "Kutsutaan `%s'"
 
-#: lilylib.py:264
+#: lilylib.py:87 lilylib.py:138
 #, python-format
 msgid "Running %s..."
 msgstr "Ajetaan %s..."
 
-#: lilylib.py:282
-#, python-format
-msgid "`%s' failed (%s)"
-msgstr "`%s' epäonnistui (%s)"
+#: lilylib.py:203
+#, fuzzy, python-format
+msgid "Usage: %s"
+msgstr "Käyttö: %s\n"
 
-#: lilylib.py:285 midi2ly.py:266 mup2ly.py:264
-msgid "(ignored)"
-msgstr "(sivuutetaan)"
+#: abc2ly.py:1349 convert-ly.py:80 lilypond-book.py:125 midi2ly.py:869
+#, fuzzy, python-format
+msgid "%s [OPTION]... FILE"
+msgstr "Käyttö: %s [OPTIO]... TIEDOSTO..."
 
-#: lilylib.py:299 midi2ly.py:276 mup2ly.py:274
-#, python-format
-msgid "Cleaning %s..."
-msgstr "Siivotaan pois %s..."
+#: abc2ly.py:1351
+#, fuzzy, python-format
+msgid ""
+"abc2ly converts ABC music files (see\n"
+"%s) to LilyPond input."
+msgstr ""
+"Tämä ohjelma kääntää ABC-musiikkitiedostoja (katso\n"
+"http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt) LilyPond-syötteeksi."
 
-#. Duh.  Python style portable: cp *.EXT OUTDIR
-#. system ('cp *.%s %s' % (ext, outdir), 1)
-#. Python < 1.5.2 compatibility
-#.
-#. On most platforms, this is equivalent to
-#. `normpath(join(os.getcwd()), PATH)'.  *Added in Python version 1.5.2*
-#. tex needs lots of memory, more than it gets by default on Debian
-#. TODO: * prevent multiple addition.
-#. * clean TEXINPUTS, MFINPUTS, TFMFONTS,
-#. as these take prevalence over $TEXMF
-#. and thus may break tex run?
-#. $TEXMF is special, previous value is already taken care of
-#. # -sOutputFile does not work with bbox?
-#. # todo:
-#. # have better algorithm for deciding when to crop page,
-#. # and when to show full page
-#: lilylib.py:458
-msgid "Removing output file"
-msgstr "Poistetaan tulostustiedosto"
-
-#. !@PYTHON@
-#. once upon a rainy monday afternoon.
-#.
-#. ...
-#.
-#. (not finished.)
-#. ABC standard v1.6:  http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt
-#.
-#. Enhancements  (Roy R. Rankin)
-#.
-#. Header section moved to top of lilypond file
-#. handle treble, treble-8, alto, and bass clef
-#. Handle voices (V: headers) with clef and part names, multiple voices
-#. Handle w: lyrics with multiple verses
-#. Handle key mode names for minor, major, phrygian, ionian, locrian, aeolian,
-#. mixolydian, lydian, dorian
-#. Handle part names from V: header
-#. Tuplets handling fixed up
-#. Lines starting with |: not discarded as header lines
-#. Multiple T: and C: header entries handled
-#. Accidental maintained until next bar check
-#. Silent rests supported
-#. articulations fermata, upbow, downbow, ltoe, accent, tenuto supported
-#. Chord strings([-^]"string") can contain a '#'
-#. Header fields enclosed by [] in notes string processed
-#. W: words output after tune as abc2ps does it (they failed before)
-#. Enhancements (Laura Conrad)
-#.
-#. Barring now preserved between ABC and lilypond
-#. the default placement for text in abc is above the staff.
-#. %%LY now supported.
-#. \breve and \longa supported.
-#. M:none doesn't crash lily.
-#. Limitations
-#.
-#. Multiple tunes in single file not supported
-#. Blank T: header lines should write score and open a new score
-#. Not all header fields supported
-#. ABC line breaks are ignored
-#. Block comments generate error and are ignored
-#. Postscript commands are ignored
-#. lyrics not resynchronized by line breaks (lyrics must fully match notes)
-#. %%LY slyrics can't be directly before a w: line.
-#. ???
-#. TODO:
-#.
-#. Convert to new chord styles.
-#.
-#. UNDEF -> None
-#.
-#. uGUHGUHGHGUGH
-#. UGH
-#. treble8 is used by abctab2ps; -8va is used by barfly,
-#. and by my patch to abc2ps. If there's ever a standard
-#. about this we'll support that.
-#. find keywork
-#. assume that Q takes the form "Q:1/4=120"
-#. There are other possibilities, but they are deprecated
-#. outf.write ("\t\t\\consists Staff_margin_engraver\n")
-#. pitch manipulation. Tuples are (name, alteration).
-#. 0 is (central) C. Alteration -1 is a flat, Alteration +1 is a sharp
-#. pitch in semitones.
-#. abc to lilypond key mode names
-#. semitone shifts for key mode names
-#. latex does not like naked #'s
-#. latex does not like naked "'s
-#. break lyrics to words and put "'s around words containing numbers and '"'s
-#. escape "
-#. _ causes probs inside ""
-#. _ to ' _ '
-#. split words with -
-#. unless \-
-#. ~ to space('_')
-#. * to to space
-#. latex does not like naked #'s
-#. put numbers and " and ( into quoted string
-#. insure space between lines
-#. title
-#. strip trailing blanks
-#. Meter
-#. KEY
-#. seperate clef info
-#. there may or may not be a space
-#. between the key letter and the mode
-#. ugh.
-#. ugh.
-#. Notes
-#. Origin
-#. Reference Number
-#. Area
-#. History
-#. Book
-#. Composer
-#. Default note length
-#. Voice
-#. Words
-#. vocals
-#. tempo
-#. we use in this order specified accidental, active accidental for bar,
-#. active accidental for key
-#. (num /  den)  / defaultlen < 1/base
-#. return (str, num,den,dots)
-#. ignore slide
-#. ignore roll
-#. s7m2 input doesnt care about spaces
-#.
-#. remember accidental for rest of bar
-#.
-#. get accidental set in this bar or UNDEF if not set
-#. WAT IS ABC EEN ONTZETTENDE PROGRAMMEERPOEP  !
-#. failed; not a note!
-#. escape '#'s
-#.
-#. |] thin-thick double bar line
-#. || thin-thin double bar line
-#. [| thick-thin double bar line
-#. :| left repeat
-#. |: right repeat
-#. :: left-right repeat
-#. |1 volta 1
-#. |2 volta 2
-#. first try the longer one
-#. bracket escape
-#. the nobarlines option is necessary for an abc to lilypond translator for
-#. exactly the same reason abc2midi needs it: abc requires the user to enter
-#. the note that will be printed, and MIDI and lilypond expect entry of the
-#. pitch that will be played.
-#.
-#. In standard 19th century musical notation, the algorithm for translating
-#. between printed note and pitch involves using the barlines to determine
-#. the scope of the accidentals.
-#.
-#. Since ABC is frequently used for music in styles that do not use this
-#. convention, such as most music written before 1700, or ethnic music in
-#. non-western scales, it is necessary to be able to tell a translator that
-#. the barlines should not affect its interpretation of the pitch.
-#. write other kinds of appending  if we ever need them.
-#. add comments to current voice
-#. Try nibbling characters off until the line doesn't change.
-#. dump_global (outf)
-#. !@PYTHON@
-#.
-#. convert-ly.py -- Update old LilyPond input files (fix name?)
-#.
-#. source file of the GNU LilyPond music typesetter
-#.
-#. (c)  1998--2003  Han-Wen Nienhuys <hanwen@cs.uu.nl>
-#. Jan Nieuwenhuizen <janneke@gnu.org>
-#. TODO
-#. use -f and -t for -s output
-#. NEWS
-#. 0.2
-#. - rewrite in python
-#. Did we ever have \mudela-version?  I doubt it.
-#. lilypond_version_re_str = '\\\\version *\"(.*)\"'
-#. ###########################
-#. need new a namespace
-#. raise FatalConversionError()
-#. need new a namespace
-#. harmful to current .lys
-#. str = re.sub ('\\\\key([^;]+);', '\\\\accidentals \\1;', str)
-#. raise FatalConversionError()
-#. raise FatalConversionError()
-#. raise FatalConversionError()
-#. TODO: lots of other syntax change should be done here as well
-#. Ugh, but meaning of \stemup changed too
-#. maybe we should do \stemup -> \stemUp\slurUp\tieUp ?
-#. I don't know exactly when these happened...
-#. ugh, we loose context setting here...
-#. (lacks capitalisation slur -> Slur)
-#. # dynamic..
-#. TODO: add lots of these
-#. ugh
-#. old fix
-#. Make sure groups of more than one ; have space before
-#. them, so that non of them gets removed by next rule
-#. Only remove ; that are not after spaces, # or ;
-#. Otherwise  we interfere with Scheme comments,
-#. which is badbadbad.
-#. 40 ?
-#. ###############################
-#. END OF CONVERSIONS
-#. ###############################
-#. !@PYTHON@
-#. info mostly taken from looking at files. See also
-#. http://lilypond.org/wiki/?EnigmaTransportFormat
-#. This supports
-#.
-#. * notes
-#. * rests
-#. * ties
-#. * slurs
-#. * lyrics
-#. * articulation
-#. * grace notes
-#. * tuplets
-#.
-#. todo:
-#. * slur/stem directions
-#. * voices (2nd half of frame?)
-#. * more intelligent lyrics
-#. * beams (better use autobeam?)
-#. * more robust: try entertainer.etf (freenote)
-#. * dynamics
-#. * empty measures (eg. twopt03.etf from freenote)
-#.
-#. uGUHGUHGHGUGH
-#. notename 0 == central C
-#. represent pitches as (notename, alteration), relative to C-major scale
-#. a fifth up
-#. should cache this.
-#. flag1 isn't all that interesting.
-#. 3: '>',
-#. 18: '\arpeggio' ,
-#. do grace notes.
-#. ugh.
-#. we don't attempt voltas since they fail easily.
-#. and g.repeat_bar == '|:' or g.repeat_bar == ':|:' or g.bracket:
-#. 4 layers.
-#. let's not do this: this really confuses when eE happens to be before  a ^text.
-#. if last_tag and last_indices:
-#. etf_file_dict[last_tag][last_indices].append (l)
-#. # do it
-#. staff-spec
-#. should use \addlyrics ?
-#. !@PYTHON@
-#. vim: set noexpandtab:
-#. This is was the idea for handling of comments:
-#. Multiline comments, @ignore .. @end ignore is scanned for
-#. in read_doc_file, and the chunks are marked as 'ignore', so
-#. lilypond-book will not touch them any more. The content of the
-#. chunks are written to the output file. Also 'include' and 'input'
-#. regex has to check if they are commented out.
-#.
-#. Then it is scanned for 'lilypond', 'lilypond-file' and 'lilypond-block'.
-#. These three regex's has to check if they are on a commented line,
-#. % for latex, @c for texinfo.
-#.
-#. Then lines that are commented out with % (latex) and @c (Texinfo)
-#. are put into chunks marked 'ignore'. This cannot be done before
-#. searching for the lilypond-blocks because % is also the comment character
-#. for lilypond.
-#.
-#. The the rest of the rexeces are searched for. They don't have to test
-#. if they are on a commented out line.
-#. ###############################################################
-#. Users of python modules should include this snippet
-#. and customize variables below.
-#. We'll suffer this path init stuff as long as we don't install our
-#. python packages in <prefix>/lib/pythonx.y (and don't kludge around
-#. it as we do with teTeX on Red Hat Linux: set some environment var
-#. (PYTHONPATH) in profile)
-#. If set, LILYPONDPREFIX must take prevalence
-#. if datadir is not set, we're doing a build and LILYPONDPREFIX
-#. Customize these
-#. if __name__ == '__main__':
-#. lilylib globals
-#. temp_dir = os.path.join (original_dir,  '%s.dir' % program_name)
-#. urg
-#. # FIXME
-#. # ly2dvi: silly name?
-#. # do -P or -p by default?
-#. #help_summary = _ ("Run LilyPond using LaTeX for titling")
-#: lilypond-book.py:120
-msgid "Process LilyPond snippets in hybrid html, LaTeX or texinfo document"
-msgstr "Prossoi LilyPond-osioita sekarakenteisessa html, LaTeX tai texinfo -dokumentissa"
-
-#. another bug in option parser: --output=foe is taken as an abbreviation
-#. for --output-format
-#: lilypond-book.py:125 main.cc:110
-msgid "EXT"
-msgstr "EXT"
-
-#: lilypond-book.py:125
-msgid "use output format EXT (texi [default], texi-html, latex, html)"
-msgstr "tulostusmuotona käytetään formaattia EXT (texi [oletus], texi-html, latex, html)"
-
-#: lilypond-book.py:126 lilypond-book.py:127 lilypond-book.py:129
-#: lilypond-book.py:130
-msgid "DIM"
-msgstr "DIM"
-
-#: lilypond-book.py:126
-msgid "default fontsize for music.  DIM is assumed to be in points"
-msgstr "oletusfonttikoko musiikille.  DIM ilmoitetaan pisteinä"
-
-#: lilypond-book.py:127
-msgid "deprecated, use --default-music-fontsize"
-msgstr "vanhentunut, käytä --default-music-fontsize"
-
-#: lilypond-book.py:128
-msgid "OPT"
-msgstr "OPT"
-
-#: lilypond-book.py:128
-msgid "pass OPT quoted to the lilypond command line"
-msgstr "syötä OPT lainausmerkeissä lilypond-komentoriville"
+#: abc2ly.py:1355 etf2ly.py:1200 midi2ly.py:885
+msgid "write output to FILE"
+msgstr "tulosta tiedostoon TIEDOSTO"
 
-#: lilypond-book.py:129
-msgid "force fontsize for all inline lilypond. DIM is assumed be to in points"
-msgstr "pakota fonttikoko kullekin LilyPond-osiolle. DIM oletetaan olevan pisteinä"
+#: abc2ly.py:1357
+msgid "be strict about succes"
+msgstr "ole tarkka onnistumisesta"
 
-#: lilypond-book.py:130
-msgid "deprecated, use --force-music-fontsize"
-msgstr "vanhentunut, käytä --force-music-fontsize"
+#: abc2ly.py:1359
+msgid "preserve ABC's notion of beams"
+msgstr "säilytä ABC:n palkkimerkinnät"
 
-#: lilypond-book.py:132 lilypond.py:130 main.cc:113 main.cc:118
-msgid "DIR"
-msgstr "DIR"
+#: abc2ly.py:1361 convert-ly.py:112 etf2ly.py:1208 lilypond-book.py:168
+#: midi2ly.py:911 musicxml2ly.py:505
+#, fuzzy
+msgid "Report bugs via"
+msgstr "Raportoi virheet osoitteeseen %s"
 
-#: lilypond-book.py:132
-msgid "include path"
-msgstr "sisällytä polku"
+#: convert-ly.py:41
+#, fuzzy
+msgid ""
+"Update LilyPond input to newer version.  By default, update from the\n"
+"version taken from the \\version command, to the current LilyPond version."
+msgstr ""
+"Päivitä LilyPond syöte uudempaan versioon.  Oletuksena päivittää\n"
+"versiosta joka on annettu \\version komennolla nykyiseksi LilyPond "
+"versioksi.\n"
+"Esimerkkejä:\n"
+"\n"
+"  convert-ly -e old.ly\n"
+"  convert-ly --from=2.3.28 --to 2.5.21 foobar.ly\n"
 
-#: lilypond-book.py:133
-msgid "write dependencies"
-msgstr "kirjoita riippuvuudet"
+#: convert-ly.py:43 lilypond-book.py:73
+#, fuzzy
+msgid "Examples:"
+msgstr "esimerkki"
 
-#: lilypond-book.py:134
-msgid "PREF"
-msgstr "PREF"
+#: convert-ly.py:56 lilypond-book.py:98 warn.cc:48 input.cc:90
+#, c-format, python-format
+msgid "warning: %s"
+msgstr "varoitus: %s"
 
-#: lilypond-book.py:134
-msgid "prepend PREF before each -M dependency"
-msgstr "laita PREF kunkin -M riippuvuuden eteen"
+#: convert-ly.py:59 lilypond-book.py:101 warn.cc:54 input.cc:96 input.cc:104
+#, c-format, python-format
+msgid "error: %s"
+msgstr "virhe: %s"
 
-#: lilypond-book.py:135
-msgid "don't run lilypond"
-msgstr "jätä suorittamatta lilypond"
+#: convert-ly.py:75 etf2ly.py:1190 lilypond-book.py:121 midi2ly.py:98
+msgid "Distributed under terms of the GNU General Public License."
+msgstr "Levitettävissä ehdoilla GNU General Public License."
 
-#: lilypond-book.py:136
-msgid "don't generate pictures"
-msgstr "jätä tuottamatta kuvat"
+#: convert-ly.py:76 etf2ly.py:1191 lilypond-book.py:122 midi2ly.py:99
+msgid "It comes with NO WARRANTY."
+msgstr "Se toimitetaan ILMAN TAKUUTA."
 
-#: lilypond-book.py:137
-msgid "strip all lilypond blocks from output"
-msgstr "riisu kaikki lilypond -osiot tulostuksesta"
+#: convert-ly.py:86 convert-ly.py:106
+msgid "VERSION"
+msgstr "VERSIO"
 
-#: lilypond-book.py:138 lilypond-book.py:139 lilypond.py:135 lilypond.py:136
-#: midi2ly.py:102 main.cc:114 main.cc:117
-msgid "FILE"
-msgstr "TIEDOSTO"
+#: convert-ly.py:88
+msgid "start from VERSION [default: \\version found in file]"
+msgstr "aloita versiosta VERSIO [oletus: \\version joka on tiedostossa]"
 
-#: lilypond-book.py:138
-msgid "filename main output file"
-msgstr "tiedostonimi päätulostustiedostolle"
+#: convert-ly.py:91
+msgid "edit in place"
+msgstr "editoi paikassaan"
 
-#: lilypond-book.py:139
-msgid "where to place generated files"
-msgstr "tuotettujen tiedostojen sijoituspaikka"
+#: convert-ly.py:94
+msgid "do not add \\version command if missing"
+msgstr "älä lisää \\version komentoa jos se puuttuu"
 
-#: lilypond-book.py:140 lilypond.py:137
-msgid "RES"
-msgstr "RES"
+#: convert-ly.py:100
+#, fuzzy
+msgid "show rules [default: --from=0, --to=@TOPLEVEL_VERSION@]"
+msgstr "tulosta säännöt [oletus: --from=0, --to=@TOPLEVEL_VERSION@]"
 
-#: lilypond-book.py:141 lilypond.py:138
-msgid "set the resolution of the preview to RES"
-msgstr "aseta esikatselulle tarkkuus RES"
+#: convert-ly.py:105
+msgid "convert to VERSION [default: @TOPLEVEL_VERSION@]"
+msgstr "muunnaa versioon VERSIO [oletus: @TOPLEVEL_VERSION@]"
 
-#: lilypond-book.py:142 lilypond.py:148 midi2ly.py:105 mup2ly.py:78 main.cc:126
-msgid "be verbose"
-msgstr "ole runsassanainen"
+#: convert-ly.py:153
+msgid "Applying conversion: "
+msgstr "Toteutetaan muunnos: "
 
-#: lilypond-book.py:143
-msgid "print version information"
-msgstr "tulosta versioinformaatio"
+#: convert-ly.py:166
+#, fuzzy
+msgid "Error while converting"
+msgstr "virhe muunnettaessa"
 
-#: lilypond-book.py:144 lilypond.py:150 midi2ly.py:107 mup2ly.py:80 main.cc:127
-msgid "show warranty and copyright"
-msgstr "näytä takuu ja copyright"
-
-#. format specific strings, ie. regex-es for input, and % strings for output
-#. global variables
-#. lilypond_binary = 'valgrind --suppressions=/home/hanwen/usr/src/guile-1.6.supp  --num-callers=10 /home/hanwen/usr/src/lilypond/lily/out/lilypond'
-#. only use installed binary  when we're installed too.
-#. only use installed binary  when we're installed too.
-#. ###############################################################
-#. Dimension handling for LaTeX.
-#.
-#. Ugh.  (La)TeX writes progress and error messages on stdout
-#. Redirect to stderr
-#: lilypond-book.py:230
-msgid "LaTeX failed."
-msgstr "LaTeX epäonnistui."
-
-#. URG see ly2dvi
-#. Convert numeric values, with or without specific dimension, to floats.
-#. Keep other strings
-#. ###############################################################
-#. How to output various structures.
-#. # maybe <hr> ?
-#. Verbatim text is always finished with \n.  FIXME: For HTML,
-#. this newline should be removed.
-#. Verbatim text is always finished with \n.  FIXME: For HTML,
-#. this newline should be removed.
-#. # Ugh we need to differentiate on origin:
-#. # lilypond-block origin wants an extra <p>, but
-#. # inline music doesn't.
-#. # possibly other center options?
-#. verbatim text is always finished with \n
-#. verbatim text is always finished with \n
-#. verbatim text is always finished with \n
-#. verbatim text is always finished with \n
-#. do some tweaking: @ is needed in some ps stuff.
-#.
-#. ugh, the <p> below breaks inline images...
-#. clumsy workaround for python 2.2 pre bug.
-#. ###############################################################
-#. Recognize special sequences in the input
-#. Warning: This uses extended regular expressions.  Tread with care.
-#.
-#. legenda
-#.
-#. (?P<name>regex) -- assign result of REGEX to NAME
-#. *? -- match non-greedily.
-#. (?m) -- multiline regex: make ^ and $ match at each line
-#. (?s) -- make the dot match all characters including newline
-#. why do we have distinction between @mbinclude and @include?
-#. # we'd like to catch and reraise a more
-#. # detailed error, but alas, the exceptions
-#. # changed across the 1.5/2.1 boundary.
-#. ughUGH not original options
-#. First we want to scan the \documentclass line
-#. it should be the first non-comment line.
-#. The only thing we really need to know about the \documentclass line
-#. is if there are one or two columns to begin with.
-#. Then we add everything before \begin{document} to
-#. paperguru.m_document_preamble so that we can later write this header
-#. to a temporary file in find_latex_dims() to find textwidth.
-#. this is not bulletproof..., it checks the first 10 chunks
-#. newchunks.extend (func (m))
-#. python 1.5 compatible:
-#. we have to check for verbatim before doing include,
-#. because we don't want to include files that are mentioned
-#. inside a verbatim environment
-#. ugh fix input
-#. # Hmm, we should hash only lilypond source, and skip the
-#. # %options are ...
-#. # comment line
-#. # todo: include path, but strip
-#. # first part of the path.
-#. format == 'html'
-#. ugh rename
-#. Count sections/chapters.
-#. # TODO: do something like
-#. # this for texinfo/latex as well ?
-#. ugh
-#. fixme: be sys-independent.
-#.
-#. Ugh, fixing up dependencies for .tex generation
-#.
-#. Ugh.  (La)TeX writes progress and error messages on stdout
-#. Redirect to stderr
-#. # There used to be code to write .tex dependencies, but
-#. # that is silly: lilypond-book has its own dependency scheme
-#. # to ensure that all lily-XXX.tex files are there
-#. # TODO: put file name in front of texidoc.
-#. #
-#. # what's this? Docme --hwn
-#. #
-#. #docme: why global?
-#. Do It.
-#. should chmod -w
-#: lilypond-book.py:1557 lilypond.py:673 midi2ly.py:1018
+#: convert-ly.py:168
+msgid "Stopping at last succesful rule"
+msgstr ""
+
+#: convert-ly.py:190
 #, python-format
-msgid "getopt says: `%s'"
-msgstr "getopt sanoo: `%s'"
+msgid "Processing `%s'... "
+msgstr "Prosessoidaan `%s'... "
 
-#. HACK
-#. status = os.system ('lilypond -w')
-#: lilypond-book.py:1630 lilypond.py:777
-msgid "no files specified on command line"
-msgstr "tiedostoja ei määritelty komentorivillä"
+#: convert-ly.py:277 relocate.cc:360 source-file.cc:54
+#, c-format, python-format
+msgid "cannot open file: `%s'"
+msgstr "tiedostoa ei voitu avata: `%s'"
 
-#.
-#. Petr, ik zou willen dat ik iets zinvoller deed,
-#. maar wat ik kan ik doen, het verandert toch niets?
-#. --hwn 20/aug/99
-#. !@PYTHON@
-#.
-#. lilypond.py -- Run LilyPond, add titles to bare score, generate printable
-#. document
-#. Invokes: lilypond, latex (or pdflatex), dvips, ps2pdf, gs
-#.
-#. source file of the GNU LilyPond music typesetter
-#.
-#. (c)  1998--2003  Han-Wen Nienhuys <hanwen@cs.uu.nl>
-#. Jan Nieuwenhuizen <janneke@gnu.org>
-#. This is the third incarnation of ly2dvi.
-#.
-#. Earlier incarnations of ly2dvi were written by
-#. Jeffrey B. Reed<daboys@austin.rr.com> (Python version)
-#. Jan Arne Fagertun <Jan.A.Fagertun@@energy.sintef.no> (Bourne shell script)
-#.
-#. Note: gettext work best if we use ' for docstrings and "
-#. for gettextable strings.
-#. --> DO NOT USE ''' for docstrings.
-#. ###############################################################
-#. Users of python modules should include this snippet
-#. and customize variables below.
-#. We'll suffer this path init stuff as long as we don't install our
-#. python packages in <prefix>/lib/pythonx.y (and don't kludge around
-#. it as we do with teTeX on Red Hat Linux: set some environment var
-#. (PYTHONPATH) in profile)
-#. If set, LILYPONDPREFIX must take prevalence
-#. if datadir is not set, we're doing a build and LILYPONDPREFIX
-#. Customize these
-#. if __name__ == '__main__':
-#. lilylib globals
-#. # FIXME
-#. # ly2dvi: silly name?
-#. # do -P or -p by default?
-#. #help_summary = _ ("Run LilyPond using LaTeX for titling")
-#: lilypond.py:121
-msgid "Run LilyPond, add titles, generate printable document."
-msgstr "Aja LilyPond, lisää otsikot, tuota tulostettava dokumentti."
-
-#: lilypond.py:127 main.cc:115
-msgid "write Makefile dependencies for every input file"
-msgstr "kirjoita Makefile -riippuvuudet kullekin tulostustiedostolle"
-
-#: lilypond.py:129
-msgid "print even more output"
-msgstr "kirjoita vieläpä enemmän tulostetta"
-
-#: lilypond.py:130
-msgid "add DIR to LilyPond's search path"
-msgstr "lisää DIR LilyPondin hakupolkuun"
-
-#: lilypond.py:132
+#: convert-ly.py:284
+#, fuzzy, python-format
+msgid "cannot determine version for `%s'.  Skipping"
+msgstr "ei voitu määrittää `%s':lle versiota. Sivuutetaan"
+
+#: etf2ly.py:1196
+#, fuzzy, python-format
+msgid "%s [OPTION]... ETF-FILE"
+msgstr "Käyttö: %s [OPTIO]... TIEDOSTO..."
+
+#: etf2ly.py:1198
+#, fuzzy
+msgid ""
+"Enigma Transport Format is a format used by Coda Music Technology's\n"
+"Finale product.  etf2ly converts a subset of ETF to a ready-to-use LilyPond "
+"file."
+msgstr ""
+"Enigma Transport Format on Coda Music Technology:n Finale-tuotteen\n"
+"tallennusmuoto. Tämä ohjelma muuntaa ETF-muodon osajoukon\n"
+"LilyPondilla käytettäväksi."
+
+#: etf2ly.py:1201 midi2ly.py:886 musicxml2ly.py:498 main.cc:172 main.cc:178
+msgid "FILE"
+msgstr "TIEDOSTO"
+
+#: etf2ly.py:1203 lilypond-book.py:165 midi2ly.py:899 main.cc:185
+msgid "show warranty and copyright"
+msgstr "näytä takuu ja copyright"
+
+#: lilypond-book.py:71
+msgid ""
+"Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
+msgstr ""
+
+#: lilypond-book.py:78
+msgid "BOOK"
+msgstr ""
+
+#: lilypond-book.py:87
 #, python-format
-msgid "keep all output, output to directory %s.dir"
-msgstr "säilytä kaikki tulosteet, kirjoita hakemistoon %s.dir"
+msgid "Exiting (%d)..."
+msgstr "Lopetetaan (%d)..."
 
-#: lilypond.py:133
-msgid "don't run LilyPond"
-msgstr "jätä ajamatta LilyPond"
+#: lilypond-book.py:119
+#, python-format
+msgid "Copyright (c) %s by"
+msgstr "Copyright (c) %s by"
 
-#: lilypond.py:134 main.cc:116
-msgid "produce MIDI output only"
-msgstr "tuota vain MIDI -tuloste"
+#: lilypond-book.py:129
+msgid "FILTER"
+msgstr "FILTER"
 
-#: lilypond.py:135 midi2ly.py:102
-msgid "write output to FILE"
-msgstr "tulosta tiedostoon TIEDOSTO"
+#: lilypond-book.py:132
+msgid "pipe snippets through FILTER [convert-ly -n -]"
+msgstr "putkita palaset kohteen FILTER läpi [convert-ly -n -]"
 
-#: lilypond.py:136
-msgid "find pfa fonts used in FILE"
-msgstr "etsi pfa fontit joita käytettiin tiedostossa TIEDOSTO"
+#: lilypond-book.py:135
+msgid ""
+"use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
+msgstr ""
+"käytä tulostusmuotona formaattia FMT (texi [oletus], texi-html, latex, html, "
+"docbook)"
 
-#: lilypond.py:139
-msgid "generate PostScript output"
-msgstr "tuota PostScript -tuloste"
+#: lilypond-book.py:138
+msgid "add DIR to include path"
+msgstr "lisää HAKEMISTO hakupolkuun"
 
-#: lilypond.py:140
-msgid "generate PNG page images"
-msgstr "tuota PNG -kuvat sivuista"
+#: lilypond-book.py:139 lilypond-book.py:144 main.cc:171
+msgid "DIR"
+msgstr "HAKEMISTO"
 
-#: lilypond.py:141
-msgid "generate PS.GZ"
-msgstr "tuota PS.GZ"
+#: lilypond-book.py:143
+msgid "write output to DIR"
+msgstr "tulosta polkuun HAKEMISTO"
 
-#: lilypond.py:142
-msgid "generate PDF output"
-msgstr "tuota PDF -tuloste"
+#: lilypond-book.py:147
+msgid "COMMAND"
+msgstr "KOMENTO"
 
-# käytä pdflatex:ia tuottaaksesi PDF -tulosteen
-#: lilypond.py:143
-msgid "use pdflatex to generate a PDF output"
-msgstr "käytä pdflatex:ia tuottaaksesi PDF -tulosteen"
+#: lilypond-book.py:148
+msgid "process ly_files using COMMAND FILE..."
+msgstr "prosessoi ly_tiedostot käyttäen komentoa COMMAND FILE..."
 
-#. FIXME: preview, picture; to indicate creation of a PNG?
-#: lilypond.py:145
-msgid "make a picture of the first system"
-msgstr "tee kuva ensimmäisestä kokonaisuudesta"
+#: lilypond-book.py:154
+msgid "Create PDF files for use with PDFTeX"
+msgstr ""
 
-#: lilypond.py:146
-msgid "make HTML file with links to all output"
-msgstr "tee HTML -tiedosto johon on linkitetty kaikki tulosteet"
+#: lilypond-book.py:157
+msgid ""
+"extract all PostScript fonts into INPUT.psfonts for LaTeX\n"
+"must use this with dvips -h INPUT.psfonts"
+msgstr ""
+"poimi kaikki PostScript-fontit tiedostoon INPUT.psfonts LaTeX:ia varten\n"
+"tätä täytyy käyttää dvips -h INPUT.psfonts :in kanssa"
 
-#: lilypond.py:147
-msgid "KEY=VAL"
-msgstr "KEY=VAL"
+#: lilypond-book.py:160 midi2ly.py:896 musicxml2ly.py:489 main.cc:184
+msgid "be verbose"
+msgstr "tulosta runsaasti käsittelytietoa"
 
-#: lilypond.py:147
-msgid "change global setting KEY to VAL"
-msgstr "vaihda globaali asetus KEY arvoksi VAL"
+#: lilypond-book.py:773
+#, python-format
+msgid "file not found: %s"
+msgstr "tiedostoa %s ei löydy"
 
-#: lilypond.py:149 midi2ly.py:106 mup2ly.py:79 main.cc:125
-msgid "print version number"
-msgstr "tulosta versionumero"
+#: lilypond-book.py:1004
+#, python-format
+msgid "deprecated ly-option used: %s=%s"
+msgstr "vanhentunut ly-optio käytössä: %s=%s"
 
-#. other globals
-#. Pdftex support
-#. # yuk.
-#. lilypond_binary = 'valgrind --suppressions=%(home)s/usr/src/guile-1.6.supp --num-callers=10 %(home)s/usr/src/lilypond/lily/out/lilypond '% { 'home' : '/home/hanwen' }
-#. only use installed binary  when we're installed too.
-#. init to empty; values here take precedence over values in the file
-#. # TODO: change name.
-#. for geometry v3
-#. Output formats that ly2dvi should create
-#. what a name.
-#. ly.warning (_ ("invalid value: %s") % `val`)
-#. ly.warning (_ ("invalid value: %s") % `val`)
-#: lilypond.py:232
+#: lilypond-book.py:1007
 #, python-format
-msgid "no such setting: `%s'"
-msgstr "asetusta ei löydy: `%s'"
+msgid "compatibility mode translation: %s=%s"
+msgstr "yhteensopivuusmuodon käännös: %s=%s"
 
-#. 2 == user interrupt.
-#: lilypond.py:274
+#: lilypond-book.py:1011
 #, python-format
-msgid "LilyPond crashed (signal %d)."
-msgstr "LilyPond kaatui (signaali %d)."
+msgid "deprecated ly-option used: %s"
+msgstr "vanhentunut ly-optio käytössä: %s"
 
-#: lilypond.py:275
-msgid "Please submit a bug report to bug-lilypond@gnu.org"
-msgstr "Ole hyvä ja lähetä virheraportti osoitteeseen bug-lilypond@gnu.org"
+#: lilypond-book.py:1014
+#, python-format
+msgid "compatibility mode translation: %s"
+msgstr "yhteensopivuusmuodon käännös: %s"
 
-#: lilypond.py:281
+#: lilypond-book.py:1033
 #, python-format
-msgid "LilyPond failed on input file %s (exit status %d)"
-msgstr "LilyPond epäonnistui syöttötiedoston %s kohdalla (lopetustila %d)."
+msgid "ignoring unknown ly option: %s"
+msgstr "sivuutetaan tuntematon ly -optio: %s"
 
-#: lilypond.py:284
+#: lilypond-book.py:1388
 #, python-format
-msgid "LilyPond failed on an input file (exit status %d)"
-msgstr "LilyPond epäonnistui syöttötiedoston kohdalla (lopetustila %d)."
+msgid "Opening filter `%s'"
+msgstr "Avataan filtteri `%s'"
 
-#: lilypond.py:285
-msgid "Continuing..."
-msgstr "Jatketaan..."
+#: lilypond-book.py:1405
+#, python-format
+msgid "`%s' failed (%d)"
+msgstr "`%s' epäonnistui (%d)"
 
-#. urg
-#: lilypond.py:296
+#: lilypond-book.py:1406
+msgid "The error log is as follows:"
+msgstr "Virheloki on seuraava:"
+
+#: lilypond-book.py:1476
+#, fuzzy
+msgid "cannot find \\begin{document} in LaTeX document"
+msgstr "Ei voitu löytää \\begin{document} LaTeX-documentista"
+
+#: lilypond-book.py:1586
+msgid "Writing snippets..."
+msgstr "Kirjoitetaan palasia..."
+
+#: lilypond-book.py:1591
+msgid "Processing..."
+msgstr "Prosessoidaan..."
+
+#: lilypond-book.py:1595
+msgid "All snippets are up to date..."
+msgstr "Kaikki palaset on päivitetty..."
+
+#: lilypond-book.py:1605
 #, python-format
-msgid "Analyzing %s..."
-msgstr "Analysoidaan %s..."
+msgid "cannot determine format for: %s"
+msgstr "ei löytynyt formaattia: %s"
 
-#. search only the first 10k
-#: lilypond.py:354
+#: lilypond-book.py:1616
 #, python-format
-msgid "no LilyPond output found for `%s'"
-msgstr "`%s' jäi ilman LilyPond -tulostetta"
+msgid "%s is up to date."
+msgstr "%s on päivitetty."
 
-#. The final \n seems important here. It ensures that the footers and taglines end up on the right page.
-#. TODO: should set textheight (enlarge) depending on papersize.
-#: lilypond.py:397
+#: lilypond-book.py:1622
 #, python-format
-msgid "invalid value: `%s'"
-msgstr "epäkelpo arvo: `%s'"
-
-#. set sane geometry width (a4-width) for linewidth = -1.
-#. who the hell is 597 ?
-#. Ugh.  (La)TeX writes progress and error messages on stdout
-#. Redirect to stderr
-#: lilypond.py:511
-msgid "LaTeX failed on the output file."
-msgstr "LaTeX epäonnistui tulostustiedossa."
-
-#. make a preview by rendering only the 1st line
-#. of each score
-#: lilypond.py:568
-msgid ""
-"Trying create PDF, but no PFA fonts found.\n"
-"Using bitmap fonts instead. This will look bad."
-msgstr ""
-"Yritetään tuottaa PDF, mutta PFA fontteja ei löytynyt.\n"
-"Käytetään bittikarttafonttejan niiden sijasta. Tulos ei näytä hyvältä."
-
-#. ugh. Different targets?
-#. Added as functionality to ly2dvi, because ly2dvi may well need to do this
-#. in future too.
-#. no ps header?
-#: lilypond.py:615
+msgid "Writing `%s'..."
+msgstr "Kirjoitetaan `%s'..."
+
+#: lilypond-book.py:1677
+msgid "Output would overwrite input file; use --output."
+msgstr "Tuloste kirjautuisi syötetiedoston päälle; käytä --output."
+
+#: lilypond-book.py:1681
 #, python-format
-msgid "not a PostScript file: `%s'"
-msgstr "ei ole PostScript-tiedosto: `%s'"
+msgid "Reading %s..."
+msgstr "Luetaan %s..."
 
-#. todo
-#: lilypond.py:660
+#: lilypond-book.py:1700
+msgid "Dissecting..."
+msgstr "Analysoidaan..."
+
+#: lilypond-book.py:1716
 #, python-format
-msgid "Writing HTML menu `%s'"
-msgstr "Kirjoitetan HTML-valikko `%s'..."
-
-#. signal programming error
-#. Don't convert input files to abspath, rather prepend '.' to include
-#. path.
-#. As a neat trick, add directory part of first input file
-#. to include path.  That way you can do without the clumsy -I in:
-#. ly2dvi -I foe/bar/baz foo/bar/baz/baz.ly
-#: lilypond.py:769
-msgid "pseudo filter"
-msgstr "valefiltteri"
-
-#: lilypond.py:772
-msgid "pseudo filter only for single input file"
-msgstr "valefiltteroi ain yksi tulostetiedosto"
-
-#. Ugh, maybe make a setup () function
-#. hmmm. Wish I'd 've written comments when I wrote this.
-#. now it looks complicated.
-#: lilypond.py:806
+msgid "Compiling %s..."
+msgstr "Kootaan %s..."
+
+#: lilypond-book.py:1725
 #, python-format
-msgid "filename should not contain spaces: `%s'"
-msgstr "tiedostoniemessä ei saa olla välilyöntejä: `%s'"
-
-#. to be sure, add tmpdir *in front* of inclusion path.
-#. os.environ['TEXINPUTS'] =  tmpdir + ':' + os.environ['TEXINPUTS']
-#. We catch all exceptions, because we need to do stuff at exit:
-#. * copy any successfully generated stuff from tempdir and
-#. notify user of that
-#. * cleanout tempdir
-#. ## ARGH. This also catches python programming errors.
-#. ## this should only catch lilypond nonzero exit  status
-#. ## --hwn
-#. TODO: friendly message about LilyPond setup/failing?
-#.
-#: lilypond.py:845
-msgid "Running LilyPond failed. Rerun with --verbose for a trace."
-msgstr "LilyPond -ajo epäonnistui. Aja uudelleen lisäten --verbose jäljitystä varten."
-
-#. Our LilyPond pseudo filter always outputs to 'lelie'
-#. have subsequent stages and use 'lelie' output.
-#. unless: add --tex, or --latex?
-#. TODO: friendly message about TeX/LaTeX setup,
-#. trying to run tex/latex by hand
-#: lilypond.py:886
-msgid "Failed to make PS file. Rerun with --verbose for a trace."
-msgstr "Epäonnistui PS -tiedoston tuottamisessa. Aja uudelleen lisäten --verbose jäljitystä varten."
-
-#. unless: add --tex, or --latex?
-#. TODO: friendly message about TeX/LaTeX setup,
-#. trying to run tex/latex by hand
-#: lilypond.py:916
-msgid "Running LaTeX falied. Rerun with --verbose for a trace."
-msgstr "LaTeX -ajo epäonnistui. Aja uudelleen lisäten --verbose jäljitystä varten."
-
-#. add DEP to targets?
-#: lilypond.py:926 input-file-results.cc:68
-#, c-format, python-format
-msgid "dependencies output to `%s'..."
-msgstr "riippuvuuksien tulosteet paikkaan `%s'"
+msgid "Processing include: %s"
+msgstr "Prosessoidaan sisällytetävä: %s"
 
-#: lilypond.py:937
+#: lilypond-book.py:1739
 #, python-format
-msgid "%s output to <stdout>..."
-msgstr "%s -tuloste paikkaan <stdout>..."
+msgid "Removing `%s'"
+msgstr "Poistetaan `%s'"
 
-#: lilypond.py:942 lilypond.py:968 includable-lexer.cc:57
-#: input-file-results.cc:191 input-file-results.cc:197 lily-guile.cc:86
-#, c-format, python-format
-msgid "can't find file: `%s'"
-msgstr "tiedostoa ei löydy: `%s'"
+#: lilypond-book.py:1815
+#, python-format
+msgid "Writing fonts to %s..."
+msgstr "Kirjoitetaan fontteja hakemistoon %s..."
+
+#: lilypond-book.py:1830
+msgid "option --psfonts not used"
+msgstr "optiota --psfonts=FILE ei käytetty"
+
+#: lilypond-book.py:1831
+msgid "processing with dvips will have no fonts"
+msgstr "prosessointi dvips:illä ei sisällä fontteja"
+
+#: lilypond-book.py:1834
+msgid "DVIPS usage:"
+msgstr "DVIPS käyttö:"
+
+#: midi2ly.py:106 lily-library.scm:624 lily-library.scm:632
+msgid "warning: "
+msgstr "varoitus: "
+
+#: midi2ly.py:109 midi2ly.py:924
+msgid "error: "
+msgstr "virhe: "
 
-#. Hmm, if this were a function, we could call it the except: clauses
-#: lilypond.py:965
+#: midi2ly.py:110
+msgid "Exiting ... "
+msgstr "Lopettaa ... "
+
+#: midi2ly.py:857
 #, python-format
-msgid "%s output to %s..."
-msgstr "%s -tuloste paikkaan %s..."
+msgid "%s output to `%s'..."
+msgstr "%s tulostetaan paikkaan `%s'..."
 
-#. !@PYTHON@
-#.
-#. midi2ly.py -- LilyPond midi import script
-#.
-#. source file of the GNU LilyPond music typesetter
-#.
-#. (c)  1998--2003  Han-Wen Nienhuys <hanwen@cs.uu.nl>
-#. Jan Nieuwenhuizen <janneke@gnu.org>
-#. ###############################################################
-#. Users of python modules should include this snippet.
-#.
-#. This soon to be removed for: import lilypond.lilylib as ly
-#. ###############################################################
-#. ###############################################################
-#. ############### CONSTANTS
-#. ###############################################################
-#. temp_dir = os.path.join (original_dir,  '%s.dir' % program_name)
-#. original_dir = os.getcwd ()
-#. keep_temp_dir_p = 0
-#: midi2ly.py:94
-msgid "Convert MIDI to LilyPond source."
+#: midi2ly.py:871 musicxml2ly.py:485
+#, fuzzy, python-format
+msgid "Convert %s to LilyPond input."
 msgstr "Muunna MIDI LilyPond -muotoon."
 
-#: midi2ly.py:97
+#: midi2ly.py:875
 msgid "print absolute pitches"
-msgstr "tulosta tarkat äänenkorkeudet"
+msgstr "tulosta tarkat äänenkorkeudet"
 
-#: midi2ly.py:98 midi2ly.py:103
+#: midi2ly.py:877 midi2ly.py:889
 msgid "DUR"
 msgstr "PIT"
 
-#: midi2ly.py:98
+#: midi2ly.py:878
 msgid "quantise note durations on DUR"
 msgstr "kvantisoi nuottipituuden PIT perusteella"
 
-# tulosta yksikäsitteiset nuottipituudet
-#: midi2ly.py:99
+# tulosta yksikäsitteiset nuottipituudet
+#: midi2ly.py:881
 msgid "print explicit durations"
-msgstr "tulosta yksikäsitteiset nuottipituudet"
+msgstr "tulosta yksikäsitteiset nuottipituudet"
+
+#: midi2ly.py:882
+msgid "set key: ALT=+sharps|-flats; MINOR=1"
+msgstr "aseta sävellaji: ETUMERKIT=+ylennykset|-alennukset; MOLLI=1"
 
-#: midi2ly.py:101
+#: midi2ly.py:883
 msgid "ALT[:MINOR]"
 msgstr "ETUMERKIT[:MOLLI]"
 
-#: midi2ly.py:101
-msgid "set key: ALT=+sharps|-flats; MINOR=1"
-msgstr "aseta sävellaji: ETUMERKIT=+ylennykset|-alennukset; MOLLI=1"
-
-#: midi2ly.py:103
+#: midi2ly.py:888
 msgid "quantise note starts on DUR"
 msgstr "nuottien kvantisointi alkukohtana PIT"
 
-#: midi2ly.py:104
+#: midi2ly.py:891
 msgid "DUR*NUM/DEN"
-msgstr "PIT*OSOITTAJA/NIMITTÄJÄ"
+msgstr "PIT*OSOITTAJA/NIMITTÄJÄ"
 
 # tuplet = Wertaufteilung nach: Peter Giger: Die Kunst des Rhythmus, Seite 25
-#: midi2ly.py:104
+#: midi2ly.py:894
 msgid "allow tuplet durations DUR*NUM/DEN"
-msgstr "salli tupletti -pituudet PIT*OSOITTAJA/NIMITTÄJÄ"
+msgstr "salli tupletti -pituudet PIT*OSOITTAJA/NIMITTÄJÄ"
 
-#: midi2ly.py:108
+#: midi2ly.py:902
 msgid "treat every text as a lyric"
-msgstr "käsittele kaikki tekstit lyriikkana"
+msgstr "käsittele kaikki tekstit lyriikkana"
 
-#: midi2ly.py:136 mup2ly.py:130
-msgid " 2001--2003"
-msgstr " 2001--2003"
+#: midi2ly.py:905
+#, fuzzy
+msgid "Examples"
+msgstr "esimerkki"
 
-#: midi2ly.py:141 mup2ly.py:135
-msgid ""
-"\n"
-"Distributed under terms of the GNU General Public License. It comes with\n"
-"NO WARRANTY."
-msgstr ""
-"\n"
-"Levitetään ehdolla GNU General Public License\n"
-"ja ilman TAKUUTA."
-
-#: midi2ly.py:166 mup2ly.py:162
-msgid "Exiting ... "
-msgstr "Lopettaa ... "
-
-#: midi2ly.py:264 mup2ly.py:261
-#, python-format
-msgid "command exited with value %d"
-msgstr "komento lopetettiin tilassa %d"
-
-#. ###############################################################
-#. END Library
-#. ###############################################################
-#. hmm
-#. major scale: do-do
-#. minor scale: la-la  (= + 5) '''
-#. By tradition, all scales now consist of a sequence
-#. of 7 notes each with a distinct name, from amongst
-#. a b c d e f g.  But, minor scales have a wide
-#. second interval at the top - the 'leading note' is
-#. sharped. (Why? it just works that way! Anything
-#. else doesn't sound as good and isn't as flexible at
-#. saying things. In medieval times, scales only had 6
-#. notes to avoid this problem - the hexachords.)
-#. So, the d minor scale is d e f g a b-flat c-sharp d
-#. - using d-flat for the leading note would skip the
-#. name c and duplicate the name d.  Why isn't c-sharp
-#. put in the key signature? Tradition. (It's also
-#. supposedly based on the Pythagorean theory of the
-#. cycle of fifths, but that really only applies to
-#. major scales...)  Anyway, g minor is g a b-flat c d
-#. e-flat f-sharp g, and all the other flat minor keys
-#. end up with a natural leading note. And there you
-#. have it.
-#. John Sankey <bf250@freenet.carleton.ca>
-#.
-#. Let's also do a-minor: a b c d e f gis a
-#.
-#. --jcn
-#. as -> gis
-#. des -> cis
-#. ges -> fis
-#. g -> fisis
-#. d -> cisis
-#. a -> gisis
-#. b -> ces
-#. e -> fes
-#. f -> eis
-#. c -> bis
-#. # FIXME: compile fix --jcn
-#. TODO: move space
-#. fis cis gis dis ais eis bis
-#. bes es as des ges ces fes
-#. urg, we should be sure that we're in a lyrics staff
-#. all include ALL_NOTES_OFF
-#. ugh, must set key while parsing
-#. because Note init uses key
-#. Better do Note.calc () at dump time?
-#. last_lyric.clocks = t - last_time
-#. hmm
-#. urg, this will barf at meter changes
-#. urg LilyPond doesn't start at c4, but
-#. remembers from previous tracks!
-#. reference_note = Note (clocks_per_4, 4*12, 0)
-#. must be in \notes mode for parsing \skip
-#: midi2ly.py:1002
-#, python-format
-msgid "%s output to `%s'..."
-msgstr "%s -tuloste paikkaan `%s'..."
+#: midi2ly.py:925
+msgid "no files specified on command line."
+msgstr "tiedostoja ei annettu komentorivillä."
 
-#: midi2ly.py:1033
-msgid "Example:"
-msgstr "Esimerkki:"
+#: musicxml2ly.py:473
+msgid "musicxml2ly FILE.xml"
+msgstr ""
 
-#: midi2ly.py:1083
-msgid "no files specified on command line."
-msgstr "tiedostoja ei annettu komentorivillä."
+#: musicxml2ly.py:476
+#, fuzzy, python-format
+msgid ""
+"This program is free software.  It is covered by the GNU General Public\n"
+"License and you are welcome to change it and/or distribute copies of it\n"
+"under certain conditions.  Invoke as `%s --warranty' for more\n"
+"information."
+msgstr ""
+"Tämä on ilmaisohjelmisto. Siihen sovelletaan GNU General Public License\n"
+"ja olet tervetullut muuttamaan ohjelmaa ja/tai levittämään siitä kopioita\n"
+"tietyillä ehdoilla. Suorita `%s --warranty' saadaksesi lisäinformaatiota.\n"
 
-#. !@PYTHON@
-#. mup2ly.py -- mup input converter
-#.
-#. source file of the GNU LilyPond music typesetter
-#.
-#. (c) 2001
-#. if set, LILYPONDPREFIX must take prevalence
-#. if datadir is not set, we're doing a build and LILYPONDPREFIX
-#: mup2ly.py:70
-msgid "Convert mup to LilyPond source."
-msgstr "Muunna mup LilyPond-muotoon."
-
-#: mup2ly.py:73
-msgid "debug"
-msgstr "testaa"
-
-#: mup2ly.py:74
-msgid "define macro NAME [optional expansion EXP]"
-msgstr "määrittele makro NAME [vaihtoehtoinen laajennus EXP]"
-
-#: mup2ly.py:77
-msgid "only pre-process"
-msgstr "vain esiprosessointi"
-
-#. Duh.  Python style portable: cp *.EXT OUTDIR
-#. system ('cp *.%s %s' % (ext, outdir), 1)
-#. Python < 1.5.2 compatibility
-#.
-#. On most platforms, this is equivalent to
-#. `normpath(join(os.getcwd()), PATH)'.  *Added in Python version 1.5.2*
-#. if set, LILYPONDPREFIX must take prevalence
-#. if datadir is not set, we're doing a build and LILYPONDPREFIX
-#. ###############################################################
-#. END Library
-#.
-#. PMX cut and paste
-#.
-#. if not self.entries:
-#. #return '\n'
-#. #ugh ugh
-#. return '\n%s = {}\n\n' % self.idstring ()
-#. ugh
-#. def set_clef (self, letter):
-#. clstr = clef_table[letter]
-#. self.voices[0].add_nonchord (Clef (clstr))
-#. urg
-#. maybe use import copy?
-#. for i in self.pitches:
-#. ch.pitches.append (i)
-#. for i in self.scripts:
-#. ch.scripts.append (i)
-#. http://www.arkkra.com/doc/uguide/contexts.html
-#. #self.current_staffs = []
-#. duh
-#. FIXME: 1?
-#. FIXME: does key play any role in this?
-#. ch = self.current_voices[0].last_chord ()
-#. ch.basic_duration = self.current_voices[0].last_chord ().basic_duration
-#. ugh
-#. ch = self.current_voices[0].last_chord ()
-#. `;' is not a separator, chords end with ';'
-#. mup resets default duration and pitch each bar
-#. ugh: these (and lots more) should also be parsed in
-#. context staff.  we should have a class Staff_properties
-#. and parse/set all those.
-#. shortcut: set to official mup maximum (duh)
-#. self.set_staffs (40)
-#: mup2ly.py:1076
-#, python-format
-msgid "no such context: %s"
-msgstr "kontekstia ei ole: %s"
-
-#. hmm
-#. dig this: mup allows ifdefs inside macro bodies
-#. don't do nested multi-line defines
-#. duh: mup is strictly line-based, except for `define',
-#. which is `@' terminated and may span several lines
-#. don't define new macros in unactive areas
-#. To support nested multi-line define's
-#. process_function and macro_name, macro_body
-#. should become lists (stacks)
-#. The mup manual is undetermined on this
-#. and I haven't seen examples doing it.
-#.
-#. don't do nested multi-line define's
-#. writes to stdout for help2man
-#. don't call
-#. identify ()
-#. sys.stdout.flush ()
-#. handy emacs testing
-#. if not files:
-#. files = ['template.mup']
-#: mup2ly.py:1300
-#, python-format
-msgid "Processing `%s'..."
-msgstr "Prosessoidaan `%s'..."
+#: musicxml2ly.py:495
+msgid "Use lxml.etree; uses less memory and cpu time."
+msgstr ""
 
-#: mup2ly.py:1319
-#, python-format
-msgid "Writing `%s'..."
-msgstr "Kirjoitetaan `%s'..."
+#: musicxml2ly.py:503
+msgid "set output filename to FILE"
+msgstr "tulosta tiedostoon TIEDOSTO"
 
-#: getopt-long.cc:146
+#: getopt-long.cc:140
 #, c-format
 msgid "option `%s' requires an argument"
 msgstr "optio `%s' vaatii argumentin"
 
-#: getopt-long.cc:150
-#, c-format
-msgid "option `%s' doesn't allow an argument"
+#: getopt-long.cc:144
+#, fuzzy, c-format
+msgid "option `%s' does not allow an argument"
 msgstr "optio `%s' ei salli argumenttia"
 
-#: getopt-long.cc:154
+#: getopt-long.cc:148
 #, c-format
 msgid "unrecognized option: `%s'"
 msgstr "tunnistamaton optio: `%s'"
 
-#: getopt-long.cc:161
+#: getopt-long.cc:154
 #, c-format
 msgid "invalid argument `%s' to option `%s'"
-msgstr "epäkelpo argumentti `%s' optiolle `%s'"
-
-#: warn.cc:25
-#, c-format
-msgid "warning: %s\n"
-msgstr "varoitus: %s\n"
-
-#: warn.cc:31
-#, c-format
-msgid "error: %s\n"
-msgstr "virhe: %s\n"
+msgstr "epäkelpo argumentti `%s' optiolle `%s'"
 
-#: warn.cc:44
+#: warn.cc:68 grob.cc:559 input.cc:82
 #, c-format
-msgid "programming error: %s (Continuing; cross thumbs)\n"
-msgstr "ohjelmointivirhe: %s (jatketaan; risti kädet)\n"
+msgid "programming error: %s"
+msgstr "ohjelmointivirhe: %s"
 
-#: accidental.cc:202 key-signature-interface.cc:137
-#, c-format
-msgid "accidental `%s' not found"
-msgstr "korotusmerkkiä `%s' ei löydy"
+#: warn.cc:69 input.cc:83
+msgid "continuing, cross fingers"
+msgstr "jatketaan, ristitään kädet"
 
-#: accidental-engraver.cc:171 new-accidental-engraver.cc:238
+#: accidental-engraver.cc:240
 #, c-format
-msgid "Accidental typesetting list must begin with context-name: %s"
-msgstr "Korotusmerkkien ladontalista täytyy alkaa konteksti-nimellä: %s"
+msgid "accidental typesetting list must begin with context-name: %s"
+msgstr "Korotusmerkkien ladontalista täytyy alkaa konteksti-nimellä: %s"
 
-#: accidental-engraver.cc:196 new-accidental-engraver.cc:263
+#: accidental-engraver.cc:268
 #, c-format
-msgid "unknown accidental typesetting: %s. Ignored"
-msgstr "tuntematan kortusmerkkien ladonta: %s. Sivuutetaan"
+msgid "ignoring unknown accidental: %s"
+msgstr "sivutetaan tuntematan etumerkki: %s"
 
-#: accidental-engraver.cc:212 new-accidental-engraver.cc:279
+#: accidental-engraver.cc:284
 #, c-format
-msgid "Symbol is not a parent context: %s. Ignored"
-msgstr "Symboli ei ole yläkonteksti: %s. Sivuutetaan"
+msgid "pair or context-name expected for accidental rule, found %s"
+msgstr "pari tai konteksti-nimi oletettiin korotusmerkkisäännölle, löytyi %s"
 
-#: accidental-engraver.cc:215 new-accidental-engraver.cc:282
+#: accidental.cc:243 key-signature-interface.cc:133
 #, c-format
-msgid "Accidental typesetting must be pair or context-name: %s"
-msgstr "Korotusmerkkien ladonta täytyy olla pari tai konteksti-nimi: %s"
+msgid "accidental `%s' not found"
+msgstr "korotusmerkkiä `%s' ei löydy"
 
-#: afm.cc:66
-#, c-format
-msgid "can't find character number: %d"
-msgstr "ei löytynyt merkkiä: %d"
+#: align-interface.cc:222
+msgid ""
+"vertical alignment called before line-breaking.\n"
+"Only do cross-staff spanners with PianoStaff."
+msgstr ""
+"pystysyora sijoittelu kutsuttiin ennen rivinkatkaisua.\n"
+"Viivaston ylittävät ladokkeet tehdään vain PianoStaff:in yhteydessä."
 
-#: afm.cc:81
-#, c-format
-msgid "can't find character called: `%s'"
-msgstr "ei löytynyt merkkiä nimeltä: `%s'"
+#: align-interface.cc:329
+#, fuzzy
+msgid "tried to get a translation for something that is no child of mine"
+msgstr "yritettiin saada käännösteksti jollekin, joka ei ole lapseni"
 
-#: afm.cc:142
+#: all-font-metrics.cc:173
 #, c-format
-msgid "Error parsing AFM file: `%s'"
-msgstr "Virhe jäsennettäessä AFM-tiedostoa: `%s'"
+msgid "cannot find font: `%s'"
+msgstr "ei löytynyt fonttia: `%s'"
 
-#: all-font-metrics.cc:95
-#, c-format
-msgid "checksum mismatch for font file: `%s'"
-msgstr "virhesumma ei täsmää fonttitiedostolle: `%s'"
+#: apply-context-iterator.cc:31
+msgid "\\applycontext argument is not a procedure"
+msgstr "\\applycontext vaatii funktioargumentin"
 
-#: all-font-metrics.cc:97
+#: auto-change-iterator.cc:63 change-iterator.cc:61
 #, c-format
-msgid "does not match: `%s'"
-msgstr "ei täsmää: `%s'"
+msgid "cannot change, already in translator: %s"
+msgstr "ei voitu vaihtaa, oli jo tulkitsijassa: %s"
 
-#: all-font-metrics.cc:102
-msgid " Rebuild all .afm files, and remove all .pk and .tfm files.  Rerun with -V to show font paths."
-msgstr " Uudista kaikki .afm -tiedosto, ja poista kaikki .pk ja .tfm -tiedostot.  Aja uudelleen lisäten -V nähdäksesi fonttipolut."
+#: axis-group-engraver.cc:78
+msgid "Axis_group_engraver: vertical group already has a parent"
+msgstr "Axis_group_engraver: vertikaaliryhmällä on jo vanhempi"
 
-#: all-font-metrics.cc:103
-msgid ""
-"A script for removing font-files is delivered with the source-code,\n"
-"in buildscripts/clean-fonts.sh"
-msgstr ""
-"Skripti fonttitiedostojen poistamista varten toimitetaan lähde-koodin mukaan,\n"
-"tiedostossa buildscripts/clean-fonts.sh"
+#: axis-group-engraver.cc:79
+msgid "are there two Axis_group_engravers?"
+msgstr "onko käytössä kaksi Axis_group_engraver:ia?"
 
-#: all-font-metrics.cc:169
-#, c-format
-msgid "can't find font: `%s'"
-msgstr "ei löytynyt fonttia: `%s'"
+#: axis-group-engraver.cc:80
+msgid "removing this vertical group"
+msgstr "poistetaan tämä vertikaaliryhmä"
 
-#: all-font-metrics.cc:170
-msgid "Loading default font"
-msgstr "Ladataan oletusfontti"
+#: axis-group-interface.cc:96
+msgid "tried to calculate pure-height at a non-breakpoint"
+msgstr "yritettiin laskea korkeus ei-katkaisukohdassa"
 
-#: all-font-metrics.cc:185
-#, c-format
-msgid "can't find default font: `%s'"
-msgstr "ei löytynyt oletusfonttia: `%s'"
+#: axis-group-interface.cc:370
+msgid "an outside-staff object should have a direction, defaulting to up"
+msgstr ""
 
-#: all-font-metrics.cc:186 includable-lexer.cc:59 input-file-results.cc:192
+#: axis-group-interface.cc:383
 #, c-format
-msgid "(search path: `%s')"
-msgstr "(hakupolku: `%s')"
-
-#: all-font-metrics.cc:187
-msgid "Giving up"
-msgstr "Luovutetaan"
-
-#: auto-change-iterator.cc:43 change-iterator.cc:60
-#: part-combine-music-iterator.cc:120
-msgid "Can't switch translators, I'm there already"
-msgstr "Ei voitu muuttaa kääntää, on jo valittuna"
+msgid "outside-staff object %s has an empty extent"
+msgstr ""
 
-#: bar-check-iterator.cc:51
+#: bar-check-iterator.cc:73
 #, c-format
 msgid "barcheck failed at: %s"
-msgstr "tahtiviivan tarkistus epäonnistui kohdassa: %s"
-
-#: beam.cc:146
-msgid "beam has less than two visible stems"
-msgstr "palkissa on vähemmän kuin kaksi pystyviivaa"
-
-#: beam.cc:151
-msgid "Beam has less than two stems. Removing beam."
-msgstr "Palkissa on vähemmän kuin kaksi pystyviivaa. Poistetaan palkki."
-
-#: beam.cc:976
-msgid "Not sure that we can find a nice beam slope (no viable initial configuration found)."
-msgstr "Ei ole varma löydetäänko sopivaa palkin kaltevuutta (ei löytynyt toimivaa alkuasetusta)"
+msgstr "tahtiviivan tarkistus epäonnistui kohdassa: %s"
 
-#: beam-engraver.cc:176
+#: beam-engraver.cc:128
 msgid "already have a beam"
-msgstr "palkki löytyi jo"
+msgstr "palkki löytyi jo"
 
-#: beam-engraver.cc:259
+#: beam-engraver.cc:196
 msgid "unterminated beam"
-msgstr "päättymätön palkki"
+msgstr "päättämätön palkki"
 
-#: beam-engraver.cc:292 chord-tremolo-engraver.cc:197
+#: beam-engraver.cc:238 chord-tremolo-engraver.cc:134
 msgid "stem must have Rhythmic structure"
 msgstr "varrella on oltava Rhytmic -rakenne"
 
-#: beam-engraver.cc:306
-msgid "stem doesn't fit in beam"
+#: beam-engraver.cc:246
+#, fuzzy
+msgid "stem does not fit in beam"
 msgstr "varsi ei sovi palkkiin"
 
-#: beam-engraver.cc:307
+#: beam-engraver.cc:247
 msgid "beam was started here"
-msgstr "palkki aloitettiin täältä"
+msgstr "palkki aloitettiin täältä"
 
-#: break-align-interface.cc:173
+#: beam-quanting.cc:307
+msgid "no feasible beam position"
+msgstr "ei löytynyt sopivaa palkin paikkaa"
+
+#: beam.cc:144
+msgid "removing beam with no stems"
+msgstr "poistetaan palkki jolla ei ole parrua"
+
+#: beam.cc:1007
+msgid "no viable initial configuration found: may not find good beam slope"
+msgstr "toimivaa alkuasettelua ei löytynyt: hyvää palkkikaltevuuta ei löytyne"
+
+#: break-alignment-interface.cc:208
 #, c-format
 msgid "No spacing entry from %s to `%s'"
-msgstr "Ei välistyksen syöttöä paikasta %s paikkaan `%s'"
+msgstr "Ei välistyksen syöttöä paikasta %s paikkaan `%s'"
 
-#: change-iterator.cc:22
+#: change-iterator.cc:23
 #, c-format
-msgid "can't change `%s' to `%s'"
+msgid "cannot change `%s' to `%s'"
 msgstr "ei voitu vaihtaa `%s' tilalle `%s'"
 
-#.
+#. FIXME: constant error message.
+#: change-iterator.cc:82
+msgid "cannot find context to switch to"
+msgstr "ei löytynyt kontekstia johon vaihtaa"
+
 #. We could change the current translator's id, but that would make
-#. errors hard to catch
-#.
-#. last->translator_id_string_  = get_change ()->change_to_id_string_;
+#. errors hard to catch.
 #.
-#: change-iterator.cc:79
-msgid "I'm one myself"
-msgstr "Olen yksinäni"
+#. last->translator_id_string () = get_change
+#. ()->change_to_id_string ();
+#: change-iterator.cc:91
+#, c-format
+msgid "not changing to same context type: %s"
+msgstr "ei vaihdettu samaan konteksti tyyppiin: %s"
 
-#: change-iterator.cc:82
+#. FIXME: uncomprehensable message
+#: change-iterator.cc:95
 msgid "none of these in my family"
-msgstr "ei yksikään näistä perheessäni"
+msgstr "ei yksikään näistä perheessäni"
 
-#: chord-tremolo-engraver.cc:98
-#, c-format
-msgid "Chord tremolo with %d elements. Must have two elements."
-msgstr "Sointutremolo %d:lla elementillä. Täytyy olla kaksi elementtiä."
+#: chord-tremolo-engraver.cc:88
+msgid "No tremolo to end"
+msgstr "Ei löytynyt päätettävää tremoloa"
 
-#: chord-tremolo-engraver.cc:157
+#: chord-tremolo-engraver.cc:110
 msgid "unterminated chord tremolo"
-msgstr "päättymätön sointutremolo"
+msgstr "päättämätön sointutremolo"
 
-#: chord-tremolo-iterator.cc:69
-msgid "no one to print a tremolos"
-msgstr "ei ketään joka voisi tulostaan tremolon"
+#: chord-tremolo-iterator.cc:33
+#, c-format
+msgid "expect 2 elements for chord tremolo, found %d"
+msgstr "odotettiin 2 elementtiä sointutremololle, löytyi %d"
 
-#: clef.cc:64
+#: clef.cc:54
 #, c-format
 msgid "clef `%s' not found"
-msgstr "avainta `%s' ei löydy"
+msgstr "avainta `%s' ei löydy"
 
-#: cluster.cc:131
+#: cluster.cc:110
 #, c-format
 msgid "unknown cluster style `%s'"
 msgstr "tuntematon klusterityyli: `%s'"
 
-#: coherent-ligature-engraver.cc:84
+#: cluster.cc:135
+msgid "junking empty cluster"
+msgstr "heitetään pois tyhjä klusteri"
+
+#: coherent-ligature-engraver.cc:100
 #, c-format
-msgid "gotcha: ptr=%ul"
-msgstr "löytyi: ptr=%ul"
+msgid "Coherent_ligature_engraver: setting `spacing-increment=0.01': ptr=%ul"
+msgstr ""
+"Coherent_ligature_engraver: asetetaan `spacing-increment=0.01': ptr=%ul"
+
+#. if we get to here, just put everything on one line
+#: constrained-breaking.cc:176 constrained-breaking.cc:193
+#, fuzzy
+msgid "cannot find line breaking that satisfies constraints"
+msgstr "ei löytynyt rivinkatkaisukohtaa joka täyttäisi ehdot"
 
-#: coherent-ligature-engraver.cc:96
+#: context-def.cc:130
 #, c-format
-msgid "distance=%f"
-msgstr "etäisyys=%f"
+msgid "program has no such type: `%s'"
+msgstr "ohjelmalla ei ole tyyppiä: `%s'"
 
-#: coherent-ligature-engraver.cc:139
+#: context-property.cc:76
+msgid "need symbol arguments for \\override and \\revert"
+msgstr "tarvitaan symboliargumentti funktioille \\override ja \\revert"
+
+#: context.cc:151
+#, c-format
+msgid "cannot find or create new `%s'"
+msgstr "ei löydetty tai ei luotu uutta `%s'"
+
+#: context.cc:213
 #, c-format
-msgid "Coherent_ligature_engraver: setting `spacing-increment = 0.01': ptr=%ul"
-msgstr "Coherent_ligature_engraver: asetetaan `spacing-increment = 0.01': ptr=%ul"
+msgid "cannot find or create `%s' called `%s'"
+msgstr "ei löydetty tai ei luotu `%s' nimeltä `%s'"
 
-#: custos.cc:92
+#: context.cc:276
+#, c-format
+msgid "Invalid CreateContext event: Cannot create %s context"
+msgstr "Epäkelpo CreateContext-tapahtuma: Ei voitu luoda %s-kontekstia"
+
+#: context.cc:388
+#, c-format
+msgid "cannot find or create: `%s'"
+msgstr "ei löydetty tai ei luotu: `%s'"
+
+#: custos.cc:77
 #, c-format
 msgid "custos `%s' not found"
-msgstr "custos `%s' ei löytynyt"
+msgstr "custos `%s' ei löytynyt"
 
-#: dimensions.cc:13
-msgid "NaN"
-msgstr "NaN"
+#: dispatcher.cc:71
+msgid "Event class should be a symbol"
+msgstr "Tapamahtumaluokan tulisi olla symboli"
 
-#: dynamic-engraver.cc:204 span-dynamic-performer.cc:82
-msgid "can't find start of (de)crescendo"
-msgstr "ei löytynyt alkua (de)crescendolle"
+#: dispatcher.cc:78
+#, c-format
+msgid "Unknown event class %s"
+msgstr "Tuntematon tapahtumaluokka %s"
 
-#: dynamic-engraver.cc:216
-msgid "already have a crescendo"
-msgstr "crescendo jo käytössä"
+#: dots.cc:38
+#, c-format
+msgid "dot `%s' not found"
+msgstr "pistettä `%s' ei löytynyt"
+
+#: dynamic-engraver.cc:186 span-dynamic-performer.cc:87
+msgid "cannot find start of (de)crescendo"
+msgstr "ei löytynyt alkua (de)crescendolle"
 
-#: dynamic-engraver.cc:217
+#: dynamic-engraver.cc:195
 msgid "already have a decrescendo"
-msgstr "decresendo jo käytössä"
+msgstr "decresendo jo käytössä"
+
+#: dynamic-engraver.cc:197
+msgid "already have a crescendo"
+msgstr "crescendo jo käytössä"
 
-#: dynamic-engraver.cc:220
-msgid "Cresc started here"
-msgstr "Cresc aloitettiin tästä"
+#: dynamic-engraver.cc:200
+msgid "cresc starts here"
+msgstr "cresc aloitettiin tästä"
 
 #: dynamic-engraver.cc:323
 msgid "unterminated (de)crescendo"
-msgstr "päätymätön (de)crescendo"
+msgstr "päättämätön (de)crescendo"
 
-#: event.cc:49
+#: extender-engraver.cc:131 extender-engraver.cc:140
+msgid "unterminated extender"
+msgstr "päättämätön pidennys"
+
+#: font-config.cc:28
+msgid "Initializing FontConfig..."
+msgstr "Alustetaan FontConfig..."
+
+#: font-config.cc:44
 #, c-format
-msgid "Transposition by %s makes alteration larger than two"
-msgstr "Transponointi %s tekee muutokset suuremmaksi kuin kaksi"
+msgid "Rebuilding FontConfig cache %s, this may take a while..."
+msgstr ""
+"Käännetään uudelleen FontConfig-välimuisti %s. tämä voi kestää hetken..."
 
-#: event-chord-iterator.cc:76 output-property-music-iterator.cc:27
+#: font-config.cc:55
 #, c-format
-msgid "Junking event: `%s'"
-msgstr "Hylätään tapahtuma: `%s'"
+msgid "failed adding font directory: %s"
+msgstr "ei onnistuttu lisäämään fonttihakemistoa: %s"
 
-#: extender-engraver.cc:94
-msgid "unterminated extender"
-msgstr "päättymätön pidennys"
+#: font-config.cc:57
+#, c-format
+msgid "adding font directory: %s"
+msgstr "lisätään fonttihakemisto: %s"
+
+#: general-scheme.cc:160
+msgid "infinity or NaN encountered while converting Real number"
+msgstr "ääretön tai NaN kohdattiin kun tehtiin reaalilukumuunnosta"
 
-#: extender-engraver.cc:106
-msgid "Nothing to connect extender to on the left.  Ignoring extender event."
-msgstr "Pidennystä ei voitu liittää vasemmalle.  Hylätään pidennystapahtuma.\""
+#: general-scheme.cc:161
+msgid "setting to zero"
+msgstr "asetetaan nollaksi"
 
-#: folded-repeat-iterator.cc:88
-msgid "no one to print a repeat brace"
-msgstr "kukaan ei voinut tulostaa toistoa"
+#: glissando-engraver.cc:92
+msgid "unterminated glissando"
+msgstr "päättämätön glissando"
 
-#: font-interface.cc:239
-msgid "couldn't find any font satisfying "
-msgstr "mikään fontti ei tuottanut toivottua tulosta"
+#: global-context-scheme.cc:91 global-context-scheme.cc:107
+msgid "no music found in score"
+msgstr "Laita musiikkia viivastolle"
 
-#: glissando-engraver.cc:100
-msgid "Unterminated glissando."
-msgstr "Päättymätön glissando."
+#: global-context-scheme.cc:97
+msgid "Interpreting music... "
+msgstr "Tulkitaan musiikkia... "
 
-#: gourlay-breaking.cc:188
+#: global-context-scheme.cc:120
 #, c-format
-msgid "Optimal demerits: %f"
-msgstr "Optimaalinen heikennys: %f"
-
-#: gourlay-breaking.cc:193
-msgid "No feasible line breaking found"
-msgstr "Ei löytynyt sopivaa viivan katkaisukohtaa"
+msgid "elapsed time: %.2f seconds"
+msgstr "kulunut aika: %.2f sekuntia"
 
 #: gregorian-ligature-engraver.cc:59
 #, c-format
@@ -1479,218 +844,179 @@ msgstr "\\%s sivuutettiin"
 #: gregorian-ligature-engraver.cc:64
 #, c-format
 msgid "implied \\%s added"
-msgstr "lisättiin vihjattu \\%s"
+msgstr "lisättiin vihjattu \\%s"
 
-#.
-#. Todo: do something sensible. The grob-pq-engraver is not water
-#. tight, and stuff like tupletSpannerDuration confuses it.
-#.
-#: grob-pq-engraver.cc:130
-#, c-format
-msgid ""
-"Skipped something?\n"
-"Grob %s ended before I expected it to end."
-msgstr ""
-"Jotain ohitettiin?\n"
-"Piirto %s loppui ennen kuin sen oletettiin loppuvan."
+#. ligature may not start with 2nd head of pes or flexa
+#: gregorian-ligature-engraver.cc:212
+msgid "cannot apply `\\~' on first head of ligature"
+msgstr "di voitu käyttää `\\~' ligaturen alkupäässä"
 
-#: hairpin.cc:98
-msgid "decrescendo too small"
-msgstr "liian lyhyt decrescendo"
+#. (pitch == prev_pitch)
+#: gregorian-ligature-engraver.cc:224
+msgid "cannot apply `\\~' on heads with identical pitch"
+msgstr "ei voitu käyttää `\\~' identtisien nuotinkorkeuksien päissä"
 
-#: hairpin.cc:99
-msgid "crescendo too small"
-msgstr "liian lyhyt crescendo"
-
-#: horizontal-bracket-engraver.cc:64
-msgid "Don't have that many brackets."
-msgstr "Ei ole käytössä niin monia sulkeita."
+#: grob-interface.cc:57
+#, c-format
+msgid "Unknown interface `%s'"
+msgstr "Tuntematon rajapinta `%s'"
 
-#: horizontal-bracket-engraver.cc:73
-msgid "Conflicting note group events."
-msgstr "Ristiriitainen nuottiryhmä -tapaus."
+#: grob-interface.cc:68
+#, c-format
+msgid "Grob `%s' has no interface for property `%s'"
+msgstr "Ladokkeella `%s' ei ole rajapintaa ominaisuudella `%s'"
 
-#: hyphen-engraver.cc:87
-msgid "unterminated hyphen"
-msgstr "päättymätön tavuviiva"
+#: grob.cc:253
+msgid "Infinity or NaN encountered"
+msgstr "ääretön tai NaN kohdattiin"
 
-#: hyphen-engraver.cc:99
-msgid "Nothing to connect hyphen to on the left.  Ignoring hyphen event."
-msgstr "Mitään ei voitu liittää tavuviivan vasemmalle puolelle.  Sivutetaan tavutus."
+#: hairpin.cc:183
+msgid "decrescendo too small"
+msgstr "liian lyhyt decrescendo"
 
-#: input.cc:99
-msgid "non fatal error: "
-msgstr "ei-keskeyttävä virhe:"
+#: horizontal-bracket-engraver.cc:59
+#, fuzzy
+msgid "do not have that many brackets"
+msgstr "ei ole käytössä niin monia sulkeita"
 
-#: input.cc:107 source-file.cc:146 source-file.cc:239
-msgid "position unknown"
-msgstr "sijainti tuntematon:"
+#: horizontal-bracket-engraver.cc:68
+msgid "conflicting note group events"
+msgstr "ristiriitainen nuottiryhmä -tapaus"
 
-#: input-file-results.cc:72 source-file.cc:54 streams.cc:38
-#, c-format
-msgid "can't open file: `%s'"
-msgstr "tiedostoa ei voitu avata: `%s'"
+#: hyphen-engraver.cc:93
+msgid "removing unterminated hyphen"
+msgstr "päättämätön tavuviiva"
 
-#: input-file-results.cc:132
-msgid "Score contains errors; will not process it"
-msgstr "Viivastossa on virheitä; sitä ei prosessoida"
+#: hyphen-engraver.cc:107
+msgid "unterminated hyphen; removing"
+msgstr "päättämätön tavuviiva"
 
-#: input-file-results.cc:172
-#, c-format
-msgid "Now processing: `%s'"
-msgstr "Prosessoidaan: `%s'"
+#: includable-lexer.cc:53
+msgid "include files are not allowed in safe mode"
+msgstr "sisällytettävät tiedostot eivät ole sallittuja turvatilassa"
 
-#: key-performer.cc:96
-msgid "FIXME: key change merge"
-msgstr "KORJATTAVA: sävellajin vaihdon sulautuma"
+#: includable-lexer.cc:60 lily-guile.cc:90 lily-parser-scheme.cc:116
+#, c-format
+msgid "cannot find file: `%s'"
+msgstr "tiedostoa ei löydy: `%s'"
 
-#: kpath.cc:76
+#: includable-lexer.cc:62 lily-parser-scheme.cc:107
 #, c-format
-msgid "Kpathsea couldn't find TFM file `%s'"
-msgstr "Kpathsea ei löytänyt TFM-tiedostoa `%s'"
+msgid "(search path: `%s')"
+msgstr "(hakupolku: `%s')"
 
-#: ligature-engraver.cc:159
-msgid "can't find start of ligature"
-msgstr "ei löytynyt alkua ligature:lle"
+#: input.cc:112 source-file.cc:168 source-file.cc:183
+msgid "position unknown"
+msgstr "sijainti tuntematon"
+
+#: ligature-engraver.cc:93
+msgid "cannot find start of ligature"
+msgstr "ei löytynyt alkua ligature:lle"
 
-#: ligature-engraver.cc:165
+#: ligature-engraver.cc:98
 msgid "no right bound"
 msgstr "ei oikeata reunaa"
 
-#: ligature-engraver.cc:191
+#: ligature-engraver.cc:120
 msgid "already have a ligature"
-msgstr "ligature löytyi jo"
+msgstr "ligature löytyi jo"
 
-#: ligature-engraver.cc:207
+#: ligature-engraver.cc:129
 msgid "no left bound"
 msgstr "ei vasenta reunaa"
 
-#: ligature-engraver.cc:258
+#: ligature-engraver.cc:173
 msgid "unterminated ligature"
-msgstr "päättymätön ligature"
+msgstr "päättämätön ligature"
 
-#: ligature-engraver.cc:282
-msgid "ligature may not contain rest; ignoring rest"
-msgstr "ligature ei voi sisältää taukoa; sivuutetaan tauko"
+#: ligature-engraver.cc:202
+msgid "ignoring rest: ligature may not contain rest"
+msgstr "ligature ei voi sisältää taukoa; sivuutetaan tauko"
 
-#: ligature-engraver.cc:283
+#: ligature-engraver.cc:203
 msgid "ligature was started here"
-msgstr "ligature alkoi tästä"
+msgstr "ligature alkoi tästä"
 
-#: lily-guile.cc:88
+#: lily-guile.cc:92
 #, c-format
 msgid "(load path: `%s')"
 msgstr "(hakupolku: `%s')"
 
-#: lily-guile.cc:576
+#: lily-guile.cc:518
 #, c-format
-msgid "Can't find property type-check for `%s' (%s)."
-msgstr "Ei löytynyt tyyppitarkistusta ominaisuudelle `%s' (%s)."
+msgid "cannot find property type-check for `%s' (%s)."
+msgstr "Ei löytynyt tyyppitarkistusta ominaisuudelle `%s' (%s)."
 
-#: lily-guile.cc:579
-msgid "Perhaps you made a typing error?"
-msgstr "Tekinet näppäilyvirheen?"
+#: lily-guile.cc:521
+msgid "perhaps a typing error?"
+msgstr "ehkä näppäilyvirhe?"
 
-#: lily-guile.cc:585
-msgid "Doing assignment anyway."
-msgstr "Tehdään tehtävä joka tapauksessa."
+#: lily-guile.cc:527
+msgid "doing assignment anyway"
+msgstr "suoritetaan tehtävä joka tapauksessa"
 
-#: lily-guile.cc:599
+#: lily-guile.cc:539
 #, c-format
-msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
-msgstr "Tyypin `%s' tarkistus epäonnistui; arvon `%s' on oltava tyyppiä `%s'"
-
-#: lookup.cc:173
-msgid "round filled box horizontal extent smaller than blot; decreasing blot"
-msgstr "pyöristetyn, täytetyn laatikon horisontaali laajuus on pilkkua pienempi; pienennetään pilkkua"
-
-#: lookup.cc:178
-msgid "round filled box vertical extent smaller than blot; decreasing blot"
-msgstr "pyöristetyn, täytetyn laatikon vertikaali laajuus on pilkkua pienempi; pienennetään pilkku"
+msgid "type check for `%s' failed; value `%s' must be of type `%s'"
+msgstr "tyypin `%s' tarkistus epäonnistui; arvon `%s' on oltava tyyppiä `%s'"
 
-#: lyric-phrasing-engraver.cc:311
-msgid "lyrics found without any matching notehead"
-msgstr "lyriikkaa löytyi ilman vastaavaa nuotinpäätä"
-
-#: lyric-phrasing-engraver.cc:317
-msgid "Huh? Melismatic note found to have associated lyrics."
-msgstr "Täh? Melismoitu nuotti ilman siihen liittyvään lyriikkaa."
-
-#: main.cc:106
-msgid "EXPR"
-msgstr "EXPR"
-
-#: main.cc:107
-msgid "set options, use -e '(ly-option-usage)' for help"
-msgstr "aseta optiot, käytä -e '(ly-option-usage)' saadaksesi opastusta"
+#: lily-lexer.cc:254
+#, c-format
+msgid "identifier name is a keyword: `%s'"
+msgstr "tunnistenimi on avainsana: `%s'"
 
-#: main.cc:110
-msgid "use output format EXT"
-msgstr "käytä tulostemuotoa EXT"
+#: lily-lexer.cc:269
+#, c-format
+msgid "error at EOF: %s"
+msgstr "virhe tiedoston lopussa (EOF): %s"
 
-#: main.cc:112
-msgid "FIELD"
-msgstr "KENTTÄ"
+#: lily-parser-scheme.cc:29
+#, c-format
+msgid "deprecated function called: %s"
+msgstr "vanhentunut funktiokutsu: %s"
 
-#: main.cc:112
-msgid "write header field to BASENAME.FIELD"
-msgstr "kirjoita otsakekenttä paikkaan PERUSNIMI.KENTTÄ"
+#: lily-parser-scheme.cc:88
+#, fuzzy, c-format
+msgid "Changing working directory to: `%s'"
+msgstr "Vaihdetaan työhakemistoksi `%s'"
 
-#: main.cc:113
-msgid "add DIR to search path"
-msgstr "lisää DIR hakupolkuun"
+#: lily-parser-scheme.cc:106
+#, c-format
+msgid "cannot find init file: `%s'"
+msgstr "tiedostoa ei löydy: `%s'"
 
-#: main.cc:114
-msgid "use FILE as init file"
-msgstr "käytetään TIEDOSTO alustustiedostona"
+#: lily-parser-scheme.cc:125
+#, c-format
+msgid "Processing `%s'"
+msgstr "Prosessoidaan `%s'"
 
-#: main.cc:118
-msgid "prepend DIR to dependencies"
-msgstr "lisää DIR riippuvuuksien alkuun"
+#: lily-parser.cc:99
+msgid "Parsing..."
+msgstr "Jäsennetään..."
 
-#.
-#. should audit again.
-#.
-#: main.cc:123
-msgid "inhibit file output naming and exporting"
-msgstr "estä tiedostotulosteen nimeäminen ja siirtotiedostoon kirjoittaminen"
+#: lily-parser.cc:127
+#, fuzzy
+msgid "braces do not match"
+msgstr "aaltosulkumerkit eivät täsmää"
 
-#. No version number or newline here. It confuses help2man.
-#: main.cc:155
+#: lyric-combine-music-iterator.cc:291
 #, c-format
-msgid "Usage: %s [OPTIONS]... FILE..."
-msgstr "Käyttö: %s [OPTIOT]... TIEDOSTO..."
-
-#: main.cc:157
-msgid "Typeset music and or play MIDI from FILE."
-msgstr "Lado musiikki ja tai soita MIDI tiedostosta TIEDOSTO."
-
-#: main.cc:160
-msgid ""
-"LilyPond is a music typesetter.  It produces beautiful sheet music\n"
-"using a high level description file as input.  LilyPond is part of \n"
-"the GNU Project.\n"
-msgstr ""
-"LilyPond on musiikin ladontaohjelma. Se tuottaa kaunista nuottikuvaa\n"
-"käyttäen korkean tason kuvauskieltä syötteenä.  LilyPond on osa\n"
-"GNU Projektia.\n"
+msgid "cannot find Voice `%s'"
+msgstr "ei löydetty Voice `%s'"
 
-#: main.cc:182
+#: main.cc:116
 #, c-format
 msgid ""
-"This is free software.  It is covered by the GNU General Public License,\n"
-"and you are welcome to change it and/or distribute copies of it under\n"
-"certain conditions.  Invoke as `%s --warranty' for more information.\n"
+"This program is free software.  It is covered by the GNU General Public\n"
+"License and you are welcome to change it and/or distribute copies of it\n"
+"under certain conditions.  Invoke as `%s --warranty' for more\n"
+"information.\n"
 msgstr ""
-"Tämä on ilmaisohjelmisto. Siihen sovelletaan GNU General Public License,\n"
-"ja olet tervetullut muuttamaan sitä ja/tai levittämään siitä kopioita\n"
-"tietyillä ehdoilla. Suorita `%s --warranty' saadaksesi lisäinformaatiota.\n"
+"Tämä on ilmaisohjelmisto. Siihen sovelletaan GNU General Public License\n"
+"ja olet tervetullut muuttamaan ohjelmaa ja/tai levittämään siitä kopioita\n"
+"tietyillä ehdoilla. Suorita `%s --warranty' saadaksesi lisäinformaatiota.\n"
 
-#: main.cc:198
-msgid "GNU LilyPond -- The music typesetter"
-msgstr "GNU LilyPond -- Musiikin ladontaohjelma"
-
-#: main.cc:206
+#: main.cc:122
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License version 2\n"
@@ -1701,716 +1027,1279 @@ msgid ""
 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n"
 "General Public License for more details.\n"
 "\n"
-"    You should have received a copy (refer to the file COPYING) of the\n"
+"    You should have received a copy of the\n"
 "GNU General Public License along with this program; if not, write to\n"
-"the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-"USA.\n"
+"the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
+"Boston, MA 02111-1307, USA.\n"
 msgstr ""
-"    Tämä ohjelma on vapaata lähdekoodia; voit levittää sitä ja/tai\n"
-"muokata sitä lisenssin GNU General Public License versio 2 ehdoilla, \n"
+"    Tämä ohjelma on vapaata lähdekoodia; voit levittää sitä ja/tai\n"
+"muokata sitä lisenssin GNU General Public License versio 2 ehdoilla, \n"
 "kuten Free Software Foundation on sen julkaissut.\n"
 "\n"
-"    Ohjelmaa levitetään siinä toivossa että se on hyödyllinen, mutta\n"
-"ILMAN MITÄÄN TAKUUTA; ilman että edes annettaisiin ymmärtää takeista\n"
-"KAUPAKSIKÄYVYYDESTÄ tai SOPIVUUDESTA TIETTYYN TARKOITUKSEEN.  Lisätietoja\n"
-"voit katsoa lisenssistä GNU General Public Licence.\n"
+"    Ohjelmaa levitetään siinä toivossa että se on hyödyllinen, mutta\n"
+"ILMAN MITÄÄN TAKUUTA; ilman että edes annettaisiin ymmärtää takeista\n"
+"KAUPAKSIKÄYVYYDESTÄ tai SOPIVUUDESTA TIETTYYN TARKOITUKSEEN.  Lisätietoja\n"
+"voit katsoa lisenssistä GNU General Public Licence.\n"
 "\n"
-"    Saat kopion (katso tiedosto COPYING) lisenssistä GNU General Public\n"
-"License ohjelman mukana; jos et saanut; kirjoita osoitteeseen\n"
+"    Olet saanut kopion lisenssistä GNU General Public License\n"
+"tämän ohjelman mukana; jos et saanut; kirjoita osoitteeseen\n"
 "Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
 "Boston, MA 02111-1307, USA.\n"
 
-#: mensural-ligature.cc:153
-#, c-format
-msgid "Mensural_ligature:thickness undefined on flexa %d; assuming 1.4"
-msgstr "Mensural_ligature: paksuus määrittämättä kohdassa flexa %d; oletetaan 1.4"
+#: main.cc:153
+msgid "BACK"
+msgstr "PÄÄ"
 
-#: mensural-ligature.cc:169
-#, c-format
-msgid "Mensural_ligature:delta-pitch undefined on flexa %d; assuming 0"
-msgstr "Mensural_ligature: delta-pitch määrittämättä kohdassa flexa %d; oletetaan 0"
+#: main.cc:153
+#, fuzzy
+msgid ""
+"use backend BACK (eps, gnome, ps [default],\n"
+"scm, svg, tex, texstr)"
+msgstr ""
+"käytä päänä PÄÄ (gnome, ps, eps,\n"
+"scm, svg, tex, texstr)\n"
+"default: PS"
 
-#: mensural-ligature.cc:182
-#, c-format
-msgid "Mensural_ligature:flexa-width undefined on flexa %d; assuming 2.0"
-msgstr "Mensural_ligature: flexa-width määrittämättä kohdassa flexa %d; oletetaan 2.0\""
+#: main.cc:155
+#, fuzzy
+msgid "SYM[=VAL]"
+msgstr "SYM=VAL"
 
-#: mensural-ligature.cc:215
-msgid "Mensural_ligature:unexpected case fall-through"
-msgstr "Mensural_ligature: odottamaton tapauksen raukeaminen"
+#: main.cc:156
+#, fuzzy
+msgid ""
+"set Scheme option SYM to VAL (default: #t)\n"
+"Use -dhelp for help."
+msgstr ""
+"aseta Scheme -ohjelman optio. Käyttää #t jos VAL ei ole määritelty\n"
+"Koeta -dhelp saadaksesi lisäapua."
 
-#: mensural-ligature.cc:225
-msgid "Mensural_ligature: (join_left == 0)"
-msgstr "Mensural_ligature: (join_left == 0)"
+#: main.cc:159
+msgid "EXPR"
+msgstr "LAUSEKE"
 
-#: mensural-ligature-engraver.cc:248 mensural-ligature-engraver.cc:397
-msgid "unexpected case fall-through"
-msgstr "odottamaton tapauksen raukeaminen"
+#: main.cc:159
+msgid "evaluate scheme code"
+msgstr "suorita scheme koodi"
 
-#: mensural-ligature-engraver.cc:259
-msgid "ligature with less than 2 heads -> skipping"
-msgstr "ligatuuri vähemmällä kuin 2:lla nuottipäällä -> ohitetaan"
+#. Bug in option parser: --output =foe is taken as an abbreviation
+#. for --output-format.
+#: main.cc:162
+msgid "FORMATs"
+msgstr "FORMAATIT"
 
-#: mensural-ligature-engraver.cc:279
-msgid "can not determine pitch of ligature primitive -> skipping"
-msgstr "ei voitu määrittää nuottikorkeutta ligatuurin osalle -> ohitetaan"
+#: main.cc:162
+msgid "dump FORMAT,...  Also as separate options:"
+msgstr "vedosta FORMAATTI,...  Myös erilliset optiot:"
 
-#: mensural-ligature-engraver.cc:302
-msgid "prime interval within ligature -> skipping"
-msgstr "priimi-intervalli ligatuurissa -> ohitetaan"
+#: main.cc:163
+msgid "generate DVI (tex backend only)"
+msgstr "tuota DVI (vain käytettäessä tex -päätä)"
 
-#: mensural-ligature-engraver.cc:312
-msgid "mensural ligature: duration none of L, B, S -> skipping"
-msgstr "mensuraaliligatuuri: kesto ei ollut L, B tai S -> ohitetaan"
+#: main.cc:164
+msgid "generate PDF (default)"
+msgstr "tuota PDF (oletus)"
 
-#: midi-item.cc:148
-#, c-format
-msgid "no such instrument: `%s'"
-msgstr "ei löytynyt instrumenttia: `%s'"
+#: main.cc:165
+msgid "generate PNG"
+msgstr "tuota PNG"
 
-#: midi-item.cc:238
-msgid "silly duration"
-msgstr "sekava kesto"
+#: main.cc:166
+msgid "generate PostScript"
+msgstr "tuota PostScript"
 
-#: midi-item.cc:251
-msgid "silly pitch"
-msgstr "sekava äänenkorkeus"
+#: main.cc:167
+msgid "generate TeX (tex backend only)"
+msgstr "tuota TeX (vain käytettäessä tex -päätä)"
 
-#: music-output-def.cc:111
-#, c-format
-msgid "can't find `%s' context"
-msgstr "ei löytynyt kontekstia `%s'"
+#: main.cc:168
+msgid "show this help and exit"
+msgstr ""
 
-#: my-lily-lexer.cc:169
-#, c-format
-msgid "Identifier name is a keyword: `%s'"
-msgstr "Tunnistenimi on avainsana: `%s'"
+#: main.cc:169
+msgid "FIELD"
+msgstr "KENTTÄ"
 
-#: my-lily-lexer.cc:191
-#, c-format
-msgid "error at EOF: %s"
-msgstr "virhe tiedoston lopussa (EOF): %s"
+#: main.cc:169
+#, fuzzy
+msgid ""
+"dump header field FIELD to file\n"
+"named BASENAME.FIELD"
+msgstr "kirjoita otsake tiedostoon PERUSNIMI.KENTTÄ"
 
-#: my-lily-parser.cc:44
-msgid "Parsing..."
-msgstr "Jäsennetään..."
+#: main.cc:171
+msgid "add DIR to search path"
+msgstr "lisää HAKEMISTO hakupolkuun"
 
-#: my-lily-parser.cc:54
-msgid "Braces don't match"
-msgstr "Aaltosulkumerkit eivät täsmää"
+#: main.cc:172
+msgid "use FILE as init file"
+msgstr "käytä TIEDOSTO alustustiedostona"
 
-#.
-#. music for the softenon children?
-#.
-#: new-fingering-engraver.cc:143
-msgid "music for the martians."
-msgstr "musiikkia marsilaisille"
+#: main.cc:174
+msgid "USER,GROUP,JAIL,DIR"
+msgstr "USER,GROUP,JAIL,DIR"
 
-#: new-tie-engraver.cc:166 tie-engraver.cc:217
-msgid "lonely tie"
-msgstr "yksinäinen sidos"
+#: main.cc:174
+msgid ""
+"chroot to JAIL, become USER:GROUP\n"
+"and cd into DIR"
+msgstr ""
+"käytä chroot-hakemistona JAIL, ole USER:GROUP\n"
+"ja siirry hakemistoon DIR"
 
-#: note-collision.cc:340
-msgid "Too many clashing notecolumns.  Ignoring them."
-msgstr "Liian monta törmäävää nuottisaraketta.  Sivuutetaan ne."
+#: main.cc:177
+msgid "do not generate printed output"
+msgstr "älä tuota tulostetta"
 
-#: note-head.cc:127
-#, c-format
-msgid "note head `%s' not found"
-msgstr "nuottipäätä `%s' ei löytynyt"
+#: main.cc:178
+msgid "write output to FILE (suffix will be added)"
+msgstr "tulosta tiedostoon TIEDOSTO (pääte lisätään)"
 
-#: paper-def.cc:96
-#, c-format
-msgid "paper output to `%s'..."
-msgstr "paperituloste paikkaan `%s'..."
+#: main.cc:179
+msgid "generate a preview of the first system"
+msgstr "tee kuva ensimmäisestä kokonaisuudesta"
 
-#: paper-score.cc:78
-#, c-format
-msgid "Element count %d (spanners %d) "
-msgstr "Elementtien määrä: %d (ladokkeita: %d)"
+#: main.cc:180
+msgid "relocate using directory of lilypond program"
+msgstr "paikallista käyttäen lilypond ohjelman hakemistoa"
 
-#: paper-score.cc:83
-msgid "Preprocessing graphical objects..."
-msgstr "Esiprosessoidaan graafisia kohteita..."
+#: main.cc:181
+#, fuzzy
+msgid ""
+"disallow unsafe Scheme and PostScript\n"
+"operations"
+msgstr "älä salli turvattomia Scheme ja PostScript -operaatioita"
 
-#: paper-score.cc:116
-msgid "Outputting Score, defined at: "
-msgstr "Tulostetaan viivasto, määrittelypaikasta: "
+#: main.cc:183
+#, fuzzy
+msgid "show version number and exit"
+msgstr "tulosta versionumero"
 
-#: parse-scm.cc:79
-msgid "GUILE signaled an error for the expression begining here"
-msgstr "GUILE aitoi virheen lausekkeelle, joka alkoi täältä"
+#: main.cc:224
+#, c-format
+msgid ""
+"Copyright (c) %s by\n"
+"%s  and others."
+msgstr ""
+"Copyright (c) %s by\n"
+"%s  ja muut."
 
-#.
-#. We could change the current translator's id, but that would make
-#. errors hard to catch
-#.
-#. last->translator_id_string_  = get_change ()->change_to_id_string_;
-#.
-#: part-combine-music-iterator.cc:139
+#. No version number or newline here.  It confuses help2man.
+#: main.cc:251
 #, c-format
-msgid "I'm one myself: `%s'"
-msgstr "Olen yksikseni: '%s'"
+msgid "Usage: %s [OPTION]... FILE..."
+msgstr "Käyttö: %s [OPTIO]... TIEDOSTO..."
 
-#: part-combine-music-iterator.cc:142
+#: main.cc:253
 #, c-format
-msgid "none of these in my family: `%s'"
-msgstr "yksikään näistä ei ole perheestäni: `%s'"
+msgid "Typeset music and/or produce MIDI from FILE."
+msgstr "Lado musiikki ja/tai tuota MIDI tiedostosta TIEDOSTO."
 
-#: percent-repeat-engraver.cc:109
-msgid "Don't know how to handle a percent repeat of this length."
-msgstr "Ei tiedetä kuinka kohdella tämän mittaista prosenttitoistoa."
+#: main.cc:255
+#, c-format
+msgid "LilyPond produces beautiful music notation."
+msgstr "LilyPond tuottaa kaunista musiikkinotaatiota."
 
-#: percent-repeat-engraver.cc:163
-msgid "unterminated percent repeat"
-msgstr "päättymätön prosenttitoisto"
+#: main.cc:257
+#, c-format
+msgid "For more information, see %s"
+msgstr "Lisätietoja varten, katso %s"
 
-#: percent-repeat-iterator.cc:65
-msgid "no one to print a percent"
-msgstr "kukaan ei voinut tulostaa prosenttia"
+#: main.cc:259
+#, c-format
+msgid "Options:"
+msgstr "Optiot:"
 
-#: performance.cc:51
-msgid "Track ... "
-msgstr "Jälki ... "
+#: main.cc:263
+#, c-format
+msgid "Report bugs via %s"
+msgstr "Raportoi virheet osoitteeseen %s"
 
-#: performance.cc:83
-msgid "Creator: "
-msgstr "Tekijä: "
+#: main.cc:309
+#, c-format
+msgid "expected %d arguments with jail, found: %u"
+msgstr "odotettiin %d argumenttia chroot-vankilalle, löytyi: %u"
 
-#: performance.cc:103
-msgid "at "
-msgstr "kohdassa "
+#: main.cc:323
+#, c-format
+msgid "no such user: %s"
+msgstr "käyttäjää ei löydy: `%s'"
 
-#: performance.cc:114
+#: main.cc:325
 #, c-format
-msgid "from musical definition: %s"
-msgstr "musiikkimäärityksestä: %s"
+msgid "cannot get user id from user name: %s: %s"
+msgstr "ei saatu käyttäjä-id:tä käyttäjänimestä: %s: %s"
 
-#: performance.cc:169
+#: main.cc:340
 #, c-format
-msgid "MIDI output to `%s'..."
-msgstr "MIDI-tuloste paikkaan `%s'..."
+msgid "no such group: %s"
+msgstr "ryhmää ei ole: %s"
 
-#: phrasing-slur-engraver.cc:123
-msgid "unterminated phrasing slur"
-msgstr "päättymätön fraasikaari"
+#: main.cc:342
+#, c-format
+msgid "cannot get group id from group name: %s: %s"
+msgstr "ei voitu saada ryhmä -id:tä ryhmänimestä: %s: %s"
 
-#: phrasing-slur-engraver.cc:141
-msgid "can't find start of phrasing slur"
-msgstr "ei voitu löytää alkua fraasikaarelle"
+#: main.cc:350
+#, c-format
+msgid "cannot chroot to: %s: %s"
+msgstr "chroot ei onnistunut: %s: %s"
 
-#: piano-pedal-engraver.cc:235 piano-pedal-engraver.cc:250
-#: piano-pedal-engraver.cc:305 piano-pedal-performer.cc:82
+#: main.cc:357
 #, c-format
-msgid "can't find start of piano pedal: `%s'"
-msgstr "ei voitu löytää alkua pianopedaalille: `%s'"
+msgid "cannot change group id to: %d: %s"
+msgstr "ei voitu korvata ryhmän id:tä : %d: %s"
 
-#: piano-pedal-engraver.cc:410
-msgid "unterminated pedal bracket"
-msgstr "päättymätön pedaalisulkumerkki"
+#: main.cc:363
+#, c-format
+msgid "cannot change user id to: %d: %s"
+msgstr "ei voitu vaihtaa käyttäjä-id:tä : %d: %s"
 
-#: property-iterator.cc:97
+#: main.cc:369
 #, c-format
-msgid "Not a grob name, `%s'."
-msgstr "Ei ollut nimi graafiselle objektille (grob): `%s'."
+msgid "cannot change working directory to: %s: %s"
+msgstr "työhakemiston vaihto ei onnistunut: %s: %s"
 
-#: rest.cc:139
+#: main.cc:415
 #, c-format
-msgid "rest `%s' not found, "
-msgstr "taukoa `%s' ei löytynyt, "
+msgid "Evaluating %s"
+msgstr "Määritetään %s"
 
-#: rest-collision.cc:199
-msgid "too many colliding rests"
-msgstr "liian monta törmäävää taukoa"
+#: main.cc:645
+#, c-format
+msgid "exception caught: %s"
+msgstr "napattiin poikkeus: %s"
 
-#: scm-option.cc:45
-msgid "lilypond -e EXPR means:"
-msgstr "lilypond -e EXPR tarkoittaa:"
+#. FIXME: constant error message.
+#: mark-engraver.cc:154
+msgid "rehearsalMark must have integer value"
+msgstr "rehearsalMark vaatii kokonaislukuargumentin"
 
-#: scm-option.cc:47
-msgid "  Evalute the Scheme EXPR before parsing any .ly files."
-msgstr "  Evaluoidaan skeema EXPR ennen kuin jäsennetään yhtäkään .ly -tiedostoista."
+#: mark-engraver.cc:160
+msgid "mark label must be a markup object"
+msgstr "merkinnän on oltava markup -objekti"
 
-#: scm-option.cc:49
-msgid "  Multiple -e options may be given, they will be evaluated sequentially."
-msgstr "  Useita -e optioita voidaan antaa, ne evaluoidaan peräkkäisinä"
+#: mensural-ligature-engraver.cc:85
+msgid "ligature with less than 2 heads -> skipping"
+msgstr "ligatuuri vähemmällä kuin 2:lla nuottipäällä -> ohitetaan"
 
-#: scm-option.cc:51
-msgid "  The function ly-set-option allows for access to some internal variables."
-msgstr "  Funktio ly-set-option sallii pääsyn joihinkin sisäisiin muuttujiin"
+#: mensural-ligature-engraver.cc:112
+msgid "cannot determine pitch of ligature primitive -> skipping"
+msgstr "ei voitu määrittää nuottikorkeutta ligatuurin osalle -> ohitetaan"
 
-#: scm-option.cc:53
-msgid "Usage: lilypond -e \"(ly-set-option SYMBOL VAL)\""
-msgstr "Käyttö: lilypond -e \"(ly-set-option SYMBOLI ARVO)\""
+#: mensural-ligature-engraver.cc:126
+msgid "single note ligature - skipping"
+msgstr "priimi-intervalli ligatuurissa -> ohitetaan"
 
-#: scm-option.cc:55
-msgid "Where SYMBOL VAL pair is any of:"
-msgstr "Missä (SYMBOLI,ARVO)-pari on jokin näistä:"
+#: mensural-ligature-engraver.cc:138
+msgid "prime interval within ligature -> skipping"
+msgstr "priimi-intervalli ligatuurissa -> ohitetaan"
 
-#: scm-option.cc:128
-msgid "Unknown internal option!"
-msgstr "Tuntematon sisäinen optio!"
+#: mensural-ligature-engraver.cc:150
+msgid "mensural ligature: duration none of Mx, L, B, S -> skipping"
+msgstr "mensuraaliligatuuri: kesto ei ollut Mx, L, B tai S -> ohitetaan"
 
-#: score.cc:85
-msgid "Interpreting music..."
-msgstr "Tulkitaan musiikkia..."
+#: mensural-ligature-engraver.cc:198
+msgid "semibrevis must be followed by another one -> skipping"
+msgstr "semibrevis vaatii samantyyppisen seuraavaksi -> ohitetaan"
 
-#: score.cc:97
-msgid "Need music in a score"
-msgstr "Laita musiikkia viivastolle"
+#: mensural-ligature-engraver.cc:209
+msgid ""
+"semibreves can only appear at the beginning of a ligature,\n"
+"and there may be only zero or two of them"
+msgstr ""
+"semibreve:t voivat esiintyä vain ligaturen alussa,\n"
+"ja niitä voi olla vain nolla tai kaksi"
 
-#. should we? hampers debugging.
-#: score.cc:111
-msgid "Errors found/*, not processing score*/"
-msgstr "Virheitä löytyi/*, ei prosessoida viivastoa*/"
+#: mensural-ligature-engraver.cc:236
+msgid ""
+"invalid ligatura ending:\n"
+"when the last note is a descending brevis,\n"
+"the penultimate note must be another one,\n"
+"or the ligatura must be LB or SSB"
+msgstr ""
+"viallinen ligatura pääte:\n"
+"kun viimeinen nuottin on aleneva brevis,\n"
+"toiseksi viimeisen nuotin on oltava joku muu,\n"
+"tai ligaturan täytyy olla LB tai SSB"
 
-#: score.cc:118
-#, c-format
-msgid "elapsed time: %.2f seconds"
-msgstr "kulunut aika: %.2f sekuntia"
+#: mensural-ligature-engraver.cc:356
+msgid "unexpected case fall-through"
+msgstr "odottamaton tapauksen raukeaminen"
 
-#: score-engraver.cc:99
-#, c-format
-msgid "can't find `%s'"
-msgstr "`%s' jäi löytymättä"
+#: mensural-ligature.cc:141
+msgid "Mensural_ligature: unexpected case fall-through"
+msgstr "Mensural_ligature: odottamaton tapauksen raukeaminen"
 
-#: score-engraver.cc:100
-msgid "Fonts have not been installed properly.  Aborting"
-msgstr "Fontteja ei oltu asennettu kunnolla. Keskeytetään"
+#: mensural-ligature.cc:192
+msgid "Mensural_ligature: (join_right == 0)"
+msgstr "Mensural_ligature: (join_right == 0)"
 
-#: score-engraver.cc:205
+#: midi-item.cc:152
 #, c-format
-msgid "unbound spanner `%s'"
-msgstr "sitomaton ladoke `%s'"
+msgid "no such MIDI instrument: `%s'"
+msgstr "ei löytynyt MIDI-instrumenttia: `%s'"
 
-#: script-engraver.cc:90
+#: midi-item.cc:285
 #, c-format
-msgid "Don't know how to interpret articulation `%s'"
-msgstr "Ei tiedetä kuinka tulkita artikulaatio: `%s'"
+msgid "experimental: temporarily fine tuning (of %d cents) a channel."
+msgstr "kokeellinen: viritetään väliaisesti (%d senttiä) kanavaa."
 
-#. this shouldn't happen, but let's continue anyway.
-#: separation-item.cc:53 separation-item.cc:101
-msgid "Separation_item:  I've been drinking too much"
-msgstr "Separation_item:  Olen juonut liikaa"
+#: midi-stream.cc:28
+#, c-format
+msgid "cannot open for write: %s: %s"
+msgstr "tiedostoa ei voitu avata kirjoitettavaksi: %s: `%s'"
 
-#: simple-spacer.cc:248
+#: midi-stream.cc:44
 #, c-format
-msgid "No spring between column %d and next one"
-msgstr "Ei jousta sarakkeen %d ja sitä seuraavan välillä"
+msgid "cannot write to file: `%s'"
+msgstr "tiedostoon ei voitu kirjoittaa: `%s'"
 
-#: slur-engraver.cc:141
-msgid "unterminated slur"
-msgstr "päättymätön kaari"
+#: music-iterator.cc:171
+msgid "Sending non-event to context"
+msgstr "Lähetetään ei-tapahtuma kontekstille"
 
-#. How to shut up this warning, when Voice_devnull_engraver has
-#. eaten start event?
-#: slur-engraver.cc:159
-msgid "can't find start of slur"
-msgstr "ei löytynyt alkua kaarelle"
+#: music.cc:141
+#, fuzzy, c-format
+msgid "octave check failed; expected \"%s\", found: \"%s\""
+msgstr "oktaavitarkistus epäonnistui; oletettiin \"%s\", löydettiin: %s"
 
-#: source-file.cc:67
+#: music.cc:207
 #, c-format
-msgid "Huh?  Got %d, expected %d characters"
-msgstr "Täh?  Saatiin %d merkkiä, oletetun %d asemesta"
+msgid "transposition by %s makes alteration larger than double"
+msgstr "transponointi %s:N verran tekee muutokset suuremmaksi kuin kaksi"
 
-#: spacing-spanner.cc:379
-#, c-format
-msgid "Global shortest duration is %s\n"
-msgstr "Globaali lyhin kesto on %s\n"
+#: new-fingering-engraver.cc:96
+msgid "cannot add text scripts to individual note heads"
+msgstr "ei voitu lisätä tekstinpätkiä yksittäisiin nuotteihin"
+
+#: new-fingering-engraver.cc:239
+msgid "no placement found for fingerings"
+msgstr "sormitukselle ei löytynyt paikkaa"
+
+#: new-fingering-engraver.cc:240
+msgid "placing below"
+msgstr "sijoitetaan alle"
+
+#: note-collision.cc:457
+msgid "ignoring too many clashing note columns"
+msgstr "liian monta törmäävää nuottisaraketta"
+
+#: note-column.cc:124
+msgid "cannot have note heads and rests together on a stem"
+msgstr "ei voinut olla nuotinpäitä ja taukoja yhtäaikaa palkissa"
 
-#: spring-smob.cc:32
+#: note-head.cc:63
 #, c-format
-msgid "#<spring smob d= %f>"
-msgstr "#<spring smob d= %f>"
+msgid "none of note heads `%s' or `%s' found"
+msgstr "yhtäkään nuottipäistä `%s' tai `%s' ei löytynyt"
 
-#: staff-symbol.cc:61
-msgid "staff symbol: indentation yields beyond end of line"
-msgstr "viivastosymboli: sisennys vie rivin lopun taakse"
+#: note-heads-engraver.cc:61
+msgid "NoteEvent without pitch"
+msgstr "NoteEvent ilman nuottikorkeutta"
 
-#: stem.cc:118
-msgid "Weird stem size; check for narrow beams"
-msgstr "Outo varren koko; koeta lyhyempiä palkkeja"
+#: open-type-font.cc:33
+#, c-format
+msgid "cannot allocate %lu bytes"
+msgstr "ei voitu varata %lu bittiä"
 
-#: stem.cc:611
+#: open-type-font.cc:37
 #, c-format
-msgid "flag `%s' not found"
-msgstr "lippua `%s' ei löydetty"
+msgid "cannot load font table: %s"
+msgstr "ei voitu ladata fonttitaulukkoa: `%s'"
 
-#: stem.cc:624
+#: open-type-font.cc:98
 #, c-format
-msgid "flag stroke `%s' not found"
-msgstr "lipun piirtoa `%s' ei löytynyt"
+msgid "unsupported font format: %s"
+msgstr "tukematon fonttimuoto: %s"
 
-#: stem-engraver.cc:96
-msgid "tremolo duration is too long"
-msgstr "tremolon kesto on liian pitkä"
+#: open-type-font.cc:100
+#, c-format
+msgid "unknown error: %d reading font file: %s"
+msgstr "tuntematon virhe: %d lukee fonttitiedostoa: %s"
 
-#: stem-engraver.cc:124
+#: open-type-font.cc:173 open-type-font.cc:297
 #, c-format
-msgid "Adding note head to incompatible stem (type = %d)"
-msgstr "Lisätään nuottipää sopimattomaan varteen (tyyppi = %d)"
+msgid "FT_Get_Glyph_Name() returned error: %u"
+msgstr "FT_Get_Glyph_Name() palautti virheen: %u"
 
-#: stem-engraver.cc:125
-msgid "Don't you want polyphonic voices instead?"
-msgstr "Etkö haluaisi polyfonisia äänisiä sen sijaan?"
+#: page-turn-page-breaking.cc:205
+#, fuzzy
+msgid ""
+"cannot fit the first page turn onto a single page.  Consider setting first-"
+"page-number to an even number."
+msgstr ""
+"Ei voitu sovittaa ensimmäistä sivunkääntöä yhdelle sivulle. Harkitse "
+"ensimmäisen sivunumeron (first-page-number) asettamista parittomaksi."
 
-#: streams.cc:34
+#: page-turn-page-breaking.cc:218
 #, c-format
-msgid "can't create directory: `%s'"
-msgstr "ei voitu tehdä hakemistoa: `%s'"
+msgid "Calculating page and line breaks (%d possible page breaks)..."
+msgstr ""
+"Lasketaan sivujen ja rivien katkaisuja (%d mahdollista sivunkatkaisua)..."
 
-#: streams.cc:48
-msgid "Error syncing file (disk full?)"
-msgstr "Virhe synkronisoitaessa tiedostoa (onko levy täysi?)"
+#: page-turn-page-breaking.cc:236 paper-score.cc:154
+msgid "Drawing systems..."
+msgstr "Piirretään tahteja..."
 
-#: system.cc:125
+#: pango-font.cc:181
 #, c-format
-msgid "Element count %d."
-msgstr "Elementtien määrä: %d."
+msgid ""
+"Glyph has no name, but font supports glyph naming.\n"
+"Skipping glyph U+%0X, file %s"
+msgstr ""
+"Ladokkeella ei ole nimea, mutta kirjasin tukee ladokkeen nimeämistä.\n"
+"Sivuutetaan ladoke U+%0X, tiedostossa %s"
+
+#: pango-font.cc:224
+#, c-format
+msgid "no PostScript font name for font `%s'"
+msgstr "ei PostScript fonttinimeä fontille `%s'"
+
+#: pango-font.cc:272
+msgid "FreeType face has no PostScript font name"
+msgstr "FreeType muodolla ei ollut PostScript fonttinimeä"
 
-#: system.cc:372
+#: paper-outputter-scheme.cc:33
 #, c-format
-msgid "Grob count %d "
-msgstr "Graafisien objektien (grob) määrä: %d "
+msgid "Layout output to `%s'..."
+msgstr "Aseta tulostus paikkaan `%s'..."
 
-#: system.cc:386
+#: paper-score.cc:105
 msgid "Calculating line breaks..."
 msgstr "Lasketaan rivinvaihtoja..."
 
-#: text-spanner-engraver.cc:81
-msgid "can't find start of text spanner"
-msgstr "ei löydetty alkua tekstiladokkeelle"
+#: paper-score.cc:118
+#, c-format
+msgid "Element count %d (spanners %d) "
+msgstr "Elementtien määrä: %d (ladokkeita: %d)"
+
+#: paper-score.cc:122
+msgid "Preprocessing graphical objects..."
+msgstr "Esiprosessoidaan graafisia kohteita..."
 
-#: text-spanner-engraver.cc:95
-msgid "already have a text spanner"
-msgstr "tekstiladoke löytyi jo"
+#: parse-scm.cc:83
+msgid "GUILE signaled an error for the expression beginning here"
+msgstr "GUILE antoi virheen lausekkeelle, joka alkoi täältä"
 
-#: text-spanner-engraver.cc:164
-msgid "unterminated text spanner"
-msgstr "päättymätön tekstiladoke"
+#: percent-repeat-engraver.cc:200
+msgid "unterminated percent repeat"
+msgstr "päättämätön prosenttitoisto"
 
-#: tfm.cc:83
-#, c-format
-msgid "can't find ascii character: %d"
-msgstr "ei löydetty ASCII-merkkiä: %d"
+#: performance.cc:45
+msgid "Track..."
+msgstr "Jälki..."
+
+#: performance.cc:74
+msgid "MIDI channel wrapped around"
+msgstr "MIDI kanava kietaistiin ympäri"
 
-#. Not using ngettext's plural feature here, as this message is
-#. more of a programming error.
-#: tfm-reader.cc:108
+#: performance.cc:75
+msgid "remapping modulo 16"
+msgstr "kuvataan uudelleen modulo 16"
+
+#: performance.cc:103
 #, c-format
-msgid "TFM header of `%s' has only %u word (s)"
-msgstr "TFM-otsakkeessa `%s' on vain %u sana(a)"
+msgid "MIDI output to `%s'..."
+msgstr "Tehdään MIDI-tuloste `%s'..."
+
+#: phrasing-slur-engraver.cc:146
+msgid "unterminated phrasing slur"
+msgstr "päättämätön fraaseerauskaari"
 
-#: tfm-reader.cc:142
+#: piano-pedal-engraver.cc:286
 #, c-format
-msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
-msgstr "%s: TFM-tiedostossa on %u parametria, mikä on enemmän kuin maksimimäärä %u"
+msgid "expect 3 strings for piano pedals, found: %ld"
+msgstr "odotettiin 3 merkkijonoa pianopedaalille, löytyi: %ld"
 
-#: tie-performer.cc:159
-msgid "No ties were created!"
-msgstr "Sidoksia ei tehty!"
+#: piano-pedal-engraver.cc:301 piano-pedal-engraver.cc:312
+#: piano-pedal-performer.cc:93
+#, c-format
+msgid "cannot find start of piano pedal: `%s'"
+msgstr "ei löydetty alkua pianopedaalille: `%s'"
 
-#: time-scaled-music-iterator.cc:25
-msgid "no one to print a tuplet start bracket"
-msgstr "ketään ei löytynyt tulostamaan tupletin alkusulkua"
+#: piano-pedal-engraver.cc:347
+#, c-format
+msgid "cannot find start of piano pedal bracket: `%s'"
+msgstr "ei löydetty alkua pianopedaalimerkinnälle: `%s'"
 
-#. If there is no such symbol, we default to the numbered style.
-#. (Here really with a warning!)
-#: time-signature.cc:87
+#: program-option.cc:205
 #, c-format
-msgid "time signature symbol `%s' not found; reverting to numbered style"
-msgstr "aikamerkintäsymbolia `%s' ei löytynyt; vaihdetaan numeroituun tyyliin"
+msgid "no such internal option: %s"
+msgstr "tuntematon sisäinen optio: %s"
 
-#.
-#. Todo: should make typecheck?
-#.
-#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
-#.
-#: time-signature-engraver.cc:57
+#: property-iterator.cc:74
 #, c-format
-msgid "Found strange time signature %d/%d."
-msgstr "Löydettiin outo aikamerkintä: %d/%d."
+msgid "not a grob name, `%s'"
+msgstr "ei ole graafisen objektin (grob) nimi, `%s'"
+
+#: relative-octave-check.cc:38
+msgid "Failed octave check, got: "
+msgstr "Oktaavitarkistus epäonnistui, saatiin: "
 
-#: translator-ctors.cc:53
+#: relocate.cc:44
+#, fuzzy, c-format
+msgid "Setting %s to %s"
+msgstr "Asetetaan %s kohtaan %s\n"
+
+#: relocate.cc:59
 #, c-format
-msgid "unknown translator: `%s'"
-msgstr "tuntematon tulkitsija: `%s'"
+msgid "no such file: %s for %s"
+msgstr "tiedostoa ei löydy: %s kohteelle %s"
 
-#: translator-def.cc:105
-msgid "Program has no such type"
-msgstr "Ohjelmalla ei ole sellaista tyyppiä"
+#: relocate.cc:69 relocate.cc:87
+#, c-format
+msgid "no such directory: %s for %s"
+msgstr "hakemistoa ei löydy: %s kohteelle %s"
 
-#: translator-def.cc:111
+#: relocate.cc:79
 #, c-format
-msgid "Already contains: `%s'"
-msgstr "Sisällytettiin jo: `%s'"
+msgid "%s=%s (prepend)\n"
+msgstr "%s=%s (painota)\n"
 
-#: translator-def.cc:112
+#: relocate.cc:99
 #, c-format
-msgid "Not adding translator: `%s'"
-msgstr "Ei lisätty tulkitsijaa: `%s'"
+msgid "Relocation: compile prefix=%s, new prefix=%s"
+msgstr "Paikantaminen: käännös-etuliite=%s, uusi etuliite=%s"
 
-#: translator-def.cc:229
+#: relocate.cc:129
 #, c-format
-msgid "can't find: `%s'"
-msgstr "ei löytynyt `%s'"
+msgid "Relocation: framework_prefix=%s"
+msgstr "Paikantaminen: framework_prefix=%s"
 
-#: translator-group.cc:158
+#: relocate.cc:169
 #, c-format
-msgid "can't find or create `%s' called `%s'"
-msgstr "ei löydetty tai ei luotu `%s' nimeltä `%s'"
+msgid "Relocation: is absolute: argv0=%s"
+msgstr "Paikantaminen: absoluuttinen: argv0=%s"
 
-#: translator-group.cc:230
+#: relocate.cc:176
 #, c-format
-msgid "can't find or create: `%s'"
-msgstr "ei löydetty tai ei luotu: `%s'"
+msgid "Relocation: from cwd: argv0=%s"
+msgstr "Paikantaminen: nykyisestä polusta: argv0=%s"
 
-#: vaticana-ligature.cc:49
-msgid "ascending vaticana style flexa"
-msgstr "laskeva vaticana-tyylinen flexa"
+#: relocate.cc:185
+#, c-format
+msgid ""
+"Relocation: from PATH=%s\n"
+"argv0=%s"
+msgstr ""
+"Paikantaminen: polusta PATH=%s\n"
+"argv0=%s"
 
-#: vaticana-ligature.cc:219
-msgid "Vaticana_ligature:thickness undefined; assuming 1.4"
-msgstr "Vaticana_ligature: määrittämätön paksuus; oletetaan 1.4"
+#: relocate.cc:354
+#, fuzzy, c-format
+msgid "Relocation file: %s"
+msgstr "Paikannustiedosto %s\n"
 
-#: vaticana-ligature.cc:233
-msgid "Vaticana_ligature:x-offset undefined; assuming 0.0"
-msgstr "Vaticana_ligature: x-offset määrittämätön; oletetaan 0.0"
+#: relocate.cc:390
+#, c-format
+msgid "Unknown relocation command %s"
+msgstr "Tuntematon paikannuskomento %s"
 
-#: vaticana-ligature.cc:258
-msgid "Vaticana_ligature: (delta_pitch == 0)"
-msgstr "Vaticana_ligature: (delta_pitch == 0)"
+#: rest-collision.cc:151
+msgid "cannot resolve rest collision: rest direction not set"
+msgstr "ei voida määrittää taukojen törmäystä: tauon suuntaa ei asetettu"
 
-#: vaticana-ligature.cc:271
-msgid "Vaticana_ligature:delta-pitch -> ignoring join"
-msgstr "Vaticana_ligature:delta-pitch -> sivuutetaan sidos"
+#: rest-collision.cc:165 rest-collision.cc:210
+msgid "too many colliding rests"
+msgstr "liian monta törmäävää taukoa"
 
-#: vaticana-ligature-engraver.cc:477
+#: rest.cc:144
 #, c-format
-msgid "Vaticana_ligature_engraver: setting `spacing-increment = %f': ptr=%ul"
-msgstr "Vaticana_ligature_engraver: asetetaan `spacing-increment = %f': ptr=%ul"
+msgid "rest `%s' not found"
+msgstr "taukoa `%s' ei löytynyt, "
 
-#: volta-engraver.cc:112
-msgid "No volta spanner to end"
-msgstr "Ei päätettävää volta-ladoketta"
+#: score-engraver.cc:67
+#, c-format
+msgid "cannot find `%s'"
+msgstr "`%s' ei lyötynyt"
 
-#: volta-engraver.cc:123
-msgid "Already have a volta spanner.  Stopping that one prematurely."
-msgstr "Löytyi ja volta-ladoke.  Lopetetaan se ennenaikaisesti."
+#: score-engraver.cc:69
+msgid "Music font has not been installed properly."
+msgstr "Fontteja ei oltu asennettu kunnolla."
 
-#: volta-engraver.cc:127
-msgid "Also have a stopped spanner.  Giving up."
-msgstr "Löytyi myös lopetettu ladoke.  Luovutetaan."
+#: score-engraver.cc:71
+#, c-format
+msgid "Search path `%s'"
+msgstr "Hakupolku `%s'"
 
-#: parser.yy:480
-msgid "Identifier should have alphabetic characters only"
-msgstr "Tunnisteessa saa olla vain aakkosellisia merkkejä"
+#: score-engraver.cc:73
+msgid "Aborting"
+msgstr "Keskeytetään"
 
-#: parser.yy:779
-msgid "More alternatives than repeats.  Junking excess alternatives."
-msgstr "Enemmän vaihtoehtoja kuin kertauksia.  Heitetään pois liialliset vaihtoehdot."
+#: score.cc:225
+msgid "already have music in score"
+msgstr "viivastolla on jo musiikkia"
 
-#: parser.yy:861 parser.yy:868
-msgid "\\applycontext takes function argument"
-msgstr "\\applycontext vaati funktioargumentin"
+#: score.cc:226
+msgid "this is the previous music"
+msgstr "tämä on edellinen musiikki"
 
-#: parser.yy:877
-msgid "Second argument must be a symbol"
-msgstr "Toisen argumentin on oltava symboli"
+#: score.cc:231
+msgid "errors found, ignoring music expression"
+msgstr "virheitä löytyi, sivuutetaan musiikki-ilmaisu"
 
-#: parser.yy:882
-msgid "First argument must be a procedure taking one argument"
-msgstr "Ensimmäisen argumentin on oltava aliohjelma, joka sa yhden argumentin"
+#. FIXME:
+#: script-engraver.cc:102
+#, fuzzy
+msgid "do not know how to interpret articulation: "
+msgstr "ei tiedetä kuinka tulkita artikulaatio: "
 
-#: parser.yy:1009
-msgid "\\apply takes function argument"
-msgstr "\\apply vaatii funktioargumentin"
+#: script-engraver.cc:103
+msgid "scheme encoding: "
+msgstr "scheme koodaus: "
 
-#: parser.yy:1501
-msgid "Expecting string as script definition"
-msgstr "Oletetaan merkkijonon olevan skriptimäärittely"
+#: simple-spacer.cc:375
+#, c-format
+msgid "No spring between column %d and next one"
+msgstr "Ei jousta sarakkeen %d ja sitä seuraavan välillä"
 
-#: parser.yy:1598
-msgid "Expecting musical-pitch value"
-msgstr "Oletetaan musiikillinen nuottikorkeusarvo"
+#: slur-engraver.cc:83 tuplet-engraver.cc:75
+#, c-format
+msgid "direction of %s invalid: %d"
+msgstr ""
 
-#: parser.yy:1609
-msgid "Must have duration object"
-msgstr "Täytyy olla kesto-objekti"
+#: slur-engraver.cc:157
+msgid "unterminated slur"
+msgstr "päättämätön kaari"
 
-#: parser.yy:1618 parser.yy:1626
-msgid "Have to be in Lyric mode for lyrics"
-msgstr "Täytyy olla Lyrics -moodissa lyriikkaa varten"
+#: slur-engraver.cc:166
+msgid "cannot end slur"
+msgstr "ei löytynyt kaaren loppua"
 
-#: parser.yy:1798 parser.yy:1853
+#: source-file.cc:74
 #, c-format
-msgid "not a duration: %d"
-msgstr "ei ole kesto: %d"
+msgid "expected to read %d characters, got %d"
+msgstr "odotettiin %d merkkiä, saatiin %d"
 
-#: parser.yy:1949
-msgid "Have to be in Note mode for notes"
-msgstr "Täytyy olla Note -moodissa nuotteja varten"
+#: staff-symbol-engraver.cc:62
+msgid "staff-span event has no direction"
+msgstr "viivastot ylittävällä tapahtumalla ei ole suuntaa"
 
-#: parser.yy:2032
-msgid "Have to be in Chord mode for chords"
-msgstr "Täytyy olla Chord -moodissa sointuja varten"
+#: stem-engraver.cc:92
+msgid "tremolo duration is too long"
+msgstr "tremolon kesto on liian pitkä"
 
-#: parser.yy:2171
-msgid "need integer number arg"
-msgstr "tarvitaan kokonaislukuargumentti"
+#. FIXME:
+#: stem-engraver.cc:129
+#, c-format
+msgid "adding note head to incompatible stem (type = %d)"
+msgstr "lisätään nuottipää sopimattomaan varteen (tyyppi = %d)"
 
-#: parser.yy:2316
-msgid "Suspect duration found following this beam"
-msgstr "Epäilty kesto löytyi palkin jälkeen"
+#: stem-engraver.cc:131
+msgid "maybe input should specify polyphonic voices"
+msgstr "ehkä syötteen täytyisi määrittää moniäänisiä ääniä"
 
-#: lexer.ll:186
-msgid "EOF found inside a comment"
-msgstr "EOF löytyi kommentin sisältä"
+#: stem.cc:105
+msgid "weird stem size, check for narrow beams"
+msgstr "outo varren koko, koeta lyhyempiä palkkeja"
 
-#: lexer.ll:200
-msgid "\\maininput disallowed outside init files"
-msgstr "\\maininput ei ole sallittu init-alustustiedoston ulkopuolella"
+#: stem.cc:641
+#, c-format
+msgid "flag `%s' not found"
+msgstr "lippua `%s' ei löydetty"
 
-#: lexer.ll:224
+#: stem.cc:652
 #, c-format
-msgid "wrong or undefined identifier: `%s'"
-msgstr "väärä tai määrittämätön tunniste: `%s'"
+msgid "flag stroke `%s' not found"
+msgstr "lipun piirtoa `%s' ei löytynyt"
 
-#. backup rule
-#: lexer.ll:233
-msgid "Missing end quote"
-msgstr "Puuttuva loppulainausmerkki"
+#: system.cc:180
+#, c-format
+msgid "Element count %d."
+msgstr "Elementtien määrä: %d."
 
-#. backup rule
-#: lexer.ll:255 lexer.ll:259
-msgid "white expected"
-msgstr "oletettiin välilyönti"
+#: system.cc:276
+#, c-format
+msgid "Grob count %d"
+msgstr "Graafisien objektien (grob) määrä: %d "
 
-#: lexer.ll:268
-msgid "Can't evaluate Scheme in safe mode"
-msgstr "Scheme ei evaluoitunut turvamoodissa"
+#: text-spanner-engraver.cc:61
+msgid "cannot find start of text spanner"
+msgstr "ei löydetty alkua tekstileikkeelle"
 
-#: lexer.ll:397 lexer.ll:487
-msgid "Brace found at end of lyric.  Did you forget a space?"
-msgstr "Sulkumerkki löytyi lyriikan lopussa. Unohditko välilyönnin?"
+#: text-spanner-engraver.cc:73
+msgid "already have a text spanner"
+msgstr "tekstileike löytyi jo"
+
+#: text-spanner-engraver.cc:133
+msgid "unterminated text spanner"
+msgstr "päättämätön tekstileike"
+
+#: tie-engraver.cc:264
+msgid "lonely tie"
+msgstr "yksinäinen sidos"
 
-#: lexer.ll:574
+#.
+#. Todo: should make typecheck?
+#.
+#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
+#.
+#: time-signature-engraver.cc:64
 #, c-format
-msgid "invalid character: `%c'"
-msgstr "epäkelpo merkki: `%c'"
+msgid "strange time signature found: %d/%d"
+msgstr "löydettiin outo aikamerkintä: %d/%d"
 
-#: lexer.ll:651
+#. If there is no such symbol, we default to the numbered style.
+#. (Here really with a warning!)
+#: time-signature.cc:83
 #, c-format
-msgid "unknown escaped string: `\\%s'"
-msgstr "tuntematon koodinvaihtomerkillinen merkkijono: `\\\\%s'"
+msgid "time signature symbol `%s' not found; reverting to numbered style"
+msgstr "aikamerkintäsymbolia `%s' ei löytynyt; vaihdetaan numeroituun tyyliin"
+
+#: translator-ctors.cc:52
+#, c-format
+msgid "unknown translator: `%s'"
+msgstr "tuntematon tulkitsija: `%s'"
+
+#: translator-group.cc:151
+#, c-format
+msgid "cannot find: `%s'"
+msgstr "ei löytynyt `%s'"
 
-#: lexer.ll:742
+#: translator.cc:332
 #, c-format
-msgid "Incorrect lilypond version: %s (%s, %s)"
-msgstr "Epäkelpo lilypond versio: %s (%s, %s)"
+msgid "Two simultaneous %s events, junking this one"
+msgstr "Kaksi samanaikaista %s-tapahtumaa, hylätään tämä"
+
+#: translator.cc:333
+#, c-format
+msgid "Previous %s event here"
+msgstr "Edellinen %s-tapahtuma täällä"
+
+#: trill-spanner-engraver.cc:68
+msgid "cannot find start of trill spanner"
+msgstr "ei löydetty alkua trilliladokkeelle"
+
+#: trill-spanner-engraver.cc:80
+msgid "already have a trill spanner"
+msgstr "trilliladoke löytyi jo"
+
+#: vaticana-ligature-engraver.cc:388
+#, c-format
+msgid ""
+"ignored prefix (es) `%s' of this head according to restrictions of the "
+"selected ligature style"
+msgstr ""
+"sivuutetaan prefiksi (t) `%s' tälle nuottipäälle valitun ligatuurityylin "
+"mukaisesti"
 
-#: lexer.ll:743
-msgid "Consider updating the input with the convert-ly script"
-msgstr "Harkitse syötteen päivittämistä convert-ly scriptillä"
+#: vaticana-ligature-engraver.cc:714
+#, c-format
+msgid "Vaticana_ligature_engraver: setting `spacing-increment = %f': ptr =%ul"
+msgstr ""
+"Vaticana_ligature_engraver: asetetaan `spacing-increment = %f': ptr=%ul"
 
-#~ msgid "Run LilyPond using LaTeX for titling"
-#~ msgstr "Aja LilyPond käyttäen LaTeX:ia otsikoimiseen"
+#: vaticana-ligature.cc:84
+msgid "flexa-height undefined; assuming 0"
+msgstr "flexa-height määrittämättä; oletetaan 0"
 
-#~ msgid "Fetch and rebuild from latest source package"
-#~ msgstr "Hae ja käännä uudelleen viimeisestä lähdekoodipakkauksesta"
+#: vaticana-ligature.cc:89
+msgid "ascending vaticana style flexa"
+msgstr "laskeva vaticana-tyylinen flexa"
 
-#~ msgid "unpack and build in DIR [%s]"
-#~ msgstr "pura paketti ja käännä hakemistiin DIR [%s]"
+#: vaticana-ligature.cc:177
+msgid "Vaticana_ligature: zero join (delta_pitch == 0)"
+msgstr "Vaticana_ligature: nollayhdiste (delta_pitch == 0)"
 
-#~ msgid "execute COMMAND, subtitute:"
-#~ msgstr "suorita KOMENTO, korvaa:"
+#. fixme: be more verbose.
+#: volta-engraver.cc:144
+msgid "cannot end volta spanner"
+msgstr "ei löydetty loppua volta ladokkeelle"
 
-#~ msgid "%b: build root"
-#~ msgstr "%b: laatimisen juuri"
+#: volta-engraver.cc:154
+msgid "already have a volta spanner, ending that one prematurely"
+msgstr "löytyi ja volta-ladoke, lopetetaan se ennenaikaisesti"
 
-#~ msgid "%n: package name"
-#~ msgstr "%n: paketin nimi"
+#: volta-engraver.cc:158
+msgid "also already have an ended spanner"
+msgstr "myös tekstileike päätettiin jo"
 
-#~ msgid "%r: release directory"
-#~ msgstr "%r: julkaisuhakemisto"
+#: volta-engraver.cc:159
+msgid "giving up"
+msgstr "luovutetaan"
 
-#~ msgid "%t: tarball"
-#~ msgstr "%t: tar-paketti"
+#: parser.yy:702
+msgid "\\paper cannot be used in \\score, use \\layout instead"
+msgstr "\\paper ei voi olla käytössä \\score:ssa, käytä \\layout sen sijaan"
 
-#~ msgid "%v: package version"
-#~ msgstr "%v: paketin versio"
+#: parser.yy:726
+msgid "need \\paper for paper block"
+msgstr "tarvitaan \\paper paperiryhmälle"
 
-#~ msgid "keep all output, and name the directory %s"
-#~ msgstr "säilytä kaikki tulosteet ja nimeä tiedosto %s"
+#: parser.yy:1172
+msgid "Grob name should be alphanumeric"
+msgstr "Graafiseen objectiin täytyy olla kirjain tai numero"
 
-#~ msgid "upon failure notify EMAIL[,EMAIL]"
-#~ msgstr "virheen sattuessa ilmoita osoitteeseen EMAIL[,EMAIL]"
+#: parser.yy:1475
+msgid "second argument must be pitch list"
+msgstr "toisen argumentin on oltava äänenkorkeuslista"
 
-#~ msgid "remove previous build"
-#~ msgstr "poista aiempi laadinta"
+#: parser.yy:1502 parser.yy:1507 parser.yy:1972
+msgid "have to be in Lyric mode for lyrics"
+msgstr "täytyy olla Lyrics -moodissa lyriikkaa varten"
 
-#~ msgid "fetch and build URL [%s]"
-#~ msgstr "nouda ja laadi URL [%s]"
+#: parser.yy:1604
+msgid "expecting string as script definition"
+msgstr "oletetaan merkkijonon olevan skriptimäärittely"
 
-#~ msgid "Listing `%s'..."
-#~ msgstr "Listataan `%s'..."
+#: parser.yy:1759 parser.yy:1809
+#, c-format
+msgid "not a duration: %d"
+msgstr "ei ole kesto: %d"
 
-#~ msgid "latest is: %s"
-#~ msgstr "viimeisin on: %s"
+#: parser.yy:1926
+msgid "have to be in Note mode for notes"
+msgstr "täytyy olla Note -moodissa nuotteja varten"
 
-#~ msgid "relax, %s is up to date"
-#~ msgstr "rentoudu, %s on päivitetty"
+#: parser.yy:1987
+msgid "have to be in Chord mode for chords"
+msgstr "täytyy olla Chord -moodissa sointuja varten"
 
-#~ msgid "Fetching `%s'..."
-#~ msgstr "Noudetaan `%s'..."
+#: lexer.ll:176
+msgid "stray UTF-8 BOM encountered"
+msgstr "satunnainen UTF-8 BOM (osaluettelo) havaittu"
 
-#~ msgid "Building `%s'..."
-#~ msgstr "Rakennetaan `%s'..."
+#: lexer.ll:180
+msgid "Skipping UTF-8 BOM"
+msgstr "Sivuutetaan UTF-8 BOM (osaluettelo)"
 
-#~ msgid "invalid subtraction: not part of chord: %s"
-#~ msgstr "epäkelpo korvaus: ei ole soinnun osa: %s"
+#: lexer.ll:235
+#, c-format
+msgid "Renaming input to: `%s'"
+msgstr "Avataan syöte: `%s'"
 
-#~ msgid "invalid inversion pitch: not part of chord: %s"
-#~ msgstr "epäkelpo käänteinen äänenkorkeus: ei ole sounnun osa: %s"
+#: lexer.ll:252
+msgid "quoted string expected after \\version"
+msgstr "lainausmerkittyä merkkijonoa ei löytynyt kohteen \\version jälkeen"
 
-#~ msgid "This was the other key definition."
-#~ msgstr "Tämä oli toinen sävellajin määritys."
+#: lexer.ll:256
+msgid "quoted string expected after \\sourcefilename"
+msgstr "odotettiin lainausmerkittyä merkkijonoa \\sourcefilename:n jälkeen"
 
-#~ msgid ", at "
-#~ msgstr ", kohdassa "
+#: lexer.ll:260
+msgid "integer expected after \\sourcefileline"
+msgstr "odotettiin kokonaislukua \\sourcefilename:n jälkeen"
 
-#~ msgid "Pitch arguments out of range"
-#~ msgstr "Äänenkorkeusargumentti vaihteluvälin ulkopuolella"
+#: lexer.ll:273
+msgid "EOF found inside a comment"
+msgstr "EOF löytyi kommentin sisältä"
 
-#~ msgid "(left_head == 0)"
-#~ msgstr "(left_head == 0)"
+#: lexer.ll:288
+msgid "\\maininput not allowed outside init files"
+msgstr "\\maininput ei ole sallittu init-alustustiedoston ulkopuolella"
 
-#~ msgid "undefined left_head"
-#~ msgstr "määrittämätön left_head"
+#: lexer.ll:312
+#, c-format
+msgid "wrong or undefined identifier: `%s'"
+msgstr "väärä tai määrittämätön tunniste: `%s'"
 
-#~ msgid "(right_head == 0)"
-#~ msgstr "(right_head == 0)"
+#. backup rule
+#: lexer.ll:321
+msgid "end quote missing"
+msgstr "jälkimmäinen lainaismerkki puuttuu"
 
-#~ msgid "undefined right_head"
-#~ msgstr "määrittämätön right_head"
+#: lexer.ll:466
+msgid "Brace found at end of lyric.  Did you forget a space?"
+msgstr "Sulkumerkki löytyi lyriikan lopussa.  Unohditko välilyönnin?"
 
-#~ msgid "junking lonely porrectus"
-#~ msgstr "heitetään pois yksinäinen Porrectus"
+#: lexer.ll:559
+msgid "Brace found at end of markup.  Did you forget a space?"
+msgstr "Sulkumerkki löytyi lyriikan lopussa.  Unohditko välilyönnin?"
 
-#~ msgid "porrectus style undefined; using mensural"
-#~ msgstr "porrectus-tyyli määrittämätön; käytetään mensuraalia"
+#: lexer.ll:659
+#, c-format
+msgid "invalid character: `%c'"
+msgstr "epäkelpo merkki: `%c'"
 
-#~ msgid "stack size cur %d, max %d\n"
-#~ msgstr "nyk pinokoko: %d, maximi %d\n"
+#: lexer.ll:774 lexer.ll:775
+#, c-format
+msgid "unknown escaped string: `\\%s'"
+msgstr "tuntematon koodinvaihtomerkillinen merkkijono: `\\\\%s'"
 
-#~ msgid "Putting slur over rest."
-#~ msgstr "Laitetaan kaari tauon päälle."
+#: lexer.ll:880 lexer.ll:881
+#, c-format
+msgid "file too old: %s (oldest supported: %s)"
+msgstr ""
 
-#~ msgid "Slur over rest?"
-#~ msgstr "Kaari tauon päällä?"
+#: lexer.ll:881 lexer.ll:882
+#, fuzzy
+msgid "consider updating the input with the convert-ly script"
+msgstr "Harkitse syötteen päivittämistä convert-ly scriptillä"
 
-#~ msgid "Text_spanner too small"
-#~ msgstr "Tekstiladoke on liian pieni"
+#: lexer.ll:887 lexer.ll:888
+#, c-format
+msgid "program too old: %s (file requires: %s)"
+msgstr ""
 
-#~ msgid "Can't specify direction for this request"
-#~ msgstr "Ei voitu määritelllä suuntaa tälle pyynnölle"
+#: backend-library.scm:19 lily.scm:599 ps-to-png.scm:82
+#, scheme-format
+msgid "Invoking `~a'..."
+msgstr "Kutsutaan `~a'..."
+
+#: backend-library.scm:24
+#, scheme-format
+msgid "`~a' failed (~a)"
+msgstr "`~a' epäonnistui (~a)"
+
+#: backend-library.scm:95 framework-tex.scm:343 framework-tex.scm:368
+#, scheme-format
+msgid "Converting to `~a'..."
+msgstr "Muunnetaan kohteeksi `~a'..."
+
+#: backend-library.scm:108
+#, scheme-format
+msgid "Converting to ~a..."
+msgstr "Muunnetaan kohteeksi `~a'..."
+
+#: backend-library.scm:145
+#, scheme-format
+msgid "Writing header field `~a' to `~a'..."
+msgstr "Kirjoitetaan otsaketietue `~a' kohteeseen `~a'..."
+
+#: define-context-properties.scm:20 define-grob-properties.scm:10
+#: define-music-properties.scm:10
+#, scheme-format
+msgid "symbol ~S redefined"
+msgstr "symbol ~S määriteltiin uudelleen"
+
+#: define-event-classes.scm:119
+#, scheme-format
+msgid "event class ~A seems to be unused"
+msgstr "tapahtumaluokka ~A näkyy olevan käyttämätön"
+
+#. should be programming-error
+#: define-event-classes.scm:125
+#, scheme-format
+msgid "translator listens to nonexisting event class ~A"
+msgstr "kääntäjä kuuntelee olematonta tapahtumaluokkaa ~A"
+
+#: define-markup-commands.scm:255
+msgid "no systems found in \\score markup, does it have a \\layout block?"
+msgstr ""
+"systeemejä ei löytynyt \\score merkinnässä, onko siinä \\layout blokkia?"
+
+#: define-markup-commands.scm:1297
+#, scheme-format
+msgid "not a valid duration string: ~a"
+msgstr "ei ole sallittu keston merkkijono: ~a"
+
+#: define-music-types.scm:751
+#, scheme-format
+msgid "symbol expected: ~S"
+msgstr "odotettiin symboli: ~S"
+
+#: define-music-types.scm:754
+#, scheme-format
+msgid "cannot find music object: ~S"
+msgstr "ei löytynyt musiikkiobjektia: ~S"
+
+#: define-music-types.scm:774
+#, scheme-format
+msgid "unknown repeat type `~S'"
+msgstr "tuntematon toistotyyppi `~S'"
+
+#: define-music-types.scm:775
+msgid "See music-types.scm for supported repeats"
+msgstr "Katso tiedostosta music-types.scm tuetut toistotyypit"
+
+#: document-backend.scm:91
+#, scheme-format
+msgid "pair expected in doc ~s"
+msgstr "pari odotettiin dokumentissa ~s"
+
+#: document-backend.scm:135
+#, scheme-format
+msgid "cannot find interface for property: ~S"
+msgstr "ei löytynyt rajapintaa ominaisuudelle: ~S"
+
+#: document-backend.scm:145
+#, scheme-format
+msgid "unknown Grob interface: ~S"
+msgstr "tuntematon ladoke-rajapinta: ~S"
+
+#: documentation-lib.scm:45
+#, scheme-format
+msgid "Processing ~S..."
+msgstr "Prosessoidaan ~S..."
+
+#: documentation-lib.scm:150
+#, scheme-format
+msgid "Writing ~S..."
+msgstr "Kirjoitetaan ~S..."
+
+#: documentation-lib.scm:172
+#, scheme-format
+msgid "cannot find description for property ~S (~S)"
+msgstr "ei löytynyt kuvausta ominaisuudelle ~S (~S)"
+
+#: framework-eps.scm:91 framework-eps.scm:92
+#, scheme-format
+msgid "Writing ~a..."
+msgstr "Kirjoitetaan ~a..."
+
+#: framework-ps.scm:279
+#, scheme-format
+msgid "cannot embed ~S=~S"
+msgstr "ei voitu upottaa ~S=~S"
+
+#: framework-ps.scm:332
+#, scheme-format
+msgid "cannot extract file matching ~a from ~a"
+msgstr "Ei voitu poimia sopivaa tiedoa ~a:sta ~a:han"
+
+#: framework-ps.scm:349
+#, fuzzy, scheme-format
+msgid "do not know how to embed ~S=~S"
+msgstr "ei tiedetä kuinka upottaa ~S=~S"
+
+#: framework-ps.scm:380
+#, fuzzy, scheme-format
+msgid "do not know how to embed font ~s ~s ~s"
+msgstr "ei tiedetä kuinka sijoittaa fontti ~s ~s ~s"
+
+#: framework-ps.scm:729
+#, scheme-format
+msgid "cannot convert <stdout> to ~S"
+msgstr "ei voida konvertoida <stdout> ~S:ksi"
+
+#: framework-ps.scm:748 framework-ps.scm:751
+#, scheme-format
+msgid "cannot generate ~S using the postscript back-end"
+msgstr "ei voida generoida ~S käyttäen postscript päänä"
+
+#: framework-ps.scm:758
+#, fuzzy
+msgid ""
+"\n"
+"The PostScript backend does not support the 'classic'\n"
+"framework. Use the EPS backend instead,\n"
+"\n"
+"  lilypond -b eps <file>\n"
+"\n"
+"or remove the lilypond-book specific settings from the input.\n"
+msgstr ""
+"nPostScript -pää ei tue 'klassista' kehystä. Käytä EPS -pääätä sensijaan\n"
+" \n"
+"  lilypond -b eps <file>\n"
+"\n"
+"tai poista lilypond-book -ominaiset asetukset syötteestä.\n"
+
+#: framework-tex.scm:360
+#, scheme-format
+msgid "TeX file name must not contain whitespace: `~a'"
+msgstr "TeX -tiedostoniemessä ei saa olla välilyöntejä: `~a'"
+
+#: layout-beam.scm:29
+#, scheme-format
+msgid "Error in beam quanting.  Expected (~S,~S) found ~S."
+msgstr "Virhe palkin laskennassa.  Odotettiin (~S,~S), löytyi ~S."
+
+#: layout-beam.scm:46
+#, scheme-format
+msgid "Error in beam quanting.  Expected ~S 0, found ~S."
+msgstr "Virhe palkin laskennassa.  Odotettiin ~S 0, löytyi ~S."
+
+#: layout-page-layout.scm:357
+msgid "Calculating page breaks..."
+msgstr "Lasketaan sivunvaihtoja..."
+
+#: lily-library.scm:593
+#, scheme-format
+msgid "unknown unit: ~S"
+msgstr "tuntematon yksikkö: ~S"
+
+#: lily-library.scm:626
+#, scheme-format
+msgid "no \\version statement found, please add~afor future compatibility"
+msgstr ""
+"ei löytynyt \\version-määrittelyä, ole hyvä ja lisää~a yhteensopivuuden "
+"varalle"
+
+#: lily-library.scm:633
+msgid "old relative compatibility not used"
+msgstr "vanhaa relative -yhteensopivuutta ei käytetty"
+
+#: lily.scm:144
+#, fuzzy, scheme-format
+msgid "cannot find: ~A"
+msgstr "Ei löydetty ~A"
+
+#: lily.scm:209
+#, scheme-format
+msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
+msgstr "väärä tyyppi argumentille ~a.  Odotettiin ~a, löytyi ~s"
+
+#: lily.scm:525 lily.scm:589
+#, scheme-format
+msgid "failed files: ~S"
+msgstr "epäonniset tiedostot: ~S"
+
+#: lily.scm:579
+#, scheme-format
+msgid "Redirecting output to ~a..."
+msgstr "Ohjataan tulosteet paikkaan ~a..."
+
+#: ly-syntax-constructors.scm:40
+msgid "Music head function must return Music object"
+msgstr "Music-pääfunktion täytyy palauttaa Music-objekti"
+
+#: ly-syntax-constructors.scm:136
+#, scheme-format
+msgid "Invalid property operation ~a"
+msgstr "Tuntematon ominaisuustoiminta ~a"
+
+#: markup.scm:123
+#, scheme-format
+msgid "Wrong number of arguments.  Expect: ~A, found ~A: ~S"
+msgstr "Väärä argumenttin määrä.  Odotettiin: ~A, löytyi ~A: ~S"
+
+#: markup.scm:129
+#, scheme-format
+msgid "Invalid argument in position ~A.  Expect: ~A, found: ~S."
+msgstr "Väärä argumentti paikassa ~A.  Odotettiin: ~A, löytyi: ~S."
+
+#: music-functions.scm:213
+#, fuzzy
+msgid "More alternatives than repeats.  Junking excess alternatives"
+msgstr ""
+"Enemmän vaihtoehtoja kuin kertauksia. Hylätään ylimääräiset vaihtoehdot"
+
+#: music-functions.scm:232
+#, scheme-format
+msgid "expecting 2 elements for chord tremolo, found ~a"
+msgstr "odotettiin 2 elementtiä sointutremololle, löytyi ~a"
+
+#: music-functions.scm:538
+#, scheme-format
+msgid "music expected: ~S"
+msgstr "oletettiin musiikkia: ~S"
+
+#. FIXME: uncomprehensable message
+#: music-functions.scm:589
+#, scheme-format
+msgid "Bar check failed.  Expect to be at ~a, instead at ~a"
+msgstr "Tahtiviivan tarkistus epäonnistui.  Odotettiin: ~a, löytyi: ~a"
+
+#: music-functions.scm:748
+#, fuzzy, scheme-format
+msgid "cannot find quoted music: `~S'"
+msgstr "ei löytynyt lainusmerkittyä musiikkai `~S'"
+
+#: music-functions.scm:942
+#, scheme-format
+msgid "unknown accidental style: ~S"
+msgstr "tuntematan kortusmerkkityyli: ~S"
+
+#: output-ps.scm:315
+msgid "utf-8-string encountered in PS backend"
+msgstr "utf8-merkkijono havaittu PS päässä"
+
+#: output-svg.scm:42
+#, scheme-format
+msgid "undefined: ~S"
+msgstr "määrittämätön: ~S"
+
+#: output-svg.scm:132
+#, scheme-format
+msgid "cannot decypher Pango description: ~a"
+msgstr "decypher ei onnistunut Pango kuvauksessa: ~a"
+
+#: output-tex.scm:98
+#, scheme-format
+msgid "cannot find ~a in ~a"
+msgstr "ei löytynyt ~a paikassa ~a"
+
+#: paper.scm:69
+msgid "Not in toplevel scope"
+msgstr "Ei huipputason piirissä"
+
+#: paper.scm:117
+#, scheme-format
+msgid "This is not a \\layout {} object, ~S"
+msgstr "Tämä ei ole \\layout {} objekti, ~S"
+
+#: paper.scm:129
+#, scheme-format
+msgid "Unknown papersize: ~a"
+msgstr "Tuntematon paperikoko: ~a"
+
+#. TODO: should raise (generic) exception with throw, and catch
+#. that in parse-scm.cc
+#: paper.scm:144
+msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
+msgstr "Täytyy käyttää #(set-paper-size .. ) \\paper { ... } :n sisällä"
+
+#: parser-clef.scm:126
+#, scheme-format
+msgid "unknown clef type `~a'"
+msgstr "tuntematon avaimen tyyppi: `~a'"
+
+#: parser-clef.scm:127
+msgid "see scm/clef.scm for supported clefs"
+msgstr "katso tiedostosta scm/clef.scm tuetut avaimet"
+
+#: ps-to-png.scm:88
+#, scheme-format
+msgid "~a exited with status: ~S"
+msgstr "~a komento lopetettiin tilassa: ~S"
+
+#: to-xml.scm:190
+#, fuzzy, scheme-format
+msgid "assertion failed: ~S"
+msgstr "ajaminen epäonnistui"
+
+#~ msgid "silly pitch"
+#~ msgstr "sekava äänenkorkeus"
+
+#~ msgid "show warranty"
+#~ msgstr "näytä takuusitoumus"
+
+#~ msgid ""
+#~ "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook "
+#~ "document.\n"
+#~ "\n"
+#~ "Example usage:\n"
+#~ "\n"
+#~ " lilypond-book --filter=\"tr '[a-z]' '[A-Z]'\" BOOK\n"
+#~ " lilypond-book --filter=\"convert-ly --no-version --from=2.0.0 -\" BOOK\n"
+#~ " lilypond-book --process='lilypond -I include' BOOK\n"
+#~ msgstr ""
+#~ "Käsittele HTML, LaTeX, texinfo tai DocBook -documenttiin sisällytetyt "
+#~ "LilyPond palaset.\n"
+#~ "Käyttöesimerkkejä:\n"
+#~ "\n"
+#~ "   lilypond-book --filter=\"tr '[a-z]' '[A-Z]'\" BOOK\n"
+#~ "   lilypond-book --filter=\"convert-ly --no-version --from=2.0.0 -\" "
+#~ "BOOK\n"
+#~ "   lilypond-book --process='lilypond -I include' BOOK\n"
+
+#~ msgid "loading default font"
+#~ msgstr "ladataan oletusfontti"
+
+#~ msgid "cannot find default font: `%s'"
+#~ msgstr "ei löytynyt oletusfonttia: `%s'"
+
+#~ msgid "not setting creation callback: not a procedure"
+#~ msgstr "ei aseteta luonnin takaisinkutsua: ei ole proseduuri"
+
+#~ msgid "not setting modification callback: not a procedure"
+#~ msgstr "ei aseteta muutoksen takaisinkutsua: ei ole proseduuri"
+
+#~ msgid "crescendo too small"
+#~ msgstr "liian lyhyt crescendo"
+
+#~ msgid "print this help"
+#~ msgstr "näytä tämä opaste"
+
+#~ msgid "cannot open file %s"
+#~ msgstr "ei voitu avata tiedostoa %s"
+
+#~ msgid "Invalid direction of slur-event"
+#~ msgstr "Tuntematon kaari-tapahtuman suunta"
+
+#~ msgid "invalid direction of tuplet-span-event"
+#~ msgstr "tuntematon tuplettiväli-tapahtuman suunta"
+
+#~ msgid "Incorrect lilypond version: %s (%s, %s)"
+#~ msgstr "Epäkelpo lilypond versio: %s (%s, %s)"