gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/dlist.h server/sprite_in...


From: John Gilmore
Subject: [Gnash-commit] gnash ChangeLog server/dlist.h server/sprite_in...
Date: Wed, 18 Apr 2007 11:00:30 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     John Gilmore <jgilmore> 07/04/18 11:00:30

Modified files:
        .              : ChangeLog 
        server         : dlist.h sprite_instance.cpp text.cpp 
                         textformat.cpp video_stream_instance.cpp 
        server/asobj   : Camera.cpp Color.cpp ContextMenu.cpp 
                         CustomActions.cpp Date.cpp Error.cpp Global.cpp 
                         Key.cpp LoadVars.cpp LocalConnection.cpp 
                         Microphone.cpp Mouse.cpp MovieClipLoader.cpp 
                         NetConnection.cpp NetStream.cpp 
                         NetStreamFfmpeg.cpp NetStreamGst.cpp Number.cpp 
                         Object.cpp Selection.cpp SharedObject.cpp 

Log message:
        * Internationalization, phase 2.
        
        * These modules have had their printed messages passed through
          _(...).  Those messages have also been cleaned up, thusly:
            *  Stray \n's removed
            *  Exclamation points and periods removed at ends of messages
            *  Typos corrected, and English language wording adjusted.
            *  Misplaced UPPER CASE shouting removed.
            *  Many complaints about unknown types, values, etc, now include
               the offending value, for ease of remote diagnosis.
            *  C++-style << printouts converted to log_xxx calls.
            *  Direct accesses to dbglogfile converted to log_xxx calls.
            *  Function name debug prints converted to GNASH_REPORT_FUNCTION.
          These changes should also make the messages easier to translate.
        * Commented-out messages were also cleaned up as above.
        * Many modules have also had log_warning calls changed to log_msg,
          log_error, log_aserror, log_swferror, or log_unimp, according to
          the documentation checked in earlier by strk and gnu.
          IF_VERBOSE_xxx macros were inserted around some calls that
          lacked them.
        * Header comments (at the top of the file) added or adjusted, to
          describe each file in its initial line, and to correct whitespace
          in the copyright notices.
        
        * The list of files affected by the above changes:
          server/dlist.h
          server/sprite_instance.cpp
          server/text.cpp
          server/textformat.cpp
          server/video_stream_instance.cpp
          server/asobj/Camera.cpp
          server/asobj/Color.cpp
          server/asobj/ContextMenu.cpp
          server/asobj/CustomActions.cpp
          server/asobj/Date.cpp
          server/asobj/Error.cpp
          server/asobj/Global.cpp
          server/asobj/Key.cpp
          server/asobj/LoadVars.cpp
          server/asobj/LocalConnection.cpp
          server/asobj/Microphone.cpp
          server/asobj/Mouse.cpp
          server/asobj/MovieClipLoader.cpp
          server/asobj/NetConnection.cpp
          server/asobj/NetStream.cpp
          server/asobj/NetStreamFfmpeg.cpp
          server/asobj/NetStreamGst.cpp
          server/asobj/Number.cpp
          server/asobj/Object.cpp
          server/asobj/Selection.cpp
          server/asobj/SharedObject.cpp
        
        * New 2006, 2007 Free Software Foundation copyrights applied (to
          formerly public domain code):
          server/text.cpp
         
        * server/dlist.{h,cpp}:  Change API of DisplayList::dump debug
          function, so it can use log_xxx functions.
        * server/sprite_instance.cpp (sprite_attach_movie):  Comment out
          log_msg about initializing properties.
        
        I'm sure that I've missed some messages that ought to get 
        translated (with _(...)).  Those will be fixed over time.
        All new messages should be created with _(...) so they can
        be translated.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2905&r2=1.2906
http://cvs.savannah.gnu.org/viewcvs/gnash/server/dlist.h?cvsroot=gnash&r1=1.34&r2=1.35
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.245&r2=1.246
http://cvs.savannah.gnu.org/viewcvs/gnash/server/text.cpp?cvsroot=gnash&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/gnash/server/textformat.cpp?cvsroot=gnash&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/gnash/server/video_stream_instance.cpp?cvsroot=gnash&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Camera.cpp?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Color.cpp?cvsroot=gnash&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/ContextMenu.cpp?cvsroot=gnash&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/CustomActions.cpp?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Date.cpp?cvsroot=gnash&r1=1.40&r2=1.41
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Error.cpp?cvsroot=gnash&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Global.cpp?cvsroot=gnash&r1=1.58&r2=1.59
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Key.cpp?cvsroot=gnash&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/LoadVars.cpp?cvsroot=gnash&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/LocalConnection.cpp?cvsroot=gnash&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Microphone.cpp?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Mouse.cpp?cvsroot=gnash&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/MovieClipLoader.cpp?cvsroot=gnash&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetConnection.cpp?cvsroot=gnash&r1=1.37&r2=1.38
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStream.cpp?cvsroot=gnash&r1=1.36&r2=1.37
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStreamFfmpeg.cpp?cvsroot=gnash&r1=1.37&r2=1.38
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStreamGst.cpp?cvsroot=gnash&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Number.cpp?cvsroot=gnash&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Object.cpp?cvsroot=gnash&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Selection.cpp?cvsroot=gnash&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/SharedObject.cpp?cvsroot=gnash&r1=1.8&r2=1.9

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2905
retrieving revision 1.2906
diff -u -b -r1.2905 -r1.2906
--- ChangeLog   18 Apr 2007 09:35:41 -0000      1.2905
+++ ChangeLog   18 Apr 2007 11:00:29 -0000      1.2906
@@ -1,4 +1,4 @@
-2007-04-18  John Gilmore  <address@hidden>
+2007-04-18  John Gilmore  <address@hidden>
 
        * Internationalization, phase 2.
        
@@ -12,9 +12,10 @@
               the offending value, for ease of remote diagnosis.
            *  C++-style << printouts converted to log_xxx calls.
            *  Direct accesses to dbglogfile converted to log_xxx calls.
+           *  Function name debug prints converted to GNASH_REPORT_FUNCTION.
          These changes should also make the messages easier to translate.
        * Commented-out messages were also cleaned up as above.
-       * Many modules have also had log_warning calls changed to
+       * Many modules have also had log_warning calls changed to log_msg,
          log_error, log_aserror, log_swferror, or log_unimp, according to
          the documentation checked in earlier by strk and gnu.
          IF_VERBOSE_xxx macros were inserted around some calls that
@@ -41,11 +42,37 @@
          server/button_character_instance.cpp
          server/character.cpp
          server/dlist.cpp
+         server/dlist.h
          server/edit_text_character.cpp
          server/fill_style.cpp
          server/font.cpp
          server/generic_character.cpp
          server/impl.cpp
+         server/sprite_instance.cpp
+         server/text.cpp
+         server/textformat.cpp
+         server/video_stream_instance.cpp
+         server/asobj/Camera.cpp
+         server/asobj/Color.cpp
+         server/asobj/ContextMenu.cpp
+         server/asobj/CustomActions.cpp
+         server/asobj/Date.cpp
+         server/asobj/Error.cpp
+         server/asobj/Global.cpp
+         server/asobj/Key.cpp
+         server/asobj/LoadVars.cpp
+         server/asobj/LocalConnection.cpp
+         server/asobj/Microphone.cpp
+         server/asobj/Mouse.cpp
+         server/asobj/MovieClipLoader.cpp
+         server/asobj/NetConnection.cpp
+         server/asobj/NetStream.cpp
+         server/asobj/NetStreamFfmpeg.cpp
+         server/asobj/NetStreamGst.cpp
+         server/asobj/Number.cpp
+         server/asobj/Object.cpp
+         server/asobj/Selection.cpp
+         server/asobj/SharedObject.cpp
          
        * 2007 copyright notices were inserted in:
          backend/sound_handler_sdl.cpp
@@ -58,6 +85,7 @@
        * New 2006, 2007 Free Software Foundation copyrights applied (to
          formerly public domain code):
          server/font.cpp
+         server/text.cpp
         
        * backend/sound_handler_sdl.cpp: Move stray FORMAT_VORBIS comment.
        * gui/gui.cpp: Commented out "Resize request when no movie" error
@@ -68,6 +96,8 @@
          c_str accessor when converting string to number.
        * server/dlist.{h,cpp}:  Change API of DisplayList::dump debug
          function, so it can use log_xxx functions.
+       * server/sprite_instance.cpp (sprite_attach_movie):  Comment out
+         log_msg about initializing properties.
        
        I'm sure that I've missed some messages that ought to get 
        translated (with _(...)).  Those will be fixed over time.
@@ -190,7 +220,7 @@
          any path-looking string is necessarely a path, it can still be
          a floating number or a frame label.
 
