update internationalization data
authorGood Guy <good1.2guy@gmail.com>
Tue, 21 Jul 2015 20:47:53 +0000 (14:47 -0600)
committerGood Guy <good1.2guy@gmail.com>
Tue, 21 Jul 2015 20:47:53 +0000 (14:47 -0600)
263 files changed:
cinelerra-5.0/cinelerra/aboutprefs.C
cinelerra-5.0/cinelerra/adcuts.C
cinelerra-5.0/cinelerra/apatchgui.C
cinelerra-5.0/cinelerra/apluginthread.C
cinelerra-5.0/cinelerra/assetedit.C
cinelerra-5.0/cinelerra/assetedit.h
cinelerra-5.0/cinelerra/assetremove.C
cinelerra-5.0/cinelerra/batchrender.C
cinelerra-5.0/cinelerra/channelinfo.C
cinelerra-5.0/cinelerra/clipedit.C
cinelerra-5.0/cinelerra/colorpicker.C
cinelerra-5.0/cinelerra/commercials.C
cinelerra-5.0/cinelerra/confirmquit.C
cinelerra-5.0/cinelerra/confirmsave.C
cinelerra-5.0/cinelerra/cropvideo.C
cinelerra-5.0/cinelerra/cwindowgui.C
cinelerra-5.0/cinelerra/cwindowtool.C
cinelerra-5.0/cinelerra/dbwindow.C
cinelerra-5.0/cinelerra/deleteallindexes.C
cinelerra-5.0/cinelerra/devicedvbinput.C
cinelerra-5.0/cinelerra/devicempeginput.C
cinelerra-5.0/cinelerra/devicev4l2base.C
cinelerra-5.0/cinelerra/editlength.C
cinelerra-5.0/cinelerra/editpopup.C
cinelerra-5.0/cinelerra/featheredits.C
cinelerra-5.0/cinelerra/ffmpeg.C
cinelerra-5.0/cinelerra/file.C
cinelerra-5.0/cinelerra/fileavi.C
cinelerra-5.0/cinelerra/filedv.C
cinelerra-5.0/cinelerra/fileexr.C
cinelerra-5.0/cinelerra/fileffmpeg.C
cinelerra-5.0/cinelerra/fileflac.C
cinelerra-5.0/cinelerra/fileformat.C
cinelerra-5.0/cinelerra/filejpeglist.C
cinelerra-5.0/cinelerra/filelist.C
cinelerra-5.0/cinelerra/filemov.C
cinelerra-5.0/cinelerra/filempeg.C
cinelerra-5.0/cinelerra/fileogg.C
cinelerra-5.0/cinelerra/filesndfile.C
cinelerra-5.0/cinelerra/filetga.C
cinelerra-5.0/cinelerra/filevorbis.C
cinelerra-5.0/cinelerra/formatcheck.C
cinelerra-5.0/cinelerra/formatpresets.C
cinelerra-5.0/cinelerra/formatwindow.C
cinelerra-5.0/cinelerra/gwindowgui.C
cinelerra-5.0/cinelerra/iec61883input.C
cinelerra-5.0/cinelerra/keyframegui.C
cinelerra-5.0/cinelerra/levelwindowgui.C
cinelerra-5.0/cinelerra/loadfile.C
cinelerra-5.0/cinelerra/loadmode.C
cinelerra-5.0/cinelerra/localsession.C
cinelerra-5.0/cinelerra/main.C
cinelerra-5.0/cinelerra/mainerror.C
cinelerra-5.0/cinelerra/mainmenu.C
cinelerra-5.0/cinelerra/mbuttons.C
cinelerra-5.0/cinelerra/mediadb.C
cinelerra-5.0/cinelerra/menueffects.C
cinelerra-5.0/cinelerra/mwindow.C
cinelerra-5.0/cinelerra/mwindow.inc
cinelerra-5.0/cinelerra/mwindowgui.C
cinelerra-5.0/cinelerra/new.C
cinelerra-5.0/cinelerra/newfolder.C
cinelerra-5.0/cinelerra/packagerenderer.C
cinelerra-5.0/cinelerra/patchbay.C
cinelerra-5.0/cinelerra/playbackprefs.C
cinelerra-5.0/cinelerra/pluginclient.C
cinelerra-5.0/cinelerra/pluginpopup.C
cinelerra-5.0/cinelerra/preferencesthread.C
cinelerra-5.0/cinelerra/presetsgui.C
cinelerra-5.0/cinelerra/question.C
cinelerra-5.0/cinelerra/quit.C
cinelerra-5.0/cinelerra/recconfirmdelete.C
cinelerra-5.0/cinelerra/record.C
cinelerra-5.0/cinelerra/recordaudio.C
cinelerra-5.0/cinelerra/recordbatches.C
cinelerra-5.0/cinelerra/recordengine.C
cinelerra-5.0/cinelerra/recordgui.C
cinelerra-5.0/cinelerra/recordmonitor.C
cinelerra-5.0/cinelerra/recordthread.C
cinelerra-5.0/cinelerra/recordtransport.C
cinelerra-5.0/cinelerra/recordvideo.C
cinelerra-5.0/cinelerra/recordwindow.C
cinelerra-5.0/cinelerra/reindex.C
cinelerra-5.0/cinelerra/remotecontrol.C
cinelerra-5.0/cinelerra/render.C
cinelerra-5.0/cinelerra/resizetrackthread.C
cinelerra-5.0/cinelerra/savefile.C
cinelerra-5.0/cinelerra/scale.C
cinelerra-5.0/cinelerra/setformat.C
cinelerra-5.0/cinelerra/splashgui.C
cinelerra-5.0/cinelerra/swindow.C
cinelerra-5.0/cinelerra/tipwindow.C
cinelerra-5.0/cinelerra/transition.C
cinelerra-5.0/cinelerra/transitionpopup.C
cinelerra-5.0/cinelerra/vdeviceprefs.C
cinelerra-5.0/cinelerra/videowindowgui.C
cinelerra-5.0/cinelerra/vpatchgui.C
cinelerra-5.0/cinelerra/vwindowgui.C
cinelerra-5.0/cinelerra/wwindow.C
cinelerra-5.0/cinelerra/zoombar.C
cinelerra-5.0/guicast/bcbutton.C
cinelerra-5.0/guicast/bcdisplay.C
cinelerra-5.0/guicast/bcdisplayinfo.C
cinelerra-5.0/guicast/bcfilebox.C
cinelerra-5.0/guicast/bcpopup.C
cinelerra-5.0/guicast/bcprogressbox.C
cinelerra-5.0/guicast/bcwindow3d.C
cinelerra-5.0/guicast/bcwindowbase.C
cinelerra-5.0/plugins/1080to480/1080to480.C
cinelerra-5.0/plugins/1080to540/1080to540.C
cinelerra-5.0/plugins/720to480/720to480.C
cinelerra-5.0/plugins/C41/c41.C
cinelerra-5.0/plugins/aging/aging.C
cinelerra-5.0/plugins/aging/agingwindow.C
cinelerra-5.0/plugins/audioscope/audioscope.C
cinelerra-5.0/plugins/bandslide/bandslide.C
cinelerra-5.0/plugins/bandwipe/bandwipe.C
cinelerra-5.0/plugins/blondtheme/blondtheme.C
cinelerra-5.0/plugins/blondtheme/blondtheme.C.orig
cinelerra-5.0/plugins/bluebanana/bluebanana.C
cinelerra-5.0/plugins/bluebanana/bluebananalookups.C
cinelerra-5.0/plugins/bluebanana/bluebananaslider.C
cinelerra-5.0/plugins/bluebanana/bluebananawindow.C
cinelerra-5.0/plugins/bluedottheme/bluedottheme.C
cinelerra-5.0/plugins/blur/blur.C
cinelerra-5.0/plugins/blurzoom/blurzoom.C
cinelerra-5.0/plugins/blurzoom/blurzoomwindow.C
cinelerra-5.0/plugins/brightness/brightness.C
cinelerra-5.0/plugins/brighttheme/brighttheme.C
cinelerra-5.0/plugins/burn/burn.C
cinelerra-5.0/plugins/cdripper/cdripper.C
cinelerra-5.0/plugins/cdripper/cdripwindow.C
cinelerra-5.0/plugins/chromakey/chromakey.C
cinelerra-5.0/plugins/chromakeyhsv/chromakey.C
cinelerra-5.0/plugins/color3way/color3way.C
cinelerra-5.0/plugins/color3way/color3waywindow.C
cinelerra-5.0/plugins/colorbalance/colorbalance.C
cinelerra-5.0/plugins/compressor/compressor.C
cinelerra-5.0/plugins/crossfade/crossfade.C
cinelerra-5.0/plugins/dcoffset/dcoffset.C
cinelerra-5.0/plugins/decimate/decimate.C
cinelerra-5.0/plugins/defaulttheme/defaulttheme.C
cinelerra-5.0/plugins/deinterlace-cv/deinterlace-cv.C
cinelerra-5.0/plugins/deinterlace-cv/deinterwindow-cv.C
cinelerra-5.0/plugins/deinterlace/deinterlace.C
cinelerra-5.0/plugins/delayaudio/delayaudio.C
cinelerra-5.0/plugins/delayvideo/delayvideo.C
cinelerra-5.0/plugins/denoise/denoise.C
cinelerra-5.0/plugins/denoisefft/denoisefft.C
cinelerra-5.0/plugins/denoisemjpeg/denoisemjpeg.C
cinelerra-5.0/plugins/denoiseseltempavg/seltempavg.C
cinelerra-5.0/plugins/denoisevideo/denoisevideo.C
cinelerra-5.0/plugins/despike/despike.C
cinelerra-5.0/plugins/diffkey/diffkey.C
cinelerra-5.0/plugins/dissolve/dissolve.C
cinelerra-5.0/plugins/dot/dot.C
cinelerra-5.0/plugins/downsample/downsample.C
cinelerra-5.0/plugins/echo/echo.C
cinelerra-5.0/plugins/echocancel/echocancel.C
cinelerra-5.0/plugins/fieldframe/fieldframe.C
cinelerra-5.0/plugins/findobject/findobject.C
cinelerra-5.0/plugins/flash/flash.C
cinelerra-5.0/plugins/flip/flip.C
cinelerra-5.0/plugins/framefield/framefield.C
cinelerra-5.0/plugins/freeverb/freeverb.C
cinelerra-5.0/plugins/freezeframe/freezeframe.C
cinelerra-5.0/plugins/gain/gain.C
cinelerra-5.0/plugins/gamma/gamma.C
cinelerra-5.0/plugins/gradient/gradient.C
cinelerra-5.0/plugins/graphic/graphic.C
cinelerra-5.0/plugins/greycstoration/greycstorationplugin.C
cinelerra-5.0/plugins/greycstoration/greycstorationwindow.C
cinelerra-5.0/plugins/histogram/histogram.C
cinelerra-5.0/plugins/histogram/histogramwindow.C
cinelerra-5.0/plugins/histogram_bezier/histogram.C
cinelerra-5.0/plugins/holo/holo.C
cinelerra-5.0/plugins/holo/holowindow.C
cinelerra-5.0/plugins/huesaturation/huesaturation.C
cinelerra-5.0/plugins/interpolate/interpolate.C
cinelerra-5.0/plugins/interpolateall/interpolateall.C
cinelerra-5.0/plugins/interpolateaudio/interpolateaudio.C
cinelerra-5.0/plugins/interpolatevideo/interpolatevideo.C
cinelerra-5.0/plugins/invertaudio/invert.C
cinelerra-5.0/plugins/invertvideo/invert.C
cinelerra-5.0/plugins/irissquare/irissquare.C
cinelerra-5.0/plugins/ivtc/ivtc.C
cinelerra-5.0/plugins/lens/lens.C
cinelerra-5.0/plugins/level/leveleffect.C
cinelerra-5.0/plugins/linearblur/linearblur.C
cinelerra-5.0/plugins/liveaudio/liveaudio.C
cinelerra-5.0/plugins/livevideo/livevideo.C
cinelerra-5.0/plugins/loopaudio/loopaudio.C
cinelerra-5.0/plugins/loopvideo/loopvideo.C
cinelerra-5.0/plugins/microtheme/microtheme.C
cinelerra-5.0/plugins/motion.new/motion.C
cinelerra-5.0/plugins/motion/motion.C
cinelerra-5.0/plugins/motion2point/motion.C
cinelerra-5.0/plugins/motionblur/motionblur.C
cinelerra-5.0/plugins/normalize/normalize.C
cinelerra-5.0/plugins/normalize/normalizewindow.C
cinelerra-5.0/plugins/oilpainting/oil.C
cinelerra-5.0/plugins/oilpainting/oilwindow.C
cinelerra-5.0/plugins/overlay/overlay.C
cinelerra-5.0/plugins/overlayaudio/overlayaudio.C
cinelerra-5.0/plugins/parametric/parametric.C
cinelerra-5.0/plugins/perspective/perspective.C
cinelerra-5.0/plugins/photoscale/photoscale.C
cinelerra-5.0/plugins/piano/piano.C
cinelerra-5.0/plugins/pitch/pitch.C
cinelerra-5.0/plugins/polar/polar.C
cinelerra-5.0/plugins/polar/polarwindow.C
cinelerra-5.0/plugins/quark/quark.C
cinelerra-5.0/plugins/quark/quarkwindow.C
cinelerra-5.0/plugins/radialblur/radialblur.C
cinelerra-5.0/plugins/reframe/reframe.C
cinelerra-5.0/plugins/reframert/reframert.C
cinelerra-5.0/plugins/removegaps/removegaps.C
cinelerra-5.0/plugins/reroute/reroute.C
cinelerra-5.0/plugins/resample/resample.C
cinelerra-5.0/plugins/resamplert/resamplert.C
cinelerra-5.0/plugins/reverb/reverb.C
cinelerra-5.0/plugins/reverseaudio/reverseaudio.C
cinelerra-5.0/plugins/reversevideo/reversevideo.C
cinelerra-5.0/plugins/rgb601/ivtc.C.2
cinelerra-5.0/plugins/rgb601/rgb601.C
cinelerra-5.0/plugins/rgbshift/rgbshift.C
cinelerra-5.0/plugins/rotate/rotate.C
cinelerra-5.0/plugins/scale/scale.C
cinelerra-5.0/plugins/scale/scalewin.C
cinelerra-5.0/plugins/shapewipe/shapewipe.C
cinelerra-5.0/plugins/sharpen/sharpen.C
cinelerra-5.0/plugins/shiftinterlace/shiftinterlace.C
cinelerra-5.0/plugins/slide/slide.C
cinelerra-5.0/plugins/spectrogram/spectrogram.C
cinelerra-5.0/plugins/suv/suv.C
cinelerra-5.0/plugins/svg/svg.C
cinelerra-5.0/plugins/svg/svgwin.C
cinelerra-5.0/plugins/swapchannels/swapchannels.C
cinelerra-5.0/plugins/swapframes/swapframes.C
cinelerra-5.0/plugins/synthesizer/synthesizer.C
cinelerra-5.0/plugins/threshold/threshold.C
cinelerra-5.0/plugins/timeavg/timeavg.C
cinelerra-5.0/plugins/timefront/timefront.C
cinelerra-5.0/plugins/timestretch/timestretch.C
cinelerra-5.0/plugins/timestretchrt/timestretchrt.C
cinelerra-5.0/plugins/titler/title.C
cinelerra-5.0/plugins/titler/titlewindow.C.stroker
cinelerra-5.0/plugins/translate/translate.C
cinelerra-5.0/plugins/unsharp/unsharp.C
cinelerra-5.0/plugins/videoscope/videoscope.C
cinelerra-5.0/plugins/vocoder/vocoder.C
cinelerra-5.0/plugins/wave/wave.C
cinelerra-5.0/plugins/whirl/whirl.C
cinelerra-5.0/plugins/wipe/wipe.C
cinelerra-5.0/plugins/yuv/yuv.C
cinelerra-5.0/plugins/yuv/yuvwindow.C
cinelerra-5.0/plugins/yuvshift/yuvshift.C
cinelerra-5.0/plugins/zoom/zoom.C
cinelerra-5.0/plugins/zoomblur/zoomblur.C
cinelerra-5.0/po/cin.po
cinelerra-5.0/po/nlx.c [new file with mode: 0644]
cinelerra-5.0/po/txt/cin.txt
cinelerra-5.0/po/txt/cin2.dif [new file with mode: 0644]

index db4513540fa8213fe2b0225aaef75bfb4eaf78c6..5439288ba8744890a7941c57e0c8c45c69c376ce 100644 (file)
@@ -92,7 +92,7 @@ void AboutPrefs::create_objects()
 
 //     y += get_text_height(MEDIUMFONT) * 3;
        set_font(LARGEFONT);
-       draw_text(x, y, "Contributors:");
+       draw_text(x, y, _("Contributors:"));
        y += get_text_height(LARGEFONT);
 
        credits.append(new BC_ListBoxItem("Richard Baverstock"));
@@ -140,7 +140,7 @@ void AboutPrefs::create_objects()
 
        set_font(LARGEFONT);
        set_color(resources->text_default);
-       draw_text(x, y, "License:");
+       draw_text(x, y, _("License:"));
        y += get_text_height(LARGEFONT);
 
        set_font(MEDIUMFONT);
index 8bf86792e6d32fc0a7c6186d0d2de5e4049874c1..93a6a90a2ff7cf01b1276df7a354535d4fd922ce 100644 (file)
@@ -27,7 +27,7 @@ AdCuts::
                strcpy(cut_filename, filename);
                strcpy(strrchr(cut_filename, '.'),".cut");
                write_cuts(cut_filename);
-               printf("cuts to %s complete\n",cut_filename);
+               printf(_("cuts to %s complete\n"),cut_filename);
        }
        else
                ::remove(filename);
index 2319464af8b7b2768cbe45dd3a34a8e1c9f7a422..a222dd31d219759dfa9d048364348f12dec6f26d 100644 (file)
@@ -304,7 +304,7 @@ APanPatch::APanPatch(MWindow *mwindow, APatchGUI *patch, int x, int y)
 {
        this->mwindow = mwindow;
        this->patch = patch;
-       set_tooltip("Pan");
+       set_tooltip(_("Pan"));
 }
 
 int APanPatch::handle_event()
index a338e34b7c35bfa588d38b446f821eaf8647ea57..3e11d139ea81ada559830065dfd49c1af2970bb4 100644 (file)
@@ -46,15 +46,15 @@ APluginThread::attach()
 
 APluginThread::detach()
 {
-printf("APluginThread::detach\n");
+//printf("APluginThread::detach\n");
        if(plugin_server)
        {
-printf("plugin_server->stop_gui\n");
+//printf("plugin_server->stop_gui\n");
                plugin_server->stop_gui();     // sends a completed command to the thread
 
-printf("plugin_server->close_plugin\n");
+//printf("plugin_server->close_plugin\n");
                plugin_server->close_plugin();        // tell client thread to finish
-printf("done plugin_server->close_plugin\n");
+//printf("done plugin_server->close_plugin\n");
        }
 }
 
index 44d265a7147e19ab251406e4a0e792d010fcf256..443733cc18d4df3714b59b5fc3059e8a6198e2c4 100644 (file)
@@ -212,7 +212,7 @@ BC_Window* AssetEdit::new_gui()
 
 
 AssetEditWindow::AssetEditWindow(MWindow *mwindow, AssetEdit *asset_edit)
- : BC_Window(PROGRAM_NAME ": Asset Info"
+ : BC_Window(_(PROGRAM_NAME ": Asset Info")
        mwindow->gui->get_abs_cursor_x(1) - 400 / 2, 
        mwindow->gui->get_abs_cursor_y(1) - 500 / 2, 
        400, 
@@ -281,7 +281,7 @@ void AssetEditWindow::create_objects()
                path_text, 
                y, 
                asset_edit->indexable->path, 
-               PROGRAM_NAME ": Asset path", _("Select a file for this asset:")));
+               _(PROGRAM_NAME ": Asset path"), _("Select a file for this asset:")));
        y += 30;
 
        if(asset)
@@ -769,7 +769,7 @@ int DetailAssetButton::handle_event()
 }
 
 DetailAssetWindow::DetailAssetWindow(MWindow *mwindow, Asset *asset)
- : BC_Window("Asset Detail",
+ : BC_Window(_("Asset Detail"),
         mwindow->gui->get_abs_cursor_x(1) - 600/2,
         mwindow->gui->get_abs_cursor_y(1) - 500/2,
         600, 500)
@@ -809,7 +809,7 @@ void DetailAssetWindow::create_objects()
        int y = 10, x = 10;
        char file_name[BCTEXTLEN];
        int len = sizeof(info);
-       strncpy(info,"no info available",len);
+       strncpy(info,_("no info available"),len);
        if( !mwindow->preferences->get_asset_file_path(asset, file_name) ) {
                switch( asset->format ) {
                case FILE_MPEG:
index 326cc50745ee73cb161745f00e70ebed5acc0edf..06f72e79fc03a70944ae6c21ca64aaa29c1c139c 100644 (file)
@@ -100,7 +100,7 @@ public:
                BC_TextBox *textbox, 
                int y, 
                const char *text, 
-               const char *window_title = _(PROGRAM_NAME " Path"), 
+               const char *window_title = _(PROGRAM_NAME ": Path"), 
                const char *window_caption = _("Select a file"));
        ~AssetEditPath();
        
index 78eb79e59b19c9f8934db2aa815b53ccf2f1993c..72918f9e96bb862667ae080cd7e8dde5ce782186 100644 (file)
@@ -29,7 +29,7 @@
 
 
 AssetRemoveWindow::AssetRemoveWindow(MWindow *mwindow)
- : BC_Window(PROGRAM_NAME ": Remove assets"
+ : BC_Window(_(PROGRAM_NAME ": Remove assets")
        mwindow->gui->get_abs_cursor_x(1),
        mwindow->gui->get_abs_cursor_y(1),
        320, 
index 6b8373bb7ed759c10a51172d794f14f730b3a6e2..eee744179a450f830ebed63ac11b021114c55706 100644 (file)
 
 static const char *list_titles[] = 
 {
-       "Enabled"
-       "Output",
-       "EDL",
-       "Elapsed"
+       _("Enabled")
+       _("Output"),
+       _("EDL"),
+       _("Elapsed")
 };
 
 static int list_widths[] =
@@ -79,7 +79,7 @@ static int list_widths[] =
 };
 
 BatchRenderMenuItem::BatchRenderMenuItem(MWindow *mwindow)
- : BC_MenuItem(_("Batch Render..."), "Shift-B", 'B')
+ : BC_MenuItem(_("Batch Render..."), _("Shift-B"), 'B')
 {
        set_shift(1); 
        this->mwindow = mwindow;
@@ -419,7 +419,7 @@ void BatchRenderThread::update_selected_edl()
         xml_file.terminate_string();
         if( xml_file.write_to_file(path) ) {
                char msg[BCTEXTLEN];
-               sprintf(msg, "Unable to save: %s", path);
+               sprintf(msg, _("Unable to save: %s"), path);
                MainError::show_error(msg);
        }
 }
@@ -466,7 +466,7 @@ int BatchRenderThread::test_edl_files()
                                sprintf(string, _("EDL %s not found.\n"), jobs.values[i]->edl_path);
                                if(mwindow)
                                {
-                                       ErrorBox error_box(PROGRAM_NAME ": Error",
+                                       ErrorBox error_box(_(PROGRAM_NAME ": Error"),
                                                mwindow->gui->get_abs_cursor_x(1),
                                                mwindow->gui->get_abs_cursor_y(1));
                                        error_box.create_objects(string);
@@ -700,7 +700,7 @@ BatchRenderGUI::BatchRenderGUI(MWindow *mwindow,
        int y,
        int w,
        int h)
- : BC_Window(PROGRAM_NAME ": Batch Render"
+ : BC_Window(_(PROGRAM_NAME ": Batch Render")
        x,
        y,
        w, 
@@ -1328,7 +1328,7 @@ const double CreateDVD_Thread::DVD_KAUDIO_RATE = 224;
 
 
 CreateDVD_MenuItem::CreateDVD_MenuItem(MWindow *mwindow)
- : BC_MenuItem(_("DVD Render..."), "Shift-D", 'D')
+ : BC_MenuItem(_("DVD Render..."), _("Shift-D"), 'D')
 {
        set_shift(1); 
        this->mwindow = mwindow;
@@ -1367,7 +1367,7 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs,
        EDL *edl = mwindow->edl;
        if( !edl || !edl->session ) {
                char msg[BCTEXTLEN];
-                sprintf(msg, "No EDL/Session");
+                sprintf(msg, _("No EDL/Session"));
                 MainError::show_error(msg);
                 return 1;
         }
@@ -1376,7 +1376,7 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs,
        double total_length = edl->tracks->total_length();
         if( total_length <= 0 ) {
                char msg[BCTEXTLEN];
-                sprintf(msg, "No content: %s", asset_title);
+                sprintf(msg, _("No content: %s"), asset_title);
                 MainError::show_error(msg);
                 return 1;
         }
@@ -1387,7 +1387,7 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs,
        if( mkdir(asset_dir, 0777) ) {
                char err[BCTEXTLEN], msg[BCTEXTLEN];
                strerror_r(errno, err, sizeof(err));
-               sprintf(msg, "Unable to create directory: %s\n-- %s", asset_dir, err);
+               sprintf(msg, _("Unable to create directory: %s\n-- %s"), asset_dir, err);
                MainError::show_error(msg);
                return 1;
        }
@@ -1413,7 +1413,7 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs,
        if( !fp ) {
                char err[BCTEXTLEN], msg[BCTEXTLEN];
                strerror_r(errno, err, sizeof(err));
-               sprintf(msg, "Unable to save: %s\n-- %s", script_filename, err);
+               sprintf(msg, _("Unable to save: %s\n-- %s"), script_filename, err);
                MainError::show_error(msg);
                return 1;
        }
@@ -1508,7 +1508,7 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs,
         xml_file.terminate_string();
         if( xml_file.write_to_file(xml_filename) ) {
                char msg[BCTEXTLEN];
-               sprintf(msg, "Unable to save: %s", xml_filename);
+               sprintf(msg, _("Unable to save: %s"), xml_filename);
                MainError::show_error(msg);
                return 1;
        }
@@ -1684,7 +1684,7 @@ CreateDVD_OK::CreateDVD_OK(CreateDVD_GUI *gui, int x, int y)
  : BC_OKButton(x, y)
 {
         this->gui = gui;
-        set_tooltip("end setup, start batch render");
+        set_tooltip(_("end setup, start batch render"));
 }
 
 CreateDVD_OK::~CreateDVD_OK()
@@ -1754,7 +1754,7 @@ void CreateDVD_DiskSpace::update()
        int i = 0;
        for( int64_t space=disk_space; i<5 && (space/=1000)>0; disk_space=space, ++i );
        char text[BCTEXTLEN];
-       sprintf(text, "disk space: " _LDv(3) "%s", disk_space, suffix[i]);
+       sprintf(text, "%s" _LDv(3) "%s", _("disk space: "), disk_space, suffix[i]);
        gui->disk_space->BC_Title::update(text);
        gui->disk_space->set_color(color);
 }
@@ -1789,7 +1789,7 @@ CreateDVD_AssetTitle::~CreateDVD_AssetTitle()
 
 
 CreateDVD_Deinterlace::CreateDVD_Deinterlace(CreateDVD_GUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->thread->use_deinterlace, "Deinterlace")
+ : BC_CheckBox(x, y, &gui->thread->use_deinterlace, _("Deinterlace"))
 {
        this->gui = gui;
 }
@@ -1809,7 +1809,7 @@ int CreateDVD_Deinterlace::handle_event()
 
 
 CreateDVD_InverseTelecine::CreateDVD_InverseTelecine(CreateDVD_GUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->thread->use_inverse_telecine, "Inverse Telecine")
+ : BC_CheckBox(x, y, &gui->thread->use_inverse_telecine, _("Inverse Telecine"))
 {
        this->gui = gui;
 }
@@ -1829,7 +1829,7 @@ int CreateDVD_InverseTelecine::handle_event()
 
 
 CreateDVD_Scale::CreateDVD_Scale(CreateDVD_GUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->thread->use_scale, "Scale")
+ : BC_CheckBox(x, y, &gui->thread->use_scale, _("Scale"))
 {
        this->gui = gui;
 }
@@ -1840,7 +1840,7 @@ CreateDVD_Scale::~CreateDVD_Scale()
 
 
 CreateDVD_ResizeTracks::CreateDVD_ResizeTracks(CreateDVD_GUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->thread->use_resize_tracks, "Resize Tracks")
+ : BC_CheckBox(x, y, &gui->thread->use_resize_tracks, _("Resize Tracks"))
 {
        this->gui = gui;
 }
@@ -1851,7 +1851,7 @@ CreateDVD_ResizeTracks::~CreateDVD_ResizeTracks()
 
 
 CreateDVD_Histogram::CreateDVD_Histogram(CreateDVD_GUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->thread->use_histogram, "Histogram")
+ : BC_CheckBox(x, y, &gui->thread->use_histogram, _("Histogram"))
 {
        this->gui = gui;
 }
@@ -1861,7 +1861,7 @@ CreateDVD_Histogram::~CreateDVD_Histogram()
 }
 
 CreateDVD_LabelChapters::CreateDVD_LabelChapters(CreateDVD_GUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->thread->use_label_chapters, "Chapters at Labels")
+ : BC_CheckBox(x, y, &gui->thread->use_label_chapters, _("Chapters at Labels"))
 {
        this->gui = gui;
 }
@@ -1871,7 +1871,7 @@ CreateDVD_LabelChapters::~CreateDVD_LabelChapters()
 }
 
 CreateDVD_WideAudio::CreateDVD_WideAudio(CreateDVD_GUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->thread->use_wide_audio, "Audio 5.1")
+ : BC_CheckBox(x, y, &gui->thread->use_wide_audio, _("Audio 5.1"))
 {
        this->gui = gui;
 }
@@ -1881,7 +1881,7 @@ CreateDVD_WideAudio::~CreateDVD_WideAudio()
 }
 
 CreateDVD_WideAspect::CreateDVD_WideAspect(CreateDVD_GUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->thread->use_wide_aspect, "Aspect 16x9")
+ : BC_CheckBox(x, y, &gui->thread->use_wide_aspect, _("Aspect 16x9"))
 {
        this->gui = gui;
 }
@@ -1891,7 +1891,7 @@ CreateDVD_WideAspect::~CreateDVD_WideAspect()
 }
 
 CreateDVD_UseFFMpeg::CreateDVD_UseFFMpeg(CreateDVD_GUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->thread->use_ffmpeg, "Use FFMPEG")
+ : BC_CheckBox(x, y, &gui->thread->use_ffmpeg, _("Use FFMPEG"))
 {
        this->gui = gui;
 }
@@ -1904,7 +1904,7 @@ CreateDVD_UseFFMpeg::~CreateDVD_UseFFMpeg()
 
 
 CreateDVD_GUI::CreateDVD_GUI(CreateDVD_Thread *thread, int x, int y, int w, int h)
- : BC_Window(PROGRAM_NAME ": Create DVD", x, y, w, h, 50, 50, 1, 0, 1)
+ : BC_Window(_(PROGRAM_NAME ": Create DVD"), x, y, w, h, 50, 50, 1, 0, 1)
 {
        this->thread = thread;
        at_x = at_y = tmp_x = tmp_y = 0;
@@ -1936,13 +1936,13 @@ void CreateDVD_GUI::create_objects()
        int pady = BC_TextBox::calculate_h(this, MEDIUMFONT, 0, 1) + 5;
        int padx = BC_Title::calculate_w(this, (char*)"X", MEDIUMFONT);
        int x = padx/2, y = pady/2;
-       BC_Title *title = new BC_Title(x, y, "Title:", MEDIUMFONT, YELLOW);
+       BC_Title *title = new BC_Title(x, y, _("Title:"), MEDIUMFONT, YELLOW);
        add_subwindow(title);
        at_x = x + title->get_w();  at_y = y;
        asset_title = new CreateDVD_AssetTitle(this, at_x, at_y, get_w()-at_x-10);
        add_subwindow(asset_title);
        y += title->get_h() + pady/2;
-       title = new BC_Title(x, y, "tmp path:", MEDIUMFONT, YELLOW);
+       title = new BC_Title(x, y, _("tmp path:"), MEDIUMFONT, YELLOW);
        add_subwindow(title);
        tmp_x = x + title->get_w();  tmp_y = y;
        tmp_path = new CreateDVD_TmpPath(this, tmp_x, tmp_y,  get_w()-tmp_x-10);
index 6a9d5ec3a1b9a6cc6fb01818e89cb71996b9beca..03d8d84261edb1d61799127a17e4eb4aa830a353 100644 (file)
@@ -87,7 +87,7 @@ void ChanSearch::run()
 
 
 ChanSearchTitleText::ChanSearchTitleText(ChanSearchGUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->title_text_enable, "titles")
+ : BC_CheckBox(x, y, &gui->title_text_enable, _("titles"))
 {
        this->gui = gui;
 }
@@ -105,7 +105,7 @@ int ChanSearchTitleText::handle_event()
 
 
 ChanSearchInfoText::ChanSearchInfoText(ChanSearchGUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->info_text_enable, "info")
+ : BC_CheckBox(x, y, &gui->info_text_enable, _("info"))
 {
        this->gui = gui;
 }
@@ -123,7 +123,7 @@ int ChanSearchInfoText::handle_event()
 
 
 ChanSearchMatchCase::ChanSearchMatchCase(ChanSearchGUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->match_case_enable, "match case")
+ : BC_CheckBox(x, y, &gui->match_case_enable, _("match case"))
 {
        this->gui = gui;
 }
@@ -169,7 +169,7 @@ int ChanSearchText::keypress_event()
 
 
 ChanSearchStart::ChanSearchStart(ChanSearchGUI *gui, int x, int y)
- : BC_GenericButton(x, y, "Search")
+ : BC_GenericButton(x, y, _("Search"))
 {
        this->gui = gui;
 }
@@ -261,7 +261,7 @@ void ChanSearchGUI::create_objects()
        int padx = BC_Title::calculate_w(this, (char*)"X", MEDIUMFONT);
        int x = padx/2, y = pady/4;
        text_x = x;  text_y = y;
-       BC_Title *title = new BC_Title(text_x, text_y, "Text:", MEDIUMFONT, YELLOW);
+       BC_Title *title = new BC_Title(text_x, text_y, _("Text:"), MEDIUMFONT, YELLOW);
        add_subwindow(title);  x += title->get_w();
        search_text = new ChanSearchText(this, x, y, get_w()-x-10);
        add_subwindow(search_text);
@@ -294,7 +294,7 @@ void ChanSearchGUI::create_objects()
        search_list->show_window();
        int clktip_x = list_x;
        int clktip_y = list_y + list_h + 5;
-       click_tip = new BC_Title(clktip_x, clktip_y, "dbl clk row to find title");
+       click_tip = new BC_Title(clktip_x, clktip_y, _("dbl clk row to find title"));
        add_subwindow(click_tip);
 
        set_icon(iwindow->mwindow->theme->get_image("record_icon"));
@@ -302,7 +302,7 @@ void ChanSearchGUI::create_objects()
 }
 
 ChanSearchGUI::ChanSearchGUI(ChanSearch *cswindow)
- : BC_Window(PROGRAM_NAME ": ChanSearch",
+ : BC_Window(_(PROGRAM_NAME ": ChanSearch"),
        cswindow->iwindow->gui->get_abs_cursor_x(1) - 500 / 2,
        cswindow->iwindow->gui->get_abs_cursor_y(1) - 300 / 2,
        500, 300, 400, 300)
@@ -334,9 +334,9 @@ ChanSearchGUI::ChanSearchGUI(ChanSearch *cswindow)
        search_columns[0] = 0;
        search_columns[1] = 1;
        search_columns[2] = 2;
-       search_column_titles[0] = "Source";
-       search_column_titles[1] = "Title";
-       search_column_titles[2] = "Start time";
+       search_column_titles[0] = _("Source");
+       search_column_titles[1] = _("Title");
+       search_column_titles[2] = _("Start time");
        search_column_widths[0] = 120;
        search_column_widths[2] = 120;
        search_column_widths[1] = get_w()-search_column_widths[0]-search_column_widths[2]-32;
@@ -435,7 +435,7 @@ void ChanSearchGUI::update()
 
        search_list->update(search_items, &search_column_titles[0],
                        &search_column_widths[0], lengthof(search_items));
-       sprintf(text, "%d found", n);
+       sprintf(text, _("%d found"), n);
        results->update(text);
 }
 
@@ -957,7 +957,7 @@ void ChannelPanel::get_xtime(int x, char *cp)
        struct tm xtm;  localtime_r(&xt,&xtm);
        cp += sprintf(cp,"%02d:%02d",xtm.tm_hour, xtm.tm_min);
        if( !xtm.tm_hour && !xtm.tm_min ) {
-               sprintf(cp,"(%3.3s) ",&"sunmontuewedthufrisat"[xtm.tm_wday*3]);
+               sprintf(cp,_("(%3.3s) "),&_("sunmontuewedthufrisat")[xtm.tm_wday*3]);
        }
 }
 
@@ -983,7 +983,7 @@ ChannelInfoCron(ChannelInfoGUI *gui, int x, int y, int *value)
  : BC_CheckBox(x, y, value, gui->cron_caption)
 {
        this->gui = gui;
-       set_tooltip("activate batch record when ok pressed");
+       set_tooltip(_("activate batch record when ok pressed"));
 }
 
 ChannelInfoCron::
@@ -1003,7 +1003,7 @@ ChannelInfoPowerOff::ChannelInfoPowerOff(ChannelInfoGUI *gui, int x, int y, int
  : BC_CheckBox(x, y , value, gui->power_caption)
 {
        this->gui = gui;
-       set_tooltip("poweroff system when batch record done");
+       set_tooltip(_("poweroff system when batch record done"));
 }
 
 ChannelInfoPowerOff::~ChannelInfoPowerOff()
@@ -1018,10 +1018,10 @@ int ChannelInfoPowerOff::handle_event()
 
 
 ChannelInfoFind::ChannelInfoFind(ChannelInfoGUI *gui, int x, int y)
- : BC_GenericButton(x, y, "Find")
+ : BC_GenericButton(x, y, _("Find"))
 {
        this->gui = gui;
-       set_tooltip("search event titles/info");
+       set_tooltip(_("search event titles/info"));
 }
 
 ChannelInfoFind::~ChannelInfoFind()
@@ -1102,21 +1102,21 @@ int ChannelThread::load_info(Channel *channel, ChannelEventLine *channel_line)
                        &etm.tm_hour, &etm.tm_min, &etm.tm_sec,
                        &k);
                if( l != 6 ) {
-                       printf("bad scan time: %s\n",info);
+                       printf(_("bad scan time: %s\n"),info);
                        continue;
                }
                char *title = (bp += k);
                while( bp<cp && *bp!='\n' ) ++bp;
                char *dp = bp;  *bp++ = 0;
                if( !*title ) {
-                       printf("bad title: %s\n",info);
+                       printf(_("bad title: %s\n"),info);
                        continue;
                }
                char stm_wday[4];  memset(&stm_wday,0,sizeof(stm_wday));
                l = sscanf(bp, "(%3s) %d/%d/%d", &stm_wday[0],
                        &stm.tm_year, &stm.tm_mon, &stm.tm_mday);
                if( l != 4 ) {
-                       printf("bad scan date: %s\n",info);
+                       printf(_("bad scan date: %s\n"),info);
                        continue;
                }
                while( bp<cp && *bp!='\n' ) ++bp;
@@ -1129,22 +1129,22 @@ int ChannelThread::load_info(Channel *channel, ChannelEventLine *channel_line)
                time_t et = mktime(&etm);
                if( et < st ) et += 24*3600;
                if( et < st ) {
-                       printf("end before start: %s\n",info);
+                       printf(_("end before start: %s\n"),info);
                        continue;
                }
                if( panel->st_org - et > 24*3600*2) {
-                       printf("end time early: %s\n",info);
+                       printf(_("end time early: %s\n"),info);
                        continue;
                }
                if( st - panel->st_org > 24*3600*12 ) {
-                       printf("start time late: %s\n",info);
+                       printf(_("start time late: %s\n"),info);
                        continue;
                }
                time_t st_min = (st - panel->st_org)/60;
                time_t et_min = (et - panel->st_org)/60;
                int dt = et_min - st_min;
                if( dt <= 0 ) {
-                       printf("zero duration: %s\n",info);
+                       printf(_("zero duration: %s\n"),info);
                        continue;
                }
 
@@ -1229,7 +1229,7 @@ ChannelInfoOK::ChannelInfoOK(ChannelInfoGUI *gui, int x, int y)
  : BC_OKButton(x, y)
 {
        this->gui = gui;
-       set_tooltip("end channel info, start record");
+       set_tooltip(_("end channel info, start record"));
 }
 
 ChannelInfoOK::~ChannelInfoOK()
@@ -1391,7 +1391,7 @@ void ChannelInfoGUI::create_objects()
 
 ChannelInfoGUI::ChannelInfoGUI(ChannelInfo *iwindow,
        int x, int y, int w, int h)
- : BC_Window(PROGRAM_NAME ": Channel Info", x, y, w, h, 600, 400,
+ : BC_Window(_(PROGRAM_NAME ": Channel Info"), x, y, w, h, 600, 400,
        1, 0, 0 , -1, iwindow->mwindow->get_cwindow_display())
 {
        this->iwindow = iwindow;
@@ -1670,7 +1670,7 @@ void ChannelInfo::run()
                if( done ) break;
                if( record->Thread::running() ) {
                        char string[BCTEXTLEN];
-                       sprintf(string,"Recording in progress\n");
+                       sprintf(string,_("Recording in progress\n"));
                        MainError::show_error(string);
                        continue;
                }
@@ -1678,7 +1678,7 @@ void ChannelInfo::run()
                VideoInConfig *vconfig_in = session->vconfig_in;
                if( vconfig_in->driver != CAPTURE_DVB ) {
                        char string[BCTEXTLEN];
-                       sprintf(string,"capture driver not dvb\n");
+                       sprintf(string,_("capture driver not dvb\n"));
                        MainError::show_error(string);
                        continue;
                }
@@ -1748,7 +1748,7 @@ void ChannelInfo::run()
                else {
                        close_vdevice();
                        char string[BCTEXTLEN];
-                       sprintf(string,"cannot open dvb video device\n");
+                       sprintf(string,_("cannot open dvb video device\n"));
                        MainError::show_error(string);
                }
        }
@@ -1787,7 +1787,7 @@ void ChannelInfo::delete_batch()
 }
 
 ChannelScan::ChannelScan(MWindow *mwindow)
- : BC_MenuItem("Scan", "Shift-S", 'S')
+ : BC_MenuItem(_("Scan"), _("Shift-S"), 'S')
 {
        set_shift();
        this->mwindow = mwindow;
index 0787f338a7d5c87e4fade1d1cfa2cf88922b33ac..23c756af80ee914a7ab7ebbbf8170c625c24348d 100644 (file)
@@ -146,7 +146,7 @@ void ClipEdit::create_clip(EDL *clip)
 
 
 ClipEditWindow::ClipEditWindow(MWindow *mwindow, ClipEdit *thread)
- : BC_Window(PROGRAM_NAME ": Clip Info"
+ : BC_Window(_(PROGRAM_NAME ": Clip Info")
        mwindow->gui->get_abs_cursor_x(1) - 400 / 2,
        mwindow->gui->get_abs_cursor_y(1) - 350 / 2,
        400, 
index 4850f06cf60295cc2713597a5c32d49c782f9c83..f51069e1a8145423914a6b59b1842b696fc6f94c 100644 (file)
@@ -80,7 +80,7 @@ void ColorThread::run()
 //printf("ColorThread::run 1\n");
        char window_title[BCTEXTLEN];
 
-       strcpy(window_title, PROGRAM_NAME ": ");
+       strcpy(window_title, _(PROGRAM_NAME ": "));
        if(title)
                strcat(window_title, title);
        else
index 963f9c7a6f6eeeb6a7967ad08ce58ad39d4e30cd..3bdfc2643aee1cf5a47820c92878808bd68d2b00 100644 (file)
@@ -165,7 +165,7 @@ put_clip(File *file, int track, double position, double length)
        clip_id = mdb->clip_id();
        cancelled = 0;
        scan_status = new ScanStatus(this, 30, 30, 1, 1,
-               cancelled, "Cutting Ads");
+               cancelled, _("Cutting Ads"));
        scan_status->update_length(0, frames);
        scan_status->update_position(0, 0);
        update_cut_info(track+1, position);
@@ -323,7 +323,7 @@ mute_audio(Clip *clip)
        if( !muted ) {
                muted = 1;
                record->set_mute_gain(0);
-               printf("***MUTE***\n");
+               printf(_("***MUTE***\n"));
        }
        return 0;
 }
@@ -335,7 +335,7 @@ unmute_audio()
        if( muted ) {
                muted = 0;
                record->set_mute_gain(1);
-               printf("***UNMUTE***\n");
+               printf(_("***UNMUTE***\n"));
        }
        record->undisplay_vframe();
        return 0;
@@ -575,7 +575,7 @@ scan_media()
 {
        cancelled = 0;
        scan_status = new ScanStatus(this, 30, 30, 2, 2,
-               cancelled, "Cutting Ads");
+               cancelled, _("Cutting Ads"));
        if( !openDb() ) {
                scan_video();
                commitDb();
@@ -647,7 +647,7 @@ scan_clips(Track *vtrk, Edit *edit)
                        start = 0;
                }
                double end = start + length;
-printf("cut clip %d in edit @%f %f-%f, clip @%f-%f\n", clip->clip_id,
+printf(_("cut clip %d in edit @%f %f-%f, clip @%f-%f\n"), clip->clip_id,
   vtrk->from_units(edit->startsource), vtrk->from_units(edit->startproject),
   vtrk->from_units(edit->startproject+edit->length),start,end);
                if( last_end+CLIP_MARGIN > start ) start = last_end;
@@ -669,7 +669,7 @@ update_cut_info(int trk, double position)
        char string[BCTEXTLEN];  EDLSession *session = mwindow->edl->session;
        Units::totext(string, position, session->time_format, session->sample_rate,
                session->frame_rate, session->frames_per_foot);
-       char text[BCTEXTLEN];  sprintf(text,"ad: trk %d@%s  ",trk,string);
+       char text[BCTEXTLEN];  sprintf(text,_("ad: trk %d@%s  "),trk,string);
        scan_status->update_text(0, text);
        return 0;
 }
@@ -679,7 +679,7 @@ update_caption(int trk, int edt, const char *path)
 {
        if( cancelled ) return 1;
        char text[BCTEXTLEN];
-       snprintf(text,sizeof(text),"trk%d edt%d asset %s", trk, edt, path);
+       snprintf(text,sizeof(text),_("trk%d edt%d asset %s"), trk, edt, path);
        scan_status->update_text(0, text);
        return 0;
 }
@@ -689,7 +689,7 @@ update_status(int clip, double start, double end)
 {
        if( cancelled ) return 1;
        char text[BCTEXTLEN];
-       snprintf(text,sizeof(text),"scan: clip%d %f-%f", clip, start, end);
+       snprintf(text,sizeof(text),_("scan: clip%d %f-%f"), clip, start, end);
        scan_status->update_text(1, text);
        return 0;
 }
@@ -697,10 +697,10 @@ update_status(int clip, double start, double end)
 
 ScanStatusGUI::
 ScanStatusGUI(ScanStatus *sswindow, int x, int y, int nlines, int nbars)
- : BC_Window("Scanning", x, y, 340,
+ : BC_Window(_("Scanning"), x, y, 340,
        40 + BC_CancelButton::calculate_h() +
                (BC_Title::calculate_h((BC_WindowBase*) sswindow->
-                       commercials->mwindow->gui, "My") + 5) * nlines +
+                       commercials->mwindow->gui, _("My")) + 5) * nlines +
                (BC_ProgressBar::calculate_h() + 5) * nbars, 0, 0, 0) 
 {
        this->sswindow = sswindow;
@@ -795,7 +795,7 @@ stop()
 void ScanStatus::
 run()
 {
-       gui->create_objects("Cutting Ads");
+       gui->create_objects(_("Cutting Ads"));
        int result = gui->run_window();
        if( result ) status = 1;
 }
@@ -932,7 +932,7 @@ void run_that_puppy(const char *fn)
        int result = 0;
        while( !result && fscanf(fp,"%lf %lf\n",&position, &length) == 2 ) {
                int result = MWindow::commercials->put_clip(file, 0, position, length);
-               printf("cut %f/%f = %d\n",position,length, result);
+               printf(_("cut %f/%f = %d\n"),position,length, result);
        }
        MWindow::commercials->commitDb();
        MWindow::commercials->closeDb();
index 74bfe76bb2132638d3ac6285c3fb1839a183c9c6..dd1e1c7b7dc236f26876060ac4f4cc3a66ea5b26 100644 (file)
@@ -30,7 +30,7 @@
 
 
 ConfirmQuitWindow::ConfirmQuitWindow(MWindow *mwindow)
- : BC_Window(PROGRAM_NAME ": Confirm Quit"
+ : BC_Window(_(PROGRAM_NAME ": Confirm Quit")
        mwindow->gui->get_abs_cursor_x(1), 
        mwindow->gui->get_abs_cursor_y(1), 
        375, 
@@ -51,7 +51,7 @@ void ConfirmQuitWindow::create_objects(char *string)
        lock_window("ConfirmQuitWindow::create_objects");
        add_subwindow(title = new BC_Title(x, y, string));
        y += title->get_h();
-       add_subwindow(title = new BC_Title(x, y, _("( Answering ""No"" will destroy changes )")));
+       add_subwindow(title = new BC_Title(x, y, _("( Answering \"No\" will destroy changes )")));
 
        add_subwindow(new ConfirmQuitYesButton(mwindow, this));
        add_subwindow(new ConfirmQuitNoButton(mwindow, this));
index 37f4a99a89eae6443c3a2ae43c7f1b6e95fe5372..d51774695653e39f2e24a2b98c1d4a7cff5101ce 100644 (file)
@@ -73,12 +73,12 @@ int ConfirmSave::test_files(MWindow *mwindow,
                }
                else
                {
-                       printf("The following files exist:\n");
+                       printf(_("The following files exist:\n"));
                        for(int i = 0; i < list.total; i++)
                        {
                                printf("    %s\n", list.values[i]->get_text());
                        }
-                       printf("Won't overwrite existing files.\n");
+                       printf(_("Won't overwrite existing files.\n"));
                        result = 1;
                }
                list.remove_all_objects();
@@ -103,7 +103,7 @@ int ConfirmSave::test_files(MWindow *mwindow,
 
 ConfirmSaveWindow::ConfirmSaveWindow(MWindow *mwindow, 
        ArrayList<BC_ListBoxItem*> *list)
- : BC_Window(PROGRAM_NAME ": File Exists"
+ : BC_Window(_(PROGRAM_NAME ": File Exists")
                mwindow->gui->get_abs_cursor_x(1) - 160, 
                mwindow->gui->get_abs_cursor_y(1) - 120, 
                320, 
index 99fe7653b10f36557535a432a548a6aec67df95c..d2ee635658fc23ba777727b735b47191ae300d9c 100644 (file)
@@ -94,7 +94,7 @@ int CropVideo::save_defaults()
 }
 
 CropVideoWindow::CropVideoWindow(MWindow *mwindow, CropVideo *thread)
- : BC_Window(PROGRAM_NAME ": Crop", 380, 75, 0, 0)
+ : BC_Window(_(PROGRAM_NAME ": Crop"), 380, 75, 0, 0)
 {
        this->mwindow = mwindow;
        this->thread = thread;
index 216e672a42dc8b3741b3b507574e6baf89455b34..a0762595f48499208bb4ea030d4c922d3bb87cfb 100644 (file)
@@ -76,7 +76,7 @@ static int total_zooms = sizeof(my_zoom_table) / sizeof(double);
 
 
 CWindowGUI::CWindowGUI(MWindow *mwindow, CWindow *cwindow)
- : BC_Window(PROGRAM_NAME ": Compositor",
+ : BC_Window(_(PROGRAM_NAME ": Compositor"),
        mwindow->session->cwindow_x, 
     mwindow->session->cwindow_y, 
     mwindow->session->cwindow_w, 
index fceac56fe0ac04cddd200ed1e03387656a7898ea..84cdb1d1558946fb58962b9a4db9230fa9d3667e 100644 (file)
@@ -366,7 +366,7 @@ int CWindowCropOK::keypress_event()
 CWindowCropGUI::CWindowCropGUI(MWindow *mwindow, CWindowTool *thread)
  : CWindowToolGUI(mwindow, 
        thread,
-       PROGRAM_NAME ": Crop",
+       _(PROGRAM_NAME ": Crop"),
        330,
        100)
 {
@@ -478,7 +478,7 @@ void CWindowCropGUI::update()
 CWindowEyedropGUI::CWindowEyedropGUI(MWindow *mwindow, CWindowTool *thread)
  : CWindowToolGUI(mwindow, 
        thread,
-       PROGRAM_NAME ": Color",
+       _(PROGRAM_NAME ": Color"),
        200,
        200)
 {
@@ -496,14 +496,14 @@ void CWindowEyedropGUI::create_objects()
        int x2 = 70;
        lock_window("CWindowEyedropGUI::create_objects");
        BC_Title *title1, *title2, *title3, *title4;
-       add_subwindow(title4 = new BC_Title(x, y, "Radius:"));
+       add_subwindow(title4 = new BC_Title(x, y, _("Radius:")));
        y += BC_TextBox::calculate_h(this, MEDIUMFONT, 1, 1) + margin;
        
-       add_subwindow(title1 = new BC_Title(x, y, "Red:"));
+       add_subwindow(title1 = new BC_Title(x, y, _("Red:")));
        y += title1->get_h() + margin;
-       add_subwindow(title2 = new BC_Title(x, y, "Green:"));
+       add_subwindow(title2 = new BC_Title(x, y, _("Green:")));
        y += title2->get_h() + margin;
-       add_subwindow(title3 = new BC_Title(x, y, "Blue:"));
+       add_subwindow(title3 = new BC_Title(x, y, _("Blue:")));
 
 
        radius = new CWindowCoord(this,
@@ -579,7 +579,7 @@ void CWindowEyedropGUI::handle_event()
 CWindowCameraGUI::CWindowCameraGUI(MWindow *mwindow, CWindowTool *thread)
  : CWindowToolGUI(mwindow, 
        thread,
-       PROGRAM_NAME ": Camera",
+       _(PROGRAM_NAME ": Camera"),
        170,
        170)
 {
@@ -1036,7 +1036,7 @@ int CWindowCameraBottom::handle_event()
 CWindowProjectorGUI::CWindowProjectorGUI(MWindow *mwindow, CWindowTool *thread)
  : CWindowToolGUI(mwindow, 
        thread,
-       PROGRAM_NAME ": Projector",
+       _(PROGRAM_NAME ": Projector"),
        170,
        170)
 {
@@ -1906,7 +1906,7 @@ int CWindowMaskValue::handle_event()
 CWindowMaskGUI::CWindowMaskGUI(MWindow *mwindow, CWindowTool *thread)
  : CWindowToolGUI(mwindow, 
        thread,
-       PROGRAM_NAME ": Mask",
+       _(PROGRAM_NAME ": Mask"),
        330,
        280)
 {
@@ -2142,7 +2142,7 @@ void CWindowMaskGUI::update_preview()
 CWindowRulerGUI::CWindowRulerGUI(MWindow *mwindow, CWindowTool *thread)
  : CWindowToolGUI(mwindow, 
        thread,
-       PROGRAM_NAME ": Ruler",
+       _(PROGRAM_NAME ": Ruler"),
        320,
        240)
 {
@@ -2158,22 +2158,22 @@ void CWindowRulerGUI::create_objects()
        BC_Title *title;
 
        lock_window("CWindowRulerGUI::create_objects");
-       add_subwindow(title = new BC_Title(x, y, "Current:"));
+       add_subwindow(title = new BC_Title(x, y, _("Current:")));
        add_subwindow(current = new BC_Title(x + title->get_w() + 10, y, ""));
        y += title->get_h() + 5;
        
-       add_subwindow(title = new BC_Title(x, y, "Point 1:"));
+       add_subwindow(title = new BC_Title(x, y, _("Point 1:")));
        add_subwindow(point1 = new BC_Title(x + title->get_w() + 10, y, ""));
        y += title->get_h() + 5;
 
-       add_subwindow(title = new BC_Title(x, y, "Point 2:"));
+       add_subwindow(title = new BC_Title(x, y, _("Point 2:")));
        add_subwindow(point2 = new BC_Title(x + title->get_w() + 10, y, ""));
        y += title->get_h() + 5;
 
-       add_subwindow(title = new BC_Title(x, y, "Distance:"));
+       add_subwindow(title = new BC_Title(x, y, _("Distance:")));
        add_subwindow(distance = new BC_Title(x + title->get_w() + 10, y, ""));
        y += title->get_h() + 5;
-       add_subwindow(title = new BC_Title(x, y, "Angle:"));
+       add_subwindow(title = new BC_Title(x, y, _("Angle:")));
        add_subwindow(angle = new BC_Title(x + title->get_w() + 10, y, ""));
        y += title->get_h() + 10;
        char string[BCTEXTLEN];
@@ -2225,7 +2225,7 @@ void CWindowRulerGUI::update()
                mwindow->edl->session->ruler_y2);
        point2->update(string);
 
-       sprintf(string, "%0.01f pixels", distance_value);
+       sprintf(string, _("%0.01f pixels"), distance_value);
        distance->update(string);
        sprintf(string, "%0.02f %c", angle_value, 0xb0);
        angle->update(string);
index 8d026822bd2671761f20a72f2ff495abb63a9880..f29c137a7bfce59ff37695c18397c07757d52f60 100644 (file)
@@ -98,7 +98,7 @@ run()
 
 DbWindowTitleText::
 DbWindowTitleText(DbWindowGUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->title_text_enable, "titles")
+ : BC_CheckBox(x, y, &gui->title_text_enable, _("titles"))
 {
        this->gui = gui;
 }
@@ -118,7 +118,7 @@ handle_event()
 
 DbWindowInfoText::
 DbWindowInfoText(DbWindowGUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->info_text_enable, "info")
+ : BC_CheckBox(x, y, &gui->info_text_enable, _("info"))
 {
        this->gui = gui;
 }
@@ -138,7 +138,7 @@ handle_event()
 
 DbWindowMatchCase::
 DbWindowMatchCase(DbWindowGUI *gui, int x, int y)
- : BC_CheckBox(x, y, &gui->match_case_enable, "match case")
+ : BC_CheckBox(x, y, &gui->match_case_enable, _("match case"))
 {
        this->gui = gui;
 }
@@ -189,7 +189,7 @@ keypress_event()
 
 DbWindowScan::
 DbWindowScan(MWindow *mwindow)
- : BC_MenuItem("Media DB", "Shift-M", 'M')
+ : BC_MenuItem(_("Media DB"), _("Shift-M"), 'M')
 {
        set_shift();
        this->mwindow = mwindow;
@@ -209,7 +209,7 @@ handle_event()
 
 DbWindowStart::
 DbWindowStart(DbWindowGUI *gui, int x, int y)
- : BC_GenericButton(x, y, "Search")
+ : BC_GenericButton(x, y, _("Search"))
 {
        this->gui = gui;
 }
@@ -227,7 +227,7 @@ handle_event()
 
 DbWindowDeleteItems::
 DbWindowDeleteItems(DbWindowGUI *gui, int x, int y)
- : BC_GenericButton(x, y, "Delete")
+ : BC_GenericButton(x, y, _("Delete"))
 {
        this->gui = gui;
 }
@@ -386,7 +386,7 @@ create_objects()
        int padx = BC_Title::calculate_w(this, (char*)"X", MEDIUMFONT);
        int x = padx/2, y = pady/4;
        text_x = x;  text_y = y;
-       BC_Title *title = new BC_Title(text_x, text_y, "Text:", MEDIUMFONT, YELLOW);
+       BC_Title *title = new BC_Title(text_x, text_y, _("Text:"), MEDIUMFONT, YELLOW);
        add_subwindow(title);  x += title->get_w();
        search_text = new DbWindowText(this, x, y, get_w()-x-10);
        add_subwindow(search_text);
@@ -432,7 +432,7 @@ create_objects()
 
 DbWindowGUI::
 DbWindowGUI(DbWindow *dwindow)
- : BC_Window(PROGRAM_NAME ": DbWindow",
+ : BC_Window(_(PROGRAM_NAME ": DbWindow"),
        dwindow->mwindow->gui->get_abs_cursor_x(1) - 900 / 2,
        dwindow->mwindow->gui->get_abs_cursor_y(1) - 600 / 2,
        900, 600, 400, 400)
@@ -461,14 +461,14 @@ DbWindowGUI(DbWindow *dwindow)
        search_columns[col_start_time] = col_start_time;
        search_columns[col_access_time] = col_access_time;
        search_columns[col_access_count] = col_access_count;
-       search_column_titles[col_ticon] = "ticon";
-       search_column_titles[col_id] = "Id";
-       search_column_titles[col_length] = "length";
-       search_column_titles[col_source] = "Source";
-       search_column_titles[col_title] = "Title";
-       search_column_titles[col_start_time] = "Start time";
-       search_column_titles[col_access_time] = "Access time";
-       search_column_titles[col_access_count] = "count";
+       search_column_titles[col_ticon] = _("ticon");
+       search_column_titles[col_id] = _("Id");
+       search_column_titles[col_length] = _("length");
+       search_column_titles[col_source] = _("Source");
+       search_column_titles[col_title] = _("Title");
+       search_column_titles[col_start_time] = _("Start time");
+       search_column_titles[col_access_time] = _("Access time");
+       search_column_titles[col_access_count] = _("count");
        search_column_widths[col_ticon] = 90;
        search_column_widths[col_id] = 60;
        search_column_widths[col_length] = 80;
@@ -597,7 +597,7 @@ int DbWindowGUI::delete_selection(MediaDb *mdb)
                if( !search_items[0][k]->get_selected() ) continue;
                int id = search_results[k]->id;
                if( mdb->del_clip_set(id) ) {
-                       printf("failed delete clip id %d\n",id);
+                       printf(_("failed delete clip id %d\n"),id);
                        continue;
                }
                search_results.remove_object_number(k);
index a83de147424e81d14bd65d429da6f77f9c286806..4160b1e6e485ab947585eca855f217ed2bde8a1c 100644 (file)
@@ -99,7 +99,7 @@ printf("DeleteAllIndexes::run %s\n", string2);
 
 
 ConfirmDeleteAllIndexes::ConfirmDeleteAllIndexes(MWindow *mwindow, char *string)
- : BC_Window(PROGRAM_NAME ": Delete All Indexes"
+ : BC_Window(_(PROGRAM_NAME ": Delete All Indexes")
                mwindow->gui->get_abs_cursor_x(1), 
                mwindow->gui->get_abs_cursor_y(1), 
                340, 
index 16cf91b3a22a97301f213a83f386f2de055dd5b4..e9a23893853655516562aab8720204871ef8d79f 100644 (file)
@@ -402,8 +402,8 @@ int DeviceDVBInput::dvb_status()
        signal_unc = ioctl(fe, FE_READ_UNCORRECTED_BLOCKS, &errs) ? -1 : errs;
        if( signal_lck && signal_ber >= 0 && signal_ber < 255 ) locked = 1;
        if( dvb_locked != locked ) {
-               printf("** %scarrier, dvb_locked %s\n",
-                        signal_crr ? "" : "no ", locked ? "lock" : "lost" );
+               printf(_("** %scarrier, dvb_locked %s\n"),
+                        signal_crr ? "" : _("no "), locked ? _("lock") : _("lost") );
        }
 #endif
        dvb_locked = locked;
index e042ad475995488f5cbf88facc5f484f30bb9126..c7e320507dbed481cb61b725b43d8114751ca30f 100644 (file)
@@ -594,13 +594,13 @@ int DeviceMPEGInput::get_channeldb(ArrayList<Channel*> *channeldb)
                if( subchannel_definition(subchan,&name[0],
                        major, minor, total_astreams, total_vstreams)) continue;
                if( total_astreams > 1 && total_vstreams > 1 )
-                       printf("DeviceMPEGInput::get_channeldb::element %d"
-                               " (id %d.%d) has %d/%d video/audio streams\n",
+                       printf(_("DeviceMPEGInput::get_channeldb::element %d"
+                               " (id %d.%d) has %d/%d video/audio streams\n"),
                                subchan, major, minor, total_vstreams, total_astreams);
                if( total_vstreams > 1 && total_astreams > 0 && (audio_stream =
                        subchannel_audio_stream(subchan, astream=0, enc)) >= 0 ) {
                        if( total_astreams > 1 )
-                               printf("  only first audio stream will be used\n");
+                               printf(_("  only first audio stream will be used\n"));
                        for( int vstream=0; vstream<total_vstreams; ++vstream ) {
                                int video_stream = subchannel_video_stream(subchan, vstream);
                                if( video_stream < 0 ) continue;
@@ -614,7 +614,7 @@ int DeviceMPEGInput::get_channeldb(ArrayList<Channel*> *channeldb)
                if( total_astreams > 1 && total_vstreams > 0 && (video_stream =
                        subchannel_video_stream(subchan, vstream=0)) >= 0 ) {
                        if( total_vstreams > 1 )
-                               printf("  only first video stream will be used\n");
+                               printf(_("  only first video stream will be used\n"));
                        for( int astream=0; astream<total_astreams; ++astream ) {
                                int audio_stream = subchannel_audio_stream(subchan, astream, enc);
                                if( audio_stream < 0 ) continue;
index 32772b162a034d29a43a2b7496de9927650fb0c2..d78bd35cb9140944ecb7115ed427d8ac6efbca51 100644 (file)
@@ -382,24 +382,24 @@ int DeviceV4L2Base::v4l2_open(int color_model)
                        best_format = cmodel_to_device(color_model);
                        break;
                }
-               printf("DeviceV4L2Base::v4l2_open "
-                       " attempting format %4.4s\n", (char *)&best_format);
+               printf(_("DeviceV4L2Base::v4l2_open "
+                       " attempting format %4.4s\n"), (char *)&best_format);
        }
        if(driver == VIDEO4LINUX2JPEG && best_format != V4L2_PIX_FMT_MJPEG)
        {
-               printf("DeviceV4L2Base::v4l2_open jpeg driver"
-                       " and best_format not mjpeg (%4.4s)\n", (char *)&best_format);
+               printf(_("DeviceV4L2Base::v4l2_open jpeg driver"
+                       " and best_format not mjpeg (%4.4s)\n"), (char *)&best_format);
                return 1;
        }
        if(driver == VIDEO4LINUX2MPEG && best_format != V4L2_PIX_FMT_MPEG)
        {
-               printf("DeviceV4L2Base::v4l2_open mpeg driver"
-                       " and best_format not mpeg (%4.4s)\n",(char *)&best_format);
+               printf(_("DeviceV4L2Base::v4l2_open mpeg driver"
+                       " and best_format not mpeg (%4.4s)\n"),(char *)&best_format);
                return 1;
        }
        if(config_width != best_width || config_height != best_height)
        {
-               printf("DeviceV4L2Base::v4l2_open  config geom %dx%d != %dx%d best_geom\n",
+               printf(_("DeviceV4L2Base::v4l2_open  config geom %dx%d != %dx%d best_geom\n"),
                        config_width, config_height, best_width, best_height);
        }
 
index 57ac2411e3adddcf2b536f8f94caf625e11301bf..e3dd870d244aec43a37d57984f8c55301acc5cd9 100644 (file)
@@ -128,7 +128,7 @@ EditLengthDialog::EditLengthDialog(MWindow *mwindow,
        EditLengthThread *thread,
        int x,
        int y)
- : BC_Window(PROGRAM_NAME ": Edit length"
+ : BC_Window(_(PROGRAM_NAME ": Edit length")
        x,
        y,
        300, 
index 31944ba3eba4ab049f1925892e8f420ebd2dd44f..2f130edecf8f4f3f08db2a5dd1de3b5f810c40c1 100644 (file)
@@ -106,7 +106,7 @@ int EditAttachEffect::handle_event()
 {
        dialog_thread->start_window(popup->track,
                0, 
-               PROGRAM_NAME ": Attach Effect",
+               _(PROGRAM_NAME ": Attach Effect"),
                0,
                popup->track->data_type);
        return 1;
@@ -281,7 +281,7 @@ int EditPopupTitle::handle_event()
 
 
 EditPopupTitleWindow::EditPopupTitleWindow (MWindow *mwindow, EditPopup *popup)
- : BC_Window (PROGRAM_NAME ": Set edit title",
+ : BC_Window (_(PROGRAM_NAME ": Set edit title"),
        mwindow->gui->get_abs_cursor_x(0) - 400 / 2,
        mwindow->gui->get_abs_cursor_y(0) - 500 / 2,
        300,
index 27ef662ff09534bf707a0cc82bc85c77526518c7..bfd530f69021e1f7a554ebaf4ff29f6e065e57b8 100644 (file)
@@ -32,7 +32,7 @@
 
 
 FeatherEdits::FeatherEdits(MWindow *mwindow, int audio, int video)
- : BC_MenuItem("Feather Edits..."), Thread()
+ : BC_MenuItem(_("Feather Edits...")), Thread()
 { 
        this->mwindow = mwindow; 
        this->audio = audio; 
@@ -75,7 +75,7 @@ void FeatherEdits::run()
 
 
 FeatherEditsWindow::FeatherEditsWindow(MWindow *mwindow, long feather_samples)
- : BC_Window(PROGRAM_NAME ": Feather Edits"
+ : BC_Window(_(PROGRAM_NAME ": Feather Edits")
        mwindow->gui->get_abs_cursor_x(), 
        mwindow->gui->get_abs_cursor_y(), 
        340, 
index 4ae746f90536f8cec0ae867bdc51702ae73ebbe3..7f0b5b77431c1f6ed987fff889400a39077a3865 100644 (file)
@@ -39,7 +39,7 @@ static void ff_err(int ret, const char *fmt, ...)
        va_end(ap);
        char errmsg[BCSTRLEN];
        av_strerror(ret, errmsg, sizeof(errmsg));
-       fprintf(stderr,"%s  err: %s\n",msg, errmsg);
+       fprintf(stderr,_("%s  err: %s\n"),msg, errmsg);
 }
 
 FFPacket::FFPacket()
@@ -1043,8 +1043,8 @@ int FFMPEG::get_encoder(const char *options,
                return 1;
        }
        if( get_encoder(fp, format, codec, bsfilter, bsargs) )
-               eprintf("FFMPEG::get_encoder:"
-                       " err: format/codec not found %s\n", options);
+               eprintf(_("FFMPEG::get_encoder:"
+                         " err: format/codec not found %s\n"), options);
        fclose(fp);
        return 0;
 }
@@ -1094,8 +1094,8 @@ int FFMPEG::read_options(FILE *fp, const char *options, AVDictionary *&opts)
                if( line[0] == '\n' ) continue;
                char key[BCSTRLEN], val[BCTEXTLEN];
                if( scan_option_line(line, key, val) ) {
-                       eprintf("FFMPEG::read_options:"
-                               " err reading %s: line %d\n", options, no);
+                       eprintf(_("FFMPEG::read_options:"
+                                 " err reading %s: line %d\n"), options, no);
                        ret = 1;
                }
                if( !ret ) {
@@ -1174,7 +1174,7 @@ int FFMPEG::info(char *text, int len)
        for( int i=0; i<(int)fmt_ctx->nb_streams; ++i ) {
                AVStream *st = fmt_ctx->streams[i];
                AVCodecContext *avctx = st->codec;
-               report("stream %d,  id 0x%06x:\n", i, avctx->codec_id);
+               report(_("stream %d,  id 0x%06x:\n"), i, avctx->codec_id);
                const AVCodecDescriptor *desc = avcodec_descriptor_get(avctx->codec_id);
                if( avctx->codec_type == AVMEDIA_TYPE_VIDEO ) {
                        AVRational framerate = av_guess_frame_rate(fmt_ctx, st, 0);
@@ -1206,7 +1206,7 @@ int FFMPEG::info(char *text, int len)
                        report("  %d:%02d:%05.2f\n", hrs, mins, secs);
                }
                else
-                       report("  codec_type unknown\n");
+                       report(_("  codec_type unknown\n"));
        }
        report("\n");
        for( int i=0; i<(int)fmt_ctx->nb_programs; ++i ) {
index be231980711914260d79003cde01ade0bfd3b39c..b7d816d9b79618a848a75f22653728dc45b0ab71 100644 (file)
@@ -313,7 +313,7 @@ int File::get_options(FormatTools *format,
 
        if(!format_window)
        {
-               ErrorBox *errorbox = new ErrorBox(PROGRAM_NAME ": Error",
+               ErrorBox *errorbox = new ErrorBox(_(PROGRAM_NAME ": Error"),
                        parent_window->get_abs_cursor_x(1),
                        parent_window->get_abs_cursor_y(1));
                format_window = errorbox;
@@ -2236,7 +2236,7 @@ const char* File::formattostr(ArrayList<PluginServer*> *plugindb, int format)
                case FILE_FFMPEG:       return _(FFMPEG_NAME);
                case FILE_DB:           return _(DBASE_NAME);
        }
-       return "Unknown";
+       return _("Unknown");
 }
 
 int File::strtobits(const char *bits)
@@ -2266,7 +2266,7 @@ const char* File::bitstostr(int bits)
                case BITSFLOAT:         return (NAME_FLOAT);
                case BITSIMA4:          return (NAME_IMA4);
        }
-       return "Unknown";
+       return _("Unknown");
 }
 
 
@@ -2533,7 +2533,7 @@ const char* File::get_prefix(int format)
        case FILE_GIF_LIST:     return "GIF_LIST";
        case FILE_DB:           return "DB";
        }
-       return "UNKNOWN";
+       return _("UNKNOWN");
 }
 
 
index 53a87a63fbf44d8cb1a2802c60691827ad7ec90e..0b902566a8b7ff849ef3d323b58b3d4cabe35cf4 100644 (file)
@@ -731,7 +731,7 @@ int FileAVI::write_samples(double **buffer, int64_t len)
 
 
 AVIConfigAudio::AVIConfigAudio(BC_WindowBase *parent_window, Asset *asset)
- : BC_Window(PROGRAM_NAME ": Audio compression",
+ : BC_Window(_(PROGRAM_NAME ": Audio compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        calculate_w(asset->format),
@@ -865,7 +865,7 @@ int AVIACodecList::handle_event()
 AVIConfigVideo::AVIConfigVideo(BC_WindowBase *parent_window, 
                Asset *asset, 
                const char *locked_compressor)
- : BC_Window(PROGRAM_NAME ": Video Compression",
+ : BC_Window(_(PROGRAM_NAME ": Video Compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        calculate_w(asset->format),
index 4906073497caca89884bd5b393e1140905defb55..6e582b850eb66c463e909dce75331907530fcce8 100644 (file)
@@ -187,24 +187,24 @@ TRACE("FileDV::open_file 20")
                if (!(asset->height == 576 && asset->width == 720 && asset->frame_rate == 25) &&
                    !(asset->height == 480 && asset->width == 720 && (asset->frame_rate >= 29.96 && asset->frame_rate <= 29.98)))
                {
-                       eprintf("Raw DV format does not support following resolution: %ix%i framerate: %f\nAllowed resolutions are 720x576 25fps (PAL) and 720x480 29.97fps (NTSC)\n", asset->width, asset->height, asset->frame_rate);
+                       eprintf(_("Raw DV format does not support following resolution: %ix%i framerate: %f\nAllowed resolutions are 720x576 25fps (PAL) and 720x480 29.97fps (NTSC)\n"), asset->width, asset->height, asset->frame_rate);
                        if (asset->height == 480 && asset->width == 720 && asset->frame_rate == 30)
                        {
-                               eprintf("Suggestion: Proper frame rate for NTSC DV is 29.97 fps, not 30 fps\n");
+                               eprintf(_("Suggestion: Proper frame rate for NTSC DV is 29.97 fps, not 30 fps\n"));
                        }
                        return 1;       
                }   
                if (!(asset->channels == 2 && (asset->sample_rate == 48000 || asset->sample_rate == 44100)) &&
                    !((asset->channels == 4 || asset->channels == 2) && asset->sample_rate == 32000))
                {
-                       eprintf("Raw DV format does not support following audio configuration : %i channels at sample rate: %iHz\n", asset->channels, asset->sample_rate);
+                       eprintf(_("Raw DV format does not support following audio configuration : %i channels at sample rate: %iHz\n"), asset->channels, asset->sample_rate);
                        return 1;
                }   
                  
 
                if((stream = fopen(asset->path, "w+b")) == 0)
                {
-                       eprintf("Error while opening \"%s\" for writing. \n%m\n", asset->path);
+                       eprintf(_("Error while opening \"%s\" for writing. \n%m\n"), asset->path);
                        return 1;
                }
                
@@ -246,7 +246,7 @@ TRACE("FileDV::open_file 40")
 
                if((stream = fopen(asset->path, "rb")) == 0)
                {
-                       eprintf("Error while opening \"%s\" for reading. \n%m\n", asset->path);
+                       eprintf(_("Error while opening \"%s\" for reading. \n%m\n"), asset->path);
                        return 1;
                }
 
@@ -386,7 +386,7 @@ int FileDV::audio_samples_copy(double **buffer, int64_t len)
                audio_sample_buffer = new int16_t*[asset->channels];
                if(!audio_sample_buffer)
                {
-                       fprintf(stderr, "ERROR: Unable to allocate memory for audio_sample_buffer.\n");
+                       fprintf(stderr, _("ERROR: Unable to allocate memory for audio_sample_buffer.\n"));
                        return 1;
                }
                
@@ -396,8 +396,8 @@ int FileDV::audio_samples_copy(double **buffer, int64_t len)
 
                        if(!audio_sample_buffer[i])
                        {
-                               fprintf(stderr, "ERROR: Unable to allocate memory for "
-                                       "audio_sample_buffer channel %d\n", i);
+                               fprintf(stderr, _("ERROR: Unable to allocate memory for "
+                                       "audio_sample_buffer channel %d\n"), i);
                                return 1;
                        }
                }
@@ -415,8 +415,8 @@ int FileDV::audio_samples_copy(double **buffer, int64_t len)
                        int16_t *tmp = new int16_t[(audio_sample_buffer_len + len) * 2];
                        if(!tmp)
                        {
-                               fprintf(stderr, "ERROR: Unable to reallocate memory for "
-                                       "audio_sample_buffer channel %d\n", i);
+                               fprintf(stderr, _("ERROR: Unable to reallocate memory for "
+                                       "audio_sample_buffer channel %d\n"), i);
                                return 1;
                        }
                        // Copy everything from audio_sample_buffer into tmp
@@ -475,7 +475,7 @@ int FileDV::write_samples(double **buffer, int64_t len)
 {
        if(audio_samples_copy(buffer, len) != 0)
        {
-               eprintf("Unable to store sample");
+               eprintf(_("Unable to store sample"));
                return 1;       
        }
        video_position_lock->lock("FileDV::write_samples");
@@ -502,7 +502,7 @@ TRACE("FileDV::write_samples 220")
                stream_lock->lock("FileDV::write_samples 10");
                if(fseeko(stream, (off_t) audio_frames_written * output_size, SEEK_SET) != 0)
                {
-                       eprintf("Unable to set audio write position to %ji\n", (off_t) audio_frames_written * output_size);
+                       eprintf(_("Unable to set audio write position to %ji\n"), (off_t) audio_frames_written * output_size);
 
                        stream_lock->unlock();
                        return 1;
@@ -510,7 +510,7 @@ TRACE("FileDV::write_samples 220")
                
                if(fread(audio_buffer, output_size, 1, stream) != 1)
                {
-                       eprintf("Unable to read from audio buffer file\n");
+                       eprintf(_("Unable to read from audio buffer file\n"));
                        stream_lock->unlock();
                        return 1;
                }
@@ -541,7 +541,7 @@ TRACE("FileDV::write_samples 250")
                        if(dv_encode_full_audio(audio_encoder, tmp_buf, asset->channels,
                                asset->sample_rate, audio_buffer) < 0)
                        {
-                               eprintf("ERROR: unable to encode audio frame %d\n", audio_frames_written);
+                               eprintf(_("ERROR: unable to encode audio frame %d\n"), audio_frames_written);
                        }
                }
                else
@@ -553,7 +553,7 @@ TRACE("FileDV::write_samples 260")
                        if(dv_encode_full_audio(audio_encoder, tmp_buf2,
                                asset->channels, asset->sample_rate, audio_buffer) < 0)
                        {
-                               eprintf("ERROR: unable to encode audio frame %d\n", audio_frames_written);
+                               eprintf(_("ERROR: unable to encode audio frame %d\n"), audio_frames_written);
                                
                        }
                        delete[] tmp_buf2;
@@ -564,14 +564,14 @@ TRACE("FileDV::write_samples 270")
                stream_lock->lock("FileDV::write_samples 20");
                if(fseeko(stream, (off_t) audio_frames_written * output_size, SEEK_SET) != 0)
                {
-                       eprintf("ERROR: Unable to relocate for audio write to %ji\n", (off_t) audio_frames_written * output_size);
+                       eprintf(_("ERROR: Unable to relocate for audio write to %ji\n"), (off_t) audio_frames_written * output_size);
                        stream_lock->unlock();
                        return 1;
                }
                
                if(fwrite(audio_buffer, output_size, 1, stream) != 1)
                {
-                       eprintf("Unable to write audio to audio buffer\n");
+                       eprintf(_("Unable to write audio to audio buffer\n"));
                        stream_lock->unlock();
                        return 1;
                }
@@ -669,11 +669,11 @@ int FileDV::write_frames(VFrame ***frames, int len)
                stream_lock->lock("FileDV::write_frames");
                if(fseeko(stream, (off_t) video_position * output_size, SEEK_SET) != 0)
                {
-                       eprintf("Unable to seek file to %ji\n", (off_t)(video_position * output_size));
+                       eprintf(_("Unable to seek file to %ji\n"), (off_t)(video_position * output_size));
                }
                if(fwrite(video_buffer, output_size, 1, stream) < 1)
                {
-                       eprintf("Unable to write video data to video buffer");
+                       eprintf(_("Unable to write video data to video buffer"));
                }
                stream_lock->unlock();
                
@@ -692,7 +692,7 @@ int FileDV::read_compressed_frame(VFrame *buffer)
 
        if (fseeko(stream, (off_t) video_position * output_size, SEEK_SET))
        {
-               eprintf("Unable to seek file to %ji\n", (off_t)(video_position * output_size));
+               eprintf(_("Unable to seek file to %ji\n"), (off_t)(video_position * output_size));
        }
        result = fread(buffer->get_data(), output_size, 1, stream);
        video_position++;
@@ -709,7 +709,7 @@ int FileDV::write_compressed_frame(VFrame *buffer)
 
        if (fseeko(stream, (off_t) video_position * output_size, SEEK_SET))
        {
-               eprintf("Unable to seek file to %ji\n", (off_t)(video_position * output_size));
+               eprintf(_("Unable to seek file to %ji\n"), (off_t)(video_position * output_size));
        }
        result = fwrite(buffer->get_data(), buffer->get_compressed_size(), 1, stream);
        video_position++;
@@ -773,7 +773,7 @@ int FileDV::read_samples(double *buffer, int64_t len)
                
                if(dv_decode_full_audio(decoder, audio_buffer, out_buffer) < 0)
                {
-                       eprintf("Error decoding audio frame %d\n", frame_count - 1);
+                       eprintf(_("Error decoding audio frame %d\n"), frame_count - 1);
                }
 
                int end = dv_get_num_samples(decoder);
@@ -812,7 +812,7 @@ TRACE("FileDV::read_frame 10")
        stream_lock->lock("FileDV::read_frame");
        if(fseeko(stream, (off_t) video_position * output_size, SEEK_SET) < 0)
        {
-               eprintf("Unable to seek file to %ji", (off_t)(video_position * output_size));
+               eprintf(_("Unable to seek file to %ji"), (off_t)(video_position * output_size));
                stream_lock->unlock();
                return 1;
        }
@@ -990,7 +990,7 @@ int FileDV::get_audio_offset(int64_t pos)
 
 
 DVConfigAudio::DVConfigAudio(BC_WindowBase *parent_window, Asset *asset)
- : BC_Window(PROGRAM_NAME ": Audio Compression",
+ : BC_Window(_(PROGRAM_NAME ": Audio Compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        350,
@@ -1023,7 +1023,7 @@ int DVConfigAudio::close_event()
 
 
 DVConfigVideo::DVConfigVideo(BC_WindowBase *parent_window, Asset *asset)
- : BC_Window(PROGRAM_NAME ": Video Compression",
+ : BC_Window(_(PROGRAM_NAME ": Video Compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        350,
index be4b3e9fed1df97382c8b2826bea035b63d83b5b..d59bbbd3d7dba054c127f78c6162b3af7268def4 100644 (file)
@@ -194,7 +194,7 @@ const char* FileEXR::compression_to_str(int compression)
                case FileEXR::RLE: return "RLE"; break;
                case FileEXR::PXR24: return "PXR24"; break;
        }
-       return "None";
+       return _("None");
 }
 
 int FileEXR::compression_to_exr(int compression)
@@ -572,7 +572,7 @@ EXRUnit::~EXRUnit()
 
 
 EXRConfigVideo::EXRConfigVideo(BC_WindowBase *parent_window, Asset *asset)
- : BC_Window(PROGRAM_NAME ": Video Compression",
+ : BC_Window(_(PROGRAM_NAME ": Video Compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        300,
@@ -593,7 +593,7 @@ void EXRConfigVideo::create_objects()
        add_subwindow(new EXRUseAlpha(this, x, y));
        y += 30;
        EXRCompression *menu;
-       add_subwindow(new BC_Title(x, y, "Compression:"));
+       add_subwindow(new BC_Title(x, y, _("Compression:")));
        x += 110;
        add_subwindow(menu = new EXRCompression(this, x, y, 100));
        menu->create_objects();
index 04bdd750b084362656167ce69c78a3bdc29aa39c..280ed9d72107d85ca3344effb7c519cc4b5733f6 100644 (file)
@@ -136,24 +136,24 @@ void FileFFMPEG::get_info(char *path, char *text)
 {
        char *cp = text;
        FFMPEG ffmpeg(0);
-       cp += sprintf(cp, "file path: %s\n", path);
+       cp += sprintf(cp, _("file path: %s\n"), path);
        struct stat st;
        int ret = 0;
        if( stat(path, &st) < 0 ) {
-               cp += sprintf(cp, " err: %s\n", strerror(errno));
+               cp += sprintf(cp, _(" err: %s\n"), strerror(errno));
                ret = 1;
        }
        else {
-               cp += sprintf(cp, "  %jd bytes\n", st.st_size);
+               cp += sprintf(cp, _("  %jd bytes\n"), st.st_size);
        }
        if( !ret ) ret = ffmpeg.init_decoder(path);
        if( !ret ) ret = ffmpeg.open_decoder();
        if( !ret ) {
-               cp += sprintf(cp, "info:\n");
+               cp += sprintf(cp, _("info:\n"));
                ffmpeg.info(cp, BCTEXTLEN-(cp-text));
        }
        else
-               sprintf(cp, "== open failed\n");
+               sprintf(cp, _("== open failed\n"));
 }
 
 int FileFFMPEG::get_video_info(int track, int &pid, double &framerate,
@@ -322,7 +322,7 @@ int FileFFMPEG::get_best_colormodel(Asset *asset, int driver)
 extern void get_exe_path(char *result); // from main.C
 
 FFMPEGConfigAudio::FFMPEGConfigAudio(BC_WindowBase *parent_window, Asset *asset)
- : BC_Window(PROGRAM_NAME ": Audio Preset",
+ : BC_Window(_(PROGRAM_NAME ": Audio Preset"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        420, 420)
@@ -455,7 +455,7 @@ int FFMPEGConfigAudioToggle::handle_event()
 //======
 
 FFMPEGConfigVideo::FFMPEGConfigVideo(BC_WindowBase *parent_window, Asset *asset)
- : BC_Window(PROGRAM_NAME ": Video Preset",
+ : BC_Window(_(PROGRAM_NAME ": Video Preset"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        420, 420)
index 61253e7763d88249dfcc373f81f9b9269784b8df..ccbcb0fecd4e68827ec12fd34d56b3fa0300bb91 100644 (file)
@@ -360,7 +360,7 @@ int FileFLAC::read_samples(double *buffer, int64_t len)
 
 FLACConfigAudio::FLACConfigAudio(BC_WindowBase *parent_window, 
        Asset *asset)
- : BC_Window(PROGRAM_NAME ": Audio Compression",
+ : BC_Window(_(PROGRAM_NAME ": Audio Compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        350,
index b6732cac7faf7ca5617371fa5c56b7885b6e60aa..11c6a3100d249cd08b94a4a109d4c8e343fa4e03 100644 (file)
@@ -31,7 +31,7 @@
 
 
 FileFormat::FileFormat(MWindow *mwindow)
- : BC_Window(PROGRAM_NAME ": File Format",
+ : BC_Window(_(PROGRAM_NAME ": File Format"),
                mwindow->gui->get_abs_cursor_x(0),
                mwindow->gui->get_abs_cursor_y(0),
                375,
index b1ff17efa0b4e41c4ed79719b375671bfcc8cbc9..6fc86ae41fd8c8dc80193cc9240dd09e22f3a9a3 100644 (file)
@@ -153,7 +153,7 @@ int FileJPEGList::write_frame(VFrame *frame, VFrame *data)
 
 
 JPEGConfigVideo::JPEGConfigVideo(BC_WindowBase *parent_window, Asset *asset)
- : BC_Window(PROGRAM_NAME ": Video Compression",
+ : BC_Window(_(PROGRAM_NAME ": Video Compression"),
        parent_window->get_abs_cursor_x(),
        parent_window->get_abs_cursor_y(),
        400,
index 34da86859ea4362a9702e9b829858abea3f7b51d..6155725425a33ff38b03c72d2c1cffbc6ca86f78 100644 (file)
@@ -306,7 +306,7 @@ int FileList::read_frame(VFrame *frame)
                {
                        if(!(in = fopen(string, "rb")))
                        {
-                       eprintf("Error while opening \"%s\" for reading. \n%m\n", string);
+                       eprintf(_("Error while opening \"%s\" for reading. \n%m\n"), string);
                        }
                        else
                        {
@@ -380,7 +380,7 @@ int FileList::read_frame(VFrame *frame)
                                }
                                else
                                {
-                               eprintf("Error while opening \"%s\" for reading. \n%m\n", asset->path);
+                               eprintf(_("Error while opening \"%s\" for reading. \n%m\n"), asset->path);
                                        result = 1;
                                }
                        }
@@ -478,7 +478,7 @@ int FileList::write_frames(VFrame ***frames, int len)
                                }
                                else
                                {
-                                       eprintf("Error while opening \"%s\" for writing. \n%m\n", asset->path);
+                                       eprintf(_("Error while opening \"%s\" for writing. \n%m\n"), asset->path);
                                        return_value++;
                                }
                        }
@@ -660,7 +660,7 @@ void FrameWriterUnit::process_package(LoadPackage *package)
 //printf("FrameWriterUnit::process_package 2 %s\n", ptr->path);
        if(!(file = fopen(ptr->path, "wb")))
        {
-               eprintf("Error while opening \"%s\" for writing. \n%m\n", ptr->path);
+               eprintf(_("Error while opening \"%s\" for writing. \n%m\n"), ptr->path);
                return;
        }
 //printf("FrameWriterUnit::process_package 3");
index 518d1e9341a5d1c8a2262331534fc74883f109bb..4fd6234b5bee02932181c06517dd39e76349a762 100644 (file)
@@ -181,8 +181,8 @@ int FileMOV::check_codec_params(Asset *asset)
                if (!(asset->height == 576 && asset->width == 720) &&
                    !(asset->height == 480 && asset->width == 720))
                {
-                       eprintf("DV in Quicktime container does not support following resolution: %ix%i\n"
-                               "Allowed resolutions are 720x576 (PAL) and 720x480 (NTSC)\n",
+                       eprintf(_("DV in Quicktime container does not support following resolution: %ix%i\n"
+                               "Allowed resolutions are 720x576 (PAL) and 720x480 (NTSC)\n"),
                                 asset->width, asset->height);
                        return 1;
                }
@@ -223,7 +223,7 @@ int FileMOV::open_file(int rd, int wr)
 
        if(!(fd = quicktime_open(asset->path, rd, wr)))
        {
-               eprintf("Error while opening file \"%s\". \n%m\n", asset->path);
+               eprintf(_("Error while opening file \"%s\". \n%m\n"), asset->path);
                return 1;
        }
 
@@ -1173,7 +1173,7 @@ int FileMOV::read_samples(double *buffer, int64_t len)
 //printf("FileMOV::read_samples 3 " _LD " " _LD "\n", file->current_sample, quicktime_audio_position(fd, 0));
                if(quicktime_decode_audio(fd, 0, temp_float[0], len, file->current_channel))
                {
-                       printf("quicktime_decode_audio failed\n");
+                       printf(_("quicktime_decode_audio failed\n"));
                        return 1;
                }
                else
@@ -1427,7 +1427,7 @@ void FileMOVThread::run()
 
 
 MOVConfigAudio::MOVConfigAudio(BC_WindowBase *parent_window, Asset *asset)
- : BC_Window(PROGRAM_NAME ": Audio Compression",
+ : BC_Window(_(PROGRAM_NAME ": Audio Compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        350,
@@ -1719,7 +1719,7 @@ int MOVConfigAudioPopup::handle_event()
 MOVConfigVideo::MOVConfigVideo(BC_WindowBase *parent_window,
        Asset *asset,
        const char *locked_compressor)
- : BC_Window(PROGRAM_NAME ": Video Compression",
+ : BC_Window(_(PROGRAM_NAME ": Video Compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        420,
index 6e5da23a741933c37d3326cda80e6aaafc79451e..033f38c1f0469d5492044b7f92100c0343b94a52 100644 (file)
@@ -147,8 +147,8 @@ void FileMPEG::get_info(char *title_path, char *path, char *text)
 
        char *cp = text;
        if( mpeg3_has_toc(fd) ) {
-               cp += sprintf(cp, "toc path:%s\n", path);
-               cp += sprintf(cp, "title path:\n");
+               cp += sprintf(cp, _("toc path:%s\n"), path);
+               cp += sprintf(cp, _("title path:\n"));
                for( int i=0; i<100; ++i ) {
                        char *title_path = mpeg3_title_path(fd,i);
                        if( !title_path ) break;
@@ -156,21 +156,21 @@ void FileMPEG::get_info(char *title_path, char *path, char *text)
                }
        }
        else
-               cp += sprintf(cp, "file path:%s\n", path);
+               cp += sprintf(cp, _("file path:%s\n"), path);
        int64_t bytes = mpeg3_get_bytes(fd);
        char string[BCTEXTLEN];
        sprintf(string,"%ld",bytes);
        Units::punctuate(string);
-       cp += sprintf(cp, "size: %s", string);
+       cp += sprintf(cp, _("size: %s"), string);
 
        if( mpeg3_is_program_stream(fd) )
-         cp += sprintf(cp, "  program stream\n");
+         cp += sprintf(cp, _("  program stream\n"));
        else if( mpeg3_is_transport_stream(fd) )
-         cp += sprintf(cp, "  transport stream\n");
+         cp += sprintf(cp, _("  transport stream\n"));
        else if( mpeg3_is_video_stream(fd) )
-         cp += sprintf(cp, "  video stream\n");
+         cp += sprintf(cp, _("  video stream\n"));
        else if( mpeg3_is_audio_stream(fd) )
-         cp += sprintf(cp, "  audio stream\n");
+         cp += sprintf(cp, _("  audio stream\n"));
 
        int64_t sdate = mpeg3_get_source_date(fd);
        if( !sdate ) {
@@ -179,60 +179,60 @@ void FileMPEG::get_info(char *title_path, char *path, char *text)
                sdate = stat64(path, &ostat) < 0 ? 0 : ostat.st_mtime;
        }
        time_t tm = (time_t)sdate;
-       cp += sprintf(cp, "date: %s\n", ctime(&tm));
+       cp += sprintf(cp, _("date: %s\n"), ctime(&tm));
 
        int vtrks = mpeg3_total_vstreams(fd);
-       cp += sprintf(cp, "%d video tracks\n", vtrks);
+       cp += sprintf(cp, _("%d video tracks\n"), vtrks);
        for( int vtrk=0; vtrk<vtrks; ++vtrk ) {
                int cmdl = mpeg3_colormodel(fd, vtrk);
                int color_model = bc_colormodel(cmdl);
                char *cmodel = MPEGColorModel::cmodel_to_string(color_model);
                int width = mpeg3_video_width(fd, vtrk);
                int height = mpeg3_video_height(fd, vtrk);
-               cp += sprintf(cp, "  v%d %s %dx%d", vtrk, cmodel, width, height);
+               cp += sprintf(cp, _("  v%d %s %dx%d"), vtrk, cmodel, width, height);
                double frame_rate = mpeg3_frame_rate(fd, vtrk);
                int64_t frames = mpeg3_video_frames(fd, vtrk);
-               cp += sprintf(cp, " (%5.2f), %ld frames", frame_rate, frames);
+               cp += sprintf(cp, _(" (%5.2f), %ld frames"), frame_rate, frames);
                if( frame_rate > 0 ) {
                        double secs = (double)frames / frame_rate;
-                       cp += sprintf(cp, " (%0.3f secs)",secs);
+                       cp += sprintf(cp, _(" (%0.3f secs)"),secs);
                }
                *cp++ = '\n';
        }
        int atrks = mpeg3_total_astreams(fd);
-       cp += sprintf(cp, "%d audio tracks\n", atrks);
+       cp += sprintf(cp, _("%d audio tracks\n"), atrks);
        for( int atrk=0; atrk<atrks; ++atrk) {
                const char *format = mpeg3_audio_format(fd, atrk);
-               cp += sprintf(cp, " a%d %s", atrk, format);
+               cp += sprintf(cp, _(" a%d %s"), atrk, format);
                int channels = mpeg3_audio_channels(fd, atrk);
                int sample_rate = mpeg3_sample_rate(fd, atrk);
-               cp += sprintf(cp, " ch%d (%d)", channels, sample_rate);
+               cp += sprintf(cp, _(" ch%d (%d)"), channels, sample_rate);
                int64_t samples = mpeg3_audio_samples(fd, atrk);
                cp += sprintf(cp, " %ld",samples);
                int64_t nudge = mpeg3_get_audio_nudge(fd, atrk);
                *cp++ = nudge >= 0 ? '+' : (nudge=-nudge, '-');
-               cp += sprintf(cp, "%ld samples",nudge);
+               cp += sprintf(cp, _("%ld samples"),nudge);
                if( sample_rate > 0 ) {
                        double secs = (double)(samples+nudge) / sample_rate;
-                       cp += sprintf(cp, " (%0.3f secs)",secs);
+                       cp += sprintf(cp, _(" (%0.3f secs)"),secs);
                }
                *cp++ = '\n';
        }
        int stracks = mpeg3_subtitle_tracks(fd);
        if( stracks > 0 ) {
-               cp += sprintf(cp, "%d subtitles\n", stracks);
+               cp += sprintf(cp, _("%d subtitles\n"), stracks);
        }
        int vts_titles = mpeg3_get_total_vts_titles(fd);
        if( vts_titles > 0 )
-               cp += sprintf(cp, "%d title sets, ", vts_titles);
+               cp += sprintf(cp, _("%d title sets, "), vts_titles);
        int interleaves = mpeg3_get_total_interleaves(fd);
        if( interleaves > 0 )
-               cp += sprintf(cp, "%d interleaves\n", interleaves);
+               cp += sprintf(cp, _("%d interleaves\n"), interleaves);
        int vts_title = mpeg3_set_vts_title(fd, -1);
        int angle = mpeg3_set_angle(fd, -1);
        int interleave = mpeg3_set_interleave(fd, -1);
        int program = mpeg3_set_program(fd, -1);
-       cp += sprintf(cp, "current program %d = title %d, angle %d, interleave %d\n\n",
+       cp += sprintf(cp, _("current program %d = title %d, angle %d, interleave %d\n\n"),
                program, vts_title, angle, interleave);
 
        ArrayList<double> cell_times;
@@ -241,10 +241,10 @@ void FileMPEG::get_info(char *title_path, char *path, char *text)
                cell_times.append(cell_time);
        }
        if( cell_times.size() > 1 ) {
-               cp += sprintf(cp, "cell times:");
+               cp += sprintf(cp, _("cell times:"));
                for( int i=0; i<cell_times.size(); ++i ) {
                        if( (i%4) == 0 ) *cp++ = '\n';
-                       cp += sprintf(cp,"  %3d.  %8.3f",i,cell_times.get(i));
+                       cp += sprintf(cp,_("  %3d.  %8.3f"),i,cell_times.get(i));
                }
                cp += sprintf(cp, "\n");
        }
@@ -253,9 +253,9 @@ void FileMPEG::get_info(char *title_path, char *path, char *text)
        if( elements <= 0 ) return;
        if( !mpeg3_dvb_get_system_time(fd, &sdate) ) {
                tm = (time_t)sdate;
-               cp += sprintf(cp, "\nsystem time: %s", ctime_r(&tm,string));
+               cp += sprintf(cp, _("\nsystem time: %s"), ctime_r(&tm,string));
        }
-       cp += sprintf(cp, "elements %d\n", elements);
+       cp += sprintf(cp, _("elements %d\n"), elements);
 
        for( int n=0; n<elements; ++n ) {
                char name[16], enc[8];  int vstream, astream;
@@ -289,7 +289,7 @@ void FileMPEG::get_info(char *title_path, char *path, char *text)
                if( mpeg3_dvb_get_channel(fd,n, &major, &minor) ) continue;
                cp += sprintf(cp, "\n**chan %3d.%-3d\n", major, minor);
                int len = mpeg3_dvb_get_chan_info(fd, n, -1, 0, cp, 1023);
-                if( len < 0 ) len = sprintf(cp,"no info");
+                if( len < 0 ) len = sprintf(cp,_("no info"));
                 cp += len;  *cp++ = '*';  *cp++ = '*';  *cp++ = '\n';
                for( int ord=0; ord<0x80; ++ord ) {
                        for( int i=0; (len=mpeg3_dvb_get_chan_info(fd,n,ord,i,cp,1023)) >= 0; ++i ) {
@@ -391,16 +391,16 @@ int FileMPEG::open_file(int rd, int wr)
                if( !fd ) {
                        result = 1;
                        if(error == zmpeg3_t::ERR_INVALID_TOC_VERSION) {
-                               eprintf("Couldn't open %s: invalid table of contents version.\n"
-                                       "Rebuilding the table of contents.", asset->path);
+                               eprintf(_("Couldn't open %s: invalid table of contents version.\n"
+                                       "Rebuilding the table of contents."), asset->path);
                        }
                        else if(error == zmpeg3_t::ERR_TOC_DATE_MISMATCH) {
-                               eprintf("Couldn't open %s: table of contents out of date.\n"
-                                       "Rebuilding the table of contents.", asset->path);
+                               eprintf(_("Couldn't open %s: table of contents out of date.\n"
+                                       "Rebuilding the table of contents."), asset->path);
                        }
                        else {
-                               eprintf("Couldn't open %s: table of contents corrupt.\n"
-                                       "Rebuilding the table of contents.", asset->path);
+                               eprintf(_("Couldn't open %s: table of contents corrupt.\n"
+                                       "Rebuilding the table of contents."), asset->path);
                        }
                        char filename[BCTEXTLEN];
                        strcpy(filename, toc_name);
@@ -414,7 +414,7 @@ int FileMPEG::open_file(int rd, int wr)
                                if( fd ) result = 0;
                        }
                        if( result )
-                               eprintf("Couldn't open %s: rebuild failed.\n", asset->path);
+                               eprintf(_("Couldn't open %s: rebuild failed.\n"), asset->path);
                }
                if(!result) {
 // Determine if the file needs a table of contents and create one if needed.
@@ -587,7 +587,7 @@ int FileMPEG::open_file(int rd, int wr)
                        
                        if(aspect_ratio_code < 0)
                        {
-                               eprintf("Unsupported aspect ratio %f\n", asset->aspect_ratio);
+                               eprintf(_("Unsupported aspect ratio %f\n"), asset->aspect_ratio);
                                aspect_ratio_code = 2;
                        }
                        sprintf(string, " -a %d", aspect_ratio_code);
@@ -612,7 +612,7 @@ int FileMPEG::open_file(int rd, int wr)
                        if(frame_rate_code < 0)
                        {
                                frame_rate_code = 4;
-                               eprintf("Unsupported frame rate %f\n", asset->frame_rate);
+                               eprintf(_("Unsupported frame rate %f\n"), asset->frame_rate);
                        }
                        sprintf(string, " -F %d", frame_rate_code);
                        strcat(mjpeg_command, string);
@@ -659,7 +659,7 @@ int FileMPEG::open_file(int rd, int wr)
                        if(!(mjpeg_out = popen(mjpeg_command, "w")))
                        {
                                perror("FileMPEG::open_file");
-                               eprintf("Error while opening \"%s\" for writing\n%m\n", mjpeg_command);
+                               eprintf(_("Error while opening \"%s\" for writing\n%m\n"), mjpeg_command);
                                return 1;
                        }
 
@@ -707,7 +707,7 @@ int FileMPEG::open_file(int rd, int wr)
                        if(!(lame_fd = fopen(asset->path, "w")))
                        {
                                perror("FileMPEG::open_file");
-                               eprintf("Error while opening \"%s\" for writing\n%m\n", asset->path);
+                               eprintf(_("Error while opening \"%s\" for writing\n%m\n"), asset->path);
                                lame_close(lame_global);
                                lame_global = 0;
                                result = 1;
@@ -715,7 +715,7 @@ int FileMPEG::open_file(int rd, int wr)
                }
                else
                {
-                       eprintf("ampeg_derivative=%d\n", asset->ampeg_derivative);
+                       eprintf(_("ampeg_derivative=%d\n"), asset->ampeg_derivative);
                        result = 1;
                }
        }
@@ -727,7 +727,7 @@ int FileMPEG::open_file(int rd, int wr)
                        S_IRUSR+S_IWUSR + S_IRGRP+S_IWGRP)) < 0 )
                {
                        perror("FileMPEG::open_file");
-                       eprintf("Error while opening \"%s\" for writing\n%m\n", asset->path);
+                       eprintf(_("Error while opening \"%s\" for writing\n%m\n"), asset->path);
                        result = 1;
                }
        }
@@ -821,7 +821,7 @@ int FileMPEG::create_index()
                fd = mpeg3_start_toc( asset->path, index_filename,
                                file->current_program, &total_bytes);
                if( !fd ) {
-                       eprintf("cant init toc index\n");
+                       eprintf(_("cant init toc index\n"));
                        result = 1;
                }
 
@@ -831,13 +831,13 @@ int FileMPEG::create_index()
                if( !result && file->preferences->scan_commercials ) {
                        set_skimming(-1, 1, toc_nail, file);
                        if( (result=MWindow::commercials->resetDb() ) != 0 )
-                               eprintf("cant access commercials database");
+                               eprintf(_("cant access commercials database"));
                }
 
                char progress_title[BCTEXTLEN];  progress_title[0] = 0;
                BC_ProgressBox *progress = 0;
                if( !result ) {
-                       sprintf(progress_title, "Creating %s\n", index_filename);
+                       sprintf(progress_title, _("Creating %s\n"), index_filename);
                        progress = new BC_ProgressBox(-1, -1,
                                        progress_title, total_bytes);
                        progress->start();
@@ -869,7 +869,7 @@ int FileMPEG::create_index()
                        if(bytes_processed >= total_bytes) break;
                        if(progress->is_cancelled()) result = 1;
                        if( bytes_processed == last_bytes ) {
-                               eprintf("toc scan stopped before eof");
+                               eprintf(_("toc scan stopped before eof"));
                                break;
                        }
                        last_bytes = bytes_processed;
@@ -943,7 +943,7 @@ int FileMPEG::close_file()
                if( ret > 0 )
                        fwrite(opkt, 1, ret, twofp);
                else if( ret < 0 )
-                       fprintf(stderr, "twolame error encoding audio: %d\n", ret);
+                       fprintf(stderr, _("twolame error encoding audio: %d\n"), ret);
                fclose(twofp);  twofp = 0;
        }
        if( twopts ) { twolame_close(&twopts); twopts = 0; }
@@ -1011,7 +1011,7 @@ int FileMPEG::get_best_colormodel(Asset *asset, int driver)
                case CAPTURE_IEC61883:
                        return BC_YUV422P;
        }
-       eprintf("unknown driver %d\n",driver);
+       eprintf(_("unknown driver %d\n"),driver);
        return BC_RGB888;
 }
 
@@ -1235,7 +1235,7 @@ int FileMPEG::write_samples(double **buffer, int64_t len)
                if( ret > 0 )
                        fwrite(twolame_out, 1, ret, twofp);
                else if( ret < 0 )
-                       fprintf(stderr, "twolame error encoding audio: %d\n", ret);
+                       fprintf(stderr, _("twolame error encoding audio: %d\n"), ret);
        }
        else
        if(asset->ampeg_derivative == 3)
@@ -1296,7 +1296,7 @@ int FileMPEG::write_samples(double **buffer, int64_t len)
                                result = !fwrite(real_output, 1, bytes, lame_fd);
                                if(result) {
                                        perror("FileMPEG::write_samples");
-                                       eprintf("write failed: %m");
+                                       eprintf(_("write failed: %m"));
                                }
                        }
                        else
@@ -1807,7 +1807,7 @@ void FileMPEGVideo::run()
 
 
 MPEGConfigAudio::MPEGConfigAudio(BC_WindowBase *parent_window, Asset *asset)
- : BC_Window(PROGRAM_NAME ": Audio Compression",
+ : BC_Window(_(PROGRAM_NAME ": Audio Compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        310,
@@ -2002,7 +2002,7 @@ char* MPEGABitrate::bitrate_to_string(char *string, int bitrate)
 
 MPEGConfigVideo::MPEGConfigVideo(BC_WindowBase *parent_window, 
        Asset *asset)
- : BC_Window(PROGRAM_NAME ": Video Compression",
+ : BC_Window(_(PROGRAM_NAME ": Video Compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        500,
index 569853ae3cd19322350becd2aa1af2b4188e64e6..643c69d53926c58d17060fe4e7fdc092cc39244d 100644 (file)
@@ -172,7 +172,7 @@ static int take_page_out_autoadvance(FILE *in, sync_window_t *sw, ogg_page *og)
                }
                else if (ret < 0)
                {
-                       printf("FileOGG: Taking page out on nonsynced stream!\n");
+                       printf(_("FileOGG: Taking page out on nonsynced stream!\n"));
                        return ret;
                        
                } else
@@ -180,7 +180,7 @@ static int take_page_out_autoadvance(FILE *in, sync_window_t *sw, ogg_page *og)
                        // need more data for page
                        if ((ret = read_buffer(in, sw, READ_SIZE)) == 0) 
                        {
-                               printf("FileOGG: There is no more data in the file we are reading from\n");
+                               printf(_("FileOGG: There is no more data in the file we are reading from\n"));
                                return 0;  // No more data
                        }
                }
@@ -260,7 +260,7 @@ int FileOGG::open_file(int rd, int wr)
                        tf->ti.width = ((asset->width + 15) >>4)<<4; // round up to the nearest multiple of 16 
                        tf->ti.height = ((asset->height + 15) >>4)<<4; // round up to the nearest multiple of 16
                        if (tf->ti.width != tf->ti.frame_width || tf->ti.height != tf->ti.frame_height)
-                               printf("FileOGG: WARNING: Encoding theora when width or height are not dividable by 16 is suboptimal\n");
+                               printf(_("FileOGG: WARNING: Encoding theora when width or height are not dividable by 16 is suboptimal\n"));
                        
                        tf->ti.offset_x = 0;
                        tf->ti.offset_y = tf->ti.height - tf->ti.frame_height;
@@ -308,7 +308,7 @@ int FileOGG::open_file(int rd, int wr)
                                        
                        if (theora_encode_init (&tf->td, &tf->ti))
                        {
-                               printf("FileOGG: initialization of theora codec failed\n");
+                               printf(_("FileOGG: initialization of theora codec failed\n"));
                        }
                }
                /* init theora done */
@@ -343,8 +343,8 @@ int FileOGG::open_file(int rd, int wr)
 
                        if (ret)
                        {
-                               eprintf("The Vorbis encoder could not set up a mode according to\n"
-                                       "the requested quality or bitrate.\n\n");
+                               eprintf(_("The Vorbis encoder could not set up a mode according to\n"
+                                       "the requested quality or bitrate.\n\n"));
                                return 1;
                        }
 
@@ -366,7 +366,7 @@ int FileOGG::open_file(int rd, int wr)
                        ogg_stream_packetin (&tf->to, &tf->op);
                        if (ogg_stream_pageout (&tf->to, &tf->og) != 1)
                        {
-                               eprintf("Internal Ogg library error.\n");
+                               eprintf(_("Internal Ogg library error.\n"));
                                return 1;
                        }
                        fwrite (tf->og.header, 1, tf->og.header_len, stream);
@@ -393,7 +393,7 @@ int FileOGG::open_file(int rd, int wr)
                        vorbis_comment_clear(&tf->vc);
                        if (ogg_stream_pageout (&tf->vo, &tf->og) != 1)
                        {
-                               eprintf("Internal Ogg library error.\n");
+                               eprintf(_("Internal Ogg library error.\n"));
                                return 1;
                        }
                        fwrite (tf->og.header, 1, tf->og.header_len, stream);
@@ -413,7 +413,7 @@ int FileOGG::open_file(int rd, int wr)
                        if (result < 0)
                        {
                                /* can't get here */
-                               eprintf("Internal Ogg library error.\n");
+                               eprintf(_("Internal Ogg library error.\n"));
                                return 1;
                        }
                        if (result == 0)
@@ -427,7 +427,7 @@ int FileOGG::open_file(int rd, int wr)
                        if (result < 0)
                        {
                                /* can't get here */
-                               eprintf("Internal Ogg library error.\n");
+                               eprintf(_("Internal Ogg library error.\n"));
                                return 1;
                        }
                        if (result == 0)
@@ -541,12 +541,12 @@ int FileOGG::open_file(int rd, int wr)
                        {
                                if(ret < 0)
                                {
-                                       eprintf("FileOGG: Error parsing Theora stream headers; corrupt stream?\n");
+                                       eprintf(_("FileOGG: Error parsing Theora stream headers; corrupt stream?\n"));
                                        return 1;
                                }
                                if(theora_decode_header(&tf->ti, &tf->tc, &tf->op))
                                {
-                                       printf("FileOGG: Error parsing Theora stream headers; corrupt stream?\n");
+                                       printf(_("FileOGG: Error parsing Theora stream headers; corrupt stream?\n"));
                                        return 1;
                                }
                                theora_p++;
@@ -559,12 +559,12 @@ int FileOGG::open_file(int rd, int wr)
                        {
                                if(ret<0)
                                {
-                                       eprintf("FileOGG: Error parsing Vorbis stream headers; corrupt stream?\n");
+                                       eprintf(_("FileOGG: Error parsing Vorbis stream headers; corrupt stream?\n"));
                                        return 1;
                                }
                                if (vorbis_synthesis_headerin(&tf->vi, &tf->vc, &tf->op))
                                {
-                                       eprintf("FileOGG: Error parsing Vorbis stream headers; corrupt stream?\n");
+                                       eprintf(_("FileOGG: Error parsing Vorbis stream headers; corrupt stream?\n"));
                                        return 1;
                                }
                                vorbis_p++;
@@ -585,7 +585,7 @@ int FileOGG::open_file(int rd, int wr)
 
                        } else
                        {
-                               eprintf("FileOGG: End of file while searching for codec headers.\n");
+                               eprintf(_("FileOGG: End of file while searching for codec headers.\n"));
                                return 1;
                        }
                }
@@ -647,7 +647,7 @@ Not yet available in alpha4, we assume 420 for now
                                {
                                        if (!ogg_get_next_page(tf->videosync, tf->to.serialno, &tf->videopage))
                                        {
-                                               printf("FileOGG: Cannot find next page while looking for first non-header packet\n");
+                                               printf(_("FileOGG: Cannot find next page while looking for first non-header packet\n"));
                                                return 1;
                                        }
                                        ogg_stream_pagein(&tf->to, &tf->videopage);
@@ -661,7 +661,7 @@ Not yet available in alpha4, we assume 420 for now
                        {
                                if (ogg_page_granulepos(&tf->videopage) != -1)
                                {
-                                       printf("FileOGG: Broken ogg file - broken page: ogg_page_packets == 0 and granulepos != -1\n");
+                                       printf(_("FileOGG: Broken ogg file - broken page: ogg_page_packets == 0 and granulepos != -1\n"));
                                        return 1;
                                }
                                ogg_get_next_page(tf->videosync, tf->to.serialno, &tf->videopage);
@@ -1001,7 +1001,7 @@ int FileOGG::ogg_get_page_of_sample(sync_window_t *sw, long serialno, ogg_page *
 // First make an educated guess about position
        if (sample >= asset->audio_length + start_sample)
        {
-               printf("FileOGG: Illegal seek beyond end of samples\n");
+               printf(_("FileOGG: Illegal seek beyond end of samples\n"));
                return 0;
        }
        off_t educated_guess = filedata_begin + (file_length - filedata_begin) * (sample - start_sample) / asset->audio_length - READ_SIZE;
@@ -1061,7 +1061,7 @@ int FileOGG::ogg_seek_to_sample(sync_window_t *sw, long serialno, int64_t sample
 //     printf("Calling get page of sample\n");
        if (!ogg_get_page_of_sample(sw, serialno, &og, sample))
        {
-               printf("FileOGG: Seeking to sample's page failed\n");
+               printf(_("FileOGG: Seeking to sample's page failed\n"));
                return 0;
        }
 //     printf("Pagepos: %lli\n", sw->file_pagepos);
@@ -1080,7 +1080,7 @@ int FileOGG::ogg_seek_to_sample(sync_window_t *sw, long serialno, int64_t sample
                {
                        if (!ogg_get_next_page(sw, serialno, &og))
                        {
-                               printf("FileOGG: Cannot find next page while seeking\n");
+                               printf(_("FileOGG: Cannot find next page while seeking\n"));
                                return 0;
                        }
                        ogg_stream_pagein(&tf->vo, &og);
@@ -1116,7 +1116,7 @@ int FileOGG::ogg_seek_to_sample(sync_window_t *sw, long serialno, int64_t sample
                                vorbis_synthesis_blockin(&tf->vd, &tf->vb);
                                if (vorbis_synthesis_pcmout(&tf->vd, NULL) != 0)
                                {
-                                       printf("FileOGG: Something wrong while trying to seek\n");
+                                       printf(_("FileOGG: Something wrong while trying to seek\n"));
                                        return 0;
                                }
                        
@@ -1133,7 +1133,7 @@ int FileOGG::ogg_get_page_of_frame(sync_window_t *sw, long serialno, ogg_page *o
 {
        if (frame >= asset->video_length + start_frame)
        {
-               printf("FileOGG: Illegal seek beyond end of frames\n");
+               printf(_("FileOGG: Illegal seek beyond end of frames\n"));
                return 0;
        }
 //     printf("frame: %lli start frame: %lli\n", frame, start_frame);
@@ -1148,7 +1148,7 @@ int FileOGG::ogg_get_page_of_frame(sync_window_t *sw, long serialno, ogg_page *o
 // now see if we won
        read_buffer_at(stream, sw, READ_SIZE, educated_guess);
        if( !ogg_sync_and_get_next_page(sw, serialno, og) ) {
-               printf("FileOGG: ogg_sync_and_get_next_page failed\n");
+               printf(_("FileOGG: ogg_sync_and_get_next_page failed\n"));
                return 0;
        }
        int64_t pageend_frame;
@@ -1224,7 +1224,7 @@ int FileOGG::ogg_seek_to_keyframe(sync_window_t *sw, long serialno, int64_t fram
 //     printf("Searching for the proper position to start decoding frame %lli\n", frame);
        if (!ogg_get_page_of_frame(sw, serialno, &og, frame))
        {
-               printf("FileOGG: Seeking to frame failed\n");
+               printf(_("FileOGG: Seeking to frame failed\n"));
                return 0;
        }
        // TODO: if the frame we are looking for continoues on the next page, we don't need to do this
@@ -1260,7 +1260,7 @@ int FileOGG::ogg_seek_to_keyframe(sync_window_t *sw, long serialno, int64_t fram
                // get the page where keyframe starts
                if (!ogg_get_page_of_frame(sw, serialno, &og, iframe))
                {
-                       printf("FileOGG: Seeking to keyframe failed\n");
+                       printf(_("FileOGG: Seeking to keyframe failed\n"));
                        return 0;
                }
        }               
@@ -1280,7 +1280,7 @@ int FileOGG::ogg_seek_to_keyframe(sync_window_t *sw, long serialno, int64_t fram
                {
                        if (!ogg_get_next_page(sw, serialno, &og))
                        {
-                               printf("FileOGG: Cannot find next page while seeking\n");
+                               printf(_("FileOGG: Cannot find next page while seeking\n"));
                                return 0;
                        }
                        ogg_stream_pagein(&tf->to, &og);
@@ -1311,7 +1311,7 @@ int FileOGG::check_sig(Asset *asset)
        {
 
                fclose(fd);
-               printf("Yay, we have an ogg file\n");
+               printf(_("Yay, we have an ogg file\n"));
 
                return 1;
        }
@@ -1443,8 +1443,8 @@ int FileOGG::read_frame(VFrame *frame)
        {
                if (!ogg_seek_to_keyframe(tf->videosync, tf->to.serialno,
                        next_frame_position, &ogg_frame_position)) {
-                       printf("FileOGG:: Error while seeking to frame's keyframe"
-                               " (frame: " _LD ", keyframe: " _LD ")\n",
+                       printf(_("FileOGG:: Error while seeking to frame's keyframe"
+                               " (frame: " _LD ", keyframe: " _LD ")\n"),
                                next_frame_position, ogg_frame_position);
                        return 1;
                }
@@ -1454,8 +1454,8 @@ int FileOGG::read_frame(VFrame *frame)
                ogg_frame_position --; // ogg_frame_position is at last decoded frame, so it will point right 
                if (decode_frames <= 0) 
                {
-                       printf("FileOGG:: Error while seeking to keyframe,"
-                               " wrong keyframe number (frame: " _LD ", keyframe: " _LD ")\n",
+                       printf(_("FileOGG:: Error while seeking to keyframe,"
+                               " wrong keyframe number (frame: " _LD ", keyframe: " _LD ")\n"),
                                next_frame_position, ogg_frame_position);
                        return 1;
                        
@@ -1474,7 +1474,7 @@ int FileOGG::read_frame(VFrame *frame)
                {
                        if (!ogg_get_next_page(tf->videosync, tf->to.serialno, &og))
                        {
-                               printf("FileOGG: Cannot find next page while seeking\n");
+                               printf(_("FileOGG: Cannot find next page while seeking\n"));
                                return 1;
                        }
                        ogg_stream_pagein(&tf->to, &og);
@@ -1482,7 +1482,7 @@ int FileOGG::read_frame(VFrame *frame)
                ogg_stream_packetout(&tf->to, &op);
                if (expect_keyframe && !theora_packet_iskeyframe(&op))
                {
-                               printf("FileOGG: Expecting keyframe, but didn't get it\n");
+                               printf(_("FileOGG: Expecting keyframe, but didn't get it\n"));
                        //      return 1; this is generally not a fatal error
                }
                expect_keyframe = 0;
@@ -1498,7 +1498,7 @@ int FileOGG::read_frame(VFrame *frame)
                int ret = theora_decode_YUVout (&tf->td, &yuv);
                if (ret)
                {
-                       printf("FileOGG: theora_decode_YUVout failed with code %i\n", ret);
+                       printf(_("FileOGG: theora_decode_YUVout failed with code %i\n"), ret);
                }
 
 // Dirty magic 
@@ -1560,7 +1560,7 @@ int FileOGG::ogg_decode_more_samples(sync_window_t *sw, long serialno)
                {
                        if (!ogg_get_next_page(sw, serialno, &og))
                        {
-                               printf("FileOGG: Cannot find next page while trying to decode more samples\n");
+                               printf(_("FileOGG: Cannot find next page while trying to decode more samples\n"));
                                return 0;
                        }
                        ogg_stream_pagein(&tf->vo, &og);
@@ -1661,7 +1661,7 @@ int FileOGG::read_samples(double *buffer, int64_t len)
        {
                if (hole_start < 0 || hole_len <= 0 || hole_absstart < 0)
                {
-                       printf("FileOGG: Error at finding out what to read from file\n");
+                       printf(_("FileOGG: Error at finding out what to read from file\n"));
                        return 1;
                }
                
@@ -1733,9 +1733,9 @@ int FileOGG::read_samples(double *buffer, int64_t len)
        // now we can be sure our history is correct, just copy it out
        if (next_sample_position < history_start || next_sample_position + len > history_start + history_size)
        {
-               printf("FileOGG:: History not aligned properly \n");
-               printf("\tnext_sample_position: " _LD ", length: " _LD "\n", next_sample_position, len);
-               printf("\thistory_start: " _LD ", length: " _LD "\n", history_start, history_size);
+               printf(_("FileOGG:: History not aligned properly \n"));
+               printf(_("\tnext_sample_position: " _LD ", length: " _LD "\n"), next_sample_position, len);
+               printf(_("\thistory_start: " _LD ", length: " _LD "\n"), history_start, history_size);
                
                return 1;
        }
@@ -1754,7 +1754,7 @@ int FileOGG::write_audio_page()
 
   ret = fwrite(tf->apage, 1, tf->apage_len, stream);
   if(ret < tf->apage_len) {
-    eprintf("error writing audio page\n"); 
+    eprintf(_("error writing audio page\n")); 
   }
   tf->apage_valid = 0;
   tf->a_pkg -= ogg_page_packets((ogg_page *)&tf->apage);
@@ -1767,7 +1767,7 @@ int FileOGG::write_video_page()
 
   ret = fwrite(tf->vpage, 1, tf->vpage_len, stream);
   if(ret < tf->vpage_len) {
-    eprintf("error writing video page\n");
+    eprintf(_("error writing video page\n"));
   }
   tf->vpage_valid = 0;
   tf->v_pkg -= ogg_page_packets((ogg_page *)&tf->vpage);
@@ -1941,7 +1941,7 @@ int FileOGG::write_frames_theora(VFrame ***frames, int len, int e_o_s)
                        int ret = theora_encode_YUVin (&tf->td, &yuv);
                        if (ret)
                        {
-                               printf("FileOGG: theora_encode_YUVin failed with code %i\n", ret);
+                               printf(_("FileOGG: theora_encode_YUVin failed with code %i\n"), ret);
                                printf("yuv_buffer: y_width: %i, y_height: %i, y_stride: %i,"
                                        " uv_width: %i, uv_height: %i, uv_stride: %i\n",
                                        yuv.y_width, yuv.y_height, yuv.y_stride,
@@ -2015,7 +2015,7 @@ int FileOGG::write_frames(VFrame ***frames, int len)
 }
 
 OGGConfigAudio::OGGConfigAudio(BC_WindowBase *parent_window, Asset *asset)
- : BC_Window(PROGRAM_NAME ": Audio Compression",
+ : BC_Window(_(PROGRAM_NAME ": Audio Compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        350,
@@ -2142,7 +2142,7 @@ int OGGVorbisAvgBitrate::handle_event()
 
 
 OGGConfigVideo::OGGConfigVideo(BC_WindowBase *parent_window, Asset *asset)
- : BC_Window(PROGRAM_NAME ": Video Compression",
+ : BC_Window(_(PROGRAM_NAME ": Video Compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        450,
index 0f67fda60aee70c141fcd2c95ca4ce9527d97bca..f9b1c3d792aeef0f5fd51a9b55447bfd421de8d2 100644 (file)
@@ -266,7 +266,7 @@ int FileSndFile::set_audio_position(int64_t sample)
 // Commented out /* && psf->dataoffset */ in sndfile.c: 761
        if(sf_seek(fd, sample, SEEK_SET) < 0)
        {
-               eprintf("sf_seek() to sample %jd failed, reason: %s\n", sample, sf_strerror(fd));
+               eprintf(_("sf_seek() to sample %jd failed, reason: %s\n"), sample, sf_strerror(fd));
                sf_perror(fd);
                return 1;
        }
@@ -283,7 +283,7 @@ int FileSndFile::read_samples(double *buffer, int64_t len)
                eprintf("FileSndFile::read_samples len=" _LD "\n", len);
 
        if(!buffer)
-               eprintf("buffer=%p\n", buffer);
+               eprintf(_("buffer=%p\n"), buffer);
 
        if(temp_allocated && temp_allocated < len)
        {
@@ -301,8 +301,8 @@ int FileSndFile::read_samples(double *buffer, int64_t len)
        result = !sf_read_double(fd, temp_double, len * asset->channels);
 
        if(result)
-               eprintf("FileSndFile::read_samples fd=%p temp_double=%p"
-                       " len=" _LD " asset=%p asset->channels=%d\n",
+               eprintf(_("FileSndFile::read_samples fd=%p temp_double=%p"
+                       " len=" _LD " asset=%p asset->channels=%d\n"),
                        fd, temp_double, len, asset, asset->channels);
 
 // Extract single channel
@@ -372,7 +372,7 @@ void FileSndFile::get_parameters(BC_WindowBase *parent_window,
 }
 
 SndFileConfig::SndFileConfig(BC_WindowBase *parent_window, Asset *asset)
- : BC_Window(PROGRAM_NAME ": Audio Compression",
+ : BC_Window(_(PROGRAM_NAME ": Audio Compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        250,
index a6f1e6427c15e7b8fed1534646d9151ea87baaca..0ec8a73b9b6f83e6ee9e475404e54ac6990e1a70 100644 (file)
@@ -216,7 +216,7 @@ int FileTGA::read_frame_header(char *path)
 
        if(!(stream = fopen(path, "rb")))
        {
-               eprintf("Error while opening \"%s\" for reading. \n%m\n", asset->path);
+               eprintf(_("Error while opening \"%s\" for reading. \n%m\n"), asset->path);
                return 1;
        }
 
@@ -899,7 +899,7 @@ TGAUnit::~TGAUnit()
 
 
 TGAConfigVideo::TGAConfigVideo(BC_WindowBase *gui, Asset *asset)
- : BC_Window(PROGRAM_NAME ": Video Compression",
+ : BC_Window(_(PROGRAM_NAME ": Video Compression"),
        gui->get_abs_cursor_x(1),
        gui->get_abs_cursor_y(1),
        400,
index 4740fe878dbb28266db8586f4509649cc6287ed4..c1b2c8266cb27857d245075c886c143bf4b69794 100644 (file)
@@ -357,7 +357,7 @@ int FileVorbis::read_samples(double *buffer, int64_t len)
 
 VorbisConfigAudio::VorbisConfigAudio(BC_WindowBase *parent_window, 
        Asset *asset)
- : BC_Window(PROGRAM_NAME ": Audio Compression",
+ : BC_Window(_(PROGRAM_NAME ": Audio Compression"),
        parent_window->get_abs_cursor_x(1),
        parent_window->get_abs_cursor_y(1),
        350,
index 5685cf5b8c9f1ee10fecfcde49bc0ecb8ebb15d6..0b03ce87551db76efa59f965fa2d2921415d202a 100644 (file)
@@ -48,7 +48,7 @@ int FormatCheck::check_format()
 // Only 1 format can store video.
                if(!File::supports_video(asset->format))
                {
-                       ErrorBox errorbox(PROGRAM_NAME ": Error");
+                       ErrorBox errorbox(_(PROGRAM_NAME ": Error"));
                        errorbox.create_objects(_("The format you selected doesn't support video."));
                        errorbox.run_window();
                        result = 1;
@@ -59,7 +59,7 @@ int FormatCheck::check_format()
        {
                if(!File::supports_audio(asset->format))
                {
-                       ErrorBox errorbox(PROGRAM_NAME ": Error");
+                       ErrorBox errorbox(_(PROGRAM_NAME ": Error"));
                        errorbox.create_objects(_("The format you selected doesn't support audio."));
                        errorbox.run_window();
                        result = 1;
@@ -67,7 +67,7 @@ int FormatCheck::check_format()
 
                if(!result && asset->bits == BITSIMA4 && asset->format != FILE_MOV)
                {
-                       ErrorBox errorbox(PROGRAM_NAME ": Error");
+                       ErrorBox errorbox(_(PROGRAM_NAME ": Error"));
                        errorbox.create_objects(_("IMA4 compression is only available in Quicktime movies."));
                        errorbox.run_window();
                        result = 1;
@@ -77,7 +77,7 @@ int FormatCheck::check_format()
                        asset->format != FILE_MOV &&
                        asset->format != FILE_PCM)
                {
-                       ErrorBox errorbox(PROGRAM_NAME ": Error");
+                       ErrorBox errorbox(_(PROGRAM_NAME ": Error"));
                        errorbox.create_objects(_("ULAW compression is only available in\n" 
                                "Quicktime Movies and PCM files."));
                        errorbox.run_window();
index df7d99c8ef89dd38fc6a08b02cfd940681a77c1d..d85b6a192f8ab576096deb5033dae31727e353f1 100644 (file)
@@ -281,7 +281,7 @@ const char* FormatPresets::get_preset_text(EDL *edl)
        if(item) 
                return item->get_text();
        else
-               return "Custom";
+               return _("Custom");
 }
 
 
index 110044f7d30e9e96dda55d8a50c90811cb28c21e..6cf2ee304f3875bcf84397368eb75f366e1f26b0 100644 (file)
@@ -26,7 +26,7 @@
 
 
 FormatAWindow::FormatAWindow(Asset *asset, int *dither)
- : BC_Window(PROGRAM_NAME ": File format", 410, 
+ : BC_Window(_(PROGRAM_NAME ": File format"), 410, 
        (asset->format == FILE_WAV || asset->format == FILE_MOV) ? 115 : 185, 
        0, 0)
 { this->asset = asset; this->dither = dither; }
@@ -87,7 +87,7 @@ int FormatAWindow::close_event()
 
 
 FormatVWindow::FormatVWindow(Asset *asset, int recording)
- : BC_Window(PROGRAM_NAME ": File format", 410, 115, 0, 0)
+ : BC_Window(_(PROGRAM_NAME ": File format"), 410, 115, 0, 0)
 { this->asset = asset; this->recording = recording; }
 
 FormatVWindow::~FormatVWindow()
index 6f00db29b6c3835ab37b037d76bc94eef2861320..f0f84c18c8c0b9cb63ba9921fc01531b38ee528a 100644 (file)
@@ -25,6 +25,7 @@
 #include "edl.h"
 #include "edlsession.h"
 #include "gwindowgui.h"
+#include "language.h"
 #include "mainmenu.h"
 #include "mainsession.h"
 #include "mwindow.h"
@@ -38,7 +39,7 @@
 GWindowGUI::GWindowGUI(MWindow *mwindow,
        int w,
        int h)
- : BC_Window(PROGRAM_NAME ": Overlays",
+ : BC_Window(_(PROGRAM_NAME ": Overlays"),
        mwindow->session->gwindow_x, 
     mwindow->session->gwindow_y, 
     w, 
@@ -56,26 +57,26 @@ GWindowGUI::GWindowGUI(MWindow *mwindow,
 
 static const char *other_text[OTHER_TOGGLES] =
 {
-       "Assets",
-       "Titles",
-       "Transitions",
-       "Plugin Autos"
+       _("Assets"),
+       _("Titles"),
+       _("Transitions"),
+       _("Plugin Autos")
 };
 
 static const char *auto_text[AUTOMATION_TOTAL] = 
 {
-       "Mute",
-       "Camera X",
-       "Camera Y",
-       "Camera Z",
-       "Projector X",
-       "Projector Y",
-       "Projector Z",
-       "Fade",
-       "Pan",
-       "Mode",
-       "Mask",
-       "Speed"
+       _("Mute"),
+       _("Camera X"),
+       _("Camera Y"),
+       _("Camera Z"),
+       _("Projector X"),
+       _("Projector Y"),
+       _("Projector Z"),
+       _("Fade"),
+       _("Pan"),
+       _("Mode"),
+       _("Mask"),
+       _("Speed")
 };
 
 void GWindowGUI::calculate_extents(BC_WindowBase *gui, int *w, int *h)
index c455b868e04d79bb8572024a75b725238f1d7ff8..cbdfe103406a6c2f348a0c189258dc28e3f49b77 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "condition.h"
 #include "iec61883input.h"
+#include "language.h"
 #include "mutex.h"
 #include "vframe.h"
 
@@ -196,7 +197,7 @@ void IEC61883Input::run()
 
 int IEC61883Input::write_frame(unsigned char *data, int len, int complete)
 {
-       if(!complete) printf("write_frame: incomplete frame received.\n");
+       if(!complete) printf(_("write_frame: incomplete frame received.\n"));
 
        buffer_lock->lock("IEC61883Input write_frame 1");
 
index d2aa5f1e77d0ef34fe268b0e1c5550fa95582981..9fa52dcd173df119f2b67f9d75d1795856504c49 100644 (file)
@@ -50,8 +50,8 @@ KeyFrameThread::KeyFrameThread(MWindow *mwindow)
        keyframe_data = new ArrayList<BC_ListBoxItem*>[KEYFRAME_COLUMNS];
        plugin_title[0] = 0;
        window_title[0] = 0;
-       column_titles[0] = (char*)"Parameter";
-       column_titles[1] = (char*)"Value";
+       column_titles[0] = (char*)_("Parameter");
+       column_titles[1] = (char*)_("Value");
        column_width[0] = 0;
        column_width[1] = 0;
        presets_data = new ArrayList<BC_ListBoxItem*>;
@@ -121,7 +121,7 @@ void KeyFrameThread::update_values()
                        keyframe_data[0].append(new BC_ListBoxItem(hash.get_key(i)));
                        keyframe_data[1].append(new BC_ListBoxItem(hash.get_value(i)));
                }
-               keyframe_data[0].append(new BC_ListBoxItem((char*)"TEXT"));
+               keyframe_data[0].append(new BC_ListBoxItem((char*)_("TEXT")));
                keyframe_data[1].append(new BC_ListBoxItem(text));
                
                delete [] text;
@@ -149,7 +149,7 @@ void KeyFrameThread::start_window(Plugin *plugin, KeyFrame *keyframe)
                this->keyframe = keyframe;
                this->plugin = plugin;
                plugin->calculate_title(plugin_title, 0);
-               sprintf(window_title, PROGRAM_NAME ": %s Keyframe", plugin_title);
+               sprintf(window_title, _(PROGRAM_NAME ": %s Keyframe"), plugin_title);
                presets_db->load();
                calculate_preset_list();
 
index 0dd2aa0db8340f62b82cdf7243070e66bfd9f565..02419e613f52e2ada93f3cdbf82dab176becd940 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "edl.h"
 #include "edlsession.h"
+#include "language.h"
 #include "levelwindow.h"
 #include "levelwindowgui.h"
 #include "mainmenu.h"
@@ -32,7 +33,7 @@
 #include "theme.h"
 
 LevelWindowGUI::LevelWindowGUI(MWindow *mwindow, LevelWindow *thread)
- : BC_Window(PROGRAM_NAME ": Levels"
+ : BC_Window(_(PROGRAM_NAME ": Levels")
        mwindow->session->lwindow_x, 
        mwindow->session->lwindow_y, 
        mwindow->session->lwindow_w, 
index d57d62be247b12c885a239ac772b3f9e4b086578..f45e171599bd0a217bfe31c832885e9289dd70eb 100644 (file)
@@ -169,7 +169,7 @@ LoadFileWindow::LoadFileWindow(MWindow *mwindow,
                mwindow->gui->get_abs_cursor_y(1) - 
                        BC_WindowBase::get_resources()->filebox_h / 2,
                init_directory, 
-               PROGRAM_NAME ": Load",
+               _(PROGRAM_NAME ": Load"),
                _("Select files to load:"), 
                0,
                0,
@@ -233,7 +233,7 @@ LocateFileWindow::LocateFileWindow(MWindow *mwindow,
  : BC_FileBox(mwindow->gui->get_abs_cursor_x(1),
                mwindow->gui->get_abs_cursor_y(1), 
                init_directory, 
-               PROGRAM_NAME ": Locate file"
+               _(PROGRAM_NAME ": Locate file")
                old_filename)
 { 
        this->mwindow = mwindow; 
index 31aaa872a404b593bbb354f927291c20d30fddce..80e9585aadcb15a5198511b1662ea38cd918685a 100644 (file)
@@ -39,14 +39,14 @@ static const char *mode_images[] =
 };
 static const char *tooltips[] = 
 {
-       "Insert nothing",
-       "Replace current project",
-       "Replace current project and concatenate tracks",
-       "Append in new tracks",
-       "Concatenate to existing tracks",
-       "Paste at insertion point",
-       "Create new resources only",
-       "Nest sequence"
+       _("Insert nothing"),
+       _("Replace current project"),
+       _("Replace current project and concatenate tracks"),
+       _("Append in new tracks"),
+       _("Concatenate to existing tracks"),
+       _("Paste at insertion point"),
+       _("Create new resources only"),
+       _("Nest sequence")
 };
 
 
index 4a25c966abe38e0133adeabd77f5f6b6f4881ca4..9667c828ed5e088071d519b79b70f23fe4dc5488 100644 (file)
@@ -24,6 +24,7 @@
 #include "edl.h"
 #include "filexml.h"
 #include "floatauto.h"
+#include "language.h"
 #include "localsession.h"
 
 
@@ -37,8 +38,8 @@ LocalSession::LocalSession(EDL *edl)
        selectionstart = selectionend = 0;
        in_point = out_point = -1;
        strcpy(folder, CLIP_FOLDER);
-       sprintf(clip_title, "Program");
-       strcpy(clip_notes, "Hello world");
+       sprintf(clip_title, _("Program"));
+       strcpy(clip_notes, _("Hello world"));
        clipboard_length = 0;
        preview_start = preview_end = 0;
        loop_playback = 0;
index 9f9149d8ee9c8f8fb58dffe89fa0f1f191e25fd2..e13cbabe5dd830f1cc605a8624946f1e72f4b101 100644 (file)
@@ -192,7 +192,7 @@ int main(int argc, char *argv[])
                        strcpy(BC_Resources::language, locbuf);
        }
        else
-               printf(PROGRAM_NAME ": Could not set locale.\n");
+               printf(_(PROGRAM_NAME ": Could not set locale.\n"));
 #else
         setlocale(LC_CTYPE, "");
 #endif
@@ -237,7 +237,7 @@ int main(int argc, char *argv[])
                        }
                        else
                        {
-                               fprintf(stderr, "%s: -c needs a filename.\n", argv[0]);
+                               fprintf(stderr, _("%s: -c needs a filename.\n"), argv[0]);
                        }
                }
                else
@@ -263,7 +263,7 @@ int main(int argc, char *argv[])
                        operation = DO_BRENDER;
                        if(i > argc - 2)
                        {
-                               fprintf(stderr, "-b may not be used by the user.\n");
+                               fprintf(stderr, _("-b may not be used by the user.\n"));
                                exit(1);
                        }
                        else
@@ -298,14 +298,11 @@ int main(int argc, char *argv[])
                operation == DO_USAGE ||
                operation == DO_BATCHRENDER)
        fprintf(stderr,
-               PROGRAM_NAME " "
-               CINELERRA_VERSION " "
-               "(C)%d Adam Williams\n\n"
-
-PROGRAM_NAME " is free software, covered by the GNU General Public License,\n"
-"and you are welcome to change it and/or distribute copies of it under\n"
-"certain conditions. There is absolutely no warranty for " PROGRAM_NAME ".\n",
-COPYRIGHT_DATE);
+               _(PROGRAM_NAME " " CINELERRA_VERSION " " "(C)%d Adam Williams\n\n"
+               PROGRAM_NAME " is free software, covered by the GNU General Public License,\n"
+               "and you are welcome to change it and/or distribute copies of it under\n"
+               "certain conditions. There is absolutely no warranty for " PROGRAM_NAME ".\n"),
+               COPYRIGHT_DATE);
 
 
 
index edfcb7cfc9ada02b41e7068aa92c37cb86d85b96..f62e8549e0c4b22159a8164a2c67eaa42b2367d8 100644 (file)
@@ -40,7 +40,7 @@ MainError* MainError::main_error = 0;
 
 
 MainErrorGUI::MainErrorGUI(MWindow *mwindow, MainError *thread, int x, int y)
- : BC_Window(PROGRAM_NAME ": Errors",
+ : BC_Window(_(PROGRAM_NAME ": Errors"),
         x,
         y,
         mwindow->session->ewindow_w,
index d747cb30e2b0ff75ef6e2208e3d97d49904cb190..990f83f946c8dbf6b54bbe32d00157eeaa3a04a4 100644 (file)
@@ -110,7 +110,8 @@ void MainMenu::create_objects()
        saveas->set_mainmenu(this);
        filemenu->add_item(record_menu_item = new RecordMenuItem(mwindow));
        filemenu->add_item(new ChannelScan(mwindow));
-       filemenu->add_item(new DbWindowScan(mwindow));
+       if( mwindow->has_commercials() )
+               filemenu->add_item(new DbWindowScan(mwindow));
        filemenu->add_item(new SubttlSWin(mwindow));
 
        filemenu->add_item(render = new RenderItem(mwindow));
@@ -240,7 +241,7 @@ void MainMenu::create_objects()
        windowmenu->add_item(show_lwindow = new ShowLWindow(mwindow));
        windowmenu->add_item(split_x = new SplitX(mwindow));
        windowmenu->add_item(split_y = new SplitY(mwindow));
-       windowmenu->add_item(new TileWindows(mwindow,_("Default positions"),-1,"Ctrl+d",'d'));
+       windowmenu->add_item(new TileWindows(mwindow,_("Default positions"),-1,_("Ctrl+d"),'d'));
        windowmenu->add_item(new TileWindows(mwindow,_("Tile left"),0));
        windowmenu->add_item(new TileWindows(mwindow,_("Tile right"),1));
 }
@@ -627,7 +628,7 @@ int Undo::update_caption(const char *new_caption)
 }
 
 
-Redo::Redo(MWindow *mwindow) : BC_MenuItem(_("Redo"), "Shift+Z", 'Z') 
+Redo::Redo(MWindow *mwindow) : BC_MenuItem(_("Redo"), _("Shift+Z"), 'Z') 
 { 
        set_shift(1); 
        this->mwindow = mwindow; 
@@ -648,7 +649,7 @@ int Redo::update_caption(const char *new_caption)
 }
 
 CutKeyframes::CutKeyframes(MWindow *mwindow)
- : BC_MenuItem(_("Cut keyframes"), "Shift-X", 'X')
+ : BC_MenuItem(_("Cut keyframes"), _("Shift-X"), 'X')
 { 
        set_shift(); 
        this->mwindow = mwindow; 
@@ -661,7 +662,7 @@ int CutKeyframes::handle_event()
 }
 
 CopyKeyframes::CopyKeyframes(MWindow *mwindow)
- : BC_MenuItem(_("Copy keyframes"), "Shift-C", 'C')
+ : BC_MenuItem(_("Copy keyframes"), _("Shift-C"), 'C')
 { 
        set_shift(); 
        this->mwindow = mwindow; 
@@ -674,7 +675,7 @@ int CopyKeyframes::handle_event()
 }
 
 PasteKeyframes::PasteKeyframes(MWindow *mwindow)
- : BC_MenuItem(_("Paste keyframes"), "Shift-V", 'V')
+ : BC_MenuItem(_("Paste keyframes"), _("Shift-V"), 'V')
 {
        set_shift(); 
        this->mwindow = mwindow; 
@@ -687,7 +688,7 @@ int PasteKeyframes::handle_event()
 }
 
 ClearKeyframes::ClearKeyframes(MWindow *mwindow)
- : BC_MenuItem(_("Clear keyframes"), "Shift-Del", DELETE)
+ : BC_MenuItem(_("Clear keyframes"), _("Shift-Del"), DELETE)
 {
        set_shift(); 
        this->mwindow = mwindow; 
@@ -731,7 +732,7 @@ int BendKeyframes::handle_event()
 
 
 KeyframeType::KeyframeType(MWindow *mwindow, int type)
- : BC_MenuItem("Create bezier")
+ : BC_MenuItem(_("Create bezier"))
 {
        this->mwindow = mwindow;
        set_checked(type == Auto::BEZIER);
@@ -753,7 +754,7 @@ int KeyframeType::handle_event()
 
 
 CutDefaultKeyframe::CutDefaultKeyframe(MWindow *mwindow)
- : BC_MenuItem(_("Cut default keyframe"), "Alt-X", 'X')
+ : BC_MenuItem(_("Cut default keyframe"), _("Alt-X"), 'X')
 { 
        set_alt(); 
        this->mwindow = mwindow; 
@@ -766,7 +767,7 @@ int CutDefaultKeyframe::handle_event()
 }
 
 CopyDefaultKeyframe::CopyDefaultKeyframe(MWindow *mwindow)
- : BC_MenuItem(_("Copy default keyframe"), "Alt-c", 'c')
+ : BC_MenuItem(_("Copy default keyframe"), _("Alt-c"), 'c')
 { 
        set_alt(); 
        this->mwindow = mwindow; 
@@ -779,7 +780,7 @@ int CopyDefaultKeyframe::handle_event()
 }
 
 PasteDefaultKeyframe::PasteDefaultKeyframe(MWindow *mwindow)
- : BC_MenuItem(_("Paste default keyframe"), "Alt-v", 'v')
+ : BC_MenuItem(_("Paste default keyframe"), _("Alt-v"), 'v')
 {
        set_alt(); 
        this->mwindow = mwindow; 
@@ -792,7 +793,7 @@ int PasteDefaultKeyframe::handle_event()
 }
 
 ClearDefaultKeyframe::ClearDefaultKeyframe(MWindow *mwindow)
- : BC_MenuItem(_("Clear default keyframe"), "Alt-Del", BACKSPACE)
+ : BC_MenuItem(_("Clear default keyframe"), _("Alt-Del"), BACKSPACE)
 {
        set_alt(); 
        this->mwindow = mwindow; 
@@ -841,7 +842,7 @@ int Paste::handle_event()
 }
 
 Clear::Clear(MWindow *mwindow)
- : BC_MenuItem(_("Clear"), "Del", BACKSPACE) 
+ : BC_MenuItem(_("Clear"), _("Del"), BACKSPACE) 
 {
        this->mwindow = mwindow; 
 }
@@ -855,7 +856,7 @@ int Clear::handle_event()
 }
 
 PasteSilence::PasteSilence(MWindow *mwindow)
- : BC_MenuItem(_("Paste silence"), "Shift+Space", ' ')
+ : BC_MenuItem(_("Paste silence"), _("Shift+Space"), ' ')
 { 
        this->mwindow = mwindow; 
        set_shift(); 
@@ -1018,7 +1019,7 @@ int MapAudio2::handle_event()
 
 
 AddVideoTrack::AddVideoTrack(MWindow *mwindow)
- : BC_MenuItem(_("Add track"), "Shift-T", 'T')
+ : BC_MenuItem(_("Add track"), _("Shift-T"), 'T')
 {
        set_shift();
        this->mwindow = mwindow;
@@ -1058,7 +1059,7 @@ int ResetTranslation::handle_event()
 
 
 DefaultVTransition::DefaultVTransition(MWindow *mwindow)
- : BC_MenuItem(_("Default Transition"), "Shift-U", 'U')
+ : BC_MenuItem(_("Default Transition"), _("Shift-U"), 'U')
 {
        set_shift();
        this->mwindow = mwindow;
@@ -1154,7 +1155,7 @@ int ConcatenateTracks::handle_event()
 
 
 LoopPlayback::LoopPlayback(MWindow *mwindow)
- : BC_MenuItem(_("Loop Playback"), "Shift+L", 'L')
+ : BC_MenuItem(_("Loop Playback"), _("Shift+L"), 'L')
 {
        this->mwindow = mwindow;
        set_checked(mwindow->edl->local_session->loop_playback);
@@ -1174,7 +1175,7 @@ int LoopPlayback::handle_event()
 
 
 AddSubttlTrack::AddSubttlTrack(MWindow *mwindow)
- : BC_MenuItem(_("Add subttl"), "Shift-Y", 'Y')
+ : BC_MenuItem(_("Add subttl"), _("Shift-Y"), 'Y')
 {
        set_shift();
        this->mwindow = mwindow;
@@ -1423,7 +1424,7 @@ int TileWindows::handle_event()
 }
 
 SplitX::SplitX(MWindow *mwindow)
- : BC_MenuItem(_("Split X pane"), "Ctrl+1", '1')
+ : BC_MenuItem(_("Split X pane"), _("Ctrl+1"), '1')
 {
        this->mwindow = mwindow;
        set_ctrl(1);
@@ -1436,7 +1437,7 @@ int SplitX::handle_event()
 }
 
 SplitY::SplitY(MWindow *mwindow)
- : BC_MenuItem(_("Split Y pane"), "Ctrl+2", '2')
+ : BC_MenuItem(_("Split Y pane"), _("Ctrl+2"), '2')
 {
        this->mwindow = mwindow;
        set_ctrl(1);
index 7533fe234eb749c9740285291d2dbae34772ec90..d2836607b06d1d74ce58765268ae3e8c55dda8e6 100644 (file)
@@ -189,7 +189,7 @@ MainFFMpegToggle::MainFFMpegToggle(MWindow *mwindow, MButtons *mbuttons, int x,
 {
        this->mwindow = mwindow;
        this->mbuttons = mbuttons;
-       set_tooltip("FFMpeg early probe");
+       set_tooltip(_("FFMpeg early probe"));
 }
 
 MainFFMpegToggle::~MainFFMpegToggle()
@@ -200,7 +200,7 @@ int MainFFMpegToggle::handle_event()
 {
        mwindow->preferences->ffmpeg_early_probe = get_value();
        mwindow->show_warning(&mwindow->preferences->warn_indecies,
-               "Changing the base codecs may require rebuilding indecies.");
+               _("Changing the base codecs may require rebuilding indecies."));
        return 1;
 }
 
index d57e691fa2edc39dcb8062703b53a374dac82b3a..35783daaae058833f8c440fde288ff6be9b40ee2 100644 (file)
@@ -831,7 +831,7 @@ add_timelines(Clips *clips, int fid, double err)
 {
        // found frame, find timelines
        if( get_timelines(fid) ) {
-               printf(" find timeline frame_id(%d) failed\n", fid);
+               printf(_(" find timeline frame_id(%d) failed\n"), fid);
                return 1;
        }
 
index 2b8ec1178f2ac646516e39e2fc660c5369545ee8..7e9a07801833bb5b7302265f08a3b6cadff853fc 100644 (file)
@@ -145,7 +145,7 @@ void MenuEffectThread::run()
        if(!get_recordable_tracks(default_asset))
        {
                sprintf(string, _("No recordable tracks specified."));
-               ErrorBox error(PROGRAM_NAME ": Error");
+               ErrorBox error(_(PROGRAM_NAME ": Error"));
                error.create_objects(string);
                error.run_window();
                default_asset->Garbage::remove_user();
@@ -156,7 +156,7 @@ void MenuEffectThread::run()
        if(!plugindb->total)
        {
                sprintf(string, _("No plugins available."));
-               ErrorBox error(PROGRAM_NAME ": Error");
+               ErrorBox error(_(PROGRAM_NAME ": Error"));
                error.create_objects(string);
                error.run_window();
                default_asset->Garbage::remove_user();
@@ -256,7 +256,7 @@ void MenuEffectThread::run()
        if(!result && !strlen(default_asset->path))
        {
                result = 1;        // no output path given
-               ErrorBox error(PROGRAM_NAME ": Error");
+               ErrorBox error(_(PROGRAM_NAME ": Error"));
                error.create_objects(_("No output file specified."));
                error.run_window();
        }
@@ -264,7 +264,7 @@ void MenuEffectThread::run()
        if(!result && plugin_number < 0)
        {
                result = 1;        // no output path given
-               ErrorBox error(PROGRAM_NAME ": Error");
+               ErrorBox error(_(PROGRAM_NAME ": Error"));
                error.create_objects(_("No effect selected."));
                error.run_window();
        }
@@ -305,7 +305,7 @@ void MenuEffectThread::run()
        if(!result && total_length <= 0)
        {
                result = 1;        // no output path given
-               ErrorBox error(PROGRAM_NAME ": Error");
+               ErrorBox error(_(PROGRAM_NAME ": Error"));
                error.create_objects(_("No selected range to process."));
                error.run_window();
        }
@@ -321,7 +321,7 @@ void MenuEffectThread::run()
                        MenuEffectPrompt prompt(mwindow);
                        prompt.create_objects();
                        char title[BCTEXTLEN];
-                       sprintf(title, PROGRAM_NAME ": %s", plugin->title);
+                       sprintf(title, _(PROGRAM_NAME ": %s"), plugin->title);
 
 // Open the plugin GUI
                        plugin->set_mwindow(mwindow);
@@ -467,7 +467,7 @@ void MenuEffectThread::run()
                        {
 // open failed
                                sprintf(string, _("Couldn't open %s"), asset->path);
-                               ErrorBox error(PROGRAM_NAME ": Error");
+                               ErrorBox error(_(PROGRAM_NAME ": Error"));
                                error.create_objects(string);
                                error.run_window();
                                result = 1;
@@ -595,7 +595,7 @@ MenuEffectWindow::MenuEffectWindow(MWindow *mwindow,
        MenuEffectThread *menueffects, 
        ArrayList<BC_ListBoxItem*> *plugin_list, 
        Asset *asset)
- : BC_Window(PROGRAM_NAME ": Render effect"
+ : BC_Window(_(PROGRAM_NAME ": Render effect")
                mwindow->gui->get_abs_cursor_x(1),
                mwindow->gui->get_abs_cursor_y(1) - mwindow->session->menueffect_h / 2,
                mwindow->session->menueffect_w, 
@@ -785,7 +785,7 @@ int MenuEffectWindowList::handle_event()
 #define PROMPT_TEXT _("Set up effect panel and hit \"OK\"")
 
 MenuEffectPrompt::MenuEffectPrompt(MWindow *mwindow)
- : BC_Window(PROGRAM_NAME ": Effect Prompt"
+ : BC_Window(_(PROGRAM_NAME ": Effect Prompt")
                mwindow->gui->get_abs_cursor_x(1) - 260 / 2,
                mwindow->gui->get_abs_cursor_y(1) - 300,
                MenuEffectPrompt::calculate_w(mwindow->gui), 
index f29b98e61fb2d4d57d5c726d5d6ffd7c52b2d1c2..8fffe15fd88eab00d98ce7cfdcb28c59cf4e64d0 100644 (file)
@@ -467,8 +467,8 @@ int MWindow::init_plugins(MWindow *mwindow, Preferences *preferences)
        if( !load_plugin_index(mwindow, index_path) ) return 1;
        FILE *fp = fopen(index_path,"w");
        if( !fp ) {
-               fprintf(stderr,MWindow::init_plugins: "
-                       "can't create plugin index: %s\n", index_path);
+               fprintf(stderr,_("MWindow::init_plugins: "
+                       "can't create plugin index: %s\n"), index_path);
                return 1;
        }
        fprintf(fp, "%d\n", PLUGIN_FILE_VERSION);
@@ -960,7 +960,7 @@ int MWindow::put_commercial()
        for(Track *track=tracks->first; track && !errmsg; track=track->next) {
                if( track->data_type != TRACK_VIDEO ) continue;
                if( !track->record ) continue;
-               if( count > 0 ) { errmsg = "multiple video tracks"; break; }
+               if( count > 0 ) { errmsg = _("multiple video tracks"); break; }
                ++count;
                int64_t units_start = track->to_units(start,0);
                int64_t units_end = track->to_units(end,0);
@@ -972,9 +972,9 @@ int MWindow::put_commercial()
                        edit2 = edits->last;
                        units_end = edits->length();
                }
-               if(edit1 != edit2) { errmsg = "crosses edits"; break; }
+               if(edit1 != edit2) { errmsg = _("crosses edits"); break; }
                Indexable *indexable = edit1->get_source();
-               if( !indexable->is_asset ) { errmsg = "not asset"; break; }
+               if( !indexable->is_asset ) { errmsg = _("not asset"); break; }
        }
        //run it
        for(Track *track=tracks->first; track && !errmsg; track=track->next) {
@@ -993,17 +993,17 @@ int MWindow::put_commercial()
                Indexable *indexable = edit1->get_source();
                Asset *asset = (Asset *)indexable;
                File *file = video_cache->check_out(asset, edl);
-               if( !file ) { errmsg = "no file"; break; }
+               if( !file ) { errmsg = _("no file"); break; }
                int64_t edit_length = units_end - units_start;
                int64_t edit_start = units_start - edit1->startproject + edit1->startsource;
                result = commercials->put_clip(file, edit1->channel,
                        track->from_units(edit_start), track->from_units(edit_length));
                video_cache->check_in(asset);
-               if( result ) { errmsg = "db failed"; break; }
+               if( result ) { errmsg = _("db failed"); break; }
        }
        if( errmsg ) {
                char string[BCTEXTLEN];
-               sprintf(string, "put_commercial: %s", errmsg);
+               sprintf(string, _("put_commercial: %s"), errmsg);
                MainError::show_error(string);
                undo_commercial();
                result = 1;
@@ -1073,7 +1073,7 @@ if(debug) printf("MWindow::load_filenames %d\n", __LINE__);
                new_edl->copy_session(edl);
                new_file->set_program(edl->session->program_no);
 
-               sprintf(string, "Loading %s", new_asset->path);
+               sprintf(string, _("Loading %s"), new_asset->path);
                gui->show_message(string);
 if(debug) printf("MWindow::load_filenames %d\n", __LINE__);
 
@@ -1091,7 +1091,7 @@ if(debug) printf("MWindow::load_filenames %d\n", __LINE__);
                                        (new_asset->height % 2)))
                                {
                                        char string[BCTEXTLEN];
-                                       sprintf(string, "%s's resolution is %dx%d.\nImages with odd dimensions may not decode properly.",
+                                       sprintf(string, _("%s's resolution is %dx%d.\nImages with odd dimensions may not decode properly."),
                                                new_asset->path,
                                                new_asset->width,
                                                new_asset->height);
@@ -1102,8 +1102,8 @@ if(debug) printf("MWindow::load_filenames %d\n", __LINE__);
                                        edl->session->program_no != new_asset->program)
                                {
                                        char string[BCTEXTLEN];
-                                       sprintf(string, "%s's index was built for program number %d\n"
-                                               "Playback preference is %d.\n  Using program %d.",
+                                       sprintf(string, _("%s's index was built for program number %d\n"
+                                               "Playback preference is %d.\n  Using program %d."),
                                                new_asset->path, new_asset->program,
                                                edl->session->program_no, new_asset->program);
                                        MainError::show_error(string);
@@ -1520,9 +1520,9 @@ void MWindow::test_plugins(EDL *new_edl, char *path)
                                        if (!plugin_found) 
                                        {
                                                sprintf(string, 
-                                                       "The effect '%s' in file '%s' is not part of your installation of Cinelerra.\n"
-                                                       "The project won't be rendered as it was meant and Cinelerra might crash.\n",
-                                                       plugin->title, 
+       _("The %s '%s' in file '%s' is not part of your installation of Cinelerra.\n"
+         "The project won't be rendered as it was meant and Cinelerra might crash.\n"),
+                                                       "effect", plugin->title, 
                                                        path); 
                                                MainError::show_error(string);
                                        }
@@ -1553,9 +1553,9 @@ void MWindow::test_plugins(EDL *new_edl, char *path)
                                if (!transition_found) 
                                {
                                        sprintf(string, 
-                                               "The transition '%s' in file '%s' is not part of your installation of Cinelerra.\n"
-                                               "The project won't be rendered as it was meant and Cinelerra might crash.\n",
-                                               edit->transition->title, 
+       _("The %s '%s' in file '%s' is not part of your installation of Cinelerra.\n"
+         "The project won't be rendered as it was meant and Cinelerra might crash.\n"),
+                                               "transition", edit->transition->title, 
                                                path); 
                                        MainError::show_error(string);
                                }
@@ -1587,11 +1587,11 @@ void MWindow::init_shm()
        fd = 0;
        if(result < 0x7fffffff) {
                char string[BCTEXTLEN];
-               sprintf(string, "MWindow::init_shm: /proc/sys/kernel/shmmax is 0x" _LX ".\n"
+               sprintf(string, _("MWindow::init_shm: /proc/sys/kernel/shmmax is 0x" _LX ".\n"
                        "you probably need to be root, or:\n"
                        "as root, run: echo 0x7fffffff > /proc/sys/kernel/shmmax\n"
                        "before trying to start cinelerra.\n"
-                       "It should be at least 0x7fffffff for Cinelerra.\n", result);
+                       "It should be at least 0x7fffffff for Cinelerra.\n"), result);
                MainError::show_error(string);
        }
 }
index a1f47ec11aa25035064e9ba5613c44f660519d4f..1dd39320ec78d22c7804fe88ab8d2da956cb7af6 100644 (file)
 
 class MWindow;
 
+#if 0
+// for PROGRAM_NAME xlat strings
+N_("Cinelerra: Attach Effect")
+N_("Cinelerra: Audio compression")
+N_("Cinelerra: Audio Compression")
+N_("Cinelerra: Camera")
+N_("Cinelerra: Change Effect")
+N_("Cinelerra: Channel Info")
+N_("Cinelerra: ChanSearch")
+N_("Cinelerra: Clip Info")
+N_("Cinelerra: Color")
+N_("Cinelerra: Compositor")
+N_("Cinelerra: Confirm")
+N_("Cinelerra: Confirm Quit")
+N_("Cinelerra: Crop")
+N_("Cinelerra: DbWindow")
+N_("Cinelerra: Delete All Indexes")
+N_("Cinelerra: Edit length")
+N_("Cinelerra: Error")
+N_("Cinelerra: Errors")
+N_("Cinelerra: File Exists")
+N_("Cinelerra: File Format")
+N_("Cinelerra: Levels")
+N_("Cinelerra: Load")
+N_("Cinelerra: Loading")
+N_("Cinelerra: Locate file")
+N_("Cinelerra: Mask")
+N_("Cinelerra: New folder")
+N_("Cinelerra: Overlays")
+N_("Cinelerra: Path")
+N_("Cinelerra: Preferences")
+N_("Cinelerra: Program")
+N_("Cinelerra: Projector")
+N_("Cinelerra: Question")
+N_("Cinelerra: RemoteWindow")
+N_("Cinelerra: Remove assets")
+N_("Cinelerra: Resize Track")
+N_("Cinelerra: Ruler")
+N_("Cinelerra: %s")
+N_("Cinelerra: Save")
+N_("Cinelerra: Set edit title")
+N_("Cinelerra: Set Format")
+N_("Cinelerra: %s Keyframe")
+N_("Cinelerra: Subtitle")
+N_("Cinelerra: Tip of the day")
+N_("Cinelerra: Transition length")
+N_("Cinelerra: Video Compression")
+N_("Cinelerra: Viewer")
+N_("Cinelerra: Warning")
+N_("Cinelerra: New Project")
+N_("Cinelerra: New Project")
+
+N_("Cinelerra: CD Ripper")
+N_("Cinelerra: Normalize")
+N_("Cinelerra: Resample")
+N_("Cinelerra: Time stretch")
+#endif
+
 #endif
index 4e8ee78ddd1ddb9cb43cbac840add1954dd67e91..13f7247524dd3db92a2e7ae1a4a8b6954d692f18 100644 (file)
@@ -74,7 +74,7 @@
 
 // the main window uses its own private colormap for video
 MWindowGUI::MWindowGUI(MWindow *mwindow)
- : BC_Window(PROGRAM_NAME ": Program"
+ : BC_Window(_(PROGRAM_NAME ": Program")
                mwindow->session->mwindow_x, 
                mwindow->session->mwindow_y, 
                mwindow->session->mwindow_w, 
@@ -539,7 +539,7 @@ void MWindowGUI::update_title(char *path)
        FileSystem fs;
        char filename[BCTEXTLEN], string[BCTEXTLEN];
        fs.extract_name(filename, path);
-       sprintf(string, PROGRAM_NAME ": %s", filename);
+       sprintf(string, _(PROGRAM_NAME ": %s"), filename);
        set_title(string);
 //printf("MWindowGUI::update_title %s\n", string);
        flush();
index 79a14fd682fb55a79306aaec868880840d590faa..6dc520be4a19b0e33584050d90e5ee3f85d90a5f 100644 (file)
@@ -226,7 +226,7 @@ N_("Cinelerra: New Project");
 #endif
 
 NewWindow::NewWindow(MWindow *mwindow, NewThread *new_thread, int x, int y)
- : BC_Window(_(PROGRAM_NAME ": New Project"), 
+ : BC_Window(_(_(PROGRAM_NAME ": New Project")), 
                x,
                y,
                WIDTH, 
@@ -841,7 +841,7 @@ const char* ColormodelPulldown::colormodel_to_text()
        for(int i = 0; i < mwindow->colormodels.total; i++)
                if(mwindow->colormodels.values[i]->value == *output_value) 
                        return mwindow->colormodels.values[i]->get_text();
-       return "Unknown";
+       return _("Unknown");
 }
 
 
@@ -880,7 +880,7 @@ NewSwapExtents::NewSwapExtents(MWindow *mwindow, NewWindow *gui, int x, int y)
 {
        this->mwindow = mwindow;
        this->gui = gui;
-       set_tooltip("Swap dimensions");
+       set_tooltip(_("Swap dimensions"));
 }
 
 int NewSwapExtents::handle_event()
index 2af100f3a4aae9868ac6488f1fb855eedc8295e9..85d95e438593c3cae68ab5e63c724c401d03ac13 100644 (file)
@@ -34,7 +34,7 @@
 
 
 NewFolder::NewFolder(MWindow *mwindow, AWindowGUI *awindow, int x, int y)
- : BC_Window(PROGRAM_NAME ": New folder"
+ : BC_Window(_(PROGRAM_NAME ": New folder")
        x, 
        y, 
        320, 
index f679cc9c74683c720a9308955014e5e9a550029c..98ddbeeb310cb0156faac9cdbb05ad4ceda35313 100644 (file)
@@ -175,7 +175,7 @@ void PackageRenderer::create_output()
 // open failed
                char string[BCTEXTLEN];
                sprintf(string, _("Couldn't open %s"), asset->path);
-               ErrorBox error(PROGRAM_NAME ": Error",
+               ErrorBox error(_(PROGRAM_NAME ": Error"),
                        mwindow->gui->get_abs_cursor_x(1),
                        mwindow->gui->get_abs_cursor_y(1));
                error.create_objects(string);
index 90fce4577b692045465c1d0b64da36c820ecc242..813268d3325b29ee15264a81ad4ede744a4072be 100644 (file)
@@ -80,8 +80,8 @@ void NudgePopup::activate_menu(PatchGUI *gui)
 
 // Set native units to track format
        native_item->set_text(gui->track->data_type == TRACK_AUDIO ? 
-               (char*)"Samples" : 
-               (char*)"Frames");
+               (char*)_("Samples") : 
+               (char*)_("Frames"));
 
 // Show it
        BC_PopupMenu::activate_menu();
@@ -90,7 +90,7 @@ void NudgePopup::activate_menu(PatchGUI *gui)
 
 
 NudgePopupSeconds::NudgePopupSeconds(NudgePopup *popup)
- : BC_MenuItem("Seconds")
+ : BC_MenuItem(_("Seconds"))
 {
        this->popup = popup;
 }
@@ -184,29 +184,29 @@ void PatchBay::create_objects()
 
 // Create icons for mode types
        static const char *mode_types[] = {
-               "mode_normal",
-               "mode_add",
-               "mode_subtract",
-               "mode_multiply",
-               "mode_divide",
-               "mode_replace",
-               "mode_max",
-               "mode_min",
-               "mode_average",
-               "mode_darken",
-               "mode_lighten",
-               "mode_dst",
-               "mode_dstatop",
-               "mode_dstin",
-               "mode_dstout",
-               "mode_dstover",
-               "mode_src",
-               "mode_srcatop",
-               "mode_srcin",
-               "mode_srcout",
-               "mode_srcover",
-               "mode_or",
-               "mode_xor",
+               _("mode_normal"),
+               _("mode_add"),
+               _("mode_subtract"),
+               _("mode_multiply"),
+               _("mode_divide"),
+               _("mode_replace"),
+               _("mode_max"),
+               _("mode_min"),
+               _("mode_average"),
+               _("mode_darken"),
+               _("mode_lighten"),
+               _("mode_dst"),
+               _("mode_dstatop"),
+               _("mode_dstin"),
+               _("mode_dstout"),
+               _("mode_dstover"),
+               _("mode_src"),
+               _("mode_srcatop"),
+               _("mode_srcin"),
+               _("mode_srcout"),
+               _("mode_srcover"),
+               _("mode_or"),
+               _("mode_xor"),
        };
        for( int mode=0; mode<TRANSFER_TYPES; ++mode ) {
                mode_icons[mode] = new BC_Pixmap(this,
index a822504d4257a40e69ec7b436635aa83d7a7b1ad..b1e8bf66ecbe3a9575274ba1a840d8580abb7daa 100644 (file)
@@ -156,7 +156,7 @@ SET_TRACE
        add_subwindow(window = new VideoEveryFrame(pwindow, this, x, y));
 
        add_subwindow(new BC_Title(x + 200, y + 5, _("Framerate achieved:")));
-       add_subwindow(framerate_title = new BC_Title(x + 350, y + 5, _("--"), MEDIUMFONT, RED));
+       add_subwindow(framerate_title = new BC_Title(x + 350, y + 5, "--", MEDIUMFONT, RED));
        draw_framerate(0);
        y += window->get_h() + 5;
 
index cc4c2b574c99bd60e373c8f50e87139a43e6adad..0dbe601f6858c344f815c58d034ffa616a289393 100644 (file)
@@ -855,7 +855,7 @@ int PluginClient::send_hide_gui()
 int PluginClient::send_configure_change()
 {
        if(server->mwindow)
-               server->mwindow->undo->update_undo_before("tweek", this);
+               server->mwindow->undo->update_undo_before(_("tweek"), this);
 #ifdef USE_KEYFRAME_SPANNING
        KeyFrame keyframe;
        keyframe.copy_from(server->get_keyframe());
@@ -867,7 +867,7 @@ int PluginClient::send_configure_change()
        save_data(keyframe);
 #endif
        if(server->mwindow)
-               server->mwindow->undo->update_undo_after("tweek", LOAD_AUTOMATION);
+               server->mwindow->undo->update_undo_after(_("tweek"), LOAD_AUTOMATION);
        server->sync_parameters();
        return 0;
 }
index c1e654281f81f656fde1a225aa0ff1b070fd7c3d..4885eb88e7f78ddc529baea646c9848f8a47aa1c 100644 (file)
@@ -106,7 +106,7 @@ int PluginPopupChange::handle_event()
 {
        dialog_thread->start_window(popup->plugin->track,
                popup->plugin,
-               PROGRAM_NAME ": Change Effect",
+               _(PROGRAM_NAME ": Change Effect"),
                0,
                popup->plugin->track->data_type);
        return 0;
index e8d96bbcf5ebabf7163a83f53a2e0cccd34443cd..b52b3594f8f0767771727cb2c065e0a6f8268d3f 100644 (file)
@@ -64,7 +64,7 @@
 
 
 PreferencesMenuitem::PreferencesMenuitem(MWindow *mwindow)
- : BC_MenuItem(_("Preferences..."), "Shift+P", 'P')
+ : BC_MenuItem(_("Preferences..."), _("Shift+P"), 'P')
 {
        this->mwindow = mwindow; 
 
@@ -349,7 +349,7 @@ PreferencesWindow::PreferencesWindow(MWindow *mwindow,
        PreferencesThread *thread,
        int x,
        int y)
- : BC_Window(PROGRAM_NAME ": Preferences"
+ : BC_Window(_(PROGRAM_NAME ": Preferences")
        x,
        y,
        WIDTH, 
index c5dbe8e9ea8d9544bfeac03548c5ba097baf7c87..5fc8d1ebbddc98d01e73e03a9e72b4a8fd47cfb9 100644 (file)
@@ -85,7 +85,7 @@ void PresetsThread::start_window(Plugin *plugin)
        {
                this->plugin = plugin;
                plugin->calculate_title(plugin_title, 0);
-               sprintf(window_title, PROGRAM_NAME ": %s Presets", plugin_title);
+               sprintf(window_title, _(PROGRAM_NAME ": %s Presets"), plugin_title);
 
 
 // Calculate database
index 72ad5874e06207d080b63758a959feef1737d2d8..b0f2ac78d1bc41a4f5773b43384755ac47905770 100644 (file)
@@ -31,7 +31,7 @@
 #define HEIGHT 160
 
 QuestionWindow::QuestionWindow(MWindow *mwindow)
- : BC_Window(PROGRAM_NAME ": Question"
+ : BC_Window(_(PROGRAM_NAME ": Question")
        mwindow->gui->get_abs_cursor_x(1) - WIDTH / 2, 
        mwindow->gui->get_abs_cursor_y(1) - HEIGHT / 2, 
        WIDTH, 
index 340edf72cee6a9fb58a30710aa896ad5d59990f7..33676215c0b0ff77af4bd93dc6d71448b50db421 100644 (file)
@@ -73,7 +73,7 @@ void Quit::run()
 // Test execution conditions
        Record *record = mwindow->gui->record;
        if( record->capturing || record->recording || record->writing_file ) {
-               ErrorBox error(PROGRAM_NAME ": Error"
+               ErrorBox error(_(PROGRAM_NAME ": Error")
                        mwindow->gui->get_abs_cursor_x(1), 
                        mwindow->gui->get_abs_cursor_y(1));
                error.create_objects(_("Can't quit while a recording is in progress."));
@@ -83,7 +83,7 @@ void Quit::run()
        else
        if(mwindow->render->thread->running())
        {
-               ErrorBox error(PROGRAM_NAME ": Error"
+               ErrorBox error(_(PROGRAM_NAME ": Error")
                        mwindow->gui->get_abs_cursor_x(1), 
                        mwindow->gui->get_abs_cursor_y(1));
                error.create_objects(_("Can't quit while a render is in progress."));
index 0ca21d961652c8f817f41a06211c1dbd715685cb..d0ab480fe2df0e0cd4da277784231547b58d2c12 100644 (file)
@@ -31,7 +31,7 @@
 
 
 RecConfirmDelete::RecConfirmDelete(MWindow *mwindow)
- : BC_Window(PROGRAM_NAME ": Confirm"
+ : BC_Window(_(PROGRAM_NAME ": Confirm")
        mwindow->gui->get_abs_cursor_x(1),
        mwindow->gui->get_abs_cursor_y(1),
        320, 100)
index ebf770b46da0fa7a67ce64e2c5995374ad640348..933e7ef04e71f1e54eaa0829421eb57ab3e7861b 100644 (file)
@@ -721,7 +721,7 @@ double Record::current_display_position()
 const char* Record::current_source()
 {
        Batch *batch = get_current_batch();
-       return batch ? batch->get_source_text() : "Unknown";
+       return batch ? batch->get_source_text() : _("Unknown");
 }
 
 Asset* Record::current_asset()
@@ -1187,7 +1187,7 @@ void Record::start_cron_thread()
                record_thread = new RecordThread(mwindow,this);
                record_thread->start();
                record_gui->disable_batch_buttons();
-               record_gui->update_cron_status("Running");
+               record_gui->update_cron_status(_("Running"));
        }
 }
 
index 3b6fa19baa1e4f62d9d76a4b11319ef6c0c70cdb..8dd1e33c5675a52721077376c0468d143295054c 100644 (file)
@@ -246,7 +246,7 @@ void RecordAudio::run()
        }
 
        if( write_result && !record->default_asset->video_data ) {
-               ErrorBox error_box(PROGRAM_NAME ": Error",
+               ErrorBox error_box(_(PROGRAM_NAME ": Error"),
                        mwindow->gui->get_abs_cursor_x(1),
                        mwindow->gui->get_abs_cursor_y(1));
                error_box.create_objects(_("No space left on disk."));
index f417e600221e1365aedbb7a646014af072a35920..861538c468c80ea21e5b9e1dc3def8e588e5e99a 100644 (file)
@@ -305,7 +305,7 @@ update_batches(int selection_item)
                Units::totext(string, batch->duration, TIME_HMS3);
                batches.data[4].append(
                        new BC_ListBoxItem(string, color));
-               sprintf(string, "%s", batch->channel ? batch->channel->title : "None");
+               sprintf(string, "%s", batch->channel ? batch->channel->title : _("None"));
                batches.data[5].append(
                        new BC_ListBoxItem(string, color));
                sprintf(string, "%s", Batch::mode_to_text(batch->record_mode));
index 17cd13b3f7f3e945860dd952c262bbfc8856de31..25b881191f648e5dac51bbfa8189ed055ebd5cb9 100644 (file)
@@ -603,7 +603,7 @@ int RecordEngine::start_over()
                (record->do_video && file->get_video_length(record->get_framerate()) > 0))
        {
                RecConfirmDelete dialog(mwindow);
-               dialog.create_objects("start over");
+               dialog.create_objects(_("start over"));
                int result = dialog.run_window();
                if(!result)
                {
index c91be42480677d87a16a61e3ee441c9c2ff4fad9..feb38dfa27ac4ddf68ef714bfc31cfea55233b8e 100644 (file)
@@ -60,7 +60,7 @@
 
 
 RecordGUI::RecordGUI(MWindow *mwindow, Record *record)
- : BC_Window(PROGRAM_NAME ": Recording"
+ : BC_Window(_(PROGRAM_NAME ": Recording")
        mwindow->session->rwindow_x, mwindow->session->rwindow_y, 
        mwindow->session->rwindow_w, mwindow->session->rwindow_h,
        10, 10, 1, 0, 1)
@@ -187,7 +187,7 @@ void RecordGUI::create_objects()
                batch_path->get_x() + batch_path->get_w(), 
                y,
                asset->path,
-               PROGRAM_NAME ": Record path",
+               _(PROGRAM_NAME ": Record path"),
                _("Select a file to record to:"),
                0));
        x2 = max(x2, batch_path->get_w() + batch_browse->get_w());
@@ -294,7 +294,7 @@ void RecordGUI::create_objects()
                add_subwindow(new BC_Title(x, y, 
                        asset->format != FILE_MPEG ?
                                FileMOV::compressiontostr(asset->vcodec) :
-                               "File Capture",
+                               _("File Capture"),
                        MEDIUMFONT, 
                        mwindow->theme->recordgui_fixed_color));
        
@@ -968,7 +968,7 @@ int RecordGUIStopBatches::handle_event()
 {
        Record *record = gui->record;
        unlock_window();
-       record->stop_cron_thread("Stopped");
+       record->stop_cron_thread(_("Stopped"));
        lock_window();
        return RecordBatchesGUI::StopBatches::handle_event();
 }
@@ -983,7 +983,7 @@ RecordGUIActivateBatch::RecordGUIActivateBatch(RecordGUI *gui, int x, int y)
 int RecordGUIActivateBatch::handle_event()
 {
        gui->record->activate_batch(gui->record->editing_batch());
-       gui->update_cron_status("Idle");
+       gui->update_cron_status(_("Idle"));
        return RecordBatchesGUI::ActivateBatch::handle_event();
 }
 
index 5fa7b00764ec9c18db02d8c94b293d2e4e888901..982bc765275e900c7e8e260d1047e6686f593dbe 100644 (file)
@@ -250,7 +250,7 @@ void RecordMonitor::undisplay_vframe()
 
 RecordMonitorGUI::RecordMonitorGUI(MWindow *mwindow,
        Record *record, RecordMonitor *thread, int min_w)
- : BC_Window(PROGRAM_NAME ": Video in"
+ : BC_Window(_(PROGRAM_NAME ": Video in")
                        mwindow->session->rmonitor_x,
                        mwindow->session->rmonitor_y,
                        mwindow->session->rmonitor_w, 
@@ -627,7 +627,7 @@ return 0;
 
        scale = (int)(thread->get_scale(thread->record->video_window_w) * 100 + 0.5);
 
-       sprintf(string, PROGRAM_NAME ": Video in %d%%", scale);
+       sprintf(string, _(PROGRAM_NAME ": Video in %d%%"), scale);
        BC_Window::set_title(string);
        return 0;
 }
index 5e6919f5b0502b81943e486f0d9d622fb65f2517..570af94e059596535b4737109f4285a0eb9be63a 100644 (file)
@@ -82,7 +82,7 @@ void RecordThread::run()
        done = batch_no >= 0 ? 0 : 1;
        if( done ) {
                QuestionWindow *qwindow = new QuestionWindow(mwindow);
-               qwindow->create_objects("Re-enable batches and restart?",1);
+               qwindow->create_objects(_("Re-enable batches and restart?"),1);
                int result = qwindow->run_window();
                delete qwindow;
                if( result == 2 ) {
@@ -133,7 +133,7 @@ printf("RecordThread::Done\n");
                }
        }
 
-       record->record_gui->update_cron_status("Done");
+       record->record_gui->update_cron_status(_("Done"));
        record->record_gui->enable_batch_buttons();
        if( record->power_off && done < 0 )
        {
@@ -144,13 +144,13 @@ printf("RecordThread::Done\n");
                        const char poweroff[] = "poweroff";
                        char *const argv[] = { (char*)poweroff, 0 };
                        execvp(poweroff ,&argv[0]);
-                       perror("execvp poweroff failed");
+                       perror(_("execvp poweroff failed"));
                        exit(1);
                }
                if( pid > 0 )
-                       fprintf(stderr,"poweroff imminent!!!\n");
+                       fprintf(stderr,_("poweroff imminent!!!\n"));
                else
-                       perror("cant vfork poweroff process");
+                       perror(_("cant vfork poweroff process"));
        }
        cron_active = -1;
 }
index 92bd604333faf8f8427c5073bf1e4a4cabe2cb6f..2413079bd8f9585338f384b5436be41baa50c12f 100644 (file)
@@ -144,7 +144,7 @@ start_writing_file(int single_frame)
 void RecordTransport::
 stop_writing()
 {
-        record->stop_cron_thread("Interrupted");
+        record->stop_cron_thread(_("Interrupted"));
        record->stop_writing();
 }
 
index ffabce5b4be95bc8aeb82b1ad1a636620e57f8b8..a6d8c200fb1ade7baa046665cb6d4031e37c646a 100644 (file)
@@ -245,7 +245,7 @@ SET_TRACE
 SET_TRACE
 //TRACE("RecordVideo::run 2");
        if( write_result ) {
-               ErrorBox error_box(PROGRAM_NAME ": Error",
+               ErrorBox error_box(_(PROGRAM_NAME ": Error"),
                        mwindow->gui->get_abs_cursor_x(1),
                        mwindow->gui->get_abs_cursor_y(1));
                        error_box.create_objects(_("No space left on disk."));
index 19e594ff3fef8ed4f9f39425eb44f0f0dff55e47..d1117efede2563a8623c7bed317625bfa49e484e 100644 (file)
@@ -33,7 +33,7 @@
 
 
 RecordWindow::RecordWindow(MWindow *mwindow, Record *record, int x, int y)
- : BC_Window(PROGRAM_NAME ": Record"
+ : BC_Window(_(PROGRAM_NAME ": Record")
        x,
        y,
        RECORD_WINDOW_WIDTH, 
index b6be21ac180afad08f14e4c7c6585207f9a4bf39..2bf60d05f6f18910b87faa0d0a2c9d8795ed13f6 100644 (file)
@@ -68,7 +68,7 @@ void ReIndex::run()
 }
 
 ReIndexWindow::ReIndexWindow(char *display = "")
- : BC_Window(display, MEGREY, PROGRAM_NAME ": Redraw Indexes", 340, 140, 340, 140)
+ : BC_Window(display, MEGREY, _(PROGRAM_NAME ": Redraw Indexes"), 340, 140, 340, 140)
 {
 }
 
index 18c3c1fe4b20f37cf4e160cddfa3c70b5485f0ce..ecfa54cdffce05b408d0e8555a7703981ddb5cb0 100644 (file)
@@ -8,7 +8,7 @@
 
 
 RemoteWindow::RemoteWindow(RemoteControl *remote_control)
- : BC_Window(PROGRAM_NAME ": RemoteWindow",
+ : BC_Window(_(PROGRAM_NAME ": RemoteWindow"),
                0, 0, 16, 16, -1, -1, 1, 0, 1)
 {
        this->remote_control = remote_control;
index 21be5580ea3c52ffeb52c03a2806e8b2a0aa0339..f664512e7d0bab7a42d2239788576798583c0d97 100644 (file)
@@ -82,7 +82,7 @@
 
 
 RenderItem::RenderItem(MWindow *mwindow)
- : BC_MenuItem(_("Render..."), "Shift+R", 'R')
+ : BC_MenuItem(_("Render..."), _("Shift+R"), 'R')
 {
        this->mwindow = mwindow;
        set_shift(1);
@@ -216,7 +216,7 @@ void MainPackageRenderer::set_progress(int64_t value)
                                eta,
                                TIME_HMS2);
 
-                       printf("\r%d%% ETA: %s      ", (int)(100 * 
+                       printf(_("\r%d%% ETA: %s      "), (int)(100 * 
                                (float)render->total_rendered / 
                                        render->progress_max),
                                string);
@@ -287,10 +287,10 @@ void Render::start_interactive()
        }
        else
        {
-               ErrorBox error_box(PROGRAM_NAME ": Error",
+               ErrorBox error_box(_(PROGRAM_NAME ": Error"),
                        mwindow->gui->get_abs_cursor_x(1),
                        mwindow->gui->get_abs_cursor_y(1));
-               error_box.create_objects("Already rendering");
+               error_box.create_objects(_("Already rendering"));
                error_box.raise_window();
                error_box.run_window();
        }
@@ -898,7 +898,7 @@ if(debug) printf("Render::render %d\n", __LINE__);
                        if(mwindow)
                        {
 if(debug) printf("Render::render %d\n", __LINE__);
-                               ErrorBox error_box(PROGRAM_NAME ": Error",
+                               ErrorBox error_box(_(PROGRAM_NAME ": Error"),
                                        mwindow->gui->get_abs_cursor_x(1),
                                        mwindow->gui->get_abs_cursor_y(1));
                                error_box.create_objects(_("Error rendering data."));
@@ -1114,7 +1114,7 @@ RenderWindow::RenderWindow(MWindow *mwindow,
        Asset *asset,
        int x, 
        int y)
- : BC_Window(PROGRAM_NAME ": Render"
+ : BC_Window(_(PROGRAM_NAME ": Render")
        x - WIDTH / 2,
        y - HEIGHT / 2,
        WIDTH, 
index 23987aca1e9f6599f3bf683455b208915b923352..8ffd680a4a364de6fba4a8c76047e5e279dc1ee5 100644 (file)
@@ -102,7 +102,7 @@ ResizeVTrackWindow::ResizeVTrackWindow(MWindow *mwindow,
        ResizeVTrackThread *thread,
        int x,
        int y)
- : BC_Window(PROGRAM_NAME ": Resize Track"
+ : BC_Window(_(PROGRAM_NAME ": Resize Track")
                                x - 320 / 2,
                                y - get_resources()->ok_images[0]->get_h() + 100 / 2,
                                340, 
@@ -209,7 +209,7 @@ ResizeVTrackSwap::ResizeVTrackSwap(ResizeVTrackWindow *gui,
 {
        this->thread = thread;
        this->gui = gui;
-       set_tooltip("Swap dimensions");
+       set_tooltip(_("Swap dimensions"));
 }
 
 int ResizeVTrackSwap::handle_event()
index 72c5fcab5768721a30fca17adee6f0b484af29b5..5ecaeabe32cedc2653624dbb044664b7fa271308 100644 (file)
@@ -99,7 +99,7 @@ int Save::handle_event()
                {
                        char string2[256];
                        sprintf(string2, _("Couldn't open %s"), mwindow->session->filename);
-                       ErrorBox error(PROGRAM_NAME ": Error",
+                       ErrorBox error(_(PROGRAM_NAME ": Error"),
                                mwindow->gui->get_abs_cursor_x(1),
                                mwindow->gui->get_abs_cursor_y(1));
                        error.create_objects(string2);
@@ -206,7 +206,7 @@ void SaveAs::run()
                char string2[256];
                mwindow->set_filename("");      // update the project name
                sprintf(string2, _("Couldn't open %s."), filename);
-               ErrorBox error(PROGRAM_NAME ": Error",
+               ErrorBox error(_(PROGRAM_NAME ": Error"),
                        mwindow->gui->get_abs_cursor_x(1),
                        mwindow->gui->get_abs_cursor_y(1));
                error.create_objects(string2);
@@ -243,7 +243,7 @@ SaveFileWindow::SaveFileWindow(MWindow *mwindow, char *init_directory)
  : BC_FileBox(mwindow->gui->get_abs_cursor_x(1),
        mwindow->gui->get_abs_cursor_y(1) - BC_WindowBase::get_resources()->filebox_h / 2,
        init_directory, 
-       PROGRAM_NAME ": Save"
+       _(PROGRAM_NAME ": Save")
        _("Enter a filename to save as"))
 { 
        this->mwindow = mwindow; 
index ee48b6bab87bbfe0ed4fedea015345830f8a3ea6..e04aac8e9383dcc7a8ade81a17a9d8e205284781 100644 (file)
@@ -87,7 +87,7 @@ void ScaleThread::run()
 // fix tracks
                //mwindow->stop_playback(1);
 // save the before undo
-               mwindow->undo->update_undo_edits("Resize", 0);
+               mwindow->undo->update_undo_edits(_("Resize"), 0);
                mwindow->tracks->scale_video(dimension, scale_data ? dummy_offsets : offsets, scale_data);
                mwindow->session->track_w = dimension[0];
                mwindow->session->track_h = dimension[1];
@@ -194,7 +194,7 @@ int ScaleThread::update_aspect(ScaleWindow *window)
 
 
 ScaleWindow::ScaleWindow(ScaleThread *thread)
- : BC_Window(PROGRAM_NAME ": Scale", 370, 260, 0, 0)
+ : BC_Window(_(PROGRAM_NAME ": Scale"), 370, 260, 0, 0)
 { this->thread = thread; }
 
 ScaleWindow::~ScaleWindow()
index c94ec5c34a474bf1647b7897fd20e2021fbe8c52..8c4e7193caa61665df429627bdca0087741b6c2a 100644 (file)
@@ -47,7 +47,7 @@
 
 
 SetFormat::SetFormat(MWindow *mwindow)
- : BC_MenuItem(_("Format..."), "Shift-F", 'F')
+ : BC_MenuItem(_("Format..."), _("Shift-F"), 'F')
 {
        set_shift(1); 
        this->mwindow = mwindow;
@@ -280,7 +280,7 @@ SetFormatWindow::SetFormatWindow(MWindow *mwindow,
        SetFormatThread *thread,
        int x,
        int y)
- : BC_Window(PROGRAM_NAME ": Set Format",
+ : BC_Window(_(PROGRAM_NAME ": Set Format"),
        x,
        y,
        mwindow->theme->setformat_w,
@@ -913,7 +913,7 @@ FormatSwapExtents::FormatSwapExtents(MWindow *mwindow,
        this->mwindow = mwindow;
        this->thread = thread;
        this->gui = gui;
-       set_tooltip("Swap dimensions");
+       set_tooltip(_("Swap dimensions"));
 }
 
 int FormatSwapExtents::handle_event()
index 5ceb85f2cf225e1f3cdc7f8d6c0392d0cfa7fadf..eeb3f32e2ddbb5200ab0c268884fd014f96c8e6d 100644 (file)
@@ -30,7 +30,7 @@
 
 
 SplashGUI::SplashGUI(VFrame *bg, int x, int y)
- : BC_Window(PROGRAM_NAME ": Loading",
+ : BC_Window(_(PROGRAM_NAME ": Loading"),
                x,
                y,
                bg->get_w(),
index d438100bc6ec41de2b874f47fe05924d738cab7d..b4a186f0f132fbf1912372fbabeb572f8e7ffafe 100644 (file)
@@ -102,7 +102,7 @@ int SWindowLoadPath::handle_event()
 
 
 SWindowLoadFile::SWindowLoadFile(SWindowGUI *gui, int x, int y)
- : BC_GenericButton(x, y, "Load")
+ : BC_GenericButton(x, y, _("Load"))
 {
        this->sw_gui = gui;
 }
@@ -120,7 +120,7 @@ int SWindowLoadFile::handle_event()
 }
 
 SWindowSaveFile::SWindowSaveFile(SWindowGUI *gui, int x, int y)
- : BC_GenericButton(x, y, "Save")
+ : BC_GenericButton(x, y, _("Save"))
 {
        this->sw_gui = gui;
 }
@@ -141,7 +141,7 @@ int SWindowSaveFile::handle_event()
 void SWindowGUI::create_objects()
 {
        int x = 10, y = 10;
-       BC_Title *title = new BC_Title(x, y, "Path:");
+       BC_Title *title = new BC_Title(x, y, _("Path:"));
        add_subwindow(title);
        int x1 = x + title->get_w() + pad, y1 = y;
        load_path = new SWindowLoadPath(this, x1, y1, script_path);
@@ -153,16 +153,16 @@ void SWindowGUI::create_objects()
        y += max(load_path->get_h(), load_file->get_h()) + pad;
        x1 = x + pad, y1 = y;
        BC_Title *title1, *title2;
-       add_subwindow(title1 = new BC_Title(x1, y1, "File Size:"));
+       add_subwindow(title1 = new BC_Title(x1, y1, _("File Size:")));
        y += title1->get_h() + pad;
        int y2 = y;
-       add_subwindow(title2 = new BC_Title(x1, y2, "Entries:"));
+       add_subwindow(title2 = new BC_Title(x1, y2, _("Entries:")));
        int x2 = x1 + max(title1->get_w(), title2->get_w()) + pad;
        add_subwindow(script_filesz = new BC_Title(x2, y1, "0", MEDIUMFONT, YELLOW));
        add_subwindow(script_entries = new BC_Title(x2, y2, "0", MEDIUMFONT, YELLOW));
        int x3 = x2 + max(script_entries->get_w()*8, script_filesz->get_w()*8) + pad;
-       add_subwindow(title1 = new BC_Title(x3, y1, "Lines:"));
-       add_subwindow(title2 = new BC_Title(x3, y2, "Texts:"));
+       add_subwindow(title1 = new BC_Title(x3, y1, _("Lines:")));
+       add_subwindow(title2 = new BC_Title(x3, y2, _("Texts:")));
        int x4 = x3 + max(title1->get_w(), title2->get_w()) + pad;
        add_subwindow(script_lines = new BC_Title(x4, y1, "0", MEDIUMFONT, YELLOW));
        add_subwindow(script_texts = new BC_Title(x4, y2, "0", MEDIUMFONT, YELLOW));
@@ -213,7 +213,7 @@ void SWindowGUI::load()
 }
 
 SWindowGUI::SWindowGUI(SWindow *swindow, int x, int y, int w, int h)
- : BC_Window(PROGRAM_NAME ": Subtitle", x, y, w, h, 600, 500,
+ : BC_Window(_(PROGRAM_NAME ": Subtitle"), x, y, w, h, 600, 500,
        1, 0, 0 , -1, swindow->mwindow->get_cwindow_display())
 {
        this->swindow = swindow;
@@ -482,7 +482,7 @@ int SWindowGUI::clear_selection()
 
 
 ScriptPrev::ScriptPrev(SWindowGUI *gui, int x, int y)
- : BC_GenericButton(x, y, "Prev")
+ : BC_GenericButton(x, y, _("Prev"))
 {
        sw_gui = gui;
 }
@@ -498,7 +498,7 @@ int ScriptPrev::handle_event()
 }
 
 ScriptNext::ScriptNext(SWindowGUI *gui, int x, int y)
- : BC_GenericButton(x, y, "Next")
+ : BC_GenericButton(x, y, _("Next"))
 {
        sw_gui = gui;
 }
@@ -514,7 +514,7 @@ int ScriptNext::handle_event()
 }
 
 ScriptPaste::ScriptPaste(SWindowGUI *gui, int x, int y)
- : BC_GenericButton(x, y, "Paste")
+ : BC_GenericButton(x, y, _("Paste"))
 {
        sw_gui = gui;
 }
@@ -530,7 +530,7 @@ int ScriptPaste::handle_event()
 }
 
 ScriptClear::ScriptClear(SWindowGUI *gui, int x, int y)
- : BC_GenericButton(x, y, "Clear")
+ : BC_GenericButton(x, y, _("Clear"))
 {
        sw_gui = gui;
 }
@@ -748,7 +748,7 @@ void SWindowGUI::load_script()
        FILE *fp = fopen(script_path,"r");
        if( !fp ) {
                char string[BCTEXTLEN];
-               sprintf(string,"cannot open: \"%s\"\n%s",script_path,strerror(errno));
+               sprintf(string,_("cannot open: \"%s\"\n%s"),script_path,strerror(errno));
                MainError::show_error(string);
                return;
        }
@@ -951,7 +951,7 @@ int SWindow::update_selection()
 
 
 SubttlSWin::SubttlSWin(MWindow *mwindow)
- : BC_MenuItem(_("SubTitle"), "Alt-y", 'y')
+ : BC_MenuItem(_("SubTitle"), _("Alt-y"), 'y')
 {
        set_alt();
        this->mwindow = mwindow;
index 562f21dfcc794d2e60a0f667bc783408d37d2185..c416dd519f96d3c523372df7309d9b796b420dd4 100644 (file)
 // Table of tips of the day
 static const char *tips[] = 
 {
-       N_("Shift-click on a curve keyframe to snap it to the neighboring values."),
+       _("Shift-click on a curve keyframe to snap it to the neighboring values."),
 
-       N_("When configuring slow effects, disable playback for the track.  After configuring it,\n"
+       _("When configuring slow effects, disable playback for the track.  After configuring it,\n"
        "re-enable playback to process a single frame."),
 
-       N_("Ctrl + any transport command causes playback to only cover\n"
+       _("Ctrl + any transport command causes playback to only cover\n"
        "the region defined by the in/out points."),
 
-       N_("Shift + clicking a patch causes all other patches except the\n"
+       _("Shift + clicking a patch causes all other patches except the\n"
        "selected one to toggle."),
 
-       N_("Clicking on a patch and dragging across other tracks causes\n"
+       _("Clicking on a patch and dragging across other tracks causes\n"
        "the other patches to match the first one."),
 
-       N_("Shift + clicking on an effect boundary causes dragging to affect\n"
+       _("Shift + clicking on an effect boundary causes dragging to affect\n"
        "just the one effect."),
 
-       N_("Load multiple files by clicking on one file and shift + clicking on\n"
+       _("Load multiple files by clicking on one file and shift + clicking on\n"
        "another file.  Ctrl + clicking toggles individual files."),
 
-       N_("Ctrl + left clicking on the time bar cycles forward a time format.\n"
+       _("Ctrl + left clicking on the time bar cycles forward a time format.\n"
        "Ctrl + middle clicking on the time bar cycles backward a time format."),
 
-       N_("Use the +/- keys in the Compositor window to zoom in and out.\n"),
+       _("Use the +/- keys in the Compositor window to zoom in and out.\n"),
 
-       N_("Pressing Alt while clicking in the cropping window causes translation of\n"
+       _("Pressing Alt while clicking in the cropping window causes translation of\n"
        "all 4 points.\n"),
 
-       N_("Pressing Tab over a track toggles the Record status.\n"
+       _("Pressing Tab over a track toggles the Record status.\n"
        "Pressing Shift-Tab over a track toggles the Record status of all the other tracks.\n"),
 
-       N_("Audio->Map 1:1 maps each recordable audio track to a different channel.\n"
+       _("Audio->Map 1:1 maps each recordable audio track to a different channel.\n"
        "Map 5.1:1 maps 6 recordable AC3 tracks to 2 channels.\n"),
 
-       N_("Alt + left moves to the previous edit handle.\n"
+       _("Alt + left moves to the previous edit handle.\n"
        "Alt + right moves to the next edit handle.\n"),
 
-       N_("Settings->typeless keyframes allows keyframes from any track to be pasted on either\n"
+       _("Settings->typeless keyframes allows keyframes from any track to be pasted on either\n"
        "audio or video tracks.\n")
 };
 
@@ -142,7 +142,7 @@ TipWindowGUI::TipWindowGUI(MWindow *mwindow,
        TipWindow *thread,
        int x,
        int y)
- : BC_Window(PROGRAM_NAME ": Tip of the day",
+ : BC_Window(_(PROGRAM_NAME ": Tip of the day"),
        x,
        y,
        640,
index d59783e02cd03cf2ccba39dec6a4e57ff1b96537..5dc2ff705f77be01134dead8279c33b040e9b376 100644 (file)
@@ -41,7 +41,7 @@
 
 
 TransitionMenuItem::TransitionMenuItem(MWindow *mwindow, int audio, int video)
- : BC_MenuItem("Paste Transition")
+ : BC_MenuItem(_("Paste Transition"))
 {
        this->audio = audio;
        this->video = video;
@@ -226,7 +226,7 @@ int Transition::update_display()
 
 const char* Transition::default_title()
 {
-       return "Transition";
+       return _("Transition");
 }
 
 void Transition::dump(FILE *fp)
index 04551a17e3c03020cf67b65e2766053e866afe1d..3c1b8e683f7969a627700e466f6fe39f3a1455ef 100644 (file)
@@ -92,7 +92,7 @@ TransitionLengthDialog::TransitionLengthDialog(MWindow *mwindow,
        TransitionLengthThread *thread,
        int x,
        int y)
- : BC_Window(PROGRAM_NAME ": Transition length"
+ : BC_Window(_(PROGRAM_NAME ": Transition length")
        x,
        y,
        300, 
index 19b6101a5b70429405b8a7de79fd5c7fbc8469c9..27d5122fc335260acf0a584dc22111aca0eb7ed1 100644 (file)
@@ -736,13 +736,13 @@ VScalingEquation::~VScalingEquation()
 const char *VScalingEquation::interpolation_to_string(int type)
 {
        switch( type ) {
-       case NEAREST_NEIGHBOR:  return "Nearest Neighbor";
-       case CUBIC_CUBIC:       return "BiCubic / BiCubic";
-       case CUBIC_LINEAR:      return "BiCubic / BiLinear";
-       case LINEAR_LINEAR:     return "BiLinear / BiLinear";
-       case LANCZOS_LANCZOS:   return "Lanczos / Lanczos";
+       case NEAREST_NEIGHBOR:  return _("Nearest Neighbor");
+       case CUBIC_CUBIC:       return _("BiCubic / BiCubic");
+       case CUBIC_LINEAR:      return _("BiCubic / BiLinear");
+       case LINEAR_LINEAR:     return _("BiLinear / BiLinear");
+       case LANCZOS_LANCZOS:   return _("Lanczos / Lanczos");
        }
-       return "Unknown";
+       return _("Unknown");
 }
 
 void VScalingEquation::create_objects()
index ee48b443b43c3ae3e080dab71c8b648962cdc4fe..3e4478f770cddf0b1799534eb754193627ca857a 100644 (file)
@@ -32,7 +32,7 @@
 #define CROPHANDLE_H 10
 
 VideoWindowGUI::VideoWindowGUI(VideoWindow *thread, int w, int h)
- : BC_Window(PROGRAM_NAME ": Video out"
+ : BC_Window(_(PROGRAM_NAME ": Video out")
        (int)BC_INFINITY,
        (int)BC_INFINITY,
        w, 
index ba4998e1003febd1140c9e36a29ccc1e321d2f6f..61dfa5eccc23e8537da93b0881c5d0fced4f754f 100644 (file)
@@ -270,7 +270,7 @@ VModePatch::VModePatch(MWindow *mwindow, VPatchGUI *patch, int x, int y)
        this->patch = patch;
        this->mode = get_keyframe(mwindow, patch)->value;
        set_icon(patch->patchbay->mode_to_icon(this->mode));
-       set_tooltip("Overlay mode");
+       set_tooltip(_("Overlay mode"));
 }
 
 int VModePatch::handle_event()
index 10ad8c87a6d12f8a208dc8b4d69f18dc39710ada..7fa2f4be3e112310c3de901b0706e708ac3f7f02 100644 (file)
@@ -57,7 +57,7 @@
 
 
 VWindowGUI::VWindowGUI(MWindow *mwindow, VWindow *vwindow)
- : BC_Window(PROGRAM_NAME ": Viewer",
+ : BC_Window(_(PROGRAM_NAME ": Viewer"),
        mwindow->session->vwindow_x,
        mwindow->session->vwindow_y,
        mwindow->session->vwindow_w,
@@ -97,9 +97,9 @@ void VWindowGUI::change_source(EDL *edl, const char *title)
        char string[BCTEXTLEN];
 
        if(title[0]) 
-               sprintf(string, PROGRAM_NAME ": %s", title);
+               sprintf(string, _(PROGRAM_NAME ": %s"), title);
        else
-               sprintf(string, PROGRAM_NAME ": Viewer");
+               sprintf(string, _(PROGRAM_NAME ": Viewer"));
 
        lock_window("VWindowGUI::change_source");
        timebar->update(0);
index fbd6b08d709a65818e2af1ab932b3bf73b052666..b34ebdf0e02fbf13a826bfb27eb680704c680830 100644 (file)
@@ -57,7 +57,7 @@ BC_Window* WWindow::new_gui()
 }
 
 WWindowGUI::WWindowGUI(WWindow *thread, int x, int y)
- : BC_Window(PROGRAM_NAME ": Warning", x, y, 640, 100, 640, 100, 0, 0, 1)
+ : BC_Window(_(PROGRAM_NAME ": Warning"), x, y, 640, 100, 640, 100, 0, 0, 1)
 {
        this->thread = thread;
 }
index b453536f42e5ea58f9e9b5f4b56211dd1b9fca34..a7ad99797e6b1776f78ac431bab8ae2a7b83db94 100644 (file)
@@ -115,9 +115,9 @@ void ZoomBar::create_objects()
        update_formatting(length_value);
        update_formatting(to_value);
 
-       add_subwindow(playback_value = new BC_Title(x, 100, _("--"), MEDIUMFONT, RED));
+       add_subwindow(playback_value = new BC_Title(x, 100, "--", MEDIUMFONT, RED));
 
-       add_subwindow(zoom_value = new BC_Title(x, 100, _("--"), MEDIUMFONT, BLACK));
+       add_subwindow(zoom_value = new BC_Title(x, 100, "--", MEDIUMFONT, BLACK));
        update();
 }
 
index a162bd269c96bfe6a7a863ce23e014efec84e8d6..8c10a1e690a6d1cab6d0993a0634259da9d3dcb1 100644 (file)
@@ -265,7 +265,7 @@ BC_OKButton::BC_OKButton(BC_WindowBase *parent_window, VFrame **images)
        parent_window->get_h() - images[0]->get_h() - 10, 
        images)
 {
-       set_tooltip("OK");
+       set_tooltip(_("OK"));
 }
 
 BC_OKButton::BC_OKButton(BC_WindowBase *parent_window)
@@ -273,7 +273,7 @@ BC_OKButton::BC_OKButton(BC_WindowBase *parent_window)
        parent_window->get_h() - BC_WindowBase::get_resources()->ok_images[0]->get_h() - 10, 
        BC_WindowBase::get_resources()->ok_images)
 {
-       set_tooltip("OK");
+       set_tooltip(_("OK"));
 }
 
 int BC_OKButton::handle_event()
@@ -321,7 +321,7 @@ BC_CancelButton::BC_CancelButton(int x, int y)
  : BC_Button(x, y, 
        BC_WindowBase::get_resources()->cancel_images)
 {
-       set_tooltip("Cancel");
+       set_tooltip(_("Cancel"));
 }
 
 BC_CancelButton::BC_CancelButton(BC_WindowBase *parent_window)
@@ -329,7 +329,7 @@ BC_CancelButton::BC_CancelButton(BC_WindowBase *parent_window)
        parent_window->get_h() - BC_WindowBase::get_resources()->cancel_images[0]->get_h() - 10, 
        BC_WindowBase::get_resources()->cancel_images)
 {
-       set_tooltip("Cancel");
+       set_tooltip(_("Cancel"));
 }
 
 BC_CancelButton::BC_CancelButton(BC_WindowBase *parent_window, VFrame **images)
@@ -337,7 +337,7 @@ BC_CancelButton::BC_CancelButton(BC_WindowBase *parent_window, VFrame **images)
        parent_window->get_h() - images[0]->get_h() - 10, 
        images)
 {
-       set_tooltip("Cancel");
+       set_tooltip(_("Cancel"));
 }
 
 int BC_CancelButton::handle_event()
index 2d1670e071238e1e6725589a3a8a2f94daff1d5a..4525857f53a30b59a9bf88acc9e0fe8759eae67c 100644 (file)
@@ -56,7 +56,7 @@ BC_Display::BC_Display(const char *display_name)
                        display_name);
                if(getenv("DISPLAY") == NULL)
        {
-                       printf("'DISPLAY' environment variable not set.\n");
+                       printf(_("'DISPLAY' environment variable not set.\n"));
                        exit(1);
                }
                else
index 209b70db1c70c3c234bd68b0a3624eea3d9c22e3..72a1fea819bfdef7c1840e4f0587d2dbb2d6e853 100644 (file)
@@ -24,6 +24,7 @@
 #include "bcsignals.h"
 #include "bcwindowbase.h"
 #include "clip.h"
+#include "language.h"
 
 #include <X11/X.h>
 #include <X11/Xlib.h>
@@ -238,12 +239,12 @@ void BC_DisplayInfo::init_window(const char *display_name, int show_error)
        if((display = XOpenDisplay(display_name)) == NULL)
        {
                if(!show_error) return;
-               fprintf(stderr, "BC_DisplayInfo::init_window: cannot open display \"%s\".\n",
+               fprintf(stderr,_("BC_DisplayInfo::init_window: cannot open display \"%s\".\n"),
                        display_name ? display_name : "");
                if(getenv("DISPLAY") == NULL)
-                       fprintf(stderr, "'DISPLAY' environment variable not set.\n");
+                       fprintf(stderr, _("'DISPLAY' environment variable not set.\n"));
                if((display = XOpenDisplay(0)) == NULL) {
-                       fprintf(stderr, "BC_DisplayInfo::init_window: cannot connect to X server.\n");
+                       fprintf(stderr,_("BC_DisplayInfo::init_window: cannot connect to X server.\n"));
                        exit(1);
                }
        }
index 4750c75a486ac103fdb1fc5e3836e9a156940585..bf9c4e4ab61cef57b5b0d6a72585bd6f6dd200e7 100644 (file)
@@ -427,7 +427,7 @@ BC_FileBoxUpdir::BC_FileBoxUpdir(int x, int y, BC_FileBox *filebox)
 int BC_FileBoxUpdir::handle_event()
 {
 // Need a temp so submit_file can expand it
-       sprintf(string, _(".."));
+       sprintf(string, "..");
        filebox->submit_file(string);
        return 1;
 }
index 7f3f7d04a467188acb1a580685863fbab9557f8c..a6dc8e7a01f5b82071b12c17d4acbdbcf8da898a 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 #include "bcpopup.h"
+#include "language.h"
 
 
 BC_FullScreen::BC_FullScreen(BC_WindowBase *parent_window, int w, int h, 
@@ -32,7 +33,7 @@ BC_FullScreen::BC_FullScreen(BC_WindowBase *parent_window, int w, int h,
 #ifdef HAVE_LIBXXF86VM
    if (vm_scale) 
           create_window(parent_window,
-                          "Fullscreen"
+                          _("Fullscreen")
                           parent_window->get_screen_x(0, -1),
                           parent_window->get_screen_y(0, -1),
                           w, 
@@ -50,7 +51,7 @@ BC_FullScreen::BC_FullScreen(BC_WindowBase *parent_window, int w, int h,
    else
 #endif
    create_window(parent_window,
-                          "Fullscreen"
+                          _("Fullscreen")
                           parent_window->get_screen_x(0, -1),
                           parent_window->get_screen_y(0, -1),
                           w, 
@@ -84,7 +85,7 @@ BC_Popup::BC_Popup(BC_WindowBase *parent_window,
  : BC_WindowBase()
 {
        create_window(parent_window,
-                               "Popup"
+                               _("Popup")
                                x,
                                y,
                                w, 
index a0b6db75395c6a003b2dcc2ee276abcc23ab767a..23a4249c0718630a4b2aa7892e4f5060f14ca524 100644 (file)
@@ -26,6 +26,7 @@
 #include "bcresources.h"
 #include "bctitle.h"
 #include "bcwindow.h"
+#include "language.h"
 #include "vframe.h"
 
 BC_ProgressBox::BC_ProgressBox(int x, int y, const char *text, int64_t length)
@@ -111,7 +112,7 @@ void BC_ProgressBox::unlock_window()
 
 
 BC_ProgressWindow::BC_ProgressWindow(int x, int y)
- : BC_Window("Progress",
+ : BC_Window(_("Progress"),
        x,
        y,
        340,
index dde0458eb03c4cb95668828c3556a105656972a7..32ab1ce04d48e92bcf5476d3c3a71eb8db320552 100644 (file)
@@ -25,6 +25,7 @@
 #include "bcsignals.h"
 #include "bcsynchronous.h"
 #include "bcwindowbase.h"
+#include "language.h"
 
 // OpenGL functions in BC_WindowBase
 
@@ -47,21 +48,21 @@ int BC_WindowBase::glx_test_fb_configs(int *attrs, GLXFBConfig *&cfgs,
 {
        int ncfgs = glx_fb_configs(attrs+2, cfgs);
        if( ncfgs ) return ncfgs;
-       if( msgs < 1 ) { ++msgs;  printf("%s: trying fallback 1\n", msg); }
+       if( msgs < 1 ) { ++msgs;  printf(_("%s: trying fallback 1\n"), msg); }
        ncfgs = glx_fb_configs(attrs+0, cfgs);
        if( ncfgs ) return ncfgs;
-       if( msgs < 2 ) { ++msgs;  printf("%s: trying single buffering\n", msg); }
+       if( msgs < 2 ) { ++msgs;  printf(_("%s: trying single buffering\n"), msg); }
        attrs[5] = False;
        ncfgs = glx_fb_configs(attrs+0, cfgs);
        if( ncfgs ) return ncfgs;
-       if( msgs < 3 ) { ++msgs;  printf("%s: trying fallback 2\n", msg); }
+       if( msgs < 3 ) { ++msgs;  printf(_("%s: trying fallback 2\n"), msg); }
        ncfgs = glx_fb_configs(attrs+2, cfgs);
        if( ncfgs ) return ncfgs;
-       if( msgs < 4 ) { ++msgs;  printf("%s: trying attributes None\n", msg); }
+       if( msgs < 4 ) { ++msgs;  printf(_("%s: trying attributes None\n"), msg); }
        ncfgs = glx_fb_configs(None, cfgs);
        if( ncfgs ) return ncfgs;
        disable_opengl();
-       printf("%s: opengl initialization failed failed\n", msg);
+       printf(_("%s: opengl initialization failed failed\n"), msg);
        return 0;
 }
 
index 0845dcbb1603531a6bef899a562cd5662315b4d4..841d6c54c0105a0763e7b4ed8c4e6f6fd0a494ce 100644 (file)
@@ -202,8 +202,8 @@ BC_WindowBase::~BC_WindowBase()
 #ifndef SINGLE_THREAD
 #ifdef HAVE_GL
                if( (options & GLX_DISPLAY) != 0 && get_resources()->get_synchronous() ) {
-                       printf("BC_WindowBase::~BC_WindowBase window deleted but opengl deletion is not\n"
-                               "implemented for BC_Pixmap.\n");
+                       printf(_("BC_WindowBase::~BC_WindowBase window deleted but opengl deletion is not\n"
+                               "implemented for BC_Pixmap.\n"));
                        get_resources()->get_synchronous()->delete_display(this);
                }
                else
@@ -657,7 +657,7 @@ Display* BC_WindowBase::init_display(const char *display_name)
                printf("BC_WindowBase::init_display: cannot connect to X server %s\n",
                        display_name);
                if(getenv("DISPLAY") == NULL) {
-                       printf("'DISPLAY' environment variable not set.\n");
+                       printf(_("'DISPLAY' environment variable not set.\n"));
                        exit(1);
                }
                else {
index 95f8175b9345ec3ee8487c7d87948e35c8066866..b57b7afdae2910422a58fc99e3c663cb8128111e 100644 (file)
@@ -155,7 +155,7 @@ _1080to480Main::~_1080to480Main()
        if(temp) delete temp;
 }
 
-const char* _1080to480Main::plugin_title() { return N_("1080 to 480"); }
+const char* _1080to480Main::plugin_title() { return _("1080 to 480"); }
 int _1080to480Main::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(_1080to480Main, _1080to480Window)
index ed3b914ec9bc1d6ff534ace598654409095e06e0..109fc90bd5119fd9f086ff14bb2bcd923594c44a 100644 (file)
@@ -159,7 +159,7 @@ _1080to540Main::~_1080to540Main()
        if(temp) delete temp;
 }
 
-const char* _1080to540Main::plugin_title() { return N_("1080 to 540"); }
+const char* _1080to540Main::plugin_title() { return _("1080 to 540"); }
 int _1080to540Main::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(_1080to540Main, _1080to540Window)
index 985cdf21d32474ba46a8cdb9363dd63884124905..14377714fece0081ecfceeb338329a59a7447cbe 100644 (file)
@@ -188,7 +188,7 @@ _720to480Main::~_720to480Main()
        if(temp) delete temp;
 }
 
-const char* _720to480Main::plugin_title() { return N_("720 to 480"); }
+const char* _720to480Main::plugin_title() { return _("720 to 480"); }
 int _720to480Main::is_realtime() { return 0; }
 
 double _720to480Main::get_framerate()
index 93086fd5c154b52307c82766b20835175f213a4a..89607d7030300ead9a4ed50bebc18a90baca2e70 100644 (file)
@@ -376,7 +376,7 @@ C41Effect::~C41Effect()
 {
 }
 
-const char* C41Effect::plugin_title() { return N_("C41"); }
+const char* C41Effect::plugin_title() { return _("C41"); }
 
 int C41Effect::is_realtime() { return 1; }
 
index 1bb368b2fffadd07c9367c069911908120d8e8c0..d5cebf63475d57eb72a683bf2623c027fe8fb5ed 100644 (file)
@@ -73,7 +73,7 @@ AgingMain::~AgingMain()
        if(aging_server) delete aging_server;
 }
 
-const char* AgingMain::plugin_title() { return N_("AgingTV"); }
+const char* AgingMain::plugin_title() { return _("AgingTV"); }
 int AgingMain::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(AgingMain, AgingWindow)
index 72aed1d659b95fd3caf2635ea689777bf36bbaf2..6d9770513a72099137713ea7a014d2942ec81196 100644 (file)
@@ -49,9 +49,9 @@ void AgingWindow::create_objects()
 {
        int x = 10, y = 10;
        add_subwindow(new BC_Title(x, y, 
-               _("Film aging from EffectTV\n"
+               "Film aging from EffectTV\n"
                "Copyright (C) 2001 FUKUCHI Kentarou")
-       ));
+       );
 //     
 //     y += 50;
 //     add_subwindow(color = new AgingColor(x, y, client));    
index f38fc7d75c9f17568325fc8b523353785b07a71d..c20c88bc3eca05adf3f14da02adacb1e237138c7 100644 (file)
@@ -309,14 +309,14 @@ const char* AudioScopeMode::mode_to_text(int mode)
        switch(mode)
        {
                case XY_MODE:
-                       return "XY Mode";
+                       return _("XY Mode");
                case WAVEFORM_NO_TRIGGER:
-                       return "Waveform";
+                       return _("Waveform");
                case WAVEFORM_RISING_TRIGGER:
-                       return "Rising Trigger";
+                       return _("Rising Trigger");
                case WAVEFORM_FALLING_TRIGGER:
                default:
-                       return "Falling Trigger";
+                       return _("Falling Trigger");
        }
 }
 
@@ -574,13 +574,13 @@ void AudioScopeWindow::calculate_probe(int x, int y, int do_overlay)
 
 
        char string[BCTEXTLEN];
-       sprintf(string, "Sample: %d", sample);
+       sprintf(string, _("Sample: %d"), sample);
        probe_sample->update(string);
 
-       sprintf(string, "Level 0: %.2f", channel0);
+       sprintf(string, _("Level 0: %.2f"), channel0);
        probe_level0->update(string);
 
-       sprintf(string, "Level 1: %.2f", channel1);
+       sprintf(string, _("Level 1: %.2f"), channel1);
        probe_level1->update(string);
 
        
@@ -661,7 +661,7 @@ void AudioScope::reset()
 }
 
 
-const char* AudioScope::plugin_title() { return N_("AudioScope"); }
+const char* AudioScope::plugin_title() { return _("AudioScope"); }
 int AudioScope::is_realtime() { return 1; }
 int AudioScope::is_multichannel() { return 1; }
 
index 09475aa2e03a6b6dcbb21dde90ba96b8456c5d04..a46f148156467b40ff2bd6b0dfe482f401b6e797 100644 (file)
@@ -181,7 +181,7 @@ BandSlideMain::~BandSlideMain()
        
 }
 
-const char* BandSlideMain::plugin_title() { return N_("BandSlide"); }
+const char* BandSlideMain::plugin_title() { return _("BandSlide"); }
 int BandSlideMain::is_transition() { return 1; }
 int BandSlideMain::uses_gui() { return 1; }
 
index 3b62bc431ce44fda8e7fdbf4f04c153c7a3a61bd..f3551d30b4eeae418a1eda2bb66c8183bbb40684 100644 (file)
@@ -178,7 +178,7 @@ BandWipeMain::~BandWipeMain()
        
 }
 
-const char* BandWipeMain::plugin_title() { return N_("BandWipe"); }
+const char* BandWipeMain::plugin_title() { return _("BandWipe"); }
 int BandWipeMain::is_transition() { return 1; }
 int BandWipeMain::uses_gui() { return 1; }
 
index 89dc4983c60448a886b7c9dbe6189ea7da3b8239..4d314a231624fa61675df78ea4ee61fed6188c78 100644 (file)
@@ -68,7 +68,7 @@ BlondThemeMain::~BlondThemeMain()
 
 const char* BlondThemeMain::plugin_title()
 {
-       return "Blond-cv";
+       return _("Blond-cv");
 }
 
 Theme* BlondThemeMain::new_theme()
@@ -722,7 +722,7 @@ void BlondTheme::initialize()
        title_color = WHITE;
        recordgui_fixed_color = YELLOW;
        recordgui_variable_color = RED;
-       resources->medium_font = N_("-*-helvetica-bold-r-normal-*-14-*");
+       resources->medium_font = "-*-helvetica-bold-r-normal-*-14-*";
 
        channel_position_color = MEYELLOW;
        resources->meter_title_w = 25;
index 2ac242fc52aed7ce0d5cd8fddf939bd2f93aaed8..dc32712f55bf2062849ef18b73532aca82babf61 100644 (file)
@@ -68,7 +68,7 @@ BlondThemeMain::~BlondThemeMain()
 
 const char* BlondThemeMain::plugin_title()
 {
-       return "Blond-cv";
+       return _("Blond-cv");
 }
 
 Theme* BlondThemeMain::new_theme()
@@ -663,7 +663,7 @@ void BlondTheme::initialize()
        title_color = WHITE;
        recordgui_fixed_color = YELLOW;
        recordgui_variable_color = RED;
-       resources->medium_font = N_("-*-helvetica-bold-r-normal-*-14-*");
+       resources->medium_font = "-*-helvetica-bold-r-normal-*-14-*";
 
        channel_position_color = MEYELLOW;
        resources->meter_title_w = 25;
index daf23cadb2622d20d083801039b2962cc55e673e..64bd8161aae1726226fa544916c7e57c3c71fd4d 100644 (file)
@@ -84,7 +84,7 @@ BluebananaMain::~BluebananaMain() {
   delete engine;
 }
 
-const char* BluebananaMain::plugin_title() { return "Blue Banana"; }
+const char* BluebananaMain::plugin_title() { return _("Blue Banana"); }
 int BluebananaMain::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(BluebananaMain, BluebananaWindow)
index 104474ed91b2bdbce287e0d00e30cd048a9011f8..52db458b9130bd1b1bfc4fca253b4f4f5074b24e 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "bluebanana.h"
 #include "bluebananaconfig.h"
+#include "language.h"
 
 static float halfsin2(float x){
   if(x<-M_PI/2)return 0;
@@ -60,7 +61,7 @@ static int select_setup(char *pattern, int change){
       while( x*x+y*y < gsq){
         x--;
         if(n==FSrange*4){
-          fprintf(stderr,"Internal error; pattern array overflow\n");
+          fprintf(stderr,_("Internal error; pattern array overflow\n"));
           return n;
         }
         pattern[n++]=(change>0 ? 'H' : 'h');
@@ -68,7 +69,7 @@ static int select_setup(char *pattern, int change){
       if(!y)break;
       y--;
       if(n==FSrange*4){
-        fprintf(stderr,"Internal error; pattern array overflow\n");
+        fprintf(stderr,_("Internal error; pattern array overflow\n"));
         return n;
       }
       pattern[n++]=(change>0 ? 'V' : 'v');
index 37b42a86e7f9f817e8e020e53ff9c296864b74f7..cdaf76de0fe34870e836b72ae38a5b4e63c00468 100644 (file)
@@ -19,6 +19,7 @@
  */
 
 #include "bluebananaslider.h"
+#include "language.h"
 
 #undef CLAMP
 #define CLAMP(x, y, z) ((x) < (y) ? (y) : ((x) > (z) ? (z) : (x)))
@@ -475,7 +476,7 @@ void BluebananaSlider::update(){
   }
 
   if(!trough){
-    fprintf(stderr,"Bluebanana: Unable to create Frame for slider\n");
+    fprintf(stderr,_("Bluebanana: Unable to create Frame for slider\n"));
   }else{
     unsigned char *data = trough->get_data();
     long bpr = trough->get_bytes_per_line();
@@ -1510,7 +1511,7 @@ void BluebananaSliderChannel::update(){
   }
 
   if(!trough){
-    fprintf(stderr,"Bluebanana: Unable to create Frame for slider\n");
+    fprintf(stderr,_("Bluebanana: Unable to create Frame for slider\n"));
   }else{
     unsigned char *data = trough->get_data();
     float ha = 1.;
@@ -1966,7 +1967,7 @@ void BluebananaSliderFill::update(){
 
   /* Unlike the hist slider, we just drop the three pixel columns in the center */
   if(!trough){
-    fprintf(stderr,"Bluebanana: Unable to create Frame for slider\n");
+    fprintf(stderr,_("Bluebanana: Unable to create Frame for slider\n"));
   }else{
     unsigned char *data = trough->get_data();
     long bpr = trough->get_bytes_per_line();
index 61c8d82b43070982ba366b6a08ab5bc495337ac3..fa6ac42d422f95870b3d673ddb9f3d0d3210b33a 100644 (file)
@@ -1754,7 +1754,7 @@ public:
     this->plugin = plugin;
     this->gui = gui;
     this->padx = padx;
-    this->label = new BC_Title(-1,-1," End Mask");
+    this->label = new BC_Title(-1,-1,_(" End Mask"));
     this->x=-1;
     this->y=-1;
     gui->add_subwindow(this->label);
@@ -1909,7 +1909,7 @@ public:
       // not initialized yet
       return;
     default:
-      fprintf(stderr,"Unknown colormodel in BluebananaA2Sel:update()\n");
+      fprintf(stderr,_("Unknown colormodel in BluebananaA2Sel:update()\n"));
       break;
     }
     if(plugin->config.use_mask != get_value())
index 876a6265714ec6af5ffb7b7e5b15cf030f630c5f..a9c6af3830a66ba85dcdacce940ac9db3e8d8a4e 100644 (file)
@@ -71,7 +71,7 @@ BlueDotThemeMain::~BlueDotThemeMain()
 
 const char* BlueDotThemeMain::plugin_title()
 {
-       return "Blue Dot";
+       return _("Blue Dot");
 }
 
 Theme* BlueDotThemeMain::new_theme()
@@ -736,7 +736,7 @@ void BlueDotTheme::initialize()
        title_color = BLACK;
        recordgui_fixed_color = BLACK;
        recordgui_variable_color = RED;
-       resources->medium_font = N_("-*-helvetica-medium-r-normal-*-14-*");
+       resources->medium_font = "-*-helvetica-medium-r-normal-*-14-*";
 
        channel_position_color = MEYELLOW;
        resources->meter_title_w = 25;
index 2dc59f47dbee708962c5745bbbe76dc15a4ae236..e4b86f5c8f09431cfd5e2d017fce400f3dbb6dc3 100644 (file)
@@ -128,7 +128,7 @@ BlurMain::~BlurMain()
        if(overlayer) delete overlayer;
 }
 
-const char* BlurMain::plugin_title() { return N_("Blur"); }
+const char* BlurMain::plugin_title() { return _("Blur"); }
 int BlurMain::is_realtime() { return 1; }
 
 
index b613fbe79da722b5e7b89030045f4aa3967a527d..ac30bf078127990ac869208b9f5b9b8407030241 100644 (file)
@@ -60,7 +60,7 @@ BlurZoomMain::~BlurZoomMain()
 {
 }
 
-char* BlurZoomMain::plugin_title() { return N_("RadioacTV"); }
+char* BlurZoomMain::plugin_title() { return _("RadioacTV"); }
 int BlurZoomMain::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(BlurZoomMain, BlurZoomWindow)
index b869cdaef792be3cb4d98f09574c51a91fa4053d..196edda1b765afb09eca542083813f74218ae4ca 100644 (file)
@@ -49,9 +49,9 @@ void BlurZoomWindow::create_objects()
 {
        int x = 10, y = 10;
        add_subwindow(new BC_Title(x, y, 
-               _("RadioacTV from EffectTV\n"
+               "RadioacTV from EffectTV\n"
                "Copyright (C) 2001 FUKUCHI Kentarou")
-       ));
+       );
 
        show_window();
        flush();
index 80e3f2569f15b0020843898aa6a68d8572a471d8..96622f88adb515b6ac16ee48434566ac24f1d0fa 100644 (file)
@@ -93,7 +93,7 @@ BrightnessMain::~BrightnessMain()
        if(engine) delete engine;
 }
 
-const char* BrightnessMain::plugin_title() { return N_("Brightness/Contrast"); }
+const char* BrightnessMain::plugin_title() { return _("Brightness/Contrast"); }
 int BrightnessMain::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(BrightnessMain, BrightnessWindow)     
index 34005196c3c3e9e262efb1d3d7d5a8220dc97c89..d0a5e1d58f7cd8fbbc38fe38ef25dff0ed328de7 100644 (file)
@@ -68,7 +68,7 @@ BrightThemeMain::~BrightThemeMain()
 
 const char* BrightThemeMain::plugin_title()
 {
-       return "Bright";
+       return _("Bright");
 }
 
 Theme* BrightThemeMain::new_theme()
index 4adf2c19941537c67ad75d6e25c2aeed7869f07b..ed9b50bfaa433c770e87b5505c0ab7851cfa67af 100644 (file)
@@ -76,7 +76,7 @@ BurnMain::~BurnMain()
        if(yuv) delete yuv;
 }
 
-const char* BurnMain::plugin_title() { return N_("BurningTV"); }
+const char* BurnMain::plugin_title() { return _("BurningTV"); }
 int BurnMain::is_realtime() { return 1; }
 
 
index 5d59dd07568ec7517502a426272d0733e11e5479..9ebeac20b5a316fa106db97711837b528e28f28d 100644 (file)
@@ -51,7 +51,7 @@ CDRipMain::~CDRipMain()
 {
 }
 
-const char* CDRipMain::plugin_title() { return N_("CD Ripper"); }
+const char* CDRipMain::plugin_title() { return _("CD Ripper"); }
 int CDRipMain::is_realtime() { return 0; }
 int CDRipMain::is_multichannel() { return 1; }
 
@@ -125,7 +125,7 @@ int CDRipMain::open_drive()
        if((cdrom = open(device, O_RDONLY)) < 0)
        {
                BC_DisplayInfo info;
-               ErrorBox window(PROGRAM_NAME ": CD Ripper",
+               ErrorBox window(_(PROGRAM_NAME ": CD Ripper"),
                        info.get_abs_cursor_x(), 
                        info.get_abs_cursor_y());
                window.create_objects(_("Can't open cdrom drive."));
@@ -157,7 +157,7 @@ int CDRipMain::get_toc()
        if(ioctl(cdrom, CDROMREADTOCHDR, &hdr) < 0)
        {
                close(cdrom);
-               ErrorBox window(PROGRAM_NAME ": CD Ripper",
+               ErrorBox window(_(PROGRAM_NAME ": CD Ripper"),
                        info.get_abs_cursor_x(), 
                        info.get_abs_cursor_y());
                window.create_objects(_("Can't get total from table of contents."));
@@ -173,7 +173,7 @@ int CDRipMain::get_toc()
                {
                        ioctl(cdrom, CDROMSTOP);
                        close(cdrom);
-                       ErrorBox window(PROGRAM_NAME ": CD Ripper",
+                       ErrorBox window(_(PROGRAM_NAME ": CD Ripper"),
                                info.get_abs_cursor_x(), 
                                info.get_abs_cursor_y());
                        window.create_objects(_("Can't get table of contents entry."));
@@ -189,7 +189,7 @@ int CDRipMain::get_toc()
        {
                ioctl(cdrom, CDROMSTOP);
                close(cdrom);
-               ErrorBox window(PROGRAM_NAME ": CD Ripper",
+               ErrorBox window(_(PROGRAM_NAME ": CD Ripper"),
                        info.get_abs_cursor_x(), 
                        info.get_abs_cursor_y());
                window.create_objects(_("Can't get table of contents leadout."));
@@ -204,7 +204,7 @@ int CDRipMain::get_toc()
        {
                ioctl(cdrom, CDROMSTOP);
                close(cdrom);
-               ErrorBox window(PROGRAM_NAME ": CD Ripper",
+               ErrorBox window(_(PROGRAM_NAME ": CD Ripper"),
                        info.get_abs_cursor_x(), 
                        info.get_abs_cursor_y());
                window.create_objects(_("Start track is out of range."));
@@ -222,7 +222,7 @@ int CDRipMain::get_toc()
        {
                ioctl(cdrom, CDROMSTOP);
                close(cdrom);
-               ErrorBox window(PROGRAM_NAME ": CD Ripper",
+               ErrorBox window(_(PROGRAM_NAME ": CD Ripper"),
                        info.get_abs_cursor_x(), 
                        info.get_abs_cursor_y());
                window.create_objects(_("End track is out of range."));
@@ -234,7 +234,7 @@ int CDRipMain::get_toc()
        {
                ioctl(cdrom, CDROMSTOP);
                close(cdrom);
-               ErrorBox window(PROGRAM_NAME ": CD Ripper",
+               ErrorBox window(_(PROGRAM_NAME ": CD Ripper"),
                        info.get_abs_cursor_x(), 
                        info.get_abs_cursor_y());
                window.create_objects(_("End position is out of range."));
index 268306b5ef5ef64a393085d7b0b71ecc198a9951..b915355f3cd0a3aa8259d714bd96398125a8e278 100644 (file)
@@ -26,7 +26,7 @@
 #include <string.h>
 
 CDRipWindow::CDRipWindow(CDRipMain *cdripper, int x, int y)
- : BC_Window(PROGRAM_NAME ": CD Ripper"
+ : BC_Window(_(PROGRAM_NAME ": CD Ripper")
        x,
        y,
        450, 
index e8d89898d9f38bb5b98ae2136a5438e5ba6eef98..ba3a565b50a45c052de442cc2149ef1190fee0e6 100644 (file)
@@ -571,7 +571,7 @@ SET_TRACE
        return 1;
 }
 
-const char* ChromaKey::plugin_title() { return N_("Chroma key"); }
+const char* ChromaKey::plugin_title() { return _("Chroma key"); }
 int ChromaKey::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(ChromaKey, ChromaKeyWindow)
index fb9a1d66c7417302bdfbb9e48be28da308cbe684..5380f90688e0bd25214fbbfbd90072411dd27389 100644 (file)
@@ -919,7 +919,7 @@ int ChromaKeyHSV::process_buffer(VFrame *frame,
        return 0;
 }
 
-const char* ChromaKeyHSV::plugin_title() { return N_("Chroma key (HSV)"); }
+const char* ChromaKeyHSV::plugin_title() { return _("Chroma key (HSV)"); }
 int ChromaKeyHSV::is_realtime() { return 1; }
 
 
index 40ade9b4b98e72e47ef467ddde5684746c4ef135..07592f7839294b1ed25d8625fdc666f48ad3aa36 100644 (file)
@@ -382,7 +382,7 @@ Color3WayMain::~Color3WayMain()
        delete engine;
 }
 
-const char* Color3WayMain::plugin_title() { return N_("Color 3 Way"); }
+const char* Color3WayMain::plugin_title() { return _("Color 3 Way"); }
 int Color3WayMain::is_realtime() { return 1; }
 
 
@@ -601,19 +601,19 @@ void Color3WayMain::read_data(KeyFrame *keyframe)
 void Color3WayMain::get_aggregation(int *aggregate_interpolate,
        int *aggregate_gamma)
 {
-       if(!strcmp(get_output()->get_prev_effect(1), "Interpolate Pixels") &&
-               !strcmp(get_output()->get_prev_effect(0), "Gamma"))
+       if(!strcmp(get_output()->get_prev_effect(1), _("Interpolate Pixels")) &&
+               !strcmp(get_output()->get_prev_effect(0), _("Gamma")))
        {
                *aggregate_interpolate = 1;
                *aggregate_gamma = 1;
        }
        else
-       if(!strcmp(get_output()->get_prev_effect(0), "Interpolate Pixels"))
+       if(!strcmp(get_output()->get_prev_effect(0), _("Interpolate Pixels")))
        {
                *aggregate_interpolate = 1;
        }
        else
-       if(!strcmp(get_output()->get_prev_effect(0), "Gamma"))
+       if(!strcmp(get_output()->get_prev_effect(0), _("Gamma")))
        {
                *aggregate_gamma = 1;
        }
index 5d923bced3601e089160a4515cc8a0e10f1a97fb..8827b4e5c97d764fa834c66815be2f3d51d7839d 100644 (file)
@@ -133,9 +133,9 @@ void Color3WaySection::create_objects()
        int y = this->y;
        const char *titles[] = 
        {
-               "Shadows",
-               "Midtones",
-               "Highlights"
+               _("Shadows"),
+               _("Midtones"),
+               _("Highlights")
        };
        
        
index c06a1b299734d453a8a77ce41a3fc0a646a6cb7b..4bddc7ac0a752cd0207f3d99dffe56fed362533e 100644 (file)
@@ -335,7 +335,7 @@ ColorBalanceMain::~ColorBalanceMain()
        }
 }
 
-const char* ColorBalanceMain::plugin_title() { return N_("Color Balance"); }
+const char* ColorBalanceMain::plugin_title() { return _("Color Balance"); }
 int ColorBalanceMain::is_realtime() { return 1; }
 
 
@@ -490,7 +490,7 @@ int ColorBalanceMain::process_buffer(VFrame *frame,
                {
 //get_output()->dump_stacks();
 // Aggregate
-                       if(next_effect_is("Histogram")) return 0;
+                       if(next_effect_is(_("Histogram"))) return 0;
                        return run_opengl();
                }
        
@@ -576,19 +576,19 @@ void ColorBalanceMain::read_data(KeyFrame *keyframe)
 void ColorBalanceMain::get_aggregation(int *aggregate_interpolate,
        int *aggregate_gamma)
 {
-       if(!strcmp(get_output()->get_prev_effect(1), "Interpolate Pixels") &&
-               !strcmp(get_output()->get_prev_effect(0), "Gamma"))
+       if(!strcmp(get_output()->get_prev_effect(1), _("Interpolate Pixels")) &&
+               !strcmp(get_output()->get_prev_effect(0), _("Gamma")))
        {
                *aggregate_interpolate = 1;
                *aggregate_gamma = 1;
        }
        else
-       if(!strcmp(get_output()->get_prev_effect(0), "Interpolate Pixels"))
+       if(!strcmp(get_output()->get_prev_effect(0), _("Interpolate Pixels")))
        {
                *aggregate_interpolate = 1;
        }
        else
-       if(!strcmp(get_output()->get_prev_effect(0), "Gamma"))
+       if(!strcmp(get_output()->get_prev_effect(0), _("Gamma")))
        {
                *aggregate_gamma = 1;
        }
index bef68453b3c0bb77a0d997f7bca766b3cfc8c8d8..ee1cf50897a795845ca16f5ae2cf85a0fa7dfd3a 100644 (file)
@@ -114,7 +114,7 @@ void CompressorEffect::reset()
        current_value = 1.0;
 }
 
-const char* CompressorEffect::plugin_title() { return N_("Compressor"); }
+const char* CompressorEffect::plugin_title() { return _("Compressor"); }
 int CompressorEffect::is_realtime() { return 1; }
 int CompressorEffect::is_multichannel() { return 1; }
 
@@ -1363,12 +1363,12 @@ const char* CompressorInput::value_to_text(int value)
 {
        switch(value)
        {
-               case CompressorConfig::TRIGGER: return "Trigger";
-               case CompressorConfig::MAX: return "Maximum";
-               case CompressorConfig::SUM: return "Total";
+               case CompressorConfig::TRIGGER: return _("Trigger");
+               case CompressorConfig::MAX: return _("Maximum");
+               case CompressorConfig::SUM: return _("Total");
        }
 
-       return "Trigger";
+       return _("Trigger");
 }
 
 int CompressorInput::text_to_value(char *text)
index db5ca4e3f4314472c82eda2212ef26e74d0a92f0..105bb0838ac865ac9ed3659d3317b2617d458fc3 100644 (file)
@@ -43,7 +43,7 @@ CrossfadeMain::~CrossfadeMain()
 {
 }
 
-const char* CrossfadeMain::plugin_title() { return N_("Crossfade"); }
+const char* CrossfadeMain::plugin_title() { return _("Crossfade"); }
 int CrossfadeMain::is_transition() { return 1; }
 int CrossfadeMain::uses_gui() { return 0; }
 
index 3f9d6198e42348e1e74e407eda4cf07a0f1e32fd..8702ba5fb080ea5c43cff0a566cd602f62caa98c 100644 (file)
@@ -56,7 +56,7 @@ DCOffset::~DCOffset()
        delete reference;
 }
 
-const char* DCOffset::plugin_title() { return N_("DC Offset"); }
+const char* DCOffset::plugin_title() { return _("DC Offset"); }
 int DCOffset::is_realtime() { return 1; }
 
 
index 0f7bb2029ea6e377ec0e157507bd9dc87410ed33..38946d2841cc1c780c2b2de5541f8ce4ca57b724 100644 (file)
@@ -743,7 +743,7 @@ int Decimate::process_buffer(VFrame *frame,
 
 
 
-const char* Decimate::plugin_title() { return N_("Decimate"); }
+const char* Decimate::plugin_title() { return _("Decimate"); }
 int Decimate::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(Decimate, DecimateWindow)
index 4ff810d10f5a985f4221da048e1b6f7e6abdcde8..c7b77b87dc4664bd6c080df794d307462150a54a 100644 (file)
@@ -69,7 +69,7 @@ DefaultThemeMain::~DefaultThemeMain()
 
 char* DefaultThemeMain::plugin_title()
 {
-       return "Blond";
+       return _("Blond");
 }
 
 Theme* DefaultThemeMain::new_theme()
index aa4e59a97f8022a5cb61bbae0885f1f1aefcb1a1..7c8e05bfe500e0462585ab977c5d1c9f6201beb8 100644 (file)
@@ -94,7 +94,7 @@ DeInterlaceMain::~DeInterlaceMain()
        if(temp_prevframe) delete temp_prevframe;
 }
 
-const char* DeInterlaceMain::plugin_title() { return N_("Deinterlace-CV"); }
+const char* DeInterlaceMain::plugin_title() { return _("Deinterlace-CV"); }
 int DeInterlaceMain::is_realtime() { return 1; }
 
 
index 4cc1919fb3c93eab6da601f198180370f6ce96b3..75b7add3214591b5fcba603d2a98341b5431e2ad 100644 (file)
 
 #include "bcdisplayinfo.h"
 #include "deinterwindow-cv.h"
+#include "language.h"
 #include <string.h>
 
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
-
-
-
-
 
 DeInterlaceWindow::DeInterlaceWindow(DeInterlaceMain *client)
  : PluginClientWindow(client,
@@ -100,7 +92,7 @@ int DeInterlaceWindow::set_mode(int mode, int recursive)
                case DEINTERLACE_AVG_1F: 
                        add_subwindow(dominance_top = new DeInterlaceDominanceTop(client, this, x, y, _("Average top fields")));
                        y+=25;
-                       add_subwindow(dominance_bottom = new DeInterlaceDominanceBottom(client, this, x, y,"Average bottom fields"));
+                       add_subwindow(dominance_bottom = new DeInterlaceDominanceBottom(client, this, x, y,_("Average bottom fields")));
                        y+=25;
                        break;
                case DEINTERLACE_SWAP:
index 86bc9dd86a665ea4215556fabce5746433f17d34..208c2b6f2145bbe326bdbc2c5bd1c4412117b15b 100644 (file)
@@ -92,7 +92,7 @@ DeInterlaceMain::~DeInterlaceMain()
 //     if(temp) delete temp;
 }
 
-const char* DeInterlaceMain::plugin_title() { return N_("Deinterlace"); }
+const char* DeInterlaceMain::plugin_title() { return _("Deinterlace"); }
 int DeInterlaceMain::is_realtime() { return 1; }
 
 
index c164bb00aaf69b615d8455da098b186e47b5bfb6..6c95582cbebb852e9946b2f456401faf7dc4bb28 100644 (file)
@@ -55,7 +55,7 @@ DelayAudio::~DelayAudio()
 
 NEW_WINDOW_MACRO(DelayAudio, DelayAudioWindow)
 
-const char* DelayAudio::plugin_title() { return N_("Delay audio"); }
+const char* DelayAudio::plugin_title() { return _("Delay audio"); }
 int DelayAudio::is_realtime() { return 1; }
 
 
index b3c55b90be47664ab1f345bdf92787b8724cf69b..9489a14076ea81eec25774f58a0bb206122e13e3 100644 (file)
@@ -250,7 +250,7 @@ int DelayVideo::is_realtime()
        return 1;
 }
 
-const char* DelayVideo::plugin_title() { return N_("Delay Video"); }
+const char* DelayVideo::plugin_title() { return _("Delay Video"); }
 
 LOAD_CONFIGURATION_MACRO(DelayVideo, DelayVideoConfig)
 NEW_WINDOW_MACRO(DelayVideo, DelayVideoWindow)
index 384fa8ea62b1d46b26f535491243d1b917d2e1bd..970a4cd925302d573c3408166cb5dac51e9585b1 100644 (file)
@@ -126,7 +126,7 @@ void DenoiseEffect::reset()
        iterations = 1;
 }
 
-const char* DenoiseEffect::plugin_title() { return N_("Denoise"); }
+const char* DenoiseEffect::plugin_title() { return _("Denoise"); }
 int DenoiseEffect::is_realtime() { return 1; }
 
 
index 1d785c4d3045674295c01353bccae7e02b3b5a6c..20e30e6cbc824db1db1593fb42134fd3f9f9973f 100644 (file)
@@ -308,7 +308,7 @@ void DenoiseFFTEffect::reset()
 }
 
 int DenoiseFFTEffect::is_realtime() { return 1; }
-const char* DenoiseFFTEffect::plugin_title() { return N_("DenoiseFFT"); }
+const char* DenoiseFFTEffect::plugin_title() { return _("DenoiseFFT"); }
 
 
 
index 239dc806c16647458ec50452671a8e5354646dc7..1ac4e4af752300096074713b1a0ebf33aa2e6125 100644 (file)
 #include "filexml.h"
 #include "guicast.h"
 #include "keyframe.h"
+#include "language.h"
 #include "vframe.h"
 
 
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
-
-
-
 #include <stdint.h>
 #include <string.h>
 
@@ -451,7 +444,7 @@ int DenoiseMJPEG::process_realtime(VFrame *input, VFrame *output)
        return 0;
 }
 
-const char* DenoiseMJPEG::plugin_title() { return N_("Denoise video2"); }
+const char* DenoiseMJPEG::plugin_title() { return _("Denoise video2"); }
 int DenoiseMJPEG::is_realtime() { return 1; }
 
 void DenoiseMJPEG::update_gui()
index b64d9768548ffd06675e3c846e64f465fc2c4968..fc826c1d308c0f1a7d556442657c12be986ddeba 100644 (file)
@@ -117,7 +117,7 @@ SelTempAvgMain::~SelTempAvgMain()
        if(history_valid) delete [] history_valid;
 }
 
-const char* SelTempAvgMain::plugin_title() { return N_("Selective Temporal Averaging"); }
+const char* SelTempAvgMain::plugin_title() { return _("Selective Temporal Averaging"); }
 int SelTempAvgMain::is_realtime() { return 1; }
 
 
index 4dc8eab4a84c087e9e1a1d5015b342526758e415..a754cdff7897d49c83bc707aef5bfdbb74ff4c5b 100644 (file)
@@ -411,7 +411,7 @@ int DenoiseVideo::process_realtime(VFrame *input, VFrame *output)
 }
 
 
-const char* DenoiseVideo::plugin_title() { return N_("Denoise video"); }
+const char* DenoiseVideo::plugin_title() { return _("Denoise video"); }
 int DenoiseVideo::is_realtime() { return 1; }
 
 
index 432026764e1b29878da4e7b3e369dca4662f4220..3873c66c9f5cf12af10b74b9d78d4933a28e3f5a 100644 (file)
@@ -51,7 +51,7 @@ Despike::~Despike()
        
 }
 
-const char* Despike::plugin_title() { return N_("Despike"); }
+const char* Despike::plugin_title() { return _("Despike"); }
 int Despike::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(Despike, DespikeWindow)
index 6a42af417dc2d55509991f0c992b27ac3a482931..255b7b9c9d59f0f8d462fdf94329c079350a077f 100644 (file)
@@ -326,7 +326,7 @@ DiffKey::~DiffKey()
 NEW_WINDOW_MACRO(DiffKey, DiffKeyGUI)
 LOAD_CONFIGURATION_MACRO(DiffKey, DiffKeyConfig)
 
-const char* DiffKey::plugin_title() { return N_("Difference key"); }
+const char* DiffKey::plugin_title() { return _("Difference key"); }
 int DiffKey::is_realtime() { return 1; }
 int DiffKey::is_multichannel() { return 1; }
 
index d1c729e82eb58d293c6511189d72c063286b6c9f..d264f6cf7091a7863df5032582ed5160faa73697 100644 (file)
@@ -47,7 +47,7 @@ DissolveMain::~DissolveMain()
        delete overlayer;
 }
 
-const char* DissolveMain::plugin_title() { return N_("Dissolve"); }
+const char* DissolveMain::plugin_title() { return _("Dissolve"); }
 int DissolveMain::is_video() { return 1; }
 int DissolveMain::is_transition() { return 1; }
 int DissolveMain::uses_gui() { return 0; }
index 79402d30b9c97ece53ec51f646e7b114d87fba64..64c35e9666a9395fe7a7df5bc4f8c0092fe6d8c4 100644 (file)
@@ -79,7 +79,7 @@ DotMain::~DotMain()
        }
 }
 
-const char* DotMain::plugin_title() { return N_("DotTV"); }
+const char* DotMain::plugin_title() { return _("DotTV"); }
 int DotMain::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(DotMain, DotWindow)
index 78ae9d65491da42ba6d51e847b5aee817d6e28e6..212dc33a192d3575a7984ffb054882ece8839a6c 100644 (file)
@@ -373,7 +373,7 @@ DownSampleMain::~DownSampleMain()
        if(engine) delete engine;
 }
 
-const char* DownSampleMain::plugin_title() { return N_("Downsample"); }
+const char* DownSampleMain::plugin_title() { return _("Downsample"); }
 int DownSampleMain::is_realtime() { return 1; }
 
 
index a75548530988ff787ad0f30ece060da8da73f207..b3def892363f4c723fae5143b01b8c55b8a4af9a 100644 (file)
@@ -207,7 +207,7 @@ void Echo::reset()
        bfr_pos = 0;
 }
 
-const char* Echo::plugin_title() { return N_("Echo"); }
+const char* Echo::plugin_title() { return _("Echo"); }
 int Echo::is_realtime() { return 1; }
 int Echo::is_multichannel() { return 1; }
 
index 3ba06c90ae7789071d59d6351360a2336c9324d1..ce476fca9bee7fa2819a9964ef0f2f0aa2eb60ce 100644 (file)
@@ -158,10 +158,10 @@ int EchoCancelMode::handle_event()
 const char* EchoCancelMode::to_text(int mode)
 {
        switch(mode) {
-       case CANCEL_ON: return "ON";
-       case CANCEL_MAN: return "MAN";
+       case CANCEL_ON: return _("ON");
+       case CANCEL_MAN: return _("MAN");
        }
-       return "OFF";
+       return _("OFF");
 }
 
 int EchoCancelMode::to_mode(const char *text)
@@ -209,7 +209,7 @@ int EchoCancelWindowSize::handle_event()
 
 const char *EchoCancelWindowSize::to_text(int size)
 {
-       if( !size ) return "default";
+       if( !size ) return _("default");
        static char string[BCSTRLEN];
        sprintf(string, "%d", size);
        return string;
@@ -720,7 +720,7 @@ remove(int len)
                sample_data -= len;
 }
 
-const char* EchoCancel::plugin_title() { return N_("EchoCancel"); }
+const char* EchoCancel::plugin_title() { return _("EchoCancel"); }
 int EchoCancel::is_realtime() { return 1; }
 
 static inline double sqr(double v) { return v*v; }
index c9559f500961a29e6df932e61d740987eb57c707..bcb677a0470e099f753692a113284261ab42854e 100644 (file)
@@ -332,7 +332,7 @@ FieldFrame::~FieldFrame()
        if(input) delete input;
 }
 
-const char* FieldFrame::plugin_title() { return N_("Fields to frames"); }
+const char* FieldFrame::plugin_title() { return _("Fields to frames"); }
 int FieldFrame::is_realtime() { return 1; }
 
 
index c4f04871b4a4ac3cb16dd36f8433329d032a2501..9cade6e809a5df0bd5e215f9e36f9ccc637c4c41 100644 (file)
@@ -192,7 +192,7 @@ FindObjectMain::~FindObjectMain()
        
 }
 
-const char* FindObjectMain::plugin_title() { return N_("Find Object"); }
+const char* FindObjectMain::plugin_title() { return _("Find Object"); }
 int FindObjectMain::is_realtime() { return 1; }
 int FindObjectMain::is_multichannel() { return 1; }
 
index 5b2c0ae894d7738dddd79d0e3c7f8972e6789b9d..8bb1a5a72c4b2f402f0f2c985700640bd124d228 100644 (file)
@@ -42,7 +42,7 @@ FlashMain::~FlashMain()
 {
 }
 
-const char* FlashMain::plugin_title() { return N_("Flash"); }
+const char* FlashMain::plugin_title() { return _("Flash"); }
 int FlashMain::is_video() { return 1; }
 int FlashMain::is_transition() { return 1; }
 int FlashMain::uses_gui() { return 0; }
index 8c1b070eba05336863ab735f484b0e51570d5be4..74e0c4bcf7bcec9d4b364156b56dcfba06e087e0 100644 (file)
@@ -85,7 +85,7 @@ FlipMain::~FlipMain()
        
 }
 
-const char* FlipMain::plugin_title() { return N_("Flip"); }
+const char* FlipMain::plugin_title() { return _("Flip"); }
 int FlipMain::is_realtime() { return 1; }
        
 
index 536e4db3564a47ddcdc79901e458e31418f5e06e..fb98f10f82e3eb5a54b1abf653990055542bb79f 100644 (file)
@@ -563,7 +563,7 @@ void FrameField::average_rows(int offset, VFrame *frame)
 
 
 
-const char* FrameField::plugin_title() { return N_("Frames to fields"); }
+const char* FrameField::plugin_title() { return _("Frames to fields"); }
 int FrameField::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(FrameField, FrameFieldWindow)
@@ -705,8 +705,8 @@ int FrameField::handle_opengl()
 // Store aggregation state only when reading a frame
 //printf("FrameField::handle_opengl %p\n", get_output());
 //get_output()->dump_stacks();
-               if(prev_effect_is("RGB - 601") ||
-                       next_effect_is("RGB - 601"))
+               if(prev_effect_is(_("RGB - 601")) ||
+                       next_effect_is(_("RGB - 601")))
                {
                        aggregate_rgb601 = 1;
                        rgb601_direction = get_output()->get_params()->get("RGB601_DIRECTION", 0);
index b1dd798399495eaf55a2e952709700c46ee54090..291497db5b57416d0dbe655c53fb23acee6035ce 100644 (file)
@@ -456,7 +456,7 @@ FreeverbEffect::~FreeverbEffect()
 NEW_WINDOW_MACRO(FreeverbEffect, FreeverbWindow)
 
 
-const char* FreeverbEffect::plugin_title() { return N_("Freeverb"); }
+const char* FreeverbEffect::plugin_title() { return _("Freeverb"); }
 int FreeverbEffect::is_realtime() { return 1; }
 int FreeverbEffect::is_multichannel() { return 1; }
 
index f3ada52aab2011fe3d7e07fd1e4d7a65ef278412..77893908af9c8381128f2d1bc16bf334f3ddfbca 100644 (file)
@@ -160,7 +160,7 @@ FreezeFrameMain::~FreezeFrameMain()
        if(first_frame) delete first_frame;
 }
 
-const char* FreezeFrameMain::plugin_title() { return N_("Freeze Frame"); }
+const char* FreezeFrameMain::plugin_title() { return _("Freeze Frame"); }
 int FreezeFrameMain::is_synthesis() { return 1; }
 int FreezeFrameMain::is_realtime() { return 1; }
 
index 5a52d78675d39b375a16ac90346109264e562c67..0eda4bdd72f3210d51ca8957208a8e268cde2341 100644 (file)
@@ -82,7 +82,7 @@ Gain::~Gain()
        
 }
 
-const char* Gain::plugin_title() { return N_("Gain"); }
+const char* Gain::plugin_title() { return _("Gain"); }
 int Gain::is_realtime() { return 1; }
 
 
index c3725c99d3d73920ddf22378463cf7619c29c04b..7e029f7ff8aceaa1042ba4eaa42914c39be7180b 100644 (file)
@@ -395,7 +395,7 @@ GammaMain::~GammaMain()
        delete engine;
 }
 
-const char* GammaMain::plugin_title() { return N_("Gamma"); }
+const char* GammaMain::plugin_title() { return _("Gamma"); }
 int GammaMain::is_realtime() { return 1; }
 
 
@@ -432,9 +432,9 @@ int GammaMain::process_buffer(VFrame *frame,
        if(use_opengl)
        {
 // Aggregate
-               if(next_effect_is("Histogram"))
+               if(next_effect_is(_("Histogram")))
                        return 0;
-               if(next_effect_is("Color Balance"))
+               if(next_effect_is(_("Color Balance")))
                        return 0;
 
        
@@ -574,7 +574,7 @@ int GammaMain::handle_opengl()
 
 // Aggregate with interpolate
        int aggregate = 0;
-       if(prev_effect_is("Interpolate Pixels"))
+       if(prev_effect_is(_("Interpolate Pixels")))
        {
                aggregate = 1;
                INTERPOLATE_COMPILE(shader_stack, current_shader)
index 3b77c384b54649d6e6e78864fc922b3df3e63896..247458eb420bcf66e440889394611e48b0a73988 100644 (file)
@@ -628,7 +628,7 @@ GradientMain::~GradientMain()
        if(overlayer) delete overlayer;
 }
 
-const char* GradientMain::plugin_title() { return N_("Gradient"); }
+const char* GradientMain::plugin_title() { return _("Gradient"); }
 int GradientMain::is_realtime() { return 1; }
 
 
index 84492e3865f4ca97f01acd311a1bc674836f234f..36d94ed39cb56285a8aa11de2585112004297dee 100644 (file)
@@ -800,12 +800,12 @@ void GraphicGUI::create_objects()
 
 //     int x1 = x;
 //     int y1 = y;
-       add_subwindow(freq_title = new BC_Title(x, y, "Frequency:"));
+       add_subwindow(freq_title = new BC_Title(x, y, _("Frequency:")));
        x += freq_title->get_w() + margin;
        add_subwindow(freq_text = new FreqTextBox(plugin, this, x, y, 100));
        x += freq_text->get_w() + margin;
 
-       add_subwindow(level_title = new BC_Title(x, y, "Level:"));
+       add_subwindow(level_title = new BC_Title(x, y, _("Level:")));
        x += level_title->get_w() + margin;
        add_subwindow(value_text = new ValueTextBox(plugin, this, x, y, 100));
        x += value_text->get_w() + margin;
@@ -817,7 +817,7 @@ void GraphicGUI::create_objects()
 //     x = x1;
 //     y += value_text->get_h() + margin;
 
-       add_subwindow(size_title = new BC_Title(x, y, "Window size:"));
+       add_subwindow(size_title = new BC_Title(x, y, _("Window size:")));
        x += size_title->get_w() + margin;
        add_subwindow(size = new GraphicSize(this, plugin, x, y));
        size->create_objects();
@@ -1045,7 +1045,7 @@ GraphicEQ::~GraphicEQ()
 
 int GraphicEQ::is_realtime() { return 1; }
 
-const char* GraphicEQ::plugin_title() { return N_("EQ Graphic"); }
+const char* GraphicEQ::plugin_title() { return _("EQ Graphic"); }
 
 NEW_WINDOW_MACRO(GraphicEQ, GraphicGUI)
 
index c2029ca34f5e390cbcc722c4ebb30d6099131c1d..6b65ac72ee0d561726e69f44c3ba0df10a786bd1 100644 (file)
@@ -93,7 +93,7 @@ GreyCStorationMain::~GreyCStorationMain()
        delete [] alpha;
 }
 
-const char* GreyCStorationMain::plugin_title() { return N_("GreyCStoration"); }
+const char* GreyCStorationMain::plugin_title() { return _("GreyCStoration"); }
 int GreyCStorationMain::is_realtime() { return 1; }
 
 
index 8b52f0388c609d7635c1d42f3752a93c299e842e..fad9565fd6570d95afaff8750001d93eb62f0f3a 100644 (file)
@@ -23,9 +23,6 @@
 #include "greycstorationwindow.h"
 
 #include "language.h"
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
 
 
 // configuration window
index 701214c29333e18a65bd5895a2100ed490b511e6..fae3b8b8859e5c987e655b5cddcfac30ad934cd3 100644 (file)
@@ -96,7 +96,7 @@ HistogramMain::~HistogramMain()
        delete engine;
 }
 
-const char* HistogramMain::plugin_title() { return N_("Histogram"); }
+const char* HistogramMain::plugin_title() { return _("Histogram"); }
 int HistogramMain::is_realtime() { return 1; }
 
 
@@ -636,43 +636,43 @@ int HistogramMain::handle_opengl()
        int aggregate_colorbalance = 0;
 // All aggregation possibilities must be accounted for because unsupported
 // effects can get in between the aggregation members.
-       if(!strcmp(get_output()->get_prev_effect(2), "Interpolate Pixels") &&
-               !strcmp(get_output()->get_prev_effect(1), "Gamma") &&
-               !strcmp(get_output()->get_prev_effect(0), "Color Balance"))
+       if(!strcmp(get_output()->get_prev_effect(2), _("Interpolate Pixels")) &&
+               !strcmp(get_output()->get_prev_effect(1), _("Gamma")) &&
+               !strcmp(get_output()->get_prev_effect(0), _("Color Balance")))
        {
                aggregate_interpolation = 1;
                aggregate_gamma = 1;
                aggregate_colorbalance = 1;
        }
        else
-       if(!strcmp(get_output()->get_prev_effect(1), "Gamma") &&
-               !strcmp(get_output()->get_prev_effect(0), "Color Balance"))
+       if(!strcmp(get_output()->get_prev_effect(1), _("Gamma")) &&
+               !strcmp(get_output()->get_prev_effect(0), _("Color Balance")))
        {
                aggregate_gamma = 1;
                aggregate_colorbalance = 1;
        }
        else
-       if(!strcmp(get_output()->get_prev_effect(1), "Interpolate Pixels") &&
-               !strcmp(get_output()->get_prev_effect(0), "Gamma"))
+       if(!strcmp(get_output()->get_prev_effect(1), _("Interpolate Pixels")) &&
+               !strcmp(get_output()->get_prev_effect(0), _("Gamma")))
        {
                aggregate_interpolation = 1;
                aggregate_gamma = 1;
        }
        else
-       if(!strcmp(get_output()->get_prev_effect(1), "Interpolate Pixels") &&
-               !strcmp(get_output()->get_prev_effect(0), "Color Balance"))
+       if(!strcmp(get_output()->get_prev_effect(1), _("Interpolate Pixels")) &&
+               !strcmp(get_output()->get_prev_effect(0), _("Color Balance")))
        {
                aggregate_interpolation = 1;
                aggregate_colorbalance = 1;
        }
        else
-       if(!strcmp(get_output()->get_prev_effect(0), "Interpolate Pixels"))
+       if(!strcmp(get_output()->get_prev_effect(0), _("Interpolate Pixels")))
                aggregate_interpolation = 1;
        else
-       if(!strcmp(get_output()->get_prev_effect(0), "Gamma"))
+       if(!strcmp(get_output()->get_prev_effect(0), _("Gamma")))
                aggregate_gamma = 1;
        else
-       if(!strcmp(get_output()->get_prev_effect(0), "Color Balance"))
+       if(!strcmp(get_output()->get_prev_effect(0), _("Color Balance")))
                aggregate_colorbalance = 1;
 
 
index ab3ba059fd3303ed9526375328698f8b70fb2395..d1dd53b997057a6d1b25901ee7bcaf1488ba263c 100644 (file)
@@ -588,9 +588,9 @@ HistogramParade::HistogramParade(HistogramMain *plugin,
        this->gui = gui;
        this->value = value;
        if(value)
-               set_tooltip("RGB Parade on");
+               set_tooltip(_("RGB Parade on"));
        else
-               set_tooltip("RGB Parade off");
+               set_tooltip(_("RGB Parade off"));
 }
 
 int HistogramParade::handle_event()
index 2324ab6e290049acc5bb1cdbd2abccfec5a194d0..72af090b25aebbd67a21575307c3adb58e9c49ef 100644 (file)
@@ -96,7 +96,7 @@ HistogramMain::~HistogramMain()
        delete engine;
 }
 
-char* HistogramMain::plugin_title() { return N_("Histogram"); }
+char* HistogramMain::plugin_title() { return _("Histogram"); }
 int HistogramMain::is_realtime() { return 1; }
 
 
index a756b664f71c3f9144155d19b10745afab16e0ab..7c46cc2fe2181343001da20947e051420e866e66 100644 (file)
@@ -80,7 +80,7 @@ HoloMain::~HoloMain()
        delete yuv;
 }
 
-const char* HoloMain::plugin_title() { return N_("HolographicTV"); }
+const char* HoloMain::plugin_title() { return _("HolographicTV"); }
 int HoloMain::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(HoloMain, HoloWindow)
index 3030945d63794d1e18a84b4f66d29bc5734a6651..c2e0d620bfa8cbdc5c1e4bc737e7cba466817862 100644 (file)
@@ -48,9 +48,9 @@ void HoloWindow::create_objects()
 {
        int x = 10, y = 10;
        add_subwindow(new BC_Title(x, y, 
-               _("HolographicTV from EffectTV\n"
+               "HolographicTV from EffectTV\n"
                "Copyright (C) 2001 FUKUCHI Kentarou")
-       ));
+       );
 
        show_window();
        flush();
index b4977e0b96c6bc591c9e81b4574535c73d5162cb..be5fadefb5024578cc699e48e613aa4ca1542d1a 100644 (file)
@@ -573,7 +573,7 @@ int HueEffect::process_buffer(VFrame *frame,
        return 0;
 }
 
-const char* HueEffect::plugin_title() { return N_("Hue saturation"); }
+const char* HueEffect::plugin_title() { return _("Hue saturation"); }
 int HueEffect::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(HueEffect, HueWindow)
index 98b4b2dcdcd6a3b3508845bebf4f4e9839ef93f2..0b1bce1f3d83bd876c1e43cb48d4a8214b327a7e 100644 (file)
@@ -167,7 +167,7 @@ InterpolatePixelsMain::~InterpolatePixelsMain()
        delete engine;
 }
 
-const char* InterpolatePixelsMain::plugin_title() { return N_("Interpolate Pixels"); }
+const char* InterpolatePixelsMain::plugin_title() { return _("Interpolate Pixels"); }
 int InterpolatePixelsMain::is_realtime() { return 1; }
 
 
@@ -251,9 +251,9 @@ int InterpolatePixelsMain::process_buffer(VFrame *frame,
        if(get_use_opengl())
        {
 // Aggregate with gamma
-               if(next_effect_is("Gamma") ||
-                       next_effect_is("Histogram") ||
-                       next_effect_is("Color Balance"))
+               if(next_effect_is(_("Gamma")) ||
+                       next_effect_is(_("Histogram")) ||
+                       next_effect_is(_("Color Balance")))
                        return 0;
 
 
index 2846d410e832adca586e2cff59161469591d9127..331597dd676c732feb8823d57230c959dff1b179 100644 (file)
@@ -94,7 +94,7 @@ InterpolateAllEffect::~InterpolateAllEffect()
 
 
 
-char* InterpolateAllEffect::plugin_title() { return N_("Interpolate"); }
+char* InterpolateAllEffect::plugin_title() { return _("Interpolate"); }
 int InterpolateAllEffect::is_realtime() { return 0; }
 int InterpolateAllEffect::is_multichannel() { return 0; }
 
index 90440868b88f93f736392f416ad214b0961220c6..98ac413e336fec903b510ac6393ba564a9bea645 100644 (file)
@@ -95,7 +95,7 @@ InterpolateAudioEffect::~InterpolateAudioEffect()
 
 const char* InterpolateAudioEffect::plugin_title()
 {
-       return N_("Interpolate");
+       return _("Interpolate");
 }
 
 
index 28b2f240b97049528596cc78ddd6bbbcc19bdace..c00d26c7c18e0c72f071f2b91b01ba95d2b0406c 100644 (file)
@@ -851,7 +851,7 @@ int InterpolateVideo::is_realtime()
 }
 
 NEW_WINDOW_MACRO(InterpolateVideo, InterpolateVideoWindow)
-const char* InterpolateVideo::plugin_title() { return N_("Interpolate Video"); }
+const char* InterpolateVideo::plugin_title() { return _("Interpolate Video"); }
 
 int InterpolateVideo::load_configuration()
 {
index 33f548751dc8735451cca544e2a752bacb6eca8d..9429584569aa43e385d94237d37b9960624c7a49 100644 (file)
@@ -38,7 +38,7 @@ public:
 
        const char* plugin_title()
        {
-               return  N_("Invert Audio");
+               return  _("Invert Audio");
        };
        int is_realtime()
        {
index dd24b9e197000eba64f49ea289780e59700aac04..f17000dae57b0fff9b97eb841a3eb21b5b88c440 100644 (file)
@@ -201,7 +201,7 @@ InvertVideoEffect::~InvertVideoEffect()
        
 }
 
-const char* InvertVideoEffect::plugin_title() { return N_("Invert Video"); }
+const char* InvertVideoEffect::plugin_title() { return _("Invert Video"); }
 int InvertVideoEffect::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(InvertVideoEffect, InvertVideoWindow)
index 417829b68c691b4fe780cfe561a72079e5b380d7..c7c0911c017641dd7a5af18a6e6eb021e4a3bac7 100644 (file)
@@ -141,7 +141,7 @@ IrisSquareMain::~IrisSquareMain()
        
 }
 
-const char* IrisSquareMain::plugin_title() { return N_("IrisSquare"); }
+const char* IrisSquareMain::plugin_title() { return _("IrisSquare"); }
 int IrisSquareMain::is_video() { return 1; }
 int IrisSquareMain::is_transition() { return 1; }
 int IrisSquareMain::uses_gui() { return 1; }
index f94cb1cbc0b5ce42d88750d87cf26762f594dab8..3600388ebd40ef961fef81bfddf2895e56ce8dcf 100644 (file)
@@ -73,7 +73,7 @@ IVTCMain::~IVTCMain()
        }
 }
 
-const char* IVTCMain::plugin_title() { return N_("Inverse Telecine"); }
+const char* IVTCMain::plugin_title() { return _("Inverse Telecine"); }
 int IVTCMain::is_realtime() { return 1; }
 
 
index 3e37922055246647892de61284c062b70ec6075a..209884a797aba0a37cff6ecd5306723a3288d909 100644 (file)
@@ -694,7 +694,7 @@ LensMain::~LensMain()
 NEW_WINDOW_MACRO(LensMain, LensGUI)
 LOAD_CONFIGURATION_MACRO(LensMain, LensConfig)
 int LensMain::is_realtime() { return 1; }
-const char* LensMain::plugin_title() { return N_("Lens"); }
+const char* LensMain::plugin_title() { return _("Lens"); }
 
 void LensMain::update_gui()
 {
index 6bf57aa634c7207508a94f3648d0494ec767ec32..5c7e28c4e766bbbd46d64f67822c9bacff9eeb13 100644 (file)
@@ -193,7 +193,7 @@ void SoundLevelEffect::reset()
        accum_size = 0;
 }
 
-const char* SoundLevelEffect::plugin_title() { return N_("SoundLevel"); }
+const char* SoundLevelEffect::plugin_title() { return _("SoundLevel"); }
 int SoundLevelEffect::is_realtime() { return 1; }
 
 
index 67eeca3c1a40e09c9b23b198395f70ae723aab53..53c90be5c40b4950dc3467ec7861b5940daab963 100644 (file)
@@ -388,7 +388,7 @@ LinearBlurMain::~LinearBlurMain()
        if(temp) delete temp;
 }
 
-const char* LinearBlurMain::plugin_title() { return N_("Linear Blur"); }
+const char* LinearBlurMain::plugin_title() { return _("Linear Blur"); }
 int LinearBlurMain::is_realtime() { return 1; }
 
 
index 66ac6b9bfedd60eca9f06a2a96fd5017fca521f1..7842a9177491b7b45ed4b02f88344e6b00ab90ed 100644 (file)
@@ -145,7 +145,7 @@ void LiveAudioWindow::create_objects()
        int x = 10, y = 10;
 
        BC_Title *title;
-       add_subwindow(title = new BC_Title(x, y, "Live audio"));
+       add_subwindow(title = new BC_Title(x, y, _("Live audio")));
        show_window();
        flush();
 }
@@ -374,7 +374,7 @@ void LiveAudio::render_stop()
 }
 
 
-const char* LiveAudio::plugin_title() { return N_("Live Audio"); }
+const char* LiveAudio::plugin_title() { return _("Live Audio"); }
 int LiveAudio::is_realtime() { return 1; }
 int LiveAudio::is_multichannel() { return 1; }
 int LiveAudio::is_synthesis() { return 1; }
index b699824f35625ca0047b4712a88602a35f85be34..23b63d506fbb62ed4e0e8aa6a18ece3df508342b 100644 (file)
@@ -578,7 +578,7 @@ void LiveVideo::render_stop()
 }
 
 
-const char* LiveVideo::plugin_title() { return N_("Live Video"); }
+const char* LiveVideo::plugin_title() { return _("Live Video"); }
 int LiveVideo::is_realtime() { return 1; }
 int LiveVideo::is_multichannel() { return 0; }
 int LiveVideo::is_synthesis() { return 1; }
index 0c06c33d155592f67e4cd000c0fc0dcf9275a9a1..517dcbd9341237136b363a7cfddaff4e21a87857 100644 (file)
@@ -178,7 +178,7 @@ LoopAudio::~LoopAudio()
        
 }
 
-const char* LoopAudio::plugin_title() { return N_("Loop audio"); }
+const char* LoopAudio::plugin_title() { return _("Loop audio"); }
 int LoopAudio::is_realtime() { return 1; } 
 int LoopAudio::is_synthesis() { return 1; }
 
index 29aee0b9aa76495303845e3c87219508ca9fdd71..65d030e2c5cef4a0cd14df79de40d3376a326cd0 100644 (file)
@@ -176,7 +176,7 @@ LoopVideo::~LoopVideo()
        
 }
 
-const char* LoopVideo::plugin_title() { return N_("Loop video"); }
+const char* LoopVideo::plugin_title() { return _("Loop video"); }
 int LoopVideo::is_realtime() { return 1; }
 int LoopVideo::is_synthesis() { return 1; }
 
index a35b18c08adb1ea24010e0edf3398cae0c02f2ae..eb435c40e473958e0fb3db4f0b44f2b050c1dd36 100644 (file)
@@ -51,7 +51,7 @@ MicroThemeMain::~MicroThemeMain()
 
 char* MicroThemeMain::plugin_title() 
 {
-       return "Microscopic"
+       return _("Microscopic")
 }
 
 Theme* MicroThemeMain::new_theme()
index 8a2c6360b004fa241e402f2f4bf8a0415a58f214..5fac22c141b1df59b176b9a0f847489d8bf7ea91 100644 (file)
@@ -257,7 +257,7 @@ MotionMain::~MotionMain()
        delete rotate_target_dst;
 }
 
-const char* MotionMain::plugin_title() { return N_("Motion"); }
+const char* MotionMain::plugin_title() { return _("Motion"); }
 int MotionMain::is_realtime() { return 1; }
 int MotionMain::is_multichannel() { return 1; }
 
index 80fd43b7f4f048b4b69dc672d1608d75e8b5c292..207fd547c04cd7a58dd0dd3a9b9f7696a955c1e6 100644 (file)
@@ -263,7 +263,7 @@ MotionMain::~MotionMain()
        delete rotate_target_dst;
 }
 
-const char* MotionMain::plugin_title() { return N_("Motion"); }
+const char* MotionMain::plugin_title() { return _("Motion"); }
 int MotionMain::is_realtime() { return 1; }
 int MotionMain::is_multichannel() { return 1; }
 
index 22a63daedc1d419aa8cf97c78efd9bd9aa397bcf..285c5d50753fa379df6ed132a2d2ae32dfa87e90 100644 (file)
@@ -243,7 +243,7 @@ MotionMain2::~MotionMain2()
        delete global_target_dst;
 }
 
-const char* MotionMain2::plugin_title() { return N_("Motion 2 Point"); }
+const char* MotionMain2::plugin_title() { return _("Motion 2 Point"); }
 int MotionMain2::is_realtime() { return 1; }
 int MotionMain2::is_multichannel() { return 1; }
 
index c5e1ac2c9bf29e58ba2a9d258b7a1152e3575f1d..a222808189e7fd3c30862a332ecdfc68d0ec1ffc 100644 (file)
@@ -312,7 +312,7 @@ MotionBlurMain::~MotionBlurMain()
        if(temp) delete temp;
 }
 
-const char* MotionBlurMain::plugin_title() { return N_("Motion Blur"); }
+const char* MotionBlurMain::plugin_title() { return _("Motion Blur"); }
 int MotionBlurMain::is_realtime() { return 1; }
 
 
index f90908d8f3e953248f0ab7ccbb2121f31e7b798d..aa198ed919b425f20b6ad1dff16ae954536cf362 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "bcdisplayinfo.h"
 #include "bchash.h"
+#include "language.h"
 #include "mainprogress.h"
 #include "normalize.h"
 #include "normalizewindow.h"
 #include <stdio.h>
 #include <string.h>
 
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
 
 REGISTER_PLUGIN(NormalizeMain)
 
@@ -52,7 +49,7 @@ NormalizeMain::~NormalizeMain()
 {
 }
 
-const char* NormalizeMain::plugin_title() { return N_("Normalize"); }
+const char* NormalizeMain::plugin_title() { return _("Normalize"); }
 int NormalizeMain::is_realtime() { return 0; }
 int NormalizeMain::is_multichannel() { return 1; }
 
index 3a9f0d279853995a000168c126307b579fda4830..2bdb20cab9ee15e102175f7202f62c0a4ad15b28 100644 (file)
  *
  */
 
+#include "language.h"
 #include "mwindow.inc"
 #include "normalizewindow.h"
 
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
 NormalizeWindow::NormalizeWindow(int x, int y)
- : BC_Window(PROGRAM_NAME ": Normalize",
+ : BC_Window(_(PROGRAM_NAME ": Normalize"),
                                x - 160,
                                y - 75,
                                320,
index c35a0ea333f0511b0c7ec2b28b33b518e81ae681..36ac15dfd7f4bfd26cc5202897b8dcabdd5f546a 100644 (file)
@@ -306,7 +306,7 @@ OilEffect::~OilEffect()
 }
 
 
-const char* OilEffect::plugin_title() { return N_("Oil painting"); }
+const char* OilEffect::plugin_title() { return _("Oil painting"); }
 int OilEffect::is_realtime() { return 1; }
 
 
index bc0ba4ed9c8dae5a9b219549a4616e18d66a92ae..3c202afae0f2d9e10766308438e6e859b140d719 100644 (file)
  * 
  */
 
+#include "language.h"
 #include "oilwindow.h"
 
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
-
 OilThread::OilThread(OilMain *client)
  : Thread()
 {
index 413277160b116a56691309531a0c025e78c40ac6..c43ce53b7dbd2f3c8d6ede9e514e86b727f6654a 100644 (file)
@@ -175,39 +175,39 @@ const char* OverlayConfig::mode_to_text(int mode)
        switch(mode)
        {
                case TRANSFER_NORMAL:
-                       return "Normal";
+                       return _("Normal");
                        break;
 
                case TRANSFER_REPLACE:
-                       return "Replace";
+                       return _("Replace");
                        break;
 
                case TRANSFER_ADDITION:
-                       return "Addition";
+                       return _("Addition");
                        break;
 
                case TRANSFER_SUBTRACT:
-                       return "Subtract";
+                       return _("Subtract");
                        break;
 
                case TRANSFER_MULTIPLY:
-                       return "Multiply";
+                       return _("Multiply");
                        break;
 
                case TRANSFER_DIVIDE:
-                       return "Divide";
+                       return _("Divide");
                        break;
 
                case TRANSFER_MAX:
-                       return "Max";
+                       return _("Max");
                        break;
 
                case TRANSFER_MIN:
-                       return "Min";
+                       return _("Min");
                        break;
 
                default:
-                       return "Normal";
+                       return _("Normal");
                        break;
        }
        return "";
@@ -722,7 +722,7 @@ int Overlay::handle_opengl()
 }
 
 
-const char* Overlay::plugin_title() { return N_("Overlay"); }
+const char* Overlay::plugin_title() { return _("Overlay"); }
 int Overlay::is_realtime() { return 1; }
 int Overlay::is_multichannel() { return 1; }
 int Overlay::is_synthesis() { return 1; }
index 4f1b28531cbe2c92e886269b9468dcb411072b01..21a98450b48e9d750f805270b54ab959aa9c238a 100644 (file)
@@ -199,14 +199,14 @@ void OverlayAudioWindow::create_objects()
        int x = 10, y = 10;
        int x1 = x;
        BC_Title *title;
-       add_subwindow(title = new BC_Title(x, y, "Output track:"));
+       add_subwindow(title = new BC_Title(x, y, _("Output track:")));
        x += title->get_w() + plugin->get_theme()->widget_border;
        add_subwindow(output = new OutputTrack(plugin, x, y));
        output->create_objects();
 
        y += output->get_h() + plugin->get_theme()->widget_border;
        x = x1;
-       add_subwindow(title = new BC_Title(x, y, "Mode:"));
+       add_subwindow(title = new BC_Title(x, y, _("Mode:")));
        x += title->get_w() + plugin->get_theme()->widget_border;
        add_subwindow(mode = new OverlayMode(plugin, x, y));
        mode->create_objects();
@@ -328,7 +328,7 @@ OverlayAudio::~OverlayAudio()
        
 }
 
-const char* OverlayAudio::plugin_title() { return N_("Overlay"); }
+const char* OverlayAudio::plugin_title() { return _("Overlay"); }
 int OverlayAudio::is_realtime() { return 1; }
 int OverlayAudio::is_multichannel() { return 1; }
 
index 6e49cca025380374904204a6e6ac264a66c2b53e..ec93ffce8768d2efaf0e640aa4997945ffa16d9e 100644 (file)
@@ -816,7 +816,7 @@ NEW_WINDOW_MACRO(ParametricEQ, ParametricWindow)
 LOAD_CONFIGURATION_MACRO(ParametricEQ, ParametricConfig)
 
 
-const char* ParametricEQ::plugin_title() { return N_("EQ Parametric"); }
+const char* ParametricEQ::plugin_title() { return _("EQ Parametric"); }
 int ParametricEQ::is_realtime() { return 1; }
 
 void ParametricEQ::read_data(KeyFrame *keyframe)
index 57697dc6eef56cd375535eedfb90c2793aa422ff..c2eb184ae2ca00b9653fc0c966089ca3bdf03187 100644 (file)
@@ -617,7 +617,7 @@ PerspectiveMain::~PerspectiveMain()
        if(temp) delete temp;
 }
 
-const char* PerspectiveMain::plugin_title() { return N_("Perspective"); }
+const char* PerspectiveMain::plugin_title() { return _("Perspective"); }
 int PerspectiveMain::is_realtime() { return 1; }
 
 
index e4e666afa332faeb92a3e0dc6639d892432fde8c..71639577061eda5f5c02b6f42de68a6a8a366c82 100644 (file)
@@ -195,7 +195,7 @@ PhotoScaleSwapExtents::PhotoScaleSwapExtents(PhotoScaleMain *plugin,
 {
        this->plugin = plugin;
        this->gui = gui;
-       set_tooltip("Swap dimensions");
+       set_tooltip(_("Swap dimensions"));
 }
 
 int PhotoScaleSwapExtents::handle_event()
@@ -288,7 +288,7 @@ PhotoScaleMain::~PhotoScaleMain()
        if(engine) delete engine;
 }
 
-const char* PhotoScaleMain::plugin_title() { return N_("Auto Scale"); }
+const char* PhotoScaleMain::plugin_title() { return _("Auto Scale"); }
 int PhotoScaleMain::is_realtime() { return 1; }
 
 
index dadd00df100a1592e001f8edf8ab4f860dfc0099..033b91b2e4aae247b0ecdeb2ac75b59289860edc 100644 (file)
@@ -51,7 +51,7 @@ Piano::~Piano()
 }
 
 
-char* Piano::plugin_title() { return N_("Pianoesizer"); }
+char* Piano::plugin_title() { return _("Pianoesizer"); }
 int Piano::is_realtime() { return 1; }
 int Piano::is_synthesis() { return 1; }
 
index 894713bebe52fa71f289a9d840cdd39aa7ba431c..d49f4e148c6d70a01a46d5385b7581cc4856b041 100644 (file)
@@ -60,7 +60,7 @@ PitchEffect::~PitchEffect()
        if(fft) delete fft;
 }
 
-const char* PitchEffect::plugin_title() { return N_("Pitch shift"); }
+const char* PitchEffect::plugin_title() { return _("Pitch shift"); }
 int PitchEffect::is_realtime() { return 1; }
 
 
index f246056a89752d0932335043f37ad9d7a1ce6f9a..0b9647406f62e05c9ada243cdfa720aa740d8bcd 100644 (file)
@@ -282,7 +282,7 @@ PolarEffect::~PolarEffect()
 
 
 
-const char* PolarEffect::plugin_title() { return N_("Polar"); }
+const char* PolarEffect::plugin_title() { return _("Polar"); }
 int PolarEffect::is_realtime() { return 1; }
 
 
index 0d19b93addf3e446ca68c1e33ea5333ba5677385..a423b0663a9fcb39e3fd1c89a34d60e5c882b52b 100644 (file)
  * 
  */
 
+#include "language.h"
 #include "polarwindow.h"
 
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
 
 PLUGIN_THREAD_OBJECT(PolarMain, PolarThread, PolarWindow)
 
index 61c37b1ad1965d74c136977f9ac2d6e7ab61a01d..d76921e3e8bd3c807fa9f314caaf2ce8a2bc835c 100644 (file)
 
 #include "colormodels.h"
 #include "filexml.h"
+#include "language.h"
 #include "sharpen.h"
 #include "sharpenwindow.h"
 
 #include <stdio.h>
 #include <string.h>
 
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
 
 PluginClient* new_plugin(PluginServer *server)
 {
@@ -56,7 +53,7 @@ SharpenMain::~SharpenMain()
 
 }
 
-char* SharpenMain::plugin_title() { return N_("Quark"); }
+char* SharpenMain::plugin_title() { return _("Quark"); }
 int SharpenMain::is_realtime() { return 1; }
 
 int SharpenMain::start_realtime()
index d7e62aa3727ac32ede99154cc3dd7f2d3d973585..8261a798dbb3176f347f87e97f9856d56ae70250 100644 (file)
  */
 
 #include "bcdisplayinfo.h"
+#include "language.h"
 #include "sharpenwindow.h"
 
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
 
 SharpenThread::SharpenThread(SharpenMain *client)
  : Thread()
index 1b11956e9fc8e8a95fbe3b0685d5d52e7f0f2435..04339ca89e31ef16e04969d4cc5dc7a2c62a1487 100644 (file)
@@ -380,7 +380,7 @@ RadialBlurMain::~RadialBlurMain()
        delete rotate;
 }
 
-const char* RadialBlurMain::plugin_title() { return N_("Radial Blur"); }
+const char* RadialBlurMain::plugin_title() { return _("Radial Blur"); }
 int RadialBlurMain::is_realtime() { return 1; }
 
 
index 2f9ae45fdd49f89e57d43fcad28edf1da2451bcc..621c59a4005e8f5a91f6a2a02633a742127c5740 100644 (file)
@@ -50,7 +50,7 @@ ReFrame::~ReFrame()
 {
 }
 
-const char* ReFrame::plugin_title() { return N_("Reframe"); }
+const char* ReFrame::plugin_title() { return _("Reframe"); }
 
 
 
index 5caa7ad6019c7627d4c6d1e13ea64f5cde0b75ae..881b121de1efa4db6ff5b58f19ad1df76aab4b86 100644 (file)
@@ -338,7 +338,7 @@ ReframeRT::~ReframeRT()
 
 }
 
-const char* ReframeRT::plugin_title() { return N_("ReframeRT"); }
+const char* ReframeRT::plugin_title() { return _("ReframeRT"); }
 int ReframeRT::is_realtime() { return 1; }
 int ReframeRT::is_synthesis() { return 1; }
 
index b58b72668202a4dd1a2b8e80dede55b9bd6c1f0e..a0538097cfd568b698606573f4af674ea4b38346 100644 (file)
@@ -102,14 +102,14 @@ void RemoveGapsWindow::create_objects()
        int x = 10, y = 10;
        BC_Title *title;
        
-       add_subwindow(title = new BC_Title(x, y, "Threshold of gap (DB):"));
+       add_subwindow(title = new BC_Title(x, y, _("Threshold of gap (DB):")));
        
        add_subwindow(threshold = new RemoveGapsThreshold(this,
                plugin, 
                x + title->get_w() + plugin->get_theme()->widget_border, 
                y));
        y += threshold->get_h() + plugin->get_theme()->widget_border;
-       add_subwindow(title = new BC_Title(x, y, "Max duration of gap (Seconds):"));
+       add_subwindow(title = new BC_Title(x, y, _("Max duration of gap (Seconds):")));
        add_subwindow(duration = new RemoveGapsDuration(this,
                plugin, 
                x + title->get_w() + plugin->get_theme()->widget_border, 
@@ -194,7 +194,7 @@ RemoveGaps::~RemoveGaps()
        delete temp;
 }
 
-const char* RemoveGaps::plugin_title() { return N_("Remove Gaps"); }
+const char* RemoveGaps::plugin_title() { return _("Remove Gaps"); }
 int RemoveGaps::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(RemoveGaps, RemoveGapsWindow)
index 20eb2e47e9528a51a2825bc094d331dd05627b52..257284e88b2aa17837f20852afa272000628a1a8 100644 (file)
@@ -467,7 +467,7 @@ int Reroute::process_buffer(VFrame **frame,
 
 
 
-const char* Reroute::plugin_title() { return N_("Reroute"); }
+const char* Reroute::plugin_title() { return _("Reroute"); }
 int Reroute::is_realtime()             { return 1; }
 int Reroute::is_multichannel()         { return 1; }
 
index 86c0701812df39a04db0c90cf7a694ae47b03397..24f0f2f50b3d0dcc42f4c7032c69a50fe68151c5 100644 (file)
@@ -60,7 +60,7 @@ int ResampleFraction::handle_event()
 
 
 ResampleWindow::ResampleWindow(ResampleEffect *plugin, int x, int y)
- : BC_Window(PROGRAM_NAME ": Resample"
+ : BC_Window(_(PROGRAM_NAME ": Resample")
                                x - 160,
                                y - 75,
                                320, 
@@ -125,7 +125,7 @@ ResampleEffect::~ResampleEffect()
 {
 }
 
-const char* ResampleEffect::plugin_title() { return N_("Resample"); }
+const char* ResampleEffect::plugin_title() { return _("Resample"); }
 
 void ResampleEffect::reset()
 {
index 3c6a75e01a82eaa5990527ba358140888f7c3236..7b9569318fb6e31fb9520d5b85c5b30453ad3279 100644 (file)
@@ -92,7 +92,7 @@ void ResampleRTWindow::create_objects()
        int x = 10, y = 10;
 
        BC_Title *title;
-       add_subwindow(title = new BC_Title(x, y, "Scale by amount:"));
+       add_subwindow(title = new BC_Title(x, y, _("Scale by amount:")));
        y += title->get_h() + plugin->get_theme()->widget_border;
 
        scale = new ResampleRTScale(this,
@@ -183,7 +183,7 @@ ResampleRT::~ResampleRT()
        delete resample;
 }
 
-const char* ResampleRT::plugin_title() { return N_("ResampleRT"); }
+const char* ResampleRT::plugin_title() { return _("ResampleRT"); }
 int ResampleRT::is_realtime() { return 1; }
 int ResampleRT::is_synthesis() { return 1; }
 
index c26c0b5410ea6dffa297f20d393f81acb8a83aa8..1d4ec5fbc98a8c3c31fe44d3ef1a5c172ece6028 100644 (file)
@@ -99,7 +99,7 @@ Reverb::~Reverb()
        }
 }
 
-const char* Reverb::plugin_title() { return N_("Reverb"); }
+const char* Reverb::plugin_title() { return _("Reverb"); }
 int Reverb::is_realtime() { return 1; }
 int Reverb::is_multichannel() { return 1; }
 int Reverb::is_synthesis() { return 1; }
index 648b39c4ad5e7a3d910bfe79df645c8841cd296b..a468c4d79663d884534052b29349494c415182df 100644 (file)
@@ -172,7 +172,7 @@ ReverseAudio::~ReverseAudio()
        
 }
 
-const char* ReverseAudio::plugin_title() { return N_("Reverse audio"); }
+const char* ReverseAudio::plugin_title() { return _("Reverse audio"); }
 int ReverseAudio::is_realtime() { return 1; }
 
 
index 9b7ba313e09d5b6e2fd5bc74b20dee4f0cadca78..004b9f04ca00faeb7cf64ba4adf8dd633180da9a 100644 (file)
@@ -174,7 +174,7 @@ ReverseVideo::~ReverseVideo()
        
 }
 
-const char* ReverseVideo::plugin_title() { return N_("Reverse video"); }
+const char* ReverseVideo::plugin_title() { return _("Reverse video"); }
 int ReverseVideo::is_realtime() { return 1; }
 
 
index a8a64a42e9a7d692ce7dd0f242b97c4123d061a8..33b5bc36a76ed364e827e341a58bb580fd5d300b 100644 (file)
@@ -41,7 +41,7 @@ RGB601Main::~RGB601Main()
        delete defaults;
 }
 
-char* RGB601Main::plugin_title() { return "Inverse Telecine"; }
+char* RGB601Main::plugin_title() { return _("Inverse Telecine"); }
 int RGB601Main::is_realtime() { return 1; }
 
 int RGB601Main::load_defaults()
index c2c179a1442104e2b4e27a5adb958d2bc0e0b313..10b0a03b1d6dcf32d3bad82ce1ac94ba5764c66f 100644 (file)
@@ -51,7 +51,7 @@ RGB601Main::~RGB601Main()
        
 }
 
-const char* RGB601Main::plugin_title() { return N_("RGB - 601"); }
+const char* RGB601Main::plugin_title() { return _("RGB - 601"); }
 int RGB601Main::is_realtime() { return 1; }
 
 
@@ -294,8 +294,8 @@ int RGB601Main::process_buffer(VFrame *frame,
 
 // Deinterlace effects may aggregate this one,
        if(get_use_opengl() &&
-               (prev_effect_is("Frames to fields") ||
-               next_effect_is("Frames to fields")))
+               (prev_effect_is(_("Frames to fields")) ||
+               next_effect_is(_("Frames to fields"))))
        {
                return 0;
        }
index 138a9a848b1a6ba69929c9b1f3d15ab0ffacd137..b4b705c53a67165bc829f2bf99e967dd5241218d 100644 (file)
@@ -208,7 +208,7 @@ RGBShiftEffect::~RGBShiftEffect()
        delete temp_frame;
 }
 
-const char* RGBShiftEffect::plugin_title() { return N_("RGBShift"); }
+const char* RGBShiftEffect::plugin_title() { return _("RGBShift"); }
 int RGBShiftEffect::is_realtime() { return 1; } 
 
 
index 1f44725211c2bc05e06ec26044bb960c423e6ae0..e3eb8dd5ef1fc312ad03ae7da43c53c5aaaba30a 100644 (file)
@@ -607,7 +607,7 @@ RotateEffect::~RotateEffect()
 
 
 
-const char* RotateEffect::plugin_title() { return N_("Rotate"); }
+const char* RotateEffect::plugin_title() { return _("Rotate"); }
 int RotateEffect::is_realtime() { return 1; }
 
 
index 4d69c7f5207a39be61a002554648f32b7a317b46..ec51f20675a085d8594a07c706cd860b4945c066 100644 (file)
@@ -87,7 +87,7 @@ ScaleMain::~ScaleMain()
        if(overlayer) delete overlayer;
 }
 
-const char* ScaleMain::plugin_title() { return N_("Scale"); }
+const char* ScaleMain::plugin_title() { return _("Scale"); }
 int ScaleMain::is_realtime() { return 1; }
 
 
index c5e5a92acc155112a70edb4e341b5a714ca9144d..536e267cd629c565992a737646f04c7f5d1ebfcc 100644 (file)
@@ -200,7 +200,7 @@ ScaleUseScale::ScaleUseScale(ScaleWin *win, ScaleMain *client, int x, int y)
 {
         this->win = win;
         this->client = client;
-       set_tooltip("Use fixed scale");
+       set_tooltip(_("Use fixed scale"));
 }
 ScaleUseScale::~ScaleUseScale()
 {
@@ -216,7 +216,7 @@ ScaleUseSize::ScaleUseSize(ScaleWin *win, ScaleMain *client, int x, int y)
 {
         this->win = win;
         this->client = client;
-       set_tooltip("Use fixed size");
+       set_tooltip(_("Use fixed size"));
 }
 ScaleUseSize::~ScaleUseSize()
 {
index ca091ec341dd93cb13e64a822e38078caf29c59d..1656e7f1d62bfb219c74abca3f537b403a12ac7e 100644 (file)
@@ -341,7 +341,7 @@ ShapeWipeMain::~ShapeWipeMain()
        shape_titles.remove_all_objects();
 }
 
-const char* ShapeWipeMain::plugin_title() { return N_("Shape Wipe"); }
+const char* ShapeWipeMain::plugin_title() { return _("Shape Wipe"); }
 int ShapeWipeMain::is_transition() { return 1; }
 int ShapeWipeMain::uses_gui() { return 1; }
 
@@ -778,7 +778,7 @@ int ShapeWipeMain::process_realtime(VFrame *incoming, VFrame *outgoing)
                        last_preserve_aspect = preserve_aspect;
                }
                else {
-                       fprintf(stderr, "Shape Wipe: cannot load shape %s\n", filename);
+                       fprintf(stderr, _("Shape Wipe: cannot load shape %s\n"), filename);
                        last_read_filename[0] = 0;
                        return 0;
                }
index bbdac24f2585013ff6697ab3d4dc269d7db91f12..15e1a7e2e75f783175910f27cb853d691672986d 100644 (file)
@@ -112,7 +112,7 @@ NEW_WINDOW_MACRO(SharpenMain, SharpenWindow)
 
 LOAD_CONFIGURATION_MACRO(SharpenMain, SharpenConfig)
 
-const char* SharpenMain::plugin_title() { return N_("Sharpen"); }
+const char* SharpenMain::plugin_title() { return _("Sharpen"); }
 int SharpenMain::is_realtime() { return 1; }
 
 
index 2880a9ebe7597d67c65ae5236949d7322d8de6a4..47d45cc9f0f982e1a4c052963d02f4a2b2083c74 100644 (file)
@@ -259,7 +259,7 @@ ShiftInterlaceMain::~ShiftInterlaceMain()
 }
 
 
-const char* ShiftInterlaceMain::plugin_title()  { return N_("ShiftInterlace"); }
+const char* ShiftInterlaceMain::plugin_title()  { return _("ShiftInterlace"); }
 int ShiftInterlaceMain::is_realtime() { return 1; }
 
 
index 43b43456b7235b528803224994144b7e951e5962..5692a7131b8e82993e6dc4c9b4b297eb1104d47a 100644 (file)
@@ -207,7 +207,7 @@ SlideMain::~SlideMain()
        
 }
 
-const char* SlideMain::plugin_title() { return N_("Slide"); }
+const char* SlideMain::plugin_title() { return _("Slide"); }
 int SlideMain::is_video() { return 1; }
 int SlideMain::is_transition() { return 1; }
 int SlideMain::uses_gui() { return 1; }
index 44d4364253ee5db3924a4dc777cfd96d702f1c9a..f78c60c483b6962765b3728d7fe83021294424a9 100644 (file)
@@ -158,10 +158,10 @@ const char* SpectrogramMode::mode_to_text(int mode)
        switch(mode)
        {
                case VERTICAL:
-                       return "Vertical";
+                       return _("Vertical");
                case HORIZONTAL:
                default:
-                       return "Horizontal";
+                       return _("Horizontal");
        }
 }
 
@@ -481,7 +481,7 @@ void SpectrogramWindow::create_objects()
 //     add_subwindow(freq = new SpectrogramFreq(plugin, x, y));
 //     y += freq->get_h() + plugin->get_theme()->widget_border;
        x = x1;
-       add_subwindow(amplitude_title = new BC_Title(x, y, "Amplitude: 0 dB"));
+       add_subwindow(amplitude_title = new BC_Title(x, y, _("Amplitude: 0 dB")));
 
 
 
@@ -605,10 +605,10 @@ void SpectrogramWindow::calculate_frequency(int x, int y, int do_overlay)
                double level = ptr->data[freq_pixel];
                
                char string[BCTEXTLEN];
-               sprintf(string, "Freq: %d Hz", freq);
+               sprintf(string, _("Freq: %d Hz"), freq);
                freq_title->update(string);
                
-               sprintf(string, "Amplitude: %.2f dB", level);
+               sprintf(string, _("Amplitude: %.2f dB"), level);
                amplitude_title->update(string);
        }
        
@@ -699,7 +699,7 @@ void Spectrogram::reset()
 }
 
 
-const char* Spectrogram::plugin_title() { return N_("Spectrogram"); }
+const char* Spectrogram::plugin_title() { return _("Spectrogram"); }
 int Spectrogram::is_realtime() { return 1; }
 
 int Spectrogram::process_buffer(int64_t size, 
index 63028df5d8c2f4a1920f54f8ce2a2664bc865178..7e2bdeac3da13037a014e29bc33815b1b00cc8b3 100644 (file)
@@ -68,7 +68,7 @@ SUVMain::~SUVMain()
 
 const char* SUVMain::plugin_title()
 {
-       return "S.U.V.";
+       return _("S.U.V.");
 }
 
 Theme* SUVMain::new_theme()
index 6abc584be408a8488a0ac483293b37cf99d3cabc..b70860f67d9a0f24ba2a6e3b1ed153fd4ce9e27b 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "clip.h"
 #include "filexml.h"
+#include "language.h"
 #include "svg.h"
 #include "svgwin.h"
 #include <sys/types.h>
 #include <sys/mman.h>
 
 
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
 //#include "empty_svg.h"
 
 REGISTER_PLUGIN(SvgMain)
@@ -121,7 +117,7 @@ SvgMain::~SvgMain()
        delete overlayer;
 }
 
-const char* SvgMain::plugin_title() { return N_("SVG via Inkscape"); }
+const char* SvgMain::plugin_title() { return _("SVG via Inkscape"); }
 int SvgMain::is_realtime() { return 1; }
 int SvgMain::is_synthesis() { return 1; }
 
index e4d92ee3f8110b05ca07c16c2301172d088cf8dc..ec69d0889a12eb042fadd1b396296d0d55b79b8f 100644 (file)
@@ -22,8 +22,9 @@
 #include "bcdisplayinfo.h"
 #include "clip.h"
 #include "svgwin.h"
-#include "string.h"
 #include "filexml.h"
+#include "language.h"
+#include <string.h>
 #include <unistd.h>
 #include <fcntl.h>
 #include <sys/types.h>
@@ -35,19 +36,8 @@ struct fifo_struct {
         int action;  // 1 = update from client, 2 = client closes
       };
 
-
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
 #include "empty_svg.h"
 
-
-
-
-
-
 SvgWin::SvgWin(SvgMain *client)
  : PluginClientWindow(client, 300, 280, 300, 280, 1)
 { 
@@ -302,7 +292,7 @@ void EditSvgButton::run()
        strcpy(filename_fifo, filename_png);
        strcat(filename_fifo, ".fifo"); 
        if (mkfifo(filename_fifo, S_IRWXU) != 0) {
-               perror("Error while creating fifo file");
+               perror(_("Error while creating fifo file"));
        } 
        fh_fifo = open(filename_fifo, O_RDWR);
        fifo_buf.action = 0;
index 2bcf296417421af047b0c8a0204a63a22412996f..f15b06eeba5c0ab562a5d9235e37b80ffd8902c8 100644 (file)
@@ -208,7 +208,7 @@ void SwapMain::reset()
 }
 
 
-const char* SwapMain::plugin_title()  { return N_("Swap channels"); }
+const char* SwapMain::plugin_title()  { return _("Swap channels"); }
 int SwapMain::is_synthesis() { return 1; }
 int SwapMain::is_realtime()  { return 1; }
 
@@ -432,10 +432,10 @@ const char* SwapMain::output_to_text(int value)
                        return _("Alpha");
                        break;
                case NO_SRC:
-                       return _("0%");
+                       return "0%";
                        break;
                case MAX_SRC:
-                       return _("100%");
+                       return "100%";
                        break;
                default:
                        return "";
@@ -449,8 +449,8 @@ int SwapMain::text_to_output(const char *text)
        if(!strcmp(text, _("Green"))) return GREEN_SRC;
        if(!strcmp(text, _("Blue"))) return BLUE_SRC;
        if(!strcmp(text, _("Alpha"))) return ALPHA_SRC;
-       if(!strcmp(text, _("0%"))) return NO_SRC;
-       if(!strcmp(text, _("100%"))) return MAX_SRC;
+       if(!strcmp(text, "0%")) return NO_SRC;
+       if(!strcmp(text, "100%")) return MAX_SRC;
        return 0;
 }
 
index 6c4eb7b67e287b35e9e7177a859a05f0e90a0dc2..cfe4d3b0458abbeffc435cb1798cc2c0718c65b7 100644 (file)
@@ -213,7 +213,7 @@ SwapFrames::~SwapFrames()
        delete buffer;
 }
 
-const char* SwapFrames::plugin_title() { return N_("Swap Frames"); }
+const char* SwapFrames::plugin_title() { return _("Swap Frames"); }
 int SwapFrames::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(SwapFrames, SwapFramesWindow)
index 0456073b48260b2bf44ed33a6fb354cafd023fd0..e7fc13337a9ac9b9063123e1046d3ce7bd3abd1a 100644 (file)
@@ -57,7 +57,7 @@ Synth::~Synth()
 
 NEW_WINDOW_MACRO(Synth, SynthWindow);
 
-const char* Synth::plugin_title() { return N_("Synthesizer"); }
+const char* Synth::plugin_title() { return _("Synthesizer"); }
 int Synth::is_realtime() { return 1; }
 int Synth::is_synthesis() { return 1; }
 
index 1eb8ce949868cdcad87141614329a985bcd9a67f..5e269aa084d6da57546c1333cd347b920cd7c649 100644 (file)
@@ -134,7 +134,7 @@ int ThresholdMain::is_realtime()
 
 const char* ThresholdMain::plugin_title() 
 { 
-       return N_("Threshold"); 
+       return _("Threshold"); 
 }
 
 
index f2e8b2338edfa12eb05bab6bbd5a820ed89f4354..f95ab9267118ca1f540fdb34e61c3a7ed94317c5 100644 (file)
@@ -116,7 +116,7 @@ TimeAvgMain::~TimeAvgMain()
        if(history_valid) delete [] history_valid;
 }
 
-const char* TimeAvgMain::plugin_title() { return N_("Time Average"); }
+const char* TimeAvgMain::plugin_title() { return _("Time Average"); }
 int TimeAvgMain::is_realtime() { return 1; }
 
 
index 97272f0736588556e786ac88995461ab456f4ce8..59eb05dc1a6887464b3f7077dbf1f1f3df1f6605 100644 (file)
@@ -645,7 +645,7 @@ TimeFrontMain::~TimeFrontMain()
        if(overlayer) delete overlayer;
 }
 
-const char* TimeFrontMain::plugin_title() { return N_("TimeFront"); }
+const char* TimeFrontMain::plugin_title() { return _("TimeFront"); }
 int TimeFrontMain::is_realtime() { return 1; }
 int TimeFrontMain::is_multichannel() { return 1; }
 
@@ -780,12 +780,12 @@ int TimeFrontMain::process_buffer(VFrame **frame,
                if (get_total_buffers() != 2) 
                {
                        // FIXME, maybe this should go to some other notification area?
-                       printf("ERROR: TimeFront plugin - If you are using another track for timefront, you have to have it under shared effects\n");
+                       printf(_("ERROR: TimeFront plugin - If you are using another track for timefront, you have to have it under shared effects\n"));
                        return 0;
                }
                if (outframes[0]->get_w() != outframes[1]->get_w() || outframes[0]->get_h() != outframes[1]->get_h())
                {
-                       printf("Sizes of master track and timefront track do not match\n");
+                       printf(_("Sizes of master track and timefront track do not match\n"));
                        return 0;
                }
        }
@@ -832,7 +832,7 @@ int TimeFrontMain::process_buffer(VFrame **frame,
                        
                        default:
                                {
-                                       printf("TimeFront plugin error: ALPHA used, but project color model does not have alpha\n");
+                                       printf(_("TimeFront plugin error: ALPHA used, but project color model does not have alpha\n"));
                                        return 1;
                                        break;
                                }
@@ -892,14 +892,14 @@ int TimeFrontMain::process_buffer(VFrame **frame,
                                
                                default:
                                        {
-                                               printf("TimeFront plugin error: ALPHA track used, but project color model does not have alpha\n");
+                                               printf(_("TimeFront plugin error: ALPHA track used, but project color model does not have alpha\n"));
                                                return 1;
                                                break;
                                        }
                        }
                } else
                {
-                       printf("TimeFront plugin error: unsupported track_usage parameter\n");
+                       printf(_("TimeFront plugin error: unsupported track_usage parameter\n"));
                        return 1;
                }
        }       
index 192ce95475dd53f8abce694fd224e9fb83a9b3f1..bc9bc5ea25a0610481d5268229e650073e40f52e 100644 (file)
@@ -116,7 +116,7 @@ int TimeStretchTime::handle_event()
 
 
 TimeStretchWindow::TimeStretchWindow(TimeStretch *plugin, int x, int y)
- : BC_Window(PROGRAM_NAME ": Time stretch"
+ : BC_Window(_(PROGRAM_NAME ": Time stretch")
                                x - 160,
                                y - 75,
                                320, 
@@ -350,7 +350,7 @@ TimeStretch::~TimeStretch()
 
        
        
-const char* TimeStretch::plugin_title() { return N_("Time stretch"); }
+const char* TimeStretch::plugin_title() { return _("Time stretch"); }
 
 int TimeStretch::get_parameters()
 {
index 01417cf0ce7b8effffeaec766838cf7ff7982763..3df979b84b8bf36d607a01cb1fdff8d1a40b3d81 100644 (file)
@@ -197,7 +197,7 @@ TimeStretchRT::~TimeStretchRT()
        delete engine;
 }
 
-const char* TimeStretchRT::plugin_title() { return N_("Time Stretch RT"); }
+const char* TimeStretchRT::plugin_title() { return _("Time Stretch RT"); }
 int TimeStretchRT::is_realtime() { return 1; }
 int TimeStretchRT::is_synthesis() { return 1; }
 
index 47e010362c9c41bbd912d283d06551e3e5bd7941..66755018b012c0640cd6697bffacf9282e90916a 100644 (file)
@@ -1123,7 +1123,7 @@ TitleMain::~TitleMain()
        delete outline_engine;
 }
 
-const char* TitleMain::plugin_title() { return N_("Title"); }
+const char* TitleMain::plugin_title() { return _("Title"); }
 int TitleMain::is_realtime() { return 1; }
 int TitleMain::is_synthesis() { return 1; }
 
index 860cf05368bfbb78a7583f0509c908f9ee6b58e1..d92c854820c69df2d92432256fcdd69bf3f761f0 100644 (file)
@@ -1,31 +1,13 @@
 #include "bcdisplayinfo.h"
+#include "language.h"
 #include "titlewindow.h"
 
 #include <string.h>
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
-
-
-
-
-
-
 
 
 PLUGIN_THREAD_OBJECT(TitleMain, TitleThread, TitleWindow)
 
 
-
-
-
-
-
-
-
-
 TitleWindow::TitleWindow(TitleMain *client, int x, int y)
  : BC_Window(client->gui_string, 
        x,
index b4a10df1bc1246524b3c7e7db0141348ececc55b..72bf5df7c0ce7bbda205ee73edc123870d6f2f2e 100644 (file)
@@ -112,7 +112,7 @@ TranslateMain::~TranslateMain()
        overlayer = 0;
 }
 
-const char* TranslateMain::plugin_title() { return N_("Translate"); }
+const char* TranslateMain::plugin_title() { return _("Translate"); }
 int TranslateMain::is_realtime() { return 1; }
 
 
index 4604b3bfcb9d9318037921a420f3ed588814baed..03dc25dac1aeb1478e5483c26e0c272e0d0b47d7 100644 (file)
@@ -102,7 +102,7 @@ UnsharpMain::~UnsharpMain()
        delete engine;
 }
 
-const char* UnsharpMain::plugin_title() { return N_("Unsharp"); }
+const char* UnsharpMain::plugin_title() { return _("Unsharp"); }
 int UnsharpMain::is_realtime() { return 1; }
 
 
index 59ba45e1d4b5481a23550db51a0df69fa1e064f4..586fb3e398943be77e84fd2e4558c86e1aa6c11f 100644 (file)
@@ -235,7 +235,7 @@ VideoScopeEffect::~VideoScopeEffect()
 
 
 
-const char* VideoScopeEffect::plugin_title() { return N_("VideoScope"); }
+const char* VideoScopeEffect::plugin_title() { return _("VideoScope"); }
 int VideoScopeEffect::is_realtime() { return 1; }
 
 int VideoScopeEffect::load_configuration()
index e5d951948e7a99cc89858d6d890e79a68159bcf8..7d3c03c4c647abf1695286fe3e0d69bb19fa0694 100644 (file)
@@ -360,7 +360,7 @@ NEW_WINDOW_MACRO(Vocoder, VocoderWindow)
 LOAD_CONFIGURATION_MACRO(Vocoder, VocoderConfig)
 
 
-const char* Vocoder::plugin_title() { return N_("Vocoder"); }
+const char* Vocoder::plugin_title() { return _("Vocoder"); }
 int Vocoder::is_realtime() { return 1; }
 int Vocoder::is_multichannel() { return 1; }
 
index 56c41e81927f5d132b3c27dd6d0d0b4c0f585bcc..412527e343e7d93134cd27596b8cdd49d9bcf5d7 100644 (file)
@@ -448,7 +448,7 @@ WaveEffect::~WaveEffect()
 }
 
 
-const char* WaveEffect::plugin_title() { return N_("Wave"); }
+const char* WaveEffect::plugin_title() { return _("Wave"); }
 int WaveEffect::is_realtime() { return 1; }
 
 
index 4bd03133894f75e9f2fef19e4b444ca55afb9e4e..d36f776a14da4ce6003bc2c780bc0a4a769154cd 100644 (file)
@@ -363,7 +363,7 @@ WhirlEffect::~WhirlEffect()
 
 
 
-const char* WhirlEffect::plugin_title() { return N_("Whirl"); }
+const char* WhirlEffect::plugin_title() { return _("Whirl"); }
 int WhirlEffect::is_realtime() { return 1; }
 
 
index 526c2bd1a08822f2318e83a3bea22ce587750fcb..afa5d2acfcf3a7f23e1b726a3fdf5d5e2e7c8939 100644 (file)
@@ -143,7 +143,7 @@ WipeMain::~WipeMain()
        
 }
 
-const char* WipeMain::plugin_title() { return N_("Wipe"); }
+const char* WipeMain::plugin_title() { return _("Wipe"); }
 int WipeMain::is_video() { return 1; }
 int WipeMain::is_transition() { return 1; }
 int WipeMain::uses_gui() { return 1; }
index 003513f3a5a6e9cfc7b5949c418442eb35f747fc..99a81dc55a38305331029c2c10babc07f24abe62 100644 (file)
@@ -206,7 +206,7 @@ YUVEffect::~YUVEffect()
        
 }
 
-const char* YUVEffect::plugin_title() { return N_("YUV"); }
+const char* YUVEffect::plugin_title() { return _("YUV"); }
 int YUVEffect::is_realtime() { return 1; } 
 
 
index 06e9450c3bc31b4cf58e7358f066fc322a39c94e..4a446c262c06868e762f62f2fe0107f3f952eca3 100644 (file)
  * 
  */
 
+#include "language.h"
 #include "yuvwindow.h"
 
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
-
-
-
 
 YUVWindow::YUVWindow(YUVMain *client)
  : BC_Window("", MEGREY, client->gui_string, 210, 170, 200, 170, 0, !client->show_initially)
index a99f3dc765030773a7732e8f7331d56b4d546572..98f0d74352a399935ba59ddf28032241da95508b 100644 (file)
@@ -208,7 +208,7 @@ YUVShiftEffect::~YUVShiftEffect()
        delete temp_frame;
 }
 
-const char* YUVShiftEffect::plugin_title() { return N_("YUVShift"); }
+const char* YUVShiftEffect::plugin_title() { return _("YUVShift"); }
 int YUVShiftEffect::is_realtime() { return 1; } 
 
 
index 83eb2ea84fbfb2d2568a7990f9dbde9a6b64c654..710f6dfa1479f5783219e06763c513428404c39c 100644 (file)
@@ -144,7 +144,7 @@ ZoomMain::~ZoomMain()
        delete temp;
 }
 
-const char* ZoomMain::plugin_title() { return N_("Zoom"); }
+const char* ZoomMain::plugin_title() { return _("Zoom"); }
 int ZoomMain::is_video() { return 1; }
 int ZoomMain::is_transition() { return 1; }
 int ZoomMain::uses_gui() { return 1; }
index a7dea9b62dd026416ed623482afa7a108a4d0713..246d33f3e96bddcc687069a6f010f7b2d1f0451b 100644 (file)
@@ -399,7 +399,7 @@ ZoomBlurMain::~ZoomBlurMain()
        if(temp) delete temp;
 }
 
-const char* ZoomBlurMain::plugin_title() { return N_("Zoom Blur"); }
+const char* ZoomBlurMain::plugin_title() { return _("Zoom Blur"); }
 int ZoomBlurMain::is_realtime() { return 1; }
 
 
index cfddfe8e3efe39a433a9823851bbf56851195db3..14bb58c5aafe7f235e25529936e61836b3f18bf1 100644 (file)
@@ -16,13 +16,15 @@ msgstr ""
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: guicast//bcbutton.C:492 cinelerra//preferencesthread.C:610
+#: guicast//bcbutton.C:268 guicast//bcbutton.C:276 guicast//bcbutton.C:492
+#: cinelerra//preferencesthread.C:613
 msgid "OK"
 msgstr ""
 
+#: guicast//bcbutton.C:324 guicast//bcbutton.C:332 guicast//bcbutton.C:340
 #: guicast//bcbutton.C:519 guicast//bcbutton.C:521 guicast//bcbutton.C:528
 #: cinelerra//confirmquit.C:107 cinelerra//confirmquit.C:109
-#: cinelerra//preferencesthread.C:634 cinelerra//preferencesthread.C:636
+#: cinelerra//preferencesthread.C:637 cinelerra//preferencesthread.C:639
 msgid "Cancel"
 msgstr ""
 
@@ -31,7 +33,8 @@ msgstr ""
 msgid "cannot connect to X server.\n"
 msgstr ""
 
-#: guicast//bccapture.C:67
+#: guicast//bccapture.C:67 guicast//bcdisplay.C:59
+#: guicast//bcdisplayinfo.C:245 guicast//bcwindowbase.C:660
 #, c-format
 msgid "'DISPLAY' environment variable not set.\n"
 msgstr ""
@@ -40,70 +43,75 @@ msgstr ""
 msgid "Really delete the following files?"
 msgstr ""
 
-#: guicast//bcfilebox.C:257
+#: guicast//bcdisplayinfo.C:242
+#, c-format
+msgid "BC_DisplayInfo::init_window: cannot open display \"%s\".\n"
+msgstr ""
+
+#: guicast//bcdisplayinfo.C:247
+#, c-format
+msgid "BC_DisplayInfo::init_window: cannot connect to X server.\n"
+msgstr ""
+
+#: guicast//bcfilebox.C:266
 msgid "Change the filter"
 msgstr ""
 
-#: guicast//bcfilebox.C:282
+#: guicast//bcfilebox.C:291
 msgid "Cancel the operation"
 msgstr ""
 
-#: guicast//bcfilebox.C:310
+#: guicast//bcfilebox.C:319
 msgid "Submit the directory"
 msgstr ""
 
-#: guicast//bcfilebox.C:338
+#: guicast//bcfilebox.C:347
 msgid "Descend directory"
 msgstr ""
 
-#: guicast//bcfilebox.C:340
+#: guicast//bcfilebox.C:349
 msgid "Submit the file"
 msgstr ""
 
-#: guicast//bcfilebox.C:363 cinelerra//awindowmenu.C:77
+#: guicast//bcfilebox.C:372 cinelerra//awindowmenu.C:77
 #: cinelerra//awindowmenu.C:148
 msgid "Display text"
 msgstr ""
 
-#: guicast//bcfilebox.C:377 cinelerra//awindowmenu.C:77
+#: guicast//bcfilebox.C:386 cinelerra//awindowmenu.C:77
 #: cinelerra//awindowmenu.C:148
 msgid "Display icons"
 msgstr ""
 
-#: guicast//bcfilebox.C:391
+#: guicast//bcfilebox.C:400
 msgid "Create new folder"
 msgstr ""
 
-#: guicast//bcfilebox.C:404
+#: guicast//bcfilebox.C:413
 msgid "Rename file"
 msgstr ""
 
-#: guicast//bcfilebox.C:416
+#: guicast//bcfilebox.C:425
 msgid "Up a directory"
 msgstr ""
 
-#: guicast//bcfilebox.C:421
-#, c-format
-msgid ".."
-msgstr ""
-
-#: guicast//bcfilebox.C:430
+#: guicast//bcfilebox.C:439
 msgid "Delete files"
 msgstr ""
 
-#: guicast//bcfilebox.C:444
+#: guicast//bcfilebox.C:453
 msgid "Refresh"
 msgstr ""
 
-#: guicast//bcfilebox.C:1309
+#: guicast//bcfilebox.C:1313 cinelerra//newfolder.C:37
 msgid ": New folder"
 msgstr ""
 
-#: guicast//bcfilebox.C:1324
+#: guicast//bcfilebox.C:1328
 msgid ": Rename"
 msgstr ""
 
-#: guicast//bcfilebox.C:1339
+#: guicast//bcfilebox.C:1343
 msgid ": Delete"
 msgstr ""
 
@@ -133,11 +141,23 @@ msgstr ""
 msgid "Untitled"
 msgstr ""
 
+#: guicast//bcpopup.C:36 guicast//bcpopup.C:54 cinelerra//canvas.C:1222
+msgid "Fullscreen"
+msgstr ""
+
+#: guicast//bcpopup.C:88
+msgid "Popup"
+msgstr ""
+
+#: guicast//bcprogressbox.C:115
+msgid "Progress"
+msgstr ""
+
 #: guicast//bcrename.C:63
 msgid "Enter a new name for the file:"
 msgstr ""
 
-#: guicast//bcresources.C:1465
+#: guicast//bcresources.C:1495
 #, c-format
 msgid "Conversion from %s to %s is not available"
 msgstr ""
@@ -152,13 +172,45 @@ msgstr ""
 msgid "BC_Theme::check_used: Images aren't used.\n"
 msgstr ""
 
+#: guicast//bcwindow3d.C:51
+#, c-format
+msgid "%s: trying fallback 1\n"
+msgstr ""
+
+#: guicast//bcwindow3d.C:54
+#, c-format
+msgid "%s: trying single buffering\n"
+msgstr ""
+
+#: guicast//bcwindow3d.C:58
+#, c-format
+msgid "%s: trying fallback 2\n"
+msgstr ""
+
+#: guicast//bcwindow3d.C:61
+#, c-format
+msgid "%s: trying attributes None\n"
+msgstr ""
+
+#: guicast//bcwindow3d.C:65
+#, c-format
+msgid "%s: opengl initialization failed failed\n"
+msgstr ""
+
+#: guicast//bcwindowbase.C:205
+#, c-format
+msgid ""
+"BC_WindowBase::~BC_WindowBase window deleted but opengl deletion is not\n"
+"implemented for BC_Pixmap.\n"
+msgstr ""
+
 #: guicast//test.C:181
 msgid ""
 "Mary Egbert\n"
 "had a little lamb."
 msgstr ""
 
-#: guicast//test.C:183
+#: guicast//test.C:183 cinelerra//localsession.C:42
 msgid "Hello world"
 msgstr ""
 
@@ -170,7 +222,7 @@ msgstr ""
 msgid "Hours:Minutes:Seconds:Frames"
 msgstr ""
 
-#: guicast//units.h:44
+#: guicast//units.h:44 cinelerra//patchbay.C:83
 msgid "Samples"
 msgstr ""
 
@@ -178,7 +230,7 @@ msgstr ""
 msgid "Hex Samples"
 msgstr ""
 
-#: guicast//units.h:48
+#: guicast//units.h:48 cinelerra//patchbay.C:84
 msgid "Frames"
 msgstr ""
 
@@ -190,7 +242,7 @@ msgstr ""
 msgid "Hours:Minutes:Seconds"
 msgstr ""
 
-#: guicast//units.h:71
+#: guicast//units.h:71 cinelerra//patchbay.C:93
 msgid "Seconds"
 msgstr ""
 
@@ -206,6 +258,14 @@ msgid ""
 "heroinewarrior.com"
 msgstr ""
 
+#: cinelerra//aboutprefs.C:95
+msgid "Contributors:"
+msgstr ""
+
+#: cinelerra//aboutprefs.C:143
+msgid "License:"
+msgstr ""
+
 #: cinelerra//aboutprefs.C:150
 #, c-format
 msgid ""
@@ -219,6 +279,11 @@ msgid ""
 "\n"
 msgstr ""
 
+#: cinelerra//adcuts.C:30
+#, c-format
+msgid "cuts to %s complete\n"
+msgstr ""
+
 #: cinelerra//adeviceprefs.C:300 cinelerra//vdeviceprefs.C:253
 #: cinelerra//vdeviceprefs.C:279 cinelerra//vdeviceprefs.C:406
 #: cinelerra//vdeviceprefs.C:420 cinelerra//vdeviceprefs.C:431
@@ -228,7 +293,7 @@ msgstr ""
 
 #: cinelerra//adeviceprefs.C:321 cinelerra//adeviceprefs.C:387
 #: cinelerra//adeviceprefs.C:580 cinelerra//adeviceprefs.C:597
-#: cinelerra//adeviceprefs.C:599 cinelerra//assetedit.C:403
+#: cinelerra//adeviceprefs.C:599 cinelerra//assetedit.C:404
 #: cinelerra//fileformat.C:89 cinelerra//formatwindow.C:48
 msgid "Bits:"
 msgstr ""
@@ -246,7 +311,8 @@ msgid "Server:"
 msgstr ""
 
 #: cinelerra//adeviceprefs.C:444 cinelerra//adeviceprefs.C:495
-#: cinelerra//performanceprefs.C:175 cinelerra//vdeviceprefs.C:349
+#: cinelerra//interfaceprefs.C:161 cinelerra//performanceprefs.C:189
+#: cinelerra//vdeviceprefs.C:349
 msgid "Port:"
 msgstr ""
 
@@ -290,7 +356,7 @@ msgstr ""
 msgid "Plugin %d"
 msgstr ""
 
-#: cinelerra//apanel.C:90 cinelerra//mainmenu.C:221
+#: cinelerra//apanel.C:90 cinelerra//gwindowgui.C:68 cinelerra//mainmenu.C:222
 msgid "Mute"
 msgstr ""
 
@@ -304,106 +370,128 @@ msgstr ""
 msgid "fade"
 msgstr ""
 
+#: cinelerra//apatchgui.C:307 cinelerra//gwindowgui.C:76
+#: cinelerra//mainmenu.C:224
+msgid "Pan"
+msgstr ""
+
 #: cinelerra//apatchgui.C:317 cinelerra//apatchgui.C:325
 msgid "pan"
 msgstr ""
 
-#: cinelerra//assetedit.C:283
+#: cinelerra//assetedit.C:215
+msgid ": Asset Info"
+msgstr ""
+
+#: cinelerra//assetedit.C:284
+msgid ": Asset path"
+msgstr ""
+
+#: cinelerra//assetedit.C:284
 msgid "Select a file for this asset:"
 msgstr ""
 
-#: cinelerra//assetedit.C:288
+#: cinelerra//assetedit.C:289
 msgid "File format:"
 msgstr ""
 
-#: cinelerra//assetedit.C:298
+#: cinelerra//assetedit.C:299
 msgid "Bytes:"
 msgstr ""
 
-#: cinelerra//assetedit.C:327
+#: cinelerra//assetedit.C:328
 msgid "Bitrate (bits/sec):"
 msgstr ""
 
-#: cinelerra//assetedit.C:342 cinelerra//formattools.C:191
+#: cinelerra//assetedit.C:343 cinelerra//formattools.C:220
 msgid "Audio:"
 msgstr ""
 
-#: cinelerra//assetedit.C:350 cinelerra//assetedit.C:495
-#: cinelerra//filemov.C:1501 cinelerra//filemov.C:1798
+#: cinelerra//assetedit.C:351 cinelerra//assetedit.C:496
+#: cinelerra//fileexr.C:596 cinelerra//fileffmpeg.C:485
+#: cinelerra//filemov.C:1489 cinelerra//filemov.C:1786
 #: cinelerra//filesndfile.C:406 cinelerra//filetga.C:927
 #: cinelerra//formatwindow.C:108
 msgid "Compression:"
 msgstr ""
 
-#: cinelerra//assetedit.C:362 cinelerra//fileformat.C:77 cinelerra//new.C:288
-#: cinelerra//setformat.C:341 plugins/livevideo/livevideo.C:227
+#: cinelerra//assetedit.C:363 cinelerra//fileformat.C:77 cinelerra//new.C:288
+#: cinelerra//setformat.C:342 plugins/livevideo/livevideo.C:226
 msgid "Channels:"
 msgstr ""
 
-#: cinelerra//assetedit.C:382 cinelerra//fileformat.C:83
+#: cinelerra//assetedit.C:383 cinelerra//fileformat.C:83
 msgid "Sample rate:"
 msgstr ""
 
-#: cinelerra//assetedit.C:424 cinelerra//fileformat.C:102
+#: cinelerra//assetedit.C:425 cinelerra//fileformat.C:102
 msgid "Header length:"
 msgstr ""
 
-#: cinelerra//assetedit.C:436 cinelerra//fileformat.C:109
+#: cinelerra//assetedit.C:437 cinelerra//fileformat.C:109
 #: cinelerra//filesndfile.C:425 cinelerra//formatwindow.C:64
 msgid "Byte order:"
 msgstr ""
 
-#: cinelerra//assetedit.C:457 cinelerra//assetedit.C:640
+#: cinelerra//assetedit.C:458 cinelerra//assetedit.C:641
 msgid "Lo-Hi"
 msgstr ""
 
-#: cinelerra//assetedit.C:459 cinelerra//assetedit.C:658
+#: cinelerra//assetedit.C:460 cinelerra//assetedit.C:659
 msgid "Hi-Lo"
 msgstr ""
 
-#: cinelerra//assetedit.C:473
+#: cinelerra//assetedit.C:474
 msgid "Values are unsigned"
 msgstr ""
 
-#: cinelerra//assetedit.C:475 cinelerra//assetedit.C:676
+#: cinelerra//assetedit.C:476 cinelerra//assetedit.C:677
 #: cinelerra//fileformat.C:194
 msgid "Values are signed"
 msgstr ""
 
-#: cinelerra//assetedit.C:488 cinelerra//formattools.C:223
+#: cinelerra//assetedit.C:489 cinelerra//formattools.C:252
 msgid "Video:"
 msgstr ""
 
-#: cinelerra//assetedit.C:506 cinelerra//setformat.C:381
+#: cinelerra//assetedit.C:507 cinelerra//setformat.C:382
 msgid "Frame rate:"
 msgstr ""
 
-#: cinelerra//assetedit.C:525 cinelerra//scale.C:210 cinelerra//scale.C:214
-#: cinelerra//setformat.C:396 plugins/freeverb/freeverb.C:331
-#: plugins/photoscale/photoscale.C:67
+#: cinelerra//assetedit.C:526 cinelerra//scale.C:210 cinelerra//scale.C:214
+#: cinelerra//setformat.C:397 plugins/freeverb/freeverb.C:330
+#: plugins/photoscale/photoscale.C:66
 msgid "Width:"
 msgstr ""
 
-#: cinelerra//assetedit.C:533 cinelerra//scale.C:220 cinelerra//scale.C:224
-#: cinelerra//setformat.C:403 plugins/photoscale/photoscale.C:61
-#: plugins/photoscale/photoscale.C:77
+#: cinelerra//assetedit.C:534 cinelerra//scale.C:220 cinelerra//scale.C:224
+#: cinelerra//setformat.C:404 plugins/photoscale/photoscale.C:60
+#: plugins/photoscale/photoscale.C:76
 msgid "Height:"
 msgstr ""
 
-#: cinelerra//assetedit.C:544
+#: cinelerra//assetedit.C:545
 msgid "Actual width:"
 msgstr ""
 
-#: cinelerra//assetedit.C:554
+#: cinelerra//assetedit.C:555
 msgid "Actual height:"
 msgstr ""
 
-#: cinelerra//assetedit.C:754
+#: cinelerra//assetedit.C:755
 msgid "Detail"
 msgstr ""
 
+#: cinelerra//assetedit.C:772
+msgid "Asset Detail"
+msgstr ""
+
+#: cinelerra//assetedit.C:812
+msgid "no info available"
+msgstr ""
+
 #: cinelerra//assetedit.h:103
-msgid " Path"
+msgid ": Path"
 msgstr ""
 
 #: cinelerra//assetedit.h:104
@@ -422,7 +510,7 @@ msgstr ""
 msgid "Sort items"
 msgstr ""
 
-#: cinelerra//assetpopup.C:222 cinelerra//mainmenu.C:216
+#: cinelerra//assetpopup.C:222 cinelerra//mainmenu.C:217
 msgid "View"
 msgstr ""
 
@@ -430,7 +518,8 @@ msgstr ""
 msgid "View in new window"
 msgstr ""
 
-#: cinelerra//assetpopup.C:293 cinelerra//mainmenu.C:832
+#: cinelerra//assetpopup.C:293 cinelerra//mainmenu.C:833
+#: cinelerra//swindow.C:517
 msgid "Paste"
 msgstr ""
 
@@ -454,6 +543,10 @@ msgstr ""
 msgid "Remove from disk"
 msgstr ""
 
+#: cinelerra//assetremove.C:32
+msgid ": Remove assets"
+msgstr ""
+
 #: cinelerra//assetremove.C:68
 msgid "Permanently remove from disk?"
 msgstr ""
@@ -495,55 +588,56 @@ msgstr ""
 msgid "Jump to end ( End )"
 msgstr ""
 
-#: cinelerra//awindowgui.C:379 plugins/titler/title.C:1128
+#: cinelerra//awindowgui.C:381 cinelerra//channelinfo.C:338
+#: cinelerra//dbwindow.C:468 plugins/titler/title.C:1126
 msgid "Title"
 msgstr ""
 
-#: cinelerra//awindowgui.C:380
+#: cinelerra//awindowgui.C:382
 msgid "Comments"
 msgstr ""
 
-#: cinelerra//awindowgui.C:706
+#: cinelerra//awindowgui.C:619
 msgid "remove plugin?"
 msgstr ""
 
-#: cinelerra//awindowgui.C:1662
+#: cinelerra//awindowgui.C:1580
 msgid "New bin"
 msgstr ""
 
-#: cinelerra//awindowgui.C:1676
+#: cinelerra//awindowgui.C:1594
 msgid "Delete bin"
 msgstr ""
 
-#: cinelerra//awindowgui.C:1694
+#: cinelerra//awindowgui.C:1612
 msgid "Rename bin"
 msgstr ""
 
-#: cinelerra//awindowgui.C:1707
+#: cinelerra//awindowgui.C:1625
 msgid "Delete asset from disk"
 msgstr ""
 
-#: cinelerra//awindowgui.C:1720
+#: cinelerra//awindowgui.C:1638
 msgid "Delete asset from project"
 msgstr ""
 
-#: cinelerra//awindowgui.C:1733
+#: cinelerra//awindowgui.C:1651
 msgid "Edit information on asset"
 msgstr ""
 
-#: cinelerra//awindowgui.C:1747
+#: cinelerra//awindowgui.C:1665
 msgid "Redraw index"
 msgstr ""
 
-#: cinelerra//awindowgui.C:1760
+#: cinelerra//awindowgui.C:1678
 msgid "Paste asset on recordable tracks"
 msgstr ""
 
-#: cinelerra//awindowgui.C:1773
+#: cinelerra//awindowgui.C:1691
 msgid "Append asset in new tracks"
 msgstr ""
 
-#: cinelerra//awindowgui.C:1786
+#: cinelerra//awindowgui.C:1704
 msgid "View asset"
 msgstr ""
 
@@ -551,7 +645,7 @@ msgstr ""
 msgid "Open"
 msgstr ""
 
-#: cinelerra//batch.C:94
+#: cinelerra//batch.C:94 cinelerra//recordthread.C:136
 msgid "Done"
 msgstr ""
 
@@ -579,83 +673,219 @@ msgstr ""
 msgid "Timed"
 msgstr ""
 
-#: cinelerra//batch.C:141 cinelerra//batchrender.C:966
-#: cinelerra//filemov.C:1291 plugins/motion2point/motionwindow.C:801
-#: plugins/motion2point/motionwindow.C:872 plugins/timefront/timefront.C:419
+#: cinelerra//batch.C:141 cinelerra//batchrender.C:969 cinelerra//file.C:2239
+#: cinelerra//file.C:2269 cinelerra//filemov.C:1279 cinelerra//new.C:844
+#: cinelerra//record.C:724 cinelerra//vdeviceprefs.C:745
+#: plugins/motion2point/motionwindow.C:801
+#: plugins/motion2point/motionwindow.C:872 plugins/timefront/timefront.C:418
 msgid "Unknown"
 msgstr ""
 
+#: cinelerra//batchrender.C:67 plugins/freezeframe/freezeframe.C:100
+#: plugins/reverseaudio/reverseaudio.C:143
+#: plugins/reversevideo/reversevideo.C:145 plugins/swapframes/swapframes.C:89
+msgid "Enabled"
+msgstr ""
+
+#: cinelerra//batchrender.C:68 plugins/compressor/compressor.C:1017
+msgid "Output"
+msgstr ""
+
+#: cinelerra//batchrender.C:69
+msgid "EDL"
+msgstr ""
+
+#: cinelerra//batchrender.C:70
+msgid "Elapsed"
+msgstr ""
+
 #: cinelerra//batchrender.C:82
 msgid "Batch Render..."
 msgstr ""
 
+#: cinelerra//batchrender.C:82
+msgid "Shift-B"
+msgstr ""
+
+#: cinelerra//batchrender.C:422 cinelerra//batchrender.C:1511
+#, c-format
+msgid "Unable to save: %s"
+msgstr ""
+
 #: cinelerra//batchrender.C:466
 #, c-format
 msgid "EDL %s not found.\n"
 msgstr ""
 
-#: cinelerra//batchrender.C:738
+#: cinelerra//batchrender.C:469 cinelerra//file.C:316
+#: cinelerra//formatcheck.C:51 cinelerra//formatcheck.C:62
+#: cinelerra//formatcheck.C:70 cinelerra//formatcheck.C:80
+#: cinelerra//menueffects.C:148 cinelerra//menueffects.C:159
+#: cinelerra//menueffects.C:259 cinelerra//menueffects.C:267
+#: cinelerra//menueffects.C:308 cinelerra//menueffects.C:470
+#: cinelerra//packagerenderer.C:178 cinelerra//quit.C:76 cinelerra//quit.C:86
+#: cinelerra//recordaudio.C:249 cinelerra//recordvideo.C:248
+#: cinelerra//render.C:290 cinelerra//render.C:901 cinelerra//savefile.C:102
+#: cinelerra//savefile.C:209
+msgid ": Error"
+msgstr ""
+
+#: cinelerra//batchrender.C:703
+msgid ": Batch Render"
+msgstr ""
+
+#: cinelerra//batchrender.C:741
 msgid "Output path:"
 msgstr ""
 
-#: cinelerra//batchrender.C:766
+#: cinelerra//batchrender.C:769
 msgid "EDL Path:"
 msgstr ""
 
-#: cinelerra//batchrender.C:783
+#: cinelerra//batchrender.C:786
 msgid "Input EDL"
 msgstr ""
 
-#: cinelerra//batchrender.C:784
+#: cinelerra//batchrender.C:787
 msgid "Select an EDL to load:"
 msgstr ""
 
-#: cinelerra//batchrender.C:812
+#: cinelerra//batchrender.C:815
 msgid "Batches to render:"
 msgstr ""
 
-#: cinelerra//batchrender.C:825 cinelerra//batchrender.C:1259
+#: cinelerra//batchrender.C:828 cinelerra//batchrender.C:1262
 #: cinelerra//recordbatches.C:538
 msgid "Stop"
 msgstr ""
 
-#: cinelerra//batchrender.C:830 cinelerra//batchrender.C:1278
-#: cinelerra//tipwindow.C:275
+#: cinelerra//batchrender.C:833 cinelerra//batchrender.C:1281
+#: cinelerra//tipwindow.C:280
 msgid "Close"
 msgstr ""
 
-#: cinelerra//batchrender.C:1078 cinelerra//new.C:136
+#: cinelerra//batchrender.C:1081 cinelerra//new.C:136
 #: cinelerra//recordbatches.C:489
 msgid "New"
 msgstr ""
 
-#: cinelerra//batchrender.C:1092 cinelerra//channeledit.C:596
-#: cinelerra//cwindowtool.C:1572 cinelerra//keyframegui.C:831
-#: cinelerra//presetsgui.C:313 cinelerra//recordbatches.C:507
-#: plugins/piano/piano.C:843 plugins/synthesizer/synthesizer.C:1380
+#: cinelerra//batchrender.C:1095 cinelerra//channeledit.C:596
+#: cinelerra//cwindowtool.C:1572 cinelerra//dbwindow.C:230
+#: cinelerra//keyframegui.C:831 cinelerra//presetsgui.C:313
+#: cinelerra//recordbatches.C:507 plugins/piano/piano.C:837
+#: plugins/synthesizer/synthesizer.C:1374
 msgid "Delete"
 msgstr ""
 
-#: cinelerra//batchrender.C:1111
+#: cinelerra//batchrender.C:1114
 msgid "Use Current EDL"
 msgstr ""
 
-#: cinelerra//batchrender.C:1125
+#: cinelerra//batchrender.C:1128
 msgid "Save to EDL Path"
 msgstr ""
 
-#: cinelerra//batchrender.C:1243 cinelerra//recordbatches.C:523
+#: cinelerra//batchrender.C:1246 cinelerra//recordbatches.C:523
 msgid "Start"
 msgstr ""
 
-#: cinelerra//batchrender.C:1328
+#: cinelerra//batchrender.C:1331
 msgid "DVD Render..."
 msgstr ""
 
-#: cinelerra//batchrender.C:1611
+#: cinelerra//batchrender.C:1331
+msgid "Shift-D"
+msgstr ""
+
+#: cinelerra//batchrender.C:1370
+#, c-format
+msgid "No EDL/Session"
+msgstr ""
+
+#: cinelerra//batchrender.C:1379
+#, c-format
+msgid "No content: %s"
+msgstr ""
+
+#: cinelerra//batchrender.C:1390
+#, c-format
+msgid ""
+"Unable to create directory: %s\n"
+"-- %s"
+msgstr ""
+
+#: cinelerra//batchrender.C:1416
+#, c-format
+msgid ""
+"Unable to save: %s\n"
+"-- %s"
+msgstr ""
+
+#: cinelerra//batchrender.C:1645
 msgid "create dvd"
 msgstr ""
 
+#: cinelerra//batchrender.C:1687
+msgid "end setup, start batch render"
+msgstr ""
+
+#: cinelerra//batchrender.C:1757
+msgid "disk space: "
+msgstr ""
+
+#: cinelerra//batchrender.C:1792 plugins/deinterlace/deinterlace.C:95
+#: plugins/denoisemjpeg/denoisemjpeg.C:255
+msgid "Deinterlace"
+msgstr ""
+
+#: cinelerra//batchrender.C:1812 plugins/ivtc/ivtc.C:76
+msgid "Inverse Telecine"
+msgstr ""
+
+#: cinelerra//batchrender.C:1832 plugins/scale/scale.C:90
+msgid "Scale"
+msgstr ""
+
+#: cinelerra//batchrender.C:1843
+msgid "Resize Tracks"
+msgstr ""
+
+#: cinelerra//batchrender.C:1854 plugins/colorbalance/colorbalance.C:493
+#: plugins/gamma/gamma.C:435 plugins/histogram/histogram.C:99
+#: plugins/histogram_bezier/histogram.C:99
+#: plugins/interpolate/interpolate.C:255
+msgid "Histogram"
+msgstr ""
+
+#: cinelerra//batchrender.C:1864
+msgid "Chapters at Labels"
+msgstr ""
+
+#: cinelerra//batchrender.C:1874
+msgid "Audio 5.1"
+msgstr ""
+
+#: cinelerra//batchrender.C:1884
+msgid "Aspect 16x9"
+msgstr ""
+
+#: cinelerra//batchrender.C:1894
+msgid "Use FFMPEG"
+msgstr ""
+
+#: cinelerra//batchrender.C:1907
+msgid ": Create DVD"
+msgstr ""
+
+#: cinelerra//batchrender.C:1939 cinelerra//channeledit.C:1031
+#: cinelerra//clipedit.C:180
+msgid "Title:"
+msgstr ""
+
+#: cinelerra//batchrender.C:1945
+msgid "tmp path:"
+msgstr ""
+
 #: cinelerra//brender.C:154
 msgid "BRender::fork_background: can't open /proc/self/cmdline.\n"
 msgstr ""
@@ -694,7 +924,7 @@ msgstr ""
 msgid "Zoom 75%"
 msgstr ""
 
-#: cinelerra//canvas.C:1100 cinelerra//recordmonitor.C:837
+#: cinelerra//canvas.C:1100 cinelerra//recordmonitor.C:838
 msgid "Zoom 100%"
 msgstr ""
 
@@ -738,10 +968,6 @@ msgstr ""
 msgid "Hide controls"
 msgstr ""
 
-#: cinelerra//canvas.C:1222
-msgid "Fullscreen"
-msgstr ""
-
 #: cinelerra//canvas.C:1243
 msgid "Close source"
 msgstr ""
@@ -814,10 +1040,11 @@ msgstr ""
 msgid "SECAM"
 msgstr ""
 
-#: cinelerra//channeledit.C:157 cinelerra//plugindialog.C:256
+#: cinelerra//channeledit.C:157 cinelerra//fileexr.C:197
+#: cinelerra//plugindialog.C:256 cinelerra//recordbatches.C:308
 #: cinelerra//recordgui.C:324 cinelerra//sharedlocation.C:144
 #: cinelerra//sharedlocation.C:149 cinelerra//sharedlocation.C:162
-#: cinelerra//vwindowgui.C:234 plugins/parametric/parametric.C:285
+#: cinelerra//vwindowgui.C:235 plugins/parametric/parametric.C:284
 #, c-format
 msgid "None"
 msgstr ""
@@ -844,7 +1071,7 @@ msgstr ""
 msgid "Sort"
 msgstr ""
 
-#: cinelerra//channeledit.C:585
+#: cinelerra//channeledit.C:585 cinelerra//channelinfo.C:1790
 msgid "Scan"
 msgstr ""
 
@@ -872,10 +1099,6 @@ msgstr ""
 msgid "Input:"
 msgstr ""
 
-#: cinelerra//channeledit.C:1031 cinelerra//clipedit.C:180
-msgid "Title:"
-msgstr ""
-
 #: cinelerra//channeledit.C:1056
 msgid "Fine:"
 msgstr ""
@@ -888,12 +1111,12 @@ msgstr ""
 msgid "Contrast:"
 msgstr ""
 
-#: cinelerra//channeledit.C:1543 plugins/chromakey/chromakey.C:129
-#: plugins/chromakeyhsv/chromakey.C:180
+#: cinelerra//channeledit.C:1543 plugins/chromakey/chromakey.C:128
+#: plugins/chromakeyhsv/chromakey.C:179
 msgid "Color:"
 msgstr ""
 
-#: cinelerra//channeledit.C:1551 plugins/huesaturation/huesaturation.C:316
+#: cinelerra//channeledit.C:1551 plugins/huesaturation/huesaturation.C:315
 msgid "Hue:"
 msgstr ""
 
@@ -901,44 +1124,176 @@ msgstr ""
 msgid "Whiteness:"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1333
+#: cinelerra//channelinfo.C:90 cinelerra//dbwindow.C:101
+msgid "titles"
+msgstr ""
+
+#: cinelerra//channelinfo.C:108 cinelerra//dbwindow.C:121
+msgid "info"
+msgstr ""
+
+#: cinelerra//channelinfo.C:126 cinelerra//dbwindow.C:141
+msgid "match case"
+msgstr ""
+
+#: cinelerra//channelinfo.C:172 cinelerra//dbwindow.C:212
+msgid "Search"
+msgstr ""
+
+#: cinelerra//channelinfo.C:264 cinelerra//dbwindow.C:389
+#: plugins/titler/titlewindow.C:344
+msgid "Text:"
+msgstr ""
+
+#: cinelerra//channelinfo.C:297
+msgid "dbl clk row to find title"
+msgstr ""
+
+#: cinelerra//channelinfo.C:305
+msgid ": ChanSearch"
+msgstr ""
+
+#: cinelerra//channelinfo.C:337 cinelerra//dbwindow.C:467
+#: cinelerra//recordbatches.C:23
+msgid "Source"
+msgstr ""
+
+#: cinelerra//channelinfo.C:339 cinelerra//dbwindow.C:469
+#: cinelerra//recordbatches.C:22
+msgid "Start time"
+msgstr ""
+
+#: cinelerra//channelinfo.C:438
+#, c-format
+msgid "%d found"
+msgstr ""
+
+#: cinelerra//channelinfo.C:960
+#, c-format
+msgid "(%3.3s) "
+msgstr ""
+
+#: cinelerra//channelinfo.C:960
+msgid "sunmontuewedthufrisat"
+msgstr ""
+
+#: cinelerra//channelinfo.C:986
+msgid "activate batch record when ok pressed"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1006
+msgid "poweroff system when batch record done"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1021
+msgid "Find"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1024
+msgid "search event titles/info"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1105
+#, c-format
+msgid "bad scan time: %s\n"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1112
+#, c-format
+msgid "bad title: %s\n"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1119
+#, c-format
+msgid "bad scan date: %s\n"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1132
+#, c-format
+msgid "end before start: %s\n"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1136
+#, c-format
+msgid "end time early: %s\n"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1140
+#, c-format
+msgid "start time late: %s\n"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1147
+#, c-format
+msgid "zero duration: %s\n"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1232
+msgid "end channel info, start record"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1332
 msgid "Directory:"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1335 cinelerra//recordgui.C:157
+#: cinelerra//channelinfo.C:1334 cinelerra//recordgui.C:157
+#: cinelerra//swindow.C:144
 msgid "Path:"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1337
+#: cinelerra//channelinfo.C:1336
 msgid "Start:"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1339
+#: cinelerra//channelinfo.C:1338
 msgid "Duration:"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1341 cinelerra//recordgui.C:166
+#: cinelerra//channelinfo.C:1340 cinelerra//recordgui.C:166
 msgid "Source:"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1415
+#: cinelerra//channelinfo.C:1394
+msgid ": Channel Info"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1414
 msgid "Start Cron"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1416
+#: cinelerra//channelinfo.C:1415
 msgid "Poweroff"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1910 cinelerra//recordbatches.C:568
+#: cinelerra//channelinfo.C:1673
+#, c-format
+msgid "Recording in progress\n"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1681
+#, c-format
+msgid "capture driver not dvb\n"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1751
+#, c-format
+msgid "cannot open dvb video device\n"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1790
+msgid "Shift-S"
+msgstr ""
+
+#: cinelerra//channelinfo.C:1909 cinelerra//recordbatches.C:568
 msgid "Delete all clips."
 msgstr ""
 
-#: cinelerra//channelinfo.C:1928 cinelerra//recordbatches.C:492
+#: cinelerra//channelinfo.C:1927 cinelerra//recordbatches.C:492
 #: cinelerra//recordgui.C:923
 msgid "Create new clip."
 msgstr ""
 
-#: cinelerra//channelinfo.C:1941 cinelerra//recordbatches.C:510
+#: cinelerra//channelinfo.C:1940 cinelerra//recordbatches.C:510
 #: cinelerra//recordgui.C:936
 msgid "Delete clip."
 msgstr ""
@@ -955,10 +1310,18 @@ msgstr ""
 msgid "Edit channels"
 msgstr ""
 
+#: cinelerra//clipedit.C:149
+msgid ": Clip Info"
+msgstr ""
+
 #: cinelerra//clipedit.C:184
 msgid "Comments:"
 msgstr ""
 
+#: cinelerra//colorpicker.C:83
+msgid ": "
+msgstr ""
+
 #: cinelerra//colorpicker.C:87
 msgid "Color Picker"
 msgstr ""
@@ -971,53 +1334,102 @@ msgstr ""
 msgid "Saturation"
 msgstr ""
 
-#: cinelerra//colorpicker.C:190 plugins/histogram/histogramwindow.C:63
-#: plugins/histogram_bezier/histogramwindow.C:76
+#: cinelerra//colorpicker.C:190 cinelerra//keyframegui.C:54
+#: plugins/histogram/histogramwindow.C:63
+#: plugins/histogram_bezier/histogramwindow.C:73
 msgid "Value"
 msgstr ""
 
 #: cinelerra//colorpicker.C:196 plugins/colorbalance/colorbalancewindow.C:58
-#: plugins/denoisevideo/denoisevideo.C:276 plugins/downsample/downsample.C:277
+#: plugins/denoisevideo/denoisevideo.C:275 plugins/downsample/downsample.C:276
 #: plugins/histogram/histogramwindow.C:69
-#: plugins/histogram_bezier/histogramwindow.C:82
-#: plugins/linearblur/linearblur.C:295 plugins/radialblur/radialblur.C:293
-#: plugins/swapchannels/swapchannels.C:425
-#: plugins/swapchannels/swapchannels.C:450 plugins/zoomblur/zoomblur.C:305
+#: plugins/histogram_bezier/histogramwindow.C:79
+#: plugins/linearblur/linearblur.C:294 plugins/radialblur/radialblur.C:292
+#: plugins/swapchannels/swapchannels.C:423
+#: plugins/swapchannels/swapchannels.C:448 plugins/zoomblur/zoomblur.C:304
 msgid "Red"
 msgstr ""
 
 #: cinelerra//colorpicker.C:202 plugins/colorbalance/colorbalancewindow.C:62
-#: plugins/denoisevideo/denoisevideo.C:278 plugins/downsample/downsample.C:283
+#: plugins/denoisevideo/denoisevideo.C:277 plugins/downsample/downsample.C:282
 #: plugins/histogram/histogramwindow.C:75
-#: plugins/histogram_bezier/histogramwindow.C:88
-#: plugins/linearblur/linearblur.C:297 plugins/radialblur/radialblur.C:295
-#: plugins/swapchannels/swapchannels.C:428
-#: plugins/swapchannels/swapchannels.C:451 plugins/zoomblur/zoomblur.C:307
+#: plugins/histogram_bezier/histogramwindow.C:85
+#: plugins/linearblur/linearblur.C:296 plugins/radialblur/radialblur.C:294
+#: plugins/swapchannels/swapchannels.C:426
+#: plugins/swapchannels/swapchannels.C:449 plugins/zoomblur/zoomblur.C:306
 msgid "Green"
 msgstr ""
 
 #: cinelerra//colorpicker.C:208 plugins/colorbalance/colorbalancewindow.C:66
-#: plugins/denoisevideo/denoisevideo.C:280 plugins/downsample/downsample.C:289
+#: plugins/denoisevideo/denoisevideo.C:279 plugins/downsample/downsample.C:288
 #: plugins/histogram/histogramwindow.C:81
-#: plugins/histogram_bezier/histogramwindow.C:94
-#: plugins/linearblur/linearblur.C:299 plugins/radialblur/radialblur.C:297
-#: plugins/swapchannels/swapchannels.C:431
-#: plugins/swapchannels/swapchannels.C:452 plugins/zoomblur/zoomblur.C:309
+#: plugins/histogram_bezier/histogramwindow.C:91
+#: plugins/linearblur/linearblur.C:298 plugins/radialblur/radialblur.C:296
+#: plugins/swapchannels/swapchannels.C:429
+#: plugins/swapchannels/swapchannels.C:450 plugins/zoomblur/zoomblur.C:308
 msgid "Blue"
 msgstr ""
 
-#: cinelerra//colorpicker.C:216 plugins/denoisevideo/denoisevideo.C:282
-#: plugins/downsample/downsample.C:295 plugins/linearblur/linearblur.C:301
-#: plugins/radialblur/radialblur.C:299 plugins/swapchannels/swapchannels.C:434
-#: plugins/swapchannels/swapchannels.C:453 plugins/zoomblur/zoomblur.C:311
+#: cinelerra//colorpicker.C:216 plugins/denoisevideo/denoisevideo.C:281
+#: plugins/downsample/downsample.C:294 plugins/linearblur/linearblur.C:300
+#: plugins/radialblur/radialblur.C:298 plugins/swapchannels/swapchannels.C:432
+#: plugins/swapchannels/swapchannels.C:451 plugins/zoomblur/zoomblur.C:310
 msgid "Alpha"
 msgstr ""
 
+#: cinelerra//commercials.C:168 cinelerra//commercials.C:578
+#: cinelerra//commercials.C:798
+msgid "Cutting Ads"
+msgstr ""
+
+#: cinelerra//commercials.C:326
+#, c-format
+msgid "***MUTE***\n"
+msgstr ""
+
+#: cinelerra//commercials.C:338
+#, c-format
+msgid "***UNMUTE***\n"
+msgstr ""
+
+#: cinelerra//commercials.C:650
+#, c-format
+msgid "cut clip %d in edit @%f %f-%f, clip @%f-%f\n"
+msgstr ""
+
+#: cinelerra//commercials.C:672
+#, c-format
+msgid "ad: trk %d@%s  "
+msgstr ""
+
+#: cinelerra//commercials.C:682
+#, c-format
+msgid "trk%d edt%d asset %s"
+msgstr ""
+
+#: cinelerra//commercials.C:692
+#, c-format
+msgid "scan: clip%d %f-%f"
+msgstr ""
+
+#: cinelerra//commercials.C:700
+msgid "Scanning"
+msgstr ""
+
+#: cinelerra//commercials.C:703
+msgid "My"
+msgstr ""
+
+#: cinelerra//commercials.C:935
+#, c-format
+msgid "cut %f/%f = %d\n"
+msgstr ""
+
 #: cinelerra//compresspopup.C:39 cinelerra//filemov.C:52
 msgid "DV"
 msgstr ""
 
-#: cinelerra//compresspopup.C:40 cinelerra//file.inc:92
+#: cinelerra//compresspopup.C:40 cinelerra//file.inc:91
 msgid "JPEG"
 msgstr ""
 
@@ -1025,7 +1437,7 @@ msgstr ""
 msgid "MJPA"
 msgstr ""
 
-#: cinelerra//compresspopup.C:42 cinelerra//file.inc:101
+#: cinelerra//compresspopup.C:42 cinelerra//file.inc:100
 #: cinelerra//filemov.C:53
 msgid "PNG"
 msgstr ""
@@ -1050,8 +1462,12 @@ msgstr ""
 msgid "YUV422"
 msgstr ""
 
+#: cinelerra//confirmquit.C:33
+msgid ": Confirm Quit"
+msgstr ""
+
 #: cinelerra//confirmquit.C:54
-msgid "( Answering No will destroy changes )"
+msgid "( Answering \"No\" will destroy changes )"
 msgstr ""
 
 #: cinelerra//confirmquit.C:67 cinelerra//question.C:62
@@ -1064,6 +1480,20 @@ msgstr ""
 msgid "No"
 msgstr ""
 
+#: cinelerra//confirmsave.C:76
+#, c-format
+msgid "The following files exist:\n"
+msgstr ""
+
+#: cinelerra//confirmsave.C:81
+#, c-format
+msgid "Won't overwrite existing files.\n"
+msgstr ""
+
+#: cinelerra//confirmsave.C:106
+msgid ": File Exists"
+msgstr ""
+
 #: cinelerra//confirmsave.C:129
 msgid "The following files exist.  Overwrite them?"
 msgstr ""
@@ -1112,10 +1542,18 @@ msgstr ""
 msgid "Crop Video..."
 msgstr ""
 
+#: cinelerra//cropvideo.C:97 cinelerra//cwindowtool.C:369
+msgid ": Crop"
+msgstr ""
+
 #: cinelerra//cropvideo.C:110
 msgid "Select a region to crop in the video output window"
 msgstr ""
 
+#: cinelerra//cwindowgui.C:79
+msgid ": Compositor"
+msgstr ""
+
 #: cinelerra//cwindowgui.C:597 cinelerra//cwindowgui.C:634
 msgid "insert assets"
 msgstr ""
@@ -1183,17 +1621,43 @@ msgstr ""
 msgid "H:"
 msgstr ""
 
-#: cinelerra//cwindowtool.C:614 cinelerra//cwindowtool.C:1070
-#: cinelerra//cwindowtool.C:1961 plugins/radialblur/radialblur.C:277
-#: plugins/titler/titlewindow.C:263 plugins/zoomblur/zoomblur.C:289
+#: cinelerra//cwindowtool.C:481
+msgid ": Color"
+msgstr ""
+
+#: cinelerra//cwindowtool.C:499 plugins/blur/blurwindow.C:59
+#: plugins/lens/lens.C:552 plugins/oilpainting/oil.C:268
+#: plugins/unsharp/unsharpwindow.C:56 plugins/zoomblur/zoomblur.C:296
+msgid "Radius:"
+msgstr ""
+
+#: cinelerra//cwindowtool.C:502
+msgid "Red:"
+msgstr ""
+
+#: cinelerra//cwindowtool.C:504
+msgid "Green:"
+msgstr ""
+
+#: cinelerra//cwindowtool.C:506
+msgid "Blue:"
+msgstr ""
+
+#: cinelerra//cwindowtool.C:582
+msgid ": Camera"
+msgstr ""
+
+#: cinelerra//cwindowtool.C:614 cinelerra//cwindowtool.C:1070
+#: cinelerra//cwindowtool.C:1961 plugins/radialblur/radialblur.C:276
+#: plugins/titler/titlewindow.C:263 plugins/zoomblur/zoomblur.C:288
 msgid "X:"
 msgstr ""
 
 #: cinelerra//cwindowtool.C:625 cinelerra//cwindowtool.C:1079
 #: cinelerra//cwindowtool.C:1969 plugins/perspective/perspective.C:155
-#: plugins/radialblur/radialblur.C:281 plugins/titler/titlewindow.C:268
-#: plugins/yuv/yuv.C:179 plugins/yuv/yuvwindow.C:50
-#: plugins/zoomblur/zoomblur.C:293
+#: plugins/radialblur/radialblur.C:280 plugins/titler/titlewindow.C:268
+#: plugins/yuv/yuv.C:178 plugins/yuv/yuvwindow.C:50
+#: plugins/zoomblur/zoomblur.C:292
 msgid "Y:"
 msgstr ""
 
@@ -1225,6 +1689,10 @@ msgstr ""
 msgid "Bottom justify"
 msgstr ""
 
+#: cinelerra//cwindowtool.C:1039
+msgid ": Projector"
+msgstr ""
+
 #: cinelerra//cwindowtool.C:1502 cinelerra//cwindowtool.C:1515
 msgid "Multiply alpha"
 msgstr ""
@@ -1250,16 +1718,21 @@ msgstr ""
 msgid "mask value"
 msgstr ""
 
+#: cinelerra//cwindowtool.C:1909
+msgid ": Mask"
+msgstr ""
+
 #: cinelerra//cwindowtool.C:1934 cinelerra//recordgui.C:169
-#: plugins/audioscope/audioscope.C:403 plugins/denoisemjpeg/denoisemjpeg.C:401
-#: plugins/echocancel/echocancel.C:453 plugins/lens/lens.C:635
-#: plugins/overlay/overlay.C:265 plugins/spectrogram/spectrogram.C:453
+#: plugins/audioscope/audioscope.C:401 plugins/denoisemjpeg/denoisemjpeg.C:400
+#: plugins/echocancel/echocancel.C:451 plugins/lens/lens.C:635
+#: plugins/overlay/overlay.C:264 plugins/overlayaudio/overlayaudio.C:209
+#: plugins/spectrogram/spectrogram.C:451
 msgid "Mode:"
 msgstr ""
 
-#: cinelerra//cwindowtool.C:1942 cinelerra//fileavi.C:936
+#: cinelerra//cwindowtool.C:1942 cinelerra//fileavi.C:934
 #: plugins/color3way/color3waywindow.C:157
-#: plugins/huesaturation/huesaturation.C:322
+#: plugins/huesaturation/huesaturation.C:321
 msgid "Value:"
 msgstr ""
 
@@ -1283,6 +1756,32 @@ msgstr ""
 msgid "Press Shift to edit bezier curve"
 msgstr ""
 
+#: cinelerra//cwindowtool.C:2145
+msgid ": Ruler"
+msgstr ""
+
+#: cinelerra//cwindowtool.C:2161
+msgid "Current:"
+msgstr ""
+
+#: cinelerra//cwindowtool.C:2165
+msgid "Point 1:"
+msgstr ""
+
+#: cinelerra//cwindowtool.C:2169
+msgid "Point 2:"
+msgstr ""
+
+#: cinelerra//cwindowtool.C:2173
+msgid "Distance:"
+msgstr ""
+
+#: cinelerra//cwindowtool.C:2176 plugins/gradient/gradient.C:276
+#: plugins/linearblur/linearblur.C:286 plugins/polar/polar.C:208
+#: plugins/radialblur/radialblur.C:284 plugins/timefront/timefront.C:201
+msgid "Angle:"
+msgstr ""
+
 #: cinelerra//cwindowtool.C:2180
 #, c-format
 msgid ""
@@ -1295,7 +1794,49 @@ msgstr ""
 msgid "Press Alt to translate the ruler."
 msgstr ""
 
-#: cinelerra//dcoffset.C:58 plugins/dcoffset/dcoffset.C:60
+#: cinelerra//cwindowtool.C:2228
+#, c-format
+msgid "%0.01f pixels"
+msgstr ""
+
+#: cinelerra//dbwindow.C:192
+msgid "Media DB"
+msgstr ""
+
+#: cinelerra//dbwindow.C:192
+msgid "Shift-M"
+msgstr ""
+
+#: cinelerra//dbwindow.C:435
+msgid ": DbWindow"
+msgstr ""
+
+#: cinelerra//dbwindow.C:464
+msgid "ticon"
+msgstr ""
+
+#: cinelerra//dbwindow.C:465
+msgid "Id"
+msgstr ""
+
+#: cinelerra//dbwindow.C:466
+msgid "length"
+msgstr ""
+
+#: cinelerra//dbwindow.C:470
+msgid "Access time"
+msgstr ""
+
+#: cinelerra//dbwindow.C:471
+msgid "count"
+msgstr ""
+
+#: cinelerra//dbwindow.C:600
+#, c-format
+msgid "failed delete clip id %d\n"
+msgstr ""
+
+#: cinelerra//dcoffset.C:58 plugins/dcoffset/dcoffset.C:59
 msgid "DC Offset"
 msgstr ""
 
@@ -1308,6 +1849,66 @@ msgstr ""
 msgid "Delete all indexes in %s?"
 msgstr ""
 
+#: cinelerra//deleteallindexes.C:102
+msgid ": Delete All Indexes"
+msgstr ""
+
+#: cinelerra//devicedvbinput.C:405
+#, c-format
+msgid "** %scarrier, dvb_locked %s\n"
+msgstr ""
+
+#: cinelerra//devicedvbinput.C:406
+msgid "no "
+msgstr ""
+
+#: cinelerra//devicedvbinput.C:406
+msgid "lock"
+msgstr ""
+
+#: cinelerra//devicedvbinput.C:406
+msgid "lost"
+msgstr ""
+
+#: cinelerra//devicempeginput.C:597
+#, c-format
+msgid "DeviceMPEGInput::get_channeldb::element %d (id %d.%d) has %d/%d video/audio streams\n"
+msgstr ""
+
+#: cinelerra//devicempeginput.C:603
+#, c-format
+msgid "  only first audio stream will be used\n"
+msgstr ""
+
+#: cinelerra//devicempeginput.C:617
+#, c-format
+msgid "  only first video stream will be used\n"
+msgstr ""
+
+#: cinelerra//devicev4l2base.C:385
+#, c-format
+msgid "DeviceV4L2Base::v4l2_open  attempting format %4.4s\n"
+msgstr ""
+
+#: cinelerra//devicev4l2base.C:390
+#, c-format
+msgid "DeviceV4L2Base::v4l2_open jpeg driver and best_format not mjpeg (%4.4s)\n"
+msgstr ""
+
+#: cinelerra//devicev4l2base.C:396
+#, c-format
+msgid "DeviceV4L2Base::v4l2_open mpeg driver and best_format not mpeg (%4.4s)\n"
+msgstr ""
+
+#: cinelerra//devicev4l2base.C:402
+#, c-format
+msgid "DeviceV4L2Base::v4l2_open  config geom %dx%d != %dx%d best_geom\n"
+msgstr ""
+
+#: cinelerra//editlength.C:131
+msgid ": Edit length"
+msgstr ""
+
 #: cinelerra//editlength.C:154 cinelerra//transitionpopup.C:118
 msgid "Seconds:"
 msgstr ""
@@ -1424,6 +2025,10 @@ msgstr ""
 msgid "Attach effect..."
 msgstr ""
 
+#: cinelerra//editpopup.C:109
+msgid ": Attach Effect"
+msgstr ""
+
 #: cinelerra//editpopup.C:152
 msgid "Resize track..."
 msgstr ""
@@ -1432,13 +2037,13 @@ msgstr ""
 msgid "Match output size"
 msgstr ""
 
-#: cinelerra//editpopup.C:197 cinelerra//mainmenu.C:967
-#: cinelerra//mainmenu.C:1035
+#: cinelerra//editpopup.C:197 cinelerra//mainmenu.C:968
+#: cinelerra//mainmenu.C:1036
 msgid "Delete track"
 msgstr ""
 
-#: cinelerra//editpopup.C:214 cinelerra//mainmenu.C:955
-#: cinelerra//mainmenu.C:1021
+#: cinelerra//editpopup.C:214 cinelerra//mainmenu.C:956
+#: cinelerra//mainmenu.C:1022
 msgid "Add track"
 msgstr ""
 
@@ -1446,10 +2051,22 @@ msgstr ""
 msgid "User title..."
 msgstr ""
 
+#: cinelerra//editpopup.C:284
+msgid ": Set edit title"
+msgstr ""
+
 #: cinelerra//editpopup.C:319
 msgid "User title"
 msgstr ""
 
+#: cinelerra//featheredits.C:35
+msgid "Feather Edits..."
+msgstr ""
+
+#: cinelerra//featheredits.C:78
+msgid ": Feather Edits"
+msgstr ""
+
 #: cinelerra//featheredits.C:100
 msgid "Feather by how many samples:"
 msgstr ""
@@ -1458,215 +2075,409 @@ msgstr ""
 msgid "Feather by how many frames:"
 msgstr ""
 
-#: cinelerra//fileavi.C:781 cinelerra//fileavi.C:927
+#: cinelerra//ffmpeg.C:42
+#, c-format
+msgid "%s  err: %s\n"
+msgstr ""
+
+#: cinelerra//ffmpeg.C:1046
+#, c-format
+msgid "FFMPEG::get_encoder: err: format/codec not found %s\n"
+msgstr ""
+
+#: cinelerra//ffmpeg.C:1097
+#, c-format
+msgid "FFMPEG::read_options: err reading %s: line %d\n"
+msgstr ""
+
+#: cinelerra//ffmpeg.C:1177
+#, c-format
+msgid "stream %d,  id 0x%06x:\n"
+msgstr ""
+
+#: cinelerra//ffmpeg.C:1209
+msgid "  codec_type unknown\n"
+msgstr ""
+
+#: cinelerra//fileavi.C:734
+msgid ": Audio compression"
+msgstr ""
+
+#: cinelerra//fileavi.C:779 cinelerra//fileavi.C:925
 msgid "Codec: "
 msgstr ""
 
-#: cinelerra//fileavi.C:790
+#: cinelerra//fileavi.C:788
 msgid "Compressor: 16 bit PCM"
 msgstr ""
 
-#: cinelerra//fileavi.C:932
+#: cinelerra//fileavi.C:868 cinelerra//filedv.C:1026 cinelerra//fileexr.C:575
+#: cinelerra//filejpeglist.C:156 cinelerra//filemov.C:1722
+#: cinelerra//filempeg.C:2005 cinelerra//fileogg.C:2145
+#: cinelerra//filetga.C:902
+msgid ": Video Compression"
+msgstr ""
+
+#: cinelerra//fileavi.C:930
 msgid "Attributes:"
 msgstr ""
 
-#: cinelerra//fileavi.C:943
+#: cinelerra//fileavi.C:941
 msgid "Compressor: Consumer DV"
 msgstr ""
 
-#: cinelerra//file.C:307
+#: cinelerra//file.C:322
 msgid "This format doesn't support audio."
 msgstr ""
 
-#: cinelerra//file.C:310
+#: cinelerra//file.C:325
 msgid "This format doesn't support video."
 msgstr ""
 
-#: cinelerra//file.C:2280 cinelerra//file.C:2286 cinelerra//fileformat.C:166
+#: cinelerra//file.C:2276 cinelerra//file.C:2282 cinelerra//fileformat.C:166
 #: cinelerra//filesndfile.C:458
 msgid "Lo Hi"
 msgstr ""
 
-#: cinelerra//file.C:2287 cinelerra//fileformat.C:180
+#: cinelerra//file.C:2283 cinelerra//fileformat.C:180
 #: cinelerra//filesndfile.C:443
 msgid "Hi Lo"
 msgstr ""
 
-#: cinelerra//filedv.C:1017
+#: cinelerra//file.C:2536
+msgid "UNKNOWN"
+msgstr ""
+
+#: cinelerra//filedv.C:190
+#, c-format
+msgid ""
+"Raw DV format does not support following resolution: %ix%i framerate: %f\n"
+"Allowed resolutions are 720x576 25fps (PAL) and 720x480 29.97fps (NTSC)\n"
+msgstr ""
+
+#: cinelerra//filedv.C:193
+msgid "Suggestion: Proper frame rate for NTSC DV is 29.97 fps, not 30 fps\n"
+msgstr ""
+
+#: cinelerra//filedv.C:200
+#, c-format
+msgid "Raw DV format does not support following audio configuration : %i channels at sample rate: %iHz\n"
+msgstr ""
+
+#: cinelerra//filedv.C:207 cinelerra//filelist.C:481 cinelerra//filelist.C:663
+#, c-format
+msgid ""
+"Error while opening \"%s\" for writing. \n"
+"%m\n"
+msgstr ""
+
+#: cinelerra//filedv.C:249 cinelerra//filelist.C:309 cinelerra//filelist.C:383
+#: cinelerra//filetga.C:219
+#, c-format
+msgid ""
+"Error while opening \"%s\" for reading. \n"
+"%m\n"
+msgstr ""
+
+#: cinelerra//filedv.C:389
+#, c-format
+msgid "ERROR: Unable to allocate memory for audio_sample_buffer.\n"
+msgstr ""
+
+#: cinelerra//filedv.C:399
+#, c-format
+msgid "ERROR: Unable to allocate memory for audio_sample_buffer channel %d\n"
+msgstr ""
+
+#: cinelerra//filedv.C:418
+#, c-format
+msgid "ERROR: Unable to reallocate memory for audio_sample_buffer channel %d\n"
+msgstr ""
+
+#: cinelerra//filedv.C:478
+msgid "Unable to store sample"
+msgstr ""
+
+#: cinelerra//filedv.C:505
+#, c-format
+msgid "Unable to set audio write position to %ji\n"
+msgstr ""
+
+#: cinelerra//filedv.C:513
+msgid "Unable to read from audio buffer file\n"
+msgstr ""
+
+#: cinelerra//filedv.C:544 cinelerra//filedv.C:556
+#, c-format
+msgid "ERROR: unable to encode audio frame %d\n"
+msgstr ""
+
+#: cinelerra//filedv.C:567
+#, c-format
+msgid "ERROR: Unable to relocate for audio write to %ji\n"
+msgstr ""
+
+#: cinelerra//filedv.C:574
+msgid "Unable to write audio to audio buffer\n"
+msgstr ""
+
+#: cinelerra//filedv.C:672 cinelerra//filedv.C:695 cinelerra//filedv.C:712
+#, c-format
+msgid "Unable to seek file to %ji\n"
+msgstr ""
+
+#: cinelerra//filedv.C:676
+msgid "Unable to write video data to video buffer"
+msgstr ""
+
+#: cinelerra//filedv.C:776
+#, c-format
+msgid "Error decoding audio frame %d\n"
+msgstr ""
+
+#: cinelerra//filedv.C:815
+#, c-format
+msgid "Unable to seek file to %ji"
+msgstr ""
+
+#: cinelerra//filedv.C:993 cinelerra//fileflac.C:363 cinelerra//filemov.C:1430
+#: cinelerra//filempeg.C:1810 cinelerra//fileogg.C:2018
+#: cinelerra//filesndfile.C:375 cinelerra//filevorbis.C:360
+msgid ": Audio Compression"
+msgstr ""
+
+#: cinelerra//filedv.C:1010
 msgid "There are no audio options for this format"
 msgstr ""
 
-#: cinelerra//filedv.C:1050
+#: cinelerra//filedv.C:1043
 msgid "There are no video options for this format"
 msgstr ""
 
-#: cinelerra//fileexr.C:615 cinelerra//filepng.C:476
+#: cinelerra//fileexr.C:613 cinelerra//filepng.C:440
 msgid "Use alpha"
 msgstr ""
 
+#: cinelerra//fileffmpeg.C:139
+#, c-format
+msgid "file path: %s\n"
+msgstr ""
+
+#: cinelerra//fileffmpeg.C:143
+#, c-format
+msgid " err: %s\n"
+msgstr ""
+
+#: cinelerra//fileffmpeg.C:147
+#, c-format
+msgid "  %jd bytes\n"
+msgstr ""
+
+#: cinelerra//fileffmpeg.C:152
+#, c-format
+msgid "info:\n"
+msgstr ""
+
+#: cinelerra//fileffmpeg.C:156
+#, c-format
+msgid "== open failed\n"
+msgstr ""
+
+#: cinelerra//fileffmpeg.C:325
+msgid ": Audio Preset"
+msgstr ""
+
+#: cinelerra//fileffmpeg.C:375
+msgid "Preset:"
+msgstr ""
+
+#: cinelerra//fileffmpeg.C:381 cinelerra//fileffmpeg.C:521
+#: cinelerra//filemov.C:1544 cinelerra//filemov.C:1595
+#: cinelerra//filemov.C:1898 cinelerra//filemov.C:1931
+#: cinelerra//filemov.C:1988 cinelerra//filempeg.C:2117
+#: cinelerra//fileogg.C:2168
+msgid "Bitrate:"
+msgstr ""
+
+#: cinelerra//fileffmpeg.C:386
+msgid "Audio Options:"
+msgstr ""
+
+#: cinelerra//fileffmpeg.C:458
+msgid ": Video Preset"
+msgstr ""
+
+#: cinelerra//fileffmpeg.C:525 cinelerra//filejpeg.C:331
+#: cinelerra//filejpeglist.C:174 cinelerra//filemov.C:2057
+#: cinelerra//filemov.C:2067 cinelerra//fileogg.C:2173
+#: cinelerra//formatwindow.C:112 cinelerra//formatwindow.C:123
+msgid "Quality:"
+msgstr ""
+
+#: cinelerra//fileffmpeg.C:531
+msgid "Video Options:"
+msgstr ""
+
+#: cinelerra//fileformat.C:34
+msgid ": File Format"
+msgstr ""
+
 #: cinelerra//fileformat.C:74
 msgid "Assuming raw PCM:"
 msgstr ""
 
-#: cinelerra//file.inc:82
+#: cinelerra//file.inc:81
 msgid "AC3"
 msgstr ""
 
-#: cinelerra//file.inc:83
+#: cinelerra//file.inc:82
 msgid "Apple/SGI AIFF"
 msgstr ""
 
-#: cinelerra//file.inc:84
+#: cinelerra//file.inc:83
 msgid "AVI Arne Type 1"
 msgstr ""
 
-#: cinelerra//file.inc:85
+#: cinelerra//file.inc:84
 msgid "AVI Avifile"
 msgstr ""
 
-#: cinelerra//file.inc:86
+#: cinelerra//file.inc:85
 msgid "AVI DV Type 2"
 msgstr ""
 
-#: cinelerra//file.inc:87
+#: cinelerra//file.inc:86
 msgid "AVI Lavtools"
 msgstr ""
 
-#: cinelerra//file.inc:88
+#: cinelerra//file.inc:87
 msgid "EXR"
 msgstr ""
 
-#: cinelerra//file.inc:89
+#: cinelerra//file.inc:88
 msgid "EXR Sequence"
 msgstr ""
 
-#: cinelerra//file.inc:90
+#: cinelerra//file.inc:89
 msgid "FFMPEG"
 msgstr ""
 
-#: cinelerra//file.inc:91
+#: cinelerra//file.inc:90
 msgid "FLAC"
 msgstr ""
 
-#: cinelerra//file.inc:93
+#: cinelerra//file.inc:92
 msgid "JPEG Sequence"
 msgstr ""
 
-#: cinelerra//file.inc:94
+#: cinelerra//file.inc:93
 msgid "Microsoft AVI"
 msgstr ""
 
-#: cinelerra//file.inc:95
+#: cinelerra//file.inc:94
 msgid "Microsoft WAV"
 msgstr ""
 
-#: cinelerra//file.inc:96
+#: cinelerra//file.inc:95
 msgid "MPEG Audio"
 msgstr ""
 
-#: cinelerra//file.inc:97
+#: cinelerra//file.inc:96
 msgid "MPEG"
 msgstr ""
 
-#: cinelerra//file.inc:98
+#: cinelerra//file.inc:97
 msgid "MPEG Video"
 msgstr ""
 
-#: cinelerra//file.inc:99
+#: cinelerra//file.inc:98
 msgid "OGG Theora/Vorbis"
 msgstr ""
 
-#: cinelerra//file.inc:100
+#: cinelerra//file.inc:99
 msgid "OGG Vorbis"
 msgstr ""
 
-#: cinelerra//file.inc:102
+#: cinelerra//file.inc:101
 msgid "PNG Sequence"
 msgstr ""
 
-#: cinelerra//file.inc:103
+#: cinelerra//file.inc:102
 msgid "Quicktime for Linux"
 msgstr ""
 
-#: cinelerra//file.inc:104
+#: cinelerra//file.inc:103
 msgid "Raw DV"
 msgstr ""
 
-#: cinelerra//file.inc:105
+#: cinelerra//file.inc:104
 msgid "Raw PCM"
 msgstr ""
 
-#: cinelerra//file.inc:106
+#: cinelerra//file.inc:105
 msgid "Sun/NeXT AU"
 msgstr ""
 
-#: cinelerra//file.inc:107
+#: cinelerra//file.inc:106
 msgid "TGA"
 msgstr ""
 
-#: cinelerra//file.inc:108
+#: cinelerra//file.inc:107
 msgid "TGA Sequence"
 msgstr ""
 
-#: cinelerra//file.inc:109
+#: cinelerra//file.inc:108
 msgid "TIFF"
 msgstr ""
 
-#: cinelerra//file.inc:110
+#: cinelerra//file.inc:109
 msgid "TIFF Sequence"
 msgstr ""
 
-#: cinelerra//file.inc:111
+#: cinelerra//file.inc:110
 msgid "Unknown sound"
 msgstr ""
 
-#: cinelerra//file.inc:160
+#: cinelerra//file.inc:158
 msgid "8 Bit Linear"
 msgstr ""
 
-#: cinelerra//file.inc:161
+#: cinelerra//file.inc:159
 msgid "16 Bit Linear"
 msgstr ""
 
-#: cinelerra//file.inc:162
+#: cinelerra//file.inc:160
 msgid "24 Bit Linear"
 msgstr ""
 
-#: cinelerra//file.inc:163
+#: cinelerra//file.inc:161
 msgid "32 Bit Linear"
 msgstr ""
 
-#: cinelerra//file.inc:164
+#: cinelerra//file.inc:162
 msgid "u Law"
 msgstr ""
 
-#: cinelerra//file.inc:165
+#: cinelerra//file.inc:163
 msgid "IMA 4"
 msgstr ""
 
-#: cinelerra//file.inc:166
+#: cinelerra//file.inc:164
 msgid "ADPCM"
 msgstr ""
 
-#: cinelerra//file.inc:167
+#: cinelerra//file.inc:165
 msgid "Float"
 msgstr ""
 
-#: cinelerra//file.inc:170
+#: cinelerra//file.inc:168
 msgid "RGB ALPHA"
 msgstr ""
 
-#: cinelerra//file.inc:171
+#: cinelerra//file.inc:169
 msgid "PNG ALPHA"
 msgstr ""
 
-#: cinelerra//filejpeg.C:334 cinelerra//filejpeglist.C:174
-#: cinelerra//filemov.C:2069 cinelerra//filemov.C:2079
-#: cinelerra//fileogg.C:2171 cinelerra//formatwindow.C:112
-#: cinelerra//formatwindow.C:123
-msgid "Quality:"
-msgstr ""
-
 #: cinelerra//filejpeglist.C:50
 msgid "JPEGLIST"
 msgstr ""
@@ -1771,255 +2582,657 @@ msgstr ""
 msgid "MPEG-4 Audio"
 msgstr ""
 
+#: cinelerra//filemov.C:184
+#, c-format
+msgid ""
+"DV in Quicktime container does not support following resolution: %ix%i\n"
+"Allowed resolutions are 720x576 (PAL) and 720x480 (NTSC)\n"
+msgstr ""
+
+#: cinelerra//filemov.C:226
+#, c-format
+msgid ""
+"Error while opening file \"%s\". \n"
+"%m\n"
+msgstr ""
+
 #: cinelerra//filemov.C:304
 msgid "Made with Cinelerra for Linux"
 msgstr ""
 
-#: cinelerra//filemov.C:1534
+#: cinelerra//filemov.C:1176
+#, c-format
+msgid "quicktime_decode_audio failed\n"
+msgstr ""
+
+#: cinelerra//filemov.C:1522
 msgid "Bits per channel:"
 msgstr ""
 
-#: cinelerra//filemov.C:1546 cinelerra//filesndfile.C:419
+#: cinelerra//filemov.C:1534 cinelerra//filesndfile.C:419
 #: cinelerra//formatwindow.C:197
 msgid "Dither"
 msgstr ""
 
-#: cinelerra//filemov.C:1556 cinelerra//filemov.C:1607
-#: cinelerra//filemov.C:1910 cinelerra//filemov.C:1943
-#: cinelerra//filemov.C:2000 cinelerra//filempeg.C:2133
-#: cinelerra//fileogg.C:2166
-msgid "Bitrate:"
-msgstr ""
-
-#: cinelerra//filemov.C:1571 cinelerra//fileogg.C:2083
-#: cinelerra//filevorbis.C:428
+#: cinelerra//filemov.C:1559 cinelerra//fileogg.C:2085
+#: cinelerra//filevorbis.C:434
 msgid "Variable bitrate"
 msgstr ""
 
-#: cinelerra//filemov.C:1577 cinelerra//fileogg.C:2045
-#: cinelerra//filevorbis.C:385
+#: cinelerra//filemov.C:1565 cinelerra//fileogg.C:2047
+#: cinelerra//filevorbis.C:391
 msgid "Min bitrate:"
 msgstr ""
 
-#: cinelerra//filemov.C:1584 cinelerra//fileogg.C:2049
-#: cinelerra//filevorbis.C:389
+#: cinelerra//filemov.C:1572 cinelerra//fileogg.C:2051
+#: cinelerra//filevorbis.C:395
 msgid "Avg bitrate:"
 msgstr ""
 
-#: cinelerra//filemov.C:1591 cinelerra//fileogg.C:2054
-#: cinelerra//filevorbis.C:394
+#: cinelerra//filemov.C:1579 cinelerra//fileogg.C:2056
+#: cinelerra//filevorbis.C:400
 msgid "Max bitrate:"
 msgstr ""
 
-#: cinelerra//filemov.C:1616
+#: cinelerra//filemov.C:1604
 msgid "Quantization Quality (%):"
 msgstr ""
 
-#: cinelerra//filemov.C:1922 cinelerra//filemov.C:1966
-#: cinelerra//filempeg.C:2139
+#: cinelerra//filemov.C:1910 cinelerra//filemov.C:1954
+#: cinelerra//filempeg.C:2123
 msgid "Quantization:"
 msgstr ""
 
-#: cinelerra//filemov.C:1956
+#: cinelerra//filemov.C:1944
 msgid "Bitrate tolerance:"
 msgstr ""
 
-#: cinelerra//filemov.C:1980 plugins/denoisemjpeg/denoisemjpeg.C:297
+#: cinelerra//filemov.C:1968 plugins/denoisemjpeg/denoisemjpeg.C:296
 msgid "Interlaced"
 msgstr ""
 
-#: cinelerra//filemov.C:1986
+#: cinelerra//filemov.C:1974
 msgid "Keyframe interval:"
 msgstr ""
 
-#: cinelerra//filemov.C:2013
+#: cinelerra//filemov.C:2001
 msgid "Quantizer:"
 msgstr ""
 
-#: cinelerra//filemov.C:2027
+#: cinelerra//filemov.C:2015
 msgid "RC Period:"
 msgstr ""
 
-#: cinelerra//filemov.C:2034
+#: cinelerra//filemov.C:2022
 msgid "Reaction Ratio:"
 msgstr ""
 
-#: cinelerra//filemov.C:2041
+#: cinelerra//filemov.C:2029
 msgid "Reaction Period:"
 msgstr ""
 
-#: cinelerra//filemov.C:2048
+#: cinelerra//filemov.C:2036
 msgid "Max Key Interval:"
 msgstr ""
 
-#: cinelerra//filemov.C:2055
+#: cinelerra//filemov.C:2043
 msgid "Max Quantizer:"
 msgstr ""
 
-#: cinelerra//filemov.C:2062
+#: cinelerra//filemov.C:2050
 msgid "Min Quantizer:"
 msgstr ""
 
-#: cinelerra//filemov.C:2184
+#: cinelerra//filemov.C:2172
 msgid "Fix bitrate"
 msgstr ""
 
-#: cinelerra//filemov.C:2209
+#: cinelerra//filemov.C:2197
 msgid "Fix quantization"
 msgstr ""
 
-#: cinelerra//filempeg.C:703
+#: cinelerra//filempeg.C:150
+#, c-format
+msgid "toc path:%s\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:151
+#, c-format
+msgid "title path:\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:159
+#, c-format
+msgid "file path:%s\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:164
+#, c-format
+msgid "size: %s"
+msgstr ""
+
+#: cinelerra//filempeg.C:167
+#, c-format
+msgid "  program stream\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:169
+#, c-format
+msgid "  transport stream\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:171
+#, c-format
+msgid "  video stream\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:173
+#, c-format
+msgid "  audio stream\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:182
+#, c-format
+msgid "date: %s\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:185
+#, c-format
+msgid "%d video tracks\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:192
+#, c-format
+msgid "  v%d %s %dx%d"
+msgstr ""
+
+#: cinelerra//filempeg.C:195
+#, c-format
+msgid " (%5.2f), %ld frames"
+msgstr ""
+
+#: cinelerra//filempeg.C:198 cinelerra//filempeg.C:217
+#, c-format
+msgid " (%0.3f secs)"
+msgstr ""
+
+#: cinelerra//filempeg.C:203
+#, c-format
+msgid "%d audio tracks\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:206
+#, c-format
+msgid " a%d %s"
+msgstr ""
+
+#: cinelerra//filempeg.C:209
+#, c-format
+msgid " ch%d (%d)"
+msgstr ""
+
+#: cinelerra//filempeg.C:214
+#, c-format
+msgid "%ld samples"
+msgstr ""
+
+#: cinelerra//filempeg.C:223
+#, c-format
+msgid "%d subtitles\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:227
+#, c-format
+msgid "%d title sets, "
+msgstr ""
+
+#: cinelerra//filempeg.C:230
+#, c-format
+msgid "%d interleaves\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:235
+#, c-format
+msgid ""
+"current program %d = title %d, angle %d, interleave %d\n"
+"\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:244
+#, c-format
+msgid "cell times:"
+msgstr ""
+
+#: cinelerra//filempeg.C:247
+#, c-format
+msgid "  %3d.  %8.3f"
+msgstr ""
+
+#: cinelerra//filempeg.C:256
+#, c-format
+msgid ""
+"\n"
+"system time: %s"
+msgstr ""
+
+#: cinelerra//filempeg.C:258
+#, c-format
+msgid "elements %d\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:292
+#, c-format
+msgid "no info"
+msgstr ""
+
+#: cinelerra//filempeg.C:394
+#, c-format
+msgid ""
+"Couldn't open %s: invalid table of contents version.\n"
+"Rebuilding the table of contents."
+msgstr ""
+
+#: cinelerra//filempeg.C:398
+#, c-format
+msgid ""
+"Couldn't open %s: table of contents out of date.\n"
+"Rebuilding the table of contents."
+msgstr ""
+
+#: cinelerra//filempeg.C:402
+#, c-format
+msgid ""
+"Couldn't open %s: table of contents corrupt.\n"
+"Rebuilding the table of contents."
+msgstr ""
+
+#: cinelerra//filempeg.C:417
+#, c-format
+msgid "Couldn't open %s: rebuild failed.\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:590
+#, c-format
+msgid "Unsupported aspect ratio %f\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:615
+#, c-format
+msgid "Unsupported frame rate %f\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:662 cinelerra//filempeg.C:710
+#: cinelerra//filempeg.C:730
+#, c-format
+msgid ""
+"Error while opening \"%s\" for writing\n"
+"%m\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:702
 #, c-format
 msgid "encode: lame_init_params returned %d\n"
 msgstr ""
 
-#: cinelerra//filempeg.C:1854 cinelerra//filempeg.C:2050
+#: cinelerra//filempeg.C:718
+#, c-format
+msgid "ampeg_derivative=%d\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:824
+msgid "cant init toc index\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:834
+msgid "cant access commercials database"
+msgstr ""
+
+#: cinelerra//filempeg.C:840
+#, c-format
+msgid "Creating %s\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:872
+msgid "toc scan stopped before eof"
+msgstr ""
+
+#: cinelerra//filempeg.C:946 cinelerra//filempeg.C:1238
+#, c-format
+msgid "twolame error encoding audio: %d\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:1014
+#, c-format
+msgid "unknown driver %d\n"
+msgstr ""
+
+#: cinelerra//filempeg.C:1299
+#, c-format
+msgid "write failed: %m"
+msgstr ""
+
+#: cinelerra//filempeg.C:1838 cinelerra//filempeg.C:2034
 msgid "No options for MPEG transport stream."
 msgstr ""
 
-#: cinelerra//filempeg.C:1860
+#: cinelerra//filempeg.C:1844
 msgid "Layer:"
 msgstr ""
 
-#: cinelerra//filempeg.C:1865
+#: cinelerra//filempeg.C:1849
 msgid "Kbits per second:"
 msgstr ""
 
-#: cinelerra//filempeg.C:1921 cinelerra//filempeg.C:1929
+#: cinelerra//filempeg.C:1905 cinelerra//filempeg.C:1913
 msgid "II"
 msgstr ""
 
-#: cinelerra//filempeg.C:1925
+#: cinelerra//filempeg.C:1909
 msgid "III"
 msgstr ""
 
-#: cinelerra//filempeg.C:2055 cinelerra//new.C:385 cinelerra//setformat.C:444
+#: cinelerra//filempeg.C:2039 cinelerra//new.C:385 cinelerra//setformat.C:445
 msgid "Color model:"
 msgstr ""
 
-#: cinelerra//filempeg.C:2120
+#: cinelerra//filempeg.C:2104
 msgid "Format Preset:"
 msgstr ""
 
-#: cinelerra//filempeg.C:2127
+#: cinelerra//filempeg.C:2111
 msgid "Derivative:"
 msgstr ""
 
-#: cinelerra//filempeg.C:2146
+#: cinelerra//filempeg.C:2130
 msgid "I frame distance:"
 msgstr ""
 
-#: cinelerra//filempeg.C:2154
+#: cinelerra//filempeg.C:2138
 msgid "P frame distance:"
 msgstr ""
 
-#: cinelerra//filempeg.C:2160 plugins/deinterlace-cv/deinterwindow-cv.C:109
+#: cinelerra//filempeg.C:2144 plugins/deinterlace-cv/deinterwindow-cv.C:109
 #: plugins/deinterlace-cv/deinterwindow-cv.C:115
-#: plugins/fieldframe/fieldframe.C:237 plugins/framefield/framefield.C:254
+#: plugins/fieldframe/fieldframe.C:236 plugins/framefield/framefield.C:253
 msgid "Bottom field first"
 msgstr ""
 
-#: cinelerra//filempeg.C:2164
+#: cinelerra//filempeg.C:2148
 msgid "Progressive frames"
 msgstr ""
 
-#: cinelerra//filempeg.C:2166 plugins/denoise/denoise.C:131
+#: cinelerra//filempeg.C:2150 plugins/denoise/denoise.C:129
 msgid "Denoise"
 msgstr ""
 
-#: cinelerra//filempeg.C:2168
+#: cinelerra//filempeg.C:2152
 msgid "Sequence start codes in every GOP"
 msgstr ""
 
-#: cinelerra//filempeg.C:2217 cinelerra//filempeg.C:2225
+#: cinelerra//filempeg.C:2201 cinelerra//filempeg.C:2209
 msgid "MPEG-1"
 msgstr ""
 
-#: cinelerra//filempeg.C:2221
+#: cinelerra//filempeg.C:2205
 msgid "MPEG-2"
 msgstr ""
 
-#: cinelerra//filempeg.C:2274 cinelerra//filempeg.C:2284
+#: cinelerra//filempeg.C:2258 cinelerra//filempeg.C:2268
 msgid "Generic MPEG-1"
 msgstr ""
 
-#: cinelerra//filempeg.C:2275
+#: cinelerra//filempeg.C:2259
 msgid "standard VCD"
 msgstr ""
 
-#: cinelerra//filempeg.C:2276
+#: cinelerra//filempeg.C:2260
 msgid "user VCD"
 msgstr ""
 
-#: cinelerra//filempeg.C:2277
+#: cinelerra//filempeg.C:2261
 msgid "Generic MPEG-2"
 msgstr ""
 
-#: cinelerra//filempeg.C:2278
+#: cinelerra//filempeg.C:2262
 msgid "standard SVCD"
 msgstr ""
 
-#: cinelerra//filempeg.C:2279
+#: cinelerra//filempeg.C:2263
 msgid "user SVCD"
 msgstr ""
 
-#: cinelerra//filempeg.C:2280
+#: cinelerra//filempeg.C:2264
 msgid "VCD Still sequence"
 msgstr ""
 
-#: cinelerra//filempeg.C:2281
+#: cinelerra//filempeg.C:2265
 msgid "SVCD Still sequence"
 msgstr ""
 
-#: cinelerra//filempeg.C:2282
-msgid "DVD NAV"
+#: cinelerra//filempeg.C:2266
+msgid "DVD NAV"
+msgstr ""
+
+#: cinelerra//filempeg.C:2267
+msgid "DVD"
+msgstr ""
+
+#: cinelerra//filempeg.C:2318 cinelerra//fileogg.C:2241
+#: cinelerra//filevorbis.C:422
+msgid "Fixed bitrate"
+msgstr ""
+
+#: cinelerra//filempeg.C:2332
+msgid "Fixed quantization"
+msgstr ""
+
+#: cinelerra//filempeg.C:2435 cinelerra//filempeg.C:2437
+msgid "YUV 4:2:0"
+msgstr ""
+
+#: cinelerra//filempeg.C:2436
+msgid "YUV 4:2:2"
+msgstr ""
+
+#: cinelerra//fileogg.C:175
+#, c-format
+msgid "FileOGG: Taking page out on nonsynced stream!\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:183
+#, c-format
+msgid "FileOGG: There is no more data in the file we are reading from\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:229 cinelerra//fileogg.C:446
+msgid "FileOGG::open_file rdwr"
+msgstr ""
+
+#: cinelerra//fileogg.C:263
+#, c-format
+msgid "FileOGG: WARNING: Encoding theora when width or height are not dividable by 16 is suboptimal\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:311
+#, c-format
+msgid "FileOGG: initialization of theora codec failed\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:346
+msgid ""
+"The Vorbis encoder could not set up a mode according to\n"
+"the requested quality or bitrate.\n"
+"\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:369 cinelerra//fileogg.C:396 cinelerra//fileogg.C:416
+#: cinelerra//fileogg.C:430
+msgid "Internal Ogg library error.\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:544 cinelerra//fileogg.C:549
+#, c-format
+msgid "FileOGG: Error parsing Theora stream headers; corrupt stream?\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:562 cinelerra//fileogg.C:567
+msgid "FileOGG: Error parsing Vorbis stream headers; corrupt stream?\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:588
+msgid "FileOGG: End of file while searching for codec headers.\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:650
+#, c-format
+msgid "FileOGG: Cannot find next page while looking for first non-header packet\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:664
+#, c-format
+msgid "FileOGG: Broken ogg file - broken page: ogg_page_packets == 0 and granulepos != -1\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:1004
+#, c-format
+msgid "FileOGG: Illegal seek beyond end of samples\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:1064
+#, c-format
+msgid "FileOGG: Seeking to sample's page failed\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:1083 cinelerra//fileogg.C:1283
+#: cinelerra//fileogg.C:1477
+#, c-format
+msgid "FileOGG: Cannot find next page while seeking\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:1119
+#, c-format
+msgid "FileOGG: Something wrong while trying to seek\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:1136
+#, c-format
+msgid "FileOGG: Illegal seek beyond end of frames\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:1151
+#, c-format
+msgid "FileOGG: ogg_sync_and_get_next_page failed\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:1227
+#, c-format
+msgid "FileOGG: Seeking to frame failed\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:1263
+#, c-format
+msgid "FileOGG: Seeking to keyframe failed\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:1314
+#, c-format
+msgid "Yay, we have an ogg file\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:1446
+#, c-format
+msgid "FileOGG:: Error while seeking to frame's keyframe (frame: "
+msgstr ""
+
+#: cinelerra//fileogg.C:1457
+#, c-format
+msgid "FileOGG:: Error while seeking to keyframe, wrong keyframe number (frame: "
+msgstr ""
+
+#: cinelerra//fileogg.C:1485
+#, c-format
+msgid "FileOGG: Expecting keyframe, but didn't get it\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:1501
+#, c-format
+msgid "FileOGG: theora_decode_YUVout failed with code %i\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:1563
+#, c-format
+msgid "FileOGG: Cannot find next page while trying to decode more samples\n"
+msgstr ""
+
+#: cinelerra//fileogg.C:1664
+#, c-format
+msgid "FileOGG: Error at finding out what to read from file\n"
 msgstr ""
 
-#: cinelerra//filempeg.C:2283
-msgid "DVD"
+#: cinelerra//fileogg.C:1736
+#, c-format
+msgid "FileOGG:: History not aligned properly \n"
 msgstr ""
 
-#: cinelerra//filempeg.C:2334 cinelerra//fileogg.C:2239
-#: cinelerra//filevorbis.C:416
-msgid "Fixed bitrate"
+#: cinelerra//fileogg.C:1737
+#, c-format
+msgid "\tnext_sample_position: "
 msgstr ""
 
-#: cinelerra//filempeg.C:2348
-msgid "Fixed quantization"
+#: cinelerra//fileogg.C:1738
+#, c-format
+msgid "\thistory_start: "
 msgstr ""
 
-#: cinelerra//filempeg.C:2451 cinelerra//filempeg.C:2453
-msgid "YUV 4:2:0"
+#: cinelerra//fileogg.C:1757
+msgid "error writing audio page\n"
 msgstr ""
 
-#: cinelerra//filempeg.C:2452
-msgid "YUV 4:2:2"
+#: cinelerra//fileogg.C:1770
+msgid "error writing video page\n"
 msgstr ""
 
-#: cinelerra//fileogg.C:230 cinelerra//fileogg.C:447
-msgid "FileOGG::open_file rdwr"
+#: cinelerra//fileogg.C:1944
+#, c-format
+msgid "FileOGG: theora_encode_YUVin failed with code %i\n"
 msgstr ""
 
-#: cinelerra//fileogg.C:2071
+#: cinelerra//fileogg.C:2073
 msgid "Average bitrate"
 msgstr ""
 
-#: cinelerra//fileogg.C:2188
+#: cinelerra//fileogg.C:2190
 msgid "Keyframe frequency:"
 msgstr ""
 
-#: cinelerra//fileogg.C:2194
+#: cinelerra//fileogg.C:2196
 msgid "Keyframe force frequency:"
 msgstr ""
 
-#: cinelerra//fileogg.C:2200 plugins/denoisemjpeg/denoisemjpeg.C:385
+#: cinelerra//fileogg.C:2202 plugins/denoisemjpeg/denoisemjpeg.C:384
+#: plugins/greycstoration/greycstorationwindow.C:51
 msgid "Sharpness:"
 msgstr ""
 
-#: cinelerra//fileogg.C:2253
+#: cinelerra//fileogg.C:2255
 msgid "Fixed quality"
 msgstr ""
 
+#: cinelerra//filesndfile.C:269
+#, c-format
+msgid "sf_seek() to sample %jd failed, reason: %s\n"
+msgstr ""
+
+#: cinelerra//filesndfile.C:286
+#, c-format
+msgid "buffer=%p\n"
+msgstr ""
+
+#: cinelerra//filesndfile.C:304
+#, c-format
+msgid "FileSndFile::read_samples fd=%p temp_double=%p len="
+msgstr ""
+
 #: cinelerra//filesndfile.C:423 cinelerra//formatwindow.C:209
 msgid "Signed"
 msgstr ""
@@ -2040,31 +3253,11 @@ msgstr ""
 msgid "RGBA uncompressed"
 msgstr ""
 
-#: cinelerra//filevorbis.C:133
+#: cinelerra//filevorbis.C:139
 #, c-format
 msgid "FileVorbis::open_file %s: invalid bitstream.\n"
 msgstr ""
 
-#: cinelerra//fileyuv.C:397
-msgid "Output Path:"
-msgstr ""
-
-#: cinelerra//fileyuv.C:405
-msgid "Use Pipe:"
-msgstr ""
-
-#: cinelerra//fileyuv.C:416
-msgid "Stream Header:"
-msgstr ""
-
-#: cinelerra//fileyuv.C:420
-msgid "Interlacing:"
-msgstr ""
-
-#: cinelerra//fileyuv.C:427
-msgid "Pipe Presets:"
-msgstr ""
-
 #: cinelerra//flipbook.C:32
 msgid "Flipbook..."
 msgstr ""
@@ -2087,10 +3280,14 @@ msgid ""
 "Quicktime Movies and PCM files."
 msgstr ""
 
-#: cinelerra//formatpopup.C:36
+#: cinelerra//formatpopup.C:38
 msgid "Change file format"
 msgstr ""
 
+#: cinelerra//formatpopup.C:102
+msgid "Set ffmpeg file type"
+msgstr ""
+
 #: cinelerra//formatpresets.C:60
 msgid "User Defined"
 msgstr ""
@@ -2151,54 +3348,62 @@ msgstr ""
 msgid "Presets:"
 msgstr ""
 
-#: cinelerra//formattools.C:162
+#: cinelerra//formatpresets.C:284
+msgid "Custom"
+msgstr ""
+
+#: cinelerra//formattools.C:186
 msgid "Output to file"
 msgstr ""
 
-#: cinelerra//formattools.C:163
+#: cinelerra//formattools.C:187
 msgid "Select a file to write to:"
 msgstr ""
 
-#: cinelerra//formattools.C:178 cinelerra//recordprefs.C:67
+#: cinelerra//formattools.C:202 cinelerra//recordprefs.C:67
 msgid "File Format:"
 msgstr ""
 
-#: cinelerra//formattools.C:274
+#: cinelerra//formattools.C:304
 msgid "MPEG stream"
 msgstr ""
 
-#: cinelerra//formattools.C:588
+#: cinelerra//formattools.C:645
 msgid "Configure audio compression"
 msgstr ""
 
-#: cinelerra//formattools.C:609
+#: cinelerra//formattools.C:666
 msgid "Configure video compression"
 msgstr ""
 
-#: cinelerra//formattools.C:723
+#: cinelerra//formattools.C:780
 msgid "Record audio tracks"
 msgstr ""
 
-#: cinelerra//formattools.C:723
+#: cinelerra//formattools.C:780
 msgid "Render audio tracks"
 msgstr ""
 
-#: cinelerra//formattools.C:740
+#: cinelerra//formattools.C:797
 msgid "Record video tracks"
 msgstr ""
 
-#: cinelerra//formattools.C:740
+#: cinelerra//formattools.C:797
 msgid "Render video tracks"
 msgstr ""
 
-#: cinelerra//formattools.C:801
+#: cinelerra//formattools.C:911
 msgid "Overwrite project with output"
 msgstr ""
 
-#: cinelerra//formattools.C:821
+#: cinelerra//formattools.C:931
 msgid "Create new file at each label"
 msgstr ""
 
+#: cinelerra//formatwindow.C:29 cinelerra//formatwindow.C:90
+msgid ": File format"
+msgstr ""
+
 #: cinelerra//formatwindow.C:46
 msgid "Set parameters for this audio format:"
 msgstr ""
@@ -2219,6 +3424,73 @@ msgstr ""
 msgid "Video is not supported in this format."
 msgstr ""
 
+#: cinelerra//gwindowgui.C:42
+msgid ": Overlays"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:60
+msgid "Assets"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:61
+msgid "Titles"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:62
+msgid "Transitions"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:63
+msgid "Plugin Autos"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:69 cinelerra//mainmenu.C:228
+msgid "Camera X"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:70 cinelerra//mainmenu.C:229
+msgid "Camera Y"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:71 cinelerra//mainmenu.C:230
+msgid "Camera Z"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:72 cinelerra//mainmenu.C:231
+msgid "Projector X"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:73 cinelerra//mainmenu.C:232
+msgid "Projector Y"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:74 cinelerra//mainmenu.C:233
+msgid "Projector Z"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:75 cinelerra//mainmenu.C:221
+msgid "Fade"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:77 cinelerra//mainmenu.C:223
+#: cinelerra//recordbatches.C:23 plugins/parametric/parametric.C:427
+msgid "Mode"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:78 cinelerra//mainmenu.C:226
+#: plugins/denoiseseltempavg/seltempavgwindow.C:66
+msgid "Mask"
+msgstr ""
+
+#: cinelerra//gwindowgui.C:79 cinelerra//mainmenu.C:227
+msgid "Speed"
+msgstr ""
+
+#: cinelerra//iec61883input.C:200
+#, c-format
+msgid "write_frame: incomplete frame received.\n"
+msgstr ""
+
 #: cinelerra//indexfile.C:474
 #, c-format
 msgid "Creating %s."
@@ -2286,46 +3558,71 @@ msgstr ""
 msgid "Editing"
 msgstr ""
 
-#: cinelerra//interfaceprefs.C:158
+#: cinelerra//interfaceprefs.C:166
+msgid "PIN:"
+msgstr ""
+
+#: cinelerra//interfaceprefs.C:171
 msgid "Clicking on edit boundaries does what:"
 msgstr ""
 
-#: cinelerra//interfaceprefs.C:160
+#: cinelerra//interfaceprefs.C:173
 msgid "Button 1:"
 msgstr ""
 
-#: cinelerra//interfaceprefs.C:169
+#: cinelerra//interfaceprefs.C:182
 msgid "Button 2:"
 msgstr ""
 
-#: cinelerra//interfaceprefs.C:177
+#: cinelerra//interfaceprefs.C:190
 msgid "Button 3:"
 msgstr ""
 
-#: cinelerra//interfaceprefs.C:187
+#: cinelerra//interfaceprefs.C:200
 msgid "Min DB for meter:"
 msgstr ""
 
-#: cinelerra//interfaceprefs.C:193
+#: cinelerra//interfaceprefs.C:206
 msgid "Max DB:"
 msgstr ""
 
-#: cinelerra//interfaceprefs.C:201
+#: cinelerra//interfaceprefs.C:214
 msgid "Theme:"
 msgstr ""
 
-#: cinelerra//interfaceprefs.C:603
+#: cinelerra//interfaceprefs.C:616
 msgid "Use thumbnails in resource window"
 msgstr ""
 
-#: cinelerra//interfaceprefs.C:620
+#: cinelerra//interfaceprefs.C:633
 msgid "Show tip of the day"
 msgstr ""
 
-#: cinelerra//interfaceprefs.C:636
+#: cinelerra//interfaceprefs.C:648
+msgid "ffmpeg probe warns rebuild indecies"
+msgstr ""
+
+#: cinelerra//interfaceprefs.C:666
 msgid "Scan for commercials during toc build"
 msgstr ""
 
+#: cinelerra//interfaceprefs.C:680
+msgid "Android Remote Control"
+msgstr ""
+
+#: cinelerra//keyframegui.C:53
+msgid "Parameter"
+msgstr ""
+
+#: cinelerra//keyframegui.C:124
+msgid "TEXT"
+msgstr ""
+
+#: cinelerra//keyframegui.C:152
+#, c-format
+msgid ": %s Keyframe"
+msgstr ""
+
 #: cinelerra//keyframegui.C:364 cinelerra//presetsgui.C:218
 msgid "apply preset"
 msgstr ""
@@ -2351,13 +3648,13 @@ msgid "Apply to all selected keyframes"
 msgstr ""
 
 #: cinelerra//keyframegui.C:853 cinelerra//presetsgui.C:335
-#: cinelerra//savefile.C:70
+#: cinelerra//savefile.C:70 cinelerra//swindow.C:123
 msgid "Save"
 msgstr ""
 
-#: cinelerra//keyframegui.C:876 cinelerra//preferencesthread.C:590
-#: cinelerra//preferencesthread.C:592 cinelerra//presetsgui.C:358
-#: cinelerra//setformat.C:882
+#: cinelerra//keyframegui.C:876 cinelerra//preferencesthread.C:593
+#: cinelerra//preferencesthread.C:595 cinelerra//presetsgui.C:358
+#: cinelerra//setformat.C:883
 msgid "Apply"
 msgstr ""
 
@@ -2389,7 +3686,7 @@ msgstr ""
 msgid "Hide keyframe type"
 msgstr ""
 
-#: cinelerra//keyframepopup.C:345 cinelerra//mainmenu.C:820
+#: cinelerra//keyframepopup.C:345 cinelerra//mainmenu.C:821
 msgid "Copy"
 msgstr ""
 
@@ -2405,62 +3702,131 @@ msgstr ""
 msgid "Next label"
 msgstr ""
 
+#: cinelerra//levelwindowgui.C:36
+msgid ": Levels"
+msgstr ""
+
 #: cinelerra//loadfile.C:45
 msgid "Load files..."
 msgstr ""
 
+#: cinelerra//loadfile.C:172
+msgid ": Load"
+msgstr ""
+
 #: cinelerra//loadfile.C:173
 msgid "Select files to load:"
 msgstr ""
 
+#: cinelerra//loadfile.C:236
+msgid ": Locate file"
+msgstr ""
+
 #: cinelerra//loadfile.C:296
 msgid "Load backup"
 msgstr ""
 
+#: cinelerra//loadmode.C:42
+msgid "Insert nothing"
+msgstr ""
+
+#: cinelerra//loadmode.C:43
+msgid "Replace current project"
+msgstr ""
+
+#: cinelerra//loadmode.C:44
+msgid "Replace current project and concatenate tracks"
+msgstr ""
+
+#: cinelerra//loadmode.C:45
+msgid "Append in new tracks"
+msgstr ""
+
+#: cinelerra//loadmode.C:46
+msgid "Concatenate to existing tracks"
+msgstr ""
+
+#: cinelerra//loadmode.C:47
+msgid "Paste at insertion point"
+msgstr ""
+
+#: cinelerra//loadmode.C:48
+msgid "Create new resources only"
+msgstr ""
+
+#: cinelerra//loadmode.C:49
+msgid "Nest sequence"
+msgstr ""
+
 #: cinelerra//loadmode.C:113 cinelerra//loadmode.C:159
 msgid "Insertion strategy:"
 msgstr ""
 
-#: cinelerra//main.C:286
+#: cinelerra//localsession.C:41
+#, c-format
+msgid "Program"
+msgstr ""
+
+#: cinelerra//main.C:195
+#, c-format
+msgid ": Could not set locale.\n"
+msgstr ""
+
+#: cinelerra//main.C:240
+#, c-format
+msgid "%s: -c needs a filename.\n"
+msgstr ""
+
+#: cinelerra//main.C:266
+#, c-format
+msgid "-b may not be used by the user.\n"
+msgstr ""
+
+#: cinelerra//main.C:301
+#, c-format
+msgid " "
+msgstr ""
+
+#: cinelerra//main.C:314
 #, c-format
 msgid ""
 "\n"
 "Usage:\n"
 msgstr ""
 
-#: cinelerra//main.C:287
+#: cinelerra//main.C:315
 #, c-format
 msgid ""
 "%s [-f] [-c configuration] [-d port] [-n nice] [-r batch file] [filenames]\n"
 "\n"
 msgstr ""
 
-#: cinelerra//main.C:288
+#: cinelerra//main.C:316
 #, c-format
 msgid "-d = Run in the background as renderfarm client.  The port (400) is optional.\n"
 msgstr ""
 
-#: cinelerra//main.C:289
+#: cinelerra//main.C:317
 #, c-format
 msgid "-f = Run in the foreground as renderfarm client.  Substitute for -d.\n"
 msgstr ""
 
-#: cinelerra//main.C:290
+#: cinelerra//main.C:318
 #, c-format
 msgid "-n = Nice value if running as renderfarm client. (20)\n"
 msgstr ""
 
-#: cinelerra//main.C:291
+#: cinelerra//main.C:319
 #, c-format
 msgid "-c = Configuration file to use instead of %s%s.\n"
 msgstr ""
 
-#: cinelerra//main.C:294
+#: cinelerra//main.C:322
 #, c-format
 msgid "-r = batch render the contents of the batch file (%s%s) with no GUI.  batch file is optional.\n"
 msgstr ""
 
-#: cinelerra//main.C:297
+#: cinelerra//main.C:325
 #, c-format
 msgid ""
 "filenames = files to load\n"
@@ -2468,6 +3834,10 @@ msgid ""
 "\n"
 msgstr ""
 
+#: cinelerra//mainerror.C:43
+msgid ": Errors"
+msgstr ""
+
 #: cinelerra//mainerror.C:74
 msgid "The following errors occurred:"
 msgstr ""
@@ -2476,324 +3846,368 @@ msgstr ""
 msgid "Building Indexes..."
 msgstr ""
 
-#: cinelerra//mainmenu.C:128 plugins/svg/svgwin.C:254
+#: cinelerra//mainmenu.C:129 plugins/svg/svgwin.C:254
 msgid "Edit"
 msgstr ""
 
-#: cinelerra//mainmenu.C:152
+#: cinelerra//mainmenu.C:153
 msgid "Keyframes"
 msgstr ""
 
-#: cinelerra//mainmenu.C:168 cinelerra//new.C:276 cinelerra//setformat.C:319
+#: cinelerra//mainmenu.C:169 cinelerra//new.C:276 cinelerra//setformat.C:320
 msgid "Audio"
 msgstr ""
 
-#: cinelerra//mainmenu.C:177 cinelerra//new.C:304 cinelerra//setformat.C:375
+#: cinelerra//mainmenu.C:178 cinelerra//new.C:304 cinelerra//setformat.C:376
 msgid "Video"
 msgstr ""
 
-#: cinelerra//mainmenu.C:184
+#: cinelerra//mainmenu.C:185
 msgid "Tracks"
 msgstr ""
 
-#: cinelerra//mainmenu.C:192
+#: cinelerra//mainmenu.C:193
 msgid "Settings"
 msgstr ""
 
-#: cinelerra//mainmenu.C:220
-msgid "Fade"
-msgstr ""
-
-#: cinelerra//mainmenu.C:222 cinelerra//recordbatches.C:23
-#: plugins/parametric/parametric.C:428
-msgid "Mode"
-msgstr ""
-
-#: cinelerra//mainmenu.C:223
-msgid "Pan"
-msgstr ""
-
-#: cinelerra//mainmenu.C:225 plugins/denoiseseltempavg/seltempavgwindow.C:66
-msgid "Mask"
-msgstr ""
-
-#: cinelerra//mainmenu.C:226
-msgid "Speed"
-msgstr ""
-
-#: cinelerra//mainmenu.C:227
-msgid "Camera X"
-msgstr ""
-
-#: cinelerra//mainmenu.C:228
-msgid "Camera Y"
-msgstr ""
-
-#: cinelerra//mainmenu.C:229
-msgid "Camera Z"
-msgstr ""
-
-#: cinelerra//mainmenu.C:230
-msgid "Projector X"
-msgstr ""
-
-#: cinelerra//mainmenu.C:231
-msgid "Projector Y"
-msgstr ""
-
-#: cinelerra//mainmenu.C:232
-msgid "Projector Z"
-msgstr ""
-
-#: cinelerra//mainmenu.C:235
+#: cinelerra//mainmenu.C:236
 msgid "Window"
 msgstr ""
 
-#: cinelerra//mainmenu.C:243
+#: cinelerra//mainmenu.C:244
 msgid "Default positions"
 msgstr ""
 
 #: cinelerra//mainmenu.C:244
-msgid "Tile left"
+msgid "Ctrl+d"
 msgstr ""
 
 #: cinelerra//mainmenu.C:245
+msgid "Tile left"
+msgstr ""
+
+#: cinelerra//mainmenu.C:246
 msgid "Tile right"
 msgstr ""
 
-#: cinelerra//mainmenu.C:562
+#: cinelerra//mainmenu.C:563
 msgid "Dump CICache"
 msgstr ""
 
-#: cinelerra//mainmenu.C:572
+#: cinelerra//mainmenu.C:573
 msgid "Dump EDL"
 msgstr ""
 
-#: cinelerra//mainmenu.C:586
+#: cinelerra//mainmenu.C:587
 msgid "Dump Plugins"
 msgstr ""
 
-#: cinelerra//mainmenu.C:601
+#: cinelerra//mainmenu.C:602
 msgid "Dump Assets"
 msgstr ""
 
-#: cinelerra//mainmenu.C:612
+#: cinelerra//mainmenu.C:613
 msgid "Undo"
 msgstr ""
 
-#: cinelerra//mainmenu.C:624
+#: cinelerra//mainmenu.C:625
 #, c-format
 msgid "Undo %s"
 msgstr ""
 
-#: cinelerra//mainmenu.C:630
+#: cinelerra//mainmenu.C:631
 msgid "Redo"
 msgstr ""
 
-#: cinelerra//mainmenu.C:645
+#: cinelerra//mainmenu.C:631
+msgid "Shift+Z"
+msgstr ""
+
+#: cinelerra//mainmenu.C:646
 #, c-format
 msgid "Redo %s"
 msgstr ""
 
-#: cinelerra//mainmenu.C:651
+#: cinelerra//mainmenu.C:652
 msgid "Cut keyframes"
 msgstr ""
 
-#: cinelerra//mainmenu.C:664
+#: cinelerra//mainmenu.C:652
+msgid "Shift-X"
+msgstr ""
+
+#: cinelerra//mainmenu.C:665
 msgid "Copy keyframes"
 msgstr ""
 
-#: cinelerra//mainmenu.C:677
+#: cinelerra//mainmenu.C:665
+msgid "Shift-C"
+msgstr ""
+
+#: cinelerra//mainmenu.C:678
 msgid "Paste keyframes"
 msgstr ""
 
-#: cinelerra//mainmenu.C:690
+#: cinelerra//mainmenu.C:678
+msgid "Shift-V"
+msgstr ""
+
+#: cinelerra//mainmenu.C:691
 msgid "Clear keyframes"
 msgstr ""
 
-#: cinelerra//mainmenu.C:705
+#: cinelerra//mainmenu.C:691
+msgid "Shift-Del"
+msgstr ""
+
+#: cinelerra//mainmenu.C:706
 msgid "Change to linear"
 msgstr ""
 
-#: cinelerra//mainmenu.C:720
+#: cinelerra//mainmenu.C:721
 msgid "Change to bezier"
 msgstr ""
 
-#: cinelerra//mainmenu.C:756
+#: cinelerra//mainmenu.C:735
+msgid "Create bezier"
+msgstr ""
+
+#: cinelerra//mainmenu.C:757
 msgid "Cut default keyframe"
 msgstr ""
 
-#: cinelerra//mainmenu.C:769
+#: cinelerra//mainmenu.C:757
+msgid "Alt-X"
+msgstr ""
+
+#: cinelerra//mainmenu.C:770
 msgid "Copy default keyframe"
 msgstr ""
 
-#: cinelerra//mainmenu.C:782
+#: cinelerra//mainmenu.C:770
+msgid "Alt-c"
+msgstr ""
+
+#: cinelerra//mainmenu.C:783
 msgid "Paste default keyframe"
 msgstr ""
 
-#: cinelerra//mainmenu.C:795
+#: cinelerra//mainmenu.C:783
+msgid "Alt-v"
+msgstr ""
+
+#: cinelerra//mainmenu.C:796
 msgid "Clear default keyframe"
 msgstr ""
 
-#: cinelerra//mainmenu.C:808
+#: cinelerra//mainmenu.C:796
+msgid "Alt-Del"
+msgstr ""
+
+#: cinelerra//mainmenu.C:809
 msgid "Cut"
 msgstr ""
 
-#: cinelerra//mainmenu.C:844 cinelerra//recordbatches.C:566
-#: plugins/compressor/compressor.C:1392 plugins/piano/piano.C:914
-#: plugins/synthesizer/synthesizer.C:1469
+#: cinelerra//mainmenu.C:845 cinelerra//recordbatches.C:566
+#: cinelerra//swindow.C:533 plugins/compressor/compressor.C:1390
+#: plugins/piano/piano.C:908 plugins/synthesizer/synthesizer.C:1463
 msgid "Clear"
 msgstr ""
 
-#: cinelerra//mainmenu.C:858
+#: cinelerra//mainmenu.C:845
+msgid "Del"
+msgstr ""
+
+#: cinelerra//mainmenu.C:859
 msgid "Paste silence"
 msgstr ""
 
-#: cinelerra//mainmenu.C:871
+#: cinelerra//mainmenu.C:859
+msgid "Shift+Space"
+msgstr ""
+
+#: cinelerra//mainmenu.C:872
 msgid "Select All"
 msgstr ""
 
-#: cinelerra//mainmenu.C:882
+#: cinelerra//mainmenu.C:883
 msgid "Clear labels"
 msgstr ""
 
-#: cinelerra//mainmenu.C:893
+#: cinelerra//mainmenu.C:894
 msgid "Cut ads"
 msgstr ""
 
-#: cinelerra//mainmenu.C:905
+#: cinelerra//mainmenu.C:906
 msgid "Detach transitions"
 msgstr ""
 
-#: cinelerra//mainmenu.C:917
+#: cinelerra//mainmenu.C:918
 msgid "Mute Region"
 msgstr ""
 
-#: cinelerra//mainmenu.C:930
+#: cinelerra//mainmenu.C:931
 msgid "Trim Selection"
 msgstr ""
 
-#: cinelerra//mainmenu.C:978 cinelerra//mainmenu.C:1061
+#: cinelerra//mainmenu.C:979 cinelerra//mainmenu.C:1062
 msgid "Default Transition"
 msgstr ""
 
-#: cinelerra//mainmenu.C:991
+#: cinelerra//mainmenu.C:992
 msgid "Map 1:1"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1003
+#: cinelerra//mainmenu.C:1004
 msgid "Map 5.1:2"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1048
+#: cinelerra//mainmenu.C:1022
+msgid "Shift-T"
+msgstr ""
+
+#: cinelerra//mainmenu.C:1049
 msgid "Reset Translation"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1089
+#: cinelerra//mainmenu.C:1062
+msgid "Shift-U"
+msgstr ""
+
+#: cinelerra//mainmenu.C:1090
 msgid "Delete tracks"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1101
+#: cinelerra//mainmenu.C:1102
 msgid "Delete last track"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1113
+#: cinelerra//mainmenu.C:1114
 msgid "Move tracks up"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1125
+#: cinelerra//mainmenu.C:1126
 msgid "Move tracks down"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1140
+#: cinelerra//mainmenu.C:1141
 msgid "Concatenate tracks"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1157
+#: cinelerra//mainmenu.C:1158
 msgid "Loop Playback"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1177
+#: cinelerra//mainmenu.C:1158
+msgid "Shift+L"
+msgstr ""
+
+#: cinelerra//mainmenu.C:1178
 msgid "Add subttl"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1190 cinelerra//swindow.C:430
+#: cinelerra//mainmenu.C:1178
+msgid "Shift-Y"
+msgstr ""
+
+#: cinelerra//mainmenu.C:1191 cinelerra//swindow.C:431
 msgid "paste subttl"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1207
+#: cinelerra//mainmenu.C:1208
 msgid "Set background render"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1225
+#: cinelerra//mainmenu.C:1226
 msgid "Edit labels"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1242
+#: cinelerra//mainmenu.C:1243
 msgid "Edit effects"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1259
+#: cinelerra//mainmenu.C:1260
 msgid "Keyframes follow edits"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1274
+#: cinelerra//mainmenu.C:1275
 msgid "Align cursor on frames"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1289
+#: cinelerra//mainmenu.C:1290
 msgid "Typeless keyframes"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1303 cinelerra//mainmenu.C:1313
+#: cinelerra//mainmenu.C:1304 cinelerra//mainmenu.C:1314
 msgid "Slow Shuttle"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1318
+#: cinelerra//mainmenu.C:1319
 msgid "Fast Shuttle"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1323
+#: cinelerra//mainmenu.C:1324
 msgid "Save settings now"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1332
+#: cinelerra//mainmenu.C:1333
 msgid "Saved settings."
 msgstr ""
 
-#: cinelerra//mainmenu.C:1345
+#: cinelerra//mainmenu.C:1346
 msgid "Show Viewer"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1357
+#: cinelerra//mainmenu.C:1358
 msgid "Show Resources"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1369
+#: cinelerra//mainmenu.C:1370
 msgid "Show Compositor"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1382
+#: cinelerra//mainmenu.C:1383
 msgid "Show Overlays"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1395
+#: cinelerra//mainmenu.C:1396
 msgid "Show Levels"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1424
+#: cinelerra//mainmenu.C:1427
 msgid "Split X pane"
 msgstr ""
 
-#: cinelerra//mainmenu.C:1437
+#: cinelerra//mainmenu.C:1427
+msgid "Ctrl+1"
+msgstr ""
+
+#: cinelerra//mainmenu.C:1440
 msgid "Split Y pane"
 msgstr ""
 
+#: cinelerra//mainmenu.C:1440
+msgid "Ctrl+2"
+msgstr ""
+
 #: cinelerra//mainprogress.C:165
 #, c-format
 msgid "%s ETA: %s"
 msgstr ""
 
+#: cinelerra//mbuttons.C:192
+msgid "FFMpeg early probe"
+msgstr ""
+
+#: cinelerra//mbuttons.C:203
+msgid "Changing the base codecs may require rebuilding indecies."
+msgstr ""
+
+#: cinelerra//mediadb.C:834
+#, c-format
+msgid " find timeline frame_id(%d) failed\n"
+msgstr ""
+
 #: cinelerra//menuattacheffect.C:29
 msgid "Attach Effect..."
 msgstr ""
@@ -2852,12 +4266,22 @@ msgstr ""
 msgid "No selected range to process."
 msgstr ""
 
+#: cinelerra//menueffects.C:324 cinelerra//mwindowgui.C:542
+#: cinelerra//vwindowgui.C:100
+#, c-format
+msgid ": %s"
+msgstr ""
+
 #: cinelerra//menueffects.C:469 cinelerra//packagerenderer.C:177
 #: cinelerra//savefile.C:101
 #, c-format
 msgid "Couldn't open %s"
 msgstr ""
 
+#: cinelerra//menueffects.C:598
+msgid ": Render effect"
+msgstr ""
+
 #: cinelerra//menueffects.C:639
 msgid "Select an effect"
 msgstr ""
@@ -2874,6 +4298,10 @@ msgstr ""
 msgid "Set up effect panel and hit \"OK\""
 msgstr ""
 
+#: cinelerra//menueffects.C:788
+msgid ": Effect Prompt"
+msgstr ""
+
 #: cinelerra//menutransitionlength.C:32
 msgid "Transition Length..."
 msgstr ""
@@ -2893,54 +4321,131 @@ msgstr ""
 msgid "Messages::write_message"
 msgstr ""
 
-#: cinelerra//meterpanel.C:403
+#: cinelerra//meterpanel.C:394
 msgid "Show meters"
 msgstr ""
 
-#: cinelerra//mwindow.C:948
+#: cinelerra//mwindow.C:470
+#, c-format
+msgid "MWindow::init_plugins: can't create plugin index: %s\n"
+msgstr ""
+
+#: cinelerra//mwindow.C:695
+#, c-format
+msgid "MWindow::init_theme: prefered theme %s not found.\n"
+msgstr ""
+
+#: cinelerra//mwindow.C:699
+#, c-format
+msgid "MWindow::init_theme: trying default theme %s\n"
+msgstr ""
+
+#: cinelerra//mwindow.C:709
+#, c-format
+msgid "MWindow::init_theme: theme_plugin not found.\n"
+msgstr ""
+
+#: cinelerra//mwindow.C:715
+#, c-format
+msgid "MWindow::init_theme: unable to load theme %s\n"
+msgstr ""
+
+#: cinelerra//mwindow.C:963
+msgid "multiple video tracks"
+msgstr ""
+
+#: cinelerra//mwindow.C:975
+msgid "crosses edits"
+msgstr ""
+
+#: cinelerra//mwindow.C:977
+msgid "not asset"
+msgstr ""
+
+#: cinelerra//mwindow.C:996
+msgid "no file"
+msgstr ""
+
+#: cinelerra//mwindow.C:1002
+msgid "db failed"
+msgstr ""
+
+#: cinelerra//mwindow.C:1006
+#, c-format
+msgid "put_commercial: %s"
+msgstr ""
+
+#: cinelerra//mwindow.C:1076
+#, c-format
+msgid "Loading %s"
+msgstr ""
+
+#: cinelerra//mwindow.C:1094
+#, c-format
+msgid ""
+"%s's resolution is %dx%d.\n"
+"Images with odd dimensions may not decode properly."
+msgstr ""
+
+#: cinelerra//mwindow.C:1105
 #, c-format
-msgid "MWindow::init_theme: theme %s not found.\n"
+msgid ""
+"%s's index was built for program number %d\n"
+"Playback preference is %d.\n"
+"  Using program %d."
 msgstr ""
 
-#: cinelerra//mwindow.C:1374
+#: cinelerra//mwindow.C:1151
 #, c-format
 msgid "Failed to open %s"
 msgstr ""
 
-#: cinelerra//mwindow.C:1423
+#: cinelerra//mwindow.C:1200
 msgid "'s format couldn't be determined."
 msgstr ""
 
-#: cinelerra//mwindow.C:1690
+#: cinelerra//mwindow.C:1468
 msgid "load"
 msgstr ""
 
-#: cinelerra//mwindow.C:1865
+#: cinelerra//mwindow.C:1523 cinelerra//mwindow.C:1556
+#, c-format
+msgid ""
+"The %s '%s' in file '%s' is not part of your installation of Cinelerra.\n"
+"The project won't be rendered as it was meant and Cinelerra might crash.\n"
+msgstr ""
+
+#: cinelerra//mwindow.C:1590
+#, c-format
+msgid "MWindow::init_shm: /proc/sys/kernel/shmmax is 0x"
+msgstr ""
+
+#: cinelerra//mwindow.C:1632
 msgid "Initializing GUI"
 msgstr ""
 
-#: cinelerra//mwindow.C:2870
+#: cinelerra//mwindow.C:2643
 #, c-format
 msgid "Couldn't open %s for writing."
 msgstr ""
 
-#: cinelerra//mwindow.C:3028
+#: cinelerra//mwindow.C:2816
 msgid "remove assets"
 msgstr ""
 
-#: cinelerra//mwindow.C:3203
+#: cinelerra//mwindow.C:3019
 #, c-format
 msgid "Using %s"
 msgstr ""
 
-#: cinelerra//mwindow.C:3343 cinelerra//mwindowedit.C:238
-#: cinelerra//mwindowedit.C:304 cinelerra//preferencesthread.C:219
+#: cinelerra//mwindow.C:3159 cinelerra//mwindowedit.C:238
+#: cinelerra//mwindowedit.C:304 cinelerra//preferencesthread.C:222
 msgid ""
 "This project's dimensions are not multiples of 4 so\n"
 "it can't be rendered by OpenGL."
 msgstr ""
 
-#: cinelerra//mwindow.C:3464
+#: cinelerra//mwindow.C:3275
 msgid "select asset"
 msgstr ""
 
@@ -3152,26 +4657,236 @@ msgstr ""
 msgid "trim selection"
 msgstr ""
 
-#: cinelerra//mwindowedit.C:2509
+#: cinelerra//mwindowedit.C:2508
 msgid "new folder"
 msgstr ""
 
-#: cinelerra//mwindowedit.C:2547
+#: cinelerra//mwindowedit.C:2546
 msgid "map 1:1"
 msgstr ""
 
-#: cinelerra//mwindowedit.C:2629
+#: cinelerra//mwindowedit.C:2628
 msgid "cut ads"
 msgstr ""
 
-#: cinelerra//new.C:56
-msgid "New..."
+#: cinelerra//mwindowgui.C:77
+msgid ": Program"
+msgstr ""
+
+#: cinelerra//mwindow.inc:52
+msgid "Cinelerra: Attach Effect"
+msgstr ""
+
+#: cinelerra//mwindow.inc:53
+msgid "Cinelerra: Audio compression"
+msgstr ""
+
+#: cinelerra//mwindow.inc:54
+msgid "Cinelerra: Audio Compression"
+msgstr ""
+
+#: cinelerra//mwindow.inc:55
+msgid "Cinelerra: Camera"
+msgstr ""
+
+#: cinelerra//mwindow.inc:56
+msgid "Cinelerra: Change Effect"
+msgstr ""
+
+#: cinelerra//mwindow.inc:57
+msgid "Cinelerra: Channel Info"
+msgstr ""
+
+#: cinelerra//mwindow.inc:58
+msgid "Cinelerra: ChanSearch"
+msgstr ""
+
+#: cinelerra//mwindow.inc:59
+msgid "Cinelerra: Clip Info"
+msgstr ""
+
+#: cinelerra//mwindow.inc:60
+msgid "Cinelerra: Color"
+msgstr ""
+
+#: cinelerra//mwindow.inc:61
+msgid "Cinelerra: Compositor"
+msgstr ""
+
+#: cinelerra//mwindow.inc:62
+msgid "Cinelerra: Confirm"
+msgstr ""
+
+#: cinelerra//mwindow.inc:63
+msgid "Cinelerra: Confirm Quit"
+msgstr ""
+
+#: cinelerra//mwindow.inc:64
+msgid "Cinelerra: Crop"
+msgstr ""
+
+#: cinelerra//mwindow.inc:65
+msgid "Cinelerra: DbWindow"
+msgstr ""
+
+#: cinelerra//mwindow.inc:66
+msgid "Cinelerra: Delete All Indexes"
+msgstr ""
+
+#: cinelerra//mwindow.inc:67
+msgid "Cinelerra: Edit length"
+msgstr ""
+
+#: cinelerra//mwindow.inc:68
+msgid "Cinelerra: Error"
+msgstr ""
+
+#: cinelerra//mwindow.inc:69
+msgid "Cinelerra: Errors"
+msgstr ""
+
+#: cinelerra//mwindow.inc:70
+msgid "Cinelerra: File Exists"
+msgstr ""
+
+#: cinelerra//mwindow.inc:71
+msgid "Cinelerra: File Format"
+msgstr ""
+
+#: cinelerra//mwindow.inc:72
+msgid "Cinelerra: Levels"
+msgstr ""
+
+#: cinelerra//mwindow.inc:73
+msgid "Cinelerra: Load"
+msgstr ""
+
+#: cinelerra//mwindow.inc:74
+msgid "Cinelerra: Loading"
+msgstr ""
+
+#: cinelerra//mwindow.inc:75
+msgid "Cinelerra: Locate file"
+msgstr ""
+
+#: cinelerra//mwindow.inc:76
+msgid "Cinelerra: Mask"
+msgstr ""
+
+#: cinelerra//mwindow.inc:77
+msgid "Cinelerra: New folder"
+msgstr ""
+
+#: cinelerra//mwindow.inc:78
+msgid "Cinelerra: Overlays"
 msgstr ""
 
-#: cinelerra//new.C:225
+#: cinelerra//mwindow.inc:79
+msgid "Cinelerra: Path"
+msgstr ""
+
+#: cinelerra//mwindow.inc:80
+msgid "Cinelerra: Preferences"
+msgstr ""
+
+#: cinelerra//mwindow.inc:81
+msgid "Cinelerra: Program"
+msgstr ""
+
+#: cinelerra//mwindow.inc:82
+msgid "Cinelerra: Projector"
+msgstr ""
+
+#: cinelerra//mwindow.inc:83
+msgid "Cinelerra: Question"
+msgstr ""
+
+#: cinelerra//mwindow.inc:84
+msgid "Cinelerra: RemoteWindow"
+msgstr ""
+
+#: cinelerra//mwindow.inc:85
+msgid "Cinelerra: Remove assets"
+msgstr ""
+
+#: cinelerra//mwindow.inc:86
+msgid "Cinelerra: Resize Track"
+msgstr ""
+
+#: cinelerra//mwindow.inc:87
+msgid "Cinelerra: Ruler"
+msgstr ""
+
+#: cinelerra//mwindow.inc:88
+#, c-format
+msgid "Cinelerra: %s"
+msgstr ""
+
+#: cinelerra//mwindow.inc:89
+msgid "Cinelerra: Save"
+msgstr ""
+
+#: cinelerra//mwindow.inc:90
+msgid "Cinelerra: Set edit title"
+msgstr ""
+
+#: cinelerra//mwindow.inc:91
+msgid "Cinelerra: Set Format"
+msgstr ""
+
+#: cinelerra//mwindow.inc:92
+#, c-format
+msgid "Cinelerra: %s Keyframe"
+msgstr ""
+
+#: cinelerra//mwindow.inc:93
+msgid "Cinelerra: Subtitle"
+msgstr ""
+
+#: cinelerra//mwindow.inc:94
+msgid "Cinelerra: Tip of the day"
+msgstr ""
+
+#: cinelerra//mwindow.inc:95
+msgid "Cinelerra: Transition length"
+msgstr ""
+
+#: cinelerra//mwindow.inc:96
+msgid "Cinelerra: Video Compression"
+msgstr ""
+
+#: cinelerra//mwindow.inc:97
+msgid "Cinelerra: Viewer"
+msgstr ""
+
+#: cinelerra//mwindow.inc:98
+msgid "Cinelerra: Warning"
+msgstr ""
+
+#: cinelerra//mwindow.inc:99 cinelerra//mwindow.inc:100 cinelerra//new.C:225
 msgid "Cinelerra: New Project"
 msgstr ""
 
+#: cinelerra//mwindow.inc:102
+msgid "Cinelerra: CD Ripper"
+msgstr ""
+
+#: cinelerra//mwindow.inc:103
+msgid "Cinelerra: Normalize"
+msgstr ""
+
+#: cinelerra//mwindow.inc:104
+msgid "Cinelerra: Resample"
+msgstr ""
+
+#: cinelerra//mwindow.inc:105
+msgid "Cinelerra: Time stretch"
+msgstr ""
+
+#: cinelerra//new.C:56
+msgid "New..."
+msgstr ""
+
 #: cinelerra//new.C:229
 msgid ": New Project"
 msgstr ""
@@ -3184,8 +4899,8 @@ msgstr ""
 msgid "Tracks:"
 msgstr ""
 
-#: cinelerra//new.C:296 cinelerra//recordgui.C:233 cinelerra//setformat.C:324
-#: cinelerra//setformat.C:329
+#: cinelerra//new.C:296 cinelerra//recordgui.C:233 cinelerra//setformat.C:325
+#: cinelerra//setformat.C:330
 msgid "Samplerate:"
 msgstr ""
 
@@ -3193,11 +4908,11 @@ msgstr ""
 msgid "Framerate:"
 msgstr ""
 
-#: cinelerra//new.C:348 cinelerra//setformat.C:393
+#: cinelerra//new.C:348 cinelerra//setformat.C:394
 msgid "Canvas size:"
 msgstr ""
 
-#: cinelerra//new.C:367 cinelerra//scale.C:270 cinelerra//setformat.C:461
+#: cinelerra//new.C:367 cinelerra//scale.C:270 cinelerra//setformat.C:462
 msgid "Aspect ratio:"
 msgstr ""
 
@@ -3205,6 +4920,103 @@ msgstr ""
 msgid "Auto aspect ratio"
 msgstr ""
 
+#: cinelerra//new.C:883 cinelerra//resizetrackthread.C:212
+#: cinelerra//setformat.C:916 plugins/photoscale/photoscale.C:198
+msgid "Swap dimensions"
+msgstr ""
+
+#: cinelerra//patchbay.C:187
+msgid "mode_normal"
+msgstr ""
+
+#: cinelerra//patchbay.C:188
+msgid "mode_add"
+msgstr ""
+
+#: cinelerra//patchbay.C:189
+msgid "mode_subtract"
+msgstr ""
+
+#: cinelerra//patchbay.C:190
+msgid "mode_multiply"
+msgstr ""
+
+#: cinelerra//patchbay.C:191
+msgid "mode_divide"
+msgstr ""
+
+#: cinelerra//patchbay.C:192
+msgid "mode_replace"
+msgstr ""
+
+#: cinelerra//patchbay.C:193
+msgid "mode_max"
+msgstr ""
+
+#: cinelerra//patchbay.C:194
+msgid "mode_min"
+msgstr ""
+
+#: cinelerra//patchbay.C:195
+msgid "mode_average"
+msgstr ""
+
+#: cinelerra//patchbay.C:196
+msgid "mode_darken"
+msgstr ""
+
+#: cinelerra//patchbay.C:197
+msgid "mode_lighten"
+msgstr ""
+
+#: cinelerra//patchbay.C:198
+msgid "mode_dst"
+msgstr ""
+
+#: cinelerra//patchbay.C:199
+msgid "mode_dstatop"
+msgstr ""
+
+#: cinelerra//patchbay.C:200
+msgid "mode_dstin"
+msgstr ""
+
+#: cinelerra//patchbay.C:201
+msgid "mode_dstout"
+msgstr ""
+
+#: cinelerra//patchbay.C:202
+msgid "mode_dstover"
+msgstr ""
+
+#: cinelerra//patchbay.C:203
+msgid "mode_src"
+msgstr ""
+
+#: cinelerra//patchbay.C:204
+msgid "mode_srcatop"
+msgstr ""
+
+#: cinelerra//patchbay.C:205
+msgid "mode_srcin"
+msgstr ""
+
+#: cinelerra//patchbay.C:206
+msgid "mode_srcout"
+msgstr ""
+
+#: cinelerra//patchbay.C:207
+msgid "mode_srcover"
+msgstr ""
+
+#: cinelerra//patchbay.C:208
+msgid "mode_or"
+msgstr ""
+
+#: cinelerra//patchbay.C:209
+msgid "mode_xor"
+msgstr ""
+
 #: cinelerra//patchgui.C:383
 msgid "Play track"
 msgstr ""
@@ -3273,109 +5085,113 @@ msgstr ""
 msgid "(must be root)"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:119
+#: cinelerra//performanceprefs.C:125
 msgid "Background Rendering (Video only)"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:127
+#: cinelerra//performanceprefs.C:133
 msgid "Frames per background rendering job:"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:133
+#: cinelerra//performanceprefs.C:139
 msgid "Frames to preroll background:"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:142
+#: cinelerra//performanceprefs.C:148
 msgid "Output for background rendering:"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:168
+#: cinelerra//performanceprefs.C:172
 msgid "Render Farm"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:172
+#: cinelerra//performanceprefs.C:174
 msgid "Nodes:"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:174
+#: cinelerra//performanceprefs.C:188
 msgid "Hostname:"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:223
+#: cinelerra//performanceprefs.C:230
 msgid "Total jobs to create:"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:226
+#: cinelerra//performanceprefs.C:233
 msgid "(overridden if new file at each label is checked)"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:281 cinelerra//pluginpopup.C:229
+#: cinelerra//performanceprefs.C:287 cinelerra//pluginpopup.C:229
 #: cinelerra//plugintoggles.C:39 cinelerra//recordbatches.C:22
 #: cinelerra//transitionpopup.C:258
 msgid "On"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:282
+#: cinelerra//performanceprefs.C:288
 msgid "Hostname"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:283
+#: cinelerra//performanceprefs.C:289
 msgid "Port"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:284
+#: cinelerra//performanceprefs.C:290
 msgid "Framerate"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:337
+#: cinelerra//performanceprefs.C:343
 msgid "Use background rendering"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:470
+#: cinelerra//performanceprefs.C:476
 msgid "Use render farm"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:490
+#: cinelerra//performanceprefs.C:496
 msgid "Force single processor use"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:507
+#: cinelerra//performanceprefs.C:512
 msgid "trap sigSEGV"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:524
+#: cinelerra//performanceprefs.C:529
 msgid "trap sigINT"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:542
+#: cinelerra//performanceprefs.C:547
 msgid "enable/disable file fork"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:564
+#: cinelerra//performanceprefs.C:577
+msgid "On file open, ffmpeg probes early"
+msgstr ""
+
+#: cinelerra//performanceprefs.C:599
 msgid "Consolidate output files on completion"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:694
+#: cinelerra//performanceprefs.C:729
 msgid "Add Node"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:722
+#: cinelerra//performanceprefs.C:757
 msgid "Apply Changes"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:749
+#: cinelerra//performanceprefs.C:784
 msgid "Delete Node"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:780
+#: cinelerra//performanceprefs.C:815
 msgid "Sort nodes"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:807
+#: cinelerra//performanceprefs.C:842
 msgid "Reset rates"
 msgstr ""
 
-#: cinelerra//performanceprefs.C:888
+#: cinelerra//performanceprefs.C:923
 msgid "Use virtual filesystem"
 msgstr ""
 
@@ -3393,7 +5209,7 @@ msgstr ""
 
 #: cinelerra//playbackprefs.C:130 cinelerra//recordprefs.C:163
 #: plugins/denoiseseltempavg/seltempavgwindow.C:112
-#: plugins/freeverb/freeverb.C:311
+#: plugins/freeverb/freeverb.C:310
 msgid "Gain:"
 msgstr ""
 
@@ -3409,11 +5225,6 @@ msgstr ""
 msgid "Framerate achieved:"
 msgstr ""
 
-#: cinelerra//playbackprefs.C:159 cinelerra//zoombar.C:118
-#: cinelerra//zoombar.C:120
-msgid "--"
-msgstr ""
-
 #: cinelerra//playbackprefs.C:167
 msgid "Scaling equation: Enlarge / Reduce "
 msgstr ""
@@ -3446,7 +5257,7 @@ msgstr ""
 msgid "Audio playback in real time priority (root only)"
 msgstr ""
 
-#: cinelerra//playbackprefs.C:315 cinelerra//recordprefs.C:310
+#: cinelerra//playbackprefs.C:315 cinelerra//recordprefs.C:309
 msgid "Map 5.1->2"
 msgstr ""
 
@@ -3498,31 +5309,35 @@ msgstr ""
 msgid "Fast forward ( Enter )"
 msgstr ""
 
-#: cinelerra//pluginaclientlad.C:473
+#: cinelerra//pluginaclientlad.C:348
 #, c-format
 msgid "Author: %s"
 msgstr ""
 
-#: cinelerra//pluginaclientlad.C:476
+#: cinelerra//pluginaclientlad.C:351
 #, c-format
 msgid "License: %s"
 msgstr ""
 
-#: cinelerra//pluginarray.C:200
+#: cinelerra//pluginarray.C:196
 #, c-format
 msgid "%s..."
 msgstr ""
 
-#: cinelerra//pluginarray.C:226
+#: cinelerra//pluginarray.C:222
 #, c-format
 msgid "%s took %s"
 msgstr ""
 
-#: cinelerra//pluginclient.C:696
+#: cinelerra//pluginclient.C:690
 #, c-format
 msgid "No processing defined for this plugin.\n"
 msgstr ""
 
+#: cinelerra//pluginclient.C:858 cinelerra//pluginclient.C:870
+msgid "tweek"
+msgstr ""
+
 #: cinelerra//plugindialog.C:175
 msgid "attach effect"
 msgstr ""
@@ -3547,6 +5362,10 @@ msgstr ""
 msgid "Change..."
 msgstr ""
 
+#: cinelerra//pluginpopup.C:109
+msgid ": Change Effect"
+msgstr ""
+
 #: cinelerra//pluginpopup.C:123 cinelerra//transitionpopup.C:240
 msgid "Detach"
 msgstr ""
@@ -3591,46 +5410,67 @@ msgstr ""
 msgid "Personal Plugin Path"
 msgstr ""
 
-#: cinelerra//preferencesthread.C:66
+#: cinelerra//preferencesthread.C:67
 msgid "Preferences..."
 msgstr ""
 
-#: cinelerra//preferencesthread.C:305
+#: cinelerra//preferencesthread.C:67
+msgid "Shift+P"
+msgstr ""
+
+#: cinelerra//preferencesthread.C:202
+msgid "Reseting file forking requires restarting cinelerra"
+msgstr ""
+
+#: cinelerra//preferencesthread.C:308
 msgid "*Playback A"
 msgstr ""
 
-#: cinelerra//preferencesthread.C:305
+#: cinelerra//preferencesthread.C:308
 msgid "Playback A"
 msgstr ""
 
-#: cinelerra//preferencesthread.C:308
+#: cinelerra//preferencesthread.C:311
 msgid "*Playback B"
 msgstr ""
 
-#: cinelerra//preferencesthread.C:308
+#: cinelerra//preferencesthread.C:311
 msgid "Playback B"
 msgstr ""
 
-#: cinelerra//preferencesthread.C:310
+#: cinelerra//preferencesthread.C:313
 msgid "Recording"
 msgstr ""
 
-#: cinelerra//preferencesthread.C:312
+#: cinelerra//preferencesthread.C:315
 msgid "Performance"
 msgstr ""
 
-#: cinelerra//preferencesthread.C:314
+#: cinelerra//preferencesthread.C:317
 msgid "Interface"
 msgstr ""
 
-#: cinelerra//preferencesthread.C:316
+#: cinelerra//preferencesthread.C:319
 msgid "About"
 msgstr ""
 
+#: cinelerra//preferencesthread.C:352
+msgid ": Preferences"
+msgstr ""
+
+#: cinelerra//presetsgui.C:88
+#, c-format
+msgid ": %s Presets"
+msgstr ""
+
 #: cinelerra//presetsgui.C:440
 msgid "Saved presets:"
 msgstr ""
 
+#: cinelerra//question.C:34
+msgid ": Question"
+msgstr ""
+
 #: cinelerra//quit.C:43
 msgid "Quit"
 msgstr ""
@@ -3647,6 +5487,10 @@ msgstr ""
 msgid "Save edit list before exiting?"
 msgstr ""
 
+#: cinelerra//recconfirmdelete.C:34
+msgid ": Confirm"
+msgstr ""
+
 #: cinelerra//recconfirmdelete.C:49
 #, c-format
 msgid "Delete this file and %s?"
@@ -3664,18 +5508,10 @@ msgstr ""
 msgid "News"
 msgstr ""
 
-#: cinelerra//recordbatches.C:22
-msgid "Start time"
-msgstr ""
-
 #: cinelerra//recordbatches.C:23
 msgid "Duration"
 msgstr ""
 
-#: cinelerra//recordbatches.C:23
-msgid "Source"
-msgstr ""
-
 #: cinelerra//recordbatches.C:525 cinelerra//recordgui.C:950
 msgid ""
 "Start batch recording\n"
@@ -3704,12 +5540,24 @@ msgstr ""
 msgid "Deleting"
 msgstr ""
 
+#: cinelerra//record.C:1190
+msgid "Running"
+msgstr ""
+
+#: cinelerra//recordengine.C:606
+msgid "start over"
+msgstr ""
+
 #: cinelerra//recordengine.C:695 cinelerra//recordengine.C:703
 #: plugins/titler/titlewindow.C:733
 #, c-format
 msgid "Loop"
 msgstr ""
 
+#: cinelerra//recordgui.C:63
+msgid ": Recording"
+msgstr ""
+
 #: cinelerra//recordgui.C:160
 msgid "Start time:"
 msgstr ""
@@ -3722,6 +5570,10 @@ msgstr ""
 msgid "Transport:"
 msgstr ""
 
+#: cinelerra//recordgui.C:190
+msgid ": Record path"
+msgstr ""
+
 #: cinelerra//recordgui.C:191 cinelerra//recordwindow.C:62
 msgid "Select a file to record to:"
 msgstr ""
@@ -3758,6 +5610,10 @@ msgstr ""
 msgid "Prev label:"
 msgstr ""
 
+#: cinelerra//recordgui.C:297
+msgid "File Capture"
+msgstr ""
+
 #: cinelerra//recordgui.C:334
 msgid "Batches:"
 msgstr ""
@@ -3766,7 +5622,7 @@ msgstr ""
 msgid "Cron:"
 msgstr ""
 
-#: cinelerra//recordgui.C:353
+#: cinelerra//recordgui.C:353 cinelerra//recordgui.C:986
 msgid "Idle"
 msgstr ""
 
@@ -3834,6 +5690,10 @@ msgstr ""
 msgid "Audio meters"
 msgstr ""
 
+#: cinelerra//recordgui.C:971
+msgid "Stopped"
+msgstr ""
+
 #: cinelerra//recordgui.C:992
 msgid "Label"
 msgstr ""
@@ -3850,11 +5710,20 @@ msgstr ""
 msgid "Rewind batch and overwrite?"
 msgstr ""
 
-#: cinelerra//recordmonitor.C:343
+#: cinelerra//recordmonitor.C:253
+msgid ": Video in"
+msgstr ""
+
+#: cinelerra//recordmonitor.C:344
 msgid "00:00:00:00"
 msgstr ""
 
-#: cinelerra//recordmonitor.C:697 cinelerra//vdeviceprefs.C:287
+#: cinelerra//recordmonitor.C:630
+#, c-format
+msgid ": Video in %d%%"
+msgstr ""
+
+#: cinelerra//recordmonitor.C:698 cinelerra//vdeviceprefs.C:287
 msgid "Swap fields"
 msgstr ""
 
@@ -3906,31 +5775,31 @@ msgstr ""
 msgid "Frame rate for recording:"
 msgstr ""
 
-#: cinelerra//recordprefs.C:296
+#: cinelerra//recordprefs.C:295
 msgid "Record in realtime priority (root only)"
 msgstr ""
 
-#: cinelerra//recordprefs.C:336
+#: cinelerra//recordprefs.C:335
 msgid "Realtime TOC"
 msgstr ""
 
-#: cinelerra//recordprefs.C:496
+#: cinelerra//recordprefs.C:495
 msgid "Presentation Timestamps"
 msgstr ""
 
-#: cinelerra//recordprefs.C:497
+#: cinelerra//recordprefs.C:496
 msgid "Software timing"
 msgstr ""
 
-#: cinelerra//recordprefs.C:498
+#: cinelerra//recordprefs.C:497
 msgid "Device Position"
 msgstr ""
 
-#: cinelerra//recordprefs.C:499
+#: cinelerra//recordprefs.C:498
 msgid "Sample Position"
 msgstr ""
 
-#: cinelerra//recordprefs.C:515
+#: cinelerra//recordprefs.C:514
 msgid "Sync drives automatically"
 msgstr ""
 
@@ -3938,6 +5807,27 @@ msgstr ""
 msgid "View scope"
 msgstr ""
 
+#: cinelerra//recordthread.C:85
+msgid "Re-enable batches and restart?"
+msgstr ""
+
+#: cinelerra//recordthread.C:147
+msgid "execvp poweroff failed"
+msgstr ""
+
+#: cinelerra//recordthread.C:151
+#, c-format
+msgid "poweroff imminent!!!\n"
+msgstr ""
+
+#: cinelerra//recordthread.C:153
+msgid "cant vfork poweroff process"
+msgstr ""
+
+#: cinelerra//recordtransport.C:147
+msgid "Interrupted"
+msgstr ""
+
 #: cinelerra//recordtransport.C:177
 msgid ""
 "Start recording\n"
@@ -3972,18 +5862,43 @@ msgstr ""
 msgid "Seek to end of recording"
 msgstr ""
 
+#: cinelerra//recordwindow.C:36
+msgid ": Record"
+msgstr ""
+
 #: cinelerra//reindex.C:32
 msgid "Redraw Indexes"
 msgstr ""
 
+#: cinelerra//reindex.C:71
+msgid ": Redraw Indexes"
+msgstr ""
+
 #: cinelerra//reindex.C:86
 msgid "Redraw all indexes for the current project?"
 msgstr ""
 
+#: cinelerra//remotecontrol.C:11
+msgid ": RemoteWindow"
+msgstr ""
+
 #: cinelerra//render.C:85
 msgid "Render..."
 msgstr ""
 
+#: cinelerra//render.C:85
+msgid "Shift+R"
+msgstr ""
+
+#: cinelerra//render.C:219
+#, c-format
+msgid "\r%d%% ETA: %s      "
+msgstr ""
+
+#: cinelerra//render.C:293
+msgid "Already rendering"
+msgstr ""
+
 #: cinelerra//render.C:486
 #, c-format
 msgid "Rendering %s..."
@@ -4014,6 +5929,10 @@ msgstr ""
 msgid "render"
 msgstr ""
 
+#: cinelerra//render.C:1117
+msgid ": Render"
+msgstr ""
+
 #: cinelerra//renderfarm.C:171
 msgid "RenderFarmServerThread::start_loop: socket\n"
 msgstr ""
@@ -4070,22 +5989,26 @@ msgid ""
 "it can't be rendered by OpenGL."
 msgstr ""
 
+#: cinelerra//resizetrackthread.C:105
+msgid ": Resize Track"
+msgstr ""
+
 #: cinelerra//resizetrackthread.C:129 plugins/scale/scalewin.C:64
 #: plugins/titler/titlewindow.C:230
 msgid "Size:"
 msgstr ""
 
 #: cinelerra//resizetrackthread.C:136 cinelerra//resizetrackthread.C:162
-#: plugins/compressor/compressor.C:884 plugins/scale/scalewin.C:69
+#: plugins/compressor/compressor.C:882 plugins/scale/scalewin.C:69
 msgid "x"
 msgstr ""
 
-#: cinelerra//resizetrackthread.C:155 plugins/pitch/pitch.C:419
+#: cinelerra//resizetrackthread.C:155 plugins/pitch/pitch.C:417
 #: plugins/scale/scalewin.C:51
 msgid "Scale:"
 msgstr ""
 
-#: cinelerra//resizetrackthread.C:359
+#: cinelerra//resizetrackthread.C:359 cinelerra//scale.C:90
 msgid "Resize"
 msgstr ""
 
@@ -4111,11 +6034,15 @@ msgstr ""
 msgid "Save as..."
 msgstr ""
 
-#: cinelerra//savefile.C:208 plugins/reverb/reverb.C:397
+#: cinelerra//savefile.C:208 plugins/reverb/reverb.C:395
 #, c-format
 msgid "Couldn't open %s."
 msgstr ""
 
+#: cinelerra//savefile.C:246
+msgid ": Save"
+msgstr ""
+
 #: cinelerra//savefile.C:247
 msgid "Enter a filename to save as"
 msgstr ""
@@ -4124,6 +6051,10 @@ msgstr ""
 msgid "Resize..."
 msgstr ""
 
+#: cinelerra//scale.C:197
+msgid ": Scale"
+msgstr ""
+
 #: cinelerra//scale.C:207
 msgid "New camera size:"
 msgstr ""
@@ -4132,15 +6063,15 @@ msgstr ""
 msgid "New projector size:"
 msgstr ""
 
-#: cinelerra//scale.C:230 cinelerra//scale.C:234 cinelerra//setformat.C:426
+#: cinelerra//scale.C:230 cinelerra//scale.C:234 cinelerra//setformat.C:427
 msgid "W Ratio:"
 msgstr ""
 
-#: cinelerra//scale.C:240 cinelerra//scale.C:244 cinelerra//setformat.C:435
+#: cinelerra//scale.C:240 cinelerra//scale.C:244 cinelerra//setformat.C:436
 msgid "H Ratio:"
 msgstr ""
 
-#: cinelerra//scale.C:276 cinelerra//setformat.C:469
+#: cinelerra//scale.C:276 cinelerra//setformat.C:470
 msgid ":"
 msgstr ""
 
@@ -4152,7 +6083,7 @@ msgstr ""
 msgid "Scale data"
 msgstr ""
 
-#: cinelerra//scale.C:383 cinelerra//setformat.C:844
+#: cinelerra//scale.C:383 cinelerra//setformat.C:845
 msgid "Auto"
 msgstr ""
 
@@ -4160,19 +6091,31 @@ msgstr ""
 msgid "Format..."
 msgstr ""
 
-#: cinelerra//setformat.C:166
+#: cinelerra//setformat.C:50
+msgid "Shift-F"
+msgstr ""
+
+#: cinelerra//setformat.C:167
 msgid "set format"
 msgstr ""
 
-#: cinelerra//setformat.C:354
+#: cinelerra//setformat.C:283
+msgid ": Set Format"
+msgstr ""
+
+#: cinelerra//setformat.C:355
 msgid "Channel positions:"
 msgstr ""
 
-#: cinelerra//setformat.C:665
+#: cinelerra//setformat.C:666
 #, c-format
 msgid "%d degrees"
 msgstr ""
 
+#: cinelerra//splashgui.C:33
+msgid ": Loading"
+msgstr ""
+
 #: cinelerra//splashgui.C:69
 msgid "Loading..."
 msgstr ""
@@ -4190,10 +6133,53 @@ msgstr ""
 msgid "Subttl %d"
 msgstr ""
 
-#: cinelerra//swindow.C:953
+#: cinelerra//swindow.C:105
+msgid "Load"
+msgstr ""
+
+#: cinelerra//swindow.C:156
+msgid "File Size:"
+msgstr ""
+
+#: cinelerra//swindow.C:159
+msgid "Entries:"
+msgstr ""
+
+#: cinelerra//swindow.C:164
+msgid "Lines:"
+msgstr ""
+
+#: cinelerra//swindow.C:165
+msgid "Texts:"
+msgstr ""
+
+#: cinelerra//swindow.C:216
+msgid ": Subtitle"
+msgstr ""
+
+#: cinelerra//swindow.C:485
+msgid "Prev"
+msgstr ""
+
+#: cinelerra//swindow.C:501
+msgid "Next"
+msgstr ""
+
+#: cinelerra//swindow.C:751
+#, c-format
+msgid ""
+"cannot open: \"%s\"\n"
+"%s"
+msgstr ""
+
+#: cinelerra//swindow.C:954
 msgid "SubTitle"
 msgstr ""
 
+#: cinelerra//swindow.C:954
+msgid "Alt-y"
+msgstr ""
+
 #: cinelerra//threadindexer.C:91
 #, c-format
 msgid "Where is %s?"
@@ -4279,22 +6265,38 @@ msgid ""
 "audio or video tracks.\n"
 msgstr ""
 
-#: cinelerra//tipwindow.C:205
+#: cinelerra//tipwindow.C:145
+msgid ": Tip of the day"
+msgstr ""
+
+#: cinelerra//tipwindow.C:210
 msgid "Show tip of the day."
 msgstr ""
 
-#: cinelerra//tipwindow.C:226
+#: cinelerra//tipwindow.C:231
 msgid "Next tip"
 msgstr ""
 
-#: cinelerra//tipwindow.C:249
+#: cinelerra//tipwindow.C:254
 msgid "Previous tip"
 msgstr ""
 
-#: cinelerra//trackcanvas.C:4364
+#: cinelerra//trackcanvas.C:4339
 msgid "keyframe"
 msgstr ""
 
+#: cinelerra//transition.C:44
+msgid "Paste Transition"
+msgstr ""
+
+#: cinelerra//transition.C:229
+msgid "Transition"
+msgstr ""
+
+#: cinelerra//transitionpopup.C:95
+msgid ": Transition length"
+msgstr ""
+
 #: cinelerra//transitionpopup.C:217
 msgid "Attach..."
 msgstr ""
@@ -4337,6 +6339,30 @@ msgstr ""
 msgid "Default B Display:"
 msgstr ""
 
+#: cinelerra//vdeviceprefs.C:739
+msgid "Nearest Neighbor"
+msgstr ""
+
+#: cinelerra//vdeviceprefs.C:740
+msgid "BiCubic / BiCubic"
+msgstr ""
+
+#: cinelerra//vdeviceprefs.C:741
+msgid "BiCubic / BiLinear"
+msgstr ""
+
+#: cinelerra//vdeviceprefs.C:742
+msgid "BiLinear / BiLinear"
+msgstr ""
+
+#: cinelerra//vdeviceprefs.C:743
+msgid "Lanczos / Lanczos"
+msgstr ""
+
+#: cinelerra//videowindowgui.C:35
+msgid ": Video out"
+msgstr ""
+
 #: cinelerra//viewmenu.C:39
 msgid "Show assets"
 msgstr ""
@@ -4353,40 +6379,47 @@ msgstr ""
 msgid "Plugin keyframes"
 msgstr ""
 
+#: cinelerra//vpatchgui.C:273
+msgid "Overlay mode"
+msgstr ""
+
 #: cinelerra//vpatchgui.C:295 cinelerra//vpatchgui.C:300
 msgid "mode"
 msgstr ""
 
 #: cinelerra//vpatchgui.C:346 cinelerra//vpatchgui.C:370
+#: plugins/overlay/overlay.C:178 plugins/overlay/overlay.C:210
 msgid "Normal"
 msgstr ""
 
-#: cinelerra//vpatchgui.C:347
+#: cinelerra//vpatchgui.C:347 plugins/overlay/overlay.C:186
 msgid "Addition"
 msgstr ""
 
-#: cinelerra//vpatchgui.C:348
+#: cinelerra//vpatchgui.C:348 plugins/overlay/overlay.C:190
 msgid "Subtract"
 msgstr ""
 
-#: cinelerra//vpatchgui.C:349 plugins/overlayaudio/overlayaudio.C:178
+#: cinelerra//vpatchgui.C:349 plugins/overlay/overlay.C:194
+#: plugins/overlayaudio/overlayaudio.C:175
 msgid "Multiply"
 msgstr ""
 
-#: cinelerra//vpatchgui.C:350
+#: cinelerra//vpatchgui.C:350 plugins/overlay/overlay.C:198
 msgid "Divide"
 msgstr ""
 
-#: cinelerra//vpatchgui.C:351 plugins/timeavg/timeavgwindow.C:247
+#: cinelerra//vpatchgui.C:351 plugins/overlay/overlay.C:182
+#: plugins/timeavg/timeavgwindow.C:247
 msgid "Replace"
 msgstr ""
 
-#: cinelerra//vpatchgui.C:352
+#: cinelerra//vpatchgui.C:352 plugins/overlay/overlay.C:202
 msgid "Max"
 msgstr ""
 
 #: cinelerra//vpatchgui.C:353 plugins/cdripper/cdripwindow.C:52
-#: plugins/cdripper/cdripwindow.C:56
+#: plugins/cdripper/cdripwindow.C:56 plugins/overlay/overlay.C:206
 msgid "Min"
 msgstr ""
 
@@ -4460,6 +6493,19 @@ msgstr ""
 msgid "Viewer"
 msgstr ""
 
+#: cinelerra//vwindowgui.C:60 cinelerra//vwindowgui.C:102
+#, c-format
+msgid ": Viewer"
+msgstr ""
+
+#: cinelerra//wwindow.C:60
+msgid ": Warning"
+msgstr ""
+
+#: cinelerra//wwindow.C:78
+msgid "Don't show this warning again."
+msgstr ""
+
 #: cinelerra//zoombar.C:73
 msgid "sample zoom"
 msgstr ""
@@ -4476,38 +6522,32 @@ msgstr ""
 msgid "curve zoom (autofit Alt f)"
 msgstr ""
 
-#: plugins/1080to480/1080to480.C:90 plugins/1080to540/1080to540.C:95
-#: plugins/720to480/720to480.C:78 plugins/ivtc/ivtcwindow.C:121
+#: plugins/1080to480/1080to480.C:89 plugins/1080to540/1080to540.C:94
+#: plugins/720to480/720to480.C:77 plugins/ivtc/ivtcwindow.C:121
 msgid "Odd field first"
 msgstr ""
 
-#: plugins/1080to480/1080to480.C:92 plugins/1080to540/1080to540.C:97
-#: plugins/720to480/720to480.C:80
+#: plugins/1080to480/1080to480.C:91 plugins/1080to540/1080to540.C:96
+#: plugins/720to480/720to480.C:79
 msgid "Even field first"
 msgstr ""
 
-#: plugins/1080to480/1080to480.C:159
+#: plugins/1080to480/1080to480.C:158
 msgid "1080 to 480"
 msgstr ""
 
-#: plugins/1080to540/1080to540.C:163
+#: plugins/1080to540/1080to540.C:162
 msgid "1080 to 540"
 msgstr ""
 
-#: plugins/720to480/720to480.C:193
+#: plugins/720to480/720to480.C:191
 msgid "720 to 480"
 msgstr ""
 
-#: plugins/aging/aging.C:77
+#: plugins/aging/aging.C:76
 msgid "AgingTV"
 msgstr ""
 
-#: plugins/aging/agingwindow.C:52
-msgid ""
-"Film aging from EffectTV\n"
-"Copyright (C) 2001 FUKUCHI Kentarou"
-msgstr ""
-
 #: plugins/aging/agingwindow.C:83
 msgid "Grain"
 msgstr ""
@@ -4524,60 +6564,92 @@ msgstr ""
 msgid "Dust"
 msgstr ""
 
-#: plugins/audioscope/audioscope.C:375
+#: plugins/audioscope/audioscope.C:312
+msgid "XY Mode"
+msgstr ""
+
+#: plugins/audioscope/audioscope.C:314 plugins/piano/piano.C:530
+#: plugins/synthesizer/synthesizer.C:594
+msgid "Waveform"
+msgstr ""
+
+#: plugins/audioscope/audioscope.C:316
+msgid "Rising Trigger"
+msgstr ""
+
+#: plugins/audioscope/audioscope.C:319
+msgid "Falling Trigger"
+msgstr ""
+
+#: plugins/audioscope/audioscope.C:373
 msgid "History Size:"
 msgstr ""
 
-#: plugins/audioscope/audioscope.C:385 plugins/pitch/pitch.C:424
+#: plugins/audioscope/audioscope.C:383 plugins/pitch/pitch.C:422
 msgid "Window Size:"
 msgstr ""
 
-#: plugins/audioscope/audioscope.C:411
+#: plugins/audioscope/audioscope.C:409
 msgid "Trigger level:"
 msgstr ""
 
-#: plugins/audioscope/audioscope.C:419
+#: plugins/audioscope/audioscope.C:417
 msgid "Sample: 0"
 msgstr ""
 
-#: plugins/audioscope/audioscope.C:421
+#: plugins/audioscope/audioscope.C:419
 msgid "Level 0: 0"
 msgstr ""
 
-#: plugins/audioscope/audioscope.C:423
+#: plugins/audioscope/audioscope.C:421
 msgid "Level 1: 0"
 msgstr ""
 
-#: plugins/audioscope/audioscope.C:666
+#: plugins/audioscope/audioscope.C:577
+#, c-format
+msgid "Sample: %d"
+msgstr ""
+
+#: plugins/audioscope/audioscope.C:580
+#, c-format
+msgid "Level 0: %.2f"
+msgstr ""
+
+#: plugins/audioscope/audioscope.C:583
+#, c-format
+msgid "Level 1: %.2f"
+msgstr ""
+
+#: plugins/audioscope/audioscope.C:664
 msgid "AudioScope"
 msgstr ""
 
-#: plugins/bandslide/bandslide.C:78 plugins/bandwipe/bandwipe.C:78
-#: plugins/irissquare/irissquare.C:50 plugins/slide/slide.C:95
+#: plugins/bandslide/bandslide.C:77 plugins/bandwipe/bandwipe.C:77
+#: plugins/irissquare/irissquare.C:49 plugins/slide/slide.C:94
 msgid "In"
 msgstr ""
 
-#: plugins/bandslide/bandslide.C:100 plugins/bandwipe/bandwipe.C:100
-#: plugins/irissquare/irissquare.C:72 plugins/slide/slide.C:117
+#: plugins/bandslide/bandslide.C:99 plugins/bandwipe/bandwipe.C:99
+#: plugins/irissquare/irissquare.C:71 plugins/slide/slide.C:116
 msgid "Out"
 msgstr ""
 
-#: plugins/bandslide/bandslide.C:137 plugins/bandwipe/bandwipe.C:136
-#: plugins/vocoder/vocoder.C:318
+#: plugins/bandslide/bandslide.C:136 plugins/bandwipe/bandwipe.C:135
+#: plugins/vocoder/vocoder.C:316
 msgid "Bands:"
 msgstr ""
 
-#: plugins/bandslide/bandslide.C:147 plugins/irissquare/irissquare.C:109
-#: plugins/shapewipe/shapewipe.C:219 plugins/slide/slide.C:158
-#: plugins/slide/slide.C:172 plugins/wipe/wipe.C:111
+#: plugins/bandslide/bandslide.C:146 plugins/irissquare/irissquare.C:108
+#: plugins/shapewipe/shapewipe.C:218 plugins/slide/slide.C:157
+#: plugins/slide/slide.C:171 plugins/wipe/wipe.C:110
 msgid "Direction:"
 msgstr ""
 
-#: plugins/bandslide/bandslide.C:185
+#: plugins/bandslide/bandslide.C:184
 msgid "BandSlide"
 msgstr ""
 
-#: plugins/bandwipe/bandwipe.C:182
+#: plugins/bandwipe/bandwipe.C:181
 msgid "BandWipe"
 msgstr ""
 
@@ -4585,6 +6657,23 @@ msgstr ""
 msgid "-*-helvetica-bold-r-normal-*-14-*"
 msgstr ""
 
+#: plugins/bluebanana/bluebanana.C:87
+msgid "Blue Banana"
+msgstr ""
+
+#: plugins/bluebanana/bluebananalookups.C:64
+#: plugins/bluebanana/bluebananalookups.C:72
+#, c-format
+msgid "Internal error; pattern array overflow\n"
+msgstr ""
+
+#: plugins/bluebanana/bluebananaslider.C:479
+#: plugins/bluebanana/bluebananaslider.C:1514
+#: plugins/bluebanana/bluebananaslider.C:1970
+#, c-format
+msgid "Bluebanana: Unable to create Frame for slider\n"
+msgstr ""
+
 #: plugins/bluebanana/bluebananawindow.C:1346
 #: plugins/bluebanana/bluebananawindow.C:1354
 #: plugins/bluebanana/bluebananawindow.C:1362
@@ -4601,17 +6690,26 @@ msgstr ""
 #: plugins/bluebanana/bluebananawindow.C:1421
 #: plugins/bluebanana/bluebananawindow.C:2048
 #: plugins/color3way/color3waywindow.C:638
-#: plugins/colorbalance/colorbalancewindow.C:216 plugins/graphic/graphic.C:682
+#: plugins/colorbalance/colorbalancewindow.C:216 plugins/graphic/graphic.C:681
 #: plugins/histogram/histogramwindow.C:672
-#: plugins/histogram_bezier/histogramwindow.C:647
+#: plugins/histogram_bezier/histogramwindow.C:644
 #: plugins/perspective/perspective.C:524
 msgid "Reset"
 msgstr ""
 
+#: plugins/bluebanana/bluebananawindow.C:1757
+msgid " End Mask"
+msgstr ""
+
 #: plugins/bluebanana/bluebananawindow.C:1840
 msgid " Mask Selection"
 msgstr ""
 
+#: plugins/bluebanana/bluebananawindow.C:1912
+#, c-format
+msgid "Unknown colormodel in BluebananaA2Sel:update()\n"
+msgstr ""
+
 #: plugins/bluebanana/bluebananawindow.C:1985
 msgid "Color Selection"
 msgstr ""
@@ -4668,23 +6766,17 @@ msgstr ""
 msgid "-*-helvetica-medium-r-normal-*-14-*"
 msgstr ""
 
-#: plugins/blur/blur.C:132 plugins/blur/blurwindow.C:53
+#: plugins/blur/blur.C:131 plugins/blur/blurwindow.C:53
 msgid "Blur"
 msgstr ""
 
-#: plugins/blur/blurwindow.C:59 plugins/lens/lens.C:552
-#: plugins/oilpainting/oil.C:269 plugins/unsharp/unsharpwindow.C:56
-#: plugins/zoomblur/zoomblur.C:297
-msgid "Radius:"
-msgstr ""
-
-#: plugins/blur/blurwindow.C:128 plugins/downsample/downsample.C:255
-#: plugins/flip/flipwindow.C:52
+#: plugins/blur/blurwindow.C:128 plugins/downsample/downsample.C:254
+#: plugins/flip/flipwindow.C:52 plugins/spectrogram/spectrogram.C:161
 msgid "Vertical"
 msgstr ""
 
-#: plugins/blur/blurwindow.C:147 plugins/downsample/downsample.C:237
-#: plugins/flip/flipwindow.C:58
+#: plugins/blur/blurwindow.C:147 plugins/downsample/downsample.C:236
+#: plugins/flip/flipwindow.C:58 plugins/spectrogram/spectrogram.C:164
 msgid "Horizontal"
 msgstr ""
 
@@ -4708,17 +6800,11 @@ msgstr ""
 msgid "Blur blue"
 msgstr ""
 
-#: plugins/blurzoom/blurzoom.C:64
+#: plugins/blurzoom/blurzoom.C:63
 msgid "RadioacTV"
 msgstr ""
 
-#: plugins/blurzoom/blurzoomwindow.C:52
-msgid ""
-"RadioacTV from EffectTV\n"
-"Copyright (C) 2001 FUKUCHI Kentarou"
-msgstr ""
-
-#: plugins/brightness/brightness.C:97 plugins/brightness/brightnesswindow.C:52
+#: plugins/brightness/brightness.C:96 plugins/brightness/brightnesswindow.C:52
 msgid "Brightness/Contrast"
 msgstr ""
 
@@ -4726,7 +6812,7 @@ msgstr ""
 msgid "Boost luminance only"
 msgstr ""
 
-#: plugins/burn/burn.C:80
+#: plugins/burn/burn.C:79
 msgid "BurningTV"
 msgstr ""
 
@@ -4736,55 +6822,55 @@ msgid ""
 "Copyright (C) 2001 FUKUCHI Kentarou"
 msgstr ""
 
-#: plugins/C41/c41.C:241 plugins/colorbalance/colorbalancewindow.C:150
+#: plugins/C41/c41.C:240 plugins/colorbalance/colorbalancewindow.C:150
 msgid "Lock parameters"
 msgstr ""
 
-#: plugins/C41/c41.C:273
+#: plugins/C41/c41.C:272
 msgid "Activate processing"
 msgstr ""
 
-#: plugins/C41/c41.C:276
+#: plugins/C41/c41.C:275
 msgid "Compute negfix values"
 msgstr ""
 
-#: plugins/C41/c41.C:278
+#: plugins/C41/c41.C:277
 msgid "(uncheck for faster rendering)"
 msgstr ""
 
-#: plugins/C41/c41.C:281
+#: plugins/C41/c41.C:280
 msgid "Computed negfix values:"
 msgstr ""
 
-#: plugins/C41/c41.C:284 plugins/C41/c41.C:315
+#: plugins/C41/c41.C:283 plugins/C41/c41.C:314
 msgid "Min R:"
 msgstr ""
 
-#: plugins/C41/c41.C:288 plugins/C41/c41.C:319
+#: plugins/C41/c41.C:287 plugins/C41/c41.C:318
 msgid "Min G:"
 msgstr ""
 
-#: plugins/C41/c41.C:292 plugins/C41/c41.C:323
+#: plugins/C41/c41.C:291 plugins/C41/c41.C:322
 msgid "Min B:"
 msgstr ""
 
-#: plugins/C41/c41.C:296 plugins/C41/c41.C:327
+#: plugins/C41/c41.C:295 plugins/C41/c41.C:326
 msgid "Light:"
 msgstr ""
 
-#: plugins/C41/c41.C:300 plugins/C41/c41.C:331
+#: plugins/C41/c41.C:299 plugins/C41/c41.C:330
 msgid "Gamma G:"
 msgstr ""
 
-#: plugins/C41/c41.C:304 plugins/C41/c41.C:335
+#: plugins/C41/c41.C:303 plugins/C41/c41.C:334
 msgid "Gamma B:"
 msgstr ""
 
-#: plugins/C41/c41.C:312
+#: plugins/C41/c41.C:311
 msgid "negfix values to apply:"
 msgstr ""
 
-#: plugins/C41/c41.C:380
+#: plugins/C41/c41.C:379
 msgid "C41"
 msgstr ""
 
@@ -4792,6 +6878,13 @@ msgstr ""
 msgid "CD Ripper"
 msgstr ""
 
+#: plugins/cdripper/cdripper.C:128 plugins/cdripper/cdripper.C:160
+#: plugins/cdripper/cdripper.C:176 plugins/cdripper/cdripper.C:192
+#: plugins/cdripper/cdripper.C:207 plugins/cdripper/cdripper.C:225
+#: plugins/cdripper/cdripper.C:237 plugins/cdripper/cdripwindow.C:29
+msgid ": CD Ripper"
+msgstr ""
+
 #: plugins/cdripper/cdripper.C:131
 msgid "Can't open cdrom drive."
 msgstr ""
@@ -4846,105 +6939,135 @@ msgstr ""
 msgid "CD Device:"
 msgstr ""
 
-#: plugins/chromakey/chromakey.C:137 plugins/diffkey/diffkey.C:298
+#: plugins/chromakey/chromakey.C:136 plugins/diffkey/diffkey.C:298
 msgid "Slope:"
 msgstr ""
 
-#: plugins/chromakey/chromakey.C:141 plugins/denoisevideo/denoisevideo.C:257
+#: plugins/chromakey/chromakey.C:140 plugins/denoisevideo/denoisevideo.C:256
 #: plugins/diffkey/diffkey.C:293 plugins/histogram/histogramwindow.C:260
-#: plugins/histogram_bezier/histogramwindow.C:197
+#: plugins/histogram_bezier/histogramwindow.C:194
 #: plugins/timeavg/timeavgwindow.C:71 plugins/unsharp/unsharpwindow.C:68
 msgid "Threshold:"
 msgstr ""
 
-#: plugins/chromakey/chromakey.C:187 plugins/chromakeyhsv/chromakey.C:295
+#: plugins/chromakey/chromakey.C:186 plugins/chromakeyhsv/chromakey.C:294
 #: plugins/titler/titlewindow.C:696
 msgid "Color..."
 msgstr ""
 
-#: plugins/chromakey/chromakey.C:247
+#: plugins/chromakey/chromakey.C:246
 msgid "Use value"
 msgstr ""
 
-#: plugins/chromakey/chromakey.C:263 plugins/chromakeyhsv/chromakey.C:468
+#: plugins/chromakey/chromakey.C:262 plugins/chromakeyhsv/chromakey.C:467
 msgid "Use color picker"
 msgstr ""
 
-#: plugins/chromakey/chromakey.C:283 plugins/chromakeyhsv/chromakey.C:529
-#: plugins/gradient/gradient.C:538
+#: plugins/chromakey/chromakey.C:282 plugins/chromakeyhsv/chromakey.C:528
+#: plugins/gradient/gradient.C:537
 msgid "Inner color"
 msgstr ""
 
-#: plugins/chromakey/chromakey.C:575
+#: plugins/chromakey/chromakey.C:574
 msgid "Chroma key"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:197
+#: plugins/chromakeyhsv/chromakey.C:196
 msgid "Key parameters:"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:199
+#: plugins/chromakeyhsv/chromakey.C:198
 msgid "Hue Tolerance:"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:202
+#: plugins/chromakeyhsv/chromakey.C:201
 msgid "Min. Brightness:"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:205
+#: plugins/chromakeyhsv/chromakey.C:204
 msgid "Max. Brightness:"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:208
+#: plugins/chromakeyhsv/chromakey.C:207
 msgid "Saturation Offset:"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:211
+#: plugins/chromakeyhsv/chromakey.C:210
 msgid "Min Saturation:"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:217
+#: plugins/chromakeyhsv/chromakey.C:216
 msgid "Mask tweaking:"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:219
+#: plugins/chromakeyhsv/chromakey.C:218
 msgid "In Slope:"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:222
+#: plugins/chromakeyhsv/chromakey.C:221
 msgid "Out Slope:"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:225
+#: plugins/chromakeyhsv/chromakey.C:224
 msgid "Alpha Offset:"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:233
+#: plugins/chromakeyhsv/chromakey.C:232
 msgid "Spill light control:"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:235
+#: plugins/chromakeyhsv/chromakey.C:234
 msgid "Spill Threshold:"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:238
+#: plugins/chromakeyhsv/chromakey.C:237
 msgid "Spill Compensation:"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:451
+#: plugins/chromakeyhsv/chromakey.C:450
 msgid "Show Mask"
 msgstr ""
 
-#: plugins/chromakeyhsv/chromakey.C:923
+#: plugins/chromakeyhsv/chromakey.C:922
 msgid "Chroma key (HSV)"
 msgstr ""
 
-#: plugins/color3way/color3way.C:387
+#: plugins/color3way/color3way.C:385
 msgid "Color 3 Way"
 msgstr ""
 
+#: plugins/color3way/color3way.C:604 plugins/color3way/color3way.C:611
+#: plugins/colorbalance/colorbalance.C:579
+#: plugins/colorbalance/colorbalance.C:586 plugins/gamma/gamma.C:577
+#: plugins/histogram/histogram.C:639 plugins/histogram/histogram.C:655
+#: plugins/histogram/histogram.C:662 plugins/histogram/histogram.C:669
+#: plugins/interpolate/interpolate.C:170
+msgid "Interpolate Pixels"
+msgstr ""
+
+#: plugins/color3way/color3way.C:605 plugins/color3way/color3way.C:616
+#: plugins/colorbalance/colorbalance.C:580
+#: plugins/colorbalance/colorbalance.C:591 plugins/gamma/gamma.C:398
+#: plugins/histogram/histogram.C:640 plugins/histogram/histogram.C:648
+#: plugins/histogram/histogram.C:656 plugins/histogram/histogram.C:672
+#: plugins/interpolate/interpolate.C:254
+msgid "Gamma"
+msgstr ""
+
+#: plugins/color3way/color3waywindow.C:136
+msgid "Shadows"
+msgstr ""
+
+#: plugins/color3way/color3waywindow.C:137
+msgid "Midtones"
+msgstr ""
+
+#: plugins/color3way/color3waywindow.C:138
+msgid "Highlights"
+msgstr ""
+
 #: plugins/color3way/color3waywindow.C:168
-#: plugins/huesaturation/huesaturation.C:319
+#: plugins/huesaturation/huesaturation.C:318
 msgid "Saturation:"
 msgstr ""
 
@@ -4957,8 +7080,11 @@ msgstr ""
 msgid "White balance"
 msgstr ""
 
-#: plugins/colorbalance/colorbalance.C:339
-#: plugins/colorbalance/colorbalancewindow.C:54
+#: plugins/colorbalance/colorbalance.C:338
+#: plugins/colorbalance/colorbalancewindow.C:54 plugins/gamma/gamma.C:437
+#: plugins/histogram/histogram.C:641 plugins/histogram/histogram.C:649
+#: plugins/histogram/histogram.C:663 plugins/histogram/histogram.C:675
+#: plugins/interpolate/interpolate.C:256
 msgid "Color Balance"
 msgstr ""
 
@@ -4978,64 +7104,68 @@ msgstr ""
 msgid "Preserve luminosity"
 msgstr ""
 
-#: plugins/compressor/compressor.C:118
+#: plugins/compressor/compressor.C:117
 msgid "Compressor"
 msgstr ""
 
-#: plugins/compressor/compressor.C:857
+#: plugins/compressor/compressor.C:855
 msgid "Reaction secs:"
 msgstr ""
 
-#: plugins/compressor/compressor.C:861
+#: plugins/compressor/compressor.C:859
 msgid "Decay secs:"
 msgstr ""
 
-#: plugins/compressor/compressor.C:865
+#: plugins/compressor/compressor.C:863
 msgid "Trigger Type:"
 msgstr ""
 
-#: plugins/compressor/compressor.C:870
+#: plugins/compressor/compressor.C:868
 msgid "Trigger:"
 msgstr ""
 
-#: plugins/compressor/compressor.C:880
+#: plugins/compressor/compressor.C:878
 msgid "Point:"
 msgstr ""
 
-#: plugins/compressor/compressor.C:1019
-msgid "Output"
+#: plugins/compressor/compressor.C:1018 plugins/compressor/compressor.C:1020
+msgid "Input"
 msgstr ""
 
-#: plugins/compressor/compressor.C:1020 plugins/compressor/compressor.C:1022
-msgid "Input"
+#: plugins/compressor/compressor.C:1366 plugins/compressor/compressor.C:1371
+msgid "Trigger"
+msgstr ""
+
+#: plugins/compressor/compressor.C:1367 plugins/piano/piano.C:1109
+#: plugins/synthesizer/synthesizer.C:1670
+msgid "Maximum"
+msgstr ""
+
+#: plugins/compressor/compressor.C:1368
+msgid "Total"
 msgstr ""
 
-#: plugins/compressor/compressor.C:1409
+#: plugins/compressor/compressor.C:1407
 msgid "Smooth only"
 msgstr ""
 
-#: plugins/crossfade/crossfade.C:47
+#: plugins/crossfade/crossfade.C:46
 msgid "Crossfade"
 msgstr ""
 
-#: plugins/decimate/decimate.C:247
+#: plugins/decimate/decimate.C:246
 #: plugins/interpolatevideo/interpolatewindow.C:57
 msgid "Input frames per second:"
 msgstr ""
 
-#: plugins/decimate/decimate.C:258
+#: plugins/decimate/decimate.C:257
 msgid "Last frame dropped: "
 msgstr ""
 
-#: plugins/decimate/decimate.C:747
+#: plugins/decimate/decimate.C:746
 msgid "Decimate"
 msgstr ""
 
-#: plugins/deinterlace/deinterlace.C:96
-#: plugins/denoisemjpeg/denoisemjpeg.C:256
-msgid "Deinterlace"
-msgstr ""
-
 #: plugins/deinterlace/deinterwindow.C:51
 msgid "Select lines to keep"
 msgstr ""
@@ -5078,7 +7208,7 @@ msgstr ""
 msgid "Changed rows: %d\n"
 msgstr ""
 
-#: plugins/deinterlace-cv/deinterlace-cv.C:98
+#: plugins/deinterlace-cv/deinterlace-cv.C:97
 msgid "Deinterlace-CV"
 msgstr ""
 
@@ -5098,9 +7228,13 @@ msgstr ""
 msgid "Average top fields"
 msgstr ""
 
+#: plugins/deinterlace-cv/deinterwindow-cv.C:103
+msgid "Average bottom fields"
+msgstr ""
+
 #: plugins/deinterlace-cv/deinterwindow-cv.C:107
 #: plugins/deinterlace-cv/deinterwindow-cv.C:113
-#: plugins/fieldframe/fieldframe.C:212 plugins/framefield/framefield.C:229
+#: plugins/fieldframe/fieldframe.C:211 plugins/framefield/framefield.C:228
 msgid "Top field first"
 msgstr ""
 
@@ -5148,78 +7282,78 @@ msgstr ""
 msgid "Do Nothing"
 msgstr ""
 
-#: plugins/delayaudio/delayaudio.C:64
+#: plugins/delayaudio/delayaudio.C:58
 msgid "Delay audio"
 msgstr ""
 
-#: plugins/delayaudio/delayaudio.C:228 plugins/delayvideo/delayvideo.C:93
+#: plugins/delayaudio/delayaudio.C:222 plugins/delayvideo/delayvideo.C:92
 msgid "Delay seconds:"
 msgstr ""
 
-#: plugins/delayvideo/delayvideo.C:254
+#: plugins/delayvideo/delayvideo.C:253
 msgid "Delay Video"
 msgstr ""
 
-#: plugins/denoise/denoise.C:772 plugins/echocancel/echocancel.C:435
-#: plugins/gain/gainwindow.C:54 plugins/spectrogram/spectrogram.C:421
-#: plugins/vocoder/vocoder.C:299
+#: plugins/denoise/denoise.C:770 plugins/echocancel/echocancel.C:433
+#: plugins/gain/gainwindow.C:54 plugins/graphic/graphic.C:808
+#: plugins/spectrogram/spectrogram.C:419 plugins/vocoder/vocoder.C:297
 msgid "Level:"
 msgstr ""
 
-#: plugins/denoisefft/denoisefft.C:244
+#: plugins/denoisefft/denoisefft.C:243
 msgid "Denoise power:"
 msgstr ""
 
-#: plugins/denoisefft/denoisefft.C:247
+#: plugins/denoisefft/denoisefft.C:246
 msgid "Number of samples for reference:"
 msgstr ""
 
-#: plugins/denoisefft/denoisefft.C:249
+#: plugins/denoisefft/denoisefft.C:248
 msgid "The keyframe is the start of the reference"
 msgstr ""
 
-#: plugins/denoisefft/denoisefft.C:313
+#: plugins/denoisefft/denoisefft.C:311
 msgid "DenoiseFFT"
 msgstr ""
 
-#: plugins/denoisemjpeg/denoisemjpeg.C:278
+#: plugins/denoisemjpeg/denoisemjpeg.C:277
 msgid "Progressive"
 msgstr ""
 
-#: plugins/denoisemjpeg/denoisemjpeg.C:316
+#: plugins/denoisemjpeg/denoisemjpeg.C:315
 msgid "Fast"
 msgstr ""
 
-#: plugins/denoisemjpeg/denoisemjpeg.C:373
+#: plugins/denoisemjpeg/denoisemjpeg.C:372
 #: plugins/interpolatevideo/interpolatewindow.C:85
 msgid "Search radius:"
 msgstr ""
 
-#: plugins/denoisemjpeg/denoisemjpeg.C:377
+#: plugins/denoisemjpeg/denoisemjpeg.C:376
 msgid "Pass 1 threshold:"
 msgstr ""
 
-#: plugins/denoisemjpeg/denoisemjpeg.C:381
+#: plugins/denoisemjpeg/denoisemjpeg.C:380
 msgid "Pass 2 threshold:"
 msgstr ""
 
-#: plugins/denoisemjpeg/denoisemjpeg.C:389
+#: plugins/denoisemjpeg/denoisemjpeg.C:388
 msgid "Luma contrast:"
 msgstr ""
 
-#: plugins/denoisemjpeg/denoisemjpeg.C:393
+#: plugins/denoisemjpeg/denoisemjpeg.C:392
 msgid "Chroma contrast:"
 msgstr ""
 
-#: plugins/denoisemjpeg/denoisemjpeg.C:397
+#: plugins/denoisemjpeg/denoisemjpeg.C:396
 msgid "Delay frames:"
 msgstr ""
 
-#: plugins/denoisemjpeg/denoisemjpeg.C:455
+#: plugins/denoisemjpeg/denoisemjpeg.C:454
 msgid "Denoise video2"
 msgstr ""
 
-#: plugins/denoiseseltempavg/seltempavg.C:121
+#: plugins/denoiseseltempavg/seltempavg.C:120
 msgid "Selective Temporal Averaging"
 msgstr ""
 
@@ -5291,23 +7425,23 @@ msgstr ""
 msgid "This Frame is a start of a section"
 msgstr ""
 
-#: plugins/denoisevideo/denoisevideo.C:188
+#: plugins/denoisevideo/denoisevideo.C:187
 msgid "Average changing pixels"
 msgstr ""
 
-#: plugins/denoisevideo/denoisevideo.C:213
+#: plugins/denoisevideo/denoisevideo.C:212
 msgid "Average similar pixels"
 msgstr ""
 
-#: plugins/denoisevideo/denoisevideo.C:253
+#: plugins/denoisevideo/denoisevideo.C:252
 msgid "Frames to accumulate:"
 msgstr ""
 
-#: plugins/denoisevideo/denoisevideo.C:415
+#: plugins/denoisevideo/denoisevideo.C:414
 msgid "Denoise video"
 msgstr ""
 
-#: plugins/despike/despike.C:55
+#: plugins/despike/despike.C:54
 msgid "Despike"
 msgstr ""
 
@@ -5323,15 +7457,15 @@ msgstr ""
 msgid "Use Value"
 msgstr ""
 
-#: plugins/diffkey/diffkey.C:331
+#: plugins/diffkey/diffkey.C:329
 msgid "Difference key"
 msgstr ""
 
-#: plugins/dissolve/dissolve.C:51
+#: plugins/dissolve/dissolve.C:50
 msgid "Dissolve"
 msgstr ""
 
-#: plugins/dot/dot.C:83
+#: plugins/dot/dot.C:82
 msgid "DotTV"
 msgstr ""
 
@@ -5341,77 +7475,94 @@ msgid ""
 "Copyright (C) 2001 FUKUCHI Kentarou"
 msgstr ""
 
-#: plugins/downsample/downsample.C:246
+#: plugins/downsample/downsample.C:245
 msgid "Horizontal offset"
 msgstr ""
 
-#: plugins/downsample/downsample.C:264
+#: plugins/downsample/downsample.C:263
 msgid "Vertical offset"
 msgstr ""
 
-#: plugins/downsample/downsample.C:377 plugins/reframert/reframert.C:299
+#: plugins/downsample/downsample.C:376 plugins/reframert/reframert.C:299
 msgid "Downsample"
 msgstr ""
 
-#: plugins/echo/echo.C:147
+#: plugins/echo/echo.C:145
 msgid "Level: "
 msgstr ""
 
-#: plugins/echo/echo.C:150
+#: plugins/echo/echo.C:148
 msgid "Atten: "
 msgstr ""
 
-#: plugins/echo/echo.C:153 plugins/echocancel/echocancel.C:447
+#: plugins/echo/echo.C:151 plugins/echocancel/echocancel.C:445
 msgid "Offset: "
 msgstr ""
 
-#: plugins/echo/echo.C:212
+#: plugins/echo/echo.C:210
 msgid "Echo"
 msgstr ""
 
-#: plugins/echocancel/echocancel.C:265 plugins/normalize/normalize.C:56
-#: plugins/piano/piano.C:1135 plugins/spectrogram/spectrogram.C:255
-#: plugins/synthesizer/synthesizer.C:1697
+#: plugins/echocancel/echocancel.C:161
+msgid "ON"
+msgstr ""
+
+#: plugins/echocancel/echocancel.C:162
+msgid "MAN"
+msgstr ""
+
+#: plugins/echocancel/echocancel.C:164
+msgid "OFF"
+msgstr ""
+
+#: plugins/echocancel/echocancel.C:212
+msgid "default"
+msgstr ""
+
+#: plugins/echocancel/echocancel.C:263 plugins/normalize/normalize.C:52
+#: plugins/piano/piano.C:1129 plugins/spectrogram/spectrogram.C:253
+#: plugins/synthesizer/synthesizer.C:1691
 msgid "Normalize"
 msgstr ""
 
-#: plugins/echocancel/echocancel.C:445
+#: plugins/echocancel/echocancel.C:443
 msgid "Gain: "
 msgstr ""
 
-#: plugins/echocancel/echocancel.C:461 plugins/spectrogram/spectrogram.C:434
+#: plugins/echocancel/echocancel.C:459 plugins/graphic/graphic.C:820
+#: plugins/spectrogram/spectrogram.C:432
 msgid "Window size:"
 msgstr ""
 
-#: plugins/echocancel/echocancel.C:478 plugins/spectrogram/spectrogram.C:465
+#: plugins/echocancel/echocancel.C:476 plugins/spectrogram/spectrogram.C:463
 msgid "History:"
 msgstr ""
 
-#: plugins/echocancel/echocancel.C:485 plugins/spectrogram/spectrogram.C:473
+#: plugins/echocancel/echocancel.C:483 plugins/spectrogram/spectrogram.C:471
 msgid "X Zoom:"
 msgstr ""
 
-#: plugins/echocancel/echocancel.C:490 plugins/freeverb/freeverb.C:319
+#: plugins/echocancel/echocancel.C:488 plugins/freeverb/freeverb.C:318
 msgid "Damp:"
 msgstr ""
 
-#: plugins/echocancel/echocancel.C:494
+#: plugins/echocancel/echocancel.C:492
 msgid "Cutoff Hz:"
 msgstr ""
 
-#: plugins/echocancel/echocancel.C:497 plugins/echocancel/echocancel.C:498
+#: plugins/echocancel/echocancel.C:495 plugins/echocancel/echocancel.C:496
 msgid "Peaks:"
 msgstr ""
 
-#: plugins/echocancel/echocancel.C:503
+#: plugins/echocancel/echocancel.C:501
 msgid "0 Hz"
 msgstr ""
 
-#: plugins/echocancel/echocancel.C:725
+#: plugins/echocancel/echocancel.C:723
 msgid "EchoCancel"
 msgstr ""
 
-#: plugins/fieldframe/fieldframe.C:336
+#: plugins/fieldframe/fieldframe.C:335
 msgid "Fields to frames"
 msgstr ""
 
@@ -5515,56 +7666,52 @@ msgstr ""
 msgid "Blob"
 msgstr ""
 
-#: plugins/flash/flash.C:46
+#: plugins/flash/flash.C:45
 msgid "Flash"
 msgstr ""
 
-#: plugins/flip/flip.C:89
+#: plugins/flip/flip.C:88
 msgid "Flip"
 msgstr ""
 
-#: plugins/framefield/framefield.C:567
+#: plugins/framefield/framefield.C:566 plugins/rgb601/rgb601.C:297
+#: plugins/rgb601/rgb601.C:298
 msgid "Frames to fields"
 msgstr ""
 
-#: plugins/freeverb/freeverb.C:274
+#: plugins/framefield/framefield.C:708 plugins/framefield/framefield.C:709
+#: plugins/rgb601/rgb601.C:54
+msgid "RGB - 601"
+msgstr ""
+
+#: plugins/freeverb/freeverb.C:273
 msgid "Freeze"
 msgstr ""
 
-#: plugins/freeverb/freeverb.C:315
+#: plugins/freeverb/freeverb.C:314
 msgid "Roomsize:"
 msgstr ""
 
-#: plugins/freeverb/freeverb.C:323
+#: plugins/freeverb/freeverb.C:322
 msgid "Wet:"
 msgstr ""
 
-#: plugins/freeverb/freeverb.C:327
+#: plugins/freeverb/freeverb.C:326
 msgid "Dry:"
 msgstr ""
 
-#: plugins/freeverb/freeverb.C:461
+#: plugins/freeverb/freeverb.C:459
 msgid "Freeverb"
 msgstr ""
 
-#: plugins/freezeframe/freezeframe.C:101
-#: plugins/reverseaudio/reverseaudio.C:143
-#: plugins/reversevideo/reversevideo.C:145 plugins/swapframes/swapframes.C:90
-msgid "Enabled"
-msgstr ""
-
-#: plugins/freezeframe/freezeframe.C:164
+#: plugins/freezeframe/freezeframe.C:163
 msgid "Freeze Frame"
 msgstr ""
 
-#: plugins/gain/gain.C:86
+#: plugins/gain/gain.C:85
 msgid "Gain"
 msgstr ""
 
-#: plugins/gamma/gamma.C:399
-msgid "Gamma"
-msgstr ""
-
 #: plugins/gamma/gammawindow.C:57
 msgid "Maximum:"
 msgstr ""
@@ -5574,7 +7721,7 @@ msgid "Gamma:"
 msgstr ""
 
 #: plugins/gamma/gammawindow.C:266 plugins/histogram/histogramwindow.C:937
-#: plugins/histogram_bezier/histogramwindow.C:829 plugins/ivtc/ivtc.C:38
+#: plugins/histogram_bezier/histogramwindow.C:826 plugins/ivtc/ivtc.C:38
 #: plugins/ivtc/ivtcwindow.C:34
 msgid "Automatic"
 msgstr ""
@@ -5588,155 +7735,163 @@ msgstr ""
 msgid "Use Color Picker"
 msgstr ""
 
-#: plugins/gradient/gradient.C:186 plugins/shapewipe/shapewipe.C:234
+#: plugins/gradient/gradient.C:185 plugins/shapewipe/shapewipe.C:233
 msgid "Shape:"
 msgstr ""
 
-#: plugins/gradient/gradient.C:197 plugins/timefront/timefront.C:208
-#: plugins/timefront/timefront.C:251
+#: plugins/gradient/gradient.C:196 plugins/timefront/timefront.C:207
+#: plugins/timefront/timefront.C:250
 msgid "Rate:"
 msgstr ""
 
-#: plugins/gradient/gradient.C:208 plugins/timefront/timefront.C:214
-#: plugins/timefront/timefront.C:257
+#: plugins/gradient/gradient.C:207 plugins/timefront/timefront.C:213
+#: plugins/timefront/timefront.C:256
 msgid "Inner radius:"
 msgstr ""
 
-#: plugins/gradient/gradient.C:213 plugins/timefront/timefront.C:217
-#: plugins/timefront/timefront.C:260
+#: plugins/gradient/gradient.C:212 plugins/timefront/timefront.C:216
+#: plugins/timefront/timefront.C:259
 msgid "Outer radius:"
 msgstr ""
 
-#: plugins/gradient/gradient.C:277 plugins/linearblur/linearblur.C:287
-#: plugins/polar/polar.C:209 plugins/radialblur/radialblur.C:285
-#: plugins/timefront/timefront.C:202
-msgid "Angle:"
-msgstr ""
-
-#: plugins/gradient/gradient.C:289 plugins/lens/lens.C:573
-#: plugins/timefront/timefront.C:235
+#: plugins/gradient/gradient.C:288 plugins/lens/lens.C:573
+#: plugins/timefront/timefront.C:234
 msgid "Center X:"
 msgstr ""
 
-#: plugins/gradient/gradient.C:294 plugins/lens/lens.C:595
-#: plugins/timefront/timefront.C:240
+#: plugins/gradient/gradient.C:293 plugins/lens/lens.C:595
+#: plugins/timefront/timefront.C:239
 msgid "Center Y:"
 msgstr ""
 
-#: plugins/gradient/gradient.C:348 plugins/gradient/gradient.C:438
-#: plugins/histogram_bezier/histogramwindow.C:1031
-#: plugins/timefront/timefront.C:370 plugins/timefront/timefront.C:510
+#: plugins/gradient/gradient.C:347 plugins/gradient/gradient.C:437
+#: plugins/histogram_bezier/histogramwindow.C:1028
+#: plugins/timefront/timefront.C:369 plugins/timefront/timefront.C:509
 msgid "Linear"
 msgstr ""
 
-#: plugins/gradient/gradient.C:350 plugins/timefront/timefront.C:376
+#: plugins/gradient/gradient.C:349 plugins/timefront/timefront.C:375
 msgid "Radial"
 msgstr ""
 
-#: plugins/gradient/gradient.C:440 plugins/timefront/timefront.C:512
+#: plugins/gradient/gradient.C:439 plugins/timefront/timefront.C:511
 msgid "Log"
 msgstr ""
 
-#: plugins/gradient/gradient.C:442 plugins/piano/piano.C:696
-#: plugins/piano/piano.C:949 plugins/synthesizer/synthesizer.C:1022
-#: plugins/synthesizer/synthesizer.C:1504 plugins/timefront/timefront.C:514
+#: plugins/gradient/gradient.C:441 plugins/piano/piano.C:690
+#: plugins/piano/piano.C:943 plugins/synthesizer/synthesizer.C:1016
+#: plugins/synthesizer/synthesizer.C:1498 plugins/timefront/timefront.C:513
 #, c-format
 msgid "Square"
 msgstr ""
 
-#: plugins/gradient/gradient.C:504
+#: plugins/gradient/gradient.C:503
 msgid "Inner color:"
 msgstr ""
 
-#: plugins/gradient/gradient.C:520
+#: plugins/gradient/gradient.C:519
 msgid "Outer color:"
 msgstr ""
 
-#: plugins/gradient/gradient.C:573
+#: plugins/gradient/gradient.C:572
 msgid "Outer color"
 msgstr ""
 
-#: plugins/gradient/gradient.C:632
+#: plugins/gradient/gradient.C:631
 msgid "Gradient"
 msgstr ""
 
-#: plugins/graphic/graphic.C:1049
+#: plugins/graphic/graphic.C:803
+msgid "Frequency:"
+msgstr ""
+
+#: plugins/graphic/graphic.C:1048
 msgid "EQ Graphic"
 msgstr ""
 
-#: plugins/histogram/histogram.C:99 plugins/histogram_bezier/histogram.C:99
-msgid "Histogram"
+#: plugins/greycstoration/greycstorationplugin.C:96
+msgid "GreyCStoration"
+msgstr ""
+
+#: plugins/greycstoration/greycstorationwindow.C:47 plugins/wave/wave.C:404
+msgid "Amplitude:"
+msgstr ""
+
+#: plugins/greycstoration/greycstorationwindow.C:55
+msgid "Anisotropy:"
+msgstr ""
+
+#: plugins/greycstoration/greycstorationwindow.C:59
+msgid "Noise scale:"
+msgstr ""
+
+#: plugins/histogram/histogramwindow.C:591
+msgid "RGB Parade on"
+msgstr ""
+
+#: plugins/histogram/histogramwindow.C:593
+msgid "RGB Parade off"
 msgstr ""
 
 #: plugins/histogram/histogramwindow.C:973
 msgid "Split output"
 msgstr ""
 
-#: plugins/histogram_bezier/histogramwindow.C:104
+#: plugins/histogram_bezier/histogramwindow.C:101
 msgid "Input X:"
 msgstr ""
 
-#: plugins/histogram_bezier/histogramwindow.C:114
+#: plugins/histogram_bezier/histogramwindow.C:111
 msgid "Input Y:"
 msgstr ""
 
-#: plugins/histogram_bezier/histogramwindow.C:156
+#: plugins/histogram_bezier/histogramwindow.C:153
 msgid "Output min:"
 msgstr ""
 
-#: plugins/histogram_bezier/histogramwindow.C:165
+#: plugins/histogram_bezier/histogramwindow.C:162
 msgid "Output Max:"
 msgstr ""
 
-#: plugins/histogram_bezier/histogramwindow.C:210
+#: plugins/histogram_bezier/histogramwindow.C:207
 msgid "Interpolation:"
 msgstr ""
 
-#: plugins/histogram_bezier/histogramwindow.C:847
+#: plugins/histogram_bezier/histogramwindow.C:844
 msgid "Split picture"
 msgstr ""
 
-#: plugins/histogram_bezier/histogramwindow.C:1033
+#: plugins/histogram_bezier/histogramwindow.C:1030
 msgid "Polynominal"
 msgstr ""
 
-#: plugins/histogram_bezier/histogramwindow.C:1035
+#: plugins/histogram_bezier/histogramwindow.C:1032
 msgid "Bezier"
 msgstr ""
 
-#: plugins/holo/holo.C:84
+#: plugins/holo/holo.C:83
 msgid "HolographicTV"
 msgstr ""
 
-#: plugins/holo/holowindow.C:51
-msgid ""
-"HolographicTV from EffectTV\n"
-"Copyright (C) 2001 FUKUCHI Kentarou"
-msgstr ""
-
-#: plugins/huesaturation/huesaturation.C:577
+#: plugins/huesaturation/huesaturation.C:576
 msgid "Hue saturation"
 msgstr ""
 
-#: plugins/interpolate/interpolate.C:96
+#: plugins/interpolate/interpolate.C:95
 msgid "X Offset:"
 msgstr ""
 
-#: plugins/interpolate/interpolate.C:102
+#: plugins/interpolate/interpolate.C:101
 msgid "Y Offset:"
 msgstr ""
 
-#: plugins/interpolate/interpolate.C:171
-msgid "Interpolate Pixels"
-msgstr ""
-
 #: plugins/interpolateall/interpolateall.C:97
-#: plugins/interpolateaudio/interpolateaudio.C:99
+#: plugins/interpolateaudio/interpolateaudio.C:98
 #: plugins/reframert/reframert.C:317
 msgid "Interpolate"
 msgstr ""
 
-#: plugins/interpolatevideo/interpolatevideo.C:856
+#: plugins/interpolatevideo/interpolatevideo.C:854
 msgid "Interpolate Video"
 msgstr ""
 
@@ -5756,37 +7911,37 @@ msgstr ""
 msgid "Draw motion vectors"
 msgstr ""
 
-#: plugins/invertaudio/invert.C:46
+#: plugins/invertaudio/invert.C:41
 msgid "Invert Audio"
 msgstr ""
 
-#: plugins/invertvideo/invert.C:174
+#: plugins/invertvideo/invert.C:173
 msgid "Invert R"
 msgstr ""
 
-#: plugins/invertvideo/invert.C:176
+#: plugins/invertvideo/invert.C:175
 msgid "Invert G"
 msgstr ""
 
-#: plugins/invertvideo/invert.C:178
+#: plugins/invertvideo/invert.C:177
 msgid "Invert B"
 msgstr ""
 
-#: plugins/invertvideo/invert.C:180
+#: plugins/invertvideo/invert.C:179
 msgid "Invert A"
 msgstr ""
 
-#: plugins/invertvideo/invert.C:205
+#: plugins/invertvideo/invert.C:204
 msgid "Invert Video"
 msgstr ""
 
-#: plugins/invertvideo/invertwindow.C:42 plugins/piano/piano.C:1215
-#: plugins/piano/piano.C:1262 plugins/synthesizer/synthesizer.C:1780
-#: plugins/synthesizer/synthesizer.C:1829
+#: plugins/invertvideo/invertwindow.C:42 plugins/piano/piano.C:1209
+#: plugins/piano/piano.C:1256 plugins/synthesizer/synthesizer.C:1774
+#: plugins/synthesizer/synthesizer.C:1823
 msgid "Invert"
 msgstr ""
 
-#: plugins/irissquare/irissquare.C:145
+#: plugins/irissquare/irissquare.C:144
 msgid "IrisSquare"
 msgstr ""
 
@@ -5798,10 +7953,6 @@ msgstr ""
 msgid "AB  BC  CD  DE  EF"
 msgstr ""
 
-#: plugins/ivtc/ivtc.C:76
-msgid "Inverse Telecine"
-msgstr ""
-
 #: plugins/ivtc/ivtcwindow.C:62
 msgid "Pattern offset:"
 msgstr ""
@@ -5863,44 +8014,48 @@ msgstr ""
 msgid "Draw center"
 msgstr ""
 
-#: plugins/lens/lens.C:699
+#: plugins/lens/lens.C:697
 msgid "Lens"
 msgstr ""
 
-#: plugins/level/leveleffect.C:129
+#: plugins/level/leveleffect.C:128
 msgid "Duration (seconds):"
 msgstr ""
 
-#: plugins/level/leveleffect.C:132
+#: plugins/level/leveleffect.C:131
 msgid "Max soundlevel (dB):"
 msgstr ""
 
-#: plugins/level/leveleffect.C:135
+#: plugins/level/leveleffect.C:134
 msgid "RMS soundlevel (dB):"
 msgstr ""
 
-#: plugins/level/leveleffect.C:198
+#: plugins/level/leveleffect.C:196
 msgid "SoundLevel"
 msgstr ""
 
-#: plugins/linearblur/linearblur.C:283 plugins/motionblur/motionblur.C:252
+#: plugins/linearblur/linearblur.C:282 plugins/motionblur/motionblur.C:251
 msgid "Length:"
 msgstr ""
 
-#: plugins/linearblur/linearblur.C:291 plugins/motionblur/motionblur.C:256
-#: plugins/radialblur/radialblur.C:289 plugins/zoomblur/zoomblur.C:301
+#: plugins/linearblur/linearblur.C:290 plugins/motionblur/motionblur.C:255
+#: plugins/radialblur/radialblur.C:288 plugins/zoomblur/zoomblur.C:300
 msgid "Steps:"
 msgstr ""
 
-#: plugins/linearblur/linearblur.C:392
+#: plugins/linearblur/linearblur.C:391
 msgid "Linear Blur"
 msgstr ""
 
-#: plugins/liveaudio/liveaudio.C:378
+#: plugins/liveaudio/liveaudio.C:148
+msgid "Live audio"
+msgstr ""
+
+#: plugins/liveaudio/liveaudio.C:377
 msgid "Live Audio"
 msgstr ""
 
-#: plugins/livevideo/livevideo.C:582
+#: plugins/livevideo/livevideo.C:581
 msgid "Live Video"
 msgstr ""
 
@@ -5920,7 +8075,7 @@ msgstr ""
 msgid "Loop video"
 msgstr ""
 
-#: plugins/motion/motion.C:268 plugins/motion.new/motion.C:260
+#: plugins/motion/motion.C:266 plugins/motion.new/motion.C:260
 msgid "Motion"
 msgstr ""
 
@@ -6033,14 +8188,14 @@ msgstr ""
 #: plugins/motion2point/motionwindow.C:721
 #: plugins/motion2point/motionwindow.C:727
 #: plugins/motion.new/motionwindow.C:887 plugins/motion.new/motionwindow.C:893
-#: plugins/overlay/overlay.C:231 plugins/overlayaudio/overlayaudio.C:166
-#: plugins/reroute/reroute.C:165 plugins/titler/titlewindow.C:1024
+#: plugins/overlay/overlay.C:230 plugins/overlayaudio/overlayaudio.C:163
+#: plugins/reroute/reroute.C:164 plugins/titler/titlewindow.C:1024
 msgid "Top"
 msgstr ""
 
 #: plugins/motion/motionwindow.C:920 plugins/motion2point/motionwindow.C:727
-#: plugins/motion.new/motionwindow.C:893 plugins/overlay/overlay.C:232
-#: plugins/overlayaudio/overlayaudio.C:167 plugins/reroute/reroute.C:166
+#: plugins/motion.new/motionwindow.C:893 plugins/overlay/overlay.C:231
+#: plugins/overlayaudio/overlayaudio.C:164 plugins/reroute/reroute.C:165
 #: plugins/titler/titlewindow.C:1052
 msgid "Bottom"
 msgstr ""
@@ -6109,7 +8264,7 @@ msgstr ""
 msgid "Both"
 msgstr ""
 
-#: plugins/motion2point/motion.C:247
+#: plugins/motion2point/motion.C:246
 msgid "Motion 2 Point"
 msgstr ""
 
@@ -6145,7 +8300,7 @@ msgstr ""
 msgid "Stabilize"
 msgstr ""
 
-#: plugins/motionblur/motionblur.C:316
+#: plugins/motionblur/motionblur.C:315
 msgid "Motion Blur"
 msgstr ""
 
@@ -6155,19 +8310,23 @@ msgid ""
 "(W/H Percent of image)"
 msgstr ""
 
-#: plugins/normalize/normalizewindow.C:55
+#: plugins/normalize/normalizewindow.C:27
+msgid ": Normalize"
+msgstr ""
+
+#: plugins/normalize/normalizewindow.C:51
 msgid "Enter the DB to overload by:"
 msgstr ""
 
-#: plugins/normalize/normalizewindow.C:90
+#: plugins/normalize/normalizewindow.C:86
 msgid "Treat tracks independantly"
 msgstr ""
 
-#: plugins/oilpainting/oil.C:234
+#: plugins/oilpainting/oil.C:233
 msgid "Use intensity"
 msgstr ""
 
-#: plugins/oilpainting/oil.C:310
+#: plugins/oilpainting/oil.C:309
 msgid "Oil painting"
 msgstr ""
 
@@ -6175,7 +8334,7 @@ msgstr ""
 msgid "Oil Painting"
 msgstr ""
 
-#: plugins/oilpainting/oilwindow.C:72 plugins/whirl/whirl.C:244
+#: plugins/oilpainting/oilwindow.C:72 plugins/whirl/whirl.C:243
 #: plugins/whirl/whirlwindow.C:60
 msgid "Radius"
 msgstr ""
@@ -6184,67 +8343,71 @@ msgstr ""
 msgid "Use Intensity"
 msgstr ""
 
-#: plugins/overlay/overlay.C:221
+#: plugins/overlay/overlay.C:220
 msgid "Bottom first"
 msgstr ""
 
-#: plugins/overlay/overlay.C:222
+#: plugins/overlay/overlay.C:221
 msgid "Top first"
 msgstr ""
 
-#: plugins/overlay/overlay.C:272
+#: plugins/overlay/overlay.C:271
 msgid "Layer order:"
 msgstr ""
 
-#: plugins/overlay/overlay.C:279
+#: plugins/overlay/overlay.C:278
 msgid "Output layer:"
 msgstr ""
 
-#: plugins/overlay/overlay.C:726 plugins/overlayaudio/overlayaudio.C:334
+#: plugins/overlay/overlay.C:725 plugins/overlayaudio/overlayaudio.C:331
 msgid "Overlay"
 msgstr ""
 
-#: plugins/overlayaudio/overlayaudio.C:177 plugins/piano/piano.C:822
-#: plugins/synthesizer/synthesizer.C:1359
+#: plugins/overlayaudio/overlayaudio.C:174 plugins/piano/piano.C:816
+#: plugins/synthesizer/synthesizer.C:1353
 msgid "Add"
 msgstr ""
 
-#: plugins/parametric/parametric.C:276
+#: plugins/overlayaudio/overlayaudio.C:202
+msgid "Output track:"
+msgstr ""
+
+#: plugins/parametric/parametric.C:275
 msgid "Lowpass"
 msgstr ""
 
-#: plugins/parametric/parametric.C:279
+#: plugins/parametric/parametric.C:278
 msgid "Highpass"
 msgstr ""
 
-#: plugins/parametric/parametric.C:282
+#: plugins/parametric/parametric.C:281
 msgid "Bandpass"
 msgstr ""
 
-#: plugins/parametric/parametric.C:425
+#: plugins/parametric/parametric.C:424
 msgid "Freq"
 msgstr ""
 
-#: plugins/parametric/parametric.C:426
+#: plugins/parametric/parametric.C:425
 msgid "Qual"
 msgstr ""
 
-#: plugins/parametric/parametric.C:427 plugins/piano/piano.C:513
-#: plugins/piano/piano.C:571 plugins/synthesizer/synthesizer.C:576
-#: plugins/synthesizer/synthesizer.C:637
+#: plugins/parametric/parametric.C:426 plugins/piano/piano.C:507
+#: plugins/piano/piano.C:565 plugins/synthesizer/synthesizer.C:570
+#: plugins/synthesizer/synthesizer.C:631
 msgid "Level"
 msgstr ""
 
-#: plugins/parametric/parametric.C:439 plugins/piano/piano.C:562
-#: plugins/synthesizer/synthesizer.C:628 plugins/vocoder/vocoder.C:296
+#: plugins/parametric/parametric.C:438 plugins/piano/piano.C:556
+#: plugins/synthesizer/synthesizer.C:622 plugins/vocoder/vocoder.C:294
 msgid "Wetness:"
 msgstr ""
 
-#: plugins/parametric/parametric.C:446
+#: plugins/parametric/parametric.C:445
 msgid "Window:"
 msgstr ""
 
-#: plugins/parametric/parametric.C:821
+#: plugins/parametric/parametric.C:819
 msgid "EQ Parametric"
 msgstr ""
 
@@ -6272,141 +8435,133 @@ msgstr ""
 msgid "Reverse"
 msgstr ""
 
-#: plugins/photoscale/photoscale.C:64
+#: plugins/photoscale/photoscale.C:63
 msgid "Output size:"
 msgstr ""
 
-#: plugins/photoscale/photoscale.C:151
+#: plugins/photoscale/photoscale.C:150
 msgid "Override camera"
 msgstr ""
 
-#: plugins/photoscale/photoscale.C:170
+#: plugins/photoscale/photoscale.C:169
 msgid "Use alpha/black level"
 msgstr ""
 
-#: plugins/photoscale/photoscale.C:292
+#: plugins/photoscale/photoscale.C:291
 msgid "Auto Scale"
 msgstr ""
 
-#: plugins/piano/piano.C:60
+#: plugins/piano/piano.C:54
 msgid "Pianoesizer"
 msgstr ""
 
-#: plugins/piano/piano.C:514 plugins/piano/piano.C:573
-#: plugins/synthesizer/synthesizer.C:577 plugins/synthesizer/synthesizer.C:639
+#: plugins/piano/piano.C:508 plugins/piano/piano.C:567
+#: plugins/synthesizer/synthesizer.C:571 plugins/synthesizer/synthesizer.C:633
 msgid "Phase"
 msgstr ""
 
-#: plugins/piano/piano.C:515 plugins/piano/piano.C:575
-#: plugins/synthesizer/synthesizer.C:578 plugins/synthesizer/synthesizer.C:641
+#: plugins/piano/piano.C:509 plugins/piano/piano.C:569
+#: plugins/synthesizer/synthesizer.C:572 plugins/synthesizer/synthesizer.C:635
 msgid "Harmonic"
 msgstr ""
 
-#: plugins/piano/piano.C:536 plugins/synthesizer/synthesizer.C:600
-msgid "Waveform"
-msgstr ""
-
-#: plugins/piano/piano.C:538 plugins/synthesizer/synthesizer.C:602
+#: plugins/piano/piano.C:532 plugins/synthesizer/synthesizer.C:596
 msgid "Wave Function"
 msgstr ""
 
-#: plugins/piano/piano.C:553 plugins/synthesizer/synthesizer.C:618
+#: plugins/piano/piano.C:547 plugins/synthesizer/synthesizer.C:612
 msgid "Base Frequency:"
 msgstr ""
 
-#: plugins/piano/piano.C:693 plugins/synthesizer/synthesizer.C:1019
+#: plugins/piano/piano.C:687 plugins/synthesizer/synthesizer.C:1013
 #, c-format
 msgid "DC"
 msgstr ""
 
-#: plugins/piano/piano.C:694 plugins/piano/piano.C:947
-#: plugins/piano/piano.C:1236 plugins/piano/piano.C:1303
-#: plugins/synthesizer/synthesizer.C:1020
-#: plugins/synthesizer/synthesizer.C:1502
-#: plugins/synthesizer/synthesizer.C:1802
-#: plugins/synthesizer/synthesizer.C:1872
+#: plugins/piano/piano.C:688 plugins/piano/piano.C:941
+#: plugins/piano/piano.C:1230 plugins/piano/piano.C:1297
+#: plugins/synthesizer/synthesizer.C:1014
+#: plugins/synthesizer/synthesizer.C:1496
+#: plugins/synthesizer/synthesizer.C:1796
+#: plugins/synthesizer/synthesizer.C:1866
 #, c-format
 msgid "Sine"
 msgstr ""
 
-#: plugins/piano/piano.C:695 plugins/piano/piano.C:948
-#: plugins/synthesizer/synthesizer.C:1021
-#: plugins/synthesizer/synthesizer.C:1503
+#: plugins/piano/piano.C:689 plugins/piano/piano.C:942
+#: plugins/synthesizer/synthesizer.C:1015
+#: plugins/synthesizer/synthesizer.C:1497
 #, c-format
 msgid "Sawtooth"
 msgstr ""
 
-#: plugins/piano/piano.C:697 plugins/piano/piano.C:950
-#: plugins/synthesizer/synthesizer.C:1023
-#: plugins/synthesizer/synthesizer.C:1505
+#: plugins/piano/piano.C:691 plugins/piano/piano.C:944
+#: plugins/synthesizer/synthesizer.C:1017
+#: plugins/synthesizer/synthesizer.C:1499
 #, c-format
 msgid "Triangle"
 msgstr ""
 
-#: plugins/piano/piano.C:698 plugins/piano/piano.C:951
-#: plugins/synthesizer/synthesizer.C:1024
-#: plugins/synthesizer/synthesizer.C:1506
+#: plugins/piano/piano.C:692 plugins/piano/piano.C:945
+#: plugins/synthesizer/synthesizer.C:1018
+#: plugins/synthesizer/synthesizer.C:1500
 #, c-format
 msgid "Pulse"
 msgstr ""
 
-#: plugins/piano/piano.C:699 plugins/piano/piano.C:952
-#: plugins/synthesizer/synthesizer.C:1025
-#: plugins/synthesizer/synthesizer.C:1507
+#: plugins/piano/piano.C:693 plugins/piano/piano.C:946
+#: plugins/synthesizer/synthesizer.C:1019
+#: plugins/synthesizer/synthesizer.C:1501
 #, c-format
 msgid "Noise"
 msgstr ""
 
-#: plugins/piano/piano.C:1094 plugins/piano/piano.C:1283
-#: plugins/synthesizer/synthesizer.C:1654
-#: plugins/synthesizer/synthesizer.C:1851
+#: plugins/piano/piano.C:1088 plugins/piano/piano.C:1277
+#: plugins/synthesizer/synthesizer.C:1648
+#: plugins/synthesizer/synthesizer.C:1845
 msgid "Zero"
 msgstr ""
 
-#: plugins/piano/piano.C:1115 plugins/synthesizer/synthesizer.C:1676
-msgid "Maximum"
-msgstr ""
-
-#: plugins/piano/piano.C:1171 plugins/synthesizer/synthesizer.C:1734
+#: plugins/piano/piano.C:1165 plugins/synthesizer/synthesizer.C:1728
 msgid "Slope"
 msgstr ""
 
-#: plugins/piano/piano.C:1194 plugins/piano/piano.C:1326
-#: plugins/piano/piano.C:1351 plugins/synthesizer/synthesizer.C:1758
-#: plugins/synthesizer/synthesizer.C:1896
-#: plugins/synthesizer/synthesizer.C:1922
+#: plugins/piano/piano.C:1188 plugins/piano/piano.C:1320
+#: plugins/piano/piano.C:1345 plugins/synthesizer/synthesizer.C:1752
+#: plugins/synthesizer/synthesizer.C:1890
+#: plugins/synthesizer/synthesizer.C:1916
 msgid "Random"
 msgstr ""
 
-#: plugins/piano/piano.C:1372 plugins/synthesizer/synthesizer.C:1944
+#: plugins/piano/piano.C:1366 plugins/synthesizer/synthesizer.C:1938
 msgid "Enumerate"
 msgstr ""
 
-#: plugins/piano/piano.C:1392 plugins/synthesizer/synthesizer.C:1965
+#: plugins/piano/piano.C:1386 plugins/synthesizer/synthesizer.C:1959
 msgid "Even"
 msgstr ""
 
-#: plugins/piano/piano.C:1415 plugins/synthesizer/synthesizer.C:1989
+#: plugins/piano/piano.C:1409 plugins/synthesizer/synthesizer.C:1983
 msgid "Odd"
 msgstr ""
 
-#: plugins/piano/piano.C:1433 plugins/synthesizer/synthesizer.C:2008
+#: plugins/piano/piano.C:1427 plugins/synthesizer/synthesizer.C:2002
 msgid "Fibonnacci"
 msgstr ""
 
-#: plugins/piano/piano.C:1457 plugins/synthesizer/synthesizer.C:2033
+#: plugins/piano/piano.C:1451 plugins/synthesizer/synthesizer.C:2027
 msgid "Prime"
 msgstr ""
 
-#: plugins/pitch/pitch.C:64
+#: plugins/pitch/pitch.C:63
 msgid "Pitch shift"
 msgstr ""
 
-#: plugins/polar/polar.C:206
+#: plugins/polar/polar.C:205
 msgid "Depth:"
 msgstr ""
 
-#: plugins/polar/polar.C:286
+#: plugins/polar/polar.C:285
 msgid "Polar"
 msgstr ""
 
@@ -6414,7 +8569,7 @@ msgstr ""
 msgid "Depth"
 msgstr ""
 
-#: plugins/polar/polarwindow.C:68 plugins/whirl/whirl.C:252
+#: plugins/polar/polarwindow.C:68 plugins/whirl/whirl.C:251
 #: plugins/whirl/whirlwindow.C:50
 msgid "Angle"
 msgstr ""
@@ -6424,7 +8579,7 @@ msgstr ""
 msgid "Automate"
 msgstr ""
 
-#: plugins/quark/quark.C:60
+#: plugins/quark/quark.C:59
 msgid "Quark"
 msgstr ""
 
@@ -6440,19 +8595,19 @@ msgstr ""
 msgid "Luminance only"
 msgstr ""
 
-#: plugins/radialblur/radialblur.C:384
+#: plugins/radialblur/radialblur.C:383
 msgid "Radial Blur"
 msgstr ""
 
-#: plugins/reframe/reframe.C:54
+#: plugins/reframe/reframe.C:53
 msgid "Reframe"
 msgstr ""
 
-#: plugins/reframe/reframe.C:191 plugins/resample/resample.C:82
+#: plugins/reframe/reframe.C:189 plugins/resample/resample.C:81
 msgid "Scale factor:"
 msgstr ""
 
-#: plugins/reframert/reframert.C:219
+#: plugins/reframert/reframert.C:219 plugins/resamplert/resamplert.C:95
 msgid "Scale by amount:"
 msgstr ""
 
@@ -6460,35 +8615,47 @@ msgstr ""
 msgid "ReframeRT"
 msgstr ""
 
-#: plugins/removegaps/removegaps.C:199
+#: plugins/removegaps/removegaps.C:105
+msgid "Threshold of gap (DB):"
+msgstr ""
+
+#: plugins/removegaps/removegaps.C:112
+msgid "Max duration of gap (Seconds):"
+msgstr ""
+
+#: plugins/removegaps/removegaps.C:197
 msgid "Remove Gaps"
 msgstr ""
 
-#: plugins/reroute/reroute.C:154
+#: plugins/reroute/reroute.C:153
 msgid "replace Target"
 msgstr ""
 
-#: plugins/reroute/reroute.C:155
+#: plugins/reroute/reroute.C:154
 msgid "Components only"
 msgstr ""
 
-#: plugins/reroute/reroute.C:156
+#: plugins/reroute/reroute.C:155
 msgid "Alpha replace"
 msgstr ""
 
-#: plugins/reroute/reroute.C:194
+#: plugins/reroute/reroute.C:193
 msgid "Target track:"
 msgstr ""
 
-#: plugins/reroute/reroute.C:203
+#: plugins/reroute/reroute.C:202
 msgid "Operation:"
 msgstr ""
 
-#: plugins/reroute/reroute.C:471
+#: plugins/reroute/reroute.C:470
 msgid "Reroute"
 msgstr ""
 
-#: plugins/resample/resample.C:129
+#: plugins/resample/resample.C:63
+msgid ": Resample"
+msgstr ""
+
+#: plugins/resample/resample.C:128
 msgid "Resample"
 msgstr ""
 
@@ -6496,11 +8663,11 @@ msgstr ""
 msgid "ResampleRT"
 msgstr ""
 
-#: plugins/reverb/reverb.C:103
+#: plugins/reverb/reverb.C:102
 msgid "Reverb"
 msgstr ""
 
-#: plugins/reverb/reverb.C:431
+#: plugins/reverb/reverb.C:429
 #, c-format
 msgid "Couldn't save %s."
 msgstr ""
@@ -6573,10 +8740,6 @@ msgstr ""
 msgid "Reverse video"
 msgstr ""
 
-#: plugins/rgb601/rgb601.C:55
-msgid "RGB - 601"
-msgstr ""
-
 #: plugins/rgb601/rgb601window.C:60
 msgid "RGB -> 601 compression"
 msgstr ""
@@ -6585,132 +8748,155 @@ msgstr ""
 msgid "601 -> RGB expansion"
 msgstr ""
 
-#: plugins/rgbshift/rgbshift.C:172
+#: plugins/rgbshift/rgbshift.C:171
 msgid "R_dx:"
 msgstr ""
 
-#: plugins/rgbshift/rgbshift.C:175
+#: plugins/rgbshift/rgbshift.C:174
 msgid "R_dy:"
 msgstr ""
 
-#: plugins/rgbshift/rgbshift.C:178
+#: plugins/rgbshift/rgbshift.C:177
 msgid "G_dx:"
 msgstr ""
 
-#: plugins/rgbshift/rgbshift.C:181
+#: plugins/rgbshift/rgbshift.C:180
 msgid "G_dy:"
 msgstr ""
 
-#: plugins/rgbshift/rgbshift.C:184
+#: plugins/rgbshift/rgbshift.C:183
 msgid "B_dx:"
 msgstr ""
 
-#: plugins/rgbshift/rgbshift.C:187
+#: plugins/rgbshift/rgbshift.C:186
 msgid "B_dy:"
 msgstr ""
 
-#: plugins/rgbshift/rgbshift.C:212
+#: plugins/rgbshift/rgbshift.C:211
 msgid "RGBShift"
 msgstr ""
 
-#: plugins/rotate/rotate.C:311
+#: plugins/rotate/rotate.C:310
 msgid "Draw pivot"
 msgstr ""
 
-#: plugins/rotate/rotate.C:460 plugins/rotate/rotate.C:611
+#: plugins/rotate/rotate.C:459 plugins/rotate/rotate.C:610
 msgid "Rotate"
 msgstr ""
 
-#: plugins/rotate/rotate.C:504
+#: plugins/rotate/rotate.C:503
 msgid "Degrees"
 msgstr ""
 
-#: plugins/rotate/rotate.C:511
+#: plugins/rotate/rotate.C:510
 msgid "Pivot (x,y):"
 msgstr ""
 
-#: plugins/scale/scale.C:91
-msgid "Scale"
+#: plugins/scale/scalewin.C:203
+msgid "Use fixed scale"
+msgstr ""
+
+#: plugins/scale/scalewin.C:219
+msgid "Use fixed size"
 msgstr ""
 
-#: plugins/shapewipe/shapewipe.C:51
+#: plugins/shapewipe/shapewipe.C:50
 msgid "White to Black"
 msgstr ""
 
-#: plugins/shapewipe/shapewipe.C:73
+#: plugins/shapewipe/shapewipe.C:72
 msgid "Black to White"
 msgstr ""
 
-#: plugins/shapewipe/shapewipe.C:92
+#: plugins/shapewipe/shapewipe.C:91
 msgid "Anti-aliasing"
 msgstr ""
 
-#: plugins/shapewipe/shapewipe.C:109
+#: plugins/shapewipe/shapewipe.C:108
 msgid "Preserve shape aspect ratio"
 msgstr ""
 
-#: plugins/shapewipe/shapewipe.C:345
+#: plugins/shapewipe/shapewipe.C:344
 msgid "Shape Wipe"
 msgstr ""
 
-#: plugins/sharpen/sharpen.C:117
+#: plugins/shapewipe/shapewipe.C:781
+#, c-format
+msgid "Shape Wipe: cannot load shape %s\n"
+msgstr ""
+
+#: plugins/sharpen/sharpen.C:115
 msgid "Sharpen"
 msgstr ""
 
-#: plugins/shiftinterlace/shiftinterlace.C:186
+#: plugins/shiftinterlace/shiftinterlace.C:185
 msgid "Odd offset:"
 msgstr ""
 
-#: plugins/shiftinterlace/shiftinterlace.C:189
+#: plugins/shiftinterlace/shiftinterlace.C:188
 msgid "Even offset:"
 msgstr ""
 
-#: plugins/shiftinterlace/shiftinterlace.C:263
+#: plugins/shiftinterlace/shiftinterlace.C:262
 msgid "ShiftInterlace"
 msgstr ""
 
-#: plugins/slide/slide.C:51 plugins/titler/titlewindow.C:980
-#: plugins/wipe/wipe.C:50
+#: plugins/slide/slide.C:50 plugins/titler/titlewindow.C:980
+#: plugins/wipe/wipe.C:49
 msgid "Left"
 msgstr ""
 
-#: plugins/slide/slide.C:73 plugins/titler/titlewindow.C:1008
-#: plugins/wipe/wipe.C:72
+#: plugins/slide/slide.C:72 plugins/titler/titlewindow.C:1008
+#: plugins/wipe/wipe.C:71
 msgid "Right"
 msgstr ""
 
-#: plugins/slide/slide.C:211
+#: plugins/slide/slide.C:210
 msgid "Slide"
 msgstr ""
 
-#: plugins/spectrogram/spectrogram.C:480
+#: plugins/spectrogram/spectrogram.C:478
 msgid "Freq: 0 Hz"
 msgstr ""
 
-#: plugins/spectrogram/spectrogram.C:704
+#: plugins/spectrogram/spectrogram.C:484
+msgid "Amplitude: 0 dB"
+msgstr ""
+
+#: plugins/spectrogram/spectrogram.C:608
+#, c-format
+msgid "Freq: %d Hz"
+msgstr ""
+
+#: plugins/spectrogram/spectrogram.C:611
+#, c-format
+msgid "Amplitude: %.2f dB"
+msgstr ""
+
+#: plugins/spectrogram/spectrogram.C:702
 msgid "Spectrogram"
 msgstr ""
 
-#: plugins/svg/svg.C:125
+#: plugins/svg/svg.C:124
 msgid "SVG via Inkscape"
 msgstr ""
 
-#: plugins/svg/svg.C:217
+#: plugins/svg/svg.C:215
 #, c-format
 msgid "Running command %s\n"
 msgstr ""
 
-#: plugins/svg/svg.C:222
+#: plugins/svg/svg.C:220
 #, c-format
 msgid "Export of %s to %s failed\n"
 msgstr ""
 
-#: plugins/svg/svg.C:250
+#: plugins/svg/svg.C:248
 #, c-format
 msgid "The file %s that was generated from %s is not in PNG format. Try to delete all *.png files.\n"
 msgstr ""
 
-#: plugins/svg/svg.C:255
+#: plugins/svg/svg.C:253
 #, c-format
 msgid "Access mmap to %s as %s failed.\n"
 msgstr ""
@@ -6727,6 +8913,10 @@ msgstr ""
 msgid "New/Open SVG..."
 msgstr ""
 
+#: plugins/svg/svgwin.C:305
+msgid "Error while creating fifo file"
+msgstr ""
+
 #: plugins/svg/svgwin.C:318
 #, c-format
 msgid "Inkscape has exited\n"
@@ -6755,58 +8945,48 @@ msgstr ""
 msgid "Open an existing SVG file or create a new one"
 msgstr ""
 
-#: plugins/swapchannels/swapchannels.C:103
-#: plugins/swapchannels/swapchannels.C:212
+#: plugins/swapchannels/swapchannels.C:102
+#: plugins/swapchannels/swapchannels.C:211
 msgid "Swap channels"
 msgstr ""
 
-#: plugins/swapchannels/swapchannels.C:105
+#: plugins/swapchannels/swapchannels.C:104
 msgid "-> Red"
 msgstr ""
 
-#: plugins/swapchannels/swapchannels.C:109
+#: plugins/swapchannels/swapchannels.C:108
 msgid "-> Green"
 msgstr ""
 
-#: plugins/swapchannels/swapchannels.C:113
+#: plugins/swapchannels/swapchannels.C:112
 msgid "-> Blue"
 msgstr ""
 
-#: plugins/swapchannels/swapchannels.C:117
+#: plugins/swapchannels/swapchannels.C:116
 msgid "-> Alpha"
 msgstr ""
 
-#: plugins/swapchannels/swapchannels.C:437
-#: plugins/swapchannels/swapchannels.C:454
-msgid "0%"
-msgstr ""
-
-#: plugins/swapchannels/swapchannels.C:440
-#: plugins/swapchannels/swapchannels.C:455
-msgid "100%"
-msgstr ""
-
-#: plugins/swapframes/swapframes.C:114
+#: plugins/swapframes/swapframes.C:113
 msgid "Swap 0-1, 2-3, 4-5..."
 msgstr ""
 
-#: plugins/swapframes/swapframes.C:140
+#: plugins/swapframes/swapframes.C:139
 msgid "Swap 1-2, 3-4, 5-6..."
 msgstr ""
 
-#: plugins/swapframes/swapframes.C:217
+#: plugins/swapframes/swapframes.C:216
 msgid "Swap Frames"
 msgstr ""
 
-#: plugins/synthesizer/synthesizer.C:66
+#: plugins/synthesizer/synthesizer.C:60
 msgid "Synthesizer"
 msgstr ""
 
-#: plugins/synthesizer/synthesizer.C:696
+#: plugins/synthesizer/synthesizer.C:690
 msgid "Momentary notes"
 msgstr ""
 
-#: plugins/synthesizer/synthesizer.C:702
+#: plugins/synthesizer/synthesizer.C:696
 msgid "Ctrl or Shift to select multiple notes."
 msgstr ""
 
@@ -6826,23 +9006,23 @@ msgstr ""
 msgid "Low color"
 msgstr ""
 
-#: plugins/threshold/thresholdwindow.C:389
+#: plugins/threshold/thresholdwindow.C:390
 msgid "Mid color"
 msgstr ""
 
-#: plugins/threshold/thresholdwindow.C:408
+#: plugins/threshold/thresholdwindow.C:410
 msgid "High color"
 msgstr ""
 
-#: plugins/threshold/thresholdwindow.C:482
+#: plugins/threshold/thresholdwindow.C:485
 msgid "Min:"
 msgstr ""
 
-#: plugins/threshold/thresholdwindow.C:495
+#: plugins/threshold/thresholdwindow.C:498
 msgid "Max:"
 msgstr ""
 
-#: plugins/timeavg/timeavg.C:120
+#: plugins/timeavg/timeavg.C:119
 msgid "Time Average"
 msgstr ""
 
@@ -6874,60 +9054,89 @@ msgstr ""
 msgid "Don't buffer frames"
 msgstr ""
 
-#: plugins/timefront/timefront.C:157
+#: plugins/timefront/timefront.C:156
 msgid "Type:"
 msgstr ""
 
-#: plugins/timefront/timefront.C:167
+#: plugins/timefront/timefront.C:166
 msgid "Time range:"
 msgstr ""
 
-#: plugins/timefront/timefront.C:293
+#: plugins/timefront/timefront.C:292
 msgid "As timefront use:"
 msgstr ""
 
-#: plugins/timefront/timefront.C:372
+#: plugins/timefront/timefront.C:371
 msgid "Other track as timefront"
 msgstr ""
 
-#: plugins/timefront/timefront.C:374
+#: plugins/timefront/timefront.C:373
 msgid "Alpha as timefront"
 msgstr ""
 
-#: plugins/timefront/timefront.C:415
+#: plugins/timefront/timefront.C:414
 msgid "Intensity"
 msgstr ""
 
-#: plugins/timefront/timefront.C:417
+#: plugins/timefront/timefront.C:416
 msgid "Alpha mask"
 msgstr ""
 
-#: plugins/timefront/timefront.C:600
+#: plugins/timefront/timefront.C:599
 msgid "Inversion"
 msgstr ""
 
-#: plugins/timefront/timefront.C:616
+#: plugins/timefront/timefront.C:615
 msgid "Show grayscale (for tuning"
 msgstr ""
 
-#: plugins/timefront/timefront.C:649
+#: plugins/timefront/timefront.C:648
 msgid "TimeFront"
 msgstr ""
 
-#: plugins/timestretch/timestretch.C:71
+#: plugins/timefront/timefront.C:783
+#, c-format
+msgid "ERROR: TimeFront plugin - If you are using another track for timefront, you have to have it under shared effects\n"
+msgstr ""
+
+#: plugins/timefront/timefront.C:788
+#, c-format
+msgid "Sizes of master track and timefront track do not match\n"
+msgstr ""
+
+#: plugins/timefront/timefront.C:835
+#, c-format
+msgid "TimeFront plugin error: ALPHA used, but project color model does not have alpha\n"
+msgstr ""
+
+#: plugins/timefront/timefront.C:895
+#, c-format
+msgid "TimeFront plugin error: ALPHA track used, but project color model does not have alpha\n"
+msgstr ""
+
+#: plugins/timefront/timefront.C:902
+#, c-format
+msgid "TimeFront plugin error: unsupported track_usage parameter\n"
+msgstr ""
+
+#: plugins/timestretch/timestretch.C:70
 msgid "Use fast fourier transform"
 msgstr ""
 
-#: plugins/timestretch/timestretch.C:94
+#: plugins/timestretch/timestretch.C:93
 msgid "Use overlapping windows"
 msgstr ""
 
-#: plugins/timestretch/timestretch.C:144
+#: plugins/timestretch/timestretch.C:119
+msgid ": Time stretch"
+msgstr ""
+
+#: plugins/timestretch/timestretch.C:143
 #: plugins/timestretchrt/timestretchrt.C:104
 msgid "Fraction of original speed:"
 msgstr ""
 
-#: plugins/timestretch/timestretch.C:354
+#: plugins/timestretch/timestretch.C:353
 msgid "Time stretch"
 msgstr ""
 
@@ -6939,38 +9148,38 @@ msgstr ""
 msgid "Time Stretch RT"
 msgstr ""
 
-#: plugins/titler/title.C:294
+#: plugins/titler/title.C:293
 #, c-format
 msgid "GlyphUnit::process_package FT_New_Face failed.\n"
 msgstr ""
 
-#: plugins/titler/title.C:318
+#: plugins/titler/title.C:317
 #, c-format
 msgid "GlyphUnit::process_package FT_Load_Char failed - char: %li.\n"
 msgstr ""
 
-#: plugins/titler/title.C:1379
+#: plugins/titler/title.C:1372
 #, c-format
 msgid "TitleMain::load_freetype_face %s failed.\n"
 msgstr ""
 
-#: plugins/titler/title.C:1938
+#: plugins/titler/title.C:1918
 msgid "No motion"
 msgstr ""
 
-#: plugins/titler/title.C:1939
+#: plugins/titler/title.C:1919
 msgid "Bottom to top"
 msgstr ""
 
-#: plugins/titler/title.C:1940
+#: plugins/titler/title.C:1920
 msgid "Top to bottom"
 msgstr ""
 
-#: plugins/titler/title.C:1941
+#: plugins/titler/title.C:1921
 msgid "Right to left"
 msgstr ""
 
-#: plugins/titler/title.C:1942
+#: plugins/titler/title.C:1922
 msgid "Left to right"
 msgstr ""
 
@@ -7018,10 +9227,6 @@ msgstr ""
 msgid "Encoding:"
 msgstr ""
 
-#: plugins/titler/titlewindow.C:344
-msgid "Text:"
-msgstr ""
-
 #: plugins/titler/titlewindow.C:608
 msgid "Bold"
 msgstr ""
@@ -7046,7 +9251,7 @@ msgstr ""
 msgid "Mid"
 msgstr ""
 
-#: plugins/translate/translate.C:116
+#: plugins/translate/translate.C:115
 msgid "Translate"
 msgstr ""
 
@@ -7074,7 +9279,7 @@ msgstr ""
 msgid "Out H:"
 msgstr ""
 
-#: plugins/unsharp/unsharp.C:106
+#: plugins/unsharp/unsharp.C:105
 msgid "Unsharp"
 msgstr ""
 
@@ -7082,110 +9287,106 @@ msgstr ""
 msgid "Amount:"
 msgstr ""
 
-#: plugins/videoscope/videoscope.C:241
+#: plugins/videoscope/videoscope.C:238
 msgid "VideoScope"
 msgstr ""
 
-#: plugins/vocoder/vocoder.C:310
+#: plugins/vocoder/vocoder.C:308
 msgid "Carrier Track:"
 msgstr ""
 
-#: plugins/vocoder/vocoder.C:365
+#: plugins/vocoder/vocoder.C:363
 msgid "Vocoder"
 msgstr ""
 
-#: plugins/wave/wave.C:264
+#: plugins/wave/wave.C:263
 msgid "Smear"
 msgstr ""
 
-#: plugins/wave/wave.C:281
+#: plugins/wave/wave.C:280
 msgid "Blacken"
 msgstr ""
 
-#: plugins/wave/wave.C:300
+#: plugins/wave/wave.C:299
 msgid "Reflective"
 msgstr ""
 
-#: plugins/wave/wave.C:405
-msgid "Amplitude:"
-msgstr ""
-
-#: plugins/wave/wave.C:408
+#: plugins/wave/wave.C:407
 msgid "Phase:"
 msgstr ""
 
-#: plugins/wave/wave.C:411
+#: plugins/wave/wave.C:410
 msgid "Wavelength:"
 msgstr ""
 
-#: plugins/wave/wave.C:452
+#: plugins/wave/wave.C:451
 msgid "Wave"
 msgstr ""
 
-#: plugins/whirl/whirl.C:248 plugins/whirl/whirlwindow.C:55
+#: plugins/whirl/whirl.C:247 plugins/whirl/whirlwindow.C:55
 msgid "Pinch"
 msgstr ""
 
-#: plugins/whirl/whirl.C:367
+#: plugins/whirl/whirl.C:366
 msgid "Whirl"
 msgstr ""
 
-#: plugins/wipe/wipe.C:147
+#: plugins/wipe/wipe.C:146
 msgid "Wipe"
 msgstr ""
 
-#: plugins/yuv/yuv.C:182 plugins/yuv/yuvwindow.C:55
+#: plugins/yuv/yuv.C:181 plugins/yuv/yuvwindow.C:55
 msgid "U:"
 msgstr ""
 
-#: plugins/yuv/yuv.C:185 plugins/yuv/yuvwindow.C:60
+#: plugins/yuv/yuv.C:184 plugins/yuv/yuvwindow.C:60
 msgid "V:"
 msgstr ""
 
-#: plugins/yuv/yuv.C:210
+#: plugins/yuv/yuv.C:209
 msgid "YUV"
 msgstr ""
 
-#: plugins/yuvshift/yuvshift.C:172
+#: plugins/yuvshift/yuvshift.C:171
 msgid "Y_dx:"
 msgstr ""
 
-#: plugins/yuvshift/yuvshift.C:175
+#: plugins/yuvshift/yuvshift.C:174
 msgid "Y_dy:"
 msgstr ""
 
-#: plugins/yuvshift/yuvshift.C:178
+#: plugins/yuvshift/yuvshift.C:177
 msgid "U_dx:"
 msgstr ""
 
-#: plugins/yuvshift/yuvshift.C:181
+#: plugins/yuvshift/yuvshift.C:180
 msgid "U_dy:"
 msgstr ""
 
-#: plugins/yuvshift/yuvshift.C:184
+#: plugins/yuvshift/yuvshift.C:183
 msgid "V_dx:"
 msgstr ""
 
-#: plugins/yuvshift/yuvshift.C:187
+#: plugins/yuvshift/yuvshift.C:186
 msgid "V_dy:"
 msgstr ""
 
-#: plugins/yuvshift/yuvshift.C:212
+#: plugins/yuvshift/yuvshift.C:211
 msgid "YUVShift"
 msgstr ""
 
-#: plugins/zoom/zoom.C:101
+#: plugins/zoom/zoom.C:100
 msgid "X Magnification:"
 msgstr ""
 
-#: plugins/zoom/zoom.C:111
+#: plugins/zoom/zoom.C:110
 msgid "Y Magnification:"
 msgstr ""
 
-#: plugins/zoom/zoom.C:148
+#: plugins/zoom/zoom.C:147
 msgid "Zoom"
 msgstr ""
 
-#: plugins/zoomblur/zoomblur.C:403
+#: plugins/zoomblur/zoomblur.C:402
 msgid "Zoom Blur"
 msgstr ""
diff --git a/cinelerra-5.0/po/nlx.c b/cinelerra-5.0/po/nlx.c
new file mode 100644 (file)
index 0000000..fb68892
--- /dev/null
@@ -0,0 +1,243 @@
+#include <stdio.h>
+#include <string.h>
+#include <libintl.h>
+
+#define _(s) gettext(s)
+#define gettext_noop(s) s
+#define N_(s) gettext_noop(s)
+
+int lastch = 0;
+int linenum = 0;
+int start_line = 1;
+int in_quote = 0;
+
+#define BFRSZ 4096
+char bfr[BFRSZ], *bp = 0;
+char sym[BFRSZ];
+char sep[BFRSZ];
+char str[BFRSZ];
+
+FILE *ifp = 0, *ofp = 0;
+
+int ngetc()
+{
+  if( lastch < 0 ) return -1;
+  if ((lastch=getc(ifp)) == '\n') linenum++;
+  return lastch;
+}
+
+void nungetc(int c)
+{
+  if( c < 0 ) return;
+  if( c == '\n' ) --linenum;
+  ungetc(c, ifp);
+}
+
+// return uncommented char
+int cch()
+{
+  for(;;) {
+    int c = ngetc();
+    if( in_quote ||  c != '/' ) return c;
+    c = ngetc();
+    switch(c) {
+    case '*':
+      *bp++ = '/';  *bp++ = '*';
+      c = ' ';
+      for(;;) {
+        int ch = c;  c = ngetc();
+        if( c < 0 ) return c;
+        *bp++ = c;
+        if( ch == '*' && c == '/') break;
+      }
+      continue;
+    case '/':
+      *bp++ = '/';  *bp++ = '/';
+      for(;;) {
+        c = ngetc();
+        if( c < 0 ) return c;
+        *bp++ = c;
+        if( c == '\n') break;
+      }
+      continue;
+    default:
+      nungetc(c);
+      return '/';
+    }
+  }
+}
+
+// skip preprocessor lines
+int nch()
+{
+  int c = 0;
+  for(;;) {
+    int ch = c;  c = cch();
+    if( c < 0 ) return c;
+    if( !start_line || c != '#' ) break;
+    do {
+      *bp++ = c;
+      ch = c;  c = ngetc();
+      if( c < 0 ) return c;
+    } while( c != '\n' || ch == '\\' );
+    *bp++ = c;
+  }
+  start_line = c == '\n' ? 1 : 0;
+  return c;
+}
+
+int is_idch(int c)
+{
+  if( c < '0' ) return 0;
+  if( c <= '9' ) return 1;
+  if( c < 'A' ) return 0;
+  if( c <= 'Z' ) return 1;
+  if( c == '_' ) return 1;
+  if( c < 'a' ) return 0;
+  if( c <= 'z' ) return 1;
+  return 0;
+}
+
+int is_ws(int c)
+{
+  if( c <= ' ' ) return 1;
+  return 0;
+}
+
+// scan next seperator + symbol
+int nsym()
+{
+  int c = nch();
+  if( c < 0 ) return c;
+  if( c == '\"' || c == '\'' ) return c;
+  nungetc(c);
+  char *sp = sym;
+  for(;;) {
+    c = nch();
+    if( c < 0 ) return c;
+    if( c == '"' || c == '\'' ) break;
+    if( !is_idch(c) ) break;
+    *bp++ = c;
+    *sp++ = c;
+  }
+  *sp = 0;
+  nungetc(c);
+  sp = sep;
+  for(;;) {
+    c = nch();
+    if( c < 0 ) return c;
+    if( c == '\"' || c == '\'' ) break;
+    if( is_idch(c) ) break;
+    *bp++ = c;
+    if( !is_ws(c) )
+      *sp++ = c;
+  }
+  *sp = 0;
+  nungetc(c);
+  return 0;
+}
+
+// sym has preceeding symbol string
+// sep has non-ws seperator string
+// bfr has "string" in it
+int need_nl()
+{
+  if( strlen(bfr) < 2 ) return 0;
+  if( !strcmp(sym,"_") && !strcmp(sep,"(") ) return 0;
+// add protected names here
+  if( !strcmp(sym,"get") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"get_property") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"set_property") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"set_title") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"title_is") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"GET_DEFAULT") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"UPDATE_DEFAULT") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"TRACE") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"lock") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"unlock") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"lock_window") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"unlock_window") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"update") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"new_image") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"get_image") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"get_image_set") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"Mutex") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"SceneNode") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"Garbage") && !strcmp(sep,"(") ) return 0;
+  if( !strcmp(sym,"dbmsg") && !strcmp(sep,"(") ) return 0;
+  if( strstr(bfr, "::") || !strncmp(bfr, "/dev/", 5) ) return 0;
+  if( !strcmp(bfr,"toc") || !strcmp(bfr,".toc") ) return 0;
+  if( !strcmp(bfr,"idx") || !strcmp(bfr,".idx") ) return 0;
+  if( !strcmp(bfr,"ads") || !strcmp(bfr,".ads") ) return 0;
+  char *bp;
+  for( bp=bfr; *bp; ++bp ) {
+    if( is_ws(*bp) ) continue;
+    if( *bp == '\\' ) { ++bp;  continue; }
+    if( *bp != '%' ) break;
+    while( bp[1] && !strchr("diojxXeEfFgFaAcsCSpnm%",*++bp) );
+  }
+  if( !*bp ) return 0;
+  return 1;
+}
+
+int main(int ac, char **av)
+{
+  int c;
+  ifp = stdin;
+  ofp = stdout;
+  for(;;) {
+    bp = &bfr[0];  *bp = 0;
+    c = nsym();
+    *bp = 0;
+    if( c < 0 ) break;
+    fputs(bfr, ofp);
+    bp = &bfr[0];  *bp = 0;
+    if( c == '\"' ) {
+      in_quote = c;
+      while( (c=nch()) >= 0 ) {
+        if( c == in_quote ) break;
+        if( c == '\\' ) {
+          *bp++ = c;  c = nch();
+          if( c < 0 ) break;
+        }
+        *bp++ = c;
+      }
+      in_quote = 0;
+      *bp = 0;
+      if( c < 0 ) break;
+      int do_nl = need_nl();
+      if( do_nl ) {
+        fputc('_', ofp);
+        fputc('(', ofp);
+      }
+      fputc('"', ofp);
+      fputs(bfr, ofp);
+      fputc('"', ofp);
+      if( do_nl ) {
+        fputc(')', ofp);
+      }
+    }
+    else if( c == '\'' ) {
+      in_quote = c;
+      while( (c=nch()) >= 0 ) {
+        if( c == in_quote ) break;
+        if( c == '\\' ) {
+          *bp++ = c;  c = nch();
+          if( c < 0 ) break;
+        }
+        *bp++ = c;
+      }
+      in_quote = 0;
+      *bp = 0;
+      fputc('\'', ofp);
+      fputs(bfr, ofp);
+      fputc('\'', ofp);
+      if( c < 0 ) break;
+    }
+    else
+      continue;
+  }
+  fputs(bfr, ofp);
+  return 0;
+}
+
index 2a32e3896d7bb537db0ec521625163df0c358a8d..0a4cb61ee200d015e1834af9fbf04009c3f589d8 100644 (file)
-"OK"
-"Cancel"
-"cannot connect to X server.\n"
-"'DISPLAY' environment variable not set.\n"
-"Really delete the following files?"
-"Change the filter"
-"Cancel the operation"
-"Submit the directory"
-"Descend directory"
-"Submit the file"
-"Display text"
-"Display icons"
-"Create new folder"
-"Rename file"
-"Up a directory"
-".."
-"Delete files"
-"Refresh"
-": New folder"
-": Rename"
-": Delete"
-"File"
-"Size"
-"Date"
-"Ext."
-"Enter the name of the folder:"
-"Untitled"
-"Enter a new name for the file:"
-"Conversion from %s to %s is not available"
-"Theme::get_image: %s not found.\n"
-"BC_Theme::check_used: Images aren't used.\n"
-"Mary Egbert\nhad a little lamb."
-"Hello world"
-"Hours:Minutes:Seconds.xxx"
-"Hours:Minutes:Seconds:Frames"
-"Samples"
-"Hex Samples"
-"Frames"
-"Feet-frames"
-"Hours:Minutes:Seconds"
-"Seconds"
-"Minutes:Seconds"
-"(C) %d Adam Williams\n\nheroinewarrior.com"
-"This program is free software; you can redistribute it and/or modify it under the terms\nof the GNU General Public License as published by the Free Software Foundation; either version\n2 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;\nwithout even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\nPURPOSE.  See the GNU General Public License for more details.\n\n"
-"Device path:"
-"Bits:"
-"Device:"
-"Stop playback locks up."
-"Server:"
-"Port:"
-"Device Path:"
-"Channel:"
-"Syt Offset:"
-"DVB Adapter:"
-"dev:"
-"Follow audio config"
-"AModule::import_samples Couldn't open %s.\n"
-"Automation"
-"Plugin %d"
-"Mute"
-"Play"
-"fade"
-"pan"
-"Select a file for this asset:"
-"File format:"
-"Bytes:"
-"Bitrate (bits/sec):"
-"Audio:"
-"Compression:"
-"Channels:"
-"Sample rate:"
-"Header length:"
-"Byte order:"
-"Lo-Hi"
-"Hi-Lo"
-"Values are unsigned"
-"Values are signed"
-"Video:"
-"Frame rate:"
-"Width:"
-"Height:"
-"Actual width:"
-"Actual height:"
-"Detail"
-" Path"
-"Select a file"
-"Info..."
-"Rebuild index"
-"Sort items"
-"View"
-"View in new window"
-"Paste"
-"Match project size"
-"Match frame rate"
-"Match all"
-"Remove from project"
-"Remove from disk"
-"Permanently remove from disk?"
-"Audio %d"
-"Rewind ( Home )"
-"Fast Reverse ( + )"
-"Reverse Play ( 6 )"
-"Stop ( 0 )"
-"Play ( 3 )"
-"Pause"
-"Fast Forward ( Enter )"
-"Jump to end ( End )"
-"Title"
-"Comments"
-"remove plugin?"
-"New bin"
-"Delete bin"
-"Rename bin"
-"Delete asset from disk"
-"Delete asset from project"
-"Edit information on asset"
-"Redraw index"
-"Paste asset on recordable tracks"
-"Append asset in new tracks"
-"View asset"
-"Open"
-"Done"
-"Ok"
-"New file"
-"Exists"
-"Untimed"
-"Timed"
-"Unknown"
-"Batch Render..."
-"EDL %s not found.\n"
-"Output path:"
-"EDL Path:"
-"Input EDL"
-"Select an EDL to load:"
-"Batches to render:"
-"Stop"
-"Close"
-"New"
-"Delete"
-"Use Current EDL"
-"Save to EDL Path"
-"Start"
-"DVD Render..."
-"create dvd"
-"BRender::fork_background: can't open /proc/self/cmdline.\n"
-"BRender::set_video_map called to set NOT_SCANNED\n"
-"BRender::set_video_map "
-"Look for file"
-"Windowed"
-"Zoom 25%"
-"Zoom 33%"
-"Zoom 50%"
-"Zoom 75%"
-"Zoom 100%"
-"Zoom 150%"
-"Zoom 200%"
-"Zoom 300%"
-"Zoom 400%"
-"Zoom Auto"
-"Reset camera"
-"Reset projector"
-"Reset translation"
-"Show controls"
-"Hide controls"
-"Fullscreen"
-"Close source"
-"NTSC_DVB"
-"CATV_DVB"
-"NTSC_BCAST"
-"NTSC_CABLE"
-"NTSC_HRC"
-"NTSC_BCAST_JP"
-"NTSC_CABLE_JP"
-"PAL_AUSTRALIA"
-"PAL_EUROPE"
-"PAL_E_EUROPE"
-"PAL_ITALY"
-"PAL_IRELAND"
-"PAL_NEWZEALAND"
-"ERROR"
-"NTSC"
-"PAL"
-"SECAM"
-"None"
-"Select"
-"Add..."
-"Move up"
-"Move down"
-"Sort"
-"Scan"
-"Edit..."
-"Picture..."
-"Set parameters for channel scanning."
-"Frequency table:"
-"Norm:"
-"Input:"
-"Title:"
-"Fine:"
-"Brightness:"
-"Contrast:"
-"Color:"
-"Hue:"
-"Whiteness:"
-"Directory:"
-"Path:"
-"Start:"
-"Duration:"
-"Source:"
-"Start Cron"
-"Poweroff"
-"Delete all clips."
-"Create new clip."
-"Delete clip."
-"Channel"
-"Edit picture"
-"Edit channels"
-"Comments:"
-"Color Picker"
-"Hue"
-"Saturation"
-"Value"
-"Red"
-"Green"
-"Blue"
-"Alpha"
-"DV"
-"JPEG"
-"MJPA"
-"PNG"
-"PNG-Alpha"
-"RGB"
-"RGB-Alpha"
-"YUV420"
-"YUV422"
-"( Answering No will destroy changes )"
-"Yes"
-"No"
-"The following files exist.  Overwrite them?"
-"Protect video from changes"
-"Edit mask"
-"Ruler"
-"Zoom view"
-"Adjust camera automation"
-"Adjust projector automation"
-"Crop a layer or output"
-"Get color"
-"Show tool info"
-"Show safe regions"
-"Crop Video..."
-"Select a region to crop in the video output window"
-"insert assets"
-"mask translate"
-"mask adjust"
-"mask point"
-"Eyedrop"
-"camera"
-"projector"
-"mask"
-"Do it"
-"X1:"
-"W:"
-"Y1:"
-"H:"
-"X:"
-"Y:"
-"Z:"
-"Left justify"
-"Center horizontal"
-"Right justify"
-"Top justify"
-"Center vertical"
-"Bottom justify"
-"Multiply alpha"
-"Subtract alpha"
-"mask mode"
-"mask delete"
-"mask feather"
-"mask value"
-"Mode:"
-"Value:"
-"Mask number:"
-"Feather:"
-"Press Ctrl to move a point"
-"Press Alt to translate the mask"
-"Press Shift to edit bezier curve"
-"Press Ctrl to lock ruler to the\nnearest 45%c angle."
-"Press Alt to translate the ruler."
-"DC Offset"
-"Delete existing indexes"
-"Delete all indexes in %s?"
-"Seconds:"
-"In point ( [ )"
-"Out point ( ] )"
-"Next label ( ctrl -> )"
-"Previous label ( ctrl <- )"
-"Next edit ( alt -> )"
-"Previous edit (alt <- )"
-"Lift"
-"Overwrite ( b )"
-"Extract"
-"To clip ( i )"
-"Splice ( v )"
-"Cut ( x )"
-"Commercial ( shift X )"
-"Copy ( c )"
-"Append to end of track"
-"Insert before beginning of track"
-"Paste ( v )"
-"Set transition"
-"Set presentation up to current position"
-"Undo ( z )"
-"Redo ( shift Z )"
-"Toggle label at current position ( l )"
-"Fit selection to display ( f )"
-"Fit autos to display ( Alt + f )"
-"Drag and drop editing mode"
-"Cut and paste editing mode"
-"Generate keyframes while tweeking"
-"Attach effect..."
-"Resize track..."
-"Match output size"
-"Delete track"
-"Add track"
-"User title..."
-"User title"
-"Feather by how many samples:"
-"Feather by how many frames:"
-"Codec: "
-"Compressor: 16 bit PCM"
-"Attributes:"
-"Compressor: Consumer DV"
-"This format doesn't support audio."
-"This format doesn't support video."
-"Lo Hi"
-"Hi Lo"
-"There are no audio options for this format"
-"There are no video options for this format"
-"Use alpha"
-"Assuming raw PCM:"
-"AC3"
-"Apple/SGI AIFF"
-"AVI Arne Type 1"
-"AVI Avifile"
-"AVI DV Type 2"
-"AVI Lavtools"
-"EXR"
-"EXR Sequence"
-"FFMPEG"
-"FLAC"
-"JPEG Sequence"
-"Microsoft AVI"
-"Microsoft WAV"
-"MPEG Audio"
-"MPEG"
-"MPEG Video"
-"OGG Theora/Vorbis"
-"OGG Vorbis"
-"PNG Sequence"
-"Quicktime for Linux"
-"Raw DV"
-"Raw PCM"
-"Sun/NeXT AU"
-"TGA"
-"TGA Sequence"
-"TIFF"
-"TIFF Sequence"
-"Unknown sound"
-"8 Bit Linear"
-"16 Bit Linear"
-"24 Bit Linear"
-"32 Bit Linear"
-"u Law"
-"IMA 4"
-"ADPCM"
-"Float"
-"RGB ALPHA"
-"PNG ALPHA"
-"Quality:"
-"JPEGLIST"
-"MPEG-4"
-"Dual H.264"
-"Dual MPEG-4"
-"H.264"
-"H.263"
-"Microsoft MPEG-4"
-"PNG with Alpha"
-"Uncompressed RGB"
-"Uncompressed RGBA"
-"YUV 4:2:0 Planar"
-"Component Y'CbCr 8-bit 4:2:2 (yuv2)"
-"Component Y'CbCr 8-bit 4:2:2 (2vuy)"
-"YUV 4:1:1 Packed"
-"Component Y'CbCr 8-bit 4:4:4"
-"Component Y'CbCrA 8-bit 4:4:4:4"
-"Component Y'CbCr 10-bit 4:4:4"
-"JPEG Photo"
-"Motion JPEG A"
-"Twos complement"
-"Unsigned"
-"IMA-4"
-"U-Law"
-"Vorbis"
-"MP3"
-"MPEG-4 Audio"
-"Made with Cinelerra for Linux"
-"Bits per channel:"
-"Dither"
-"Bitrate:"
-"Variable bitrate"
-"Min bitrate:"
-"Avg bitrate:"
-"Max bitrate:"
-"Quantization Quality (%):"
-"Quantization:"
-"Bitrate tolerance:"
-"Interlaced"
-"Keyframe interval:"
-"Quantizer:"
-"RC Period:"
-"Reaction Ratio:"
-"Reaction Period:"
-"Max Key Interval:"
-"Max Quantizer:"
-"Min Quantizer:"
-"Fix bitrate"
-"Fix quantization"
-"encode: lame_init_params returned %d\n"
-"No options for MPEG transport stream."
-"Layer:"
-"Kbits per second:"
-"II"
-"III"
-"Color model:"
-"Format Preset:"
-"Derivative:"
-"I frame distance:"
-"P frame distance:"
-"Bottom field first"
-"Progressive frames"
-"Denoise"
-"Sequence start codes in every GOP"
-"MPEG-1"
-"MPEG-2"
-"Generic MPEG-1"
-"standard VCD"
-"user VCD"
-"Generic MPEG-2"
-"standard SVCD"
-"user SVCD"
-"VCD Still sequence"
-"SVCD Still sequence"
-"DVD NAV"
-"DVD"
-"Fixed bitrate"
-"Fixed quantization"
-"YUV 4:2:0"
-"YUV 4:2:2"
-"FileOGG::open_file rdwr"
-"Average bitrate"
-"Keyframe frequency:"
-"Keyframe force frequency:"
-"Sharpness:"
-"Fixed quality"
-"Signed"
-"RGB compressed"
-"RGBA compressed"
-"RGB uncompressed"
-"RGBA uncompressed"
-"FileVorbis::open_file %s: invalid bitstream.\n"
-"Output Path:"
-"Use Pipe:"
-"Stream Header:"
-"Interlacing:"
-"Pipe Presets:"
-"Flipbook..."
-"The format you selected doesn't support video."
-"The format you selected doesn't support audio."
-"IMA4 compression is only available in Quicktime movies."
-"ULAW compression is only available in\nQuicktime Movies and PCM files."
-"Change file format"
-"User Defined"
-"1080P/60"
-"1080P/24"
-"1080I"
-"720P/60"
-"576I - DV(D) PAL"
-"480P - DV(D) NTSC"
-"480I - DV(D) NTSC"
-"YouTube"
-"Half D-1 PAL"
-"Half D-1 NTSC"
-"Internet"
-"CD Audio"
-"DAT Audio"
-"Presets:"
-"Output to file"
-"Select a file to write to:"
-"File Format:"
-"MPEG stream"
-"Configure audio compression"
-"Configure video compression"
-"Record audio tracks"
-"Render audio tracks"
-"Record video tracks"
-"Render video tracks"
-"Overwrite project with output"
-"Create new file at each label"
-"Set parameters for this audio format:"
-"HiLo:"
-"LoHi:"
-"Set parameters for this video format:"
-"Video is not supported in this format."
-"Creating %s."
-"IndexFile::draw_index: index has 0 zoom\n"
-"IndexState::write_index Couldn't write index file %s to disk.\n"
-"Drag all following edits"
-"Drag only one edit"
-"Drag source only"
-"No effect"
-"Time Format"
-"Frames per foot:"
-"Index files"
-"Index files go here:"
-"Index Path"
-"Select the directory for index files"
-"Size of index file:"
-"Number of index files to keep:"
-"Editing"
-"Clicking on edit boundaries does what:"
-"Button 1:"
-"Button 2:"
-"Button 3:"
-"Min DB for meter:"
-"Max DB:"
-"Theme:"
-"Use thumbnails in resource window"
-"Show tip of the day"
-"Scan for commercials during toc build"
-"apply preset"
-"edit keyframe"
-"Keyframe parameters:"
-"Edit value:"
-"Preset title:"
-"Apply to all selected keyframes"
-"Save"
-"Apply"
-"Delete keyframe"
-"delete keyframe"
-"Make linear"
-"make linear curve"
-"Make bezier"
-"make bezier curve"
-"Hide keyframe type"
-"Copy"
-"Presets..."
-"Previous label"
-"Next label"
-"Load files..."
-"Select files to load:"
-"Load backup"
-"Insertion strategy:"
-"\nUsage:\n"
-"%s [-f] [-c configuration] [-d port] [-n nice] [-r batch file] [filenames]\n\n"
-"-d = Run in the background as renderfarm client.  The port (400) is optional.\n"
-"-f = Run in the foreground as renderfarm client.  Substitute for -d.\n"
-"-n = Nice value if running as renderfarm client. (20)\n"
-"-c = Configuration file to use instead of %s%s.\n"
-"-r = batch render the contents of the batch file (%s%s) with no GUI.  batch file is optional.\n"
-"filenames = files to load\n\n\n"
-"The following errors occurred:"
-"Building Indexes..."
-"Edit"
-"Keyframes"
-"Audio"
-"Video"
-"Tracks"
-"Settings"
-"Fade"
-"Mode"
-"Pan"
-"Mask"
-"Speed"
-"Camera X"
-"Camera Y"
-"Camera Z"
-"Projector X"
-"Projector Y"
-"Projector Z"
-"Window"
-"Default positions"
-"Tile left"
-"Tile right"
-"Dump CICache"
-"Dump EDL"
-"Dump Plugins"
-"Dump Assets"
-"Undo"
-"Undo %s"
-"Redo"
-"Redo %s"
-"Cut keyframes"
-"Copy keyframes"
-"Paste keyframes"
-"Clear keyframes"
-"Change to linear"
-"Change to bezier"
-"Cut default keyframe"
-"Copy default keyframe"
-"Paste default keyframe"
-"Clear default keyframe"
-"Cut"
-"Clear"
-"Paste silence"
-"Select All"
-"Clear labels"
-"Cut ads"
-"Detach transitions"
-"Mute Region"
-"Trim Selection"
-"Default Transition"
-"Map 1:1"
-"Map 5.1:2"
-"Reset Translation"
-"Delete tracks"
-"Delete last track"
-"Move tracks up"
-"Move tracks down"
-"Concatenate tracks"
-"Loop Playback"
-"Add subttl"
-"paste subttl"
-"Set background render"
-"Edit labels"
-"Edit effects"
-"Keyframes follow edits"
-"Align cursor on frames"
-"Typeless keyframes"
-"Slow Shuttle"
-"Fast Shuttle"
-"Save settings now"
-"Saved settings."
-"Show Viewer"
-"Show Resources"
-"Show Compositor"
-"Show Overlays"
-"Show Levels"
-"Split X pane"
-"Split Y pane"
-"%s ETA: %s"
-"Attach Effect..."
-"Attach Effect"
-"Attach Transition..."
-"Attach Transition"
-"Select transition from list"
-"Edit Length..."
-"Shuffle Edits"
-"Align Edits"
-"Render effect..."
-"No recordable tracks specified."
-"No plugins available."
-"No output file specified."
-"No effect selected."
-"No selected range to process."
-"Couldn't open %s"
-"Select an effect"
-"Select the first file to render to:"
-"Select a file to render to:"
-"Set up effect panel and hit \"OK\""
-"Transition Length..."
-"recieve message failed\n"
-"send message failed\n"
-"Messages::write_message"
-"Show meters"
-"MWindow::init_theme: theme %s not found.\n"
-"Failed to open %s"
-"'s format couldn't be determined."
-"load"
-"Initializing GUI"
-"Couldn't open %s for writing."
-"remove assets"
-"Using %s"
-"This project's dimensions are not multiples of 4 so\nit can't be rendered by OpenGL."
-"select asset"
-"add track"
-"asset to all"
-"asset to size"
-"asset to rate"
-"clear"
-"set linear"
-"set bezier"
-"clear keyframes"
-"clear default keyframe"
-"clear labels"
-"concatenate tracks"
-"crop"
-"cut"
-"cut keyframes"
-"cut default keyframe"
-"delete tracks"
-"delete track"
-"insert effect"
-"drag handle"
-"match output size"
-"move edit"
-"move effect"
-"move effect up"
-"move effect down"
-"move track down"
-"move tracks down"
-"move track up"
-"move tracks up"
-"mute"
-"overwrite"
-"paste"
-"paste assets"
-"paste keyframes"
-"paste default keyframe"
-"silence"
-"detach transition"
-"detach transitions"
-"transition"
-"attach transitions"
-"No default transition %s found."
-"shuffle edits"
-"align edits"
-"edit length"
-"transition length"
-"resize track"
-"in point"
-"out point"
-"splice"
-"Clip %d"
-"label"
-"trim selection"
-"new folder"
-"map 1:1"
-"cut ads"
-"New..."
-"Cinelerra: New Project"
-": New Project"
-"Parameters for the new project:"
-"Tracks:"
-"Samplerate:"
-"Framerate:"
-"Canvas size:"
-"Aspect ratio:"
-"Auto aspect ratio"
-"Play track"
-"play patch"
-"Arm track"
-"record patch"
-"Gang faders"
-"gang patch"
-"Draw media"
-"draw patch"
-"Don't send to output"
-"mute patch"
-"expand patch"
-"track title"
-"Nudge"
-"nudge"
-"Cache size (MB):"
-"Seconds to preroll renders:"
-"(must be root)"
-"Background Rendering (Video only)"
-"Frames per background rendering job:"
-"Frames to preroll background:"
-"Output for background rendering:"
-"Render Farm"
-"Nodes:"
-"Hostname:"
-"Total jobs to create:"
-"(overridden if new file at each label is checked)"
-"On"
-"Hostname"
-"Port"
-"Framerate"
-"Use background rendering"
-"Use render farm"
-"Force single processor use"
-"trap sigSEGV"
-"trap sigINT"
-"enable/disable file fork"
-"Consolidate output files on completion"
-"Add Node"
-"Apply Changes"
-"Delete Node"
-"Sort nodes"
-"Reset rates"
-"Use virtual filesystem"
-"Audio Out"
-"Playback buffer samples:"
-"Audio offset (sec):"
-"Gain:"
-"Audio Driver:"
-"Video Out"
-"Framerate achieved:"
-"--"
-"Scaling equation: Enlarge / Reduce "
-"Preload buffer for Quicktime:"
-"DVD Subtitle to display:"
-"TOC Program No:"
-"Video Driver:"
-"View follows playback"
-"Use software for positioning information"
-"Audio playback in real time priority (root only)"
-"Map 5.1->2"
-"Interpolate CR2 images"
-"White balance CR2 images"
-"Decode frames asynchronously"
-"Play every frame"
-"Enable subtitles/captioning"
-"Label cells"
-"Fast reverse ( + )"
-"Normal reverse ( 6 )"
-"Frame reverse ( 4 )"
-"Normal forward ( 3 )"
-"Frame forward ( 1 )"
-"Fast forward ( Enter )"
-"Author: %s"
-"License: %s"
-"%s..."
-"%s took %s"
-"No processing defined for this plugin.\n"
-"attach effect"
-"Plugins:"
-"Shared effects:"
-"Shared tracks:"
-"Attach single standlone and share others"
-"Change..."
-"Detach"
-"detach effect"
-"Send"
-"Receive"
-"Show"
-"Plugin Set"
-"Look for global plugins here"
-"Global Plugin Path"
-"Select the directory for plugins"
-"Look for personal plugins here"
-"Personal Plugin Path"
-"Preferences..."
-"*Playback A"
-"Playback A"
-"*Playback B"
-"Playback B"
-"Recording"
-"Performance"
-"Interface"
-"About"
-"Saved presets:"
-"Quit"
-"Can't quit while a recording is in progress."
-"Can't quit while a render is in progress."
-"Save edit list before exiting?"
-"Delete this file and %s?"
-"No space left on disk."
-"Path"
-"News"
-"Start time"
-"Duration"
-"Source"
-"Start batch recording\nfrom the current position."
-"Activate"
-"Make the highlighted\nclip active."
-"Record..."
-"record"
-"Deleting"
-"Loop"
-"Start time:"
-"Duration time:"
-"Transport:"
-"Select a file to record to:"
-"Format:"
-"Audio compression:"
-"Clipped samples:"
-"Video compression:"
-"Frames dropped:"
-"Frames behind:"
-"Position:"
-"Prev label:"
-"Batches:"
-"Cron:"
-"Idle"
-"Save the recording and quit."
-"Quit without pasting into project."
-"Quit and paste into project."
-"Start Over"
-"Rewind the current file and erase."
-"drop overrun frames"
-"Drop input frames when behind."
-"fill underrun frames"
-"Write extra frames when behind."
-"poweroff when done"
-"poweroff system when batch record done."
-"check for ads"
-"check for commercials."
-"Monitor video"
-"Monitor audio"
-"Audio meters"
-"Label"
-"ClrLbls"
-"Interrupt recording in progress?"
-"Rewind batch and overwrite?"
-"00:00:00:00"
-"Swap fields"
-"Audio In"
-"Record Driver:"
-"Samples read from device:"
-"Samples to write to disk:"
-"Sample rate for recording:"
-"Channels to record:"
-"Video In"
-"Frames to record to disk at a time:"
-"Frames to buffer in device:"
-"Positioning:"
-"Size of captured frame:"
-"Frame rate for recording:"
-"Record in realtime priority (root only)"
-"Realtime TOC"
-"Presentation Timestamps"
-"Software timing"
-"Device Position"
-"Sample Position"
-"Sync drives automatically"
-"View scope"
-"Start recording\nfrom current position"
-"RecordTransport single frame"
-"Preview recording"
-"Stop operation"
-"Start over"
-"Fast rewind"
-"Fast forward"
-"Seek to end of recording"
-"Redraw Indexes"
-"Redraw all indexes for the current project?"
-"Render..."
-"Rendering %s..."
-"Rendering..."
-"Rendering took %s"
-"Starting render farm"
-"Failed to start render farm"
-"Error rendering data."
-"render"
-"RenderFarmServerThread::start_loop: socket\n"
-"RenderFarmServerThread::open_client: %s: %s\n"
-"RenderFarmServerThread::start_loop: socket"
-"RenderFarmServerThread::open_client: unknown host %s.\n"
-"RenderFarmServerThread::run: unknown request %02x\n"
-"RenderFarmClient::main_loop: socket"
-"RenderFarmClient::main_loop: bind port %d: %s"
-"RenderFarmClient::main_loop: bind path %s: %s\n"
-"RenderFarmClient::main_loop: listen"
-"RenderFarmClient::main_loop: accept"
-"RenderFarmClientThread::run: Session finished.\n"
-"This track's dimensions are not multiples of 4 so\nit can't be rendered by OpenGL."
-"Size:"
-"x"
-"Scale:"
-"Resize"
-"ResourcePixmap::draw_audio_source: failed to check out %s for drawing.\n"
-"Save backup"
-"Saved backup."
-"\"%s\" %dC written"
-"Save as..."
-"Couldn't open %s."
-"Enter a filename to save as"
-"Resize..."
-"New camera size:"
-"New projector size:"
-"W Ratio:"
-"H Ratio:"
-":"
-"Constrain ratio"
-"Scale data"
-"Auto"
-"Format..."
-"set format"
-"Channel positions:"
-"%d degrees"
-"Loading..."
-"Welcome to Cinelerra."
-"Cancel operation"
-"Subttl %d"
-"SubTitle"
-"Where is %s?"
-"Shift-click on a curve keyframe to snap it to the neighboring values."
-"When configuring slow effects, disable playback for the track.  After configuring it,\nre-enable playback to process a single frame."
-"Ctrl + any transport command causes playback to only cover\nthe region defined by the in/out points."
-"Shift + clicking a patch causes all other patches except the\nselected one to toggle."
-"Clicking on a patch and dragging across other tracks causes\nthe other patches to match the first one."
-"Shift + clicking on an effect boundary causes dragging to affect\njust the one effect."
-"Load multiple files by clicking on one file and shift + clicking on\nanother file.  Ctrl + clicking toggles individual files."
-"Ctrl + left clicking on the time bar cycles forward a time format.\nCtrl + middle clicking on the time bar cycles backward a time format."
-"Use the +/- keys in the Compositor window to zoom in and out.\n"
-"Pressing Alt while clicking in the cropping window causes translation of\nall 4 points.\n"
-"Pressing Tab over a track toggles the Record status.\nPressing Shift-Tab over a track toggles the Record status of all the other tracks.\n"
-"Audio->Map 1:1 maps each recordable audio track to a different channel.\nMap 5.1:1 maps 6 recordable AC3 tracks to 2 channels.\n"
-"Alt + left moves to the previous edit handle.\nAlt + right moves to the next edit handle.\n"
-"Settings->typeless keyframes allows keyframes from any track to be pasted on either\naudio or video tracks.\n"
-"Show tip of the day."
-"Next tip"
-"Previous tip"
-"keyframe"
-"Attach..."
-"Length"
-"VDeviceLML::read_buffer: driver crash\n"
-"VDeviceLML::read_buffer: reopened\n"
-"Follow video config"
-"Output channel:"
-"Fields:"
-"Display:"
-"Default A Display:"
-"Default B Display:"
-"Show assets"
-"Show titles"
-"Show transitions"
-"Plugin keyframes"
-"mode"
-"Normal"
-"Addition"
-"Subtract"
-"Multiply"
-"Divide"
-"Replace"
-"Max"
-"Min"
-"Average"
-"Darken"
-"Lighten"
-"Dst"
-"DstAtop"
-"DstIn"
-"DstOut"
-"DstOver"
-"Src"
-"SrcAtop"
-"SrcIn"
-"SrcOut"
-"SrcOver"
-"Or"
-"Xor"
-"Video %d"
-"Viewer"
-"sample zoom"
-"amp zoom"
-"track zoom"
-"curve zoom (autofit Alt f)"
-"Odd field first"
-"Even field first"
+" "
+": "
+":"
+"00:00:00:00"
+"%0.01f pixels"
+" (%0.3f secs)"
+"0 Hz"
+"1080I"
+"1080P/24"
+"1080P/60"
 "1080 to 480"
 "1080 to 540"
+"16 Bit Linear"
+"24 Bit Linear"
+"32 Bit Linear"
+"(%3.3s) "
+"  %3d.  %8.3f"
+"480I - DV(D) NTSC"
+"480P - DV(D) NTSC"
+" (%5.2f), %ld frames"
+"576I - DV(D) PAL"
+"601 -> RGB expansion"
+"720P/60"
 "720 to 480"
+"8 Bit Linear"
+"A  B  BC  CD  D"
+"AB  BC  CD  DE  EF"
+"About"
+"AC3"
+"Access mmap to %s as %s failed.\n"
+"Access time"
+"Accumulate"
+"Action:"
+"Activate"
+"activate batch record when ok pressed"
+"Activate processing"
+"Actual height:"
+"Actual width:"
+"Adaptive"
+"Add..."
+"Add"
+"Addition"
+"Add (loaded) offset from tracked frame"
+"Add Node"
+"Add subttl"
+"add track"
+"Add track"
+"Adjust camera automation"
+"Adjust projector automation"
+"ADPCM"
+" a%d %s"
+"ad: trk %d@%s  "
+"A Field of View:"
 "AgingTV"
-"Film aging from EffectTV\nCopyright (C) 2001 FUKUCHI Kentarou"
-"Grain"
-"Scratch"
-"Pits"
-"Dust"
-"History Size:"
-"Window Size:"
-"Trigger level:"
-"Sample: 0"
-"Level 0: 0"
-"Level 1: 0"
+"Algorithm:"
+"Align cursor on frames"
+"align edits"
+"Align Edits"
+"-> Alpha"
+"Alpha"
+"Alpha as timefront"
+"Alpha determines radius"
+"Alpha mask"
+"Alpha Offset:"
+"Alpha replace"
+"Already rendering"
+"Alt-c"
+"Alt-Del"
+"Alt + left moves to the previous edit handle.\nAlt + right moves to the next edit handle.\n"
+"Alt-v"
+"Alt-X"
+"Alt-y"
+"AModule::import_samples Couldn't open %s.\n"
+"Amount:"
+"ampeg_derivative=%d\n"
+"Amplitude:"
+"Amplitude: 0 dB"
+"Amplitude: %.2f dB"
+"amp zoom"
+"Android Remote Control"
+"Angle:"
+"Angle"
+"Anisotropy:"
+"( Answering \"No\" will destroy changes )"
+"Anti-aliasing"
+"Append asset in new tracks"
+"Append in new tracks"
+"Append to end of track"
+"Apple/SGI AIFF"
+"Apply"
+"Apply Changes"
+"apply preset"
+"Apply to all selected keyframes"
+"Arm track"
+"Aspect 16x9"
+"Aspect ratio:"
+"Aspect Ratio:"
+"Asset Detail"
+": Asset Info"
+": Asset path"
+"Assets"
+"asset to all"
+"asset to rate"
+"asset to size"
+"Assuming raw PCM:"
+"As timefront use:"
+"Attach..."
+"attach effect"
+"Attach effect..."
+": Attach Effect"
+"Attach Effect..."
+"Attach Effect"
+"Attach single standlone and share others"
+"Attach Transition..."
+"Attach Transition"
+"attach transitions"
+"Atten: "
+"Attributes:"
+"Audio:"
+"Audio"
+"Audio 5.1"
+": Audio compression"
+"Audio compression:"
+": Audio Compression"
+"Audio %d"
+"Audio Driver:"
+"Audio In"
+"Audio->Map 1:1 maps each recordable audio track to a different channel.\nMap 5.1:1 maps 6 recordable AC3 tracks to 2 channels.\n"
+"Audio meters"
+"Audio offset (sec):"
+"Audio Options:"
+"Audio Out"
+"Audio playback in real time priority (root only)"
+": Audio Preset"
 "AudioScope"
-"In"
-"Out"
+"  audio stream\n"
+"Author: %s"
+"Auto"
+"Auto aspect ratio"
+"Automate"
+"Automatic"
+"Automatic IVTC"
+"Automation"
+"Auto Scale"
+"Average"
+"Average bitrate"
+"Average both fields"
+"Average bottom fields"
+"Average changing pixels"
+"Average even lines"
+"Average lines"
+"Average odd lines"
+"Average one field"
+"Average similar pixels"
+"Average top fields"
+"Avg bitrate:"
+"AVI Arne Type 1"
+"AVI Avifile"
+"AVI DV Type 2"
+"AVI Lavtools"
+"Av. Thres."
+"Background Rendering (Video only)"
+"bad scan date: %s\n"
+"bad scan time: %s\n"
+"bad title: %s\n"
+"Bandpass"
 "Bands:"
-"Direction:"
 "BandSlide"
 "BandWipe"
-"-*-helvetica-bold-r-normal-*-14-*"
-"Pick"
-"Reset"
-" Mask Selection"
-"Color Selection"
-" Mark Selected Areas"
-"hue"
-"saturation"
-"value"
-"fill"
-"red"
-"green"
+"Base Frequency:"
+"Batches:"
+"Batches to render:"
+": Batch Render"
+"Batch Render..."
+"BC_DisplayInfo::init_window: cannot connect to X server.\n"
+"BC_DisplayInfo::init_window: cannot open display \"%s\".\n"
+"BC_Theme::check_used: Images aren't used.\n"
+"BC_WindowBase::~BC_WindowBase window deleted but opengl deletion is not\nimplemented for BC_Pixmap.\n"
+"B_dx:"
+"B_dy:"
+"Bezier"
+"B Field of View:"
+"BiCubic / BiCubic"
+"BiCubic / BiLinear"
+"BiLinear / BiLinear"
+"Bitrate:"
+"Bitrate (bits/sec):"
+"Bitrate tolerance:"
+"Bits:"
+"Bits per channel:"
+"Blacken"
+"Black to White"
+"Blob"
+"Block X:"
+"Block Y:"
 "blue"
-"pre-erode"
-" Invert Selection"
-"Color Adjustment"
-" Filter Active"
-"-*-helvetica-medium-r-normal-*-14-*"
+"-> Blue"
+"Blue:"
+"Blue"
+"Blue Banana"
+"Bluebanana: Unable to create Frame for slider\n"
 "Blur"
-"Radius:"
-"Vertical"
-"Horizontal"
 "Blur alpha"
-"Alpha determines radius"
-"Blur red"
-"Blur green"
 "Blur blue"
-"RadioacTV"
-"RadioacTV from EffectTV\nCopyright (C) 2001 FUKUCHI Kentarou"
-"Brightness/Contrast"
+"Blur green"
+"Blur red"
+"-b may not be used by the user.\n"
+"Bob Threshold"
+"Bob & Weave"
+"Bold"
 "Boost luminance only"
+"Border:"
+"Both"
+"Bottom"
+"Bottom field first"
+"Bottom first"
+"Bottom justify"
+"Bottom to top"
+"BRender::fork_background: can't open /proc/self/cmdline.\n"
+"BRender::set_video_map "
+"BRender::set_video_map called to set NOT_SCANNED\n"
+"Brightness:"
+"Brightness/Contrast"
+"buffer=%p\n"
+"Building Indexes..."
 "BurningTV"
 "BurningTV from EffectTV\nCopyright (C) 2001 FUKUCHI Kentarou"
-"Lock parameters"
-"Activate processing"
-"Compute negfix values"
-"(uncheck for faster rendering)"
-"Computed negfix values:"
-"Min R:"
-"Min G:"
-"Min B:"
-"Light:"
-"Gamma G:"
-"Gamma B:"
-"negfix values to apply:"
+"Button 1:"
+"Button 2:"
+"Button 3:"
+"B / V"
+"Byte order:"
+"Bytes:"
 "C41"
-"CD Ripper"
-"Can't open cdrom drive."
-"Can't get total from table of contents."
+"Cache size (MB):"
+"Calculation:"
+"camera"
+": Camera"
+"Camera X"
+"Camera Y"
+"Camera Z"
+"CAMSHIFT"
+"Camshift SMIN:"
+"Camshift VMAX:"
+"Camshift VMIN:"
+"Cancel"
+"Cancel operation"
+"Cancel the operation"
+"cannot connect to X server.\n"
+"cannot open dvb video device\n"
+"cannot open: \"%s\"\n%s"
+"cant access commercials database"
 "Can't get table of contents entry."
 "Can't get table of contents leadout."
-"Start track is out of range."
-"End track is out of range."
-"End position is out of range."
-"Select the range to transfer:"
-"Track"
-"Sec"
-"From"
-"To"
-"CD Device:"
-"Slope:"
-"Threshold:"
-"Color..."
-"Use value"
-"Use color picker"
-"Inner color"
+"Can't get total from table of contents."
+"cant init toc index\n"
+"Can't open cdrom drive."
+"Can't quit while a recording is in progress."
+"Can't quit while a render is in progress."
+"cant vfork poweroff process"
+"Canvas size:"
+"capture driver not dvb\n"
+"Carrier Track:"
+"CATV_DVB"
+"-c = Configuration file to use instead of %s%s.\n"
+"(C) %d Adam Williams\n\nheroinewarrior.com"
+"CD Audio"
+"CD Device:"
+": CD Ripper"
+"CD Ripper"
+"cell times:"
+"Center"
+"Center horizontal"
+"Center vertical"
+"Center X:"
+"Center Y:"
+"Change..."
+"Changed rows: %d\n"
+": Change Effect"
+"Change file format"
+"Change the filter"
+"Change to bezier"
+"Change to linear"
+"Changing the base codecs may require rebuilding indecies."
+"Channel:"
+"Channel"
+": Channel Info"
+"Channel positions:"
+"Channels:"
+"Channels to record:"
+": ChanSearch"
+"Chapters at Labels"
+" ch%d (%d)"
+"check for ads"
+"check for commercials."
+"Chroma contrast:"
 "Chroma key"
-"Key parameters:"
-"Hue Tolerance:"
-"Min. Brightness:"
-"Max. Brightness:"
-"Saturation Offset:"
-"Min Saturation:"
-"Mask tweaking:"
-"In Slope:"
-"Out Slope:"
-"Alpha Offset:"
-"Spill light control:"
-"Spill Threshold:"
-"Spill Compensation:"
-"Show Mask"
 "Chroma key (HSV)"
+"Cinelerra: Attach Effect"
+"Cinelerra: Audio compression"
+"Cinelerra: Audio Compression"
+"Cinelerra: Camera"
+"Cinelerra: CD Ripper"
+"Cinelerra: Change Effect"
+"Cinelerra: Channel Info"
+"Cinelerra: ChanSearch"
+"Cinelerra: Clip Info"
+"Cinelerra: Color"
+"Cinelerra: Compositor"
+"Cinelerra: Confirm"
+"Cinelerra: Confirm Quit"
+"Cinelerra: Crop"
+"Cinelerra: DbWindow"
+"Cinelerra: Delete All Indexes"
+"Cinelerra: Edit length"
+"Cinelerra: Error"
+"Cinelerra: Errors"
+"Cinelerra: File Exists"
+"Cinelerra: File Format"
+"Cinelerra: Levels"
+"Cinelerra: Load"
+"Cinelerra: Loading"
+"Cinelerra: Locate file"
+"Cinelerra: Mask"
+"Cinelerra: New folder"
+"Cinelerra: New Project"
+"Cinelerra: Normalize"
+"Cinelerra: Overlays"
+"Cinelerra: Path"
+"Cinelerra: Preferences"
+"Cinelerra: Program"
+"Cinelerra: Projector"
+"Cinelerra: Question"
+"Cinelerra: RemoteWindow"
+"Cinelerra: Remove assets"
+"Cinelerra: Resample"
+"Cinelerra: Resize Track"
+"Cinelerra: Ruler"
+"Cinelerra: %s"
+"Cinelerra: Save"
+"Cinelerra: Set edit title"
+"Cinelerra: Set Format"
+"Cinelerra: %s Keyframe"
+"Cinelerra: Subtitle"
+"Cinelerra: Time stretch"
+"Cinelerra: Tip of the day"
+"Cinelerra: Transition length"
+"Cinelerra: Video Compression"
+"Cinelerra: Viewer"
+"Cinelerra: Warning"
+"clear"
+"Clear"
+"clear default keyframe"
+"Clear default keyframe"
+"clear keyframes"
+"Clear keyframes"
+"clear labels"
+"Clear labels"
+"Clicking on a patch and dragging across other tracks causes\nthe other patches to match the first one."
+"Clicking on edit boundaries does what:"
+"Clip %d"
+": Clip Info"
+"Clipped samples:"
+"Close"
+"Close source"
+"ClrLbls"
+"Codec: "
+"  codec_type unknown\n"
+": Color"
+"Color:"
+"Color..."
 "Color 3 Way"
-"Saturation:"
-"Copy to all"
-"White balance"
+"Color Adjustment"
 "Color Balance"
-"Cyan"
-"Magenta"
-"Yellow"
-"Preserve luminosity"
+"Color model:"
+"Color Picker"
+"Color Selection"
+"Comments:"
+"Comments"
+"Commercial ( shift X )"
+"Components only"
+"Component Y'CbCr 10-bit 4:4:4"
+"Component Y'CbCr 8-bit 4:2:2 (2vuy)"
+"Component Y'CbCr 8-bit 4:2:2 (yuv2)"
+"Component Y'CbCr 8-bit 4:4:4"
+"Component Y'CbCrA 8-bit 4:4:4:4"
+": Compositor"
+"Compression:"
 "Compressor"
-"Reaction secs:"
-"Decay secs:"
-"Trigger Type:"
-"Trigger:"
-"Point:"
-"Output"
-"Input"
-"Smooth only"
+"Compressor: 16 bit PCM"
+"Compressor: Consumer DV"
+"Computed negfix values:"
+"Compute negfix values"
+"Concatenate to existing tracks"
+"concatenate tracks"
+"Concatenate tracks"
+"Configure audio compression"
+"Configure video compression"
+": Confirm"
+": Confirm Quit"
+"Consolidate output files on completion"
+"Constrain ratio"
+"Contrast:"
+"Contributors:"
+"Conversion from %s to %s is not available"
+"Copy"
+"Copy ( c )"
+"Copy default keyframe"
+"Copy keyframes"
+"Copy to all"
+": Could not set locale.\n"
+"Couldn't open %s."
+"Couldn't open %s"
+"Couldn't open %s for writing."
+"Couldn't open %s: invalid table of contents version.\nRebuilding the table of contents."
+"Couldn't open %s: rebuild failed.\n"
+"Couldn't open %s: table of contents corrupt.\nRebuilding the table of contents."
+"Couldn't open %s: table of contents out of date.\nRebuilding the table of contents."
+"Couldn't save %s."
+"count"
+"Create bezier"
+"create dvd"
+": Create DVD"
+"Create new clip."
+"Create new file at each label"
+"Create new folder"
+"Create new resources only"
+"Creating %s."
+"Creating %s\n"
+"Cron:"
+"crop"
+": Crop"
+"Crop a layer or output"
+"Crop Video..."
+"crosses edits"
 "Crossfade"
-"Input frames per second:"
-"Last frame dropped: "
+"Ctrl+1"
+"Ctrl+2"
+"Ctrl + any transport command causes playback to only cover\nthe region defined by the in/out points."
+"Ctrl+d"
+"Ctrl + left clicking on the time bar cycles forward a time format.\nCtrl + middle clicking on the time bar cycles backward a time format."
+"Ctrl or Shift to select multiple notes."
+"Current:"
+"current program %d = title %d, angle %d, interleave %d\n\n"
+"Current X:"
+"curve zoom (autofit Alt f)"
+"Custom"
+"cut"
+"Cut"
+"cut ads"
+"Cut ads"
+"Cut and paste editing mode"
+"cut clip %d in edit @%f %f-%f, clip @%f-%f\n"
+"cut default keyframe"
+"Cut default keyframe"
+"cut %f/%f = %d\n"
+"cut keyframes"
+"Cut keyframes"
+"Cutoff Hz:"
+"cuts to %s complete\n"
+"Cutting Ads"
+"Cut ( x )"
+"Cyan"
+"Damp:"
+"Darken"
+"DAT Audio"
+"Date"
+"date: %s\n"
+"%d audio tracks\n"
+"db failed"
+"dbl clk row to find title"
+": DbWindow"
+"DC"
+"DC Offset"
+"%d degrees"
+"Decay secs:"
 "Decimate"
+"Decode frames asynchronously"
+"default"
+"Default A Display:"
+"Default B Display:"
+"Default positions"
+"Default Transition"
+"Degrees"
 "Deinterlace"
-"Select lines to keep"
-"Do nothing"
-"Odd lines"
-"Even lines"
-"Average lines"
-"Swap odd fields"
-"Swap even fields"
-"Average even lines"
-"Average odd lines"
-"Changed rows: %d\n"
 "Deinterlace-CV"
-"Select deinterlacing mode"
-"Keep top field"
-"Keep bottom field"
-"Average top fields"
-"Top field first"
-"Threshold"
-"Bob Threshold"
-"Adaptive"
-"Duplicate one field"
-"Average one field"
-"Average both fields"
-"Bob & Weave"
-"Spatial field swap"
-"Temporal field swap"
-"Do Nothing"
+"Del"
 "Delay audio"
+"Delay frames:"
 "Delay seconds:"
 "Delay Video"
-"Level:"
-"Denoise power:"
-"Number of samples for reference:"
-"The keyframe is the start of the reference"
+": Delete"
+"Delete"
+"Delete all clips."
+": Delete All Indexes"
+"Delete all indexes in %s?"
+"Delete asset from disk"
+"Delete asset from project"
+"Delete bin"
+"Delete clip."
+"Delete existing indexes"
+"Delete files"
+"delete keyframe"
+"Delete keyframe"
+"Delete last track"
+"Delete Node"
+"Delete this file and %s?"
+"delete track"
+"Delete track"
+"delete tracks"
+"Delete tracks"
+"Deleting"
+"Denoise"
 "DenoiseFFT"
-"Progressive"
-"Fast"
-"Search radius:"
-"Pass 1 threshold:"
-"Pass 2 threshold:"
-"Luma contrast:"
-"Chroma contrast:"
-"Delay frames:"
-"Denoise video2"
-"Selective Temporal Averaging"
-"Frames to average"
-"Use Method:"
-"None "
-"Selective Temporal Averaging: "
-"Av. Thres."
-"S.D. Thres."
-"R / Y"
-"G / U"
-"B / V"
-"Standard Deviation"
-"First frame in average:"
-"Fixed offset: "
-"Restart marker system:"
-"Other Options:"
-"Reprocess frame again"
-"Disable subtraction"
-"This Frame is a start of a section"
-"Average changing pixels"
-"Average similar pixels"
-"Frames to accumulate:"
+"Denoise power:"
 "Denoise video"
+"Denoise video2"
+"Depth:"
+"Depth"
+"Derivative:"
+"Descend directory"
 "Despike"
-"Maximum level:"
-"Maximum rate of change:"
-"Use Value"
+"Detach"
+"detach effect"
+"detach transition"
+"detach transitions"
+"Detach transitions"
+"Detail"
+"dev:"
+"Device:"
+"DeviceMPEGInput::get_channeldb::element %d (id %d.%d) has %d/%d video/audio streams\n"
+"Device path:"
+"Device Path:"
+"Device Position"
+"DeviceV4L2Base::v4l2_open  attempting format %4.4s\n"
+"DeviceV4L2Base::v4l2_open  config geom %dx%d != %dx%d best_geom\n"
+"DeviceV4L2Base::v4l2_open jpeg driver and best_format not mjpeg (%4.4s)\n"
+"DeviceV4L2Base::v4l2_open mpeg driver and best_format not mpeg (%4.4s)\n"
+"%d found"
 "Difference key"
+"%d interleaves\n"
+"Direction:"
+"Directory:"
+"Disable subtraction"
+"disk space: "
+"Display:"
+"'DISPLAY' environment variable not set.\n"
+"Display icons"
+"Display text"
 "Dissolve"
+"Distance:"
+"Dither"
+"Divide"
+"Do it"
+"Done"
+"Do nothing"
+"Do Nothing"
+"Don't buffer frames"
+"Don't Calculate"
+"Don't send to output"
+"Don't show this warning again."
 "DotTV"
 "DotTV from EffectTV\nCopyright (C) 2001 FUKUCHI Kentarou"
-"Horizontal offset"
-"Vertical offset"
 "Downsample"
-"Level: "
-"Atten: "
-"Offset: "
+"Drag all following edits"
+"Drag and drop editing mode"
+"drag handle"
+"Drag only one edit"
+"Drag source only"
+"Draw border"
+"Draw center"
+"Draw keypoints"
+"Draw media"
+"Draw motion vectors"
+"Draw object border"
+"draw patch"
+"Draw pivot"
+"Draw vectors"
+"Drop input frames when behind."
+"drop overrun frames"
+"Drop shadow:"
+"-d = Run in the background as renderfarm client.  The port (400) is optional.\n"
+"Dry:"
+"Dst"
+"DstAtop"
+"DstIn"
+"DstOut"
+"DstOver"
+"%d subtitles\n"
+"%d title sets, "
+"Dual H.264"
+"Dual MPEG-4"
+"Dump Assets"
+"Dump CICache"
+"Dump EDL"
+"Dump Plugins"
+"Duplicate one field"
+"Duration:"
+"Duration"
+"Duration (seconds):"
+"Duration time:"
+"Dust"
+"DV"
+"DVB Adapter:"
+"DVD"
+"DVD NAV"
+"DVD Render..."
+"DVD Subtitle to display:"
+"%d video tracks\n"
+"DV in Quicktime container does not support following resolution: %ix%i\nAllowed resolutions are 720x576 (PAL) and 720x480 (NTSC)\n"
 "Echo"
-"Normalize"
-"Gain: "
-"Window size:"
-"History:"
-"X Zoom:"
-"Damp:"
-"Cutoff Hz:"
-"Peaks:"
-"0 Hz"
 "EchoCancel"
+"Edit..."
+"Edit"
+"Edit channels"
+"Edit effects"
+"Edit information on asset"
+"Editing"
+"edit keyframe"
+"Edit labels"
+"edit length"
+": Edit length"
+"Edit Length..."
+"Edit mask"
+"Edit picture"
+"Edit value:"
+"EDL"
+"EDL Path:"
+"EDL %s not found.\n"
+": Effect Prompt"
+"Elapsed"
+"elements %d\n"
+"Enabled"
+"enable/disable file fork"
+"Enable subtitles/captioning"
+"encode: lame_init_params returned %d\n"
+"Encoding:"
+"End band for lowpass:"
+"end before start: %s\n"
+"end channel info, start record"
+" End Mask"
+"End position is out of range."
+"end setup, start batch render"
+"end time early: %s\n"
+"End track is out of range."
+"Enter a filename to save as"
+"Enter a new name for the file:"
+"Enter the DB to overload by:"
+"Enter the name of the folder:"
+"Entries:"
+"Enumerate"
+"EQ Graphic"
+"EQ Parametric"
+": Error"
+"ERROR"
+"Error decoding audio frame %d\n"
+"Error rendering data."
+": Errors"
+"ERROR: TimeFront plugin - If you are using another track for timefront, you have to have it under shared effects\n"
+"ERROR: Unable to allocate memory for audio_sample_buffer channel %d\n"
+"ERROR: Unable to allocate memory for audio_sample_buffer.\n"
+"ERROR: unable to encode audio frame %d\n"
+"ERROR: Unable to reallocate memory for audio_sample_buffer channel %d\n"
+"ERROR: Unable to relocate for audio write to %ji\n"
+"Error while creating fifo file"
+"Error while opening file \"%s\". \n%m\n"
+"Error while opening \"%s\" for reading. \n%m\n"
+"Error while opening \"%s\" for writing. \n%m\n"
+"Error while opening \"%s\" for writing\n%m\n"
+"error writing audio page\n"
+"error writing video page\n"
+" err: %s\n"
+"Even"
+"Even field first"
+"Even lines"
+"Even offset:"
+"execvp poweroff failed"
+"Exists"
+"expand patch"
+"Export of %s to %s failed\n"
+"EXR"
+"EXR Sequence"
+"Ext."
+"External SVG editor finished\n"
+"Extract"
+"Eyedrop"
+"fade"
+"Fade"
+"Fade in (sec):"
+"Fade out (sec):"
+"failed delete clip id %d\n"
+"Failed to open %s"
+"Failed to start render farm"
+"Falling Trigger"
+"Fast"
+"Fast forward"
+"Fast forward ( Enter )"
+"Fast Forward ( Enter )"
+"Fast reverse ( + )"
+"Fast Reverse ( + )"
+"Fast rewind"
+"Fast Shuttle"
+"Feather:"
+"Feather by how many frames:"
+"Feather by how many samples:"
+": Feather Edits"
+"Feather Edits..."
+"Feet-frames"
+"FFMPEG"
+"FFMpeg early probe"
+"FFMPEG::get_encoder: err: format/codec not found %s\n"
+"ffmpeg probe warns rebuild indecies"
+"FFMPEG::read_options: err reading %s: line %d\n"
+"Fibonnacci"
+"Fields:"
 "Fields to frames"
+"File"
+"File Capture"
+": File Exists"
+": File format"
+"File format:"
+": File Format"
+"File Format:"
+"filenames = files to load\n\n\n"
+"FileOGG: Broken ogg file - broken page: ogg_page_packets == 0 and granulepos != -1\n"
+"FileOGG: Cannot find next page while looking for first non-header packet\n"
+"FileOGG: Cannot find next page while seeking\n"
+"FileOGG: Cannot find next page while trying to decode more samples\n"
+"FileOGG: End of file while searching for codec headers.\n"
+"FileOGG: Error at finding out what to read from file\n"
+"FileOGG: Error parsing Theora stream headers; corrupt stream?\n"
+"FileOGG: Error parsing Vorbis stream headers; corrupt stream?\n"
+"FileOGG:: Error while seeking to frame's keyframe (frame: "
+"FileOGG:: Error while seeking to keyframe, wrong keyframe number (frame: "
+"FileOGG: Expecting keyframe, but didn't get it\n"
+"FileOGG:: History not aligned properly \n"
+"FileOGG: Illegal seek beyond end of frames\n"
+"FileOGG: Illegal seek beyond end of samples\n"
+"FileOGG: initialization of theora codec failed\n"
+"FileOGG: ogg_sync_and_get_next_page failed\n"
+"FileOGG::open_file rdwr"
+"FileOGG: Seeking to frame failed\n"
+"FileOGG: Seeking to keyframe failed\n"
+"FileOGG: Seeking to sample's page failed\n"
+"FileOGG: Something wrong while trying to seek\n"
+"FileOGG: Taking page out on nonsynced stream!\n"
+"FileOGG: theora_decode_YUVout failed with code %i\n"
+"FileOGG: theora_encode_YUVin failed with code %i\n"
+"FileOGG: There is no more data in the file we are reading from\n"
+"FileOGG: WARNING: Encoding theora when width or height are not dividable by 16 is suboptimal\n"
+"file path: %s\n"
+"file path:%s\n"
+"File Size:"
+"FileSndFile::read_samples fd=%p temp_double=%p len="
+"FileVorbis::open_file %s: invalid bitstream.\n"
+"fill"
+"fill underrun frames"
+" Filter Active"
+"Find"
 "Find Object"
-"Algorithm:"
-"Search radius:\n(W/H Percent of image)"
-"Object size:\n(W/H Percent of image)"
-"Block X:"
-"Block Y:"
-"Object layer:"
-"Replacement object layer:"
-"Output/scene layer:"
-"Object blend amount:"
-"Camshift VMIN:"
-"Camshift VMAX:"
-"Camshift SMIN:"
-"Draw border"
-"Draw keypoints"
-"Replace object"
-"Draw object border"
-"Don't Calculate"
-"SURF"
-"CAMSHIFT"
-"Blob"
+" find timeline frame_id(%d) failed\n"
+"Fine:"
+"First frame in average:"
+"First reflection level:"
+"Fit autos to display ( Alt + f )"
+"Fit selection to display ( f )"
+"Fix bitrate"
+"Fixed bitrate"
+"Fixed offset: "
+"Fixed quality"
+"Fixed quantization"
+"Fix quantization"
+"FLAC"
 "Flash"
 "Flip"
+"Flipbook..."
+"Float"
+"Follow audio config"
+"Follow video config"
+"Font:"
+"Force single processor use"
+"Format:"
+"Format..."
+"Format Preset:"
+"Forward"
+"Fraction of original speed:"
+"Frame count:"
+"Frame forward ( 1 )"
+"Frame number:"
+"Frame rate:"
+"Framerate:"
+"Framerate"
+"Framerate achieved:"
+"Frame rate for recording:"
+"Frame reverse ( 4 )"
+"Frames"
+"Frames behind:"
+"Frames dropped:"
+"Frames per background rendering job:"
+"Frames per foot:"
+"Frames to accumulate:"
+"Frames to average"
+"Frames to buffer in device:"
 "Frames to fields"
-"Freeze"
-"Roomsize:"
-"Wet:"
-"Dry:"
+"Frames to loop:"
+"Frames to preroll background:"
+"Frames to record to disk at a time:"
 "Freeverb"
-"Enabled"
+"Freeze"
 "Freeze Frame"
+"Freq"
+"Freq: 0 Hz"
+"Freq: %d Hz"
+"Frequency:"
+"Frequency table:"
+"From"
+"-f = Run in the foreground as renderfarm client.  Substitute for -d.\n"
+"Fullscreen"
+"Gain: "
+"Gain:"
 "Gain"
-"Gamma"
-"Maximum:"
 "Gamma:"
-"Automatic"
-"Plot histogram"
-"Use Color Picker"
-"Shape:"
-"Rate:"
-"Inner radius:"
-"Outer radius:"
-"Angle:"
-"Center X:"
-"Center Y:"
-"Linear"
-"Radial"
-"Log"
-"Square"
-"Inner color:"
-"Outer color:"
-"Outer color"
+"Gamma"
+"Gamma B:"
+"Gamma G:"
+"Gang faders"
+"gang patch"
+"G_dx:"
+"G_dy:"
+"Generate keyframes while tweeking"
+"Generic MPEG-1"
+"Generic MPEG-2"
+"Get color"
+"G Field of View:"
+"Global Plugin Path"
+"GlyphUnit::process_package FT_Load_Char failed - char: %li.\n"
+"GlyphUnit::process_package FT_New_Face failed.\n"
 "Gradient"
-"EQ Graphic"
+"Grain"
+"Greater"
+"green"
+"-> Green"
+"Green:"
+"Green"
+"GreyCStoration"
+"G / U"
+"H:"
+"H.263"
+"H.264"
+"Half D-1 NTSC"
+"Half D-1 PAL"
+"Harmonic"
+"Header length:"
+"Height:"
+"Hello world"
+"-*-helvetica-bold-r-normal-*-14-*"
+"-*-helvetica-medium-r-normal-*-14-*"
+"Hex Samples"
+"Hide controls"
+"Hide keyframe type"
+"High color"
+"High Color"
+"Highlights"
+"Highpass"
+"Hi Lo"
+"Hi-Lo"
+"HiLo:"
 "Histogram"
-"Split output"
-"Input X:"
-"Input Y:"
-"Output min:"
-"Output Max:"
-"Interpolation:"
-"Split picture"
-"Polynominal"
-"Bezier"
+"History:"
+"History Size:"
 "HolographicTV"
-"HolographicTV from EffectTV\nCopyright (C) 2001 FUKUCHI Kentarou"
+"Horizontal"
+"Horizontal offset"
+"Horizontal only"
+"Hostname:"
+"Hostname"
+"Hours:Minutes:Seconds"
+"Hours:Minutes:Seconds:Frames"
+"Hours:Minutes:Seconds.xxx"
+"H Ratio:"
+"hue"
+"Hue:"
+"Hue"
 "Hue saturation"
-"X Offset:"
-"Y Offset:"
-"Interpolate Pixels"
+"Hue Tolerance:"
+"Id"
+"Idle"
+"I frame distance:"
+"II"
+"III"
+"IMA 4"
+"IMA-4"
+"IMA4 compression is only available in Quicktime movies."
+"In"
+"IndexFile::draw_index: index has 0 zoom\n"
+"Index files"
+"Index files go here:"
+"Index Path"
+"IndexState::write_index Couldn't write index file %s to disk.\n"
+"info"
+"Info..."
+"info:\n"
+"In H:"
+"Initializing GUI"
+"Initial signal level:"
+"Inkscape has exited\n"
+"Inner color:"
+"Inner color"
+"Inner radius:"
+"in point"
+"In point ( [ )"
+"Input:"
+"Input"
+"Input EDL"
+"Input frames per second:"
+"Input X:"
+"Input Y:"
+"insert assets"
+"Insert before beginning of track"
+"insert effect"
+"Insertion strategy:"
+"Insert nothing"
+"In Slope:"
+"Intensity"
+"Interface"
+"Interlace"
+"Interlaced"
+"Internal error; pattern array overflow\n"
+"Internal Ogg library error.\n"
+"Internet"
 "Interpolate"
+"Interpolate CR2 images"
+"Interpolate Pixels"
 "Interpolate Video"
-"Macroblock size:"
-"Use keyframes as input"
-"Use optic flow"
-"Draw motion vectors"
+"Interpolation:"
+"Interrupted"
+"Interrupt recording in progress?"
+"Inverse Telecine"
+"Inversion"
+"Invert"
+"Invert A"
 "Invert Audio"
-"Invert R"
-"Invert G"
 "Invert B"
-"Invert A"
+"Invert G"
+"Invert R"
+" Invert Selection"
 "Invert Video"
-"Invert"
+"In W:"
+"In X:"
+"In Y:"
 "IrisSquare"
-"A  B  BC  CD  D"
-"AB  BC  CD  DE  EF"
-"Inverse Telecine"
-"Pattern offset:"
-"Pattern:"
-"Automatic IVTC"
-"Sphere Stretch"
-"Sphere Shrink"
-"Rectilinear Stretch"
-"Rectilinear Shrink"
-"Stretch"
-"R Field of View:"
-"G Field of View:"
-"B Field of View:"
-"A Field of View:"
-"Lock"
-"Aspect Ratio:"
-"Draw center"
-"Lens"
-"Duration (seconds):"
-"Max soundlevel (dB):"
-"RMS soundlevel (dB):"
-"SoundLevel"
+"Italic"
+"  %jd bytes\n"
+"JPEG"
+"JPEGLIST"
+"JPEG Photo"
+"JPEG Sequence"
+"Jump to end ( End )"
+"Justify:"
+"Kbits per second:"
+"Keep bottom field"
+"Keep top field"
+"keyframe"
+"Keyframe force frequency:"
+"Keyframe frequency:"
+"Keyframe interval:"
+"Keyframe parameters:"
+"Keyframes"
+"Keyframes follow edits"
+"Key parameters:"
+"label"
+"Label"
+"Label cells"
+"Lanczos / Lanczos"
+"Last frame dropped: "
+"Last reflection level:"
+"Layer:"
+"Layer order:"
+"%ld samples"
+"Left"
+"Left justify"
+"Left to right"
+"length"
 "Length:"
-"Steps:"
+"Length"
+"Lens"
+"Less"
+"Level: "
+"Level:"
+"Level"
+"Level 0: 0"
+"Level 0: %.2f"
+"Level 1: 0"
+"Level 1: %.2f"
+": Levels"
+"License:"
+"License: %s"
+"Lift"
+"Light:"
+"Lighten"
+"Linear"
 "Linear Blur"
+"Lines:"
+"Live audio"
 "Live Audio"
 "Live Video"
-"Samples to loop:"
+"load"
+": Load"
+"Load..."
+"Load"
+"Load backup"
+"Load coords from /tmp"
+"Load files..."
+": Loading"
+"Loading..."
+"Loading %s"
+"Load multiple files by clicking on one file and shift + clicking on\nanother file.  Ctrl + clicking toggles individual files."
+"Load reverb"
+": Locate file"
+"lock"
+"Lock"
+"Lock parameters"
+"Log"
+"Lo Hi"
+"Lo-Hi"
+"LoHi:"
+"Look for file"
+"Look for global plugins here"
+"Look for personal plugins here"
+"Loop"
 "Loop audio"
-"Frames to loop:"
+"Loop Playback"
 "Loop video"
+"lost"
+"Low color"
+"Low Color"
+"Lowpass"
+"Luma contrast:"
+"Luminance only"
+"Macroblock size:"
+"Made with Cinelerra for Linux"
+"Magenta"
+"Make bezier"
+"make bezier curve"
+"Make linear"
+"make linear curve"
+"Make the highlighted\nclip active."
+"MAN"
+"map 1:1"
+"Map 1:1"
+"Map 5.1->2"
+"Map 5.1:2"
+" Mark Selected Areas"
+"Mary Egbert\nhad a little lamb."
+"mask"
+": Mask"
+"Mask"
+"mask adjust"
+"mask delete"
+"mask feather"
+"mask mode"
+"Mask number:"
+"mask point"
+" Mask Selection"
+"mask translate"
+"Mask tweaking:"
+"mask value"
+"Master layer:"
+"Match all"
+"match case"
+"Match frame rate"
+"match output size"
+"Match output size"
+"Match project size"
+"Max:"
+"Max"
+"Max bitrate:"
+"Max. Brightness:"
+"Max DB:"
+"Max duration of gap (Seconds):"
+"Maximum:"
+"Maximum"
+"Maximum absolute offset:"
+"Maximum angle offset:"
+"Maximum level:"
+"Maximum rate of change:"
+"Max Key Interval:"
+"Max Quantizer:"
+"Max soundlevel (dB):"
+"Media DB"
+"Messages::write_message"
+"Microsoft AVI"
+"Microsoft MPEG-4"
+"Microsoft WAV"
+"Mid"
+"Mid color"
+"Mid Color"
+"Midtones"
+"Min:"
+"Min"
+"Min B:"
+"Min bitrate:"
+"Min. Brightness:"
+"Min DB for meter:"
+"Min G:"
+"Min Quantizer:"
+"Min R:"
+"Min Saturation:"
+"Minutes:Seconds"
+"MJPA"
+"mode"
+"Mode:"
+"Mode"
+"mode_add"
+"mode_average"
+"mode_darken"
+"mode_divide"
+"mode_dst"
+"mode_dstatop"
+"mode_dstin"
+"mode_dstout"
+"mode_dstover"
+"mode_lighten"
+"mode_max"
+"mode_min"
+"mode_multiply"
+"mode_normal"
+"mode_or"
+"mode_replace"
+"mode_src"
+"mode_srcatop"
+"mode_srcin"
+"mode_srcout"
+"mode_srcover"
+"mode_subtract"
+"mode_xor"
+"Momentary notes"
+"Monitor audio"
+"Monitor video"
 "Motion"
-"Translation search radius:\n(W/H Percent of image)"
-"Rotation search radius:\n(Degrees)"
-"Translation block size:\n(W/H Percent of image)"
-"Translation search steps:"
-"Rotation search steps:"
-"Translation direction:"
-"Rotation center:"
-"Maximum angle offset:"
-"Rotation settling speed:"
-"Maximum absolute offset:"
-"Motion settling speed:"
-"Frame number:"
-"Master layer:"
-"Action:"
-"Calculation:"
-"Add (loaded) offset from tracked frame"
-"Track translation"
-"Track rotation"
-"Draw vectors"
-"Track single frame"
-"Track previous frame"
-"Previous frame same block"
-"Top"
-"Bottom"
-"Track Subpixel"
-"Track Pixel"
-"Stabilize Subpixel"
-"Stabilize Pixel"
-"Save coords to /tmp"
-"Load coords from /tmp"
-"Recalculate"
-"Horizontal only"
-"Vertical only"
-"Both"
 "Motion 2 Point"
-"Track Point 1"
-"Track Point 2"
-"Translation search offset:\n(X/Y Percent of image)"
-"Search steps:"
-"Search directions:"
-"Settling speed:"
-"Stabilize"
 "Motion Blur"
-"Rotation block size:\n(W/H Percent of image)"
-"Enter the DB to overload by:"
-"Treat tracks independantly"
-"Use intensity"
+"Motion JPEG A"
+"Motion settling speed:"
+"Motion type:"
+"Move down"
+"move edit"
+"move effect"
+"move effect down"
+"move effect up"
+"move track down"
+"move tracks down"
+"Move tracks down"
+"move tracks up"
+"Move tracks up"
+"move track up"
+"Move up"
+"MP3"
+"MPEG"
+"MPEG-1"
+"MPEG-2"
+"MPEG-4"
+"MPEG-4 Audio"
+"MPEG Audio"
+"MPEG stream"
+"MPEG Video"
+"ms before reflections:"
+"ms of reflections:"
+"multiple video tracks"
+"Multiply"
+"Multiply alpha"
+"(must be root)"
+"mute"
+"Mute"
+"***MUTE***\n"
+"mute patch"
+"Mute Region"
+"MWindow::init_plugins: can't create plugin index: %s\n"
+"MWindow::init_shm: /proc/sys/kernel/shmmax is 0x"
+"MWindow::init_theme: prefered theme %s not found.\n"
+"MWindow::init_theme: theme_plugin not found.\n"
+"MWindow::init_theme: trying default theme %s\n"
+"MWindow::init_theme: unable to load theme %s\n"
+"My"
+"Nearest Neighbor"
+"negfix values to apply:"
+"Nest sequence"
+"New..."
+"New"
+"New bin"
+"New camera size:"
+"New file"
+"new folder"
+": New folder"
+"New/Open SVG..."
+": New Project"
+"New projector size:"
+"News"
+"Next"
+"Next edit ( alt -> )"
+"Next label"
+"Next label ( ctrl -> )"
+"Next tip"
+"-n = Nice value if running as renderfarm client. (20)\n"
+"no "
+"No"
+"No content: %s"
+"No default transition %s found."
+"Nodes:"
+"No EDL/Session"
+"No effect"
+"No effect selected."
+"no file"
+"no info"
+"no info available"
+"Noise"
+"Noise scale:"
+"No motion"
+"None "
+"None"
+"No options for MPEG transport stream."
+"No output file specified."
+"No plugins available."
+"No processing defined for this plugin.\n"
+"No recordable tracks specified."
+"Norm:"
+"Normal"
+"Normal forward ( 3 )"
+": Normalize"
+"Normalize"
+"Normal reverse ( 6 )"
+"No selected range to process."
+"No space left on disk."
+"not asset"
+"\nsystem time: %s"
+"NTSC"
+"NTSC_BCAST"
+"NTSC_BCAST_JP"
+"NTSC_CABLE"
+"NTSC_CABLE_JP"
+"NTSC_DVB"
+"NTSC_HRC"
+"nudge"
+"Nudge"
+"Number of index files to keep:"
+"Number of reflections:"
+"Number of samples for reference:"
+"\nUsage:\n"
+"Object blend amount:"
+"Object layer:"
+"Object size:\n(W/H Percent of image)"
+"Odd"
+"Odd field first"
+"Odd lines"
+"Odd offset:"
+"OFF"
+"Offset: "
+"OGG Theora/Vorbis"
+"OGG Vorbis"
 "Oil painting"
 "Oil Painting"
-"Radius"
-"Use Intensity"
-"Bottom first"
-"Top first"
-"Layer order:"
+"Ok"
+"OK"
+"On"
+"ON"
+"On file open, ffmpeg probes early"
+"  only first audio stream will be used\n"
+"  only first video stream will be used\n"
+"Open"
+"Open an existing SVG file or create a new one"
+"== open failed\n"
+"Operation:"
+"Or"
+"Other Options:"
+"Other track as timefront"
+"Out"
+"Outer color:"
+"Outer color"
+"Outer radius:"
+"Out H:"
+"Outline:"
+"Outline color..."
+"out point"
+"Out point ( ] )"
+"Output"
+"Output channel:"
+"Output for background rendering:"
 "Output layer:"
-"Overlay"
-"Add"
-"Lowpass"
-"Highpass"
-"Bandpass"
-"Freq"
-"Qual"
-"Level"
-"Wetness:"
-"Window:"
-"EQ Parametric"
-"Current X:"
-"Perspective"
-"Sheer"
-"Perspective direction:"
-"Forward"
-"Reverse"
+"Output Max:"
+"Output min:"
+"Output path:"
+"Output/scene layer:"
 "Output size:"
+"Output to file"
+"Output track:"
+"Out Slope:"
+"Out W:"
+"Out X:"
+"Out Y:"
+"Overlay"
+"Overlay mode"
+": Overlays"
+"(overridden if new file at each label is checked)"
 "Override camera"
-"Use alpha/black level"
-"Auto Scale"
-"Pianoesizer"
-"Phase"
-"Harmonic"
-"Waveform"
-"Wave Function"
-"Base Frequency:"
-"DC"
-"Sine"
-"Sawtooth"
-"Triangle"
-"Pulse"
-"Noise"
-"Zero"
-"Maximum"
-"Slope"
-"Random"
-"Enumerate"
-"Even"
-"Odd"
-"Fibonnacci"
-"Prime"
+"overwrite"
+"Overwrite ( b )"
+"Overwrite project with output"
+"PAL"
+"PAL_AUSTRALIA"
+"PAL_E_EUROPE"
+"PAL_EUROPE"
+"PAL_IRELAND"
+"PAL_ITALY"
+"PAL_NEWZEALAND"
+"pan"
+"Pan"
+"Parameter"
+"Parameters for the new project:"
+"Pass 1 threshold:"
+"Pass 2 threshold:"
+"paste"
+"Paste"
+"Paste asset on recordable tracks"
+"paste assets"
+"Paste at insertion point"
+"paste default keyframe"
+"Paste default keyframe"
+"paste keyframes"
+"Paste keyframes"
+"Paste silence"
+"paste subttl"
+"Paste Transition"
+"Paste ( v )"
+": Path"
+"Path:"
+"Path"
+"Pattern:"
+"Pattern offset:"
+"Pause"
+"Peaks:"
+"Performance"
+"Permanently remove from disk?"
+"Personal Plugin Path"
+"Perspective"
+"Perspective direction:"
+"P frame distance:"
+"Phase:"
+"Phase"
+"Pianoesizer"
+"Pick"
+"Picture..."
+"PIN:"
+"Pinch"
+"Pitch:"
 "Pitch shift"
-"Depth:"
+"Pits"
+"Pivot (x,y):"
+"Play"
+"Play ( 3 )"
+"*Playback A"
+"Playback A"
+"*Playback B"
+"Playback B"
+"Playback buffer samples:"
+"Play every frame"
+"play patch"
+"Play track"
+"Plot histogram"
+"Plugin Autos"
+"Plugin %d"
+"Plugin keyframes"
+"Plugins:"
+"Plugin Set"
+"Plugin window has closed\n"
+"PNG"
+"PNG-Alpha"
+"PNG ALPHA"
+"PNG Sequence"
+"PNG with Alpha"
+"Point:"
+"Point 1:"
+"Point 2:"
 "Polar"
-"Depth"
-"Angle"
-"Automate"
+"Polynominal"
+"Popup"
+"Port:"
+"Port"
+"Position:"
+"Positioning:"
+"Poweroff"
+"poweroff imminent!!!\n"
+"poweroff system when batch record done."
+"poweroff system when batch record done"
+"poweroff when done"
+"pre-erode"
+": Preferences"
+"Preferences..."
+"Preload buffer for Quicktime:"
+"Presentation Timestamps"
+"Preserve luminosity"
+"Preserve shape aspect ratio"
+"Preset:"
+"Presets:"
+"Presets..."
+"Preset title:"
+"Press Alt to translate the mask"
+"Press Alt to translate the ruler."
+"Press Ctrl to lock ruler to the\nnearest 45%c angle."
+"Press Ctrl to move a point"
+"Pressing Alt while clicking in the cropping window causes translation of\nall 4 points.\n"
+"Pressing Tab over a track toggles the Record status.\nPressing Shift-Tab over a track toggles the Record status of all the other tracks.\n"
+"Press Shift to edit bezier curve"
+"Prev"
+"Preview recording"
+"Previous edit (alt <- )"
+"Previous frame same block"
+"Previous label"
+"Previous label ( ctrl <- )"
+"Previous tip"
+"Prev label:"
+"Prime"
+": Program"
+"Program"
+"  program stream\n"
+"Progress"
+"Progressive"
+"Progressive frames"
+"projector"
+": Projector"
+"Projector X"
+"Projector Y"
+"Projector Z"
+"Protect video from changes"
+"Pulse"
+"put_commercial: %s"
+"Qual"
+"Quality:"
+"Quantization:"
+"Quantization Quality (%):"
+"Quantizer:"
 "Quark"
-"Sharpness"
-"Interlace"
-"Luminance only"
+": Question"
+"quicktime_decode_audio failed\n"
+"Quicktime for Linux"
+"Quit"
+"Quit and paste into project."
+"Quit without pasting into project."
+"Radial"
 "Radial Blur"
+"RadioacTV"
+"Radius:"
+"Radius"
+"Random"
+"Rate:"
+"Raw DV"
+"Raw DV format does not support following audio configuration : %i channels at sample rate: %iHz\n"
+"Raw DV format does not support following resolution: %ix%i framerate: %f\nAllowed resolutions are 720x576 25fps (PAL) and 720x480 29.97fps (NTSC)\n"
+"Raw PCM"
+"-r = batch render the contents of the batch file (%s%s) with no GUI.  batch file is optional.\n"
+"RC Period:"
+"\r%d%% ETA: %s      "
+"R_dx:"
+"R_dy:"
+"Reaction Period:"
+"Reaction Ratio:"
+"Reaction secs:"
+"Really delete the following files?"
+"Realtime TOC"
+"Rebuild index"
+"Recalculate"
+"Receive"
+"recieve message failed\n"
+"record"
+": Record"
+"Record..."
+"Record audio tracks"
+"Record Driver:"
+": Recording"
+"Recording"
+"Recording in progress\n"
+"Record in realtime priority (root only)"
+"record patch"
+": Record path"
+"RecordTransport single frame"
+"Record video tracks"
+"Rectilinear Shrink"
+"Rectilinear Stretch"
+"red"
+"-> Red"
+"Red:"
+"Red"
+"Redo"
+"Redo %s"
+"Redo ( shift Z )"
+"Redraw all indexes for the current project?"
+"Redraw index"
+": Redraw Indexes"
+"Redraw Indexes"
+"Re-enable batches and restart?"
+"Reflective"
 "Reframe"
-"Scale factor:"
-"Scale by amount:"
 "ReframeRT"
+"Refresh"
+": RemoteWindow"
+"remove assets"
+": Remove assets"
+"Remove from disk"
+"Remove from project"
 "Remove Gaps"
+"remove plugin?"
+": Rename"
+"Rename bin"
+"Rename file"
+"render"
+": Render"
+"Render..."
+"Render audio tracks"
+": Render effect"
+"Render effect..."
+"Render Farm"
+"RenderFarmClient::main_loop: accept"
+"RenderFarmClient::main_loop: bind path %s: %s\n"
+"RenderFarmClient::main_loop: bind port %d: %s"
+"RenderFarmClient::main_loop: listen"
+"RenderFarmClient::main_loop: socket"
+"RenderFarmClientThread::run: Session finished.\n"
+"RenderFarmServerThread::open_client: %s: %s\n"
+"RenderFarmServerThread::open_client: unknown host %s.\n"
+"RenderFarmServerThread::run: unknown request %02x\n"
+"RenderFarmServerThread::start_loop: socket"
+"RenderFarmServerThread::start_loop: socket\n"
+"Rendering..."
+"Rendering %s..."
+"Rendering took %s"
+"Render video tracks"
+"Replace"
+"Replace current project"
+"Replace current project and concatenate tracks"
+"Replacement object layer:"
+"Replace object"
 "replace Target"
-"Components only"
-"Alpha replace"
-"Target track:"
-"Operation:"
+"Reprocess frame again"
 "Reroute"
+": Resample"
 "Resample"
 "ResampleRT"
+"Reset"
+"Reset camera"
+"Reseting file forking requires restarting cinelerra"
+"Reset projector"
+"Reset rates"
+"Reset translation"
+"Reset Translation"
+"Resize..."
+"Resize"
+"resize track"
+"Resize track..."
+": Resize Track"
+"Resize Tracks"
+"ResourcePixmap::draw_audio_source: failed to check out %s for drawing.\n"
+"Restart for every frame"
+"Restart marker system:"
 "Reverb"
-"Couldn't save %s."
-"Initial signal level:"
-"ms before reflections:"
-"First reflection level:"
-"Last reflection level:"
-"Number of reflections:"
-"ms of reflections:"
-"Start band for lowpass:"
-"End band for lowpass:"
-"Load..."
+"Reverse"
+"Reverse audio"
+"Reverse Play ( 6 )"
+"Reverse video"
+"Rewind batch and overwrite?"
+"Rewind ( Home )"
+"Rewind the current file and erase."
+"R Field of View:"
+"RGB"
+"RGB - 601"
+"RGB -> 601 compression"
+"RGBA compressed"
+"RGB-Alpha"
+"RGB ALPHA"
+"RGBA uncompressed"
+"RGB compressed"
+"RGB Parade off"
+"RGB Parade on"
+"RGBShift"
+"RGB uncompressed"
+"Right"
+"Right justify"
+"Right to left"
+"Rising Trigger"
+"RMS soundlevel (dB):"
+"Roomsize:"
+"Rotate"
+"Rotation block size:\n(W/H Percent of image)"
+"Rotation center:"
+"Rotation search radius:\n(Degrees)"
+"Rotation search steps:"
+"Rotation settling speed:"
+": Ruler"
+"Ruler"
+"Running"
+"Running command %s\n"
+"Running external SVG editor: %s\n"
+"R / Y"
+": %s"
+"%s..."
+"Sample: 0"
+"Sample: %d"
+"Sample Position"
+"Sample rate:"
+"Samplerate:"
+"Sample rate for recording:"
+"Samples"
+"Samples read from device:"
+"Samples to loop:"
+"Samples to write to disk:"
+"sample zoom"
+"saturation"
+"Saturation:"
+"Saturation"
+"Saturation Offset:"
+": Save"
 "Save..."
-"Set default"
+"Save"
+"Save as..."
+"Save backup"
+"Save coords to /tmp"
+"Saved backup."
+"Saved presets:"
+"Saved settings."
+"Save edit list before exiting?"
 "Save reverb"
-"Select the reverb file to save as"
-"Load reverb"
-"Select the reverb file to load from"
-"Reverse audio"
-"Reverse video"
-"RGB - 601"
-"RGB -> 601 compression"
-"601 -> RGB expansion"
-"R_dx:"
-"R_dy:"
-"G_dx:"
-"G_dy:"
-"B_dx:"
-"B_dy:"
-"RGBShift"
-"Draw pivot"
-"Rotate"
-"Degrees"
-"Pivot (x,y):"
+"Save settings now"
+"Save the recording and quit."
+"Save to EDL Path"
+"Sawtooth"
+": Scale"
+"Scale:"
 "Scale"
-"White to Black"
-"Black to White"
-"Anti-aliasing"
-"Preserve shape aspect ratio"
+"Scale by amount:"
+"Scale data"
+"Scale factor:"
+"Scaling equation: Enlarge / Reduce "
+"Scan"
+"scan: clip%d %f-%f"
+"Scan for commercials during toc build"
+"Scanning"
+"** %scarrier, dvb_locked %s\n"
+"%s: -c needs a filename.\n"
+"Scratch"
+"\"%s\" %dC written"
+"S.D. Thres."
+"Search"
+"Search directions:"
+"search event titles/info"
+"Search radius:"
+"Search radius:\n(W/H Percent of image)"
+"Search steps:"
+"Sec"
+"SECAM"
+"Seconds:"
+"Seconds"
+"Seconds to preroll renders:"
+"Seek to end of recording"
+"Select"
+"Select a file"
+"Select a file for this asset:"
+"Select a file to record to:"
+"Select a file to render to:"
+"Select a file to write to:"
+"Select All"
+"Select an EDL to load:"
+"Select an effect"
+"Select a region to crop in the video output window"
+"select asset"
+"Select deinterlacing mode"
+"Select files to load:"
+"Selective Temporal Averaging: "
+"Selective Temporal Averaging"
+"Select lines to keep"
+"Select the directory for index files"
+"Select the directory for plugins"
+"Select the first file to render to:"
+"Select the range to transfer:"
+"Select the reverb file to load from"
+"Select the reverb file to save as"
+"Select transition from list"
+"Send"
+"send message failed\n"
+"Sequence start codes in every GOP"
+"%s  err: %s\n"
+"Server:"
+"%s ETA: %s"
+"Set background render"
+"set bezier"
+"Set default"
+": Set edit title"
+"Set ffmpeg file type"
+"set format"
+": Set Format"
+"set linear"
+"Set parameters for channel scanning."
+"Set parameters for this audio format:"
+"Set parameters for this video format:"
+"Set presentation up to current position"
+"Settings"
+"Settings->typeless keyframes allows keyframes from any track to be pasted on either\naudio or video tracks.\n"
+"Settling speed:"
+"Set transition"
+"Set up effect panel and hit \"OK\""
+"%s [-f] [-c configuration] [-d port] [-n nice] [-r batch file] [filenames]\n\n"
+"'s format couldn't be determined."
+"sf_seek() to sample %jd failed, reason: %s\n"
+"Shadows"
+"Shape:"
 "Shape Wipe"
+"Shape Wipe: cannot load shape %s\n"
+"Shared effects:"
+"Shared tracks:"
 "Sharpen"
-"Odd offset:"
-"Even offset:"
+"Sharpness:"
+"Sharpness"
+"Sheer"
+"Shift-B"
+"Shift-C"
+"Shift + clicking a patch causes all other patches except the\nselected one to toggle."
+"Shift + clicking on an effect boundary causes dragging to affect\njust the one effect."
+"Shift-click on a curve keyframe to snap it to the neighboring values."
+"Shift-D"
+"Shift-Del"
+"Shift-F"
 "ShiftInterlace"
-"Left"
-"Right"
+"Shift+L"
+"Shift-M"
+"Shift+P"
+"Shift+R"
+"Shift-S"
+"Shift+Space"
+"Shift-T"
+"Shift-U"
+"Shift-V"
+"Shift-X"
+"Shift-Y"
+"Shift+Z"
+"Show"
+"Show assets"
+"Show Compositor"
+"Show controls"
+"Show grayscale (for tuning"
+"Show Levels"
+"Show Mask"
+"Show meters"
+"Show Overlays"
+"Show Resources"
+"Show safe regions"
+"Show tip of the day."
+"Show tip of the day"
+"Show titles"
+"Show tool info"
+"Show transitions"
+"Show Viewer"
+"shuffle edits"
+"Shuffle Edits"
+"Signed"
+"silence"
+"Sine"
+"Size:"
+"Size"
+"Size of captured frame:"
+"Size of index file:"
+"size: %s"
+"Sizes of master track and timefront track do not match\n"
+": %s Keyframe"
 "Slide"
-"Freq: 0 Hz"
+"Slope:"
+"Slope"
+"Slow Shuttle"
+"Smear"
+"Smooth only"
+"Software timing"
+"%s: opengl initialization failed failed\n"
+"Sort"
+"Sort items"
+"Sort nodes"
+"SoundLevel"
+"Source:"
+"Source"
+"Spatial field swap"
 "Spectrogram"
-"SVG via Inkscape"
-"Running command %s\n"
-"Export of %s to %s failed\n"
-"The file %s that was generated from %s is not in PNG format. Try to delete all *.png files.\n"
-"Access mmap to %s as %s failed.\n"
-"Out X:"
-"Out Y:"
-"New/Open SVG..."
-"Inkscape has exited\n"
-"Plugin window has closed\n"
-"Running external SVG editor: %s\n"
-"External SVG editor finished\n"
+"Speed:"
+"Speed"
+"Sphere Shrink"
+"Sphere Stretch"
+"Spill Compensation:"
+"Spill light control:"
+"Spill Threshold:"
+"splice"
+"Splice ( v )"
+"Split output"
+"Split picture"
+"Split X pane"
+"Split Y pane"
+": %s Presets"
+"Square"
+"Src"
+"SrcAtop"
+"SrcIn"
+"SrcOut"
+"SrcOver"
+"%s's index was built for program number %d\nPlayback preference is %d.\n  Using program %d."
+"%s's resolution is %dx%d.\nImages with odd dimensions may not decode properly."
+"Stabilize"
+"Stabilize Pixel"
+"Stabilize Subpixel"
+"Stamp timecode"
+"Standard Deviation"
+"standard SVCD"
+"standard VCD"
+"Start:"
+"Start"
+"Start band for lowpass:"
+"Start batch recording\nfrom the current position."
+"Start Cron"
+"Starting render farm"
+"start over"
+"Start over"
+"Start Over"
+"Start recording\nfrom current position"
+"Start time:"
+"Start time"
+"start time late: %s\n"
+"Start track is out of range."
+"Steps:"
+"%s took %s"
+"Stop"
+"Stop ( 0 )"
+"Stop operation"
+"Stopped"
+"Stop playback locks up."
+"stream %d,  id 0x%06x:\n"
+"Stretch"
+"%s: trying attributes None\n"
+"%s: trying fallback 1\n"
+"%s: trying fallback 2\n"
+"%s: trying single buffering\n"
+"Style:"
+"Submit the directory"
+"Submit the file"
+": Subtitle"
+"SubTitle"
+"Subtract"
+"Subtract alpha"
+"Subttl %d"
+"Suggestion: Proper frame rate for NTSC DV is 29.97 fps, not 30 fps\n"
+"sunmontuewedthufrisat"
+"Sun/NeXT AU"
+"SURF"
+"SVCD Still sequence"
 "SVG Plugin: Pick SVG file"
-"Open an existing SVG file or create a new one"
-"Swap channels"
-"-> Red"
-"-> Green"
-"-> Blue"
-"-> Alpha"
-"0%"
-"100%"
+"SVG via Inkscape"
 "Swap 0-1, 2-3, 4-5..."
 "Swap 1-2, 3-4, 5-6..."
+"Swap channels"
+"Swap dimensions"
+"Swap even fields"
+"Swap fields"
 "Swap Frames"
+"Swap odd fields"
+"Sync drives automatically"
 "Synthesizer"
-"Momentary notes"
-"Ctrl or Shift to select multiple notes."
-"Low Color"
-"Mid Color"
-"High Color"
-"Low color"
-"Mid color"
-"High color"
-"Min:"
-"Max:"
+"Syt Offset:"
+"Target track:"
+"Temporal field swap"
+"Text:"
+"TEXT"
+"Texts:"
+"TGA"
+"TGA Sequence"
+"The file %s that was generated from %s is not in PNG format. Try to delete all *.png files.\n"
+"The following errors occurred:"
+"The following files exist:\n"
+"The following files exist.  Overwrite them?"
+"The format you selected doesn't support audio."
+"The format you selected doesn't support video."
+"The keyframe is the start of the reference"
+"Theme:"
+"Theme::get_image: %s not found.\n"
+"There are no audio options for this format"
+"There are no video options for this format"
+"The %s '%s' in file '%s' is not part of your installation of Cinelerra.\nThe project won't be rendered as it was meant and Cinelerra might crash.\n"
+"The Vorbis encoder could not set up a mode according to\nthe requested quality or bitrate.\n\n"
+"This format doesn't support audio."
+"This format doesn't support video."
+"This Frame is a start of a section"
+"This program is free software; you can redistribute it and/or modify it under the terms\nof the GNU General Public License as published by the Free Software Foundation; either version\n2 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;\nwithout even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\nPURPOSE.  See the GNU General Public License for more details.\n\n"
+"This project's dimensions are not multiples of 4 so\nit can't be rendered by OpenGL."
+"\thistory_start: "
+"This track's dimensions are not multiples of 4 so\nit can't be rendered by OpenGL."
+"Threshold:"
+"Threshold"
+"Threshold of gap (DB):"
+"ticon"
+"TIFF"
+"TIFF Sequence"
+"Tile left"
+"Tile right"
 "Time Average"
-"Frame count:"
-"Border:"
-"Accumulate"
-"Greater"
-"Less"
-"Restart for every frame"
-"Don't buffer frames"
-"Type:"
-"Time range:"
-"As timefront use:"
-"Other track as timefront"
-"Alpha as timefront"
-"Intensity"
-"Alpha mask"
-"Inversion"
-"Show grayscale (for tuning"
+"Timed"
+"Time Format"
 "TimeFront"
-"Use fast fourier transform"
-"Use overlapping windows"
-"Fraction of original speed:"
+"TimeFront plugin error: ALPHA track used, but project color model does not have alpha\n"
+"TimeFront plugin error: ALPHA used, but project color model does not have alpha\n"
+"TimeFront plugin error: unsupported track_usage parameter\n"
+"Time range:"
+": Time stretch"
 "Time stretch"
-"Window size (ms):"
 "Time Stretch RT"
-"GlyphUnit::process_package FT_New_Face failed.\n"
-"GlyphUnit::process_package FT_Load_Char failed - char: %li.\n"
+": Tip of the day"
+"Title:"
+"Title"
 "TitleMain::load_freetype_face %s failed.\n"
-"No motion"
-"Bottom to top"
+"title path:\n"
+"titles"
+"Titles"
+"tmp path:"
+"\tnext_sample_position: "
+"To"
+"To clip ( i )"
+"toc path:%s\n"
+"TOC Program No:"
+"toc scan stopped before eof"
+"Toggle label at current position ( l )"
+"Top"
+"Top field first"
+"Top first"
+"Top justify"
 "Top to bottom"
-"Right to left"
-"Left to right"
-"Font:"
-"Pitch:"
-"Style:"
-"Justify:"
-"Motion type:"
-"Drop shadow:"
-"Fade in (sec):"
-"Fade out (sec):"
-"Speed:"
-"Outline:"
-"Encoding:"
-"Text:"
-"Bold"
-"Italic"
-"Outline color..."
-"Stamp timecode"
-"Center"
-"Mid"
+"Total"
+"Total jobs to create:"
+"Track"
+"Track Pixel"
+"Track Point 1"
+"Track Point 2"
+"Track previous frame"
+"Track rotation"
+"Tracks:"
+"Tracks"
+"Track single frame"
+"Track Subpixel"
+"track title"
+"Track translation"
+"track zoom"
+"transition"
+"Transition"
+"transition length"
+": Transition length"
+"Transition Length..."
+"Transitions"
 "Translate"
-"In X:"
-"In Y:"
-"In W:"
-"In H:"
-"Out W:"
-"Out H:"
+"Translation block size:\n(W/H Percent of image)"
+"Translation direction:"
+"Translation search offset:\n(X/Y Percent of image)"
+"Translation search radius:\n(W/H Percent of image)"
+"Translation search steps:"
+"Transport:"
+"  transport stream\n"
+"trap sigINT"
+"trap sigSEGV"
+"Treat tracks independantly"
+"Triangle"
+"Trigger:"
+"Trigger"
+"Trigger level:"
+"Trigger Type:"
+"trim selection"
+"Trim Selection"
+"trk%d edt%d asset %s"
+"tweek"
+"twolame error encoding audio: %d\n"
+"Twos complement"
+"Type:"
+"Typeless keyframes"
+"U:"
+"U_dx:"
+"U_dy:"
+"u Law"
+"U-Law"
+"ULAW compression is only available in\nQuicktime Movies and PCM files."
+"Unable to create directory: %s\n-- %s"
+"Unable to read from audio buffer file\n"
+"Unable to save: %s"
+"Unable to save: %s\n-- %s"
+"Unable to seek file to %ji"
+"Unable to seek file to %ji\n"
+"Unable to set audio write position to %ji\n"
+"Unable to store sample"
+"Unable to write audio to audio buffer\n"
+"Unable to write video data to video buffer"
+"(uncheck for faster rendering)"
+"Uncompressed RGB"
+"Uncompressed RGBA"
+"Undo"
+"Undo %s"
+"Undo ( z )"
+"Unknown"
+"UNKNOWN"
+"Unknown colormodel in BluebananaA2Sel:update()\n"
+"unknown driver %d\n"
+"Unknown sound"
+"***UNMUTE***\n"
 "Unsharp"
-"Amount:"
+"Unsigned"
+"Unsupported aspect ratio %f\n"
+"Unsupported frame rate %f\n"
+"Untimed"
+"Untitled"
+"Up a directory"
+"Use alpha"
+"Use alpha/black level"
+"Use background rendering"
+"Use color picker"
+"Use Color Picker"
+"Use Current EDL"
+"Use fast fourier transform"
+"Use FFMPEG"
+"Use fixed scale"
+"Use fixed size"
+"Use intensity"
+"Use Intensity"
+"Use keyframes as input"
+"Use Method:"
+"Use optic flow"
+"Use overlapping windows"
+"User Defined"
+"Use render farm"
+"user SVCD"
+"User title..."
+"User title"
+"user VCD"
+"Use software for positioning information"
+"Use the +/- keys in the Compositor window to zoom in and out.\n"
+"Use thumbnails in resource window"
+"Use value"
+"Use Value"
+"Use virtual filesystem"
+"Using %s"
+"V:"
+"value"
+"Value:"
+"Value"
+"Values are signed"
+"Values are unsigned"
+"Variable bitrate"
+"VCD Still sequence"
+"VDeviceLML::read_buffer: driver crash\n"
+"VDeviceLML::read_buffer: reopened\n"
+"  v%d %s %dx%d"
+"V_dx:"
+"V_dy:"
+"Vertical"
+"Vertical offset"
+"Vertical only"
+"Video:"
+"Video"
+"Video compression:"
+": Video Compression"
+"Video %d"
+"Video Driver:"
+": Video in"
+"Video In"
+": Video in %d%%"
+"Video is not supported in this format."
+"Video Options:"
+": Video out"
+"Video Out"
+": Video Preset"
 "VideoScope"
-"Carrier Track:"
+"  video stream\n"
+"View"
+"View asset"
+": Viewer"
+"Viewer"
+"View follows playback"
+"View in new window"
+"View scope"
 "Vocoder"
-"Smear"
-"Blacken"
-"Reflective"
-"Amplitude:"
-"Phase:"
-"Wavelength:"
+"Vorbis"
+"W:"
+": Warning"
 "Wave"
-"Pinch"
+"Waveform"
+"Wave Function"
+"Wavelength:"
+"Welcome to Cinelerra."
+"Wet:"
+"Wetness:"
+"When configuring slow effects, disable playback for the track.  After configuring it,\nre-enable playback to process a single frame."
+"Where is %s?"
 "Whirl"
+"White balance"
+"White balance CR2 images"
+"Whiteness:"
+"White to Black"
+"Width:"
+"Window:"
+"Window"
+"Windowed"
+"Window size:"
+"Window Size:"
+"Window size (ms):"
 "Wipe"
-"U:"
-"V:"
-"YUV"
+"Won't overwrite existing files.\n"
+"W Ratio:"
+"Write extra frames when behind."
+"write failed: %m"
+"write_frame: incomplete frame received.\n"
+"x"
+"X:"
+"X1:"
+"X Magnification:"
+"X Offset:"
+"Xor"
+"XY Mode"
+"X Zoom:"
+"Y:"
+"Y1:"
+"Yay, we have an ogg file\n"
 "Y_dx:"
 "Y_dy:"
-"U_dx:"
-"U_dy:"
-"V_dx:"
-"V_dy:"
-"YUVShift"
-"X Magnification:"
+"Yellow"
+"Yes"
 "Y Magnification:"
+"Y Offset:"
+"YouTube"
+"YUV"
+"YUV 4:1:1 Packed"
+"YUV 4:2:0"
+"YUV420"
+"YUV 4:2:0 Planar"
+"YUV 4:2:2"
+"YUV422"
+"YUVShift"
+"Z:"
+"Zero"
+"zero duration: %s\n"
 "Zoom"
+"Zoom 100%"
+"Zoom 150%"
+"Zoom 200%"
+"Zoom 25%"
+"Zoom 300%"
+"Zoom 33%"
+"Zoom 400%"
+"Zoom 50%"
+"Zoom 75%"
+"Zoom Auto"
 "Zoom Blur"
+"Zoom view"
diff --git a/cinelerra-5.0/po/txt/cin2.dif b/cinelerra-5.0/po/txt/cin2.dif
new file mode 100644 (file)
index 0000000..b51e672
--- /dev/null
@@ -0,0 +1,495 @@
+> " "
+> ": "
+> "%0.01f pixels"
+> " (%0.3f secs)"
+> "(%3.3s) "
+> "  %3d.  %8.3f"
+> " (%5.2f), %ld frames"
+> "Access time"
+> "activate batch record when ok pressed"
+> " a%d %s"
+> "ad: trk %d@%s  "
+> "Already rendering"
+> "Alt-c"
+> "Alt-Del"
+> "Alt-v"
+> "Alt-X"
+> "Alt-y"
+> "ampeg_derivative=%d\n"
+> "Amplitude: 0 dB"
+> "Amplitude: %.2f dB"
+> "Android Remote Control"
+> "Anisotropy:"
+> "( Answering \"No\" will destroy changes )"
+> "Append in new tracks"
+> "Aspect 16x9"
+> "Asset Detail"
+> ": Asset Info"
+> ": Asset path"
+> "Assets"
+> ": Attach Effect"
+> "Audio 5.1"
+> ": Audio compression"
+> ": Audio Compression"
+> "Audio Options:"
+> ": Audio Preset"
+> "  audio stream\n"
+> "Average bottom fields"
+> "bad scan date: %s\n"
+> "bad scan time: %s\n"
+> "bad title: %s\n"
+> ": Batch Render"
+> "BC_DisplayInfo::init_window: cannot connect to X server.\n"
+> "BC_DisplayInfo::init_window: cannot open display \"%s\".\n"
+> "BC_WindowBase::~BC_WindowBase window deleted but opengl deletion is not\nimplemented for BC_Pixmap.\n"
+> "BiCubic / BiCubic"
+> "BiCubic / BiLinear"
+> "BiLinear / BiLinear"
+> "Blue:"
+> "Blue Banana"
+> "Bluebanana: Unable to create Frame for slider\n"
+> "-b may not be used by the user.\n"
+> "buffer=%p\n"
+> ": Camera"
+> "cannot open dvb video device\n"
+> "cannot open: \"%s\"\n%s"
+> "cant access commercials database"
+> "cant init toc index\n"
+> "cant vfork poweroff process"
+> "capture driver not dvb\n"
+> ": CD Ripper"
+> "cell times:"
+> ": Change Effect"
+> "Changing the base codecs may require rebuilding indecies."
+> ": Channel Info"
+> ": ChanSearch"
+> "Chapters at Labels"
+> " ch%d (%d)"
+> "Cinelerra: Attach Effect"
+> "Cinelerra: Audio compression"
+> "Cinelerra: Audio Compression"
+> "Cinelerra: Camera"
+> "Cinelerra: CD Ripper"
+> "Cinelerra: Change Effect"
+> "Cinelerra: Channel Info"
+> "Cinelerra: ChanSearch"
+> "Cinelerra: Clip Info"
+> "Cinelerra: Color"
+> "Cinelerra: Compositor"
+> "Cinelerra: Confirm"
+> "Cinelerra: Confirm Quit"
+> "Cinelerra: Crop"
+> "Cinelerra: DbWindow"
+> "Cinelerra: Delete All Indexes"
+> "Cinelerra: Edit length"
+> "Cinelerra: Error"
+> "Cinelerra: Errors"
+> "Cinelerra: File Exists"
+> "Cinelerra: File Format"
+> "Cinelerra: Levels"
+> "Cinelerra: Load"
+> "Cinelerra: Loading"
+> "Cinelerra: Locate file"
+> "Cinelerra: Mask"
+> "Cinelerra: New folder"
+> "Cinelerra: Normalize"
+> "Cinelerra: Overlays"
+> "Cinelerra: Path"
+> "Cinelerra: Preferences"
+> "Cinelerra: Program"
+> "Cinelerra: Projector"
+> "Cinelerra: Question"
+> "Cinelerra: RemoteWindow"
+> "Cinelerra: Remove assets"
+> "Cinelerra: Resample"
+> "Cinelerra: Resize Track"
+> "Cinelerra: Ruler"
+> "Cinelerra: %s"
+> "Cinelerra: Save"
+> "Cinelerra: Set edit title"
+> "Cinelerra: Set Format"
+> "Cinelerra: %s Keyframe"
+> "Cinelerra: Subtitle"
+> "Cinelerra: Time stretch"
+> "Cinelerra: Tip of the day"
+> "Cinelerra: Transition length"
+> "Cinelerra: Video Compression"
+> "Cinelerra: Viewer"
+> "Cinelerra: Warning"
+> ": Clip Info"
+> "  codec_type unknown\n"
+> ": Color"
+> ": Compositor"
+> "Concatenate to existing tracks"
+> ": Confirm"
+> ": Confirm Quit"
+> "Contributors:"
+> ": Could not set locale.\n"
+> "Couldn't open %s: invalid table of contents version.\nRebuilding the table of contents."
+> "Couldn't open %s: rebuild failed.\n"
+> "Couldn't open %s: table of contents corrupt.\nRebuilding the table of contents."
+> "Couldn't open %s: table of contents out of date.\nRebuilding the table of contents."
+> "count"
+> "Create bezier"
+> ": Create DVD"
+> "Create new resources only"
+> "Creating %s\n"
+> ": Crop"
+> "crosses edits"
+> "Ctrl+1"
+> "Ctrl+2"
+> "Ctrl+d"
+> "Current:"
+> "current program %d = title %d, angle %d, interleave %d\n\n"
+> "Custom"
+> "cut clip %d in edit @%f %f-%f, clip @%f-%f\n"
+> "cut %f/%f = %d\n"
+> "cuts to %s complete\n"
+> "Cutting Ads"
+> "date: %s\n"
+> "%d audio tracks\n"
+> "db failed"
+> "dbl clk row to find title"
+> ": DbWindow"
+> "default"
+> "Del"
+> ": Delete All Indexes"
+> "DeviceMPEGInput::get_channeldb::element %d (id %d.%d) has %d/%d video/audio streams\n"
+> "DeviceV4L2Base::v4l2_open  attempting format %4.4s\n"
+> "DeviceV4L2Base::v4l2_open  config geom %dx%d != %dx%d best_geom\n"
+> "DeviceV4L2Base::v4l2_open jpeg driver and best_format not mjpeg (%4.4s)\n"
+> "DeviceV4L2Base::v4l2_open mpeg driver and best_format not mpeg (%4.4s)\n"
+> "%d found"
+> "%d interleaves\n"
+> "disk space: "
+> "Distance:"
+> "Don't show this warning again."
+> "%d subtitles\n"
+> "%d title sets, "
+> "%d video tracks\n"
+> "DV in Quicktime container does not support following resolution: %ix%i\nAllowed resolutions are 720x576 (PAL) and 720x480 (NTSC)\n"
+> ": Edit length"
+> "EDL"
+> ": Effect Prompt"
+> "Elapsed"
+> "elements %d\n"
+> "end before start: %s\n"
+> "end channel info, start record"
+> " End Mask"
+> "end setup, start batch render"
+> "end time early: %s\n"
+> "Entries:"
+> ": Error"
+> "Error decoding audio frame %d\n"
+> ": Errors"
+> "ERROR: TimeFront plugin - If you are using another track for timefront, you have to have it under shared effects\n"
+> "ERROR: Unable to allocate memory for audio_sample_buffer channel %d\n"
+> "ERROR: Unable to allocate memory for audio_sample_buffer.\n"
+> "ERROR: unable to encode audio frame %d\n"
+> "ERROR: Unable to reallocate memory for audio_sample_buffer channel %d\n"
+> "ERROR: Unable to relocate for audio write to %ji\n"
+> "Error while creating fifo file"
+> "Error while opening file \"%s\". \n%m\n"
+> "Error while opening \"%s\" for reading. \n%m\n"
+> "Error while opening \"%s\" for writing. \n%m\n"
+> "Error while opening \"%s\" for writing\n%m\n"
+> "error writing audio page\n"
+> "error writing video page\n"
+> " err: %s\n"
+> "execvp poweroff failed"
+> "failed delete clip id %d\n"
+> "Falling Trigger"
+> ": Feather Edits"
+> "Feather Edits..."
+> "FFMpeg early probe"
+> "FFMPEG::get_encoder: err: format/codec not found %s\n"
+> "ffmpeg probe warns rebuild indecies"
+> "FFMPEG::read_options: err reading %s: line %d\n"
+> "File Capture"
+> ": File Exists"
+> ": File format"
+> ": File Format"
+> "FileOGG: Broken ogg file - broken page: ogg_page_packets == 0 and granulepos != -1\n"
+> "FileOGG: Cannot find next page while looking for first non-header packet\n"
+> "FileOGG: Cannot find next page while seeking\n"
+> "FileOGG: Cannot find next page while trying to decode more samples\n"
+> "FileOGG: End of file while searching for codec headers.\n"
+> "FileOGG: Error at finding out what to read from file\n"
+> "FileOGG: Error parsing Theora stream headers; corrupt stream?\n"
+> "FileOGG: Error parsing Vorbis stream headers; corrupt stream?\n"
+> "FileOGG:: Error while seeking to frame's keyframe (frame: "
+> "FileOGG:: Error while seeking to keyframe, wrong keyframe number (frame: "
+> "FileOGG: Expecting keyframe, but didn't get it\n"
+> "FileOGG:: History not aligned properly \n"
+> "FileOGG: Illegal seek beyond end of frames\n"
+> "FileOGG: Illegal seek beyond end of samples\n"
+> "FileOGG: initialization of theora codec failed\n"
+> "FileOGG: ogg_sync_and_get_next_page failed\n"
+> "FileOGG: Seeking to frame failed\n"
+> "FileOGG: Seeking to keyframe failed\n"
+> "FileOGG: Seeking to sample's page failed\n"
+> "FileOGG: Something wrong while trying to seek\n"
+> "FileOGG: Taking page out on nonsynced stream!\n"
+> "FileOGG: theora_decode_YUVout failed with code %i\n"
+> "FileOGG: theora_encode_YUVin failed with code %i\n"
+> "FileOGG: There is no more data in the file we are reading from\n"
+> "FileOGG: WARNING: Encoding theora when width or height are not dividable by 16 is suboptimal\n"
+> "file path: %s\n"
+> "file path:%s\n"
+> "File Size:"
+> "FileSndFile::read_samples fd=%p temp_double=%p len="
+> "Find"
+> " find timeline frame_id(%d) failed\n"
+> "Freq: %d Hz"
+> "Frequency:"
+> "Green:"
+> "GreyCStoration"
+> "Highlights"
+> "Id"
+> "info"
+> "info:\n"
+> "Insert nothing"
+> "Internal error; pattern array overflow\n"
+> "Internal Ogg library error.\n"
+> "Interrupted"
+> "  %jd bytes\n"
+> "Lanczos / Lanczos"
+> "%ld samples"
+> "length"
+> "Level 0: %.2f"
+> "Level 1: %.2f"
+> ": Levels"
+> "License:"
+> "Lines:"
+> "Live audio"
+> ": Load"
+> "Load"
+> ": Loading"
+> "Loading %s"
+> ": Locate file"
+> "lock"
+> "lost"
+> "MAN"
+> ": Mask"
+> "match case"
+> "Max duration of gap (Seconds):"
+> "Media DB"
+> "Midtones"
+> "mode_add"
+> "mode_average"
+> "mode_darken"
+> "mode_divide"
+> "mode_dst"
+> "mode_dstatop"
+> "mode_dstin"
+> "mode_dstout"
+> "mode_dstover"
+> "mode_lighten"
+> "mode_max"
+> "mode_min"
+> "mode_multiply"
+> "mode_normal"
+> "mode_or"
+> "mode_replace"
+> "mode_src"
+> "mode_srcatop"
+> "mode_srcin"
+> "mode_srcout"
+> "mode_srcover"
+> "mode_subtract"
+> "mode_xor"
+> "multiple video tracks"
+> "***MUTE***\n"
+> "MWindow::init_plugins: can't create plugin index: %s\n"
+> "MWindow::init_shm: /proc/sys/kernel/shmmax is 0x"
+> "MWindow::init_theme: prefered theme %s not found.\n"
+> "MWindow::init_theme: theme_plugin not found.\n"
+> "MWindow::init_theme: trying default theme %s\n"
+> "MWindow::init_theme: unable to load theme %s\n"
+> "My"
+> "Nearest Neighbor"
+> "Nest sequence"
+> "Next"
+> "no "
+> "No content: %s"
+> "No EDL/Session"
+> "no file"
+> "no info"
+> "no info available"
+> "Noise scale:"
+> ": Normalize"
+> "not asset"
+> "\nsystem time: %s"
+> "OFF"
+> "ON"
+> "On file open, ffmpeg probes early"
+> "  only first audio stream will be used\n"
+> "  only first video stream will be used\n"
+> "== open failed\n"
+> "Output track:"
+> "Overlay mode"
+> ": Overlays"
+> "Parameter"
+> "Paste at insertion point"
+> "Paste Transition"
+> ": Path"
+> "PIN:"
+> "Plugin Autos"
+> "Point 1:"
+> "Point 2:"
+> "Popup"
+> "poweroff imminent!!!\n"
+> "poweroff system when batch record done"
+> ": Preferences"
+> "Preset:"
+> "Prev"
+> ": Program"
+> "Program"
+> "  program stream\n"
+> "Progress"
+> ": Projector"
+> "put_commercial: %s"
+> ": Question"
+> "quicktime_decode_audio failed\n"
+> "Raw DV format does not support following audio configuration : %i channels at sample rate: %iHz\n"
+> "Raw DV format does not support following resolution: %ix%i framerate: %f\nAllowed resolutions are 720x576 25fps (PAL) and 720x480 29.97fps (NTSC)\n"
+> "\r%d%% ETA: %s      "
+> ": Record"
+> ": Recording"
+> "Recording in progress\n"
+> ": Record path"
+> "Red:"
+> ": Redraw Indexes"
+> "Re-enable batches and restart?"
+> ": RemoteWindow"
+> ": Remove assets"
+> ": Render"
+> ": Render effect"
+> "Replace current project"
+> "Replace current project and concatenate tracks"
+> ": Resample"
+> "Reseting file forking requires restarting cinelerra"
+> ": Resize Track"
+> "Resize Tracks"
+> "RGB Parade off"
+> "RGB Parade on"
+> "Rising Trigger"
+> ": Ruler"
+> "Running"
+> ": %s"
+> "Sample: %d"
+> ": Save"
+> ": Scale"
+> "scan: clip%d %f-%f"
+> "Scanning"
+> "** %scarrier, dvb_locked %s\n"
+> "%s: -c needs a filename.\n"
+> "Search"
+> "search event titles/info"
+> "%s  err: %s\n"
+> ": Set edit title"
+> "Set ffmpeg file type"
+> ": Set Format"
+> "sf_seek() to sample %jd failed, reason: %s\n"
+> "Shadows"
+> "Shape Wipe: cannot load shape %s\n"
+> "Shift-B"
+> "Shift-C"
+> "Shift-D"
+> "Shift-Del"
+> "Shift-F"
+> "Shift+L"
+> "Shift-M"
+> "Shift+P"
+> "Shift+R"
+> "Shift-S"
+> "Shift+Space"
+> "Shift-T"
+> "Shift-U"
+> "Shift-V"
+> "Shift-X"
+> "Shift-Y"
+> "Shift+Z"
+> "size: %s"
+> "Sizes of master track and timefront track do not match\n"
+> ": %s Keyframe"
+> "%s: opengl initialization failed failed\n"
+> ": %s Presets"
+> "%s's index was built for program number %d\nPlayback preference is %d.\n  Using program %d."
+> "%s's resolution is %dx%d.\nImages with odd dimensions may not decode properly."
+> "start over"
+> "start time late: %s\n"
+> "Stopped"
+> "stream %d,  id 0x%06x:\n"
+> "%s: trying attributes None\n"
+> "%s: trying fallback 1\n"
+> "%s: trying fallback 2\n"
+> "%s: trying single buffering\n"
+> ": Subtitle"
+> "Suggestion: Proper frame rate for NTSC DV is 29.97 fps, not 30 fps\n"
+> "sunmontuewedthufrisat"
+> "Swap dimensions"
+> "TEXT"
+> "Texts:"
+> "The following files exist:\n"
+> "The %s '%s' in file '%s' is not part of your installation of Cinelerra.\nThe project won't be rendered as it was meant and Cinelerra might crash.\n"
+> "The Vorbis encoder could not set up a mode according to\nthe requested quality or bitrate.\n\n"
+> "\thistory_start: "
+> "Threshold of gap (DB):"
+> "ticon"
+> "TimeFront plugin error: ALPHA track used, but project color model does not have alpha\n"
+> "TimeFront plugin error: ALPHA used, but project color model does not have alpha\n"
+> "TimeFront plugin error: unsupported track_usage parameter\n"
+> ": Time stretch"
+> ": Tip of the day"
+> "title path:\n"
+> "titles"
+> "Titles"
+> "tmp path:"
+> "\tnext_sample_position: "
+> "toc path:%s\n"
+> "toc scan stopped before eof"
+> "Total"
+> "Transition"
+> ": Transition length"
+> "Transitions"
+> "  transport stream\n"
+> "Trigger"
+> "trk%d edt%d asset %s"
+> "tweek"
+> "twolame error encoding audio: %d\n"
+> "Unable to create directory: %s\n-- %s"
+> "Unable to read from audio buffer file\n"
+> "Unable to save: %s"
+> "Unable to save: %s\n-- %s"
+> "Unable to seek file to %ji"
+> "Unable to seek file to %ji\n"
+> "Unable to set audio write position to %ji\n"
+> "Unable to store sample"
+> "Unable to write audio to audio buffer\n"
+> "Unable to write video data to video buffer"
+> "UNKNOWN"
+> "Unknown colormodel in BluebananaA2Sel:update()\n"
+> "unknown driver %d\n"
+> "***UNMUTE***\n"
+> "Unsupported aspect ratio %f\n"
+> "Unsupported frame rate %f\n"
+> "Use FFMPEG"
+> "Use fixed scale"
+> "Use fixed size"
+> "  v%d %s %dx%d"
+> ": Video Compression"
+> ": Video in"
+> ": Video in %d%%"
+> "Video Options:"
+> ": Video out"
+> ": Video Preset"
+> "  video stream\n"
+> ": Viewer"
+> ": Warning"
+> "Won't overwrite existing files.\n"
+> "write failed: %m"
+> "write_frame: incomplete frame received.\n"
+> "XY Mode"
+> "Yay, we have an ogg file\n"
+> "zero duration: %s\n"