]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.2.8.jcn1
authorJan Nieuwenhuizen <janneke@gnu.org>
Thu, 16 Sep 1999 16:41:29 +0000 (18:41 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Thu, 16 Sep 1999 16:41:29 +0000 (18:41 +0200)
pl 8.jcn1
- Documentation/Localisation.texi: still some issues
- Uniformised locale strings
- marked some errors/warnings without _/_f markings
- added programming_warning (): not to be localised warnings
  (none identified as yet)
- Update of po/nl.po

84 files changed:
CHANGES
Documentation/Localisation.texi [new file with mode: 0644]
VERSION
flower/dstream.cc
flower/getopt-long.cc
flower/text-stream.cc
lib/mapped-file-storage.cc
lib/simple-file-storage.cc
lib/warn.cc
lily/afm.cc
lily/all-font-metrics.cc
lily/beam-engraver.cc
lily/break-algorithm.cc
lily/change-iterator.cc
lily/chord-tremolo-engraver.cc
lily/clef-engraver.cc
lily/debug.cc
lily/dynamic-engraver.cc
lily/extender-engraver.cc
lily/folded-repeat-iterator.cc
lily/grace-iterator.cc
lily/hyphen-engraver.cc
lily/identifier.cc
lily/includable-lexer.cc
lily/ineq-constrained-qp.cc
lily/key-def.cc
lily/key-engraver.cc
lily/key-performer.cc
lily/key.cc
lily/lexer.ll
lily/lily-guile.cc
lily/line-of-score.cc
lily/local-key-engraver.cc
lily/lookup.cc
lily/main.cc
lily/midi-item.cc
lily/midi-stream.cc
lily/music-output-def.cc
lily/musical-pitch.cc
lily/musical-request.cc
lily/my-lily-lexer.cc
lily/my-lily-parser.cc
lily/p-col.cc
lily/paper-def.cc
lily/paper-outputter.cc
lily/paper-score.cc
lily/paper-stream.cc
lily/parser.yy
lily/repeat-engraver.cc
lily/request-chord-iterator.cc
lily/rest-collision.cc
lily/score-engraver.cc
lily/score.cc
lily/scores.cc
lily/script-engraver.cc
lily/sequential-music-iterator.cc
lily/single-malt-grouping-item.cc
lily/slur-engraver.cc
lily/slur.cc
lily/spacing-spanner.cc
lily/spanner.cc
lily/spring-spacer.cc
lily/stem-engraver.cc
lily/stem.cc
lily/tfm-reader.cc
lily/tfm.cc
lily/tie-engraver.cc
lily/time-description.cc
lily/time-scaled-music-iterator.cc
lily/time-signature-engraver.cc
lily/timing-translator.cc
lily/translator-ctors.cc
lily/translator-group.cc
lily/unfolded-repeat-iterator.cc
lily/word-wrap.cc
midi2ly/main.cc
midi2ly/midi-score-parser.cc
midi2ly/midi-track-parser.cc
midi2ly/mudela-score.cc
midi2ly/mudela-staff.cc
midi2ly/mudela-stream.cc
po/TODO
po/lilypond.po
po/nl.po

diff --git a/CHANGES b/CHANGES
index 8bf0c7b8a6334bed57fd02b6c0cfe23a1eb17b38..488c5a93cd079e5aeca30bd975d1c96e982f5d9a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,11 @@
+pl 8.jcn1
+       - Documentation/Localisation.texi: still some issues
+       - Uniformised locale strings
+       - marked some errors/warnings without _/_f markings
+       - added programming_warning (): not to be localised warnings
+         (none identified as yet)
+       - Update of po/nl.po
+
 pl 7.hwn1
        - website fixes.
        - spacer cleanups
diff --git a/Documentation/Localisation.texi b/Documentation/Localisation.texi
new file mode 100644 (file)
index 0000000..7450624
--- /dev/null
@@ -0,0 +1,146 @@
+\input texinfo @c -*-texinfo-*- vim:tw=72
+@setfilename Localisation
+@settitle Localisation - User messages in LilyPond
+
+@node Top, , , (dir)
+@top
+
+@chapter Localisation - User messages in LilyPond
+
+@section ISSUES
+
+The current default is marked with @code{+}.
+
+@itemize @bullet
+
+@item
+How to do two-part messages like these?  Better spread over multiple lines?
+@example
+    warning (_f ("out of tune!  Can't find: `%s\', "Key_engraver"));
+or
++   warning (_ ("out of tune:");
+    warning (_f ("Can't find: `%s\', "Key_engraver"));
+
+    warning (_f ("Can't find font `%s', loading default font", name.ch_C ()));
+or
++   warning (_f ("Can't find font: `%s', name.ch_C ()));
+    warning (_f ("Loading default font"));
+@end example
+
+@item
+How to do messages with punctuation:
+@example
+Logical:
++   warning ( _("Huh?  Not a Request: `%s'", s);
+Guidelines say:
+    warning ( _("huh?  not a Request: `%s'", s);
+@end example
+
+@item
+No punctuation (esp. period) at end of message.
+
+But what about multiple-sentence, or full-sentence (including other
+punctuation) messages?
+@example
++   _ ("Debug output disabled.  Compiled with NPRINT.")
++   _ ("Non-matching braces in text `%s', adding braces")
+@end example
+
+@item
+@example
+    en: can't open: `foo.ly'
+    nl: kan `foo.ly' niet openen (1)
++   kan niet openen: `foo.ly'*   (2)
+    niet te openen: `foo.ly'*    (3)
+@end example
+
+The first nl message, although gramatically and stylishly correct,
+is not friendly for parsing by humans (even if they speak dutch).
+I guess we'd prefer something like (2) or (3)...
+
+@end itemize
+
+
+@section Guidelines
+
+@itemize @bullet
+
+@item
+Every user message should be localised.
+
+@item
+Don't localise/gettextify:
+@itemize @minus
+@item @code{programming_error ()}s
+@item @code{programming_warning ()}s
+@item debug strings
+@item output strings (PostScript, TeX)
+@end itemize
+
+@item
+Strings to be localised must be encapsulated in @code{_ (STRING)}
+or @code{_f (FORMAT, ...)}.  Eg:
+@example
+warning (_ ("Need music in a score"));
+error (_f ("Can't open file: `%s'"));
+@end example
+
+Only in very rare cases you may need to call @code{gettext ()} by hand.
+In that case, you'll probably also need to mark some string constants for
+translation, using @code{_i (STRING)}.  See @file{flower/getopt-long.cc}
+and @file{lily/main.cc}.
+
+@item
+Don't use leading or trailing whitespace in strings.
+
+@item
+Messages containing a final verb, or a gerund (@code{-ing}-form)
+always start with a capital.  Other (simpler) messages start with
+a lowercase letter:
+@example
+The word `foo' is not declared.
+`foo': not declared.
+Not declaring: `foo'.
+@end example
+
+@item
+To avoid having a number of different messages for the same situation,
+we'll use quoting like this @code{"message: `%s'"} for all strings.
+Numbers are not quoted:
+@example
+_f ("Can't open file: `%s'", name_str)
+_f ("Can't find charater number: %d", i)
+@end example
+
+@item
+Think about translation issues.  
+In a lot of cases,it's better to translate a whole message.
+The english grammar mustn't be imposed on the translator.
+So, iso
+@example
+_ ("Stem at ") + moment.str () + _(" doen't fit in beam")
+@end example
+@noindent
+have
+@example
+_f ("Stem at %s doen't fit in beam", moment.str ())
+@end example
+
+@item
+Use two spaces after end of sentence punctuation:
+@example
+_ ("Huh?  Not a Request")
+@end example
+
+@item
+Don't modularise too much; a lot of words cannot be translated
+without context.
+It's probably safe to treat most occurences of words like
+stem, beam, crescendo as separately translatable words.
+
+@item
+Please don't run make po/po-update with GNU gettext < 0.10.35
+
+@end itemize
+
+@bye
diff --git a/VERSION b/VERSION
index fd4e7556abc74754a2aff7bc167f3f55cca93607..b2bb40abc7943348d47162e462b45b81fd53d6be 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=2
 PATCH_LEVEL=8
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=jcn1
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 0b7be148c803acfda01d170a86fecca18006b9ac..ba46d69ed6851890f0601eaa9e80011e16fd283b 100644 (file)
@@ -155,7 +155,7 @@ Dstream::Dstream (ostream *r, char const * cfg_nm)
     Text_record  r (cfg++);
     if (r.size() != 2)
       {
-       r.message (_ ("Not enough fields in Dstream init."));
+       r.message (_ ("not enough fields in Dstream init"));
        continue;
       }
     (*silent_dict_p_)[r[0]] = (bool)(int)(Scalar (r[1]));
index 3b4e3d283d54aa305779f349ad9a7f4a6e32aa80..0b9a638ae5c8cba34fdcc5e6f894cba94eef26e7 100644 (file)
@@ -138,22 +138,22 @@ Getopt_long::report (Errorcod c)
   switch (c)
     {
     case E_ARGEXPECT:
-      str += _f ("option `%s\' requires an argument",
+      str += _f ("Option `%s' requires an argument",
        found_option_l_->str ());
       break;
     case  E_NOARGEXPECT:
-      str += _f ("option `%s\' doesn't allow an argument",
+      str += _f ("Option `%s' doesn't allow an argument",
        found_option_l_->str ());
       break;
     case E_UNKNOWNOPTION:
-      str += _f ("unrecognized option: `%s\'",
+      str += _f ("unrecognized option: `%s'",
       String (argument_index_i_ 
              ? String ("-" + String_convert::form_str ("%c", 
                arg_value_ch_a_a_[array_index_i_][argument_index_i_]))
              : String (arg_value_ch_a_a_[array_index_i_])));
       break;
     case E_ILLEGALARG:
-      str += _f ("invalid argument `%s\' to option `%s'",
+      str += _f ("invalid argument `%s' to option `%s'",
         optional_argument_ch_C_, found_option_l_->str ());
     default:
       assert (false);
index 9c87211c252e02ff06cf9f9c60733936cff49731..737b41196075b6487944aa75f4097e46b486a4b3 100644 (file)
@@ -18,7 +18,7 @@ Text_stream::Text_stream (String fn)
   if (!f)
     {
       cerr << __FUNCTION__ 
-          << ": " << _f ("can't open file: `%s'", fn) << '\n';
+          << ": " << _f ("Can't open file: `%s'", fn) << '\n';
       exit (1);
     }
 
index 609bd4f458348bf1897a2073e9a57a12bf244e99..176d071bd04cbf84f4793b6d943c72438694ff15 100644 (file)
@@ -71,7 +71,7 @@ Mapped_file_storage::map ()
   data_caddr_ = (caddr_t)mmap ((void*)0, size_off_, PROT_READ, MAP_SHARED, fildes_i_, 0);
 
   if ((int)data_caddr_ == -1)
-    warning (_ ("can't map file") + ": " + strerror (errno));
+    warning (_ ("Can't map file") + ": " + strerror (errno));
 
 #endif
 }
@@ -84,7 +84,7 @@ Mapped_file_storage::open (String name_str)
 
   if (fildes_i_ == -1)
     {
-      warning (_f ("can't open file: `%s\'", name_str)
+      warning (_f ("Can't open file: `%s'", name_str)
        + ": " + strerror (errno));
       return;
     }
index 06b949982e7f91f1db338464780ee4450ae94eee..3c92096be24854725ba708a4d0d48b4c153cca18 100644 (file)
@@ -41,7 +41,7 @@ Simple_file_storage::load_file (String s)
 
   if (!f)
     {
-      warning (_f ("can't open file: `%s\'", s));
+      warning (_f ("Can't open file: `%s'", s));
       return ;
     }
 
@@ -53,7 +53,7 @@ Simple_file_storage::load_file (String s)
   ret = fread (data_p_, sizeof (char), len_i_, f);
 
   if  (ret!=len_i_)
-    warning (_f ("Huh? got %d, expected %d characters", ret, len_i_));
+    warning (_f ("Huh?  Got %d, expected %d characters", ret, len_i_));
 
   fclose (f);
 }
index 16e7e82fded46cea2217552c138d457b1f181137..8128a58af7a8f5911987a86bdb8b949b2e632dda 100644 (file)
@@ -27,9 +27,16 @@ message (String m)
 {
   cerr << m<<endl;
 }
+
 void
 programming_error (String s)
 {
-  cerr << _("Programming error: ") << s << _(" (continuing; cross thumbs)") << '\n';
+  cerr << _("programming error: ") << s << _(" (Continuing; cross thumbs)") << '\n';
+}
+
+void
+programming_warning (String m)
+{
+  cerr << _ ("programming warning: ") << m <<endl;
 
 }
index db4f80110183c6a7c94ec8deeafea5987744d036..e35c6f669ed11772f2f0aacabcc0f4015a0d87c8 100644 (file)
@@ -126,7 +126,7 @@ Adobe_font_metric::find_char (String nm, bool warn) const
     {
       if (warn)
        {
-         warning (_f ("can't find character called `%s'", nm.ch_C()));
+         warning (_f ("Can't find character called: `%s'", nm.ch_C()));
        }
       return dummy_static_char_metric;
     }
@@ -151,7 +151,7 @@ Adobe_font_metric::find_ascii (int a , bool warn) const
     }
   else if (warn )
     {
-      warning (_f ("can't find character number %d", a));
+      warning (_f ("Can't find character number: %d", a));
     }
   return dummy_static_char_metric;
 }
index 339e74c8d35193ac127eac5eacc99a5bd40b7e53..9b174b29d1bdc21a12c842e84eb68fe5842eefd4 100644 (file)
@@ -66,12 +66,13 @@ All_font_metrics::find_font (String name)
   if (f)
     return f;
 
-  warning (_f("Can't find font `%s', loading default font.", name.ch_C()));
+  warning (_f ("Can't find font: `%s'", name.ch_C ()));
+  warning (_ ("Loading default font"));
   
   f =  find_tfm (default_font_sz_);
   if (f)
     return f;
-  String s = _f("Can't find default font `%s\', giving up.", default_font_sz_);
-  s += String ("\n") + _f ("(search path: `%s)'", search_path_.str ());
-  error (s);
+  error (_f ("Can't find default font: `%s'", default_font_sz_));
+  error (_f ("(search path: `%s)'", search_path_.str ()));
+  error (_ ("Giving up"));
 }
index d76252ae27be139e23084cfed4902936ed6e89d8..d0a965e33ac08443015b6ff15695be18acc04734 100644 (file)
@@ -146,7 +146,7 @@ Beam_engraver::do_removal_processing ()
   typeset_beam ();
   if (beam_p_)
     {
-      prev_start_req_->warning (_ ("Unfinished beam"));
+      prev_start_req_->warning (_ ("unfinished beam"));
       finished_beam_p_ = beam_p_;
       finished_beam_info_p_ = beam_info_p_;
       typeset_beam ();
@@ -171,7 +171,7 @@ Beam_engraver::acknowledge_element (Score_element_info info)
       Rhythmic_req *rhythmic_req = dynamic_cast <Rhythmic_req *> (info.req_l_);
       if (!rhythmic_req)
        {
-         String s = _ ("Stem must have Rhythmic structure.");
+         String s = _ ("Stem must have Rhythmic structure");
          if (info.req_l_)
            info.req_l_->warning (s);
          else
@@ -182,8 +182,8 @@ Beam_engraver::acknowledge_element (Score_element_info info)
       
       if (rhythmic_req->duration_.durlog_i_<= 2)
        {
-         rhythmic_req->warning (_ ("stem doesn't fit in beam"));
-         prev_start_req_->warning (_ ("beam was started here"));
+         rhythmic_req->warning (_ ("Stem doesn't fit in beam"));
+         prev_start_req_->warning (_ ("Beam was started here"));
          return;
        }
 
index 6674d5bcf0e8c1b130a3fb1a2050bbf7845748d4..1208f4021a42824ffe90e47049d9fbeea4547072 100644 (file)
@@ -152,7 +152,7 @@ void
 Break_algorithm::problem_OK () const
 {
   if (pscore_l_->col_l_arr_.empty ())
-    error (_("score does not have any columns"));
+    error (_("Score does not have any columns"));
   OK ();
 }
 
index 2ea397cb7228a7d5805820293e97670643f5e512..e932c794feef9581f64b49facf904170d7f359be 100644 (file)
@@ -19,11 +19,11 @@ Change_iterator::error (String reason)
   String to_type = t->change_to_type_str_;
   String to_id =  t->change_to_id_str_;
 
-  String warn1 = _f ("can't change `%s\' to `%s\'", to_type, to_id) 
+  String warn1 = _f ("Can't change `%s' to `%s'", to_type, to_id) 
     + ": " + reason;
   String warn2= "Change_iterator::do_process_and_next (): " 
     + report_to_l ()->type_str_ + " = `"
-    + report_to_l ()->id_str_ + "\': ";
+    + report_to_l ()->id_str_ + "': ";
   warning (warn2);
   t->warning (warn1);
 }
@@ -54,7 +54,7 @@ Change_iterator::do_process_and_next (Moment m)
   if (current && current->id_str_ == to_id)
     {
       String msg;
-      msg += "Cannot switch  translators, I'm there already.";
+      msg += _ ("Can't switch translators, I'm there already");
     }
   
   if (current) 
@@ -73,10 +73,10 @@ Change_iterator::do_process_and_next (Moment m)
          
           last->translator_id_str_  = change_l ()->change_to_id_str_;
        */
-       error ("I'm one myself");
+       error (_ ("I'm one myself"));
       }
   else
-    error ("None of these in my family.");
+    error (_ ("none of these in my family"));
   Music_iterator::do_process_and_next (m);
 }
 
index eac8f66427e9e16786b2ba0d64880c5100bdaf0b..5e63ef69fe1f1ec1fce4db3b48c8ad8f7bd2b238 100644 (file)
@@ -55,7 +55,7 @@ Chord_tremolo_engraver::do_process_requests ()
   if (reqs_drul_[STOP])
     {
       if (!abeam_p_)
-       reqs_drul_[STOP]->warning (_("no tremolo beam to end"));
+       reqs_drul_[STOP]->warning (_ ("no tremolo beam to end"));
       prev_start_req_ = 0;
       finished_abeam_p_ = abeam_p_;
       abeam_p_ = 0;
@@ -80,7 +80,7 @@ Chord_tremolo_engraver::do_process_requests ()
     {
       if (abeam_p_)
        {
-         reqs_drul_[START]->warning (_ ("already have a tremolo beam"));
+         reqs_drul_[START]->warning (_ ("Already have a tremolo beam"));
          return;
        }
 
index 4c0960b99cb4f3304bd993dd3f7f23f778e04afd..060b0ad2af56c3184f8e5056fe0348613c5fc19a 100644 (file)
@@ -175,7 +175,7 @@ Clef_engraver::do_try_music (Music * r_l)
     {
       clef_req_l_ = cl;
       if (!set_type (cl->clef_str_))
-       cl->error (_ ("unknown clef type "));
+       cl->error (_ ("unknown clef type"));
 
       return true;
     }
index 3534df67106a927540e029206e712bc37c8f5622..0ac4adc6b578f49a35dc02f97b7a24009c91be63 100644 (file)
@@ -53,7 +53,7 @@ mynewhandler()
 void
 float_handler (int)
 {
-  cerr << _ ("Floating point exception") << endl;
+  cerr << _ ("floating point exception") << endl;
   assert (false);
 }
 
@@ -136,7 +136,7 @@ set_debug (bool b)
 #ifdef MEMORY_PARANOID
   if (check_malloc_b)
     if (mcheck (0))
-      warning (_ ("can't set mem-checking") + "!");
+      warning (_ ("Can't set mem-checking!"));
 #endif
 }
 
index 9a4996c6fd29a9afb8e65550d3531885ee0f9223..4c3db32bb46cb16006b1d85489c58e2f69c71b8c 100644 (file)
@@ -106,7 +106,7 @@ Dynamic_engraver::do_process_requests()
        {
          if (text_p_)
            {
-             dynamic_req_l_arr_[i]->warning (_("Got a dynamic already.  Continuing dazed and confused"));
+             dynamic_req_l_arr_[i]->warning (_("Got a dynamic already.  Continuing dazed and confused."));
              continue;
            }
          
@@ -159,7 +159,7 @@ Dynamic_engraver::do_process_requests()
            {
              if (!cresc_p_)
                {
-                 span_l->warning (_ ("can't find (de)crescendo to end"));
+                 span_l->warning (_ ("Can't find (de)crescendo to end"));
                }
              else
                {
index dd0b405bb1a6298dead9a5f6493430d7dd8fc776..604172c29293d564d275ec5f09123ccc89a5f5cf 100644 (file)
@@ -71,7 +71,7 @@ Extender_engraver::do_process_requests ()
     {
       if (!last_lyric_l_)
        {
-         req_l_->warning ("Nothing to connect extender to on the left. Ignoring extender request");
+         req_l_->warning (_ ("Nothing to connect extender to on the left.  Ignoring extender request."));
          return;
        }
       
index b7d0431a1303e1cb03b5a2367ee47170cde11b54..8132ad6dcadb78dc1097c237ff16aee0fcfa9ce3 100644 (file)
@@ -61,7 +61,7 @@ Folded_repeat_iterator::do_process_and_next (Moment m)
     {
       bool success = try_music (music_l_);
       if (!success)
-       music_l_->warning ( _("No one to print a repeat brace"));
+       music_l_->warning ( _("no one to print a repeat brace"));
     }
   
   if (main_iter_p_)
index b3c9cf9c5a7e3e3262a0bb9fd84d48a9b6442904..ffd57a89768df7d6bca650a891d6434de4ef6666 100644 (file)
@@ -40,7 +40,7 @@ Grace_iterator::do_process_and_next (Moment m)
     }
   else
     {
-      warning (_("No Grace context available!")); 
+      warning (_("no Grace context available")); 
     }
   Music_iterator::do_process_and_next (m);
 }
index 4fccd9cb540cabd241d9eeae1bcbe8d6de6b7655..452e4e0c3cea2b0f95210f995eb1d4a23b9636f3 100644 (file)
@@ -69,7 +69,7 @@ Hyphen_engraver::do_process_requests ()
     {
       if (!last_lyric_l_)
        {
-         req_l_->warning ("Nothing to connect hyphen to on the left. Ignoring hyphen request");
+         req_l_->warning (_ ("Nothing to connect hyphen to on the left.  Ignoring hyphen request."));
          return;
        }
       
index 8419dd36073386b9d0bc300d31c7f11bf32a0ab0..9682a8f549e489353874ecc75f75d47f4b2068f2 100644 (file)
@@ -43,9 +43,7 @@ Identifier::~Identifier()
 void
 Identifier::error (String expect) const
 {
-  String e (_("Wrong identifier type: "));
-  e += _f ("%s expected", expect);
-  ::error (e);
+  ::error (_f ("wrong identifier type, expected: `%s'", expect));
 }
 
 String
index c913570387efda8c41c50733b4ff06050d1e73a9..89c7483478f07598d909834af888adfa43c3bdec 100644 (file)
@@ -44,7 +44,7 @@ Includable_lexer::new_input (String s, Sources  * global_sources)
   Source_file * sl = global_sources->get_file_l (s);
   if (!sl)
     {
-      String msg = _f ("can't find file: `%s\'", s);
+      String msg = _f ("Can't find file: `%s'", s);
       msg += "\n";
       msg += _f ("(search path: `%s')", global_sources->path_C_->str ().ch_C());
       msg += "\n";
index 3b4bae9baf045062a7208999d9ca406b89a026d4..563199c93808fedb08a5332f3829b63a3d209d1f 100644 (file)
@@ -230,9 +230,9 @@ Ineq_constrained_qp::constraint_solve (Vector start) const
       act.drop_constraint (m);
     }
   if (iterations >= MAXITER)
-    WARN << _ ("didn't converge!") << '\n';
+    WARN << _ ("Didn't converge!") << '\n';
   if (act.degenerate_count_i_ >= MAXDEGEN)
-    WARN << _ ("Too much degeneracy. ") << '\n';
+    WARN << _ ("too much degeneracy") << '\n';
   DOUT <<  ": found " << x << " in " << iterations <<" iterations\n";
   assert_solution (x);
   return x;
index 67bbc4f7b6e8392474e682f999beeaa902efe2c7..a28f125e34356d96aebdd8c85cd228c4bbc63627 100644 (file)
@@ -28,7 +28,7 @@ Key_def::ordinary_accidentals_i () const
   int p;
   if (pitch_arr_.size () < 1) 
     {
-      warning (_ ("No key name: assuming `C'"));
+      warning (_ ("No key name, assuming `C'"));
       p = 0;
     }
   else
@@ -89,7 +89,7 @@ Key_def::transpose (Musical_pitch d)
         pitch_arr_[0].transpose (d);
       else
         {
-          warning (_ ("don't know how handle empty keys")); // TODO 
+          warning (_ ("Don't know how handle empty keys")); // TODO 
         }
     }
   else
index f8c32dac6a3211b0b21d97bc33513e290395f72c..66c1463383f4baf0cefe87919e7ecec9b80d326e 100644 (file)
@@ -67,7 +67,7 @@ Key_engraver::do_try_music (Music * req_l)
   if (Key_change_req *kc = dynamic_cast <Key_change_req *> (req_l))
     {
       if (keyreq_l_)
-       warning ("Fixme: key change merge.");
+       warning (_ ("FIXME: key change merge"));
       keyreq_l_ = kc;
       read_req (keyreq_l_);
       return true;
index 14d73dbbb9fd3539030d00400b3ab695dab701d8..d80177c26d403480f41edb84c01b3cb56fc04976 100644 (file)
@@ -62,7 +62,7 @@ Key_performer::do_try_music (Music* req_l)
   if (Key_change_req *kc = dynamic_cast <Key_change_req *> (req_l))
     {
       if (key_req_l_)
-       warning ("FIXME. Key change merge");
+       warning (_ ("FIXME: key change merge"));
 
       key_req_l_ = kc;
       return true;
index 8d1845881fdc8e8f5ad3545f726ddeba5a0014df..d468c27c81fc862564fdff65174a87c77193b34e 100644 (file)
@@ -51,12 +51,12 @@ Key::octave_to_index (int o) const
   int i = o + ZEROOCTAVE;
   if (i < 0)
     {
-      warning ("Don't have that many octaves (" + to_str (o) + ")");
+      warning (_f ("Don't have that many octaves (%s)", to_str (o)));
       i = 0;
     }
   if (i >= NUMBER_OF_OCTAVES)
     {
-      warning ("Don't have that many octaves (" + to_str (o) + ")");
+      warning (_f ("Don't have that many octaves (%s)", to_str (o)));
       i = NUMBER_OF_OCTAVES -1;
     }
   return i;
@@ -74,12 +74,12 @@ Octave_key::set (int i, int a)
 {
   if (a <= -3)
     {
-      warning ("Underdone accidentals (" + to_str (a) + ")");
+      warning (_f ("underdone accidentals (%s)", to_str (a)));
       a = -2;
     }
   if (a >= 3)
     {
-      warning ("Overdone accidentals (" + to_str (a) + ")");
+      warning (_f ("overdone accidentals (%s)", to_str (a)));
       a = 2;
     }
   accidental_i_arr_[i]=a;
index 4fa1396533e67b1e81a6d8c08177cdaa8c39c248..388ac1b01be968e0e74c6dcfff8b3413b4f6a784 100644 (file)
@@ -133,7 +133,7 @@ HYPHEN              --
 <version>\"[^"]*\";?   { /* got the include file name */
        String s (YYText ()+1);
        s = s.left_str (s.index_last_i ('"'));
-       DOUT << "#version `" << s << "\'\n";
+       DOUT << "#version `" << s << "'\n";
        if (!valid_version_b (s))
                return INVALID;
        yy_pop_state ();
@@ -166,7 +166,7 @@ HYPHEN              --
                main_input_b_ = true;
        }
        else
-               error ("\\maininput disallowed outside init files.");
+               error (_ ("\\maininput disallowed outside init files"));
 }
 
 <INITIAL,chords,lyrics,notes>\\include           {
@@ -175,7 +175,7 @@ HYPHEN              --
 <incl>\"[^"]*\";?   { /* got the include file name */
        String s (YYText ()+1);
        s = s.left_str (s.index_last_i ('"'));
-       DOUT << "#include `" << s << "\'\n";
+       DOUT << "#include `" << s << "'\n";
        new_input (s,source_global_l);
        yy_pop_state ();
 }
@@ -189,19 +189,19 @@ HYPHEN            --
        if (id) 
          {
            String* s_l = id->access_content_String (false);
-           DOUT << "#include `" << *s_l << "\'\n";
+           DOUT << "#include `" << *s_l << "'\n";
            new_input (*s_l, source_global_l);
 
            yy_pop_state ();
          }
        else
          {
-           String msg (_f ("undefined identifier: `%s\'", s ));        
+           String msg (_f ("undefined identifier: `%s'", s )); 
            LexerError (msg.ch_C ());
          }
 }
 <incl>\"[^"]*   { // backup rule
-       cerr << _ ("missing end quote") << endl;
+       cerr << _ ("Missing end quote") << endl;
        exit (1);
 }
 <chords,notes>{RESTNAME}       {
@@ -398,7 +398,7 @@ HYPHEN              --
 }
 
 <*>.           {
-       String msg = _f ("invalid character: `%c\'", YYText ()[0]);
+       String msg = _f ("invalid character: `%c'", YYText ()[0]);
        LexerError (msg.ch_C ());
        return YYText ()[0];
 }
@@ -454,7 +454,7 @@ My_lily_lexer::scan_escaped_word (String str)
        }
        if (check_debug)
                print_declarations (true);
-       String msg (_f ("unknown escaped string: `\\%s\'", str));       
+       String msg (_f ("unknown escaped string: `\\%s'", str));        
        LexerError (msg.ch_C ());
        DOUT << "(string)";
        String *sp = new String (str);
index b28b18f695711a718d070d548b7c6ec956bcc85b..db3549fad49927de559389a2bba907274954ae4e 100644 (file)
@@ -79,9 +79,9 @@ read_lily_scm_file (String fn)
   String s = global_path.find (fn);
   if (s == "")
     {
-      String e = _f ("can't find file: `%s\'", fn);
+      String e = _f ("Can't find file: `%s'", fn);
       e += " ";
-      e += _f ("(load path: `%s\')", global_path.str ());
+      e += _f ("(load path: `%s')", global_path.str ());
       error (e);
     }
   else
@@ -102,9 +102,9 @@ ly_gulp_file (SCM name)
  String s = global_path.find (fn);
   if (s == "")
     {
-      String e = _f ("can't find file: `%s\'", fn);
+      String e = _f ("Can't find file: `%s'", fn);
       e += " ";
-      e += _f ("(load path: `%s\')", global_path.str ());
+      e += _f ("(load path: `%s')", global_path.str ());
       error (e);
     }
   else
index 441dcd9465178ea3012bf783c8af0b5128194c8b..8b91f8e9e0bb78f6746a4a98aa020c4fe2c036f7 100644 (file)
@@ -88,7 +88,7 @@ Line_of_score::output_all (bool last_line)
 {
   Interval i(extent(Y_AXIS));
   if (i.empty_b())
-    warning ("Huh? Empty Line_of_score?");
+    warning (_ ("Huh?  Empty Line_of_score?"));
   else
     translate_axis (- i[MAX], Y_AXIS);
   
index 0d499c8b36910cb1829105f78faf8d0a56410a17..a6a69fec5682421c07999f8287562ff05e61c006 100644 (file)
@@ -39,7 +39,8 @@ Local_key_engraver::do_creation_processing ()
 
   if (!key_grav_l_)
     {
-      warning (_ ("out of tune") + "! " + _ ("can't find") + " Key_engraver");
+      warning (_ ("out of tune:"));
+      warning (_f ("Can't find: `%s'", "Key_engraver"));
     }
   else
     {
index 41c2fa6da34af214d3f310997036eba481dd502b..648d1f14640c8440ea5fca07dc35904301441a78 100644 (file)
@@ -96,13 +96,13 @@ Lookup::afm_find (String s, bool warn) const
 {
   if (!afm_l_)      
     {
-      Lookup * me =     (Lookup*)(this);
+      Lookup * me = (Lookup*)(this);
       me->afm_l_ = all_fonts_global_p->find_afm (font_name_);
       if (!me->afm_l_)
        {
-         warning (_f("can't find font: `%s'", font_name_));
-         warning (_f("(search path: `%s')", global_path.str ().ch_C()));
-         error (_f("Aborting"));
+         warning (_f ("Can't find font: `%s'", font_name_));
+         warning (_f ("(search path: `%s')", global_path.str ().ch_C()));
+         error (_ ("Aborting"));
        }
     }
   Adobe_font_char_metric cm = afm_l_->find_char (s, warn);
@@ -433,7 +433,7 @@ Lookup::text (String style, String text, Paper_def *paper_l) const
 
   if(brace_count)
     {
-      warning (_f ("Non-matching braces in text `%s', adding braces.", text.ch_C()));
+      warning (_f ("Non-matching braces in text `%s', adding braces", text.ch_C()));
 
       if (brace_count < 0)
        {
index 149783ac29f28a99399c60e21724c60ea1ef8777..c24f2475f98f3ae78364b584865e8e5139dd7427 100644 (file)
@@ -63,23 +63,26 @@ String distill_inname_str (String name_str, String& ext_r);
  Internationalisation kludge in two steps:
    * use _i () to get entry in POT file
    * call gettext () explicitely for actual "translation"
+
+ Note: these messages all start with lower case (ie, don't
+       follow regular localisation guidelines).
  */
 Long_option_init theopts[] = {
-  {_i ("BASENAME"), "output", 'o',  _i ("write output to BASENAME[-x].extension")},
-  {0, "warranty", 'w',  _i ("show warranty and copyright")},
-  {0, "help", 'h',  _i ("this help")},
-  {0, "test", 't',  _i ("switch on experimental features")},
   {0, "debug", 'd',  _i ("enable debugging output")},
-  {_i ("FILE"), "init", 'i',  _i ("use FILE as init file")},
+  {_i ("EXT"), "output-format", 'f',  _i ("use output format EXT")},
+  {0, "help", 'h',  _i ("this help")},
   {_i ("DIR"), "include", 'I',  _i ("add DIR to search path")},
-  {0, "no-paper", 'm',  _i ("produce midi output only")},
+  {_i ("FILE"), "init", 'i',  _i ("use FILE as init file")},
   {0, "dependencies", 'M',  _i ("write Makefile dependencies for every input file")},
+  {0, "no-paper", 'm',  _i ("produce MIDI output only")},
+  {_i ("BASENAME"), "output", 'o',  _i ("write output to BASENAME[-x].extension")},
+  {0, "find-old-relative", 'Q',  _i ("show all changes in relative syntax")},
+  {0, "safe", 's',  _i ("inhibit file output naming and exporting")},
   {0, "no-timestamps", 'T',  _i ("don't timestamp the output")},
-    {0, "find-old-relative", 'Q',  _i ("show all changes in relative syntax")},
+  {0, "test", 't',  _i ("switch on experimental features")},
   {0, "ignore-version", 'V',  _i ("ignore mudela version")},
   {0, "version", 'v',  _i ("print version number")},
-  {_i ("EXT"), "output-format", 'f',  _i ("use output format EXT")},
-  {0, "safe", 's',  _i ("inhibit file output naming and exporting")},
+  {0, "warranty", 'w',  _i ("show warranty and copyright")},
   {0,0,0, 0}
 };
 
@@ -88,7 +91,7 @@ usage ()
 {
   cout << _f ("Usage: %s [OPTION]... [FILE]...", "lilypond");
   cout << "\n\n";
-  cout << _ ("Typeset music and or play MIDI from FILE.");
+  cout << _ ("Typeset music and or play MIDI from FILE");
   cout << "\n\n";
   cout << 
 #include "BLURB.hh"
@@ -110,15 +113,14 @@ usage ()
     "STRING_UTILS_INLINED "
 #endif
     "\n"
-    "datadir =" DIR_DATADIR
-    "\n"
-    "localedir =" DIR_LOCALEDIR
-
-    "\n\n";
-
-  cout << _("Report bugs to") << " bug-gnu-music@gnu.org" << endl;
+    "datadir: `" DIR_DATADIR "'\n"
+    "localedir: `" DIR_LOCALEDIR "'\n"
+    "\n";
 
   print_mudela_versions (cout);
+  cout << endl;
+
+  cout << _f ("Report bugs to %s", "bug-gnu-music@gnu.org") << endl;
 }
 
 void
index 8301c8a5bcf2e76de9606b039c8595300291141b..055d6785b3894810ff0def9e86bb0da711bf6f18 100644 (file)
@@ -300,7 +300,7 @@ Midi_instrument::str () const
 
   if (!found)
     {
-      warning (_f("No such instrument: `%s'", audio_l_->str_.ch_C ()));
+      warning (_f ("no such instrument: `%s'", audio_l_->str_.ch_C ()));
     }
   
   String str = to_str ((char) (0xc0 + channel_i_));
index 373d49569a284de16bf70e84a1625c6ec7ba1719..11506fe38bb1832424e9e7010495d3de63ab39e2 100644 (file)
@@ -26,7 +26,7 @@ Midi_stream::~Midi_stream ()
   *os_p_ << flush;             // ugh. Share with tex_stream.
   if (!*os_p_)
     {
-      warning (_ ("error syncing file (disk full?)"));
+      warning (_ ("Error syncing file (disk full?)"));
       exit_status_i_ = 1;
     }
   delete os_p_;
@@ -74,5 +74,5 @@ Midi_stream::open ()
 {
   os_p_ = new ofstream (filename_str_.ch_C (),ios::out|ios::bin);
   if (!*os_p_)
-    error (_f ("can't open file: `%s\'", filename_str_));
+    error (_f ("Can't open file: `%s'", filename_str_));
 }
index ca1a8ed8f4ef8748f65438410a28e5d49d224a78..fe0cc20c8fcce603e32a67a93bb2398a9b27beca 100644 (file)
@@ -80,7 +80,7 @@ Music_output_def::get_global_translator_p ()
 {
   Translator * t = find_translator_l ("Score");
   if (!t)
-    error (_ ("can't find Score context"));
+    error (_f ("Can't find `%s' context", "Score"));
   t = t->clone ();
   Global_translator *g = dynamic_cast <Global_translator *> (t);
   t->add_processing ();
index 35df93bcc5f0b476f9bade516c3dcb2f1aadf622..d74468db1d479e20743d9deca3196a7f1ae088fa 100644 (file)
@@ -99,7 +99,7 @@ Musical_pitch::str () const
     {
       int o = octave_i_ + 1;
       while (o--)
-       s += to_str ('\'');
+       s += "'";
     }
   else if (octave_i_ <0)
     {
index c5f9de2d56a96eca5c6d2998b9c2f0babee4f334..509e2780a9f2dbcfb65967ff32825274434d0fb5 100644 (file)
@@ -39,7 +39,7 @@ Melodic_req::transpose (Musical_pitch delta)
   
   if (abs (pitch_.accidental_i_) > 2)
     {
-       warning (_f ("transposition by %s makes accidental larger than two",
+       warning (_f ("Transposition by %s makes accidental larger than two",
          delta.str ()));
     }
 }
index c1051d60191501cc9cc7ccf7af1e4a28b2f17370..6edf314018aa063cd68841721b58a6cecf4be9c4 100644 (file)
@@ -134,13 +134,13 @@ My_lily_lexer::set_identifier (String name_str, Identifier* i, bool )
     {
 #if 0
       if (unique_b)
-       old->warning(_f ("redeclaration of `\\%s\'", name_str));
+       old->warning(_f ("redeclaration of `\\%s'", name_str));
 #endif
       delete old;
     }
   if (lookup_keyword (name_str) >= 0)
     {
-      warning (  _f ("Identifier name is a keyword (`%s')", name_str));
+      warning (  _f ("Identifier name is a keyword: `%s'", name_str));
     }
   
   scope_l_arr_.top ()->elem (name_str) = i;
index de8b7c66bd03ee99646ecb4ae7996f04073460bf..f8debc21c0b561e2bff08b01e222a0a56cd35c28 100644 (file)
@@ -66,7 +66,7 @@ My_lily_parser::parse_file (String init, String s)
 
   if (!define_spot_array_.empty())
     {
-      warning (_ ("braces don't match"));
+      warning (_ ("Braces don't match"));
       error_level_i_ = 1;
     }
 
index 0d4469475166b05a162fce0d429edeb6fd36654b..f31d29d30e860b32fc591b174a841a78df8fa9fb 100644 (file)
@@ -45,7 +45,7 @@ Paper_column::add_spring (Paper_column * p, Real d, Real s)
   
   if (!dir)
     {
-      warning ("Must set spring between differing columns.");
+      warning (_ ("Must set spring between differing columns"));
       return;
     }
   
index b3ca52a21a2d03d8a1809ced59b86cac2532671e..858d8941c294cd09fe600dc5a4ce1b933175bf46 100644 (file)
@@ -92,7 +92,7 @@ Real
 Paper_def::get_realvar (SCM s) const
 {
   if (!scope_p_->elem_b (s))
-    error (_f ("unknown paper variable: `%s\'", symbol_to_string (s)));
+    error (_f ("unknown paper variable: `%s'", symbol_to_string (s)));
   Real * p = scope_p_->elem (s)->access_content_Real (false);
   if (!p)
     {
@@ -248,7 +248,7 @@ Paper_def::paper_outputter_p (Paper_stream* os_p, Header* header_l, String origi
   Paper_outputter* p = new Paper_outputter (os_p);
 
   // for now; breaks -fscm output
-  p->output_comment (_ ("outputting Score, defined at: "));
+  p->output_comment (_ ("Outputting Score, defined at: "));
   p->output_comment (origin_str);
 
   p->output_version();
@@ -277,7 +277,7 @@ Paper_def::paper_stream_p () const
 
   if (outname != "-")
     outname += String (".") + output_global_ch;
-  *mlog << _f ("Paper output to %s...", 
+  *mlog << _f ("paper output to %s...", 
               outname == "-" ? String ("<stdout>") : outname) << endl;
 
   target_str_global_array.push (outname);
index e0565ab7b0d680951e494b8e7074d0f909b3e614..4a91e05517dba7dd65bc29ef4efee399dbec4814 100644 (file)
@@ -127,7 +127,7 @@ Paper_outputter::output_molecule (Molecule const*m, Offset o, char const *nm)
 
       if (a_off.length () > 100 CM)
        {
-         warning (_f("Improbable offset for object type `%s\'", nm));
+         warning (_f ("improbable offset for object type: `%s'", nm));
          Axis a  =X_AXIS;
          while (a < NO_AXES)
            {
index 38ecdc320a4e1b323264502b837a516e538a5e6c..1c26f6918c3f7424a959c28fac8be69f2ec7f140 100644 (file)
@@ -128,7 +128,7 @@ Paper_score::calc_breaking ()
       delete algorithm_p;
       if (! sol.size ())
        {
-         warning (_ ("Can't solve this casting problem exactly; revert to Word_wrap"));
+         warning (_ ("Can't solve this casting problem exactly; reverting to Word_wrap"));
          try_wrap = true;
        }
     }
@@ -176,7 +176,7 @@ Paper_score::process ()
     }
 
   if (experimental_features_global_b)
-    *mlog << elem_p_arr_.size ()  + span_p_arr_.size () << _ (" elements. ");
+    *mlog << _f ("%s elements", elem_p_arr_.size () + span_p_arr_.size ());
 
   *mlog << "\n";
   *mlog << _ ("Line ... ");
index 401b120842f365814c7283ef9b143a1c30e45878..2f791019ad5c7550a1bbd3669a0d1d7d40e9b2a4 100644 (file)
@@ -22,7 +22,7 @@ Paper_stream::Paper_stream (String filename)
     //    os = new ostream (cout.ostreambuf ());
     os = new ostream (cout._strbuf);
   if (!*os)
-    error (_f ("can't open file: `%s\'", filename));
+    error (_f ("Can't open file: `%s'", filename));
   nest_level = 0;
   line_len_i_ = 0;
   outputting_comment=false;
@@ -33,7 +33,7 @@ Paper_stream::~Paper_stream ()
   *os << flush;
   if (!*os)
     {
-      warning (_ ("error syncing file (disk full?)"));
+      warning (_ ("Error syncing file (disk full?)"));
       exit_status_i_ = 1;
     }
   delete os;
index 9346b9c5465952ed8be5b2dfd26e0be7bed1c790..c848282874dfafb619af43937c51326a7af2a3ee 100644 (file)
@@ -69,7 +69,7 @@ print_mudela_versions (ostream &os)
 #define THIS ((My_lily_parser *) my_lily_parser_l)
 
 #define yyerror THIS->parser_error
-#define ARRAY_SIZE(a,s)   if (a.size () != s) THIS->parser_error (_f("expecting %d arguments", s))
+#define ARRAY_SIZE(a,s)   if (a.size () != s) THIS->parser_error (_f ("Expecting %d arguments", s))
 
 %}
 
@@ -310,7 +310,7 @@ embedded_scm:
        }
        | SCM_T STRING semicolon {
                if (THIS->lexer_p_->main_input_b_ && safe_global_b)
-                       error (_("Cannot evaluate Scheme in safe mode"));
+                       error (_("Can't evaluate Scheme in safe mode"));
                gh_eval_str ($2->ch_l ());
                delete $2;
        };
@@ -572,7 +572,7 @@ paper_def_body:
                        URG URG.
                */
                if ($3->size () % 2)
-                       warning ("Need even number of args for shape array");
+                       warning (_ ("Need even number of args for shape array"));
 
                for (int i=0; i < $3->size ();  i+=2)
                {
@@ -720,7 +720,7 @@ Repeated_music:
        {
                Music_sequence* m = dynamic_cast <Music_sequence*> ($5);
                if (m && $3 < m->length_i ())
-                       $5->warning ("More alternatives than repeats. Junking excess alternatives.");
+                       $5->warning (_ ("More alternatives than repeats.  Junking excess alternatives."));
 
                Repeated_music * r = new Repeated_music ($4, $3 >? 1, m);
                $$ = r;
@@ -945,7 +945,7 @@ abbrev_command_req:
                if (!Duration::duration_type_b ($3))
                  THIS->parser_error (_f ("not a duration: %d", $3));
                else if ($3 < 8)
-                 THIS->parser_error (_ ("can't abbreviate"));
+                 THIS->parser_error (_ ("Can't abbreviate"));
                else
                  THIS->set_abbrev_beam ($3);
 
@@ -1073,7 +1073,7 @@ request_with_dir:
                if (Script_req * gs = dynamic_cast<Script_req*> ($2))
                        gs->dir_ = Direction ($1);
                else if ($1)
-                       $2->warning ("Can't specify direction for this request");
+                       $2->warning (_ ("Can't specify direction for this request"));
                $$ = $2;
        }
        ;
@@ -1208,7 +1208,7 @@ explicit_duration:
 extender_req:
        EXTENDER {
                if (!THIS->lexer_p_->lyric_state_b ())
-                       THIS->parser_error (_ ("have to be in Lyric mode for lyrics"));
+                       THIS->parser_error (_ ("Have to be in Lyric mode for lyrics"));
                $$ = new Extender_req;
        }
        ;
@@ -1216,7 +1216,7 @@ extender_req:
 hyphen_req:
        HYPHEN {
                if (!THIS->lexer_p_->lyric_state_b ())
-                       THIS->parser_error (_ ("have to be in Lyric mode for lyrics"));
+                       THIS->parser_error (_ ("Have to be in Lyric mode for lyrics"));
                $$ = new Hyphen_req;
        }
        ;
@@ -1379,7 +1379,7 @@ abbrev_type:
                if (!Duration::duration_type_b ($2))
                        THIS->parser_error (_f ("not a duration: %d", $2));
                else if ($2 < 8)
-                       THIS->parser_error (_ ("can't abbreviate"));
+                       THIS->parser_error (_ ("Can't abbreviate"));
                $$ = $2;
        }
        ;
@@ -1388,7 +1388,7 @@ abbrev_type:
 simple_element:
        musical_pitch exclamations questions optional_notemode_duration {
                if (!THIS->lexer_p_->note_state_b ())
-                       THIS->parser_error (_ ("have to be in Note mode for notes"));
+                       THIS->parser_error (_ ("Have to be in Note mode for notes"));
 
 
                Note_req *n = new Note_req;
@@ -1400,7 +1400,7 @@ simple_element:
                if (THIS->abbrev_beam_type_i_)
                  {
                    if (n->duration_.plet_b ())
-                     THIS->parser_error (_ ("can't abbreviate tuplet"));
+                     THIS->parser_error (_ ("Can't abbreviate tuplet"));
                    else
                      n->duration_.set_plet (1, 2);
                  }
@@ -1441,13 +1441,13 @@ simple_element:
        }
        | STRING optional_notemode_duration     {
                if (!THIS->lexer_p_->lyric_state_b ())
-                       THIS->parser_error (_ ("have to be in Lyric mode for lyrics"));
+                       THIS->parser_error (_ ("Have to be in Lyric mode for lyrics"));
                $$ = THIS->get_word_element (*$1, $2);
                delete $1;
        }
        | chord {
                if (!THIS->lexer_p_->chord_state_b ())
-                       THIS->parser_error (_ ("have to be in Chord mode for chords"));
+                       THIS->parser_error (_ ("Have to be in Chord mode for chords"));
                $$ = $1;
        }
        ;
index 35873e2407b7a04d45ff5ad215295947ce847177..6a92623f1cc57a70dcb9a7e571dd3abc11ffb398 100644 (file)
@@ -174,7 +174,7 @@ Repeat_engraver::do_process_requests ()
        }
       else
        {
-         warning ("No bar engraver found. Ignoring repeats.");
+         warning (_ ("No bar engraver found.  Ignoring repeats."));
        }
 
       delete head->car_;
index 0fa4be380db9d9b70d97dc63faec7b4dfacc4f6a..1c70b3dfb7dac6d1bb188b009ac22fd85a882b32 100644 (file)
@@ -70,10 +70,10 @@ Request_chord_iterator::do_process_and_next (Moment mom)
            {
              bool gotcha = try_music (req_l);
              if (!gotcha)
-               req_l->warning (_f ("junking request: `%s\'", classname( req_l)));
+               req_l->warning (_f ("Junking request: `%s'", classname( req_l)));
            }
          else
-           i->car_->warning (_f ("Huh?  Not a Request: `%s\'",
+           i->car_->warning (_f ("Huh?  Not a Request: `%s'",
                                   classname (i->car_)));
        }
       first_b_ = false;
index 8dbbc9414fd1006be36a9cfe341d58c8f2783dc1..d22b5ecf4eecda481942f80da256307a2a36ca52 100644 (file)
@@ -61,11 +61,11 @@ Rest_collision::do_pre_processing()
     {
       if (rest_l_arr_.size () > 1)
        {
-         warning (_("Too many colliding rests."));
+         warning (_("too many colliding rests"));
        }
       if (ncol_l_arr_.size () > 1)
        {
-         warning (_("Too many notes for rest collision."));
+         warning (_("too many notes for rest collision"));
        }
       Note_column * rcol = rest_l_arr_[0];
 
index 7c7adf3c6c06763631a6a615a77e0dcb5ea5b4db..06281c24f13911aa3219223e79257bfe8e8e75a6 100644 (file)
@@ -146,7 +146,7 @@ Score_engraver::typeset_all()
            if (!s->spanned_drul_[d])
              {
                s->set_bounds(d, command_column_l_);
-               ::warning (_f ("Unbound spanner `%s\'", classname(s)));
+               ::warning (_f ("unbound spanner `%s'", classname(s)));
              }
          } while (flip(&d) != LEFT);
        }
index bda4e464dff910ffa9ddd293f9095a12f7fcf467..736eabdb121aee7e624ee05aed91dd9c75bb53f0 100644 (file)
@@ -67,7 +67,7 @@ Score::run_translator (Music_output_def *odef_l)
   if (! iter->ok())
     {
       delete iter;
-      warning (_("need music in a score"));
+      warning (_("Need music in a score"));
       errorlevel_i_ =1;
       return ;
     }
@@ -80,12 +80,12 @@ Score::run_translator (Music_output_def *odef_l)
   if (errorlevel_i_)
     {
       // should we? hampers debugging.
-      warning (_ ("errors found, /*not processing score*/"));
+      warning (_ ("Errors found/*, not processing score*/"));
     }
 
   Music_output * output = trans_p->get_output_p();
   delete trans_p;
-  *mlog << endl << _f ("time: %.2f seconds",  timer.read ()) << flush;
+  *mlog << endl << _f ("elapsed time: %.2f seconds",  timer.read ()) << flush;
 
   output->header_l_ = header_p_;
   output->origin_str_ =  location_str();
index d53643a9acfa2b9827f461128a4b793cb77aabb9..d29848fcbc76dc71ed4be81d0f76f8b2453e69bc 100644 (file)
@@ -32,10 +32,10 @@ void write_dependency_file (String fn, Array<String> targets,
   const int WRAPWIDTH = 65;
 
 
-  cout << _f ("writing dependency file: `%s\'...", fn) << '\n';
+  cout << _f ("Writing dependency file: `%s'...", fn) << '\n';
   ofstream f (fn.ch_C ());
   if (!f)
-    warning (_f ("can't open file: `%s\'", fn));
+    warning (_f ("Can't open file: `%s'", fn));
 
   f << "# Automatically generated by " << gnu_lilypond_version_str ()  << '\n';
   String out;
@@ -76,7 +76,7 @@ do_scores()
 
       if (is_p->errorlevel_i_)
        {
-         is_p->warning (_("score contains errors; will not process it"));
+         is_p->warning (_("Score contains errors; will not process it"));
          exit_status_i_ |= 1;
        }
       else
@@ -105,13 +105,13 @@ do_one_file (String init_str, String file_str)
 {
   if (init_str.length_i () && global_path.find (init_str).empty_b ())
     {
-      warning (_f ("can't find file: `%s\'", init_str));
+      warning (_f ("Can't find file: `%s'", init_str));
       warning (_f ("(search path: `%s')", global_path.str ().ch_C()));
       return;
     }
   if ((file_str != "-") && global_path.find (file_str).empty_b ())
     {
-      warning (_f ("can't find file: `%s\'", file_str));
+      warning (_f ("Can't find file: `%s'", file_str));
       return;
     }
 
index e8e2e8dd8564b119962bb872597814bba5abcefc..e49675f93549047cd9d1395f97352e456f7efe46 100644 (file)
@@ -46,8 +46,8 @@ Script_engraver::do_process_requests()
       
       if (list == SCM_BOOL_F)
        {
-         l->warning(_f("don't know how to interpret articulation `%s'\n",
-                       l->articulation_str_.ch_C()));
+         l->warning (_f ("Don't know how to interpret articulation `%s'",
+                       l->articulation_str_.ch_C ()));
          continue;
        }
       Script *p =new Script;
index b6ace95e1386b6f5760058912d6a046197159cc6..acaa17fc2b26efdd54d91991a2eab550edeeb9c5 100644 (file)
@@ -79,7 +79,7 @@ Sequential_music_iterator::~Sequential_music_iterator()
 {
   if (iter_p_)
     {
-      music_l_->warning ("Must stop before this music ends");
+      music_l_->warning (_ ("Must stop before this music ends"));
       delete iter_p_;
       iter_p_ = 0;
     }
index cc778169836daa5d0733031f2972231736948e5b..1824f70a325319354aeb860d291c0ac4db3a9db7 100644 (file)
@@ -40,7 +40,7 @@ Single_malt_grouping_item::my_width () const
       if (pc != il->column_l ())
        {
          /* this shouldn't happen, but let's continue anyway. */
-         programming_error (_("Single_malt_grouping_item: I've been drinking too much"));
+         programming_error (_("Single_malt_grouping_item:  I've been drinking too much"));
          continue;             /*UGH UGH*/ 
        }
 
index 4553e4dcba6c96afa67f527a683903fac61cae5c..6a3a72f05fe1f85ab9e77c19a33188b6a4d7dffc 100644 (file)
@@ -77,7 +77,7 @@ Slur_engraver::do_process_requests()
        {
          if (slur_l_stack_.empty())
 
-           slur_req_l->warning (_f ("can't find both ends of %s", _("slur")));
+           slur_req_l->warning (_f ("Can't find both ends of %s", _("slur")));
          else
            {
              end_slur_l_arr_.push (slur_l_stack_.pop());
index 8585589bd9a5e18a789c0c50e2696bbc556e2e59..0aa11a6ab42bc90898c8b2d2b13e512bf628a792 100644 (file)
@@ -35,7 +35,7 @@ void
 Slur::add_column (Note_column*n)
 {
   if (!n->head_l_arr_.size ())
-    warning (_ ("Putting slur over rest. Ignoring"));
+    warning (_ ("Putting slur over rest.  Ignoring."));
   else
     {
       encompass_arr_.push (n);
index edc59bb49a170da802deb020a79541bfaaf81a23..3bcce2a28e8500b7892a2493e6bd1b4b63632360 100644 (file)
@@ -215,7 +215,7 @@ Spacing_spanner::note_spacing (Score_column *lc, Score_column *rc, Moment shorte
   Moment shortest_playing_len = lc->shortest_playing_mom_;
   if (! shortest_playing_len)
     {
-      programming_error ("can't find a ruling note at " + lc->when_mom ().str ());
+      programming_error ("Can't find a ruling note at " + lc->when_mom ().str ());
       shortest_playing_len = 1;
     }
   
index ca2f5d5618124553beb744034d9f0cb8e68ada26..195dffbf3d856e3718b589c45c8e50a9a0fe9f7d 100644 (file)
@@ -38,7 +38,7 @@ Spanner::break_into_pieces ()
 
   if  (left == right)
     {
-      warning (_ ("left spanpoint is right spanpoint\n"));
+      warning (_ ("Left spanpoint is right spanpoint"));
       return;
     }
   
@@ -108,7 +108,7 @@ Spanner::set_bounds(Direction d, Item*i)
   
   if  (spanned_drul_[Direction(-d)] == spanned_drul_[d]
        && i)
-    warning (_f ("Spanner `%s\' with equal left and right spanpoints", classname (this)));
+    warning (_f ("Spanner `%s' has equal left and right spanpoints", classname (this)));
 }
 
 void
@@ -140,7 +140,7 @@ Spanner::do_width() const
   Real r = spanned_drul_[RIGHT]->relative_coordinate (0, X_AXIS);
 
   if (r< l)
-    warning ("Spanner with negative length");
+    warning (_ ("spanner with negative length"));
        
   return Interval (0, r-l);
 }
index 004f9350505e5f730078376ebb773a106ffeba24..45dcb76a8ec9ff2de840a274b48ae29c9696ce57 100644 (file)
@@ -296,7 +296,7 @@ Spring_spacer::solve (Column_x_positions*positions) const
       positions->satisfies_constraints_b_ = check_constraints (solution_vec);
       if (!positions->satisfies_constraints_b_)
        {
-         warning (_("solution doesn't satisfy constraints"));
+         warning (_("Solution doesn't satisfy constraints"));
        }
       
       positions->energy_f_ = calculate_energy_f (solution_vec);
@@ -397,12 +397,12 @@ Spring_spacer::connect (int i, int j, Real d, Real h)
 {
   if (d > 100 CM)
     {
-      programming_error( _f("Improbable distance: %f point, setting to 10 mm", d));
+      programming_error( _f ("Improbable distance: %f point, setting to 10 mm", d));
       d = 1 CM;
     }
   if(d < 0)
     {
-      programming_error (_("Negative distance. Setting to 10 mm"));
+      programming_error (_ ("Negative distance, setting to 10 mm"));
       d = 10 MM;
     }
       
index 1ec79bf2308664ea41f56d0a920fb69562668b8a..1679e52441275bdab90ca4e37760835274188471 100644 (file)
@@ -77,7 +77,7 @@ Stem_engraver::acknowledge_element(Score_element_info i)
 
       if (stem_p_->flag_i_ != duration_log)
        {
-         r->warning (_f("Adding note head to incompatible stem (type = %d)", 1 <<  stem_p_->flag_i_));
+         r->warning (_f ("Adding note head to incompatible stem (type = %d)", 1 <<  stem_p_->flag_i_));
        }
 
       stem_p_->add_head (h);
index 2086139050b85cc6e7efa1bf5f79f93ee19b083c..15e9fa7ecc417484ee5f436b0da144eecaa5b879 100644 (file)
@@ -23,7 +23,7 @@ void
 Stem::set_direction (Direction d)
 {
   if  (!dir_)
-    warning ("Stem direction set already!");
+    warning (_ ("stem direction set already!"));
 
   dir_ = d;
 
@@ -103,7 +103,7 @@ Stem::set_stemend (Real se)
 {
   // todo: margins
   if (dir_ && dir_ * head_positions()[dir_] >= se*dir_)
-    warning (_ ("weird stem size; check for narrow beams"));
+    warning (_ ("Weird stem size; check for narrow beams"));
 
   
   yextent_drul_[dir_]  =  se;
index a4ddd108e9deb4ba25a7b3afa965fcea5adb424d..94d78f565fbf4ef4e4446aa667bd71dd2fffa833 100644 (file)
@@ -143,8 +143,7 @@ Tex_font_metric_reader::read_params ()
      than we can deal with.  */
   if (tfm_.header_.param_word_count > TFM_MAX_FONTDIMENS)
     {
-      warning (_f ("%s: TFM file has %u parameters, which is more than the
-%u I can handle",
+      warning (_f ("%s: TFM file has %u parameters, which is more than the %u I can handle",
                   input_.name_str ().ch_C (),
                   tfm_.header_.param_word_count,
                   TFM_MAX_FONTDIMENS));
index 9fcac3d436d86d4784ae7683334c5cec477016fa..96175d18b7830f7877a5f90629e93bf26583b300 100644 (file)
@@ -61,7 +61,7 @@ Tex_font_metric::find_ascii (int ascii, bool warn) const
   else if (warn)
 
     {
-      warning (_f ("can't find ascii character `%d'", ascii));
+      warning (_f ("Can't find ascii character: `%d'", ascii));
 
     }
   return dummy_static_char_metric;  
index 949f67d3e7a7a9bfb87ad073dcadde9e88cbd9ec..4d3c8ca01c37c4ca482b3250610afef6a2027011 100644 (file)
@@ -88,7 +88,7 @@ Tie_engraver::process_acknowledged ()
        {
          if (now_heads_.size () != stopped_heads_.size ())
            {
-             req_l_->warning ("Unequal number of note heads for tie");
+             req_l_->warning (_ ("unequal number of note heads for tie"));
            }
          int sz = now_heads_.size () <? stopped_heads_.size ();
 
@@ -152,7 +152,7 @@ Tie_engraver::process_acknowledged ()
 
          if (!tie_p_arr_.size ())
            {
-             req_l_->warning (_("No ties were created!"));
+             req_l_->warning (_ ("No ties were created!"));
            }
          
        }
index d66eb403e1527cfb8f606f3c50dfc0998f999d2e..6eb59eba15c050e814e41f228a41a499be219161 100644 (file)
@@ -103,7 +103,7 @@ String
 Time_description::try_set_partial_str (Moment p) const
 {
   if (p<Moment (0))
-    return (_ ("partial measure must be non-negative"));
+    return (_ ("Partial measure must be non-negative"));
   if (p > whole_per_measure_)
     return (_ ("partial measure too large"));
   return "";
index fc48ff2cd662b3dffc1f23fa768c582d758517dc..b42884bc99322d89031c3a26c73ad2b19cc1ceab 100644 (file)
@@ -22,7 +22,7 @@ Time_scaled_music_iterator::do_process_and_next (Moment m)
       if (yeah)
        set_translator (yeah->report_to_l ());
       else
-       music_l_->warning ( _("No one to print a tuplet start bracket"));
+       music_l_->warning ( _("no one to print a tuplet start bracket"));
     }
 
   Music_wrapper_iterator::do_process_and_next (m);
index 67eac373149a286043162596324b3584b5ca1406..a71769709fe8b67c9a9786d95fac946643669246 100644 (file)
@@ -25,8 +25,8 @@ Time_signature_engraver::do_process_requests()
 
   if (!result)
     {
-      warning (_ ("lost in time") + ": " + _ ("can't find") 
-        + " Timing_translator");
+      warning (_ ("lost in time:"));
+      warning (_f ("Can't find: `%s'", " Timing_translator"));
       return ;
     }
   
index 08cddf27902fc2520345ba4fc3f709c448a0b569..92db7ee737387df5646a935d5127c23f979eb289 100644 (file)
@@ -80,7 +80,7 @@ Timing_translator::do_process_requests()
        {
          if (time_.whole_in_measure_)
            {
-             tr_l ->warning (_f ("barcheck failed by: %s", 
+             tr_l ->warning (_f ("barcheck failed at: %s", 
                time_.whole_in_measure_.str ()));
 
              time_.whole_in_measure_ = 0; // resync
index 0fb8c998a23d03dbac94cc01dd83755ea8fbda8c..253a7edb60ca311faff1a9f42859b67fb0d90623 100644 (file)
@@ -36,7 +36,7 @@ get_translator_l (String s)
        return t;
     }
 
-  error (_f ("unknown translator `%s\'", s));
+  error (_f ("unknown translator: `%s'", s));
   return 0;
 }
 
index ccd0dd7dbe6588709efa9b6f50b39aeba6456b09..75a2e4f9b66d10bdfb102b1e7c3070fd7c0c5b97 100644 (file)
@@ -75,11 +75,11 @@ void
 Translator_group::add_last_element (String s)
 {
   if (!get_translator_l (s))
-    error ("Program has no such type");
+    error (_ ("Program has no such type"));
 
   for (int i=consists_end_str_arr_.size (); i--; )
     if (consists_end_str_arr_[i] == s)
-      warning (_f("Already contains a `%s\'", s));
+      warning (_f ("Already contains: `%s'", s));
       
   consists_end_str_arr_.push (s);
 }
@@ -88,13 +88,13 @@ void
 Translator_group::set_element (String s, bool add)
 {
   if (!get_translator_l (s))
-    error ("Program has no such type");
+    error (_ ("Program has no such type"));
 
   if (add)
     {
       for (int i=consists_str_arr_.size (); i--; )
        if (consists_str_arr_[i] == s)
-         warning (_f("Already contains a `%s\'", s));
+         warning (_f("Already contains: `%s'", s));
       
       consists_str_arr_.push (s);
     }
@@ -204,7 +204,7 @@ Translator_group::find_create_translator_l (String n, String id)
     ret = daddy_trans_l_->find_create_translator_l (n,id);
   else
     {
-      warning (_f ("can't find or create `%s\' called `%s\'", n, id));
+      warning (_f ("Can't find or create `%s' called `%s'", n, id));
       ret =0;
     }
   return ret;
@@ -338,7 +338,7 @@ Translator_group::get_default_interpreter()
       Translator*t = output_def_l ()->find_translator_l (accepts_str_arr_[0]);
       if (!t)
        {
-         warning (_f ("can't find or create `%s\'", accepts_str_arr_[0]));
+         warning (_f ("Can't find or create: `%s'", accepts_str_arr_[0]));
          t = this;
        }
       Translator_group * g= dynamic_cast <Translator_group*>(t->clone ());
@@ -434,7 +434,7 @@ Translator_group::do_add_processing ()
       String s = consists_str_arr_[i];
       Translator * t = output_def_l ()->find_translator_l (s);
       if (!t)
-       warning (_f ("can't find `%s\'", s));
+       warning (_f ("Can't find: `%s'", s));
       else
        add_translator (t->clone ());
     }
@@ -443,7 +443,7 @@ Translator_group::do_add_processing ()
        String s = consists_end_str_arr_[i];
        Translator * t = output_def_l ()->find_translator_l (s);
        if (!t)
-        warning (_f ("can't find `%s\'", s));
+        warning (_f ("Can't find: `%s'", s));
        else
         add_translator (t->clone ());
     }
index f57d40d44c21d30af83d48b01988d1a5d4f69699..eb182bfe4504dc130fcbc0ccebf99b98f0c50cb6 100644 (file)
@@ -142,7 +142,7 @@ Unfolded_repeat_iterator::do_process_and_next (Moment m)
       if (yeah)
        set_translator (yeah->report_to_l ());
       else
-       music_l_->warning ( _("No one to print a volta bracket"));
+       music_l_->warning ( _("no one to print a volta bracket"));
     }
   while (1)
     {
index 28f96e852c630d83450418df78f4ed607c3ff967..c516eb0f693c541cf4a6cc9de28f2e972a369e33 100644 (file)
@@ -72,9 +72,9 @@ Word_wrap::do_solve () const
            {
              if (!minimum.cols_.size ())
                {
-                 warning (_ ("ugh, this measure is too long") 
-                   + ", " + _f ("breakpoint: %d", break_idx) 
-                   + "(" + _ ("generating stupido solution") + ")");
+                 warning (_f ("Ugh, this measure is too long, breakpoint: %d",
+                   break_idx));
+                 warning (_ ("Generating stupido solution"));
                  current.stupid_solution ();
                  current.energy_f_ = - 1; // make sure we break out.
                }
index 016921ed1befdf9ba9b062b576c84f27a9304ef8..b92a9bbbcfbf7a0f239a12d404ed9d17b8fd8126 100644 (file)
@@ -95,12 +95,12 @@ Long_option_init long_option_init_a[] =
   {_i ("FILE"), "output", 'o', _i ("set FILE as default output")},
   {0, "no-tuplets", 'p', _i ("assume no tuplets")},
   {0, "quiet", 'q', _i ("be quiet")},
-  {_i ("DUR"), "smallest", 's', _i ("Set smallest duration (?)")},
+  {_i ("DUR"), "smallest", 's', _i ("set smallest duration")},
   {0, "no-timestamps", 'T', _i ("don't timestamp the output")},
+  {0, "version", 'V', _i ("print version number")},
   {0, "verbose", 'v', _i ("be verbose")},
   {0, "warranty", 'w', _i ("show warranty and copyright")},
   {0, "no-double-dots", 'x', _i ("assume no double dotted notes")},
-  {0, "version", 'V', _i ("print version number")},
   {0,0,0, 0}
 };
 
@@ -109,14 +109,14 @@ usage()
 {
   cout << _f ("Usage: %s [OPTION]... [FILE]", "midi2ly");
   cout << '\n';
-  cout << _ ("Translate midi-file to mudela");
+  cout << _ ("Translate MIDI-file to mudela");
   cout << '\n';
   cout << '\n';
   cout << _ ("Options:");
   cout << '\n';
   cout << Long_option_init::table_str (long_option_init_a) << endl;
 
-  cout << _("Report bugs to") << " bug-gnu-music@gnu.org" << endl;
+  cout << _f ("Report bugs to %s", "bug-gnu-music@gnu.org") << endl;
 }
 
 int
index 7e1908246c12635791f96493b312e8fa280e90fa..33fb76b4b3d4f8e5a6e56a9c74d00ff2c3df8ea2 100644 (file)
@@ -21,7 +21,7 @@ Midi_score_parser::open (String filename_str, Sources* sources_l)
 {
   info_l_->source_l_ = sources_l->get_file_l (filename_str);
   if (!info_l_->source_l_)
-    ::error (_f ("can't find file: `%s\'", filename_str));
+    ::error (_f ("Can't find file: `%s'", filename_str));
   info_l_->byte_L_ = (Byte const*)info_l_->source_l_->ch_C ();
   info_l_->end_byte_L_ = info_l_->byte_L_ + info_l_->source_l_->length_i () + 1;
 }
@@ -46,16 +46,16 @@ Midi_score_parser::parse_header ()
   int length_i = get_i (4);
   // is this signed?
   if (length_i < 6)
-    exit (_ ("Invalid header length"));
+    exit (_ ("invalid header length"));
   info_l_->format_i_ = get_i (2);
   if (info_l_->format_i_ != 0 && info_l_->format_i_ != 1)
-    exit (_("Invalid midi format"));
+    exit (_("invalid MIDI format"));
   info_l_->tracks_i_ = get_i (2);
   if (info_l_->tracks_i_ < 0 || info_l_->tracks_i_ > 32 )
-    exit (_("Invalid number of tracks"));
+    exit (_("invalid number of tracks"));
   info_l_->division_1_i_ = get_i (2) * 4;
   if (info_l_->division_1_i_ < 0)
-    exit (_f ("can't handle %s", _ ("non-metrical time")));
+    exit (_ ("Can't handle non-metrical time"));
   // ugh
   Duration::division_1_i_s = info_l_->division_1_i_;
   forward_byte_L (length_i - 6);
@@ -91,7 +91,8 @@ Midi_score_parser::parse_score ()
   for (int i = 0; i < info_l_->tracks_i_; i++)
     tracks.push (new Midi_track_parser (info_l_, i));
 
-  LOGOUT (NORMAL_ver) << _ ("Parsing...\n");
+  LOGOUT (NORMAL_ver) << _ ("Parsing...");
+  LOGOUT (NORMAL_ver) << "\n";
   while (tracks.size ())
     {
       int i = find_earliest_i (tracks);
index b545c2ddb86ae90b9810b92acceba3b4f78f0bc0..21442a4ef308bd4e17a4cda41f2aa0ba91921504 100644 (file)
@@ -65,7 +65,7 @@ Midi_track_parser::note_end (Mudela_column* col_l, int channel_i, int pitch_i, i
       else
        pp = &i->next_;
     }
-  warning (_f ("junking note-end event: channel = %d, pitch = %d", 
+  warning (_f ("Junking note-end event: channel = %d, pitch = %d", 
               channel_i, pitch_i));
 }
 
index 3e30a4d09622e6db6041ec725f91ed91b4be6e1c..1d3d0f5ca4c1df711233ff9cef92f017a33e55cd 100644 (file)
@@ -116,7 +116,7 @@ Mudela_score::output (String filename_str)
   Mudela_stream mudela_stream (filename_str);
   for (Cons<Mudela_staff>* i = mudela_staff_p_list_.head_; i; i = i->next_)
     {
-      LOGOUT (NORMAL_ver) << _ ("track ") << track_i++ << ": " << flush;
+      LOGOUT (NORMAL_ver) << _f ("track %d:", track_i++) << flush;
       i->car_->output (mudela_stream);
       mudela_stream << '\n';
       LOGOUT (NORMAL_ver) << endl;
index a8feafb0f4b7f9f11ae8add41c60d97f0bf5b105..edba0e1bc4e586a2f647430038fc8dee4faef5b3 100644 (file)
@@ -174,8 +174,8 @@ Mudela_staff::output (Mudela_stream& mudela_stream_r)
       c++;      
     }
 
-  mudela_stream_r << _ ("% midi copyright:") << copyright_str_ << '\n';
-  mudela_stream_r << _ ("% instrument:") << instrument_str_ << '\n';
+  mudela_stream_r << _ ("% MIDI copyright:") << copyright_str_ << '\n';
+  mudela_stream_r << _ ("% MIDI instrument:") << instrument_str_ << '\n';
   mudela_stream_r << id_str () << " = ";
   mudela_stream_r << "<\n " << trackbody << " >\n";
 
index 5484b658a25c5aafa850cc92bf4f4d9b474c08d5..f5fbfd0f8cb05f8a0fe4c36cbacb853bce726e82 100644 (file)
@@ -72,6 +72,7 @@ Mudela_stream::handle_pending_indent()
 void
 Mudela_stream::header()
 {
+  /* Maybe better not to translate these? */
   *os_p_ << _ ("% Creator: ");
   if (no_timestamps_b_g)
     *os_p_ << "GNU LilyPond\n"; 
@@ -100,7 +101,7 @@ Mudela_stream::open()
 {
   os_p_ = new ofstream (filename_str_.ch_C ());
   if  (!*os_p_)
-    error (_f ("can't open file: `%s\'",  filename_str_));
+    error (_f ("Can't open file: `%s'",  filename_str_));
 }
 
 void
diff --git a/po/TODO b/po/TODO
index c9817fd8d8fcd35d69438fb38a9127165b560ebf..3bbe15473289609c651c913670eb720f23dbbc0c 100644 (file)
--- a/po/TODO
+++ b/po/TODO
@@ -1,64 +1,31 @@
 TODO
-       * mail .po files to gnu translation project
-       * convince xgettext my name is <janneke@gnu.org> iso 
-         <fred@botervlieg.flower> :-)
-       * create user-friendly input format for multiple languages?
 
-ISSUES -- please read this before doing too much real translating...
+FIX OR STANDARDISE TARGETS
 
-       * please don't run make po/po-update with gnu gettext < 0.10.35
-       * encapsulate locale strings in _( ) or _f ( )
-       * fix/standardise messages
-         - it's silly to translate wrong strings
-         - no leading/trailing punctuation in strings: e.g.
-           _ ("foo found") iso _ ("foo found.), _ ("foo found.\n), ...
-         - no leading/trailing whitespace in strings
+* at toplevel, do:
 
-         - Think about translation issues.  
-           In a lot of cases,it's better to translate a whole message
-           the english grammar mustn't be imposed on the transator.
-           So, iso
-             _ ("stem at") + moment.str () + _("doen't fit in beam")
-           have
-             _f ("stem at %s doen't fit in beam", moment.str ())
-           ?
+    make po
+    make -C po po-update  (or do `make po-update' at toplevel)
 
-           Otoh:
-             en: can't open: `foo.ly'
-             nl: kan `foo.ly' niet openen     (1)
-                 kan niet openen: `foo.ly'*   (2)
-                 niet te openen: `foo.ly'*    (3)
+* if there are no errors (a list of changes may be displayed, that's ok), do
 
-           The first nl message, although gramatically and stylish correct,
-           is not friendly for parsing by humans (even if they speak dutch).
-           I guess we'd prefer something like (2) or (3)...
+    cp po/out/*.po po
 
-         - don't modularise too much; a lot of words cannot be translated
-           without context.
-           it's probably safe to treat most occurences of words like
-             stem, beam, crescendo as separately translatable words.
+* and edit your favorite po/LANG.po.  Especially, look for `,fuzzy' entries,
+  empty entries.  At the bottom of the file you may find a list of obsolete
+  translations.
 
-       * don't! translate/gettextify:
-         - debug strings
-         - output (ps) strings
+* because i never install LilyPond, I (check-out buildscripts/set-lily.sh)
+  made these links:
 
+    ln -s $LILYPOND_SOURCEDIR/po/out/nl.mo 
+        $PREFIX/usr/share/locale/nl/LC_MESSAGES/lilypond.mo
+    ln -s $LILYPOND_SOURCEDIR/po/out/it.mo 
+        $PREFIX/usr/share/locale/it/LC_MESSAGES/lilypond.mo
 
-SOLVED/HOWTO
-       * because i never install LilyPond, i made these links:
+  $PREFIX is the --prefix you passed to configure.
 
-           ln -s $LILYPOND_SOURCEDIR/po/out/nl.mo 
-               /usr/share/locale/nl/LC_MESSAGES/lilypond.mo
-           ln -s $LILYPOND_SOURCEDIR/po/out/it.mo 
-               /usr/share/locale/it/LC_MESSAGES/lilypond.mo
+  then simply type, e.g.
 
-         then simply type, e.g.
-
-           LANG=nl lilypond -h
-
-       * (howto?) avoid keep translating for moving target
-         - make po-update
-         - mv po/out/*.po po (manually!)
-         - edit po/*.po
-         - make -C po
-         - make show-po-update LANGUAGE=xx
+      LANG=nl lilypond -h
 
index f48bb143cd6b15937de2715fb0967fb61076885e..260670f53139332ce12e13343dbac3bdc05b014f 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1999-09-15 23:21+0200\n"
+"POT-Creation-Date: 1999-09-16 20:29+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -23,7 +23,7 @@ msgid "warning: "
 msgstr ""
 
 #: dstream.cc:158
-msgid "Not enough fields in Dstream init."
+msgid "not enough fields in Dstream init"
 msgstr ""
 
 #: flower-debug.cc:17
@@ -32,12 +32,12 @@ msgstr ""
 
 #: getopt-long.cc:141
 #, c-format
-msgid "option `%s' requires an argument"
+msgid "Option `%s' requires an argument"
 msgstr ""
 
 #: getopt-long.cc:145
 #, c-format
-msgid "option `%s' doesn't allow an argument"
+msgid "Option `%s' doesn't allow an argument"
 msgstr ""
 
 #: getopt-long.cc:149
@@ -54,10 +54,10 @@ msgstr ""
 msgid "<stdin>"
 msgstr ""
 
-#: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:103
+#: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:104
 #: paper-stream.cc:25 scores.cc:38 simple-file-storage.cc:44 text-stream.cc:21
 #, c-format
-msgid "can't open file: `%s'"
+msgid "Can't open file: `%s'"
 msgstr ""
 
 #: input.cc:91 warn.cc:7 warn.cc:15
@@ -73,53 +73,61 @@ msgid "position unknown"
 msgstr ""
 
 #: mapped-file-storage.cc:74
-msgid "can't map file"
+msgid "Can't map file"
 msgstr ""
 
 #: simple-file-storage.cc:56
 #, c-format
-msgid "Huh? got %d, expected %d characters"
+msgid "Huh?  Got %d, expected %d characters"
 msgstr ""
 
-#: warn.cc:33
-msgid "Programming error: "
+#: warn.cc:34
+msgid "programming error: "
 msgstr ""
 
-#: warn.cc:33
-msgid " (continuing; cross thumbs)"
+#: warn.cc:34
+msgid " (Continuing; cross thumbs)"
+msgstr ""
+
+#: warn.cc:40
+msgid "programming warning: "
 msgstr ""
 
 #: afm.cc:129
 #, c-format
-msgid "can't find character called `%s'"
+msgid "Can't find character called: `%s'"
 msgstr ""
 
 #: afm.cc:154
 #, c-format
-msgid "can't find character number %d"
+msgid "Can't find character number: %d"
 msgstr ""
 
-#: all-font-metrics.cc:69
+#: all-font-metrics.cc:69 lookup.cc:103
 #, c-format
-msgid "Can't find font `%s', loading default font."
+msgid "Can't find font: `%s'"
 msgstr ""
 
-#: all-font-metrics.cc:74
-#, c-format
-msgid "Can't find default font `%s', giving up."
+#: all-font-metrics.cc:70
+msgid "Loading default font"
 msgstr ""
 
 #: all-font-metrics.cc:75
 #, c-format
+msgid "Can't find default font: `%s'"
+msgstr ""
+
+#: all-font-metrics.cc:76
+#, c-format
 msgid "(search path: `%s)'"
 msgstr ""
 
-#: beam-engraver.cc:42
-msgid "No Beam to end"
+#: all-font-metrics.cc:77
+msgid "Giving up"
 msgstr ""
 
-#: beam-engraver.cc:58
-msgid "No beam to end"
+#: beam-engraver.cc:42 beam-engraver.cc:58
+msgid "no beam to end"
 msgstr ""
 
 #: beam-engraver.cc:87
@@ -127,19 +135,19 @@ msgid "Already have a Beam"
 msgstr ""
 
 #: beam-engraver.cc:149
-msgid "Unfinished beam"
+msgid "unfinished beam"
 msgstr ""
 
 #: beam-engraver.cc:174
-msgid "Stem must have Rhythmic structure."
+msgid "Stem must have Rhythmic structure"
 msgstr ""
 
 #: beam-engraver.cc:185
-msgid "stem doesn't fit in beam"
+msgid "Stem doesn't fit in beam"
 msgstr ""
 
 #: beam-engraver.cc:186
-msgid "beam was started here"
+msgid "Beam was started here"
 msgstr ""
 
 #: beam.cc:147
@@ -147,57 +155,75 @@ msgid "beam with less than two stems"
 msgstr ""
 
 #: beam.cc:312
-msgid "weird beam shift, check your knees"
+msgid "weird beam vertical offset"
 msgstr ""
 
-#: break-algorithm.cc:25
+#: break-algorithm.cc:28
 msgid "0 lines"
 msgstr ""
 
-#: break-algorithm.cc:27
+#: break-algorithm.cc:30
 #, c-format
 msgid "1 line (of %.0f columns)"
 msgstr ""
 
-#: break-algorithm.cc:29
+#: break-algorithm.cc:32
 #, c-format
 msgid "%d lines (with an average of %.1f columns)"
 msgstr ""
 
-#: break-algorithm.cc:148
-msgid "score does not have any columns"
+#: break-algorithm.cc:155
+msgid "Score does not have any columns"
 msgstr ""
 
-#: break-algorithm.cc:165
+#: break-algorithm.cc:172
 #, c-format
 msgid "approximated %s"
 msgstr ""
 
-#: break-algorithm.cc:167
+#: break-algorithm.cc:174
 #, c-format
 msgid "calculated %s exactly"
 msgstr ""
 
-#: break-algorithm.cc:168
+#: break-algorithm.cc:175
 #, c-format
 msgid "elapsed time %.2f seconds"
 msgstr ""
 
 #: change-iterator.cc:22
 #, c-format
-msgid "can't change `%s' to `%s'"
+msgid "Can't change `%s' to `%s'"
+msgstr ""
+
+#: change-iterator.cc:57
+msgid "Can't switch translators, I'm there already"
+msgstr ""
+
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_  = change_l ()->change_to_id_str_;
+#.
+#: change-iterator.cc:76
+msgid "I'm one myself"
+msgstr ""
+
+#: change-iterator.cc:79
+msgid "none of these in my family"
 msgstr ""
 
 #: chord-tremolo-engraver.cc:41 chord-tremolo-engraver.cc:58
-msgid "No abbreviation beam to end"
+msgid "no tremolo beam to end"
 msgstr ""
 
 #: chord-tremolo-engraver.cc:83
-msgid "Already have an abbreviation beam"
+msgid "Already have a tremolo beam"
 msgstr ""
 
 #: chord-tremolo-engraver.cc:124
-msgid "Unfinished abbreviation beam"
+msgid "unfinished tremolo beam"
 msgstr ""
 
 #: chord.cc:231
@@ -211,7 +237,7 @@ msgid "invalid inversion pitch: not part of chord: %s"
 msgstr ""
 
 #: clef-engraver.cc:178
-msgid "unknown clef type "
+msgid "unknown clef type"
 msgstr ""
 
 #: collision.cc:95
@@ -227,11 +253,11 @@ msgid "too small"
 msgstr ""
 
 #: debug.cc:56
-msgid "Floating point exception"
+msgid "floating point exception"
 msgstr ""
 
 #: debug.cc:139
-msgid "can't set mem-checking"
+msgid "Can't set mem-checking!"
 msgstr ""
 
 #: dimensions.cc:13
@@ -239,11 +265,11 @@ msgid "NaN"
 msgstr ""
 
 #: dynamic-engraver.cc:109
-msgid "Got a dynamic already.  Continuing dazed and confused"
+msgid "Got a dynamic already.  Continuing dazed and confused."
 msgstr ""
 
 #: dynamic-engraver.cc:162
-msgid "can't find (de)crescendo to end"
+msgid "Can't find (de)crescendo to end"
 msgstr ""
 
 #: dynamic-engraver.cc:216
@@ -267,12 +293,16 @@ msgstr ""
 msgid "unterminated extender"
 msgstr ""
 
+#: extender-engraver.cc:74
+msgid "Nothing to connect extender to on the left.  Ignoring extender request."
+msgstr ""
+
 #: folded-repeat-iterator.cc:64
-msgid "No one to print a repeat brace"
+msgid "no one to print a repeat brace"
 msgstr ""
 
 #: grace-iterator.cc:43
-msgid "No Grace context available!"
+msgid "no Grace context available"
 msgstr ""
 
 #: grace-position-engraver.cc:89
@@ -283,19 +313,19 @@ msgstr ""
 msgid "unterminated hyphen"
 msgstr ""
 
-#: identifier.cc:46
-msgid "Wrong identifier type: "
+#: hyphen-engraver.cc:72
+msgid "Nothing to connect hyphen to on the left.  Ignoring hyphen request."
 msgstr ""
 
-#: identifier.cc:47
+#: identifier.cc:46
 #, c-format
-msgid "%s expected"
+msgid "wrong identifier type, expected: `%s'"
 msgstr ""
 
 #: includable-lexer.cc:47 lily-guile.cc:82 lily-guile.cc:105
 #: midi-score-parser.cc:24 scores.cc:108 scores.cc:114
 #, c-format
-msgid "can't find file: `%s'"
+msgid "Can't find file: `%s'"
 msgstr ""
 
 #: includable-lexer.cc:49 lookup.cc:104 scores.cc:109
@@ -309,19 +339,38 @@ msgid "Ineq_constrained_qp::solve (): Constraint off by %f"
 msgstr ""
 
 #: ineq-constrained-qp.cc:233
-msgid "didn't converge!"
+msgid "Didn't converge!"
 msgstr ""
 
 #: ineq-constrained-qp.cc:235
-msgid "Too much degeneracy. "
+msgid "too much degeneracy"
 msgstr ""
 
 #: key-def.cc:31
-msgid "No key name: assuming `C'"
+msgid "No key name, assuming `C'"
 msgstr ""
 
 #: key-def.cc:92
-msgid "don't know how handle empty keys"
+msgid "Don't know how handle empty keys"
+msgstr ""
+
+#: key-engraver.cc:70 key-performer.cc:65
+msgid "FIXME: key change merge"
+msgstr ""
+
+#: key.cc:54 key.cc:59
+#, c-format
+msgid "Don't have that many octaves (%s)"
+msgstr ""
+
+#: key.cc:77
+#, c-format
+msgid "underdone accidentals (%s)"
+msgstr ""
+
+#: key.cc:82
+#, c-format
+msgid "overdone accidentals (%s)"
 msgstr ""
 
 #: lily-guile.cc:84 lily-guile.cc:107
@@ -329,17 +378,18 @@ msgstr ""
 msgid "(load path: `%s')"
 msgstr ""
 
-#: local-key-engraver.cc:42
-msgid "out of tune"
+#: line-of-score.cc:91
+msgid "Huh?  Empty Line_of_score?"
 msgstr ""
 
-#: local-key-engraver.cc:42 time-signature-engraver.cc:28
-msgid "can't find"
+#: local-key-engraver.cc:42
+msgid "out of tune:"
 msgstr ""
 
-#: lookup.cc:103
+#: local-key-engraver.cc:43 time-signature-engraver.cc:29
+#: translator-group.cc:437 translator-group.cc:446
 #, c-format
-msgid "can't find font: `%s'"
+msgid "Can't find: `%s'"
 msgstr ""
 
 #: lookup.cc:105
@@ -348,107 +398,108 @@ msgstr ""
 
 #: lookup.cc:436
 #, c-format
-msgid "Non-matching braces in text `%s', adding braces."
+msgid "Non-matching braces in text `%s', adding braces"
 msgstr ""
 
-#: main.cc:68
-msgid "BASENAME"
+#: main.cc:71 main.cc:91
+msgid "enable debugging output"
 msgstr ""
 
-#: main.cc:68
-msgid "write output to BASENAME[-x].extension"
+#: main.cc:72
+msgid "EXT"
 msgstr ""
 
-#: main.cc:69 main.cc:101
-msgid "show warranty and copyright"
+#: main.cc:72
+msgid "use output format EXT"
 msgstr ""
 
-#: main.cc:70 main.cc:92
+#: main.cc:73 main.cc:92
 msgid "this help"
 msgstr ""
 
-#: main.cc:71
-msgid "switch on experimental features"
+#: main.cc:74
+msgid "DIR"
 msgstr ""
 
-#: main.cc:72 main.cc:91
-msgid "enable debugging output"
+#: main.cc:74
+msgid "add DIR to search path"
 msgstr ""
 
-#: main.cc:73 main.cc:95
+#: main.cc:75 main.cc:95
 msgid "FILE"
 msgstr ""
 
-#: main.cc:73
+#: main.cc:75
 msgid "use FILE as init file"
 msgstr ""
 
-#: main.cc:74
-msgid "DIR"
+#: main.cc:76
+msgid "write Makefile dependencies for every input file"
 msgstr ""
 
-#: main.cc:74
-msgid "add DIR to search path"
+#: main.cc:77
+msgid "produce MIDI output only"
 msgstr ""
 
-#: main.cc:75
-msgid "produce midi output only"
+#: main.cc:78
+msgid "BASENAME"
 msgstr ""
 
-#: main.cc:76
-msgid "write Makefile dependencies for every input file"
+#: main.cc:78
+msgid "write output to BASENAME[-x].extension"
 msgstr ""
 
-#: main.cc:77 main.cc:99
-msgid "don't timestamp the output"
+#: main.cc:79
+msgid "show all changes in relative syntax"
 msgstr ""
 
-#: main.cc:78
-msgid "show all changes in relative syntax"
+#: main.cc:80
+msgid "inhibit file output naming and exporting"
 msgstr ""
 
-#: main.cc:79
-msgid "ignore mudela version"
+#: main.cc:81 main.cc:99
+msgid "don't timestamp the output"
 msgstr ""
 
-#: main.cc:80 main.cc:103
-msgid "print version number"
+#: main.cc:82
+msgid "switch on experimental features"
 msgstr ""
 
-#: main.cc:81
-msgid "EXT"
+#: main.cc:83
+msgid "ignore mudela version"
 msgstr ""
 
-#: main.cc:81
-msgid "use output format EXT"
+#: main.cc:84 main.cc:100
+msgid "print version number"
 msgstr ""
 
-#: main.cc:82
-msgid "inhibit file output naming and exporting"
+#: main.cc:85 main.cc:102
+msgid "show warranty and copyright"
 msgstr ""
 
-#: main.cc:89
+#: main.cc:92
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr ""
 
-#: main.cc:91
-msgid "Typeset music and or play MIDI from FILE."
+#: main.cc:94
+msgid "Typeset music and or play MIDI from FILE"
 msgstr ""
 
-#: main.cc:97 main.cc:115
+#: main.cc:100 main.cc:115
 msgid "Options:"
 msgstr ""
 
-#: main.cc:101
+#: main.cc:104
 msgid "This binary was compiled with the following options:"
 msgstr ""
 
-#: main.cc:119
-msgid "Report bugs to"
+#: main.cc:119 main.cc:123
+#, c-format
+msgid "Report bugs to %s"
 msgstr ""
 
-#: main.cc:52 main.cc:135
+#: main.cc:52 main.cc:137
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -456,17 +507,17 @@ msgid ""
 "certain conditions.  Invoke as `%s --warranty' for more information.\n"
 msgstr ""
 
-#: main.cc:59 main.cc:142 main.cc:154
+#: main.cc:59 main.cc:144 main.cc:156
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr ""
 
 #. GNU GNU?
-#: main.cc:152
+#: main.cc:154
 msgid "GNU LilyPond -- The GNU Project music typesetter"
 msgstr ""
 
-#: main.cc:68 main.cc:160
+#: main.cc:68 main.cc:162
 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"
@@ -485,7 +536,7 @@ msgstr ""
 
 #: midi-item.cc:303
 #, c-format
-msgid "No such instrument: `%s'"
+msgid "no such instrument: `%s'"
 msgstr ""
 
 #: midi-item.cc:357
@@ -502,7 +553,7 @@ msgid "silly pitch"
 msgstr ""
 
 #: midi-stream.cc:29 paper-stream.cc:36
-msgid "error syncing file (disk full?)"
+msgid "Error syncing file (disk full?)"
 msgstr ""
 
 #: music-output-def.cc:56
@@ -510,12 +561,13 @@ msgid "Interpretation context with empty type"
 msgstr ""
 
 #: music-output-def.cc:83
-msgid "can't find Score context"
+#, c-format
+msgid "Can't find `%s' context"
 msgstr ""
 
 #: musical-request.cc:42
 #, c-format
-msgid "transposition by %s makes accidental larger than two"
+msgid "Transposition by %s makes accidental larger than two"
 msgstr ""
 
 #: my-lily-lexer.cc:137
@@ -525,7 +577,7 @@ msgstr ""
 
 #: my-lily-lexer.cc:143
 #, c-format
-msgid "Identifier name is a keyword (`%s')"
+msgid "Identifier name is a keyword: `%s'"
 msgstr ""
 
 #: my-lily-lexer.cc:172
@@ -533,12 +585,16 @@ msgstr ""
 msgid "error at EOF: %s"
 msgstr ""
 
-#: my-lily-parser.cc:60
+#: midi-score-parser.cc:94 my-lily-parser.cc:60
 msgid "Parsing..."
 msgstr ""
 
 #: my-lily-parser.cc:69
-msgid "braces don't match"
+msgid "Braces don't match"
+msgstr ""
+
+#: p-col.cc:48
+msgid "Must set spring between differing columns"
 msgstr ""
 
 #: paper-def.cc:95
@@ -552,25 +608,25 @@ msgstr ""
 
 #. for now; breaks -fscm output
 #: paper-def.cc:251
-msgid "outputting Score, defined at: "
+msgid "Outputting Score, defined at: "
 msgstr ""
 
 #: paper-def.cc:280
 #, c-format
-msgid "Paper output to %s..."
+msgid "paper output to %s..."
 msgstr ""
 
-#: mudela-stream.cc:85 paper-outputter.cc:76 performance.cc:97
+#: mudela-stream.cc:86 paper-outputter.cc:76 performance.cc:97
 msgid ", at "
 msgstr ""
 
 #: paper-outputter.cc:130
 #, c-format
-msgid "Improbable offset for object type `%s'"
+msgid "improbable offset for object type: `%s'"
 msgstr ""
 
 #: paper-score.cc:131
-msgid "Can't solve this casting problem exactly; revert to Word_wrap"
+msgid "Can't solve this casting problem exactly; reverting to Word_wrap"
 msgstr ""
 
 #: paper-score.cc:156
@@ -582,7 +638,8 @@ msgid "Calculating column positions..."
 msgstr ""
 
 #: paper-score.cc:179
-msgid " elements. "
+#, c-format
+msgid "%s elements"
 msgstr ""
 
 #: paper-score.cc:182
@@ -616,9 +673,13 @@ msgstr ""
 msgid "degenerate constraints"
 msgstr ""
 
+#: repeat-engraver.cc:177
+msgid "No bar engraver found.  Ignoring repeats."
+msgstr ""
+
 #: request-chord-iterator.cc:73
 #, c-format
-msgid "junking request: `%s'"
+msgid "Junking request: `%s'"
 msgstr ""
 
 #: request-chord-iterator.cc:76
@@ -627,16 +688,16 @@ msgid "Huh?  Not a Request: `%s'"
 msgstr ""
 
 #: rest-collision.cc:64
-msgid "Too many colliding rests."
+msgid "too many colliding rests"
 msgstr ""
 
 #: rest-collision.cc:68
-msgid "Too many notes for rest collision."
+msgid "too many notes for rest collision"
 msgstr ""
 
 #: score-engraver.cc:149
 #, c-format
-msgid "Unbound spanner `%s'"
+msgid "unbound spanner `%s'"
 msgstr ""
 
 #: score.cc:56
@@ -648,36 +709,40 @@ msgid "Interpreting music..."
 msgstr ""
 
 #: score.cc:70
-msgid "need music in a score"
+msgid "Need music in a score"
 msgstr ""
 
 #. should we? hampers debugging.
 #: score.cc:83
-msgid "errors found, /*not processing score*/"
+msgid "Errors found/*, not processing score*/"
 msgstr ""
 
 #: score.cc:88
 #, c-format
-msgid "time: %.2f seconds"
+msgid "elapsed time: %.2f seconds"
 msgstr ""
 
 #: scores.cc:35
 #, c-format
-msgid "writing dependency file: `%s'..."
+msgid "Writing dependency file: `%s'..."
 msgstr ""
 
 #: scores.cc:79
-msgid "score contains errors; will not process it"
+msgid "Score contains errors; will not process it"
 msgstr ""
 
 #: script-engraver.cc:49
 #, c-format
-msgid "don't know how to interpret articulation `%s'\n"
+msgid "Don't know how to interpret articulation `%s'"
+msgstr ""
+
+#: sequential-music-iterator.cc:82
+msgid "Must stop before this music ends"
 msgstr ""
 
 #. this shouldn't happen, but let's continue anyway.
 #: single-malt-grouping-item.cc:43
-msgid "Single_malt_grouping_item: I've been drinking too much"
+msgid "Single_malt_grouping_item:  I've been drinking too much"
 msgstr ""
 
 #: slur-engraver.cc:64
@@ -686,7 +751,7 @@ msgstr ""
 
 #: slur-engraver.cc:80
 #, c-format
-msgid "can't find both ends of %s"
+msgid "Can't find both ends of %s"
 msgstr ""
 
 #: slur-engraver.cc:80
@@ -694,43 +759,37 @@ msgid "slur"
 msgstr ""
 
 #: slur.cc:38
-msgid "Putting slur over rest. Ignoring"
-msgstr ""
-
-#: spacing-spanner.cc:218
-#, c-format
-msgid "can't find a ruling note at %s"
-msgstr ""
-
-#: spacing-spanner.cc:224
-#, c-format
-msgid "no minimum in measure at %s"
+msgid "Putting slur over rest.  Ignoring."
 msgstr ""
 
 #: spanner.cc:41
-msgid "left spanpoint is right spanpoint\n"
+msgid "Left spanpoint is right spanpoint"
 msgstr ""
 
 #: spanner.cc:111
 #, c-format
-msgid "Spanner `%s' with equal left and right spanpoints"
+msgid "Spanner `%s' has equal left and right spanpoints"
+msgstr ""
+
+#: spanner.cc:143
+msgid "spanner with negative length"
 msgstr ""
 
 #: spring-spacer.cc:134
 msgid "I'm too fat; call Oprah"
 msgstr ""
 
-#: spring-spacer.cc:295
-msgid "solution doesn't satisfy constraints"
+#: spring-spacer.cc:299
+msgid "Solution doesn't satisfy constraints"
 msgstr ""
 
-#: spring-spacer.cc:378
+#: spring-spacer.cc:400
 #, c-format
 msgid "Improbable distance: %f point, setting to 10 mm"
 msgstr ""
 
-#: spring-spacer.cc:383
-msgid "Negative distance. Setting to 10 mm"
+#: spring-spacer.cc:405
+msgid "Negative distance, setting to 10 mm"
 msgstr ""
 
 #: stem-engraver.cc:80
@@ -738,8 +797,12 @@ msgstr ""
 msgid "Adding note head to incompatible stem (type = %d)"
 msgstr ""
 
+#: stem.cc:26
+msgid "stem direction set already!"
+msgstr ""
+
 #: stem.cc:106
-msgid "weird stem size; check for narrow beams"
+msgid "Weird stem size; check for narrow beams"
 msgstr ""
 
 #: tfm-reader.cc:108
@@ -749,12 +812,16 @@ msgstr ""
 
 #: tfm-reader.cc:146
 #, c-format
-msgid "%s: TFM file has %u parameters, which is more than the"
+msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
 msgstr ""
 
 #: tfm.cc:64
 #, c-format
-msgid "can't find ascii character `%d'"
+msgid "Can't find ascii character: `%d'"
+msgstr ""
+
+#: tie-engraver.cc:91
+msgid "unequal number of note heads for tie"
 msgstr ""
 
 #: tie-engraver.cc:155 tie-performer.cc:106
@@ -770,7 +837,7 @@ msgid "cadenza"
 msgstr ""
 
 #: time-description.cc:106
-msgid "partial measure must be non-negative"
+msgid "Partial measure must be non-negative"
 msgstr ""
 
 #: time-description.cc:108
@@ -778,11 +845,11 @@ msgid "partial measure too large"
 msgstr ""
 
 #: time-scaled-music-iterator.cc:25
-msgid "No one to print a tuplet start bracket"
+msgid "no one to print a tuplet start bracket"
 msgstr ""
 
 #: time-signature-engraver.cc:28
-msgid "lost in time"
+msgid "lost in time:"
 msgstr ""
 
 #: timing-translator.cc:26
@@ -795,32 +862,31 @@ msgstr ""
 
 #: timing-translator.cc:83
 #, c-format
-msgid "barcheck failed by: %s"
+msgid "barcheck failed at: %s"
 msgstr ""
 
 #: translator-ctors.cc:39
 #, c-format
-msgid "unknown translator `%s'"
+msgid "unknown translator: `%s'"
+msgstr ""
+
+#: translator-group.cc:78 translator-group.cc:91
+msgid "Program has no such type"
 msgstr ""
 
 #: translator-group.cc:82 translator-group.cc:97
 #, c-format
-msgid "Already contains a `%s'"
+msgid "Already contains: `%s'"
 msgstr ""
 
 #: translator-group.cc:207
 #, c-format
-msgid "can't find or create `%s' called `%s'"
+msgid "Can't find or create `%s' called `%s'"
 msgstr ""
 
 #: translator-group.cc:341
 #, c-format
-msgid "can't find or create `%s'"
-msgstr ""
-
-#: translator-group.cc:437 translator-group.cc:446
-#, c-format
-msgid "can't find `%s'"
+msgid "Can't find or create: `%s'"
 msgstr ""
 
 #: transposed-music.cc:31
@@ -828,20 +894,16 @@ msgid "Will ignore \\relative for transposed music"
 msgstr ""
 
 #: unfolded-repeat-iterator.cc:145
-msgid "No one to print a volta bracket"
+msgid "no one to print a volta bracket"
 msgstr ""
 
 #: word-wrap.cc:75
-msgid "ugh, this measure is too long"
-msgstr ""
-
-#: word-wrap.cc:76
 #, c-format
-msgid "breakpoint: %d"
+msgid "Ugh, this measure is too long, breakpoint: %d"
 msgstr ""
 
 #: word-wrap.cc:77
-msgid "generating stupido solution"
+msgid "Generating stupido solution"
 msgstr ""
 
 #: word-wrap.cc:95
@@ -854,7 +916,7 @@ msgid "Oldest supported input version: %s"
 msgstr ""
 
 #: parser.yy:313
-msgid "Cannot evaluate Scheme in safe mode"
+msgid "Can't evaluate Scheme in safe mode"
 msgstr ""
 
 #: parser.yy:433 parser.yy:441 parser.yy:465
@@ -869,35 +931,51 @@ msgstr ""
 msgid "More than one music block"
 msgstr ""
 
+#: parser.yy:575
+msgid "Need even number of args for shape array"
+msgstr ""
+
+#: parser.yy:723
+msgid "More alternatives than repeats.  Junking excess alternatives."
+msgstr ""
+
 #: parser.yy:946 parser.yy:1360 parser.yy:1380
 #, c-format
 msgid "not a duration: %d"
 msgstr ""
 
 #: parser.yy:948 parser.yy:1382
-msgid "can't abbreviate"
+msgid "Can't abbreviate"
+msgstr ""
+
+#: parser.yy:1076
+msgid "Can't specify direction for this request"
 msgstr ""
 
 #: parser.yy:1211 parser.yy:1219 parser.yy:1444
-msgid "have to be in Lyric mode for lyrics"
+msgid "Have to be in Lyric mode for lyrics"
 msgstr ""
 
 #: parser.yy:1391
-msgid "have to be in Note mode for notes"
+msgid "Have to be in Note mode for notes"
 msgstr ""
 
 #: parser.yy:1403
-msgid "can't abbreviate tuplet"
+msgid "Can't abbreviate tuplet"
 msgstr ""
 
 #: parser.yy:1450
-msgid "have to be in Chord mode for chords"
+msgid "Have to be in Chord mode for chords"
 msgstr ""
 
 #: lexer.ll:155
 msgid "EOF found inside a comment"
 msgstr ""
 
+#: lexer.ll:169
+msgid "\\maininput disallowed outside init files"
+msgstr ""
+
 #: lexer.ll:199
 #, c-format
 msgid "undefined identifier: `%s'"
@@ -905,7 +983,7 @@ msgstr ""
 
 #. backup rule
 #: lexer.ll:204
-msgid "missing end quote"
+msgid "Missing end quote"
 msgstr ""
 
 #. backup rule
@@ -968,14 +1046,14 @@ msgid "DUR"
 msgstr ""
 
 #: main.cc:98
-msgid "Set smallest duration (?)"
+msgid "set smallest duration"
 msgstr ""
 
-#: main.cc:100
+#: main.cc:101
 msgid "be verbose"
 msgstr ""
 
-#: main.cc:102
+#: main.cc:103
 msgid "assume no double dotted notes"
 msgstr ""
 
@@ -985,7 +1063,7 @@ msgid "Usage: %s [OPTION]... [FILE]"
 msgstr ""
 
 #: main.cc:112
-msgid "Translate midi-file to mudela"
+msgid "Translate MIDI-file to mudela"
 msgstr ""
 
 #: midi-parser.cc:64
@@ -997,33 +1075,24 @@ msgid "MIDI header expected"
 msgstr ""
 
 #: midi-score-parser.cc:49
-msgid "Invalid header length"
+msgid "invalid header length"
 msgstr ""
 
 #: midi-score-parser.cc:52
-msgid "Invalid midi format"
+msgid "invalid MIDI format"
 msgstr ""
 
 #: midi-score-parser.cc:55
-msgid "Invalid number of tracks"
-msgstr ""
-
-#: midi-score-parser.cc:58
-#, c-format
-msgid "can't handle %s"
+msgid "invalid number of tracks"
 msgstr ""
 
 #: midi-score-parser.cc:58
-msgid "non-metrical time"
-msgstr ""
-
-#: midi-score-parser.cc:94
-msgid "Parsing...\n"
+msgid "Can't handle non-metrical time"
 msgstr ""
 
 #: midi-track-parser.cc:68
 #, c-format
-msgid "junking note-end event: channel = %d, pitch = %d"
+msgid "Junking note-end event: channel = %d, pitch = %d"
 msgstr ""
 
 #: midi-track-parser.cc:124
@@ -1056,8 +1125,9 @@ msgstr ""
 msgid "Lily output to %s..."
 msgstr ""
 
-#: mudela-score.cc:119 mudela-score.cc:168
-msgid "track "
+#: mudela-score.cc:119
+#, c-format
+msgid "track %d:"
 msgstr ""
 
 #: mudela-score.cc:155
@@ -1068,6 +1138,10 @@ msgstr ""
 msgid "Creating voices..."
 msgstr ""
 
+#: mudela-score.cc:168
+msgid "track "
+msgstr ""
+
 #: mudela-score.cc:177
 msgid "NOT Filtering tempo..."
 msgstr ""
@@ -1084,14 +1158,12 @@ msgstr ""
 msgid "Settling columns..."
 msgstr ""
 
-#: mudela-staff.cc:111
-#, c-format
-msgid "% midi copyright:"
+#: mudela-staff.cc:177
+msgid "% MIDI copyright:"
 msgstr ""
 
-#: mudela-staff.cc:112
-#, c-format
-msgid "% instrument:"
+#: mudela-staff.cc:178
+msgid "% MIDI instrument:"
 msgstr ""
 
 #: mudela-stream.cc:37
@@ -1099,15 +1171,16 @@ msgstr ""
 msgid "lily indent level: %d"
 msgstr ""
 
-#: mudela-stream.cc:75
+#. Maybe better not to translate these?
+#: mudela-stream.cc:76
 msgid "% Creator: "
 msgstr ""
 
-#: mudela-stream.cc:80
+#: mudela-stream.cc:81
 msgid "% Automatically generated"
 msgstr ""
 
-#: mudela-stream.cc:89
+#: mudela-stream.cc:90
 #, c-format
 msgid "% from input file: "
 msgstr ""
index 64d3a1ebb20f4ae6071a8fff6128cec2d6ffb4fb..c9e0fee90034af932ba5e945a8841cf2bca0006d 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,10 +1,10 @@
 # nl.po -- GNU LilyPond's dutch language file
 # Jan Nieuwenhuizen <janneke@gnu.org>
-# Han-Wen Nienhuys <hanwen@cs.uu.nl>, 1998.
+# Han-Wen Nienhuys <hanwen@cs.uu.nl>, 1998, 1999.
 #
 msgid ""
 msgstr ""
-"POT-Creation-Date: 1999-09-15 23:21+0200\n"
+"POT-Creation-Date: 1999-09-16 20:29+0200\n"
 "Content-Type: text/plain; charset=\n"
 "Date: 1998-05-26 11:26:28+0200\n"
 "From:  <janneke@gnu.org>\n"
@@ -21,8 +21,8 @@ msgid "warning: "
 msgstr "waarschuwing: "
 
 #: dstream.cc:158
-msgid "Not enough fields in Dstream init."
-msgstr "Onvoldoende velden in Dstream init."
+msgid "not enough fields in Dstream init"
+msgstr "onvoldoende velden in Dstream init"
 
 #: flower-debug.cc:17
 msgid "Debug output disabled.  Compiled with NPRINT."
@@ -30,13 +30,13 @@ msgstr "Ontluis berichten zijn uitgeschakeld.  Vertaald met NPRINT."
 
 #: getopt-long.cc:141
 #, c-format
-msgid "option `%s' requires an argument"
-msgstr "optie `%s' vereist een argument"
+msgid "Option `%s' requires an argument"
+msgstr "Optie `%s' vereist een argument"
 
 #: getopt-long.cc:145
 #, c-format
-msgid "option `%s' doesn't allow an argument"
-msgstr "optie `%s' staat geen argument toe"
+msgid "Option `%s' doesn't allow an argument"
+msgstr "Optie `%s' staat geen argument toe"
 
 #: getopt-long.cc:149
 #, c-format
@@ -50,13 +50,13 @@ msgstr "onjuist argument: `%s' voor optie `%s'"
 
 #: text-stream.cc:8
 msgid "<stdin>"
-msgstr ""
+msgstr "<stdin>"
 
-#: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:103
+#: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:104
 #: paper-stream.cc:25 scores.cc:38 simple-file-storage.cc:44 text-stream.cc:21
 #, c-format
-msgid "can't open file: `%s'"
-msgstr "kan bestand niet openen: `%s'"
+msgid "Can't open file: `%s'"
+msgstr "Kan bestand niet openen: `%s'"
 
 #: input.cc:91 warn.cc:7 warn.cc:15
 msgid "error: "
@@ -71,53 +71,61 @@ msgid "position unknown"
 msgstr "positie onbekend"
 
 #: mapped-file-storage.cc:74
-msgid "can't map file"
-msgstr "kan bestand niet inkaarten"
+msgid "Can't map file"
+msgstr "Kan bestand niet inkaarten"
 
 #: simple-file-storage.cc:56
 #, c-format
-msgid "Huh? got %d, expected %d characters"
-msgstr "Huh? kreeg %d, verwachtte %d tekens"
+msgid "Huh?  Got %d, expected %d characters"
+msgstr "Huh?  Kreeg %d, verwachtte %d tekens"
+
+#: warn.cc:34
+msgid "programming error: "
+msgstr "programmeerfout: "
 
-#: warn.cc:33
-msgid "Programming error: "
-msgstr "Programmeer fout: "
+#: warn.cc:34
+msgid " (Continuing; cross thumbs)"
+msgstr " (Ga verder; duim maar)"
 
-#: warn.cc:33
-msgid " (continuing; cross thumbs)"
-msgstr " (ik ga verder; duim voor mij)"
+#: warn.cc:40
+msgid "programming warning: "
+msgstr "programmeerwaarschuwing: "
 
 #: afm.cc:129
 #, c-format
-msgid "can't find character called `%s'"
-msgstr "kan teken niet vinden, genaamd: `%s'"
+msgid "Can't find character called: `%s'"
+msgstr "Kan teken niet vinden genaamd: `%s'"
 
 #: afm.cc:154
 #, c-format
-msgid "can't find character number %d"
-msgstr "kan teken niet vinden met nummer %d"
+msgid "Can't find character number: %d"
+msgstr "kan teken niet vinden met nummer: %d"
 
-#: all-font-metrics.cc:69
+#: all-font-metrics.cc:69 lookup.cc:103
 #, c-format
-msgid "Can't find font `%s', loading default font."
-msgstr "Kan font `%s' niet vinden, laad verval font"
+msgid "Can't find font: `%s'"
+msgstr "Kan font niet vinden: `%s'"
 
-#: all-font-metrics.cc:74
-#, c-format
-msgid "Can't find default font `%s', giving up."
-msgstr "Kan verval font `%s' niet vinden, ik geef op."
+#: all-font-metrics.cc:70
+msgid "Loading default font"
+msgstr "Laad verstek font"
 
 #: all-font-metrics.cc:75
 #, c-format
+msgid "Can't find default font: `%s'"
+msgstr "Kan verstekfont niet vinden: `%s'"
+
+#: all-font-metrics.cc:76
+#, c-format
 msgid "(search path: `%s)'"
 msgstr "(zoekpad: `%s')"
 
-#: beam-engraver.cc:42
-msgid "No Beam to end"
-msgstr "geen Balk te beëidigen"
+#: all-font-metrics.cc:77
+msgid "Giving up"
+msgstr "Geef op"
 
-#: beam-engraver.cc:58
-msgid "No beam to end"
+#: beam-engraver.cc:42 beam-engraver.cc:58
+msgid "no beam to end"
 msgstr "geen balk te beëindigen"
 
 #: beam-engraver.cc:87
@@ -125,78 +133,96 @@ msgid "Already have a Beam"
 msgstr "Heb al een Balk"
 
 #: beam-engraver.cc:149
-msgid "Unfinished beam"
-msgstr "Onbeëindigde balk"
+msgid "unfinished beam"
+msgstr "onbeëindigde balk"
 
 #: beam-engraver.cc:174
-msgid "Stem must have Rhythmic structure."
-msgstr "Stok moet Ritmische structuur hebben."
+msgid "Stem must have Rhythmic structure"
+msgstr "Stok moet Ritmische structuur hebben"
 
 #: beam-engraver.cc:185
-msgid "stem doesn't fit in beam"
-msgstr "stok past niet in balk"
+msgid "Stem doesn't fit in beam"
+msgstr "Stok past niet in balk"
 
 #: beam-engraver.cc:186
-msgid "beam was started here"
-msgstr "balk is hier gestart"
+msgid "Beam was started here"
+msgstr "Balk werd hier gestart"
 
 #: beam.cc:147
 msgid "beam with less than two stems"
 msgstr "balk met minder dan twee stokken"
 
 #: beam.cc:312
-msgid "weird beam shift, check your knees"
-msgstr "vreemde balk verplaatsing, controleer balken"
+msgid "weird beam vertical offset"
+msgstr "rare verticale balk verplaatsing"
 
-#: break-algorithm.cc:25
+#: break-algorithm.cc:28
 msgid "0 lines"
 msgstr "0 regels"
 
-#: break-algorithm.cc:27
+#: break-algorithm.cc:30
 #, c-format
 msgid "1 line (of %.0f columns)"
 msgstr "1 regel (van %.0f kolommen)"
 
-#: break-algorithm.cc:29
+#: break-algorithm.cc:32
 #, c-format
 msgid "%d lines (with an average of %.1f columns)"
 msgstr "%d regels (van gemiddeld %.1f kolommen)"
 
-#: break-algorithm.cc:148
-msgid "score does not have any columns"
-msgstr "partituur heeft geen enkele kolom"
+#: break-algorithm.cc:155
+msgid "Score does not have any columns"
+msgstr "Partituur heeft geen enkele kolom"
 
-#: break-algorithm.cc:165
+#: break-algorithm.cc:172
 #, c-format
 msgid "approximated %s"
 msgstr "geschat: %s"
 
-#: break-algorithm.cc:167
+#: break-algorithm.cc:174
 #, c-format
 msgid "calculated %s exactly"
 msgstr "exact berekend: %s"
 
-#: break-algorithm.cc:168
+#: break-algorithm.cc:175
 #, c-format
 msgid "elapsed time %.2f seconds"
 msgstr "duur: %.2f seconden"
 
 #: change-iterator.cc:22
 #, c-format
-msgid "can't change `%s' to `%s'"
-msgstr "kan `%s' niet in `%s' veranderen"
+msgid "Can't change `%s' to `%s'"
+msgstr "Kan `%s' niet in `%s' veranderen"
+
+#: change-iterator.cc:57
+msgid "Can't switch translators, I'm there already"
+msgstr "Kan niet wisselen van vertaler, ben al hier"
+
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_  = change_l ()->change_to_id_str_;
+#.
+#: change-iterator.cc:76
+msgid "I'm one myself"
+msgstr "Ben er zelf een"
+
+#: change-iterator.cc:79
+msgid "none of these in my family"
+msgstr "geen van deze in mijn gezin"
 
 #: chord-tremolo-engraver.cc:41 chord-tremolo-engraver.cc:58
-msgid "No abbreviation beam to end"
-msgstr "Geen tremolo balk te beëindigen"
+msgid "no tremolo beam to end"
+msgstr "geen tremolo balk te beëindigen"
 
 #: chord-tremolo-engraver.cc:83
-msgid "Already have an abbreviation beam"
+msgid "Already have a tremolo beam"
 msgstr "Heb al een tremolo balk"
 
 #: chord-tremolo-engraver.cc:124
-msgid "Unfinished abbreviation beam"
-msgstr "Onbeëindigde tremolo balk"
+msgid "unfinished tremolo beam"
+msgstr "onbeëindigde tremolo balk"
 
 #: chord.cc:231
 #, c-format
@@ -206,11 +232,11 @@ msgstr "ongeldige aftrek: maakt geen deel uit van accoord: %s"
 #: chord.cc:245
 #, c-format
 msgid "invalid inversion pitch: not part of chord: %s"
-msgstr "ongeldige inversie toon: maakt geen deel uit van accoord: %s"
+msgstr "ongeldige inversie toon: geen onderdeel van accoord: %s"
 
 #: clef-engraver.cc:178
-msgid "unknown clef type "
-msgstr "onbekend type sleutel "
+msgid "unknown clef type"
+msgstr "onbekend type sleutel"
 
 #: collision.cc:95
 msgid "Too many clashing notecolumns.  Ignoring them."
@@ -218,31 +244,31 @@ msgstr "Te veel botsende nootkolommen.  Negeer ze."
 
 #: crescendo.cc:42
 msgid "crescendo"
-msgstr ""
+msgstr "crescendo"
 
 #: crescendo.cc:42
 msgid "too small"
 msgstr "te klein"
 
 #: debug.cc:56
-msgid "Floating point exception"
-msgstr "Drijvende komma uitzondering"
+msgid "floating point exception"
+msgstr "frijvende komma uitzondering"
 
 #: debug.cc:139
-msgid "can't set mem-checking"
-msgstr "kan geheugen controle niet zetten"
+msgid "Can't set mem-checking!"
+msgstr "Kan geheugen controle niet zetten!"
 
 #: dimensions.cc:13
 msgid "NaN"
 msgstr "NaN"
 
 #: dynamic-engraver.cc:109
-msgid "Got a dynamic already.  Continuing dazed and confused"
+msgid "Got a dynamic already.  Continuing dazed and confused."
 msgstr "Heb al een dynamiek.  Ga verder, verstrooid en verward"
 
 #: dynamic-engraver.cc:162
-msgid "can't find (de)crescendo to end"
-msgstr "kan te beëindigen (de)crescendo niet vinden"
+msgid "Can't find (de)crescendo to end"
+msgstr "Kan te beëindigen (de)crescendo niet vinden"
 
 #: dynamic-engraver.cc:216
 msgid "Too many crescendi here"
@@ -260,20 +286,25 @@ msgstr "Boogje over rust?"
 msgid ""
 "minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"
 msgstr ""
-"minVerticalAlign != maxVerticalAlign: balken/boogjes tussen notenbalken "
-"kunnen breken"
+"minVerticalAlign != maxVerticalAlign: balken/bindingsbogen tussen "
+"notenbalken kunnen breken"
 
 #: extender-engraver.cc:62
 msgid "unterminated extender"
 msgstr "onbeëindigde extender"
 
+#: extender-engraver.cc:74
+msgid "Nothing to connect extender to on the left.  Ignoring extender request."
+msgstr ""
+"Niets om extender aan linkerkant aan vast te maken.  Negeer extender verzoek."
+
 #: folded-repeat-iterator.cc:64
-msgid "No one to print a repeat brace"
-msgstr "Niemand om een herhalings haak af te drukken"
+msgid "no one to print a repeat brace"
+msgstr "niemand om een herhalings haak af te drukken"
 
 #: grace-iterator.cc:43
-msgid "No Grace context available!"
-msgstr "Geen Grace context voor handen"
+msgid "no Grace context available"
+msgstr "geen Grace context voor handen"
 
 #: grace-position-engraver.cc:89
 msgid "Unattached grace notes.  Attaching to last musical column."
@@ -283,22 +314,24 @@ msgstr "Losse grace noten.  Maak ze vast aan vorige muziekale kolom."
 msgid "unterminated hyphen"
 msgstr "onafgesloten balk"
 
-#: identifier.cc:46
-msgid "Wrong identifier type: "
-msgstr "Verkeerd type identifier: "
+#: hyphen-engraver.cc:72
+msgid "Nothing to connect hyphen to on the left.  Ignoring hyphen request."
+msgstr ""
+"Niets om streepje aan linkerkant aan vast te maken.  Negeer streepje verzoek."
 
-#: identifier.cc:47
+#: identifier.cc:46
 #, c-format
-msgid "%s expected"
-msgstr "%s verwacht"
+msgid "wrong identifier type, expected: `%s'"
+msgstr "Verkeerd type identifier: "
 
 #: includable-lexer.cc:47 lily-guile.cc:82 lily-guile.cc:105
 #: midi-score-parser.cc:24 scores.cc:108 scores.cc:114
 #, c-format
-msgid "can't find file: `%s'"
-msgstr "kan bestand niet vinden: `%s'"
+msgid "Can't find file: `%s'"
+msgstr "Kan bestand niet vinden: `%s'"
 
 #: includable-lexer.cc:49 lookup.cc:104 scores.cc:109
+#, c-format
 msgid "(search path: `%s')"
 msgstr "(zoekpad: `%s')"
 
@@ -308,37 +341,58 @@ msgid "Ineq_constrained_qp::solve (): Constraint off by %f"
 msgstr "Ineq_constrained_qp::solve (): voorwaarde zit er %f naast"
 
 #: ineq-constrained-qp.cc:233
-msgid "didn't converge!"
-msgstr "convergeerde niet!"
+msgid "Didn't converge!"
+msgstr "Convergeerde niet!"
 
 #: ineq-constrained-qp.cc:235
-msgid "Too much degeneracy. "
-msgstr "Te veel degenaratie. "
+msgid "too much degeneracy"
+msgstr "te veel degenaratie"
 
 #: key-def.cc:31
-msgid "No key name: assuming `C'"
-msgstr "Geen toonsoort: ga uit van `C'"
+msgid "No key name, assuming `C'"
+msgstr "Geen toonsoort, ga uit van `C'"
 
 #: key-def.cc:92
-msgid "don't know how handle empty keys"
-msgstr "weet niet hoe lege toonsoorten te behandelen"
+msgid "Don't know how handle empty keys"
+msgstr "Weet niet hoe lege toonsoorten te behandelen"
+
+#: key-engraver.cc:70 key-performer.cc:65
+msgid "FIXME: key change merge"
+msgstr "MAAKME: toonsoort sleutel samenvoeging"
+
+#: key.cc:54 key.cc:59
+#, c-format
+msgid "Don't have that many octaves (%s)"
+msgstr "Zoveel oktaven heb ik niet (%s)"
+
+#: key.cc:77
+#, c-format
+msgid "underdone accidentals (%s)"
+msgstr "onderdreven aantal kruizen/mollen (%s)"
+
+#: key.cc:82
+#, c-format
+msgid "overdone accidentals (%s)"
+msgstr "overdreven aantal kruizen/mollen (%s)"
 
 #: lily-guile.cc:84 lily-guile.cc:107
 #, c-format
 msgid "(load path: `%s')"
 msgstr "(zoekpad: `%s')"
 
-#: local-key-engraver.cc:42
-msgid "out of tune"
-msgstr "vals"
+#: line-of-score.cc:91
+msgid "Huh?  Empty Line_of_score?"
+msgstr "Huh?  Lege Line_of_score?"
 
-#: local-key-engraver.cc:42 time-signature-engraver.cc:28
-msgid "can't find"
-msgstr "kan niet vinden"
+#: local-key-engraver.cc:42
+msgid "out of tune:"
+msgstr "vals:"
 
-#: lookup.cc:103
-msgid "can't find font: `%s'"
-msgstr "kan font niet vinden: `%s'"
+#: local-key-engraver.cc:43 time-signature-engraver.cc:29
+#: translator-group.cc:437 translator-group.cc:446
+#, c-format
+msgid "Can't find: `%s'"
+msgstr "Kan niet vinden: `%s'"
 
 #: lookup.cc:105
 msgid "Aborting"
@@ -346,41 +400,25 @@ msgstr "Breek af"
 
 #: lookup.cc:436
 #, c-format
-msgid "Non-matching braces in text `%s', adding braces."
-msgstr "Ongepaarde haakjes in tekst `%s', voeg haakje toe."
+msgid "Non-matching braces in text `%s', adding braces"
+msgstr "Ongepaarde haakjes in tekst `%s', voeg haakjes toe"
 
-#: main.cc:68
-msgid "BASENAME"
-msgstr "BASISNAAM"
+#: main.cc:71 main.cc:91
+msgid "enable debugging output"
+msgstr "maak ontluis uitvoer mogelijk"
 
-#: main.cc:68
-msgid "write output to BASENAME[-x].extension"
-msgstr "schrijf uitvoer naar BASISNAME[-x].extensie"
+#: main.cc:72
+msgid "EXT"
+msgstr "EXT"
 
-#: main.cc:69 main.cc:101
-msgid "show warranty and copyright"
-msgstr "toon garantie en copyright"
+#: main.cc:72
+msgid "use output format EXT"
+msgstr "gebruik uitvoer formaat EXT"
 
-#: main.cc:70 main.cc:92
+#: main.cc:73 main.cc:92
 msgid "this help"
 msgstr "deze hulp"
 
-#: main.cc:71
-msgid "switch on experimental features"
-msgstr "zet experimentele kunstjes aan"
-
-#: main.cc:72 main.cc:91
-msgid "enable debugging output"
-msgstr "toon ontluis berichten"
-
-#: main.cc:73 main.cc:95
-msgid "FILE"
-msgstr "BESTAND"
-
-#: main.cc:73
-msgid "use FILE as init file"
-msgstr "gebruik BESTAND als initialisatiebestand"
-
 #: main.cc:74
 msgid "DIR"
 msgstr "DIR"
@@ -389,64 +427,83 @@ msgstr "DIR"
 msgid "add DIR to search path"
 msgstr "voeg DIR toe aan zoekpad"
 
+#: main.cc:75 main.cc:95
+msgid "FILE"
+msgstr "BESTAND"
+
 #: main.cc:75
-msgid "produce midi output only"
-msgstr "produceer alleen midi uitvoer"
+msgid "use FILE as init file"
+msgstr "gebruik BESTAND als initialisatiebestand"
 
 #: main.cc:76
 msgid "write Makefile dependencies for every input file"
 msgstr "schrijf Makefile afhankelijkheden voor elk invoerbestand"
 
-#: main.cc:77 main.cc:99
-msgid "don't timestamp the output"
-msgstr "geen tijdstempel in de uitvoer"
+#: main.cc:77
+msgid "produce MIDI output only"
+msgstr "produceer alleen MIDI uitvoer"
+
+#: main.cc:78
+msgid "BASENAME"
+msgstr "BASISNAAM"
 
 #: main.cc:78
+msgid "write output to BASENAME[-x].extension"
+msgstr "schrijf uitvoer naar BASISNAAM[-x].extensie"
+
+#: main.cc:79
 msgid "show all changes in relative syntax"
 msgstr "toon veranderingen voor relatieve mode"
 
-#: main.cc:79
-msgid "ignore mudela version"
-msgstr "verkeerde mudela versie: %s (%s, %s)"
+#: main.cc:80
+msgid "inhibit file output naming and exporting"
+msgstr "verbied naamgeving van uitvoer bestand en exportering"
 
-#: main.cc:80 main.cc:103
-msgid "print version number"
-msgstr "toon versienummer"
+#: main.cc:81 main.cc:99
+msgid "don't timestamp the output"
+msgstr "geen tijdstempel in de uitvoer"
 
-#: main.cc:81
-msgid "EXT"
-msgstr "EXT"
+#: main.cc:82
+msgid "switch on experimental features"
+msgstr "zet experimentele kunstjes aan"
 
-#: main.cc:81
-msgid "use output format EXT"
-msgstr "gebruik uitvoer formaat EXT"
+#: main.cc:83
+msgid "ignore mudela version"
+msgstr "negeer mudela versie"
 
-#: main.cc:82
-msgid "inhibit file output naming and exporting"
-msgstr "verbiedt naamgeving van uitvoer bestand en TeX macro's"
+#: main.cc:84 main.cc:100
+msgid "print version number"
+msgstr "druk versienummer af"
+
+#: main.cc:85 main.cc:102
+msgid "show warranty and copyright"
+msgstr "toon garantie en copyright"
 
-#: main.cc:89
+#: main.cc:92
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "Gebruik: %s [OPTIE]... [BESTAND]..."
 
-#: main.cc:91
-msgid "Typeset music and or play MIDI from FILE."
-msgstr "Zet muziek en of speel MIDI van FILE of <stdin>"
+#: main.cc:94
+msgid "Typeset music and or play MIDI from FILE"
+msgstr "Zet muziek en of speel MIDI van BESTAND"
 
-#: main.cc:97 main.cc:115
+#: main.cc:100 main.cc:115
 msgid "Options:"
 msgstr "Opties:"
 
-#: main.cc:101
+#: main.cc:104
 msgid "This binary was compiled with the following options:"
 msgstr "Dit programma is vertaald met de volgende instellingen:"
 
-#: main.cc:119
-msgid "Report bugs to"
-msgstr "Rapporteer bugs naar"
+#: main.cc:119 main.cc:123
+#, c-format
+msgid "Report bugs to %s"
+msgstr ""
+"Meld luizen in het programma aan %s;\n"
+"meld onjuistheden in de vertaling aan <janneke@gnu.org> of <hanwen@cs.uu.nl>"
 
-#: main.cc:52 main.cc:135
+#: main.cc:52 main.cc:137
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -458,17 +515,17 @@ msgstr ""
 "onder bepaalde voorwaarden.  Roep aan als `%s --warranty' voor meer\n"
 "informatie.\n"
 
-#: main.cc:59 main.cc:142 main.cc:154
+#: main.cc:59 main.cc:144 main.cc:156
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s "
 
 #. GNU GNU?
-#: main.cc:152
+#: main.cc:154
 msgid "GNU LilyPond -- The GNU Project music typesetter"
 msgstr "GNU LilyPond -- De Muziekzetter van het GNU Project"
 
-#: main.cc:68 main.cc:160
+#: main.cc:68 main.cc:162
 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"
@@ -500,8 +557,8 @@ msgstr ""
 
 #: midi-item.cc:303
 #, c-format
-msgid "No such instrument: `%s'"
-msgstr "Geen zulks instrument: `%s'"
+msgid "no such instrument: `%s'"
+msgstr "geen dergelijk instrument: `%s'"
 
 #: midi-item.cc:357
 #, c-format
@@ -517,44 +574,49 @@ msgid "silly pitch"
 msgstr "rare toonhoogte"
 
 #: midi-stream.cc:29 paper-stream.cc:36
-msgid "error syncing file (disk full?)"
-msgstr "fout by synchroniseren van bestand (disk vol?)"
+msgid "Error syncing file (disk full?)"
+msgstr "Fout by synchroniseren van bestand (disk vol?)"
 
 #: music-output-def.cc:56
 msgid "Interpretation context with empty type"
-msgstr "Vertaal context met leeg type"
+msgstr "Vertolk context met leeg type"
 
 #: music-output-def.cc:83
-msgid "can't find Score context"
-msgstr "kan Score context niet vinden"
+#, c-format
+msgid "Can't find `%s' context"
+msgstr "Kan `%s' context niet vinden"
 
 #: musical-request.cc:42
 #, c-format
-msgid "transposition by %s makes accidental larger than two"
-msgstr "transpositie van %s geeft tripel kruizen/mollen  "
+msgid "Transposition by %s makes accidental larger than two"
+msgstr "Transponering van %s geeft tripel kruizen/mollen"
 
 #: my-lily-lexer.cc:137
 #, c-format
 msgid "redeclaration of `\\%s'"
-msgstr "`\\%s' wordt opnieuw gedeclareerd"
+msgstr "`herdeclaratie van `\\%s'"
 
 #: my-lily-lexer.cc:143
 #, c-format
-msgid "Identifier name is a keyword (`%s')"
-msgstr "Identifier naam is een sleutelwoord (`%s')"
+msgid "Identifier name is a keyword: `%s'"
+msgstr "Identifier naam is een sleutelwoord: `%s'"
 
 #: my-lily-lexer.cc:172
 #, c-format
 msgid "error at EOF: %s"
 msgstr "fout bij EOF: %s"
 
-#: my-lily-parser.cc:60
+#: midi-score-parser.cc:94 my-lily-parser.cc:60
 msgid "Parsing..."
 msgstr "Ontleden..."
 
 #: my-lily-parser.cc:69
-msgid "braces don't match"
-msgstr "haakjes paren niet"
+msgid "Braces don't match"
+msgstr "Haakjes paren niet"
+
+#: p-col.cc:48
+msgid "Must set spring between differing columns"
+msgstr "Moet veertje zetten tussen verschillende kolommen"
 
 #: paper-def.cc:95
 #, c-format
@@ -567,25 +629,25 @@ msgstr "niet een re
 
 #. for now; breaks -fscm output
 #: paper-def.cc:251
-msgid "outputting Score, defined at: "
-msgstr "uitvoer Score, gedefinieerd op: "
+msgid "Outputting Score, defined at: "
+msgstr "Uitvoer van Score, gedefinieerd op: "
 
 #: paper-def.cc:280
 #, c-format
-msgid "Paper output to %s..."
-msgstr "Papier uitvoer naar %s..."
+msgid "paper output to %s..."
+msgstr "papier uitvoer naar %s..."
 
-#: mudela-stream.cc:85 paper-outputter.cc:76 performance.cc:97
+#: mudela-stream.cc:86 paper-outputter.cc:76 performance.cc:97
 msgid ", at "
 msgstr ", bij "
 
 #: paper-outputter.cc:130
 #, c-format
-msgid "Improbable offset for object type `%s'"
-msgstr "Onwaarschijnlijke verschuiving voor object type `%s'"
+msgid "improbable offset for object type: `%s'"
+msgstr "onwaarschijnlijke verschuiving voor object type: `%s'"
 
 #: paper-score.cc:131
-msgid "Can't solve this casting problem exactly; revert to Word_wrap"
+msgid "Can't solve this casting problem exactly; reverting to Word_wrap"
 msgstr "Kan breekprobleem niet exact oplossen; verval naar Word_wrap"
 
 #: paper-score.cc:156
@@ -597,8 +659,9 @@ msgid "Calculating column positions..."
 msgstr "Berekenen van kolomposities..."
 
 #: paper-score.cc:179
-msgid " elements. "
-msgstr " elementen. "
+#, c-format
+msgid "%s elements"
+msgstr "%s elementen"
 
 #: paper-score.cc:182
 msgid "Line ... "
@@ -631,10 +694,14 @@ msgstr "MIDI uitvoer naar %s..."
 msgid "degenerate constraints"
 msgstr "voorwaarde is gedegenerederd"
 
+#: repeat-engraver.cc:177
+msgid "No bar engraver found.  Ignoring repeats."
+msgstr "Geen bar engraver gevonden.  Negeer herhalingen."
+
 #: request-chord-iterator.cc:73
 #, c-format
-msgid "junking request: `%s'"
-msgstr "schroot verzoek: `%s'"
+msgid "Junking request: `%s'"
+msgstr "Schroot verzoek: `%s'"
 
 #: request-chord-iterator.cc:76
 #, c-format
@@ -642,17 +709,17 @@ msgid "Huh?  Not a Request: `%s'"
 msgstr "Huh?  Geen Request: `%s'"
 
 #: rest-collision.cc:64
-msgid "Too many colliding rests."
-msgstr "Te veer botsende rusten."
+msgid "too many colliding rests"
+msgstr "te veel botsende rusten"
 
 #: rest-collision.cc:68
-msgid "Too many notes for rest collision."
-msgstr "Te veel noten voor bosting met rusten."
+msgid "too many notes for rest collision"
+msgstr "te veel noten voor bosting met rusten"
 
 #: score-engraver.cc:149
 #, c-format
-msgid "Unbound spanner `%s'"
-msgstr "Vrijgezelle spanner `%s'"
+msgid "unbound spanner `%s'"
+msgstr "ongebonden spanner `%s'"
 
 #: score.cc:56
 msgid "no toplevel translator"
@@ -663,146 +730,153 @@ msgid "Interpreting music..."
 msgstr "Vertolken van muziek..."
 
 #: score.cc:70
-msgid "need music in a score"
-msgstr "zonder muziek geen partituur"
+msgid "Need music in a score"
+msgstr "Heb muziek nodig in een partituur"
 
 #. should we? hampers debugging.
 #: score.cc:83
-msgid "errors found, /*not processing score*/"
-msgstr "fouten gevonden, /*verwerk partituur niet */"
+msgid "Errors found/*, not processing score*/"
+msgstr "Fouten gevonden, /*verwerk partituur niet */"
 
 #: score.cc:88
 #, c-format
-msgid "time: %.2f seconds"
+msgid "elapsed time: %.2f seconds"
 msgstr "duur: %.2f seconden"
 
 #: scores.cc:35
 #, c-format
-msgid "writing dependency file: `%s'..."
-msgstr "schijven van afhankelijkheden bestand: `%s'..."
+msgid "Writing dependency file: `%s'..."
+msgstr "Schijven van afhankelijkheden bestand: `%s'..."
 
 #: scores.cc:79
-msgid "score contains errors; will not process it"
-msgstr "partituur bevat fouten; zal hem niet verwerken"
+msgid "Score contains errors; will not process it"
+msgstr "Partituur bevat fouten; zal hem niet verwerken"
 
 #: script-engraver.cc:49
 #, c-format
-msgid "don't know how to interpret articulation `%s'\n"
-msgstr ""
+msgid "Don't know how to interpret articulation `%s'"
+msgstr "Weet niet hoe articulatie te vertolken `%s'"
+
+#: sequential-music-iterator.cc:82
+msgid "Must stop before this music ends"
+msgstr "Moet stoppen voordat deze muziek ophoudt"
 
 #. this shouldn't happen, but let's continue anyway.
 #: single-malt-grouping-item.cc:43
-msgid "Single_malt_grouping_item: I've been drinking too much"
-msgstr ""
+msgid "Single_malt_grouping_item:  I've been drinking too much"
+msgstr "Single_malt_grouping_item:  Ik heb te veel gedronken"
 
 #: slur-engraver.cc:64
 msgid "unterminated slur"
-msgstr "onbeëindigde boog"
+msgstr "onbeëindigde bindingsboog"
 
 #: slur-engraver.cc:80
 #, c-format
-msgid "can't find both ends of %s"
-msgstr "kan uiteinden van %s niet beide vinden"
+msgid "Can't find both ends of %s"
+msgstr "Kan niet beide uiteinden van %s vinden"
 
 #: slur-engraver.cc:80
 msgid "slur"
-msgstr "boog"
+msgstr "bindingsboog"
 
 #: slur.cc:38
-msgid "Putting slur over rest. Ignoring"
-msgstr ""
-
-#: spacing-spanner.cc:218
-#, c-format
-msgid "can't find a ruling note at %s"
-msgstr ""
-
-#: spacing-spanner.cc:224
-#, c-format
-msgid "no minimum in measure at %s"
-msgstr ""
+msgid "Putting slur over rest.  Ignoring."
+msgstr "Zet bindingsboog over rust.  Negeer."
 
 #: spanner.cc:41
-msgid "left spanpoint is right spanpoint\n"
-msgstr ""
+msgid "Left spanpoint is right spanpoint"
+msgstr "Linker spanpunt is rechter spanpunt"
 
 #: spanner.cc:111
 #, c-format
-msgid "Spanner `%s' with equal left and right spanpoints"
-msgstr ""
+msgid "Spanner `%s' has equal left and right spanpoints"
+msgstr "Spanner `%s' heeft gelijke linker en rechter spanpunten"
+
+#: spanner.cc:143
+msgid "spanner with negative length"
+msgstr "spanner met negatieve lengte"
 
 #: spring-spacer.cc:134
 msgid "I'm too fat; call Oprah"
-msgstr ""
+msgstr "Ben te dik; roep Catherine"
 
-#: spring-spacer.cc:295
-msgid "solution doesn't satisfy constraints"
-msgstr ""
+#: spring-spacer.cc:299
+msgid "Solution doesn't satisfy constraints"
+msgstr "Oplossing voldoet niet aan voorwaarden"
 
-#: spring-spacer.cc:378
+#: spring-spacer.cc:400
 #, c-format
 msgid "Improbable distance: %f point, setting to 10 mm"
-msgstr ""
+msgstr "Onwaarschijnlijke afstand: %f punten, zet op 10 mm"
 
-#: spring-spacer.cc:383
-msgid "Negative distance. Setting to 10 mm"
-msgstr ""
+#: spring-spacer.cc:405
+msgid "Negative distance, setting to 10 mm"
+msgstr "Negatieve afstand, zet op 10 mm"
 
 #: stem-engraver.cc:80
 #, c-format
 msgid "Adding note head to incompatible stem (type = %d)"
-msgstr ""
+msgstr "Voeg noot bolletje toe aan onverenigbare stok (type = %s)"
+
+#: stem.cc:26
+msgid "stem direction set already!"
+msgstr "stokrichting is al gezet!"
 
 #: stem.cc:106
-msgid "weird stem size; check for narrow beams"
-msgstr "vreemde stoklengte; controleer op krappe balken"
+msgid "Weird stem size; check for narrow beams"
+msgstr "Vreemde stoklengte; controleer op krappe balken"
 
 #: tfm-reader.cc:108
 #, c-format
 msgid "TFM header of `%s' has only %u word(s)"
-msgstr ""
+msgstr "TFM kop van `%s' heeft slechts %u woord(en)"
 
 #: tfm-reader.cc:146
 #, c-format
-msgid "%s: TFM file has %u parameters, which is more than the"
+msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
 msgstr ""
+"%s: TFM bestand heeft %u parameters, wat meer is dan de %u die ik aan kan"
 
 #: tfm.cc:64
 #, c-format
-msgid "can't find ascii character `%d'"
-msgstr ""
+msgid "Can't find ascii character: `%d'"
+msgstr "Kan teken niet vinden, genaamd: `%s'"
+
+#: tie-engraver.cc:91
+msgid "unequal number of note heads for tie"
+msgstr "ongelijk aantal notebolletjes voor overbinding"
 
 #: tie-engraver.cc:155 tie-performer.cc:106
 msgid "No ties were created!"
-msgstr ""
+msgstr "Geen overbindingen geschapen!"
 
 #: tie.cc:55
 msgid "lonely tie"
-msgstr ""
+msgstr "eenzame overbinding"
 
 #: time-description.cc:17
 msgid "cadenza"
 msgstr "cadens"
 
 #: time-description.cc:106
-msgid "partial measure must be non-negative"
-msgstr ""
+msgid "Partial measure must be non-negative"
+msgstr "Deelmaat moet niet-negatief zijn"
 
 #: time-description.cc:108
 msgid "partial measure too large"
-msgstr ""
+msgstr "deelmaat te groot"
 
 #: time-scaled-music-iterator.cc:25
-msgid "No one to print a tuplet start bracket"
-msgstr ""
+msgid "no one to print a tuplet start bracket"
+msgstr "niemand om een x-ool start haak af te drukken"
 
 #: time-signature-engraver.cc:28
-msgid "lost in time"
-msgstr "hoe laat is het"
+msgid "lost in time:"
+msgstr "verdwaald in de tijd:"
 
 #: timing-translator.cc:26
 msgid "conflicting timing request"
-msgstr ""
+msgstr "strijdig timing verzoek"
 
 #: timing-translator.cc:62
 msgid "time signature change not allowed here"
@@ -810,58 +884,53 @@ msgstr "maatwisseling is hier niet geoorloofd"
 
 #: timing-translator.cc:83
 #, c-format
-msgid "barcheck failed by: %s"
-msgstr "misplaatste maatstreep: %s"
+msgid "barcheck failed at: %s"
+msgstr "maatstreep controle gefaald op: %s"
 
 #: translator-ctors.cc:39
 #, c-format
-msgid "unknown translator `%s'"
-msgstr ""
+msgid "unknown translator: `%s'"
+msgstr "onbekende papier varanderlijke: `%s'"
+
+#: translator-group.cc:78 translator-group.cc:91
+msgid "Program has no such type"
+msgstr "Programma heeft geen dergelijk type"
 
 #: translator-group.cc:82 translator-group.cc:97
 #, c-format
-msgid "Already contains a `%s'"
-msgstr ""
+msgid "Already contains: `%s'"
+msgstr "Bevat reeds: `%s'"
 
 #: translator-group.cc:207
 #, c-format
-msgid "can't find or create `%s' called `%s'"
-msgstr ""
+msgid "Can't find or create `%s' called `%s'"
+msgstr "Kan niet vinden of scheppen `%s' genaamd `%s'"
 
 #: translator-group.cc:341
 #, c-format
-msgid "can't find or create `%s'"
-msgstr ""
-
-#: translator-group.cc:437 translator-group.cc:446
-#, c-format
-msgid "can't find `%s'"
-msgstr "kan niet vinden `%s'"
+msgid "Can't find or create: `%s'"
+msgstr "Kan niet vinden of scheppen: `%s'"
 
 #: transposed-music.cc:31
 msgid "Will ignore \\relative for transposed music"
 msgstr "Zal \\relative negeren voor getransponeerde muziek"
 
 #: unfolded-repeat-iterator.cc:145
-msgid "No one to print a volta bracket"
-msgstr ""
+msgid "no one to print a volta bracket"
+msgstr "niemand om een volta haak af te drukken"
 
 #: word-wrap.cc:75
-msgid "ugh, this measure is too long"
-msgstr "ugh, deze maat is te lang"
-
-#: word-wrap.cc:76
 #, c-format
-msgid "breakpoint: %d"
-msgstr ""
+msgid "Ugh, this measure is too long, breakpoint: %d"
+msgstr "Ugh, deze maat is te lang, breukpunt: %d"
 
 #: word-wrap.cc:77
-msgid "generating stupido solution"
-msgstr ""
+msgid "Generating stupido solution"
+msgstr "Genereer sullige oplossing"
 
 #: word-wrap.cc:95
 msgid "I don't fit; put me on Montignac"
-msgstr "Ik ben te dik."
+msgstr "Ik ben te dik; zet me op Montignac"
 
 #: parser.yy:55
 #, c-format
@@ -869,74 +938,91 @@ msgid "Oldest supported input version: %s"
 msgstr "Oudst ondersteunde invoer versie: %s"
 
 #: parser.yy:313
-msgid "Cannot evaluate Scheme in safe mode"
-msgstr ""
+msgid "Can't evaluate Scheme in safe mode"
+msgstr "Kan Scheme niet evalueren in veilige modus"
 
 #: parser.yy:433 parser.yy:441 parser.yy:465
 msgid "Need a translator group for a context"
-msgstr ""
+msgstr "Heb een translator groep nodig voor een context"
 
 #: parser.yy:459
 msgid "Wrong type for property value"
-msgstr ""
+msgstr "Verkeerd type voor property waarde"
 
 #: parser.yy:515
 msgid "More than one music block"
+msgstr "Meer dan een muziekblok"
+
+#: parser.yy:575
+msgid "Need even number of args for shape array"
+msgstr "Heb even aantal argumenten nodig voor shape array"
+
+#: parser.yy:723
+msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
+"Meer alternatieven dan herhalingen.  Schroot overvloedige alternatieven."
 
 #: parser.yy:946 parser.yy:1360 parser.yy:1380
 #, c-format
 msgid "not a duration: %d"
-msgstr "is geen duur: %d"
+msgstr "geen duur: %d"
 
 #: parser.yy:948 parser.yy:1382
-msgid "can't abbreviate"
-msgstr ""
+msgid "Can't abbreviate"
+msgstr "Kan niet afkorten"
+
+#: parser.yy:1076
+msgid "Can't specify direction for this request"
+msgstr "Kan richting voor dit verzoek niet specificeren"
 
 #: parser.yy:1211 parser.yy:1219 parser.yy:1444
-msgid "have to be in Lyric mode for lyrics"
-msgstr ""
+msgid "Have to be in Lyric mode for lyrics"
+msgstr "Moet in Lyric modus zijn voor liedteksten"
 
 #: parser.yy:1391
-msgid "have to be in Note mode for notes"
-msgstr ""
+msgid "Have to be in Note mode for notes"
+msgstr "Moet in Note modus zijn voor noten"
 
 #: parser.yy:1403
-msgid "can't abbreviate tuplet"
-msgstr ""
+msgid "Can't abbreviate tuplet"
+msgstr "Kan x-ool niet afkorten"
 
 #: parser.yy:1450
-msgid "have to be in Chord mode for chords"
-msgstr ""
+msgid "Have to be in Chord mode for chords"
+msgstr "Moet in Chord modus zijn voor accoorden"
 
 #: lexer.ll:155
 msgid "EOF found inside a comment"
-msgstr ""
+msgstr "EOF gevonden in een kommentaar"
+
+#: lexer.ll:169
+msgid "\\maininput disallowed outside init files"
+msgstr "\\maininput niet toegestaan buiten init bestanden"
 
 #: lexer.ll:199
 #, c-format
 msgid "undefined identifier: `%s'"
-msgstr ""
+msgstr "ongedefiniëerde idendifier: `%s'"
 
 #. backup rule
 #: lexer.ll:204
-msgid "missing end quote"
-msgstr ""
+msgid "Missing end quote"
+msgstr "Aanhalingsteken sluiten mist"
 
 #. backup rule
 #: lexer.ll:227 lexer.ll:231
 msgid "white expected"
-msgstr ""
+msgstr "wit verwacht"
 
 #: lexer.ll:401
 #, c-format
 msgid "invalid character: `%c'"
-msgstr ""
+msgstr "ongeldig teken: `%c'"
 
 #: lexer.ll:457
 #, c-format
 msgid "unknown escaped string: `\\%s'"
-msgstr ""
+msgstr "onbekende ontsnapte string: `\\%s'"
 
 #: lexer.ll:543
 #, c-format
@@ -967,15 +1053,15 @@ msgstr "zet toonsoort: ACC +kruizen/-mollen; :1 mineur"
 
 #: main.cc:94
 msgid "assume no tuplets or double dots, smallest is 32"
-msgstr "ga niet uit van tuplets of dubbel gepunkteerd, kortste is 32"
+msgstr "ga niet uit van n-olen of dubbel gepunkteerd, kortste is 32"
 
 #: main.cc:95
 msgid "set FILE as default output"
-msgstr "zet BESTAND als verval uitvoer"
+msgstr "zet BESTAND als verstek uitvoer"
 
 #: main.cc:96
 msgid "assume no tuplets"
-msgstr "ga niet uit van tuplets"
+msgstr "ga niet uit van n-olen"
 
 #: main.cc:97
 msgid "be quiet"
@@ -986,14 +1072,14 @@ msgid "DUR"
 msgstr "DUUR"
 
 #: main.cc:98
-msgid "Set smallest duration (?)"
-msgstr "Zet kortste duur (?)"
+msgid "set smallest duration"
+msgstr "zet kortste duur"
 
-#: main.cc:100
+#: main.cc:101
 msgid "be verbose"
 msgstr "wees breedsprakig"
 
-#: main.cc:102
+#: main.cc:103
 msgid "assume no double dotted notes"
 msgstr "ga niet uit van dubbel gepunkteerde noten"
 
@@ -1003,129 +1089,124 @@ msgid "Usage: %s [OPTION]... [FILE]"
 msgstr "Gebruik: %s [OPTIE]... [BESTAND]"
 
 #: main.cc:112
-msgid "Translate midi-file to mudela"
-msgstr "Vertaal midi-bestand naar mudela"
+msgid "Translate MIDI-file to mudela"
+msgstr "Vertaal MIDI-bestand naar mudela"
 
 #: midi-parser.cc:64
 msgid "zero length string encountered"
-msgstr ""
+msgstr "nul-lengte string tegengekomen"
 
 #: midi-score-parser.cc:44
 msgid "MIDI header expected"
-msgstr ""
+msgstr "MIDI kop verwacht"
 
 #: midi-score-parser.cc:49
-msgid "Invalid header length"
-msgstr ""
+msgid "invalid header length"
+msgstr "ongeldige koplengte"
 
 #: midi-score-parser.cc:52
-msgid "Invalid midi format"
-msgstr ""
+msgid "invalid MIDI format"
+msgstr "ongeldig MIDI formaat"
 
 #: midi-score-parser.cc:55
-msgid "Invalid number of tracks"
-msgstr ""
-
-#: midi-score-parser.cc:58
-#, c-format
-msgid "can't handle %s"
-msgstr ""
+msgid "invalid number of tracks"
+msgstr "ongeldig aantal sporen"
 
 #: midi-score-parser.cc:58
-msgid "non-metrical time"
-msgstr ""
-
-#: midi-score-parser.cc:94
-msgid "Parsing...\n"
-msgstr ""
+msgid "Can't handle non-metrical time"
+msgstr "Kan niet-metrische tijd niet aan"
 
 #: midi-track-parser.cc:68
 #, c-format
-msgid "junking note-end event: channel = %d, pitch = %d"
-msgstr ""
+msgid "Junking note-end event: channel = %d, pitch = %d"
+msgstr "Schroot noot-eind gebeurtenis: kanaal = %d, toonhoogte = %d"
 
 #: midi-track-parser.cc:124
 msgid "invalid running status"
-msgstr ""
+msgstr "ongeldige lopende status"
 
 #: midi-track-parser.cc:328
 msgid "unimplemented MIDI meta-event"
-msgstr ""
+msgstr "ongeïmplementeerde MIDI meta-gebeurtenis"
 
 #: midi-track-parser.cc:333
 msgid "invalid MIDI event"
-msgstr ""
+msgstr "ongeldige MIDI gebeurtenis"
 
 #: midi-track-parser.cc:348
 msgid "MIDI track expected"
-msgstr ""
+msgstr "MIDI spoor verwacht"
 
 #: midi-track-parser.cc:353
 msgid "invalid track length"
-msgstr ""
+msgstr "ongeldige spoorlengte"
 
 #: mudela-item.cc:160
 #, c-format
 msgid "#32 in quarter: %d"
-msgstr ""
+msgstr "#32 in kwart: %d"
 
 #: mudela-score.cc:108
 #, c-format
 msgid "Lily output to %s..."
-msgstr ""
+msgstr "Lelie uitvoer naar %s..."
 
-#: mudela-score.cc:119 mudela-score.cc:168
-msgid "track "
-msgstr ""
+#: mudela-score.cc:119
+#, c-format
+msgid "track %d:"
+msgstr "spoor %d:"
 
 #: mudela-score.cc:155
 msgid "Processing..."
-msgstr ""
+msgstr "Verwerken..."
 
 #: mudela-score.cc:164
 msgid "Creating voices..."
-msgstr ""
+msgstr "Scheppen van stemmen..."
+
+#: mudela-score.cc:168
+msgid "track "
+msgstr "spoor "
 
 #: mudela-score.cc:177
 msgid "NOT Filtering tempo..."
-msgstr ""
+msgstr "NIET Filteren van tempo..."
 
 #: mudela-score.cc:186
 msgid "NOT Quantifying columns..."
-msgstr ""
+msgstr "NIET Kwantificeren van kolommen..."
 
 #: mudela-score.cc:190
 msgid "Quantifying columns..."
-msgstr ""
+msgstr "Kwantificeren van kolommen..."
 
 #: mudela-score.cc:223
 msgid "Settling columns..."
-msgstr ""
+msgstr "Zetten van kolommen..."
 
-#: mudela-staff.cc:111
-#, c-format
-msgid "% midi copyright:"
-msgstr ""
+#: mudela-staff.cc:177
+msgid "% MIDI copyright:"
+msgstr "% MIDI copyright:"
 
-#: mudela-staff.cc:112
-#, c-format
-msgid "% instrument:"
-msgstr ""
+#: mudela-staff.cc:178
+msgid "% MIDI instrument:"
+msgstr "% MIDI instrument:"
 
 #: mudela-stream.cc:37
 #, c-format
 msgid "lily indent level: %d"
-msgstr ""
+msgstr "lelie inspring diepte: %d"
 
-#: mudela-stream.cc:75
+#. Maybe better not to translate these?
+#: mudela-stream.cc:76
 msgid "% Creator: "
-msgstr ""
+msgstr "% Schepper: "
 
-#: mudela-stream.cc:80
+#: mudela-stream.cc:81
 msgid "% Automatically generated"
-msgstr ""
+msgstr "% Automatisch gegenereerd"
 
-#: mudela-stream.cc:89
+#: mudela-stream.cc:90
 #, c-format
 msgid "% from input file: "
-msgstr ""
+msgstr "% van invoerbestand: "