From 943ba657dd8eab79880089515fe2ed94f2ad46b9 Mon Sep 17 00:00:00 2001 From: hjunes Date: Wed, 23 Jul 2003 10:37:06 +0000 Subject: [PATCH] add Finnish translations. --- ChangeLog | 4 + po/fi.po | 2420 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2424 insertions(+) create mode 100644 po/fi.po diff --git a/ChangeLog b/ChangeLog index 9ac98fdbc5..79ab104bfd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2003-07-23 Heikki Junes + + * po/fi.po: add Finnish translations. + 2003-07-23 Han-Wen Nienhuys * Documentation/user/refman.itely: corrections. diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000000..e6a6f3ef9b --- /dev/null +++ b/po/fi.po @@ -0,0 +1,2420 @@ +# 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 , 2003. +# (ersetzt die Übersetzung von 1999 von Erwin Dieterich ) +# +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" +"Last-Translator: Heikki Junes \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\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 +#. Jan Nieuwenhuizen +#. ## 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 /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 ly2dvi.py:128 midi2ly.py:100 +#: mup2ly.py:75 main.cc:111 +msgid "this help" +msgstr "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." + +#: lilylib.py:120 +msgid "It comes with NO WARRANTY." +msgstr "Se toimitetaan ILMAN TAKUUTA." + +#: lilylib.py:127 midi2ly.py:150 mup2ly.py:144 input.cc:88 +msgid "warning: " +msgstr "varoitus: " + +#. 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: " + +#: lilylib.py:134 +#, python-format +msgid "Exiting (%d)..." +msgstr "Lopetetaan (%d)..." + +#: lilylib.py:194 midi2ly.py:224 mup2ly.py:220 +#, python-format +msgid "Usage: %s [OPTION]... FILE" +msgstr "Käyttö: %s [OPTIOT]... TIEDOSTO" + +#: lilylib.py:198 midi2ly.py:228 mup2ly.py:224 main.cc:166 +msgid "Options:" +msgstr "Vaihtoehdot:" + +#: 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 +#, python-format +msgid "Opening pipe `%s'" +msgstr "Avataan putki `%s'" + +#. successful pipe close returns 'None' +#: lilylib.py:240 +#, python-format +msgid "`%s' failed (%d)" +msgstr "`%s' epäonnistui (%d)" + +#: lilylib.py:242 lilylib.py:289 lilypond-book.py:231 ly2dvi.py:512 +msgid "The error log is as follows:" +msgstr "Virheloki on seuraava:" + +#: lilylib.py:262 midi2ly.py:260 mup2ly.py:256 +#, python-format +msgid "Invoking `%s'" +msgstr "Kutsutaan `%s'" + +#: lilylib.py:264 +#, python-format +msgid "Running %s..." +msgstr "Ajetaan %s..." + +#: lilylib.py:282 +#, python-format +msgid "`%s' failed (%s)" +msgstr "`%s' epäonnistui (%s)" + +#: lilylib.py:285 midi2ly.py:266 mup2ly.py:264 +msgid "(ignored)" +msgstr "(sivuutetaan)" + +#: lilylib.py:299 midi2ly.py:276 mup2ly.py:274 +#, python-format +msgid "Cleaning %s..." +msgstr "Siivotaan pois %s..." + +#. 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 +#. Jan Nieuwenhuizen +#. 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 /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-palasia sekarakenteisessa html, LaTeX tai texinfo documentissa" + +#. 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" + +#: 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ä" + +#: lilypond-book.py:130 +msgid "deprecated, use --force-music-fontsize" +msgstr "vanhentunut, käytä --force-music-fontsize" + +#: lilypond-book.py:132 ly2dvi.py:130 main.cc:113 main.cc:118 +msgid "DIR" +msgstr "DIR" + +#: lilypond-book.py:132 +msgid "include path" +msgstr "sisällytä polku" + +#: lilypond-book.py:133 +msgid "write dependencies" +msgstr "kirjoita riippuvuudet" + +#: lilypond-book.py:134 +msgid "PREF" +msgstr "PREF" + +#: lilypond-book.py:134 +msgid "prepend PREF before each -M dependency" +msgstr "laita PREF kunkin -M riippuvuuden eteen" + +#: lilypond-book.py:135 +msgid "don't run lilypond" +msgstr "jätä suorittamatta lilypond" + +#: lilypond-book.py:136 +msgid "don't generate pictures" +msgstr "jätä tuottamatta kuvat" + +#: lilypond-book.py:137 +msgid "strip all lilypond blocks from output" +msgstr "riisu kaikki lilypond -osiot tulostuksesta" + +#: lilypond-book.py:138 lilypond-book.py:139 ly2dvi.py:135 ly2dvi.py:136 +#: midi2ly.py:102 main.cc:114 main.cc:117 +msgid "FILE" +msgstr "TIEDOSTO" + +#: lilypond-book.py:138 +msgid "filename main output file" +msgstr "tiedostonimi päätulostustiedostolle" + +#: lilypond-book.py:139 +msgid "where to place generated files" +msgstr "tuotettujen tiedostojen sijoituspaikka" + +#: lilypond-book.py:140 ly2dvi.py:137 +msgid "RES" +msgstr "RES" + +#: lilypond-book.py:141 ly2dvi.py:138 +msgid "set the resolution of the preview to RES" +msgstr "aseta esikatselulle tarkkuus RES" + +#: lilypond-book.py:142 ly2dvi.py:148 midi2ly.py:105 mup2ly.py:78 main.cc:126 +msgid "verbose" +msgstr "runsassanainen" + +#: lilypond-book.py:143 +msgid "print version information" +msgstr "tulosta versioinformaatio" + +#: lilypond-book.py:144 ly2dvi.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
? +#. 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