-2007-04-16  John Gilmore  <address@hidden>
+2007-04-16  John Gilmore  <address@hidden>
 
        * libbase/log.h: Update documentation for log_* functions; rename
          log_warning to log_unimpl (with temporary #define for a few days);
@@ -1997,7 +2027,7 @@
        * server/sprite_instance.cpp (get_text_value): remove the trailing
          dot from name of top-level movies.
 
-2007-03-12  John Gilmore  <address@hidden>
+2007-03-12  John Gilmore  <address@hidden>
 
        * configure.ac:  Suggest agg-2.5 rather than 2.4 if
        agg_gradient_lut.h is missing.

Index: server/dlist.h
===================================================================
RCS file: /sources/gnash/gnash/server/dlist.h,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- server/dlist.h      12 Apr 2007 05:37:33 -0000      1.34
+++ server/dlist.h      18 Apr 2007 11:00:29 -0000      1.35
@@ -1,3 +1,4 @@
+// dlist.h:  Display list definitions, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,19 +11,15 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
-// 
-//
-
-
 
 #ifndef GNASH_DLIST_H
 #define GNASH_DLIST_H
 
-
 #include "container.h"
 #include "types.h"
 #include "impl.h"
@@ -45,7 +42,7 @@
 //
 /// Any sprite_instance has an associated DisplayList
 /// that may change from frame to frame due to control
-/// tags instructing when to add or remove characthers
+/// tags instructing when to add or remove characters
 /// from the stage.
 ///
 class DisplayList {
@@ -280,8 +277,8 @@
        template <class V>
        inline void visitAll(V& visitor);
 
-       /// dump list to given output stream (debugging)
-       void dump(std::ostream& os) const;
+       /// dump list to logfile/stderr
+       void dump() const;
 
   /// Like character_instance::add_invalidated_bounds() this method calls the
   /// method with the same name of all childs. 

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.245
retrieving revision 1.246
diff -u -b -r1.245 -r1.246
--- server/sprite_instance.cpp  16 Apr 2007 18:23:05 -0000      1.245
+++ server/sprite_instance.cpp  18 Apr 2007 11:00:29 -0000      1.246
@@ -1,3 +1,4 @@
+// sprite_instance.cpp:  Stateful live Sprite instance, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,14 +11,11 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+// 
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
 // 
-//
-
-// Stateful live Sprite instance
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -137,8 +135,8 @@
        if (fn.nargs < 3 || fn.nargs > 4)
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("attachMovie called with wrong number of arguments"
-                       " expected 3 to 4, got (%d) - returning undefined",
+               log_aserror(_("attachMovie called with wrong number of 
arguments"
+                       " expected 3 to 4, got (%d) - returning undefined"),
                        fn.nargs);
                );
                return rv;
@@ -151,8 +149,8 @@
        if ( exported == NULL )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("attachMovie: '%s': no such exported resource - "
-                       "returning undefined",
+               log_aserror(_("attachMovie: '%s': no such exported resource - "
+                       "returning undefined"),
                        id_name.c_str());
                );
                return rv; 
@@ -161,9 +159,9 @@
        if ( ! exported_movie )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("attachMovie: exported resource '%s' "
+               log_aserror(_("attachMovie: exported resource '%s' "
                        "is not a movie definition (%s) -- "
-                       "returning undefined",
+                       "returning undefined"),
                        id_name.c_str(),
                        typeid(*(exported.get())).name());
                );
@@ -185,7 +183,7 @@
        // place_character() will set depth on newch
        if ( ! sprite->attachCharacter(*newch, depth_val) )
        {
-               log_error("Could not attach character at depth %d", depth_val);
+               log_error(_("Could not attach character at depth %d"), 
depth_val);
                return rv;
        }
 
@@ -196,7 +194,7 @@
        if (fn.nargs > 3 ) {
                boost::intrusive_ptr<as_object> initObject = 
fn.arg(3).to_object();
                if ( initObject ) {
-                       log_msg("Initializing properties from object");
+                       //log_msg(_("Initializing properties from object"));
                        newch->copyProperties(*initObject);
                } else {
                        // This is actually a valid thing to do,
@@ -204,8 +202,8 @@
                        // initializing the properties in this
                        // case.
                        IF_VERBOSE_MALFORMED_SWF(
-                       log_aserror("Fourth argument of attachMovie "
-                               "doesn't cast to an object (%s)",
+                       log_aserror(_("Fourth argument of attachMovie "
+                               "doesn't cast to an object (%s)"),
                                fn.arg(3).to_string().c_str());
                        );
                }
@@ -223,8 +221,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_error("FIXME: MovieClip.attachAudio() unimplemented -- "
-                       "returning undefined");
+               log_unimpl("MovieClip.attachAudio()");
                warned=true;
        }
        return as_value();
@@ -240,9 +237,9 @@
                if (fn.nargs < 2)
                {
                        IF_VERBOSE_ASCODING_ERRORS(
-                               log_aserror("createEmptyMovieClip needs "
+                               log_aserror(_("createEmptyMovieClip needs "
                                        "2 args, but %d given,"
-                                       " returning undefined.",
+                                       " returning undefined"),
                                        fn.nargs);
                        );
                        return as_value();
@@ -250,9 +247,9 @@
                else
                {
                        IF_VERBOSE_ASCODING_ERRORS(
-                               log_aserror("createEmptyMovieClip takes "
+                               log_aserror(_("createEmptyMovieClip takes "
                                        "2 args, but %d given, discarding"
-                                       " the one in excess.",
+                                       " the excess"),
                                        fn.nargs);
                        )
                }
@@ -288,7 +285,7 @@
        if (fn.nargs < 1)
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("%s.swapDepths() needs one arg.", 
sprite->getTarget().c_str());
+               log_aserror(_("%s.swapDepths() needs one arg"), 
sprite->getTarget().c_str());
                );
                return rv;
        }
@@ -297,7 +294,7 @@
        {
                IF_VERBOSE_ASCODING_ERRORS(
                stringstream ss; fn.dump_args(ss);
-               log_aserror("%s.swapDepths(%s) : won't swap a clip below depth 
%d (%d).",
+               log_aserror(_("%s.swapDepths(%s): won't swap a clip below depth 
%d (%d)"),
                        sprite->getTarget().c_str(), ss.str().c_str(), 
lowerDepthBound, this_depth);
                );
                return rv;
@@ -309,8 +306,8 @@
        {
                IF_VERBOSE_ASCODING_ERRORS(
                stringstream ss; fn.dump_args(ss);
-               log_aserror("%s.swapDepths(%s): this sprite has no parent, "
-                       "swapping depth of root ?",
+               log_aserror(_("%s.swapDepths(%s): this sprite has no parent, "
+                       "swapping depth of root?"),
                        sprite->getTarget().c_str(),
                        ss.str().c_str());
                );
@@ -327,7 +324,7 @@
                if ( sprite == target_sprite )
                {
                        IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("%s.swapDepths(%s): invalid call, swapping 
to self?",
+                       log_aserror(_("%s.swapDepths(%s): invalid call, 
swapping to self?"),
                                sprite->getTarget().c_str(), 
target_sprite->getTarget().c_str());
                        );
                        return rv;
@@ -337,7 +334,7 @@
                if ( this_parent != target_parent )
                {
                        IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("%s.swapDepths(%s): invalid call, the two 
characters don't have the same parent",
+                       log_aserror(_("%s.swapDepths(%s): invalid call, the two 
characters don't have the same parent"),
                                sprite->getTarget().c_str(), 
target_sprite->getTarget().c_str());
                        );
                        return rv;
@@ -354,8 +351,8 @@
                {
                        IF_VERBOSE_ASCODING_ERRORS(
                        stringstream ss; fn.dump_args(ss);
-                       log_aserror("%s.swapDepths(%s): first argument invalid "
-                               "(neither a sprite nor a number).",
+                       log_aserror(_("%s.swapDepths(%s): first argument 
invalid "
+                               "(neither a sprite nor a number)"),
                                sprite->getTarget().c_str(),
                                ss.str().c_str());
                        );
@@ -389,7 +386,7 @@
        if (fn.nargs < 2)
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("MovieClip.duplicateMovieClip() needs 2 or 3 args");
+               log_aserror(_("MovieClip.duplicateMovieClip() needs 2 or 3 
args"));
                );
                return as_value();
        }
@@ -420,7 +417,7 @@
        if (fn.nargs < 1)
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("sprite_goto_and_play needs one arg");
+               log_aserror(_("sprite_goto_and_play needs one arg"));
                );
                return as_value();
        }
@@ -439,7 +436,7 @@
        if (fn.nargs < 1)
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("sprite_goto_and_stop needs one arg");
+               log_aserror(_("sprite_goto_and_stop needs one arg"));
                );
                return as_value();
        }
@@ -503,8 +500,8 @@
        if (fn.nargs < 1) // url
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_msg("Invalid call to MovieClip.loadMove(), "
-                       "expected 1 or 2 args, got %d - returning undefined",
+               log_aserror(_("MovieClip.loadMovie() "
+                       "expected 1 or 2 args, got %d - returning undefined"),
                        fn.nargs);
                );
                return as_value();
@@ -515,9 +512,9 @@
        {
                IF_VERBOSE_ASCODING_ERRORS(
                std::stringstream ss; fn.dump_args(ss);
-               log_msg("First argument passed to MovieClip.loadMove(%s) "
+               log_msg(_("First argument of MovieClip.loadMovie(%s) "
                        "evaluates to an empty string - "
-                       "returning undefined",
+                       "returning undefined"),
                        ss.str().c_str());
                );
                return as_value();
@@ -528,16 +525,16 @@
        if (fn.nargs > 1)
        {
                // TODO: implement support for second argument
-               log_error("FIXME: second argument of MovieClip.loadMovie(%s, 
<variables>) "
-                       "will be discarded (unsupported)", urlstr.c_str());
+               log_unimpl(_("second argument of MovieClip.loadMovie(%s, 
<variables>) "
+                       "will be discarded"), urlstr.c_str());
                //return;
        }
 
        sprite->loadMovie(url);
-       //log_warning("MovieClip.loadMovie(%s) - TESTING ", url.str().c_str());
+       //log_msg("MovieClip.loadMovie(%s) - TESTING ", url.str().c_str());
 
 
-       //log_error("FIXME: %s not implemented yet", __PRETTY_FUNCTION__);
+       //log_unimp("%s", __PRETTY_FUNCTION__);
        //moviecliploader_loadclip(fn);
        return as_value();
 }
@@ -551,8 +548,8 @@
        if (fn.nargs < 1) // url
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_msg("Invalid call to MovieClip.loadVariables(), "
-                       "expected 1 or 2 args, got %d - returning undefined",
+               log_msg(_("MovieClip.loadVariables() "
+                       "expected 1 or 2 args, got %d - returning undefined"),
                        fn.nargs);
                );
                return as_value();
@@ -563,9 +560,9 @@
        {
                IF_VERBOSE_ASCODING_ERRORS(
                std::stringstream ss; fn.dump_args(ss);
-               log_msg("First argument passed to MovieClip.loadVariables(%s) "
+               log_msg(_("First argument passed to MovieClip.loadVariables(%s) 
"
                        "evaluates to an empty string - "
-                       "returning undefined",
+                       "returning undefined"),
                        ss.str().c_str());
                );
                return as_value();
@@ -584,10 +581,10 @@
        }
 
        sprite->loadVariables(url, method);
-       log_warning("MovieClip.loadVariables(%s) - TESTING ", 
url.str().c_str());
+       log_msg("MovieClip.loadVariables(%s) - TESTING ", url.str().c_str());
 
 
-       //log_error("FIXME: %s not implemented yet", __PRETTY_FUNCTION__);
+       //log_unimpl(__PRETTY_FUNCTION__);
        //moviecliploader_loadclip(fn);
        return as_value();
 }
@@ -603,7 +600,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_error("FIXME: MovieClip.unloadMovie() not implemented yet");
+               log_unimpl("MovieClip.unloadMovie()");
                warned=true;
        }
        return as_value();
@@ -627,13 +624,13 @@
                        if ( ! target )
                        {
                                IF_VERBOSE_ASCODING_ERRORS(
-                               log_aserror("Can't find hitTest target %s",
+                               log_aserror(_("Can't find hitTest target %s"),
                                        tgt_val.to_string().c_str());
                                );
                                return as_value();
                        }
                        if ( ! warned_1_arg ) {
-                               log_error("FIXME: hitTest(target) 
unimplemented");
+                               log_unimpl("hitTest(target)");
                                warned_1_arg=true;
                        }
                        break;
@@ -644,8 +641,7 @@
                        double x = fn.arg(0).to_number();
                        double y = fn.arg(1).to_number();
                        if ( ! warned_2_arg ) {
-                               log_error("FIXME: hitTest(%g,%g) unimplemented",
-                               x,y);
+                               log_unimpl("hitTest(%g,%g)", x,y);
                                warned_2_arg=true;
                        }
                        break;
@@ -657,8 +653,7 @@
                        double y = fn.arg(1).to_number();
                        bool shapeFlag = fn.arg(2).to_bool();
                        if ( ! warned_3_arg ) {
-                               log_error("FIXME: hitTest(%g,%g,%d) 
unimplemented",
-                                       x,y,shapeFlag);
+                               log_unimpl("hitTest(%g,%g,%d)", x,y,shapeFlag);
                                warned_3_arg=true;
                        }
                        break;
@@ -667,7 +662,7 @@
                default:
                {
                        IF_VERBOSE_ASCODING_ERRORS(
-                               log_aserror("hitTest() called with %u args.",
+                               log_aserror(_("hitTest() called with %u args"),
                                        fn.nargs);
                        );
                        break;
@@ -686,8 +681,8 @@
        if (fn.nargs != 6) // name, depth, x, y, width, height
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_msg("createTextField called with %d args, "
-                       "expected 6 - returning undefined", fn.nargs);
+               log_msg(_("createTextField called with %d args, "
+                       "expected 6 - returning undefined"), fn.nargs);
                );
                return as_value();
        }
@@ -695,8 +690,8 @@
        if ( ! fn.arg(0).is_string() ) 
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_msg("First argument of createTextField is not a string"
-                       " - returning undefined");
+               log_msg(_("First argument of createTextField is not a string"
+                       " - returning undefined"));
                );
                return as_value();
        }
@@ -705,8 +700,8 @@
        if ( ! fn.arg(1).is_number() )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_msg("Second argument of createTextField is not a number"
-                       " - returning undefined");
+               log_msg(_("Second argument of createTextField is not a number"
+                       " - returning undefined"));
                );
                return as_value();
        }
@@ -715,8 +710,8 @@
        if ( ! fn.arg(2).is_number() ) 
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_msg("Third argument of createTextField is not a number"
-                       " - returning undefined");
+               log_msg(_("Third argument of createTextField is not a number"
+                       " - returning undefined"));
                );
                return as_value();
        }
@@ -725,8 +720,8 @@
        if ( ! fn.arg(3).is_number() )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_msg("Fourth argument of createTextField is not a number"
-                       " - returning undefined");
+               log_msg(_("Fourth argument of createTextField is not a number"
+                       " - returning undefined"));
                );
                return as_value();
        }
@@ -735,8 +730,8 @@
        if ( ! fn.arg(4).is_number() )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_msg("Fifth argument of createTextField is not a number"
-                       " - returning undefined");
+               log_msg(_("Fifth argument of createTextField is not a number"
+                       " - returning undefined"));
                );
                return as_value();
        }
@@ -745,8 +740,8 @@
        if ( ! fn.arg(5).is_number() ) 
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_msg("Fifth argument of createTextField is not a number"
-                       " - returning undefined");
+               log_msg(_("Fifth argument of createTextField is not a number"
+                       " - returning undefined"));
                );
                return as_value();
        }
@@ -779,7 +774,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_error("FIXME: MovieClip.getURL() not implemented yet");
+               log_unimpl("MovieClip.getURL()");
                warned=true;
        }
        return as_value();
@@ -800,7 +795,7 @@
                if ( ! target )
                {
                        IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("MovieClip.getBounds(%s) : invalid call, 
first arg must be a sprite",
+                       log_aserror(_("MovieClip.getBounds(%s): invalid call, 
first arg must be a sprite"),
                                fn.arg(0).to_debug_string().c_str());
                        );
                        return as_value();
@@ -823,7 +818,7 @@
                tgtwmat.transform_by_inverse(bounds);
                //ss << "tgt-w-invtransfor bounds: " << bounds << "(tgtwmat is 
" << tgtwmat << ")" << endl;
                //log_msg("%s", ss.str().c_str());
-               log_error("FIXME: MovieClip.getBounds(%s) TESTING", 
fn.arg(0).to_debug_string().c_str());
+               log_msg("FIXME: MovieClip.getBounds(%s) TESTING", 
fn.arg(0).to_debug_string().c_str());
        }
 
        // Magic numbers here... dunno why
@@ -859,7 +854,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_error("FIXME: MovieClip.globalToLocal() not implemented 
yet");
+               log_unimpl("MovieClip.globalToLocal()");
                warned=true;
        }
        return as_value();
@@ -881,7 +876,7 @@
        if ( fn.nargs < 2 )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("MovieClip.lineTo() takes two args");
+                       log_aserror(_("MovieClip.lineTo() takes two args"));
                );
                return as_value();
        }
@@ -902,7 +897,7 @@
        if ( fn.nargs < 2 )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("MovieClip.moveTo() takes two args");
+                       log_aserror(_("MovieClip.moveTo() takes two args"));
                );
                return as_value();
        }
@@ -965,7 +960,7 @@
        if ( fn.nargs < 4 )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("MovieClip.curveTo() takes four args");
+                       log_aserror(_("MovieClip.curveTo() takes four args"));
                );
                return as_value();
        }
@@ -1026,7 +1021,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_error("FIXME: MovieClip.beginGradientFill() not implemented 
yet");
+               log_unimpl("MovieClip.beginGradientFill()");
                warned=true;
        }
        return as_value();
@@ -1043,7 +1038,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_error("FIXME: MovieClip.startDrag() not implemented yet");
+               log_unimpl("MovieClip.startDrag()");
                warned=true;
        }
        return as_value();
@@ -1059,7 +1054,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_error("FIXME: MovieClip.stopDrag() not implemented yet");
+               log_unimpl("MovieClip.stopDrag()");
                warned=true;
        }
        return as_value();
@@ -1128,7 +1123,7 @@
        {
                ptr->set_name(fn.arg(0).to_string(&fn.env()).c_str());
                //IF_VERBOSE_ASCODING_ERRORS(
-               //log_aserror("Attempt to set read-only property '_name'");
+               //log_aserror(_("Attempt to set read-only property '_name'"));
                //);
        }
 
@@ -1144,7 +1139,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_error("FIXME: MovieClip._droptarget unimplemented");
+               log_unimpl("MovieClip._droptarget");
                warned=true;
        }
 
@@ -1182,7 +1177,7 @@
        {
                static bool warned=false;
                if ( ! warned ) {
-                       log_warning("MovieClip._highquality setting is 
unsupported");
+                       log_unimpl("MovieClip._highquality setting");
                        warned = true;
                }
        }
@@ -1206,7 +1201,7 @@
        {
                static bool warned=false;
                if ( ! warned ) {
-                       log_warning("MovieClip._focusrect setting is 
unsupported");
+                       log_unimpl("MovieClip._focusrect setting");
                        warned = true;
                }
        }
@@ -1228,7 +1223,7 @@
        {
                static bool warned=false;
                if ( ! warned ) {
-                       log_warning("MovieClip._soundbuftime setting is 
unsupported");
+                       log_unimpl("MovieClip._soundbuftime setting");
                        warned = true;
                }
        }
@@ -1627,11 +1622,11 @@
                IF_VERBOSE_ASCODING_ERRORS(
                if (  m_display_list.get_character_by_name_i(name) )
                {
-                       log_aserror("A sprite member (%s) clashes with "
+                       log_aserror(_("A sprite member (%s) clashes with "
                                        "the name of an existing character "
-                                       "in its display list! "
+                                       "in its display list.  "
                                        "The member will hide the "
-                                       "character.", name.c_str());
+                                       "character"), name.c_str());
                }
                );
 #endif
@@ -1667,8 +1662,8 @@
        testInvariant();
 
        IF_VERBOSE_ACTION(
-               log_action("Executing " SIZET_FMT " actions in frame " SIZET_FMT
-                       "/" SIZET_FMT " of sprite %s",
+               log_action(_("Executing " SIZET_FMT " actions in frame " 
SIZET_FMT
+                       "/" SIZET_FMT " of sprite %s"),
                        m_action_list.size(),
                        m_current_frame+1,
                        m_def->get_frame_count(), getTargetPath().c_str());
@@ -1717,7 +1712,8 @@
        {
                // No dice.
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("call_frame('%s') -- invalid frame", 
frame_spec.to_debug_string().c_str());
+               log_aserror(_("call_frame('%s') -- invalid frame"),
+                           frame_spec.to_debug_string().c_str());
                );
                return;
        }
@@ -1816,7 +1812,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_error("FIXME: %s unfinished", __PRETTY_FUNCTION__);
+               log_unimpl("%s unfinished", __PRETTY_FUNCTION__);
                warned = true;
        }
 
@@ -1830,13 +1826,13 @@
        character* parent_ch = get_parent();
        if ( ! parent_ch )
        {
-               log_error("Can't clone root the movie");
+               log_error(_("Can't clone root of the movie"));
                return NULL;
        }
        sprite_instance* parent = parent_ch->to_movie();
        if ( ! parent )
        {
-               log_error("%s parent is not a sprite, can't clone", 
getTarget().c_str());
+               log_error(_("%s parent is not a sprite, can't clone"), 
getTarget().c_str());
                return NULL;
        }
 
@@ -1892,7 +1888,7 @@
        }
     else
     {
-           log_error("clone_display_object(%s, %s, %d): could not find a 
character named %s to clone",
+           log_error(_("clone_display_object(%s, %s, %d): could not find a 
character named %s to clone"),
                            name.c_str(), newname.c_str(), depth, name.c_str());
     }
 }
@@ -1988,7 +1984,7 @@
                const as_value& val)
 {
 #ifdef DEBUG_DYNTEXT_VARIABLES
-log_msg("sprite[%p]::set_member(%s, %s)", (void*)this, name.c_str(), 
val.to_debug_string().c_str());
+log_msg(_("sprite[%p]::set_member(%s, %s)"), (void*)this, name.c_str(), 
val.to_debug_string().c_str());
 #endif
 
        if ( val.is_function() )
@@ -2009,7 +2005,7 @@
        if ( etc )
        {
 #ifdef DEBUG_DYNTEXT_VARIABLES
-               log_msg(" it's a Text Variable!");
+               log_msg(_("it's a Text Variable"));
 #endif
                as_environment* env = 
const_cast<as_environment*>(&m_as_environment);
                etc->set_text_value(val.to_string(env).c_str());
@@ -2017,7 +2013,7 @@
 #ifdef DEBUG_DYNTEXT_VARIABLES
        else
        {
-               log_msg(" it's NOT a Text Variable!");
+               log_msg(_("it's NOT a Text Variable"));
        }
 #endif
 
@@ -2031,13 +2027,13 @@
 {
        if (path_to_var == NULL)
        {
-               log_error("NULL path_to_var passed to set_variable()");
+               log_error(_("NULL path_to_var passed to set_variable()"));
                return;
        }
        if (new_value == NULL)
        {
-               log_error("NULL passed to set_variable('%s',"
-                       " NULL)", path_to_var);
+               log_error(_("NULL passed to set_variable('%s',"
+                       " NULL)"), path_to_var);
                return;
        }
 
@@ -2057,12 +2053,12 @@
 
            if (path_to_var == NULL)
                {
-                   log_error("NULL path_to_var passed to set_variable()\n");
+                   log_error(_("NULL path_to_var passed to set_variable()"));
                    return;
                }
            if (new_value == NULL)
                {
-                   log_error("NULL passed to set_variable('%s', NULL)\n", 
path_to_var);
+                   log_error(_("NULL passed to set_variable('%s', NULL)"), 
path_to_var);
                    return;
                }
 
@@ -2090,8 +2086,8 @@
 #ifdef GNASH_DEBUG
        size_t frame_count = m_def->get_frame_count();
 
-       log_msg("sprite '%s' ::advance_sprite is at frame %u/%u "
-               "- onload called: %d - oldDIsplayList has %d elements",
+       log_msg(_("sprite '%s' ::advance_sprite is at frame %u/%u "
+               "- onload called: %d - oldDIsplayList has %d elements"),
                getTargetPath().c_str(), m_current_frame,
                frame_count, m_on_event_load_called, oldDisplayList.size());
 #endif
@@ -2100,7 +2096,7 @@
        if (m_play_state == PLAY)
        {
 #ifdef GNASH_DEBUG
-               log_msg("sprite_instance::advance_sprite we're in PLAY mode");
+               log_msg(_("sprite_instance::advance_sprite we're in PLAY 
mode"));
 #endif
 
                int prev_frame = m_current_frame;
@@ -2108,11 +2104,11 @@
                if (m_on_event_load_called)
                {
 #ifdef GNASH_DEBUG
-                       log_msg(" on_event_load called, incrementing");
+                       log_msg(_("on_event_load called, incrementing"));
 #endif
                        increment_frame_and_check_for_loop();
 #ifdef GNASH_DEBUG
-                       log_msg(" after increment we are at frame %u/%u", 
m_current_frame, frame_count);
+                       log_msg(_("after increment we are at frame %u/%u"), 
m_current_frame, frame_count);
 #endif
                }
 
@@ -2126,7 +2122,7 @@
 #ifdef GNASH_DEBUG
        else
        {
-               log_msg("sprite_instance::advance_sprite we're in STOP mode");
+               log_msg(_("sprite_instance::advance_sprite we're in STOP 
mode"));
                // shouldn't we execute frame tags anyway when in STOP mode ?
                //execute_frame_tags(m_current_frame);
        }
@@ -2151,12 +2147,12 @@
        //
        DisplayList stillAlive = oldDisplayList;
        stillAlive.clear_except(m_display_list, false);
-       //log_msg("Advancing %d pre-existing childs of %s", stillAlive.size(), 
getTargetPath().c_str());
+       //log_msg(_("Advancing %d pre-existing children of %s"), 
stillAlive.size(), getTargetPath().c_str());
        stillAlive.advance(delta_time);
        
        // Now execute actions on this timeline, after actions
        // in old childs timelines have been executed.
-       //log_msg("Executing actions in %s timeline", getTargetPath().c_str());
+       //log_msg(_("Executing actions in %s timeline"), 
getTargetPath().c_str());
        do_actions();
 
        // Call UNLOAD event of just removed chars !
@@ -2174,9 +2170,9 @@
        // we're simply doing internal work here...
        //
        DisplayList newlyAdded = m_display_list;
-       //log_msg("%s has %d current childs and %d old childs", 
getTargetPath().c_str(), m_display_list.size(), oldDisplayList.size());
+       //log_msg(_("%s has %d current children and %d old children"), 
getTargetPath().c_str(), m_display_list.size(), oldDisplayList.size());
        newlyAdded.clear(oldDisplayList, false);
-       //log_msg("Advancing %d newly-added (after clearing) childs of %s", 
newlyAdded.size(), getTargetPath().c_str());
+       //log_msg(_("Advancing %d newly-added (after clearing) children of 
%s"), newlyAdded.size(), getTargetPath().c_str());
        newlyAdded.advance(delta_time);
 
        // Remember current state of the DisplayList for next iteration
@@ -2193,7 +2189,7 @@
        if (m_on_event_load_called == false)
        {
 #ifdef GNASH_DEBUG
-               log_msg("Calling ONLOAD event");
+               log_msg(_("Calling ONLOAD event"));
 #endif
                on_event(event_id::LOAD);       // clip onload
 
@@ -2293,10 +2289,10 @@
 
                        IF_VERBOSE_ACTION(
                                // Use 1-based frame numbers
-                               log_action("Executing " SIZET_FMT 
+                               log_action(_("Executing " SIZET_FMT 
                                        " *init* tags in frame " SIZET_FMT
-                                       "/" SIZET_FMT
-                                       " of sprite %s", init_actions->size(),
+                                       "/" SIZET_FMT " of sprite %s"),
+                                       init_actions->size(),
                                        frame+1, get_frame_count(),
                                        getTargetPath().c_str());
                        );
@@ -2318,8 +2314,8 @@
 
        IF_VERBOSE_ACTION(
                // Use 1-based frame numbers
-               log_action("Executing " SIZET_FMT " tags in frame "
-                       SIZET_FMT "/" SIZET_FMT " of sprite %s",
+               log_action(_("Executing " SIZET_FMT " tags in frame "
+                       SIZET_FMT "/" SIZET_FMT " of sprite %s"),
                        playlist.size(), frame+1, get_frame_count(),
                        getTargetPath().c_str());
        );
@@ -2402,8 +2398,8 @@
 sprite_instance::goto_frame(size_t target_frame_number)
 {
 #ifdef DEBUG_GOTOFRAME
-       log_msg("sprite %s ::goto_frame(" SIZET_FMT ") - current frame is "
-               SIZET_FMT,
+       log_msg(_("sprite %s ::goto_frame(" SIZET_FMT ") - current frame is "
+               SIZET_FMT),
                getTargetPath().c_str(), target_frame_number, m_current_frame);
 #endif
 
@@ -2442,10 +2438,10 @@
        if ( target_frame_number >= loaded_frames )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("GotoFrame(" SIZET_FMT ") targets a yet "
+                       log_aserror(_("GotoFrame(" SIZET_FMT ") targets a yet "
                                "to be loaded frame (" SIZET_FMT ") loaded). "
                                "We'll wait for it but a more correct form "
-                               "is explicitly using WaitForFrame instead.",
+                               "is explicitly using WaitForFrame instead"),
                                target_frame_number+1,
                                loaded_frames);
 
@@ -2533,8 +2529,8 @@
        }
 
     IF_VERBOSE_MALFORMED_SWF(
-    log_swferror("sprite_instance::goto_labeled_frame('%s') "
-                       "unknown label", label.c_str());
+    log_swferror(_("sprite_instance::goto_labeled_frame('%s') "
+                       "unknown label"), label.c_str());
     );
     return false;
 }
@@ -2622,8 +2618,8 @@
        if (cdef == NULL)
        {
                IF_VERBOSE_MALFORMED_SWF(
-                       log_swferror("sprite_instance::add_display_object(): "
-                               "unknown cid = %d", character_id);
+                       log_swferror(_("sprite_instance::add_display_object(): "
+                               "unknown cid = %d"), character_id);
                );
                return NULL;
        }
@@ -2703,13 +2699,13 @@
                int clip_depth)
 {
        assert(m_def != NULL);
-       //log_msg("%s: character %s, id is %d, depth is %d", __FUNCTION__, 
name, character_id, depth); // FIXME: debugging crap
+       //log_msg(_("%s: character %s, id is %d, depth is %d"), __FUNCTION__, 
name, character_id, depth); // FIXME: debugging crap
 
        character_def*  cdef = m_def->get_character_def(character_id);
        if (cdef == NULL)
        {
-               log_error("sprite::replace_display_object(): "
-                       "unknown cid = %d", character_id);
+               log_error(_("sprite::replace_display_object(): "
+                       "unknown cid = %d"), character_id);
                return;
        }
        assert(cdef);
@@ -2782,7 +2778,7 @@
        }
 
 #if 0 // debugging
-       log_msg("Frame %u/%u, bytes %u/%u",
+       log_msg(_("Frame %u/%u, bytes %u/%u"),
                m_current_frame, frame_count,
                get_bytes_loaded(), get_bytes_total());
 #endif
@@ -2925,7 +2921,7 @@
 {
        //return m_def->get_character_def(character_id);
        // @@ TODO -- look through our dlist for a match
-       log_msg("FIXME: %s doesn't even check for a char",
+       log_unimpl(_("%s doesn't even check for a char"),
                __PRETTY_FUNCTION__);
        return NULL;
 }
@@ -3153,7 +3149,7 @@
 sprite_instance::construct()
 {
 #ifdef GNASH_DEBUG
-       log_msg("Constructing sprite '%s'", getTargetPath().c_str());
+       log_msg(_("Constructing sprite '%s'"), getTargetPath().c_str());
 #endif
 
        // We *might* avoid this, but better safe then sorry
@@ -3181,7 +3177,7 @@
        if ( ! def ) return;
 
        as_function* ctor = def->getRegisteredClass();
-       //log_msg("Attached sprite's registered class is %p", (void*)ctor); 
+       //log_msg(_("Attached sprite's registered class is %p"), (void*)ctor); 
 
        // TODO: builtin constructors are different from user-defined ones
        // we should likely change that. See also vm/ASHandlers.cpp 
(construct_object)
@@ -3191,7 +3187,7 @@
                as_object* proto = ctor->getPrototype();
                set_prototype(proto);
 
-               //log_msg("Calling the user-defined constructor against this 
sprite_instance");
+               //log_msg(_("Calling the user-defined constructor against this 
sprite_instance"));
                fn_call call(this, &(get_environment()), 0, 0);
 
                // we don't use the constructor return (should we?)
@@ -3203,7 +3199,7 @@
 sprite_instance::unload()
 {
 #ifdef GNASH_DEBUG
-       log_msg("Unloading sprite '%s'", getTargetPath().c_str());
+       log_msg(_("Unloading sprite '%s'"), getTargetPath().c_str());
 #endif
 
        UnloaderVisitor visitor;
@@ -3229,7 +3225,7 @@
        boost::intrusive_ptr<movie_definition> md ( create_library_movie(url) );
        if (md == NULL)
        {
-               log_error("can't create movie_definition for %s",
+               log_error(_("can't create movie_definition for %s"),
                        url.str().c_str());
                return false;
        }
@@ -3238,8 +3234,8 @@
        extern_movie = md->create_movie_instance();
        if (extern_movie == NULL)
        {
-               log_error("can't create extern movie_instance "
-                       "for %s", url.str().c_str());
+               log_error(_("can't create extern movie_instance "
+                       "for %s"), url.str().c_str());
                return false;
        }
 
@@ -3308,12 +3304,12 @@
 
        if ( sendVarsMethod )
        {
-               log_error("FIXME: MovieClip.loadVariables() with GET/POST 
unimplemented yet - won't append vars for now");
+               log_unimpl(_("MovieClip.loadVariables() with GET/POST won't 
append vars for now"));
        }
 
        _loadVariableRequests.push_back(new LoadVariablesThread(url));
        _loadVariableRequests.back().process();
-       //log_msg(SIZET_FMT " loadVariables requests pending", 
_loadVariableRequests.size());
+       //log_msg(_(SIZET_FMT " loadVariables requests pending"), 
_loadVariableRequests.size());
 
 }
 
@@ -3333,7 +3329,7 @@
        {
                const string& name = it->first;
                const string& val = it->second;
-               log_msg("Setting variable '%s' to value '%s'", name.c_str(), 
val.c_str());
+               log_msg(_("Setting variable '%s' to value '%s'"), name.c_str(), 
val.c_str());
                set_variable(name.c_str(), val.c_str()); // should it be 
set_member ?
        }
 }
@@ -3376,8 +3372,8 @@
        if ( depth < 0 || depth > 1048575 )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("removeMovieClip(%s): sprite depth (%d) out of the "
-                       "'dynamic' zone [0..1048575], won't remove",
+               log_aserror(_("removeMovieClip(%s): sprite depth (%d) out of 
the "
+                       "'dynamic' zone [0..1048575], won't remove"),
                        getTarget().c_str(), depth);
                );
                return;
@@ -3393,7 +3389,7 @@
        else
        {
                // I guess this can only happen if someone uses 
_root.swapDepth([0..1048575])
-               log_error("Can't remove sprite %s as it has no parent!", 
getTarget().c_str());
+               log_error(_("Can't remove sprite %s as it has no parent"), 
getTarget().c_str());
        }
 
 }

Index: server/text.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/text.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- server/text.cpp     9 Jan 2007 23:30:37 -0000       1.28
+++ server/text.cpp     18 Apr 2007 11:00:29 -0000      1.29
@@ -1,10 +1,25 @@
-// text.cpp    -- Thatcher Ulrich <address@hidden> 2003
+// text.cpp:  Implementation of ActionScript text tags, for Gnash.
+// 
+//   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+// 
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-// This source code has been donated to the Public Domain.  Do
-// whatever you want with it.
-
-// Code for the text tags.
+/* $Id: text.cpp,v 1.29 2007/04/18 11:00:29 jgilmore Exp $ */
 
+// Based on the public domain work of Thatcher Ulrich <address@hidden> 2003
 
 #include "utf8.h"
 #include "utility.h"
@@ -32,7 +47,7 @@
                        if (m_font == NULL)
                        {
                                IF_VERBOSE_MALFORMED_SWF(
-       log_warning("text style references unknown font (id = %d)\n",
+       log_error(_("text style references unknown font (id = %d)"),
                m_font_id);
                                );
                        }
@@ -135,9 +150,8 @@
 
                                if (index == -1)
                                {
-                                       // Invalid glyph; render it as an empty 
box.
 #ifdef GNASH_DEBUG_TEXT_RENDERING
-log_msg("invalid glyph, render as an empty box");
+log_error(_("invalid glyph, render as an empty box"));
 #endif
                                        render::set_matrix(mat);
 
@@ -164,7 +178,7 @@
                                            && (use_glyph_textures || glyph == 
NULL))
                                        {
 #ifdef GNASH_DEBUG_TEXT_RENDERING
-log_msg("render glyph using draw_glyph");
+log_msg(_("render glyph using draw_glyph"));
 #endif
                                                fontlib::draw_glyph(mat, tg, 
transformed_color, nominal_glyph_height);
                                        }
@@ -175,7 +189,7 @@
                                                if (glyph)
                                                {
 #ifdef GNASH_DEBUG_TEXT_RENDERING
-log_msg("render glyph using filled outline (?) actually draw_glyph()");
+log_msg(_("render glyph using filled outline (?) actually draw_glyph()"));
 #endif
 
                                                        
gnash::render::draw_glyph(glyph, mat, transformed_color, pixel_scale);
@@ -195,4 +209,3 @@
 // mode: C++
 // indent-tabs-mode: t
 // End:
-

Index: server/textformat.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/textformat.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- server/textformat.cpp       15 Apr 2007 10:52:09 -0000      1.25
+++ server/textformat.cpp       18 Apr 2007 11:00:29 -0000      1.26
@@ -1,3 +1,4 @@
+// textformat.cpp:  ActionScript text formatting decorators, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,14 +11,14 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-// 
-// $Id: textformat.cpp,v 1.25 2007/04/15 10:52:09 bjacques Exp $
 //
 
+// $Id: textformat.cpp,v 1.26 2007/04/18 11:00:29 jgilmore Exp $
+
 #include "log.h"
 #include "textformat.h"
 #include "fn_call.h"
@@ -40,7 +41,7 @@
       _tab_stops(-1),
       _target(-1)
 {
-  //log_msg("%s: \n", __FUNCTION__);
+  //log_msg("%s:", __FUNCTION__);
 }
 
 text_format::~text_format()
@@ -52,7 +53,7 @@
 text_format *
 text_format::operator = (text_format &format)
 {
-  log_msg("%s: \n", __FUNCTION__);
+  GNASH_REPORT_FUNCTION;
 
   _underline = format._underline;
   _bold = format._bold;
@@ -79,47 +80,48 @@
 void
 text_format::setTextFormat (text_format& /*format*/)
 {
-  //log_msg("%s: \n", __FUNCTION__);
+  //GNASH_REPORT_FUNCTION;
 }
 
 void
 text_format::setTextFormat (int /*index*/, text_format& /*format*/)
 {
-  //log_msg("%s: \n", __FUNCTION__);
+  //GNASH_REPORT_FUNCTION;
 }
 
 void
 text_format::setTextFormat (int /*start*/, int /*end*/, text_format& 
/*format*/)
 {
-  //log_msg("%s: \n", __FUNCTION__);
+  //GNASH_REPORT_FUNCTION;
 }
 
 #if 0
 text_format &
 text_format::getTextFormat ()
 {
-  log_msg("%s: \n", __FUNCTION__);
+  GNASH_REPORT_FUNCTION;
 }
 
 text_format &
 text_format::getTextFormat (int index)
 {
-  log_msg("%s: \n", __FUNCTION__);
+  GNASH_REPORT_FUNCTION;
 }
 
 text_format &
 text_format::getTextFormat (int start, int end)
 {
-  log_msg("%s: \n", __FUNCTION__);
+  GNASH_REPORT_FUNCTION;
 }
 #endif
 
 as_value textformat_new(const fn_call& /* fn */)
 {
-  //log_msg("%s: args=%d\n", __FUNCTION__, nargs);
+  //GNASH_REPORT_FUNCTION;
+  //log_msg(_("%s: args=%d"), __FUNCTION__, nargs);
 
   boost::intrusive_ptr<textformat_as_object> text_obj = new 
textformat_as_object;
-  log_warning("Created New TextFormat object at %p. Not fully implemented 
yet!", (void*)text_obj.get());
+  log_unimpl(_("Created New TextFormat object at %p.  Not fully implemented 
yet"), (void*)text_obj.get());
   
   // tulrich: this looks like it's inserting a method into our
   // caller's env.  setTextFormat is a method on TextField.  So here
@@ -136,7 +138,7 @@
 as_value textformat_setformat(const fn_call& fn)
 {
   as_value     method;
-  //log_msg("%s: args=%d at %p\n", __FUNCTION__, nargs, this_ptr);
+  //log_msg(_("%s: args=%d at %p"), __FUNCTION__, nargs, this_ptr);
 
   boost::intrusive_ptr<textformat_as_object> ptr = 
ensureType<textformat_as_object>(fn.this_ptr);
   //double start = fn.arg(0).to_number();
@@ -145,7 +147,7 @@
   if ( fn.nargs < 3 )
   {
     IF_VERBOSE_ASCODING_ERRORS(
-    log_aserror("TextFormat.setFormat() needs at least 3 arguments - ...me 
thinks");
+    log_aserror(_("TextFormat.setFormat() needs at least 3 arguments - ...me 
thinks"));
     );
     return as_value();
   }
@@ -154,73 +156,73 @@
   if ( ! obj )
   {
     IF_VERBOSE_ASCODING_ERRORS(
-    log_aserror("Argument 3 given to TextFormat.setFormat() is not a 
TextFormat object - ... should it?");
+    log_aserror(_("Argument 3 given to TextFormat.setFormat() is not a 
TextFormat object - ... should it be?"));
     );
     return as_value();
   }
   assert(obj);
 
-  //log_msg("Change from %f for %f characters for object at %p\n", start, end, 
obj);
+  //log_msg(_("Change from %f for %f characters for object at %p"), start, 
end, obj);
 
   // Check for the flags that could be set
   if (obj->get_member("underline", &method)) {
-    //log_msg("Underline exists and is set to %d\n", method.to_bool());
+    //log_msg(_("Underline exists and is set to %d"), method.to_bool());
     obj->obj.underlinedSet(method.to_bool());
   }
   
   if (obj->get_member("italic", &method)) {
-    //log_msg("Italic exists and is set to %d\n", method.to_bool());
+    //log_msg(_("Italic exists and is set to %d"), method.to_bool());
     obj->obj.italicedSet(method.to_bool());
   }
   
   if (obj->get_member("bold", &method)) {
-    //log_msg("Bold exists and is set to %d\n", method.to_bool());
+    //log_msg(_("Bold exists and is set to %d"), method.to_bool());
     obj->obj.boldSet(method.to_bool());
   }
   
   if (obj->get_member("bullet", &method)) {
-    //log_msg("Bullet exists and is set to %d\n", method.to_bool());
+    //log_msg(_("Bullet exists and is set to %d"), method.to_bool());
     obj->obj.bulletSet(method.to_bool());
   }
 
   if (obj->get_member("color", &method)) {
-    //log_msg("Color exists and is set to %f\n", method.to_number());
+    //log_msg(_("Color exists and is set to %f", method.to_number());
     obj->obj.colorSet((uint32_t)method.to_number());
   }
 
   if (obj->get_member("indent", &method)) {
-    //log_msg("Indent exists and is set to %f\n", method.to_number());
+    //log_msg(_("Indent exists and is set to %f"), method.to_number());
     obj->obj.indentSet(float(method.to_number()));
   }
 
   if (obj->get_member("align", &method)) {
-    //log_msg("Align exists and is set to %s\n", method.to_string());
+    //log_msg(_("Align exists and is set to %s"), method.to_string());
     const char* align = method.to_string().c_str();
     if ( align ) obj->obj.alignSet(align);
   }
 
   if (obj->get_member("blockIndent", &method)) {
-    //log_msg("BlockIndent exists and is set to %f\n", method.to_number());
+    //log_msg(_("BlockIndent exists and is set to %f"), method.to_number());
     obj->obj.blockIndentSet(float(method.to_number()));
   }
   
   if (obj->get_member("leading", &method)) {
-    //log_msg("Leading exists and is set to %f\n", method.to_number());
+    //log_msg(_("Leading exists and is set to %f"), method.to_number());
     obj->obj.leadingSet(float(method.to_number()));
   }
   
   if (obj->get_member("leftMargin", &method)) {
-    //log_msg("LeftMargin exists and is set to %f\n", method.to_number());
+    //log_msg(_("LeftMargin exists and is set to %f"), method.to_number());
     obj->obj.leftMarginSet(float(method.to_number()));
   }
   
   if (obj->get_member("RightMargin", &method)) {
-    //log_msg("RightMargin exists and is set to %f\n", method.to_number());
+    //log_msg(_("RightMargin exists and is set to %f"), method.to_number());
     obj->obj.rightMarginSet(float(method.to_number()));
   }
   
   if (obj->get_member("size", &method)) {
-    //log_msg("Size exists and is set to %f\n", method.to_number());
+    //log_msg(_("Size exists and is set to %f"), method.to_number());
     obj->obj.sizeSet(float(method.to_number()));
   }
   
@@ -232,7 +234,7 @@
   void
   textformat_getformat(gnash::as_value* result, gnash::as_object_interface* 
this_ptr, gnash::as_environment* env, int nargs, int first_arg)
 {
-  log_msg("%s: args=%d unfinished implementation\n", __FUNCTION__, nargs);
+  log_unimpl(_("%s: args=%d unfinished implementation"), __FUNCTION__, nargs);
   textformat_as_object*        ptr = (textformat_as_object*)this_ptr;
   assert(ptr);
   double start = env->bottom(first_arg).to_number();

Index: server/video_stream_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/video_stream_instance.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- server/video_stream_instance.cpp    7 Apr 2007 12:25:57 -0000       1.19
+++ server/video_stream_instance.cpp    18 Apr 2007 11:00:29 -0000      1.20
@@ -1,3 +1,4 @@
+// video_stream_instance.cpp:  Draw individual video frames, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,12 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
 // 
-// $Id: video_stream_instance.cpp,v 1.19 2007/04/07 12:25:57 tgc Exp $
+
+// $Id: video_stream_instance.cpp,v 1.20 2007/04/18 11:00:29 jgilmore Exp $
 
 #include "sprite_instance.h"
 #include "video_stream_instance.h"
@@ -38,7 +40,7 @@
                if (fn.nargs < 1)
                {
                        IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("attachVideo needs 1 arg");
+                       log_aserror(_("attachVideo needs 1 arg"));
                        );
                        return as_value();
                }
@@ -51,7 +53,7 @@
                else
                {
                        IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("attachVideo(%s) first arg is not a 
NetStream instance.",
+                       log_aserror(_("attachVideo(%s) first arg is not a 
NetStream instance"),
                                fn.arg(0).to_debug_string().c_str());
                        );
                }
@@ -111,7 +113,7 @@
                {
                        gnash::render::drawVideoFrame(i, &m, &bounds);
                } else {
-                       log_warning("An error occured while decoding video 
frame.");
+                       log_error(_("An error occured while decoding video 
frame"));
                }
 
        }
@@ -142,4 +144,3 @@
 }
 
 } // end of namespace gnash
-

Index: server/asobj/Camera.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Camera.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- server/asobj/Camera.cpp     19 Mar 2007 17:11:14 -0000      1.6
+++ server/asobj/Camera.cpp     18 Apr 2007 11:00:29 -0000      1.7
@@ -1,3 +1,4 @@
+// Camera.cpp:  ActionScript class for video cameras, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -74,19 +75,19 @@
 };
 
 as_value camera_get(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value camera_setmode(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value camera_setmotionlevel(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value camera_setquality(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
 
     return as_value();
 }
@@ -121,4 +122,3 @@
 
 
 } // end of gnash namespace
-

Index: server/asobj/Color.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Color.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- server/asobj/Color.cpp      19 Mar 2007 17:11:14 -0000      1.8
+++ server/asobj/Color.cpp      18 Apr 2007 11:00:29 -0000      1.9
@@ -1,3 +1,4 @@
+// Color.cpp:  ActionScript class for colors, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -78,7 +79,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
        return as_value();
@@ -89,7 +90,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
        return as_value();
@@ -100,7 +101,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
        return as_value();
@@ -111,7 +112,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
        return as_value();
@@ -147,4 +148,3 @@
 
 
 } // end of gnash namespace
-

Index: server/asobj/ContextMenu.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/ContextMenu.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- server/asobj/ContextMenu.cpp        20 Mar 2007 15:01:20 -0000      1.11
+++ server/asobj/ContextMenu.cpp        18 Apr 2007 11:00:29 -0000      1.12
@@ -1,3 +1,4 @@
+// ContextMenu.cpp:  ActionScript ContextMenu class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -129,7 +130,7 @@
 {
        boost::intrusive_ptr<ContextMenu> ptr = 
ensureType<ContextMenu>(fn.this_ptr);
        UNUSED(ptr);
-       log_warning("%s: unimplemented", __FUNCTION__);
+       log_unimpl (__FUNCTION__);
        return as_value();
 }
 
@@ -139,7 +140,7 @@
 {
        boost::intrusive_ptr<ContextMenu> ptr = 
ensureType<ContextMenu>(fn.this_ptr);
        UNUSED(ptr);
-       log_warning("%s: unimplemented", __FUNCTION__);
+       log_unimpl (__FUNCTION__);
        return as_value();
 }
 
@@ -185,4 +186,3 @@
 
 
 } // end of gnash namespace
-

Index: server/asobj/CustomActions.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/CustomActions.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- server/asobj/CustomActions.cpp      19 Mar 2007 17:11:14 -0000      1.6
+++ server/asobj/CustomActions.cpp      18 Apr 2007 11:00:29 -0000      1.7
@@ -1,3 +1,4 @@
+// CustomActions.cpp:  ActionScript CustomActions class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -74,19 +75,19 @@
 };
 
 as_value customactions_get(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value customactions_install(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value customactions_list(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value customactions_uninstall(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 

Index: server/asobj/Date.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Date.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -b -r1.40 -r1.41
--- server/asobj/Date.cpp       6 Apr 2007 02:43:50 -0000       1.40
+++ server/asobj/Date.cpp       18 Apr 2007 11:00:29 -0000      1.41
@@ -1,3 +1,4 @@
+// Date.cpp:  ActionScript class for date and time, for Gnash.
 // 
 //     Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -5,16 +6,16 @@
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation; either version 2 of the License, or
 // (at your option) any later version.
-
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
+//
 
 // Date.cpp
 //
@@ -396,7 +397,7 @@
                switch (fn.nargs) {
                default:
                    IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("Date constructor called with more than 7 
arguments");
+                       log_aserror(_("Date constructor called with more than 7 
arguments"));
                    )
                case 7:
                        // fractions of milliseconds are ignored
@@ -423,7 +424,7 @@
                utcsecs = _mktime(&tm); // convert from local time
                if (utcsecs == -1) {
                        // mktime could not represent the time
-                       log_error("Date() failed to initialise from arguments");
+                       log_error(_("Date() failed to initialise from 
arguments"));
                        date->value = 0;        // or undefined?
                } else {
                        date->value = (double)utcsecs * 1000.0 + millisecs;
@@ -580,14 +581,14 @@
        // assert(fn.nargs == 1);
        if (fn.nargs < 1) {
            IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Date.setTime needs one argument");
+               log_aserror(_("Date.setTime needs one argument"));
            )
        } else
                date->value = fn.arg(0).to_number();
 
        if (fn.nargs > 1) {
            IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Date.setTime was called with more than one 
argument");
+               log_aserror(_("Date.setTime was called with more than one 
argument"));
            )
        }
 
@@ -637,7 +638,7 @@
        if (t == (time_t)(-1)) {
                // If mktime fails to reconstruct the date, return bogus value;
                // Not sure when/how this can happen. Values outside POSIX time?
-               log_error("Failed to set a date.\n");
+               log_error(_("Failed to set a date."));
                return(NAN);
        } else {
                return(t * 1000.0 + msec);
@@ -674,7 +675,7 @@
 #else
        time_t t = mktime(&tm);
        if (t == (time_t)(-1)) {
-           log_error("utc_tm_msec_to_date failed to convert a date");
+           log_error(_("utc_tm_msec_to_date failed to convert a date"));
        } else {
            // Knock out the H:M:S part of t and replace with UTC time-of-day
            t = t - (t % 86400) + tm.tm_sec + 60 * (tm.tm_min + 60 * 
tm.tm_hour);
@@ -749,7 +750,7 @@
        // assert(fn.nargs >= 1 && fn.nargs <= 3);
        if (fn.nargs < 1) {
            IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Date.setFullYear needs one argument");
+               log_aserror(_("Date.setFullYear needs one argument"));
            )
        } else {
            struct tm tm; double msec;
@@ -762,7 +763,7 @@
                    tm.tm_mday = (int) fn.arg(2).to_number();
            if (fn.nargs > 3) {
                IF_VERBOSE_ASCODING_ERRORS(
-                   log_aserror("Date.setFullYear was called with more than 
three arguments");
+                   log_aserror(_("Date.setFullYear was called with more than 
three arguments"));
                )
            }
            tm_msec_to_date(tm, msec, *date, utc);
@@ -791,7 +792,7 @@
        // assert(fn.nargs == 1);
        if (fn.nargs < 1) {
            IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Date.setYear needs one argument");
+               log_aserror(_("Date.setYear needs one argument"));
            )
        } else {
            struct tm tm; double msec;
@@ -805,7 +806,7 @@
                    tm.tm_mday = (int) fn.arg(2).to_number();
            if (fn.nargs > 3) {
                IF_VERBOSE_ASCODING_ERRORS(
-                   log_aserror("Date.setYear was called with more than three 
arguments");
+                   log_aserror(_("Date.setYear was called with more than three 
arguments"));
                )
            }
            tm_msec_to_date(tm, msec, *date, false);
@@ -827,7 +828,7 @@
        // assert(fn.nargs >= 1 && fn.nargs <= 2);
        if (fn.nargs < 1) {
            IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Date.setMonth needs one argument");
+               log_aserror(_("Date.setMonth needs one argument"));
            )
        } else {
            struct tm tm; double msec;
@@ -838,7 +839,7 @@
                    tm.tm_mday = (int) fn.arg(2).to_number();
            if (fn.nargs > 2) {
                IF_VERBOSE_ASCODING_ERRORS(
-                   log_aserror("Date.setMonth was called with more than three 
arguments");
+                   log_aserror(_("Date.setMonth was called with more than 
three arguments"));
                )
            }
            tm_msec_to_date(tm, msec, *date, utc);
@@ -857,7 +858,7 @@
 
        if (fn.nargs < 1) {
            IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Date.setDate needs one argument");
+               log_aserror(_("Date.setDate needs one argument"));
            )
        } else {
                struct tm tm; double msec;
@@ -868,7 +869,7 @@
        }
        if (fn.nargs > 1) {
            IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Date.setDate was called with more than one 
argument");
+               log_aserror(_("Date.setDate was called with more than one 
argument"));
            )
        }
        return as_value(date->value);
@@ -892,7 +893,7 @@
        // assert(fn.nargs >= 1 && fn.nargs <= 4);
        if (fn.nargs < 1) {
            IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Date.setHours needs one argument");
+               log_aserror(_("Date.setHours needs one argument"));
            )
        } else {
            struct tm tm; double msec;
@@ -907,7 +908,7 @@
                    msec = (int) fn.arg(3).to_number();
            if (fn.nargs > 4) {
                IF_VERBOSE_ASCODING_ERRORS(
-                   log_aserror("Date.setHours was called with more than four 
arguments");
+                   log_aserror(_("Date.setHours was called with more than four 
arguments"));
                )
            }
            tm_msec_to_date(tm, msec, *date, utc);
@@ -929,7 +930,7 @@
        //assert(fn.nargs >= 1 && fn.nargs <= 3);
        if (fn.nargs < 1) {
            IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Date.setMinutes needs one argument");
+               log_aserror(_("Date.setMinutes needs one argument"));
            )
        } else {
            struct tm tm; double msec;
@@ -942,7 +943,7 @@
                    msec = (int) fn.arg(2).to_number();
            if (fn.nargs > 3) {
                IF_VERBOSE_ASCODING_ERRORS(
-                   log_aserror("Date.setMinutes was called with more than 
three arguments");
+                   log_aserror(_("Date.setMinutes was called with more than 
three arguments"));
                )
            }
            tm_msec_to_date(tm, msec, *date, utc);
@@ -962,7 +963,7 @@
        // assert(fn.nargs >= 1 && fn.nargs <= 2);
        if (fn.nargs < 1) {
            IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Date.setSeconds needs one argument");
+               log_aserror(_("Date.setSeconds needs one argument"));
            )
        } else {
            // We *could* set seconds [and milliseconds] without breaking the
@@ -977,7 +978,7 @@
                    msec = (int) fn.arg(1).to_number();
            if (fn.nargs > 2) {
                IF_VERBOSE_ASCODING_ERRORS(
-                   log_aserror("Date.setMinutes was called with more than 
three arguments");
+                   log_aserror(_("Date.setMinutes was called with more than 
three arguments"));
                )
            }
            tm_msec_to_date(tm, msec, *date, utc);
@@ -991,14 +992,14 @@
        // assert(fn.nargs == 1);
        if (fn.nargs < 1) {
            IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Date.setMilliseconds needs one argument");
+               log_aserror(_("Date.setMilliseconds needs one argument"));
            )
        } else {
            // Zero the milliseconds and set them from the argument.
            date->value = std::fmod(date->value, 1000.0) + (int) 
fn.arg(0).to_number();
            if (fn.nargs > 1) {
                IF_VERBOSE_ASCODING_ERRORS(
-                   log_aserror("Date.setMilliseconds was called with more than 
one argument");
+                   log_aserror(_("Date.setMilliseconds was called with more 
than one argument"));
                )
            }
        }
@@ -1125,7 +1126,7 @@
 
        if (fn.nargs < 2) {
            IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Date.UTC needs one argument");
+               log_aserror(_("Date.UTC needs one argument"));
            )
            return as_value();
        }
@@ -1145,7 +1146,7 @@
        switch (fn.nargs) {
        default:        // More than 7
            IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Date.UTC was called with more than 7 arguments");
+               log_aserror(_("Date.UTC was called with more than 7 
arguments"));
            )
        case 7:
            // millisecs is double, but fractions of millisecs are ignored.

Index: server/asobj/Error.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Error.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- server/asobj/Error.cpp      19 Mar 2007 17:11:14 -0000      1.7
+++ server/asobj/Error.cpp      18 Apr 2007 11:00:29 -0000      1.8
@@ -1,3 +1,4 @@
+// Error.cpp:  ActionScript "Error" class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -70,7 +71,7 @@
 };
 
 as_value error_tostring(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 

Index: server/asobj/Global.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Global.cpp,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -b -r1.58 -r1.59
--- server/asobj/Global.cpp     15 Apr 2007 10:52:09 -0000      1.58
+++ server/asobj/Global.cpp     18 Apr 2007 11:00:29 -0000      1.59
@@ -1,3 +1,4 @@
+// Global.cpp:  Global ActionScript class setup, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -5,20 +6,18 @@
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation; either version 2 of the License, or
 // (at your option) any later version.
-
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-// Implementation of the Global ActionScript Object
-
-/* $Id: Global.cpp,v 1.58 2007/04/15 10:52:09 bjacques Exp $ */
+/* $Id: Global.cpp,v 1.59 2007/04/18 11:00:29 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -78,13 +77,13 @@
 #define ASSERT_FN_ARGS_IS_1                                            \
     if (fn.nargs < 1) {                                                        
\
        IF_VERBOSE_ASCODING_ERRORS(                                     \
-            log_aserror("%s needs one argument", __FUNCTION__);                
\
+            log_aserror(_("%s needs one argument"), __FUNCTION__);             
\
             )                                                          \
          return as_value();                                                    
\
     }                                                                  \
     IF_VERBOSE_ASCODING_ERRORS(                                                
\
        if (fn.nargs > 1)                                               \
-            log_aserror("%s has more than one argument", __FUNCTION__);        
\
+            log_aserror(_("%s has more than one argument"), __FUNCTION__);     
\
     )
 
 using namespace std;
@@ -191,13 +190,13 @@
     // assert(fn.nargs == 2 || fn.nargs == 1);
     if (fn.nargs < 1) {
        IF_VERBOSE_ASCODING_ERRORS(
-            log_aserror("%s needs at least one argument", __FUNCTION__);
+            log_aserror(_("%s needs at least one argument"), __FUNCTION__);
             )
          return as_value();
     }
     IF_VERBOSE_ASCODING_ERRORS(
        if (fn.nargs > 2)
-            log_aserror("%s has more than two arguments", __FUNCTION__);
+            log_aserror(_("%s has more than two arguments"), __FUNCTION__);
     )
 
     // Make sure our argument is the correct type
@@ -301,7 +300,7 @@
     int version = env->get_version();
     
 
-    //log_msg("ASSetPropFlags called with %d args", fn.nargs);
+    //log_msg(_("ASSetPropFlags called with %d args"), fn.nargs);
 
     // Check the arguments
     // assert(fn.nargs == 3 || fn.nargs == 4);
@@ -309,15 +308,15 @@
 
     if (fn.nargs < 3) {
        IF_VERBOSE_ASCODING_ERRORS(     
-            log_aserror("%s needs at least three arguments", __FUNCTION__);
+            log_aserror(_("%s needs at least three arguments"), __FUNCTION__);
             )
          return as_value();
     }
     IF_VERBOSE_ASCODING_ERRORS(
        if (fn.nargs > 4)
-            log_aserror("%s has more than four arguments", __FUNCTION__);
+            log_aserror(_("%s has more than four arguments"), __FUNCTION__);
        if (version == 5 && fn.nargs == 4)
-            log_aserror("%s has four arguments in a SWF version 5 movie", 
__FUNCTION__);
+            log_aserror(_("%s has four arguments in a SWF version 5 movie"), 
__FUNCTION__);
     )
                
     // ASSetPropFlags(obj, props, n, allowFalse=false)
@@ -326,8 +325,8 @@
     boost::intrusive_ptr<as_object> obj = fn.arg(0).to_object();
     if ( ! obj )
     {
-               log_warning("Invalid call to ASSetPropFlags: "
-                       "object argument is not an object: %s",
+               log_error(_("Invalid call to ASSetPropFlags: "
+                       "object argument is not an object: %s"),
                        fn.arg(0).to_string().c_str());
                return as_value();
     }

Index: server/asobj/Key.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Key.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- server/asobj/Key.cpp        2 Apr 2007 15:45:22 -0000       1.20
+++ server/asobj/Key.cpp        18 Apr 2007 11:00:29 -0000      1.21
@@ -1,3 +1,4 @@
+// Key.cpp:  ActionScript "Key" class (keyboards), for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -43,37 +44,37 @@
 void
 Key::addListener()
 {
-    log_msg("%s:unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
 }
 
 void
 Key::getAscii()
 {
-    log_msg("%s:unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
 }
 
 void
 Key::getCode()
 {
-    log_msg("%s:unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
 }
 
 void
 Key::isDown()
 {
-    log_msg("%s:unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
 }
 
 void
 Key::isToggled()
 {
-    log_msg("%s:unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
 }
 
 void
 Key::removeListener()
 {
-    log_msg("%s:unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
 }
 as_value
 key_new(const fn_call& /* fn */)
@@ -227,14 +228,14 @@
 {
     if (fn.nargs < 1)
        {
-           log_error("key_add_listener needs one argument (the listener 
object)\n");
+           log_error(_("key_add_listener needs one argument (the listener 
object)"));
            return as_value();
        }
 
     boost::intrusive_ptr<as_object> listener = fn.arg(0).to_object();
     if (listener == NULL)
        {
-           log_error("key_add_listener passed a NULL object; ignored\n");
+           log_error(_("key_add_listener passed a NULL object; ignored"));
            return as_value();
        }
 
@@ -275,7 +276,7 @@
 {
     if (fn.nargs < 1)
        {
-           log_error("key_is_down needs one argument (the key code)\n");
+           log_error(_("key_is_down needs one argument (the key code)"));
            return as_value();
        }
 
@@ -299,14 +300,14 @@
 {
     if (fn.nargs < 1)
        {
-           log_error("key_remove_listener needs one argument (the listener 
object)\n");
+           log_error(_("key_remove_listener needs one argument (the listener 
object)"));
            return as_value();
        }
 
     boost::intrusive_ptr<as_object> listener = fn.arg(0).to_object();
     if (listener == NULL)
        {
-           log_error("key_remove_listener passed a NULL object; ignored\n");
+           log_error(_("key_remove_listener passed a NULL object; ignored"));
            return as_value();
        }
 

Index: server/asobj/LoadVars.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/LoadVars.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- server/asobj/LoadVars.cpp   16 Apr 2007 18:23:06 -0000      1.21
+++ server/asobj/LoadVars.cpp   18 Apr 2007 11:00:29 -0000      1.22
@@ -1,3 +1,4 @@
+// LoadVars.cpp:  ActionScript "LoadVars" class (HTTP variables), for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -489,7 +490,7 @@
 {
        boost::intrusive_ptr<LoadVars> ptr = ensureType<LoadVars>(fn.this_ptr);
        UNUSED(ptr);
-       log_error("%s: unimplemented", __FUNCTION__);
+       log_unimpl (__FUNCTION__);
        return as_value(); 
 }
 
@@ -498,7 +499,7 @@
 {
        boost::intrusive_ptr<LoadVars> ptr = ensureType<LoadVars>(fn.this_ptr);
        UNUSED(ptr);
-       log_error("%s: unimplemented", __FUNCTION__);
+       log_unimpl (__FUNCTION__);
        return as_value(); 
 }
 
@@ -524,7 +525,7 @@
        if ( fn.nargs < 1 )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("LoadVars.load() requires at least one argument");
+               log_aserror(_("LoadVars.load() requires at least one 
argument"));
                );
                return as_value(false);
        }
@@ -533,7 +534,7 @@
        if ( urlstr.empty() )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("LoadVars.load(): invalid empty url ");
+               log_aserror(_("LoadVars.load(): invalid empty url"));
                );
                return as_value(false);
        }
@@ -548,7 +549,7 @@
 {
        boost::intrusive_ptr<LoadVars> ptr = ensureType<LoadVars>(fn.this_ptr);
        UNUSED(ptr);
-       log_error("%s: unimplemented", __FUNCTION__);
+       log_unimpl (__FUNCTION__);
        return as_value(); 
 }
 
@@ -560,7 +561,7 @@
        if ( fn.nargs < 2 )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("LoadVars.sendAndLoad() requires at least two 
arguments");
+               log_aserror(_("LoadVars.sendAndLoad() requires at least two 
arguments"));
                );
                return as_value(false);
        }
@@ -569,7 +570,7 @@
        if ( urlstr.empty() )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("LoadVars.sendAndLoad(): invalid empty url ");
+               log_aserror(_("LoadVars.sendAndLoad(): invalid empty url"));
                );
                return as_value(false);
        }
@@ -578,7 +579,7 @@
        if ( ! target )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("LoadVars.sendAndLoad(): invalid target (must be a 
LoadVars object)");
+               log_aserror(_("LoadVars.sendAndLoad(): invalid target (must be 
a LoadVars object)"));
                );
                return as_value(false);
        }
@@ -598,7 +599,7 @@
 {
        boost::intrusive_ptr<LoadVars> ptr = ensureType<LoadVars>(fn.this_ptr);
        UNUSED(ptr);
-       log_error("%s: unimplemented", __FUNCTION__);
+       log_unimpl (__FUNCTION__);
        return as_value(); 
 }
 
@@ -633,4 +634,3 @@
 
 
 } // end of gnash namespace
-

Index: server/asobj/LocalConnection.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/LocalConnection.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- server/asobj/LocalConnection.cpp    15 Apr 2007 10:52:09 -0000      1.13
+++ server/asobj/LocalConnection.cpp    18 Apr 2007 11:00:29 -0000      1.14
@@ -1,3 +1,4 @@
+// LocalConnection.cpp:  Connect two SWF movies & send objects, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,12 +11,10 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-// 
-//
 //
 
 #ifdef HAVE_CONFIG_H
@@ -95,7 +94,7 @@
 void
 LocalConnection::send()
 {
-    log_msg("%s:unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
 }
 
 /// \brief Instantiate a new LocalConnection object within a flash movie
@@ -141,7 +140,7 @@
     if (fn.nargs != 0) {
         ret = ptr->obj.connect(fn.arg(0).to_string().c_str());
     } else {
-        log_msg("ERROR: No connection name specified to 
LocalConnection.connect()!\n");
+        log_error(_("No connection name specified to 
LocalConnection.connect()"));
         ret = ptr->obj.connect("localhost"); // FIXME: This should probably
                                        // fail instead
     }
@@ -159,9 +158,8 @@
 // \brief The callback for LocalConnection::send()
 as_value localconnection_send(const fn_call& /*fn*/)
 {
-    log_msg("%s:unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 
 } // end of gnash namespace
-

Index: server/asobj/Microphone.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Microphone.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- server/asobj/Microphone.cpp 19 Mar 2007 17:11:14 -0000      1.6
+++ server/asobj/Microphone.cpp 18 Apr 2007 11:00:29 -0000      1.7
@@ -1,3 +1,4 @@
+// Microphone.cpp:  ActionScript "Microphone" input class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -76,23 +77,23 @@
 };
 
 as_value microphone_get(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value microphone_setgain(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value microphone_setrate(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value microphone_setsilencelevel(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value microphone_setuseechosuppression(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 
@@ -126,4 +127,3 @@
 
 
 } // end of gnash namespace
-

Index: server/asobj/Mouse.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Mouse.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- server/asobj/Mouse.cpp      30 Mar 2007 14:58:26 -0000      1.7
+++ server/asobj/Mouse.cpp      18 Apr 2007 11:00:29 -0000      1.8
@@ -1,3 +1,4 @@
+// Mouse.cpp:  ActionScript "Mouse" input device class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -81,7 +82,7 @@
     static bool warned=false;
     if ( ! warned )
     {
-        log_warning("%s: unimplemented", __FUNCTION__);
+        log_unimpl (__FUNCTION__);
         warned=true;
     }
     return as_value();
@@ -95,7 +96,7 @@
     static bool warned=false;
     if ( ! warned )
     {
-        log_warning("%s: unimplemented", __FUNCTION__);
+        log_unimpl (__FUNCTION__);
         warned=true;
     }
     return as_value();
@@ -109,7 +110,7 @@
     static bool warned=false;
     if ( ! warned )
     {
-        log_warning("%s: unimplemented", __FUNCTION__);
+        log_unimpl (__FUNCTION__);
         warned=true;
     }
     return as_value();
@@ -123,7 +124,7 @@
     static bool warned=false;
     if ( ! warned )
     {
-        log_warning("%s: unimplemented", __FUNCTION__);
+        log_unimpl (__FUNCTION__);
         warned=true;
     }
     return as_value();
@@ -159,4 +160,3 @@
 
 
 } // end of gnash namespace
-

Index: server/asobj/MovieClipLoader.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/MovieClipLoader.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- server/asobj/MovieClipLoader.cpp    15 Apr 2007 10:52:09 -0000      1.24
+++ server/asobj/MovieClipLoader.cpp    18 Apr 2007 11:00:29 -0000      1.25
@@ -1,3 +1,4 @@
+// MovieClipLoader.cpp:  Implementation of ActionScript MovieClipLoader class.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,16 +11,12 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-// 
-//
 //
 
-// Implementation of ActionScript MovieClipLoader class.
-
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -82,7 +79,7 @@
        if ( o == NULL )
        {
                o = new as_object();
-               //log_msg("MovieClipLoader interface @ %p", o.get());
+               //log_msg(_("MovieClipLoader interface @ %p"), o.get());
                attachMovieClipLoaderInterface(*o);
        }
        return o.get();
@@ -165,7 +162,7 @@
 struct mcl *
 MovieClipLoader::getProgress(as_object* /*ao*/)
 {
-  //log_msg("%s: \n", __FUNCTION__);
+  GNASH_REPORT_FUNCTION;
 
   return &_mcl;
 }
@@ -182,7 +179,7 @@
        URL url(url_str.c_str(), get_base_url());
        
 #if GNASH_DEBUG
-       log_msg(" resolved url: %s\n", url.str().c_str());
+       log_msg(_(" resolved url: %s"), url.str().c_str());
 #endif
                         
        // Call the callback since we've started loading the file
@@ -221,7 +218,7 @@
 
        // TODO: dispatchEvent("onLoadProgress", ...)
 
-       log_warning("FIXME: MovieClipLoader calling onLoadComplete *before* 
movie has actually been fully loaded (cheating)");
+       log_unimpl (_("FIXME: MovieClipLoader calling onLoadComplete *before* 
movie has actually been fully loaded (cheating)"));
        dispatchEvent("onLoadComplete", events_call);
 
        return true;
@@ -230,7 +227,7 @@
 void
 MovieClipLoader::unloadClip(void *)
 {
-  log_msg("%s: \n", __FUNCTION__);
+  GNASH_REPORT_FUNCTION;
 }
 
 
@@ -261,7 +258,7 @@
        typedef Listeners::iterator iterator;
 
 #if GNASH_DEBUG
-       log_msg("Dispatching %s event to " SIZET_FMT " listeners",
+       log_msg(_("Dispatching %s event to " SIZET_FMT " listeners"),
                event.c_str(), _listeners.size());
 #endif
 
@@ -274,7 +271,7 @@
                if ( ! listener->get_member(event.c_str(), &method) )
                {
 #if GNASH_DEBUG
-log_msg(" Listener %p doesn't have an %s event to listen for, skipped",
+log_msg(_("Listener %p doesn't have an %s event to listen for, skipped"),
        (void*)listener, event.c_str());
 #endif
                        // this listener doesn't care about this event
@@ -283,8 +280,8 @@
                }
 
 #if GNASH_DEBUG
-               log_msg("Testing call to listener's "
-                       " %s function", event.c_str());
+               log_msg(_("Testing call to listener's "
+                       " %s function"), event.c_str());
 #endif
 
                call_method(method, &fn.env(), fn.this_ptr.get(), fn.nargs, 
fn.offset());
@@ -297,7 +294,7 @@
 {
        as_value        val, method;
 
-       //log_msg("%s: nargs = %d\n", __FUNCTION__, fn.nargs);
+       //log_msg(_("%s: nargs = %d"), __FUNCTION__, fn.nargs);
 
        boost::intrusive_ptr<MovieClipLoader> ptr = 
ensureType<MovieClipLoader>(fn.this_ptr);
   
@@ -308,7 +305,7 @@
       // to convert to string anyway...
        if ( ! url_arg.is_string() )
        {
-               log_error("Malformed SWF, MovieClipLoader.loadClip() first 
argument is not a string (%s)", url_arg.to_string());
+               log_swferror(_("MovieClipLoader.loadClip() first argument is 
not a string (%s)"), url_arg.to_string());
                return as_value(false);
                return;
        }
@@ -318,19 +315,19 @@
        character* target = fn.env().find_target(fn.arg(1));
        if ( ! target )
        {
-               log_error("Could not find target %s", 
fn.arg(1).to_string().c_str());
+               log_error(_("Could not find target %s"), 
fn.arg(1).to_string().c_str());
                return as_value(false);
        }
        sprite_instance* sprite = dynamic_cast<sprite_instance*>(target);
        if ( ! sprite )
        {
-               log_error("Target is not a sprite instance (%s)",
+               log_error(_("Target is not a sprite instance (%s)"),
                        typeid(*target).name());
                return as_value(false);
        }
 
 #if GNASH_DEBUG
-       log_msg("load clip: %s, target is: %p\n",
+       log_msg(_("load clip: %s, target is: %p\n"),
                str_url.c_str(), (void*)sprite);
 #endif
 
@@ -344,7 +341,7 @@
 moviecliploader_unloadclip(const fn_call& fn)
 {
   const std::string filespec = fn.arg(0).to_string();
-  log_msg("%s: FIXME: Load Movie Clip: %s\n", __FUNCTION__, filespec.c_str());
+  log_unimpl (_("%s: %s"), __PRETTY_FUNCTION__, filespec.c_str());
   return as_value();
 }
 
@@ -353,7 +350,7 @@
 {
 
   as_object*   mov_obj = new MovieClipLoader;
-  //log_msg("MovieClipLoader instance @ %p", mov_obj);
+  //log_msg(_("MovieClipLoader instance @ %p"), mov_obj);
 
   return as_value(mov_obj); // will store in a boost::intrusive_ptr
 }
@@ -363,7 +360,7 @@
 static as_value
 moviecliploader_getprogress(const fn_call& fn)
 {
-  //log_msg("%s: nargs = %d\n", __FUNCTION__, nargs);
+  //log_msg(_("%s: nargs = %d"), __FUNCTION__, nargs);
   
   boost::intrusive_ptr<MovieClipLoader> ptr = 
ensureType<MovieClipLoader>(fn.this_ptr);
   
@@ -387,7 +384,9 @@
        boost::intrusive_ptr<as_object> listener = fn.arg(0).to_object();
        if ( ! listener )
        {
-               log_error("ActionScript bug: Listener given to 
MovieClipLoader.addListener() is not an object");
+               IF_VERBOSE_ASCODING_ERRORS (
+               log_aserror(_("Listener given to MovieClipLoader.addListener() 
is not an object"));
+               )
                return as_value();
        }
 
@@ -403,7 +402,9 @@
        boost::intrusive_ptr<as_object> listener = fn.arg(0).to_object();
        if ( ! listener )
        {
-               log_error("ActionScript bug: Listener given to 
MovieClipLoader.removeListener() is not an object");
+               IF_VERBOSE_ASCODING_ERRORS (
+               log_aserror(_("Listener given to 
MovieClipLoader.removeListener() is not an object"));
+               )
                return as_value();
        }
 
@@ -426,7 +427,7 @@
                attachMovieClipLoaderInterface(*cl);  // not sure we should be 
doing this..
        }
        global.init_member("MovieClipLoader", cl.get()); 
//as_value(moviecliploader_new));
-       //log_msg("MovieClipLoader class @ %p", cl.get());
+       //log_msg(_("MovieClipLoader class @ %p"), cl.get());
 }
 
 } // end of gnash namespace

Index: server/asobj/NetConnection.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetConnection.cpp,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- server/asobj/NetConnection.cpp      15 Apr 2007 10:52:09 -0000      1.37
+++ server/asobj/NetConnection.cpp      18 Apr 2007 11:00:29 -0000      1.38
@@ -1,3 +1,4 @@
+// NetConnection.cpp:  Open local connections for FLV files or URLs.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,11 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-/* $Id: NetConnection.cpp,v 1.37 2007/04/15 10:52:09 bjacques Exp $ */
+/* $Id: NetConnection.cpp,v 1.38 2007/04/18 11:00:29 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -35,10 +38,6 @@
 
 using namespace std;
 
-namespace {
-gnash::LogFile& dbglogfile = gnash::LogFile::getDefaultInstance();
-}
-
 namespace gnash {
 
 static as_value netconnection_new(const fn_call& fn);
@@ -95,20 +94,20 @@
 
        // Check if we're allowed to open url
        if (!URLAccessManager::allow(uri)) {
-               log_warning("Gnash is not allowed to open this url.");
+               log_security(_("Gnash is not allowed to open this url: %s"), 
_url.c_str());
                return false;
        }
 
        _loader = new LoadThread();
        
        if 
(!_loader->setStream(std::auto_ptr<tu_file>(StreamProvider::getDefaultInstance().getStream(uri))))
 {
-               log_warning("Gnash could not open this url:%s", _url.c_str());
+               log_error(_("Gnash could not open this url: %s"), _url.c_str());
                delete _loader;
                _loader = NULL;
                return false;
        }
 
-       log_msg("Connection etablished to movie: %s", _url.c_str());
+       log_msg(_("Connection etablished to movie: %s"), _url.c_str());
 
        return true;
 }

Index: server/asobj/NetStream.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStream.cpp,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -b -r1.36 -r1.37
--- server/asobj/NetStream.cpp  15 Apr 2007 10:52:09 -0000      1.36
+++ server/asobj/NetStream.cpp  18 Apr 2007 11:00:30 -0000      1.37
@@ -1,3 +1,4 @@
+// NetStream.cpp:  ActionScript class for streaming audio/video, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,12 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: NetStream.cpp,v 1.36 2007/04/15 10:52:09 bjacques Exp $ */
+/* $Id: NetStream.cpp,v 1.37 2007/04/18 11:00:30 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -80,9 +82,9 @@
                else
                {
                        IF_VERBOSE_ASCODING_ERRORS(
-                               log_aserror("First argument "
+                               log_aserror(_("First argument "
                                        "to NetStream constructor "
-                                       "doesn't cast to a NetConnection (%s)",
+                                       "doesn't cast to a NetConnection (%s)"),
                                        fn.arg(0).to_string().c_str());
                        );
                }
@@ -119,7 +121,7 @@
        if (fn.nargs < 1)
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("NetStream play needs args");
+               log_aserror(_("NetStream play needs args"));
                );
                return as_value();
        }
@@ -248,4 +250,3 @@
 }
 
 } // end of gnash namespace
-

Index: server/asobj/NetStreamFfmpeg.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStreamFfmpeg.cpp,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- server/asobj/NetStreamFfmpeg.cpp    11 Apr 2007 17:54:21 -0000      1.37
+++ server/asobj/NetStreamFfmpeg.cpp    18 Apr 2007 11:00:30 -0000      1.38
@@ -1,3 +1,4 @@
+// NetStreamFfmpeg.cpp:  Network streaming for FFMPEG video library, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,11 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-/* $Id: NetStreamFfmpeg.cpp,v 1.37 2007/04/11 17:54:21 bjacques Exp $ */
+/* $Id: NetStreamFfmpeg.cpp,v 1.38 2007/04/18 11:00:30 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -224,7 +227,7 @@
        if ( ! _netCon )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("No NetConnection associated with this NetStream, 
won't play");
+               log_aserror(_("No NetConnection associated with this NetStream, 
won't play"));
                );
                return 0;
        }
@@ -255,20 +258,20 @@
 
        AVCodec* codec = avcodec_find_decoder(codec_id);
        if (!codec) {
-               log_error("libavcodec couldn't find decoder.");
+               log_error(_("libavcodec couldn't find decoder"));
                return NULL;
        }
 
        AVCodecContext * context = avcodec_alloc_context();
        if (!context) {
-               log_error("libavcodec couldn't allocate context.");
+               log_error(_("libavcodec couldn't allocate context"));
                return NULL;
        }
 
        int rv = avcodec_open(context, codec);
        if (rv < 0) {
                avcodec_close(context);
-               log_error("libavcodec failed to initialize codec.");
+               log_error(_("libavcodec failed to initialize codec"));
                return NULL;
        }
 
@@ -305,7 +308,7 @@
                        codec_id = CODEC_ID_FLASHSV;
                        break;
                default:
-                       log_error("Unsupported video codec");
+                       log_error(_("Unsupported video codec %d"), (int) 
videoInfo->codec);
                        return NULL;
        }
 
@@ -336,7 +339,7 @@
                        codec_id = CODEC_ID_MP3;
                        break;
                default:
-                       log_error("Unsupported audio codec");
+                       log_error(_("Unsupported audio codec %d"), 
(int)audioInfo->codec);
                        return NULL;
        }
 
@@ -361,7 +364,7 @@
        probe_data.buf_size = 2048;
 
        if (ns->readPacket(ns, probe_data.buf, probe_data.buf_size) < 1){
-               log_warning("Gnash could not read from movie url.");
+               log_error(_("Gnash could not read from movie url"));
                return NULL;
        }
 
@@ -378,7 +381,7 @@
        // Pass stuff from/to the NetConnection object.
        assert(ns);
        if ( !nc->openConnection(ns->url.c_str(), ns) ) {
-               log_warning("Gnash could not open movie: %s", ns->url.c_str());
+               log_error(_("Gnash could not open movie: %s"), ns->url.c_str());
                ns->set_status("NetStream.Buffer.StreamNotFound");
                return;
        }
@@ -397,7 +400,7 @@
                ns->m_parser = new FLVParser();
                if (!nc->connectParser(ns->m_parser)) {
                        ns->set_status("NetStream.Buffer.StreamNotFound");
-                       log_warning("Gnash could not open movie: %s", 
ns->url.c_str());
+                       log_error(_("Gnash could not open FLV movie: %s"), 
ns->url.c_str());
                        delete ns->m_parser;
                        return;
                }
@@ -408,13 +411,13 @@
 
                ns->m_VCodecCtx = initFlvVideo(ns->m_parser);
                if (!ns->m_VCodecCtx) {
-                       log_msg("Failed to initialize video codec.");
+                       log_msg(_("Failed to initialize FLV video codec"));
                        return;
                }
 
                ns->m_ACodecCtx = initFlvAudio(ns->m_parser);
                if (!ns->m_ACodecCtx) {
-                       log_msg("Failed to initialize audio codec.");
+                       log_msg(_("Failed to initialize FLV audio codec"));
                        return;
                }
 
@@ -444,7 +447,7 @@
 
        AVInputFormat* inputFmt = probeStream(ns);
        if (!inputFmt) {
-               log_error("Couldn't determine stream input format from URL %s", 
ns->url.c_str());
+               log_error(_("Couldn't determine stream input format from URL 
%s"), ns->url.c_str());
                return;
        }
 
@@ -460,7 +463,7 @@
 
        // Open the stream. the 4th argument is the filename, which we ignore.
        if(av_open_input_stream(&ns->m_FormatCtx, &ns->ByteIOCxt, "", inputFmt, 
NULL) < 0){
-               log_error("Couldn't open file '%s' for decoding", 
ns->url.c_str());
+               log_error(_("Couldn't open file '%s' for decoding"), 
ns->url.c_str());
                ns->set_status("NetStream.Play.StreamNotFound");
                return;
        }
@@ -470,7 +473,7 @@
        int ret = av_find_stream_info(ns->m_FormatCtx);
        if (ret < 0)
        {
-               log_error("Couldn't find stream information from '%s', error 
code: %d", ns->url.c_str(), ret);
+               log_error(_("Couldn't find stream information from '%s', error 
code: %d"), ns->url.c_str(), ret);
                return;
        }
 
@@ -509,7 +512,7 @@
 
        if (ns->m_video_index < 0)
        {
-               log_error("Didn't find a video stream from '%s'", 
ns->url.c_str());
+               log_error(_("Didn't find a video stream from '%s'"), 
ns->url.c_str());
                return;
        }
 
@@ -521,14 +524,16 @@
        if (pCodec == NULL)
        {
                ns->m_VCodecCtx = NULL;
-               log_error("Decoder not found");
+               log_error(_("Video decoder %d not found"), 
+                       ns->m_VCodecCtx->codec_id);
                return;
        }
 
        // Open codec
        if (avcodec_open(ns->m_VCodecCtx, pCodec) < 0)
        {
-               log_error("Could not open codec");
+               log_error(_("Could not open codec %d"),
+                       ns->m_VCodecCtx->codec_id);
        }
 
        // Allocate a frame to store the decoded frame in
@@ -553,14 +558,16 @@
                AVCodec* pACodec = 
avcodec_find_decoder(ns->m_ACodecCtx->codec_id);
            if(pACodec == NULL)
                {
-                       log_error("No available AUDIO decoder to process MPEG 
file: '%s'", ns->url.c_str());
+                       log_error(_("No available audio decoder %d to process 
MPEG file: '%s'"), 
+                               ns->m_ACodecCtx->codec_id, ns->url.c_str());
                        return;
                }
         
                // Open codec
                if (avcodec_open(ns->m_ACodecCtx, pACodec) < 0)
                {
-                       log_error("Could not open AUDIO codec");
+                       log_error(_("Could not open audio codec %d for %s"));
+                               ns->m_ACodecCtx->codec_id, ns->url.c_str());
                        return;
                }
 
@@ -734,7 +741,7 @@
                }
                else
                {
-                       log_warning("read_frame: not audio & video stream");
+                       log_error(_("read_frame: not audio & video stream"));
                }
                return true;
        }
@@ -934,7 +941,7 @@
        }
        else
        {
-               log_warning("Problems decoding frame");
+               log_error(_("Problems decoding frame"));
                return false;
        }
 
@@ -978,7 +985,7 @@
                newpos = static_cast<long>(pos / timebase);
                
                if (av_seek_frame(m_FormatCtx, m_video_index, newpos, 0) < 0) {
-                       log_warning("seeking failed");
+                       log_error(_("%s: seeking failed"), __FUNCTION__);
                        return;
                }
        } else {

Index: server/asobj/NetStreamGst.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStreamGst.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- server/asobj/NetStreamGst.cpp       7 Apr 2007 12:50:04 -0000       1.23
+++ server/asobj/NetStreamGst.cpp       18 Apr 2007 11:00:30 -0000      1.24
@@ -1,3 +1,4 @@
+// NetStreamGst.cpp:  Audio/video output via Gstreamer library, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,11 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-/* $id$ */
+/* $Id: NetStreamGst.cpp,v 1.24 2007/04/18 11:00:30 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -160,11 +163,11 @@
                return 0;
        }
 
-       // Does it have an associated NetConnectoin ?
+       // Does it have an associated NetConnection?
        if ( ! _netCon )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("No NetConnection associated with this NetStream, 
won't play");
+               log_aserror(_("No NetConnection associated with this NetStream, 
won't play"));
                );
                return 0;
        }
@@ -340,7 +343,7 @@
        assert(ns);
        if ( !nc->openConnection(ns->url.c_str(), ns) ) {
                ns->set_status("NetStream.Play.StreamNotFound");
-               log_warning("Gnash could not open movie: %s", ns->url.c_str());
+               log_warning(_("Gnash could not open movie: %s"), 
ns->url.c_str());
                return;
        }
 
@@ -357,7 +360,7 @@
                ns->m_parser = new FLVParser();
                if (!nc->connectParser(ns->m_parser)) {
                        ns->set_status("NetStream.Play.StreamNotFound");
-                       log_warning("Gnash could not open movie: %s", 
ns->url.c_str());
+                       log_error(_("Gnash could not open movie: %s"), 
ns->url.c_str());
                        return;
                        
                }
@@ -374,7 +377,7 @@
 
        // Check if the creation of the gstreamer pipeline and audiosink was a 
succes
        if (!ns->pipeline) {
-               gnash::log_error("The gstreamer pipeline element could not be 
created");
+               gnash::log_error(_("The gstreamer pipeline element could not be 
created"));
                return;
        }
 
@@ -393,7 +396,7 @@
                if (!ns->audiosink) ns->audiosink = gst_element_factory_make 
("esdsink", NULL);
 
                if (!ns->audiosink) {
-                       gnash::log_error("The gstreamer audiosink element could 
not be created");
+                       log_error(_("The gstreamer audiosink element could not 
be created"));
                        return;
                }
        } else {
@@ -407,7 +410,7 @@
        ns->volume = gst_element_factory_make ("volume", NULL);
 
        if (!ns->audioconv || !ns->volume) {
-               gnash::log_error("Gstreamer audio element(s) for movie handling 
could not be created");
+               log_error(_("Gstreamer audio element(s) for movie handling 
could not be created"));
                return;
        }
 
@@ -452,7 +455,7 @@
 
                        // Check if the element was correctly created
                        if (!ns->videodecoder) {
-                               log_error("A gstreamer flashvideo (h.263) 
decoder element could not be created! You probably need to install 
gst-ffmpeg.");
+                               log_error(_("A gstreamer flashvideo (h.263) 
decoder element could not be created.  You probably need to install 
gst-ffmpeg."));
                                return;
                        }
 
@@ -466,7 +469,7 @@
 
                        // Check if the element was correctly created
                        if (!ns->videodecoder) {
-                               log_error("A gstreamer flashvideo (VP6) decoder 
element could not be created! You probably need to install gst-ffmpeg.");
+                               log_error(_("A gstreamer flashvideo (VP6) 
decoder element could not be created! You probably need to install 
gst-ffmpeg."));
                                return;
                        }
 
@@ -480,12 +483,13 @@
 
                        // Check if the element was correctly created
                        if (!ns->videodecoder) {
-                               log_error("A gstreamer flashvideo (ScreenVideo) 
decoder element could not be created! You probably need to install 
gst-ffmpeg.");
+                               log_error(_("A gstreamer flashvideo 
(ScreenVideo) decoder element could not be created! You probably need to 
install gst-ffmpeg."));
                                return;
                        }
 
                } else {
-                       log_error("Unsupported video codec");
+                       log_error(_("Unsupported video codec %d"),
+                                 videoInfo->codec);
                        return;
                }
 
@@ -502,14 +506,14 @@
                                        static bool warned = false;
                                        if ( ! warned )
                                        {
-                                       log_warning("This version of fluendos 
mp3 plugin does not support flash streaming sounds, please upgrade to version 
0.10.4 or higher.");
+                                       log_error(_("This version of Fluendo's 
mp3 plugin does not support flash streaming sounds, please upgrade to version 
0.10.4 or higher."));
                                        warned=true;
                                        }
                                }
                        }
                        // Check if the element was correctly created
                        if (!ns->audiodecoder) {
-                               log_error("A gstreamer mp3-decoder element 
could not be created! You probably need to install a mp3-decoder plugin like 
gstreamer0.10-mad or gstreamer0.10-fluendo-mp3.");
+                               log_error(_("A gstreamer mp3-decoder element 
could not be created! You probably need to install a mp3-decoder plugin like 
gstreamer0.10-mad or gstreamer0.10-fluendo-mp3."));
                                return;
                        }
 
@@ -523,7 +527,8 @@
                        g_object_set (G_OBJECT (ns->audioinputcaps), "caps", 
audioincaps, NULL);
                        gst_caps_unref (audioincaps);
                } else {
-                       log_error("Unsupported audio codec");
+                       log_error(_("Unsupported audio codec %d"),
+                                 audioInfo->codec);
                        return;
                }
        }
@@ -558,18 +563,18 @@
 
        if (ns->m_isFLV) {
                if (!ns->videosource || !ns->audiosource || !ns->videoinputcaps 
||  !ns->audioinputcaps) {
-                       gnash::log_error("Gstreamer source element(s) for video 
movie handling could not be created, you proberly need to install 
gstreamer0.10-core for fakesrc and capsfilter support.");
+                       log_error(_("Gstreamer source element(s) for video 
movie handling could not be created, you probably need to install 
gstreamer0.10-core for fakesrc and capsfilter support."));
                        return;
                }
        } else {
                if (!ns->decoder || !ns->source) {
-                       gnash::log_error("Gstreamer element(s) for video movie 
handling could not be created, you proberly need to install gstreamer0.10-base 
for decodebin support.");
+                       log_error(_("Gstreamer element(s) for video movie 
handling could not be created, you probably need to install gstreamer0.10-base 
for decodebin support."));
                        return;
                }
        }
 
        if (!ns->colorspace || !ns->videocaps || !ns->videorate || 
!ns->videosink) {
-               gnash::log_error("Gstreamer element(s) for video movie handling 
could not be created, you proberly need to install gstreamer0.10-base for 
ffmpegcolorspace and videorate support.");
+               log_error(_("Gstreamer element(s) for video movie handling 
could not be created, you probably need to install gstreamer0.10-base for 
ffmpegcolorspace and videorate support."));
                return;
        }
 
@@ -636,7 +641,7 @@
                /*if (!gst_element_seek (pipeline, 1.0, GST_FORMAT_TIME, 
GST_SEEK_FLAG_FLUSH,
                        GST_SEEK_TYPE_SET, GST_SECOND * 
static_cast<long>(newpos),
                        GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE)) {
-                       log_warning("Seek failed");
+                       log_error("Gstreamer seek failed");
                        set_status("NetStream.Seek.InvalidTime");
                        return;
                }*/
@@ -644,7 +649,7 @@
                if (!gst_element_seek (pipeline, 1.0, GST_FORMAT_TIME, 
GST_SEEK_FLAG_FLUSH,
                        GST_SEEK_TYPE_SET, GST_SECOND * static_cast<long>(pos),
                        GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE)) {
-                       log_warning("Seek failed");
+                       log_error("Gstreamer seek failed");
                        set_status("NetStream.Seek.InvalidTime");
                        return;
                }

Index: server/asobj/Number.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Number.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- server/asobj/Number.cpp     22 Mar 2007 13:19:04 -0000      1.27
+++ server/asobj/Number.cpp     18 Apr 2007 11:00:30 -0000      1.28
@@ -1,3 +1,4 @@
+// Number.cpp:  ActionScript Number class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,13 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-/* $Id: Number.cpp,v 1.27 2007/03/22 13:19:04 strk Exp $ */
-
-// Implementation of ActionScript Number class.
+/* $Id: Number.cpp,v 1.28 2007/04/18 11:00:30 jgilmore Exp $ */
 
 #include "log.h"
 #include "tu_config.h"
@@ -217,7 +218,7 @@
                        
                        sprintf(_str, "%.15g", _val * 10.0);
                        if ((cp = strchr(_str, '.')) == NULL || cp[1] != '0') {
-                               log_error("Internal error: Cannot find \".0\" 
in %s for %.15g\n", _str, _val);
+                               log_error(_("Internal error: Cannot find \".0\" 
in %s for %.15g"), _str, _val);
                                // Just give it to them raw instead
                                sprintf(_str, "%.15g", _val);
                        } else {

Index: server/asobj/Object.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Object.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- server/asobj/Object.cpp     16 Apr 2007 18:23:06 -0000      1.23
+++ server/asobj/Object.cpp     18 Apr 2007 11:00:30 -0000      1.24
@@ -1,3 +1,4 @@
+// Object.cpp:  Implementation of ActionScript Object class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,17 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-// 
 //
-//
-
-/* $Id: Object.cpp,v 1.23 2007/04/16 18:23:06 strk Exp $ */
 
-// Implementation of ActionScript Object class.
+/* $Id: Object.cpp,v 1.24 2007/04/18 11:00:30 jgilmore Exp $ */
 
 #include "tu_config.h"
 #include "Object.h"
@@ -124,7 +121,9 @@
        }
        else
        {
-               log_error("Too many args to Object constructor");
+               IF_VERBOSE_ASCODING_ERRORS (
+               log_aserror(_("Too many args to Object constructor"));
+               )
                new_obj = new object_as_object();
        }
 
@@ -169,8 +168,8 @@
                IF_VERBOSE_ASCODING_ERRORS(
                std::stringstream ss;
                fn.dump_args(ss);
-               log_aserror("Invalid call to Object.addProperty(%s) - "
-                       "expected 3 arguments (<name>, <getter>, <setter>).",
+               log_aserror(_("Invalid call to Object.addProperty(%s) - "
+                       "expected 3 arguments (<name>, <getter>, <setter>)"),
                        ss.str().c_str());
                );
 
@@ -186,8 +185,8 @@
        if ( propname.empty() )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Invalid call to Object.addProperty() - "
-                       "empty property name");
+               log_aserror(_("Invalid call to Object.addProperty() - "
+                       "empty property name"));
                );
                return as_value(false);
        }
@@ -196,8 +195,8 @@
        if ( ! getter )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Invalid call to Object.addProperty() - "
-                       "getter is not an AS function");
+               log_aserror(_("Invalid call to Object.addProperty() - "
+                       "getter is not an AS function"));
                );
                return as_value(false);
        }
@@ -206,8 +205,8 @@
        if ( ! setter )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Invalid call to Object.addProperty() - "
-                       "setter is not an AS function");
+               log_aserror(_("Invalid call to Object.addProperty() - "
+                       "setter is not an AS function"));
                );
                return as_value(false);
        }
@@ -218,7 +217,7 @@
        
        bool result = obj->add_property(propname, *getter, *setter);
 
-       //log_warning("Object.addProperty(): testing");
+       //log_msg("Object.addProperty(): testing");
        return as_value(result);
 }
 
@@ -233,8 +232,8 @@
                IF_VERBOSE_ASCODING_ERRORS(
                std::stringstream ss;
                fn.dump_args(ss);
-               log_aserror("Invalid call to Object.registerClass(%s) - "
-                       "expected 2 arguments (<symbol>, <constructor>).",
+               log_aserror(_("Invalid call to Object.registerClass(%s) - "
+                       "expected 2 arguments (<symbol>, <constructor>)"),
                        ss.str().c_str());
                );
 
@@ -250,8 +249,8 @@
        if ( symbolid.empty() )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Invalid call to Object.registerClass() - "
-                       "empty symbol id");
+               log_aserror(_("Invalid call to Object.registerClass() - "
+                       "empty symbol id"));
                );
                return as_value(false);
        }
@@ -260,8 +259,8 @@
        if ( ! theclass )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Invalid call to Object.registerClass() - "
-                       "class is not a function");
+               log_aserror(_("Invalid call to Object.registerClass() - "
+                       "class is not a function"));
                );
                return as_value(false);
        }
@@ -275,8 +274,8 @@
        if ( ! exp_res )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Object.registerClass(%s, %s): "
-                       "can't find exported symbol",
+               log_aserror(_("Object.registerClass(%s, %s): "
+                       "can't find exported symbol"),
                        symbolid.c_str(), 
                        typeid(theclass).name());
                );
@@ -293,9 +292,9 @@
        if ( ! exp_clipdef )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Object.registerClass(%s, %s): "
+               log_aserror(_("Object.registerClass(%s, %s): "
                        "exported symbol is not a MovieClip symbol "
-                       "(sprite_definition), but a %s",
+                       "(sprite_definition), but a %s"),
                        symbolid.c_str(), 
                        typeid(theclass).name(),
                        typeid(*exp_res).name());
@@ -314,7 +313,7 @@
        if ( fn.nargs < 1 )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Object.hasOwnProperty() requires one arg");
+               log_aserror(_("Object.hasOwnProperty() requires one arg"));
                );
                return as_value();
        }
@@ -323,7 +322,7 @@
        if ( arg.is_undefined() || propname.empty() )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Invalid call to Object.hasOwnProperty('%s')", 
arg.to_debug_string().c_str());
+               log_aserror(_("Invalid call to Object.hasOwnProperty('%s')"), 
arg.to_debug_string().c_str());
                );
                return as_value();
        }
@@ -337,7 +336,7 @@
        if ( fn.nargs < 1 )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Object.isPropertyEnumerable() requires one arg");
+               log_aserror(_("Object.isPropertyEnumerable() requires one 
arg"));
                );
                return as_value();
        }
@@ -346,7 +345,7 @@
        if ( arg.is_undefined() || propname.empty() )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Invalid call to 
Object.isPropertyEnumerable('%s')", arg.to_debug_string().c_str());
+               log_aserror(_("Invalid call to 
Object.isPropertyEnumerable('%s')"), arg.to_debug_string().c_str());
                );
                return as_value();
        }
@@ -367,7 +366,7 @@
        if ( fn.nargs < 1 )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Object.isPrototypeOf() requires one arg");
+               log_aserror(_("Object.isPrototypeOf() requires one arg"));
                );
                return as_value(false); 
        }
@@ -376,7 +375,7 @@
        if ( ! obj )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("First arg to Object.isPrototypeOf(%s) is not an 
object", fn.arg(0).to_debug_string().c_str());
+               log_aserror(_("First arg to Object.isPrototypeOf(%s) is not an 
object"), fn.arg(0).to_debug_string().c_str());
                );
                return as_value(false);
        }
@@ -390,7 +389,7 @@
 {
        static bool warned = false;
        if ( ! warned ) {
-               log_error("FIXME: %s unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned=true;
        }
        return as_value();
@@ -401,7 +400,7 @@
 {
        static bool warned = false;
        if ( ! warned ) {
-               log_error("FIXME: %s unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned=true;
        }
        return as_value();

Index: server/asobj/Selection.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Selection.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- server/asobj/Selection.cpp  19 Mar 2007 17:11:14 -0000      1.7
+++ server/asobj/Selection.cpp  18 Apr 2007 11:00:30 -0000      1.8
@@ -1,3 +1,4 @@
+// Selection.cpp:  Selectable graphical things, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -82,35 +83,35 @@
 };
 
 as_value selection_addlistener(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value selection_getbeginindex(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value selection_getcaretindex(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value selection_getendindex(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value selection_getfocus(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value selection_removelistener(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value selection_setfocus(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value selection_setselection(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 
@@ -136,4 +137,3 @@
 
 
 } // end of gnash namespace
-

Index: server/asobj/SharedObject.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/SharedObject.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- server/asobj/SharedObject.cpp       29 Mar 2007 12:57:36 -0000      1.8
+++ server/asobj/SharedObject.cpp       18 Apr 2007 11:00:30 -0000      1.9
@@ -1,3 +1,4 @@
+// SharedObject.cpp:  ActionScript "SharedObject" class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -87,7 +88,7 @@
 
        static bool warned=false;
        if ( ! warned ) {
-               log_error("FIXME: %s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned=true;
        }
        return as_value();
@@ -100,7 +101,7 @@
 
        static bool warned=false;
        if ( ! warned ) {
-               log_error("FIXME: %s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned=true;
        }
        return as_value();
@@ -115,7 +116,7 @@
 
        static bool warned=false;
        if ( ! warned ) {
-               log_error("FIXME: %s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned=true;
        }
        return as_value();
@@ -128,7 +129,7 @@
 
        static bool warned=false;
        if ( ! warned ) {
-               log_error("FIXME: %s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned=true;
        }
        return as_value();
@@ -162,6 +163,4 @@
 
 }
 
-
 } // end of gnash namespace
-




reply via email to

[Prev in Thread] Current Thread [Next in Thread]