, 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

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 +#. +#. (?Pregex) -- 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 ly2dvi.py:673 midi2ly.py:1018 +#, python-format +msgid "getopt says: `%s'" +msgstr "getopt sanoo: `%s'" + +#. HACK +#. status = os.system ('lilypond -w') +#: lilypond-book.py:1630 ly2dvi.py:777 +msgid "no files specified on command line" +msgstr "tiedostoja ei määritelty komentorivillä" + +#. +#. Petr, ik zou willen dat ik iets zinvoller deed, +#. maar wat ik kan ik doen, het verandert toch niets? +#. --hwn 20/aug/99 +#. !@PYTHON@ +#. +#. ly2dvi.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 +#. Jan Nieuwenhuizen +#. This is the third incarnation of ly2dvi. +#. +#. Earlier incarnations of ly2dvi were written by +#. Jeffrey B. Reed (Python version) +#. Jan Arne Fagertun (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 /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") +#: ly2dvi.py:121 +msgid "Run LilyPond, add titles, generate printable document" +msgstr "Aja LilyPond, lisää otsikot, tuota tulostettava dokumentti" + +#: ly2dvi.py:127 main.cc:115 +msgid "write Makefile dependencies for every input file" +msgstr "kirjoita Makefile -riippuvuudet kullekin tulostustiedostolle" + +#: ly2dvi.py:129 +msgid "print even more output" +msgstr "kirjoita jopa enemmän tulostetta" + +#: ly2dvi.py:130 +msgid "add DIR to LilyPond's search path" +msgstr "lisää DIR LilyPondin hakupolkuun" + +#: ly2dvi.py:132 +#, python-format +msgid "keep all output, output to directory %s.dir" +msgstr "säilytä kaikki tulosteet, kirjoita hakemistoon %s.dir" + +#: ly2dvi.py:133 +msgid "don't run LilyPond" +msgstr "jätä ajamatta Lilypond" + +#: ly2dvi.py:134 main.cc:116 +msgid "produce MIDI output only" +msgstr "tuota vain MIDI -tuloste" + +#: ly2dvi.py:135 midi2ly.py:102 +msgid "write ouput to FILE" +msgstr "tulosta tiedostoon TIEDOSTO" + +#: ly2dvi.py:136 +msgid "find pfa fonts used in FILE" +msgstr "etsi pfa fontit joita käytettiin tiedostossa TIEDOSTO" + +#: ly2dvi.py:139 +msgid "generate PostScript output" +msgstr "tuota PostScript -tuloste" + +#: ly2dvi.py:140 +msgid "generate PNG page images" +msgstr "tuota PNG -kuvat sivuista" + +#: ly2dvi.py:141 +msgid "generate PS.GZ" +msgstr "tuota PS.GZ" + +#: ly2dvi.py:142 +msgid "generate PDF output" +msgstr "tuota PDF -tuloste" + +# käytä pdflatex:ia tuottaaksesi PDF -tulosteen +#: ly2dvi.py:143 +msgid "use pdflatex to generate a PDF output" +msgstr "käytä pdflatex:ia tuottaaksesi PDF -tulosteen" + +#. FIXME: preview, picture; to indicate creation of a PNG? +#: ly2dvi.py:145 +msgid "make a picture of the first system" +msgstr "tee kuva ensimmäisestä kokonaisuudesta" + +#: ly2dvi.py:146 +msgid "make HTML file with links to all output" +msgstr "tee HTML -tiedosto johon on kaikki linkitetty kaikki tulosteet" + +#: ly2dvi.py:147 +msgid "KEY=VAL" +msgstr "KEY=VAL" + +#: ly2dvi.py:147 +msgid "change global setting KEY to VAL" +msgstr "vaihda globaali asetus KEY arvoksi VAL" + +#: ly2dvi.py:149 midi2ly.py:106 mup2ly.py:79 main.cc:125 +msgid "print version number" +msgstr "tulosta versionumero" + +#. 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`) +#: ly2dvi.py:232 +#, python-format +msgid "no such setting: `%s'" +msgstr "asetusta ei löydy: `%s'" + +#. 2 == user interrupt. +#: ly2dvi.py:274 +#, python-format +msgid "LilyPond crashed (signal %d)." +msgstr "LilyPond kaatui (signaali %d)." + +#: ly2dvi.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" + +#: ly2dvi.py:281 +#, python-format +msgid "LilyPond failed on input file %s (exit status %d)" +msgstr "LilyPond epäonnistui syöttötiedoston %s kohdalla (lopetustila %d)." + +#: ly2dvi.py:284 +#, python-format +msgid "LilyPond failed on an input file (exit status %d)" +msgstr "LilyPond epäonnistui syöttötiedoston kohdalla (lopetustila %d)." + +#: ly2dvi.py:285 +msgid "Continuing..." +msgstr "Jatketaan..." + +#. urg +#: ly2dvi.py:296 +#, python-format +msgid "Analyzing %s..." +msgstr "Analysoidaan %s..." + +#. search only the first 10k +#: ly2dvi.py:354 +#, python-format +msgid "no LilyPond output found for `%s'" +msgstr "`%s' jäi ilman LilyPond -tulostetta" + +#. 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. +#: ly2dvi.py:397 +#, 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 +#: ly2dvi.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 +#: ly2dvi.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\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? +#: ly2dvi.py:615 +#, python-format +msgid "not a PostScript file: `%s'" +msgstr "ei ole PostScript-tiedosto: `%s'" + +#. todo +#: ly2dvi.py:660 +#, 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 +#: ly2dvi.py:769 +msgid "pseudo filter" +msgstr "valefiltteri" + +#: ly2dvi.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. +#: ly2dvi.py:806 +#, 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? +#. +#: ly2dvi.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 +#: ly2dvi.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 +#: ly2dvi.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? +#: ly2dvi.py:926 input-file-results.cc:68 +#, c-format, python-format +msgid "dependencies output to `%s'..." +msgstr "riippuvuuksien tulosteet paikkaan `%s'" + +#: ly2dvi.py:937 +#, python-format +msgid "%s output to ..." +msgstr "%s -tuloste paikkaan ..." + +#: ly2dvi.py:942 ly2dvi.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'" + +#. Hmm, if this were a function, we could call it the except: clauses +#: ly2dvi.py:965 +#, python-format +msgid "%s output to %s..." +msgstr "%s -tuloste paikkaan %s..." + +#. !@PYTHON@ +#. +#. midi2ly.py -- LilyPond midi import script +#. +#. source file of the GNU LilyPond music typesetter +#. +#. (c) 1998--2003 Han-Wen Nienhuys +#. Jan Nieuwenhuizen +#. ############################################################### +#. 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" +msgstr "Muunna MIDI LilyPond -koodiksi" + +#: midi2ly.py:97 +msgid "print absolute pitches" +msgstr "tulosta tarkat äänenkorkeudet" + +#: midi2ly.py:98 midi2ly.py:103 +msgid "DUR" +msgstr "PIT" + +#: midi2ly.py:98 +msgid "quantise note durations on DUR" +msgstr "kvantisoi nuottipituuden PIT perusteella" + +# tulosta yksikäsitteiset nuottipituudet +#: midi2ly.py:99 +msgid "print explicit durations" +msgstr "tulosta yksikäsitteidet nuottipituudet" + +#: midi2ly.py:101 +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 +msgid "quantise note starts on DUR" +msgstr "nuottien kvantisointi alkukohtana PIT" + +#: midi2ly.py:104 +msgid "DUR*NUM/DEN" +msgstr "PIT*OSOITTAJA/NIMITTÄJÄ" + +# tuplet = Wertaufteilung nach: Peter Giger: Die Kunst des Rhythmus, Seite 25 +#: midi2ly.py:104 +msgid "allow tuplet durations DUR*NUM/DEN" +msgstr "salli tupletti -pituudet PIT*OSOITTAJA/NIMITTÄJÄ" + +#: midi2ly.py:108 +msgid "treat every text as a lyric" +msgstr "käsittele kaikki tekstit lyriikkana" + +#: midi2ly.py:136 mup2ly.py:130 +msgid " 2001--2003" +msgstr " 2001--2003" + +#: 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 +#. +#. 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:1033 +msgid "Example:" +msgstr "Esimerkki:" + +#: midi2ly.py:1083 +msgid "no files specified on command line." +msgstr "tiedostoja ei annettu komentorivillä." + +#. !@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-koodiksi" + +#: 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:76 main.cc:117 +msgid "write output to FILE" +msgstr "tulostetaan tiedostoon TIEDOSTO" + +#: 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'..." + +#: mup2ly.py:1319 +#, python-format +msgid "Writing `%s'..." +msgstr "Kirjoitetaan `%s'..." + +#: getopt-long.cc:146 +#, 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" +msgstr "optio `%s' ei salli argumenttia" + +#: getopt-long.cc:154 +#, c-format +msgid "unrecognized option: `%s'" +msgstr "tunnistamaton optio: `%s'" + +#: getopt-long.cc:161 +#, 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" + +#: warn.cc:44 +#, c-format +msgid "programming error: %s (Continuing; cross thumbs)\n" +msgstr "ohjelmointivirhe: %s (jatketaan; risti kädet)\n" + +#: accidental.cc:202 key-signature-interface.cc:137 +#, c-format +msgid "accidental `%s' not found" +msgstr "korotusmerkkiä `%s' ei löydy" + +#: accidental-engraver.cc:171 new-accidental-engraver.cc:238 +#, c-format +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 +#, c-format +msgid "unknown accidental typesetting: %s. Ignored" +msgstr "tuntematan kortusmerkkien ladonta: %s. Sivuutetaan" + +#: accidental-engraver.cc:212 new-accidental-engraver.cc:279 +#, c-format +msgid "Symbol is not a parent context: %s. Ignored" +msgstr "Symboli ei ole yläkonteksti: %s. Sivuutetaan" + +#: accidental-engraver.cc:215 new-accidental-engraver.cc:282 +#, c-format +msgid "Accidental typesetting must be pair or context-name: %s" +msgstr "Korotusmerkkien ladonta täytyy olla pari tai konteksti-nimi: %s" + +#: afm.cc:66 +#, c-format +msgid "can't find character number: %d" +msgstr "ei löytynyt merkkiä: %d" + +#: afm.cc:81 +#, c-format +msgid "can't find character called: `%s'" +msgstr "ei löytynyt merkkiä nimeltä: `%s'" + +#: afm.cc:142 +#, c-format +msgid "Error parsing AFM file: `%s'" +msgstr "Virhe jäsennettäessä AFM-tiedostoa: `%s'" + +#: all-font-metrics.cc:95 +#, c-format +msgid "checksum mismatch for font file: `%s'" +msgstr "virhesumma ei täsmää fonttitiedostolle: `%s'" + +#: all-font-metrics.cc:97 +#, c-format +msgid "does not match: `%s'" +msgstr "ei täsmää: `%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." + +#: 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" + +#: all-font-metrics.cc:169 +#, c-format +msgid "can't find font: `%s'" +msgstr "ei löytynyt fonttia: `%s'" + +#: all-font-metrics.cc:170 +msgid "Loading default font" +msgstr "Ladataan oletusfontti" + +#: all-font-metrics.cc:185 +#, c-format +msgid "can't find default font: `%s'" +msgstr "ei löytynyt oletusfonttia: `%s'" + +#: all-font-metrics.cc:186 includable-lexer.cc:59 input-file-results.cc:192 +#, 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" + +#: bar-check-iterator.cc:51 +#, 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)" + +#: beam-engraver.cc:176 +msgid "already have a beam" +msgstr "palkki löytyi jo" + +#: beam-engraver.cc:259 +msgid "unterminated beam" +msgstr "päättymätön palkki" + +#: beam-engraver.cc:292 chord-tremolo-engraver.cc:197 +msgid "stem must have Rhythmic structure" +msgstr "varrella on oltava Rhytmic -rakenne" + +#: beam-engraver.cc:306 +msgid "stem doesn't fit in beam" +msgstr "varsi ei sovi palkkiin" + +#: beam-engraver.cc:307 +msgid "beam was started here" +msgstr "palkki aloitettiin täältä" + +#: break-align-interface.cc:173 +#, c-format +msgid "No spacing entry from %s to `%s'" +msgstr "Ei välistyksen syöttöä paikasta %s paikkaan `%s'" + +#: change-iterator.cc:22 +#, c-format +msgid "can't change `%s' to `%s'" +msgstr "ei voitu vaihtaa `%s' tilalle `%s'" + +#. +#. 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_; +#. +#: change-iterator.cc:79 +msgid "I'm one myself" +msgstr "Olen yksinäni" + +#: change-iterator.cc:82 +msgid "none of these in my family" +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:157 +msgid "unterminated chord tremolo" +msgstr "päättymätön sointutremolo" + +#: chord-tremolo-iterator.cc:69 +msgid "no one to print a tremolos" +msgstr "ei ketään joka voisi tulostaan tremolon" + +#: clef.cc:64 +#, c-format +msgid "clef `%s' not found" +msgstr "avainta `%s' ei löydy" + +#: cluster.cc:131 +#, c-format +msgid "unknown cluster style `%s'" +msgstr "tuntematon klusterityyli: `%s'" + +#: coherent-ligature-engraver.cc:84 +#, c-format +msgid "gotcha: ptr=%ul" +msgstr "löytyi: ptr=%ul" + +#: coherent-ligature-engraver.cc:96 +#, c-format +msgid "distance=%f" +msgstr "etäisyys=%f" + +#: coherent-ligature-engraver.cc:139 +#, c-format +msgid "Coherent_ligature_engraver: setting `spacing-increment = 0.01': ptr=%ul" +msgstr "Coherent_ligature_engraver: asetetaan `spacing-increment = 0.01': ptr=%ul" + +#: custos.cc:92 +#, c-format +msgid "custos `%s' not found" +msgstr "custos `%s' ei löytynyt" + +#: dimensions.cc:13 +msgid "NaN" +msgstr "NaN" + +#: dynamic-engraver.cc:204 span-dynamic-performer.cc:82 +msgid "can't find start of (de)crescendo" +msgstr "ei löytynyt alkua (de)crescendolle" + +#: dynamic-engraver.cc:216 +msgid "already have a crescendo" +msgstr "crescendo jo käytössä" + +#: dynamic-engraver.cc:217 +msgid "already have a decrescendo" +msgstr "decresendo jo käytössä" + +#: dynamic-engraver.cc:220 +msgid "Cresc started here" +msgstr "Cresc aloitettiin tästä" + +#: dynamic-engraver.cc:323 +msgid "unterminated (de)crescendo" +msgstr "päätymätön (de)crescendo" + +#: event.cc:49 +#, c-format +msgid "Transposition by %s makes alteration larger than two" +msgstr "Transponointi %s tekee muutokset suuremmaksi kuin kaksi" + +#: event-chord-iterator.cc:76 output-property-music-iterator.cc:27 +#, c-format +msgid "Junking event: `%s'" +msgstr "Hylätään tapahtuma: `%s'" + +#: extender-engraver.cc:94 +msgid "unterminated extender" +msgstr "päättymätön pidennys" + +#: 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.\"" + +#: folded-repeat-iterator.cc:88 +msgid "no one to print a repeat brace" +msgstr "kukaan ei voinut tulostaa toistoa" + +#: font-interface.cc:239 +msgid "couldn't find any font satisfying " +msgstr "mikään fontti ei tuottanut toivottua tulosta" + +#: glissando-engraver.cc:100 +msgid "Unterminated glissando." +msgstr "Päättymätön glissando." + +#: gourlay-breaking.cc:188 +#, 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" + +#: gregorian-ligature-engraver.cc:59 +#, c-format +msgid "\\%s ignored" +msgstr "\\%s sivuutettiin" + +#: gregorian-ligature-engraver.cc:64 +#, c-format +msgid "implied \\%s added" +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." + +#: hairpin.cc:98 +msgid "decrescendo too small" +msgstr "liian lyhyt decrescendo" + +#: 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." + +#: horizontal-bracket-engraver.cc:73 +msgid "Conflicting note group events." +msgstr "Ristiriitainen nuottiryhmä -tapaus." + +#: hyphen-engraver.cc:87 +msgid "unterminated hyphen" +msgstr "päättymätön tavuviiva" + +#: 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." + +#: input.cc:99 +msgid "non fatal error: " +msgstr "ei-keskeyttävä virhe:" + +#: input.cc:107 source-file.cc:146 source-file.cc:239 +msgid "position unknown" +msgstr "sijainti tuntematon:" + +#: 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'" + +#: input-file-results.cc:132 +msgid "Score contains errors; will not process it" +msgstr "Viivastossa on virheitä; sitä ei prosessoida" + +#: input-file-results.cc:172 +#, c-format +msgid "Now processing: `%s'" +msgstr "Prosessoidaan: `%s'" + +#: key-performer.cc:96 +msgid "FIXME: key change merge" +msgstr "KORJATTAVA: sävellajin vaihdon sulautuma" + +#: kpath.cc:76 +#, c-format +msgid "Kpathsea couldn't find TFM file `%s'" +msgstr "Kpathsea ei löytänyt TFM-tiedostoa `%s'" + +#: ligature-engraver.cc:159 +msgid "can't find start of ligature" +msgstr "ei löytynyt alkua ligature:lle" + +#: ligature-engraver.cc:165 +msgid "no right bound" +msgstr "ei oikeata reunaa" + +#: ligature-engraver.cc:191 +msgid "already have a ligature" +msgstr "ligature löytyi jo" + +#: ligature-engraver.cc:207 +msgid "no left bound" +msgstr "ei vasenta reunaa" + +#: ligature-engraver.cc:258 +msgid "unterminated ligature" +msgstr "päättymä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:283 +msgid "ligature was started here" +msgstr "ligature alkoi tästä" + +#: lily-guile.cc:88 +#, c-format +msgid "(load path: `%s')" +msgstr "(hakupolku: `%s')" + +#: lily-guile.cc:576 +#, c-format +msgid "Can't 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:585 +msgid "Doing assignment anyway." +msgstr "Tehdään tehtävä joka tapauksessa." + +#: lily-guile.cc:599 +#, 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" + +#: 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 apua" + +#: main.cc:110 +msgid "use output format EXT" +msgstr "käytä tulostemuotoa EXT" + +#: main.cc:112 +msgid "FIELD" +msgstr "KENTTÄ" + +#: main.cc:112 +msgid "write header field to BASENAME.FIELD" +msgstr "kirjoita otsakekenttä paikkaan PERUSNIMI.KENTTÄ" + +#: main.cc:113 +msgid "add DIR to search path" +msgstr "lisää DIR hakupolkuun" + +#: main.cc:114 +msgid "use FILE as init file" +msgstr "käytetään TIEDOSTO alustustiedostona" + +#: main.cc:118 +msgid "prepend DIR to dependencies" +msgstr "lisää DIR riippuvuuksien alkuun" + +#. +#. should audit again. +#. +#: main.cc:123 +msgid "inhibit file output naming and exporting" +msgstr "estä tiedostotulosteen nimeäminen ja siirtotiedostoon kirjoittaminen" + +#. No version number or newline here. It confuses help2man. +#: main.cc:155 +#, c-format +msgid "Usage: %s [OPTION]... FILE..." +msgstr "Käyttö: %s [OPTIOT]... TIEDOSTO..." + +#: main.cc:157 +msgid "Typeset music and or play MIDI from FILE" +msgstr "Lado musiikki ja 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 kuvaus kieltä syötteenä. LilyPond on osa\n" +"GNU Projektia." + +#: main.cc:182 +#, 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" +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." + +#: main.cc:198 +msgid "GNU LilyPond -- The music typesetter" +msgstr "GNU LilyPond -- Musiikin ladontaohjelma" + +#: main.cc:206 +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" +"as published by the Free Software Foundation.\n" +"\n" +" This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"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" +"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" +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" +"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" +"\n" +" Saat kopion (katso tiedosto COPYING) lisenssistä GNU General Public\n" +"License 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" + +#: 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" + +#: 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\"" + +#: mensural-ligature.cc:215 +msgid "Mensural_ligature:unexpected case fall-through" +msgstr "Mensural_ligature: odottamaton tapauksen raukeaminen" + +#: mensural-ligature.cc:225 +msgid "Mensural_ligature: (join_left == 0)" +msgstr "Mensural_ligature: (join_left == 0)" + +#: mensural-ligature-engraver.cc:248 mensural-ligature-engraver.cc:397 +msgid "unexpected case fall-through" +msgstr "odottamaton tapauksen raukeaminen" + +#: mensural-ligature-engraver.cc:259 +msgid "ligature with less than 2 heads -> skipping" +msgstr "ligatuuri vähemmällä kuin 2:lla nuottipäällä -> ohitetaan" + +#: mensural-ligature-engraver.cc:279 +msgid "can not determine pitch of ligature primitive -> skipping" +msgstr "ei voitu määrittää nuottikorkeutta ligatuurin osalle -> ohitetaan" + +#: mensural-ligature-engraver.cc:302 +msgid "prime interval within ligature -> skipping" +msgstr "priimi-intervalli ligatuurissa -> ohitetaan" + +#: 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" + +#: midi-item.cc:148 +#, c-format +msgid "no such instrument: `%s'" +msgstr "ei löytynyt instrumenttia: `%s'" + +#: midi-item.cc:238 +msgid "silly duration" +msgstr "sekava kesto" + +#: midi-item.cc:251 +msgid "silly pitch" +msgstr "sekava äänenkorkeus" + +#: music-output-def.cc:111 +#, c-format +msgid "can't find `%s' context" +msgstr "ei löytynyt kontekstia `%s'" + +#: my-lily-lexer.cc:169 +#, c-format +msgid "Identifier name is a keyword: `%s'" +msgstr "Tunnistenimi on avainsana: `%s'" + +#: my-lily-lexer.cc:191 +#, c-format +msgid "error at EOF: %s" +msgstr "virhe tiedoston lopussa (EOF): %s" + +#: my-lily-parser.cc:44 +msgid "Parsing..." +msgstr "Jäsennetään..." + +#: my-lily-parser.cc:54 +msgid "Braces don't match" +msgstr "Aaltosulkumerkit eivät täsmää" + +#. +#. music for the softenon children? +#. +#: new-fingering-engraver.cc:143 +msgid "music for the martians." +msgstr "musiikkia marsilaisille" + +#: new-tie-engraver.cc:166 tie-engraver.cc:217 +msgid "lonely tie" +msgstr "yksinäinen sidos" + +#: note-collision.cc:340 +msgid "Too many clashing notecolumns. Ignoring them." +msgstr "Liian monta törmäävää nuottisaraketta. Sivuutetaan ne." + +#: note-head.cc:127 +#, c-format +msgid "note head `%s' not found" +msgstr "nuottipäätä `%s' ei löytynyt" + +#: paper-def.cc:96 +#, c-format +msgid "paper output to `%s'..." +msgstr "paperituloste paikkaan `%s'..." + +#: paper-score.cc:78 +#, c-format +msgid "Element count %d (spanners %d) " +msgstr "Elementtien määrä: %d (ladokkeita: %d)" + +#: paper-score.cc:83 +msgid "Preprocessing graphical objects..." +msgstr "Esiprosessoidaan graafisia kohteita..." + +#: paper-score.cc:116 +msgid "Outputting Score, defined at: " +msgstr "Tulostetaan viivasto, määrittelypaikasta: " + +#: parse-scm.cc:79 +msgid "GUILE signaled an error for the expression begining here" +msgstr "GUILE aitoi virheen lausekkeelle, joka alkoi täältä" + +#. +#. 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 +#, c-format +msgid "I'm one myself: `%s'" +msgstr "Olen yksikseni: '%s'" + +#: part-combine-music-iterator.cc:142 +#, c-format +msgid "none of these in my family: `%s'" +msgstr "yksikään näistä ei ole perheestäni: `%s'" + +#: 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." + +#: percent-repeat-engraver.cc:163 +msgid "unterminated percent repeat" +msgstr "päättymätön prosenttitoisto" + +#: percent-repeat-iterator.cc:65 +msgid "no one to print a percent" +msgstr "kukaan ei voinut tulostaa prosenttia" + +#: performance.cc:51 +msgid "Track ... " +msgstr "Jälki ... " + +#: performance.cc:83 +msgid "Creator: " +msgstr "Tekijä: " + +#: performance.cc:103 +msgid "at " +msgstr "kohdassa " + +#: performance.cc:114 +#, c-format +msgid "from musical definition: %s" +msgstr "musiikkimäärityksestä: %s" + +#: performance.cc:169 +#, c-format +msgid "MIDI output to `%s'..." +msgstr "MIDI-tuloste paikkaan `%s'..." + +#: phrasing-slur-engraver.cc:123 +msgid "unterminated phrasing slur" +msgstr "päättymätön fraasikaari" + +#: phrasing-slur-engraver.cc:141 +msgid "can't find start of phrasing slur" +msgstr "ei voitu löytää alkua fraasikaarelle" + +#: piano-pedal-engraver.cc:235 piano-pedal-engraver.cc:250 +#: piano-pedal-engraver.cc:305 piano-pedal-performer.cc:82 +#, c-format +msgid "can't find start of piano pedal: `%s'" +msgstr "ei voitu löytää alkua pianopedaalille: `%s'" + +#: piano-pedal-engraver.cc:410 +msgid "unterminated pedal bracket" +msgstr "päättymätön pedaalisulkumerkki" + +#: property-iterator.cc:97 +#, c-format +msgid "Not a grob name, `%s'." +msgstr "Ei ollut nimi graafiselle objektille (grob): `%s'." + +#: rest.cc:139 +#, c-format +msgid "rest `%s' not found, " +msgstr "taukoa `%s' ei löytynyt, " + +#: rest-collision.cc:199 +msgid "too many colliding rests" +msgstr "liian monta törmäävää taukoa" + +#: scm-option.cc:45 +msgid "lilypond -e EXPR means:" +msgstr "lilypond -e EXPR tarkoittaa:" + +#: 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." + +#: 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ä" + +#: 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" + +#: scm-option.cc:53 +msgid "Usage: lilypond -e \"(ly-set-option SYMBOL VAL)\"" +msgstr "Käyttö: lilypond -e \"(ly-set-option SYMBOLI ARVO)\"" + +#: scm-option.cc:55 +msgid "Where SYMBOL VAL pair is any of:" +msgstr "Missä (SYMBOLI,ARVO)-pari on jokin näistä:" + +#: scm-option.cc:128 +msgid "Unknown internal option!" +msgstr "Tuntematon sisäinen optio!" + +#: score.cc:85 +msgid "Interpreting music..." +msgstr "Tulkitaan musiikkia..." + +#: score.cc:97 +msgid "Need music in a score" +msgstr "Laita musiikkia viivastolle" + +#. should we? hampers debugging. +#: score.cc:111 +msgid "Errors found/*, not processing score*/" +msgstr "Virheitä löytyi/*, ei prosessoida viivastoa*/" + +#: score.cc:118 +#, c-format +msgid "elapsed time: %.2f seconds" +msgstr "kulunut aika: %.2f sekuntia" + +#: score-engraver.cc:99 +#, c-format +msgid "can't find `%s'" +msgstr "`%s' jäi löytymättä" + +#: score-engraver.cc:100 +msgid "Fonts have not been installed properly. Aborting" +msgstr "Fontteja ei oltu asennettu kunnolla. Keskeytetään" + +#: score-engraver.cc:205 +#, c-format +msgid "unbound spanner `%s'" +msgstr "sitomaton ladoke `%s'" + +#: script-engraver.cc:90 +#, c-format +msgid "Don't know how to interpret articulation `%s'" +msgstr "Ei tiedetä kuinka tulkita artikulaatio: `%s'" + +#. 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" + +#: simple-spacer.cc:248 +#, c-format +msgid "No spring between column %d and next one" +msgstr "Ei jousta sarakkeen %d ja sitä seuraavan välillä" + +#: slur-engraver.cc:141 +msgid "unterminated slur" +msgstr "päättymätön kaari" + +#. 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" + +#: source-file.cc:67 +#, c-format +msgid "Huh? Got %d, expected %d characters" +msgstr "Täh? Saatiin %d merkkiä, oletetun %d asemesta" + +#: spacing-spanner.cc:379 +#, c-format +msgid "Global shortest duration is %s\n" +msgstr "Globaali lyhin kesto on %s" + +#: spring-smob.cc:32 +#, c-format +msgid "#" +msgstr "#" + +#: staff-symbol.cc:61 +msgid "staff symbol: indentation yields beyond end of line" +msgstr "viivastosymboli: sisennys vie rivin lopun taakse" + +#: stem.cc:118 +msgid "Weird stem size; check for narrow beams" +msgstr "Outo varren koko; koeta lyhyempiä palkkeja" + +#: stem.cc:611 +#, c-format +msgid "flag `%s' not found" +msgstr "lippua `%s' ei löydetty" + +#: stem.cc:624 +#, c-format +msgid "flag stroke `%s' not found" +msgstr "lipun piirtoa `%s' ei löytynyt" + +#: stem-engraver.cc:96 +msgid "tremolo duration is too long" +msgstr "tremolon kesto on liian pitkä" + +#: stem-engraver.cc:124 +#, c-format +msgid "Adding note head to incompatible stem (type = %d)" +msgstr "Lisätään nuottipää sopimattomaan varteen (tyyppi = %d)" + +#: stem-engraver.cc:125 +msgid "Don't you want polyphonic voices instead?" +msgstr "Etkö haluaisi polyfonisia äänisiä sen sijaan?" + +#: streams.cc:34 +#, c-format +msgid "can't create directory: `%s'" +msgstr "ei voitu tehdä hakemistoa: `%s'" + +#: streams.cc:48 +msgid "Error syncing file (disk full?)" +msgstr "Virhe synkronisoitaessa tiedostoa (onko levy täysi?)" + +#: system.cc:125 +#, c-format +msgid "Element count %d." +msgstr "Elementtien määrä: %d." + +#: system.cc:372 +#, c-format +msgid "Grob count %d " +msgstr "Graafisien objektien (grob) määrä: %d " + +#: system.cc:386 +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" + +#: text-spanner-engraver.cc:95 +msgid "already have a text spanner" +msgstr "tekstiladoke löytyi jo" + +#: text-spanner-engraver.cc:164 +msgid "unterminated text spanner" +msgstr "päättymätön tekstiladoke" + +#: tfm.cc:83 +#, c-format +msgid "can't find ascii character: %d" +msgstr "ei löydetty ASCII-merkkiä: %d" + +#. Not using ngettext's plural feature here, as this message is +#. more of a programming error. +#: tfm-reader.cc:108 +#, c-format +msgid "TFM header of `%s' has only %u word (s)" +msgstr "TFM-otsakkeessa `%s' on vain %u sana(a)" + +#: tfm-reader.cc:142 +#, 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" + +#: tie-performer.cc:159 +msgid "No ties were created!" +msgstr "Sidoksia ei tehty!" + +#: time-scaled-music-iterator.cc:25 +msgid "no one to print a tuplet start bracket" +msgstr "ketään ei löytynyt tulostamaan tupletin alkusulkua" + +#. If there is no such symbol, we default to the numbered style. +#. (Here really with a warning!) +#: time-signature.cc:87 +#, c-format +msgid "time signature symbol `%s' not found; reverting to numbered style" +msgstr "aikamerkintäsymbolia `%s' ei löytynyt; vaihdetaan numeroituun tyyliin" + +#. +#. Todo: should make typecheck? +#. +#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi. +#. +#: time-signature-engraver.cc:57 +#, c-format +msgid "Found strange time signature %d/%d." +msgstr "Löydettiin outo aikamerkintä: %d/%d." + +#: translator-ctors.cc:53 +#, c-format +msgid "unknown translator: `%s'" +msgstr "tuntematon tulkitsija: `%s'" + +#: translator-def.cc:105 +msgid "Program has no such type" +msgstr "Ohjelmalla ei ole sellaista tyyppiä" + +#: translator-def.cc:111 +#, c-format +msgid "Already contains: `%s'" +msgstr "Sisällytettiin jo: `%s'" + +#: translator-def.cc:112 +#, c-format +msgid "Not adding translator: `%s'" +msgstr "Ei lisätty tulkitsijaa: `%s'" + +#: translator-def.cc:229 +#, c-format +msgid "can't find: `%s'" +msgstr "ei löytynyt `%s'" + +#: translator-group.cc:158 +#, c-format +msgid "can't find or create `%s' called `%s'" +msgstr "ei löydetty tai ei luotu `%s' nimeltä `%s'" + +#: translator-group.cc:230 +#, c-format +msgid "can't find or create: `%s'" +msgstr "ei löydetty tai ei luotu: `%s'" + +#: vaticana-ligature.cc:49 +msgid "ascending vaticana style flexa" +msgstr "laskeva vaticana-tyylinen flexa" + +#: vaticana-ligature.cc:219 +msgid "Vaticana_ligature:thickness undefined; assuming 1.4" +msgstr "Vaticana_ligature: määrittämätön paksuus; oletetaan 1.4" + +#: 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" + +#: vaticana-ligature.cc:258 +msgid "Vaticana_ligature: (delta_pitch == 0)" +msgstr "Vaticana_ligature: (delta_pitch == 0)" + +#: vaticana-ligature.cc:271 +msgid "Vaticana_ligature:delta-pitch -> ignoring join" +msgstr "Vaticana_ligature:delta-pitch -> sivuutetaan sidos" + +#: vaticana-ligature-engraver.cc:477 +#, c-format +msgid "Vaticana_ligature_engraver: setting `spacing-increment = %f': ptr=%ul" +msgstr "Vaticana_ligature_engraver: asetetaan `spacing-increment = %f': ptr=%ul" + +#: volta-engraver.cc:112 +msgid "No volta spanner to end" +msgstr "Ei päätettävää volta-ladoketta" + +#: volta-engraver.cc:123 +msgid "Already have a volta spanner. Stopping that one prematurely." +msgstr "Löytyi ja volta-ladoke. Lopetetaan se ennenaikaisesti." + +#: volta-engraver.cc:127 +msgid "Also have a stopped spanner. Giving up." +msgstr "Löytyi myös lopetettu ladoke. Luovutetaan." + +#: parser.yy:480 +msgid "Identifier should have alphabetic characters only" +msgstr "Tunnisteessa saa olla vain aakkosellisia merkkejä" + +#: parser.yy:779 +msgid "More alternatives than repeats. Junking excess alternatives." +msgstr "Enemmän vaihtoehtoja kuin kertauksia. Heitetään pois liialliset vaihtoehdot." + +#: parser.yy:861 parser.yy:868 +msgid "pplycontext takes function argument" +msgstr "\applycontext vaati funktioargumentin" + +#: parser.yy:877 +msgid "Second argument must be a symbol" +msgstr "Toisen argumentin on oltava symboli" + +#: parser.yy:882 +msgid "First argument must be a procedure taking one argument" +msgstr "Ensimmäisen argumentin on oltava aliohjelma, joka sa yhden argumentin" + +#: parser.yy:1009 +msgid "pply takes function argument" +msgstr "\apply vaatii funktioargumentin" + +#: parser.yy:1501 +msgid "Expecting string as script definition" +msgstr "Oletetaan merkkijonon olevan skriptimäärittely" + +#: parser.yy:1598 +msgid "Expecting musical-pitch value" +msgstr "Oletetaan musiikillinen nuottikorkeusarvo" + +#: parser.yy:1609 +msgid "Must have duration object" +msgstr "Täytyy olla kesto-objekti" + +#: parser.yy:1618 parser.yy:1626 +msgid "Have to be in Lyric mode for lyrics" +msgstr "Täytyy olla Lyrics -moodissa lyriikkaa varten" + +#: parser.yy:1798 parser.yy:1853 +#, c-format +msgid "not a duration: %d" +msgstr "ei ole kesto: %d" + +#: parser.yy:1949 +msgid "Have to be in Note mode for notes" +msgstr "Täytyy olla Note -moodissa nuotteja varten" + +#: parser.yy:2032 +msgid "Have to be in Chord mode for chords" +msgstr "Täytyy olla Chord -moodissa sointuja varten" + +#: parser.yy:2171 +msgid "need integer number arg" +msgstr "tarvitaan kokonaislukuargumentti" + +#: parser.yy:2316 +msgid "Suspect duration found following this beam" +msgstr "Epäilty kesto löytyi palkin jälkeen" + +#: lexer.ll:186 +msgid "EOF found inside a comment" +msgstr "EOF löytyi kommentin sisältä" + +#: lexer.ll:200 +msgid "\\maininput disallowed outside init files" +msgstr "\\maininput ei ole sallittu init-alustustiedoston ulkopuolella" + +#: lexer.ll:224 +#, c-format +msgid "wrong or undefined identifier: `%s'" +msgstr "väärä tai määrittämätön tunniste: `%s'" + +#. backup rule +#: lexer.ll:233 +msgid "Missing end quote" +msgstr "Puuttuva loppulainausmerkki" + +#. backup rule +#: lexer.ll:255 lexer.ll:259 +msgid "white expected" +msgstr "oletettiin välilyönti" + +#: lexer.ll:268 +msgid "Can't evaluate Scheme in safe mode" +msgstr "Scheme ei evaluoitunut turvamoodissa" + +#: 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?" + +#: lexer.ll:574 +#, c-format +msgid "invalid character: `%c'" +msgstr "epäkelpo merkki: `%c'" + +#: lexer.ll:651 +#, c-format +msgid "unknown escaped string: `\\%s'" +msgstr "tuntematon koodinvaihtomerkillinen merkkijono: `\\\\%s'" + +#: lexer.ll:742 +#, c-format +msgid "Incorrect lilypond version: %s (%s, %s)" +msgstr "Epäkelpo lilypond versio: %s (%s, %s)" + +#: lexer.ll:743 +msgid "Consider updating the input with the convert-ly script" +msgstr "Harkitse syötteen päivittämistä convert-ly scriptillä" + +#~ msgid "Run LilyPond using LaTeX for titling" +#~ msgstr "Aja LilyPond käyttäen LaTeX:ia otsikoimiseen" + +#~ msgid "Fetch and rebuild from latest source package" +#~ msgstr "Hae ja käännä uudelleen viimeisestä lähdekoodipakkauksesta" + +#~ msgid "unpack and build in DIR [%s]" +#~ msgstr "pura paketti ja käännä hakemistiin DIR [%s]" + +#~ msgid "execute COMMAND, subtitute:" +#~ msgstr "suorita KOMENTO, korvaa:" + +#~ msgid "%b: build root" +#~ msgstr "%b: laatimisen juuri" + +#~ msgid "%n: package name" +#~ msgstr "%n: paketin nimi" + +#~ msgid "%r: release directory" +#~ msgstr "%r: julkaisuhakemisto" + +#~ msgid "%t: tarball" +#~ msgstr "%t: tar-paketti" + +#~ msgid "%v: package version" +#~ msgstr "%v: paketin versio" + +#~ msgid "keep all output, and name the directory %s" +#~ msgstr "säilytä kaikki tulosteet ja nimeä tiedosto %s" + +#~ msgid "upon failure notify EMAIL[,EMAIL]" +#~ msgstr "virheen sattuessa ilmoita osoitteeseen EMAIL[,EMAIL]" + +#~ msgid "remove previous build" +#~ msgstr "poista aiempi laadinta" + +#~ msgid "fetch and build URL [%s]" +#~ msgstr "nouda ja laadi URL [%s]" + +#~ msgid "Listing `%s'..." +#~ msgstr "Listataan `%s'..." + +#~ msgid "latest is: %s" +#~ msgstr "viimeisin on: %s" + +#~ msgid "relax, %s is up to date" +#~ msgstr "rentoudu, %s on päivitetty" + +#~ msgid "Fetching `%s'..." +#~ msgstr "Noudetaan `%s'..." + +#~ msgid "Building `%s'..." +#~ msgstr "Rakennetaan `%s'..." + +#~ msgid "invalid subtraction: not part of chord: %s" +#~ msgstr "epäkelpo korvaus: ei ole soinnun osa: %s" + +#~ msgid "invalid inversion pitch: not part of chord: %s" +#~ msgstr "epäkelpo käänteinen äänenkorkeus: ei ole sounnun osa: %s" + +#~ msgid "This was the other key definition." +#~ msgstr "Tämä oli toinen sävellajin määritys." + +#~ msgid ", at " +#~ msgstr ", kohdassa " + +#~ msgid "Pitch arguments out of range" +#~ msgstr "Äänenkorkeusargumentti vaihteluvälin ulkopuolella" + +#~ msgid "(left_head == 0)" +#~ msgstr "(left_head == 0)" + +#~ msgid "undefined left_head" +#~ msgstr "määrittämätön left_head" + +#~ msgid "(right_head == 0)" +#~ msgstr "(right_head == 0)" + +#~ msgid "undefined right_head" +#~ msgstr "määrittämätön right_head" + +#~ msgid "junking lonely porrectus" +#~ msgstr "heitetään pois yksinäinen Porrectus" + +#~ msgid "porrectus style undefined; using mensural" +#~ msgstr "porrectus-tyyli määrittämätön; käytetään mensuraalia" + +#~ msgid "stack size cur %d, max %d\n" +#~ msgstr "nyk pinokoko: %d, maximi %d\n" + +#~ msgid "Putting slur over rest." +#~ msgstr "Laitetaan kaari tauon päälle." + +#~ msgid "Slur over rest?" +#~ msgstr "Kaari tauon päällä?" + +#~ msgid "Text_spanner too small" +#~ msgstr "Tekstiladoke on liian pieni" + +#~ msgid "Can't specify direction for this request" +#~ msgstr "Ei voitu määritelllä suuntaa tälle pyynnölle" -- 2.39.2